super-dsh 0.1.12 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (856) hide show
  1. package/README.md +50 -13
  2. package/agent-agy/dist/world-plugin.d.ts +1 -1
  3. package/agent-agy/dist/world-plugin.js +14 -27
  4. package/agent-agy-sdk/dist/world-plugin.d.ts +1 -1
  5. package/agent-agy-sdk/dist/world-plugin.js +14 -27
  6. package/agent-codex/dist/world-plugin.js +14 -27
  7. package/agent-codex-sdk/dist/world-plugin.js +14 -43
  8. package/agent-hermes/dist/world-plugin.js +14 -27
  9. package/agent-omp/dist/world-plugin.js +14 -39
  10. package/agent-omp/lib/client/index.js +258 -0
  11. package/agent-omp-sdk/dist/world-plugin.d.ts +1 -1
  12. package/agent-omp-sdk/dist/world-plugin.js +14 -43
  13. package/agent-pi/dist/world-plugin.js +14 -27
  14. package/bundles/better-dsh.tgz +0 -0
  15. package/bundles/manifest.json +10 -0
  16. package/client/index.js +434 -307
  17. package/cordis.patch.yml +7 -16
  18. package/node_modules/better-dsh/LICENSE +24 -0
  19. package/node_modules/better-dsh/README.md +323 -0
  20. package/node_modules/better-dsh/THIRD_PARTY_NOTICES.md +52 -0
  21. package/node_modules/better-dsh/cordis.patch.yml +139 -0
  22. package/node_modules/better-dsh/docs/00_adr/0001-bridge-tool-layer-not-service-layer.md +14 -0
  23. package/node_modules/better-dsh/docs/00_adr/0002-masking-is-presentation-only.md +15 -0
  24. package/node_modules/better-dsh/docs/10_plans/2026-09-23-remote-execution-framework.md +236 -0
  25. package/node_modules/better-dsh/docs/10_plans/2026-09-23-remote-framework-impl.md +2083 -0
  26. package/node_modules/better-dsh/docs/10_plans/2026-09-26-lsp-ast-reminder.md +64 -0
  27. package/node_modules/better-dsh/docs/10_plans/A2A-messaging-channel-test-archive.md +256 -0
  28. package/node_modules/better-dsh/docs/10_plans/code-mode-vs-rlm-ipython-comparison.md +137 -0
  29. package/node_modules/better-dsh/docs/10_plans/dashr-blueprint-review.md +201 -0
  30. package/node_modules/better-dsh/docs/10_plans/dashr-blueprint.md +561 -0
  31. package/node_modules/better-dsh/docs/10_plans/dashr-compaction-window-and-archive.md +307 -0
  32. package/node_modules/better-dsh/docs/10_plans/dashr-profile-layer-feasibility.md +367 -0
  33. package/node_modules/better-dsh/docs/10_plans/dashr-sandbox-escalation-semantics-gap.md +171 -0
  34. package/node_modules/better-dsh/docs/10_plans/dashr-security-sandbox-analysis.md +187 -0
  35. package/node_modules/better-dsh/docs/10_plans/dashr-surface-invariant-and-omp-imports.md +97 -0
  36. package/node_modules/better-dsh/docs/10_plans/ipython-kernel-interactive-interface-test-report.md +152 -0
  37. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft.md +146 -0
  38. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft_v3.md +50 -0
  39. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft_v4.md +79 -0
  40. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-vs-PrimeAgent-systemprompt-toolcatalog-comparison.md +138 -0
  41. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/RLM-system-prompt-injection-gap-report.md +161 -0
  42. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/V0.1.5-development-plan.md +109 -0
  43. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/actinoable-surface-to-llm-in-agent-runtime_dsh.md +50 -0
  44. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/actinoable-surface-to-llm-in-agent-runtime_prime.md +113 -0
  45. package/node_modules/better-dsh/docs/10_plans/recallable-compaction.md +147 -0
  46. package/node_modules/better-dsh/docs/10_plans/spike-tag-repro.mjs +102 -0
  47. package/node_modules/better-dsh/docs/10_plans/upstream-analysis.md +128 -0
  48. package/node_modules/better-dsh/docs/20_specs/agent/spec.md +54 -0
  49. package/node_modules/better-dsh/docs/20_specs/ast/spec.md +57 -0
  50. package/node_modules/better-dsh/docs/20_specs/compaction-recall/spec.md +46 -0
  51. package/node_modules/better-dsh/docs/20_specs/ctx/spec.md +107 -0
  52. package/node_modules/better-dsh/docs/20_specs/dsh/spec.md +47 -0
  53. package/node_modules/better-dsh/docs/20_specs/dvc/spec.md +106 -0
  54. package/node_modules/better-dsh/docs/20_specs/escalation-guidance/spec.md +44 -0
  55. package/node_modules/better-dsh/docs/20_specs/fs-scheme-resolution/spec.md +37 -0
  56. package/node_modules/better-dsh/docs/20_specs/hash-edit/spec.md +41 -0
  57. package/node_modules/better-dsh/docs/20_specs/http-read/spec.md +73 -0
  58. package/node_modules/better-dsh/docs/20_specs/kernel-provisioning/spec.md +53 -0
  59. package/node_modules/better-dsh/docs/20_specs/lsp/spec.md +121 -0
  60. package/node_modules/better-dsh/docs/20_specs/mobile-layout/spec.md +108 -0
  61. package/node_modules/better-dsh/docs/20_specs/model-failover/spec.md +20 -0
  62. package/node_modules/better-dsh/docs/20_specs/plugins-page-components/spec.md +79 -0
  63. package/node_modules/better-dsh/docs/20_specs/preact-ui-shell/spec.md +22 -0
  64. package/node_modules/better-dsh/docs/20_specs/repl-dispatch-resilience/spec.md +21 -0
  65. package/node_modules/better-dsh/docs/20_specs/skill/spec.md +58 -0
  66. package/node_modules/better-dsh/docs/20_specs/tool-surface/spec.md +222 -0
  67. package/node_modules/better-dsh/docs/20_specs/url-schema/spec.md +148 -0
  68. package/node_modules/better-dsh/docs/20_specs/web-trust-fence/spec.md +43 -0
  69. 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 +176 -0
  70. 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 +226 -0
  71. 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 +222 -0
  72. 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 +81 -0
  73. 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 +234 -0
  74. 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 +160 -0
  75. 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 +44 -0
  76. 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 +89 -0
  77. 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 +198 -0
  78. 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 +246 -0
  79. 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 +50 -0
  80. 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 +63 -0
  81. 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 +76 -0
  82. 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 +76 -0
  83. 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 +134 -0
  84. 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 +92 -0
  85. 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 +125 -0
  86. 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 +207 -0
  87. 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 +65 -0
  88. 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 +53 -0
  89. 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 +155 -0
  90. 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 +105 -0
  91. 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 +62 -0
  92. 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 +137 -0
  93. 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 +38 -0
  94. 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 +325 -0
  95. 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 +185 -0
  96. 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 +82 -0
  97. 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 +101 -0
  98. 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 +54 -0
  99. 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 +447 -0
  100. 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 +63 -0
  101. 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 +82 -0
  102. 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 +220 -0
  103. 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 +151 -0
  104. package/node_modules/better-dsh/docs/50_test-reports/2026-10-06-authentication-only-web-admission-4999.md +63 -0
  105. package/node_modules/better-dsh/docs/50_test-reports/2026-10-07-better-dsh-welcome-self-contained-4999.md +52 -0
  106. 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 +110 -0
  107. package/node_modules/better-dsh/docs/50_test-reports/kernel-provisioning.md +44 -0
  108. package/node_modules/better-dsh/docs/50_test-reports/repl-kernel-provisioning-test-report.md +87 -0
  109. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.2-alpha.5-local-test-report.md +81 -0
  110. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.2-alpha.5-report.md +93 -0
  111. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.3-alpha.2-local-test-report.md +44 -0
  112. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.3-alpha.2-report.md +110 -0
  113. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.5-rc.2-local-test-report.md +79 -0
  114. 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 +142 -0
  115. 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 +193 -0
  116. 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 +96 -0
  117. 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 +127 -0
  118. 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 +150 -0
  119. 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 +224 -0
  120. 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 +168 -0
  121. 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 +123 -0
  122. 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 +110 -0
  123. 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 +86 -0
  124. 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 +66 -0
  125. 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 +67 -0
  126. 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 +136 -0
  127. package/node_modules/better-dsh/docs/50_test-reports/v0.2.1ef-dev-audit-report.md +73 -0
  128. 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 +102 -0
  129. 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 +73 -0
  130. 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 +47 -0
  131. 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 +158 -0
  132. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/SKILL.md +147 -0
  133. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch01-user-guide.md +123 -0
  134. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch02-plugin-basics.md +127 -0
  135. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch03-plugin-framework-practice.md +120 -0
  136. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch04-cordis-fundamentals.md +129 -0
  137. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch05-cordis-api.md +115 -0
  138. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch06-architecture.md +109 -0
  139. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch07-capability-seams.md +97 -0
  140. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch08-internals-pipelines.md +111 -0
  141. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch09-api-gateway.md +106 -0
  142. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch10-config-catalog.md +97 -0
  143. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch11-tool-catalog.md +121 -0
  144. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch12-persistence-catalog.md +109 -0
  145. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch13-subsystems-core-session.md +106 -0
  146. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch14-subsystems-agent-loop.md +111 -0
  147. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch15-subsystems-tool-execution.md +106 -0
  148. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch16-subsystems-session-data.md +132 -0
  149. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch17-subsystems-llm-streaming.md +128 -0
  150. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch18-subsystems-web-ui.md +142 -0
  151. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch19-cookbook.md +149 -0
  152. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch20-development-testing.md +87 -0
  153. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch21-postmortems.md +82 -0
  154. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch22-i18n.md +86 -0
  155. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/cheatsheet.md +67 -0
  156. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/glossary.md +57 -0
  157. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/patterns.md +88 -0
  158. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/AGENTS.md +75 -0
  159. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/agent-lifecycle.md +84 -0
  160. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/agent-lifecycle.zh.md +86 -0
  161. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/api-gateway.md +164 -0
  162. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/api-gateway.zh.md +164 -0
  163. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/architecture.md +150 -0
  164. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/architecture.zh.md +154 -0
  165. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/capability-seams.md +543 -0
  166. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/capability-seams.zh.md +545 -0
  167. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/config-catalog.md +3473 -0
  168. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/config-catalog.zh.md +3474 -0
  169. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-package.md +117 -0
  170. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-package.zh.md +119 -0
  171. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-remote-api.md +197 -0
  172. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-remote-api.zh.md +197 -0
  173. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-settings-card.md +102 -0
  174. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-settings-card.zh.md +102 -0
  175. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-tool.md +101 -0
  176. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-tool.zh.md +103 -0
  177. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-vendored-package.md +59 -0
  178. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-vendored-package.zh.md +59 -0
  179. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-an-llm-adapter.md +43 -0
  180. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-an-llm-adapter.zh.md +43 -0
  181. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/extension-cookbook.md +132 -0
  182. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/extension-cookbook.zh.md +136 -0
  183. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/maintaining-dsh-code-review.md +64 -0
  184. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/maintaining-dsh-code-review.zh.md +64 -0
  185. 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 +32 -0
  186. 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 +32 -0
  187. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/context.md +364 -0
  188. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/context.zh.md +366 -0
  189. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/events.md +207 -0
  190. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/events.zh.md +209 -0
  191. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/fiber.md +375 -0
  192. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/fiber.zh.md +377 -0
  193. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/inherited.md +39 -0
  194. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/registry.md +152 -0
  195. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/registry.zh.md +154 -0
  196. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/service.md +102 -0
  197. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/service.zh.md +104 -0
  198. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-primer.md +45 -0
  199. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-primer.zh.md +51 -0
  200. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/01-first-plugin.md +95 -0
  201. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/01-first-plugin.zh.md +95 -0
  202. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/02-lifecycle-and-effects.md +98 -0
  203. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +98 -0
  204. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/03-services.md +98 -0
  205. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/03-services.zh.md +98 -0
  206. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/04-events.md +144 -0
  207. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/04-events.zh.md +144 -0
  208. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/05-config.md +84 -0
  209. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/05-config.zh.md +84 -0
  210. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/06-composition-and-hmr.md +113 -0
  211. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/06-composition-and-hmr.zh.md +113 -0
  212. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/07-into-the-harness.md +108 -0
  213. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/07-into-the-harness.zh.md +108 -0
  214. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/index.md +60 -0
  215. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/index.zh.md +62 -0
  216. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/deepseek-llm-api-wire-extensions.md +163 -0
  217. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/deepseek-llm-api-wire-extensions.zh.md +163 -0
  218. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/defensive-patterns.md +33 -0
  219. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/defensive-patterns.zh.md +35 -0
  220. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/development.md +167 -0
  221. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/development.zh.md +173 -0
  222. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/event-producer-consumer.md +86 -0
  223. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/event-producer-consumer.zh.md +88 -0
  224. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/glossary.md +45 -0
  225. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/glossary.zh.md +45 -0
  226. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/graph-atlas.md +22 -0
  227. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/graph-atlas.zh.md +24 -0
  228. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/README.md +60 -0
  229. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/README.zh.md +62 -0
  230. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/style-samples.md +87 -0
  231. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/terminology.md +214 -0
  232. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-prompt.md +263 -0
  233. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-rules.md +69 -0
  234. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-rules.zh.md +69 -0
  235. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/module-graph.md +1411 -0
  236. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/module-graph.zh.md +1413 -0
  237. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/persistence-catalog.md +1075 -0
  238. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/persistence-catalog.zh.md +1077 -0
  239. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0001-acp-default-export-drops-inject.md +113 -0
  240. 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 +113 -0
  241. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +47 -0
  242. 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 +47 -0
  243. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0003-web-agent-gui-feedback-loop.md +53 -0
  244. 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 +53 -0
  245. 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 +55 -0
  246. 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 +55 -0
  247. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/README.md +18 -0
  248. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/README.zh.md +18 -0
  249. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/rescope.md +53 -0
  250. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/rescope.zh.md +53 -0
  251. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/README.md +61 -0
  252. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/README.zh.md +61 -0
  253. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/agent-team.md +207 -0
  254. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/agent-team.zh.md +207 -0
  255. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/approval.md +170 -0
  256. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/approval.zh.md +170 -0
  257. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/attachment.md +351 -0
  258. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/attachment.zh.md +351 -0
  259. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/client-modules.md +168 -0
  260. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/client-modules.zh.md +168 -0
  261. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/code-runtime.md +195 -0
  262. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/code-runtime.zh.md +195 -0
  263. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/commands.md +219 -0
  264. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/commands.zh.md +219 -0
  265. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/compaction.md +238 -0
  266. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/compaction.zh.md +238 -0
  267. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/conversation.md +258 -0
  268. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/conversation.zh.md +258 -0
  269. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/core.md +1209 -0
  270. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/core.zh.md +1219 -0
  271. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/credentials.md +329 -0
  272. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/credentials.zh.md +329 -0
  273. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/extensions.md +382 -0
  274. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/extensions.zh.md +382 -0
  275. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/feedback.md +266 -0
  276. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/feedback.zh.md +266 -0
  277. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/filesystem.md +505 -0
  278. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/filesystem.zh.md +505 -0
  279. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/goal.md +277 -0
  280. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/goal.zh.md +277 -0
  281. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/invariants.md +88 -0
  282. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/invariants.zh.md +88 -0
  283. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/jobs.md +290 -0
  284. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/jobs.zh.md +290 -0
  285. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/llm-streaming.md +1080 -0
  286. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/llm-streaming.zh.md +1086 -0
  287. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/lsp.md +202 -0
  288. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/lsp.zh.md +202 -0
  289. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/permission-presets.md +131 -0
  290. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/permission-presets.zh.md +131 -0
  291. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/persistence.md +395 -0
  292. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/persistence.zh.md +395 -0
  293. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/plan.md +87 -0
  294. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/plan.zh.md +87 -0
  295. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/sandbox.md +220 -0
  296. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/sandbox.zh.md +220 -0
  297. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/schedule.md +192 -0
  298. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/schedule.zh.md +192 -0
  299. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/scope.md +59 -0
  300. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/scope.zh.md +59 -0
  301. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-projection.md +354 -0
  302. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-projection.zh.md +354 -0
  303. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-query.md +509 -0
  304. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-query.zh.md +509 -0
  305. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-reference.md +219 -0
  306. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-reference.zh.md +219 -0
  307. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-telemetry.md +194 -0
  308. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-telemetry.zh.md +194 -0
  309. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-title.md +204 -0
  310. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-title.zh.md +204 -0
  311. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session.md +1155 -0
  312. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session.zh.md +1159 -0
  313. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/settings.md +405 -0
  314. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/settings.zh.md +405 -0
  315. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/shell.md +303 -0
  316. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/shell.zh.md +303 -0
  317. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/skills.md +354 -0
  318. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/skills.zh.md +354 -0
  319. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/slots.md +175 -0
  320. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/slots.zh.md +175 -0
  321. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/spill.md +117 -0
  322. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/spill.zh.md +117 -0
  323. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/storage.md +260 -0
  324. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/storage.zh.md +260 -0
  325. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subagent.md +766 -0
  326. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subagent.zh.md +770 -0
  327. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subprocess.md +324 -0
  328. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subprocess.zh.md +324 -0
  329. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/system-prompt.md +220 -0
  330. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/system-prompt.zh.md +220 -0
  331. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/terminal.md +184 -0
  332. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/terminal.zh.md +184 -0
  333. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/todo.md +32 -0
  334. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/todo.zh.md +32 -0
  335. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/token-meter.md +105 -0
  336. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/token-meter.zh.md +105 -0
  337. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/tools.md +720 -0
  338. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/tools.zh.md +720 -0
  339. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/typert.md +343 -0
  340. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/typert.zh.md +343 -0
  341. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/user-questions.md +178 -0
  342. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/user-questions.zh.md +178 -0
  343. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-client.md +95 -0
  344. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-client.zh.md +95 -0
  345. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-server.md +154 -0
  346. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-server.zh.md +154 -0
  347. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web.md +206 -0
  348. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web.zh.md +206 -0
  349. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/webhook.md +70 -0
  350. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/webhook.zh.md +70 -0
  351. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workflow.md +278 -0
  352. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workflow.zh.md +278 -0
  353. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workspace.md +321 -0
  354. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workspace.zh.md +321 -0
  355. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/testing.md +54 -0
  356. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/testing.zh.md +54 -0
  357. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-catalog.md +2225 -0
  358. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-catalog.zh.md +2233 -0
  359. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-execution-pipeline.md +62 -0
  360. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-execution-pipeline.zh.md +64 -0
  361. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/config.md +106 -0
  362. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/config.zh.md +106 -0
  363. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/index.md +144 -0
  364. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/index.zh.md +144 -0
  365. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/publish.md +183 -0
  366. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/publish.zh.md +183 -0
  367. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/tool.md +52 -0
  368. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/tool.zh.md +52 -0
  369. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/events.md +143 -0
  370. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/events.zh.md +143 -0
  371. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/index.md +137 -0
  372. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/index.zh.md +137 -0
  373. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/service.md +148 -0
  374. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/service.zh.md +150 -0
  375. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/dynamic-cordis.md +15 -0
  376. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/dynamic-cordis.zh.md +15 -0
  377. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/index.md +155 -0
  378. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/index.zh.md +155 -0
  379. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/llm-adapter.md +189 -0
  380. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/llm-adapter.zh.md +189 -0
  381. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/github-review.md +102 -0
  382. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/github-review.zh.md +102 -0
  383. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/index.md +30 -0
  384. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/index.zh.md +30 -0
  385. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/mcp-memory.md +101 -0
  386. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/mcp-memory.zh.md +101 -0
  387. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/network-proxy.md +85 -0
  388. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/network-proxy.zh.md +85 -0
  389. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/providers.md +190 -0
  390. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/providers.zh.md +190 -0
  391. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/python-sdk.md +150 -0
  392. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/python-sdk.zh.md +150 -0
  393. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/schedule.md +21 -0
  394. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/schedule.zh.md +21 -0
  395. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/index.md +11 -0
  396. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/index.zh.md +11 -0
  397. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/web-styling.md +29 -0
  398. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/web-styling.zh.md +29 -0
  399. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/site-pages-map.txt +234 -0
  400. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/site-pages.json +232 -0
  401. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src-README.md +63 -0
  402. package/node_modules/better-dsh/docs/dev-test-environment-notes.md +137 -0
  403. package/node_modules/better-dsh/docs/distro-blueprint.md +81 -0
  404. package/node_modules/better-dsh/docs/dsh-webUI-with-rlm-mode.png +0 -0
  405. package/node_modules/better-dsh/docs/repositioning-and-rebranding.md +102 -0
  406. package/node_modules/better-dsh/docs/specs/agent/spec.md +54 -0
  407. package/node_modules/better-dsh/docs/specs/ast/spec.md +57 -0
  408. package/node_modules/better-dsh/docs/specs/ast-engine-deomp/spec.md +170 -0
  409. package/node_modules/better-dsh/docs/specs/authentication-only-web-admission/spec.md +51 -0
  410. package/node_modules/better-dsh/docs/specs/compaction-recall/spec.md +46 -0
  411. package/node_modules/better-dsh/docs/specs/ctx/spec.md +179 -0
  412. package/node_modules/better-dsh/docs/specs/docs-packaging-trim/spec.md +110 -0
  413. package/node_modules/better-dsh/docs/specs/dsh/spec.md +47 -0
  414. package/node_modules/better-dsh/docs/specs/dvc/spec.md +106 -0
  415. package/node_modules/better-dsh/docs/specs/escalation-guidance/spec.md +44 -0
  416. package/node_modules/better-dsh/docs/specs/fs-scheme-resolution/spec.md +37 -0
  417. package/node_modules/better-dsh/docs/specs/hash-edit/spec.md +41 -0
  418. package/node_modules/better-dsh/docs/specs/http-read/spec.md +73 -0
  419. package/node_modules/better-dsh/docs/specs/kernel-provisioning/spec.md +53 -0
  420. package/node_modules/better-dsh/docs/specs/lsp/spec.md +121 -0
  421. package/node_modules/better-dsh/docs/specs/mobile-layout/spec.md +108 -0
  422. package/node_modules/better-dsh/docs/specs/model-failover/spec.md +20 -0
  423. package/node_modules/better-dsh/docs/specs/model-picker-ios-blur/spec.md +168 -0
  424. package/node_modules/better-dsh/docs/specs/plugins-page-components/spec.md +79 -0
  425. package/node_modules/better-dsh/docs/specs/preact-ui-shell/spec.md +22 -0
  426. package/node_modules/better-dsh/docs/specs/remote-pty-label/spec.md +126 -0
  427. package/node_modules/better-dsh/docs/specs/repl-dispatch-resilience/spec.md +21 -0
  428. package/node_modules/better-dsh/docs/specs/skill/spec.md +58 -0
  429. package/node_modules/better-dsh/docs/specs/tool-surface/spec.md +222 -0
  430. package/node_modules/better-dsh/docs/specs/url-schema/spec.md +148 -0
  431. package/node_modules/better-dsh/docs/specs/web-trust-fence/spec.md +43 -0
  432. package/node_modules/better-dsh/docs/specs/welcome-self-contained/spec.md +13 -0
  433. package/node_modules/better-dsh/docs/specs/zero-npm-runtime-deps/spec.md +85 -0
  434. package/node_modules/better-dsh/docs/superpowers/plans/2026-10-02-ctx-navigation.md +319 -0
  435. package/node_modules/better-dsh/docs/superpowers/plans/2026-10-03-ast-engine-deomp.md +1214 -0
  436. package/node_modules/better-dsh/docs/superpowers/plans/2026-10-03-docs-packaging-trim.md +181 -0
  437. package/node_modules/better-dsh/docs/superpowers/specs/2026-10-02-ctx-navigation-design.md +209 -0
  438. package/node_modules/better-dsh/docs/upstream-dsh-0.1.5-rc.2-report.md +156 -0
  439. package/node_modules/better-dsh/dsh-docs/AGENTS.md +75 -0
  440. package/node_modules/better-dsh/dsh-docs/agent-lifecycle.md +84 -0
  441. package/node_modules/better-dsh/dsh-docs/agent-lifecycle.zh.md +86 -0
  442. package/node_modules/better-dsh/dsh-docs/api-gateway.md +164 -0
  443. package/node_modules/better-dsh/dsh-docs/api-gateway.zh.md +164 -0
  444. package/node_modules/better-dsh/dsh-docs/architecture.md +150 -0
  445. package/node_modules/better-dsh/dsh-docs/architecture.zh.md +154 -0
  446. package/node_modules/better-dsh/dsh-docs/capability-seams.md +543 -0
  447. package/node_modules/better-dsh/dsh-docs/capability-seams.zh.md +545 -0
  448. package/node_modules/better-dsh/dsh-docs/config-catalog.md +3473 -0
  449. package/node_modules/better-dsh/dsh-docs/config-catalog.zh.md +3474 -0
  450. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-package.md +117 -0
  451. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-package.zh.md +119 -0
  452. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-remote-api.md +197 -0
  453. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-remote-api.zh.md +197 -0
  454. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-session-format-version.md +109 -0
  455. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-session-format-version.zh.md +109 -0
  456. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-settings-card.md +102 -0
  457. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-settings-card.zh.md +102 -0
  458. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-tool.md +101 -0
  459. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-tool.zh.md +103 -0
  460. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-vendored-package.md +59 -0
  461. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-vendored-package.zh.md +59 -0
  462. package/node_modules/better-dsh/dsh-docs/cookbook/adding-an-llm-adapter.md +43 -0
  463. package/node_modules/better-dsh/dsh-docs/cookbook/adding-an-llm-adapter.zh.md +43 -0
  464. package/node_modules/better-dsh/dsh-docs/cookbook/extension-cookbook.md +132 -0
  465. package/node_modules/better-dsh/dsh-docs/cookbook/extension-cookbook.zh.md +136 -0
  466. package/node_modules/better-dsh/dsh-docs/cookbook/maintaining-dsh-code-review.md +64 -0
  467. package/node_modules/better-dsh/dsh-docs/cookbook/maintaining-dsh-code-review.zh.md +64 -0
  468. package/node_modules/better-dsh/dsh-docs/cookbook/responding-to-pr-review-on-a-stack.md +32 -0
  469. package/node_modules/better-dsh/dsh-docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +32 -0
  470. package/node_modules/better-dsh/dsh-docs/cordis-api/context.md +364 -0
  471. package/node_modules/better-dsh/dsh-docs/cordis-api/context.zh.md +366 -0
  472. package/node_modules/better-dsh/dsh-docs/cordis-api/events.md +207 -0
  473. package/node_modules/better-dsh/dsh-docs/cordis-api/events.zh.md +209 -0
  474. package/node_modules/better-dsh/dsh-docs/cordis-api/fiber.md +375 -0
  475. package/node_modules/better-dsh/dsh-docs/cordis-api/fiber.zh.md +377 -0
  476. package/node_modules/better-dsh/dsh-docs/cordis-api/inherited.md +39 -0
  477. package/node_modules/better-dsh/dsh-docs/cordis-api/registry.md +152 -0
  478. package/node_modules/better-dsh/dsh-docs/cordis-api/registry.zh.md +154 -0
  479. package/node_modules/better-dsh/dsh-docs/cordis-api/service.md +102 -0
  480. package/node_modules/better-dsh/dsh-docs/cordis-api/service.zh.md +104 -0
  481. package/node_modules/better-dsh/dsh-docs/cordis-primer.md +45 -0
  482. package/node_modules/better-dsh/dsh-docs/cordis-primer.zh.md +51 -0
  483. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/01-first-plugin.md +95 -0
  484. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/01-first-plugin.zh.md +95 -0
  485. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/02-lifecycle-and-effects.md +98 -0
  486. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +98 -0
  487. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/03-services.md +98 -0
  488. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/03-services.zh.md +98 -0
  489. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/04-events.md +144 -0
  490. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/04-events.zh.md +144 -0
  491. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/05-config.md +84 -0
  492. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/05-config.zh.md +84 -0
  493. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/06-composition-and-hmr.md +113 -0
  494. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/06-composition-and-hmr.zh.md +113 -0
  495. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/07-into-the-harness.md +108 -0
  496. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/07-into-the-harness.zh.md +108 -0
  497. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/index.md +60 -0
  498. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/index.zh.md +62 -0
  499. package/node_modules/better-dsh/dsh-docs/deepseek-llm-api-wire-extensions.md +163 -0
  500. package/node_modules/better-dsh/dsh-docs/deepseek-llm-api-wire-extensions.zh.md +163 -0
  501. package/node_modules/better-dsh/dsh-docs/defensive-patterns.md +33 -0
  502. package/node_modules/better-dsh/dsh-docs/defensive-patterns.zh.md +35 -0
  503. package/node_modules/better-dsh/dsh-docs/development.md +167 -0
  504. package/node_modules/better-dsh/dsh-docs/development.zh.md +173 -0
  505. package/node_modules/better-dsh/dsh-docs/event-producer-consumer.md +86 -0
  506. package/node_modules/better-dsh/dsh-docs/event-producer-consumer.zh.md +88 -0
  507. package/node_modules/better-dsh/dsh-docs/glossary.md +45 -0
  508. package/node_modules/better-dsh/dsh-docs/glossary.zh.md +45 -0
  509. package/node_modules/better-dsh/dsh-docs/graph-atlas.md +22 -0
  510. package/node_modules/better-dsh/dsh-docs/graph-atlas.zh.md +24 -0
  511. package/node_modules/better-dsh/dsh-docs/i18n/README.md +60 -0
  512. package/node_modules/better-dsh/dsh-docs/i18n/README.zh.md +62 -0
  513. package/node_modules/better-dsh/dsh-docs/i18n/style-samples.md +87 -0
  514. package/node_modules/better-dsh/dsh-docs/i18n/terminology.md +214 -0
  515. package/node_modules/better-dsh/dsh-docs/i18n/translation-prompt.md +263 -0
  516. package/node_modules/better-dsh/dsh-docs/i18n/translation-rules.md +69 -0
  517. package/node_modules/better-dsh/dsh-docs/i18n/translation-rules.zh.md +69 -0
  518. package/node_modules/better-dsh/dsh-docs/module-graph.md +1411 -0
  519. package/node_modules/better-dsh/dsh-docs/module-graph.zh.md +1413 -0
  520. package/node_modules/better-dsh/dsh-docs/persistence-catalog.md +1075 -0
  521. package/node_modules/better-dsh/dsh-docs/persistence-catalog.zh.md +1077 -0
  522. package/node_modules/better-dsh/dsh-docs/postmortem/0001-acp-default-export-drops-inject.md +113 -0
  523. package/node_modules/better-dsh/dsh-docs/postmortem/0001-acp-default-export-drops-inject.zh.md +113 -0
  524. package/node_modules/better-dsh/dsh-docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +47 -0
  525. package/node_modules/better-dsh/dsh-docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +47 -0
  526. package/node_modules/better-dsh/dsh-docs/postmortem/0003-web-agent-gui-feedback-loop.md +53 -0
  527. package/node_modules/better-dsh/dsh-docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +53 -0
  528. package/node_modules/better-dsh/dsh-docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +55 -0
  529. package/node_modules/better-dsh/dsh-docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +55 -0
  530. package/node_modules/better-dsh/dsh-docs/postmortem/README.md +18 -0
  531. package/node_modules/better-dsh/dsh-docs/postmortem/README.zh.md +18 -0
  532. package/node_modules/better-dsh/dsh-docs/rescope.md +53 -0
  533. package/node_modules/better-dsh/dsh-docs/rescope.zh.md +53 -0
  534. package/node_modules/better-dsh/dsh-docs/session-format-status.md +47 -0
  535. package/node_modules/better-dsh/dsh-docs/session-format-status.zh.md +47 -0
  536. package/node_modules/better-dsh/dsh-docs/subsystems/README.md +61 -0
  537. package/node_modules/better-dsh/dsh-docs/subsystems/README.zh.md +61 -0
  538. package/node_modules/better-dsh/dsh-docs/subsystems/agent-team.md +207 -0
  539. package/node_modules/better-dsh/dsh-docs/subsystems/agent-team.zh.md +207 -0
  540. package/node_modules/better-dsh/dsh-docs/subsystems/approval.md +170 -0
  541. package/node_modules/better-dsh/dsh-docs/subsystems/approval.zh.md +170 -0
  542. package/node_modules/better-dsh/dsh-docs/subsystems/attachment.md +351 -0
  543. package/node_modules/better-dsh/dsh-docs/subsystems/attachment.zh.md +351 -0
  544. package/node_modules/better-dsh/dsh-docs/subsystems/client-modules.md +168 -0
  545. package/node_modules/better-dsh/dsh-docs/subsystems/client-modules.zh.md +168 -0
  546. package/node_modules/better-dsh/dsh-docs/subsystems/client-resources.md +91 -0
  547. package/node_modules/better-dsh/dsh-docs/subsystems/client-resources.zh.md +91 -0
  548. package/node_modules/better-dsh/dsh-docs/subsystems/code-runtime.md +195 -0
  549. package/node_modules/better-dsh/dsh-docs/subsystems/code-runtime.zh.md +195 -0
  550. package/node_modules/better-dsh/dsh-docs/subsystems/commands.md +219 -0
  551. package/node_modules/better-dsh/dsh-docs/subsystems/commands.zh.md +219 -0
  552. package/node_modules/better-dsh/dsh-docs/subsystems/compaction.md +238 -0
  553. package/node_modules/better-dsh/dsh-docs/subsystems/compaction.zh.md +238 -0
  554. package/node_modules/better-dsh/dsh-docs/subsystems/conversation.md +258 -0
  555. package/node_modules/better-dsh/dsh-docs/subsystems/conversation.zh.md +258 -0
  556. package/node_modules/better-dsh/dsh-docs/subsystems/core.md +1209 -0
  557. package/node_modules/better-dsh/dsh-docs/subsystems/core.zh.md +1219 -0
  558. package/node_modules/better-dsh/dsh-docs/subsystems/credentials.md +329 -0
  559. package/node_modules/better-dsh/dsh-docs/subsystems/credentials.zh.md +329 -0
  560. package/node_modules/better-dsh/dsh-docs/subsystems/extensions.md +382 -0
  561. package/node_modules/better-dsh/dsh-docs/subsystems/extensions.zh.md +382 -0
  562. package/node_modules/better-dsh/dsh-docs/subsystems/feedback.md +266 -0
  563. package/node_modules/better-dsh/dsh-docs/subsystems/feedback.zh.md +266 -0
  564. package/node_modules/better-dsh/dsh-docs/subsystems/filesystem.md +505 -0
  565. package/node_modules/better-dsh/dsh-docs/subsystems/filesystem.zh.md +505 -0
  566. package/node_modules/better-dsh/dsh-docs/subsystems/goal.md +277 -0
  567. package/node_modules/better-dsh/dsh-docs/subsystems/goal.zh.md +277 -0
  568. package/node_modules/better-dsh/dsh-docs/subsystems/invariants.md +88 -0
  569. package/node_modules/better-dsh/dsh-docs/subsystems/invariants.zh.md +88 -0
  570. package/node_modules/better-dsh/dsh-docs/subsystems/jobs.md +290 -0
  571. package/node_modules/better-dsh/dsh-docs/subsystems/jobs.zh.md +290 -0
  572. package/node_modules/better-dsh/dsh-docs/subsystems/llm-streaming.md +1080 -0
  573. package/node_modules/better-dsh/dsh-docs/subsystems/llm-streaming.zh.md +1086 -0
  574. package/node_modules/better-dsh/dsh-docs/subsystems/lsp.md +202 -0
  575. package/node_modules/better-dsh/dsh-docs/subsystems/lsp.zh.md +202 -0
  576. package/node_modules/better-dsh/dsh-docs/subsystems/permission-presets.md +131 -0
  577. package/node_modules/better-dsh/dsh-docs/subsystems/permission-presets.zh.md +131 -0
  578. package/node_modules/better-dsh/dsh-docs/subsystems/persistence.md +395 -0
  579. package/node_modules/better-dsh/dsh-docs/subsystems/persistence.zh.md +395 -0
  580. package/node_modules/better-dsh/dsh-docs/subsystems/plan.md +87 -0
  581. package/node_modules/better-dsh/dsh-docs/subsystems/plan.zh.md +87 -0
  582. package/node_modules/better-dsh/dsh-docs/subsystems/sandbox.md +220 -0
  583. package/node_modules/better-dsh/dsh-docs/subsystems/sandbox.zh.md +220 -0
  584. package/node_modules/better-dsh/dsh-docs/subsystems/schedule.md +192 -0
  585. package/node_modules/better-dsh/dsh-docs/subsystems/schedule.zh.md +192 -0
  586. package/node_modules/better-dsh/dsh-docs/subsystems/scope.md +59 -0
  587. package/node_modules/better-dsh/dsh-docs/subsystems/scope.zh.md +59 -0
  588. package/node_modules/better-dsh/dsh-docs/subsystems/session-projection.md +354 -0
  589. package/node_modules/better-dsh/dsh-docs/subsystems/session-projection.zh.md +354 -0
  590. package/node_modules/better-dsh/dsh-docs/subsystems/session-query.md +509 -0
  591. package/node_modules/better-dsh/dsh-docs/subsystems/session-query.zh.md +509 -0
  592. package/node_modules/better-dsh/dsh-docs/subsystems/session-reference.md +219 -0
  593. package/node_modules/better-dsh/dsh-docs/subsystems/session-reference.zh.md +219 -0
  594. package/node_modules/better-dsh/dsh-docs/subsystems/session-telemetry.md +194 -0
  595. package/node_modules/better-dsh/dsh-docs/subsystems/session-telemetry.zh.md +194 -0
  596. package/node_modules/better-dsh/dsh-docs/subsystems/session-title.md +204 -0
  597. package/node_modules/better-dsh/dsh-docs/subsystems/session-title.zh.md +204 -0
  598. package/node_modules/better-dsh/dsh-docs/subsystems/session.md +1155 -0
  599. package/node_modules/better-dsh/dsh-docs/subsystems/session.zh.md +1159 -0
  600. package/node_modules/better-dsh/dsh-docs/subsystems/settings.md +405 -0
  601. package/node_modules/better-dsh/dsh-docs/subsystems/settings.zh.md +405 -0
  602. package/node_modules/better-dsh/dsh-docs/subsystems/shell.md +303 -0
  603. package/node_modules/better-dsh/dsh-docs/subsystems/shell.zh.md +303 -0
  604. package/node_modules/better-dsh/dsh-docs/subsystems/sidebar-right.md +148 -0
  605. package/node_modules/better-dsh/dsh-docs/subsystems/sidebar-right.zh.md +148 -0
  606. package/node_modules/better-dsh/dsh-docs/subsystems/skills.md +354 -0
  607. package/node_modules/better-dsh/dsh-docs/subsystems/skills.zh.md +354 -0
  608. package/node_modules/better-dsh/dsh-docs/subsystems/slots.md +175 -0
  609. package/node_modules/better-dsh/dsh-docs/subsystems/slots.zh.md +175 -0
  610. package/node_modules/better-dsh/dsh-docs/subsystems/spill.md +117 -0
  611. package/node_modules/better-dsh/dsh-docs/subsystems/spill.zh.md +117 -0
  612. package/node_modules/better-dsh/dsh-docs/subsystems/storage.md +260 -0
  613. package/node_modules/better-dsh/dsh-docs/subsystems/storage.zh.md +260 -0
  614. package/node_modules/better-dsh/dsh-docs/subsystems/subagent.md +766 -0
  615. package/node_modules/better-dsh/dsh-docs/subsystems/subagent.zh.md +770 -0
  616. package/node_modules/better-dsh/dsh-docs/subsystems/subprocess.md +324 -0
  617. package/node_modules/better-dsh/dsh-docs/subsystems/subprocess.zh.md +324 -0
  618. package/node_modules/better-dsh/dsh-docs/subsystems/system-prompt.md +220 -0
  619. package/node_modules/better-dsh/dsh-docs/subsystems/system-prompt.zh.md +220 -0
  620. package/node_modules/better-dsh/dsh-docs/subsystems/terminal.md +184 -0
  621. package/node_modules/better-dsh/dsh-docs/subsystems/terminal.zh.md +184 -0
  622. package/node_modules/better-dsh/dsh-docs/subsystems/todo.md +32 -0
  623. package/node_modules/better-dsh/dsh-docs/subsystems/todo.zh.md +32 -0
  624. package/node_modules/better-dsh/dsh-docs/subsystems/token-meter.md +105 -0
  625. package/node_modules/better-dsh/dsh-docs/subsystems/token-meter.zh.md +105 -0
  626. package/node_modules/better-dsh/dsh-docs/subsystems/tools.md +720 -0
  627. package/node_modules/better-dsh/dsh-docs/subsystems/tools.zh.md +720 -0
  628. package/node_modules/better-dsh/dsh-docs/subsystems/typert.md +343 -0
  629. package/node_modules/better-dsh/dsh-docs/subsystems/typert.zh.md +343 -0
  630. package/node_modules/better-dsh/dsh-docs/subsystems/user-questions.md +178 -0
  631. package/node_modules/better-dsh/dsh-docs/subsystems/user-questions.zh.md +178 -0
  632. package/node_modules/better-dsh/dsh-docs/subsystems/web-client.md +95 -0
  633. package/node_modules/better-dsh/dsh-docs/subsystems/web-client.zh.md +95 -0
  634. package/node_modules/better-dsh/dsh-docs/subsystems/web-server.md +154 -0
  635. package/node_modules/better-dsh/dsh-docs/subsystems/web-server.zh.md +154 -0
  636. package/node_modules/better-dsh/dsh-docs/subsystems/web.md +206 -0
  637. package/node_modules/better-dsh/dsh-docs/subsystems/web.zh.md +206 -0
  638. package/node_modules/better-dsh/dsh-docs/subsystems/webhook.md +70 -0
  639. package/node_modules/better-dsh/dsh-docs/subsystems/webhook.zh.md +70 -0
  640. package/node_modules/better-dsh/dsh-docs/subsystems/workflow.md +278 -0
  641. package/node_modules/better-dsh/dsh-docs/subsystems/workflow.zh.md +278 -0
  642. package/node_modules/better-dsh/dsh-docs/subsystems/workspace.md +321 -0
  643. package/node_modules/better-dsh/dsh-docs/subsystems/workspace.zh.md +321 -0
  644. package/node_modules/better-dsh/dsh-docs/testing.md +54 -0
  645. package/node_modules/better-dsh/dsh-docs/testing.zh.md +54 -0
  646. package/node_modules/better-dsh/dsh-docs/tool-catalog.md +2225 -0
  647. package/node_modules/better-dsh/dsh-docs/tool-catalog.zh.md +2233 -0
  648. package/node_modules/better-dsh/dsh-docs/tool-execution-pipeline.md +62 -0
  649. package/node_modules/better-dsh/dsh-docs/tool-execution-pipeline.zh.md +64 -0
  650. package/node_modules/better-dsh/dsh-docs/user/develop/basic/config.md +106 -0
  651. package/node_modules/better-dsh/dsh-docs/user/develop/basic/config.zh.md +106 -0
  652. package/node_modules/better-dsh/dsh-docs/user/develop/basic/index.md +144 -0
  653. package/node_modules/better-dsh/dsh-docs/user/develop/basic/index.zh.md +144 -0
  654. package/node_modules/better-dsh/dsh-docs/user/develop/basic/publish.md +183 -0
  655. package/node_modules/better-dsh/dsh-docs/user/develop/basic/publish.zh.md +183 -0
  656. package/node_modules/better-dsh/dsh-docs/user/develop/basic/tool.md +52 -0
  657. package/node_modules/better-dsh/dsh-docs/user/develop/basic/tool.zh.md +52 -0
  658. package/node_modules/better-dsh/dsh-docs/user/develop/framework/events.md +143 -0
  659. package/node_modules/better-dsh/dsh-docs/user/develop/framework/events.zh.md +143 -0
  660. package/node_modules/better-dsh/dsh-docs/user/develop/framework/index.md +137 -0
  661. package/node_modules/better-dsh/dsh-docs/user/develop/framework/index.zh.md +137 -0
  662. package/node_modules/better-dsh/dsh-docs/user/develop/framework/service.md +148 -0
  663. package/node_modules/better-dsh/dsh-docs/user/develop/framework/service.zh.md +150 -0
  664. package/node_modules/better-dsh/dsh-docs/user/develop/practice/dynamic-cordis.md +15 -0
  665. package/node_modules/better-dsh/dsh-docs/user/develop/practice/dynamic-cordis.zh.md +15 -0
  666. package/node_modules/better-dsh/dsh-docs/user/develop/practice/index.md +155 -0
  667. package/node_modules/better-dsh/dsh-docs/user/develop/practice/index.zh.md +155 -0
  668. package/node_modules/better-dsh/dsh-docs/user/develop/practice/llm-adapter.md +189 -0
  669. package/node_modules/better-dsh/dsh-docs/user/develop/practice/llm-adapter.zh.md +189 -0
  670. package/node_modules/better-dsh/dsh-docs/user/guide/github-review.md +102 -0
  671. package/node_modules/better-dsh/dsh-docs/user/guide/github-review.zh.md +102 -0
  672. package/node_modules/better-dsh/dsh-docs/user/guide/index.md +30 -0
  673. package/node_modules/better-dsh/dsh-docs/user/guide/index.zh.md +30 -0
  674. package/node_modules/better-dsh/dsh-docs/user/guide/mcp-memory.md +101 -0
  675. package/node_modules/better-dsh/dsh-docs/user/guide/mcp-memory.zh.md +101 -0
  676. package/node_modules/better-dsh/dsh-docs/user/guide/network-proxy.md +85 -0
  677. package/node_modules/better-dsh/dsh-docs/user/guide/network-proxy.zh.md +85 -0
  678. package/node_modules/better-dsh/dsh-docs/user/guide/providers.md +190 -0
  679. package/node_modules/better-dsh/dsh-docs/user/guide/providers.zh.md +190 -0
  680. package/node_modules/better-dsh/dsh-docs/user/guide/python-sdk.md +150 -0
  681. package/node_modules/better-dsh/dsh-docs/user/guide/python-sdk.zh.md +150 -0
  682. package/node_modules/better-dsh/dsh-docs/user/guide/schedule.md +21 -0
  683. package/node_modules/better-dsh/dsh-docs/user/guide/schedule.zh.md +21 -0
  684. package/node_modules/better-dsh/dsh-docs/user/index.md +11 -0
  685. package/node_modules/better-dsh/dsh-docs/user/index.zh.md +11 -0
  686. package/node_modules/better-dsh/dsh-docs/web-styling.md +29 -0
  687. package/node_modules/better-dsh/dsh-docs/web-styling.zh.md +29 -0
  688. package/node_modules/better-dsh/eval-description.md +33 -0
  689. package/node_modules/better-dsh/lib/BrowserWebSocketTransport-D1aFReu_.js +4 -0
  690. package/node_modules/better-dsh/lib/BrowserWebSocketTransport-wm99h94r.js +39 -0
  691. package/node_modules/better-dsh/lib/LaunchOptions-B874eBu2.js +4 -0
  692. package/node_modules/better-dsh/lib/LaunchOptions-kGXcZOe0.js +17 -0
  693. package/node_modules/better-dsh/lib/NodeWebSocketTransport-BRLjmu2R.js +4 -0
  694. package/node_modules/better-dsh/lib/NodeWebSocketTransport-D9ysYGLM.js +3634 -0
  695. package/node_modules/better-dsh/lib/ast-assets/ast-grep.wasm +0 -0
  696. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-bash.wasm +0 -0
  697. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-c.wasm +0 -0
  698. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-cpp.wasm +0 -0
  699. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-css.wasm +0 -0
  700. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-go.wasm +0 -0
  701. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-html.wasm +0 -0
  702. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-javascript.wasm +0 -0
  703. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-json.wasm +0 -0
  704. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-python.wasm +0 -0
  705. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-ruby.wasm +0 -0
  706. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-rust.wasm +0 -0
  707. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-tsx.wasm +0 -0
  708. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-typescript.wasm +0 -0
  709. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-yaml.wasm +0 -0
  710. package/node_modules/better-dsh/lib/ast-assets/tree-sitter.wasm +0 -0
  711. package/node_modules/better-dsh/lib/bidi-BalpKaJc.js +16106 -0
  712. package/node_modules/better-dsh/lib/bundle-delivery.d.ts +20 -0
  713. package/node_modules/better-dsh/lib/bundle-delivery.js +209 -0
  714. package/node_modules/better-dsh/lib/chunk-DQxbwPpZ.js +30 -0
  715. package/node_modules/better-dsh/lib/client/index.js +712 -0
  716. package/node_modules/better-dsh/lib/compaction/index.d.ts +57 -0
  717. package/node_modules/better-dsh/lib/compaction/index.js +145 -0
  718. package/node_modules/better-dsh/lib/failover/index.d.ts +59 -0
  719. package/node_modules/better-dsh/lib/failover/index.js +147 -0
  720. package/node_modules/better-dsh/lib/fs-aware/sandbox-plugin.d.ts +71 -0
  721. package/node_modules/better-dsh/lib/fs-aware/sandbox-plugin.js +249 -0
  722. package/node_modules/better-dsh/lib/hmr.d.ts +32 -0
  723. package/node_modules/better-dsh/lib/hmr.js +49 -0
  724. package/node_modules/better-dsh/lib/index-DTDXUe6m.d.ts +208 -0
  725. package/node_modules/better-dsh/lib/index-browser-CysrjMyM.js +21061 -0
  726. package/node_modules/better-dsh/lib/index.d.ts +705 -0
  727. package/node_modules/better-dsh/lib/index.js +3816 -0
  728. package/node_modules/better-dsh/lib/kernel-bridge.py +172 -0
  729. package/node_modules/better-dsh/lib/kernel-env-D8UOWeji.js +195 -0
  730. package/node_modules/better-dsh/lib/kernel-env.d.ts +80 -0
  731. package/node_modules/better-dsh/lib/kernel-env.js +3 -0
  732. package/node_modules/better-dsh/lib/lib-C8_jXvwA.js +894 -0
  733. package/node_modules/better-dsh/lib/lsp-server-registry-BXvUTBY7.js +3 -0
  734. package/node_modules/better-dsh/lib/lsp-server-registry-CH9WNFFt.js +972 -0
  735. package/node_modules/better-dsh/lib/main-BQeFrBM1.js +3 -0
  736. package/node_modules/better-dsh/lib/main-CupOhMp5.js +1432 -0
  737. package/node_modules/better-dsh/lib/mobile/plugin.d.ts +29 -0
  738. package/node_modules/better-dsh/lib/mobile/plugin.js +54 -0
  739. package/node_modules/better-dsh/lib/native-capture-BEByDXYM.js +68 -0
  740. package/node_modules/better-dsh/lib/puppeteer-core-CSk2PtSm.js +1136 -0
  741. package/node_modules/better-dsh/lib/py-sdk-D7klhpWb.js +178 -0
  742. package/node_modules/better-dsh/lib/py-sdk.d.ts +19 -0
  743. package/node_modules/better-dsh/lib/py-sdk.js +3 -0
  744. package/node_modules/better-dsh/lib/remote/plugin.d.ts +24 -0
  745. package/node_modules/better-dsh/lib/remote/plugin.js +1190 -0
  746. package/node_modules/better-dsh/lib/url-schemes/index.d.ts +88 -0
  747. package/node_modules/better-dsh/lib/url-schemes/index.js +12229 -0
  748. package/node_modules/better-dsh/lib/util-BHL_dfV_.js +2953 -0
  749. package/node_modules/better-dsh/lib/wasm_bg-CNXhHjVg.js +1291 -0
  750. package/node_modules/better-dsh/lib/web-password.d.ts +156 -0
  751. package/node_modules/better-dsh/lib/web-password.js +562 -0
  752. package/node_modules/better-dsh/lib/web-tree-sitter-CPrPD4J2.js +3440 -0
  753. package/node_modules/better-dsh/lib/web-trust-D6gJpUMf.js +393 -0
  754. package/node_modules/better-dsh/lib/web-trust-Dej_RI2B.d.ts +113 -0
  755. package/node_modules/better-dsh/lib/web-trust.d.ts +3 -0
  756. package/node_modules/better-dsh/lib/web-trust.js +4 -0
  757. package/node_modules/better-dsh/lib/webserver.d.ts +10 -0
  758. package/node_modules/better-dsh/lib/webserver.js +19 -0
  759. package/node_modules/better-dsh/lib/welcome-notice.d.ts +18 -0
  760. package/node_modules/better-dsh/lib/welcome-notice.js +59 -0
  761. package/node_modules/better-dsh/lib/wrap-T4I0nfPM.js +750 -0
  762. package/node_modules/better-dsh/package.json +430 -0
  763. package/node_modules/better-dsh/scripts/kernel-provision.mjs +35 -0
  764. package/node_modules/better-dsh/scripts/register-bundle.mjs +80 -0
  765. package/node_modules/better-dsh/url-schemes-instruction.md +22 -0
  766. package/package.json +21 -6
  767. package/superd-hub/assets/icons/README.md +20 -0
  768. package/superd-hub/assets/icons/amp.png +0 -0
  769. package/superd-hub/assets/icons/ante.png +0 -0
  770. package/superd-hub/assets/icons/antigravity.png +0 -0
  771. package/superd-hub/assets/icons/aug.png +0 -0
  772. package/superd-hub/assets/icons/autohand.png +0 -0
  773. package/superd-hub/assets/icons/claude.svg +1 -0
  774. package/superd-hub/assets/icons/cline.png +0 -0
  775. package/superd-hub/assets/icons/codebuddy.png +0 -0
  776. package/superd-hub/assets/icons/codebuff.png +0 -0
  777. package/superd-hub/assets/icons/codex.svg +1 -0
  778. package/superd-hub/assets/icons/command-code.png +0 -0
  779. package/superd-hub/assets/icons/continue.png +0 -0
  780. package/superd-hub/assets/icons/copilot.png +0 -0
  781. package/superd-hub/assets/icons/crush.png +0 -0
  782. package/superd-hub/assets/icons/cursor.png +0 -0
  783. package/superd-hub/assets/icons/devin.png +0 -0
  784. package/superd-hub/assets/icons/droid.png +0 -0
  785. package/superd-hub/assets/icons/dsh-fish.svg +3 -0
  786. package/superd-hub/assets/icons/dsh.png +0 -0
  787. package/superd-hub/assets/icons/freebuff.png +0 -0
  788. package/superd-hub/assets/icons/gemini.png +0 -0
  789. package/superd-hub/assets/icons/goose.png +0 -0
  790. package/superd-hub/assets/icons/grok.png +0 -0
  791. package/superd-hub/assets/icons/hermes.png +0 -0
  792. package/superd-hub/assets/icons/jcode.png +0 -0
  793. package/superd-hub/assets/icons/kilo.png +0 -0
  794. package/superd-hub/assets/icons/kimi.png +0 -0
  795. package/superd-hub/assets/icons/kiro.png +0 -0
  796. package/superd-hub/assets/icons/manifest.json +20 -0
  797. package/superd-hub/assets/icons/mimo-code.png +0 -0
  798. package/superd-hub/assets/icons/mistral-vibe.png +0 -0
  799. package/superd-hub/assets/icons/muse.png +0 -0
  800. package/superd-hub/assets/icons/omp.svg +1 -0
  801. package/superd-hub/assets/icons/openclaude.png +0 -0
  802. package/superd-hub/assets/icons/openclaw.png +0 -0
  803. package/superd-hub/assets/icons/opencode.png +0 -0
  804. package/superd-hub/assets/icons/pi.svg +1 -0
  805. package/superd-hub/assets/icons/prime-agent.png +0 -0
  806. package/superd-hub/assets/icons/qoder-cn.png +0 -0
  807. package/superd-hub/assets/icons/qoder.png +0 -0
  808. package/superd-hub/assets/icons/qwen-code.png +0 -0
  809. package/superd-hub/assets/icons/rovo.png +0 -0
  810. package/superd-hub/assets/icons/trae.png +0 -0
  811. package/superd-hub/assets/icons/zcode.png +0 -0
  812. package/superd-hub/dist/a2a-row.js +1 -1
  813. package/superd-hub/dist/agent-roster.d.ts +8 -3
  814. package/superd-hub/dist/agent-roster.js +19 -7
  815. package/superd-hub/dist/bundle-setup.d.ts +2 -0
  816. package/superd-hub/dist/bundle-setup.js +2 -0
  817. package/superd-hub/dist/client/icon-assets.gen.d.ts +16 -0
  818. package/superd-hub/dist/client/icon-assets.gen.js +54 -0
  819. package/superd-hub/dist/client/mesh-api.d.ts +28 -17
  820. package/superd-hub/dist/client/mesh-api.js +44 -31
  821. package/superd-hub/dist/client/mesh-groups.d.ts +13 -11
  822. package/superd-hub/dist/client/mesh-groups.js +30 -10
  823. package/superd-hub/dist/client/roster.d.ts +7 -16
  824. package/superd-hub/dist/client/roster.js +5 -3
  825. package/superd-hub/dist/fusion-transport.d.ts +11 -10
  826. package/superd-hub/dist/fusion-transport.js +21 -11
  827. package/superd-hub/dist/index.d.ts +0 -1
  828. package/superd-hub/dist/index.js +0 -1
  829. package/superd-hub/dist/machines.d.ts +6 -3
  830. package/superd-hub/dist/machines.js +15 -3
  831. package/superd-hub/dist/mesh-federate.d.ts +18 -8
  832. package/superd-hub/dist/mesh-federate.js +14 -9
  833. package/superd-hub/dist/mesh-link.d.ts +37 -3
  834. package/superd-hub/dist/mesh-link.js +49 -4
  835. package/superd-hub/dist/mesh-rpc.d.ts +48 -16
  836. package/superd-hub/dist/mesh-rpc.js +139 -14
  837. package/superd-hub/dist/roster.d.ts +20 -0
  838. package/superd-hub/dist/roster.js +24 -0
  839. package/superd-hub/dist/switch-core.d.ts +3 -2
  840. package/superd-hub/dist/switch-core.js +1 -1
  841. package/superd-hub/dist/world-entry.d.ts +3 -0
  842. package/superd-hub/dist/world-entry.js +4 -1
  843. package/superd-hub/dist/world-host.d.ts +5 -2
  844. package/superd-hub/dist/world-host.js +6 -2
  845. package/superd-hub/dist/world-join.d.ts +1 -1
  846. package/superd-hub/dist/world-join.js +14 -32
  847. package/superd-hub/dist/world-lifecycle.d.ts +20 -0
  848. package/superd-hub/dist/world-lifecycle.js +69 -0
  849. package/superd-hub/dist/world-mount.d.ts +1 -1
  850. package/superd-hub/dist/world-mount.js +2 -2
  851. package/superd-hub/lib/client/index.js +434 -307
  852. package/superd-hub/package.json +3 -2
  853. package/superd-hub/dist/connection-trust.d.ts +0 -8
  854. package/superd-hub/dist/connection-trust.js +0 -16
  855. package/superd-hub/dist/web-trust.d.ts +0 -84
  856. package/superd-hub/dist/web-trust.js +0 -101
@@ -0,0 +1,120 @@
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.
@@ -0,0 +1,129 @@
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.
@@ -0,0 +1,115 @@
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`).
@@ -0,0 +1,109 @@
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`).
@@ -0,0 +1,97 @@
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.