# ctx.bashEnv `BashEnvRegistry` — provided by `@deepseek-ai/dsh-tool-bash`. Registry (`ctx.bashEnv`) for trusted, per-execution `DSH_*` variables. The namespace is rebuilt for every model bash call: ambient `DSH_*` values are discarded by the executor, then the registry's current snapshot is injected. Built-in shell facts remain owned by the registry itself while plugins can register additional, enumerable facts with effect-scoped disposal. [Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/bash/tool-bash/src/index.ts#L102) ### ctx.bashEnv.register(contributor) ```ts website-api /** * Register one environment contributor. Names and keys are unique; built-in * keys are reserved. Registration is disposed with the calling plugin fiber. * @param contributor - declared key ownership and per-execution resolver. * @returns the disposer that unregisters the contribution. */ register(contributor: BashEnvContributor): () => void ``` Register one environment contributor. Names and keys are unique; built-in keys are reserved. Registration is disposed with the calling plugin fiber. - `contributor` — declared key ownership and per-execution resolver. **Returns** the disposer that unregisters the contribution. [Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/bash/tool-bash/src/index.ts#L123) ### ctx.bashEnv.collect(execution) ```ts website-api /** * Build the trusted `DSH_*` snapshot for one bash tool execution. * @param execution - the current tool execution. * @returns an immutable environment overlay containing built-ins and current contributions. */ collect(execution: ToolExecution): DshEnvironment ``` Build the trusted `DSH_*` snapshot for one bash tool execution. - `execution` — the current tool execution. **Returns** an immutable environment overlay containing built-ins and current contributions. [Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/bash/tool-bash/src/index.ts#L165) ### ctx.bashEnv.list() ```ts website-api /** * Enumerate plugin-contributed variables without executing their resolvers. * @returns declarations sorted by environment variable name. */ list(): BashEnvVariableInfo[] ``` Enumerate plugin-contributed variables without executing their resolvers. **Returns** declarations sorted by environment variable name. [Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/bash/tool-bash/src/index.ts#L197)