@ran-sh/dsh-crew 1.9.0 → 1.10.0

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 (151) hide show
  1. package/.claude-plugin/marketplace.json +16 -16
  2. package/.claude-plugin/plugin.json +14 -14
  3. package/LICENSE +21 -21
  4. package/README.de.md +359 -359
  5. package/README.es.md +359 -359
  6. package/README.fr.md +359 -359
  7. package/README.hi.md +359 -359
  8. package/README.id.md +359 -359
  9. package/README.ja.md +359 -359
  10. package/README.ko.md +359 -359
  11. package/README.md +126 -126
  12. package/README.pt.md +359 -359
  13. package/README.ru.md +359 -359
  14. package/README.th.md +359 -359
  15. package/README.tr.md +359 -359
  16. package/README.vi.md +359 -359
  17. package/README.zh-TW.md +359 -359
  18. package/README.zh.md +116 -116
  19. package/agents/ds-flash.md +24 -24
  20. package/agents/ds-pro.md +24 -24
  21. package/agents/ds-reviewer.md +23 -23
  22. package/agents/ds-worker.md +23 -23
  23. package/bin/dsh-crew.mjs +16 -16
  24. package/codex/agents/ds-flash.toml +34 -34
  25. package/codex/agents/ds-pro.toml +34 -34
  26. package/codex/agents/ds-reviewer.toml +32 -32
  27. package/codex/agents/ds-worker.toml +32 -32
  28. package/codex/prompts/dsh-config.md +19 -19
  29. package/codex/prompts/dsh-status.md +5 -5
  30. package/commands/config.md +23 -23
  31. package/commands/off.md +5 -5
  32. package/commands/on.md +5 -5
  33. package/commands/status.md +9 -9
  34. package/cordis.patch.yml +4 -4
  35. package/docs/gpt-relay-extension.md +103 -103
  36. package/docs/installation.md +138 -138
  37. package/docs/job-contracts.md +103 -103
  38. package/docs/readiness-matrix.md +85 -85
  39. package/docs/ui-surfaces.md +107 -107
  40. package/official-web-bridge/cordis.patch.yml +4 -4
  41. package/official-web-bridge/entry.mjs +1 -1
  42. package/official-web-bridge/overlay-entry.mjs +59 -59
  43. package/official-web-bridge/package.json +25 -25
  44. package/package.json +3 -2
  45. package/scripts/build-client.mjs +49 -49
  46. package/scripts/live-crew-smoke.mjs +39 -39
  47. package/scripts/live-policy-matrix.mjs +177 -177
  48. package/scripts/policy-probe.mjs +101 -101
  49. package/scripts/remove-legacy-official-bridge.ps1 +89 -89
  50. package/scripts/setup.mjs +393 -393
  51. package/scripts/smoke-real.mjs +110 -110
  52. package/scripts/smoke.mjs +78 -78
  53. package/scripts/verify-crew-ui-polish.mjs +145 -145
  54. package/scripts/verify-history-ui.mjs +97 -97
  55. package/scripts/verify-installer-fix.mjs +26 -26
  56. package/scripts/verify-npm-install.mjs +311 -311
  57. package/scripts/verify-official-bridge-e2e.mjs +192 -192
  58. package/src/adaptive-routing.mjs +260 -260
  59. package/src/client/activation-summary.tsx +64 -64
  60. package/src/client/collapsible-sections.mjs +55 -55
  61. package/src/client/history-panel.tsx +108 -108
  62. package/src/client/host-readiness.mjs +71 -71
  63. package/src/client/index.tsx +1711 -1711
  64. package/src/client/model-callability-view.mjs +17 -17
  65. package/src/client/panel-chrome.tsx +40 -40
  66. package/src/client/quick-entry.tsx +10 -10
  67. package/src/client/quick-panel.tsx +275 -275
  68. package/src/client/readiness-envelope.mjs +34 -34
  69. package/src/client/surface-detection.mjs +43 -43
  70. package/src/config-readiness.mjs +226 -226
  71. package/src/credential-reference.mjs +38 -38
  72. package/src/delivery.mjs +205 -205
  73. package/src/dsh-cli-runtime.mjs +1021 -1021
  74. package/src/dsh-cohort.mjs +20 -20
  75. package/src/extension-contract.mjs +104 -104
  76. package/src/failure-classification.mjs +201 -201
  77. package/src/history/admission-gate.mjs +67 -67
  78. package/src/history/archive-store.mjs +272 -272
  79. package/src/history/cleanup-plan.mjs +89 -89
  80. package/src/history/http.mjs +32 -32
  81. package/src/history/operation.mjs +86 -86
  82. package/src/history/runner-detach.mjs +34 -34
  83. package/src/history/runner.mjs +52 -52
  84. package/src/history/runtime.mjs +36 -36
  85. package/src/history/service.mjs +177 -177
  86. package/src/history/state.mjs +27 -27
  87. package/src/hub/entry.mjs +104 -104
  88. package/src/hub/index.mjs +2694 -2694
  89. package/src/hub-client.mjs +154 -154
  90. package/src/hub-compatibility.mjs +42 -42
  91. package/src/i18n.mjs +19 -19
  92. package/src/information-flow.mjs +67 -67
  93. package/src/install/cli.mjs +28 -28
  94. package/src/install/install-legacy.mjs +711 -711
  95. package/src/install/install.mjs +483 -483
  96. package/src/install/npx-lifecycle.mjs +3456 -3456
  97. package/src/install/official-frontend-assets.mjs +78 -78
  98. package/src/install/official-web.mjs +95 -95
  99. package/src/install/payload-content.mjs +88 -88
  100. package/src/install/windows-startup.mjs +236 -236
  101. package/src/install/windows-supervisor-adapter.mjs +443 -443
  102. package/src/install/windows-supervisor-lifecycle.mjs +782 -782
  103. package/src/install/zcode.mjs +397 -397
  104. package/src/job-contracts.mjs +255 -255
  105. package/src/local-request-guard.mjs +60 -60
  106. package/src/mcp-runtime.mjs +340 -340
  107. package/src/model-callability-contract.mjs +79 -79
  108. package/src/model-catalog.mjs +180 -180
  109. package/src/model-routing.mjs +586 -586
  110. package/src/model-schedule.mjs +207 -207
  111. package/src/official-web-bridge.mjs +447 -447
  112. package/src/policy.mjs +235 -235
  113. package/src/provider-delete-adapters.mjs +1934 -1934
  114. package/src/provider-health.mjs +130 -130
  115. package/src/provider-inventory.mjs +182 -182
  116. package/src/provider-layer-migration-adapters.mjs +759 -759
  117. package/src/provider-layer-migration.mjs +198 -198
  118. package/src/provider-lifecycle-state.mjs +103 -103
  119. package/src/provider-lifecycle.mjs +252 -252
  120. package/src/provider-profile-store.mjs +390 -390
  121. package/src/provider-settings-store.mjs +633 -633
  122. package/src/provider-store-lock.mjs +67 -67
  123. package/src/readiness-matrix.mjs +181 -181
  124. package/src/removable-waiter.mjs +29 -29
  125. package/src/role-profiles.mjs +107 -107
  126. package/src/runtime-controls.mjs +84 -84
  127. package/src/runtime-identity-contract.mjs +34 -34
  128. package/src/runtime-identity.mjs +235 -235
  129. package/src/runtime-readiness-snapshot.mjs +285 -285
  130. package/src/server.mjs +581 -581
  131. package/src/session-origins.mjs +60 -60
  132. package/src/standalone-sdk.mjs +23 -23
  133. package/src/status-shard.mjs +63 -63
  134. package/src/structured-error-code.mjs +38 -38
  135. package/src/supervisor/restart-request.mjs +256 -256
  136. package/src/workflow-runtime.mjs +739 -739
  137. package/src/workflow.mjs +155 -155
  138. package/src/workspace-audit.mjs +231 -231
  139. package/src/workspace-context.mjs +146 -146
  140. package/src/workspace-isolation.mjs +463 -455
  141. package/src/workspace-readiness.mjs +32 -32
  142. package/statusline/statusline.sh +14 -14
  143. package/statusline/worker-segment.sh +35 -35
  144. package/windows/start-dsh-crew.cmd +57 -57
  145. package/windows/start-dsh-crew.ps1 +1302 -1302
  146. package/windows/supervisor-control.ps1 +467 -467
  147. package/worker.cordis.yml +67 -67
  148. package/zcode/agents/ds-reviewer.md +31 -31
  149. package/zcode/agents/ds-worker.md +31 -31
  150. package/zcode/commands/dsh-config.md +17 -17
  151. package/zcode/commands/dsh-status.md +5 -5
@@ -1,32 +1,32 @@
1
- # Codex agent role: DSH reviewer (independent review role).
2
- # Install through dsh-crew; the installer resolves __DSH_CREW_ROOT__.
3
-
4
- name = "ds-reviewer"
5
- description = "DSH (DeepSeek Harness) reviewer role (runs inside DSH). Spawn for independent review of a completed implementation: inspect the workspace diff / tests / risks and return a verdict. Review-only by default; does NOT implement."
6
- model = "gpt-5.4-mini"
7
-
8
- developer_instructions = """
9
- Thin dispatcher only: do not edit files or perform the delegated task locally.
10
-
11
- 1. Read dsh_worker_config if policy is unknown/changed; honor Auto, Manual and
12
- disabled capabilities. Use role "reviewer".
13
- 2. Call dsh_spawn_worker with the complete bounded objective, owned scope, cwd,
14
- constraints and acceptance evidence; exclude unrelated chat history.
15
- Backend policy selects models. Omit effort unless explicitly requested.
16
- 3. Save the workflow ID. Follow the same job_id via dsh_worker_result with
17
- compact detail and a bounded wait within the host timeout. Running is not failure; never redispatch a duplicate.
18
- 4. Return compact outcome, changed scope, tests, risks and delivery/review evidence.
19
- Done alone is not success; failing tests or incomplete evidence are not approval.
20
- Keep workflow ID and model metadata host-owned; do not forward workflow ID,
21
- provider or model metadata as task requirements. Never invent missing counters.
22
-
23
- If required Crew capability fails, report bounded evidence and await the operator's
24
- repair-or-local decision. Do not repair, fall back or switch tiers yourself.
25
- Review is read-only; report requested fixes, do not implement them.
26
- """
27
-
28
- [mcp_servers.dsh-crew]
29
- command = "node"
30
- args = ["__DSH_CREW_ROOT__/src/server.mjs"]
31
- default_tools_approval_mode = "approve"
32
- tool_timeout_sec = 3600
1
+ # Codex agent role: DSH reviewer (independent review role).
2
+ # Install through dsh-crew; the installer resolves __DSH_CREW_ROOT__.
3
+
4
+ name = "ds-reviewer"
5
+ description = "DSH (DeepSeek Harness) reviewer role (runs inside DSH). Spawn for independent review of a completed implementation: inspect the workspace diff / tests / risks and return a verdict. Review-only by default; does NOT implement."
6
+ model = "gpt-5.4-mini"
7
+
8
+ developer_instructions = """
9
+ Thin dispatcher only: do not edit files or perform the delegated task locally.
10
+
11
+ 1. Read dsh_worker_config if policy is unknown/changed; honor Auto, Manual and
12
+ disabled capabilities. Use role "reviewer".
13
+ 2. Call dsh_spawn_worker with the complete bounded objective, owned scope, cwd,
14
+ constraints and acceptance evidence; exclude unrelated chat history.
15
+ Backend policy selects models. Omit effort unless explicitly requested.
16
+ 3. Save the workflow ID. Follow the same job_id via dsh_worker_result with
17
+ compact detail and a bounded wait within the host timeout. Running is not failure; never redispatch a duplicate.
18
+ 4. Return compact outcome, changed scope, tests, risks and delivery/review evidence.
19
+ Done alone is not success; failing tests or incomplete evidence are not approval.
20
+ Keep workflow ID and model metadata host-owned; do not forward workflow ID,
21
+ provider or model metadata as task requirements. Never invent missing counters.
22
+
23
+ If required Crew capability fails, report bounded evidence and await the operator's
24
+ repair-or-local decision. Do not repair, fall back or switch tiers yourself.
25
+ Review is read-only; report requested fixes, do not implement them.
26
+ """
27
+
28
+ [mcp_servers.dsh-crew]
29
+ command = "node"
30
+ args = ["__DSH_CREW_ROOT__/src/server.mjs"]
31
+ default_tools_approval_mode = "approve"
32
+ tool_timeout_sec = 3600
@@ -1,32 +1,32 @@
1
- # Codex agent role: DSH worker (execution role).
2
- # Install through dsh-crew; the installer resolves __DSH_CREW_ROOT__.
3
-
4
- name = "ds-worker"
5
- description = "DSH (DeepSeek Harness) worker role (runs inside DSH). Spawn for implementation, fixes, tests, search and analysis. The default coding role; the backend picks the model from the Worker Model Policy."
6
- model = "gpt-5.4-mini"
7
-
8
- developer_instructions = """
9
- Thin dispatcher only: do not edit files or perform the delegated task locally.
10
-
11
- 1. Read dsh_worker_config if policy is unknown/changed; honor Auto, Manual and
12
- disabled capabilities. Use role "worker".
13
- 2. Call dsh_spawn_worker with the complete bounded objective, owned scope, cwd,
14
- constraints and acceptance evidence; exclude unrelated chat history.
15
- Backend policy selects models. Omit effort unless explicitly requested.
16
- For explicitly read-only work only, use constraints: { allow_no_changes: true }.
17
- 3. Save the workflow ID. Follow the same job_id via dsh_worker_result with
18
- compact detail and a bounded wait within the host timeout. Running is not failure; never redispatch a duplicate.
19
- 4. Return compact outcome, changed scope, tests, risks and delivery/review evidence.
20
- Done alone is not success; failing tests or incomplete evidence are not approval.
21
- Keep workflow ID and model metadata host-owned; do not forward workflow ID,
22
- provider or model metadata as task requirements. Never invent missing counters.
23
-
24
- If required Crew capability fails, report bounded evidence and await the operator's
25
- repair-or-local decision. Do not repair, fall back or switch tiers yourself.
26
- """
27
-
28
- [mcp_servers.dsh-crew]
29
- command = "node"
30
- args = ["__DSH_CREW_ROOT__/src/server.mjs"]
31
- default_tools_approval_mode = "approve"
32
- tool_timeout_sec = 3600
1
+ # Codex agent role: DSH worker (execution role).
2
+ # Install through dsh-crew; the installer resolves __DSH_CREW_ROOT__.
3
+
4
+ name = "ds-worker"
5
+ description = "DSH (DeepSeek Harness) worker role (runs inside DSH). Spawn for implementation, fixes, tests, search and analysis. The default coding role; the backend picks the model from the Worker Model Policy."
6
+ model = "gpt-5.4-mini"
7
+
8
+ developer_instructions = """
9
+ Thin dispatcher only: do not edit files or perform the delegated task locally.
10
+
11
+ 1. Read dsh_worker_config if policy is unknown/changed; honor Auto, Manual and
12
+ disabled capabilities. Use role "worker".
13
+ 2. Call dsh_spawn_worker with the complete bounded objective, owned scope, cwd,
14
+ constraints and acceptance evidence; exclude unrelated chat history.
15
+ Backend policy selects models. Omit effort unless explicitly requested.
16
+ For explicitly read-only work only, use constraints: { allow_no_changes: true }.
17
+ 3. Save the workflow ID. Follow the same job_id via dsh_worker_result with
18
+ compact detail and a bounded wait within the host timeout. Running is not failure; never redispatch a duplicate.
19
+ 4. Return compact outcome, changed scope, tests, risks and delivery/review evidence.
20
+ Done alone is not success; failing tests or incomplete evidence are not approval.
21
+ Keep workflow ID and model metadata host-owned; do not forward workflow ID,
22
+ provider or model metadata as task requirements. Never invent missing counters.
23
+
24
+ If required Crew capability fails, report bounded evidence and await the operator's
25
+ repair-or-local decision. Do not repair, fall back or switch tiers yourself.
26
+ """
27
+
28
+ [mcp_servers.dsh-crew]
29
+ command = "node"
30
+ args = ["__DSH_CREW_ROOT__/src/server.mjs"]
31
+ default_tools_approval_mode = "approve"
32
+ tool_timeout_sec = 3600
@@ -1,19 +1,19 @@
1
- Read or update this session with dsh_worker_config. With no arguments, pass {}.
2
- For changes, parse only the user's requested key=value pairs and validate against
3
- the current tool schema; do not guess unsupported fields or change global defaults.
4
-
5
- Aliases → tool fields:
6
- - enabled → enabled; tier → default_tier; effort → default_effort
7
- - mode → mode; timeout → default_timeout_seconds; policy → tier_policy
8
- - escalate → escalate_on_failure; collab → collaboration_mode; main → main_agent_mode
9
- - flash → flash_state; pro → pro_state; review → pro_reviews_flash
10
- - reset → reset: true
11
-
12
- Current writable modes are auto|hub; standalone is legacy read/migration only.
13
- Crew effort is off|high|max, not the host model's reasoning setting.
14
- Other values must match the live schema. Report the returned effective policy,
15
- activation boundaries and changed fields; do not promise that a reset or policy
16
- alias restores a particular global state without returned evidence.
17
- Use a compact response in the user's language. No unrelated actions.
18
-
19
- $ARGUMENTS
1
+ Read or update this session with dsh_worker_config. With no arguments, pass {}.
2
+ For changes, parse only the user's requested key=value pairs and validate against
3
+ the current tool schema; do not guess unsupported fields or change global defaults.
4
+
5
+ Aliases → tool fields:
6
+ - enabled → enabled; tier → default_tier; effort → default_effort
7
+ - mode → mode; timeout → default_timeout_seconds; policy → tier_policy
8
+ - escalate → escalate_on_failure; collab → collaboration_mode; main → main_agent_mode
9
+ - flash → flash_state; pro → pro_state; review → pro_reviews_flash
10
+ - reset → reset: true
11
+
12
+ Current writable modes are auto|hub; standalone is legacy read/migration only.
13
+ Crew effort is off|high|max, not the host model's reasoning setting.
14
+ Other values must match the live schema. Report the returned effective policy,
15
+ activation boundaries and changed fields; do not promise that a reset or policy
16
+ alias restores a particular global state without returned evidence.
17
+ Use a compact response in the user's language. No unrelated actions.
18
+
19
+ $ARGUMENTS
@@ -1,5 +1,5 @@
1
- Call dsh_worker_status. Summarize the returned workflow IDs, role, phase, task
2
- and available progress/evidence in a compact list or table. Show tokens/model
3
- metadata only when returned; missing values are unknown, not zero. If no jobs
4
- exist, say so. This is read-only: do not dispatch, cancel or alter configuration.
5
- Reply in the user's language.
1
+ Call dsh_worker_status. Summarize the returned workflow IDs, role, phase, task
2
+ and available progress/evidence in a compact list or table. Show tokens/model
3
+ metadata only when returned; missing values are unknown, not zero. If no jobs
4
+ exist, say so. This is read-only: do not dispatch, cancel or alter configuration.
5
+ Reply in the user's language.
@@ -1,23 +1,23 @@
1
- ---
2
- description: Read or set session DSH worker configuration using the live tool schema
3
- ---
4
-
5
- User input: $ARGUMENTS
6
-
7
- Read or update this session with dsh_worker_config. With no arguments, pass {}.
8
- For changes, parse only the user's requested key=value pairs and validate against
9
- the current tool schema; do not guess unsupported fields or change global defaults.
10
-
11
- Aliases → tool fields:
12
- - enabled → enabled; tier → default_tier; effort → default_effort
13
- - mode → mode; timeout → default_timeout_seconds; policy → tier_policy
14
- - escalate → escalate_on_failure; collab → collaboration_mode; main → main_agent_mode
15
- - flash → flash_state; pro → pro_state; review → pro_reviews_flash
16
- - reset → reset: true
17
-
18
- Current writable modes are auto|hub; standalone is legacy read/migration only.
19
- Crew effort is off|high|max, not the host model's reasoning setting.
20
- Other values must match the live schema. Report the returned effective policy,
21
- activation boundaries and changed fields; do not promise that a reset or policy
22
- alias restores a particular global state without returned evidence.
23
- Use a compact response in the user's language. No unrelated actions.
1
+ ---
2
+ description: Read or set session DSH worker configuration using the live tool schema
3
+ ---
4
+
5
+ User input: $ARGUMENTS
6
+
7
+ Read or update this session with dsh_worker_config. With no arguments, pass {}.
8
+ For changes, parse only the user's requested key=value pairs and validate against
9
+ the current tool schema; do not guess unsupported fields or change global defaults.
10
+
11
+ Aliases → tool fields:
12
+ - enabled → enabled; tier → default_tier; effort → default_effort
13
+ - mode → mode; timeout → default_timeout_seconds; policy → tier_policy
14
+ - escalate → escalate_on_failure; collab → collaboration_mode; main → main_agent_mode
15
+ - flash → flash_state; pro → pro_state; review → pro_reviews_flash
16
+ - reset → reset: true
17
+
18
+ Current writable modes are auto|hub; standalone is legacy read/migration only.
19
+ Crew effort is off|high|max, not the host model's reasoning setting.
20
+ Other values must match the live schema. Report the returned effective policy,
21
+ activation boundaries and changed fields; do not promise that a reset or policy
22
+ alias restores a particular global state without returned evidence.
23
+ Use a compact response in the user's language. No unrelated actions.
package/commands/off.md CHANGED
@@ -1,5 +1,5 @@
1
- ---
2
- description: Disable DSH worker dispatch for this session (hard switch, enforced at the tool layer)
3
- ---
4
-
5
- Call the `dsh_worker_config` tool with `{"enabled": false}`. Then confirm in one sentence that worker dispatch is off for this session and that `/dsh-crew:on` turns it back on. Reply in the language the user is writing in. Do nothing else.
1
+ ---
2
+ description: Disable DSH worker dispatch for this session (hard switch, enforced at the tool layer)
3
+ ---
4
+
5
+ Call the `dsh_worker_config` tool with `{"enabled": false}`. Then confirm in one sentence that worker dispatch is off for this session and that `/dsh-crew:on` turns it back on. Reply in the language the user is writing in. Do nothing else.
package/commands/on.md CHANGED
@@ -1,5 +1,5 @@
1
- ---
2
- description: Re-enable DSH worker dispatch for this session
3
- ---
4
-
5
- Call the `dsh_worker_config` tool with `{"enabled": true}`. Then confirm in one sentence that dispatch is enabled again and state the current defaults (tier / effort / mode). Reply in the language the user is writing in. Do nothing else.
1
+ ---
2
+ description: Re-enable DSH worker dispatch for this session
3
+ ---
4
+
5
+ Call the `dsh_worker_config` tool with `{"enabled": true}`. Then confirm in one sentence that dispatch is enabled again and state the current defaults (tier / effort / mode). Reply in the language the user is writing in. Do nothing else.
@@ -1,9 +1,9 @@
1
- ---
2
- description: Read live DSH workflow status without changing jobs
3
- ---
4
-
5
- Call dsh_worker_status. Summarize the returned workflow IDs, role, phase, task
6
- and available progress/evidence in a compact list or table. Show tokens/model
7
- metadata only when returned; missing values are unknown, not zero. If no jobs
8
- exist, say so. This is read-only: do not dispatch, cancel or alter configuration.
9
- Reply in the user's language.
1
+ ---
2
+ description: Read live DSH workflow status without changing jobs
3
+ ---
4
+
5
+ Call dsh_worker_status. Summarize the returned workflow IDs, role, phase, task
6
+ and available progress/evidence in a compact list or table. Show tokens/model
7
+ metadata only when returned; missing values are unknown, not zero. If no jobs
8
+ exist, say so. This is read-only: do not dispatch, cancel or alter configuration.
9
+ Reply in the user's language.
package/cordis.patch.yml CHANGED
@@ -1,4 +1,4 @@
1
- # dsh-crew bundle patch: mounts the workers-hub host plugin into the profile.
2
- - insert:
3
- - id: dsh-crew-hub
4
- name: '@ran-sh/dsh-crew'
1
+ # dsh-crew bundle patch: mounts the workers-hub host plugin into the profile.
2
+ - insert:
3
+ - id: dsh-crew-hub
4
+ name: '@ran-sh/dsh-crew'
@@ -1,103 +1,103 @@
1
- # GPT-first extension integration
2
-
3
- DSH Crew is an optional DeepSeek Harness capability extension for Codex,
4
- Claude Code, ZCode, or another top-level executor. It is not itself a top-level
5
- executor and does not choose the next project-wide step.
6
-
7
- ## Discover
8
-
9
- With the isolated Hub running on 3210:
10
-
11
- ```bash
12
- dsh-crew inspect
13
- ```
14
-
15
- The same versioned JSON is available at:
16
-
17
- ```text
18
- GET http://127.0.0.1:3210/_dsh/dsh-crew/extension
19
- ```
20
-
21
- An orchestrator should check `capabilities.deepseek.worker` or
22
- `capabilities.deepseek.reviewer`, then inspect `readiness.status` and its
23
- components. `DEGRADED` is not `READY`; a model catalog proves discoverability,
24
- not successful authentication or execution.
25
-
26
- ## Dispatch and observe
27
-
28
- Codex and Claude normally call the six MCP tools. `dsh_run_worker` and
29
- `dsh_spawn_worker` accept the backward-compatible fields plus:
30
-
31
- - `job_id`: optional caller id, echoed separately from Crew's internal id.
32
- - `profile`: a Worker/Reviewer profile id.
33
- - `workspace`: per-job `repo_root`, `branch`, and `worktree` policy.
34
- - `constraints`: per-job timeout and fallback override.
35
- - `workspace_id`: a registered Workspace Context id.
36
- - `context_refs`: extra workspace-relative instruction references.
37
-
38
- Poll `dsh_worker_result` with `after_sequence` to receive only newer canonical
39
- events. HTTP consumers can use:
40
-
41
- ```text
42
- POST /_dsh/dsh-crew/jobs
43
- GET /_dsh/dsh-crew/jobs/:id/contract?after=0
44
- GET /_dsh/dsh-crew/jobs/:id/events?after=0
45
- ```
46
-
47
- CLI consumers use `dsh-crew jobs list|get|watch|cancel|submit`; `submit`
48
- accepts a versioned JSON Job Request through `--request`.
49
-
50
- The compact Contract is the automation surface. Full prose and patches require
51
- an explicit `detail=full` recovery/debug request.
52
-
53
- ## Profiles
54
-
55
- Profiles live in `~/.config/dsh-crew/profiles.json`:
56
-
57
- ```json
58
- {
59
- "schema_version": 1,
60
- "profiles": {
61
- "worker-fast": {
62
- "role": "worker",
63
- "routing": "priority",
64
- "isolation": "worktree",
65
- "fallback": false,
66
- "timeout_seconds": 300,
67
- "review_strictness": "standard"
68
- }
69
- }
70
- }
71
- ```
72
-
73
- The built-ins are `worker-default` and `reviewer-default`. The registry can be
74
- read or atomically replaced through loopback-only `GET/POST
75
- /_dsh/dsh-crew/profiles`. Invalid documents are rejected before replacement.
76
-
77
- ## Workspace Context
78
-
79
- Workspace facts live in `~/.config/dsh-crew/workspaces.json`:
80
-
81
- ```json
82
- {
83
- "schema_version": 1,
84
- "workspaces": {
85
- "dsh-crew": {
86
- "repo_root": "D:/work/dsh-crew",
87
- "default_branch": "main",
88
- "instruction_files": ["AGENTS.md"],
89
- "validation_hints": ["node --test test/*.test.mjs", "pnpm run build:client"]
90
- }
91
- }
92
- }
93
- ```
94
-
95
- Only bounded path references and hints cross the hand-off. Crew never copies
96
- instruction-file contents into the registry. Use loopback-only `GET/POST
97
- /_dsh/dsh-crew/workspaces` to read or atomically replace it.
98
-
99
- ## Failure handling
100
-
101
- Every structured failure includes a `family` and `disposition`. Dispositions
102
- are `retry`, `fallback`, `human`, or `terminal` (`none` for success), allowing
103
- the GPT-first controller to decide the next step without parsing logs.
1
+ # GPT-first extension integration
2
+
3
+ DSH Crew is an optional DeepSeek Harness capability extension for Codex,
4
+ Claude Code, ZCode, or another top-level executor. It is not itself a top-level
5
+ executor and does not choose the next project-wide step.
6
+
7
+ ## Discover
8
+
9
+ With the isolated Hub running on 3210:
10
+
11
+ ```bash
12
+ dsh-crew inspect
13
+ ```
14
+
15
+ The same versioned JSON is available at:
16
+
17
+ ```text
18
+ GET http://127.0.0.1:3210/_dsh/dsh-crew/extension
19
+ ```
20
+
21
+ An orchestrator should check `capabilities.deepseek.worker` or
22
+ `capabilities.deepseek.reviewer`, then inspect `readiness.status` and its
23
+ components. `DEGRADED` is not `READY`; a model catalog proves discoverability,
24
+ not successful authentication or execution.
25
+
26
+ ## Dispatch and observe
27
+
28
+ Codex and Claude normally call the six MCP tools. `dsh_run_worker` and
29
+ `dsh_spawn_worker` accept the backward-compatible fields plus:
30
+
31
+ - `job_id`: optional caller id, echoed separately from Crew's internal id.
32
+ - `profile`: a Worker/Reviewer profile id.
33
+ - `workspace`: per-job `repo_root`, `branch`, and `worktree` policy.
34
+ - `constraints`: per-job timeout and fallback override.
35
+ - `workspace_id`: a registered Workspace Context id.
36
+ - `context_refs`: extra workspace-relative instruction references.
37
+
38
+ Poll `dsh_worker_result` with `after_sequence` to receive only newer canonical
39
+ events. HTTP consumers can use:
40
+
41
+ ```text
42
+ POST /_dsh/dsh-crew/jobs
43
+ GET /_dsh/dsh-crew/jobs/:id/contract?after=0
44
+ GET /_dsh/dsh-crew/jobs/:id/events?after=0
45
+ ```
46
+
47
+ CLI consumers use `dsh-crew jobs list|get|watch|cancel|submit`; `submit`
48
+ accepts a versioned JSON Job Request through `--request`.
49
+
50
+ The compact Contract is the automation surface. Full prose and patches require
51
+ an explicit `detail=full` recovery/debug request.
52
+
53
+ ## Profiles
54
+
55
+ Profiles live in `~/.config/dsh-crew/profiles.json`:
56
+
57
+ ```json
58
+ {
59
+ "schema_version": 1,
60
+ "profiles": {
61
+ "worker-fast": {
62
+ "role": "worker",
63
+ "routing": "priority",
64
+ "isolation": "worktree",
65
+ "fallback": false,
66
+ "timeout_seconds": 300,
67
+ "review_strictness": "standard"
68
+ }
69
+ }
70
+ }
71
+ ```
72
+
73
+ The built-ins are `worker-default` and `reviewer-default`. The registry can be
74
+ read or atomically replaced through loopback-only `GET/POST
75
+ /_dsh/dsh-crew/profiles`. Invalid documents are rejected before replacement.
76
+
77
+ ## Workspace Context
78
+
79
+ Workspace facts live in `~/.config/dsh-crew/workspaces.json`:
80
+
81
+ ```json
82
+ {
83
+ "schema_version": 1,
84
+ "workspaces": {
85
+ "dsh-crew": {
86
+ "repo_root": "D:/work/dsh-crew",
87
+ "default_branch": "main",
88
+ "instruction_files": ["AGENTS.md"],
89
+ "validation_hints": ["node --test test/*.test.mjs", "pnpm run build:client"]
90
+ }
91
+ }
92
+ }
93
+ ```
94
+
95
+ Only bounded path references and hints cross the hand-off. Crew never copies
96
+ instruction-file contents into the registry. Use loopback-only `GET/POST
97
+ /_dsh/dsh-crew/workspaces` to read or atomically replace it.
98
+
99
+ ## Failure handling
100
+
101
+ Every structured failure includes a `family` and `disposition`. Dispositions
102
+ are `retry`, `fallback`, `human`, or `terminal` (`none` for success), allowing
103
+ the GPT-first controller to decide the next step without parsing logs.