@deepseek-ai/dsh-command-goal 0.1.1-rc.2 → 0.1.2-alpha.2

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 CHANGED
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/goal/command-goal/README.md
5
- README.md: 483f756517f511ec506868b008b88e99b2477dc0
6
- README.zh.md: 3d26d6e9133851691414f8a47da0fd0856787e98
5
+ README.md: bb5aa406b0269e9fbedd1e85d557ac17640e3e73
6
+ README.zh.md: 45864aa93abcd81584b27eff859bbcdd7b22a1f6
package/README.md CHANGED
@@ -1,29 +1,56 @@
1
+ ---
2
+ description: "The human-facing /goal slash command for users and maintainers choosing, composing, or debugging goal control in UI command planes."
3
+ kind: "package-reference"
4
+ ---
5
+
1
6
  # @deepseek-ai/dsh-command-goal
2
7
 
3
8
  English | [中文](README.zh.md)
4
9
 
5
- Human-facing `/goal` control over [`ctx.goals`](../goal/README.md). The plugin registers one global command through [`ctx.commands`](../../interaction/commands/README.md), so every composed command adapter discovers and executes it without a model turn. The [human goal-command Agent Note](../../../.agents/notes/implemented/feature/2026-07-19-human-goal-command.md) owns the UX and composition decisions.
10
+ ## Summary
11
+
12
+ `dsh-command-goal` gives the human `/goal` command over the persisted goal service: a user can create, edit, pause, resume, clear, and inspect the current goal directly from the UI, without involving the model. The command registers in its Cordis scope, so command adapters reading that scope discover and execute it, while command text and output stay in the UI — they never enter model requests. Every accepted mutation persists through the goal service's durable `goal/change` event. Image attachments may accompany a create or edit and are submitted as one ordinary user message so later goal rounds see them. Choose it for interactive deployments with a command adapter; headless and automation apps without one do not need it.
13
+
14
+ ## Table of Contents
15
+
16
+ - [Use this package](#use-this-package)
17
+ - [Understand the implementation](#understand-the-implementation)
18
+ - [Further Exploration](#further-exploration)
19
+ - [Model Experience](#model-experience)
20
+ - [Known Limitations and Deferred Work](#known-limitations-and-deferred-work)
21
+ - [Dev Note](#dev-note)
22
+
23
+ -----
24
+
25
+ <a id="use-this-package"></a>
26
+ ## Use this package
27
+
28
+ Use `dsh-command-goal` in interactive deployments that mount a command adapter — the shipped Web client is the reference. It gives users direct control over the goal lifecycle without a model turn: commands execute in the UI command plane and the adapter renders their results directly.
29
+
30
+ ### Command reference
6
31
 
7
- ## Command contract
32
+ Every sub-command runs against the current goal of the invoking agent; a bare `/goal` shows usage when no goal exists.
8
33
 
9
34
  | Input | Result |
10
35
  |---|---|
11
- | `/goal` | Show the current objective, durable phase, round count/cap, process-local activation, and valid next commands; a blocked goal also shows its policy code and explanation, while no goal shows usage. |
12
- | `/goal <objective>` | Create and arm a goal, or replace a completed goal with a fresh identity. An unfinished goal is never replaced without an explicit clear. |
13
- | `/goal edit <objective>` | Edit the current objective without changing its phase or activation. Editing a completed goal creates a fresh active goal. |
14
- | `/goal pause` | Pause an active goal and disarm continuation. |
15
- | `/goal resume` | Resume a stopped goal or rearm an active goal after session resume/fork, subject to its remaining round cap. |
16
- | `/goal clear` | Clear the current pointer while retaining its durable history and tombstone. |
36
+ | `/goal` | Shows the current objective, durable phase, round count and cap, process-local activation, and valid next commands; a blocked goal also shows its policy code and explanation |
37
+ | `/goal <objective>` | Creates and arms a goal, or replaces a completed goal with a fresh identity |
38
+ | `/goal edit <objective>` | Edits the current objective without changing its phase or activation |
39
+ | `/goal pause` | Pauses an active goal and disarms continuation |
40
+ | `/goal resume` | Resumes a stopped goal, or rearms an active goal after session resume or fork, subject to its remaining round cap |
41
+ | `/goal clear` | Clears the current goal while retaining its durable history |
17
42
 
18
- Control words are case-insensitive only when they occupy the complete input. Every other non-empty suffix is an objective, so `/goal pause after verification` creates that literal objective. The goal domain trims and validates objectives. Because the generic command plane has no modal editor or confirmation primitive, `edit` takes its replacement inline and an unfinished replacement returns a direct error instructing the user to edit or clear.
43
+ ### Input grammar
19
44
 
20
- The command declares `input.images`, so composer image attachments may accompany an invocation. Attachments only accompany an objective: on a successful create or edit the producer submits one user followup carrying the admitted image blocks plus the fixed text `Reference images for the goal objective.`, so later goal rounds read them from ordinary session history without the goal domain storing attachment state. Every other sub-command, and any refused create or edit, returns a direct error and submits nothing, so the dispatching composer keeps the images.
45
+ Control words (`clear`, `pause`, `resume`, `edit`) are recognized only when they occupy the complete input; any other non-empty suffix is an objective, so `/goal pause after verification` creates that literal objective. `edit` takes its replacement inline and refuses to replace an unfinished goal directly. Expected domain rejections become stable, direct command errors without exposing branded ids or revisions; unexpected implementation failures still fail dispatch so adapters can report them as command failures.
21
46
 
22
- Expected domain rejections become stable direct command errors without exposing branded ids or revisions. Unexpected implementation failures still reject dispatch so adapters can report them as command failures. Generic command text and output remain live UI state; `dsh-goal` persists every accepted mutation through its own durable `goal/change` event.
47
+ ### Image attachments
23
48
 
24
- ## Composition
49
+ `/goal` declares image support, so a composer may attach images to an invocation. Attachments only accompany an objective: on a successful create or edit the command submits one user followup carrying the admitted image blocks plus the fixed text `Reference images for the goal objective.`, so later goal rounds read them from ordinary session history without the goal domain storing attachment state. Every other sub-command, and any refused create or edit, returns a direct error and submits nothing, so the dispatching composer keeps the images.
25
50
 
26
- The producer injects `commands` and `goals`. A custom app mounts their owners plus this plugin; automatic continuation remains an independent choice:
51
+ ### Compose it
52
+
53
+ The command injects the commands registry and the goal service. A custom app mounts their owners plus this plugin; automatic continuation remains an independent choice:
27
54
 
28
55
  ```yaml
29
56
  - id: commands
@@ -34,8 +61,47 @@ The producer injects `commands` and `goals`. A custom app mounts their owners pl
34
61
  name: '@deepseek-ai/dsh-command-goal'
35
62
  ```
36
63
 
37
- The shipped `dsh` base enables the persisted-goal stack and this command; the Web client provides its interactive adapter. The ACP automation app enables the domain and model tools without a command adapter; `goals: false` removes that stack. The UI-less `agent-spine-demo` requires an explicit `goals: {}` so headless one-shot callers do not silently change from one physical turn to a multi-round operation.
64
+ The shipped `dsh` base enables the persisted-goal stack and this command. The Web bundle keeps the goal service and driver on the Host, disables the base command producer, and mounts the producer in the `standard`, `code`, and `cordis` agent presets; `minimal` omits it. The ACP automation app enables the domain and model tools without a command adapter. The UI-less `agent-spine-demo` requires an explicit `goals: {}` so headless one-shot callers do not silently change from one physical turn to a multi-round operation.
65
+
66
+ -----
67
+
68
+ <a id="understand-the-implementation"></a>
69
+ ## Understand the implementation
70
+
71
+ <details>
72
+ <summary>Implementation internals — click to expand</summary>
73
+
74
+ This section explains how the command parses input and renders output; the observable contract is covered in [Use this package](#use-this-package).
75
+
76
+ ### Design
77
+
78
+ - **Grammar, not free text.** The parser recognizes only the exact control words (`clear`, `pause`, `resume`, `edit`) when they fill the whole input; every other non-empty suffix is an objective. `edit` alone is invalid, and `edit` refuses to replace an unfinished goal directly.
79
+ - **Domain rejections become stable errors.** `GoalError` outcomes are converted into direct command errors with a fixed message; unexpected failures rethrow so adapters report a command failure rather than a domain result. Rendered output never exposes branded ids or revisions.
80
+ - **Attachments ride the objective.** On a successful create or edit the command submits one user followup carrying the admitted image blocks plus the fixed text `Reference images for the goal objective.`; every other path submits nothing, so the dispatching composer keeps the images.
81
+
82
+ ### Source map
38
83
 
84
+ | File | Role |
85
+ |---|---|
86
+ | [`src/index.ts`](src/index.ts) | Plugin entry: command grammar, status rendering, attachment submission |
87
+ | [`src/invariant.ts`](src/invariant.ts) | Invariant companion: empty (no runtime invariant — the goal domain owns accepted mutations) |
88
+
89
+ </details>
90
+
91
+ -----
92
+
93
+ <a id="further-exploration"></a>
94
+ ## Further Exploration
95
+
96
+ The command is a thin adapter over the goal domain; read these pages for the state it mutates and the registry it plugs into.
97
+
98
+ - [Goal service](../goal/README.md) — the state and lifecycle the command mutates.
99
+ - [Commands service](../../interaction/commands/README.md) — the command registry contract and dispatch.
100
+ - [Human goal-command Agent Note](../../../.agents/notes/implemented/feature/2026-07-19-human-goal-command.md) — the UX and composition decisions.
101
+
102
+ -----
103
+
104
+ <a id="model-experience"></a>
39
105
  ## Model Experience
40
106
 
41
107
  ### Human `/goal` control
@@ -54,7 +120,22 @@ Command discovery, mutations, and direct output do not affect the cache. Later c
54
120
 
55
121
  ## Known Limitations and Deferred Work
56
122
 
123
+ <a id="known-limitations-and-deferred-work"></a>
124
+
125
+
126
+ These limits define when the command is a poor fit or needs special care. They are current package constraints, not a task backlog.
127
+
57
128
  - **Plain-text interaction only** — the generic command registry has no modal edit form or replacement-confirmation callback; inline edit and explicit clear keep destructive intent deterministic across adapters.
58
129
  - **No per-command round-cap argument** — `defaultMaxGoalRounds` remains deployment config, while a direct human request may ask the model to edit `max_goal_rounds` through the separately authorized goal tool.
59
- - **No continuous status widget** — bare `/goal` is the portable observation API; adapter-specific badges and reconnectable command output remain future UI work.
130
+ - **No continuous status widget** — bare `/goal` is the portable observation API; no adapter-specific badges or reconnectable command output are provided.
60
131
  - **Web command adapter only in the shipped apps** — headless, ACP automation, and JSON-RPC adapters do not consume `ctx.commands`. Ordinary prompts can still authorize model-facing goal tools when those are composed.
132
+
133
+ <a id="dev-note"></a>
134
+ ### Dev Note
135
+
136
+ <details>
137
+ <summary>Working context for maintainers — click to expand</summary>
138
+
139
+ This Dev Note is working context for maintainers; it is explicitly non-authoritative. Open, undecided: a continuous status widget and per-command round-cap input; both are deferred UI and configuration work.
140
+
141
+ </details>
package/README.zh.md CHANGED
@@ -1,29 +1,56 @@
1
+ ---
2
+ description: "面向在 UI 命令平面中选择、组合或排查 goal 控制的用户与维护者的 /goal 斜杠命令说明。"
3
+ kind: "package-reference"
4
+ ---
5
+
1
6
  # @deepseek-ai/dsh-command-goal
2
7
 
3
8
  [English](README.md) | 中文
4
9
 
5
- 面向用户的 `/goal` 控制,基于 [`ctx.goals`](../goal/README.zh.md) 实现。该插件通过 [`ctx.commands`](../../interaction/commands/README.zh.md) 注册一个全局命令,因此每个已组合的命令适配器都能发现并执行它,无需模型轮次。[用户 goal 命令 Agent Note](../../../.agents/notes/implemented/feature/2026-07-19-human-goal-command.zh.md) 负责用户体验与组合决策。
10
+ ## 概述
11
+
12
+ `dsh-command-goal` 为用户提供基于持久 goal 服务的 `/goal` 命令:用户可以直接在 UI 中创建、编辑、暂停、恢复、清除并查看当前 goal,无需模型参与。命令在其 Cordis scope 中注册,因此读取该 scope 的命令适配器能发现并执行它;命令文本与输出都留在 UI 中——绝不进入模型请求。每项被接受的变更都会通过 goal 服务的持久 `goal/change` 事件落盘。图片附件可以随 create 或 edit 一起提交,并以一条普通用户消息发出,供后续 Goal Round 读取。为挂载了命令适配器的交互式部署选择它;没有适配器的无头与自动化应用不需要它。
13
+
14
+ ## 目录
15
+
16
+ - [使用本包](#use-this-package)
17
+ - [理解实现](#understand-the-implementation)
18
+ - [进一步探索](#further-exploration)
19
+ - [模型体验](#model-experience)
20
+ - [已知限制与延期工作](#known-limitations-and-deferred-work)
21
+ - [开发备注](#dev-note)
22
+
23
+ -----
24
+
25
+ <a id="use-this-package"></a>
26
+ ## 使用本包
27
+
28
+ 在挂载了命令适配器的交互式部署中使用 `dsh-command-goal`——随附的 Web 客户端是参考实现。它让用户无需模型轮次即可直接控制 goal 生命周期:命令在 UI 命令平面执行,适配器直接渲染其结果。
29
+
30
+ ### 命令参考
6
31
 
7
- ## 命令约定
32
+ 每个子命令都针对调用 agent 的当前 goal 执行;没有 goal 时,裸 `/goal` 显示用法。
8
33
 
9
34
  | 输入 | 结果 |
10
35
  |---|---|
11
- | `/goal` | 显示当前目标、持久 phase、Round 计数/上限、进程本地续行启用状态与有效的下一步命令;被阻塞的 goal 还会显示策略代码和说明,没有 goal 时则显示用法。 |
12
- | `/goal <objective>` | 创建 goal 并启用续行,或用全新身份替换已完成 goal。未完成 goal 绝不会在没有显式 clear 的情况下被替换。 |
13
- | `/goal edit <objective>` | 编辑当前目标,不改变其 phase 或续行启用状态。编辑已完成 goal 会创建新的 active goal。 |
14
- | `/goal pause` | 暂停 active goal,并停用续行。 |
15
- | `/goal resume` | 恢复已停止 goal,或在会话 resume/fork 后为 active goal 重新启用续行;仍受剩余 Round 上限约束。 |
16
- | `/goal clear` | 清除当前指针,同时保留其持久历史和 tombstone。 |
36
+ | `/goal` | 显示当前目标、持久 phase、Round 数量与上限、进程本地续行启用状态与有效的下一步命令;被阻塞的 goal 还会显示其策略代码与说明 |
37
+ | `/goal <objective>` | 创建 goal 并启用续行,或用全新身份替换已完成 goal |
38
+ | `/goal edit <objective>` | 编辑当前目标,不改变其 phase 或续行启用状态 |
39
+ | `/goal pause` | 暂停 active goal 并停用续行 |
40
+ | `/goal resume` | 恢复已停止 goal,或在会话 resume 或 fork 后重新启用 active goal;仍受剩余 Round 上限约束 |
41
+ | `/goal clear` | 清除当前 goal,同时保留其持久历史 |
17
42
 
18
- 只有控制词占据完整输入时才不区分大小写。其他任何非空后缀都属于目标,因此 `/goal pause after verification` 会创建该字面目标。goal 领域会去除目标首尾空白并进行验证。由于通用命令平面没有模态编辑器或确认原语,`edit` 会内联接收替换内容;若试图替换未完成的 goal,则直接返回错误,提示用户执行 edit 或 clear。
43
+ ### 输入语法
19
44
 
20
- 该命令声明了 `input.images`,因此 composer 图片附件可以随调用一起提交。附件只随目标本身:create 或 edit 成功时,生产方提交一条用户 followup 消息,内容为已准入的图片块加固定文本 `Reference images for the goal objective.`,后续 Goal Round 从普通会话历史中读取它们,goal 领域不存储附件状态。其他任何子命令、以及被拒绝的 create 或 edit,都直接返回错误且不提交任何消息,分发方 composer 保留图片。
45
+ 只有控制词(`clear`、`pause`、`resume`、`edit`)占据完整输入时才被识别;其他任何非空后缀都是目标,因此 `/goal pause after verification` 会创建该字面目标。`edit` 内联接收替换内容,并拒绝直接替换未完成的 goal。可预期的领域拒绝会变成稳定的直接命令错误,不暴露带品牌类型的 id 或 revision;意外实现失败仍会让分发失败,使适配器能将其报告为命令失败。
21
46
 
22
- 可预期的领域拒绝会变成稳定的直接命令错误,不公开带品牌类型的 id 或 revision。意外实现失败仍会 reject 分发,使适配器能将其报告为命令失败。通用命令文本和输出仍属于实时 UI 状态;`dsh-goal` 通过自有的持久 `goal/change` 事件记录每项已接受变更。
47
+ ### 图片附件
23
48
 
24
- ## 组合
49
+ `/goal` 声明了图片支持,因此 composer 可以随调用附加图片。附件只随目标本身:create 或 edit 成功时,命令提交一条用户 followup 消息,携带已准入的图片块加固定文本 `Reference images for the goal objective.`,后续 Goal Round 从普通会话历史读取它们,goal 领域不存储附件状态。其他任何子命令、以及被拒绝的 create 或 edit,都直接返回错误且不提交任何消息,分发方 composer 保留图片。
25
50
 
26
- 生产方注入 `commands` 和 `goals`。自定义应用会挂载它们的所有者与此插件;自动续行仍是独立选择:
51
+ ### 组合方式
52
+
53
+ 命令注入命令注册表与 goal 服务。自定义应用会挂载它们的所有者与此插件;自动续行仍是独立选择:
27
54
 
28
55
  ```yaml
29
56
  - id: commands
@@ -34,15 +61,54 @@
34
61
  name: '@deepseek-ai/dsh-command-goal'
35
62
  ```
36
63
 
37
- 随附 `dsh` 基础配置启用持久 goal 栈和此命令;Web 客户端提供其交互适配器。ACP(Agent Client Protocol)自动化应用启用领域与模型工具,但不挂载命令适配器;`goals: false` 会移除该栈。无 UI 的 `agent-spine-demo` 必须显式配置 `goals: {}`,避免无头单次调用方在不知情时从一个物理轮次变为包含多个 Round 的操作。
64
+ 随附的 `dsh` 基础配置启用持久 goal 栈与此命令。Web bundle 把 goal 服务与 driver 保留在 Host,禁用基础命令 producer,并在 `standard`、`code` 和 `cordis` agent preset 中挂载 producer;`minimal` 会省略它。ACP(Agent Client Protocol)自动化应用启用领域与模型工具,但不挂载命令适配器。无 UI 的 `agent-spine-demo` 必须显式配置 `goals: {}`,避免无头单次调用方在不知情时从一个物理轮次变为包含多个 Round 的操作。
65
+
66
+ -----
67
+
68
+ <a id="understand-the-implementation"></a>
69
+ ## 理解实现
70
+
71
+ <details>
72
+ <summary>实现细节——点击展开</summary>
73
+
74
+ 本节解释命令如何解析输入并渲染输出;可观察约定已在[使用本包](#use-this-package)中说明。
75
+
76
+ ### 设计
77
+
78
+ - **语法,而非自由文本。** 解析器只在控制词(`clear`、`pause`、`resume`、`edit`)填满整个输入时识别它们;其他任何非空后缀都是目标。单独的 `edit` 无效,且 `edit` 拒绝直接替换未完成的 goal。
79
+ - **领域拒绝变成稳定错误。** `GoalError` 结果会转换为带固定消息的直接命令错误;意外失败会重新抛出,使适配器报告命令失败而非领域结果。渲染输出绝不暴露带品牌类型的 id 或 revision。
80
+ - **附件随目标而行。** create 或 edit 成功时,命令提交一条用户 followup 消息,携带已准入的图片块加固定文本 `Reference images for the goal objective.`;其他路径都不提交任何消息,因此分发方 composer 保留图片。
81
+
82
+ ### 源码地图
38
83
 
84
+ | 文件 | 职责 |
85
+ |---|---|
86
+ | [`src/index.ts`](src/index.ts) | 插件入口:命令语法、状态渲染、附件提交 |
87
+ | [`src/invariant.ts`](src/invariant.ts) | 不变式伴生:空(无运行时不变式——已接受的变更由 goal 领域负责) |
88
+
89
+ </details>
90
+
91
+ -----
92
+
93
+ <a id="further-exploration"></a>
94
+ ## 进一步探索
95
+
96
+ 该命令是 goal 领域的薄适配器;需要了解它变更的状态与它接入的注册表时阅读以下页面。
97
+
98
+ - [goal 服务](../goal/README.zh.md)——命令变更的状态与生命周期。
99
+ - [命令服务](../../interaction/commands/README.zh.md)——命令注册表约定与分发。
100
+ - [用户 goal 命令 Agent Note](../../../.agents/notes/implemented/feature/2026-07-19-human-goal-command.zh.md)——用户体验与组合决策。
101
+
102
+ -----
103
+
104
+ <a id="model-experience"></a>
39
105
  ## 模型体验
40
106
 
41
107
  ### 用户 `/goal` 控制
42
108
 
43
109
  #### 模型看到的内容
44
110
 
45
- 斜杠输入、变更以及直接状态/错误输出不会进入模型请求。goal 领域把变更记录为 `goal/change`;已启用的同会话驱动器可以在后续继续执行提示词中暴露结果状态。呈现文本绝不会记录到日志中。当 create 或 edit 携带图片附件时,模型会看到一条普通用户消息:图片块后跟文本 `Reference images for the goal objective.`,在会话历史中位于下一个 Goal Round 之前。
111
+ 斜杠输入、变更以及直接状态/错误输出不会进入模型请求。goal 领域把变更记录为 `goal/change`;已启用的同会话驱动器可以在后续续行提示词中暴露结果状态。呈现文本绝不会记录到日志中。当 create 或 edit 携带图片附件时,模型会看到一条普通用户消息:图片块后跟文本 `Reference images for the goal objective.`,在会话历史中位于下一个 Goal Round 之前。
46
112
 
47
113
  #### Token 影响
48
114
 
@@ -50,11 +116,26 @@
50
116
 
51
117
  #### KV Cache 影响
52
118
 
53
- 命令发现、变更与直接输出不会影响缓存。后续继续执行提示词遵循驱动器的普通请求历史。
119
+ 命令发现、变更与直接输出不会影响缓存。后续续行提示词遵循驱动器的普通请求历史。
120
+
121
+ ## 已知限制与延期工作
122
+
123
+ <a id="known-limitations-and-deferred-work"></a>
124
+
125
+
126
+ 这些限制说明命令何时不合适或需要特别注意。它们是当前包约束,不是任务积压。
127
+
128
+ - **仅纯文本交互**——通用命令注册表没有模态编辑表单或替换确认回调;内联 edit 与显式 clear 能在不同适配器中保持明确且一致的破坏性意图。
129
+ - **没有逐命令 Round 上限参数**——`defaultMaxGoalRounds` 仍是部署配置;用户直接请求时,可以要求模型通过另行授权的 goal 工具编辑 `max_goal_rounds`。
130
+ - **没有持续状态组件**——裸 `/goal` 是可移植的观察接口;不提供适配器专用徽标或重连后可恢复的命令输出。
131
+ - **随附应用中只有 Web 命令适配器使用此命令**——无头、ACP 自动化和 JSON-RPC 适配器不消费 `ctx.commands`。如果组合中包含面向模型的 goal 工具,普通提示词仍能授权它们。
132
+
133
+ <a id="dev-note"></a>
134
+ ### 开发备注
135
+
136
+ <details>
137
+ <summary>维护者的工作上下文——点击展开</summary>
54
138
 
55
- ## 已知限制与暂缓事项
139
+ 本开发备注是维护者的工作上下文,明确不具权威性。开放且未决:持续状态组件与逐命令 Round 上限输入;两者都是延后的 UI 与配置工作。
56
140
 
57
- - **仅纯文本交互**:通用命令注册表没有模态编辑表单或替换确认回调;内联 edit 与显式 clear 能在不同适配器中保持明确且一致的破坏性意图。
58
- - **没有逐命令 Round 上限参数**:`defaultMaxGoalRounds` 仍是部署配置;用户直接请求时,可以要求模型通过另行授权的 goal 工具编辑 `max_goal_rounds`。
59
- - **没有持续状态组件**:裸 `/goal` 是可移植的观察接口;适配器专用徽标和重连后可恢复的命令输出仍属于未来 UI 工作。
60
- - **随附应用中只有 Web 命令适配器使用此命令**:无头、ACP 自动化和 JSON-RPC 适配器不消费 `ctx.commands`。如果组合中包含面向模型的 goal 工具,普通提示词仍能授权它们。
141
+ </details>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-command-goal",
3
3
  "description": "Human-facing slash command for persisted same-session goals",
4
- "version": "0.1.1-rc.2",
4
+ "version": "0.1.2-alpha.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -32,20 +32,21 @@
32
32
  ],
33
33
  "license": "MIT",
34
34
  "peerDependencies": {
35
- "@deepseek-ai/dsh-commands": "^0.1.1-rc.2",
36
- "@deepseek-ai/dsh-invariants": "^0.1.1-rc.2",
37
- "@deepseek-ai/dsh-goal": "^0.1.1-rc.2",
38
- "@deepseek-ai/dsh-llm": "^0.1.1-rc.2",
39
- "@deepseek-ai/cordis": "^4.0.1"
35
+ "@deepseek-ai/dsh-commands": "^0.1.2-alpha.2",
36
+ "@deepseek-ai/dsh-goal": "^0.1.2-alpha.2",
37
+ "@deepseek-ai/dsh-llm": "^0.1.2-alpha.2",
38
+ "@deepseek-ai/cordis": "^4.0.2",
39
+ "@deepseek-ai/dsh-invariants": "^0.1.2-alpha.2"
40
40
  },
41
41
  "devDependencies": {
42
- "@deepseek-ai/cordis-plugin-loader": "^1.0.2",
43
- "@deepseek-ai/dsh-agent": "^0.1.1-rc.2",
44
- "@deepseek-ai/dsh-commands": "^0.1.1-rc.2",
45
- "@deepseek-ai/dsh-goal": "^0.1.1-rc.2",
46
- "@deepseek-ai/dsh-invariants": "^0.1.1-rc.2",
47
- "@deepseek-ai/dsh-llm": "^0.1.1-rc.2",
48
- "@deepseek-ai/cordis": "^4.0.1",
49
- "@deepseek-ai/dsh-session": "^0.1.1-rc.2"
42
+ "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
43
+ "@deepseek-ai/dsh-agent": "^0.1.2-alpha.2",
44
+ "@deepseek-ai/dsh-goal": "^0.1.2-alpha.2",
45
+ "@deepseek-ai/dsh-commands": "^0.1.2-alpha.2",
46
+ "@deepseek-ai/dsh-invariants": "^0.1.2-alpha.2",
47
+ "@deepseek-ai/dsh-llm": "^0.1.2-alpha.2",
48
+ "@deepseek-ai/dsh-session": "^0.1.2-alpha.2",
49
+ "@deepseek-ai/cordis": "^4.0.2",
50
+ "@deepseek-ai/dsh-session-projection": "^0.1.2-alpha.2"
50
51
  }
51
52
  }