super-dsh 0.3.0-c → 0.3.0-d

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (758) hide show
  1. package/README.md +25 -22
  2. package/cordis.patch.yml +3 -3
  3. package/package.json +20 -8
  4. package/superd-hub/dist/bundle-setup.d.ts +17 -2
  5. package/superd-hub/dist/bundle-setup.js +158 -2
  6. package/superd-hub/package.json +19 -2
  7. package/superd-hub/scripts/register-companion.mjs +100 -0
  8. package/bundles/better-dsh.tgz +0 -0
  9. package/bundles/manifest.json +0 -10
  10. package/node_modules/better-dsh/LICENSE +0 -24
  11. package/node_modules/better-dsh/README.md +0 -323
  12. package/node_modules/better-dsh/THIRD_PARTY_NOTICES.md +0 -52
  13. package/node_modules/better-dsh/cordis.patch.yml +0 -139
  14. package/node_modules/better-dsh/docs/00_adr/0001-bridge-tool-layer-not-service-layer.md +0 -14
  15. package/node_modules/better-dsh/docs/00_adr/0002-masking-is-presentation-only.md +0 -15
  16. package/node_modules/better-dsh/docs/10_plans/2026-09-23-remote-execution-framework.md +0 -236
  17. package/node_modules/better-dsh/docs/10_plans/2026-09-23-remote-framework-impl.md +0 -2083
  18. package/node_modules/better-dsh/docs/10_plans/2026-09-26-lsp-ast-reminder.md +0 -64
  19. package/node_modules/better-dsh/docs/10_plans/A2A-messaging-channel-test-archive.md +0 -256
  20. package/node_modules/better-dsh/docs/10_plans/code-mode-vs-rlm-ipython-comparison.md +0 -137
  21. package/node_modules/better-dsh/docs/10_plans/dashr-blueprint-review.md +0 -201
  22. package/node_modules/better-dsh/docs/10_plans/dashr-blueprint.md +0 -561
  23. package/node_modules/better-dsh/docs/10_plans/dashr-compaction-window-and-archive.md +0 -307
  24. package/node_modules/better-dsh/docs/10_plans/dashr-profile-layer-feasibility.md +0 -367
  25. package/node_modules/better-dsh/docs/10_plans/dashr-sandbox-escalation-semantics-gap.md +0 -171
  26. package/node_modules/better-dsh/docs/10_plans/dashr-security-sandbox-analysis.md +0 -187
  27. package/node_modules/better-dsh/docs/10_plans/dashr-surface-invariant-and-omp-imports.md +0 -97
  28. package/node_modules/better-dsh/docs/10_plans/ipython-kernel-interactive-interface-test-report.md +0 -152
  29. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft.md +0 -146
  30. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft_v3.md +0 -50
  31. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft_v4.md +0 -79
  32. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-vs-PrimeAgent-systemprompt-toolcatalog-comparison.md +0 -138
  33. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/RLM-system-prompt-injection-gap-report.md +0 -161
  34. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/V0.1.5-development-plan.md +0 -109
  35. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/actinoable-surface-to-llm-in-agent-runtime_dsh.md +0 -50
  36. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/actinoable-surface-to-llm-in-agent-runtime_prime.md +0 -113
  37. package/node_modules/better-dsh/docs/10_plans/recallable-compaction.md +0 -147
  38. package/node_modules/better-dsh/docs/10_plans/spike-tag-repro.mjs +0 -102
  39. package/node_modules/better-dsh/docs/10_plans/upstream-analysis.md +0 -128
  40. package/node_modules/better-dsh/docs/20_specs/agent/spec.md +0 -54
  41. package/node_modules/better-dsh/docs/20_specs/ast/spec.md +0 -57
  42. package/node_modules/better-dsh/docs/20_specs/compaction-recall/spec.md +0 -46
  43. package/node_modules/better-dsh/docs/20_specs/ctx/spec.md +0 -107
  44. package/node_modules/better-dsh/docs/20_specs/dsh/spec.md +0 -47
  45. package/node_modules/better-dsh/docs/20_specs/dvc/spec.md +0 -106
  46. package/node_modules/better-dsh/docs/20_specs/escalation-guidance/spec.md +0 -44
  47. package/node_modules/better-dsh/docs/20_specs/fs-scheme-resolution/spec.md +0 -37
  48. package/node_modules/better-dsh/docs/20_specs/hash-edit/spec.md +0 -41
  49. package/node_modules/better-dsh/docs/20_specs/http-read/spec.md +0 -73
  50. package/node_modules/better-dsh/docs/20_specs/kernel-provisioning/spec.md +0 -53
  51. package/node_modules/better-dsh/docs/20_specs/lsp/spec.md +0 -121
  52. package/node_modules/better-dsh/docs/20_specs/mobile-layout/spec.md +0 -108
  53. package/node_modules/better-dsh/docs/20_specs/model-failover/spec.md +0 -20
  54. package/node_modules/better-dsh/docs/20_specs/plugins-page-components/spec.md +0 -79
  55. package/node_modules/better-dsh/docs/20_specs/preact-ui-shell/spec.md +0 -22
  56. package/node_modules/better-dsh/docs/20_specs/repl-dispatch-resilience/spec.md +0 -21
  57. package/node_modules/better-dsh/docs/20_specs/skill/spec.md +0 -58
  58. package/node_modules/better-dsh/docs/20_specs/tool-surface/spec.md +0 -222
  59. package/node_modules/better-dsh/docs/20_specs/url-schema/spec.md +0 -148
  60. package/node_modules/better-dsh/docs/20_specs/web-trust-fence/spec.md +0 -43
  61. 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
  62. 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
  63. 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
  64. 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
  65. 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
  66. 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
  67. 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
  68. 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
  69. 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
  70. 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
  71. 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
  72. 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
  73. 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
  74. 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
  75. 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
  76. 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
  77. 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
  78. 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
  79. 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
  80. 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
  81. 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
  82. 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
  83. 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
  84. 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
  85. 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
  86. 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
  87. 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
  88. 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
  89. 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
  90. 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
  91. 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
  92. 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
  93. 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
  94. 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
  95. 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
  96. package/node_modules/better-dsh/docs/50_test-reports/2026-10-06-authentication-only-web-admission-4999.md +0 -63
  97. package/node_modules/better-dsh/docs/50_test-reports/2026-10-07-better-dsh-welcome-self-contained-4999.md +0 -52
  98. 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
  99. package/node_modules/better-dsh/docs/50_test-reports/kernel-provisioning.md +0 -44
  100. package/node_modules/better-dsh/docs/50_test-reports/repl-kernel-provisioning-test-report.md +0 -87
  101. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.2-alpha.5-local-test-report.md +0 -81
  102. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.2-alpha.5-report.md +0 -93
  103. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.3-alpha.2-local-test-report.md +0 -44
  104. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.3-alpha.2-report.md +0 -110
  105. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.5-rc.2-local-test-report.md +0 -79
  106. 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
  107. 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
  108. 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
  109. 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
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115. 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
  116. 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
  117. 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
  118. 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
  119. package/node_modules/better-dsh/docs/50_test-reports/v0.2.1ef-dev-audit-report.md +0 -73
  120. 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
  121. 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
  122. 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
  123. 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
  124. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/SKILL.md +0 -147
  125. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch01-user-guide.md +0 -123
  126. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch02-plugin-basics.md +0 -127
  127. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch03-plugin-framework-practice.md +0 -120
  128. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch04-cordis-fundamentals.md +0 -129
  129. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch05-cordis-api.md +0 -115
  130. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch06-architecture.md +0 -109
  131. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch07-capability-seams.md +0 -97
  132. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch08-internals-pipelines.md +0 -111
  133. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch09-api-gateway.md +0 -106
  134. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch10-config-catalog.md +0 -97
  135. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch11-tool-catalog.md +0 -121
  136. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch12-persistence-catalog.md +0 -109
  137. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch13-subsystems-core-session.md +0 -106
  138. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch14-subsystems-agent-loop.md +0 -111
  139. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch15-subsystems-tool-execution.md +0 -106
  140. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch16-subsystems-session-data.md +0 -132
  141. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch17-subsystems-llm-streaming.md +0 -128
  142. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch18-subsystems-web-ui.md +0 -142
  143. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch19-cookbook.md +0 -149
  144. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch20-development-testing.md +0 -87
  145. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch21-postmortems.md +0 -82
  146. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch22-i18n.md +0 -86
  147. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/cheatsheet.md +0 -67
  148. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/glossary.md +0 -57
  149. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/patterns.md +0 -88
  150. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/AGENTS.md +0 -75
  151. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/agent-lifecycle.md +0 -84
  152. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/agent-lifecycle.zh.md +0 -86
  153. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/api-gateway.md +0 -164
  154. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/api-gateway.zh.md +0 -164
  155. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/architecture.md +0 -150
  156. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/architecture.zh.md +0 -154
  157. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/capability-seams.md +0 -543
  158. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/capability-seams.zh.md +0 -545
  159. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/config-catalog.md +0 -3473
  160. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/config-catalog.zh.md +0 -3474
  161. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-package.md +0 -117
  162. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-package.zh.md +0 -119
  163. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-remote-api.md +0 -197
  164. 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
  165. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-settings-card.md +0 -102
  166. 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
  167. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-tool.md +0 -101
  168. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-tool.zh.md +0 -103
  169. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-vendored-package.md +0 -59
  170. 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
  171. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-an-llm-adapter.md +0 -43
  172. 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
  173. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/extension-cookbook.md +0 -132
  174. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/extension-cookbook.zh.md +0 -136
  175. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/maintaining-dsh-code-review.md +0 -64
  176. 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
  177. 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
  178. 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
  179. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/context.md +0 -364
  180. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/context.zh.md +0 -366
  181. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/events.md +0 -207
  182. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/events.zh.md +0 -209
  183. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/fiber.md +0 -375
  184. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/fiber.zh.md +0 -377
  185. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/inherited.md +0 -39
  186. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/registry.md +0 -152
  187. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/registry.zh.md +0 -154
  188. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/service.md +0 -102
  189. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/service.zh.md +0 -104
  190. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-primer.md +0 -45
  191. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-primer.zh.md +0 -51
  192. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/01-first-plugin.md +0 -95
  193. 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
  194. 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
  195. 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
  196. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/03-services.md +0 -98
  197. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/03-services.zh.md +0 -98
  198. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/04-events.md +0 -144
  199. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/04-events.zh.md +0 -144
  200. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/05-config.md +0 -84
  201. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/05-config.zh.md +0 -84
  202. 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
  203. 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
  204. 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
  205. 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
  206. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/index.md +0 -60
  207. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/index.zh.md +0 -62
  208. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/deepseek-llm-api-wire-extensions.md +0 -163
  209. 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
  210. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/defensive-patterns.md +0 -33
  211. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/defensive-patterns.zh.md +0 -35
  212. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/development.md +0 -167
  213. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/development.zh.md +0 -173
  214. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/event-producer-consumer.md +0 -86
  215. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/event-producer-consumer.zh.md +0 -88
  216. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/glossary.md +0 -45
  217. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/glossary.zh.md +0 -45
  218. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/graph-atlas.md +0 -22
  219. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/graph-atlas.zh.md +0 -24
  220. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/README.md +0 -60
  221. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/README.zh.md +0 -62
  222. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/style-samples.md +0 -87
  223. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/terminology.md +0 -214
  224. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-prompt.md +0 -263
  225. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-rules.md +0 -69
  226. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-rules.zh.md +0 -69
  227. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/module-graph.md +0 -1411
  228. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/module-graph.zh.md +0 -1413
  229. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/persistence-catalog.md +0 -1075
  230. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/persistence-catalog.zh.md +0 -1077
  231. 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
  232. 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
  233. 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
  234. 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
  235. 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
  236. 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
  237. 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
  238. 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
  239. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/README.md +0 -18
  240. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/README.zh.md +0 -18
  241. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/rescope.md +0 -53
  242. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/rescope.zh.md +0 -53
  243. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/README.md +0 -61
  244. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/README.zh.md +0 -61
  245. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/agent-team.md +0 -207
  246. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/agent-team.zh.md +0 -207
  247. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/approval.md +0 -170
  248. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/approval.zh.md +0 -170
  249. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/attachment.md +0 -351
  250. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/attachment.zh.md +0 -351
  251. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/client-modules.md +0 -168
  252. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/client-modules.zh.md +0 -168
  253. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/code-runtime.md +0 -195
  254. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/code-runtime.zh.md +0 -195
  255. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/commands.md +0 -219
  256. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/commands.zh.md +0 -219
  257. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/compaction.md +0 -238
  258. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/compaction.zh.md +0 -238
  259. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/conversation.md +0 -258
  260. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/conversation.zh.md +0 -258
  261. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/core.md +0 -1209
  262. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/core.zh.md +0 -1219
  263. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/credentials.md +0 -329
  264. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/credentials.zh.md +0 -329
  265. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/extensions.md +0 -382
  266. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/extensions.zh.md +0 -382
  267. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/feedback.md +0 -266
  268. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/feedback.zh.md +0 -266
  269. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/filesystem.md +0 -505
  270. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/filesystem.zh.md +0 -505
  271. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/goal.md +0 -277
  272. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/goal.zh.md +0 -277
  273. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/invariants.md +0 -88
  274. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/invariants.zh.md +0 -88
  275. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/jobs.md +0 -290
  276. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/jobs.zh.md +0 -290
  277. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/llm-streaming.md +0 -1080
  278. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/llm-streaming.zh.md +0 -1086
  279. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/lsp.md +0 -202
  280. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/lsp.zh.md +0 -202
  281. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/permission-presets.md +0 -131
  282. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/permission-presets.zh.md +0 -131
  283. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/persistence.md +0 -395
  284. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/persistence.zh.md +0 -395
  285. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/plan.md +0 -87
  286. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/plan.zh.md +0 -87
  287. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/sandbox.md +0 -220
  288. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/sandbox.zh.md +0 -220
  289. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/schedule.md +0 -192
  290. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/schedule.zh.md +0 -192
  291. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/scope.md +0 -59
  292. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/scope.zh.md +0 -59
  293. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-projection.md +0 -354
  294. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-projection.zh.md +0 -354
  295. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-query.md +0 -509
  296. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-query.zh.md +0 -509
  297. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-reference.md +0 -219
  298. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-reference.zh.md +0 -219
  299. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-telemetry.md +0 -194
  300. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-telemetry.zh.md +0 -194
  301. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-title.md +0 -204
  302. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-title.zh.md +0 -204
  303. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session.md +0 -1155
  304. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session.zh.md +0 -1159
  305. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/settings.md +0 -405
  306. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/settings.zh.md +0 -405
  307. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/shell.md +0 -303
  308. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/shell.zh.md +0 -303
  309. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/skills.md +0 -354
  310. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/skills.zh.md +0 -354
  311. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/slots.md +0 -175
  312. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/slots.zh.md +0 -175
  313. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/spill.md +0 -117
  314. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/spill.zh.md +0 -117
  315. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/storage.md +0 -260
  316. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/storage.zh.md +0 -260
  317. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subagent.md +0 -766
  318. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subagent.zh.md +0 -770
  319. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subprocess.md +0 -324
  320. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subprocess.zh.md +0 -324
  321. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/system-prompt.md +0 -220
  322. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/system-prompt.zh.md +0 -220
  323. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/terminal.md +0 -184
  324. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/terminal.zh.md +0 -184
  325. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/todo.md +0 -32
  326. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/todo.zh.md +0 -32
  327. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/token-meter.md +0 -105
  328. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/token-meter.zh.md +0 -105
  329. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/tools.md +0 -720
  330. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/tools.zh.md +0 -720
  331. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/typert.md +0 -343
  332. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/typert.zh.md +0 -343
  333. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/user-questions.md +0 -178
  334. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/user-questions.zh.md +0 -178
  335. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-client.md +0 -95
  336. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-client.zh.md +0 -95
  337. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-server.md +0 -154
  338. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-server.zh.md +0 -154
  339. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web.md +0 -206
  340. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web.zh.md +0 -206
  341. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/webhook.md +0 -70
  342. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/webhook.zh.md +0 -70
  343. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workflow.md +0 -278
  344. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workflow.zh.md +0 -278
  345. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workspace.md +0 -321
  346. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workspace.zh.md +0 -321
  347. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/testing.md +0 -54
  348. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/testing.zh.md +0 -54
  349. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-catalog.md +0 -2225
  350. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-catalog.zh.md +0 -2233
  351. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-execution-pipeline.md +0 -62
  352. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-execution-pipeline.zh.md +0 -64
  353. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/config.md +0 -106
  354. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/config.zh.md +0 -106
  355. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/index.md +0 -144
  356. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/index.zh.md +0 -144
  357. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/publish.md +0 -183
  358. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/publish.zh.md +0 -183
  359. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/tool.md +0 -52
  360. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/tool.zh.md +0 -52
  361. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/events.md +0 -143
  362. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/events.zh.md +0 -143
  363. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/index.md +0 -137
  364. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/index.zh.md +0 -137
  365. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/service.md +0 -148
  366. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/service.zh.md +0 -150
  367. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/dynamic-cordis.md +0 -15
  368. 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
  369. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/index.md +0 -155
  370. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/index.zh.md +0 -155
  371. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/llm-adapter.md +0 -189
  372. 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
  373. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/github-review.md +0 -102
  374. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/github-review.zh.md +0 -102
  375. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/index.md +0 -30
  376. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/index.zh.md +0 -30
  377. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/mcp-memory.md +0 -101
  378. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/mcp-memory.zh.md +0 -101
  379. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/network-proxy.md +0 -85
  380. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/network-proxy.zh.md +0 -85
  381. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/providers.md +0 -190
  382. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/providers.zh.md +0 -190
  383. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/python-sdk.md +0 -150
  384. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/python-sdk.zh.md +0 -150
  385. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/schedule.md +0 -21
  386. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/schedule.zh.md +0 -21
  387. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/index.md +0 -11
  388. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/index.zh.md +0 -11
  389. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/web-styling.md +0 -29
  390. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/web-styling.zh.md +0 -29
  391. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/site-pages-map.txt +0 -234
  392. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/site-pages.json +0 -232
  393. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src-README.md +0 -63
  394. package/node_modules/better-dsh/docs/dev-test-environment-notes.md +0 -137
  395. package/node_modules/better-dsh/docs/distro-blueprint.md +0 -81
  396. package/node_modules/better-dsh/docs/dsh-webUI-with-rlm-mode.png +0 -0
  397. package/node_modules/better-dsh/docs/repositioning-and-rebranding.md +0 -102
  398. package/node_modules/better-dsh/docs/specs/agent/spec.md +0 -54
  399. package/node_modules/better-dsh/docs/specs/ast/spec.md +0 -57
  400. package/node_modules/better-dsh/docs/specs/ast-engine-deomp/spec.md +0 -170
  401. package/node_modules/better-dsh/docs/specs/authentication-only-web-admission/spec.md +0 -51
  402. package/node_modules/better-dsh/docs/specs/compaction-recall/spec.md +0 -46
  403. package/node_modules/better-dsh/docs/specs/ctx/spec.md +0 -179
  404. package/node_modules/better-dsh/docs/specs/docs-packaging-trim/spec.md +0 -110
  405. package/node_modules/better-dsh/docs/specs/dsh/spec.md +0 -47
  406. package/node_modules/better-dsh/docs/specs/dvc/spec.md +0 -106
  407. package/node_modules/better-dsh/docs/specs/escalation-guidance/spec.md +0 -44
  408. package/node_modules/better-dsh/docs/specs/fs-scheme-resolution/spec.md +0 -37
  409. package/node_modules/better-dsh/docs/specs/hash-edit/spec.md +0 -41
  410. package/node_modules/better-dsh/docs/specs/http-read/spec.md +0 -73
  411. package/node_modules/better-dsh/docs/specs/kernel-provisioning/spec.md +0 -53
  412. package/node_modules/better-dsh/docs/specs/lsp/spec.md +0 -121
  413. package/node_modules/better-dsh/docs/specs/mobile-layout/spec.md +0 -108
  414. package/node_modules/better-dsh/docs/specs/model-failover/spec.md +0 -20
  415. package/node_modules/better-dsh/docs/specs/model-picker-ios-blur/spec.md +0 -168
  416. package/node_modules/better-dsh/docs/specs/plugins-page-components/spec.md +0 -79
  417. package/node_modules/better-dsh/docs/specs/preact-ui-shell/spec.md +0 -22
  418. package/node_modules/better-dsh/docs/specs/remote-pty-label/spec.md +0 -126
  419. package/node_modules/better-dsh/docs/specs/repl-dispatch-resilience/spec.md +0 -21
  420. package/node_modules/better-dsh/docs/specs/skill/spec.md +0 -58
  421. package/node_modules/better-dsh/docs/specs/tool-surface/spec.md +0 -222
  422. package/node_modules/better-dsh/docs/specs/url-schema/spec.md +0 -148
  423. package/node_modules/better-dsh/docs/specs/web-trust-fence/spec.md +0 -43
  424. package/node_modules/better-dsh/docs/specs/welcome-self-contained/spec.md +0 -13
  425. package/node_modules/better-dsh/docs/specs/zero-npm-runtime-deps/spec.md +0 -85
  426. package/node_modules/better-dsh/docs/superpowers/plans/2026-10-02-ctx-navigation.md +0 -319
  427. package/node_modules/better-dsh/docs/superpowers/plans/2026-10-03-ast-engine-deomp.md +0 -1214
  428. package/node_modules/better-dsh/docs/superpowers/plans/2026-10-03-docs-packaging-trim.md +0 -181
  429. package/node_modules/better-dsh/docs/superpowers/specs/2026-10-02-ctx-navigation-design.md +0 -209
  430. package/node_modules/better-dsh/docs/upstream-dsh-0.1.5-rc.2-report.md +0 -156
  431. package/node_modules/better-dsh/dsh-docs/AGENTS.md +0 -75
  432. package/node_modules/better-dsh/dsh-docs/agent-lifecycle.md +0 -84
  433. package/node_modules/better-dsh/dsh-docs/agent-lifecycle.zh.md +0 -86
  434. package/node_modules/better-dsh/dsh-docs/api-gateway.md +0 -164
  435. package/node_modules/better-dsh/dsh-docs/api-gateway.zh.md +0 -164
  436. package/node_modules/better-dsh/dsh-docs/architecture.md +0 -150
  437. package/node_modules/better-dsh/dsh-docs/architecture.zh.md +0 -154
  438. package/node_modules/better-dsh/dsh-docs/baseline.md +0 -13
  439. package/node_modules/better-dsh/dsh-docs/capability-seams.md +0 -543
  440. package/node_modules/better-dsh/dsh-docs/capability-seams.zh.md +0 -545
  441. package/node_modules/better-dsh/dsh-docs/config-catalog.md +0 -3473
  442. package/node_modules/better-dsh/dsh-docs/config-catalog.zh.md +0 -3474
  443. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-package.md +0 -117
  444. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-package.zh.md +0 -119
  445. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-remote-api.md +0 -197
  446. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-remote-api.zh.md +0 -197
  447. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-session-format-version.md +0 -109
  448. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-session-format-version.zh.md +0 -109
  449. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-settings-card.md +0 -102
  450. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-settings-card.zh.md +0 -102
  451. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-tool.md +0 -101
  452. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-tool.zh.md +0 -103
  453. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-vendored-package.md +0 -59
  454. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-vendored-package.zh.md +0 -59
  455. package/node_modules/better-dsh/dsh-docs/cookbook/adding-an-llm-adapter.md +0 -43
  456. package/node_modules/better-dsh/dsh-docs/cookbook/adding-an-llm-adapter.zh.md +0 -43
  457. package/node_modules/better-dsh/dsh-docs/cookbook/extension-cookbook.md +0 -132
  458. package/node_modules/better-dsh/dsh-docs/cookbook/extension-cookbook.zh.md +0 -136
  459. package/node_modules/better-dsh/dsh-docs/cookbook/maintaining-dsh-code-review.md +0 -64
  460. package/node_modules/better-dsh/dsh-docs/cookbook/maintaining-dsh-code-review.zh.md +0 -64
  461. package/node_modules/better-dsh/dsh-docs/cookbook/responding-to-pr-review-on-a-stack.md +0 -32
  462. package/node_modules/better-dsh/dsh-docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +0 -32
  463. package/node_modules/better-dsh/dsh-docs/cordis-api/context.md +0 -364
  464. package/node_modules/better-dsh/dsh-docs/cordis-api/context.zh.md +0 -366
  465. package/node_modules/better-dsh/dsh-docs/cordis-api/events.md +0 -207
  466. package/node_modules/better-dsh/dsh-docs/cordis-api/events.zh.md +0 -209
  467. package/node_modules/better-dsh/dsh-docs/cordis-api/fiber.md +0 -375
  468. package/node_modules/better-dsh/dsh-docs/cordis-api/fiber.zh.md +0 -377
  469. package/node_modules/better-dsh/dsh-docs/cordis-api/inherited.md +0 -39
  470. package/node_modules/better-dsh/dsh-docs/cordis-api/registry.md +0 -152
  471. package/node_modules/better-dsh/dsh-docs/cordis-api/registry.zh.md +0 -154
  472. package/node_modules/better-dsh/dsh-docs/cordis-api/service.md +0 -102
  473. package/node_modules/better-dsh/dsh-docs/cordis-api/service.zh.md +0 -104
  474. package/node_modules/better-dsh/dsh-docs/cordis-primer.md +0 -45
  475. package/node_modules/better-dsh/dsh-docs/cordis-primer.zh.md +0 -51
  476. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/01-first-plugin.md +0 -95
  477. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/01-first-plugin.zh.md +0 -95
  478. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/02-lifecycle-and-effects.md +0 -98
  479. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +0 -98
  480. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/03-services.md +0 -98
  481. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/03-services.zh.md +0 -98
  482. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/04-events.md +0 -144
  483. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/04-events.zh.md +0 -144
  484. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/05-config.md +0 -84
  485. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/05-config.zh.md +0 -84
  486. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/06-composition-and-hmr.md +0 -113
  487. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/06-composition-and-hmr.zh.md +0 -113
  488. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/07-into-the-harness.md +0 -108
  489. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/07-into-the-harness.zh.md +0 -108
  490. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/index.md +0 -60
  491. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/index.zh.md +0 -62
  492. package/node_modules/better-dsh/dsh-docs/deepseek-llm-api-wire-extensions.md +0 -163
  493. package/node_modules/better-dsh/dsh-docs/deepseek-llm-api-wire-extensions.zh.md +0 -163
  494. package/node_modules/better-dsh/dsh-docs/defensive-patterns.md +0 -33
  495. package/node_modules/better-dsh/dsh-docs/defensive-patterns.zh.md +0 -35
  496. package/node_modules/better-dsh/dsh-docs/development.md +0 -167
  497. package/node_modules/better-dsh/dsh-docs/development.zh.md +0 -173
  498. package/node_modules/better-dsh/dsh-docs/event-producer-consumer.md +0 -86
  499. package/node_modules/better-dsh/dsh-docs/event-producer-consumer.zh.md +0 -88
  500. package/node_modules/better-dsh/dsh-docs/glossary.md +0 -45
  501. package/node_modules/better-dsh/dsh-docs/glossary.zh.md +0 -45
  502. package/node_modules/better-dsh/dsh-docs/graph-atlas.md +0 -22
  503. package/node_modules/better-dsh/dsh-docs/graph-atlas.zh.md +0 -24
  504. package/node_modules/better-dsh/dsh-docs/i18n/README.md +0 -60
  505. package/node_modules/better-dsh/dsh-docs/i18n/README.zh.md +0 -62
  506. package/node_modules/better-dsh/dsh-docs/i18n/style-samples.md +0 -87
  507. package/node_modules/better-dsh/dsh-docs/i18n/terminology.md +0 -214
  508. package/node_modules/better-dsh/dsh-docs/i18n/translation-prompt.md +0 -263
  509. package/node_modules/better-dsh/dsh-docs/i18n/translation-rules.md +0 -69
  510. package/node_modules/better-dsh/dsh-docs/i18n/translation-rules.zh.md +0 -69
  511. package/node_modules/better-dsh/dsh-docs/module-graph.md +0 -1411
  512. package/node_modules/better-dsh/dsh-docs/module-graph.zh.md +0 -1413
  513. package/node_modules/better-dsh/dsh-docs/persistence-catalog.md +0 -1075
  514. package/node_modules/better-dsh/dsh-docs/persistence-catalog.zh.md +0 -1077
  515. package/node_modules/better-dsh/dsh-docs/postmortem/0001-acp-default-export-drops-inject.md +0 -113
  516. package/node_modules/better-dsh/dsh-docs/postmortem/0001-acp-default-export-drops-inject.zh.md +0 -113
  517. package/node_modules/better-dsh/dsh-docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +0 -47
  518. package/node_modules/better-dsh/dsh-docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +0 -47
  519. package/node_modules/better-dsh/dsh-docs/postmortem/0003-web-agent-gui-feedback-loop.md +0 -53
  520. package/node_modules/better-dsh/dsh-docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +0 -53
  521. package/node_modules/better-dsh/dsh-docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +0 -55
  522. package/node_modules/better-dsh/dsh-docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +0 -55
  523. package/node_modules/better-dsh/dsh-docs/postmortem/README.md +0 -18
  524. package/node_modules/better-dsh/dsh-docs/postmortem/README.zh.md +0 -18
  525. package/node_modules/better-dsh/dsh-docs/rescope.md +0 -53
  526. package/node_modules/better-dsh/dsh-docs/rescope.zh.md +0 -53
  527. package/node_modules/better-dsh/dsh-docs/session-format-status.md +0 -47
  528. package/node_modules/better-dsh/dsh-docs/session-format-status.zh.md +0 -47
  529. package/node_modules/better-dsh/dsh-docs/subsystems/README.md +0 -61
  530. package/node_modules/better-dsh/dsh-docs/subsystems/README.zh.md +0 -61
  531. package/node_modules/better-dsh/dsh-docs/subsystems/agent-team.md +0 -207
  532. package/node_modules/better-dsh/dsh-docs/subsystems/agent-team.zh.md +0 -207
  533. package/node_modules/better-dsh/dsh-docs/subsystems/approval.md +0 -170
  534. package/node_modules/better-dsh/dsh-docs/subsystems/approval.zh.md +0 -170
  535. package/node_modules/better-dsh/dsh-docs/subsystems/attachment.md +0 -351
  536. package/node_modules/better-dsh/dsh-docs/subsystems/attachment.zh.md +0 -351
  537. package/node_modules/better-dsh/dsh-docs/subsystems/client-modules.md +0 -168
  538. package/node_modules/better-dsh/dsh-docs/subsystems/client-modules.zh.md +0 -168
  539. package/node_modules/better-dsh/dsh-docs/subsystems/client-resources.md +0 -91
  540. package/node_modules/better-dsh/dsh-docs/subsystems/client-resources.zh.md +0 -91
  541. package/node_modules/better-dsh/dsh-docs/subsystems/code-runtime.md +0 -195
  542. package/node_modules/better-dsh/dsh-docs/subsystems/code-runtime.zh.md +0 -195
  543. package/node_modules/better-dsh/dsh-docs/subsystems/commands.md +0 -219
  544. package/node_modules/better-dsh/dsh-docs/subsystems/commands.zh.md +0 -219
  545. package/node_modules/better-dsh/dsh-docs/subsystems/compaction.md +0 -238
  546. package/node_modules/better-dsh/dsh-docs/subsystems/compaction.zh.md +0 -238
  547. package/node_modules/better-dsh/dsh-docs/subsystems/conversation.md +0 -258
  548. package/node_modules/better-dsh/dsh-docs/subsystems/conversation.zh.md +0 -258
  549. package/node_modules/better-dsh/dsh-docs/subsystems/core.md +0 -1209
  550. package/node_modules/better-dsh/dsh-docs/subsystems/core.zh.md +0 -1219
  551. package/node_modules/better-dsh/dsh-docs/subsystems/credentials.md +0 -329
  552. package/node_modules/better-dsh/dsh-docs/subsystems/credentials.zh.md +0 -329
  553. package/node_modules/better-dsh/dsh-docs/subsystems/extensions.md +0 -382
  554. package/node_modules/better-dsh/dsh-docs/subsystems/extensions.zh.md +0 -382
  555. package/node_modules/better-dsh/dsh-docs/subsystems/feedback.md +0 -266
  556. package/node_modules/better-dsh/dsh-docs/subsystems/feedback.zh.md +0 -266
  557. package/node_modules/better-dsh/dsh-docs/subsystems/filesystem.md +0 -505
  558. package/node_modules/better-dsh/dsh-docs/subsystems/filesystem.zh.md +0 -505
  559. package/node_modules/better-dsh/dsh-docs/subsystems/goal.md +0 -277
  560. package/node_modules/better-dsh/dsh-docs/subsystems/goal.zh.md +0 -277
  561. package/node_modules/better-dsh/dsh-docs/subsystems/invariants.md +0 -91
  562. package/node_modules/better-dsh/dsh-docs/subsystems/invariants.zh.md +0 -91
  563. package/node_modules/better-dsh/dsh-docs/subsystems/jobs.md +0 -290
  564. package/node_modules/better-dsh/dsh-docs/subsystems/jobs.zh.md +0 -290
  565. package/node_modules/better-dsh/dsh-docs/subsystems/llm-streaming.md +0 -1080
  566. package/node_modules/better-dsh/dsh-docs/subsystems/llm-streaming.zh.md +0 -1086
  567. package/node_modules/better-dsh/dsh-docs/subsystems/lsp.md +0 -202
  568. package/node_modules/better-dsh/dsh-docs/subsystems/lsp.zh.md +0 -202
  569. package/node_modules/better-dsh/dsh-docs/subsystems/permission-presets.md +0 -131
  570. package/node_modules/better-dsh/dsh-docs/subsystems/permission-presets.zh.md +0 -131
  571. package/node_modules/better-dsh/dsh-docs/subsystems/persistence.md +0 -395
  572. package/node_modules/better-dsh/dsh-docs/subsystems/persistence.zh.md +0 -395
  573. package/node_modules/better-dsh/dsh-docs/subsystems/plan.md +0 -87
  574. package/node_modules/better-dsh/dsh-docs/subsystems/plan.zh.md +0 -87
  575. package/node_modules/better-dsh/dsh-docs/subsystems/sandbox.md +0 -220
  576. package/node_modules/better-dsh/dsh-docs/subsystems/sandbox.zh.md +0 -220
  577. package/node_modules/better-dsh/dsh-docs/subsystems/schedule.md +0 -192
  578. package/node_modules/better-dsh/dsh-docs/subsystems/schedule.zh.md +0 -192
  579. package/node_modules/better-dsh/dsh-docs/subsystems/scope.md +0 -59
  580. package/node_modules/better-dsh/dsh-docs/subsystems/scope.zh.md +0 -59
  581. package/node_modules/better-dsh/dsh-docs/subsystems/session-projection.md +0 -354
  582. package/node_modules/better-dsh/dsh-docs/subsystems/session-projection.zh.md +0 -354
  583. package/node_modules/better-dsh/dsh-docs/subsystems/session-query.md +0 -509
  584. package/node_modules/better-dsh/dsh-docs/subsystems/session-query.zh.md +0 -509
  585. package/node_modules/better-dsh/dsh-docs/subsystems/session-reference.md +0 -219
  586. package/node_modules/better-dsh/dsh-docs/subsystems/session-reference.zh.md +0 -219
  587. package/node_modules/better-dsh/dsh-docs/subsystems/session-telemetry.md +0 -194
  588. package/node_modules/better-dsh/dsh-docs/subsystems/session-telemetry.zh.md +0 -194
  589. package/node_modules/better-dsh/dsh-docs/subsystems/session-title.md +0 -204
  590. package/node_modules/better-dsh/dsh-docs/subsystems/session-title.zh.md +0 -204
  591. package/node_modules/better-dsh/dsh-docs/subsystems/session.md +0 -1155
  592. package/node_modules/better-dsh/dsh-docs/subsystems/session.zh.md +0 -1159
  593. package/node_modules/better-dsh/dsh-docs/subsystems/settings.md +0 -405
  594. package/node_modules/better-dsh/dsh-docs/subsystems/settings.zh.md +0 -405
  595. package/node_modules/better-dsh/dsh-docs/subsystems/shell.md +0 -303
  596. package/node_modules/better-dsh/dsh-docs/subsystems/shell.zh.md +0 -303
  597. package/node_modules/better-dsh/dsh-docs/subsystems/sidebar-right.md +0 -148
  598. package/node_modules/better-dsh/dsh-docs/subsystems/sidebar-right.zh.md +0 -148
  599. package/node_modules/better-dsh/dsh-docs/subsystems/skills.md +0 -354
  600. package/node_modules/better-dsh/dsh-docs/subsystems/skills.zh.md +0 -354
  601. package/node_modules/better-dsh/dsh-docs/subsystems/slots.md +0 -175
  602. package/node_modules/better-dsh/dsh-docs/subsystems/slots.zh.md +0 -175
  603. package/node_modules/better-dsh/dsh-docs/subsystems/spill.md +0 -117
  604. package/node_modules/better-dsh/dsh-docs/subsystems/spill.zh.md +0 -117
  605. package/node_modules/better-dsh/dsh-docs/subsystems/storage.md +0 -260
  606. package/node_modules/better-dsh/dsh-docs/subsystems/storage.zh.md +0 -260
  607. package/node_modules/better-dsh/dsh-docs/subsystems/subagent.md +0 -766
  608. package/node_modules/better-dsh/dsh-docs/subsystems/subagent.zh.md +0 -770
  609. package/node_modules/better-dsh/dsh-docs/subsystems/subprocess.md +0 -324
  610. package/node_modules/better-dsh/dsh-docs/subsystems/subprocess.zh.md +0 -324
  611. package/node_modules/better-dsh/dsh-docs/subsystems/system-prompt.md +0 -220
  612. package/node_modules/better-dsh/dsh-docs/subsystems/system-prompt.zh.md +0 -220
  613. package/node_modules/better-dsh/dsh-docs/subsystems/terminal.md +0 -184
  614. package/node_modules/better-dsh/dsh-docs/subsystems/terminal.zh.md +0 -184
  615. package/node_modules/better-dsh/dsh-docs/subsystems/todo.md +0 -32
  616. package/node_modules/better-dsh/dsh-docs/subsystems/todo.zh.md +0 -32
  617. package/node_modules/better-dsh/dsh-docs/subsystems/token-meter.md +0 -105
  618. package/node_modules/better-dsh/dsh-docs/subsystems/token-meter.zh.md +0 -105
  619. package/node_modules/better-dsh/dsh-docs/subsystems/tools.md +0 -720
  620. package/node_modules/better-dsh/dsh-docs/subsystems/tools.zh.md +0 -720
  621. package/node_modules/better-dsh/dsh-docs/subsystems/typert.md +0 -343
  622. package/node_modules/better-dsh/dsh-docs/subsystems/typert.zh.md +0 -343
  623. package/node_modules/better-dsh/dsh-docs/subsystems/user-questions.md +0 -178
  624. package/node_modules/better-dsh/dsh-docs/subsystems/user-questions.zh.md +0 -178
  625. package/node_modules/better-dsh/dsh-docs/subsystems/web-client.md +0 -95
  626. package/node_modules/better-dsh/dsh-docs/subsystems/web-client.zh.md +0 -95
  627. package/node_modules/better-dsh/dsh-docs/subsystems/web-server.md +0 -154
  628. package/node_modules/better-dsh/dsh-docs/subsystems/web-server.zh.md +0 -154
  629. package/node_modules/better-dsh/dsh-docs/subsystems/web.md +0 -206
  630. package/node_modules/better-dsh/dsh-docs/subsystems/web.zh.md +0 -206
  631. package/node_modules/better-dsh/dsh-docs/subsystems/webhook.md +0 -70
  632. package/node_modules/better-dsh/dsh-docs/subsystems/webhook.zh.md +0 -70
  633. package/node_modules/better-dsh/dsh-docs/subsystems/workflow.md +0 -278
  634. package/node_modules/better-dsh/dsh-docs/subsystems/workflow.zh.md +0 -278
  635. package/node_modules/better-dsh/dsh-docs/subsystems/workspace.md +0 -321
  636. package/node_modules/better-dsh/dsh-docs/subsystems/workspace.zh.md +0 -321
  637. package/node_modules/better-dsh/dsh-docs/testing.md +0 -54
  638. package/node_modules/better-dsh/dsh-docs/testing.zh.md +0 -54
  639. package/node_modules/better-dsh/dsh-docs/tool-catalog.md +0 -2225
  640. package/node_modules/better-dsh/dsh-docs/tool-catalog.zh.md +0 -2233
  641. package/node_modules/better-dsh/dsh-docs/tool-execution-pipeline.md +0 -62
  642. package/node_modules/better-dsh/dsh-docs/tool-execution-pipeline.zh.md +0 -64
  643. package/node_modules/better-dsh/dsh-docs/user/develop/basic/config.md +0 -106
  644. package/node_modules/better-dsh/dsh-docs/user/develop/basic/config.zh.md +0 -106
  645. package/node_modules/better-dsh/dsh-docs/user/develop/basic/index.md +0 -144
  646. package/node_modules/better-dsh/dsh-docs/user/develop/basic/index.zh.md +0 -144
  647. package/node_modules/better-dsh/dsh-docs/user/develop/basic/publish.md +0 -183
  648. package/node_modules/better-dsh/dsh-docs/user/develop/basic/publish.zh.md +0 -183
  649. package/node_modules/better-dsh/dsh-docs/user/develop/basic/tool.md +0 -52
  650. package/node_modules/better-dsh/dsh-docs/user/develop/basic/tool.zh.md +0 -52
  651. package/node_modules/better-dsh/dsh-docs/user/develop/framework/events.md +0 -143
  652. package/node_modules/better-dsh/dsh-docs/user/develop/framework/events.zh.md +0 -143
  653. package/node_modules/better-dsh/dsh-docs/user/develop/framework/index.md +0 -137
  654. package/node_modules/better-dsh/dsh-docs/user/develop/framework/index.zh.md +0 -137
  655. package/node_modules/better-dsh/dsh-docs/user/develop/framework/service.md +0 -148
  656. package/node_modules/better-dsh/dsh-docs/user/develop/framework/service.zh.md +0 -150
  657. package/node_modules/better-dsh/dsh-docs/user/develop/practice/dynamic-cordis.md +0 -15
  658. package/node_modules/better-dsh/dsh-docs/user/develop/practice/dynamic-cordis.zh.md +0 -15
  659. package/node_modules/better-dsh/dsh-docs/user/develop/practice/index.md +0 -155
  660. package/node_modules/better-dsh/dsh-docs/user/develop/practice/index.zh.md +0 -155
  661. package/node_modules/better-dsh/dsh-docs/user/develop/practice/llm-adapter.md +0 -189
  662. package/node_modules/better-dsh/dsh-docs/user/develop/practice/llm-adapter.zh.md +0 -189
  663. package/node_modules/better-dsh/dsh-docs/user/guide/github-review.md +0 -102
  664. package/node_modules/better-dsh/dsh-docs/user/guide/github-review.zh.md +0 -102
  665. package/node_modules/better-dsh/dsh-docs/user/guide/index.md +0 -30
  666. package/node_modules/better-dsh/dsh-docs/user/guide/index.zh.md +0 -30
  667. package/node_modules/better-dsh/dsh-docs/user/guide/mcp-memory.md +0 -101
  668. package/node_modules/better-dsh/dsh-docs/user/guide/mcp-memory.zh.md +0 -101
  669. package/node_modules/better-dsh/dsh-docs/user/guide/network-proxy.md +0 -85
  670. package/node_modules/better-dsh/dsh-docs/user/guide/network-proxy.zh.md +0 -85
  671. package/node_modules/better-dsh/dsh-docs/user/guide/providers.md +0 -190
  672. package/node_modules/better-dsh/dsh-docs/user/guide/providers.zh.md +0 -190
  673. package/node_modules/better-dsh/dsh-docs/user/guide/python-sdk.md +0 -150
  674. package/node_modules/better-dsh/dsh-docs/user/guide/python-sdk.zh.md +0 -150
  675. package/node_modules/better-dsh/dsh-docs/user/guide/schedule.md +0 -21
  676. package/node_modules/better-dsh/dsh-docs/user/guide/schedule.zh.md +0 -21
  677. package/node_modules/better-dsh/dsh-docs/user/index.md +0 -11
  678. package/node_modules/better-dsh/dsh-docs/user/index.zh.md +0 -11
  679. package/node_modules/better-dsh/dsh-docs/web-styling.md +0 -29
  680. package/node_modules/better-dsh/dsh-docs/web-styling.zh.md +0 -29
  681. package/node_modules/better-dsh/eval-description.md +0 -33
  682. package/node_modules/better-dsh/lib/BrowserWebSocketTransport-D1aFReu_.js +0 -4
  683. package/node_modules/better-dsh/lib/BrowserWebSocketTransport-wm99h94r.js +0 -39
  684. package/node_modules/better-dsh/lib/LaunchOptions-B874eBu2.js +0 -4
  685. package/node_modules/better-dsh/lib/LaunchOptions-kGXcZOe0.js +0 -17
  686. package/node_modules/better-dsh/lib/NodeWebSocketTransport-BRLjmu2R.js +0 -4
  687. package/node_modules/better-dsh/lib/NodeWebSocketTransport-D9ysYGLM.js +0 -3634
  688. package/node_modules/better-dsh/lib/ast-assets/ast-grep.wasm +0 -0
  689. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-bash.wasm +0 -0
  690. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-c.wasm +0 -0
  691. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-cpp.wasm +0 -0
  692. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-css.wasm +0 -0
  693. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-go.wasm +0 -0
  694. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-html.wasm +0 -0
  695. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-javascript.wasm +0 -0
  696. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-json.wasm +0 -0
  697. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-python.wasm +0 -0
  698. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-ruby.wasm +0 -0
  699. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-rust.wasm +0 -0
  700. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-tsx.wasm +0 -0
  701. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-typescript.wasm +0 -0
  702. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-yaml.wasm +0 -0
  703. package/node_modules/better-dsh/lib/ast-assets/tree-sitter.wasm +0 -0
  704. package/node_modules/better-dsh/lib/bidi-BalpKaJc.js +0 -16106
  705. package/node_modules/better-dsh/lib/bundle-delivery.d.ts +0 -20
  706. package/node_modules/better-dsh/lib/bundle-delivery.js +0 -212
  707. package/node_modules/better-dsh/lib/chunk-DQxbwPpZ.js +0 -30
  708. package/node_modules/better-dsh/lib/client/index.js +0 -712
  709. package/node_modules/better-dsh/lib/compaction/index.d.ts +0 -57
  710. package/node_modules/better-dsh/lib/compaction/index.js +0 -145
  711. package/node_modules/better-dsh/lib/failover/index.d.ts +0 -59
  712. package/node_modules/better-dsh/lib/failover/index.js +0 -147
  713. package/node_modules/better-dsh/lib/fs-aware/sandbox-plugin.d.ts +0 -71
  714. package/node_modules/better-dsh/lib/fs-aware/sandbox-plugin.js +0 -249
  715. package/node_modules/better-dsh/lib/hmr.d.ts +0 -32
  716. package/node_modules/better-dsh/lib/hmr.js +0 -49
  717. package/node_modules/better-dsh/lib/index-DTDXUe6m.d.ts +0 -208
  718. package/node_modules/better-dsh/lib/index-browser-CysrjMyM.js +0 -21061
  719. package/node_modules/better-dsh/lib/index.d.ts +0 -705
  720. package/node_modules/better-dsh/lib/index.js +0 -3816
  721. package/node_modules/better-dsh/lib/kernel-bridge.py +0 -172
  722. package/node_modules/better-dsh/lib/kernel-env-D8UOWeji.js +0 -195
  723. package/node_modules/better-dsh/lib/kernel-env.d.ts +0 -80
  724. package/node_modules/better-dsh/lib/kernel-env.js +0 -3
  725. package/node_modules/better-dsh/lib/lib-C8_jXvwA.js +0 -894
  726. package/node_modules/better-dsh/lib/lsp-server-registry-BXvUTBY7.js +0 -3
  727. package/node_modules/better-dsh/lib/lsp-server-registry-CH9WNFFt.js +0 -972
  728. package/node_modules/better-dsh/lib/main-BQeFrBM1.js +0 -3
  729. package/node_modules/better-dsh/lib/main-CupOhMp5.js +0 -1432
  730. package/node_modules/better-dsh/lib/mobile/plugin.d.ts +0 -29
  731. package/node_modules/better-dsh/lib/mobile/plugin.js +0 -54
  732. package/node_modules/better-dsh/lib/native-capture-BEByDXYM.js +0 -68
  733. package/node_modules/better-dsh/lib/puppeteer-core-CSk2PtSm.js +0 -1136
  734. package/node_modules/better-dsh/lib/py-sdk-D7klhpWb.js +0 -178
  735. package/node_modules/better-dsh/lib/py-sdk.d.ts +0 -19
  736. package/node_modules/better-dsh/lib/py-sdk.js +0 -3
  737. package/node_modules/better-dsh/lib/remote/plugin.d.ts +0 -24
  738. package/node_modules/better-dsh/lib/remote/plugin.js +0 -1190
  739. package/node_modules/better-dsh/lib/url-schemes/index.d.ts +0 -88
  740. package/node_modules/better-dsh/lib/url-schemes/index.js +0 -12229
  741. package/node_modules/better-dsh/lib/util-BHL_dfV_.js +0 -2953
  742. package/node_modules/better-dsh/lib/wasm_bg-CNXhHjVg.js +0 -1291
  743. package/node_modules/better-dsh/lib/web-password.d.ts +0 -156
  744. package/node_modules/better-dsh/lib/web-password.js +0 -562
  745. package/node_modules/better-dsh/lib/web-tree-sitter-CPrPD4J2.js +0 -3440
  746. package/node_modules/better-dsh/lib/web-trust-D6gJpUMf.js +0 -393
  747. package/node_modules/better-dsh/lib/web-trust-Dej_RI2B.d.ts +0 -113
  748. package/node_modules/better-dsh/lib/web-trust.d.ts +0 -3
  749. package/node_modules/better-dsh/lib/web-trust.js +0 -4
  750. package/node_modules/better-dsh/lib/webserver.d.ts +0 -10
  751. package/node_modules/better-dsh/lib/webserver.js +0 -19
  752. package/node_modules/better-dsh/lib/welcome-notice.d.ts +0 -18
  753. package/node_modules/better-dsh/lib/welcome-notice.js +0 -59
  754. package/node_modules/better-dsh/lib/wrap-T4I0nfPM.js +0 -750
  755. package/node_modules/better-dsh/package.json +0 -426
  756. package/node_modules/better-dsh/scripts/kernel-provision.mjs +0 -35
  757. package/node_modules/better-dsh/scripts/register-bundle.mjs +0 -80
  758. package/node_modules/better-dsh/url-schemes-instruction.md +0 -22
@@ -1,120 +0,0 @@
1
- # Chapter 3: Plugin Framework & Practice
2
-
3
- ## Core Idea
4
- Cordis runs each plugin in a Fiber whose dependency-driven lifecycle makes every registration self-cleaning; on that runtime, dsh's extension architecture is two contracts — the three-role capability split (Definition / Provider / Consumer) and the `LlmAdapter` streaming protocol.
5
-
6
- ## Frameworks Introduced
7
- - **Fiber state machine**: `PENDING → LOADING → ACTIVE` (or `FAILED`); `ACTIVE → UNLOADING → DISPOSED`. `inject` gates PENDING→LOADING; `apply` throwing → FAILED; a required service disappearing unloads the plugin automatically and reloads it when the service returns.
8
- - When to use: reasoning about any plugin's load, HMR, or teardown behavior.
9
- - How: declare `export const inject = ['tools', 'llm']`; inside `apply` every injected service is ready.
10
- - **Service extension**: `class MetricsService extends Service { static inject = ['llm']; constructor(ctx) { super(ctx, 'metrics') } }` mounts `ctx.metrics`; typed via `declare module '@deepseek-ai/cordis' { interface Context { metrics: MetricsService } }`.
11
- - When to use: exposing a capability to other plugins; required deps via `inject`, optional via `const m = ctx.get('metrics'); m?.record(...)`.
12
- - **Event modes**: `emit` (synchronous broadcast, return values ignored) · `bail` (first result other than `null`/`false`/`undefined` wins) · `serial` (registration order, async awaited, first non-null stops) · `waterfall` (each listener wraps the downstream result; must call `next()`).
13
- - When to use: notification → emit; veto/policy check → bail; ordered setup → serial; middleware/interception → waterfall.
14
- - **Three-role capability design**: Service Definition (abstract class + Request/Result types) / Service Provider (subclass, `apply(ctx) { ctx.plugin(MyCapLocal) }`) / Consumer (`inject: ['tools', 'myCap']`). The complete capability is its seam; no individual role is.
15
- - When to use: only when roles need independent evolution or provider replacement — Bash = `dsh-shell` / `dsh-bash-local` / `dsh-tool-bash`.
16
- - How: swap providers by replacing one `cordis.yml` row; Provider and Consumer never depend on each other, only on the Definition.
17
- - **`LlmAdapter` contract**: extend `LlmAdapter` from `@deepseek-ai/dsh-llm`, implement `async *stream(options: GenerateOptions): AsyncIterable<StreamChunk>`, register with `ctx.llm.registerAdapter(providerNames, adapter)` under `inject = ['llm']`; optionally override `resolveModel()` and `listModels()`.
18
- - **Dynamic Cordis** (`@deepseek-ai/dsh-tool-cordis`): agent tool that inspects the live Cordis process and mounts/unmounts model-authored plugins in memory — temporary (gone on unmount or exit), and may affect other sessions in the same process.
19
-
20
- ## Key Concepts
21
- - **Disposer semantics**: unload invokes disposers in reverse registration order, but multiple async disposers run concurrently with no serial guarantee — put order-dependent cleanup in a single `ctx.effect()` and await its steps serially.
22
- - **`ctx.plugin(child)`**: nested Fiber inheriting the parent context with an independent lifecycle; `await fiber.dispose()` guarantees (1) registrations removed, (2) child plugins recursively unloaded, (3) promise resolves after all async cleanup.
23
- - **Declaration merging**: `interface Events` (payload types) and `interface Context` (service types) — the type-safe extension mechanism for both events and services.
24
- - **Cordis events vs session events**: `agent/pre-step`, `agent/request`, `agent/request-error`, `tools/result`, `session/event` are Cordis events (`namespace/action`); `turn/*`, `step/*`, `tool/call`, `tool/result`, `compaction/*` are durable session-event types — observe them by listening to `session/event` and inspecting `event.type`.
25
- - **Service isolation**: `cordis-plugin-group` rows with `group: true` + `isolate: { shell: true }` + nested `config` list give separate plugin groups private instances of the same service.
26
- - **`resolve(request): Spec`**: explicit default-resolution step in a capability — prefer it over hiding `?? default` expressions inside `run()`.
27
- - **StreamChunk protocol**: `block-start` / `text-delta` / `tool-call-delta` / `block-end` / `usage` / `finish`; every `block-start` has a matching `block-end`; `index` increases from 0; `usage` before `finish`; `finish` is last (`reason.kind: 'stop' | 'tool-calls'`).
28
- - **`LlmError`**: stable-code error type for transport/protocol failures; the agent loop preserves message and code — it does not convert ordinary `Error`.
29
- - **`attributionHeaders()` / `options.signal`**: merged into / forwarded on every provider HTTP request an adapter makes.
30
- - **`brandString<ToolCallId>`**: branded id type carried by tool-call deltas and blocks.
31
-
32
- ## Mental Models
33
- - Think of `inject` as a dataflow dependency: readiness gates loading, loss triggers disposal, return triggers reload — never hand-guard service access.
34
- - Think of an adapter as a translator: `GenerateOptions` (provider-neutral: model, reasoning-effort id, history, system prompt, tool schemas, params, stop sequences, abort signal) → provider request; provider stream → `StreamChunk`s. A field the provider can't honor throws `LlmError`, never a silent drop.
35
- - Treat the three-role split as an option, not a rule: a simple tool plugin is one package; split only for real replaceability.
36
- - Think of `resolveModel` as capability advertisement: it returns identity + `context` + `reasoning` metadata (ordered opaque ids, display names, optional default); the service validates the aggregate and rejects unsupported explicit efforts before `stream()`.
37
-
38
- ## Anti-patterns
39
- - **Listening on `tool/call` or `compaction/*` as Cordis events**: they are session-log record types; only `session/event` fires.
40
- - **Waterfall listener omitting `next()` by accident**: short-circuits the pipeline by design — interception is the feature, not an error path.
41
- - **Splitting the three roles preemptively**: separate packages only when independent evolution or provider replacement is real.
42
- - **Throwing plain `Error` from an adapter**: the loop won't map it; diagnostics and policy lose the stable code.
43
- - **Promoting reasoning-effort ids into a core enum**: preserve the adapter's authoritative opaque selectable list, including `off` when the upstream capability API returns it.
44
- - **Counting on cross-effect disposal ordering**: concurrent async disposers have no serial completion guarantee.
45
-
46
- ## Code Examples
47
- Adapter skeleton (registration + chunk protocol + error contract):
48
- ```ts
49
- import { LlmAdapter, LlmError, attributionHeaders,
50
- type GenerateOptions, type StreamChunk } from '@deepseek-ai/dsh-llm'
51
-
52
- class MyAdapter extends LlmAdapter {
53
- async *stream(options: GenerateOptions): AsyncIterable<StreamChunk> {
54
- const res = await fetch(this.endpoint, {
55
- method: 'POST',
56
- headers: { 'content-type': 'application/json', ...attributionHeaders() },
57
- body: JSON.stringify({ model: options.model, messages: options.messages }),
58
- ...options.signal ? { signal: options.signal } : {},
59
- })
60
- if (!res.ok) throw new LlmError(`Provider API error: ${res.status}`, 'PROVIDER_HTTP_ERROR')
61
- yield { type: 'block-start', index: 0, blockType: 'text' }
62
- yield { type: 'text-delta', index: 0, text: 'Hello world' }
63
- yield { type: 'block-end', index: 0, block: { type: 'text', text: 'Hello world' } }
64
- yield { type: 'usage', usage: { inputTokens: 100, outputTokens: 50 } }
65
- yield { type: 'finish', reason: { kind: 'stop' } } // or 'tool-calls'
66
- }
67
- }
68
- export const inject = ['llm']
69
- export function apply(ctx: Context, config: Config) {
70
- ctx.llm.registerAdapter(config.providers, new MyAdapter(config.apiKey))
71
- }
72
- ```
73
- Tool-call chunk (arguments stream as raw JSON text):
74
- ```ts
75
- yield { type: 'tool-call-delta', index: 1, id: brandString<ToolCallId>('call-123'),
76
- name: 'bash', argumentsDelta: '{"command":"ls"}' }
77
- ```
78
- Typed events:
79
- ```ts
80
- declare module '@deepseek-ai/cordis' {
81
- interface Events {
82
- 'my-plugin/ready': (payload: { id: string }) => void
83
- 'my-plugin/transform': (input: string, next: () => Promise<string>) => Promise<string>
84
- }
85
- }
86
- ```
87
- Three-role wiring — Definition: `export abstract class MyCapService extends Service` + `interface Context { myCap: MyCapService }` + `abstract execute(request): Promise<MyCapResult>`; Provider: `class MyCapLocal extends MyCapService` registered via `ctx.plugin(MyCapLocal)`; Consumer: tool with `inject: ['tools', 'myCap']` calling `await ctx.myCap.execute({ input })`. Compose: one `cordis.yml` row per package; replace the provider row to swap implementations.
88
-
89
- ## Reference Tables
90
- | Fiber state | Meaning |
91
- |---|---|
92
- | PENDING | declared; required dependencies not ready |
93
- | LOADING | dependencies ready; `apply` running |
94
- | ACTIVE | running |
95
- | FAILED | `apply` threw an error |
96
- | UNLOADING / DISPOSED | disposing resources / fully unloaded |
97
-
98
- | Mode | Order | Stops when | Result |
99
- |---|---|---|---|
100
- | emit | all, sync | never | ignored |
101
- | bail | registration | first non-null/false/undefined | that value |
102
- | serial | registration, awaited | first non-null/false/undefined | that value |
103
- | waterfall | chain via `next()` | a listener omits `next()` | wrapped downstream value |
104
-
105
- Adapter facts: `GenerateOptions.provider` selects the registered adapter; `GenerateOptions.model` is an adapter-owned id with no lifecycle registration; `listModels()` advertises choices to selectors; `resolveModel(provider, model, signal?)` honors the optional signal so cancellation and disposal reach quiescence; omitting `reasoning` metadata means the model has no selectable reasoning-effort capability.
106
-
107
- ## Key Takeaways
108
- 1. All `ctx.*` registrations are effects — HMR, dependency loss, and `fiber.dispose()` clean up without manual teardown; use `ctx.effect` only for untracked resources.
109
- 2. Pick the event mode by contract: notification (emit), veto (bail), ordered setup (serial), wrapping/interception (waterfall).
110
- 3. The Service Definition owns Request/Result types; Providers and Consumers depend only on it — swapping providers is a one-row `cordis.yml` change.
111
- 4. Reference implementations: `packages/llm/llm-deepseek/` (OpenAI-compatible format) and `packages/llm/llm-pi-ai/` — the same harness contract over different provider SDKs.
112
- 5. The generated `cordis-surface` regions on subsystem pages record complete event signatures and modes — consult them and the service's TypeScript interface instead of maintaining a second static list.
113
- 6. Dynamic Cordis plugins are in-memory and process-wide: ephemeral by design, so never rely on them for durable composition.
114
-
115
- ## Connects To
116
- - **Ch 4 / Ch 5**: Cordis fundamentals and the full API beneath the lifecycle/events/services summarized here.
117
- - **Ch 7**: capability seams — the built-in three-role families and package links.
118
- - **Ch 14**: the agent loop consumes `LlmError` codes and reasoning metadata.
119
- - **Ch 17**: LLM streaming subsystem owns the complete chunk/adapter pipeline.
120
- - **Ch 11**: tool-authoring reference (nested schemas, policy hooks, UI cards) for the consumer role.
@@ -1,129 +0,0 @@
1
- # Chapter 4: Cordis Fundamentals (Primer + Tutorial)
2
-
3
- ## Core Idea
4
- Cordis is the vendored plugin framework underneath dsh: every capability — tools, LLM adapters, the agent loop itself — is a plugin mounted into a shared `Context`, composed by a `cordis.yml` file. A plugin describes what it contributes (services, events, effects); the config file composes the application.
5
-
6
- ## Frameworks Introduced
7
- - **Plugin = `{ name?, inject?, Config?, apply(ctx, config) }`**: three accepted shapes — function plugin (most common), object plugin with `apply` method, class plugin (`Service` subclass).
8
- - When to use: function form until you need to expose a service; then `extends Service` with `super(ctx, 'name')`.
9
- - How: module exports `apply` (plus optional `name` display metadata); the Loader resolves it from a `cordis.yml` entry `name:` field (module specifier: relative path or npm package).
10
- - **Service provide/consume**: a named capability one plugin provides (`ctx.<key>`) and others consume via `inject`.
11
- - When to use: any shared capability — harness's `ctx.tools`, `ctx.llm`, `ctx.agents` are services.
12
- - How: provider mounts a `Service` subclass (`super(ctx, 'greeter')` registers as `ctx.greeter`); consumer declares `export const inject = ['greeter']` — Cordis holds it PENDING until the service exists, so `apply` sees it ready. Load order comes from `inject`, never YAML position.
13
- - **Typed events via declaration merging**: `declare module '@deepseek-ai/cordis' { interface Events { 'ns/action'(args): void } }` declares name + listener signature; generates no runtime code.
14
- - When to use: announce something without knowing listeners (tool results, model requests, approval decisions).
15
- - How: `ctx.emit(name, ...args)`; listen with `ctx.on(name, listener)` (an effect — auto-removed on unload). Event names use `namespace/action` convention.
16
- - **Effect/disposer cleanup model**: every registration is a reversible effect, undone when the owning plugin unloads.
17
- - When to use: any resource — Cordis-managed APIs (`ctx.on`, `ctx.plugin`, service/harness registrations like `ctx.tools.register`) are already effects; wrap unmanaged resources (timers, connections, watchers) in `ctx.effect(() => { ...acquire; return () => release })`.
18
- - How: disposers run in reverse registration order; async disposers run concurrently — if teardown order matters, keep steps in one disposer and await them there.
19
- - **Config schema + static declarations**: exported `Config` is both a TS interface and a runtime schema; validated before `apply` runs.
20
- - When to use: any `cordis.yml` entry `config:` block.
21
- - How: Schemastery `Schema.object({...})` with `.default()`s — `apply` always receives complete, validated config; invalid config → fiber FAILED, loud `ValidationError` (never half-started).
22
- - **Composition & HMR**: `cordis.yml` entries carry `{id, name, config, inject, disabled}`; HMR = unload + reload a plugin on file save.
23
- - When to use: editing plugins or the config file at dev time; `@deepseek-ai/cordis-plugin-hmr` (needs `logger-console` + `timer` plugins, runs under tsx).
24
- - How: give entries explicit `id`s — the loader diffs by `id`; an id-less entry gets a fresh generated id each read, so any config edit remounts it as removed-plus-added. `disabled: true` unmounts without deleting the entry. Groups nest entries that load/unload as one unit; `isolate` gives a group its own instance of a service name.
25
- - **Loader `!!js` expressions**: `@deepseek-ai/cordis-plugin-include` parses `!!js` into expression nodes.
26
- - When to use: config values computed at load time (e.g. `greeting: !!js process.env.DEMO_GREETING ?? 'Hello'`) or gating rows by environment.
27
- - How: works only inside `config` (evaluated after declared injections activate, against that plugin's context) and in `disabled` (evaluated against loader context at every mount decision). Other metadata stays literal.
28
-
29
- ## Key Concepts
30
- - **Context (`ctx`)**: the object `apply` receives; the repository of services through which the plugin registers everything it contributes.
31
- - **Fiber**: the runtime handle for one loaded plugin instance; `ctx.plugin(fn)` returns it, `fiber.dispose()` resolves after all cleanup.
32
- - **`inject`**: hard service requirements; re-checked live — if a required service disappears, dependents unload and reload when it returns (this is how service replacement works in config).
33
- - **PENDING**: legitimate wait state — plugin's `inject` names a service nobody provides; prints nothing, keeps no event loop alive (app exits 0 silently).
34
- - **Dispatch mode**: part of an event's public contract (`@mode` tag); decides awaitedness, order, and return semantics.
35
- - **Waterfall veto**: a listener returning without calling `next()` short-circuits the chain (innermost default never runs).
36
- - **Declaration merging**: TS `declare module` blocks add to `Context`/`Events` interfaces for typechecking only; consumers pull them in via `import type {} from './provider.ts'`.
37
- - **`ctx.get('name')`**: optional-dependency probe — `undefined` when no provider; the plugin still runs (vs `inject` for hard requirements).
38
- - **Service namespace**: one flat namespace per application; harness claims plain names (`tools`, `llm`) — prefix your own distinctively.
39
-
40
- ## Mental Models
41
- - Think of `cordis.yml` as the application: there is no framework bootstrap code in your file; the dsh base profile is just a longer plugin composition that deployment overlays patch.
42
- - Use `inject` (not list position) when plugins must start in an order — entries start concurrently; dependencies, not file order, decide startup.
43
- - Think of a waterfall as around-middleware: each listener wraps the rest of the chain; the value propagates through `next()`'s return.
44
- - Use `fiber.state` inspection when a plugin "does nothing": iterate `ctx.registry.values()` → `runtime.fibers`, filter `FiberState.PENDING`.
45
-
46
- ## Anti-patterns
47
- - **Forgetting `next()` in an observe/annotate waterfall listener**: silently swallows default behavior for everyone downstream — deliberate short-circuit only.
48
- - **Managing resources outside `ctx.effect()`**: leaks on unload/hot-reload; the pending callback fires on a dead app.
49
- - **Trusting YAML entry order**: guarantees nothing; unsatisfied `inject` = eternal silent PENDING.
50
- - **Relying on boot-time crash for unresolvable entries**: a typo'd module specifier is reported through the Cordis logger service — lost before a console exporter watches; check spelling first when a new entry does nothing.
51
- - **Plain-object `Config` export**: Cordis accepts any Standard Schema validator, but a plain object is not one — validation silently skipped/failed shape.
52
- - **Separate async disposers needing sequence**: they run concurrently; sequence must live inside one disposer.
53
-
54
- ## Code Examples
55
- ```ts
56
- // Three plugin shapes
57
- export function apply(ctx: Context) {} // 1. function
58
- export const objectPlugin = { name, apply(ctx) {} } // 2. object
59
- export class MyService extends Service { // 3. class (Service)
60
- constructor(ctx: Context) { super(ctx, 'myTutorialService') }
61
- }
62
-
63
- // Service + declaration merging + consumer
64
- declare module '@deepseek-ai/cordis' {
65
- interface Context { greeter: GreeterService }
66
- interface Events { 'stats/report'(name: string, count: number): void }
67
- }
68
- export const inject = ['greeter']
69
- export function apply(ctx: Context) { ctx.greeter.greet('world') }
70
-
71
- // Optional dependency
72
- const greeter = ctx.get('greeter') // undefined-safe probe
73
-
74
- // Effect with disposer
75
- ctx.effect(() => {
76
- const timer = setInterval(tick, 200)
77
- return () => clearInterval(timer)
78
- })
79
-
80
- // Waterfall listener discipline
81
- ctx.on('demo/transform', async (input, next) => {
82
- if (input.includes('blocked')) return '** blocked **' // veto
83
- return (await next()).toUpperCase() // wrap
84
- })
85
-
86
- // Config schema
87
- export interface Config { greeting: string; targets: string[] }
88
- export const Config: Schema<Config> = Schema.object({
89
- greeting: Schema.string().default('Hello'),
90
- targets: Schema.array(String).default(['world']),
91
- })
92
-
93
- // Diagnosing silent plugins
94
- for (const runtime of ctx.registry.values())
95
- for (const fiber of runtime.fibers)
96
- if (fiber.state === FiberState.PENDING)
97
- console.log(`${fiber.name} is PENDING — a required service is missing`)
98
- ```
99
-
100
- ## Reference Tables
101
- Dispatch modes (event's contract, checked by `@mode` in generated catalogs):
102
-
103
- | Mode | Call | Awaited? | Order | Return |
104
- |---|---|---|---|---|
105
- | `emit` | `ctx.emit(name, ...args)` | No | registration order | none |
106
- | `parallel` | `await ctx.parallel(...)` | Yes | all concurrent | none |
107
- | `serial` | `await ctx.serial(...)` | Yes | registration order | first non-null/false/undefined wins, stops rest |
108
- | `bail` | `ctx.bail(...)` | No | registration order | first bail value |
109
- | `waterfall` | `ctx.waterfall(name, ...args, next)` | — | around-middleware | outermost listener's return |
110
-
111
- Fiber state machine: `PENDING → LOADING → ACTIVE → UNLOADING → DISPOSED`, `LOADING → FAILED` (apply or config validation threw).
112
-
113
- Config entry fields: `id` (stable identity for diffing), `name` (module specifier), `config` (validated; `!!js` allowed), `inject`, `disabled` (`!!js` allowed, evaluated per mount decision), groups + `isolate`.
114
-
115
- ## Key Takeaways
116
- 1. Encapsulate behavior into plugins by domain: tool pipeline events belong to `ctx.tools`, model streaming to `ctx.llm`, agent coordination to `ctx.agents`.
117
- 2. Prefer events for interception and policy; prefer service methods for direct capability calls.
118
- 3. Every registration should have a disposer — return one from `ctx.effect()` or use a Cordis helper that does it for you (`ctx.on`, `ctx.plugin`, `ctx.tools.register`).
119
- 4. `fiber.dispose()` recursively unloads child plugins mounted via `ctx.plugin`; mount-from-code and YAML loading are the same operation.
120
- 5. Silent plugin = check fiber state first; PENDING is the usual answer.
121
- 6. `inject` is live-tracked after load: hot-swapping a provider cleanly restarts all dependents.
122
- 7. `apply` receives `(ctx, config)` — config always complete and validated; reject schema-valid-but-unresolvable references (e.g. missing provider) as early as you can detect them.
123
-
124
- ## Connects To
125
- - **Ch 2**: plugin packaging and loading of these Cordis shapes into dsh profiles.
126
- - **Ch 3**: framework practice — how real dsh plugins use services/events/config composition.
127
- - **Ch 5**: exact API signatures for every `ctx` member introduced here.
128
- - **Ch 6**: the architecture map these plugins compose into.
129
- - **Ch 7**: capability seams — which harness events/waterfalls (e.g. `agent/request`, `approval/request`) to hook.
@@ -1,115 +0,0 @@
1
- # Chapter 5: Cordis API Reference
2
-
3
- ## Core Idea
4
- The exact generated API surface of Cordis core: `Context` is a proxy over the service store whose `extend()/isolate()/intercept()` create scoped child contexts; plugins are loaded as fibers through the registry; events dispatch in five fixed modes. Master the member table and the inherited-vs-isolated visibility rules and you can read any dsh subsystem page's `cordis-surface` regions.
5
-
6
- ## Frameworks Introduced
7
- - **Context scoping trio**: `extend(meta?)`, `isolate(name, label?)`, `intercept(name, config)` — all return child contexts without mutating the parent.
8
- - When to use: `extend` for extra metadata; `isolate` when two subtrees need different implementations of one service name; `intercept` to merge service-specific config for plugins started below a context.
9
- - How: `isolate` joins scopes when passed the same `label` (default: fresh unique symbol); `intercept` config merges ancestor-entries-first via `Service[symbols.resolveConfig]`.
10
- - **Event dispatch API**: five modes, each with an exact method; mode is fixed per event.
11
- - When to use: never pick a mode — the event's declaration owns it; call the matching method.
12
- - How: `emit` (sync, returns ignored), `parallel` (await all), `serial` (await in order, first truthy bail wins), `bail` (sync serial), `waterfall` (last arg is innermost `next`; not calling it vetoes). `ctx.on(name, listener, options?)` registers; disposer returns `true` if the listener was still registered.
13
- - **Fiber lifecycle API**: `ctx.plugin()` returns `Fiber & PromiseLike<Fiber>` — awaiting it settles loading and rethrows config/startup errors.
14
- - When to use: `fiber.update(config, noSave?)` for live reconfig; `fiber.restart()` for reload with current config; `fiber.await()` to surface startup errors; `fiber.getEffects()` for diagnostics.
15
- - How: `update` runs the `internal/update` waterfall first — update hooks and HMR can veto or replace the restart.
16
- - **Registry injection**: `ctx.inject(deps, callback)` — shorthand for `ctx.plugin({ inject, apply: callback })`.
17
- - When to use: run-once-available logic without a named plugin.
18
- - How: callback is unloaded and re-run whenever a required service changes; `deps` is an array (no intercept config) or name→config map (per-service intercept config, normalized by `Inject.resolve`).
19
- - **Service store primitives**: `get`/`set`/`provide`/`accessor`/`mixin` on the reflect layer backing the proxy.
20
- - When to use: `provide` to register a plain value (not a `Service` subclass); `get(name, strict?)` for optional reads; `mixin` to expose service members directly on `ctx`.
21
- - How: all are fiber-owned — `provide`/`accessor`/`mixin` unwind with the owning fiber.
22
-
23
- ## Key Concepts
24
- - **Context proxy**: normal property reads go through the service resolver; scoping methods never mutate the parent.
25
- - **`ctx.root`**: the root context every child shares (`@experimental`).
26
- - **`fiber.uid`**: unique id within the registry; `0` for the root fiber, `null` once disposed.
27
- - **`fiber.inertia`**: the in-flight load/unload transition promise, if one is running.
28
- - **`fiber.store`**: snapshot of required service implementations while loaded; `undefined` otherwise.
29
- - **`Runtime`**: mutable registry record shared by all fibers of one plugin callback — `{name, fibers, callback, Config}`; `callback` is the registry identity key.
30
- - **`Effect`**: disposer, promise of one, or async iterable yielding several (generator effects register each yielded disposer as produced).
31
- - **`EffectMeta`**: `{label, children}` tree exposing nested effect labels for diagnostics (e.g. `ctx.on("event")`).
32
- - **`CordisError`**: framework error with stable code (`INACTIVE_EFFECT`); `ValidationError extends TypeError` aggregates standard-schema issues.
33
- - **Strict get**: `ctx.get` by default only returns implementations whose providing fiber is currently active.
34
-
35
- ## Mental Models
36
- - Think of the scope tree as: parent → `extend`/`isolate`/`intercept` children; service reads/writes below an `isolate(name)` resolve against the new label, so siblings never see each other's overrides.
37
- - Use `Plugin.Base` metadata (`name`, `Config`, `inject`, `provide`, `intercept`) when authoring any plugin shape — the registry and loaders (including HMR) read it uniformly.
38
- - Think of `ctx.events`/`ctx.registry`/`ctx.reflect` as ambient handles whose methods are mixed onto `ctx` itself (`ctx.on` → `ctx.events.on`, `ctx.plugin` → registry, `ctx.get` → reflect).
39
- - Use symbol-keyed static members (`Context.effect/filter/isolate/intercept`, `Service.init/check/config/invoke/extend/tracker/resolveConfig`) as the framework's extension sockets — e.g. `Context.filter` is consulted on every event dispatch, `Service.invoke` makes a service callable like `ctx.logger(name)`.
40
-
41
- ## Anti-patterns
42
- - **`instanceof Context` checks**: fails across realms and duplicate cordis copies — use `Context.is(value)` (global-symbol brand).
43
- - **`ctx.set` on a name you don't provide**: only the providing fiber may set; unprovided name throws. Duplicate `provide` in the same scope also throws (no sibling shadowing).
44
- - **Registering effects after dispose**: throws `CordisError('INACTIVE_EFFECT')`; invalid effect return shape throws `TypeError`.
45
- - **Ignoring `EventOptions.global`**: context listener filters apply on every dispatch — a scoped-out listener silently never fires unless `global: true`.
46
- - **Awaiting `fiber` but expecting config**: the awaited value is the fiber; read validated config from `fiber.config` (updated by `update()`).
47
-
48
- ## Code Examples
49
- ```ts
50
- // Scoping
51
- const child = ctx.extend({ locale: 'en' }) // prototypal inherit, meta shadows
52
- const scoped = ctx.isolate('shell', myLabel) // join scopes via same label
53
- const patched = ctx.intercept('tools', { timeout: 5e3 }) // merged into service config below
54
-
55
- // Service store
56
- ctx.provide('greeter', value): () => void // returns disposer
57
- ctx.get('greeter') // strict by default (active fibers only)
58
- ctx.get('greeter', false) // include inactive providers
59
- ctx.accessor('token', { get, set }) // computed ctx property
60
- ctx.mixin('events', ['on', 'emit']) // forward members onto ctx
61
-
62
- // Events
63
- ctx.on(name, listener, { prepend: true, global: true })
64
- ctx.once(name, listener) // self-disposes after first call
65
- await ctx.parallel(name, ...args) // Promise<void>, all settled
66
- await ctx.serial(name, ...args) // first truthy bail wins
67
- ctx.waterfall(name, ...args, innermostNext) // returns outermost listener's value
68
-
69
- // Fibers
70
- const fiber = ctx.plugin(MyPlugin, config) // Fiber & PromiseLike<Fiber>
71
- await fiber // rethrows startup/config errors
72
- fiber.update(newConfig, true) // internal/update waterfall, noSave hint
73
- fiber.restart() // dispose + reload current config
74
-
75
- // Plugin.Base metadata (any shape)
76
- { name?: string; Config?: StandardSchemaV1; inject?: Inject;
77
- provide?: string | string[]; intercept?: Dict<boolean> }
78
- ```
79
-
80
- ## Reference Tables
81
- Context members:
82
-
83
- | Member | Kind | Purpose |
84
- |---|---|---|
85
- | `ctx.root` | prop | root context (experimental) |
86
- | `ctx.baseUrl` | prop | resolve relative module specifiers |
87
- | `ctx.events` / `ctx.registry` / `ctx.reflect` | prop | event bus / plugin registry / service-resolver backing |
88
- | `ctx.logger` | prop | call `ctx.logger(name)` for named logger |
89
- | `ctx.fiber` | prop | the fiber owning this context |
90
- | `ctx.on/once` | method | disposable listener (opts: `prepend`, `global`) |
91
- | `ctx.emit/parallel/serial/bail/waterfall` | method | the five dispatch modes |
92
- | `ctx.plugin/inject` | method | load plugin / deps+callback shorthand |
93
- | `ctx.effect(body, label?)` | method | cleanup-aware effect on current fiber |
94
- | `ctx.get/set/provide/accessor/mixin` | method | service-store primitives |
95
- | `ctx.extend/isolate/intercept` | method | child-context scoping |
96
- | `ctx.timer` (+ `interval/timeout/throttle/debounce`) | mixed | disposable timer helpers (vendor timer) |
97
- | `ctx.loader` / `ctx.hmr` | service | present under loader / hmr plugins |
98
-
99
- Fiber members: `uid`, `ctx`, `config`, `state` (transitions emit `internal/status`), `dispose`, `store`, `inertia`, `name` (nearest named ancestor, else `'root'`); methods `assertActive()`, `effect()`, `getEffects()`, `await()`, `restart()`, `update()`.
100
-
101
- Inherited internal events (cordis core + loader/hmr/timer): `internal/plugin` (fiber created), `internal/status` (state change), `internal/service` (binding interception hook, no core producer), `internal/update` (config-update waterfall), `internal/get` / `internal/set` (store read/write waterfalls), `internal/listener`, `internal/dispatch`; `hmr/change`, `hmr/reload`; `exit`; `loader/config-update`, `loader/entry-init`, `loader/partial-dispose`, `loader/patch-context`.
102
-
103
- ## Key Takeaways
104
- 1. Dispatch mode is per-event and fixed: call the method that matches the declaration — `serial`'s "first truthy wins" is a bail, `waterfall`'s veto is skipping `next()`.
105
- 2. Isolation is label-joinable: two `isolate('name', label)` calls with the same label share one scope; visibility is ancestor/isolate shadowing only.
106
- 3. `provide` is duplicate-hostile within a scope and wakes dependents on unregister — service hot-swap is `dispose` + `provide` under the same name.
107
- 4. `intercept` config merges ancestor-first; declare consumption via `Plugin.Base.intercept` or the object form of `inject` so the context carries the entry.
108
- 5. Dispose semantics: reverse registration order, async disposers awaited but concurrent, double-dispose a no-op.
109
- 6. Diagnostics path: `fiber.getEffects()` → `EffectMeta` label tree; fiber state via `internal/status`; registry enumeration via `ctx.registry.values()` → `runtime.fibers`.
110
-
111
- ## Connects To
112
- - **Ch 4**: the conceptual primer for every API listed here.
113
- - **Ch 7**: which harness events/waterfalls to target with these APIs.
114
- - **Ch 13**: session-core subsystem services mounted through this registry.
115
- - **Ch 20**: regenerating/verifying the generated catalog (`gen-cordis-catalog`, `verify-cordis-catalog`).
@@ -1,109 +0,0 @@
1
- # Chapter 6: Architecture & Agent Lifecycle
2
-
3
- ## Core Idea
4
- A running dsh is a Cordis plugin tree composed at boot from ordered layers — bundles, then profile/home/CLI patches — with no privileged core: the model adapter, tool registry, session log, and agent loop itself are all replaceable plugins. The agent lifecycle is a durable session-event log projected into model history (`deriveMessages()`), driven by live waterfall events.
5
-
6
- ## Frameworks Introduced
7
- - **Profile**: a named composition stored in the Harness home; lists stacked bundles, holds out-of-tree plugins, keeps the user's `cordis.patch.yml`. Ships as templates: `web`, `headless`, `sdk`, `sdk-minimal`, `acp`.
8
- - When to use: selecting or composing an application shape without writing a new executable.
9
- - How: `dsh --profile <name>`; the profile's `package.json` `dsh.profile` field lists its bundles.
10
- - **Bundle**: a distribution format for Cordis config rows plus the code they mount — whatever it inserts stays patchable by layers above. `dsh-base` is the shared first layer of `web`/`headless`/`sdk`/`acp` (model adapters, tools, persistence, sandbox and approval policy, settings, credentials, telemetry); `dsh-web-app`, `dsh-headless` (one-shot, no server), `dsh-sdk-app` (SDK JSON-RPC), `dsh-acp-app` (automation-only ACP) add app shells; `dsh-sdk-minimal` is the deliberate exception owning a complete explicit SDK tree without `dsh-base`.
11
- - When to use: shipping a stackable layer of plugins + config.
12
- - How: `dsh.bundle` in `package.json` points at the bundle's patch file.
13
- - **Layer order**: empty entry list ← each bundle in listed order ← profile `cordis.patch.yml` ← home-level patch ← `--patch` overlay. A patch targets a row by id, replaces its whole config, or inserts new rows.
14
- - **Turn/Step model**: a **step** = one model request plus the tools it calls; a **turn** = zero or more steps, opening before its first input is claimed and closing once nothing is owed.
15
- - **Vendor rescope**: upstream Cordis-family packages vendored under `vendor/` and published as `@deepseek-ai/*`, because every harness package declares the framework as a peer — publishing under upstream names would squat them on the registry.
16
-
17
- ## Key Concepts
18
- - **Live patch reload**: custom profiles and `web` reload patches live; `headless`/`sdk`/`sdk-minimal`/`acp` apply all layers once at startup — swapping a one-shot or stdio app's dependencies after it owns work would invalidate that lifecycle.
19
- - **Launcher invariant**: every supported Node app starts at the `dsh` CLI with a named profile (`dsh web` = the alias for `--profile web`); `verify-application-entrypoints` rejects Node app paths that bypass `dsh`. The TS SDK resolves its same-version `dsh` dependency and selects `sdk`.
20
- - **Python SDK runtime**: wheel packages the CLI as `deepseek-harness-sdk-runtime-<platform>-<arch>`; client launches `dsh --profile sdk` with an explicit home; minimal example uses `sdk-minimal`; plugins install via `dsh plugin`.
21
- - **Event domains**: Session events = durable facts on `session/event` (survive reload); Agent events (`agent/*`) = live control/observation carrying an `Agent`; Capability events (`fs/*`, `tools/*`, `telemetry/*`) = policy and adapters at a seam, without importing the loop.
22
- - **Waterfall vs serial**: `agent/pre-step`, `agent/request`, `llm/stream`, and the three `tools/*` events are waterfalls — listeners must call `next()` to delegate; `agent/turn-stopping` is serial with no `next()`.
23
- - **Durable vs live streaming**: `agent/assistant-stream` frames are process-local; the loop commits the complete compact timed stream as `assistant/message` or log-only `assistant/attempt` before the committed end frame. Replay reads durable settlements only; process loss before settlement leaves no durable attempt stream.
24
- - **Model-visible means logged**: anything reaching a model request must be reconstructable from the log (runtime invariant) — new model-visible input ⇒ new session event via `SessionEventMap`, rendered from the log.
25
- - **Session format generations**: v0 `session.jsonl[.zstd]`; v1+ lowercase `session.vN.jsonl[.zstd]`; committed generation paths are never renamed, replaced, or deleted. `open` picks the highest canonical generation, refuses future versions, or composes the adjacent migration chain in memory, validates, and exclusively publishes the version-named successor beside the unchanged source; each migration package owns exactly one `vN -> vN+1` step.
26
- - **Projection seam**: `ctx.sessionProjections` — registered units fold committed events; hosts read typed `stateOf()`, carriers batch cropped `snapshot()` views; a host reader requires the service at activation or fails explicitly. The loop registers shared `turnBoundary` state.
27
-
28
- ## Mental Models
29
- - Use `--dump-config` as the map of what your machine boots: any row it prints can be replaced by a patch — later layers restate whole rows by id, never merge fields.
30
- - Think of the turn as a claims loop: one inbox, wake-on-message; next-step input is claimed per step, and injected context waits in the inbox until another message wakes the driver.
31
- - Treat the session log as the only source of model context: fork, resume, transcripts, telemetry, and persistence all derive from durable settlements; live UI incrementality comes from `agent/assistant-stream`.
32
-
33
- ## Anti-patterns
34
- - **Patching a privileged core**: there is none — mount a plugin beside the others; registrations are effects that unwind when their plugin unloads.
35
- - **Adding a second executable or inline application tree**: not an application launcher; the entrypoint verification gate rejects it.
36
- - **New model-visible input without a session event**: breaks the log-reconstructability invariant.
37
- - **Rebuilding a pre-step decision instead of spreading it**: `{ ...decision, messages }` — otherwise a downstream `startsRequestSeries` declaration is lost. A rejected or empty first claim still closes a durable turn that spent no step, so the log records the attempt.
38
- - **Renaming vendored imports by hand**: `scripts/rescope-vendor.ts` owns the mapping; hand edits drift from it.
39
-
40
- ## Code Examples
41
- ```sh
42
- dsh --profile web --dump-config # print the booted plugin tree; every row is patchable
43
- ```
44
- Turn-flow spine (D = durable session event, L = live):
45
- ```text
46
- turn/start(D) → claim next-step input + one queued message →
47
- agent/pre-step(L; reject | enter(messages, startsRequestSeries?)) →
48
- step/start(D) → user/message(D) → agent/request(L) → llm/stream(L) →
49
- agent/assistant-stream start/chunk*/end(L) →
50
- assistant/message(D) | assistant/attempt(D) →
51
- tool/call*(D) → tools/pre-execute → tools/execute → tools/post-execute → tool/result*(D) →
52
- step/end(D) → agent/turn-stopping(L; serial, no next()) → turn/end(D)
53
- ```
54
- Rescope tooling:
55
- ```sh
56
- pnpm run rescope-vendor # report what would change
57
- pnpm run rescope-vendor --apply # rewrite every reference
58
- pnpm run rescope-vendor:check # assert post-state; runs in the hygiene gate
59
- pnpm run rescope-vendor --apply --reverse # return to upstream names
60
- ```
61
- Import rename: `import { Context } from 'cordis'` → `'@deepseek-ai/cordis'`; `declare module 'cordis'` → `declare module '@deepseek-ai/cordis'`. After upstream sync: re-apply rescope, then `pnpm install`, `pnpm run gen-third-party-notices`, `pnpm run verify-translation-pairing --write`.
62
-
63
- ## Reference Tables
64
- Core packages:
65
- | Package | Owns | `ctx` key |
66
- |---|---|---|
67
- | `core/session` | append-only `SessionEvent` log + store | `ctx.sessions` |
68
- | `core/system-prompt` | prompt-section + tool-schema assembly | `ctx.systemPrompt` |
69
- | `core/tools` | tool registry + guarded execution | `ctx.tools` |
70
- | `core/agent` | `Agent` interface, registry, `agent/*` events | `ctx.agents` |
71
- | `core/agent-loop` | default driver | `ctx.agentLoop` |
72
- | `core/scope` | per-agent scoped registration | library, no key |
73
- | `llm/llm` | stream vocabulary + adapter seam | `ctx.llm` |
74
- | `webhook/webhook` | authenticated dispatch + Session creation | `ctx.webhookRuntime` |
75
-
76
- Where new behavior goes (selected):
77
- | Goal | Mechanism |
78
- |---|---|
79
- | Model provider | adapter on `ctx.llm` |
80
- | Model-facing capability | register on `ctx.tools`; schema joins prompt assembly |
81
- | Per-session capability set | agent preset; a service row there needs an `isolate` realm |
82
- | Shell execution | `ctx.shell` backend; local one spawns through `ctx.subprocess` |
83
- | Intercept request/tool/turn | `agent/*` or `tools/*` event; `agent/turn-stopping` stops a turn |
84
- | Model-facing context | `agent.inject()`; lands in the next admitted request |
85
- | Durable session state | extend `SessionEventMap`; render and replay from the log |
86
- | Fork at turn boundary | `ctx.agents.create({ sessionId, seed, meta: { parentSession, seedLength } })` — only agent-loop-published sessions persist |
87
- | New session backend | implement `SessionPersistence` (`create`/`open`/`stat`/`list`/`export`) |
88
- | Scope to one agent | that agent's `agent.ctx` |
89
-
90
- Vendored name mapping (subpath exports keep their path): `cordis` → `@deepseek-ai/cordis` (4.0.0-rc.7) · `cosmokit` (1.8.1) · `schemastery` (3.18.0) · `@cordisjs/plugin-loader` → `@deepseek-ai/cordis-plugin-loader` (1.0.0-rc.5) · plugin-include/group/timer/hmr/logger-console (1.0.4/1.0.0/1.1.2/1.0.15/1.0.0) → `@deepseek-ai/cordis-plugin-*`. Never touched: dependency ranges (key changes, range stays), the `cordis:` builtin prefix, the `cordis.yml` family, upstream runtime identifiers (`Symbol.for('schemastery')`, `vendor:`), prose outside `docs/`.
91
-
92
- Doc graph atlas (relationships the catalogs don't show; exact signatures live in subsystem pages): module-graph and tool-catalog (`generated`); capability-seams, dsh-base composition, event-producer-consumer (`hybrid generated`); agent-lifecycle and tool-execution-pipeline (`curated`). Regenerate `pnpm run gen-doc-graphs`; verify `pnpm run verify-doc-graphs`.
93
-
94
- ## Key Takeaways
95
- 1. Extend by mounting plugins and patching rows by id — never by forking a core; later layers restate whole rows.
96
- 2. Inspect before composing: `--dump-config` prints every replaceable row your machine boots.
97
- 3. Route facts by domain: durable facts → session events; live control → `agent/*`; capability policy → capability events.
98
- 4. Waterfall listeners must call `next()`; pre-step decisions are authoritative — spread them, don't rebuild them.
99
- 5. Anything model-visible must be logged: extend `SessionEventMap` and render from the log; live streams are transient.
100
- 6. Don't rely on patch reload under one-shot profiles (`headless`/`sdk`/`sdk-minimal`/`acp` apply layers once).
101
- 7. After a vendor sync, rescope via script and run the regenerations it prints.
102
-
103
- ## Connects To
104
- - **Ch 4**: Cordis primitives (Context, Service, events) the plugin tree is built from.
105
- - **Ch 7**: the full seam catalog behind "where new behavior goes".
106
- - **Ch 8**: tool-execution pipeline and turn-flow internals.
107
- - **Ch 13/14**: session and agent-loop subsystems in depth.
108
- - **Ch 2**: plugin-basics mechanics of bundles and patch rows.
109
- - **Ch 20**: dev gates (`verify-application-entrypoints`, `rescope-vendor:check`).
@@ -1,97 +0,0 @@
1
- # Chapter 7: Capability Seams
2
-
3
- ## Core Idea
4
- A seam is a swappable capability with three roles — a **Service Definition** declaring the interface, a **Service Provider** implementing it, and a **Consumer** using it (commonly a model-facing tool); one role alone is not a seam, and adding a capability means designing all three. Because filesystem and subprocess providers share one execution world, one provider swap — e.g. to a remote sandbox — moves Bash, PTY, and LSP with it, with no provider forks.
5
-
6
- ## Frameworks Introduced
7
- - **Three-role seam (Definition / Provider / Consumer)**: the unit of extensibility.
8
- - When to use: any capability that should be swappable — LLM, fs, shell, sandbox, storage, subagents, web, skills.
9
- - How: declare the interface as a Cordis service; providers register implementations into it; keep consumers provider-neutral.
10
- - **Service classification (`core` / `seam` / `bundle`)**: every `ctx` service carries a Role in the capability graph — `core` = spine with one owner (project onto it, don't replace it), `seam` = swappable with named implementations, `bundle` = composition point (only `ctx.agentLoop`).
11
- - **Execution world**: `ctx.fs` + `ctx.subprocess` + `ctx.sandbox` (+ `ctx.e2b`, one shared E2B SDK handle so both E2B providers inhabit the same Linux runtime) move together; swap the set, not one package.
12
- - **Companion plugin / event gate**: policy contributed via events instead of a provider — `fs-observation-policy` adds observed-state checks through the `fs/*` gate without replacing `ctx.fs`; `spill-policy` decides spilling at `tools/post-execute` while `ctx.spillStore` just saves.
13
-
14
- ## Key Concepts
15
- - **Sole-provider seam**: exactly one optional async provider allowed (`ctx.sessionTitle`: first-prompt-llm or all-prompts-llm), with the deterministic fallback owned by the seam itself.
16
- - **Named side-by-side providers**: backends register under names in one registry (`ctx.storage` json/sqlite; `ctx.llm`; `ctx.web`).
17
- - **Single-engine service**: no provider registry at all — `ctx.workflowEngine` is one engine per context.
18
- - **Provider-neutral tool**: model-facing tools consume the seam, never an implementation (`tool-web` owns the stable model-facing names over `ctx.web` providers; `tool-bash`/`tool-pwsh` over `ctx.shell`).
19
- - **Remote controller**: API controllers (`ctx.sessionController`, `ctx.settingsController`, `ctx.workspaceController`, `ctx.credentialsController`, `ctx.directoryPickerController`) project seams onto the generated Remote namespace — redaction and refusal classification live in the controller, not the seam Definition.
20
- - **Fails-closed approval**: `ctx.approval` dispatches one-shot decisions over the `approval/request` waterfall; answerers are listeners (the ACP bridge for its own agents); absence fails closed to `unavailable`.
21
- - **Per-operation credential resolution**: config carries references, providers own values (`ctx.credentials`); a rotated credential reaches the very next request; views are value-free, storage write-only.
22
- - **`ctx.invariants`**: companion subpaths register owner-local checks; the service owns selection, uniqueness, child fibers, package-attributed failures.
23
-
24
- ## Mental Models
25
- - Use a seam when two or more implementations are plausible (local vs sandbox vs remote); use `core` when the service is a spine others project onto.
26
- - Think of providers as replaceable behind one interface, with tools as the stable model-facing names layered on top.
27
- - Think of controllers as projection layers: the seam stays wire-free; redaction/refusal mapping never leaks into the Definition.
28
-
29
- ## Anti-patterns
30
- - **Depending on `ctx.agentLoop`**: it is the one `bundle`-role concrete loop plugin; extension packages depend on `dsh-agent` events and services, not this package.
31
- - **Expecting a provider registry where there is none**: `ctx.workflowEngine` is a single engine — don't design "workflow providers".
32
- - **Adding a protocol escape hatch**: `ctx.lsp` exposes exactly four normalized operations; a backend translates into the normalized request/result, no raw-protocol bypass.
33
- - **Shipping a provider without Definition and Consumer**: one role alone is not a seam.
34
- - **Assuming approval defaults open**: no answerer = `unavailable` (fail closed), never auto-allow.
35
- - **Reading sandbox mode ad hoc**: `ctx.sandboxPolicy` is the one home for deployment default mode + workspace root, read by both bash and fs enforcing families precisely so they cannot confine to different roots.
36
-
37
- ## Code Examples
38
- Consumer → seam → provider wiring (from the capability graph):
39
- ```text
40
- ctx.llm: [llm-deepseek, llm-pi-ai, llm-replay] → seam → [agent-loop, compaction-basic]
41
- ctx.subprocess: [subprocess-local, subprocess-e2b] → seam → [bash-local, bash-sandbox, terminal-bash, lsp-stdio, subagent-acp/codex/claude-code]
42
- ctx.fs: [fs-local, fs-sandbox, fs-e2b] → seam → [tool-fs] (+ fs-observation-policy via fs/* event gate)
43
- ctx.shell: [bash-local, bash-sandbox, pwsh-local] → seam → [tool-bash, tool-pwsh, hooks-claude-code, hooks-codex]
44
- ```
45
-
46
- ## Reference Tables
47
- Seam-selection decision table:
48
- | Want to… | Seam | Implementations | Rule / limit |
49
- |---|---|---|---|
50
- | Swap LLM provider | `ctx.llm` | llm-deepseek, llm-pi-ai, llm-replay | loop + compaction call the provider-neutral stream service |
51
- | Extend official DeepSeek requests | `ctx.deepseekLlmApiExtensions` | session-log-deepseek, plugin-package-inventory-deepseek | plugins prepare independent top-level fields; official adapter merges and commits delivery state after HTTP acceptance |
52
- | Replace bash executor | `ctx.shell` | bash-local, bash-sandbox, pwsh-local | tools + hook bridges untouched by the swap |
53
- | Relocate process spawning | `ctx.subprocess` | subprocess-local, subprocess-e2b | service owns process coordinates, tree/session lifetime, stdio, kill escalation |
54
- | Swap filesystem | `ctx.fs` | fs-local, fs-sandbox, fs-e2b | fs-sandbox fences by shared sandbox mode; observation via `fs/*` gate |
55
- | Confine spawns | `ctx.sandbox` | sandbox-local | consumers hand over the exact argv; backends wrap per-call and report enforcement |
56
- | Gate permissions | `ctx.approval` | listeners (ACP bridge) | `approval/request` waterfall; fails closed to `unavailable`; `ctx.permissionPresets` bundles sandbox-mode + approval-policy knobs |
57
- | Persist sessions | `ctx.sessionPersistence` | session-persistence-jsonl | one artifact per Session |
58
- | Search sessions | `ctx.sessionQuery` | session-query-sqlite | interface = exact reads/filters/traces; backend adds full-text, ranking, snippets |
59
- | Store typed state | `ctx.storage` → `ctx.storageDomain` | storage-json, storage-sqlite | backends side by side under names; domain form waits for every configured backend |
60
- | Read/write settings | `ctx.settings` | settings-file | plugins register namespace schemas, resolve layered values; provider stores the raw document |
61
- | Resolve secrets | `ctx.credentials` | credentials-local | references in config; resolve per operation |
62
- | Delegate work | `ctx.subagents` | spawn/fork-in-process, acp, codex, claude-code, dsh-sdk | service owns continuation orchestration; tool-subagent picks one-shot vs continuable; tool-ralph requires one fresh structured-output route |
63
- | Run background work | `ctx.jobs` | jobs-local | producers register; tool-jobs is the model-facing controller |
64
- | Search/fetch the web | `ctx.web` | web-search-exa/perplexity/deepseek, web-fetch-http | tool-web owns model-facing names |
65
- | Run model-written code | `ctx.codeRuntime` | code-runtime-worker-thread, experimental-code-runtime-python | consumed by `ctx.tools` for PTC mode |
66
- | Compact context | `ctx.compaction` | compaction-basic | consumes post-step pressure + request-error recovery; no model-facing compact tool |
67
- | Spill oversized output | `ctx.spillStore` | spill-local | returns model-facing locator + retrieval hint; spill-policy decides when |
68
- | Language servers | `ctx.lsp` | lsp-stdio | exactly four operations, no escape hatch |
69
- | Run workflows | `ctx.workflowEngine` | workflow-worker-thread | one engine per context; `agent()` fans out through `ctx.subagents` |
70
- | Name sessions | `ctx.sessionTitle` | first-prompt-llm / all-prompts-llm | sole optional async provider; deterministic fallback + latest-title fold owned by seam |
71
- | Ask a human | `ctx.userQuestions` | UI front ends | tool-ask-user pauses on the provider-neutral `ask()` promise |
72
- | Pick directories | `ctx.directoryPicker` | native, browse | dual-face backends fill ui-workspace directory-flow slots from browser halves |
73
- | Emit telemetry | `ctx.sessionTelemetry` | session-telemetry-otel | nothing else consumes it — output leaves the process |
74
- | Authorize / telemetry / attachments | `ctx.authorization` / `ctx.sessionTelemetry` / `ctx.attachments` | — / otel / attachment-local | authorization owns the conversation + one-attempt-per-key lifecycle, never the protocol; telemetry output leaves the process; host commits images before session events |
75
-
76
- Core spine services (one owner, not swappable): `ctx.sessions`, `ctx.systemPrompt`, `ctx.tools`, `ctx.agents`, `ctx.agentDefaultModel`, `ctx.sessionProjections`(+`Cache`), `ctx.planMode`, `ctx.agentPresets`, `ctx.goals`, `ctx.messageFeedback`, `ctx.workspaceRegistry`, `ctx.webServer`, `ctx.clientModules`, `ctx.webhookRuntime`, `ctx.typert`(+`Gateway`), `ctx.invariants`, `ctx.inspector`, `ctx.dynamicCordisRunner`/`cordisInspect`, `ctx.e2b`, `ctx.shellEnv`, `ctx.agentTeams` (experimental), API controllers.
77
-
78
- Exclusivity & collision rules: sole-provider seams take one registration (`sessionTitle`); registries take named side-by-side providers (`storage`, `llm`, `web`, `skills`); single-engine services take none (`workflowEngine`); approval answerers are event listeners, not registrations.
79
-
80
- Maintenance: the capability graph is `hybrid generated` — services are discovered from Cordis declarations; Definition/implementation/consumer roles are classified in `scripts/gen-doc-graphs.ts` with a completeness guard.
81
-
82
- ## Key Takeaways
83
- 1. Design Definition + Provider + Consumer together; a provider alone is not a seam.
84
- 2. Swap at the seam, not at the tool: tools own stable model-facing names over swappable providers.
85
- 3. Check the Role column first — `core` services are spines to consume/project onto, `bundle` (`ctx.agentLoop`) is depended on by nobody.
86
- 4. Prefer event-gate companions (`fs/*`, `tools/post-execute`) for policy that should not fork providers.
87
- 5. Keep seams wire-free: redaction, refusal mapping, and capability gating live in the Remote controllers.
88
- 6. Execution-world seams move together; read confinement config only from `ctx.sandboxPolicy`.
89
-
90
- ## Connects To
91
- - **Ch 6**: architecture and lifecycle these seams hang off; the three-role definition.
92
- - **Ch 8**: pipelines that fire the `tools/*` events companions listen to.
93
- - **Ch 11**: tool catalog — the Consumer role made concrete.
94
- - **Ch 12**: persistence seams (`sessionPersistence`, `storage`, `spill`) in depth.
95
- - **Ch 13–17**: subsystem deep-dives per seam domain (session, agent loop, tool execution, session data, LLM streaming).
96
- - **Ch 3**: how plugin code actually registers providers and companions.
97
- - **Ch 19**: cookbook recipes mapped onto these seams.