super-dsh 0.3.0-c → 0.3.0-e
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.md +25 -22
- package/client/index.js +25 -11
- package/cordis.patch.yml +3 -3
- package/package.json +20 -8
- package/superd-hub/dist/bundle-setup.d.ts +17 -2
- package/superd-hub/dist/bundle-setup.js +158 -2
- package/superd-hub/dist/client/mesh-api.d.ts +6 -3
- package/superd-hub/dist/client/mesh-api.js +20 -5
- package/superd-hub/dist/fusion-transport.js +14 -3
- package/superd-hub/dist/gateway.js +2 -0
- package/superd-hub/dist/machines.d.ts +2 -0
- package/superd-hub/dist/machines.js +2 -0
- package/superd-hub/dist/mesh-link.d.ts +10 -2
- package/superd-hub/dist/mesh-link.js +131 -27
- package/superd-hub/dist/mesh-rpc.d.ts +1 -1
- package/superd-hub/dist/mesh-rpc.js +20 -12
- package/superd-hub/dist/pairing-auth.d.ts +7 -0
- package/superd-hub/dist/pairing-auth.js +29 -0
- package/superd-hub/lib/client/index.js +25 -11
- package/superd-hub/package.json +19 -2
- package/superd-hub/scripts/register-companion.mjs +100 -0
- package/bundles/better-dsh.tgz +0 -0
- package/bundles/manifest.json +0 -10
- package/node_modules/better-dsh/LICENSE +0 -24
- package/node_modules/better-dsh/README.md +0 -323
- package/node_modules/better-dsh/THIRD_PARTY_NOTICES.md +0 -52
- package/node_modules/better-dsh/cordis.patch.yml +0 -139
- package/node_modules/better-dsh/docs/00_adr/0001-bridge-tool-layer-not-service-layer.md +0 -14
- package/node_modules/better-dsh/docs/00_adr/0002-masking-is-presentation-only.md +0 -15
- package/node_modules/better-dsh/docs/10_plans/2026-09-23-remote-execution-framework.md +0 -236
- package/node_modules/better-dsh/docs/10_plans/2026-09-23-remote-framework-impl.md +0 -2083
- package/node_modules/better-dsh/docs/10_plans/2026-09-26-lsp-ast-reminder.md +0 -64
- package/node_modules/better-dsh/docs/10_plans/A2A-messaging-channel-test-archive.md +0 -256
- package/node_modules/better-dsh/docs/10_plans/code-mode-vs-rlm-ipython-comparison.md +0 -137
- package/node_modules/better-dsh/docs/10_plans/dashr-blueprint-review.md +0 -201
- package/node_modules/better-dsh/docs/10_plans/dashr-blueprint.md +0 -561
- package/node_modules/better-dsh/docs/10_plans/dashr-compaction-window-and-archive.md +0 -307
- package/node_modules/better-dsh/docs/10_plans/dashr-profile-layer-feasibility.md +0 -367
- package/node_modules/better-dsh/docs/10_plans/dashr-sandbox-escalation-semantics-gap.md +0 -171
- package/node_modules/better-dsh/docs/10_plans/dashr-security-sandbox-analysis.md +0 -187
- package/node_modules/better-dsh/docs/10_plans/dashr-surface-invariant-and-omp-imports.md +0 -97
- package/node_modules/better-dsh/docs/10_plans/ipython-kernel-interactive-interface-test-report.md +0 -152
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft.md +0 -146
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft_v3.md +0 -50
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft_v4.md +0 -79
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-vs-PrimeAgent-systemprompt-toolcatalog-comparison.md +0 -138
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/RLM-system-prompt-injection-gap-report.md +0 -161
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/V0.1.5-development-plan.md +0 -109
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/actinoable-surface-to-llm-in-agent-runtime_dsh.md +0 -50
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/actinoable-surface-to-llm-in-agent-runtime_prime.md +0 -113
- package/node_modules/better-dsh/docs/10_plans/recallable-compaction.md +0 -147
- package/node_modules/better-dsh/docs/10_plans/spike-tag-repro.mjs +0 -102
- package/node_modules/better-dsh/docs/10_plans/upstream-analysis.md +0 -128
- package/node_modules/better-dsh/docs/20_specs/agent/spec.md +0 -54
- package/node_modules/better-dsh/docs/20_specs/ast/spec.md +0 -57
- package/node_modules/better-dsh/docs/20_specs/compaction-recall/spec.md +0 -46
- package/node_modules/better-dsh/docs/20_specs/ctx/spec.md +0 -107
- package/node_modules/better-dsh/docs/20_specs/dsh/spec.md +0 -47
- package/node_modules/better-dsh/docs/20_specs/dvc/spec.md +0 -106
- package/node_modules/better-dsh/docs/20_specs/escalation-guidance/spec.md +0 -44
- package/node_modules/better-dsh/docs/20_specs/fs-scheme-resolution/spec.md +0 -37
- package/node_modules/better-dsh/docs/20_specs/hash-edit/spec.md +0 -41
- package/node_modules/better-dsh/docs/20_specs/http-read/spec.md +0 -73
- package/node_modules/better-dsh/docs/20_specs/kernel-provisioning/spec.md +0 -53
- package/node_modules/better-dsh/docs/20_specs/lsp/spec.md +0 -121
- package/node_modules/better-dsh/docs/20_specs/mobile-layout/spec.md +0 -108
- package/node_modules/better-dsh/docs/20_specs/model-failover/spec.md +0 -20
- package/node_modules/better-dsh/docs/20_specs/plugins-page-components/spec.md +0 -79
- package/node_modules/better-dsh/docs/20_specs/preact-ui-shell/spec.md +0 -22
- package/node_modules/better-dsh/docs/20_specs/repl-dispatch-resilience/spec.md +0 -21
- package/node_modules/better-dsh/docs/20_specs/skill/spec.md +0 -58
- package/node_modules/better-dsh/docs/20_specs/tool-surface/spec.md +0 -222
- package/node_modules/better-dsh/docs/20_specs/url-schema/spec.md +0 -148
- package/node_modules/better-dsh/docs/20_specs/web-trust-fence/spec.md +0 -43
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-06-write/345/267/245/345/205/267sandbox/345/215/207/347/272/247/351/200/217/344/274/240bug/345/244/215/345/217/221/345/217/212/346/214/202/350/265/267-/344/272/213/344/273/266/346/212/245/345/221/212.md +0 -176
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-08-hashline-edit-E_RANGE_UNVERIFIED/350/267/250/350/275/256/344/274/232/350/257/235/351/224/256/345/244/261/346/225/210-/350/257/212/346/226/255/346/212/245/345/221/212.md +0 -226
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-11-control-prompt-into-eval-description/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -222
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-fs-scheme-resolution-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -81
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-grammar-matrix/344/270/216catalog-centralize-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -234
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-recallable-context-design/351/252/214/350/257/201/346/212/245/345/221/212.md +0 -160
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-recallable-context-/345/256/236/346/265/213/345/211/247/346/234/254.md +0 -44
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-recallable-context-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -89
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-/345/205/255scheme/345/206/222/347/203/237/344/270/216/350/276/271/347/225/214/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -198
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-13-hashline-off/344/270/213scheme/345/217/257/350/276/276/346/200/247/345/267/245/345/205/267/351/235/242/344/270/215/345/257/271/347/247/260-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -246
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-13-preact-ui-shell/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -50
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-14-4999-skill/346/270/205/345/215/225/344/270/216lsp-gate/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -63
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-17-plugins/351/241/265/345/205/255/347/273/204/344/273/266/346/213/206/345/210/206/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -76
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-22-4988/345/217/214/345/271/263/351/235/242/345/220/257/345/212/250/344/277/256/345/244/215/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -76
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-22-better-dsh/347/273/204/344/273/266/347/203/255/346/217/222/346/213/224/344/270/216/344/276/235/350/265/226/347/272/247/350/201/224/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -134
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-23-remote-framework/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -92
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-23-remote-framework/347/254/254/344/270/200/344/272/272/347/247/260/345/244/215/346/265/213/346/212/245/345/221/212.md +0 -125
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-23-ssh/345/267/245/345/205/267assisted-pty/344/274/232/350/257/235framing/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -207
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-24-v0.1.7-rc.1/345/257/271/351/275/220/350/275/256-compaction/344/270/216failover/350/256/276/347/275/256/351/235/242/344/277/256/345/244/215/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -65
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-27-lsp-ast-reminder-4999/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -53
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-28-ctx-scheme/351/225/277/344/274/232/350/257/235utility/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -155
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-01-v0.2.4d-web-password-gate/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -105
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-02-better-dsh-schemastery/344/276/235/350/265/226/345/243/260/346/230/216/344/277/256/345/244/215/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -62
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-02-ctx-navigation/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -137
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-02-v0.2.0-rc.2/345/257/271/351/275/220/350/275/256/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -38
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-ast-engine-deomp-4999/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -325
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-better-dsh-tool-surface-repl-dvc-browser-ast-lsp-4999/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -185
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-docs-packaging-trim/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -82
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-physical-import/344/270/216llm-completion-ast/347/233/270/345/257/271/350/267/257/345/276/204/344/277/256/345/244/215/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -101
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-pnpm11/345/271/264/351/276/204/351/227/250/351/224/201/346/226/207/344/273/266/347/233/270/344/275/215/345/256/236/350/257/201.md +0 -54
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-remote-BYO-PTY-label/351/207/215/346/236/204/347/254/254/344/270/200/344/272/272/347/247/260/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -447
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-schemastery-cosmokit/346/272/220/347/240/201/345/206/205/350/201/224/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -63
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-zero-npm-runtime-deps/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -82
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-04-ast-engine-deomp-0.2.5-d/345/217/221/345/270/203/351/252/214/346/224/266/346/212/245/345/221/212.md +0 -220
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-04-ast_grep/344/270/216ast_edit/345/245/221/347/272/246/344/270/216/350/276/271/347/225/214/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -151
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-06-authentication-only-web-admission-4999.md +0 -63
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-07-better-dsh-welcome-self-contained-4999.md +0 -52
- package/node_modules/better-dsh/docs/50_test-reports/REPL-/345/267/245/345/205/267/350/260/203/347/224/250-/346/210/252/346/226/255/350/257/212/346/226/255.md +0 -110
- package/node_modules/better-dsh/docs/50_test-reports/kernel-provisioning.md +0 -44
- package/node_modules/better-dsh/docs/50_test-reports/repl-kernel-provisioning-test-report.md +0 -87
- package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.2-alpha.5-local-test-report.md +0 -81
- package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.2-alpha.5-report.md +0 -93
- package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.3-alpha.2-local-test-report.md +0 -44
- package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.3-alpha.2-report.md +0 -110
- package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.5-rc.2-local-test-report.md +0 -79
- package/node_modules/better-dsh/docs/50_test-reports/v0.1.8-improved-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -142
- package/node_modules/better-dsh/docs/50_test-reports/v0.1.8-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -193
- package/node_modules/better-dsh/docs/50_test-reports/v0.1.8b-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -96
- package/node_modules/better-dsh/docs/50_test-reports/v0.1.8c-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -127
- package/node_modules/better-dsh/docs/50_test-reports/v0.1.8d-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -150
- package/node_modules/better-dsh/docs/50_test-reports/v0.1.8e-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -224
- package/node_modules/better-dsh/docs/50_test-reports/v0.1.9a-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -168
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.0b-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -123
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.1-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -110
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.1b-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -86
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.1c-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -66
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.1d-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -67
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.1e-P1-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -136
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.1ef-dev-audit-report.md +0 -73
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.1f-plugin-shipped-ui-patches/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -102
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.3b-hashline-content-locator/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -73
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.3c-mobile-wave/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -47
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.4-ios-focus-zoom-suppression/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -158
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/SKILL.md +0 -147
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch01-user-guide.md +0 -123
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch02-plugin-basics.md +0 -127
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch03-plugin-framework-practice.md +0 -120
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch04-cordis-fundamentals.md +0 -129
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch05-cordis-api.md +0 -115
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch06-architecture.md +0 -109
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch07-capability-seams.md +0 -97
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch08-internals-pipelines.md +0 -111
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch09-api-gateway.md +0 -106
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch10-config-catalog.md +0 -97
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch11-tool-catalog.md +0 -121
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch12-persistence-catalog.md +0 -109
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch13-subsystems-core-session.md +0 -106
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch14-subsystems-agent-loop.md +0 -111
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch15-subsystems-tool-execution.md +0 -106
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch16-subsystems-session-data.md +0 -132
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch17-subsystems-llm-streaming.md +0 -128
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch18-subsystems-web-ui.md +0 -142
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch19-cookbook.md +0 -149
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch20-development-testing.md +0 -87
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch21-postmortems.md +0 -82
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch22-i18n.md +0 -86
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/cheatsheet.md +0 -67
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/glossary.md +0 -57
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/patterns.md +0 -88
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/AGENTS.md +0 -75
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/agent-lifecycle.md +0 -84
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/agent-lifecycle.zh.md +0 -86
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/api-gateway.md +0 -164
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/api-gateway.zh.md +0 -164
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/architecture.md +0 -150
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/architecture.zh.md +0 -154
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/capability-seams.md +0 -543
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/capability-seams.zh.md +0 -545
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/config-catalog.md +0 -3473
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/config-catalog.zh.md +0 -3474
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-package.md +0 -117
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-package.zh.md +0 -119
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-remote-api.md +0 -197
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-remote-api.zh.md +0 -197
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-settings-card.md +0 -102
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-settings-card.zh.md +0 -102
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-tool.md +0 -101
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-tool.zh.md +0 -103
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-vendored-package.md +0 -59
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-vendored-package.zh.md +0 -59
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-an-llm-adapter.md +0 -43
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-an-llm-adapter.zh.md +0 -43
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/extension-cookbook.md +0 -132
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/extension-cookbook.zh.md +0 -136
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/maintaining-dsh-code-review.md +0 -64
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/maintaining-dsh-code-review.zh.md +0 -64
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/responding-to-pr-review-on-a-stack.md +0 -32
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +0 -32
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/context.md +0 -364
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/context.zh.md +0 -366
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/events.md +0 -207
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/events.zh.md +0 -209
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/fiber.md +0 -375
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/fiber.zh.md +0 -377
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/inherited.md +0 -39
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/registry.md +0 -152
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/registry.zh.md +0 -154
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/service.md +0 -102
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/service.zh.md +0 -104
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-primer.md +0 -45
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-primer.zh.md +0 -51
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/01-first-plugin.md +0 -95
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/01-first-plugin.zh.md +0 -95
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/02-lifecycle-and-effects.md +0 -98
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +0 -98
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/03-services.md +0 -98
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/03-services.zh.md +0 -98
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/04-events.md +0 -144
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/04-events.zh.md +0 -144
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/05-config.md +0 -84
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/05-config.zh.md +0 -84
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/06-composition-and-hmr.md +0 -113
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/06-composition-and-hmr.zh.md +0 -113
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/07-into-the-harness.md +0 -108
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/07-into-the-harness.zh.md +0 -108
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/index.md +0 -60
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/index.zh.md +0 -62
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/deepseek-llm-api-wire-extensions.md +0 -163
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/deepseek-llm-api-wire-extensions.zh.md +0 -163
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/defensive-patterns.md +0 -33
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/defensive-patterns.zh.md +0 -35
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/development.md +0 -167
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/development.zh.md +0 -173
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/event-producer-consumer.md +0 -86
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/event-producer-consumer.zh.md +0 -88
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/glossary.md +0 -45
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/glossary.zh.md +0 -45
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/graph-atlas.md +0 -22
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/graph-atlas.zh.md +0 -24
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/README.md +0 -60
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/README.zh.md +0 -62
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/style-samples.md +0 -87
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/terminology.md +0 -214
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-prompt.md +0 -263
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-rules.md +0 -69
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-rules.zh.md +0 -69
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/module-graph.md +0 -1411
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/module-graph.zh.md +0 -1413
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/persistence-catalog.md +0 -1075
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/persistence-catalog.zh.md +0 -1077
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0001-acp-default-export-drops-inject.md +0 -113
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0001-acp-default-export-drops-inject.zh.md +0 -113
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +0 -47
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +0 -47
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0003-web-agent-gui-feedback-loop.md +0 -53
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +0 -53
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +0 -55
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +0 -55
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/README.md +0 -18
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/README.zh.md +0 -18
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/rescope.md +0 -53
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/rescope.zh.md +0 -53
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/README.md +0 -61
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/README.zh.md +0 -61
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/agent-team.md +0 -207
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/agent-team.zh.md +0 -207
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/approval.md +0 -170
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/approval.zh.md +0 -170
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/attachment.md +0 -351
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/attachment.zh.md +0 -351
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/client-modules.md +0 -168
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/client-modules.zh.md +0 -168
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/code-runtime.md +0 -195
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/code-runtime.zh.md +0 -195
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/commands.md +0 -219
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/commands.zh.md +0 -219
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/compaction.md +0 -238
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/compaction.zh.md +0 -238
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/conversation.md +0 -258
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/conversation.zh.md +0 -258
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/core.md +0 -1209
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/core.zh.md +0 -1219
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/credentials.md +0 -329
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/credentials.zh.md +0 -329
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/extensions.md +0 -382
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/extensions.zh.md +0 -382
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/feedback.md +0 -266
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/feedback.zh.md +0 -266
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/filesystem.md +0 -505
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/filesystem.zh.md +0 -505
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/goal.md +0 -277
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/goal.zh.md +0 -277
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/invariants.md +0 -88
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/invariants.zh.md +0 -88
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/jobs.md +0 -290
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/jobs.zh.md +0 -290
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/llm-streaming.md +0 -1080
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/llm-streaming.zh.md +0 -1086
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/lsp.md +0 -202
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/lsp.zh.md +0 -202
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/permission-presets.md +0 -131
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/permission-presets.zh.md +0 -131
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/persistence.md +0 -395
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/persistence.zh.md +0 -395
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/plan.md +0 -87
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/plan.zh.md +0 -87
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/sandbox.md +0 -220
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/sandbox.zh.md +0 -220
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/schedule.md +0 -192
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/schedule.zh.md +0 -192
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/scope.md +0 -59
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/scope.zh.md +0 -59
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-projection.md +0 -354
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-projection.zh.md +0 -354
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-query.md +0 -509
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-query.zh.md +0 -509
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-reference.md +0 -219
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-reference.zh.md +0 -219
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-telemetry.md +0 -194
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-telemetry.zh.md +0 -194
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-title.md +0 -204
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-title.zh.md +0 -204
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session.md +0 -1155
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session.zh.md +0 -1159
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/settings.md +0 -405
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/settings.zh.md +0 -405
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/shell.md +0 -303
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/shell.zh.md +0 -303
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/skills.md +0 -354
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/skills.zh.md +0 -354
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/slots.md +0 -175
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/slots.zh.md +0 -175
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/spill.md +0 -117
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/spill.zh.md +0 -117
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/storage.md +0 -260
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/storage.zh.md +0 -260
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subagent.md +0 -766
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subagent.zh.md +0 -770
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subprocess.md +0 -324
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subprocess.zh.md +0 -324
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/system-prompt.md +0 -220
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/system-prompt.zh.md +0 -220
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/terminal.md +0 -184
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/terminal.zh.md +0 -184
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/todo.md +0 -32
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/todo.zh.md +0 -32
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/token-meter.md +0 -105
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/token-meter.zh.md +0 -105
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/tools.md +0 -720
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/tools.zh.md +0 -720
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/typert.md +0 -343
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/typert.zh.md +0 -343
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/user-questions.md +0 -178
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/user-questions.zh.md +0 -178
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-client.md +0 -95
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-client.zh.md +0 -95
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-server.md +0 -154
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-server.zh.md +0 -154
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web.md +0 -206
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web.zh.md +0 -206
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/webhook.md +0 -70
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/webhook.zh.md +0 -70
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workflow.md +0 -278
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workflow.zh.md +0 -278
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workspace.md +0 -321
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workspace.zh.md +0 -321
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/testing.md +0 -54
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/testing.zh.md +0 -54
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-catalog.md +0 -2225
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-catalog.zh.md +0 -2233
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-execution-pipeline.md +0 -62
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-execution-pipeline.zh.md +0 -64
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/config.md +0 -106
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/config.zh.md +0 -106
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/index.md +0 -144
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/index.zh.md +0 -144
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/publish.md +0 -183
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/publish.zh.md +0 -183
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/tool.md +0 -52
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/tool.zh.md +0 -52
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/events.md +0 -143
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/events.zh.md +0 -143
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/index.md +0 -137
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/index.zh.md +0 -137
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/service.md +0 -148
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/service.zh.md +0 -150
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/dynamic-cordis.md +0 -15
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/dynamic-cordis.zh.md +0 -15
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/index.md +0 -155
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/index.zh.md +0 -155
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/llm-adapter.md +0 -189
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/llm-adapter.zh.md +0 -189
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/github-review.md +0 -102
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/github-review.zh.md +0 -102
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/index.md +0 -30
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/index.zh.md +0 -30
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/mcp-memory.md +0 -101
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/mcp-memory.zh.md +0 -101
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/network-proxy.md +0 -85
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/network-proxy.zh.md +0 -85
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/providers.md +0 -190
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/providers.zh.md +0 -190
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/python-sdk.md +0 -150
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/python-sdk.zh.md +0 -150
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/schedule.md +0 -21
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/schedule.zh.md +0 -21
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/index.md +0 -11
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/index.zh.md +0 -11
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/web-styling.md +0 -29
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/web-styling.zh.md +0 -29
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/site-pages-map.txt +0 -234
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/site-pages.json +0 -232
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src-README.md +0 -63
- package/node_modules/better-dsh/docs/dev-test-environment-notes.md +0 -137
- package/node_modules/better-dsh/docs/distro-blueprint.md +0 -81
- package/node_modules/better-dsh/docs/dsh-webUI-with-rlm-mode.png +0 -0
- package/node_modules/better-dsh/docs/repositioning-and-rebranding.md +0 -102
- package/node_modules/better-dsh/docs/specs/agent/spec.md +0 -54
- package/node_modules/better-dsh/docs/specs/ast/spec.md +0 -57
- package/node_modules/better-dsh/docs/specs/ast-engine-deomp/spec.md +0 -170
- package/node_modules/better-dsh/docs/specs/authentication-only-web-admission/spec.md +0 -51
- package/node_modules/better-dsh/docs/specs/compaction-recall/spec.md +0 -46
- package/node_modules/better-dsh/docs/specs/ctx/spec.md +0 -179
- package/node_modules/better-dsh/docs/specs/docs-packaging-trim/spec.md +0 -110
- package/node_modules/better-dsh/docs/specs/dsh/spec.md +0 -47
- package/node_modules/better-dsh/docs/specs/dvc/spec.md +0 -106
- package/node_modules/better-dsh/docs/specs/escalation-guidance/spec.md +0 -44
- package/node_modules/better-dsh/docs/specs/fs-scheme-resolution/spec.md +0 -37
- package/node_modules/better-dsh/docs/specs/hash-edit/spec.md +0 -41
- package/node_modules/better-dsh/docs/specs/http-read/spec.md +0 -73
- package/node_modules/better-dsh/docs/specs/kernel-provisioning/spec.md +0 -53
- package/node_modules/better-dsh/docs/specs/lsp/spec.md +0 -121
- package/node_modules/better-dsh/docs/specs/mobile-layout/spec.md +0 -108
- package/node_modules/better-dsh/docs/specs/model-failover/spec.md +0 -20
- package/node_modules/better-dsh/docs/specs/model-picker-ios-blur/spec.md +0 -168
- package/node_modules/better-dsh/docs/specs/plugins-page-components/spec.md +0 -79
- package/node_modules/better-dsh/docs/specs/preact-ui-shell/spec.md +0 -22
- package/node_modules/better-dsh/docs/specs/remote-pty-label/spec.md +0 -126
- package/node_modules/better-dsh/docs/specs/repl-dispatch-resilience/spec.md +0 -21
- package/node_modules/better-dsh/docs/specs/skill/spec.md +0 -58
- package/node_modules/better-dsh/docs/specs/tool-surface/spec.md +0 -222
- package/node_modules/better-dsh/docs/specs/url-schema/spec.md +0 -148
- package/node_modules/better-dsh/docs/specs/web-trust-fence/spec.md +0 -43
- package/node_modules/better-dsh/docs/specs/welcome-self-contained/spec.md +0 -13
- package/node_modules/better-dsh/docs/specs/zero-npm-runtime-deps/spec.md +0 -85
- package/node_modules/better-dsh/docs/superpowers/plans/2026-10-02-ctx-navigation.md +0 -319
- package/node_modules/better-dsh/docs/superpowers/plans/2026-10-03-ast-engine-deomp.md +0 -1214
- package/node_modules/better-dsh/docs/superpowers/plans/2026-10-03-docs-packaging-trim.md +0 -181
- package/node_modules/better-dsh/docs/superpowers/specs/2026-10-02-ctx-navigation-design.md +0 -209
- package/node_modules/better-dsh/docs/upstream-dsh-0.1.5-rc.2-report.md +0 -156
- package/node_modules/better-dsh/dsh-docs/AGENTS.md +0 -75
- package/node_modules/better-dsh/dsh-docs/agent-lifecycle.md +0 -84
- package/node_modules/better-dsh/dsh-docs/agent-lifecycle.zh.md +0 -86
- package/node_modules/better-dsh/dsh-docs/api-gateway.md +0 -164
- package/node_modules/better-dsh/dsh-docs/api-gateway.zh.md +0 -164
- package/node_modules/better-dsh/dsh-docs/architecture.md +0 -150
- package/node_modules/better-dsh/dsh-docs/architecture.zh.md +0 -154
- package/node_modules/better-dsh/dsh-docs/baseline.md +0 -13
- package/node_modules/better-dsh/dsh-docs/capability-seams.md +0 -543
- package/node_modules/better-dsh/dsh-docs/capability-seams.zh.md +0 -545
- package/node_modules/better-dsh/dsh-docs/config-catalog.md +0 -3473
- package/node_modules/better-dsh/dsh-docs/config-catalog.zh.md +0 -3474
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-package.md +0 -117
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-package.zh.md +0 -119
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-remote-api.md +0 -197
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-remote-api.zh.md +0 -197
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-session-format-version.md +0 -109
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-session-format-version.zh.md +0 -109
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-settings-card.md +0 -102
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-settings-card.zh.md +0 -102
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-tool.md +0 -101
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-tool.zh.md +0 -103
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-vendored-package.md +0 -59
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-vendored-package.zh.md +0 -59
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-an-llm-adapter.md +0 -43
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-an-llm-adapter.zh.md +0 -43
- package/node_modules/better-dsh/dsh-docs/cookbook/extension-cookbook.md +0 -132
- package/node_modules/better-dsh/dsh-docs/cookbook/extension-cookbook.zh.md +0 -136
- package/node_modules/better-dsh/dsh-docs/cookbook/maintaining-dsh-code-review.md +0 -64
- package/node_modules/better-dsh/dsh-docs/cookbook/maintaining-dsh-code-review.zh.md +0 -64
- package/node_modules/better-dsh/dsh-docs/cookbook/responding-to-pr-review-on-a-stack.md +0 -32
- package/node_modules/better-dsh/dsh-docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +0 -32
- package/node_modules/better-dsh/dsh-docs/cordis-api/context.md +0 -364
- package/node_modules/better-dsh/dsh-docs/cordis-api/context.zh.md +0 -366
- package/node_modules/better-dsh/dsh-docs/cordis-api/events.md +0 -207
- package/node_modules/better-dsh/dsh-docs/cordis-api/events.zh.md +0 -209
- package/node_modules/better-dsh/dsh-docs/cordis-api/fiber.md +0 -375
- package/node_modules/better-dsh/dsh-docs/cordis-api/fiber.zh.md +0 -377
- package/node_modules/better-dsh/dsh-docs/cordis-api/inherited.md +0 -39
- package/node_modules/better-dsh/dsh-docs/cordis-api/registry.md +0 -152
- package/node_modules/better-dsh/dsh-docs/cordis-api/registry.zh.md +0 -154
- package/node_modules/better-dsh/dsh-docs/cordis-api/service.md +0 -102
- package/node_modules/better-dsh/dsh-docs/cordis-api/service.zh.md +0 -104
- package/node_modules/better-dsh/dsh-docs/cordis-primer.md +0 -45
- package/node_modules/better-dsh/dsh-docs/cordis-primer.zh.md +0 -51
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/01-first-plugin.md +0 -95
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/01-first-plugin.zh.md +0 -95
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/02-lifecycle-and-effects.md +0 -98
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +0 -98
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/03-services.md +0 -98
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/03-services.zh.md +0 -98
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/04-events.md +0 -144
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/04-events.zh.md +0 -144
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/05-config.md +0 -84
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/05-config.zh.md +0 -84
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/06-composition-and-hmr.md +0 -113
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/06-composition-and-hmr.zh.md +0 -113
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/07-into-the-harness.md +0 -108
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/07-into-the-harness.zh.md +0 -108
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/index.md +0 -60
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/index.zh.md +0 -62
- package/node_modules/better-dsh/dsh-docs/deepseek-llm-api-wire-extensions.md +0 -163
- package/node_modules/better-dsh/dsh-docs/deepseek-llm-api-wire-extensions.zh.md +0 -163
- package/node_modules/better-dsh/dsh-docs/defensive-patterns.md +0 -33
- package/node_modules/better-dsh/dsh-docs/defensive-patterns.zh.md +0 -35
- package/node_modules/better-dsh/dsh-docs/development.md +0 -167
- package/node_modules/better-dsh/dsh-docs/development.zh.md +0 -173
- package/node_modules/better-dsh/dsh-docs/event-producer-consumer.md +0 -86
- package/node_modules/better-dsh/dsh-docs/event-producer-consumer.zh.md +0 -88
- package/node_modules/better-dsh/dsh-docs/glossary.md +0 -45
- package/node_modules/better-dsh/dsh-docs/glossary.zh.md +0 -45
- package/node_modules/better-dsh/dsh-docs/graph-atlas.md +0 -22
- package/node_modules/better-dsh/dsh-docs/graph-atlas.zh.md +0 -24
- package/node_modules/better-dsh/dsh-docs/i18n/README.md +0 -60
- package/node_modules/better-dsh/dsh-docs/i18n/README.zh.md +0 -62
- package/node_modules/better-dsh/dsh-docs/i18n/style-samples.md +0 -87
- package/node_modules/better-dsh/dsh-docs/i18n/terminology.md +0 -214
- package/node_modules/better-dsh/dsh-docs/i18n/translation-prompt.md +0 -263
- package/node_modules/better-dsh/dsh-docs/i18n/translation-rules.md +0 -69
- package/node_modules/better-dsh/dsh-docs/i18n/translation-rules.zh.md +0 -69
- package/node_modules/better-dsh/dsh-docs/module-graph.md +0 -1411
- package/node_modules/better-dsh/dsh-docs/module-graph.zh.md +0 -1413
- package/node_modules/better-dsh/dsh-docs/persistence-catalog.md +0 -1075
- package/node_modules/better-dsh/dsh-docs/persistence-catalog.zh.md +0 -1077
- package/node_modules/better-dsh/dsh-docs/postmortem/0001-acp-default-export-drops-inject.md +0 -113
- package/node_modules/better-dsh/dsh-docs/postmortem/0001-acp-default-export-drops-inject.zh.md +0 -113
- package/node_modules/better-dsh/dsh-docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +0 -47
- package/node_modules/better-dsh/dsh-docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +0 -47
- package/node_modules/better-dsh/dsh-docs/postmortem/0003-web-agent-gui-feedback-loop.md +0 -53
- package/node_modules/better-dsh/dsh-docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +0 -53
- package/node_modules/better-dsh/dsh-docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +0 -55
- package/node_modules/better-dsh/dsh-docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +0 -55
- package/node_modules/better-dsh/dsh-docs/postmortem/README.md +0 -18
- package/node_modules/better-dsh/dsh-docs/postmortem/README.zh.md +0 -18
- package/node_modules/better-dsh/dsh-docs/rescope.md +0 -53
- package/node_modules/better-dsh/dsh-docs/rescope.zh.md +0 -53
- package/node_modules/better-dsh/dsh-docs/session-format-status.md +0 -47
- package/node_modules/better-dsh/dsh-docs/session-format-status.zh.md +0 -47
- package/node_modules/better-dsh/dsh-docs/subsystems/README.md +0 -61
- package/node_modules/better-dsh/dsh-docs/subsystems/README.zh.md +0 -61
- package/node_modules/better-dsh/dsh-docs/subsystems/agent-team.md +0 -207
- package/node_modules/better-dsh/dsh-docs/subsystems/agent-team.zh.md +0 -207
- package/node_modules/better-dsh/dsh-docs/subsystems/approval.md +0 -170
- package/node_modules/better-dsh/dsh-docs/subsystems/approval.zh.md +0 -170
- package/node_modules/better-dsh/dsh-docs/subsystems/attachment.md +0 -351
- package/node_modules/better-dsh/dsh-docs/subsystems/attachment.zh.md +0 -351
- package/node_modules/better-dsh/dsh-docs/subsystems/client-modules.md +0 -168
- package/node_modules/better-dsh/dsh-docs/subsystems/client-modules.zh.md +0 -168
- package/node_modules/better-dsh/dsh-docs/subsystems/client-resources.md +0 -91
- package/node_modules/better-dsh/dsh-docs/subsystems/client-resources.zh.md +0 -91
- package/node_modules/better-dsh/dsh-docs/subsystems/code-runtime.md +0 -195
- package/node_modules/better-dsh/dsh-docs/subsystems/code-runtime.zh.md +0 -195
- package/node_modules/better-dsh/dsh-docs/subsystems/commands.md +0 -219
- package/node_modules/better-dsh/dsh-docs/subsystems/commands.zh.md +0 -219
- package/node_modules/better-dsh/dsh-docs/subsystems/compaction.md +0 -238
- package/node_modules/better-dsh/dsh-docs/subsystems/compaction.zh.md +0 -238
- package/node_modules/better-dsh/dsh-docs/subsystems/conversation.md +0 -258
- package/node_modules/better-dsh/dsh-docs/subsystems/conversation.zh.md +0 -258
- package/node_modules/better-dsh/dsh-docs/subsystems/core.md +0 -1209
- package/node_modules/better-dsh/dsh-docs/subsystems/core.zh.md +0 -1219
- package/node_modules/better-dsh/dsh-docs/subsystems/credentials.md +0 -329
- package/node_modules/better-dsh/dsh-docs/subsystems/credentials.zh.md +0 -329
- package/node_modules/better-dsh/dsh-docs/subsystems/extensions.md +0 -382
- package/node_modules/better-dsh/dsh-docs/subsystems/extensions.zh.md +0 -382
- package/node_modules/better-dsh/dsh-docs/subsystems/feedback.md +0 -266
- package/node_modules/better-dsh/dsh-docs/subsystems/feedback.zh.md +0 -266
- package/node_modules/better-dsh/dsh-docs/subsystems/filesystem.md +0 -505
- package/node_modules/better-dsh/dsh-docs/subsystems/filesystem.zh.md +0 -505
- package/node_modules/better-dsh/dsh-docs/subsystems/goal.md +0 -277
- package/node_modules/better-dsh/dsh-docs/subsystems/goal.zh.md +0 -277
- package/node_modules/better-dsh/dsh-docs/subsystems/invariants.md +0 -91
- package/node_modules/better-dsh/dsh-docs/subsystems/invariants.zh.md +0 -91
- package/node_modules/better-dsh/dsh-docs/subsystems/jobs.md +0 -290
- package/node_modules/better-dsh/dsh-docs/subsystems/jobs.zh.md +0 -290
- package/node_modules/better-dsh/dsh-docs/subsystems/llm-streaming.md +0 -1080
- package/node_modules/better-dsh/dsh-docs/subsystems/llm-streaming.zh.md +0 -1086
- package/node_modules/better-dsh/dsh-docs/subsystems/lsp.md +0 -202
- package/node_modules/better-dsh/dsh-docs/subsystems/lsp.zh.md +0 -202
- package/node_modules/better-dsh/dsh-docs/subsystems/permission-presets.md +0 -131
- package/node_modules/better-dsh/dsh-docs/subsystems/permission-presets.zh.md +0 -131
- package/node_modules/better-dsh/dsh-docs/subsystems/persistence.md +0 -395
- package/node_modules/better-dsh/dsh-docs/subsystems/persistence.zh.md +0 -395
- package/node_modules/better-dsh/dsh-docs/subsystems/plan.md +0 -87
- package/node_modules/better-dsh/dsh-docs/subsystems/plan.zh.md +0 -87
- package/node_modules/better-dsh/dsh-docs/subsystems/sandbox.md +0 -220
- package/node_modules/better-dsh/dsh-docs/subsystems/sandbox.zh.md +0 -220
- package/node_modules/better-dsh/dsh-docs/subsystems/schedule.md +0 -192
- package/node_modules/better-dsh/dsh-docs/subsystems/schedule.zh.md +0 -192
- package/node_modules/better-dsh/dsh-docs/subsystems/scope.md +0 -59
- package/node_modules/better-dsh/dsh-docs/subsystems/scope.zh.md +0 -59
- package/node_modules/better-dsh/dsh-docs/subsystems/session-projection.md +0 -354
- package/node_modules/better-dsh/dsh-docs/subsystems/session-projection.zh.md +0 -354
- package/node_modules/better-dsh/dsh-docs/subsystems/session-query.md +0 -509
- package/node_modules/better-dsh/dsh-docs/subsystems/session-query.zh.md +0 -509
- package/node_modules/better-dsh/dsh-docs/subsystems/session-reference.md +0 -219
- package/node_modules/better-dsh/dsh-docs/subsystems/session-reference.zh.md +0 -219
- package/node_modules/better-dsh/dsh-docs/subsystems/session-telemetry.md +0 -194
- package/node_modules/better-dsh/dsh-docs/subsystems/session-telemetry.zh.md +0 -194
- package/node_modules/better-dsh/dsh-docs/subsystems/session-title.md +0 -204
- package/node_modules/better-dsh/dsh-docs/subsystems/session-title.zh.md +0 -204
- package/node_modules/better-dsh/dsh-docs/subsystems/session.md +0 -1155
- package/node_modules/better-dsh/dsh-docs/subsystems/session.zh.md +0 -1159
- package/node_modules/better-dsh/dsh-docs/subsystems/settings.md +0 -405
- package/node_modules/better-dsh/dsh-docs/subsystems/settings.zh.md +0 -405
- package/node_modules/better-dsh/dsh-docs/subsystems/shell.md +0 -303
- package/node_modules/better-dsh/dsh-docs/subsystems/shell.zh.md +0 -303
- package/node_modules/better-dsh/dsh-docs/subsystems/sidebar-right.md +0 -148
- package/node_modules/better-dsh/dsh-docs/subsystems/sidebar-right.zh.md +0 -148
- package/node_modules/better-dsh/dsh-docs/subsystems/skills.md +0 -354
- package/node_modules/better-dsh/dsh-docs/subsystems/skills.zh.md +0 -354
- package/node_modules/better-dsh/dsh-docs/subsystems/slots.md +0 -175
- package/node_modules/better-dsh/dsh-docs/subsystems/slots.zh.md +0 -175
- package/node_modules/better-dsh/dsh-docs/subsystems/spill.md +0 -117
- package/node_modules/better-dsh/dsh-docs/subsystems/spill.zh.md +0 -117
- package/node_modules/better-dsh/dsh-docs/subsystems/storage.md +0 -260
- package/node_modules/better-dsh/dsh-docs/subsystems/storage.zh.md +0 -260
- package/node_modules/better-dsh/dsh-docs/subsystems/subagent.md +0 -766
- package/node_modules/better-dsh/dsh-docs/subsystems/subagent.zh.md +0 -770
- package/node_modules/better-dsh/dsh-docs/subsystems/subprocess.md +0 -324
- package/node_modules/better-dsh/dsh-docs/subsystems/subprocess.zh.md +0 -324
- package/node_modules/better-dsh/dsh-docs/subsystems/system-prompt.md +0 -220
- package/node_modules/better-dsh/dsh-docs/subsystems/system-prompt.zh.md +0 -220
- package/node_modules/better-dsh/dsh-docs/subsystems/terminal.md +0 -184
- package/node_modules/better-dsh/dsh-docs/subsystems/terminal.zh.md +0 -184
- package/node_modules/better-dsh/dsh-docs/subsystems/todo.md +0 -32
- package/node_modules/better-dsh/dsh-docs/subsystems/todo.zh.md +0 -32
- package/node_modules/better-dsh/dsh-docs/subsystems/token-meter.md +0 -105
- package/node_modules/better-dsh/dsh-docs/subsystems/token-meter.zh.md +0 -105
- package/node_modules/better-dsh/dsh-docs/subsystems/tools.md +0 -720
- package/node_modules/better-dsh/dsh-docs/subsystems/tools.zh.md +0 -720
- package/node_modules/better-dsh/dsh-docs/subsystems/typert.md +0 -343
- package/node_modules/better-dsh/dsh-docs/subsystems/typert.zh.md +0 -343
- package/node_modules/better-dsh/dsh-docs/subsystems/user-questions.md +0 -178
- package/node_modules/better-dsh/dsh-docs/subsystems/user-questions.zh.md +0 -178
- package/node_modules/better-dsh/dsh-docs/subsystems/web-client.md +0 -95
- package/node_modules/better-dsh/dsh-docs/subsystems/web-client.zh.md +0 -95
- package/node_modules/better-dsh/dsh-docs/subsystems/web-server.md +0 -154
- package/node_modules/better-dsh/dsh-docs/subsystems/web-server.zh.md +0 -154
- package/node_modules/better-dsh/dsh-docs/subsystems/web.md +0 -206
- package/node_modules/better-dsh/dsh-docs/subsystems/web.zh.md +0 -206
- package/node_modules/better-dsh/dsh-docs/subsystems/webhook.md +0 -70
- package/node_modules/better-dsh/dsh-docs/subsystems/webhook.zh.md +0 -70
- package/node_modules/better-dsh/dsh-docs/subsystems/workflow.md +0 -278
- package/node_modules/better-dsh/dsh-docs/subsystems/workflow.zh.md +0 -278
- package/node_modules/better-dsh/dsh-docs/subsystems/workspace.md +0 -321
- package/node_modules/better-dsh/dsh-docs/subsystems/workspace.zh.md +0 -321
- package/node_modules/better-dsh/dsh-docs/testing.md +0 -54
- package/node_modules/better-dsh/dsh-docs/testing.zh.md +0 -54
- package/node_modules/better-dsh/dsh-docs/tool-catalog.md +0 -2225
- package/node_modules/better-dsh/dsh-docs/tool-catalog.zh.md +0 -2233
- package/node_modules/better-dsh/dsh-docs/tool-execution-pipeline.md +0 -62
- package/node_modules/better-dsh/dsh-docs/tool-execution-pipeline.zh.md +0 -64
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/config.md +0 -106
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/config.zh.md +0 -106
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/index.md +0 -144
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/index.zh.md +0 -144
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/publish.md +0 -183
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/publish.zh.md +0 -183
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/tool.md +0 -52
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/tool.zh.md +0 -52
- package/node_modules/better-dsh/dsh-docs/user/develop/framework/events.md +0 -143
- package/node_modules/better-dsh/dsh-docs/user/develop/framework/events.zh.md +0 -143
- package/node_modules/better-dsh/dsh-docs/user/develop/framework/index.md +0 -137
- package/node_modules/better-dsh/dsh-docs/user/develop/framework/index.zh.md +0 -137
- package/node_modules/better-dsh/dsh-docs/user/develop/framework/service.md +0 -148
- package/node_modules/better-dsh/dsh-docs/user/develop/framework/service.zh.md +0 -150
- package/node_modules/better-dsh/dsh-docs/user/develop/practice/dynamic-cordis.md +0 -15
- package/node_modules/better-dsh/dsh-docs/user/develop/practice/dynamic-cordis.zh.md +0 -15
- package/node_modules/better-dsh/dsh-docs/user/develop/practice/index.md +0 -155
- package/node_modules/better-dsh/dsh-docs/user/develop/practice/index.zh.md +0 -155
- package/node_modules/better-dsh/dsh-docs/user/develop/practice/llm-adapter.md +0 -189
- package/node_modules/better-dsh/dsh-docs/user/develop/practice/llm-adapter.zh.md +0 -189
- package/node_modules/better-dsh/dsh-docs/user/guide/github-review.md +0 -102
- package/node_modules/better-dsh/dsh-docs/user/guide/github-review.zh.md +0 -102
- package/node_modules/better-dsh/dsh-docs/user/guide/index.md +0 -30
- package/node_modules/better-dsh/dsh-docs/user/guide/index.zh.md +0 -30
- package/node_modules/better-dsh/dsh-docs/user/guide/mcp-memory.md +0 -101
- package/node_modules/better-dsh/dsh-docs/user/guide/mcp-memory.zh.md +0 -101
- package/node_modules/better-dsh/dsh-docs/user/guide/network-proxy.md +0 -85
- package/node_modules/better-dsh/dsh-docs/user/guide/network-proxy.zh.md +0 -85
- package/node_modules/better-dsh/dsh-docs/user/guide/providers.md +0 -190
- package/node_modules/better-dsh/dsh-docs/user/guide/providers.zh.md +0 -190
- package/node_modules/better-dsh/dsh-docs/user/guide/python-sdk.md +0 -150
- package/node_modules/better-dsh/dsh-docs/user/guide/python-sdk.zh.md +0 -150
- package/node_modules/better-dsh/dsh-docs/user/guide/schedule.md +0 -21
- package/node_modules/better-dsh/dsh-docs/user/guide/schedule.zh.md +0 -21
- package/node_modules/better-dsh/dsh-docs/user/index.md +0 -11
- package/node_modules/better-dsh/dsh-docs/user/index.zh.md +0 -11
- package/node_modules/better-dsh/dsh-docs/web-styling.md +0 -29
- package/node_modules/better-dsh/dsh-docs/web-styling.zh.md +0 -29
- package/node_modules/better-dsh/eval-description.md +0 -33
- package/node_modules/better-dsh/lib/BrowserWebSocketTransport-D1aFReu_.js +0 -4
- package/node_modules/better-dsh/lib/BrowserWebSocketTransport-wm99h94r.js +0 -39
- package/node_modules/better-dsh/lib/LaunchOptions-B874eBu2.js +0 -4
- package/node_modules/better-dsh/lib/LaunchOptions-kGXcZOe0.js +0 -17
- package/node_modules/better-dsh/lib/NodeWebSocketTransport-BRLjmu2R.js +0 -4
- package/node_modules/better-dsh/lib/NodeWebSocketTransport-D9ysYGLM.js +0 -3634
- package/node_modules/better-dsh/lib/ast-assets/ast-grep.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-bash.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-c.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-cpp.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-css.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-go.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-html.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-javascript.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-json.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-python.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-ruby.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-rust.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-tsx.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-typescript.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-yaml.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter.wasm +0 -0
- package/node_modules/better-dsh/lib/bidi-BalpKaJc.js +0 -16106
- package/node_modules/better-dsh/lib/bundle-delivery.d.ts +0 -20
- package/node_modules/better-dsh/lib/bundle-delivery.js +0 -212
- package/node_modules/better-dsh/lib/chunk-DQxbwPpZ.js +0 -30
- package/node_modules/better-dsh/lib/client/index.js +0 -712
- package/node_modules/better-dsh/lib/compaction/index.d.ts +0 -57
- package/node_modules/better-dsh/lib/compaction/index.js +0 -145
- package/node_modules/better-dsh/lib/failover/index.d.ts +0 -59
- package/node_modules/better-dsh/lib/failover/index.js +0 -147
- package/node_modules/better-dsh/lib/fs-aware/sandbox-plugin.d.ts +0 -71
- package/node_modules/better-dsh/lib/fs-aware/sandbox-plugin.js +0 -249
- package/node_modules/better-dsh/lib/hmr.d.ts +0 -32
- package/node_modules/better-dsh/lib/hmr.js +0 -49
- package/node_modules/better-dsh/lib/index-DTDXUe6m.d.ts +0 -208
- package/node_modules/better-dsh/lib/index-browser-CysrjMyM.js +0 -21061
- package/node_modules/better-dsh/lib/index.d.ts +0 -705
- package/node_modules/better-dsh/lib/index.js +0 -3816
- package/node_modules/better-dsh/lib/kernel-bridge.py +0 -172
- package/node_modules/better-dsh/lib/kernel-env-D8UOWeji.js +0 -195
- package/node_modules/better-dsh/lib/kernel-env.d.ts +0 -80
- package/node_modules/better-dsh/lib/kernel-env.js +0 -3
- package/node_modules/better-dsh/lib/lib-C8_jXvwA.js +0 -894
- package/node_modules/better-dsh/lib/lsp-server-registry-BXvUTBY7.js +0 -3
- package/node_modules/better-dsh/lib/lsp-server-registry-CH9WNFFt.js +0 -972
- package/node_modules/better-dsh/lib/main-BQeFrBM1.js +0 -3
- package/node_modules/better-dsh/lib/main-CupOhMp5.js +0 -1432
- package/node_modules/better-dsh/lib/mobile/plugin.d.ts +0 -29
- package/node_modules/better-dsh/lib/mobile/plugin.js +0 -54
- package/node_modules/better-dsh/lib/native-capture-BEByDXYM.js +0 -68
- package/node_modules/better-dsh/lib/puppeteer-core-CSk2PtSm.js +0 -1136
- package/node_modules/better-dsh/lib/py-sdk-D7klhpWb.js +0 -178
- package/node_modules/better-dsh/lib/py-sdk.d.ts +0 -19
- package/node_modules/better-dsh/lib/py-sdk.js +0 -3
- package/node_modules/better-dsh/lib/remote/plugin.d.ts +0 -24
- package/node_modules/better-dsh/lib/remote/plugin.js +0 -1190
- package/node_modules/better-dsh/lib/url-schemes/index.d.ts +0 -88
- package/node_modules/better-dsh/lib/url-schemes/index.js +0 -12229
- package/node_modules/better-dsh/lib/util-BHL_dfV_.js +0 -2953
- package/node_modules/better-dsh/lib/wasm_bg-CNXhHjVg.js +0 -1291
- package/node_modules/better-dsh/lib/web-password.d.ts +0 -156
- package/node_modules/better-dsh/lib/web-password.js +0 -562
- package/node_modules/better-dsh/lib/web-tree-sitter-CPrPD4J2.js +0 -3440
- package/node_modules/better-dsh/lib/web-trust-D6gJpUMf.js +0 -393
- package/node_modules/better-dsh/lib/web-trust-Dej_RI2B.d.ts +0 -113
- package/node_modules/better-dsh/lib/web-trust.d.ts +0 -3
- package/node_modules/better-dsh/lib/web-trust.js +0 -4
- package/node_modules/better-dsh/lib/webserver.d.ts +0 -10
- package/node_modules/better-dsh/lib/webserver.js +0 -19
- package/node_modules/better-dsh/lib/welcome-notice.d.ts +0 -18
- package/node_modules/better-dsh/lib/welcome-notice.js +0 -59
- package/node_modules/better-dsh/lib/wrap-T4I0nfPM.js +0 -750
- package/node_modules/better-dsh/package.json +0 -426
- package/node_modules/better-dsh/scripts/kernel-provision.mjs +0 -35
- package/node_modules/better-dsh/scripts/register-bundle.mjs +0 -80
- package/node_modules/better-dsh/url-schemes-instruction.md +0 -22
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
# Chapter 8: Internals — Module Graph & Core Pipelines
|
|
2
|
-
|
|
3
|
-
## Core Idea
|
|
4
|
-
dsh's packages form a peer-dependency graph of *shared service instances*, wired at runtime by typed events and by a fixed three-waterfall tool-execution pipeline; two generated matrices (module graph, event producer–consumer matrix) tell you who owns an instance, who dispatches an event, and where policy inserts into a tool call.
|
|
5
|
-
|
|
6
|
-
## Frameworks Introduced
|
|
7
|
-
- **Shared-instance dependency graph** (`pnpm run gen-module-graph`): peer deps among `@deepseek-ai/dsh-*` packages; edge `a --> b` = `a` requires `b` as a host-provided shared instance. Runtime deps and dev-only relations deliberately absent.
|
|
8
|
-
- When to use: deciding which services a new package/plugin may consume, or which peers it must declare.
|
|
9
|
-
- How: Mermaid chart grouped by `packages/<group>/<pkg>` (50 groups, ~790 edges, names omit `@deepseek-ai/dsh-`) or the table `Package | Group | Peer dependencies`.
|
|
10
|
-
- **Event Producer–Consumer Matrix** (`pnpm run gen-doc-graphs`): every harness-owned event as `Event | Mode | Declared in | Dispatchers | Listeners`; types also cover contained dispatch sites that deliberately bypass `ctx.emit` (subagent lifecycle containment).
|
|
11
|
-
- When to use: choosing a hook point, or auditing blast radius before changing an event payload.
|
|
12
|
-
- How: Mode = contract, Dispatchers = owner, Listeners = insertion precedent; empty Listeners = open extension point.
|
|
13
|
-
- **Tool Execution Pipeline**: fixed stage order from model `tool_call` to model-facing `tool/result` hosting policy, hooks, sandboxing, rewriting, observation, UI "without changing the loop".
|
|
14
|
-
- When to use: adding approval, guards, timeout/retry, result post-processing, or tool UI.
|
|
15
|
-
- How: listen on the right waterfall (`tools/pre-execute` → guards → `tools/execute` → `tools/post-execute`); all three may transform a call.
|
|
16
|
-
|
|
17
|
-
## Key Concepts
|
|
18
|
-
- **Peer dependency**: a requirement for the host's shared instance; bundling your own copy breaks service identity.
|
|
19
|
-
- **Event mode**: `emit` (broadcast), `waterfall` (value-transform chain), `serial` (ordered await), `parallel` (fan-out await).
|
|
20
|
-
- **Monotonic guard**: registered deny-or-abstain check with protected identity, running after `tools/pre-execute` allow and before `tools/execute`; owner policy that must not be reordered lives here.
|
|
21
|
-
- **`ctx.approval`**: one-shot user prompt resolving `ask` verdicts *before* monotonic guards; absent or unanswerable approver = deny.
|
|
22
|
-
- **`ToolDefinition.finalizeContent`**: definition-owned last content-only invariant, synchronous, applied to a snapshotted result.
|
|
23
|
-
- **Registry outer normalization**: the registry losslessly snapshots the candidate result; snapshot throws become `isError` so failures never escape the pipeline.
|
|
24
|
-
- **`additionalContexts` FIFO**: active-batch extra contexts injected as user/message *after* recorded tool results.
|
|
25
|
-
- **PTC sub-calls**: serialized sub-calls of the reserved `run_code` transport; carry the parent token, log `tool/code-dispatch`, return denials as binding rejections, omit `additionalContexts` to preserve call/result adjacency.
|
|
26
|
-
- **`internal/*` events**: undeclared strings (`internal/dispatch`, `internal/plugin`, `internal/service`, `internal/status`) consumed by core machinery (loader, gateway, inspector) — not a public surface.
|
|
27
|
-
|
|
28
|
-
## Mental Models
|
|
29
|
-
- Think of the module graph as a *sharing contract*, not an import graph: edges mark services you receive, never services you bundle.
|
|
30
|
-
- Use the event matrix as a *bus map*: the dispatcher owns the stop; listeners are the passengers you ride with.
|
|
31
|
-
- Think of tool execution as *fixed track, movable signals*: stage order never changes; you add behavior by listening at a waterfall.
|
|
32
|
-
|
|
33
|
-
## Anti-patterns
|
|
34
|
-
- **Bundling a peer**: a second instance breaks shared identity; consume the host's copy.
|
|
35
|
-
- **Putting reorder-sensitive owner policy in `tools/pre-execute`**: it can be bypassed/reshaped by other listeners; register it as a monotonic guard instead.
|
|
36
|
-
- **Doing read-before-edit fs checks above `tool-fs`**: they stay below `tool-fs` on `fs/*` events.
|
|
37
|
-
- **Reading `agent/status`/`whenIdle()` as "my follow-up finished"**: several queued follow-ups share one `running` interval; an owner must define its interval explicitly (durable inbox receipt → next whole-agent `idle`) and handle the "nothing to wait for" branch or hang.
|
|
38
|
-
|
|
39
|
-
## Code Examples
|
|
40
|
-
```ts
|
|
41
|
-
// fs gates (dispatched by tool-fs / tool-str-replace-editor)
|
|
42
|
-
ctx.waterfall('fs/write-intent', intent) // → fs-observation-policy
|
|
43
|
-
ctx.emit('fs/observed', obs) // → fs-observation-policy, skill-filesystem
|
|
44
|
-
|
|
45
|
-
// Both-sides contract: LlmAdapter vs LlmRuntime
|
|
46
|
-
adapter.stream(): may throw OR emit finish { kind: 'error' | 'aborted' }
|
|
47
|
-
runtime.stream(): model-request failures ONLY as terminal finish chunks
|
|
48
|
-
|
|
49
|
-
// Dispose to quiescence
|
|
50
|
-
registry.close(); proc.kill(); await done // close listeners BEFORE killing
|
|
51
|
-
|
|
52
|
-
// Unlink link-shaped paths
|
|
53
|
-
if (lstatSync(p).isSymbolicLink()) unlinkSync(p) // rmSync(junction) → ERR_FS_EISDIR
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## Reference Tables
|
|
57
|
-
|
|
58
|
-
### Tool execution stages (exact order)
|
|
59
|
-
| # | Stage | Notes |
|
|
60
|
-
|---|---|---|
|
|
61
|
-
| 1 | model tool-call block | assistant message contains tool-call |
|
|
62
|
-
| 2 | `tool/call` session event | logged before execution |
|
|
63
|
-
| 3 | UI pending card | `presentCall(args)` |
|
|
64
|
-
| 4 | `tools/pre-execute` waterfall | hooks, permission, sandbox → allow / deny / ask |
|
|
65
|
-
| 5 | `ctx.approval` (ask path) | one-shot; rejected/cancelled/unavailable → denied |
|
|
66
|
-
| 6 | monotonic guards | deny or abstain; identity protected |
|
|
67
|
-
| 7 | `tools/execute` waterfall | around-dispatch: timeout, retry, metrics |
|
|
68
|
-
| 8 | tool `execute()` body | may fire fs gates + tool-owned events (`todo/write`, `fs/observed`, `hook/invoked`, `hook/result`, `tool/code-dispatch`) |
|
|
69
|
-
| 9 | `tools/post-execute` waterfall | accept, block, replace, add context |
|
|
70
|
-
| 10 | registry outer normalization | snapshot throws → `isError` |
|
|
71
|
-
| 11 | `ToolDefinition.finalizeContent` | last content-only invariant |
|
|
72
|
-
| 12 | `tools/result` emit | frozen authoritative outcome |
|
|
73
|
-
| 13 | `tool/result` session event | single model-facing outcome; batch settled |
|
|
74
|
-
| 14 | `additionalContexts` FIFO | injected after recorded tool results |
|
|
75
|
-
| 15 | UI completed card | `presentResult(args, result)` |
|
|
76
|
-
|
|
77
|
-
Throws from stages 4–9 route to stage 10; denied calls skip the body but still traverse `tools/post-execute`.
|
|
78
|
-
|
|
79
|
-
### Load-bearing events
|
|
80
|
-
| Event | Mode | Dispatcher → listeners |
|
|
81
|
-
|---|---|---|
|
|
82
|
-
| `agent/pre-step` | waterfall | agent-loop → 15 pkgs (time-context, agent-instructions, plan-mode, hooks-*, tool-skill, tool-subagent…) |
|
|
83
|
-
| `agent/request` · `agent/request-error` | waterfall | agent-loop → agent, webhook · compaction-basic, llm-retry |
|
|
84
|
-
| `agent/turn-stopping` | serial | agent-loop → hooks-claude-code, hooks-codex |
|
|
85
|
-
| `llm/stream` | waterfall | llm → agent-loop, llm-replay, session-checkpoint-policy, session-title |
|
|
86
|
-
| `session/event` | emit | session → 27 pkgs (persistence, projection, telemetry, tools, server…) |
|
|
87
|
-
| `session/flush` | parallel | session → session-persistence-jsonl, session-telemetry |
|
|
88
|
-
| `system-prompt/assemble` | waterfall | system-prompt → agent, agent-presets |
|
|
89
|
-
| `tools/pre-execute` · `execute` · `post-execute` | waterfall | tools → hooks-*, tool-jobs · session-checkpoint-policy, timeout-policy · spill-policy, repeat-tool-reminder, tool-fs-search |
|
|
90
|
-
| `fs/write-intent` · `fs/edit-intent` | waterfall | tool-fs, tool-str-replace-editor → fs-observation-policy |
|
|
91
|
-
| `approval/request` | waterfall | user-approval → acp, remotes |
|
|
92
|
-
| `webserver/index-inject` | emit | webserver → inspector, modules |
|
|
93
|
-
|
|
94
|
-
### Shared-instance hubs (fan-in, ~790 peer edges)
|
|
95
|
-
`session` (92) > `llm` (83) > `agent` (64) > `tools` (42) > `invariants` (34) > `system-prompt`/`session-projection` (29) > `scope` (21). Top consumers: `api-session-controller` (26 peers), `subagent` (19). `llm` has zero outgoing peers (pure foundation); `tools --> agent` but not reverse; `session --> scope` only.
|
|
96
|
-
|
|
97
|
-
## Key Takeaways
|
|
98
|
-
1. Read the peer graph before adding a dependency — an edge means "require the host's shared instance", and fan-in hubs (session, llm, agent, tools) are the services everyone shares.
|
|
99
|
-
2. Pick event hooks by matrix lookup, not guesswork: Mode defines the contract, Dispatchers define the owner, empty Listeners mark open extension points.
|
|
100
|
-
3. Insert tool policy only at its designated waterfall; keep order-sensitive rules as registered monotonic guards, with `ctx.approval` resolving asks before guards.
|
|
101
|
-
4. Normalize both sides of every public contract (adapter throws vs runtime terminal finish chunks) and report orthogonal outcome flags (`timedOut`, `signal`, `exitCode`) independently.
|
|
102
|
-
5. Teardown must reach quiescence: close listener registries before killing, then `kill → await done`; dispatch loops must contain listener exceptions.
|
|
103
|
-
6. Scrub env (`*KEY*/*SECRET*/*TOKEN*/*PASSWORD*`) and use 0700 dirs + random `'wx' 0o600` files around untrusted output; unlink — never recursively delete — link-shaped paths.
|
|
104
|
-
|
|
105
|
-
## Connects To
|
|
106
|
-
- **Ch 4**: peer = shared Cordis service instance; duplicate-identity errors.
|
|
107
|
-
- **Ch 6**: the package groups/layers the graph visualizes.
|
|
108
|
-
- **Ch 7**: the event matrix is the canonical capability-seam inventory.
|
|
109
|
-
- **Ch 14**: agent-loop as chief dispatcher of `agent/*` events.
|
|
110
|
-
- **Ch 15**: tool-execution subsystem detail behind the stage table.
|
|
111
|
-
- **Ch 17**: `LlmAdapter`/`LlmRuntime` failure contract.
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
# Chapter 9: API Gateway & LLM Wire Extensions
|
|
2
|
-
|
|
3
|
-
## Core Idea
|
|
4
|
-
dsh exposes Host business logic to the Client through the **Typert API Gateway**: `@Remote`/`@RemoteScope` decorators select unary service methods, the build generates strict Host+Client contracts, and calls reuse the Connection RPC over `POST /api/<namespace>/<method>`. Separately, `@deepseek-ai/dsh-llm-deepseek` adds DeepSeek-specific HTTP headers and additive request-body fields (`dsh_plugin_packages`, `dsh_session_log`) that never enter model input.
|
|
5
|
-
|
|
6
|
-
## Frameworks Introduced
|
|
7
|
-
- **Typert API Gateway**: unary-only Remote-method bridge. Layers run `remotes → gateway → connection → webserver`; `packages/api` holds BFF+Typert, `packages/client/connection` and `packages/host/webserver` hold transport.
|
|
8
|
-
- When to use: any Host service method a browser/SDK client must call with one request → one result.
|
|
9
|
-
- How: mark methods `@Remote`/`@RemoteScope`, extend `TypertRemoteService`, generate contracts, mount via `api-remotes`, call `ctx.remote.<namespace>.<method>(...)`.
|
|
10
|
-
- **`@Remote`**: calls a Cordis service registered on the root Host Context. Host objects (e.g. `Agent`) cannot cross the wire — declare a `TypertLookupMap` so a parameter `agent` becomes an `agentId` wire field the Gateway resolves back to the object.
|
|
11
|
-
- **`@RemoteScope(key)`**: resolves an identity to a scoped Context via `ctx.typert.contexts`, gets the service from that Context. Use when the method depends on scoped composition and needn't receive objects like `Agent` explicitly.
|
|
12
|
-
- **`TypertRemoteService` / `bindTypertRemote(this, serviceKey)`**: explicit service-key + namespace binding (no compiler-injected symbol). `bindTypertRemote` for services with another base class.
|
|
13
|
-
- **Strict generation pipeline**: root build runs `build:lib:host` → `build:lib:client` → `build:web`. Host pass = `tsc -b tsconfig.host.json` then `tsdown --env.DSH_BUILD_FACE host` (runs Typert generator); Client pass = `tsc -b tsconfig.client.json` + `tsdown --env.DSH_BUILD_FACE client`, consuming generated artifacts without restarting Typert.
|
|
14
|
-
- **SRC development fallback**: `node --import tsx/esm` skips the Typert compiler; decorator initializers still record a versioned descriptor so the Gateway builds a weaker descriptor with no `ts.Program`. Solves Host dispatch from source only — Client still refuses SRC descriptors lacking strict codecs.
|
|
15
|
-
- **`DeepSeekLlmApiExtensionRegistry`**: one provider per top-level extension name; empty/padded names, duplicate registrations, and collisions with the base request fail before HTTP dispatch.
|
|
16
|
-
- **Body-extension transaction**: serialize base body (incl. exact `messages`) → ask registered providers to `prepare()` fields → merge as top-level siblings → on HTTP 2xx run `accept()` before reading SSE. No registry = unextended base body sent.
|
|
17
|
-
|
|
18
|
-
## Key Concepts
|
|
19
|
-
- **`ctx.remote.<namespace>`** (root) / **`agentCtx.remote.<namespace>`** (scoped): concrete Client functions on ordinary objects; each namespace is a traced Cordis child Service registered as `remote.<namespace>`, mounted through `ctx.remote.$mount()`.
|
|
20
|
-
- **`TypertLookupMap`**: wire-identity association for complex Host params; `ctx.typert.lookups.register()` = declaration+default resolver, `.configure()` = async Host-composition override scoped to an effect lifetime.
|
|
21
|
-
- **`api-remotes` assembly**: only `@deepseek-ai/dsh-api-remotes` is assembled; it imports business packages' `/remote` subpaths, mounts contributions, re-exports declaration merges. Host-method surface = only what's selected at generation time.
|
|
22
|
-
- **`/api` route**: Client calls `connection.rpc.call('/api', '<ns>/<method>', { args }, signal)` → `POST /api/<ns>/<method>` with `{ args }`. Gateway claims only two-segment endpoints with a strict descriptor or SRC marker; other requests 404.
|
|
23
|
-
- **Wire namespaces**: HTTP fields = lowercase kebab (`x-deepseek-harness-session-id`); request-body extensions = snake with reserved `dsh_` prefix; DSH-owned nested JSON = camelCase (`afterSeq`); tagged values = kebab, durable events `domain/action`.
|
|
24
|
-
- **`dsh_plugin_packages`** (enabled by default): complete active Loader-backed `{name,version}` package inventory; deduped, sorted by name then version; disabled/failed/unloading entries and non-package provenance absent; `packages: []` when none qualify.
|
|
25
|
-
- **`dsh_session_log`** (disabled by default): contiguous suffix of the canonical Session log, version 2. First upload `afterSeq: -1`; later uploads start after the greatest accepted watermark. `session` member projects `Session.header` (id, createdAt, `isSeeded` lineage bit, optional cwd/parentSession/origin/delegationDepth/agentPreset).
|
|
26
|
-
- **`delivery-accepted` watermark event**: appended after HTTP 2xx — type `session-log-deepseek/delivery-accepted`, data `{sessionId, sessionFormatVersion, throughSeq}`. Binds watermark to the logical format generation.
|
|
27
|
-
- **At-least-once delivery**: crash after acceptance but before persistence may resend an already-accepted range → duplicates, never a gap. Fork ignores inherited watermarks naming another Session.
|
|
28
|
-
|
|
29
|
-
## Mental Models
|
|
30
|
-
- **Use `@Remote` for root-Host services, `@RemoteScope` for scoped-composition methods.** Complex Host objects never cross the wire — think of the lookup map as the wire↔object identity table.
|
|
31
|
-
- **Think of Remote as unary-only.** Session event streams, pagination, incremental reduce, projection, entity substreams → register an exact Connection Fetch route, never a Remote method.
|
|
32
|
-
- **Think of the extension transaction as prepare-then-accept.** Only a 2xx endpoint accepts any contribution; a non-2xx or transport failure sends nothing and appends no watermark.
|
|
33
|
-
- **Think of extension fields as "outside the model."** They sit outside `messages`/system prompt/tool schemas, so they add no input tokens and don't alter the model-visible prefix.
|
|
34
|
-
|
|
35
|
-
## Anti-patterns
|
|
36
|
-
- **Modeling a streamed/browser-native feature as a Remote method**: Remote is strictly one request → one result; streaming must use a separate data protocol + registration model even if it shares the Connection.
|
|
37
|
-
- **Guessing whether an `Agent` object came from restoration**: lookup policy is per-key, so all `agent`/`session` params share cold-resume behavior; the method must not assume live-vs-restored provenance.
|
|
38
|
-
- **Treating `delivery-accepted` as persistence**: it asserts endpoint-level HTTP 2xx only — not SSE completion, not remote persistence.
|
|
39
|
-
- **Collapsing `dsh_plugin_packages` by package name**: receivers must preserve distinct simultaneous versions and ignore array order.
|
|
40
|
-
- **Reading generated `.d.ts` as ground truth for dispatch**: the strict contract (types/codecs) always comes from `lib/typert.remote-client.*`, never from a running source Host.
|
|
41
|
-
|
|
42
|
-
## Code Examples
|
|
43
|
-
```ts
|
|
44
|
-
export class GoalService extends TypertRemoteService {
|
|
45
|
-
constructor(ctx: Context) { super(ctx, 'goals') } // namespace 'goals'
|
|
46
|
-
@Remote('create')
|
|
47
|
-
createForClient(agent: Agent, request: CreateGoalRequest, signal: AbortSignal): CreateGoalResult {
|
|
48
|
-
signal.throwIfAborted(); return this.create(agent, request)
|
|
49
|
-
}
|
|
50
|
-
@RemoteScope('agent', 'current') // scoped: agentId → context → service
|
|
51
|
-
currentForClient(): CreateGoalResult { return { accepted: true } }
|
|
52
|
-
}
|
|
53
|
-
// Client — inject ['remote', 'remote.goals']; single lookup param collapses the wire field:
|
|
54
|
-
await ctx.remote.goals.create(agentId, { objective: 'ship it' })
|
|
55
|
-
await agentCtx.remote.goals.create({ objective: 'ship it' })
|
|
56
|
-
```
|
|
57
|
-
```jsonc
|
|
58
|
-
// dsh_plugin_packages (version 1)
|
|
59
|
-
{ "dsh_plugin_packages": { "version": 1, "packages": [ { "name": "@deepseek-ai/dsh-example", "version": "0.1.1-rc.2" } ] } }
|
|
60
|
-
// dsh_session_log suffix (version 2)
|
|
61
|
-
{ "dsh_session_log": { "version": 2, "sessionFormatVersion": 2,
|
|
62
|
-
"session": { "version": 2, "id": "session-id", "createdAt": 1780000000000, "isSeeded": false },
|
|
63
|
-
"afterSeq": -1, "throughSeq": 0,
|
|
64
|
-
"events": [ { "type": "turn/start", "seq": 0, "time": 1780000000001, "data": { "turn": 1 } } ] } }
|
|
65
|
-
// watermark appended after 2xx
|
|
66
|
-
{ "type": "session-log-deepseek/delivery-accepted", "seq": 8, "time": 1780000000002,
|
|
67
|
-
"data": { "sessionId": "session-id", "sessionFormatVersion": 2, "throughSeq": 7 } }
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Reference Tables
|
|
71
|
-
|
|
72
|
-
**Request headers (`dsh-llm-deepseek`)**
|
|
73
|
-
| Header | Presence | Value |
|
|
74
|
-
|---|---|---|
|
|
75
|
-
| `user-agent` | every provider HTTP request | `product/version (+url)`; default product `deepseek-harness` |
|
|
76
|
-
| `x-deepseek-harness-user-id` | every authorized chat-completion | stable anonymous Harness-home UUID |
|
|
77
|
-
| `x-deepseek-harness-session-id` | chat-completion with a Session id | exact `sessionId` string |
|
|
78
|
-
| `x-deepseek-harness-compact` | purpose `compaction` | literal `1` |
|
|
79
|
-
|
|
80
|
-
**Component responsibilities**
|
|
81
|
-
| Package | Role |
|
|
82
|
-
|---|---|
|
|
83
|
-
| `dsh-typert-protocol` | decorators, Gateway bindings, invocation descriptors (no analysis/services) |
|
|
84
|
-
| `dsh-typert-generator` | build-time strict signature/type/lookup/Context analysis → artifacts |
|
|
85
|
-
| `dsh-typert-registry` + Loader | Host descriptors/schemas into `ctx.typert`, lookup+Context providers |
|
|
86
|
-
| `dsh-api-session-controller` | Agent/Session identity policy; standard `agent`/`session` resolvers |
|
|
87
|
-
| `dsh-api-gateway` | `ctx.typertGateway`; claims endpoints, resolves objects, invokes, validates |
|
|
88
|
-
| `dsh-api-gateway/client` | `ctx.remote`; mounts descriptors, initiates/validates/cancels |
|
|
89
|
-
| `dsh-api-remotes/client` | selects+mounts allowed `/remote` contributions |
|
|
90
|
-
| `dsh-client-connection` | RPC carrier, correlation, trust boundary, cancellation, `/api` bridge |
|
|
91
|
-
|
|
92
|
-
**Generated files per business package (`lib/`)**: `typert.host.js/.d.ts`, `typert.remote-client.js/.d.ts`, `typert.remote-client.d.ts.map`; entries exposed via `./typert` (Host) and `./remote` (Client).
|
|
93
|
-
|
|
94
|
-
## Key Takeaways
|
|
95
|
-
1. Gateway owns only the Remote data protocol + business dispatch; Connection owns transport, RPC ids, envelopes, cancellation — swap the carrier without touching descriptors.
|
|
96
|
-
2. The trust fence runs in Connection **before** the HTTP bridge, then dispatches inside the shared FetchHandler.
|
|
97
|
-
3. A strict endpoint withdrawn on the Host does **not** degrade to SRC inference — hot unload can't silently weaken validation.
|
|
98
|
-
4. `session/not-found` and `session/agent-busy` `RemoteError` codes pass to the wire unchanged; only unclassified throws fold into `gateway/internal`.
|
|
99
|
-
5. Extension fields are versioned independently per field; JSON member order is not protocol.
|
|
100
|
-
|
|
101
|
-
## Connects To
|
|
102
|
-
- **Ch06 architecture**: the `remotes → gateway → connection → webserver` layer stack and package split.
|
|
103
|
-
- **Ch07 capability-seams**: Remote is the unary seam; streaming seams use a different registration model.
|
|
104
|
-
- **Ch02 plugin-basics**: declaring `@Remote` methods and `inject`-ing `remote.<namespace>` is the plugin-author wiring.
|
|
105
|
-
- **Ch08 internals-pipelines**: the `build:lib:host`/`client`/`web` order and `DSH_BUILD_FACE` split.
|
|
106
|
-
- **Ch10 config-catalog**: `host-webserver.{host,port}`, `client-connection.trustedHosts`, `api-gateway.websocketHeartbeatIntervalMs` (default 2000 ms), `llm-deepseek.*`.
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
# Chapter 10: Config Catalog
|
|
2
|
-
|
|
3
|
-
## Core Idea
|
|
4
|
-
`config-catalog.md` is the **deployment-axis** reference: for every loadable harness package it pastes the verbatim `config:` block a `cordis.yml` entry can set, plus each plugin's `Requires:` injection line. It is **generated** from source (`scripts/gen-config-catalog.ts`), not a layering spec — the paste is the plugin's *full declared config type*, and any field the runtime schema deliberately excludes is a runtime-only seam that is **not settable from `cordis.yml`**.
|
|
5
|
-
|
|
6
|
-
## Frameworks Introduced
|
|
7
|
-
- **`config:` block (cordis.yml)**: the only settable surface catalogued here. The plugin's `apply`/service constructor receives the declared config type; referenced types are pasted (package-local) or linked.
|
|
8
|
-
- **`Requires:` line**: lists the service keys the plugin `inject`s — its `cordis.yml` tree must also load providers for those services. Scope = harness tier (`packages/`); vendored cordis plugins (`hmr`, console logger) are pinned upstream and not catalogued.
|
|
9
|
-
- **`static Config` / schemastery schema**: most plugins supply defaults statically and validate via a same-named schemastery schema; the generator cross-checks the schema against the pasted declaration so the paste cannot hide a loader-accepted field.
|
|
10
|
-
- **Generated + verified**: `pnpm run gen-config-catalog` regenerates; `verify-config-catalog` (part of `doc-sync`) checks freshness. Do not hand-edit.
|
|
11
|
-
- **Three package classes**: (1) **loadable** — with a `config:` block; (2) **loadable no-config** — a `cordis.yml` entry with no `config:`; (3) **seam** — abstract service classes (`AttachmentStore`, `SandboxProvider`, `SessionPersistence`, `CredentialProvider`, …) not directly loadable; (4) **library** — no plugin entry, cannot be loaded.
|
|
12
|
-
|
|
13
|
-
## Key Concepts
|
|
14
|
-
- **Home path convention**: `dshHome` (settings/credentials/shell-env/agent-instructions) defaults to `$DSH_HOME` then `~/.dsh`.
|
|
15
|
-
- **Runtime-only seam**: a field the schema excludes by design — its JSDoc says so; not settable from `cordis.yml`.
|
|
16
|
-
- **Preset-root precedence**: `agent-presets` `roots[]` scanned in precedence order (earlier wins a duplicate id); `includeShippedRoot` prepends the bundled `system` root, `includeUserRoot` appends the home `user` root.
|
|
17
|
-
- **`SandboxMode` / `ApprovalPolicy`**: shared deployment knobs — `sandbox-policy.mode` default `read-only`; `user-approval.policy` = `ask` (fail-closed) or `never` (deterministic CI/unattended).
|
|
18
|
-
- **Backend routing**: `storage-domain.backend` = default route, `routes` overrides per domain name; unknown backend fails `open` with `backend-not-found`.
|
|
19
|
-
- **No-default `root`s**: `session-persistence-jsonl.root`, `storage-json.root` have no default on purpose — a `process.cwd()` fallback would scatter files as cwd changes (bash/subprocess).
|
|
20
|
-
|
|
21
|
-
## Mental Models
|
|
22
|
-
- **Read the config type as the wire surface, not the runtime object**: the paste is exactly what `cordis.yml` may set; anything else is a runtime-only seam.
|
|
23
|
-
- **Think of each capability seam as "abstract service + concrete package"**: the *concrete* package (`dsh-bash-sandbox`, `dsh-storage-sqlite`, …) carries the config; the abstract seam package is never loaded directly.
|
|
24
|
-
- **Think of sandbox policy vs runner as split**: `sandbox-policy` owns `mode`/`workspaceRoot` (per-session resolution); the runner choice is the `ctx.sandbox` provider's config, not the executor's.
|
|
25
|
-
|
|
26
|
-
## Anti-patterns
|
|
27
|
-
- **Setting a runtime-only seam from `cordis.yml`**: it is deliberately excluded from the schema and will not apply.
|
|
28
|
-
- **Loading a seam or library package in `cordis.yml`**: seams are abstract (load a concrete impl), libraries have no plugin entry.
|
|
29
|
-
- **Defaulting storage/session `root` to `process.cwd()`**: scatters unit files across whatever cwd the process is in — the doc forces an explicit `root` for exactly this reason.
|
|
30
|
-
- **Assuming a full CLI>env>home>profile precedence chain lives in this doc**: it does not — this file documents the `config:` surface only; the layering/merge model is in ch01/ch02.
|
|
31
|
-
|
|
32
|
-
## Reference Tables
|
|
33
|
-
|
|
34
|
-
**Most-needed config keys** (`@deepseek-ai/` prefix omitted; type + default where declared)
|
|
35
|
-
|
|
36
|
-
| Key (package) | Type | Default | Purpose |
|
|
37
|
-
|---|---|---|---|
|
|
38
|
-
| `agent-default-model.provider` / `.model` | string | required | default provider route + model id |
|
|
39
|
-
| `agent-loop.agents[]` | array | required | agents created/resumed at startup (`id`, `sessionId`, `cwd`, `resumeSessionId`) |
|
|
40
|
-
| `agent-loop.maxParallelToolCalls` | number | `DEFAULT_MAX_PARALLEL_TOOL_CALLS` | parallel-safe calls per agent step (1 = serial) |
|
|
41
|
-
| `agent-presets.default` | string | required | preset id when caller names none (missing = loud fail) |
|
|
42
|
-
| `agent-presets.roots[]` | array | required | preset scan roots in precedence order |
|
|
43
|
-
| `agent-presets.includeShippedRoot` / `includeUserRoot` | bool | `true` | prepend bundled `system` / append home `user` root |
|
|
44
|
-
| `agent-tool-presentation.mode` | `'native'\|'ptc'\|'both'` | required | model-visible tool form |
|
|
45
|
-
| `agent-instructions.maxBytes` | number | required | UTF-8 byte cap per rendered baseline/dynamic batch |
|
|
46
|
-
| `llm-deepseek.apiKeyEnv` | string | `DEEPSEEK_API_KEY` | credential env-var name, resolved per request |
|
|
47
|
-
| `llm-deepseek.baseURL` | string | `$DEEPSEEK_BASE_URL` → public API | endpoint base |
|
|
48
|
-
| `llm-deepseek.thinking` | `'enabled'\|'disabled'` | provider default | deployment thinking policy |
|
|
49
|
-
| `llm-deepseek.reasoningEffort` | `'off'\|'low'\|'high'\|'max'` | `high` | default thinking effort |
|
|
50
|
-
| `llm-deepseek.maxTokens` | number | `256000` | default per-request output cap |
|
|
51
|
-
| `llm-deepseek.defaultContextWindow` | number | `1000000` | context capacity fallback |
|
|
52
|
-
| `llm-deepseek.models[]` | `DeepSeekCatalogModel[]` | V4 Flash/Pro/Flash Vision Exp | advertised selector models |
|
|
53
|
-
| `bash-local.cwd` | string | `process.cwd()` | default command working dir |
|
|
54
|
-
| `bash-local.timeoutMs` / `maxTimeoutMs` | number | — | foreground timeout + per-call override cap |
|
|
55
|
-
| `bash-local.maxOutputBytes` / `maxSpillBytes` | number | — | in-memory output / spill-file caps |
|
|
56
|
-
| `host-webserver.host` | `'127.0.0.1'\|'0.0.0.0'` | — | listen host |
|
|
57
|
-
| `host-webserver.port` | number | — | listen port (0 = OS-assigned) |
|
|
58
|
-
| `host-webserver.compression` | `'none'\|'gzip'` | `none` | response compression |
|
|
59
|
-
| `client-connection.trustedHosts` | string[] | — | non-loopback authorities for `/api` trust fence |
|
|
60
|
-
| `client-connection.cookieMaxAgeDays` | number | `30` | browser-session lifetime |
|
|
61
|
-
| `client-connection.maxRequestBodyBytes` | number | `300 MiB` | max buffered `/api` JSON body |
|
|
62
|
-
| `sandbox-policy.mode` | `SandboxMode` | `read-only` | file-sandbox default (fail-safe) |
|
|
63
|
-
| `sandbox-policy.workspaceRoot` | string | `process.cwd()` | fallback root (agentless / no-cwd) |
|
|
64
|
-
| `user-approval.policy` | `'ask'\|'never'` | `ask` | approval default (never = CI/unattended) |
|
|
65
|
-
| `permission-presets.presets` / `defaultPreset` | map / string | `workspace-write`,`danger-full-access` | preset knob table + new-session default |
|
|
66
|
-
| `session-persistence-jsonl.root` | string | required | session files root |
|
|
67
|
-
| `session-persistence-jsonl.compression` | `'zstd'\|'none'` | `zstd` | physical encoding |
|
|
68
|
-
| `storage-domain.backend` / `routes` | string / map | required | default backend + per-domain overrides |
|
|
69
|
-
| `storage-json.root` | string | required | `<unit>.json` file dir |
|
|
70
|
-
| `storage-sqlite.path` / `journalMode` | string / `'wal'\|'delete'\|'truncate'\|'persist'` | `:memory:` / `wal` | DB file + journal pragma |
|
|
71
|
-
| `mcp-client` (per server) | `StdioConfig`\|`StreamableHttpConfig` | — | `transport`, `serverName` (`mcp__<name>__<tool>`), `command`/`url`, `toolCallTimeoutMs` |
|
|
72
|
-
| `web.searchProvider` / `fetchProvider` | string | auto-select | pin which provider wins per capability |
|
|
73
|
-
| `web-app.openBrowser` / `printUrl` / `surfaceContext` / `trustedHosts` | bool/bool/bool/string[] | — | browser handoff, URL line, `app:web-surface` context, `--trusted-host` |
|
|
74
|
-
| `settings-file.path` | string | `settings.yaml` under home | settings doc location |
|
|
75
|
-
| `credentials-local.path` | string | `.credentials.yaml` under home | credentials doc location |
|
|
76
|
-
| `compaction-basic.thresholdRatio` / `retainRatio` | number | `0.8` / `0.16` | compact-at / retain fractions of context window |
|
|
77
|
-
| `persona.text` / `complete` | string / bool | — | persona prose; `complete` = whole system prompt |
|
|
78
|
-
| `tool-web.search` / `fetch` / `fetchMaxOutputChars` | bool/bool/number | `true`/`true`/`200000` | tool registration + fetch output cap |
|
|
79
|
-
| `tool-todo.allowParallelInProgress` | bool | required | allow multiple `in_progress` todos |
|
|
80
|
-
| `api-gateway.websocketHeartbeatIntervalMs` | number | `2000` | WS ping interval (1…2147483647 ms) |
|
|
81
|
-
|
|
82
|
-
**Where the rest lives**: the source doc's `## @deepseek-ai/dsh-*` sections (one per package, ~110 packages) carry the full verbatim declarations + JSDoc; its tail lists `Loadable plugins with no config`, `Seam packages`, and `Library packages`. For the runtime wire surface, see the generated Cordis API region on each `subsystems/core.md` page; model-facing tool schemas live in `tool-catalog.md`.
|
|
83
|
-
|
|
84
|
-
## Key Takeaways
|
|
85
|
-
1. Config is delivered through `cordis.yml` `config:` blocks — this catalog is the authoritative list of what each package accepts.
|
|
86
|
-
2. Every key's default and validation come from the plugin's `static Config` + schemastery schema, not from a central registry.
|
|
87
|
-
3. `Requires:` is load-critical: a config tree that omits an injected service fails to compose.
|
|
88
|
-
4. Storage/session `root` paths are deliberately default-less — state them explicitly to avoid cwd-scatter.
|
|
89
|
-
5. Deployment policy (sandbox mode, approval policy, trusted hosts, compaction thresholds) is spread across dedicated policy packages, not one global config.
|
|
90
|
-
|
|
91
|
-
## Connects To
|
|
92
|
-
- **Ch01 user-guide / Ch02 plugin-basics**: the `cordis.yml` layering and merge semantics (this doc covers only the per-package surface).
|
|
93
|
-
- **Ch05 cordis-api**: the generated Cordis API region on subsystem pages that these declarations reference.
|
|
94
|
-
- **Ch07 capability-seams**: the "seam packages" here are the abstract classes the seams chapter names.
|
|
95
|
-
- **Ch09 api-gateway**: `host-webserver`, `client-connection.trustedHosts`, and `api-gateway.websocketHeartbeatIntervalMs` configure the gateway transport.
|
|
96
|
-
- **Ch11 tool-catalog**: the model-facing tool schemas that `tool-web`, `tool-todo`, `tool-workflow`, `tool-bash` config keys shape.
|
|
97
|
-
- **Ch12 persistence-catalog**: `session-persistence-jsonl`, `storage-*`, `session-query-sqlite`, `session-projection-cache` backends.
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
# Chapter 11: Tool Catalog
|
|
2
|
-
|
|
3
|
-
## Core Idea
|
|
4
|
-
This is a GENERATED registry of every model-facing tool a shipped plugin contributes to `ctx.tools`: the `name`, `description`, and JSON-Schema `parameters` delivered via system-prompt assembly. It is produced by BOOTING each tool plugin on a real context and reading `ctx.tools.schemas()` — not a static AST pass — because a tool schema is not statically knowable (runtime-spread enums, concatenated descriptions, config-driven names, raw-JSON-Schema MCP tools).
|
|
5
|
-
|
|
6
|
-
## Frameworks Introduced
|
|
7
|
-
- **Tool contribution = `{ name, description, parameters }` into `ctx.tools`**: a tool is the model-facing projection of a plugin's execute logic; `ctx.tools.schemas(scope)` projects an allowlist (name/description/parameters only) so `output`/`execute`/callbacks never leak into model requests.
|
|
8
|
-
- When to use: every model-facing action. How: plugin contributes a `ToolDefinition`; the catalog generator boots it and reads the projected schema.
|
|
9
|
-
- **Capability-seam stability**: a tool keeps its provider behind an abstract seam (`ctx.lsp`, `ctx.web`, `ctx.subagents`, `ctx.codeRuntime`, `ctx.shell`, `ctx.fs`, `ctx.terminals`) so the model-visible schema stays stable across backend swaps.
|
|
10
|
-
- When to use: any swappable backend (`lsp`, `web_search`/`web_fetch`, `subagent`).
|
|
11
|
-
- **Load-time config names / shipped aliases**: a registered `name` may be a load-time config (e.g. `tool-subagent`'s `toolName` default `subagent`, shipped alias `subagent_fork`); a deployment may expose a package under a different or additional name.
|
|
12
|
-
- **Reserved transport (`run_code`)**: owned by the tool registry outside filterable capability layers under `mode: ptc`/`mode: both`; under `ptc` it is the registry's only wire contribution — other capabilities are declared in a generated SDK section and re-enter the guarded tool pipeline via scheduled bindings (overlap up to `maxParallelSubCalls`).
|
|
13
|
-
- **Boot-and-read verification**: `gen-tool-catalog` generator + `verify-tool-catalog` (part of `doc-sync`); a completeness guard globs `packages/*/tool-*` and fails if a package is missing from the boot manifest, so a new tool cannot be silently undocumented.
|
|
14
|
-
|
|
15
|
-
## Key Concepts
|
|
16
|
-
- **ctx.tools**: the single registry of model-facing tools (see Ch 15 for the dispatch pipeline behind it).
|
|
17
|
-
- **Capability seam**: `ctx.shell`, `ctx.fs`, `ctx.subprocess`, `ctx.terminals`, `ctx.lsp`, `ctx.web`, `ctx.codeRuntime`, `ctx.subagents`, `ctx.workflowEngine`, `ctx.jobs` — abstract services a tool consumes; one provider per context.
|
|
18
|
-
- **Requires / Writes-affects**: the package map's two metadata columns — which seams a tool needs, and which events/durable effects it produces.
|
|
19
|
-
- **Shipped alias**: a second registered name for the same package (e.g. `subagent_fork` for a fixed-route delegation).
|
|
20
|
-
- **Reserved transport**: `run_code` — excluded from filterable capability layers; registry-owned.
|
|
21
|
-
- **Per-package deployment note**: records opt-in status, config branches, and defaults the generator had to choose (e.g. `todo_write`'s `allowParallelInProgress: true`).
|
|
22
|
-
- **Read-before-write policy**: added by `@deepseek-ai/dsh-fs-observation-policy` (an `fs/*` event-gate plugin) — no schema change; a deployment loading the fs tools is expected to also load it.
|
|
23
|
-
|
|
24
|
-
## Mental Models
|
|
25
|
-
- Think of the tool catalog as the **system-prompt assembly's menu**: what the model is *offered*, not what the runtime can *execute* (the Cordis surface is the latter).
|
|
26
|
-
- Think of a tool's schema as **runtime-spread**, never statically knowable — always boot to read it, never hand-transcribe.
|
|
27
|
-
- Use a **seam** when a capability may swap backends; keep the tool thin and let the seam own the vocabulary.
|
|
28
|
-
- Think of `run_code` as the **only non-filterable wire contribution** under `ptc` — everything else is reachable only through the code-runtime SDK.
|
|
29
|
-
|
|
30
|
-
## Anti-patterns
|
|
31
|
-
- **Hand-editing the generated catalog**: it is regenerated and re-verified by `doc-sync`; edits are overwritten.
|
|
32
|
-
- **Guessing an Inspect/LSP provider name**: `cordis_inspect_list`/provider discovery must precede `cordis_inspect_query`/`lsp`; an Inspect method is read-only, not a business Service plugin code can call.
|
|
33
|
-
- **Loading fs tools without the observation-policy plugin**: bare `write`/`edit` lose the read-before-write guard.
|
|
34
|
-
- **Treating `subagent`'s discovery schema as fixed**: model-selection on/off, background mode, and the registration name are per-instance config (`modelSelectionSettings`, `backgroundMode`, `enableRunInBackground`, `toolName`).
|
|
35
|
-
|
|
36
|
-
## Code Examples
|
|
37
|
-
```jsonc
|
|
38
|
-
// Tool schema shape every entry shares: { name, description, parameters }
|
|
39
|
-
{ "name": "bash",
|
|
40
|
-
"description": "Execute a bash command (bash -c) and return stdout/stderr.",
|
|
41
|
-
"parameters": { "type": "object",
|
|
42
|
-
"properties": {
|
|
43
|
-
"command": {"type":"string"},
|
|
44
|
-
"description": {"type":"string"},
|
|
45
|
-
"timeoutMs": {"type":"number"},
|
|
46
|
-
"workdir": {"type":"string"},
|
|
47
|
-
"run_in_background": {"type":"boolean"}
|
|
48
|
-
}, "required": ["command","description"] } }
|
|
49
|
-
```
|
|
50
|
-
```ts
|
|
51
|
-
// run_code bridge: each nested call re-enters the guarded tool pipeline
|
|
52
|
-
// and links to the outer result via a tool/code-dispatch-start + tool/code-dispatch pair.
|
|
53
|
-
// sub-call id = `<parent>:code:<n>` (submission order); tool/result vocabulary carries content + isError.
|
|
54
|
-
```
|
|
55
|
-
```ts
|
|
56
|
-
type LspOperation = 'goToDefinition' | 'findReferences' | 'goToImplementation' | 'hover';
|
|
57
|
-
// schedule selectors: after_seconds | at | every_seconds (>= 300) — exactly one.
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Reference Tables
|
|
61
|
-
Full lookup table — name → one-line purpose, grouped by category. Per-tool JSON Schemas and exact field docs live in `src/docs/tool-catalog.md` (generated; ~90KB), package sections below its "Tool Package Map".
|
|
62
|
-
|
|
63
|
-
| Tool | Package | Purpose |
|
|
64
|
-
|---|---|---|
|
|
65
|
-
| **Human interaction** |||
|
|
66
|
-
| `ask_user_question` | dsh-tool-ask-user | Pause until the UI/provider returns a human answer (confirmation/choice/missing info). |
|
|
67
|
-
| `exit_plan_mode` | dsh-plan-mode | Present a plan for review; reject outside plan mode, no schema churn on policy change. |
|
|
68
|
-
| **Shell (one-shot, fresh process)** |||
|
|
69
|
-
| `bash` | dsh-tool-bash | Run `bash -c`, return stdout/stderr; `run_in_background` → job id. |
|
|
70
|
-
| `pwsh` | dsh-tool-pwsh | Windows `pwsh -Command` counterpart; mirrors bash minus sandbox controls. |
|
|
71
|
-
| **Shell (persistent PTY)** |||
|
|
72
|
-
| `bash` (persistent) | dsh-tool-bash-persistent | Owner-isolated persistent bash; cwd/env persist across calls. |
|
|
73
|
-
| `pwsh` (persistent) | dsh-tool-pwsh-persistent | Owner-isolated persistent pwsh. |
|
|
74
|
-
| **Filesystem** |||
|
|
75
|
-
| `read` / `write` / `edit` | dsh-tool-fs | UTF-8 read (line-numbered) / create-or-replace / literal-replace edit. |
|
|
76
|
-
| `read_image` | dsh-tool-fs | Read PNG/JPEG/WebP/GIF; refuses unless the routed model accepts image input. |
|
|
77
|
-
| `glob` / `grep` | dsh-tool-fs-search | Path discovery / ripgrep content search (packaged `@vscode/ripgrep`, no host rg). |
|
|
78
|
-
| `str_replace_editor` | dsh-tool-str-replace-editor | Standalone view/create/unique-literal-replace/insert editor. |
|
|
79
|
-
| **Terminals (opt-in)** |||
|
|
80
|
-
| `terminal_open`/`close`/`list`/`read`/`send`/`signal` | dsh-tool-terminal | Persistent terminal sessions; `send(run_in_background)` registers with `ctx.jobs`. |
|
|
81
|
-
| **Code runtime** |||
|
|
82
|
-
| `run_code` | dsh-tools | Execute a TypeScript program body against tools (PTC transport). |
|
|
83
|
-
| **Delegation & control** |||
|
|
84
|
-
| `subagent` / `list_subagent_models` | dsh-tool-subagent | Delegate a self-contained task / discover LLM routes. |
|
|
85
|
-
| `send_message` / `interrupt_agent` / `list_agents` | dsh-tool-subagent-control | Steer, interrupt, list continuable background subagents (global names). |
|
|
86
|
-
| `workflow` | dsh-tool-workflow | Orchestrate many subagents via a JS script (`agent`/`pipeline`/`parallel` hooks). |
|
|
87
|
-
| `ralph` | dsh-tool-ralph | Foreground fresh-agent loop; one immutable objective + optional round cap. |
|
|
88
|
-
| `spawn_teammate` | dsh-experimental-tool-agent-team | Create a named durable teammate (Team Lead only). |
|
|
89
|
-
| `team_task_*`, `wait_agent`, team `send_message`/`interrupt_agent`/`list_agents` | dsh-experimental-tool-agent-team | Shared task board (create/get/list/update) + team mailbox/status wait. |
|
|
90
|
-
| **Background jobs** |||
|
|
91
|
-
| `job_list` / `job_output` / `job_kill` | dsh-tool-jobs | Kind-agnostic controller: bash, PTY sends, subagents all through the same three. |
|
|
92
|
-
| **Goal (same-session)** |||
|
|
93
|
-
| `create_goal` / `get_goal` / `update_goal` | dsh-tool-goal | Persisted long-running objective; direct-human root authority for mutations. |
|
|
94
|
-
| **Schedule** |||
|
|
95
|
-
| `schedule_create` / `schedule_delete` / `schedule_list` | dsh-schedule | Session-local reminders (after_seconds | at | every_seconds≥300). |
|
|
96
|
-
| **Session query (opt-in)** |||
|
|
97
|
-
| `session_search` / `session_trace` / `session_event_read` / `session_event_search` / `session_event_trace` | dsh-tool-session-query | Read-only search/trace over the durable event log, authorized by the calling agent. |
|
|
98
|
-
| **Skill** |||
|
|
99
|
-
| `skill` | dsh-tool-skill | Load full instructions for a named skill from the session catalog. |
|
|
100
|
-
| **Web** |||
|
|
101
|
-
| `web_search` / `web_fetch` | dsh-tool-web | Search (1–4 queries) / fetch a URL; provider behind `ctx.web`. |
|
|
102
|
-
| **LSP** |||
|
|
103
|
-
| `lsp` | dsh-tool-lsp | Code navigation (definition/references/implementation/hover); `LSP_UNAVAILABLE` without a provider. |
|
|
104
|
-
| **Dynamic Cordis (opt-in)** |||
|
|
105
|
-
| `cordis_define`/`inspect_list`/`inspect_query`/`inspect_self`/`run`/`stop`/`undefine` | dsh-tool-cordis | Define/inspect/run immutable Cordis packages in a vm sandbox (not in any shipped tree). |
|
|
106
|
-
| **TODO** |||
|
|
107
|
-
| `todo_write` | dsh-tool-todo | Session-owned checklist; whole-list replace (no partial updates). |
|
|
108
|
-
|
|
109
|
-
## Key Takeaways
|
|
110
|
-
1. The catalog is the *offered* tools (name/description/parameters), generated by booting each plugin and reading `ctx.tools.schemas()` — never a static AST pass.
|
|
111
|
-
2. Every tool maps to a **package** + **seams** (`Requires`) + **durable effects** (`Writes/affects`); the package map is the primary index.
|
|
112
|
-
3. Keep swappable capabilities behind a seam (`ctx.web`, `ctx.lsp`, `ctx.subagents`) so the schema does not change on backend swap.
|
|
113
|
-
4. `run_code` is the registry's reserved transport — the only wire contribution under `ptc`; other capabilities reach it via scheduled bindings.
|
|
114
|
-
5. Registration names can be config-driven and aliased (`subagent`/`subagent_fork`); deployment notes record shipped aliases and generator-chosen defaults.
|
|
115
|
-
|
|
116
|
-
## Connects To
|
|
117
|
-
- **Ch 15**: `ctx.tools` dispatch pipeline (ToolDefinition, guards, observation policy) behind these schemas.
|
|
118
|
-
- **Ch 07**: capability seams — the Service/Provider/Consumer split each tool leans on.
|
|
119
|
-
- **Ch 16**: `tool/call`, `tool/result`, `tool/code-dispatch*` are the durable session-log facts tools emit.
|
|
120
|
-
- **Ch 10**: config keys that shape tools (`toolName`, `enableRunInBackground`, `sampleOverCapGlobResults`, preset tables).
|
|
121
|
-
- **Ch 14**: the agent loop requests these tools and commits their call/result events.
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
# Chapter 12: Persistence Catalog
|
|
2
|
-
|
|
3
|
-
## Core Idea
|
|
4
|
-
Session persistence is one **durable, replayable, append-only event log**: every record is a `SessionEvent` envelope (`type`, monotonic `seq`, epoch-ms `time`, `data`, optional `ignorable`, conditional `surfaceOp`/`sourceEventSeqs`). This catalog documents the *event vocabulary* (`SessionEventMap`) and the surface/log-only split — it does NOT document on-disk store layout, DSH_HOME anatomy, or durability mechanics (those live in `subsystems/persistence.md`, the doc's own cross-ref target). A log event is **not a Cordis event**: it reaches listeners through the single `session/event` emit.
|
|
5
|
-
|
|
6
|
-
## Frameworks Introduced
|
|
7
|
-
- **`SessionEventMap` (merge-extensible vocabulary)**: the owning vocabulary in `@deepseek-ai/dsh-session` plus every plugin declaration merge into `@deepseek-ai/dsh-session/types`; a downstream plugin can merge further current-version event types (outside this catalog by construction, requiring explicit disposition at a later format edge).
|
|
8
|
-
- When to use: declaring a new durable event type. How: merge the key into `SessionEventMap`; surface types also join `SurfaceEventType`.
|
|
9
|
-
- **Surface vs log-only split**: `SurfaceEventType` = `'user/message' | 'assistant/message' | 'tool/result'` — the only types that produce LLM messages and may carry `SurfaceOp`. Everything else is **log-only**: durable + replayable, zero derived-history contribution.
|
|
10
|
-
- When to use: a type enters the model transcript only if it is a surface type; audit/boundary/state records stay log-only.
|
|
11
|
-
- **`SurfaceOp` join rule**: `'append'` (tail) or `{ op:'replace', start, end }` (replaces surface nodes start..end; node's `sourceEventSeqs` must include every shadowed node). Used by compaction; any surface-replacing producer may use it.
|
|
12
|
-
- **`ignorable` marker protocol**: absent = **required** — a reader meeting an unrecognized type without `true` MUST refuse reconstruction (not silently drop), because a required event may change how the rest of the log interprets. A writer sets `true` only on purely informational records whose loss cannot affect reconstruction.
|
|
13
|
-
- **Shadow-price protocol (compaction)**: a surface `replace` event is priced by the metering event *immediately before* it (`compaction/summary` for a summarizing compaction, `compaction/prune` for a model-free prune), stating `shadowedRange`/`shadowedSeqs`/`shadowedTokenCount` — so a pure consumer can subtract the exact replaced range without retaining per-node prices.
|
|
14
|
-
- **Version lifecycle**: current writers stamp `SESSION_FORMAT_VERSION`; supported historical artifacts reach the current vocabulary through the build-static adjacent migration catalog (see `subsystems/persistence.md`).
|
|
15
|
-
- **JSON-serializability gate**: every payload is JSON-serializable, enforced at `Session.append` via `isJsonValue` — a non-serializable `meta` is rejected at the source, so replay reproduces the identical record.
|
|
16
|
-
|
|
17
|
-
## Key Concepts
|
|
18
|
-
- **SessionEvent**: discriminated union over `type` (so `switch (event.type)` narrows `event.data` without casts); envelope = `{ type, seq, time, data, ignorable?, sourceEventSeqs?, surfaceOp? }`.
|
|
19
|
-
- **SurfaceEventType**: the 3 message-producing types; only these may carry `SurfaceOp`; user/tool may cite `sourceEventSeqs`.
|
|
20
|
-
- **log-only**: durable, replayable, no `surfaceOp`, never in derived history (`deriveMessages()` ignores it).
|
|
21
|
-
- **session/end-seed**: durable projection of `Session.firstLiveSeq`; events before it (smaller seq) came from seed (resume/fork/replay). A fresh fork child owns one `{ inherited: true }` marker at its exact inherited-prefix cut; the last tagged marker is the current Session's cut.
|
|
22
|
-
- **session/event emit**: the single bus wiring — the log is not Cordis events; listeners hear via this one emit.
|
|
23
|
-
- **deriveMessages() projection**: the surface ordering → LLM messages (see `subsystems/session.md`).
|
|
24
|
-
- **Latest-wins fold events**: whole-value, non-surface state knobs whose LAST event is the session override — `plan/mode`, `sandbox/mode`, `approval/policy`, `session/title`, `todo/write`, `permission/preset`, `model/selection`.
|
|
25
|
-
|
|
26
|
-
## Mental Models
|
|
27
|
-
- Think of the **log as ground truth, the surface as derived history**: only `user/message`/`assistant/message`/`tool/result` join the model transcript; everything else is replayable audit.
|
|
28
|
-
- Think of **compaction as a surface `replace` + an adjacent metering event**: the replacement is priced by the event directly before it, never by per-node bookkeeping.
|
|
29
|
-
- Use **`ignorable: true` sparingly**: defaulting to *required* means a forgotten marker over-refuses (inconvenience) rather than silently resuming a gutted session.
|
|
30
|
-
- Treat **state knobs as latest-wins**: the projection unit folds the log to the last event; the model learns policy from runtime-context snapshot + live notices, not from these events.
|
|
31
|
-
|
|
32
|
-
## Anti-patterns
|
|
33
|
-
- **Silently dropping an unrecognized required event**: readers must refuse reconstruction unless `ignorable: true` is set — loss can change how the remaining log is interpreted.
|
|
34
|
-
- **A plugin appending `session/end-seed`**: only the `Session` constructor is a legitimate writer; a plugin doing so silently classifies every live bracket before it as seed history.
|
|
35
|
-
- **Appending a non-JSON-serializable `tool/result` `meta`**: rejected at `Session.append` (isJsonValue); the producing tool owns `meta` shape but it MUST be JSON.
|
|
36
|
-
- **Treating a log event as a Cordis event**: the durable log reaches listeners only through `session/event`; do not wire Cordis event listeners to it.
|
|
37
|
-
|
|
38
|
-
## Code Examples
|
|
39
|
-
```ts
|
|
40
|
-
export type SurfaceEventType = 'user/message' | 'assistant/message' | 'tool/result'
|
|
41
|
-
export type SurfaceOp = 'append' | { op: 'replace'; start: SessionSeq; end: SessionSeq }
|
|
42
|
-
export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
43
|
-
[K in SessionEventType]: {
|
|
44
|
-
type: K; seq: SessionSeq; time: number; data: SessionEventMap[K]; ignorable?: true
|
|
45
|
-
} & (K extends SurfaceEventType
|
|
46
|
-
? { sourceEventSeqs?: SessionSeq[]; surfaceOp?: SurfaceOp }
|
|
47
|
-
: object)
|
|
48
|
-
}[T]
|
|
49
|
-
```
|
|
50
|
-
```ts
|
|
51
|
-
// Shadow price (compaction): metering event immediately precedes the replace.
|
|
52
|
-
'compaction/prune': {
|
|
53
|
-
shadowedRange: { start: SessionSeq; end: SessionSeq }
|
|
54
|
-
shadowedSeqs: SessionSeq[] // all shadowed surface nodes, surface order
|
|
55
|
-
shadowedTokenCount: number // heuristic price, fixed estimator
|
|
56
|
-
}
|
|
57
|
-
// tool/call pairs with tool/result by callId; arguments kept as the model's raw JSON string.
|
|
58
|
-
'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string }
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## Reference Tables
|
|
62
|
-
Full payload declarations + JSDoc live in `src/docs/persistence-catalog.md` (~38KB, generated by `gen-persistence-catalog`, verified by `verify-persistence-catalog`). ★ = surface type (the only ones joining the model transcript).
|
|
63
|
-
|
|
64
|
-
| Family | Members | Badge |
|
|
65
|
-
|---|---|---|
|
|
66
|
-
| `user/*` | `user/message` | ★ surface |
|
|
67
|
-
| `assistant/*` | `assistant/message` ★, `assistant/attempt` | surface + log-only |
|
|
68
|
-
| `tool/*` | `tool/result` ★, `tool/call`, `tool/code-dispatch`, `tool/code-dispatch-start` | surface + log-only |
|
|
69
|
-
| `turn/*` | `turn/start`, `turn/end` | log-only |
|
|
70
|
-
| `step/*` | `step/start`, `step/end` | log-only |
|
|
71
|
-
| `request/*` | `request/header`, `request/context` | log-only |
|
|
72
|
-
| `session/*` | `session/end-seed`, `session/title`, `session/title-llm-request` | log-only |
|
|
73
|
-
| `agent/*` | `agent/inbox/spliced` | log-only |
|
|
74
|
-
| `agent-preset/*` | `agent-preset/selected` | log-only |
|
|
75
|
-
| `approval/*` | `approval/asked`, `approval/decided`, `approval/policy` | log-only |
|
|
76
|
-
| `sandbox/*` | `sandbox/mode` | log-only |
|
|
77
|
-
| `permission/*` | `permission/preset` | log-only |
|
|
78
|
-
| `plan/*` | `plan/mode` | log-only |
|
|
79
|
-
| `model/*` | `model/selection` | log-only |
|
|
80
|
-
| `command/*` | `command/run`, `command/done` | log-only |
|
|
81
|
-
| `compaction/*` | `compaction/start`, `compaction/end`, `compaction/summary`, `compaction/prune` | log-only |
|
|
82
|
-
| `feedback/*` | `feedback/record` | log-only |
|
|
83
|
-
| `goal/*` | `goal/change` | log-only |
|
|
84
|
-
| `hook/*` | `hook/invoked`, `hook/result` | log-only |
|
|
85
|
-
| `llm/*` | `llm/retry`, `llm/retry-started` | log-only |
|
|
86
|
-
| `schedule/*` | `schedule/change` | log-only |
|
|
87
|
-
| `session-log-deepseek/*` | `session-log-deepseek/delivery-accepted` | log-only |
|
|
88
|
-
| `subagent/*` | `subagent/descriptor`, `subagent/model-selection-policy` | log-only |
|
|
89
|
-
| `team/*` | `team/member`, `team/task`, `team/message/queued`, `team/message/delivered` | log-only |
|
|
90
|
-
| `todo/*` | `todo/write` | log-only |
|
|
91
|
-
| `tool-workflow/*` | `tool-workflow/run-start`, `run-end`, `agent-start`, `agent-end` | log-only |
|
|
92
|
-
| `web/*` | `web/deepseek-search-llm-request` | log-only |
|
|
93
|
-
|
|
94
|
-
Envelope facts: `seq` = monotonic per-session; `time` = Unix epoch ms; `data` = `SessionEventMap[K]`; `ignorable?` skip marker; `sourceEventSeqs?`/`surfaceOp?` surface-only. A log-only event never carries surface metadata (compiler-enforced at `Session.append`).
|
|
95
|
-
|
|
96
|
-
## Key Takeaways
|
|
97
|
-
1. Only three event types touch the model transcript: `user/message`, `assistant/message`, `tool/result` — all others are log-only durable audit.
|
|
98
|
-
2. A log event is **not** a Cordis event; wire to `session/event`, and project the surface with `deriveMessages()`.
|
|
99
|
-
3. Default unrecognized events to *required* (refuse reconstruction); opt into `ignorable: true` only for loss-safe informational records.
|
|
100
|
-
4. Compaction replaces surface nodes with `surfaceOp: { replace }`, priced by the metering event immediately before it (`compaction/summary` or `compaction/prune`).
|
|
101
|
-
5. Versioning: writers stamp `SESSION_FORMAT_VERSION`; historical artifacts migrate via the build-static migration catalog — not by hand.
|
|
102
|
-
6. Store layout / DSH_HOME anatomy / durability are **not** here — they are `subsystems/persistence.md`'s job; this catalog is the event-format vocabulary only.
|
|
103
|
-
|
|
104
|
-
## Connects To
|
|
105
|
-
- **Ch 13**: `Session.append`, `firstLiveSeq`, `deriveMessages()` projection — the core-session surface this log backs.
|
|
106
|
-
- **Ch 16**: `fs/observed`, preset/audit state — the durable facts consumed as session data.
|
|
107
|
-
- **Ch 17**: `TokenUsage` referenced by `assistant/message` and `compaction/summary` payloads.
|
|
108
|
-
- **Ch 14**: the agent loop commits `turn/start`..`turn/end`, `step/start`..`step/end`, `tool/call`/`tool/result`.
|
|
109
|
-
- **Ch 11**: tools emit `tool/call`, `tool/result`, `tool/code-dispatch*` as their durable effects.
|