@deepseek-ai/dsh-tool-jobs 0.2.1-alpha.2 → 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 CHANGED
@@ -39,8 +39,8 @@
39
39
  en: 6f006ff2d901bc92
40
40
  zh: 779d18ba7bec4202
41
41
  /deepseek-ai-dsh-tool-jobs/understand-the-implementation/output-capping:
42
- en: b47638fb0e80287a
43
- zh: c47fa4b99b6df4c3
42
+ en: ca18e4bdfb12a1e2
43
+ zh: 6592697c561c6e6d
44
44
  /deepseek-ai-dsh-tool-jobs/understand-the-implementation/notice-delivery-lanes:
45
45
  en: 2540b7abbb3c9710
46
46
  zh: 4fb355bceab2f865
package/README.md CHANGED
@@ -87,7 +87,7 @@ This section explains the design decisions behind the tools and points at the co
87
87
 
88
88
  ### Output capping
89
89
 
90
- `job_output` and `job_kill` capture the caller-visible job in a prepended pre-execute listener before policy runs, so the producer's cap applies to the complete rendered result. `job_output` preserves its output/status split when policy left the default rendering intact, bounding the output tail and the `[status: ...]` suffix; other single-text results — denials, short-circuits, normalized tool or pipeline failures, replacements, and blocks — are bounded as one text, while structured multi-block policy results keep their shape. A bounded completion notice reserves the stable `background job <id>` prefix and the `job_output` collection instruction before spending remaining bytes on variable kind, label, status, detail, and truncation marker, so the notice stays actionable at the PTY's supported 64-byte minimum; an existing producer truncation marker is reused rather than duplicated.
90
+ `job_output` and `job_kill` capture the caller-visible job in a prepended pre-execute listener before policy runs, so the producer's cap applies to the complete rendered result. `job_output` preserves its output/status split when policy left the default rendering intact, bounding the output tail and the `[status: ...]` suffix; other single-text results — denials, short-circuits, normalized tool or pipeline failures, replacements, and blocks — are bounded as one text, while structured multi-block policy results keep their shape. A bounded completion notice retains the full job id and `job_output` action when both fit. Otherwise it directs the model to `job_list` when at least eight bytes fit; a smaller cap can carry only a prefix. The PTY's supported 64-byte minimum fits the complete `job_list` instruction. Existing producer truncation markers are reused.
91
91
 
92
92
  ### Notice delivery lanes
93
93
 
package/README.zh.md CHANGED
@@ -87,7 +87,7 @@ kind: "package-reference"
87
87
 
88
88
  ### 输出上限
89
89
 
90
- `job_output` 与 `job_kill` 会在策略运行前于前置的 pre-execute 监听器中捕获调用方可见任务,因此生产方上限适用于完整渲染结果。`job_output` 在策略保留默认渲染时保持其输出/状态拆分,对输出尾部与 `[status: ...]` 后缀设界;其他单文本结果——拒绝、短路、规范化工具或流水线失败、替换与阻止——按单个文本设界,而结构化多块策略结果保持自身形状。有界完成通知先为稳定的 `background job <id>` 前缀与 `job_output` 收集指令预留空间,再把剩余字节用于可变的 kind、label、status、detail 与截断标记,因此在 PTY 支持的 64 字节下限下通知仍可操作;已有的生产方截断标记会被复用,不会重复添加。
90
+ `job_output` 与 `job_kill` 会在策略运行前于前置的 pre-execute 监听器中捕获调用方可见任务,因此生产方上限适用于完整渲染结果。`job_output` 在策略保留默认渲染时保持其输出/状态拆分,对输出尾部与 `[status: ...]` 后缀设界;其他单文本结果——拒绝、短路、规范化工具或流水线失败、替换与阻止——按单个文本设界,而结构化多块策略结果保持自身形状。有界完成通知在完整 job id 与 `job_output` 指令都能容纳时保留两者。否则当上限至少有八字节时,它提示模型使用 `job_list`;更小的上限只能容纳指令前缀。PTY 支持的 64 字节下限能容纳完整的 `job_list` 指令。已有生产方截断标记会被复用。
91
91
 
92
92
  ### 通知投递通道
93
93
 
package/lib/index.js CHANGED
@@ -173,9 +173,9 @@ function fitCompletionNotice(job) {
173
173
  if (fixedBytes <= maxBytes) return fixedBytes === maxBytes ? fixed : `${prefix}${retainHead(detail, maxBytes - fixedBytes)}${omitted}${action}`;
174
174
  const compact = `${prefix}${action}`;
175
175
  if (encoder.encode(compact).byteLength <= maxBytes) return compact;
176
- const actionBytes = encoder.encode(action).byteLength;
177
- if (actionBytes >= maxBytes) return retainTail(action, maxBytes);
178
- return `${retainHead(prefix, maxBytes - actionBytes)}${action}`;
176
+ const recovery = "background job ended; use job_list for id.";
177
+ if (encoder.encode(recovery).byteLength <= maxBytes) return recovery;
178
+ return retainHead("job_list", maxBytes);
179
179
  }
180
180
  function rawSingleText(content) {
181
181
  if (content.length !== 1) return void 0;
package/locale/en.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "meta": {
3
+ "title": "tool-jobs"
4
+ }
5
+ }
package/locale/zh.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "后台任务工具",
4
+ "description": "让 AI 查看后台任务、读取输出或停止任务。"
5
+ }
6
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-tool-jobs",
3
3
  "description": "Model-facing background job control tools (job_output, job_list, job_kill) over the ctx.jobs registry",
4
- "version": "0.2.1-alpha.2",
4
+ "version": "0.2.1-alpha.3",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -19,34 +19,36 @@
19
19
  "default": "./lib/index.js"
20
20
  },
21
21
  "./src/*": "./src/*",
22
- "./package.json": "./package.json"
22
+ "./package.json": "./package.json",
23
+ "./locale/*.json": "./locale/*.json"
23
24
  },
24
25
  "files": [
26
+ "locale/*.json",
25
27
  "lib/index.js",
26
28
  "lib/types/**/*.d.ts"
27
29
  ],
28
30
  "license": "MIT",
29
31
  "dependencies": {
30
- "@deepseek-ai/schemastery": "~3.18.5-alpha.1"
32
+ "@deepseek-ai/schemastery": "~3.18.5-alpha.2"
31
33
  },
32
34
  "peerDependencies": {
33
- "@deepseek-ai/dsh-agent": "0.2.1-alpha.2",
34
- "@deepseek-ai/dsh-llm": "0.2.1-alpha.2",
35
- "@deepseek-ai/dsh-output-retention": "0.2.1-alpha.2",
36
- "@deepseek-ai/dsh-system-prompt": "0.2.1-alpha.2",
37
- "@deepseek-ai/dsh-jobs": "0.2.1-alpha.2",
38
- "@deepseek-ai/dsh-tools": "0.2.1-alpha.2",
39
- "@deepseek-ai/cordis": "~4.0.5-alpha.1"
35
+ "@deepseek-ai/dsh-agent": "0.2.1-alpha.3",
36
+ "@deepseek-ai/dsh-llm": "0.2.1-alpha.3",
37
+ "@deepseek-ai/dsh-output-retention": "0.2.1-alpha.3",
38
+ "@deepseek-ai/dsh-system-prompt": "0.2.1-alpha.3",
39
+ "@deepseek-ai/dsh-jobs": "0.2.1-alpha.3",
40
+ "@deepseek-ai/dsh-tools": "0.2.1-alpha.3",
41
+ "@deepseek-ai/cordis": "~4.0.5-alpha.2"
40
42
  },
41
43
  "devDependencies": {
42
- "@deepseek-ai/dsh-agent": "0.2.1-alpha.2",
43
- "@deepseek-ai/dsh-llm": "0.2.1-alpha.2",
44
- "@deepseek-ai/dsh-output-retention": "0.2.1-alpha.2",
45
- "@deepseek-ai/dsh-session": "0.2.1-alpha.2",
46
- "@deepseek-ai/dsh-system-prompt": "0.2.1-alpha.2",
47
- "@deepseek-ai/dsh-jobs": "0.2.1-alpha.2",
48
- "@deepseek-ai/dsh-jobs-local": "0.2.1-alpha.2",
49
- "@deepseek-ai/dsh-tools": "0.2.1-alpha.2",
50
- "@deepseek-ai/cordis": "~4.0.5-alpha.1"
44
+ "@deepseek-ai/dsh-agent": "0.2.1-alpha.3",
45
+ "@deepseek-ai/dsh-llm": "0.2.1-alpha.3",
46
+ "@deepseek-ai/dsh-output-retention": "0.2.1-alpha.3",
47
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.3",
48
+ "@deepseek-ai/dsh-system-prompt": "0.2.1-alpha.3",
49
+ "@deepseek-ai/dsh-jobs": "0.2.1-alpha.3",
50
+ "@deepseek-ai/dsh-jobs-local": "0.2.1-alpha.3",
51
+ "@deepseek-ai/dsh-tools": "0.2.1-alpha.3",
52
+ "@deepseek-ai/cordis": "~4.0.5-alpha.2"
51
53
  }
52
54
  }