mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-08-29 04:26:38 +00:00
Merge remote-tracking branch 'github/master' into xtr/session-format-migration
# Conflicts: # docs/config-catalog.i18n.yaml # docs/config-catalog.md # docs/config-catalog.zh.md # packages/session/session-persistence-jsonl/src/index.ts # packages/session/session-persistence/src/coordinator.ts # packages/session/session-persistence/src/index.ts
This commit is contained in:
+95
-29
@@ -124,9 +124,17 @@ export interface Config {
|
||||
default: string
|
||||
/** Scanned roots in precedence order; an earlier root wins a duplicate id. */
|
||||
roots: PresetRoot[]
|
||||
/**
|
||||
* Prepend this package's bundled shipped presets as a `system` root, before
|
||||
* every configured root, so the shipped set always mounts and wins a
|
||||
* duplicate id. The default survives a whole-`config` patch replacement;
|
||||
* only an explicit `false` — a deployment supplying purely its own presets,
|
||||
* or an embedder using the roster as bare machinery — drops the set.
|
||||
*/
|
||||
includeShippedRoot: boolean
|
||||
/**
|
||||
* Append the harness home's `USER_PRESET_DIR` as a `user` root, after every
|
||||
* configured root. False mounts a roster over `roots` alone.
|
||||
* configured root. False mounts a roster without the derived writable root.
|
||||
*/
|
||||
includeUserRoot: boolean
|
||||
}
|
||||
@@ -158,9 +166,10 @@ Source: [`packages/preset/agent-presets/src/preset.ts:52`](../packages/preset/ag
|
||||
* Bundle config: each field forwarded verbatim to the child that owns it —
|
||||
* `agents` to the agent loop (an app that pre-creates no agents, like the ACP
|
||||
* bridge, simply omits it), `includeHarnessIdentity`, `includeRuntimeContext`,
|
||||
* `persona`, and `toolOrder` to the system-prompt plugin (the fixed opener,
|
||||
* dynamic-context policy, deployment persona, and explicit model-facing tool
|
||||
* order), the `tools` object to the tool registry (its presentation `mode`),
|
||||
* `persona`, `personaComplete`, and `toolOrder` to the system-prompt plugin
|
||||
* (the fixed opener, dynamic-context policy, deployment persona completeness,
|
||||
* and explicit model-facing tool order), the `tools` object to the tool
|
||||
* registry (its presentation `mode`),
|
||||
* `dshHome` to bash environment and local skill discovery, `sessionTitle` to
|
||||
* the fallback title service, `skills` to the
|
||||
* skill registry/local provider/tool consumer, `workspaceContext` to the
|
||||
@@ -188,6 +197,8 @@ export interface Config {
|
||||
includeRuntimeContext?: SystemPromptConfig['includeRuntimeContext']
|
||||
/** The deployment persona (see dsh-system-prompt's `Config`). */
|
||||
persona?: SystemPromptConfig['persona']
|
||||
/** Whether the deployment persona is the complete system prompt. */
|
||||
personaComplete?: SystemPromptConfig['personaComplete']
|
||||
/** The explicit model-facing tool order (see dsh-system-prompt's `Config`). */
|
||||
toolOrder?: SystemPromptConfig['toolOrder']
|
||||
/** The tool registry's config — its presentation `mode` (see dsh-tools' `Config`). */
|
||||
@@ -239,7 +250,7 @@ export interface GoalConfig {
|
||||
|
||||
Depends on: [`AgentLoopConfig`](#deepseek-aidsh-agent-loop) · [`GoalDomainConfig`](#deepseek-aidsh-goal) · [`InvariantConfig`](#deepseek-aidsh-invariants) · [`JobsConfig`](#deepseek-aidsh-jobs-local) · [`SessionTitleConfig`](#deepseek-aidsh-session-title) · [`SkillFileSystem`](../packages/skill/skill-filesystem/src/index.ts) · [`SkillRegistryConfig`](#deepseek-aidsh-skill) · [`SystemPromptConfig`](#deepseek-aidsh-system-prompt) · [`toolBash`](../packages/shell/tool-bash/src/index.ts) · [`toolGoal`](../packages/goal/tool-goal/src/index.ts) · [`toolJobs`](../packages/jobs/tool-jobs/src/index.ts) · [`ToolsConfig`](#deepseek-aidsh-tools) · [`toolSkill`](../packages/skill/tool-skill/src/index.ts) · [`workspaceContext`](../packages/context/agent-instructions/src/index.ts)
|
||||
|
||||
Source: [`packages/examples/agent-spine-demo/src/index.ts:92`](../packages/examples/agent-spine-demo/src/index.ts)
|
||||
Source: [`packages/examples/agent-spine-demo/src/index.ts:93`](../packages/examples/agent-spine-demo/src/index.ts)
|
||||
|
||||
<a id="deepseek-aidsh-agent-tool-presentation"></a>
|
||||
|
||||
@@ -269,12 +280,12 @@ Source: [`packages/core/agent-tool-presentation/src/index.ts:38`](../packages/co
|
||||
|
||||
## `@deepseek-ai/dsh-api-session-controller`
|
||||
|
||||
Requires: `agentDefaultModel` · `agents` · `attachments` · `llm` · `sessions` · `sessionQuery` · `tools` · `typert` · `workspaceRegistry`
|
||||
Requires: `agentDefaultModel` · `agents` · `attachments` · `llm` · `sessions` · `sessionProjections` · `sessionQuery` · `typert` · `workspaceRegistry`
|
||||
|
||||
```ts config-catalog
|
||||
/** Session Controller deployment policy. */
|
||||
export interface Config {
|
||||
/** Maximum cold Session artifact size read to determine blankness. */
|
||||
/** Maximum cold Session artifact size eligible for one full projection observation. */
|
||||
readonly coldBlankProbeMaxBytes?: number
|
||||
}
|
||||
```
|
||||
@@ -300,16 +311,21 @@ export interface Config {
|
||||
maxImagePixels?: number
|
||||
/** Maximum intrinsic width and maximum intrinsic height accepted for one submitted image. Default: 8192px. */
|
||||
maxImageDimension?: number
|
||||
/** Long-edge pixel cap of the stored provider-independent normalized image. */
|
||||
/** Total-pixel budget of the stored provider-independent normalized image. */
|
||||
normalizedImageMaxPixels?: number
|
||||
/** Long-edge pixel cap of the stored provider-independent normalized image, applied after the total-pixel budget. */
|
||||
normalizedImageMaxDimension?: number
|
||||
/** Encoded-byte safety cap of the stored provider-independent normalized image. */
|
||||
/**
|
||||
* Encoded-byte target of the stored provider-independent normalized image;
|
||||
* the smallest quality-ladder output is kept when no quality fits.
|
||||
*/
|
||||
normalizedImageMaxBytes?: number
|
||||
/** Maximum simultaneous normalization or request-image transformations in this service instance. */
|
||||
imageCompressionConcurrency?: number
|
||||
}
|
||||
```
|
||||
|
||||
Source: [`packages/attachment/attachment-local/src/index.ts:51`](../packages/attachment/attachment-local/src/index.ts)
|
||||
Source: [`packages/attachment/attachment-local/src/index.ts:55`](../packages/attachment/attachment-local/src/index.ts)
|
||||
|
||||
<a id="deepseek-aidsh-bash-local"></a>
|
||||
|
||||
@@ -817,12 +833,18 @@ Source: [`packages/host/frontend-static/src/index.ts:28`](../packages/host/front
|
||||
## `@deepseek-ai/dsh-host-webserver`
|
||||
|
||||
```ts config-catalog
|
||||
/** Gateway config: the listen address. */
|
||||
/** Web server listen and response-compression config. */
|
||||
export interface Config {
|
||||
/** Listen host; the two supported values are loopback and all-interfaces. */
|
||||
host: '127.0.0.1' | '0.0.0.0'
|
||||
/** Listen port; zero requests an OS-assigned port. */
|
||||
port: number
|
||||
/** Response compression for socket-backed HTTP requests. @default 'none' */
|
||||
compression?: 'none' | 'gzip'
|
||||
/** Gzip DEFLATE level from 0 through 9. @default 1 */
|
||||
compressionLevel?: number
|
||||
/** Minimum known response length eligible for gzip; unknown-length streams are eligible. @default 1024 */
|
||||
compressionThresholdBytes?: number
|
||||
}
|
||||
```
|
||||
|
||||
@@ -933,18 +955,16 @@ export interface DeepSeekCatalogModel {
|
||||
maxTokens?: number
|
||||
/** Accepted request modalities; omission is text-only. */
|
||||
inputModalities?: ModelModality[]
|
||||
/** Total-pixel budget for one deterministic request preview. */
|
||||
imagePixelBudget?: number
|
||||
/** Encoded-byte cap for one deterministic request preview. */
|
||||
/** Total-pixel budget for one deterministic request preview, or the 512-by-512 `low` preset. */
|
||||
imagePixelBudget?: number | 'low'
|
||||
/** Encoded-byte target for one deterministic request preview; the smallest quality-ladder output is used when no quality fits. */
|
||||
imageMaxBytes?: number
|
||||
/** Provider detail tier; `low` uses the 512-by-512 total-pixel default. */
|
||||
imageDetail?: 'auto' | 'low'
|
||||
}
|
||||
```
|
||||
|
||||
Depends on: [`ModelModality`](../packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
|
||||
|
||||
Source: [`packages/llm/llm-deepseek/src/index.ts:106`](../packages/llm/llm-deepseek/src/index.ts)
|
||||
Source: [`packages/llm/llm-deepseek/src/index.ts:117`](../packages/llm/llm-deepseek/src/index.ts)
|
||||
|
||||
<a id="deepseek-aidsh-llm-pi-ai"></a>
|
||||
|
||||
@@ -1048,7 +1068,10 @@ export interface PiAiProviderProfile {
|
||||
maxRequestImageBytes?: number
|
||||
/** Total-pixel budget for each deterministic inline request version. */
|
||||
requestImagePixelBudget?: number
|
||||
/** Raw encoded-byte cap for each deterministic inline request version. */
|
||||
/**
|
||||
* Raw encoded-byte target for each deterministic inline request version;
|
||||
* the smallest quality-ladder output is used when no quality fits.
|
||||
*/
|
||||
requestImageMaxBytes?: number
|
||||
/** Provider-owned model-request retry policy; omission uses normal mode with five retries. */
|
||||
retryPolicy?: RetryPolicyConfig
|
||||
@@ -1207,7 +1230,7 @@ export type PiAiThinkingFormat = NonNullable<OpenAICompletionsCompat['thinkingFo
|
||||
|
||||
Depends on: `Api` (`@earendil-works/pi-ai`) · `CacheRetention` (`@earendil-works/pi-ai`) · `Model` (`@earendil-works/pi-ai`) · `ModelThinkingLevel` (`@earendil-works/pi-ai`) · `OpenAICompletionsCompat` (`@earendil-works/pi-ai`) · [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts) · `ThinkingBudgets` (`@earendil-works/pi-ai`) · `Transport` (`@earendil-works/pi-ai`)
|
||||
|
||||
Source: [`packages/llm/llm-pi-ai/src/config.ts:213`](../packages/llm/llm-pi-ai/src/config.ts)
|
||||
Source: [`packages/llm/llm-pi-ai/src/config.ts:216`](../packages/llm/llm-pi-ai/src/config.ts)
|
||||
|
||||
<a id="deepseek-aidsh-llm-replay"></a>
|
||||
|
||||
@@ -1275,7 +1298,7 @@ export interface ReplayModelConfig {
|
||||
|
||||
Depends on: [`ModelModality`](../packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
|
||||
|
||||
Source: [`packages/test-support/llm-replay/src/index.ts:847`](../packages/test-support/llm-replay/src/index.ts)
|
||||
Source: [`packages/test-support/llm-replay/src/index.ts:892`](../packages/test-support/llm-replay/src/index.ts)
|
||||
|
||||
<a id="deepseek-aidsh-llm-retry"></a>
|
||||
|
||||
@@ -1664,6 +1687,22 @@ Depends on: [`SandboxMode`](subsystems/sandbox.md)
|
||||
|
||||
Source: [`packages/sandbox/sandbox-policy/src/index.ts:67`](../packages/sandbox/sandbox-policy/src/index.ts)
|
||||
|
||||
<a id="deepseek-aidsh-sdk-app"></a>
|
||||
|
||||
## `@deepseek-ai/dsh-sdk-app`
|
||||
|
||||
Requires: `cmdlineArgs`
|
||||
|
||||
```ts config-catalog
|
||||
/** SDK stdio startup configuration. */
|
||||
export interface Config {
|
||||
/** Profile name rendered in help and diagnostics (default `sdk`). */
|
||||
profile?: string
|
||||
}
|
||||
```
|
||||
|
||||
Source: [`packages/bundle/sdk-app/src/index.ts:23`](../packages/bundle/sdk-app/src/index.ts)
|
||||
|
||||
<a id="deepseek-aidsh-sdk-jsonrpc-server"></a>
|
||||
|
||||
## `@deepseek-ai/dsh-sdk-jsonrpc-server`
|
||||
@@ -1675,6 +1714,13 @@ Requires: `agents`
|
||||
export interface JsonRpcConfig {
|
||||
/** Report max-token turn/subagent termination as a successful SDK result. */
|
||||
maxTokensAsSuccess?: boolean
|
||||
/** Per-root-agent model-facing tool filter; an allow list excludes later unnamed global tools. */
|
||||
toolFilter?: {
|
||||
/** Global tool names that remain visible. */
|
||||
allow?: string[]
|
||||
/** Global tool names removed from visibility. */
|
||||
deny?: string[]
|
||||
}
|
||||
/** Transport input override; production uses `process.stdin`. */
|
||||
input?: Readable
|
||||
/** Transport output override; production uses `process.stdout`. */
|
||||
@@ -1741,7 +1787,7 @@ export interface Config {
|
||||
export type JsonlCompression = 'zstd' | 'none'
|
||||
```
|
||||
|
||||
Source: [`packages/session/session-persistence-jsonl/src/index.ts:63`](../packages/session/session-persistence-jsonl/src/index.ts)
|
||||
Source: [`packages/session/session-persistence-jsonl/src/index.ts:64`](../packages/session/session-persistence-jsonl/src/index.ts)
|
||||
|
||||
<a id="deepseek-aidsh-session-persistence-sqlite"></a>
|
||||
|
||||
@@ -1768,7 +1814,7 @@ export interface Config {
|
||||
export type JournalMode = 'wal' | 'delete' | 'truncate' | 'persist'
|
||||
```
|
||||
|
||||
Source: [`packages/session/session-persistence-sqlite/src/index.ts:37`](../packages/session/session-persistence-sqlite/src/index.ts)
|
||||
Source: [`packages/session/session-persistence-sqlite/src/index.ts:38`](../packages/session/session-persistence-sqlite/src/index.ts)
|
||||
|
||||
<a id="deepseek-aidsh-session-projection-cache"></a>
|
||||
|
||||
@@ -1791,7 +1837,7 @@ export interface Config {
|
||||
}
|
||||
```
|
||||
|
||||
Source: [`packages/session/session-projection-cache/src/index.ts:42`](../packages/session/session-projection-cache/src/index.ts)
|
||||
Source: [`packages/session/session-projection-cache/src/index.ts:46`](../packages/session/session-projection-cache/src/index.ts)
|
||||
|
||||
<a id="deepseek-aidsh-session-query-sqlite"></a>
|
||||
|
||||
@@ -2054,10 +2100,21 @@ export interface Config {
|
||||
* a local deployment. Set it to keep spill files under a known location.
|
||||
*/
|
||||
root?: string
|
||||
/**
|
||||
* Age in days after which a spill file is eligible for the one-shot startup
|
||||
* cleanup sweep. Defaults to `30`; `0` disables cleanup entirely. Files whose
|
||||
* `mtime` is strictly older than the cutoff are deleted and emptied
|
||||
* directories are pruned; fresh files, symlinks, and unrelated entries are
|
||||
* left untouched. On POSIX, cleanup skips roots and session directories that
|
||||
* another local user could modify or replace. Retention is deliberate — a
|
||||
* resumed or forked session may still reference an older locator until it
|
||||
* ages out.
|
||||
*/
|
||||
cleanupPeriodDays?: number
|
||||
}
|
||||
```
|
||||
|
||||
Source: [`packages/spill/spill-local/src/index.ts:22`](../packages/spill/spill-local/src/index.ts)
|
||||
Source: [`packages/spill/spill-local/src/index.ts:31`](../packages/spill/spill-local/src/index.ts)
|
||||
|
||||
<a id="deepseek-aidsh-spill-policy"></a>
|
||||
|
||||
@@ -2400,6 +2457,8 @@ export interface Config {
|
||||
* `deployment:persona` shadows it; `{{variable}}` references are strict.
|
||||
*/
|
||||
persona?: string
|
||||
/** Treat the deployment persona as the complete system prompt (default false). */
|
||||
personaComplete?: boolean
|
||||
/**
|
||||
* Model-facing tool names in order, with {@link TOOL_ORDER_REST} exactly once.
|
||||
* Invalid fields fail at load and unknown names fail at assembly; known names
|
||||
@@ -2799,6 +2858,14 @@ export interface Config {
|
||||
* a distinct name.
|
||||
*/
|
||||
toolName?: string
|
||||
/** Let the model discover and select the child LLM route (default false). */
|
||||
enableModelSelection?: boolean
|
||||
/**
|
||||
* Sample the Host `subagent-model-selection` user setting for each new
|
||||
* top-level session and inherit that decision in its child sessions. Mutually
|
||||
* exclusive with `enableModelSelection`.
|
||||
*/
|
||||
modelSelectionSettings?: boolean
|
||||
/**
|
||||
* Expose `run_in_background` (default true). Disabled instances omit the
|
||||
* parameter and reject forced background calls.
|
||||
@@ -2846,7 +2913,7 @@ export interface Config {
|
||||
|
||||
Depends on: [`AgentOptions`](subsystems/core.md)
|
||||
|
||||
Source: [`packages/subagent/tool-subagent/src/index.ts:29`](../packages/subagent/tool-subagent/src/index.ts)
|
||||
Source: [`packages/subagent/tool-subagent/src/index.ts:48`](../packages/subagent/tool-subagent/src/index.ts)
|
||||
|
||||
<a id="deepseek-aidsh-tool-subagent-report"></a>
|
||||
|
||||
@@ -2990,7 +3057,7 @@ export interface Config {
|
||||
export type ToolPresentationMode = 'native' | 'code' | 'both'
|
||||
```
|
||||
|
||||
Source: [`packages/core/tools/src/index.ts:654`](../packages/core/tools/src/index.ts)
|
||||
Source: [`packages/core/tools/src/index.ts:655`](../packages/core/tools/src/index.ts)
|
||||
|
||||
<a id="deepseek-aidsh-typert-loader"></a>
|
||||
|
||||
@@ -3304,7 +3371,6 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
|
||||
- `@deepseek-ai/dsh-llm` ([`packages/llm/llm/src/index.ts`](../packages/llm/llm/src/index.ts))
|
||||
- `@deepseek-ai/dsh-lsp` ([`packages/lsp/lsp/src/index.ts`](../packages/lsp/lsp/src/index.ts))
|
||||
- `@deepseek-ai/dsh-schedule` — requires `agents` · `sessions` · `tools` · `sessionPersistence` ([`packages/schedule/schedule/src/index.ts`](../packages/schedule/schedule/src/index.ts))
|
||||
- `@deepseek-ai/dsh-sdk-app` — requires `cmdlineArgs` ([`packages/bundle/sdk-app/src/index.ts`](../packages/bundle/sdk-app/src/index.ts))
|
||||
- `@deepseek-ai/dsh-session` ([`packages/core/session/src/index.ts`](../packages/core/session/src/index.ts))
|
||||
- `@deepseek-ai/dsh-session-checkpoint-policy` — requires `llm` · `sessionPersistence` · `sessions` · `tools` ([`packages/session/session-checkpoint-policy/src/index.ts`](../packages/session/session-checkpoint-policy/src/index.ts))
|
||||
- `@deepseek-ai/dsh-session-log-export` — requires `commands` ([`packages/session-query/session-log-export/src/index.ts`](../packages/session-query/session-log-export/src/index.ts))
|
||||
@@ -3348,7 +3414,6 @@ Abstract service classes — a deployment loads a concrete implementation packag
|
||||
|
||||
Imported as libraries by other packages; a `cordis.yml` cannot load them.
|
||||
|
||||
- `@deepseek-ai/dsh-acp-snapshot` ([`packages/test-support/acp-snapshot/src/index.ts`](../packages/test-support/acp-snapshot/src/index.ts))
|
||||
- `@deepseek-ai/dsh-agent-loop-testkit` ([`packages/test-support/agent-loop-testkit/src/index.ts`](../packages/test-support/agent-loop-testkit/src/index.ts))
|
||||
- `@deepseek-ai/dsh-anonymous-user-id` ([`packages/identity/anonymous-user-id/src/index.ts`](../packages/identity/anonymous-user-id/src/index.ts))
|
||||
- `@deepseek-ai/dsh-app-boot` ([`packages/boot/app-boot/src/index.ts`](../packages/boot/app-boot/src/index.ts))
|
||||
@@ -3374,8 +3439,9 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
|
||||
- `@deepseek-ai/dsh-sandbox-windows-acl` ([`packages/sandbox/sandbox-windows-acl/src/index.ts`](../packages/sandbox/sandbox-windows-acl/src/index.ts))
|
||||
- `@deepseek-ai/dsh-scope` ([`packages/core/scope/src/index.ts`](../packages/core/scope/src/index.ts))
|
||||
- `@deepseek-ai/dsh-sdk-client` ([`packages/sdk/client/src/index.ts`](../packages/sdk/client/src/index.ts))
|
||||
- `@deepseek-ai/dsh-sdk-minimal` ([`packages/bundle/sdk-minimal/src/index.ts`](../packages/bundle/sdk-minimal/src/index.ts))
|
||||
- `@deepseek-ai/dsh-sdk-protocol` ([`packages/sdk/protocol/src/index.ts`](../packages/sdk/protocol/src/index.ts))
|
||||
- `@deepseek-ai/dsh-sdk-python-runtime` ([`packages/sdk/python-runtime/src/index.ts`](../packages/sdk/python-runtime/src/index.ts))
|
||||
- `@deepseek-ai/dsh-session-snapshot` ([`packages/test-support/session-snapshot/src/index.ts`](../packages/test-support/session-snapshot/src/index.ts))
|
||||
- `@deepseek-ai/dsh-session-telemetry` ([`packages/session/session-telemetry/src/index.ts`](../packages/session/session-telemetry/src/index.ts))
|
||||
- `@deepseek-ai/dsh-session-title-llm` ([`packages/session/session-title-llm/src/index.ts`](../packages/session/session-title-llm/src/index.ts))
|
||||
- `@deepseek-ai/dsh-subagent-in-process-driver` ([`packages/subagent/subagent-in-process-driver/src/index.ts`](../packages/subagent/subagent-in-process-driver/src/index.ts))
|
||||
|
||||
Reference in New Issue
Block a user