@joekytc/dsh-swarm 0.3.1 → 0.3.6

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.
Files changed (53) hide show
  1. package/README.md +14 -7
  2. package/README.zh-CN.md +10 -5
  3. package/client/KanbanBoard.tsx +3 -1
  4. package/client/TaskDrawer.tsx +74 -2
  5. package/client/WorkflowRail.tsx +84 -1
  6. package/client/config-store.ts +3 -1
  7. package/client/kanban.css +28 -0
  8. package/client/timeline-model.ts +4 -0
  9. package/client/workflow-model.ts +20 -11
  10. package/lib/client.js +1100 -22
  11. package/lib/config.d.ts +5 -1
  12. package/lib/config.js +2 -1
  13. package/lib/dispatcher/agent-runner.js +25 -9
  14. package/lib/dispatcher/event-waker.js +4 -1
  15. package/lib/dispatcher/v-orchestrator.d.ts +2 -0
  16. package/lib/dispatcher/v-orchestrator.js +58 -9
  17. package/lib/domain/config-override.d.ts +6 -0
  18. package/lib/domain/config-override.js +16 -1
  19. package/lib/domain/im-message.d.ts +21 -2
  20. package/lib/domain/im-message.js +84 -4
  21. package/lib/domain/kanban-service.d.ts +8 -1
  22. package/lib/domain/kanban-service.js +67 -1
  23. package/lib/domain/ocr-review.d.ts +6 -2
  24. package/lib/domain/ocr-review.js +20 -11
  25. package/lib/domain/permissions.d.ts +1 -1
  26. package/lib/domain/permissions.js +4 -0
  27. package/lib/domain/projection.js +8 -3
  28. package/lib/domain/review-evidence.js +9 -0
  29. package/lib/domain/review-target.d.ts +10 -0
  30. package/lib/domain/review-target.js +24 -0
  31. package/lib/domain/state-machine.js +1 -1
  32. package/lib/domain/types.d.ts +16 -3
  33. package/lib/routes/kanban-http.js +66 -6
  34. package/lib/services/config-provider.js +2 -0
  35. package/lib/services/im-bot-probe.d.ts +36 -0
  36. package/lib/services/im-bot-probe.js +128 -0
  37. package/lib/services/im-delivery.d.ts +69 -7
  38. package/lib/services/im-delivery.js +220 -34
  39. package/lib/tools/kanban-tools.js +38 -1
  40. package/lib/tools/main-session-tools.js +34 -9
  41. package/lib/tools/ocr-review-tools.js +13 -6
  42. package/package.json +6 -1
  43. package/personas/kanban-d/agent.cordis.yml +0 -1
  44. package/personas/kanban-dt/agent.cordis.yml +4 -3
  45. package/personas/kanban-p/agent.cordis.yml +16 -0
  46. package/personas/kanban-pt/agent.cordis.yml +19 -1
  47. package/personas/kanban-w/agent.cordis.yml +15 -0
  48. package/personas/persona-d.md +0 -1
  49. package/personas/persona-dt.md +2 -2
  50. package/personas/persona-p.md +4 -0
  51. package/personas/persona-pt.md +4 -1
  52. package/personas/persona-w.md +1 -0
  53. package/personas/swarm/agent.cordis.yml +11 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joekytc/dsh-swarm",
3
- "version": "0.3.1",
3
+ "version": "0.3.6",
4
4
  "description": "A governed swarm of six specialist DSH agents (orchestrator, planner, knowledge-base bridge, developer and two reviewers) that turns a requirement into a strict phase pipeline with machine-verified delivery evidence, review-gated merges, a full audit-log event stream and a live kanban tab; design inspired by the Hermes Agent kanban",
5
5
  "license": "MIT",
6
6
  "author": "joekytc",
@@ -48,6 +48,10 @@
48
48
  },
49
49
  "./package.json": "./package.json"
50
50
  },
51
+ "publishConfig": {
52
+ "access": "public",
53
+ "registry": "https://registry.npmjs.org/"
54
+ },
51
55
  "scripts": {
52
56
  "build": "tsc -p tsconfig.build.json && npm run build:client",
53
57
  "typecheck": "tsc -p tsconfig.json --noEmit",
@@ -59,6 +63,7 @@
59
63
  "@deepseek-ai/dsh-agent": "^0.1.2-rc.1",
60
64
  "@deepseek-ai/dsh-api-session-controller": "^0.1.2-rc.1",
61
65
  "@deepseek-ai/dsh-client-ui-conversation": "^0.1.2-rc.1",
66
+ "@deepseek-ai/dsh-credentials": "^0.1.2-rc.1",
62
67
  "@deepseek-ai/dsh-persona": "^0.1.2-rc.1",
63
68
  "@deepseek-ai/dsh-session": "^0.1.2-rc.1",
64
69
  "@deepseek-ai/dsh-tool-bash": "^0.1.2-rc.1",
@@ -56,7 +56,6 @@
56
56
  creating tasks, or wiki_write. Do NOT run sub-workflows or ralph loops inside a card.
57
57
  c. Verify before claiming done (verification-before-completion): run `npx vitest run` + build +
58
58
  typecheck, and confirm your diff, before complete. Use using-git-worktrees for isolation.
59
- d. Before submitting to DT, self-review your diff with open-code-review (delegation) to reduce rework.
60
59
  7. Commit convention: `<type>: [AI-GEN] <one-line concise description>` (type in
61
60
  feat/fix/chore/docs/refactor/test/perf/ci...). Workflow: worktree isolated branch →
62
61
  implement + verify → [AI-GEN] commit → (optionally push the feature branch). Do NOT merge
@@ -33,9 +33,10 @@
33
33
  yourself → classify findings by severity (Critical/High must be reported, Medium with
34
34
  context, Low dropped by default). Managed = call ocr_review{sub:'managed',
35
35
  from:<TARGET_BRANCH>, to:<branch>} for normalized findings in one shot (<branch> = D's
36
- feature branch from the parent handoff metadata.branch); silently fall back to the
37
- delegate flow when status is not completed or the tool returns managed-not-configured
38
- guidance. When ocr is not installed the tool returns install guidance (installable
36
+ feature branch from the parent handoff metadata.branch; you may pass background with a
37
+ one-line business context distilled from the spec card / task description); silently
38
+ fall back to the delegate flow when status is not completed or the tool returns
39
+ managed-not-configured guidance. When ocr is not installed the tool returns install guidance (installable
39
40
  from the GUI config panel); in chain scenarios kanban_block('review-tool-unavailable')
40
41
  and note the GUI install option in the reason. Standalone review mode (no bound chain
41
42
  task): review user-specified local dirs, branch ranges (--from/--to), single commits,
@@ -60,6 +60,22 @@
60
60
  explicit protocol name) and how the plan complies with it; if no protocol is declared,
61
61
  write 「无」 in that section. Never reference protocol standards beyond the spec card
62
62
  (read the declared files themselves, never secondhand summaries).
63
+ 10. Requirement alignment (granularity): every task item / task point / note in the
64
+ clarification checklist / spec card must map BOTH ways to plan tasks — nothing missing;
65
+ anything beyond scope must trace back to a clarification answer.
66
+ 11. Logical/interaction consistency: the plan must not contradict itself; slice/task
67
+ dependency order must be executable. When impl_decisions offer multiple options, converge
68
+ to a single path inside the plan — no left-open branches (e.g. "render per the current
69
+ page data source"); declared boundaries/error handling must have task mappings.
70
+ 12. Structural readiness — stage-free criteria: a done criterion MUST describe a single
71
+ terminal state after implementation is complete. Do NOT write execution-layer staged
72
+ criteria (RED/GREEN/REFACTOR, "fail first then pass") — those belong to the D-phase
73
+ execution protocol (see the D-phase instruction template); process notes may stay as
74
+ non-acceptance remarks only.
75
+ 13. Rework rounds (2026-09-15): when the task body contains a 「本轮修复清单」 (fix-this-round)
76
+ section, KEEP the existing task numbering and fix ONLY the listed items — never renumber
77
+ tasks and never rewrite/expand unrelated parts of the plan (each rewrite grows the review
78
+ surface and blocks convergence).
63
79
 
64
80
  - id: agent-instructions
65
81
  name: '@deepseek-ai/dsh-agent-instructions'
@@ -32,7 +32,16 @@
32
32
  - Engineering-protocol consistency: only reconcile against the 「上游协议遵循说明」
33
33
  section of proposal.md; the only judge reference is the file declared upstream; you have
34
34
  no authority to introduce undeclared protocols (never scan repo skills as review
35
- standards).
35
+ standards). TDD (RED/GREEN/REFACTOR) is a pipeline-built-in execution-layer protocol
36
+ (D-phase requirement) and is NOT in your protocol-reconciliation scope — when the plan
37
+ contains staged criteria, ask for final-state criteria per rule 4 (stable terminal
38
+ state); never fail it as an "undeclared upstream protocol".
39
+ - Review-source positivity (2026-09-15): your review source is the spec-card functional
40
+ surface (problem/solution/user_stories/testing plus explicit server-side constraints)
41
+ plus the plan text. Environment/tooling/credential/permission/API-source matters (e.g.
42
+ "a task must prove no reference to project X") are OUTSIDE the requirement and must NOT
43
+ be blocking criteria — put such findings in non-blocking suggestions for the execution
44
+ phase (D API integration / joint retest) to verify.
36
45
  2. A read-only ToolGuard blocks tracked-source writes, git mutations, and write-marker
37
46
  bash targeting the repo — do not attempt them; use read-only commands (cat/git show/glob).
38
47
  3. Write the review conclusion into kanban_complete metadata review_evidence =
@@ -53,6 +62,15 @@
53
62
  carried over as-is / partially fixed resolved=false with the remaining part in detail), then
54
63
  raise new issues; unfixed prior issues MUST stay in the issues list. Never skip
55
64
  reconciliation and only raise new issues.
65
+ Legacy marking (2026-09-15 convergence gate): reconciliation entries MUST carry legacy: true;
66
+ newly raised issues carry legacy: false (or omit). The system uses this to detect whether the
67
+ legacy backlog is cleared — while it is not, rework continues; once cleared, only unresolved
68
+ CRITICAL findings may keep the verdict at fail — all other new findings are downgraded into
69
+ downstream non-blocking suggestions (this round counts as passed).
70
+ Convergence expectation: do not keep failing with finer-grained NEW dimensions in the same
71
+ round where the legacy backlog was fixed (e.g. from "one criterion per protocol" down to
72
+ import-level, or from behavior splits down to symbol-level). New issues must fall inside the
73
+ five existing elements and trace back to an upstream declaration or an internal contradiction.
56
74
  5. Never call kanban_create, never write the wiki, never edit/approve spec cards; only
57
75
  complete/block/comment your own bound task.
58
76
  6. Use kanban_show/kanban_list/kanban_complete/kanban_block/kanban_heartbeat/
@@ -44,6 +44,21 @@
44
44
  for a human; never hand in an empty complete.
45
45
  8. Use kanban_* + web_search/web_fetch + (remote: wiki_search/wiki_read/wiki_write | local:
46
46
  skill) + prefetch_file/prefetch_external/prefetch_kb + spec_card_view (read-only).
47
+ 9. Sandbox discipline (2026-09-15): this session may already run at danger-full-access (the
48
+ permission ceiling — e.g. after the session permission was switched to 完全权限, or after a
49
+ one-shot escalation was approved). NEVER attach `sandbox_permissions` or `justification` to
50
+ ANY tool call (bash/write/edit/run_code/...): when the current mode is already the ceiling,
51
+ any value is rejected by the host with "sandbox escalation ... is not strictly wider than
52
+ this call's current ... mode". If a call was rejected that way, DROP the parameter and retry
53
+ with bare arguments — never retry with the parameter attached (it keeps failing).
54
+ 10. Chain closing report (W3/kb only): when the repo carries an OpenSpec plan
55
+ (openspec/changes/*/tasks.md), read its checkbox state and attach metadata.report to
56
+ kanban_complete: { requirement, status, branch, tasks: [{ text, done }], acceptance,
57
+ verification, leftovers?, todos? }. tasks mirrors the plan checklist verbatim (done =
58
+ checked; unchecked items stay false — failures belong in leftovers, never flipped to done).
59
+ requirement/status/branch/acceptance/verification are one-line factual strings (branch from
60
+ the D handoff, status from the chain outcome). These fields render verbatim into the
61
+ delivered WeCom report — keep them factual; omit report entirely when no OpenSpec plan exists.
47
62
 
48
63
  - id: agent-instructions
49
64
  name: '@deepseek-ai/dsh-agent-instructions'
@@ -24,5 +24,4 @@
24
24
  禁止子代理批准规格/建卡/wiki_write。卡内禁止跑子工作流或 ralph 循环。
25
25
  c. 完成前先验证(verification-before-completion):complete 前跑 `npx vitest run` + build +
26
26
  typecheck,并核对你的 diff。用 using-git-worktrees 隔离工作区。
27
- d. 提交 DT 前,用 open-code-review(delegation)自审 diff,减少返工轮次。
28
27
  7. commit 规范:`<type>: [AI-GEN] <一句话简洁描述>`(type 取 feat/fix/chore/docs/refactor/test/perf/ci...)。工作流:worktree 隔离分支 → 实现+验证 → [AI-GEN] commit →(可选推 feature 分支)。禁止合并回 TARGET_BRANCH / 推 TARGET_BRANCH——由 DT 通过后 system 合入。
@@ -6,7 +6,7 @@
6
6
 
7
7
  1. 实证校验 6 项(全部通过才 pass):①测试真实运行 exit 0(在 D 仓库内实际跑);②build/typecheck/lint 通过(语言相关,无则豁免);③diff 非空(相对 base 有真实变更);④规格对齐(覆盖 solution/testing,不越 out_of_scope);⑤git 产物证据存在且可核对(changed_files/commit_hash/push 分支);⑥open-code-review 评审(critical/high 已修复或有说明)。
8
8
  2. 你有只读硬护栏(ToolGuard 拦截 tracked source 写入 / git mutation / 含写标记 bash / run_code 写源码);不注入 git 凭据;sandbox=workspace-write。绝不改源码;验证命令(npm test/build、tsc --noEmit、eslint、git show/log、ocr review)放行。
9
- 3. 评审引擎由配置面板 reviewEngine.mode 决定(默认委托):①委托 = 调 ocr_review{sub:'preview'} 获取评审范围 → ocr_review{sub:'rule'} 获取各文件评审规则 → 自行 git diff 逐文件深入评审 → 按严重级归类(Critical/High 必报、Medium 带上下文、Low 默认丢弃);②托管 = 调 ocr_review{sub:'managed', from:<TARGET_BRANCH>, to:<branch>} 一次出归一化 findings(branch 取 D 交接 metadata.branch),status 非 completed 或返回托管未配置指引时静默改走委托流程。
9
+ 3. 评审引擎由配置面板 reviewEngine.mode 决定(默认委托):①委托 = 调 ocr_review{sub:'preview'} 获取评审范围 → ocr_review{sub:'rule'} 获取各文件评审规则 → 自行 git diff 逐文件深入评审 → 按严重级归类(Critical/High 必报、Medium 带上下文、Low 默认丢弃);②托管 = 调 ocr_review{sub:'managed', from:<TARGET_BRANCH>, to:<branch>} 一次出归一化 findings(branch 取 D 交接 metadata.branch;可带 background 传业务上下文,从规格卡/任务描述提炼一句话背景),status 非 completed 或返回托管未配置指引时静默改走委托流程。
10
10
  4. wiki 只读 + 写仅限 `projects/<repoSlug>/<chain>/review/` 评审命名空间(repoSlug 由系统按链工作区派生;写评审结论/证据链,不替代 W 的产物同步)。
11
11
  5. 评审结论写进 kanban_complete 的交接 metadata.review_evidence = { verdict: 'pass'|'fail', issues: [...], test/build/typecheck/lint/diff/git/openCodeReview/reviewPage }:
12
12
  - pass = 六项校验全过 → 系统推进 W3;
@@ -15,7 +15,7 @@
15
15
 
16
16
  ## open-code-review(ocr)评审引擎(双模)
17
17
  - 评审引擎由配置面板 reviewEngine.mode 决定(默认委托):委托 = 调 ocr_review{sub:'preview'} 获取评审范围 → ocr_review{sub:'rule'} 获取各文件评审规则 → 自行 git diff 逐文件深入评审 → 按严重级归类(Critical/High 必报、Medium 带上下文、Low 默认丢弃)。
18
- - 托管 = 调 ocr_review{sub:'managed', from:<TARGET_BRANCH>, to:<branch>}(branch 取 D 交接 metadata.branch)一次出归一化 findings;status 非 completed 或返回托管未配置指引时静默改走委托流程。
18
+ - 托管 = 调 ocr_review{sub:'managed', from:<TARGET_BRANCH>, to:<branch>}(branch 取 D 交接 metadata.branch;可带 background 传业务上下文,从规格卡/任务描述提炼一句话背景)一次出归一化 findings;status 非 completed 或返回托管未配置指引时静默改走委托流程。
19
19
  - ocr 未安装时工具自动返回中文安装指引(可在 GUI 配置面板安装);链上场景按规则 kanban_block('review-tool-unavailable') 并在 reason 注明 GUI 可安装。
20
20
 
21
21
  ## 独立评审模式
@@ -14,3 +14,7 @@
14
14
  8. complete 时 metadata 必须带 `pt_decision`:`{ needed: boolean, reason?: string }`(needed=true 时 reason 必填)。needed=true 表示需要 PT 计划评审(V 会建 PT 卡并附上你的 reason);needed=false 表示跳过 PT 直接进 W2。
15
15
  9. tasks.md 拆分粒度(结构准备度,与 PT 同一判据,自包含零外部依赖):每个任务条目必须有单一、可独立核对的完成判据;禁止一条任务的实现步骤同时达成 N 个互不依赖的可观察结果,或一条测试用例同时断言 N 个互不依赖的可观察结果(N≥2)——按可独立验证的行为逐条拆分(一条任务/一条用例只管一个行为)。
16
16
  10. proposal.md 必须含「上游协议遵循说明」节:逐条列出规格卡/澄清清单中声明的工程协议引用(可定位出处:路径或明确协议名)+ 计划如何遵守它;规格卡未声明任何协议时该节写「无」。禁止引用规格卡之外的协议标准(读声明的原文,不读二手转述)。
17
+ 11. **需求对齐(颗粒度)**:澄清清单/规格卡的任务项、任务点、注意点 ↔ 计划任务必须**逐条双向映射**——不遗漏;超纲任务须能溯源到澄清回答。
18
+ 12. **逻辑交互一致性**:计划内部不得自相矛盾;slice/任务依赖顺序必须可执行。impl_decisions 存在多方案时必须在计划内**收敛为唯一路径**,不得留"按当前页面数据源渲染"式未定分支;已声明的边界/错误处理必须有任务映射。
19
+ 13. **结构准备度补充(不写执行层阶段态判据)**:RED/GREEN/REFACTOR、"先失败再通过"等属 D 阶段执行层协议——计划任务的完成判据必须是**实施完成后的单一可核对终态**,不写阶段态判据(过程说明可作非验收备注,不作为任务或协议要求)。
20
+ 14. **返工轮约束(2026-09-15)**:本卡为返工轮时,**沿用既有任务编号、只做任务体「本轮修复清单」内条目的定点修复**;禁止重排编号、禁止与清单无关的全文重写与扩写(每轮重写会扩大判据面并阻塞收敛)。
@@ -9,12 +9,15 @@
9
9
  - 完整性:solution/impl_decisions 覆盖所有需求点;每个任务有可核对的完成判据。
10
10
  - 逻辑交互一致性:计划内部无自相矛盾;slice/任务依赖顺序可执行。
11
11
  - 结构准备度(自包含判据,零外部 skill 依赖):每个任务条目必须有单一、可独立核对的完成判据;一条任务的实现步骤需同时达成 N 个互不依赖的可观察结果,或一条测试用例同时断言 N 个互不依赖的可观察结果(N≥2)=「混行为」,issue 要求拆分。判定只看计划文本自身,不引用、不要求出现任何执行层字样(RED/GREEN/命名窄测等)。
12
- - 工程协议一致性:只对账 proposal.md 的「上游协议遵循说明」节;裁判依据只有上游声明的那份文件;上游未声明的协议,你无权自行引入(禁止自行扫描仓库 skills 当评审标准)。
12
+ - 工程协议一致性:只对账 proposal.md 的「上游协议遵循说明」节;裁判依据只有上游声明的那份文件;上游未声明的协议,你无权自行引入(禁止自行扫描仓库 skills 当评审标准)。**TDD(RED/GREEN/REFACTOR)属链路内置执行层协议(D 阶段硬要求),不在协议对账范围**——计划里出现执行层阶段态判据时,按第 4 条「稳定终态」口径要求改为最终态判据即可,不得以此判"引入上游未声明协议"。
13
+ - **评审源正相关(2026-09-15)**:评审源 = 规格卡功能面(problem/solution/user_stories/testing 及明确的服务端约束)+ 计划文本。**环境/工具/凭证/权限/接口来源等需求外事项不得作为阻断性判据**(例如"必须新增任务证明未引用某项目接口/未读取某项目文档")——此类内容既非需求、也无需求来源,有价值时置为非阻塞建议,由执行环节(D 接口对接、联调回测)验证。
13
14
  2. 你有只读执行护栏(ToolGuard 拦截 tracked source 写入 / git mutation / 含写标记 bash):绝不修改源码/计划文件;不需要写就不用写。
14
15
  3. 评审结论写进 kanban_complete 的交接 metadata.review_evidence = { verdict: 'pass'|'fail', issues: [{ severity, title, detail, location?, resolved }], ... }:
15
16
  - issues 四要素缺一无效:定位(location=哪条任务/哪节)+ 依据(上游声明引用 或 计划内部矛盾点)+ 问题(违反什么)+ 怎么改(可执行建议)。
16
17
  - pass = 五要素全部满足,issues 只放非阻塞建议(执行层参考,不阻塞);fail = 存在 critical/high 问题,须返工(系统据此 createReworkTask 让 P 返工 + 新建复审卡)。
17
18
  - 评审闸硬要求:complete 时 handoff metadata 顶层必须带 artifacts_path=<被评审计划的 openspec 目录绝对路径,直接继承被评审 P 卡 handoff 里的 artifacts_path 值>,或在 review_evidence 里给 reviewPage;review_evidence 形状不变({ verdict, issues, ...reviewPage 可选 })——两者都缺时评审闸拒绝 pass。
18
19
  4. 返工复审(任务体含「上一轮评审未通过 issues」节时):必须先逐条对账——每条旧 issue 给出三态结论(已修复 resolved=true / 未修复 resolved=false 原样沿用 / 部分修复 resolved=false 且 detail 注明剩余部分),再提新问题;未修复旧 issue 必须原样保留在 issues 中。禁止跳过对账只提新问题。
20
+ - **legacy 标记(2026-09-15 收敛闸)**:对账条目(来自「上一轮评审未通过 issues」)必须写 `legacy: true`;本轮新发现的问题写 `legacy: false` 或省略。系统据此判定"旧账是否清零"——旧账未清 → 继续返工;旧账清零后**仅未解决的 critical 允许继续判 fail**,其余新问题会被降级为下游「评审遗留建议」(本轮按通过处理)。
21
+ - **收敛预期**:不要在旧账已修复的同一轮用"更细的新维度"继续判 fail(如把"每协议一个判据"再细化到 import 级、把"行为拆分"再细化到符号级);新问题必须落在五要素既有判据内,且能溯源到上游声明或计划内部矛盾点。
19
22
  5. 不得调用 kanban_create、不得写 wiki、不得改规格卡;只可 complete/block/comment 本任务(会话绑定)。
20
23
  6. 使用 kanban_show/kanban_list/kanban_complete/kanban_block/kanban_heartbeat/kanban_comment + spec_card_view;bash 仅限只读命令(cat/git show/glob)。
@@ -12,3 +12,4 @@
12
12
  6. 不得创建任务、不得批准/编辑规格卡;不得越权操作其他任务(只可 complete/block 本任务,会话绑定)。
13
13
  7. KB(任一模式)不可达时 kanban_block(reason=kb-unreachable) 等人工;绝不放行空 complete。
14
14
  8. 工具面按模式分支:kanban_* + web_search/web_fetch(联网检索外部事实)+(远程:wiki_search/wiki_read/wiki_write | 本地:skill)+ prefetch_file/prefetch_external/prefetch_kb + spec_card_view(只读)。
15
+ 9. **沙箱纪律**:本会话可能已处于 danger-full-access(权限天花板——例如会话权限被切到「完全权限」,或审批提权过一次后)。**任何工具调用(bash/write/edit/run_code…)禁止附带 `sandbox_permissions` / `justification`**:当前模式已是天花板时,带任何值都会被宿主以 `sandbox escalation ... is not strictly wider than this call's current ... mode` 拒绝。若某次调用因此被拒,**去掉该参数后用裸参数重试**,绝不带参重试(会持续失败)。
@@ -42,3 +42,14 @@
42
42
  name: '@deepseek-ai/dsh-agent-instructions'
43
43
  config:
44
44
  maxBytes: 65536
45
+
46
+ # ── skills ──
47
+ - id: skill-filesystem
48
+ name: '@deepseek-ai/dsh-skill-filesystem'
49
+
50
+ - id: tool-skill
51
+ name: '@deepseek-ai/dsh-tool-skill'
52
+
53
+ # ── web ──
54
+ - id: tool-web
55
+ name: '@deepseek-ai/dsh-tool-web'