@xneog/dsh-base 0.1.0-20260818184352-4561870be6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.i18n.yaml +6 -0
- package/README.md +22 -0
- package/README.zh.md +22 -0
- package/cordis.patch.yml +451 -0
- package/lib/index.js +1 -0
- package/lib/invariant.js +19 -0
- package/lib/types/index.d.ts +9 -0
- package/lib/types/invariant.d.ts +16 -0
- package/package.json +128 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 DeepSeek
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.i18n.yaml
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
|
2
|
+
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
|
+
# after editing either side, bring the other along and re-record with:
|
|
4
|
+
# pnpm run verify-translation-pairing --write packages/bundle/base/README.md
|
|
5
|
+
README.md: 00a177d4dd65de8706aa0e27a79d06a9a50eb55a
|
|
6
|
+
README.zh.md: ad70fc16035d3dd70b04e78c31aea90acf61119b
|
package/README.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# `@xneog/dsh-base`
|
|
2
|
+
|
|
3
|
+
English | [中文](README.zh.md)
|
|
4
|
+
|
|
5
|
+
The shared dsh core as a profile bundle: [`cordis.patch.yml`](cordis.patch.yml) inserts every base plugin row — model adapters, the shared [`agent-default-model`](../../core/agent-default-model/README.md) selection, tools, persistence, policy, settings/credentials, telemetry, and host-level subagent providers — over the empty profile root, as the first layer of every profile's `dsh.profile.bundles` list. This bundle neither depends on nor mounts the optional Codex and Claude Code providers; an opting-in Profile installs and mounts the selected provider once on the host plane, while Agent Presets decide whether their agents receive the corresponding model-facing delegation tools. Later bundle layers (e.g. [`dsh-web-app`](../web-app/README.md)) and the user's profile `cordis.patch.yml` override these rows by id; a patch replaces a row's whole `config`, so mode-specific values live in mode bundles, not here. The package has no runtime API; the profile composer resolves the patch through the `dsh.bundle.patch` manifest field, never through code.
|
|
6
|
+
|
|
7
|
+
The patch gates both shell stacks by platform on its own rows: `bash-sandbox`/`tool-bash` carry `disabled: !!js process.platform === 'win32'` (bash has no Windows runner), and their twins `pwsh-sandbox`/`tool-pwsh` mount on win32 only with the inverted expression — one shared patch file, exactly one shell stack per host. The permission surface stays exactly as on POSIX: `sandbox`/`sandbox-policy` enforce the file-effect policy through the Windows ACL restricted-token runner (the win32 chain of `dsh-sandbox-local` → `@xneog/dsh-sandbox-windows-acl`), the permission switcher and the approval service run unchanged, and `fs-sandbox` keeps fencing `ctx.fs` writes — mounting `dsh-fs-local` alongside it would double-register `ctx.fs` and fail the load. A Windows host that prefers the unconfined local pwsh executor or full access overrides these rows through its profile or home `cordis.patch.yml` (the bash-restore recipe must be complete: disable `pwsh-sandbox`/`tool-pwsh` AND re-enable `bash-sandbox`/`tool-bash` — both executor families register the same `bash` service, so an incomplete recipe fails loud at load). POSIX hosts see the pwsh rows disabled.
|
|
8
|
+
|
|
9
|
+
The row set and its rationale are documented inline in the patch file; the [generated composition graph](../../../apps/cli/composition.md) renders it.
|
|
10
|
+
|
|
11
|
+
## Model Experience
|
|
12
|
+
|
|
13
|
+
Indirectly, through the inserted rows: this bundle selects the shipped persona-less prompt base, tool set, and DeepSeek adapter that mode bundles specialize, and contributes no model-visible text of its own.
|
|
14
|
+
|
|
15
|
+
#### KV Cache effect
|
|
16
|
+
|
|
17
|
+
None directly; each inserted row's package owns its effect.
|
|
18
|
+
|
|
19
|
+
## Known Limitations and Deferred Work
|
|
20
|
+
|
|
21
|
+
- **A patch replaces whole row configs** — profile overrides must restate every field a row keeps; there is no deep-merge layer.
|
|
22
|
+
- **The Windows temp grant is a private per-session subdirectory** — `workspace-write` confines writes to the workspace plus the session's own temp subdirectory (`<temp>\dsh-<hash>`, TMP/TEMP rewritten for confined children); `read-only` grants nothing. See `@xneog/dsh-sandbox-windows-acl`.
|
package/README.zh.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# `@xneog/dsh-base`
|
|
2
|
+
|
|
3
|
+
[English](README.md) | 中文
|
|
4
|
+
|
|
5
|
+
以 profile 组合包形式交付的共享 dsh 核心:[`cordis.patch.yml`](cordis.patch.yml) 在空的 profile 根之上插入全部基础插件行——模型适配器、共享的 [`agent-default-model`](../../core/agent-default-model/README.md) 选择、工具、持久化、策略、settings/credentials、遥测与宿主级 subagent provider——作为每个 profile 的 `dsh.profile.bundles` 列表中的第一层。这个 bundle 既不依赖也不挂载可选的 Codex 与 Claude Code provider;选择产品集成的 Profile 会安装目标 provider 并在 host plane(宿主平面)挂载一次,Agent Preset 则决定自己的 agent 是否获得对应的面向模型委派工具。后续的组合包层(例如 [`dsh-web-app`](../web-app/README.md))和用户 profile 的 `cordis.patch.yml` 按 id 覆盖这些行;patch 会替换目标行的整个 `config`,因此模式专属的值放在各模式组合包中,而不是这里。该包没有运行时 API;profile 组合器通过 manifest(元数据清单)的 `dsh.bundle.patch` 字段解析 patch,绝不通过代码。
|
|
6
|
+
|
|
7
|
+
patch 在自身上按平台门控两个 shell 栈:`bash-sandbox`/`tool-bash` 携带 `disabled: !!js process.platform === 'win32'`(bash 没有 Windows runner),它们的孪生行 `pwsh-sandbox`/`tool-pwsh` 以取反的表达式仅在 win32 挂载——同一份 patch 文件,每个宿主恰好挂载一个 shell 栈。权限面与 POSIX 完全一致:`sandbox`/`sandbox-policy` 通过 Windows ACL 受限令牌 runner(`dsh-sandbox-local` 的 win32 链 → `@xneog/dsh-sandbox-windows-acl`)执行文件效果策略,权限切换器与 approval 服务原样运行,`fs-sandbox` 继续围栏 `ctx.fs` 写入——在其旁再挂载 `dsh-fs-local` 会重复注册 `ctx.fs` 并在加载时失败。偏好不受沙盒约束的本地 pwsh 执行器或完整访问的 Windows 主机通过其 profile 或 home 的 `cordis.patch.yml` 覆盖这些行(bash 恢复配方必须完整:禁用 `pwsh-sandbox`/`tool-pwsh` 并重新启用 `bash-sandbox`/`tool-bash`——两个执行器家族注册同一个 `bash` 服务,配方不完整会在加载时直接报错)。POSIX 主机看到的是被禁用的 pwsh 行。
|
|
8
|
+
|
|
9
|
+
行集合及其设计依据以行内注释写在 patch 文件里;[生成的组合图](../../../apps/cli/composition.md)负责渲染它。
|
|
10
|
+
|
|
11
|
+
## 模型体验
|
|
12
|
+
|
|
13
|
+
通过插入的行间接产生影响:该组合包选定了随发行版交付的无 persona 提示词基座、工具集合与 DeepSeek 适配器,供各模式组合包进一步特化;它自身不贡献任何模型可见文本。
|
|
14
|
+
|
|
15
|
+
#### KV Cache 影响
|
|
16
|
+
|
|
17
|
+
无直接影响;每条插入行的影响由其所属的包负责。
|
|
18
|
+
|
|
19
|
+
## 已知限制与暂缓事项
|
|
20
|
+
|
|
21
|
+
- **patch 会替换整行 `config`**:profile 覆盖必须重述该行需要保留的每个字段;不存在深度合并层。
|
|
22
|
+
- **Windows 的临时目录授权是按会话的私有子目录**——`workspace-write` 把写入限制在工作区与会话自己的 temp 子目录(`<temp>\dsh-<hash>`,受限子进程的 TMP/TEMP 被改写);`read-only` 不授予任何临时目录写入权限。见 `@xneog/dsh-sandbox-windows-acl`。
|
package/cordis.patch.yml
ADDED
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
# The dsh-base bundle patch: the shared core of every dsh profile, applied as
|
|
2
|
+
# ONE insert over the empty profile root. Later bundle patches and the user's
|
|
3
|
+
# profile cordis.patch.yml address these rows by id, with the last write
|
|
4
|
+
# winning per row.
|
|
5
|
+
#
|
|
6
|
+
# A patch replaces the targeted row's whole `config` rather than merging into
|
|
7
|
+
# it, so a row whose value differs by mode does NOT live here: it belongs to
|
|
8
|
+
# each mode bundle, keeping any single row down to one bundle layer plus the
|
|
9
|
+
# user's. Mode-specific rows appear below only with shared plugin identity and
|
|
10
|
+
# neutral defaults; each mode bundle restates its complete configuration.
|
|
11
|
+
#
|
|
12
|
+
# Row order carries no load semantics (activation is service-availability
|
|
13
|
+
# driven); the grouping is for readers.
|
|
14
|
+
|
|
15
|
+
- insert:
|
|
16
|
+
- id: timer
|
|
17
|
+
name: '@xneog/cordis-plugin-timer'
|
|
18
|
+
|
|
19
|
+
- id: hmr
|
|
20
|
+
name: '@xneog/cordis-plugin-hmr'
|
|
21
|
+
config:
|
|
22
|
+
root: ['.']
|
|
23
|
+
|
|
24
|
+
- id: llm
|
|
25
|
+
name: '@xneog/dsh-llm'
|
|
26
|
+
|
|
27
|
+
- id: session
|
|
28
|
+
name: '@xneog/dsh-session'
|
|
29
|
+
|
|
30
|
+
- id: typert
|
|
31
|
+
name: '@xneog/dsh-typert-registry'
|
|
32
|
+
|
|
33
|
+
- id: typert-loader
|
|
34
|
+
name: '@xneog/dsh-typert-loader'
|
|
35
|
+
|
|
36
|
+
- id: typert-gateway
|
|
37
|
+
name: '@xneog/dsh-api-gateway'
|
|
38
|
+
|
|
39
|
+
- id: session-title
|
|
40
|
+
name: '@xneog/dsh-session-title'
|
|
41
|
+
config:
|
|
42
|
+
fallbackMaxWords: 5
|
|
43
|
+
fallbackMaxBytes: 40
|
|
44
|
+
maxTitleBytes: 80
|
|
45
|
+
|
|
46
|
+
- id: session-title-llm
|
|
47
|
+
name: '@xneog/dsh-session-title-first-prompt-llm'
|
|
48
|
+
config:
|
|
49
|
+
targetWords: 5
|
|
50
|
+
targetCjkCharacters: 10
|
|
51
|
+
maxInputBytes: 4096
|
|
52
|
+
maxOutputTokens: 64
|
|
53
|
+
timeoutMs: 60000
|
|
54
|
+
|
|
55
|
+
- id: user-questions
|
|
56
|
+
name: '@xneog/dsh-user-questions'
|
|
57
|
+
|
|
58
|
+
- id: agent
|
|
59
|
+
name: '@xneog/dsh-agent'
|
|
60
|
+
|
|
61
|
+
# The transport-independent default for Agents created by entry points.
|
|
62
|
+
# Settings may supply a saved selection; consumers read it at creation time.
|
|
63
|
+
- id: agent-default-model
|
|
64
|
+
name: '@xneog/dsh-agent-default-model'
|
|
65
|
+
config:
|
|
66
|
+
provider: deepseek-official
|
|
67
|
+
model: deepseek-v4-flash
|
|
68
|
+
|
|
69
|
+
- id: jobs
|
|
70
|
+
name: '@xneog/dsh-jobs-local'
|
|
71
|
+
|
|
72
|
+
- id: llm-retry
|
|
73
|
+
name: '@xneog/dsh-llm-retry'
|
|
74
|
+
|
|
75
|
+
# User-settings document (`$DSH_HOME/settings.yaml`, hot-reloaded): a
|
|
76
|
+
# `llm-deepseek:` or `llm-pi-ai:` section there overrides the adapter entries
|
|
77
|
+
# below without a restart, and is what the web Models page writes.
|
|
78
|
+
- id: settings
|
|
79
|
+
name: '@xneog/dsh-settings-file'
|
|
80
|
+
|
|
81
|
+
# Credential sources: inherited environment over the managed
|
|
82
|
+
# `$DSH_HOME/.credentials.yaml`, with project and user `.env` fallbacks.
|
|
83
|
+
# Adapters resolve references per request; the Models page writes only the
|
|
84
|
+
# managed document, which is never materialized into the process environment.
|
|
85
|
+
- id: credentials
|
|
86
|
+
name: '@xneog/dsh-credentials-local'
|
|
87
|
+
|
|
88
|
+
# The pi-ai multi-provider twin, mounted dormant: zero routes (and no extra
|
|
89
|
+
# models in the picker) until a `llm-pi-ai:` settings section supplies provider
|
|
90
|
+
# profiles — then those routes register live, keys resolving per request
|
|
91
|
+
# through their apiKeyEnv references, and drop again when the section empties.
|
|
92
|
+
# Supplying those profiles is exactly what the web Models page does. Which
|
|
93
|
+
# adapters exist is composition; which providers run is the user's settings
|
|
94
|
+
# document.
|
|
95
|
+
- id: llm-pi-ai
|
|
96
|
+
name: '@xneog/dsh-llm-pi-ai'
|
|
97
|
+
|
|
98
|
+
- id: session-persistence-jsonl
|
|
99
|
+
name: '@xneog/dsh-session-persistence-jsonl'
|
|
100
|
+
config:
|
|
101
|
+
root: !!js dshHomePath('sessions')
|
|
102
|
+
|
|
103
|
+
# Durable image bytes live outside the append-only session log. Messages
|
|
104
|
+
# keep content-addressed references that this shared backend resolves for
|
|
105
|
+
# provider requests and authorized history reads.
|
|
106
|
+
- id: attachment-local
|
|
107
|
+
name: '@xneog/dsh-attachment-local'
|
|
108
|
+
|
|
109
|
+
# Full-text session search is opt-in. `openAt: never` keeps
|
|
110
|
+
# ctx.sessionQuery mounted — exact reads, titles, and lineage traces
|
|
111
|
+
# (session export, subagent-fork Workspace inheritance) stay available —
|
|
112
|
+
# while search calls fail with SESSION_QUERY_SEARCH_DISABLED and SQLite is
|
|
113
|
+
# never opened; the Web sidebar search matches titles and workspace names
|
|
114
|
+
# only. Deployments enabling content search override `openAt` to
|
|
115
|
+
# `first-search` or `startup` in a later patch layer (profile
|
|
116
|
+
# cordis.patch.yml or a --patch overlay), typically with a durable `path`.
|
|
117
|
+
- id: session-query-sqlite
|
|
118
|
+
name: '@xneog/dsh-session-query-sqlite'
|
|
119
|
+
config:
|
|
120
|
+
path: ':memory:'
|
|
121
|
+
openAt: never
|
|
122
|
+
|
|
123
|
+
# Shared projection registry: subagent catalog identity (mode/label) folds
|
|
124
|
+
# through its registered units, so the `list_agents` surface below fails
|
|
125
|
+
# loud without it; web layers reuse this same mount for list rows.
|
|
126
|
+
- id: session-projection
|
|
127
|
+
name: '@xneog/dsh-session-projection'
|
|
128
|
+
|
|
129
|
+
# Session telemetry is mounted but disabled by default. DSH_TELEMETRY_MODE
|
|
130
|
+
# explicitly opts into FULL or FEEDBACK_ONLY reporting; uploading mirrors
|
|
131
|
+
# session-log records onto OTLP/HTTP logs with no session-telemetry/record redaction
|
|
132
|
+
# rule, so exports are the raw captured copy. The deployment stance, env
|
|
133
|
+
# seams, and follow-ups are pinned in the default-off Agent Note.
|
|
134
|
+
# DSH_TELEMETRY_OTLP_URL overrides the production endpoint. A non-empty
|
|
135
|
+
# DSH_TELEMETRY_DISABLED — any value, including '0'/'false' — opts the
|
|
136
|
+
# process out (the launchers patch the row disabled; config cannot disable
|
|
137
|
+
# a row). Exports carry the harness home's anonymous user id ($DSH_HOME/.anonymous-user-id,
|
|
138
|
+
# random UUID; delete the file to reset the identity) as the Resource's
|
|
139
|
+
# user.id. The exporter/processor values normally bound the shutdown drain
|
|
140
|
+
# to ~1s against an unreachable collector: exporter.timeoutMillis is both
|
|
141
|
+
# the per-attempt socket timeout and the retry deadline (1s effectively
|
|
142
|
+
# disables the SDK's 5-try backoff), while maxExportBatchSize == maxQueueSize
|
|
143
|
+
# (both explicit) makes the drain a single batch. The SDK awaits
|
|
144
|
+
# exporter.forceFlush() outside exportTimeoutMillis, so the backend's 3s
|
|
145
|
+
# shutdownTimeoutMillis is the load-bearing outer bound when a transport
|
|
146
|
+
# promise never settles. Every CLI exit path drains it by disposing the root
|
|
147
|
+
# on SIGINT/SIGTERM.
|
|
148
|
+
- id: session-telemetry-otel
|
|
149
|
+
name: '@xneog/dsh-session-telemetry-otel'
|
|
150
|
+
config:
|
|
151
|
+
mode: !!js process.env.DSH_TELEMETRY_MODE || 'DISABLED'
|
|
152
|
+
shutdownTimeoutMillis: 3000
|
|
153
|
+
exporter:
|
|
154
|
+
url: !!js process.env.DSH_TELEMETRY_OTLP_URL ?? 'https://harness-telemetry.deepseeksvc.com/v1/logs'
|
|
155
|
+
compression: gzip
|
|
156
|
+
timeoutMillis: 1000
|
|
157
|
+
processor:
|
|
158
|
+
scheduledDelayMillis: 10000
|
|
159
|
+
maxQueueSize: 2048
|
|
160
|
+
maxExportBatchSize: 2048
|
|
161
|
+
exportTimeoutMillis: 1500
|
|
162
|
+
|
|
163
|
+
- id: subprocess
|
|
164
|
+
name: '@xneog/dsh-subprocess-local'
|
|
165
|
+
|
|
166
|
+
# Every shipped CLI mode starts with the same file-effect boundary.
|
|
167
|
+
# The environment remains an explicit deployment override; otherwise fresh
|
|
168
|
+
# sessions pin workspace-write + ask through the permission service below.
|
|
169
|
+
- id: sandbox
|
|
170
|
+
name: '@xneog/dsh-sandbox-local'
|
|
171
|
+
|
|
172
|
+
- id: sandbox-policy
|
|
173
|
+
name: '@xneog/dsh-sandbox-policy'
|
|
174
|
+
config:
|
|
175
|
+
mode: !!js process.env.DSH_PERMISSION_MODE ?? 'workspace-write'
|
|
176
|
+
workspaceRoot: !!js process.cwd()
|
|
177
|
+
|
|
178
|
+
- id: bash-sandbox
|
|
179
|
+
name: '@xneog/dsh-bash-sandbox'
|
|
180
|
+
disabled: !!js process.platform === 'win32'
|
|
181
|
+
config:
|
|
182
|
+
timeoutMs: 60000
|
|
183
|
+
|
|
184
|
+
- id: pwsh-sandbox
|
|
185
|
+
name: '@xneog/dsh-pwsh-sandbox'
|
|
186
|
+
disabled: !!js process.platform !== 'win32'
|
|
187
|
+
|
|
188
|
+
- id: approval
|
|
189
|
+
name: '@xneog/dsh-user-approval'
|
|
190
|
+
config:
|
|
191
|
+
policy: !!js "(process.env.DSH_PERMISSION_MODE ?? 'workspace-write') === 'danger-full-access' ? 'never' : 'ask'"
|
|
192
|
+
|
|
193
|
+
- id: permission
|
|
194
|
+
name: '@xneog/dsh-permission-presets'
|
|
195
|
+
config:
|
|
196
|
+
presets:
|
|
197
|
+
read-only:
|
|
198
|
+
sandbox: read-only
|
|
199
|
+
approval: ask
|
|
200
|
+
workspace-write:
|
|
201
|
+
sandbox: workspace-write
|
|
202
|
+
approval: ask
|
|
203
|
+
danger-full-access:
|
|
204
|
+
sandbox: danger-full-access
|
|
205
|
+
approval: never
|
|
206
|
+
|
|
207
|
+
- id: shell-env
|
|
208
|
+
name: '@xneog/dsh-shell-env'
|
|
209
|
+
|
|
210
|
+
- id: tool-bash
|
|
211
|
+
name: '@xneog/dsh-tool-bash'
|
|
212
|
+
disabled: !!js process.platform === 'win32'
|
|
213
|
+
|
|
214
|
+
- id: tool-pwsh
|
|
215
|
+
name: '@xneog/dsh-tool-pwsh'
|
|
216
|
+
disabled: !!js process.platform !== 'win32'
|
|
217
|
+
|
|
218
|
+
- id: tool-jobs
|
|
219
|
+
name: '@xneog/dsh-tool-jobs'
|
|
220
|
+
|
|
221
|
+
- id: fs-observation-policy
|
|
222
|
+
name: '@xneog/dsh-fs-observation-policy'
|
|
223
|
+
|
|
224
|
+
- id: tool-fs
|
|
225
|
+
name: '@xneog/dsh-tool-fs'
|
|
226
|
+
|
|
227
|
+
- id: tool-fs-search
|
|
228
|
+
name: '@xneog/dsh-tool-fs-search'
|
|
229
|
+
config:
|
|
230
|
+
sampleOverCapGlobResults: false
|
|
231
|
+
|
|
232
|
+
- id: agent-instructions
|
|
233
|
+
name: '@xneog/dsh-agent-instructions'
|
|
234
|
+
config:
|
|
235
|
+
maxBytes: 65536
|
|
236
|
+
|
|
237
|
+
- id: skill
|
|
238
|
+
name: '@xneog/dsh-skill'
|
|
239
|
+
|
|
240
|
+
- id: skill-filesystem
|
|
241
|
+
name: '@xneog/dsh-skill-filesystem'
|
|
242
|
+
|
|
243
|
+
- id: skill-badge
|
|
244
|
+
name: '@xneog/dsh-skill-badge'
|
|
245
|
+
disabled: true
|
|
246
|
+
|
|
247
|
+
- id: tool-skill
|
|
248
|
+
name: '@xneog/dsh-tool-skill'
|
|
249
|
+
|
|
250
|
+
- id: commands
|
|
251
|
+
name: '@xneog/dsh-commands'
|
|
252
|
+
|
|
253
|
+
- id: command-feedback
|
|
254
|
+
name: '@xneog/dsh-command-feedback'
|
|
255
|
+
|
|
256
|
+
- id: goal
|
|
257
|
+
name: '@xneog/dsh-goal'
|
|
258
|
+
|
|
259
|
+
- id: goal-round-driver
|
|
260
|
+
name: '@xneog/dsh-goal-round-driver'
|
|
261
|
+
|
|
262
|
+
- id: command-goal
|
|
263
|
+
name: '@xneog/dsh-command-goal'
|
|
264
|
+
|
|
265
|
+
- id: plan-mode
|
|
266
|
+
name: '@xneog/dsh-plan-mode'
|
|
267
|
+
config:
|
|
268
|
+
section: |
|
|
269
|
+
You are in plan mode. Stay in plan mode until exit_plan_mode succeeds or the user switches the session mode. Imperative language to implement changes means plan the implementation, not execute it. A user's conversational agreement — including an answer confirming something you asked — approves nothing and does not end plan mode; fold the confirmed decision into the plan and submit it through exit_plan_mode.
|
|
270
|
+
|
|
271
|
+
Explore first. Use non-mutating reads, searches, static analysis, and checks to ground the plan in the actual repository. Do not edit or write files, change configuration, run formatters or code generation that rewrites tracked files, commit, or otherwise carry out the plan. Prefer existing functions and patterns over new machinery.
|
|
272
|
+
|
|
273
|
+
The tool catalog stays the same across modes for request-cache stability. These plan-mode rules override any later tool description or guidance that suggests using mutation tools; those tools remain listed only to keep the request shape stable. Do not use todo_write to track this planning phase: it tracks implementation after an approved plan, while the plan itself belongs in exit_plan_mode.
|
|
274
|
+
|
|
275
|
+
Resolve discoverable facts by inspection. Use ask_user_question only for user-owned choices or material ambiguity that inspection cannot answer. Do not ask the user where code lives or how current behavior works when you can find out.
|
|
276
|
+
|
|
277
|
+
Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public API, schema, and data-flow changes; cover edge cases, failure modes, tests, acceptance criteria, and explicit assumptions. Keep it concise enough to review but detailed enough that another engineer can implement it without making design decisions.
|
|
278
|
+
|
|
279
|
+
When ready, call exit_plan_mode with the complete plan markdown, starting with a # title. Make exit_plan_mode the only and final tool call in that assistant response: it presents the plan for approval, and implementation begins only in a later step after approval. Do not paste the final plan as a plain reply or ask "should I proceed?" through prose or ask_user_question. If review rejects it, incorporate the feedback and present again. If the review channel is unavailable or aborted, stay in plan mode and ask the user to switch modes manually; do not proceed with implementation.
|
|
280
|
+
|
|
281
|
+
- id: token-meter
|
|
282
|
+
name: '@xneog/dsh-token-meter'
|
|
283
|
+
|
|
284
|
+
- id: compaction-basic
|
|
285
|
+
name: '@xneog/dsh-compaction-basic'
|
|
286
|
+
|
|
287
|
+
# Human `/compact`: one useful reduction below the automatic threshold. Backend
|
|
288
|
+
# independent, so it follows whichever compaction service this leaf mounts.
|
|
289
|
+
- id: command-compact
|
|
290
|
+
name: '@xneog/dsh-command-compact'
|
|
291
|
+
|
|
292
|
+
- id: subagent
|
|
293
|
+
name: '@xneog/dsh-subagent'
|
|
294
|
+
|
|
295
|
+
- id: subagent-spawn-in-process
|
|
296
|
+
name: '@xneog/dsh-subagent-spawn-in-process'
|
|
297
|
+
config:
|
|
298
|
+
providerName: spawn
|
|
299
|
+
|
|
300
|
+
- id: subagent-fork-in-process
|
|
301
|
+
name: '@xneog/dsh-subagent-fork-in-process'
|
|
302
|
+
config:
|
|
303
|
+
providerName: fork
|
|
304
|
+
|
|
305
|
+
# Continuable background children are selected per delegation tool. The
|
|
306
|
+
# separately loaded follow-up tool registers the one global `send_message`.
|
|
307
|
+
- id: tool-subagent-control
|
|
308
|
+
name: '@xneog/dsh-tool-subagent-control'
|
|
309
|
+
|
|
310
|
+
- id: tool-subagent-list-agents
|
|
311
|
+
name: '@xneog/dsh-tool-subagent-control/list-agents'
|
|
312
|
+
|
|
313
|
+
- id: tool-subagent
|
|
314
|
+
name: '@xneog/dsh-tool-subagent'
|
|
315
|
+
config:
|
|
316
|
+
provider: spawn
|
|
317
|
+
toolName: subagent
|
|
318
|
+
backgroundMode: continuable
|
|
319
|
+
|
|
320
|
+
# Fork stays one-shot: a continuable child's `report` tool and prompt
|
|
321
|
+
# section precede the inherited history a fork exists to reuse; one-shot
|
|
322
|
+
# fork children install neither, keeping the parent's request prefix.
|
|
323
|
+
# See .agents/notes/implemented/architecture/2026-08-10-fork-children-stay-one-shot.md.
|
|
324
|
+
- id: tool-subagent-fork
|
|
325
|
+
name: '@xneog/dsh-tool-subagent'
|
|
326
|
+
config:
|
|
327
|
+
provider: fork
|
|
328
|
+
toolName: subagent_fork
|
|
329
|
+
backgroundMode: one-shot
|
|
330
|
+
|
|
331
|
+
# Optional direct-child return channel; absent from roots and one-shot agents.
|
|
332
|
+
- id: tool-subagent-report
|
|
333
|
+
name: '@xneog/dsh-tool-subagent-report'
|
|
334
|
+
|
|
335
|
+
- id: workflow-worker-thread
|
|
336
|
+
name: '@xneog/dsh-workflow-worker-thread'
|
|
337
|
+
config:
|
|
338
|
+
provider: spawn
|
|
339
|
+
|
|
340
|
+
- id: tool-workflow
|
|
341
|
+
name: '@xneog/dsh-tool-workflow'
|
|
342
|
+
|
|
343
|
+
- id: timeout-policy
|
|
344
|
+
name: '@xneog/dsh-tool-call-timeout-policy'
|
|
345
|
+
|
|
346
|
+
- id: spill-local
|
|
347
|
+
name: '@xneog/dsh-spill-local'
|
|
348
|
+
|
|
349
|
+
- id: spill-policy
|
|
350
|
+
name: '@xneog/dsh-spill-policy'
|
|
351
|
+
config:
|
|
352
|
+
maxInlineBytes: 50000
|
|
353
|
+
|
|
354
|
+
# Durability checkpoints before each model request and top-level dispatch.
|
|
355
|
+
- id: session-checkpoint-policy
|
|
356
|
+
name: '@xneog/dsh-session-checkpoint-policy'
|
|
357
|
+
|
|
358
|
+
# Compacts oversized tool results before the broader conversation compactor
|
|
359
|
+
# runs, preserving the model-visible result within the configured budget.
|
|
360
|
+
- id: tool-result-pruner
|
|
361
|
+
name: '@xneog/dsh-compaction-tool-result-pruner'
|
|
362
|
+
config:
|
|
363
|
+
thresholdChars: 8192
|
|
364
|
+
headChars: 4096
|
|
365
|
+
tailChars: 1024
|
|
366
|
+
|
|
367
|
+
- id: tool-todo
|
|
368
|
+
name: '@xneog/dsh-tool-todo'
|
|
369
|
+
config:
|
|
370
|
+
allowParallelInProgress: true
|
|
371
|
+
|
|
372
|
+
# Persisted same-session goals reach the model and the slash menu here; the
|
|
373
|
+
# domain, driver, and `/goal` command are above.
|
|
374
|
+
- id: tool-goal
|
|
375
|
+
name: '@xneog/dsh-tool-goal'
|
|
376
|
+
|
|
377
|
+
# Fresh-agent Ralph iteration over a build-time-fixed script.
|
|
378
|
+
- id: tool-ralph
|
|
379
|
+
name: '@xneog/dsh-tool-ralph'
|
|
380
|
+
config:
|
|
381
|
+
subagentProvider: spawn
|
|
382
|
+
maxRounds: 64
|
|
383
|
+
|
|
384
|
+
- id: tool-str-replace-editor
|
|
385
|
+
name: '@xneog/dsh-tool-str-replace-editor'
|
|
386
|
+
config:
|
|
387
|
+
maxOutputChars: 16000
|
|
388
|
+
|
|
389
|
+
# Consecutive-repeat reminders on the tool chain.
|
|
390
|
+
- id: repeat-tool-reminder
|
|
391
|
+
name: '@xneog/dsh-repeat-tool-reminder'
|
|
392
|
+
config:
|
|
393
|
+
thresholds: [3, 5, 8]
|
|
394
|
+
argumentsPreviewChars: 500
|
|
395
|
+
|
|
396
|
+
# Every mode enables the stable model-facing web_search tool. DeepSeek search
|
|
397
|
+
# resolves the same DEEPSEEK_API_KEY credential the Models page manages for
|
|
398
|
+
# chat, at each search; its Messages endpoint is separate from the
|
|
399
|
+
# chat-completions endpoint, so it takes its own base-URL override. Fetch stays
|
|
400
|
+
# disabled and no fetch provider is mounted: that provider defers SSRF
|
|
401
|
+
# protection and the model would choose the request target. Search is a full
|
|
402
|
+
# auxiliary model request with server-side retrieval, so this shipped DeepSeek
|
|
403
|
+
# route gets 60s while the provider-neutral tool default remains 30s.
|
|
404
|
+
- id: web
|
|
405
|
+
name: '@xneog/dsh-web'
|
|
406
|
+
config:
|
|
407
|
+
searchProvider: deepseek-official
|
|
408
|
+
|
|
409
|
+
- id: web-search-deepseek
|
|
410
|
+
name: '@xneog/dsh-web-search-deepseek'
|
|
411
|
+
config:
|
|
412
|
+
apiKeyEnv: DEEPSEEK_API_KEY
|
|
413
|
+
|
|
414
|
+
- id: tool-web
|
|
415
|
+
name: '@xneog/dsh-tool-web'
|
|
416
|
+
config:
|
|
417
|
+
fetch: false
|
|
418
|
+
searchTimeoutMs: 60000
|
|
419
|
+
|
|
420
|
+
# ── rows every mode mounts, whose values each overlay may state ──────────────
|
|
421
|
+
|
|
422
|
+
# The tool registry. Presentation mode is a deployment choice; omitting it here
|
|
423
|
+
# keeps the schema default (native).
|
|
424
|
+
- id: tools
|
|
425
|
+
name: '@xneog/dsh-tools'
|
|
426
|
+
|
|
427
|
+
# The deployment persona is a deployment choice; plan-mode and tool plugins own
|
|
428
|
+
# their own prompt sections.
|
|
429
|
+
- id: system-prompt
|
|
430
|
+
name: '@xneog/dsh-system-prompt'
|
|
431
|
+
config:
|
|
432
|
+
persona: ''
|
|
433
|
+
|
|
434
|
+
# Agents created at startup. The base stays empty; raw overlays may create
|
|
435
|
+
# agents, while Web creates sessions on client request.
|
|
436
|
+
- id: agent-loop
|
|
437
|
+
name: '@xneog/dsh-agent-loop'
|
|
438
|
+
config:
|
|
439
|
+
agents: []
|
|
440
|
+
|
|
441
|
+
# The sandboxed filesystem provider. `cwd` defaults to `process.cwd()`; an
|
|
442
|
+
# overlay can pin another workspace.
|
|
443
|
+
- id: fs-sandbox
|
|
444
|
+
name: '@xneog/dsh-fs-sandbox'
|
|
445
|
+
|
|
446
|
+
# The native DeepSeek adapter. No key or endpoint is inlined: both resolve per
|
|
447
|
+
# request from the `llm-deepseek:` settings section over this entry, with the
|
|
448
|
+
# key coming from the credential store below. Thinking defaults are a deployment
|
|
449
|
+
# choice.
|
|
450
|
+
- id: llm-deepseek
|
|
451
|
+
name: '@xneog/dsh-llm-deepseek'
|
package/lib/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/lib/invariant.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region lib/types/invariant.js
|
|
2
|
+
/**
|
|
3
|
+
* Package-owned invariant companion for `@xneog/dsh-base`.
|
|
4
|
+
* @module @xneog/dsh-base/invariant
|
|
5
|
+
*/
|
|
6
|
+
const PACKAGE_NAME = "@xneog/dsh-base";
|
|
7
|
+
/** Cordis companion plugin name. */
|
|
8
|
+
const name = "base-bundle-invariant";
|
|
9
|
+
/** Service required before the companion can register. */
|
|
10
|
+
const inject = ["invariants"];
|
|
11
|
+
const install = () => {};
|
|
12
|
+
/**
|
|
13
|
+
* Register this package's invariant companion.
|
|
14
|
+
* @param ctx - Cordis context carrying the invariant service.
|
|
15
|
+
* @returns the installed registration's disposer after setup succeeds.
|
|
16
|
+
*/
|
|
17
|
+
const apply = (ctx) => Promise.resolve(ctx.invariants.register(PACKAGE_NAME, install));
|
|
18
|
+
//#endregion
|
|
19
|
+
export { apply, inject, name };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @xneog/dsh-base — the shared dsh core as a profile bundle. The
|
|
3
|
+
* package's substance is `cordis.patch.yml`, declared by the `dsh.bundle.patch`
|
|
4
|
+
* manifest field and resolved by the profile composer through that field;
|
|
5
|
+
* this module carries no runtime API.
|
|
6
|
+
* @module @xneog/dsh-base
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package-owned invariant companion for `@xneog/dsh-base`.
|
|
3
|
+
* @module @xneog/dsh-base/invariant
|
|
4
|
+
*/
|
|
5
|
+
import type { Context } from '@xneog/cordis';
|
|
6
|
+
/** Cordis companion plugin name. */
|
|
7
|
+
export declare const name = "base-bundle-invariant";
|
|
8
|
+
/** Service required before the companion can register. */
|
|
9
|
+
export declare const inject: string[];
|
|
10
|
+
/**
|
|
11
|
+
* Register this package's invariant companion.
|
|
12
|
+
* @param ctx - Cordis context carrying the invariant service.
|
|
13
|
+
* @returns the installed registration's disposer after setup succeeds.
|
|
14
|
+
*/
|
|
15
|
+
export declare const apply: (ctx: Context) => Promise<() => void>;
|
|
16
|
+
//# sourceMappingURL=invariant.d.ts.map
|
package/package.json
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xneog/dsh-base",
|
|
3
|
+
"description": "The shared dsh core as a profile bundle: every profile's first patch layer, inserting the base plugin rows over the empty profile root",
|
|
4
|
+
"version": "0.1.0-20260818184352-4561870be6",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/gomes007-alt/xneog-harness.git",
|
|
11
|
+
"directory": "packages/bundle/base"
|
|
12
|
+
},
|
|
13
|
+
"type": "module",
|
|
14
|
+
"main": "lib/index.js",
|
|
15
|
+
"types": "lib/types/index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./lib/types/index.d.ts",
|
|
19
|
+
"default": "./lib/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./invariant": {
|
|
22
|
+
"types": "./lib/types/invariant.d.ts",
|
|
23
|
+
"default": "./lib/invariant.js"
|
|
24
|
+
},
|
|
25
|
+
"./cordis.patch.yml": "./cordis.patch.yml",
|
|
26
|
+
"./src/*": "./src/*",
|
|
27
|
+
"./package.json": "./package.json"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"lib/index.js",
|
|
31
|
+
"lib/invariant.js",
|
|
32
|
+
"cordis.patch.yml",
|
|
33
|
+
"lib/types/**/*.d.ts"
|
|
34
|
+
],
|
|
35
|
+
"license": "MIT",
|
|
36
|
+
"dsh": {
|
|
37
|
+
"bundle": {
|
|
38
|
+
"patch": "./cordis.patch.yml"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@xneog/cordis-plugin-hmr": "0.1.0-20260818184352-4561870be6",
|
|
43
|
+
"@xneog/cordis-plugin-timer": "0.1.0-20260818184352-4561870be6",
|
|
44
|
+
"@xneog/dsh-agent": "0.1.0-20260818184352-4561870be6",
|
|
45
|
+
"@xneog/dsh-agent-default-model": "0.1.0-20260818184352-4561870be6",
|
|
46
|
+
"@xneog/dsh-agent-loop": "0.1.0-20260818184352-4561870be6",
|
|
47
|
+
"@xneog/dsh-attachment-local": "0.1.0-20260818184352-4561870be6",
|
|
48
|
+
"@xneog/dsh-shell-env": "0.1.0-20260818184352-4561870be6",
|
|
49
|
+
"@xneog/dsh-bash-sandbox": "0.1.0-20260818184352-4561870be6",
|
|
50
|
+
"@xneog/dsh-command-compact": "0.1.0-20260818184352-4561870be6",
|
|
51
|
+
"@xneog/dsh-command-feedback": "0.1.0-20260818184352-4561870be6",
|
|
52
|
+
"@xneog/dsh-command-goal": "0.1.0-20260818184352-4561870be6",
|
|
53
|
+
"@xneog/dsh-commands": "0.1.0-20260818184352-4561870be6",
|
|
54
|
+
"@xneog/dsh-compaction-basic": "0.1.0-20260818184352-4561870be6",
|
|
55
|
+
"@xneog/dsh-compaction-tool-result-pruner": "0.1.0-20260818184352-4561870be6",
|
|
56
|
+
"@xneog/dsh-credentials-local": "0.1.0-20260818184352-4561870be6",
|
|
57
|
+
"@xneog/dsh-fs-local": "0.1.0-20260818184352-4561870be6",
|
|
58
|
+
"@xneog/dsh-fs-observation-policy": "0.1.0-20260818184352-4561870be6",
|
|
59
|
+
"@xneog/dsh-fs-sandbox": "0.1.0-20260818184352-4561870be6",
|
|
60
|
+
"@xneog/dsh-goal": "0.1.0-20260818184352-4561870be6",
|
|
61
|
+
"@xneog/dsh-goal-round-driver": "0.1.0-20260818184352-4561870be6",
|
|
62
|
+
"@xneog/dsh-api-gateway": "0.1.0-20260818184352-4561870be6",
|
|
63
|
+
"@xneog/dsh-llm": "0.1.0-20260818184352-4561870be6",
|
|
64
|
+
"@xneog/dsh-llm-deepseek": "0.1.0-20260818184352-4561870be6",
|
|
65
|
+
"@xneog/dsh-llm-pi-ai": "0.1.0-20260818184352-4561870be6",
|
|
66
|
+
"@xneog/dsh-llm-retry": "0.1.0-20260818184352-4561870be6",
|
|
67
|
+
"@xneog/dsh-permission-presets": "0.1.0-20260818184352-4561870be6",
|
|
68
|
+
"@xneog/dsh-plan-mode": "0.1.0-20260818184352-4561870be6",
|
|
69
|
+
"@xneog/dsh-pwsh-sandbox": "0.1.0-20260818184352-4561870be6",
|
|
70
|
+
"@xneog/dsh-repeat-tool-reminder": "0.1.0-20260818184352-4561870be6",
|
|
71
|
+
"@xneog/dsh-sandbox-local": "0.1.0-20260818184352-4561870be6",
|
|
72
|
+
"@xneog/dsh-sandbox-policy": "0.1.0-20260818184352-4561870be6",
|
|
73
|
+
"@xneog/dsh-session": "0.1.0-20260818184352-4561870be6",
|
|
74
|
+
"@xneog/dsh-session-checkpoint-policy": "0.1.0-20260818184352-4561870be6",
|
|
75
|
+
"@xneog/dsh-session-persistence-jsonl": "0.1.0-20260818184352-4561870be6",
|
|
76
|
+
"@xneog/dsh-session-projection": "0.1.0-20260818184352-4561870be6",
|
|
77
|
+
"@xneog/dsh-session-query-sqlite": "0.1.0-20260818184352-4561870be6",
|
|
78
|
+
"@xneog/dsh-session-telemetry-otel": "0.1.0-20260818184352-4561870be6",
|
|
79
|
+
"@xneog/dsh-session-title": "0.1.0-20260818184352-4561870be6",
|
|
80
|
+
"@xneog/dsh-session-title-first-prompt-llm": "0.1.0-20260818184352-4561870be6",
|
|
81
|
+
"@xneog/dsh-settings-file": "0.1.0-20260818184352-4561870be6",
|
|
82
|
+
"@xneog/dsh-skill": "0.1.0-20260818184352-4561870be6",
|
|
83
|
+
"@xneog/dsh-skill-badge": "0.1.0-20260818184352-4561870be6",
|
|
84
|
+
"@xneog/dsh-skill-filesystem": "0.1.0-20260818184352-4561870be6",
|
|
85
|
+
"@xneog/dsh-spill-local": "0.1.0-20260818184352-4561870be6",
|
|
86
|
+
"@xneog/dsh-spill-policy": "0.1.0-20260818184352-4561870be6",
|
|
87
|
+
"@xneog/dsh-subagent": "0.1.0-20260818184352-4561870be6",
|
|
88
|
+
"@xneog/dsh-subagent-fork-in-process": "0.1.0-20260818184352-4561870be6",
|
|
89
|
+
"@xneog/dsh-subagent-spawn-in-process": "0.1.0-20260818184352-4561870be6",
|
|
90
|
+
"@xneog/dsh-subprocess-local": "0.1.0-20260818184352-4561870be6",
|
|
91
|
+
"@xneog/dsh-system-prompt": "0.1.0-20260818184352-4561870be6",
|
|
92
|
+
"@xneog/dsh-jobs-local": "0.1.0-20260818184352-4561870be6",
|
|
93
|
+
"@xneog/dsh-tool-call-timeout-policy": "0.1.0-20260818184352-4561870be6",
|
|
94
|
+
"@xneog/dsh-token-meter": "0.1.0-20260818184352-4561870be6",
|
|
95
|
+
"@xneog/dsh-tool-bash": "0.1.0-20260818184352-4561870be6",
|
|
96
|
+
"@xneog/dsh-tool-fs": "0.1.0-20260818184352-4561870be6",
|
|
97
|
+
"@xneog/dsh-tool-fs-search": "0.1.0-20260818184352-4561870be6",
|
|
98
|
+
"@xneog/dsh-tool-goal": "0.1.0-20260818184352-4561870be6",
|
|
99
|
+
"@xneog/dsh-tool-pwsh": "0.1.0-20260818184352-4561870be6",
|
|
100
|
+
"@xneog/dsh-tool-ralph": "0.1.0-20260818184352-4561870be6",
|
|
101
|
+
"@xneog/dsh-tool-skill": "0.1.0-20260818184352-4561870be6",
|
|
102
|
+
"@xneog/dsh-tool-str-replace-editor": "0.1.0-20260818184352-4561870be6",
|
|
103
|
+
"@xneog/dsh-tool-subagent": "0.1.0-20260818184352-4561870be6",
|
|
104
|
+
"@xneog/dsh-tool-subagent-control": "0.1.0-20260818184352-4561870be6",
|
|
105
|
+
"@xneog/dsh-tool-subagent-report": "0.1.0-20260818184352-4561870be6",
|
|
106
|
+
"@xneog/dsh-tool-jobs": "0.1.0-20260818184352-4561870be6",
|
|
107
|
+
"@xneog/dsh-tool-todo": "0.1.0-20260818184352-4561870be6",
|
|
108
|
+
"@xneog/dsh-tool-web": "0.1.0-20260818184352-4561870be6",
|
|
109
|
+
"@xneog/dsh-tool-workflow": "0.1.0-20260818184352-4561870be6",
|
|
110
|
+
"@xneog/dsh-tools": "0.1.0-20260818184352-4561870be6",
|
|
111
|
+
"@xneog/dsh-typert-loader": "0.1.0-20260818184352-4561870be6",
|
|
112
|
+
"@xneog/dsh-typert-registry": "0.1.0-20260818184352-4561870be6",
|
|
113
|
+
"@xneog/dsh-user-approval": "0.1.0-20260818184352-4561870be6",
|
|
114
|
+
"@xneog/dsh-user-questions": "0.1.0-20260818184352-4561870be6",
|
|
115
|
+
"@xneog/dsh-web": "0.1.0-20260818184352-4561870be6",
|
|
116
|
+
"@xneog/dsh-web-search-deepseek": "0.1.0-20260818184352-4561870be6",
|
|
117
|
+
"@xneog/dsh-workflow-worker-thread": "0.1.0-20260818184352-4561870be6",
|
|
118
|
+
"@xneog/dsh-agent-instructions": "0.1.0-20260818184352-4561870be6"
|
|
119
|
+
},
|
|
120
|
+
"peerDependencies": {
|
|
121
|
+
"@xneog/dsh-invariants": "0.1.0-20260818184352-4561870be6",
|
|
122
|
+
"@xneog/cordis": "0.1.0-20260818184352-4561870be6"
|
|
123
|
+
},
|
|
124
|
+
"devDependencies": {
|
|
125
|
+
"@xneog/dsh-invariants": "0.1.0-20260818184352-4561870be6",
|
|
126
|
+
"@xneog/cordis": "0.1.0-20260818184352-4561870be6"
|
|
127
|
+
}
|
|
128
|
+
}
|