@deepseek-ai/dsh-headless 0.2.1-alpha.1 → 0.2.1-alpha.3
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/README.i18n.yaml +11 -8
- package/README.md +23 -2
- package/README.zh.md +23 -2
- package/cordis.patch.yml +10 -1
- package/lib/index.js +20 -1
- package/package.json +31 -24
package/README.i18n.yaml
CHANGED
|
@@ -18,8 +18,11 @@
|
|
|
18
18
|
en: 4447012f4c84100d
|
|
19
19
|
zh: faf579ae9f04c096
|
|
20
20
|
/deepseek-ai-dsh-headless/use-this-package/running-a-one-shot-task:
|
|
21
|
-
en:
|
|
22
|
-
zh:
|
|
21
|
+
en: 89a48af61a38afc3
|
|
22
|
+
zh: fe202a1bb2c11781
|
|
23
|
+
/deepseek-ai-dsh-headless/use-this-package/credentials:
|
|
24
|
+
en: ca8217837ee9c698
|
|
25
|
+
zh: fa20daf27d4e09ef
|
|
23
26
|
/deepseek-ai-dsh-headless/use-this-package/choosing-the-session-identity:
|
|
24
27
|
en: dbaa2fac63910a4c
|
|
25
28
|
zh: 4fd5c17815ca444b
|
|
@@ -36,14 +39,14 @@
|
|
|
36
39
|
en: be1b73a6d0ee3902
|
|
37
40
|
zh: bdba099685d68b27
|
|
38
41
|
/deepseek-ai-dsh-headless/understand-the-implementation/run-flow:
|
|
39
|
-
en:
|
|
40
|
-
zh:
|
|
42
|
+
en: 3729fbdc598637da
|
|
43
|
+
zh: 254c6961b65b9e2b
|
|
41
44
|
/deepseek-ai-dsh-headless/understand-the-implementation/patch-surface-over-base:
|
|
42
45
|
en: a22752c052878579
|
|
43
46
|
zh: 1e42c946d8673eeb
|
|
44
47
|
/deepseek-ai-dsh-headless/understand-the-implementation/exit-mapping:
|
|
45
|
-
en:
|
|
46
|
-
zh:
|
|
48
|
+
en: c2466d3d8a26177a
|
|
49
|
+
zh: b75743bfa2e7723a
|
|
47
50
|
/deepseek-ai-dsh-headless/understand-the-implementation/source-map:
|
|
48
51
|
en: d82278600e0efdbd
|
|
49
52
|
zh: 0f546bdba164ef25
|
|
@@ -57,8 +60,8 @@
|
|
|
57
60
|
en: 0b0f74b412c7c6d8
|
|
58
61
|
zh: 6e8f918d0c4bf342
|
|
59
62
|
/deepseek-ai-dsh-headless/known-limitations-and-deferred-work:
|
|
60
|
-
en:
|
|
61
|
-
zh:
|
|
63
|
+
en: 3a6dc9666d852219
|
|
64
|
+
zh: b764f203815e179e
|
|
62
65
|
/deepseek-ai-dsh-headless/known-limitations-and-deferred-work/dev-note:
|
|
63
66
|
en: e67f633dc6fe7773
|
|
64
67
|
zh: 3bb0c20c93f16f98
|
package/README.md
CHANGED
|
@@ -49,6 +49,26 @@ The task and run options are supplied through three settings:
|
|
|
49
49
|
|
|
50
50
|
The generated [configuration catalog](../../../docs/config-catalog.md#deepseek-aidsh-headless) is the exhaustive source for every accepted field and its JSDoc.
|
|
51
51
|
|
|
52
|
+
<a id="credentials"></a>
|
|
53
|
+
### Credentials
|
|
54
|
+
|
|
55
|
+
The shipped headless profile disables the managed credential store and its authorization and DeepSeek account consumers. API-key routes use the launch environment, then `<invocation cwd>/.env`, then `$DSH_HOME/.env`. Keys and sign-ins saved by the GUI are ignored without changing their file. Providers that require a saved sign-in fail unless stored authentication is restored; external provider credential chains, such as AWS profiles, remain available.
|
|
56
|
+
|
|
57
|
+
Unset an empty launch variable to allow its `.env` fallback; an exported empty value shadows that fallback.
|
|
58
|
+
|
|
59
|
+
To restore stored authentication, add these rows to `$DSH_HOME/profiles/headless/cordis.patch.yml` or a `--patch` overlay:
|
|
60
|
+
|
|
61
|
+
```yaml
|
|
62
|
+
- id: credentials
|
|
63
|
+
disabled: false
|
|
64
|
+
- id: authorization
|
|
65
|
+
disabled: false
|
|
66
|
+
- id: deepseek-account
|
|
67
|
+
disabled: false
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
The restored store uses [saved credentials before environment fallbacks](../../credentials/credentials-local/README.md). Web, SDK and ACP profiles keep that default ordering. Headless sessions, settings and tool behavior are unchanged; this profile choice is not a filesystem access boundary.
|
|
71
|
+
|
|
52
72
|
### Choosing the session identity
|
|
53
73
|
|
|
54
74
|
Every invocation defaults to a fresh `session-<uuid>` identity, which `--json` reports in its opening `session` event. Pass `--session-id <id>` to continue that conversation: the runner adopts the persisted Session with that id, and an id with no stored Session fails before the task runs rather than quietly opening an empty history. Adoption requires the composed `sessionPersistence` and `sessionQuery` services, so a profile that omits either fails loudly instead of returning an id whose history dies with the process. An Agent already live under the requested id in this process is refused: another owner may still drive it, so the runner cannot claim an exclusive run interval over it. The identity is opaque, so the exact string is used, whitespace included. The working directory is resolved through the mounted filesystem provider (`fs.resolve('.')` and `fs.processPath()`), or the process cwd when no filesystem service is mounted; new Sessions record that directory. Adoption compares the recorded cwd with the same provider-resolved directory and refuses a Session that is a subagent or forked session, that recorded no working directory, that runs under an agent preset this profile does not compose, or whose preset record is malformed — the check reads the preset the Session log currently records, so a Session that switched preset while blank is rejected too. A supervisor therefore cannot silently drive someone else's conversation under a different composition; any mismatch fails before the task runs.
|
|
@@ -77,7 +97,7 @@ The runner is a direct driver over the core API carrier: it resolves the Agent i
|
|
|
77
97
|
|
|
78
98
|
### Run flow
|
|
79
99
|
|
|
80
|
-
The runner awaits the complete application (`ctx.get('loader')?.await()`) so the composed tools and adapters are not half-mounted, reads the shared [`agentDefaultModel`](../../core/agent-default-model/README.md) selection, resolves the task from config or stdin, then resolves the Agent identity: a fresh `session-<uuid>` by default, or the persisted Session `--session-id` names, which it adopts through [`sessionQuery`](../../session-query/session-query/README.md) and refuses when no log exists. It submits the task as an ordinary user message. Without `--json` it streams that Agent's non-empty reasoning deltas to stderr; with `--json` it projects the run instead. It waits for
|
|
100
|
+
The runner awaits the complete application (`ctx.get('loader')?.await()`) so the composed tools and adapters are not half-mounted, reads the shared [`agentDefaultModel`](../../core/agent-default-model/README.md) selection, resolves the task from config or stdin, then resolves the Agent identity: a fresh `session-<uuid>` by default, or the persisted Session `--session-id` names, which it adopts through [`sessionQuery`](../../session-query/session-query/README.md) and refuses when no log exists. It submits the task as an ordinary user message. Without `--json` it streams that Agent's non-empty reasoning deltas to stderr; with `--json` it projects the run instead. It waits for child work and rechecks that the parent remains idle with an unchanged Session sequence before finishing, so settlement notices can drive a final parent answer. Idle children with parked inbox messages do not delay completion; process shutdown discards their unclaimed messages. It then flushes the Session and folds the owned interval (`firstSeq` onward) into the last non-empty `assistant/message` text and final `turn/end` reason. It writes the final text to stdout (or the `final` event) and requests exit.
|
|
81
101
|
|
|
82
102
|
### Patch surface over base
|
|
83
103
|
|
|
@@ -85,7 +105,7 @@ The patch rides over `dsh-base`: it inherits the projection cache and shared PTC
|
|
|
85
105
|
|
|
86
106
|
### Exit mapping
|
|
87
107
|
|
|
88
|
-
A completed final `turn/end` exits 0; any other outcome — aborted, error, or no turn in the owned interval — exits 1. An `error` reason also writes `dsh: <code>: <message>` to stderr. A direct driver failure (for example, Agent creation or an unusable `--session-id`) writes `dsh: <message>` to stderr and exits 1, and in `--json` mode also emits an `error` event.
|
|
108
|
+
A completed final `turn/end` exits 0; any other outcome — aborted, error, or no turn in the owned interval — exits 1. An `error` reason also writes `dsh: <code>: <message>` to stderr. A live Agent failure without a later committed `turn/end` is a direct driver failure, including a summary whose start or end cannot be persisted; an earlier completed turn cannot make that run succeed. A direct driver failure (for example, Agent creation or an unusable `--session-id`) writes `dsh: <message>` to stderr and exits 1, and in `--json` mode also emits an `error` event without a `final` event.
|
|
89
109
|
|
|
90
110
|
### Source map
|
|
91
111
|
|
|
@@ -133,6 +153,7 @@ The runner adds nothing to the request prefix; it only drives one user message t
|
|
|
133
153
|
These limits tell you when headless does not fit and what it needs from the `dsh` launcher. They are current package constraints, not a general CLI comparison or a task backlog.
|
|
134
154
|
|
|
135
155
|
- **One task per run** — after the task is answered the process exits; there is no interactive follow-up, so split multi-step work into separate runs.
|
|
156
|
+
- **Final background-job settlement may be absent from persisted history** — process teardown can end Session routing or close its writer before an owned job settles, including normal completion and signal shutdown; the [job lifecycle contract](../../../docs/subsystems/jobs.md#session-lifecycle-records) defines how consumers retain incomplete intervals.
|
|
136
157
|
- **Runs through the `dsh` launcher** — starting the headless profile another way fails at startup, because only the launcher can request the process exit.
|
|
137
158
|
- **No pre-token heartbeat** — in default mode stderr stays silent until the provider emits a non-empty reasoning delta; a delayed first token exposes no earlier progress signal.
|
|
138
159
|
- **Reasoning enters stderr logs** — in default mode, redirection and supervisors may retain substantially more and potentially sensitive model output; route stderr to a controlled sink when needed.
|
package/README.zh.md
CHANGED
|
@@ -49,6 +49,26 @@ agent 会完成该任务,把提供方的每个非空推理(reasoning)增
|
|
|
49
49
|
|
|
50
50
|
生成的[配置目录](../../../docs/config-catalog.zh.md#deepseek-aidsh-headless)是所有受支持字段及其 JSDoc 的完整真源。
|
|
51
51
|
|
|
52
|
+
<a id="credentials"></a>
|
|
53
|
+
### 凭据
|
|
54
|
+
|
|
55
|
+
随附的 headless profile 禁用托管凭据存储,以及依赖它的 authorization 和 DeepSeek account 消费方。API 密钥路由依次使用启动环境、`<运行命令的目录>/.env` 和 `$DSH_HOME/.env`。GUI 保存的密钥和登录凭据不会被使用,存储文件保持原样。需要已保存登录凭据的提供方会失败,除非恢复存储认证;AWS profile 等提供方外部凭据链仍然可用。
|
|
56
|
+
|
|
57
|
+
启动变量为空时,请取消导出该变量,让 `.env` 后备生效;已导出的空值会遮蔽后备值。
|
|
58
|
+
|
|
59
|
+
要恢复存储认证,请把以下行加入 `$DSH_HOME/profiles/headless/cordis.patch.yml` 或 `--patch` 覆盖文件:
|
|
60
|
+
|
|
61
|
+
```yaml
|
|
62
|
+
- id: credentials
|
|
63
|
+
disabled: false
|
|
64
|
+
- id: authorization
|
|
65
|
+
disabled: false
|
|
66
|
+
- id: deepseek-account
|
|
67
|
+
disabled: false
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
恢复后,存储仍按[已保存凭据优先于环境后备](../../credentials/credentials-local/README.zh.md)解析。Web、SDK 和 ACP profile 保留这一默认顺序。headless 的会话、settings 和工具行为不变;这种 profile 配置选择不构成文件系统访问边界。
|
|
71
|
+
|
|
52
72
|
### 选择 Session 标识
|
|
53
73
|
|
|
54
74
|
每次调用默认使用全新的 `session-<uuid>` 标识,`--json` 会在开头的 `session` 事件里报告它。传入 `--session-id <id>` 延续这段对话:runner 沿用该 id 对应的持久化 Session,而该 id 没有持久化 Session 时会在任务运行前失败,而不是悄悄开出一段空历史。沿用要求已组合 `sessionPersistence` 与 `sessionQuery` 服务,因此缺少任一服务的 profile 会显式失败,而不会返回一个历史随进程消失的 id。本进程中已存在持有该 id 的存活 Agent 时会被拒绝:它的原 owner 可能仍在驱动它,runner 无法取得独占的运行区间。标识是不透明的,因此会原样使用调用方给出的字符串,包括空白字符。工作目录通过已挂载的文件系统提供方解析(`fs.resolve('.')` 与 `fs.processPath()`);未挂载文件系统服务时使用进程 cwd,新 Session 会记录该目录。沿用会将已记录 cwd 与同一提供方解析出的目录比较,并拒绝子 agent 或 fork 会话、未记录工作目录的会话、运行在本 profile 不组合的 agent preset 下的会话,以及 preset 记录畸形的会话——该检查读取 Session 日志当前记录的 preset,因此在空白期切换过 preset 的会话同样会被拒绝。因此监督进程无法在另一套组合下悄悄驱动他人的会话;任一不匹配都会在任务运行前失败。
|
|
@@ -77,7 +97,7 @@ runner 是核心 API 载体之上的直接驱动器:它确定 Agent 标识—
|
|
|
77
97
|
|
|
78
98
|
### 运行流程
|
|
79
99
|
|
|
80
|
-
runner 等待整个应用结算(`ctx.get('loader')?.await()`),确保已组合的工具与适配器不会半挂载,读取共享的 [`agentDefaultModel`](../../core/agent-default-model/README.zh.md) 选择,从配置或 stdin 解析任务,然后确定 Agent 标识:默认是全新的 `session-<uuid>`,或是 `--session-id` 指名的持久化 Session——通过 [`sessionQuery`](../../session-query/session-query/README.zh.md) 沿用,日志不存在时拒绝。它把任务作为普通用户消息提交。不带 `--json` 时,它把该 Agent 的非空推理增量流式写入 stderr;带 `--json`
|
|
100
|
+
runner 等待整个应用结算(`ctx.get('loader')?.await()`),确保已组合的工具与适配器不会半挂载,读取共享的 [`agentDefaultModel`](../../core/agent-default-model/README.zh.md) 选择,从配置或 stdin 解析任务,然后确定 Agent 标识:默认是全新的 `session-<uuid>`,或是 `--session-id` 指名的持久化 Session——通过 [`sessionQuery`](../../session-query/session-query/README.zh.md) 沿用,日志不存在时拒绝。它把任务作为普通用户消息提交。不带 `--json` 时,它把该 Agent 的非空推理增量流式写入 stderr;带 `--json` 时改为投影本次运行。它等待子级工作,并在结束前复核父级仍空闲且 Session 序号未变,让结算通知可以驱动父级生成最终答案。收件箱消息处于停放状态的空闲子级不会延迟完成;进程关闭时丢弃这些未领取消息。随后它对会话执行 flush,并把所属区间(从 `firstSeq` 起)折叠为最后一条非空 `assistant/message` 文本与最终 `turn/end` 原因。最后,它把最终文本写入 stdout(或 `final` 事件)并请求退出。
|
|
81
101
|
|
|
82
102
|
### 基于 base 的 patch 内容
|
|
83
103
|
|
|
@@ -85,7 +105,7 @@ patch 叠加在 `dsh-base` 之上:继承投影缓存与共享 PTC 运行时,
|
|
|
85
105
|
|
|
86
106
|
### 退出映射
|
|
87
107
|
|
|
88
|
-
最终 `turn/end` 完成时退出码为 0;任何其他结果——aborted、error,或所属区间内没有轮次——退出码为 1。结束原因为 `error` 时还会向 stderr 写入 `dsh: <code>: <message
|
|
108
|
+
最终 `turn/end` 完成时退出码为 0;任何其他结果——aborted、error,或所属区间内没有轮次——退出码为 1。结束原因为 `error` 时还会向 stderr 写入 `dsh: <code>: <message>`。若实时 Agent 失败后没有提交更晚的 `turn/end`,则视为直接驱动器失败,包括汇总轮次的开始或结束无法持久化;更早的已完成轮次不能使该次运行成功。直接驱动器失败(例如 Agent 创建失败或不可用的 `--session-id`)向 stderr 写入 `dsh: <message>` 并退出 1,且在 `--json` 模式下额外发出一个 `error` 事件,不发出 `final` 事件。
|
|
89
109
|
|
|
90
110
|
### 源码地图
|
|
91
111
|
|
|
@@ -133,6 +153,7 @@ runner 不向请求前缀添加任何内容;它只是驱动组合出的配置
|
|
|
133
153
|
这些限制告诉你 headless 何时不适用、它需要 `dsh` 启动器提供什么。它们是当前包约束,不是通用的 CLI(命令行界面)对比或任务积压。
|
|
134
154
|
|
|
135
155
|
- **每次运行一个任务**——任务得到回答后进程即退出;没有交互式后续,因此多步工作请拆成多次运行。
|
|
156
|
+
- **持久化历史可能缺少后台 job 的最后一条结算**——进程销毁可能在有主 job 结算前停止 Session 路由或关闭写句柄,正常结束和信号关停也可能如此;[job 生命周期约定](../../../docs/subsystems/jobs.zh.md#session-lifecycle-records)说明消费方如何保留不完整区间。
|
|
136
157
|
- **通过 `dsh` 启动器运行**——以其他方式启动 headless profile 会在启动时失败,因为只有启动器能请求进程退出。
|
|
137
158
|
- **首个 token 前没有心跳**——默认模式下,提供方发出第一个非空推理增量前,stderr 保持静默;延迟首个 token 的提供方不会更早给出进度信号。
|
|
138
159
|
- **推理进入 stderr 日志**——默认模式下,重定向与监督进程可能保留显著更多且可能敏感的模型输出;需要时应把 stderr 路由到受控位置。
|
package/cordis.patch.yml
CHANGED
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
|
|
9
9
|
- id: system-prompt
|
|
10
10
|
config:
|
|
11
|
-
personaSuffix: Your working directory is {{cwd}}.
|
|
12
11
|
personaPrefix: >-
|
|
13
12
|
You are a coding agent powered by the {{model}} model.
|
|
14
13
|
|
|
@@ -32,3 +31,13 @@
|
|
|
32
31
|
|
|
33
32
|
- id: hmr
|
|
34
33
|
disabled: true
|
|
34
|
+
|
|
35
|
+
# One-shot jobs use launch-time credentials instead of the interactive store.
|
|
36
|
+
- id: credentials
|
|
37
|
+
disabled: true
|
|
38
|
+
|
|
39
|
+
- id: authorization
|
|
40
|
+
disabled: true
|
|
41
|
+
|
|
42
|
+
- id: deepseek-account
|
|
43
|
+
disabled: true
|
package/lib/index.js
CHANGED
|
@@ -286,6 +286,7 @@ function fail(io, error, json) {
|
|
|
286
286
|
}
|
|
287
287
|
/**
|
|
288
288
|
* Run one task through one Agent and request process exit.
|
|
289
|
+
* Live Agent failures require a later durable terminal before a recovered run can succeed.
|
|
289
290
|
* @param ctx - plugin context carrying the Agent, default model, Session, and launcher IO services.
|
|
290
291
|
* @param config - task, optional exact Session identity, and output mode.
|
|
291
292
|
* @param io - process-facing effects.
|
|
@@ -324,6 +325,16 @@ async function run(ctx, config, io) {
|
|
|
324
325
|
const firstSeq = agent.session.seq;
|
|
325
326
|
const projection = config.json === true ? projectJsonRun(ctx, agent, io.stdout, { cwd }) : void 0;
|
|
326
327
|
const stopReasoning = projection === void 0 ? streamReasoning(ctx, agent, io.stderr) : void 0;
|
|
328
|
+
let failure;
|
|
329
|
+
const stopErrors = ctx.on("agent/error", ({ agent: subject, error }) => {
|
|
330
|
+
if (subject === agent) failure = {
|
|
331
|
+
error,
|
|
332
|
+
atOffset: agent.session.seq
|
|
333
|
+
};
|
|
334
|
+
});
|
|
335
|
+
const stopTerminals = ctx.on("session/event", (session, event) => {
|
|
336
|
+
if (session === agent.session && event.type === "turn/end" && failure !== void 0 && event.seq >= failure.atOffset) failure = void 0;
|
|
337
|
+
});
|
|
327
338
|
try {
|
|
328
339
|
try {
|
|
329
340
|
agent.followup(createUserMessage({
|
|
@@ -333,17 +344,25 @@ async function run(ctx, config, io) {
|
|
|
333
344
|
}],
|
|
334
345
|
source: { kind: "user" }
|
|
335
346
|
}));
|
|
336
|
-
|
|
347
|
+
const subagents = ctx.get("subagents");
|
|
348
|
+
while (true) {
|
|
349
|
+
await agent.whenIdle();
|
|
350
|
+
const idleSeq = agent.session.seq;
|
|
351
|
+
if (!await subagents?.waitForChildren(agent) && agent.status === "idle" && agent.session.seq === idleSeq) break;
|
|
352
|
+
}
|
|
337
353
|
} finally {
|
|
338
354
|
stopReasoning?.();
|
|
339
355
|
}
|
|
340
356
|
await sessions.flush(agent.session);
|
|
357
|
+
if (failure !== void 0) throw failure.error;
|
|
341
358
|
const outcome = summarize(agent.session, firstSeq);
|
|
342
359
|
if (projection === void 0) io.stdout.write(outcome.text + "\n");
|
|
343
360
|
else projection.finish(outcome.text);
|
|
344
361
|
if (outcome.reason?.kind === "error") io.stderr.write(`dsh: ${outcome.reason.error.code}: ${outcome.reason.error.message}\n`);
|
|
345
362
|
io.exit(outcome.reason?.kind === "completed" ? 0 : 1);
|
|
346
363
|
} finally {
|
|
364
|
+
stopErrors();
|
|
365
|
+
stopTerminals();
|
|
347
366
|
projection?.dispose();
|
|
348
367
|
}
|
|
349
368
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh-headless",
|
|
3
3
|
"description": "The dsh one-shot bundle: a direct core Agent/Session runner over dsh-base with no Host, HTTP, or browser layer",
|
|
4
|
-
"version": "0.2.1-alpha.
|
|
4
|
+
"version": "0.2.1-alpha.3",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -40,32 +40,39 @@
|
|
|
40
40
|
}
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"
|
|
44
|
-
"@deepseek-ai/dsh-cmdline": "0.2.1-alpha.
|
|
45
|
-
"@deepseek-ai/dsh-
|
|
46
|
-
"@deepseek-ai/
|
|
47
|
-
"
|
|
43
|
+
"@deepseek-ai/dsh-brand": "0.2.1-alpha.3",
|
|
44
|
+
"@deepseek-ai/dsh-cmdline": "0.2.1-alpha.3",
|
|
45
|
+
"@deepseek-ai/dsh-util-values": "0.2.1-alpha.3",
|
|
46
|
+
"@deepseek-ai/schemastery": "~3.18.5-alpha.2",
|
|
47
|
+
"commander": "^15.0.0"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"@deepseek-ai/cordis": "~4.0.5-alpha.
|
|
51
|
-
"@deepseek-ai/cordis-plugin-loader": "~1.0.6-alpha.
|
|
52
|
-
"@deepseek-ai/dsh-agent": "0.2.1-alpha.
|
|
53
|
-
"@deepseek-ai/dsh-agent-default-model": "0.2.1-alpha.
|
|
54
|
-
"@deepseek-ai/dsh-llm": "0.2.1-alpha.
|
|
55
|
-
"@deepseek-ai/dsh-session": "0.2.1-alpha.
|
|
56
|
-
"@deepseek-ai/dsh-session-query": "0.2.1-alpha.
|
|
57
|
-
"@deepseek-ai/dsh-fs": "0.2.1-alpha.
|
|
50
|
+
"@deepseek-ai/cordis": "~4.0.5-alpha.2",
|
|
51
|
+
"@deepseek-ai/cordis-plugin-loader": "~1.0.6-alpha.2",
|
|
52
|
+
"@deepseek-ai/dsh-agent": "0.2.1-alpha.3",
|
|
53
|
+
"@deepseek-ai/dsh-agent-default-model": "0.2.1-alpha.3",
|
|
54
|
+
"@deepseek-ai/dsh-llm": "0.2.1-alpha.3",
|
|
55
|
+
"@deepseek-ai/dsh-session": "0.2.1-alpha.3",
|
|
56
|
+
"@deepseek-ai/dsh-session-query": "0.2.1-alpha.3",
|
|
57
|
+
"@deepseek-ai/dsh-fs": "0.2.1-alpha.3",
|
|
58
|
+
"@deepseek-ai/dsh-subagent": "0.2.1-alpha.3"
|
|
58
59
|
},
|
|
59
60
|
"devDependencies": {
|
|
60
|
-
"@deepseek-ai/cordis
|
|
61
|
-
"@deepseek-ai/cordis": "~
|
|
62
|
-
"@deepseek-ai/dsh-agent
|
|
63
|
-
"@deepseek-ai/dsh-agent-
|
|
64
|
-
"@deepseek-ai/dsh-agent": "0.2.1-alpha.
|
|
65
|
-
"@deepseek-ai/dsh-agent-loop-testkit": "0.2.1-alpha.
|
|
66
|
-
"@deepseek-ai/dsh-llm": "0.2.1-alpha.
|
|
67
|
-
"@deepseek-ai/dsh-session
|
|
68
|
-
"@deepseek-ai/dsh-
|
|
69
|
-
"@deepseek-ai/dsh-
|
|
61
|
+
"@deepseek-ai/cordis": "~4.0.5-alpha.2",
|
|
62
|
+
"@deepseek-ai/cordis-plugin-loader": "~1.0.6-alpha.2",
|
|
63
|
+
"@deepseek-ai/dsh-agent": "0.2.1-alpha.3",
|
|
64
|
+
"@deepseek-ai/dsh-agent-default-model": "0.2.1-alpha.3",
|
|
65
|
+
"@deepseek-ai/dsh-agent-loop": "0.2.1-alpha.3",
|
|
66
|
+
"@deepseek-ai/dsh-agent-loop-testkit": "0.2.1-alpha.3",
|
|
67
|
+
"@deepseek-ai/dsh-llm": "0.2.1-alpha.3",
|
|
68
|
+
"@deepseek-ai/dsh-session": "0.2.1-alpha.3",
|
|
69
|
+
"@deepseek-ai/dsh-session-query": "0.2.1-alpha.3",
|
|
70
|
+
"@deepseek-ai/dsh-fs": "0.2.1-alpha.3",
|
|
71
|
+
"@deepseek-ai/dsh-subagent": "0.2.1-alpha.3"
|
|
72
|
+
},
|
|
73
|
+
"peerDependenciesMeta": {
|
|
74
|
+
"@deepseek-ai/dsh-subagent": {
|
|
75
|
+
"optional": true
|
|
76
|
+
}
|
|
70
77
|
}
|
|
71
78
|
}
|