super-dsh 0.3.0-c → 0.3.0-e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (772) hide show
  1. package/README.md +25 -22
  2. package/client/index.js +25 -11
  3. package/cordis.patch.yml +3 -3
  4. package/package.json +20 -8
  5. package/superd-hub/dist/bundle-setup.d.ts +17 -2
  6. package/superd-hub/dist/bundle-setup.js +158 -2
  7. package/superd-hub/dist/client/mesh-api.d.ts +6 -3
  8. package/superd-hub/dist/client/mesh-api.js +20 -5
  9. package/superd-hub/dist/fusion-transport.js +14 -3
  10. package/superd-hub/dist/gateway.js +2 -0
  11. package/superd-hub/dist/machines.d.ts +2 -0
  12. package/superd-hub/dist/machines.js +2 -0
  13. package/superd-hub/dist/mesh-link.d.ts +10 -2
  14. package/superd-hub/dist/mesh-link.js +131 -27
  15. package/superd-hub/dist/mesh-rpc.d.ts +1 -1
  16. package/superd-hub/dist/mesh-rpc.js +20 -12
  17. package/superd-hub/dist/pairing-auth.d.ts +7 -0
  18. package/superd-hub/dist/pairing-auth.js +29 -0
  19. package/superd-hub/lib/client/index.js +25 -11
  20. package/superd-hub/package.json +19 -2
  21. package/superd-hub/scripts/register-companion.mjs +100 -0
  22. package/bundles/better-dsh.tgz +0 -0
  23. package/bundles/manifest.json +0 -10
  24. package/node_modules/better-dsh/LICENSE +0 -24
  25. package/node_modules/better-dsh/README.md +0 -323
  26. package/node_modules/better-dsh/THIRD_PARTY_NOTICES.md +0 -52
  27. package/node_modules/better-dsh/cordis.patch.yml +0 -139
  28. package/node_modules/better-dsh/docs/00_adr/0001-bridge-tool-layer-not-service-layer.md +0 -14
  29. package/node_modules/better-dsh/docs/00_adr/0002-masking-is-presentation-only.md +0 -15
  30. package/node_modules/better-dsh/docs/10_plans/2026-09-23-remote-execution-framework.md +0 -236
  31. package/node_modules/better-dsh/docs/10_plans/2026-09-23-remote-framework-impl.md +0 -2083
  32. package/node_modules/better-dsh/docs/10_plans/2026-09-26-lsp-ast-reminder.md +0 -64
  33. package/node_modules/better-dsh/docs/10_plans/A2A-messaging-channel-test-archive.md +0 -256
  34. package/node_modules/better-dsh/docs/10_plans/code-mode-vs-rlm-ipython-comparison.md +0 -137
  35. package/node_modules/better-dsh/docs/10_plans/dashr-blueprint-review.md +0 -201
  36. package/node_modules/better-dsh/docs/10_plans/dashr-blueprint.md +0 -561
  37. package/node_modules/better-dsh/docs/10_plans/dashr-compaction-window-and-archive.md +0 -307
  38. package/node_modules/better-dsh/docs/10_plans/dashr-profile-layer-feasibility.md +0 -367
  39. package/node_modules/better-dsh/docs/10_plans/dashr-sandbox-escalation-semantics-gap.md +0 -171
  40. package/node_modules/better-dsh/docs/10_plans/dashr-security-sandbox-analysis.md +0 -187
  41. package/node_modules/better-dsh/docs/10_plans/dashr-surface-invariant-and-omp-imports.md +0 -97
  42. package/node_modules/better-dsh/docs/10_plans/ipython-kernel-interactive-interface-test-report.md +0 -152
  43. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft.md +0 -146
  44. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft_v3.md +0 -50
  45. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft_v4.md +0 -79
  46. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-vs-PrimeAgent-systemprompt-toolcatalog-comparison.md +0 -138
  47. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/RLM-system-prompt-injection-gap-report.md +0 -161
  48. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/V0.1.5-development-plan.md +0 -109
  49. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/actinoable-surface-to-llm-in-agent-runtime_dsh.md +0 -50
  50. package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/actinoable-surface-to-llm-in-agent-runtime_prime.md +0 -113
  51. package/node_modules/better-dsh/docs/10_plans/recallable-compaction.md +0 -147
  52. package/node_modules/better-dsh/docs/10_plans/spike-tag-repro.mjs +0 -102
  53. package/node_modules/better-dsh/docs/10_plans/upstream-analysis.md +0 -128
  54. package/node_modules/better-dsh/docs/20_specs/agent/spec.md +0 -54
  55. package/node_modules/better-dsh/docs/20_specs/ast/spec.md +0 -57
  56. package/node_modules/better-dsh/docs/20_specs/compaction-recall/spec.md +0 -46
  57. package/node_modules/better-dsh/docs/20_specs/ctx/spec.md +0 -107
  58. package/node_modules/better-dsh/docs/20_specs/dsh/spec.md +0 -47
  59. package/node_modules/better-dsh/docs/20_specs/dvc/spec.md +0 -106
  60. package/node_modules/better-dsh/docs/20_specs/escalation-guidance/spec.md +0 -44
  61. package/node_modules/better-dsh/docs/20_specs/fs-scheme-resolution/spec.md +0 -37
  62. package/node_modules/better-dsh/docs/20_specs/hash-edit/spec.md +0 -41
  63. package/node_modules/better-dsh/docs/20_specs/http-read/spec.md +0 -73
  64. package/node_modules/better-dsh/docs/20_specs/kernel-provisioning/spec.md +0 -53
  65. package/node_modules/better-dsh/docs/20_specs/lsp/spec.md +0 -121
  66. package/node_modules/better-dsh/docs/20_specs/mobile-layout/spec.md +0 -108
  67. package/node_modules/better-dsh/docs/20_specs/model-failover/spec.md +0 -20
  68. package/node_modules/better-dsh/docs/20_specs/plugins-page-components/spec.md +0 -79
  69. package/node_modules/better-dsh/docs/20_specs/preact-ui-shell/spec.md +0 -22
  70. package/node_modules/better-dsh/docs/20_specs/repl-dispatch-resilience/spec.md +0 -21
  71. package/node_modules/better-dsh/docs/20_specs/skill/spec.md +0 -58
  72. package/node_modules/better-dsh/docs/20_specs/tool-surface/spec.md +0 -222
  73. package/node_modules/better-dsh/docs/20_specs/url-schema/spec.md +0 -148
  74. package/node_modules/better-dsh/docs/20_specs/web-trust-fence/spec.md +0 -43
  75. package/node_modules/better-dsh/docs/50_test-reports/2026-09-06-write/345/267/245/345/205/267sandbox/345/215/207/347/272/247/351/200/217/344/274/240bug/345/244/215/345/217/221/345/217/212/346/214/202/350/265/267-/344/272/213/344/273/266/346/212/245/345/221/212.md +0 -176
  76. package/node_modules/better-dsh/docs/50_test-reports/2026-09-08-hashline-edit-E_RANGE_UNVERIFIED/350/267/250/350/275/256/344/274/232/350/257/235/351/224/256/345/244/261/346/225/210-/350/257/212/346/226/255/346/212/245/345/221/212.md +0 -226
  77. package/node_modules/better-dsh/docs/50_test-reports/2026-09-11-control-prompt-into-eval-description/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -222
  78. package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-fs-scheme-resolution-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -81
  79. package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-grammar-matrix/344/270/216catalog-centralize-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -234
  80. package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-recallable-context-design/351/252/214/350/257/201/346/212/245/345/221/212.md +0 -160
  81. package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-recallable-context-/345/256/236/346/265/213/345/211/247/346/234/254.md +0 -44
  82. package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-recallable-context-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -89
  83. package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-/345/205/255scheme/345/206/222/347/203/237/344/270/216/350/276/271/347/225/214/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -198
  84. package/node_modules/better-dsh/docs/50_test-reports/2026-09-13-hashline-off/344/270/213scheme/345/217/257/350/276/276/346/200/247/345/267/245/345/205/267/351/235/242/344/270/215/345/257/271/347/247/260-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -246
  85. package/node_modules/better-dsh/docs/50_test-reports/2026-09-13-preact-ui-shell/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -50
  86. package/node_modules/better-dsh/docs/50_test-reports/2026-09-14-4999-skill/346/270/205/345/215/225/344/270/216lsp-gate/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -63
  87. package/node_modules/better-dsh/docs/50_test-reports/2026-09-17-plugins/351/241/265/345/205/255/347/273/204/344/273/266/346/213/206/345/210/206/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -76
  88. package/node_modules/better-dsh/docs/50_test-reports/2026-09-22-4988/345/217/214/345/271/263/351/235/242/345/220/257/345/212/250/344/277/256/345/244/215/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -76
  89. package/node_modules/better-dsh/docs/50_test-reports/2026-09-22-better-dsh/347/273/204/344/273/266/347/203/255/346/217/222/346/213/224/344/270/216/344/276/235/350/265/226/347/272/247/350/201/224/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -134
  90. package/node_modules/better-dsh/docs/50_test-reports/2026-09-23-remote-framework/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -92
  91. package/node_modules/better-dsh/docs/50_test-reports/2026-09-23-remote-framework/347/254/254/344/270/200/344/272/272/347/247/260/345/244/215/346/265/213/346/212/245/345/221/212.md +0 -125
  92. package/node_modules/better-dsh/docs/50_test-reports/2026-09-23-ssh/345/267/245/345/205/267assisted-pty/344/274/232/350/257/235framing/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -207
  93. package/node_modules/better-dsh/docs/50_test-reports/2026-09-24-v0.1.7-rc.1/345/257/271/351/275/220/350/275/256-compaction/344/270/216failover/350/256/276/347/275/256/351/235/242/344/277/256/345/244/215/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -65
  94. package/node_modules/better-dsh/docs/50_test-reports/2026-09-27-lsp-ast-reminder-4999/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -53
  95. package/node_modules/better-dsh/docs/50_test-reports/2026-09-28-ctx-scheme/351/225/277/344/274/232/350/257/235utility/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -155
  96. package/node_modules/better-dsh/docs/50_test-reports/2026-10-01-v0.2.4d-web-password-gate/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -105
  97. package/node_modules/better-dsh/docs/50_test-reports/2026-10-02-better-dsh-schemastery/344/276/235/350/265/226/345/243/260/346/230/216/344/277/256/345/244/215/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -62
  98. package/node_modules/better-dsh/docs/50_test-reports/2026-10-02-ctx-navigation/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -137
  99. package/node_modules/better-dsh/docs/50_test-reports/2026-10-02-v0.2.0-rc.2/345/257/271/351/275/220/350/275/256/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -38
  100. package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-ast-engine-deomp-4999/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -325
  101. package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-better-dsh-tool-surface-repl-dvc-browser-ast-lsp-4999/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -185
  102. package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-docs-packaging-trim/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -82
  103. package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-physical-import/344/270/216llm-completion-ast/347/233/270/345/257/271/350/267/257/345/276/204/344/277/256/345/244/215/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -101
  104. package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-pnpm11/345/271/264/351/276/204/351/227/250/351/224/201/346/226/207/344/273/266/347/233/270/344/275/215/345/256/236/350/257/201.md +0 -54
  105. package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-remote-BYO-PTY-label/351/207/215/346/236/204/347/254/254/344/270/200/344/272/272/347/247/260/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -447
  106. package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-schemastery-cosmokit/346/272/220/347/240/201/345/206/205/350/201/224/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -63
  107. package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-zero-npm-runtime-deps/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -82
  108. package/node_modules/better-dsh/docs/50_test-reports/2026-10-04-ast-engine-deomp-0.2.5-d/345/217/221/345/270/203/351/252/214/346/224/266/346/212/245/345/221/212.md +0 -220
  109. package/node_modules/better-dsh/docs/50_test-reports/2026-10-04-ast_grep/344/270/216ast_edit/345/245/221/347/272/246/344/270/216/350/276/271/347/225/214/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -151
  110. package/node_modules/better-dsh/docs/50_test-reports/2026-10-06-authentication-only-web-admission-4999.md +0 -63
  111. package/node_modules/better-dsh/docs/50_test-reports/2026-10-07-better-dsh-welcome-self-contained-4999.md +0 -52
  112. package/node_modules/better-dsh/docs/50_test-reports/REPL-/345/267/245/345/205/267/350/260/203/347/224/250-/346/210/252/346/226/255/350/257/212/346/226/255.md +0 -110
  113. package/node_modules/better-dsh/docs/50_test-reports/kernel-provisioning.md +0 -44
  114. package/node_modules/better-dsh/docs/50_test-reports/repl-kernel-provisioning-test-report.md +0 -87
  115. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.2-alpha.5-local-test-report.md +0 -81
  116. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.2-alpha.5-report.md +0 -93
  117. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.3-alpha.2-local-test-report.md +0 -44
  118. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.3-alpha.2-report.md +0 -110
  119. package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.5-rc.2-local-test-report.md +0 -79
  120. package/node_modules/better-dsh/docs/50_test-reports/v0.1.8-improved-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -142
  121. package/node_modules/better-dsh/docs/50_test-reports/v0.1.8-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -193
  122. package/node_modules/better-dsh/docs/50_test-reports/v0.1.8b-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -96
  123. package/node_modules/better-dsh/docs/50_test-reports/v0.1.8c-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -127
  124. package/node_modules/better-dsh/docs/50_test-reports/v0.1.8d-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -150
  125. package/node_modules/better-dsh/docs/50_test-reports/v0.1.8e-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -224
  126. package/node_modules/better-dsh/docs/50_test-reports/v0.1.9a-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -168
  127. package/node_modules/better-dsh/docs/50_test-reports/v0.2.0b-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -123
  128. package/node_modules/better-dsh/docs/50_test-reports/v0.2.1-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -110
  129. package/node_modules/better-dsh/docs/50_test-reports/v0.2.1b-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -86
  130. package/node_modules/better-dsh/docs/50_test-reports/v0.2.1c-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -66
  131. package/node_modules/better-dsh/docs/50_test-reports/v0.2.1d-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -67
  132. package/node_modules/better-dsh/docs/50_test-reports/v0.2.1e-P1-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -136
  133. package/node_modules/better-dsh/docs/50_test-reports/v0.2.1ef-dev-audit-report.md +0 -73
  134. package/node_modules/better-dsh/docs/50_test-reports/v0.2.1f-plugin-shipped-ui-patches/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -102
  135. package/node_modules/better-dsh/docs/50_test-reports/v0.2.3b-hashline-content-locator/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -73
  136. package/node_modules/better-dsh/docs/50_test-reports/v0.2.3c-mobile-wave/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -47
  137. package/node_modules/better-dsh/docs/50_test-reports/v0.2.4-ios-focus-zoom-suppression/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -158
  138. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/SKILL.md +0 -147
  139. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch01-user-guide.md +0 -123
  140. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch02-plugin-basics.md +0 -127
  141. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch03-plugin-framework-practice.md +0 -120
  142. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch04-cordis-fundamentals.md +0 -129
  143. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch05-cordis-api.md +0 -115
  144. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch06-architecture.md +0 -109
  145. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch07-capability-seams.md +0 -97
  146. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch08-internals-pipelines.md +0 -111
  147. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch09-api-gateway.md +0 -106
  148. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch10-config-catalog.md +0 -97
  149. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch11-tool-catalog.md +0 -121
  150. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch12-persistence-catalog.md +0 -109
  151. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch13-subsystems-core-session.md +0 -106
  152. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch14-subsystems-agent-loop.md +0 -111
  153. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch15-subsystems-tool-execution.md +0 -106
  154. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch16-subsystems-session-data.md +0 -132
  155. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch17-subsystems-llm-streaming.md +0 -128
  156. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch18-subsystems-web-ui.md +0 -142
  157. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch19-cookbook.md +0 -149
  158. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch20-development-testing.md +0 -87
  159. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch21-postmortems.md +0 -82
  160. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch22-i18n.md +0 -86
  161. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/cheatsheet.md +0 -67
  162. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/glossary.md +0 -57
  163. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/patterns.md +0 -88
  164. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/AGENTS.md +0 -75
  165. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/agent-lifecycle.md +0 -84
  166. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/agent-lifecycle.zh.md +0 -86
  167. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/api-gateway.md +0 -164
  168. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/api-gateway.zh.md +0 -164
  169. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/architecture.md +0 -150
  170. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/architecture.zh.md +0 -154
  171. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/capability-seams.md +0 -543
  172. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/capability-seams.zh.md +0 -545
  173. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/config-catalog.md +0 -3473
  174. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/config-catalog.zh.md +0 -3474
  175. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-package.md +0 -117
  176. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-package.zh.md +0 -119
  177. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-remote-api.md +0 -197
  178. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-remote-api.zh.md +0 -197
  179. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-settings-card.md +0 -102
  180. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-settings-card.zh.md +0 -102
  181. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-tool.md +0 -101
  182. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-tool.zh.md +0 -103
  183. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-vendored-package.md +0 -59
  184. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-vendored-package.zh.md +0 -59
  185. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-an-llm-adapter.md +0 -43
  186. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-an-llm-adapter.zh.md +0 -43
  187. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/extension-cookbook.md +0 -132
  188. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/extension-cookbook.zh.md +0 -136
  189. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/maintaining-dsh-code-review.md +0 -64
  190. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/maintaining-dsh-code-review.zh.md +0 -64
  191. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/responding-to-pr-review-on-a-stack.md +0 -32
  192. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +0 -32
  193. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/context.md +0 -364
  194. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/context.zh.md +0 -366
  195. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/events.md +0 -207
  196. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/events.zh.md +0 -209
  197. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/fiber.md +0 -375
  198. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/fiber.zh.md +0 -377
  199. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/inherited.md +0 -39
  200. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/registry.md +0 -152
  201. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/registry.zh.md +0 -154
  202. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/service.md +0 -102
  203. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/service.zh.md +0 -104
  204. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-primer.md +0 -45
  205. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-primer.zh.md +0 -51
  206. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/01-first-plugin.md +0 -95
  207. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/01-first-plugin.zh.md +0 -95
  208. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/02-lifecycle-and-effects.md +0 -98
  209. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +0 -98
  210. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/03-services.md +0 -98
  211. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/03-services.zh.md +0 -98
  212. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/04-events.md +0 -144
  213. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/04-events.zh.md +0 -144
  214. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/05-config.md +0 -84
  215. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/05-config.zh.md +0 -84
  216. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/06-composition-and-hmr.md +0 -113
  217. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/06-composition-and-hmr.zh.md +0 -113
  218. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/07-into-the-harness.md +0 -108
  219. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/07-into-the-harness.zh.md +0 -108
  220. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/index.md +0 -60
  221. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/index.zh.md +0 -62
  222. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/deepseek-llm-api-wire-extensions.md +0 -163
  223. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/deepseek-llm-api-wire-extensions.zh.md +0 -163
  224. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/defensive-patterns.md +0 -33
  225. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/defensive-patterns.zh.md +0 -35
  226. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/development.md +0 -167
  227. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/development.zh.md +0 -173
  228. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/event-producer-consumer.md +0 -86
  229. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/event-producer-consumer.zh.md +0 -88
  230. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/glossary.md +0 -45
  231. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/glossary.zh.md +0 -45
  232. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/graph-atlas.md +0 -22
  233. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/graph-atlas.zh.md +0 -24
  234. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/README.md +0 -60
  235. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/README.zh.md +0 -62
  236. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/style-samples.md +0 -87
  237. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/terminology.md +0 -214
  238. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-prompt.md +0 -263
  239. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-rules.md +0 -69
  240. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-rules.zh.md +0 -69
  241. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/module-graph.md +0 -1411
  242. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/module-graph.zh.md +0 -1413
  243. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/persistence-catalog.md +0 -1075
  244. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/persistence-catalog.zh.md +0 -1077
  245. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0001-acp-default-export-drops-inject.md +0 -113
  246. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0001-acp-default-export-drops-inject.zh.md +0 -113
  247. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +0 -47
  248. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +0 -47
  249. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0003-web-agent-gui-feedback-loop.md +0 -53
  250. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +0 -53
  251. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +0 -55
  252. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +0 -55
  253. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/README.md +0 -18
  254. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/README.zh.md +0 -18
  255. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/rescope.md +0 -53
  256. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/rescope.zh.md +0 -53
  257. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/README.md +0 -61
  258. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/README.zh.md +0 -61
  259. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/agent-team.md +0 -207
  260. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/agent-team.zh.md +0 -207
  261. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/approval.md +0 -170
  262. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/approval.zh.md +0 -170
  263. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/attachment.md +0 -351
  264. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/attachment.zh.md +0 -351
  265. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/client-modules.md +0 -168
  266. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/client-modules.zh.md +0 -168
  267. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/code-runtime.md +0 -195
  268. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/code-runtime.zh.md +0 -195
  269. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/commands.md +0 -219
  270. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/commands.zh.md +0 -219
  271. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/compaction.md +0 -238
  272. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/compaction.zh.md +0 -238
  273. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/conversation.md +0 -258
  274. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/conversation.zh.md +0 -258
  275. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/core.md +0 -1209
  276. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/core.zh.md +0 -1219
  277. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/credentials.md +0 -329
  278. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/credentials.zh.md +0 -329
  279. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/extensions.md +0 -382
  280. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/extensions.zh.md +0 -382
  281. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/feedback.md +0 -266
  282. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/feedback.zh.md +0 -266
  283. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/filesystem.md +0 -505
  284. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/filesystem.zh.md +0 -505
  285. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/goal.md +0 -277
  286. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/goal.zh.md +0 -277
  287. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/invariants.md +0 -88
  288. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/invariants.zh.md +0 -88
  289. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/jobs.md +0 -290
  290. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/jobs.zh.md +0 -290
  291. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/llm-streaming.md +0 -1080
  292. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/llm-streaming.zh.md +0 -1086
  293. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/lsp.md +0 -202
  294. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/lsp.zh.md +0 -202
  295. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/permission-presets.md +0 -131
  296. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/permission-presets.zh.md +0 -131
  297. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/persistence.md +0 -395
  298. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/persistence.zh.md +0 -395
  299. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/plan.md +0 -87
  300. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/plan.zh.md +0 -87
  301. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/sandbox.md +0 -220
  302. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/sandbox.zh.md +0 -220
  303. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/schedule.md +0 -192
  304. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/schedule.zh.md +0 -192
  305. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/scope.md +0 -59
  306. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/scope.zh.md +0 -59
  307. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-projection.md +0 -354
  308. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-projection.zh.md +0 -354
  309. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-query.md +0 -509
  310. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-query.zh.md +0 -509
  311. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-reference.md +0 -219
  312. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-reference.zh.md +0 -219
  313. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-telemetry.md +0 -194
  314. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-telemetry.zh.md +0 -194
  315. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-title.md +0 -204
  316. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-title.zh.md +0 -204
  317. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session.md +0 -1155
  318. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session.zh.md +0 -1159
  319. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/settings.md +0 -405
  320. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/settings.zh.md +0 -405
  321. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/shell.md +0 -303
  322. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/shell.zh.md +0 -303
  323. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/skills.md +0 -354
  324. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/skills.zh.md +0 -354
  325. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/slots.md +0 -175
  326. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/slots.zh.md +0 -175
  327. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/spill.md +0 -117
  328. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/spill.zh.md +0 -117
  329. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/storage.md +0 -260
  330. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/storage.zh.md +0 -260
  331. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subagent.md +0 -766
  332. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subagent.zh.md +0 -770
  333. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subprocess.md +0 -324
  334. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subprocess.zh.md +0 -324
  335. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/system-prompt.md +0 -220
  336. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/system-prompt.zh.md +0 -220
  337. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/terminal.md +0 -184
  338. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/terminal.zh.md +0 -184
  339. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/todo.md +0 -32
  340. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/todo.zh.md +0 -32
  341. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/token-meter.md +0 -105
  342. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/token-meter.zh.md +0 -105
  343. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/tools.md +0 -720
  344. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/tools.zh.md +0 -720
  345. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/typert.md +0 -343
  346. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/typert.zh.md +0 -343
  347. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/user-questions.md +0 -178
  348. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/user-questions.zh.md +0 -178
  349. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-client.md +0 -95
  350. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-client.zh.md +0 -95
  351. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-server.md +0 -154
  352. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-server.zh.md +0 -154
  353. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web.md +0 -206
  354. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web.zh.md +0 -206
  355. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/webhook.md +0 -70
  356. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/webhook.zh.md +0 -70
  357. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workflow.md +0 -278
  358. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workflow.zh.md +0 -278
  359. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workspace.md +0 -321
  360. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workspace.zh.md +0 -321
  361. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/testing.md +0 -54
  362. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/testing.zh.md +0 -54
  363. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-catalog.md +0 -2225
  364. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-catalog.zh.md +0 -2233
  365. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-execution-pipeline.md +0 -62
  366. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-execution-pipeline.zh.md +0 -64
  367. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/config.md +0 -106
  368. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/config.zh.md +0 -106
  369. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/index.md +0 -144
  370. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/index.zh.md +0 -144
  371. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/publish.md +0 -183
  372. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/publish.zh.md +0 -183
  373. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/tool.md +0 -52
  374. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/tool.zh.md +0 -52
  375. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/events.md +0 -143
  376. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/events.zh.md +0 -143
  377. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/index.md +0 -137
  378. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/index.zh.md +0 -137
  379. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/service.md +0 -148
  380. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/service.zh.md +0 -150
  381. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/dynamic-cordis.md +0 -15
  382. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/dynamic-cordis.zh.md +0 -15
  383. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/index.md +0 -155
  384. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/index.zh.md +0 -155
  385. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/llm-adapter.md +0 -189
  386. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/llm-adapter.zh.md +0 -189
  387. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/github-review.md +0 -102
  388. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/github-review.zh.md +0 -102
  389. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/index.md +0 -30
  390. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/index.zh.md +0 -30
  391. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/mcp-memory.md +0 -101
  392. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/mcp-memory.zh.md +0 -101
  393. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/network-proxy.md +0 -85
  394. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/network-proxy.zh.md +0 -85
  395. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/providers.md +0 -190
  396. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/providers.zh.md +0 -190
  397. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/python-sdk.md +0 -150
  398. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/python-sdk.zh.md +0 -150
  399. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/schedule.md +0 -21
  400. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/schedule.zh.md +0 -21
  401. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/index.md +0 -11
  402. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/index.zh.md +0 -11
  403. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/web-styling.md +0 -29
  404. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/web-styling.zh.md +0 -29
  405. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/site-pages-map.txt +0 -234
  406. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/site-pages.json +0 -232
  407. package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src-README.md +0 -63
  408. package/node_modules/better-dsh/docs/dev-test-environment-notes.md +0 -137
  409. package/node_modules/better-dsh/docs/distro-blueprint.md +0 -81
  410. package/node_modules/better-dsh/docs/dsh-webUI-with-rlm-mode.png +0 -0
  411. package/node_modules/better-dsh/docs/repositioning-and-rebranding.md +0 -102
  412. package/node_modules/better-dsh/docs/specs/agent/spec.md +0 -54
  413. package/node_modules/better-dsh/docs/specs/ast/spec.md +0 -57
  414. package/node_modules/better-dsh/docs/specs/ast-engine-deomp/spec.md +0 -170
  415. package/node_modules/better-dsh/docs/specs/authentication-only-web-admission/spec.md +0 -51
  416. package/node_modules/better-dsh/docs/specs/compaction-recall/spec.md +0 -46
  417. package/node_modules/better-dsh/docs/specs/ctx/spec.md +0 -179
  418. package/node_modules/better-dsh/docs/specs/docs-packaging-trim/spec.md +0 -110
  419. package/node_modules/better-dsh/docs/specs/dsh/spec.md +0 -47
  420. package/node_modules/better-dsh/docs/specs/dvc/spec.md +0 -106
  421. package/node_modules/better-dsh/docs/specs/escalation-guidance/spec.md +0 -44
  422. package/node_modules/better-dsh/docs/specs/fs-scheme-resolution/spec.md +0 -37
  423. package/node_modules/better-dsh/docs/specs/hash-edit/spec.md +0 -41
  424. package/node_modules/better-dsh/docs/specs/http-read/spec.md +0 -73
  425. package/node_modules/better-dsh/docs/specs/kernel-provisioning/spec.md +0 -53
  426. package/node_modules/better-dsh/docs/specs/lsp/spec.md +0 -121
  427. package/node_modules/better-dsh/docs/specs/mobile-layout/spec.md +0 -108
  428. package/node_modules/better-dsh/docs/specs/model-failover/spec.md +0 -20
  429. package/node_modules/better-dsh/docs/specs/model-picker-ios-blur/spec.md +0 -168
  430. package/node_modules/better-dsh/docs/specs/plugins-page-components/spec.md +0 -79
  431. package/node_modules/better-dsh/docs/specs/preact-ui-shell/spec.md +0 -22
  432. package/node_modules/better-dsh/docs/specs/remote-pty-label/spec.md +0 -126
  433. package/node_modules/better-dsh/docs/specs/repl-dispatch-resilience/spec.md +0 -21
  434. package/node_modules/better-dsh/docs/specs/skill/spec.md +0 -58
  435. package/node_modules/better-dsh/docs/specs/tool-surface/spec.md +0 -222
  436. package/node_modules/better-dsh/docs/specs/url-schema/spec.md +0 -148
  437. package/node_modules/better-dsh/docs/specs/web-trust-fence/spec.md +0 -43
  438. package/node_modules/better-dsh/docs/specs/welcome-self-contained/spec.md +0 -13
  439. package/node_modules/better-dsh/docs/specs/zero-npm-runtime-deps/spec.md +0 -85
  440. package/node_modules/better-dsh/docs/superpowers/plans/2026-10-02-ctx-navigation.md +0 -319
  441. package/node_modules/better-dsh/docs/superpowers/plans/2026-10-03-ast-engine-deomp.md +0 -1214
  442. package/node_modules/better-dsh/docs/superpowers/plans/2026-10-03-docs-packaging-trim.md +0 -181
  443. package/node_modules/better-dsh/docs/superpowers/specs/2026-10-02-ctx-navigation-design.md +0 -209
  444. package/node_modules/better-dsh/docs/upstream-dsh-0.1.5-rc.2-report.md +0 -156
  445. package/node_modules/better-dsh/dsh-docs/AGENTS.md +0 -75
  446. package/node_modules/better-dsh/dsh-docs/agent-lifecycle.md +0 -84
  447. package/node_modules/better-dsh/dsh-docs/agent-lifecycle.zh.md +0 -86
  448. package/node_modules/better-dsh/dsh-docs/api-gateway.md +0 -164
  449. package/node_modules/better-dsh/dsh-docs/api-gateway.zh.md +0 -164
  450. package/node_modules/better-dsh/dsh-docs/architecture.md +0 -150
  451. package/node_modules/better-dsh/dsh-docs/architecture.zh.md +0 -154
  452. package/node_modules/better-dsh/dsh-docs/baseline.md +0 -13
  453. package/node_modules/better-dsh/dsh-docs/capability-seams.md +0 -543
  454. package/node_modules/better-dsh/dsh-docs/capability-seams.zh.md +0 -545
  455. package/node_modules/better-dsh/dsh-docs/config-catalog.md +0 -3473
  456. package/node_modules/better-dsh/dsh-docs/config-catalog.zh.md +0 -3474
  457. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-package.md +0 -117
  458. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-package.zh.md +0 -119
  459. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-remote-api.md +0 -197
  460. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-remote-api.zh.md +0 -197
  461. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-session-format-version.md +0 -109
  462. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-session-format-version.zh.md +0 -109
  463. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-settings-card.md +0 -102
  464. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-settings-card.zh.md +0 -102
  465. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-tool.md +0 -101
  466. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-tool.zh.md +0 -103
  467. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-vendored-package.md +0 -59
  468. package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-vendored-package.zh.md +0 -59
  469. package/node_modules/better-dsh/dsh-docs/cookbook/adding-an-llm-adapter.md +0 -43
  470. package/node_modules/better-dsh/dsh-docs/cookbook/adding-an-llm-adapter.zh.md +0 -43
  471. package/node_modules/better-dsh/dsh-docs/cookbook/extension-cookbook.md +0 -132
  472. package/node_modules/better-dsh/dsh-docs/cookbook/extension-cookbook.zh.md +0 -136
  473. package/node_modules/better-dsh/dsh-docs/cookbook/maintaining-dsh-code-review.md +0 -64
  474. package/node_modules/better-dsh/dsh-docs/cookbook/maintaining-dsh-code-review.zh.md +0 -64
  475. package/node_modules/better-dsh/dsh-docs/cookbook/responding-to-pr-review-on-a-stack.md +0 -32
  476. package/node_modules/better-dsh/dsh-docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +0 -32
  477. package/node_modules/better-dsh/dsh-docs/cordis-api/context.md +0 -364
  478. package/node_modules/better-dsh/dsh-docs/cordis-api/context.zh.md +0 -366
  479. package/node_modules/better-dsh/dsh-docs/cordis-api/events.md +0 -207
  480. package/node_modules/better-dsh/dsh-docs/cordis-api/events.zh.md +0 -209
  481. package/node_modules/better-dsh/dsh-docs/cordis-api/fiber.md +0 -375
  482. package/node_modules/better-dsh/dsh-docs/cordis-api/fiber.zh.md +0 -377
  483. package/node_modules/better-dsh/dsh-docs/cordis-api/inherited.md +0 -39
  484. package/node_modules/better-dsh/dsh-docs/cordis-api/registry.md +0 -152
  485. package/node_modules/better-dsh/dsh-docs/cordis-api/registry.zh.md +0 -154
  486. package/node_modules/better-dsh/dsh-docs/cordis-api/service.md +0 -102
  487. package/node_modules/better-dsh/dsh-docs/cordis-api/service.zh.md +0 -104
  488. package/node_modules/better-dsh/dsh-docs/cordis-primer.md +0 -45
  489. package/node_modules/better-dsh/dsh-docs/cordis-primer.zh.md +0 -51
  490. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/01-first-plugin.md +0 -95
  491. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/01-first-plugin.zh.md +0 -95
  492. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/02-lifecycle-and-effects.md +0 -98
  493. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +0 -98
  494. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/03-services.md +0 -98
  495. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/03-services.zh.md +0 -98
  496. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/04-events.md +0 -144
  497. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/04-events.zh.md +0 -144
  498. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/05-config.md +0 -84
  499. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/05-config.zh.md +0 -84
  500. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/06-composition-and-hmr.md +0 -113
  501. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/06-composition-and-hmr.zh.md +0 -113
  502. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/07-into-the-harness.md +0 -108
  503. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/07-into-the-harness.zh.md +0 -108
  504. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/index.md +0 -60
  505. package/node_modules/better-dsh/dsh-docs/cordis-tutorial/index.zh.md +0 -62
  506. package/node_modules/better-dsh/dsh-docs/deepseek-llm-api-wire-extensions.md +0 -163
  507. package/node_modules/better-dsh/dsh-docs/deepseek-llm-api-wire-extensions.zh.md +0 -163
  508. package/node_modules/better-dsh/dsh-docs/defensive-patterns.md +0 -33
  509. package/node_modules/better-dsh/dsh-docs/defensive-patterns.zh.md +0 -35
  510. package/node_modules/better-dsh/dsh-docs/development.md +0 -167
  511. package/node_modules/better-dsh/dsh-docs/development.zh.md +0 -173
  512. package/node_modules/better-dsh/dsh-docs/event-producer-consumer.md +0 -86
  513. package/node_modules/better-dsh/dsh-docs/event-producer-consumer.zh.md +0 -88
  514. package/node_modules/better-dsh/dsh-docs/glossary.md +0 -45
  515. package/node_modules/better-dsh/dsh-docs/glossary.zh.md +0 -45
  516. package/node_modules/better-dsh/dsh-docs/graph-atlas.md +0 -22
  517. package/node_modules/better-dsh/dsh-docs/graph-atlas.zh.md +0 -24
  518. package/node_modules/better-dsh/dsh-docs/i18n/README.md +0 -60
  519. package/node_modules/better-dsh/dsh-docs/i18n/README.zh.md +0 -62
  520. package/node_modules/better-dsh/dsh-docs/i18n/style-samples.md +0 -87
  521. package/node_modules/better-dsh/dsh-docs/i18n/terminology.md +0 -214
  522. package/node_modules/better-dsh/dsh-docs/i18n/translation-prompt.md +0 -263
  523. package/node_modules/better-dsh/dsh-docs/i18n/translation-rules.md +0 -69
  524. package/node_modules/better-dsh/dsh-docs/i18n/translation-rules.zh.md +0 -69
  525. package/node_modules/better-dsh/dsh-docs/module-graph.md +0 -1411
  526. package/node_modules/better-dsh/dsh-docs/module-graph.zh.md +0 -1413
  527. package/node_modules/better-dsh/dsh-docs/persistence-catalog.md +0 -1075
  528. package/node_modules/better-dsh/dsh-docs/persistence-catalog.zh.md +0 -1077
  529. package/node_modules/better-dsh/dsh-docs/postmortem/0001-acp-default-export-drops-inject.md +0 -113
  530. package/node_modules/better-dsh/dsh-docs/postmortem/0001-acp-default-export-drops-inject.zh.md +0 -113
  531. package/node_modules/better-dsh/dsh-docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +0 -47
  532. package/node_modules/better-dsh/dsh-docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +0 -47
  533. package/node_modules/better-dsh/dsh-docs/postmortem/0003-web-agent-gui-feedback-loop.md +0 -53
  534. package/node_modules/better-dsh/dsh-docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +0 -53
  535. package/node_modules/better-dsh/dsh-docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +0 -55
  536. package/node_modules/better-dsh/dsh-docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +0 -55
  537. package/node_modules/better-dsh/dsh-docs/postmortem/README.md +0 -18
  538. package/node_modules/better-dsh/dsh-docs/postmortem/README.zh.md +0 -18
  539. package/node_modules/better-dsh/dsh-docs/rescope.md +0 -53
  540. package/node_modules/better-dsh/dsh-docs/rescope.zh.md +0 -53
  541. package/node_modules/better-dsh/dsh-docs/session-format-status.md +0 -47
  542. package/node_modules/better-dsh/dsh-docs/session-format-status.zh.md +0 -47
  543. package/node_modules/better-dsh/dsh-docs/subsystems/README.md +0 -61
  544. package/node_modules/better-dsh/dsh-docs/subsystems/README.zh.md +0 -61
  545. package/node_modules/better-dsh/dsh-docs/subsystems/agent-team.md +0 -207
  546. package/node_modules/better-dsh/dsh-docs/subsystems/agent-team.zh.md +0 -207
  547. package/node_modules/better-dsh/dsh-docs/subsystems/approval.md +0 -170
  548. package/node_modules/better-dsh/dsh-docs/subsystems/approval.zh.md +0 -170
  549. package/node_modules/better-dsh/dsh-docs/subsystems/attachment.md +0 -351
  550. package/node_modules/better-dsh/dsh-docs/subsystems/attachment.zh.md +0 -351
  551. package/node_modules/better-dsh/dsh-docs/subsystems/client-modules.md +0 -168
  552. package/node_modules/better-dsh/dsh-docs/subsystems/client-modules.zh.md +0 -168
  553. package/node_modules/better-dsh/dsh-docs/subsystems/client-resources.md +0 -91
  554. package/node_modules/better-dsh/dsh-docs/subsystems/client-resources.zh.md +0 -91
  555. package/node_modules/better-dsh/dsh-docs/subsystems/code-runtime.md +0 -195
  556. package/node_modules/better-dsh/dsh-docs/subsystems/code-runtime.zh.md +0 -195
  557. package/node_modules/better-dsh/dsh-docs/subsystems/commands.md +0 -219
  558. package/node_modules/better-dsh/dsh-docs/subsystems/commands.zh.md +0 -219
  559. package/node_modules/better-dsh/dsh-docs/subsystems/compaction.md +0 -238
  560. package/node_modules/better-dsh/dsh-docs/subsystems/compaction.zh.md +0 -238
  561. package/node_modules/better-dsh/dsh-docs/subsystems/conversation.md +0 -258
  562. package/node_modules/better-dsh/dsh-docs/subsystems/conversation.zh.md +0 -258
  563. package/node_modules/better-dsh/dsh-docs/subsystems/core.md +0 -1209
  564. package/node_modules/better-dsh/dsh-docs/subsystems/core.zh.md +0 -1219
  565. package/node_modules/better-dsh/dsh-docs/subsystems/credentials.md +0 -329
  566. package/node_modules/better-dsh/dsh-docs/subsystems/credentials.zh.md +0 -329
  567. package/node_modules/better-dsh/dsh-docs/subsystems/extensions.md +0 -382
  568. package/node_modules/better-dsh/dsh-docs/subsystems/extensions.zh.md +0 -382
  569. package/node_modules/better-dsh/dsh-docs/subsystems/feedback.md +0 -266
  570. package/node_modules/better-dsh/dsh-docs/subsystems/feedback.zh.md +0 -266
  571. package/node_modules/better-dsh/dsh-docs/subsystems/filesystem.md +0 -505
  572. package/node_modules/better-dsh/dsh-docs/subsystems/filesystem.zh.md +0 -505
  573. package/node_modules/better-dsh/dsh-docs/subsystems/goal.md +0 -277
  574. package/node_modules/better-dsh/dsh-docs/subsystems/goal.zh.md +0 -277
  575. package/node_modules/better-dsh/dsh-docs/subsystems/invariants.md +0 -91
  576. package/node_modules/better-dsh/dsh-docs/subsystems/invariants.zh.md +0 -91
  577. package/node_modules/better-dsh/dsh-docs/subsystems/jobs.md +0 -290
  578. package/node_modules/better-dsh/dsh-docs/subsystems/jobs.zh.md +0 -290
  579. package/node_modules/better-dsh/dsh-docs/subsystems/llm-streaming.md +0 -1080
  580. package/node_modules/better-dsh/dsh-docs/subsystems/llm-streaming.zh.md +0 -1086
  581. package/node_modules/better-dsh/dsh-docs/subsystems/lsp.md +0 -202
  582. package/node_modules/better-dsh/dsh-docs/subsystems/lsp.zh.md +0 -202
  583. package/node_modules/better-dsh/dsh-docs/subsystems/permission-presets.md +0 -131
  584. package/node_modules/better-dsh/dsh-docs/subsystems/permission-presets.zh.md +0 -131
  585. package/node_modules/better-dsh/dsh-docs/subsystems/persistence.md +0 -395
  586. package/node_modules/better-dsh/dsh-docs/subsystems/persistence.zh.md +0 -395
  587. package/node_modules/better-dsh/dsh-docs/subsystems/plan.md +0 -87
  588. package/node_modules/better-dsh/dsh-docs/subsystems/plan.zh.md +0 -87
  589. package/node_modules/better-dsh/dsh-docs/subsystems/sandbox.md +0 -220
  590. package/node_modules/better-dsh/dsh-docs/subsystems/sandbox.zh.md +0 -220
  591. package/node_modules/better-dsh/dsh-docs/subsystems/schedule.md +0 -192
  592. package/node_modules/better-dsh/dsh-docs/subsystems/schedule.zh.md +0 -192
  593. package/node_modules/better-dsh/dsh-docs/subsystems/scope.md +0 -59
  594. package/node_modules/better-dsh/dsh-docs/subsystems/scope.zh.md +0 -59
  595. package/node_modules/better-dsh/dsh-docs/subsystems/session-projection.md +0 -354
  596. package/node_modules/better-dsh/dsh-docs/subsystems/session-projection.zh.md +0 -354
  597. package/node_modules/better-dsh/dsh-docs/subsystems/session-query.md +0 -509
  598. package/node_modules/better-dsh/dsh-docs/subsystems/session-query.zh.md +0 -509
  599. package/node_modules/better-dsh/dsh-docs/subsystems/session-reference.md +0 -219
  600. package/node_modules/better-dsh/dsh-docs/subsystems/session-reference.zh.md +0 -219
  601. package/node_modules/better-dsh/dsh-docs/subsystems/session-telemetry.md +0 -194
  602. package/node_modules/better-dsh/dsh-docs/subsystems/session-telemetry.zh.md +0 -194
  603. package/node_modules/better-dsh/dsh-docs/subsystems/session-title.md +0 -204
  604. package/node_modules/better-dsh/dsh-docs/subsystems/session-title.zh.md +0 -204
  605. package/node_modules/better-dsh/dsh-docs/subsystems/session.md +0 -1155
  606. package/node_modules/better-dsh/dsh-docs/subsystems/session.zh.md +0 -1159
  607. package/node_modules/better-dsh/dsh-docs/subsystems/settings.md +0 -405
  608. package/node_modules/better-dsh/dsh-docs/subsystems/settings.zh.md +0 -405
  609. package/node_modules/better-dsh/dsh-docs/subsystems/shell.md +0 -303
  610. package/node_modules/better-dsh/dsh-docs/subsystems/shell.zh.md +0 -303
  611. package/node_modules/better-dsh/dsh-docs/subsystems/sidebar-right.md +0 -148
  612. package/node_modules/better-dsh/dsh-docs/subsystems/sidebar-right.zh.md +0 -148
  613. package/node_modules/better-dsh/dsh-docs/subsystems/skills.md +0 -354
  614. package/node_modules/better-dsh/dsh-docs/subsystems/skills.zh.md +0 -354
  615. package/node_modules/better-dsh/dsh-docs/subsystems/slots.md +0 -175
  616. package/node_modules/better-dsh/dsh-docs/subsystems/slots.zh.md +0 -175
  617. package/node_modules/better-dsh/dsh-docs/subsystems/spill.md +0 -117
  618. package/node_modules/better-dsh/dsh-docs/subsystems/spill.zh.md +0 -117
  619. package/node_modules/better-dsh/dsh-docs/subsystems/storage.md +0 -260
  620. package/node_modules/better-dsh/dsh-docs/subsystems/storage.zh.md +0 -260
  621. package/node_modules/better-dsh/dsh-docs/subsystems/subagent.md +0 -766
  622. package/node_modules/better-dsh/dsh-docs/subsystems/subagent.zh.md +0 -770
  623. package/node_modules/better-dsh/dsh-docs/subsystems/subprocess.md +0 -324
  624. package/node_modules/better-dsh/dsh-docs/subsystems/subprocess.zh.md +0 -324
  625. package/node_modules/better-dsh/dsh-docs/subsystems/system-prompt.md +0 -220
  626. package/node_modules/better-dsh/dsh-docs/subsystems/system-prompt.zh.md +0 -220
  627. package/node_modules/better-dsh/dsh-docs/subsystems/terminal.md +0 -184
  628. package/node_modules/better-dsh/dsh-docs/subsystems/terminal.zh.md +0 -184
  629. package/node_modules/better-dsh/dsh-docs/subsystems/todo.md +0 -32
  630. package/node_modules/better-dsh/dsh-docs/subsystems/todo.zh.md +0 -32
  631. package/node_modules/better-dsh/dsh-docs/subsystems/token-meter.md +0 -105
  632. package/node_modules/better-dsh/dsh-docs/subsystems/token-meter.zh.md +0 -105
  633. package/node_modules/better-dsh/dsh-docs/subsystems/tools.md +0 -720
  634. package/node_modules/better-dsh/dsh-docs/subsystems/tools.zh.md +0 -720
  635. package/node_modules/better-dsh/dsh-docs/subsystems/typert.md +0 -343
  636. package/node_modules/better-dsh/dsh-docs/subsystems/typert.zh.md +0 -343
  637. package/node_modules/better-dsh/dsh-docs/subsystems/user-questions.md +0 -178
  638. package/node_modules/better-dsh/dsh-docs/subsystems/user-questions.zh.md +0 -178
  639. package/node_modules/better-dsh/dsh-docs/subsystems/web-client.md +0 -95
  640. package/node_modules/better-dsh/dsh-docs/subsystems/web-client.zh.md +0 -95
  641. package/node_modules/better-dsh/dsh-docs/subsystems/web-server.md +0 -154
  642. package/node_modules/better-dsh/dsh-docs/subsystems/web-server.zh.md +0 -154
  643. package/node_modules/better-dsh/dsh-docs/subsystems/web.md +0 -206
  644. package/node_modules/better-dsh/dsh-docs/subsystems/web.zh.md +0 -206
  645. package/node_modules/better-dsh/dsh-docs/subsystems/webhook.md +0 -70
  646. package/node_modules/better-dsh/dsh-docs/subsystems/webhook.zh.md +0 -70
  647. package/node_modules/better-dsh/dsh-docs/subsystems/workflow.md +0 -278
  648. package/node_modules/better-dsh/dsh-docs/subsystems/workflow.zh.md +0 -278
  649. package/node_modules/better-dsh/dsh-docs/subsystems/workspace.md +0 -321
  650. package/node_modules/better-dsh/dsh-docs/subsystems/workspace.zh.md +0 -321
  651. package/node_modules/better-dsh/dsh-docs/testing.md +0 -54
  652. package/node_modules/better-dsh/dsh-docs/testing.zh.md +0 -54
  653. package/node_modules/better-dsh/dsh-docs/tool-catalog.md +0 -2225
  654. package/node_modules/better-dsh/dsh-docs/tool-catalog.zh.md +0 -2233
  655. package/node_modules/better-dsh/dsh-docs/tool-execution-pipeline.md +0 -62
  656. package/node_modules/better-dsh/dsh-docs/tool-execution-pipeline.zh.md +0 -64
  657. package/node_modules/better-dsh/dsh-docs/user/develop/basic/config.md +0 -106
  658. package/node_modules/better-dsh/dsh-docs/user/develop/basic/config.zh.md +0 -106
  659. package/node_modules/better-dsh/dsh-docs/user/develop/basic/index.md +0 -144
  660. package/node_modules/better-dsh/dsh-docs/user/develop/basic/index.zh.md +0 -144
  661. package/node_modules/better-dsh/dsh-docs/user/develop/basic/publish.md +0 -183
  662. package/node_modules/better-dsh/dsh-docs/user/develop/basic/publish.zh.md +0 -183
  663. package/node_modules/better-dsh/dsh-docs/user/develop/basic/tool.md +0 -52
  664. package/node_modules/better-dsh/dsh-docs/user/develop/basic/tool.zh.md +0 -52
  665. package/node_modules/better-dsh/dsh-docs/user/develop/framework/events.md +0 -143
  666. package/node_modules/better-dsh/dsh-docs/user/develop/framework/events.zh.md +0 -143
  667. package/node_modules/better-dsh/dsh-docs/user/develop/framework/index.md +0 -137
  668. package/node_modules/better-dsh/dsh-docs/user/develop/framework/index.zh.md +0 -137
  669. package/node_modules/better-dsh/dsh-docs/user/develop/framework/service.md +0 -148
  670. package/node_modules/better-dsh/dsh-docs/user/develop/framework/service.zh.md +0 -150
  671. package/node_modules/better-dsh/dsh-docs/user/develop/practice/dynamic-cordis.md +0 -15
  672. package/node_modules/better-dsh/dsh-docs/user/develop/practice/dynamic-cordis.zh.md +0 -15
  673. package/node_modules/better-dsh/dsh-docs/user/develop/practice/index.md +0 -155
  674. package/node_modules/better-dsh/dsh-docs/user/develop/practice/index.zh.md +0 -155
  675. package/node_modules/better-dsh/dsh-docs/user/develop/practice/llm-adapter.md +0 -189
  676. package/node_modules/better-dsh/dsh-docs/user/develop/practice/llm-adapter.zh.md +0 -189
  677. package/node_modules/better-dsh/dsh-docs/user/guide/github-review.md +0 -102
  678. package/node_modules/better-dsh/dsh-docs/user/guide/github-review.zh.md +0 -102
  679. package/node_modules/better-dsh/dsh-docs/user/guide/index.md +0 -30
  680. package/node_modules/better-dsh/dsh-docs/user/guide/index.zh.md +0 -30
  681. package/node_modules/better-dsh/dsh-docs/user/guide/mcp-memory.md +0 -101
  682. package/node_modules/better-dsh/dsh-docs/user/guide/mcp-memory.zh.md +0 -101
  683. package/node_modules/better-dsh/dsh-docs/user/guide/network-proxy.md +0 -85
  684. package/node_modules/better-dsh/dsh-docs/user/guide/network-proxy.zh.md +0 -85
  685. package/node_modules/better-dsh/dsh-docs/user/guide/providers.md +0 -190
  686. package/node_modules/better-dsh/dsh-docs/user/guide/providers.zh.md +0 -190
  687. package/node_modules/better-dsh/dsh-docs/user/guide/python-sdk.md +0 -150
  688. package/node_modules/better-dsh/dsh-docs/user/guide/python-sdk.zh.md +0 -150
  689. package/node_modules/better-dsh/dsh-docs/user/guide/schedule.md +0 -21
  690. package/node_modules/better-dsh/dsh-docs/user/guide/schedule.zh.md +0 -21
  691. package/node_modules/better-dsh/dsh-docs/user/index.md +0 -11
  692. package/node_modules/better-dsh/dsh-docs/user/index.zh.md +0 -11
  693. package/node_modules/better-dsh/dsh-docs/web-styling.md +0 -29
  694. package/node_modules/better-dsh/dsh-docs/web-styling.zh.md +0 -29
  695. package/node_modules/better-dsh/eval-description.md +0 -33
  696. package/node_modules/better-dsh/lib/BrowserWebSocketTransport-D1aFReu_.js +0 -4
  697. package/node_modules/better-dsh/lib/BrowserWebSocketTransport-wm99h94r.js +0 -39
  698. package/node_modules/better-dsh/lib/LaunchOptions-B874eBu2.js +0 -4
  699. package/node_modules/better-dsh/lib/LaunchOptions-kGXcZOe0.js +0 -17
  700. package/node_modules/better-dsh/lib/NodeWebSocketTransport-BRLjmu2R.js +0 -4
  701. package/node_modules/better-dsh/lib/NodeWebSocketTransport-D9ysYGLM.js +0 -3634
  702. package/node_modules/better-dsh/lib/ast-assets/ast-grep.wasm +0 -0
  703. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-bash.wasm +0 -0
  704. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-c.wasm +0 -0
  705. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-cpp.wasm +0 -0
  706. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-css.wasm +0 -0
  707. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-go.wasm +0 -0
  708. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-html.wasm +0 -0
  709. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-javascript.wasm +0 -0
  710. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-json.wasm +0 -0
  711. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-python.wasm +0 -0
  712. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-ruby.wasm +0 -0
  713. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-rust.wasm +0 -0
  714. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-tsx.wasm +0 -0
  715. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-typescript.wasm +0 -0
  716. package/node_modules/better-dsh/lib/ast-assets/tree-sitter-yaml.wasm +0 -0
  717. package/node_modules/better-dsh/lib/ast-assets/tree-sitter.wasm +0 -0
  718. package/node_modules/better-dsh/lib/bidi-BalpKaJc.js +0 -16106
  719. package/node_modules/better-dsh/lib/bundle-delivery.d.ts +0 -20
  720. package/node_modules/better-dsh/lib/bundle-delivery.js +0 -212
  721. package/node_modules/better-dsh/lib/chunk-DQxbwPpZ.js +0 -30
  722. package/node_modules/better-dsh/lib/client/index.js +0 -712
  723. package/node_modules/better-dsh/lib/compaction/index.d.ts +0 -57
  724. package/node_modules/better-dsh/lib/compaction/index.js +0 -145
  725. package/node_modules/better-dsh/lib/failover/index.d.ts +0 -59
  726. package/node_modules/better-dsh/lib/failover/index.js +0 -147
  727. package/node_modules/better-dsh/lib/fs-aware/sandbox-plugin.d.ts +0 -71
  728. package/node_modules/better-dsh/lib/fs-aware/sandbox-plugin.js +0 -249
  729. package/node_modules/better-dsh/lib/hmr.d.ts +0 -32
  730. package/node_modules/better-dsh/lib/hmr.js +0 -49
  731. package/node_modules/better-dsh/lib/index-DTDXUe6m.d.ts +0 -208
  732. package/node_modules/better-dsh/lib/index-browser-CysrjMyM.js +0 -21061
  733. package/node_modules/better-dsh/lib/index.d.ts +0 -705
  734. package/node_modules/better-dsh/lib/index.js +0 -3816
  735. package/node_modules/better-dsh/lib/kernel-bridge.py +0 -172
  736. package/node_modules/better-dsh/lib/kernel-env-D8UOWeji.js +0 -195
  737. package/node_modules/better-dsh/lib/kernel-env.d.ts +0 -80
  738. package/node_modules/better-dsh/lib/kernel-env.js +0 -3
  739. package/node_modules/better-dsh/lib/lib-C8_jXvwA.js +0 -894
  740. package/node_modules/better-dsh/lib/lsp-server-registry-BXvUTBY7.js +0 -3
  741. package/node_modules/better-dsh/lib/lsp-server-registry-CH9WNFFt.js +0 -972
  742. package/node_modules/better-dsh/lib/main-BQeFrBM1.js +0 -3
  743. package/node_modules/better-dsh/lib/main-CupOhMp5.js +0 -1432
  744. package/node_modules/better-dsh/lib/mobile/plugin.d.ts +0 -29
  745. package/node_modules/better-dsh/lib/mobile/plugin.js +0 -54
  746. package/node_modules/better-dsh/lib/native-capture-BEByDXYM.js +0 -68
  747. package/node_modules/better-dsh/lib/puppeteer-core-CSk2PtSm.js +0 -1136
  748. package/node_modules/better-dsh/lib/py-sdk-D7klhpWb.js +0 -178
  749. package/node_modules/better-dsh/lib/py-sdk.d.ts +0 -19
  750. package/node_modules/better-dsh/lib/py-sdk.js +0 -3
  751. package/node_modules/better-dsh/lib/remote/plugin.d.ts +0 -24
  752. package/node_modules/better-dsh/lib/remote/plugin.js +0 -1190
  753. package/node_modules/better-dsh/lib/url-schemes/index.d.ts +0 -88
  754. package/node_modules/better-dsh/lib/url-schemes/index.js +0 -12229
  755. package/node_modules/better-dsh/lib/util-BHL_dfV_.js +0 -2953
  756. package/node_modules/better-dsh/lib/wasm_bg-CNXhHjVg.js +0 -1291
  757. package/node_modules/better-dsh/lib/web-password.d.ts +0 -156
  758. package/node_modules/better-dsh/lib/web-password.js +0 -562
  759. package/node_modules/better-dsh/lib/web-tree-sitter-CPrPD4J2.js +0 -3440
  760. package/node_modules/better-dsh/lib/web-trust-D6gJpUMf.js +0 -393
  761. package/node_modules/better-dsh/lib/web-trust-Dej_RI2B.d.ts +0 -113
  762. package/node_modules/better-dsh/lib/web-trust.d.ts +0 -3
  763. package/node_modules/better-dsh/lib/web-trust.js +0 -4
  764. package/node_modules/better-dsh/lib/webserver.d.ts +0 -10
  765. package/node_modules/better-dsh/lib/webserver.js +0 -19
  766. package/node_modules/better-dsh/lib/welcome-notice.d.ts +0 -18
  767. package/node_modules/better-dsh/lib/welcome-notice.js +0 -59
  768. package/node_modules/better-dsh/lib/wrap-T4I0nfPM.js +0 -750
  769. package/node_modules/better-dsh/package.json +0 -426
  770. package/node_modules/better-dsh/scripts/kernel-provision.mjs +0 -35
  771. package/node_modules/better-dsh/scripts/register-bundle.mjs +0 -80
  772. package/node_modules/better-dsh/url-schemes-instruction.md +0 -22
@@ -20,8 +20,9 @@
20
20
  * records a `versionWarning` on the status entry (diff major/minor or
21
21
  * unparsable → warn; patch-only drift → clean).
22
22
  */
23
- import { loadMachines, saveMachines, upsertRemote, listRemotes } from './machines.js';
23
+ import { ensureSelf, loadMachines, saveMachines, upsertRemote, listRemotes } from './machines.js';
24
24
  import { PACK_VERSION } from './pack-version.js';
25
+ import { PAIRING_AUTH_PATH } from './pairing-auth.js';
25
26
  /**
26
27
  * The `ours` side of the I2 comparison — the super-dsh PACK version (D6: the
27
28
  * hub subpackage's constant 0.1.0 made the comparator dead; the pack number
@@ -68,6 +69,9 @@ export function versionWarningFor(peer, ours) {
68
69
  const FETCH_TIMEOUT_MS = 10_000;
69
70
  /** <machineId, cookie> — in-process jar, a front for the persisted `MachineRow.cookie` (same value; write-through on every mint). */
70
71
  const cookieJar = new Map();
72
+ /** Latest pairing/probe attempt owns status and federation updates. */
73
+ const probeAttempts = new Map();
74
+ const removalGenerations = new Map();
71
75
  const machineStatusTable = new Map();
72
76
  function errMsg(err) {
73
77
  return err instanceof Error ? err.message : String(err);
@@ -110,9 +114,20 @@ function firstCookiePair(raw) {
110
114
  * with the status/cause attached.
111
115
  */
112
116
  export async function mintCookie(origin, token, fetchImpl = globalThis.fetch) {
117
+ // Native peers exchange at /. Super peers also expose a dedicated route
118
+ // because Better Dash owns / for password login. Both use native auth.
119
+ const root = await exchangeCookie(origin, '/', token, fetchImpl);
120
+ if (root !== undefined)
121
+ return root;
122
+ const dedicated = await exchangeCookie(origin, PAIRING_AUTH_PATH, token, fetchImpl);
123
+ if (dedicated !== undefined)
124
+ return dedicated;
125
+ throw new Error(`mesh-link: token mint failed — no dsh-auth-* Set-Cookie in response from ${origin}`);
126
+ }
127
+ async function exchangeCookie(origin, path, token, fetchImpl) {
113
128
  let res;
114
129
  try {
115
- res = await fetchImpl(`${origin}/?token=${encodeURIComponent(token)}`, {
130
+ res = await fetchImpl(`${origin}${path}?token=${encodeURIComponent(token)}`, {
116
131
  redirect: 'manual',
117
132
  signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
118
133
  });
@@ -120,6 +135,8 @@ export async function mintCookie(origin, token, fetchImpl = globalThis.fetch) {
120
135
  catch (err) {
121
136
  throw new Error(`mesh-link: token mint to ${origin} failed — ${errMsg(err)}`);
122
137
  }
138
+ if (path === PAIRING_AUTH_PATH && res.status === 404)
139
+ return undefined;
123
140
  if (res.status !== 303 && !(res.status >= 200 && res.status < 300)) {
124
141
  throw new Error(`mesh-link: token mint failed — unexpected status ${res.status} from ${origin}`);
125
142
  }
@@ -131,7 +148,7 @@ export async function mintCookie(origin, token, fetchImpl = globalThis.fetch) {
131
148
  if (pair !== null && pair.startsWith('dsh-auth-'))
132
149
  return pair;
133
150
  }
134
- throw new Error(`mesh-link: token mint failed — no dsh-auth-* Set-Cookie in response (status ${res.status}) from ${origin}`);
151
+ return undefined;
135
152
  }
136
153
  function coerceAgent(v) {
137
154
  const a = (typeof v === 'object' && v !== null ? v : {});
@@ -203,6 +220,9 @@ export function machineStatus() {
203
220
  /** Test hook: drop all status entries. */
204
221
  export function resetMachineStatus() {
205
222
  machineStatusTable.clear();
223
+ cookieJar.clear();
224
+ probeAttempts.clear();
225
+ removalGenerations.clear();
206
226
  }
207
227
  const federationListeners = new Set();
208
228
  /** Subscribe to federation lifecycle events; returns an unsubscribe function. */
@@ -223,6 +243,10 @@ function emitFederation(event) {
223
243
  * mesh-link, the registrar subscribes at wiring time).
224
244
  */
225
245
  export function emitMachineRemoved(machineId) {
246
+ removalGenerations.set(machineId, (removalGenerations.get(machineId) ?? 0) + 1);
247
+ cookieJar.delete(machineId);
248
+ machineStatusTable.delete(machineId);
249
+ probeAttempts.set(machineId, Symbol());
226
250
  emitFederation({ type: 'defederated', machineId });
227
251
  }
228
252
  /**
@@ -233,12 +257,9 @@ export function emitMachineRemoved(machineId) {
233
257
  * in this process), else `''` (wire calls then simply omit the Cookie header).
234
258
  */
235
259
  export function cookieOf(machineId, home) {
236
- const jarred = cookieJar.get(machineId);
237
- if (jarred !== undefined)
238
- return jarred;
239
- if (home === undefined)
240
- return '';
241
- return listRemotes(home).find((r) => r.id === machineId)?.cookie ?? '';
260
+ if (home !== undefined)
261
+ return listRemotes(home).find((r) => r.id === machineId)?.cookie ?? '';
262
+ return cookieJar.get(machineId) ?? '';
242
263
  }
243
264
  /** Record one probe outcome; the I2 versionWarning (4th arg) lands only on
244
265
  * reachable probes — every entry is written FRESH, so a re-probe against a
@@ -278,14 +299,19 @@ function persistRow(home, row, deps) {
278
299
  export async function pairMachine(home, input, deps) {
279
300
  const fetchImpl = deps?.fetchImpl ?? globalThis.fetch;
280
301
  const load = deps?.load ?? loadMachines;
302
+ const removalsAtStart = new Map(removalGenerations);
281
303
  const { origin, token } = parseTokenUrl(input.tokenUrl);
282
304
  const cookie = await mintCookie(origin, token, fetchImpl);
283
305
  const probe = await probeMachine(origin, cookie, fetchImpl);
284
306
  if (!probe.ok) {
285
307
  throw new Error(`mesh-link: pairing ${origin} failed — ${probe.status}: ${probe.error}`);
286
308
  }
309
+ if ((removalGenerations.get(probe.machineId) ?? 0) !== (removalsAtStart.get(probe.machineId) ?? 0)) {
310
+ throw new Error('mesh-link: machine removed during pairing');
311
+ }
287
312
  const file = load(home);
288
- if (probe.machineId === file.self.id || file.remotes.some((r) => r.id === probe.machineId)) {
313
+ const prior = file.remotes.find((r) => r.id === probe.machineId);
314
+ if (probe.machineId === file.self.id || (prior !== undefined && !(prior.incoming && !prior.cookie))) {
289
315
  throw new Error(`mesh-link: duplicate-machine-id ${probe.machineId} — collides with self or an existing remote row; remove the stale row before re-pairing`);
290
316
  }
291
317
  const row = {
@@ -294,16 +320,19 @@ export async function pairMachine(home, input, deps) {
294
320
  origin,
295
321
  token,
296
322
  cookie,
297
- enabled: true,
298
- addedAt: Date.now(),
323
+ enabled: prior?.enabled ?? true,
324
+ addedAt: prior?.addedAt ?? Date.now(),
325
+ ...(prior?.incoming === undefined ? {} : { incoming: prior.incoming }),
326
+ ...(prior?.execEnabled === undefined ? {} : { execEnabled: prior.execEnabled }),
299
327
  };
300
328
  persistRow(home, row, deps);
329
+ probeAttempts.set(row.id, Symbol());
301
330
  cookieJar.set(row.id, cookie);
302
331
  recordStatus(row.id, 'reachable', undefined, versionWarningFor(probe.version, OWN_VERSION));
303
332
  emitFederation({ type: 'federated', machineId: row.id, machineName: row.name, origin, agents: probe.agents });
304
333
  const outcome = { machineId: row.id, row, probe };
305
334
  if (input.mutual !== undefined)
306
- outcome.mutual = await reversePair(row, input.mutual, fetchImpl);
335
+ outcome.mutual = await reversePair(row, input.mutual, ensureSelf(home, 'local').id, fetchImpl);
307
336
  return outcome;
308
337
  }
309
338
  const REVERSE_TIMEOUT_MS = 10_000;
@@ -311,18 +340,18 @@ const REVERSE_TIMEOUT_MS = 10_000;
311
340
  * The mutual-pairing reverse leg: offer THIS machine's pairing input to the
312
341
  * just-paired peer over the cookie minted seconds ago (the peer then pairs
313
342
  * back without its own reverse leg — the offer carries `mutual: true`). A
314
- * duplicate-machine-id answer means the peer already holds us: mutual is
315
- * already satisfied, reported as ok. EVERY failure lands on the outcome and
343
+ * peer must explicitly confirm the reverse outcome or a reachable row with
344
+ * our UID. EVERY failure lands on the outcome and
316
345
  * never fails the pairing itself — the user sees it and can still add
317
346
  * manually from the peer.
318
347
  */
319
- async function reversePair(row, mutual, fetchImpl) {
348
+ async function reversePair(row, mutual, machineId, fetchImpl) {
320
349
  let res;
321
350
  try {
322
351
  res = await fetchImpl(`${row.origin}/api/superd/machines`, {
323
352
  method: 'POST',
324
353
  headers: { cookie: row.cookie ?? '', 'content-type': 'application/json' },
325
- body: JSON.stringify({ name: mutual.selfName, tokenUrl: mutual.selfTokenUrl, mutual: true }),
354
+ body: JSON.stringify({ name: mutual.selfName, tokenUrl: mutual.selfTokenUrl, machineId, mutual: true }),
326
355
  signal: AbortSignal.timeout(REVERSE_TIMEOUT_MS),
327
356
  });
328
357
  }
@@ -337,14 +366,64 @@ async function reversePair(row, mutual, fetchImpl) {
337
366
  error = body.error;
338
367
  }
339
368
  catch { /* unreadable body */ }
340
- if (error.includes('duplicate-machine-id'))
341
- return { ok: true };
342
369
  return { ok: false, error: error === '' ? `the peer answered ${res.status}` : error };
343
370
  }
344
- if (res.status >= 200 && res.status < 300)
345
- return { ok: true };
371
+ if (res.status >= 200 && res.status < 300) {
372
+ const body = await res.json().catch(() => undefined);
373
+ const reciprocal = body?.reciprocal;
374
+ if (typeof reciprocal?.ok === 'boolean') {
375
+ return {
376
+ ok: reciprocal.ok,
377
+ ...(reciprocal.skipped === 'self' || reciprocal.skipped === 'already-paired' ? { skipped: reciprocal.skipped } : {}),
378
+ ...(typeof reciprocal.error === 'string' ? { error: reciprocal.error } : {}),
379
+ };
380
+ }
381
+ // Older peers confirm the paired identity through their public machine row.
382
+ if (body?.machine?.id === machineId && body.machine.status === 'reachable')
383
+ return { ok: true };
384
+ return { ok: false, error: 'the peer did not confirm a reverse connection' };
385
+ }
346
386
  return { ok: false, error: `the peer answered ${res.status}` };
347
387
  }
388
+ /** Incoming offers name identity before dialing; address format is not reachability evidence. */
389
+ export async function receivePairing(home, input, deps) {
390
+ const self = ensureSelf(home, 'local');
391
+ if (input.machineId === self.id)
392
+ return { ok: true, skipped: 'self' };
393
+ const load = deps?.load ?? loadMachines;
394
+ const existing = load(home).remotes.find((row) => row.id === input.machineId);
395
+ if (existing?.cookie) {
396
+ persistRow(home, { ...existing, incoming: true }, deps);
397
+ const probe = await reprobeMachine(home, existing.id, deps);
398
+ return {
399
+ ok: probe.ok, ...(probe.ok ? { skipped: 'already-paired' } : { error: probe.error }),
400
+ row: load(home).remotes.find((row) => row.id === existing.id),
401
+ };
402
+ }
403
+ let url;
404
+ try {
405
+ url = new URL(input.tokenUrl);
406
+ }
407
+ catch {
408
+ return { ok: false, error: 'mesh-link: invalid reciprocal URL' };
409
+ }
410
+ const origin = url.protocol + '//' + url.host;
411
+ const token = url.searchParams.get('token') ?? '';
412
+ const row = {
413
+ id: input.machineId, name: existing?.name ?? input.name, origin, token,
414
+ incoming: true, enabled: existing?.enabled ?? true, addedAt: existing?.addedAt ?? Date.now(),
415
+ ...(existing?.execEnabled === undefined ? {} : { execEnabled: existing.execEnabled }),
416
+ };
417
+ // Retain the identity even if the address cannot be dialed from this Host.
418
+ persistRow(home, row, deps);
419
+ recordStatus(row.id, 'unreachable', 'reciprocal connection has not been established');
420
+ const probe = await reprobeMachine(home, row.id, deps);
421
+ return {
422
+ ok: probe.ok,
423
+ row: load(home).remotes.find((current) => current.id === row.id),
424
+ ...(probe.ok ? {} : { error: probe.error }),
425
+ };
426
+ }
348
427
  /**
349
428
  * Re-probe a paired machine: the jar's cookie, falling back to the cookie
350
429
  * persisted on the row (cold jar after a hub restart), rides the probe. On
@@ -361,23 +440,48 @@ export async function reprobeMachine(home, id, deps) {
361
440
  throw new Error(`mesh-link: unknown machine id "${id}" — no remote row in the registry`);
362
441
  }
363
442
  const origin = row.origin;
364
- let cookie = cookieJar.get(id) ?? row.cookie ?? '';
365
- let probe = await probeMachine(origin, cookie, fetchImpl);
366
- if (!probe.ok && probe.status === 'auth-expired' && row.token) {
443
+ const attempt = Symbol();
444
+ probeAttempts.set(id, attempt);
445
+ let cookie = row.cookie ?? '';
446
+ let probe;
447
+ if (cookie === '' && row.token) {
448
+ try {
449
+ cookie = await mintCookie(origin, row.token, fetchImpl);
450
+ probe = await probeMachine(origin, cookie, fetchImpl);
451
+ }
452
+ catch (err) {
453
+ probe = { ok: false, status: 'unreachable', error: `connection failed — ${errMsg(err)}` };
454
+ }
455
+ }
456
+ else
457
+ probe = await probeMachine(origin, cookie, fetchImpl);
458
+ if (!probe.ok && probe.status === 'auth-expired' && row.token && cookie !== '') {
367
459
  try {
368
460
  cookie = await mintCookie(origin, row.token, fetchImpl);
369
- cookieJar.set(id, cookie);
370
- persistRow(home, { ...row, cookie }, deps);
371
461
  probe = await probeMachine(origin, cookie, fetchImpl);
372
462
  }
373
463
  catch (err) {
374
464
  probe = { ok: false, status: 'auth-expired', error: `re-mint failed — ${errMsg(err)}` };
375
465
  }
376
466
  }
467
+ if (probe.ok && probe.machineId !== id) {
468
+ probe = { ok: false, status: 'unreachable', error: 'peer Hub UID does not match the paired machine' };
469
+ }
470
+ if (probe.ok && row.incoming && cookie === '') {
471
+ probe = { ok: false, status: 'unreachable', error: 'reciprocal connection has no authenticated credentials' };
472
+ }
473
+ if (!probe.ok && row.incoming && !row.cookie) {
474
+ probe = { ...probe, status: 'unreachable' };
475
+ }
476
+ const current = (deps?.load ? deps.load(home).remotes : listRemotes(home)).find((r) => r.id === id);
477
+ if (probeAttempts.get(id) !== attempt || current === undefined || current.origin !== row.origin || current.token !== row.token || current.cookie !== row.cookie || current.addedAt !== row.addedAt) {
478
+ return { ok: false, status: 'unreachable', error: 'pairing changed during probe' };
479
+ }
377
480
  if (probe.ok) {
481
+ persistRow(home, { ...current, cookie }, deps);
378
482
  cookieJar.set(id, cookie);
379
483
  recordStatus(id, 'reachable', undefined, versionWarningFor(probe.version, OWN_VERSION));
380
- emitFederation({ type: 'federated', machineId: id, machineName: row.name, origin, agents: probe.agents });
484
+ emitFederation({ type: 'federated', machineId: id, machineName: current.name, origin, agents: probe.agents });
381
485
  }
382
486
  else if (probe.status === 'auth-expired') {
383
487
  recordStatus(id, 'auth-expired', probe.error);
@@ -98,7 +98,7 @@ export declare function tokenPreviewOf(tokenUrl: string): string | undefined;
98
98
  */
99
99
  export declare function handleMeshMachines(request: Request, deps: MeshDeps): Promise<Response>;
100
100
  /**
101
- * Validate a token-url request origin: an absolute http(s) URL that is ONLY
101
+ * Validate a token-url request origin: an absolute host-bearing URL that is ONLY
102
102
  * an origin — no path, query, hash, or credentials. The pairing URL a user
103
103
  * copies must address the server root (`authorizeIndex` answers `/` only),
104
104
  * and anything beyond the origin would smuggle parts the mint would overwrite
@@ -1,6 +1,6 @@
1
1
  import { hostname } from 'node:os';
2
2
  import { ensureSelf, listRemotes, removeRemote } from './machines.js';
3
- import { machineStatus, pairMachine, reprobeMachine, emitMachineRemoved } from './mesh-link.js';
3
+ import { machineStatus, pairMachine, receivePairing, reprobeMachine, emitMachineRemoved } from './mesh-link.js';
4
4
  import { A2A_ENDPOINT_PATH, A2A_OUTBOX_PATH, A2A_WIRE_VERSION, decodeA2aWireFrame } from './a2a-wire.js';
5
5
  import { EXEC_API_BASE, parseOneShotExecBody, runOneShotExec } from './exec.js';
6
6
  /** The shared-channel Fetch route path this API owns. */
@@ -37,7 +37,7 @@ function publicRow(row) {
37
37
  function projectRow(row, status) {
38
38
  const entry = status.get(row.id);
39
39
  if (entry === undefined)
40
- return { id: row.id, name: row.name, origin: row.origin, enabled: row.enabled, addedAt: row.addedAt, status: 'pending' };
40
+ return { id: row.id, name: row.name, origin: row.origin, enabled: row.enabled, addedAt: row.addedAt, status: row.incoming && !row.cookie ? 'unreachable' : 'pending' };
41
41
  const out = { id: row.id, name: row.name, origin: row.origin, enabled: row.enabled, addedAt: row.addedAt, status: entry.status, lastProbeAt: entry.lastProbeAt };
42
42
  if (entry.error !== undefined)
43
43
  out.error = entry.error;
@@ -101,7 +101,7 @@ function handleList(deps) {
101
101
  });
102
102
  }
103
103
  /**
104
- * Validate a token-url request origin: an absolute http(s) URL that is ONLY
104
+ * Validate a token-url request origin: an absolute host-bearing URL that is ONLY
105
105
  * an origin — no path, query, hash, or credentials. The pairing URL a user
106
106
  * copies must address the server root (`authorizeIndex` answers `/` only),
107
107
  * and anything beyond the origin would smuggle parts the mint would overwrite
@@ -119,15 +119,14 @@ export function parsePairingOrigin(origin) {
119
119
  catch {
120
120
  return { ok: false, error: 'mesh-api: tokenUrl origin is not a parseable absolute URL' };
121
121
  }
122
- if (url.protocol !== 'http:' && url.protocol !== 'https:') {
123
- return { ok: false, error: `mesh-api: tokenUrl origin must be http(s), got "${url.protocol}"` };
124
- }
122
+ if (url.host === '')
123
+ return { ok: false, error: 'mesh-api: tokenUrl origin must name a host' };
125
124
  if (url.username !== '' || url.password !== '')
126
125
  return { ok: false, error: 'mesh-api: tokenUrl origin must not carry credentials' };
127
- if (url.pathname !== '/' || url.search !== '' || url.hash !== '') {
126
+ if ((url.pathname !== '/' && url.pathname !== '') || url.search !== '' || url.hash !== '') {
128
127
  return { ok: false, error: 'mesh-api: tokenUrl origin must be a bare origin (no path, query or hash)' };
129
128
  }
130
- return { ok: true, origin: url.origin };
129
+ return { ok: true, origin: url.protocol + '//' + url.host };
131
130
  }
132
131
  /** POST op `tokenUrl`: tokenize the caller's origin with the live launch
133
132
  * token (spec hub-roster-identity §3). The answer rides a POST the user
@@ -153,14 +152,18 @@ function handleTokenUrl(body, deps) {
153
152
  * (no mint face, no Host header) — the peer can then only be paired
154
153
  * manually from its own UI.
155
154
  */
156
- function buildMutual(request, deps) {
155
+ function buildMutual(request, deps, pageOrigin) {
157
156
  if (deps.tokenUrlOf === undefined)
158
157
  return undefined;
159
158
  const host = request.headers.get('host');
160
- if (host === null || host === '')
159
+ if ((host === null || host === '') && typeof pageOrigin !== 'string')
161
160
  return undefined;
162
161
  const proto = request.headers.get('x-forwarded-proto')?.split(',')[0]?.trim() ?? 'http';
163
- const origin = `${proto}://${host}`;
162
+ const raw = typeof pageOrigin === 'string' ? pageOrigin : `${proto}://${host}`;
163
+ const parsed = parsePairingOrigin(raw);
164
+ if (!parsed.ok)
165
+ return undefined;
166
+ const origin = parsed.origin;
164
167
  const port = new URL(origin).port;
165
168
  const name = hostname();
166
169
  return {
@@ -207,9 +210,14 @@ async function handlePost(request, deps) {
207
210
  if (name === '' || tokenUrl === '') {
208
211
  return json(400, { error: 'mesh-api: pair body must be {name, tokenUrl} with non-empty name and tokenUrl' });
209
212
  }
213
+ if (body.mutual === true && typeof body.machineId === 'string' && body.machineId !== '') {
214
+ const received = await receivePairing(deps.home, { machineId: body.machineId, name, tokenUrl }, { fetchImpl: deps.fetchImpl });
215
+ const { row, ...reciprocal } = received;
216
+ return json(201, { ...(row === undefined ? {} : { machine: publicRow(row) }), reciprocal });
217
+ }
210
218
  // The reverse leg rides USER-initiated pairs only: an offer that arrived
211
219
  // with `mutual: true` (the peer's own reverse leg) pairs without one.
212
- const mutual = body.mutual === true ? undefined : buildMutual(request, deps);
220
+ const mutual = body.mutual === true ? undefined : buildMutual(request, deps, body.origin);
213
221
  let outcome;
214
222
  try {
215
223
  outcome = await pairMachine(deps.home, { name, tokenUrl, ...(mutual === undefined ? {} : { mutual }) }, { fetchImpl: deps.fetchImpl });
@@ -0,0 +1,7 @@
1
+ import type { Context } from '@deepseek-ai/cordis';
2
+ import type { HostConnectionHandle, ConnectionIndexRequest, ConnectionIndexResponse } from '@deepseek-ai/dsh-client-connection';
3
+ export declare const PAIRING_AUTH_PATH = "/superd/pair-auth";
4
+ /** Exchange the native launch token without taking ownership of the password page. */
5
+ export declare function handlePairingAuth(request: ConnectionIndexRequest, response: ConnectionIndexResponse, connection: Pick<HostConnectionHandle, 'authorizeIndex'>): void;
6
+ /** Called only in ctx0's real WebServer/Connection injection scope. */
7
+ export declare function registerPairingAuth(ctx: Context): void;
@@ -0,0 +1,29 @@
1
+ export const PAIRING_AUTH_PATH = '/superd/pair-auth';
2
+ /** Exchange the native launch token without taking ownership of the password page. */
3
+ export function handlePairingAuth(request, response, connection) {
4
+ if (request.method !== 'GET') {
5
+ response.writeHead(405, { allow: 'GET', 'cache-control': 'no-store' });
6
+ response.end();
7
+ return;
8
+ }
9
+ const url = new URL(request.url ?? PAIRING_AUTH_PATH, 'http://dsh.invalid');
10
+ const tokens = url.searchParams.getAll('token');
11
+ if (tokens.length !== 1 || tokens[0] === '') {
12
+ response.writeHead(401, { 'cache-control': 'no-store' });
13
+ response.end();
14
+ return;
15
+ }
16
+ // Host headers keep native authority binding. Connection alone checks the
17
+ // process token and signs the cookie; no credential or verifier is copied.
18
+ if (connection.authorizeIndex({ method: 'GET', url: '/' + url.search, headers: request.headers }, response)) {
19
+ response.writeHead(401, { 'cache-control': 'no-store' });
20
+ response.end();
21
+ }
22
+ }
23
+ /** Called only in ctx0's real WebServer/Connection injection scope. */
24
+ export function registerPairingAuth(ctx) {
25
+ ctx.effect(() => ctx.webServer.register({
26
+ kind: 'exact', path: PAIRING_AUTH_PATH,
27
+ handler: (request, response) => handlePairingAuth(request, response, ctx.connection),
28
+ }), 'superd-hub: native pairing authentication');
29
+ }
@@ -331,7 +331,7 @@ function RuntimeMark({ runtimeId, agentKey, size }) {
331
331
  function statusColor(status) {
332
332
  if (status === "reachable") return "var(--dsw-alias-state-success-primary)";
333
333
  if (status === "auth-expired") return "var(--dsw-alias-state-error-primary)";
334
- if (status === "unreachable") return "var(--dsw-alias-state-warn-primary)";
334
+ if (status === "unreachable") return "var(--dsw-alias-label-caption)";
335
335
  return "var(--dsw-alias-label-caption)";
336
336
  }
337
337
  /** The word the icon replaces — tooltip and accessibility text. */
@@ -614,7 +614,8 @@ async function addMachine(input) {
614
614
  headers: { "content-type": "application/json" },
615
615
  body: JSON.stringify({
616
616
  name: input.name,
617
- tokenUrl: input.tokenUrl
617
+ tokenUrl: input.tokenUrl,
618
+ ...pageOrigin() === "" ? {} : { origin: pageOrigin() }
618
619
  })
619
620
  });
620
621
  if (!response.ok) throw new Error(await errorText(response));
@@ -623,9 +624,21 @@ async function addMachine(input) {
623
624
  const raw = body.mutual;
624
625
  return { mutual: {
625
626
  ok: raw.ok === true,
627
+ ...raw.skipped === "self" || raw.skipped === "already-paired" ? { skipped: raw.skipped } : {},
626
628
  ...typeof raw.error === "string" && raw.error !== "" ? { error: raw.error } : {}
627
629
  } };
628
630
  }
631
+ /** Preserve shell schemes whose WHATWG origin is opaque; this is an address, not a reachability verdict. */
632
+ function pageOrigin() {
633
+ if (typeof location === "undefined") return "";
634
+ if (location.origin !== "null" && location.origin !== "") return location.origin;
635
+ try {
636
+ const url = new URL(location.href);
637
+ return url.protocol + "//" + url.host;
638
+ } catch {
639
+ return "";
640
+ }
641
+ }
629
642
  /**
630
643
  * DELETE one remote row by id (`{removed: boolean}` answers even for
631
644
  * unknown ids — a false removal is a reload, not an error).
@@ -671,7 +684,7 @@ const AUTO_REFRESH_NOTE = "auto-refreshes every 5 min";
671
684
  * face's public `authenticatedUrl` — this client never sees the raw token
672
685
  * anywhere else.
673
686
  *
674
- * @param origin - the page's own origin (`location.origin`), a bare http(s) origin.
687
+ * @param origin - the page's own host address, including a desktop scheme.
675
688
  * @returns the tokenized pairing URL.
676
689
  * @throws Error(body.error) on a non-2xx answer (validation or missing host face).
677
690
  */
@@ -692,9 +705,9 @@ async function fetchPairingUrl(origin) {
692
705
  }
693
706
  /**
694
707
  * Client-side pre-check before a pairing submit: a parseable absolute
695
- * http(s) URL carrying a non-empty `token` query param. The server re-parses
708
+ * host-bearing URL carrying a non-empty `token` query param. The server re-parses
696
709
  * authoritatively (mesh-link's parseTokenUrl); this only keeps obviously
697
- * dead drafts off the wire.
710
+ * malformed drafts off the wire.
698
711
  *
699
712
  * @param input - the raw token-URL draft (trim before calling).
700
713
  * @returns whether the draft is submit-shaped.
@@ -707,7 +720,7 @@ function validTokenUrl(input) {
707
720
  } catch {
708
721
  return false;
709
722
  }
710
- if (url.protocol !== "http:" && url.protocol !== "https:") return false;
723
+ if (url.host === "") return false;
711
724
  const token = url.searchParams.get("token");
712
725
  return token !== null && token !== "";
713
726
  }
@@ -3143,7 +3156,7 @@ function HubPage() {
3143
3156
  });
3144
3157
  }, [fusion]);
3145
3158
  const here = currentMountPath();
3146
- const hereOrigin = typeof location === "undefined" ? "" : location.origin;
3159
+ const hereOrigin = pageOrigin();
3147
3160
  const isActive = (agent) => hubRowActive({
3148
3161
  fusion,
3149
3162
  agentKey: agent.key,
@@ -3254,8 +3267,9 @@ function HubPage() {
3254
3267
  setShowAdd(false);
3255
3268
  setMeshError(null);
3256
3269
  reloadMachines();
3257
- if (out.mutual !== void 0 && !out.mutual.ok) showSuperdToast(`Super D: paired with ${name}, but the mutual half failed (${out.mutual.error}) — add this machine from the peer manually.`);
3258
- else showSuperdToast(`Super D: paired with ${name} — the peer also added this machine (mutual).`, { tone: "success" });
3270
+ if (out.mutual !== void 0 && !out.mutual.ok) showSuperdToast(`Super D: paired with ${name}; reverse connection unavailable.`);
3271
+ else if (out.mutual?.ok && out.mutual.skipped !== "self") showSuperdToast(`Super D: paired with ${name} — the peer also added this machine (mutual).`, { tone: "success" });
3272
+ else showSuperdToast(`Super D: paired with ${name}.`, { tone: "success" });
3259
3273
  }).catch((err) => {
3260
3274
  setMeshError(errText(err));
3261
3275
  }).finally(() => {
@@ -3282,7 +3296,7 @@ function HubPage() {
3282
3296
  * GET), one clipboard write, the outcome on the shared toast. */
3283
3297
  const copyPairingUrl = () => {
3284
3298
  if (pairingBusy) return;
3285
- const origin = typeof location === "undefined" ? "" : location.origin;
3299
+ const origin = pageOrigin();
3286
3300
  if (origin === "") return;
3287
3301
  setPairingBusy(true);
3288
3302
  fetchPairingUrl(origin).then((url) => (0, __deepseek_ai_dsh_client_ui_primitives.writeClipboard)(url)).then((copied) => {
@@ -3463,7 +3477,7 @@ function HubPage() {
3463
3477
  color: "var(--dsw-alias-label-tertiary)"
3464
3478
  },
3465
3479
  children: [
3466
- "Add another DSH from remote machines, provide the token URL. Pairing is mutual — the peer adds this machine back automatically. Status ",
3480
+ "Add another DSH with its token URL. The peer attempts to connect back. Status ",
3467
3481
  AUTO_REFRESH_NOTE,
3468
3482
  "."
3469
3483
  ]
@@ -18,7 +18,8 @@
18
18
  "dist",
19
19
  "lib",
20
20
  "assets",
21
- "cordis.patch.yml"
21
+ "cordis.patch.yml",
22
+ "scripts/register-companion.mjs"
22
23
  ],
23
24
  "dsh": {
24
25
  "bundle": {
@@ -50,7 +51,11 @@
50
51
  "@deepseek-ai/dsh-host-webserver": ">=0.1.5-0 <0.3.0-0",
51
52
  "@deepseek-ai/dsh-tools": ">=0.1.5-0 <0.3.0-0",
52
53
  "@deepseek-ai/dsh-typert-protocol": ">=0.1.5-0 <0.3.0-0",
53
- "@deepseek-ai/dsh-client-connection": ">=0.1.5-0 <0.3.0-0"
54
+ "@deepseek-ai/dsh-client-connection": ">=0.1.5-0 <0.3.0-0",
55
+ "@deepseek-ai/dsh-app-boot": ">=0.1.5-0 <0.3.0-0",
56
+ "@deepseek-ai/dsh-atomic-write": ">=0.1.5-0 <0.3.0-0",
57
+ "@deepseek-ai/dsh-cmdline": ">=0.1.5-0 <0.3.0-0",
58
+ "@deepseek-ai/dsh-plugin-manager": ">=0.1.5-0 <0.3.0-0"
54
59
  },
55
60
  "peerDependenciesMeta": {
56
61
  "@earendil-works/pi-coding-agent": {
@@ -76,6 +81,18 @@
76
81
  },
77
82
  "@deepseek-ai/dsh-client-connection": {
78
83
  "optional": true
84
+ },
85
+ "@deepseek-ai/dsh-app-boot": {
86
+ "optional": true
87
+ },
88
+ "@deepseek-ai/dsh-atomic-write": {
89
+ "optional": true
90
+ },
91
+ "@deepseek-ai/dsh-cmdline": {
92
+ "optional": true
93
+ },
94
+ "@deepseek-ai/dsh-plugin-manager": {
95
+ "optional": true
79
96
  }
80
97
  },
81
98
  "devDependencies": {