super-dsh 0.1.12 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -13
- package/agent-agy/dist/world-plugin.d.ts +1 -1
- package/agent-agy/dist/world-plugin.js +14 -27
- package/agent-agy-sdk/dist/world-plugin.d.ts +1 -1
- package/agent-agy-sdk/dist/world-plugin.js +14 -27
- package/agent-codex/dist/world-plugin.js +14 -27
- package/agent-codex-sdk/dist/world-plugin.js +14 -43
- package/agent-hermes/dist/world-plugin.js +14 -27
- package/agent-omp/dist/world-plugin.js +14 -39
- package/agent-omp/lib/client/index.js +258 -0
- package/agent-omp-sdk/dist/world-plugin.d.ts +1 -1
- package/agent-omp-sdk/dist/world-plugin.js +14 -43
- package/agent-pi/dist/world-plugin.js +14 -27
- package/bundles/better-dsh.tgz +0 -0
- package/bundles/manifest.json +10 -0
- package/client/index.js +434 -307
- package/cordis.patch.yml +7 -16
- package/node_modules/better-dsh/LICENSE +24 -0
- package/node_modules/better-dsh/README.md +323 -0
- package/node_modules/better-dsh/THIRD_PARTY_NOTICES.md +52 -0
- package/node_modules/better-dsh/cordis.patch.yml +139 -0
- package/node_modules/better-dsh/docs/00_adr/0001-bridge-tool-layer-not-service-layer.md +14 -0
- package/node_modules/better-dsh/docs/00_adr/0002-masking-is-presentation-only.md +15 -0
- package/node_modules/better-dsh/docs/10_plans/2026-09-23-remote-execution-framework.md +236 -0
- package/node_modules/better-dsh/docs/10_plans/2026-09-23-remote-framework-impl.md +2083 -0
- package/node_modules/better-dsh/docs/10_plans/2026-09-26-lsp-ast-reminder.md +64 -0
- package/node_modules/better-dsh/docs/10_plans/A2A-messaging-channel-test-archive.md +256 -0
- package/node_modules/better-dsh/docs/10_plans/code-mode-vs-rlm-ipython-comparison.md +137 -0
- package/node_modules/better-dsh/docs/10_plans/dashr-blueprint-review.md +201 -0
- package/node_modules/better-dsh/docs/10_plans/dashr-blueprint.md +561 -0
- package/node_modules/better-dsh/docs/10_plans/dashr-compaction-window-and-archive.md +307 -0
- package/node_modules/better-dsh/docs/10_plans/dashr-profile-layer-feasibility.md +367 -0
- package/node_modules/better-dsh/docs/10_plans/dashr-sandbox-escalation-semantics-gap.md +171 -0
- package/node_modules/better-dsh/docs/10_plans/dashr-security-sandbox-analysis.md +187 -0
- package/node_modules/better-dsh/docs/10_plans/dashr-surface-invariant-and-omp-imports.md +97 -0
- package/node_modules/better-dsh/docs/10_plans/ipython-kernel-interactive-interface-test-report.md +152 -0
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft.md +146 -0
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft_v3.md +50 -0
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft_v4.md +79 -0
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/Dash-vs-PrimeAgent-systemprompt-toolcatalog-comparison.md +138 -0
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/RLM-system-prompt-injection-gap-report.md +161 -0
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/V0.1.5-development-plan.md +109 -0
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/actinoable-surface-to-llm-in-agent-runtime_dsh.md +50 -0
- package/node_modules/better-dsh/docs/10_plans/kernel-refactoring/actinoable-surface-to-llm-in-agent-runtime_prime.md +113 -0
- package/node_modules/better-dsh/docs/10_plans/recallable-compaction.md +147 -0
- package/node_modules/better-dsh/docs/10_plans/spike-tag-repro.mjs +102 -0
- package/node_modules/better-dsh/docs/10_plans/upstream-analysis.md +128 -0
- package/node_modules/better-dsh/docs/20_specs/agent/spec.md +54 -0
- package/node_modules/better-dsh/docs/20_specs/ast/spec.md +57 -0
- package/node_modules/better-dsh/docs/20_specs/compaction-recall/spec.md +46 -0
- package/node_modules/better-dsh/docs/20_specs/ctx/spec.md +107 -0
- package/node_modules/better-dsh/docs/20_specs/dsh/spec.md +47 -0
- package/node_modules/better-dsh/docs/20_specs/dvc/spec.md +106 -0
- package/node_modules/better-dsh/docs/20_specs/escalation-guidance/spec.md +44 -0
- package/node_modules/better-dsh/docs/20_specs/fs-scheme-resolution/spec.md +37 -0
- package/node_modules/better-dsh/docs/20_specs/hash-edit/spec.md +41 -0
- package/node_modules/better-dsh/docs/20_specs/http-read/spec.md +73 -0
- package/node_modules/better-dsh/docs/20_specs/kernel-provisioning/spec.md +53 -0
- package/node_modules/better-dsh/docs/20_specs/lsp/spec.md +121 -0
- package/node_modules/better-dsh/docs/20_specs/mobile-layout/spec.md +108 -0
- package/node_modules/better-dsh/docs/20_specs/model-failover/spec.md +20 -0
- package/node_modules/better-dsh/docs/20_specs/plugins-page-components/spec.md +79 -0
- package/node_modules/better-dsh/docs/20_specs/preact-ui-shell/spec.md +22 -0
- package/node_modules/better-dsh/docs/20_specs/repl-dispatch-resilience/spec.md +21 -0
- package/node_modules/better-dsh/docs/20_specs/skill/spec.md +58 -0
- package/node_modules/better-dsh/docs/20_specs/tool-surface/spec.md +222 -0
- package/node_modules/better-dsh/docs/20_specs/url-schema/spec.md +148 -0
- package/node_modules/better-dsh/docs/20_specs/web-trust-fence/spec.md +43 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-06-write/345/267/245/345/205/267sandbox/345/215/207/347/272/247/351/200/217/344/274/240bug/345/244/215/345/217/221/345/217/212/346/214/202/350/265/267-/344/272/213/344/273/266/346/212/245/345/221/212.md +176 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-08-hashline-edit-E_RANGE_UNVERIFIED/350/267/250/350/275/256/344/274/232/350/257/235/351/224/256/345/244/261/346/225/210-/350/257/212/346/226/255/346/212/245/345/221/212.md +226 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-11-control-prompt-into-eval-description/345/256/236/346/265/213/346/212/245/345/221/212.md +222 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-fs-scheme-resolution-/345/256/236/346/265/213/346/212/245/345/221/212.md +81 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-grammar-matrix/344/270/216catalog-centralize-/345/256/236/346/265/213/346/212/245/345/221/212.md +234 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-recallable-context-design/351/252/214/350/257/201/346/212/245/345/221/212.md +160 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-recallable-context-/345/256/236/346/265/213/345/211/247/346/234/254.md +44 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-recallable-context-/345/256/236/346/265/213/346/212/245/345/221/212.md +89 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-12-url-schemes-/345/205/255scheme/345/206/222/347/203/237/344/270/216/350/276/271/347/225/214/345/256/236/346/265/213/346/212/245/345/221/212.md +198 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-13-hashline-off/344/270/213scheme/345/217/257/350/276/276/346/200/247/345/267/245/345/205/267/351/235/242/344/270/215/345/257/271/347/247/260-/345/256/236/346/265/213/346/212/245/345/221/212.md +246 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-13-preact-ui-shell/345/256/236/346/265/213/346/212/245/345/221/212.md +50 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-14-4999-skill/346/270/205/345/215/225/344/270/216lsp-gate/345/256/236/346/265/213/346/212/245/345/221/212.md +63 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-17-plugins/351/241/265/345/205/255/347/273/204/344/273/266/346/213/206/345/210/206/345/256/236/346/265/213/346/212/245/345/221/212.md +76 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-22-4988/345/217/214/345/271/263/351/235/242/345/220/257/345/212/250/344/277/256/345/244/215/345/256/236/346/265/213/346/212/245/345/221/212.md +76 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-22-better-dsh/347/273/204/344/273/266/347/203/255/346/217/222/346/213/224/344/270/216/344/276/235/350/265/226/347/272/247/350/201/224/345/256/236/346/265/213/346/212/245/345/221/212.md +134 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-23-remote-framework/345/256/236/346/265/213/346/212/245/345/221/212.md +92 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-23-remote-framework/347/254/254/344/270/200/344/272/272/347/247/260/345/244/215/346/265/213/346/212/245/345/221/212.md +125 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-23-ssh/345/267/245/345/205/267assisted-pty/344/274/232/350/257/235framing/345/256/236/346/265/213/346/212/245/345/221/212.md +207 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-24-v0.1.7-rc.1/345/257/271/351/275/220/350/275/256-compaction/344/270/216failover/350/256/276/347/275/256/351/235/242/344/277/256/345/244/215/345/256/236/346/265/213/346/212/245/345/221/212.md +65 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-27-lsp-ast-reminder-4999/345/256/236/346/265/213/346/212/245/345/221/212.md +53 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-09-28-ctx-scheme/351/225/277/344/274/232/350/257/235utility/345/256/236/346/265/213/346/212/245/345/221/212.md +155 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-01-v0.2.4d-web-password-gate/345/256/236/346/265/213/346/212/245/345/221/212.md +105 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-02-better-dsh-schemastery/344/276/235/350/265/226/345/243/260/346/230/216/344/277/256/345/244/215/345/256/236/346/265/213/346/212/245/345/221/212.md +62 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-02-ctx-navigation/345/256/236/346/265/213/346/212/245/345/221/212.md +137 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-02-v0.2.0-rc.2/345/257/271/351/275/220/350/275/256/345/256/236/346/265/213/346/212/245/345/221/212.md +38 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-ast-engine-deomp-4999/345/256/236/346/265/213/346/212/245/345/221/212.md +325 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-better-dsh-tool-surface-repl-dvc-browser-ast-lsp-4999/345/256/236/346/265/213/346/212/245/345/221/212.md +185 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-docs-packaging-trim/345/256/236/346/265/213/346/212/245/345/221/212.md +82 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-physical-import/344/270/216llm-completion-ast/347/233/270/345/257/271/350/267/257/345/276/204/344/277/256/345/244/215/345/256/236/346/265/213/346/212/245/345/221/212.md +101 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-pnpm11/345/271/264/351/276/204/351/227/250/351/224/201/346/226/207/344/273/266/347/233/270/344/275/215/345/256/236/350/257/201.md +54 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-remote-BYO-PTY-label/351/207/215/346/236/204/347/254/254/344/270/200/344/272/272/347/247/260/345/256/236/346/265/213/346/212/245/345/221/212.md +447 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-schemastery-cosmokit/346/272/220/347/240/201/345/206/205/350/201/224/345/256/236/346/265/213/346/212/245/345/221/212.md +63 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-03-zero-npm-runtime-deps/345/256/236/346/265/213/346/212/245/345/221/212.md +82 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-04-ast-engine-deomp-0.2.5-d/345/217/221/345/270/203/351/252/214/346/224/266/346/212/245/345/221/212.md +220 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-04-ast_grep/344/270/216ast_edit/345/245/221/347/272/246/344/270/216/350/276/271/347/225/214/345/256/236/346/265/213/346/212/245/345/221/212.md +151 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-06-authentication-only-web-admission-4999.md +63 -0
- package/node_modules/better-dsh/docs/50_test-reports/2026-10-07-better-dsh-welcome-self-contained-4999.md +52 -0
- package/node_modules/better-dsh/docs/50_test-reports/REPL-/345/267/245/345/205/267/350/260/203/347/224/250-/346/210/252/346/226/255/350/257/212/346/226/255.md +110 -0
- package/node_modules/better-dsh/docs/50_test-reports/kernel-provisioning.md +44 -0
- package/node_modules/better-dsh/docs/50_test-reports/repl-kernel-provisioning-test-report.md +87 -0
- package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.2-alpha.5-local-test-report.md +81 -0
- package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.2-alpha.5-report.md +93 -0
- package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.3-alpha.2-local-test-report.md +44 -0
- package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.3-alpha.2-report.md +110 -0
- package/node_modules/better-dsh/docs/50_test-reports/upstream-dsh-0.1.5-rc.2-local-test-report.md +79 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.1.8-improved-/345/256/236/346/265/213/346/212/245/345/221/212.md +142 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.1.8-/345/256/236/346/265/213/346/212/245/345/221/212.md +193 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.1.8b-/345/256/236/346/265/213/346/212/245/345/221/212.md +96 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.1.8c-/345/256/236/346/265/213/346/212/245/345/221/212.md +127 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.1.8d-/345/256/236/346/265/213/346/212/245/345/221/212.md +150 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.1.8e-/345/256/236/346/265/213/346/212/245/345/221/212.md +224 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.1.9a-/345/256/236/346/265/213/346/212/245/345/221/212.md +168 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.0b-/345/256/236/346/265/213/346/212/245/345/221/212.md +123 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.1-/345/256/236/346/265/213/346/212/245/345/221/212.md +110 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.1b-/345/256/236/346/265/213/346/212/245/345/221/212.md +86 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.1c-/345/256/236/346/265/213/346/212/245/345/221/212.md +66 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.1d-/345/256/236/346/265/213/346/212/245/345/221/212.md +67 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.1e-P1-/345/256/236/346/265/213/346/212/245/345/221/212.md +136 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.1ef-dev-audit-report.md +73 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.1f-plugin-shipped-ui-patches/345/256/236/346/265/213/346/212/245/345/221/212.md +102 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.3b-hashline-content-locator/345/256/236/346/265/213/346/212/245/345/221/212.md +73 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.3c-mobile-wave/345/256/236/346/265/213/346/212/245/345/221/212.md +47 -0
- package/node_modules/better-dsh/docs/50_test-reports/v0.2.4-ios-focus-zoom-suppression/345/256/236/346/265/213/346/212/245/345/221/212.md +158 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/SKILL.md +147 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch01-user-guide.md +123 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch02-plugin-basics.md +127 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch03-plugin-framework-practice.md +120 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch04-cordis-fundamentals.md +129 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch05-cordis-api.md +115 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch06-architecture.md +109 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch07-capability-seams.md +97 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch08-internals-pipelines.md +111 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch09-api-gateway.md +106 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch10-config-catalog.md +97 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch11-tool-catalog.md +121 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch12-persistence-catalog.md +109 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch13-subsystems-core-session.md +106 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch14-subsystems-agent-loop.md +111 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch15-subsystems-tool-execution.md +106 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch16-subsystems-session-data.md +132 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch17-subsystems-llm-streaming.md +128 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch18-subsystems-web-ui.md +142 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch19-cookbook.md +149 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch20-development-testing.md +87 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch21-postmortems.md +82 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch22-i18n.md +86 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/cheatsheet.md +67 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/glossary.md +57 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/patterns.md +88 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/AGENTS.md +75 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/agent-lifecycle.md +84 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/agent-lifecycle.zh.md +86 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/api-gateway.md +164 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/api-gateway.zh.md +164 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/architecture.md +150 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/architecture.zh.md +154 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/capability-seams.md +543 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/capability-seams.zh.md +545 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/config-catalog.md +3473 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/config-catalog.zh.md +3474 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-package.md +117 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-package.zh.md +119 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-remote-api.md +197 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-remote-api.zh.md +197 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-settings-card.md +102 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-settings-card.zh.md +102 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-tool.md +101 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-tool.zh.md +103 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-vendored-package.md +59 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-vendored-package.zh.md +59 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-an-llm-adapter.md +43 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-an-llm-adapter.zh.md +43 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/extension-cookbook.md +132 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/extension-cookbook.zh.md +136 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/maintaining-dsh-code-review.md +64 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/maintaining-dsh-code-review.zh.md +64 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/responding-to-pr-review-on-a-stack.md +32 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +32 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/context.md +364 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/context.zh.md +366 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/events.md +207 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/events.zh.md +209 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/fiber.md +375 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/fiber.zh.md +377 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/inherited.md +39 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/registry.md +152 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/registry.zh.md +154 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/service.md +102 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/service.zh.md +104 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-primer.md +45 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-primer.zh.md +51 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/01-first-plugin.md +95 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/01-first-plugin.zh.md +95 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/02-lifecycle-and-effects.md +98 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +98 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/03-services.md +98 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/03-services.zh.md +98 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/04-events.md +144 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/04-events.zh.md +144 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/05-config.md +84 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/05-config.zh.md +84 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/06-composition-and-hmr.md +113 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/06-composition-and-hmr.zh.md +113 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/07-into-the-harness.md +108 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/07-into-the-harness.zh.md +108 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/index.md +60 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/index.zh.md +62 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/deepseek-llm-api-wire-extensions.md +163 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/deepseek-llm-api-wire-extensions.zh.md +163 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/defensive-patterns.md +33 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/defensive-patterns.zh.md +35 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/development.md +167 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/development.zh.md +173 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/event-producer-consumer.md +86 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/event-producer-consumer.zh.md +88 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/glossary.md +45 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/glossary.zh.md +45 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/graph-atlas.md +22 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/graph-atlas.zh.md +24 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/README.md +60 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/README.zh.md +62 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/style-samples.md +87 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/terminology.md +214 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-prompt.md +263 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-rules.md +69 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-rules.zh.md +69 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/module-graph.md +1411 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/module-graph.zh.md +1413 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/persistence-catalog.md +1075 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/persistence-catalog.zh.md +1077 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0001-acp-default-export-drops-inject.md +113 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0001-acp-default-export-drops-inject.zh.md +113 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +47 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +47 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0003-web-agent-gui-feedback-loop.md +53 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +53 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +55 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +55 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/README.md +18 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/README.zh.md +18 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/rescope.md +53 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/rescope.zh.md +53 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/README.md +61 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/README.zh.md +61 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/agent-team.md +207 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/agent-team.zh.md +207 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/approval.md +170 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/approval.zh.md +170 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/attachment.md +351 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/attachment.zh.md +351 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/client-modules.md +168 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/client-modules.zh.md +168 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/code-runtime.md +195 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/code-runtime.zh.md +195 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/commands.md +219 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/commands.zh.md +219 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/compaction.md +238 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/compaction.zh.md +238 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/conversation.md +258 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/conversation.zh.md +258 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/core.md +1209 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/core.zh.md +1219 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/credentials.md +329 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/credentials.zh.md +329 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/extensions.md +382 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/extensions.zh.md +382 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/feedback.md +266 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/feedback.zh.md +266 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/filesystem.md +505 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/filesystem.zh.md +505 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/goal.md +277 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/goal.zh.md +277 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/invariants.md +88 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/invariants.zh.md +88 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/jobs.md +290 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/jobs.zh.md +290 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/llm-streaming.md +1080 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/llm-streaming.zh.md +1086 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/lsp.md +202 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/lsp.zh.md +202 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/permission-presets.md +131 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/permission-presets.zh.md +131 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/persistence.md +395 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/persistence.zh.md +395 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/plan.md +87 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/plan.zh.md +87 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/sandbox.md +220 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/sandbox.zh.md +220 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/schedule.md +192 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/schedule.zh.md +192 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/scope.md +59 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/scope.zh.md +59 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-projection.md +354 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-projection.zh.md +354 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-query.md +509 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-query.zh.md +509 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-reference.md +219 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-reference.zh.md +219 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-telemetry.md +194 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-telemetry.zh.md +194 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-title.md +204 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-title.zh.md +204 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session.md +1155 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session.zh.md +1159 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/settings.md +405 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/settings.zh.md +405 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/shell.md +303 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/shell.zh.md +303 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/skills.md +354 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/skills.zh.md +354 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/slots.md +175 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/slots.zh.md +175 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/spill.md +117 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/spill.zh.md +117 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/storage.md +260 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/storage.zh.md +260 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subagent.md +766 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subagent.zh.md +770 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subprocess.md +324 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subprocess.zh.md +324 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/system-prompt.md +220 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/system-prompt.zh.md +220 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/terminal.md +184 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/terminal.zh.md +184 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/todo.md +32 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/todo.zh.md +32 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/token-meter.md +105 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/token-meter.zh.md +105 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/tools.md +720 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/tools.zh.md +720 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/typert.md +343 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/typert.zh.md +343 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/user-questions.md +178 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/user-questions.zh.md +178 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-client.md +95 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-client.zh.md +95 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-server.md +154 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-server.zh.md +154 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web.md +206 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web.zh.md +206 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/webhook.md +70 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/webhook.zh.md +70 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workflow.md +278 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workflow.zh.md +278 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workspace.md +321 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workspace.zh.md +321 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/testing.md +54 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/testing.zh.md +54 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-catalog.md +2225 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-catalog.zh.md +2233 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-execution-pipeline.md +62 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-execution-pipeline.zh.md +64 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/config.md +106 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/config.zh.md +106 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/index.md +144 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/index.zh.md +144 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/publish.md +183 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/publish.zh.md +183 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/tool.md +52 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/tool.zh.md +52 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/events.md +143 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/events.zh.md +143 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/index.md +137 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/index.zh.md +137 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/service.md +148 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/service.zh.md +150 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/dynamic-cordis.md +15 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/dynamic-cordis.zh.md +15 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/index.md +155 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/index.zh.md +155 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/llm-adapter.md +189 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/llm-adapter.zh.md +189 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/github-review.md +102 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/github-review.zh.md +102 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/index.md +30 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/index.zh.md +30 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/mcp-memory.md +101 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/mcp-memory.zh.md +101 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/network-proxy.md +85 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/network-proxy.zh.md +85 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/providers.md +190 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/providers.zh.md +190 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/python-sdk.md +150 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/python-sdk.zh.md +150 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/schedule.md +21 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/schedule.zh.md +21 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/index.md +11 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/index.zh.md +11 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/web-styling.md +29 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/web-styling.zh.md +29 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/site-pages-map.txt +234 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/site-pages.json +232 -0
- package/node_modules/better-dsh/docs/80_upstream-docs-and-skills/dsh-dev-skill/src-README.md +63 -0
- package/node_modules/better-dsh/docs/dev-test-environment-notes.md +137 -0
- package/node_modules/better-dsh/docs/distro-blueprint.md +81 -0
- package/node_modules/better-dsh/docs/dsh-webUI-with-rlm-mode.png +0 -0
- package/node_modules/better-dsh/docs/repositioning-and-rebranding.md +102 -0
- package/node_modules/better-dsh/docs/specs/agent/spec.md +54 -0
- package/node_modules/better-dsh/docs/specs/ast/spec.md +57 -0
- package/node_modules/better-dsh/docs/specs/ast-engine-deomp/spec.md +170 -0
- package/node_modules/better-dsh/docs/specs/authentication-only-web-admission/spec.md +51 -0
- package/node_modules/better-dsh/docs/specs/compaction-recall/spec.md +46 -0
- package/node_modules/better-dsh/docs/specs/ctx/spec.md +179 -0
- package/node_modules/better-dsh/docs/specs/docs-packaging-trim/spec.md +110 -0
- package/node_modules/better-dsh/docs/specs/dsh/spec.md +47 -0
- package/node_modules/better-dsh/docs/specs/dvc/spec.md +106 -0
- package/node_modules/better-dsh/docs/specs/escalation-guidance/spec.md +44 -0
- package/node_modules/better-dsh/docs/specs/fs-scheme-resolution/spec.md +37 -0
- package/node_modules/better-dsh/docs/specs/hash-edit/spec.md +41 -0
- package/node_modules/better-dsh/docs/specs/http-read/spec.md +73 -0
- package/node_modules/better-dsh/docs/specs/kernel-provisioning/spec.md +53 -0
- package/node_modules/better-dsh/docs/specs/lsp/spec.md +121 -0
- package/node_modules/better-dsh/docs/specs/mobile-layout/spec.md +108 -0
- package/node_modules/better-dsh/docs/specs/model-failover/spec.md +20 -0
- package/node_modules/better-dsh/docs/specs/model-picker-ios-blur/spec.md +168 -0
- package/node_modules/better-dsh/docs/specs/plugins-page-components/spec.md +79 -0
- package/node_modules/better-dsh/docs/specs/preact-ui-shell/spec.md +22 -0
- package/node_modules/better-dsh/docs/specs/remote-pty-label/spec.md +126 -0
- package/node_modules/better-dsh/docs/specs/repl-dispatch-resilience/spec.md +21 -0
- package/node_modules/better-dsh/docs/specs/skill/spec.md +58 -0
- package/node_modules/better-dsh/docs/specs/tool-surface/spec.md +222 -0
- package/node_modules/better-dsh/docs/specs/url-schema/spec.md +148 -0
- package/node_modules/better-dsh/docs/specs/web-trust-fence/spec.md +43 -0
- package/node_modules/better-dsh/docs/specs/welcome-self-contained/spec.md +13 -0
- package/node_modules/better-dsh/docs/specs/zero-npm-runtime-deps/spec.md +85 -0
- package/node_modules/better-dsh/docs/superpowers/plans/2026-10-02-ctx-navigation.md +319 -0
- package/node_modules/better-dsh/docs/superpowers/plans/2026-10-03-ast-engine-deomp.md +1214 -0
- package/node_modules/better-dsh/docs/superpowers/plans/2026-10-03-docs-packaging-trim.md +181 -0
- package/node_modules/better-dsh/docs/superpowers/specs/2026-10-02-ctx-navigation-design.md +209 -0
- package/node_modules/better-dsh/docs/upstream-dsh-0.1.5-rc.2-report.md +156 -0
- package/node_modules/better-dsh/dsh-docs/AGENTS.md +75 -0
- package/node_modules/better-dsh/dsh-docs/agent-lifecycle.md +84 -0
- package/node_modules/better-dsh/dsh-docs/agent-lifecycle.zh.md +86 -0
- package/node_modules/better-dsh/dsh-docs/api-gateway.md +164 -0
- package/node_modules/better-dsh/dsh-docs/api-gateway.zh.md +164 -0
- package/node_modules/better-dsh/dsh-docs/architecture.md +150 -0
- package/node_modules/better-dsh/dsh-docs/architecture.zh.md +154 -0
- package/node_modules/better-dsh/dsh-docs/capability-seams.md +543 -0
- package/node_modules/better-dsh/dsh-docs/capability-seams.zh.md +545 -0
- package/node_modules/better-dsh/dsh-docs/config-catalog.md +3473 -0
- package/node_modules/better-dsh/dsh-docs/config-catalog.zh.md +3474 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-package.md +117 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-package.zh.md +119 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-remote-api.md +197 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-remote-api.zh.md +197 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-session-format-version.md +109 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-session-format-version.zh.md +109 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-settings-card.md +102 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-settings-card.zh.md +102 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-tool.md +101 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-tool.zh.md +103 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-vendored-package.md +59 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-a-vendored-package.zh.md +59 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-an-llm-adapter.md +43 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/adding-an-llm-adapter.zh.md +43 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/extension-cookbook.md +132 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/extension-cookbook.zh.md +136 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/maintaining-dsh-code-review.md +64 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/maintaining-dsh-code-review.zh.md +64 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/responding-to-pr-review-on-a-stack.md +32 -0
- package/node_modules/better-dsh/dsh-docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +32 -0
- package/node_modules/better-dsh/dsh-docs/cordis-api/context.md +364 -0
- package/node_modules/better-dsh/dsh-docs/cordis-api/context.zh.md +366 -0
- package/node_modules/better-dsh/dsh-docs/cordis-api/events.md +207 -0
- package/node_modules/better-dsh/dsh-docs/cordis-api/events.zh.md +209 -0
- package/node_modules/better-dsh/dsh-docs/cordis-api/fiber.md +375 -0
- package/node_modules/better-dsh/dsh-docs/cordis-api/fiber.zh.md +377 -0
- package/node_modules/better-dsh/dsh-docs/cordis-api/inherited.md +39 -0
- package/node_modules/better-dsh/dsh-docs/cordis-api/registry.md +152 -0
- package/node_modules/better-dsh/dsh-docs/cordis-api/registry.zh.md +154 -0
- package/node_modules/better-dsh/dsh-docs/cordis-api/service.md +102 -0
- package/node_modules/better-dsh/dsh-docs/cordis-api/service.zh.md +104 -0
- package/node_modules/better-dsh/dsh-docs/cordis-primer.md +45 -0
- package/node_modules/better-dsh/dsh-docs/cordis-primer.zh.md +51 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/01-first-plugin.md +95 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/01-first-plugin.zh.md +95 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/02-lifecycle-and-effects.md +98 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +98 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/03-services.md +98 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/03-services.zh.md +98 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/04-events.md +144 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/04-events.zh.md +144 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/05-config.md +84 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/05-config.zh.md +84 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/06-composition-and-hmr.md +113 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/06-composition-and-hmr.zh.md +113 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/07-into-the-harness.md +108 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/07-into-the-harness.zh.md +108 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/index.md +60 -0
- package/node_modules/better-dsh/dsh-docs/cordis-tutorial/index.zh.md +62 -0
- package/node_modules/better-dsh/dsh-docs/deepseek-llm-api-wire-extensions.md +163 -0
- package/node_modules/better-dsh/dsh-docs/deepseek-llm-api-wire-extensions.zh.md +163 -0
- package/node_modules/better-dsh/dsh-docs/defensive-patterns.md +33 -0
- package/node_modules/better-dsh/dsh-docs/defensive-patterns.zh.md +35 -0
- package/node_modules/better-dsh/dsh-docs/development.md +167 -0
- package/node_modules/better-dsh/dsh-docs/development.zh.md +173 -0
- package/node_modules/better-dsh/dsh-docs/event-producer-consumer.md +86 -0
- package/node_modules/better-dsh/dsh-docs/event-producer-consumer.zh.md +88 -0
- package/node_modules/better-dsh/dsh-docs/glossary.md +45 -0
- package/node_modules/better-dsh/dsh-docs/glossary.zh.md +45 -0
- package/node_modules/better-dsh/dsh-docs/graph-atlas.md +22 -0
- package/node_modules/better-dsh/dsh-docs/graph-atlas.zh.md +24 -0
- package/node_modules/better-dsh/dsh-docs/i18n/README.md +60 -0
- package/node_modules/better-dsh/dsh-docs/i18n/README.zh.md +62 -0
- package/node_modules/better-dsh/dsh-docs/i18n/style-samples.md +87 -0
- package/node_modules/better-dsh/dsh-docs/i18n/terminology.md +214 -0
- package/node_modules/better-dsh/dsh-docs/i18n/translation-prompt.md +263 -0
- package/node_modules/better-dsh/dsh-docs/i18n/translation-rules.md +69 -0
- package/node_modules/better-dsh/dsh-docs/i18n/translation-rules.zh.md +69 -0
- package/node_modules/better-dsh/dsh-docs/module-graph.md +1411 -0
- package/node_modules/better-dsh/dsh-docs/module-graph.zh.md +1413 -0
- package/node_modules/better-dsh/dsh-docs/persistence-catalog.md +1075 -0
- package/node_modules/better-dsh/dsh-docs/persistence-catalog.zh.md +1077 -0
- package/node_modules/better-dsh/dsh-docs/postmortem/0001-acp-default-export-drops-inject.md +113 -0
- package/node_modules/better-dsh/dsh-docs/postmortem/0001-acp-default-export-drops-inject.zh.md +113 -0
- package/node_modules/better-dsh/dsh-docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +47 -0
- package/node_modules/better-dsh/dsh-docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +47 -0
- package/node_modules/better-dsh/dsh-docs/postmortem/0003-web-agent-gui-feedback-loop.md +53 -0
- package/node_modules/better-dsh/dsh-docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +53 -0
- package/node_modules/better-dsh/dsh-docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +55 -0
- package/node_modules/better-dsh/dsh-docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +55 -0
- package/node_modules/better-dsh/dsh-docs/postmortem/README.md +18 -0
- package/node_modules/better-dsh/dsh-docs/postmortem/README.zh.md +18 -0
- package/node_modules/better-dsh/dsh-docs/rescope.md +53 -0
- package/node_modules/better-dsh/dsh-docs/rescope.zh.md +53 -0
- package/node_modules/better-dsh/dsh-docs/session-format-status.md +47 -0
- package/node_modules/better-dsh/dsh-docs/session-format-status.zh.md +47 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/README.md +61 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/README.zh.md +61 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/agent-team.md +207 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/agent-team.zh.md +207 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/approval.md +170 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/approval.zh.md +170 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/attachment.md +351 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/attachment.zh.md +351 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/client-modules.md +168 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/client-modules.zh.md +168 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/client-resources.md +91 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/client-resources.zh.md +91 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/code-runtime.md +195 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/code-runtime.zh.md +195 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/commands.md +219 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/commands.zh.md +219 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/compaction.md +238 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/compaction.zh.md +238 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/conversation.md +258 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/conversation.zh.md +258 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/core.md +1209 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/core.zh.md +1219 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/credentials.md +329 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/credentials.zh.md +329 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/extensions.md +382 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/extensions.zh.md +382 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/feedback.md +266 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/feedback.zh.md +266 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/filesystem.md +505 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/filesystem.zh.md +505 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/goal.md +277 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/goal.zh.md +277 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/invariants.md +88 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/invariants.zh.md +88 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/jobs.md +290 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/jobs.zh.md +290 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/llm-streaming.md +1080 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/llm-streaming.zh.md +1086 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/lsp.md +202 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/lsp.zh.md +202 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/permission-presets.md +131 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/permission-presets.zh.md +131 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/persistence.md +395 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/persistence.zh.md +395 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/plan.md +87 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/plan.zh.md +87 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/sandbox.md +220 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/sandbox.zh.md +220 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/schedule.md +192 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/schedule.zh.md +192 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/scope.md +59 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/scope.zh.md +59 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/session-projection.md +354 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/session-projection.zh.md +354 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/session-query.md +509 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/session-query.zh.md +509 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/session-reference.md +219 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/session-reference.zh.md +219 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/session-telemetry.md +194 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/session-telemetry.zh.md +194 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/session-title.md +204 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/session-title.zh.md +204 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/session.md +1155 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/session.zh.md +1159 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/settings.md +405 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/settings.zh.md +405 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/shell.md +303 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/shell.zh.md +303 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/sidebar-right.md +148 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/sidebar-right.zh.md +148 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/skills.md +354 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/skills.zh.md +354 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/slots.md +175 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/slots.zh.md +175 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/spill.md +117 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/spill.zh.md +117 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/storage.md +260 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/storage.zh.md +260 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/subagent.md +766 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/subagent.zh.md +770 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/subprocess.md +324 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/subprocess.zh.md +324 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/system-prompt.md +220 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/system-prompt.zh.md +220 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/terminal.md +184 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/terminal.zh.md +184 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/todo.md +32 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/todo.zh.md +32 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/token-meter.md +105 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/token-meter.zh.md +105 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/tools.md +720 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/tools.zh.md +720 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/typert.md +343 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/typert.zh.md +343 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/user-questions.md +178 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/user-questions.zh.md +178 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/web-client.md +95 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/web-client.zh.md +95 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/web-server.md +154 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/web-server.zh.md +154 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/web.md +206 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/web.zh.md +206 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/webhook.md +70 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/webhook.zh.md +70 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/workflow.md +278 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/workflow.zh.md +278 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/workspace.md +321 -0
- package/node_modules/better-dsh/dsh-docs/subsystems/workspace.zh.md +321 -0
- package/node_modules/better-dsh/dsh-docs/testing.md +54 -0
- package/node_modules/better-dsh/dsh-docs/testing.zh.md +54 -0
- package/node_modules/better-dsh/dsh-docs/tool-catalog.md +2225 -0
- package/node_modules/better-dsh/dsh-docs/tool-catalog.zh.md +2233 -0
- package/node_modules/better-dsh/dsh-docs/tool-execution-pipeline.md +62 -0
- package/node_modules/better-dsh/dsh-docs/tool-execution-pipeline.zh.md +64 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/config.md +106 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/config.zh.md +106 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/index.md +144 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/index.zh.md +144 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/publish.md +183 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/publish.zh.md +183 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/tool.md +52 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/basic/tool.zh.md +52 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/framework/events.md +143 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/framework/events.zh.md +143 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/framework/index.md +137 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/framework/index.zh.md +137 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/framework/service.md +148 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/framework/service.zh.md +150 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/practice/dynamic-cordis.md +15 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/practice/dynamic-cordis.zh.md +15 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/practice/index.md +155 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/practice/index.zh.md +155 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/practice/llm-adapter.md +189 -0
- package/node_modules/better-dsh/dsh-docs/user/develop/practice/llm-adapter.zh.md +189 -0
- package/node_modules/better-dsh/dsh-docs/user/guide/github-review.md +102 -0
- package/node_modules/better-dsh/dsh-docs/user/guide/github-review.zh.md +102 -0
- package/node_modules/better-dsh/dsh-docs/user/guide/index.md +30 -0
- package/node_modules/better-dsh/dsh-docs/user/guide/index.zh.md +30 -0
- package/node_modules/better-dsh/dsh-docs/user/guide/mcp-memory.md +101 -0
- package/node_modules/better-dsh/dsh-docs/user/guide/mcp-memory.zh.md +101 -0
- package/node_modules/better-dsh/dsh-docs/user/guide/network-proxy.md +85 -0
- package/node_modules/better-dsh/dsh-docs/user/guide/network-proxy.zh.md +85 -0
- package/node_modules/better-dsh/dsh-docs/user/guide/providers.md +190 -0
- package/node_modules/better-dsh/dsh-docs/user/guide/providers.zh.md +190 -0
- package/node_modules/better-dsh/dsh-docs/user/guide/python-sdk.md +150 -0
- package/node_modules/better-dsh/dsh-docs/user/guide/python-sdk.zh.md +150 -0
- package/node_modules/better-dsh/dsh-docs/user/guide/schedule.md +21 -0
- package/node_modules/better-dsh/dsh-docs/user/guide/schedule.zh.md +21 -0
- package/node_modules/better-dsh/dsh-docs/user/index.md +11 -0
- package/node_modules/better-dsh/dsh-docs/user/index.zh.md +11 -0
- package/node_modules/better-dsh/dsh-docs/web-styling.md +29 -0
- package/node_modules/better-dsh/dsh-docs/web-styling.zh.md +29 -0
- package/node_modules/better-dsh/eval-description.md +33 -0
- package/node_modules/better-dsh/lib/BrowserWebSocketTransport-D1aFReu_.js +4 -0
- package/node_modules/better-dsh/lib/BrowserWebSocketTransport-wm99h94r.js +39 -0
- package/node_modules/better-dsh/lib/LaunchOptions-B874eBu2.js +4 -0
- package/node_modules/better-dsh/lib/LaunchOptions-kGXcZOe0.js +17 -0
- package/node_modules/better-dsh/lib/NodeWebSocketTransport-BRLjmu2R.js +4 -0
- package/node_modules/better-dsh/lib/NodeWebSocketTransport-D9ysYGLM.js +3634 -0
- package/node_modules/better-dsh/lib/ast-assets/ast-grep.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-bash.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-c.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-cpp.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-css.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-go.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-html.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-javascript.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-json.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-python.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-ruby.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-rust.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-tsx.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-typescript.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter-yaml.wasm +0 -0
- package/node_modules/better-dsh/lib/ast-assets/tree-sitter.wasm +0 -0
- package/node_modules/better-dsh/lib/bidi-BalpKaJc.js +16106 -0
- package/node_modules/better-dsh/lib/bundle-delivery.d.ts +20 -0
- package/node_modules/better-dsh/lib/bundle-delivery.js +209 -0
- package/node_modules/better-dsh/lib/chunk-DQxbwPpZ.js +30 -0
- package/node_modules/better-dsh/lib/client/index.js +712 -0
- package/node_modules/better-dsh/lib/compaction/index.d.ts +57 -0
- package/node_modules/better-dsh/lib/compaction/index.js +145 -0
- package/node_modules/better-dsh/lib/failover/index.d.ts +59 -0
- package/node_modules/better-dsh/lib/failover/index.js +147 -0
- package/node_modules/better-dsh/lib/fs-aware/sandbox-plugin.d.ts +71 -0
- package/node_modules/better-dsh/lib/fs-aware/sandbox-plugin.js +249 -0
- package/node_modules/better-dsh/lib/hmr.d.ts +32 -0
- package/node_modules/better-dsh/lib/hmr.js +49 -0
- package/node_modules/better-dsh/lib/index-DTDXUe6m.d.ts +208 -0
- package/node_modules/better-dsh/lib/index-browser-CysrjMyM.js +21061 -0
- package/node_modules/better-dsh/lib/index.d.ts +705 -0
- package/node_modules/better-dsh/lib/index.js +3816 -0
- package/node_modules/better-dsh/lib/kernel-bridge.py +172 -0
- package/node_modules/better-dsh/lib/kernel-env-D8UOWeji.js +195 -0
- package/node_modules/better-dsh/lib/kernel-env.d.ts +80 -0
- package/node_modules/better-dsh/lib/kernel-env.js +3 -0
- package/node_modules/better-dsh/lib/lib-C8_jXvwA.js +894 -0
- package/node_modules/better-dsh/lib/lsp-server-registry-BXvUTBY7.js +3 -0
- package/node_modules/better-dsh/lib/lsp-server-registry-CH9WNFFt.js +972 -0
- package/node_modules/better-dsh/lib/main-BQeFrBM1.js +3 -0
- package/node_modules/better-dsh/lib/main-CupOhMp5.js +1432 -0
- package/node_modules/better-dsh/lib/mobile/plugin.d.ts +29 -0
- package/node_modules/better-dsh/lib/mobile/plugin.js +54 -0
- package/node_modules/better-dsh/lib/native-capture-BEByDXYM.js +68 -0
- package/node_modules/better-dsh/lib/puppeteer-core-CSk2PtSm.js +1136 -0
- package/node_modules/better-dsh/lib/py-sdk-D7klhpWb.js +178 -0
- package/node_modules/better-dsh/lib/py-sdk.d.ts +19 -0
- package/node_modules/better-dsh/lib/py-sdk.js +3 -0
- package/node_modules/better-dsh/lib/remote/plugin.d.ts +24 -0
- package/node_modules/better-dsh/lib/remote/plugin.js +1190 -0
- package/node_modules/better-dsh/lib/url-schemes/index.d.ts +88 -0
- package/node_modules/better-dsh/lib/url-schemes/index.js +12229 -0
- package/node_modules/better-dsh/lib/util-BHL_dfV_.js +2953 -0
- package/node_modules/better-dsh/lib/wasm_bg-CNXhHjVg.js +1291 -0
- package/node_modules/better-dsh/lib/web-password.d.ts +156 -0
- package/node_modules/better-dsh/lib/web-password.js +562 -0
- package/node_modules/better-dsh/lib/web-tree-sitter-CPrPD4J2.js +3440 -0
- package/node_modules/better-dsh/lib/web-trust-D6gJpUMf.js +393 -0
- package/node_modules/better-dsh/lib/web-trust-Dej_RI2B.d.ts +113 -0
- package/node_modules/better-dsh/lib/web-trust.d.ts +3 -0
- package/node_modules/better-dsh/lib/web-trust.js +4 -0
- package/node_modules/better-dsh/lib/webserver.d.ts +10 -0
- package/node_modules/better-dsh/lib/webserver.js +19 -0
- package/node_modules/better-dsh/lib/welcome-notice.d.ts +18 -0
- package/node_modules/better-dsh/lib/welcome-notice.js +59 -0
- package/node_modules/better-dsh/lib/wrap-T4I0nfPM.js +750 -0
- package/node_modules/better-dsh/package.json +430 -0
- package/node_modules/better-dsh/scripts/kernel-provision.mjs +35 -0
- package/node_modules/better-dsh/scripts/register-bundle.mjs +80 -0
- package/node_modules/better-dsh/url-schemes-instruction.md +22 -0
- package/package.json +21 -6
- package/superd-hub/assets/icons/README.md +20 -0
- package/superd-hub/assets/icons/amp.png +0 -0
- package/superd-hub/assets/icons/ante.png +0 -0
- package/superd-hub/assets/icons/antigravity.png +0 -0
- package/superd-hub/assets/icons/aug.png +0 -0
- package/superd-hub/assets/icons/autohand.png +0 -0
- package/superd-hub/assets/icons/claude.svg +1 -0
- package/superd-hub/assets/icons/cline.png +0 -0
- package/superd-hub/assets/icons/codebuddy.png +0 -0
- package/superd-hub/assets/icons/codebuff.png +0 -0
- package/superd-hub/assets/icons/codex.svg +1 -0
- package/superd-hub/assets/icons/command-code.png +0 -0
- package/superd-hub/assets/icons/continue.png +0 -0
- package/superd-hub/assets/icons/copilot.png +0 -0
- package/superd-hub/assets/icons/crush.png +0 -0
- package/superd-hub/assets/icons/cursor.png +0 -0
- package/superd-hub/assets/icons/devin.png +0 -0
- package/superd-hub/assets/icons/droid.png +0 -0
- package/superd-hub/assets/icons/dsh-fish.svg +3 -0
- package/superd-hub/assets/icons/dsh.png +0 -0
- package/superd-hub/assets/icons/freebuff.png +0 -0
- package/superd-hub/assets/icons/gemini.png +0 -0
- package/superd-hub/assets/icons/goose.png +0 -0
- package/superd-hub/assets/icons/grok.png +0 -0
- package/superd-hub/assets/icons/hermes.png +0 -0
- package/superd-hub/assets/icons/jcode.png +0 -0
- package/superd-hub/assets/icons/kilo.png +0 -0
- package/superd-hub/assets/icons/kimi.png +0 -0
- package/superd-hub/assets/icons/kiro.png +0 -0
- package/superd-hub/assets/icons/manifest.json +20 -0
- package/superd-hub/assets/icons/mimo-code.png +0 -0
- package/superd-hub/assets/icons/mistral-vibe.png +0 -0
- package/superd-hub/assets/icons/muse.png +0 -0
- package/superd-hub/assets/icons/omp.svg +1 -0
- package/superd-hub/assets/icons/openclaude.png +0 -0
- package/superd-hub/assets/icons/openclaw.png +0 -0
- package/superd-hub/assets/icons/opencode.png +0 -0
- package/superd-hub/assets/icons/pi.svg +1 -0
- package/superd-hub/assets/icons/prime-agent.png +0 -0
- package/superd-hub/assets/icons/qoder-cn.png +0 -0
- package/superd-hub/assets/icons/qoder.png +0 -0
- package/superd-hub/assets/icons/qwen-code.png +0 -0
- package/superd-hub/assets/icons/rovo.png +0 -0
- package/superd-hub/assets/icons/trae.png +0 -0
- package/superd-hub/assets/icons/zcode.png +0 -0
- package/superd-hub/dist/a2a-row.js +1 -1
- package/superd-hub/dist/agent-roster.d.ts +8 -3
- package/superd-hub/dist/agent-roster.js +19 -7
- package/superd-hub/dist/bundle-setup.d.ts +2 -0
- package/superd-hub/dist/bundle-setup.js +2 -0
- package/superd-hub/dist/client/icon-assets.gen.d.ts +16 -0
- package/superd-hub/dist/client/icon-assets.gen.js +54 -0
- package/superd-hub/dist/client/mesh-api.d.ts +28 -17
- package/superd-hub/dist/client/mesh-api.js +44 -31
- package/superd-hub/dist/client/mesh-groups.d.ts +13 -11
- package/superd-hub/dist/client/mesh-groups.js +30 -10
- package/superd-hub/dist/client/roster.d.ts +7 -16
- package/superd-hub/dist/client/roster.js +5 -3
- package/superd-hub/dist/fusion-transport.d.ts +11 -10
- package/superd-hub/dist/fusion-transport.js +21 -11
- package/superd-hub/dist/index.d.ts +0 -1
- package/superd-hub/dist/index.js +0 -1
- package/superd-hub/dist/machines.d.ts +6 -3
- package/superd-hub/dist/machines.js +15 -3
- package/superd-hub/dist/mesh-federate.d.ts +18 -8
- package/superd-hub/dist/mesh-federate.js +14 -9
- package/superd-hub/dist/mesh-link.d.ts +37 -3
- package/superd-hub/dist/mesh-link.js +49 -4
- package/superd-hub/dist/mesh-rpc.d.ts +48 -16
- package/superd-hub/dist/mesh-rpc.js +139 -14
- package/superd-hub/dist/roster.d.ts +20 -0
- package/superd-hub/dist/roster.js +24 -0
- package/superd-hub/dist/switch-core.d.ts +3 -2
- package/superd-hub/dist/switch-core.js +1 -1
- package/superd-hub/dist/world-entry.d.ts +3 -0
- package/superd-hub/dist/world-entry.js +4 -1
- package/superd-hub/dist/world-host.d.ts +5 -2
- package/superd-hub/dist/world-host.js +6 -2
- package/superd-hub/dist/world-join.d.ts +1 -1
- package/superd-hub/dist/world-join.js +14 -32
- package/superd-hub/dist/world-lifecycle.d.ts +20 -0
- package/superd-hub/dist/world-lifecycle.js +69 -0
- package/superd-hub/dist/world-mount.d.ts +1 -1
- package/superd-hub/dist/world-mount.js +2 -2
- package/superd-hub/lib/client/index.js +434 -307
- package/superd-hub/package.json +3 -2
- package/superd-hub/dist/connection-trust.d.ts +0 -8
- package/superd-hub/dist/connection-trust.js +0 -16
- package/superd-hub/dist/web-trust.d.ts +0 -84
- package/superd-hub/dist/web-trust.js +0 -101
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# AST 去 OMP 化:内置 WASM 引擎(ast-engine-deomp)
|
|
2
|
+
|
|
3
|
+
状态:**设计已定(user 裁决 2026-10-03:路线 A + 14 语法全部随包);spike 已证;待落实现**
|
|
4
|
+
| 规格路径:`docs/specs/ast-engine-deomp/spec.md`(仓库根 docs;`better-dsh/docs/` 是 `prebuild` 由 `../docs` 重建的产物,别写那里)
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 0. 动机(实证)
|
|
9
|
+
|
|
10
|
+
`dvc://ast_grep` / `dvc://ast_edit` 是插件里**最后一个还需要 OMP 二进制的组件**。`zero-npm-runtime-deps`(0.2.5-a/b)已把 `@oh-my-pi/pi-natives-<platform>` 从 `dependencies` 摘掉,改为首次使用 lazy 自装——安装不再背它,但**第一次用 AST 仍要付**:
|
|
11
|
+
|
|
12
|
+
| 项 | 实测 |
|
|
13
|
+
|---|---|
|
|
14
|
+
| 自装下载量 | `@oh-my-pi/pi-natives-linux-x64@18.0.6` = **70.8 MB**(registry `content-range: bytes 0-1/70791219`) |
|
|
15
|
+
| 自装落盘量 | `dist.unpackedSize` **328 MB**(本机 18.2.11 实测 352 MB:`pi_natives.*-modern.node` 183 MB + `-baseline.node` 183 MB) |
|
|
16
|
+
| 前提 | 必须联网 + npm registry 可达(否则 AST 设备整个不可用) |
|
|
17
|
+
|
|
18
|
+
三点归属澄清(避免误伤):
|
|
19
|
+
|
|
20
|
+
1. **better-dsh 声明的 OMP 依赖 = 0 条**(`package.json` 实证)。
|
|
21
|
+
2. prod profile 里那 352 MB `@oh-my-pi/*` **不是我们的**——来自 `super-dsh@0.1.9` → `@oh-my-pi/pi-coding-agent@18.2.11`。
|
|
22
|
+
3. 这条自装路径是 0.2.5-a 的**有意的临时态**(`zero-npm-runtime-deps` 第 2 节表格最后一行),不是终态。
|
|
23
|
+
|
|
24
|
+
**为什么可以自己实现**:`@oh-my-pi/pi-natives` 的 ast 面(`crates/pi-ast` 4,448 行 + `crates/pi-natives/src/ast.rs` 1,509 行)分两层——
|
|
25
|
+
|
|
26
|
+
- **引擎**(唯一真 native):ast-grep 结构匹配/改写 + ~70 个 tree-sitter 语法。**OMP 自己也是抄的**:`Cargo.toml` 里 `ast-grep-core 0.39` + `tree-sitter 0.25`,全 MIT。上游 ast-grep 官方就发布**纯 WASM 构建**。
|
|
27
|
+
- **底盘**(全是胶水,TS 可写):`.gitignore` 感知遍历(`ignore` crate)、glob 过滤(`globset`)、扩展名→语言推断、`maxFiles`/`maxReplacements`、dryRun、parseError 收集、meta 变量、分页、聚合统计。
|
|
28
|
+
|
|
29
|
+
**投入上限的负证据**:`docs/60_exploration-and-research/07-omp-usage-telemetry/omp-lsp-ast-device-usage-telemetry.md` —— 3 周、288 个 session、21,666 次 toolCall 的真实 OMP 语料里,`ast_edit` / `lsp` **执行 0 次**(对照 `dsh://browser` 631 次)。所以本 change 的取舍原则是**语义零回归、体积大降、不为性能做过度工程**,而不是把 native 性能复刻出来。
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 1. 目标态(硬契约)
|
|
34
|
+
|
|
35
|
+
> **2026-10-04 修订(task-12 诊断字段)**:本条的「一字不动」是 **parity swap 期的冻结口径**——它约束的是 native→WASM 替换本身的行为面 A/B。验收后的 0.2.6 起为可诊断性**有意背离**:`ast_grep`/`ast_edit` 结果新增**可选**诊断字段 `patternErrors` / `pathNotFound` / `overlapping`(native 对这三种失败同样静默,见 2026-10-04 实测报告 A1/A3/A6)。这是 spec'd 的契约扩展(ast/dvc spec 新增 Requirement "Diagnostic fields (deliberate divergence from the native predecessor)"),不属于本规格意义上的回归;既有字段名与语义仍一字不动。
|
|
36
|
+
1. **模型面契约一字不动**:`ast_grep` 的 `{patterns, path, offset, limit, includeMeta}`、`ast_edit` 的 `{ops:[{pat,out}], paths, dryRun}`,以及结果里 `changes` / `fileChanges` / `totalReplacements` / `filesTouched` / `filesSearched` / `applied` / `limitReached` / `parseErrors` / `matches` / `totalMatches` / `filesWithMatches` 的字段与语义全部保持。
|
|
37
|
+
2. **零 OMP 痕迹(代码/产物面)**:源码、产物、`.vendor`、运行时网络请求,以及 tarball 里运行时实际装载的面(`lib/`、`package.json`、`scripts/`)都不再出现 `@oh-my-pi` / `pi_natives`。tarball 内 `docs/` 是刻意的发布载荷,对本次迁移的历史性提及属预期、不计入该判据(2026-10-04 终审定界:代码/产物面实测 0 命中;docs prose 提及数量随发布内容浮动,非回归信号)。
|
|
38
|
+
3. **守住 zero-npm-runtime-deps 契约**:`dependencies` / `optionalDependencies` / `postinstall` 维持不存在;引擎与语法是**构建期输入**(devDependencies),产物以**包内资产**形式随 `files` 发布——即该规格认可的"构建期进产物"那条出路,不引入新的运行时自装。
|
|
39
|
+
4. **离线自足**:断网、无 npm、无 `.vendor` 的环境下 `ast_grep`/`ast_edit` 必须真实可用。
|
|
40
|
+
5. **fail-open 保持**:引擎整体或某一种语法加载失败,只降级该设备/该语言,插件加载与其余组件零影响;对外仍是 `DVC_DEVICE_ERROR`,措辞改为指向内置引擎。
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 2. 技术选型(spike 已证)
|
|
45
|
+
|
|
46
|
+
| 角色 | 选定 | 版本 | 体积 | 许可 |
|
|
47
|
+
|---|---|---|---|---|
|
|
48
|
+
| 匹配/改写引擎 | `@ast-grep/wasm`(**官方** ast-grep 的 WASM 构建) | 0.45.3 | 1.73 MB | MIT |
|
|
49
|
+
| WASM 运行时 | `web-tree-sitter` | 0.26.x | 0.20 MB | MIT |
|
|
50
|
+
| 语法(14 个) | `@lumis-sh/wasm-<lang>` | 0.26.x | 12.5 MB | MIT |
|
|
51
|
+
|
|
52
|
+
**合计 14.4 MB 随包**,对照现状 **70.8 MB 下载 / 328 MB 落盘 / 必须联网**。
|
|
53
|
+
|
|
54
|
+
语法↔扩展名表(沿用现有 `AST_CODE_EXTENSIONS`,本 change 不缩语言面):
|
|
55
|
+
|
|
56
|
+
| 扩展名 | 语法 | 扩展名 | 语法 |
|
|
57
|
+
|---|---|---|---|
|
|
58
|
+
| `.py` `.pyi` | python | `.c` `.h` | c |
|
|
59
|
+
| `.js` `.jsx` `.mjs` `.cjs` | javascript | `.cpp` `.hpp` | cpp |
|
|
60
|
+
| `.ts` `.mts` `.cts` | typescript | `.html` | html |
|
|
61
|
+
| `.tsx` | tsx | `.css` | css |
|
|
62
|
+
| `.rs` | rust | `.json` | json |
|
|
63
|
+
| `.go` | go | `.yaml` `.yml` | yaml |
|
|
64
|
+
| `.sh` | bash | `.rb` | ruby |
|
|
65
|
+
|
|
66
|
+
### 2.1 spike 结论(丢弃式探针:`.scratch/ast-wasm-spike/`)
|
|
67
|
+
|
|
68
|
+
**A/B 一致性**:用 `natives-loader.ts` 同款方式 dlopen 本机真实 `pi_natives.linux-x64.node`,与 WASM 栈跑同一组用例——
|
|
69
|
+
|
|
70
|
+
| 用例 | OMP native | WASM 栈 | |
|
|
71
|
+
|---|---|---|---|
|
|
72
|
+
| `c` `foo($A)` | 0 | 0 | ✅ |
|
|
73
|
+
| `c` `return foo($A)` | 1 | 1 | ✅ |
|
|
74
|
+
| `cpp` `foo($A)` | 1 | 1 | ✅ |
|
|
75
|
+
| `css` `color: $V` / `color: red` | 0 / 0 | 0 / 0 | ✅ |
|
|
76
|
+
| `html` `<div class=$C>$$$K</div>` | 1 | 1 | ✅ |
|
|
77
|
+
| `python` `return $X` | 1 | 1 | ✅ |
|
|
78
|
+
| `js` `foo($$$A)` / `rust` `vec![$$$A]` / `yaml` `b: $V` / `go` `foo($A)` | 1 | 1 | ✅ |
|
|
79
|
+
|
|
80
|
+
**C / CSS 的"匹配不到"是 ast-grep 上游的 pattern 上下文歧义,不是 WASM 退化**——native 给同样的 0。行为面零回归。
|
|
81
|
+
|
|
82
|
+
**三个已解的坑**(实现时不得重新踩):
|
|
83
|
+
|
|
84
|
+
1. **Node 不吃 ESM wasm import**:`@ast-grep/wasm` 的 `wasm.js` 直接 `import "*.wasm"`,Node 22 需 `--experimental-wasm-modules`。正解是**手动装配**:`WebAssembly.instantiate(bytes, { './wasm_bg.js': bg })` → `bg.__wbg_set_wasm(instance.exports)` → `instance.exports.__wbindgen_start()`(wasm-bindgen 标准手法;wasm 的 import module 名实测为 `./wasm_bg.js`,102 个 import)。
|
|
85
|
+
2. **`expandoChar` 必须显式给 `'µ'`**:默认值 `$` 只在 JS/TS/bash/cpp 下碰巧可用;python / rust / go 会**静默 0 命中**(实测矩阵:`default:0 / "$":0 / "µ":1`)。`µ` 在全部被测语言下可用。
|
|
86
|
+
3. **语法 wasm 必须是新式 `dylink.0`**:最流行的 `tree-sitter-wasms@0.1.13` 是 legacy `dylink`,与 `web-tree-sitter@0.26` 硬不兼容(`getDylinkMetadata` → `need dylink section`)。`@lumis-sh/wasm-*`(`dylink.0` 实测为 1)是正解。
|
|
87
|
+
|
|
88
|
+
**性能实测(诚实记录,见 §6)**:14 个语言 `registerDynamicLanguage` 冷启 **121 ms**;单文件 17 KB typescript 解析 **26.6 ms**;遍历 `better-dsh/src` 188 文件 / 1.1 MB 源码(解析+匹配)**1,273 ms ≈ 0.9 MB/s**(单线程)。
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 3. 模块设计
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
src/devices/ast/
|
|
96
|
+
engine/
|
|
97
|
+
wasm.ts ← 手动 wasm 装配 + Parser.init + 惰性单例;唯一的 wasm 入口
|
|
98
|
+
grammars.ts ← 语言注册表:lang → 资产路径 + expandoChar 'µ';懒注册、按需
|
|
99
|
+
language-map.ts ← 扩展名 → 语言(**单一真相源**)
|
|
100
|
+
match.ts ← pattern 编译 + 多根节点记 0 命中 + 命中 → AstFindMatch 映射(字节偏移)
|
|
101
|
+
edit.ts ← astEdit 核心:rewrites / dryRun / changes[] / 字节偏移换算
|
|
102
|
+
walker.ts ← .gitignore 感知遍历 + glob + 语言推断 + maxFiles 限额
|
|
103
|
+
ast-device.ts ← 保持公开契约,改为调 engine + walker(薄适配层)
|
|
104
|
+
ast-reminder.ts ← 语言集合改为对齐 engine 的语法表(不再"对 shipped 二进制实测")
|
|
105
|
+
natives-loader.ts ← **删除**
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**资产流**:新增 `scripts/copy-ast-assets.mjs`,构建期把 3 件套 wasm 从 `node_modules` 拷进 `lib/ast-assets/`(`files: ["lib", …]` 已覆盖,无需改发布面)。构建链改为:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
tsdown && npm run build-client && node scripts/copy-kernel-bridge.mjs && node scripts/copy-ast-assets.mjs
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
> ⚠ 必须在 `tsdown` **之后**:tsdown 会清空 `lib/`(同 `lib/client/` 的老坑)。
|
|
115
|
+
|
|
116
|
+
**依赖面**:`@ast-grep/wasm` / `web-tree-sitter` / `@lumis-sh/wasm-*`(14 个)进 `devDependencies`。`src/vendor.ts` 本身保留(`dvc://browser` 的 puppeteer 仍用它),只删掉 pi-natives 的调用点与 `PI_NATIVES_VERSION`。
|
|
117
|
+
|
|
118
|
+
**需要主动补齐的行为(照 OMP 语义实现,不是搬运)**:
|
|
119
|
+
|
|
120
|
+
- **多根节点 pattern = 记 0 命中**:`function $N($$$A) { $$$B }`、`"alpha": $V` 这类片段在 wasm 的 `findAll` 会抛 `Multiple AST nodes are detected`。OMP 的 Rust 库虽有 `compile_wrapped_fallback`(`ops.rs`,仅 JSON 有模板),但实测 shipped native 在这条路径上并未用它:`astGrep` 返回 `matches=0` 且 `parseErrors=null`,`astEdit` 返回 `totalReplacements=0` 且结果里没有 `parseErrors` 键。因此 TS 侧对齐的是 **native 的实测行为**:捕获该异常 → 记 0 命中、不写 `parseErrors`、不抛错。
|
|
121
|
+
- **`.gitignore` 感知遍历** + glob 过滤 + `maxFiles` / `maxReplacements`。
|
|
122
|
+
- **UTF-8 字节偏移换算**:`range().index` 是**字符**偏移,OMP 的 `byteStart`/`byteEnd`/`deletedLength` 是**字节**偏移(实测含中文时 17 vs 25)。`changes[]` 生成时换算。
|
|
123
|
+
- **parseError 收集**、分页(`offset`/`limit`)、`includeMeta` 的 meta 变量收集、聚合统计。
|
|
124
|
+
|
|
125
|
+
**错误处理**:`wasm.ts` 加载失败 → 设备级 `DVC_DEVICE_ERROR`(措辞:内置引擎不可用,不再叫用户去装 npm 包);单语言语法加载失败 → 该语言文件跳过并计入 `parseErrors`,其余语言照常。
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 4. 随本 change 一并改的文档
|
|
130
|
+
|
|
131
|
+
行为契约里目前写着 `@oh-my-pi/pi-natives`,必须同步改(否则 spec/impl 脱节):
|
|
132
|
+
|
|
133
|
+
- `docs/20_specs/ast/spec.md` + `docs/specs/ast/spec.md`(两文件当前**内容相同**,同步改):`Lazy natives, zero startup cost` 一条的措辞从"natives 懒加载"改为"内置 WASM 引擎按需加载"。
|
|
134
|
+
- `docs/20_specs/dvc/spec.md` + `docs/specs/dvc/spec.md`:`ast devices` 一条删掉 "backed by the published `@oh-my-pi/pi-natives` binding",改为内置 WASM 引擎。
|
|
135
|
+
- `THIRD_PARTY_NOTICES.md`:增列 ast-grep / tree-sitter / `@lumis-sh/wasm-*`(三件套均 MIT)。
|
|
136
|
+
- `src/NOTICE-OMP.md`:**保留**(已核:该文件覆盖 browser / lsp / ast 三类共 8 个文件,ast 不是唯一来源)。`browser-device.ts`、`lsp-device.ts`/`lsp-client.ts`/`lsp-jsonrpc.ts`/`lsp-language.ts`/`lsp-types.ts`/`lsp-server-registry.ts` 仍显式引用它。正文无需改(通用措辞,未点名 ast);仅在实现时确认 ast 的 2 个文件删除后**没有**残留 `../NOTICE-OMP.md` 引用。
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 5. 验收(对齐"改动点同类"红线)
|
|
141
|
+
|
|
142
|
+
1. **A/B 一致性矩阵常驻单测**:同一组 pattern 在 native 与 WASM 下逐条结果相同(§2.1 的表落成 `test/`)。
|
|
143
|
+
2. **离线第一人称实测**:断网 + 删掉 `<pkg>/.vendor` 后,4999 rig 上真实 session 走通 `dvc://ast_grep` 与 `dvc://ast_edit`(含 dryRun 与真写盘)。
|
|
144
|
+
3. **零 OMP 实证(代码/产物面)**:`npm pack` 出的 tarball 在 `lib/`、`package.json`、`scripts/` 上 `grep -rc "pi_natives\|@oh-my-pi"` = 0(`docs/` 发布载荷的历史性提及不计入);运行期无 registry 请求。
|
|
145
|
+
4. **工具面口径同类**:`tsc --noEmit` 0 错;全量单测绿;boot graph 含 better-dsh;`dvc://` roster 仍列出两个 ast 设备。
|
|
146
|
+
5. 实测报告落 `docs/50_test-reports/`;**发布仍需 user 明确放行**(单次授权,见根 AGENTS.md 〇节)。
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 6. 已知风险与代价
|
|
151
|
+
|
|
152
|
+
| 风险 | 说明 | 处置 |
|
|
153
|
+
|---|---|---|
|
|
154
|
+
| **吞吐下降** | WASM 单线程 ≈ 0.9 MB/s;native 是 Rust 并行遍历。大仓全量 codemod 会明显变慢 | 明示接受(该设备 3 周 0 调用)。若日后成为瓶颈,再评估 worker 分片 |
|
|
155
|
+
| **语法 ABI 锁步** | `dylink.0` 要求 `web-tree-sitter` 与语法包**主版本同步**升级 | 两者一起 pin;升级走显式、带 A/B 的变更 |
|
|
156
|
+
| **语言面依赖第三方语法包** | `@lumis-sh/wasm-*` 是社区包(MIT,活跃) | 路径与版本在 `grammars.ts` 单点声明;若某语言其停更,可自行 `tree-sitter build --wasm`(本机有 docker)替换单个资产 |
|
|
157
|
+
| **`expandoChar` 静默失效** | 漏给 `µ` 会导致某语言**静默 0 命中**(不报错) | 每个语言注册后跑一次自检 pattern;单测锁定全语言矩阵 |
|
|
158
|
+
| **per-language pattern 歧义** | C 的 `foo($A)`、CSS 的 `color: $V` 匹配不到 | **与上游 native 行为一致**(已 A/B 证),非本 change 引入,不修 |
|
|
159
|
+
| 字节偏移换算错位 | 含多字节字符时 `changes[]` 坐标会偏 | 单测覆盖 CJK 用例 |
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 7. 进展日志
|
|
164
|
+
|
|
165
|
+
- **2026-10-03 设计轮**:user 裁决路线 A(官方 `@ast-grep/wasm` 引擎 + TS 底盘),14 个语法全部随包。丢弃式 spike 落在 `.scratch/ast-wasm-spike/`(`probe.mjs` / `iso.mjs` / `expando.mjs` / `comboA|B|C.mjs` / `probe3.mjs` / `probe4.mjs` / `ab-native.mjs`):
|
|
166
|
+
- 证伪了 `tree-sitter-wasms@0.1.13`(legacy `dylink`);
|
|
167
|
+
- 证真了 `@lumis-sh/wasm-*` 0.26.x(`dylink.0`)覆盖全部 14 语言;
|
|
168
|
+
- 定位并解决 `expandoChar` 与手动 wasm 装配两个坑;
|
|
169
|
+
- 与真 native 完成 A/B,行为零回归;
|
|
170
|
+
- 量得 14.4 MB 资产、0.9 MB/s 吞吐、字节偏移差异。
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Authentication-only Web admission
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
An operator can reach their authenticated DSH deployment through any domain or
|
|
6
|
+
LAN address without maintaining separate server and browser address allowlists.
|
|
7
|
+
The server keeps its current bind address; the existing rig's LAN relay supplies
|
|
8
|
+
LAN reachability. This feature does not change listening interfaces.
|
|
9
|
+
|
|
10
|
+
## Configuration
|
|
11
|
+
|
|
12
|
+
Opt in through the existing `dashr-web-trust` row:
|
|
13
|
+
|
|
14
|
+
```yaml
|
|
15
|
+
- id: dashr-web-trust
|
|
16
|
+
name: better-dsh/web-trust
|
|
17
|
+
config:
|
|
18
|
+
trustAllHosts: true
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
The default is `false`, retaining existing declared-authority behavior. When
|
|
22
|
+
enabled, `--trusted-host`, `DSH_TRUSTED_HOSTS` and `trustedPageAuthorities` are
|
|
23
|
+
not needed for admission or page management privileges.
|
|
24
|
+
|
|
25
|
+
## Contract
|
|
26
|
+
|
|
27
|
+
- Keep the original Connection instance, transport, RPC registrations and token
|
|
28
|
+
exchange. No upstream source changes, replacement service or private-field
|
|
29
|
+
access are required.
|
|
30
|
+
- Replace only its `requestRejection` method while this row is active. Delegate
|
|
31
|
+
cookie verification to public `authorizeIndex`, using the real request headers
|
|
32
|
+
and a fixed query-free index URL. Discard the index responder's output; the
|
|
33
|
+
transport remains responsible for the actual HTTP response.
|
|
34
|
+
- Any address, Origin and Fetch-Metadata marker can pass after authentication.
|
|
35
|
+
Missing, invalid, expired or wrong-authority cookies still return 401. Cookie
|
|
36
|
+
lifetime and signing remain the native authenticator's responsibility.
|
|
37
|
+
- This API admission delegate never exchanges a URL token: normal index login
|
|
38
|
+
still performs that exchange. Existing password-login behavior is unchanged.
|
|
39
|
+
- Inject `ownsHost: true` before browser application initialization, regardless
|
|
40
|
+
of page hostname, without overwriting an existing transport. Management UI
|
|
41
|
+
consumers continue to use the original Connection's common capability flag.
|
|
42
|
+
- Unloading or disabling this row restores the original admission method;
|
|
43
|
+
reload the page to update its initialization-time capability flag.
|
|
44
|
+
|
|
45
|
+
## Acceptance
|
|
46
|
+
|
|
47
|
+
Use a packaged plugin installed through `dsh plugin add` in the long-lived 4999
|
|
48
|
+
rig, with no trusted-host CLI argument or environment variable. Verify loopback,
|
|
49
|
+
LAN and the actual HTTPS deployment domain; an additional unlisted Host must
|
|
50
|
+
authenticate successfully without bypassing cookie verification. Check settings
|
|
51
|
+
persistence, provider settings and plugin management in the real browser.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# compaction-recall Specification
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
TBD - created by archiving change 2026-09-11-url-schemes-recallable-context. Update Purpose after archive.
|
|
5
|
+
|
|
6
|
+
## Requirements
|
|
7
|
+
|
|
8
|
+
### Requirement: Compaction manifest with nested chain
|
|
9
|
+
The system SHALL expose the compaction manifest of the live session, one entry per successful compaction episode, each carrying: `label` (the `compaction/summary` event seq), `checkpoint_seq` (summary seq + 1), `compactionId`, timestamp, `shadowedRange`, `shadowedItems`, `shadowedTokenCount`, `replaces_checkpoint` (the previous episode's checkpoint seq when absorbed, else null), and an 8-section summary preview (≤100 chars per section).
|
|
10
|
+
|
|
11
|
+
#### Scenario: Manifest reflects nested compaction
|
|
12
|
+
- **WHEN** a session has two successful compactions where the second absorbed the first's checkpoint
|
|
13
|
+
- **THEN** the manifest lists both episodes and the second entry carries `replaces_checkpoint` equal to the first episode's checkpoint seq
|
|
14
|
+
|
|
15
|
+
### Requirement: Label resolution precedes ordinal
|
|
16
|
+
For any bracket-addressed collection, the system SHALL match the label (the element's immutable seq coordinate) exactly first, and SHALL fall back to the 0-based ordinal only when no label matches. Compaction episodes SHALL use the `compaction/summary` event seq as label; failed compactions SHALL NOT appear in any collection because they never emit a summary event.
|
|
17
|
+
|
|
18
|
+
#### Scenario: Failed compaction is not addressable
|
|
19
|
+
- **WHEN** a compaction attempt fails (summary not smaller than shadowed content) and the model reads the compactions manifest
|
|
20
|
+
- **THEN** the failed episode is absent from the manifest and has no addressable label
|
|
21
|
+
|
|
22
|
+
### Requirement: Canonical and prepared faces for compaction episodes
|
|
23
|
+
For `ctx://session/compactions[<label>]`, the bare URL SHALL return the episode's structured summary (all 8 sections verbatim) as the prepared default face, and `:raw` SHALL return the episode's canonical content — the original shadowed span derived from `shadowedSeqs` (role + content per item). Line windows SHALL always apply to the canonical content, and the composite `:raw:<lines>` form SHALL be valid and equal `:<lines>`. The former `/original` sub-path SHALL be removed — it was identical to `:raw` and is superseded by composing the `:raw` / `:N-M` selectors directly on the episode; a path using it SHALL be rejected with the structured `CTX_BAD_PATH` error echoing the URL. When an unwindowed `:raw` read of the canonical face exceeds 65536 chars, the system SHALL append an actionable note naming `:N-M` line-window paging; windowed reads (`:N-M`, `:raw:N-M`) and the bare prepared face SHALL NOT carry the note.
|
|
24
|
+
|
|
25
|
+
#### Scenario: Recall of the original span behind a summary
|
|
26
|
+
- **WHEN** the model reads `ctx://session/compactions[221217]:raw` after the episode shadowed 559 items
|
|
27
|
+
- **THEN** the system returns the original message-level content of all shadowed items, including tool results and assistant messages
|
|
28
|
+
|
|
29
|
+
#### Scenario: Chained recall to pre-previous originals
|
|
30
|
+
- **WHEN** the model reads `ctx://session/compactions[109245]:raw` (the first episode in a nested chain)
|
|
31
|
+
- **THEN** the system returns the first span's original content even though later compactions shadowed its checkpoint
|
|
32
|
+
|
|
33
|
+
#### Scenario: Unwindowed raw recall of an oversized span pages explicitly
|
|
34
|
+
- **WHEN** the model reads `ctx://session/compactions[221217]:raw` and the span exceeds 65536 chars
|
|
35
|
+
- **THEN** the system returns the full span followed by a note naming `:N-M` line-window paging, while `:raw:N-M` / `:N-M` return the windowed lines without the note
|
|
36
|
+
|
|
37
|
+
#### Scenario: Removed /original sub-path
|
|
38
|
+
- **WHEN** the model reads `ctx://session/compactions[221217]/original`
|
|
39
|
+
- **THEN** the system rejects the path with `CTX_BAD_PATH`, echoing the URL
|
|
40
|
+
|
|
41
|
+
### Requirement: Recall is read-only and lazily materialized
|
|
42
|
+
The system SHALL serve all recall resources strictly read-only, SHALL build the episode index lazily from the session log (zstd-decompressed, single-pass seq index) with invalidation on session-file change, and SHALL NOT impose truncation on canonical content beyond the tool layer's own limits, surfacing an actionable truncation note instead.
|
|
43
|
+
|
|
44
|
+
#### Scenario: Oversized original request
|
|
45
|
+
- **WHEN** the model reads an original span exceeding the tool-layer response cap
|
|
46
|
+
- **THEN** the system returns the truncated head (or the requested line window) with a note naming the `:raw`/line-window addressing for the remainder
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# ctx Specification
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Let the model read a curated, read-only snapshot of its calling environment via `ctx://` URLs — small, static, agent-derived facts (who am I, what model, what cwd) addressable like any other resource, plus a recallable-context navigation surface over the live session's event log. This replaces the v0.1.8c design that mapped `ctx://` onto persistent-kernel variables; see design.md D4 for why that semantics was wrong (the kernel namespace is the model's own REPL scratchpad, not its environment).
|
|
6
|
+
|
|
7
|
+
## Requirements
|
|
8
|
+
|
|
9
|
+
### Requirement: Coordinate invariant
|
|
10
|
+
Every number the system shows the model SHALL be either directly usable as a selector in the same URL family, or explicitly labeled metadata with its unit. The two coordinates are `seq` (event sequence, for `[<label|n>]` addressing) and `line` (transcript line, for `:N-M` windows and `grep` on `ctx://session/transcript`); both SHALL be labeled wherever shown. An unlabeled number that is not an addressable coordinate SHALL NOT appear.
|
|
11
|
+
|
|
12
|
+
#### Scenario: Labeled coordinates in the manifest
|
|
13
|
+
- **WHEN** the model reads `ctx://session/compactions`
|
|
14
|
+
- **THEN** every episode row carries `seq=<start>..<end>` and `lines=<start>..<end>` (or `lines=<none>` for an empty span), never a bare range that could be misread as the other unit
|
|
15
|
+
|
|
16
|
+
### Requirement: Curated snapshot keys
|
|
17
|
+
The system SHALL resolve `ctx://session` as the recallable-context statistics snapshot: the prepared default face SHALL carry the session header (absorbing the former identity fields `id`/`status`/`origin`/`delegationDepth`), storage facts, totals using native DSH field names, per-compaction segments plus a `live` tail segment (each with `seq_start`/`seq_end` and `lines`), the inline compactions manifest (label, checkpoint_seq, compactionId, `seq_start`/`seq_end`, `lines`, shadowedItems, shadowedTokenCount, `fidelity`, `replaces_checkpoint`, and an 8-section × ≤100-char summary preview per episode), an `asOf` card (max seq and transcript line at read time, with a note that totals are live values), and a `system_prompt` info card. The canonical face (see `:raw`) SHALL be the full session transcript. The first-level keys `model` and `cwd` SHALL be removed — their information SHALL appear only as info-card fields inside the snapshot. Any other first-level key SHALL return the structured `CTX_UNKNOWN_KEY` error listing the known keys and sub-paths.
|
|
18
|
+
|
|
19
|
+
#### Scenario: Reading session identity
|
|
20
|
+
- **WHEN** the model reads `ctx://session` from a delegated subagent session
|
|
21
|
+
- **THEN** the snapshot header carries the agent id, status, origin, and delegation depth
|
|
22
|
+
|
|
23
|
+
#### Scenario: Reading the model configuration
|
|
24
|
+
- **WHEN** the model reads `ctx://session`
|
|
25
|
+
- **THEN** the snapshot info card carries the provider, model, and maxTokens of the calling agent's request options
|
|
26
|
+
|
|
27
|
+
#### Scenario: Reading the working directory
|
|
28
|
+
- **WHEN** the model reads `ctx://session`
|
|
29
|
+
- **THEN** the session's creation working directory appears as an info-card field, not as a separate key
|
|
30
|
+
|
|
31
|
+
#### Scenario: Staleness is self-evident
|
|
32
|
+
- **WHEN** the model reads `ctx://session` and caches the snapshot
|
|
33
|
+
- **THEN** the `asOf` card tells it the seq and line the snapshot was taken at, so it cannot mistake a cached snapshot for live totals
|
|
34
|
+
|
|
35
|
+
#### Scenario: Unknown key
|
|
36
|
+
- **WHEN** the model reads `ctx://<other key>`
|
|
37
|
+
- **THEN** the system returns the structured `CTX_UNKNOWN_KEY` error naming the known keys and sub-paths
|
|
38
|
+
|
|
39
|
+
### Requirement: Bare listing
|
|
40
|
+
The system SHALL let bare `ctx://` return the roster of available resources and usage entry points (one per line), including the `session` root, the sub-path grammar pointer (naming the composite `:raw:N-M` form), and the `transcript`/`compactions`/`user_prompts`/`tool_calls`/`agent_responses`/`thinking`/`system`/`injections` sub-paths; the static portion SHALL not require a live agent, and the roster SHALL stay within its line budget (its previous size plus the three collection entries).
|
|
41
|
+
|
|
42
|
+
#### Scenario: Listing keys
|
|
43
|
+
- **WHEN** the model reads bare `ctx://`
|
|
44
|
+
- **THEN** the system returns the roster naming `session`, its sub-paths (including `thinking` and `system`), and the addressing-grammar pointer
|
|
45
|
+
|
|
46
|
+
### Requirement: Snapshot requires a live agent
|
|
47
|
+
The system SHALL read every snapshot value from the calling agent supplied in the resolver env; an env with no live agent returns the structured `CTX_NO_AGENT` error on any value read.
|
|
48
|
+
|
|
49
|
+
#### Scenario: No agent in the context
|
|
50
|
+
- **WHEN** a ctx:// value read runs with no live agent in the resolver env
|
|
51
|
+
- **THEN** the system returns the structured `CTX_NO_AGENT` error
|
|
52
|
+
|
|
53
|
+
### Requirement: ctx is strictly read-only
|
|
54
|
+
The system SHALL reject every write to `ctx://` with the structured `URL_READ_ONLY` error explaining the scheme is a curated read-only snapshot. There is no kernel-variable write channel and no variable mutation of any kind.
|
|
55
|
+
|
|
56
|
+
#### Scenario: Writing to a snapshot key
|
|
57
|
+
- **WHEN** the model writes to `ctx://<any key>`
|
|
58
|
+
- **THEN** the system returns the structured `URL_READ_ONLY` error and changes nothing
|
|
59
|
+
|
|
60
|
+
### Requirement: Session sub-path grammar
|
|
61
|
+
The system SHALL resolve `ctx://session/…` sub-paths: `transcript` (full transcript), `compactions` (manifest), `compactions[<label|ordinal>]` (the episode summary), `user_prompts[<n|seq>]`, `tool_calls[<n|seq>]`, `agent_responses[<n|seq>]`, `thinking[<n|seq>]` (reasoning blocks), and `system[<n|seq>]` (system messages). The former `compactions[<label|n>]/original` sub-path SHALL be removed — it was identical to `:raw` and is superseded by composing the `:raw` / `:N-M` selectors directly on the episode; a path using it SHALL be rejected with the structured `CTX_BAD_PATH` error echoing the URL. Bracket resolution SHALL match the label (the element's immutable seq coordinate) exactly first, and SHALL fall back to the 0-based ordinal on miss. The system SHALL support `:raw`, line windows (`:N`, `:N-M`, `:N+K`, `:N-`, comma-separated ranges), `:path/<dot-path>`, and `?q=<query>` on every resolved resource; the composite `:raw:<lines>` form SHALL be valid everywhere and SHALL equal `:<lines>` (the `:raw` prefix is redundant in a line-window context but MUST parse). Line windows on a compaction episode SHALL interpret numbers as transcript line coordinates (identical to the same window on `transcript`), and `:path/`/`?q=` SHALL apply to the bare (prepared) face.
|
|
62
|
+
|
|
63
|
+
#### Scenario: Drilling into a compaction episode by label
|
|
64
|
+
- **WHEN** the model reads `ctx://session/compactions[221217]`
|
|
65
|
+
- **THEN** the system returns that episode's structured summary (all 8 sections verbatim) or, for the latest episode, the navigation block (see digest residence)
|
|
66
|
+
|
|
67
|
+
#### Scenario: Ordinal fallback
|
|
68
|
+
- **WHEN** the model reads `ctx://session/compactions[0]` and no episode carries the label `0`
|
|
69
|
+
- **THEN** the system returns the first-recorded episode (0-based)
|
|
70
|
+
|
|
71
|
+
#### Scenario: Transcript-relative episode window
|
|
72
|
+
- **WHEN** the model reads `ctx://session/compactions[<label>]:5300-5310`
|
|
73
|
+
- **THEN** the system returns transcript lines 5300–5310 — the same bytes as `ctx://session/transcript:5300-5310`
|
|
74
|
+
|
|
75
|
+
#### Scenario: Composite raw selector
|
|
76
|
+
- **WHEN** the model reads `ctx://session/compactions[221217]:raw:500-560`
|
|
77
|
+
- **THEN** the system returns the same lines as `ctx://session/compactions[221217]:500-560`
|
|
78
|
+
|
|
79
|
+
#### Scenario: Removed /original sub-path
|
|
80
|
+
- **WHEN** the model reads `ctx://session/compactions[221217]/original`
|
|
81
|
+
- **THEN** the system returns the structured `CTX_BAD_PATH` error echoing the URL and naming the `:raw` / `:N-M` selectors as the replacement
|
|
82
|
+
|
|
83
|
+
### Requirement: Canonical and prepared content faces
|
|
84
|
+
The system SHALL treat every resource as having one canonical content: `:raw` SHALL return the canonical full content, line windows SHALL always apply to the canonical content, and the bare URL SHALL return the prepared default face when one is prepared (session → statistics snapshot; compaction episodes → digest/navigation block; `thinking`/`system`/`injections` and the element collections → index lists) or the canonical content when none is. `:raw:<lines>` SHALL equal `:<lines>` — the composite form is accepted on every resource. A line window that reaches past a resource's canonical extent SHALL return an explicit boundary note (e.g. `[ctx:// note: … span is transcript lines <s>-<e>]`) rather than silently returning a truncated or empty view.
|
|
85
|
+
|
|
86
|
+
#### Scenario: Line windows ignore the prepared face
|
|
87
|
+
- **WHEN** the model reads `ctx://session/compactions[221217]:500-560`
|
|
88
|
+
- **THEN** the system returns transcript lines 500–560 of the episode's original shadowed span, not of the summary
|
|
89
|
+
|
|
90
|
+
#### Scenario: Out-of-span window is explicit
|
|
91
|
+
- **WHEN** the model reads `ctx://session/compactions[221217]:5500` and the episode span ends before transcript line 5500
|
|
92
|
+
- **THEN** the system returns the boundary note naming the episode's span instead of an empty string
|
|
93
|
+
|
|
94
|
+
#### Scenario: Over-read notes, open tail does not
|
|
95
|
+
- **WHEN** the model reads a window whose upper bound exceeds the canonical extent (e.g. `transcript:1940-2000` on a 1947-line transcript)
|
|
96
|
+
- **THEN** the system returns the available lines plus the boundary note naming the canonical end — a partial over-read is still an over-read, because otherwise the model cannot tell "empty" from "does not exist"
|
|
97
|
+
- **WHEN** the model reads the open-tailed `transcript:1940-`
|
|
98
|
+
- **THEN** the system returns the remaining content to the end with no boundary note, provided the window's start is within the extent
|
|
99
|
+
- **WHEN** the model reads an open tail whose start is already past the extent (e.g. `compactions:2-` when the canonical content is one line)
|
|
100
|
+
- **THEN** the system returns the boundary note alone — there is no content to return, so the over-read must be spoken for
|
|
101
|
+
|
|
102
|
+
#### Scenario: Upper bound exactly at the extent is not an over-read
|
|
103
|
+
- **WHEN** the model reads `compactions:1-1` where the canonical content is exactly one line
|
|
104
|
+
- **THEN** the system returns that line with no boundary note
|
|
105
|
+
|
|
106
|
+
### Requirement: Episode digest residence
|
|
107
|
+
The system SHALL render the prepared face of the **latest** compaction episode as a navigation block (NOT the digest text, which is already resident in the model's live context as the compact-checkpoint message): it SHALL name the episode's `lines`/`seq`/items/tokens, its `fidelity`, the transcript lines where the resident digest lives (`digest resident at transcript:<start>-<end> (seq=<checkpointSeq>)`), and the landmark roster. The prepared face of every **older** episode SHALL return that episode's full digest (`summaryText`) followed by the same pointer block. `:raw` on any episode SHALL always return the full shadowed span, so a digest is never lost.
|
|
108
|
+
|
|
109
|
+
#### Scenario: Latest episode is a pointer, not a dump
|
|
110
|
+
- **WHEN** the model reads the bare URL of the most recent compaction episode
|
|
111
|
+
- **THEN** the system returns the navigation block with the digest's transcript location and landmarks, and does NOT repeat the digest text
|
|
112
|
+
|
|
113
|
+
#### Scenario: Older episode returns its digest
|
|
114
|
+
- **WHEN** the model reads the bare URL of a non-latest compaction episode
|
|
115
|
+
- **THEN** the system returns that episode's full digest followed by its pointer block
|
|
116
|
+
|
|
117
|
+
### Requirement: Landmark roster
|
|
118
|
+
The system SHALL include, in each compaction episode's navigation/pointer block, a direction-marker roster computed over that episode's shadowed events, every marker expressed as transcript line coordinates directly usable with `:N-M`: user-turn lines, failure lines (tool results with `message.isError` true or a present error), touched file paths with occurrence counts (best-effort, from tool-call arguments), and the count of prior checkpoints absorbed in the span. Rosters SHALL be capped to a screen and SHALL tail with `… +N more` when capped.
|
|
119
|
+
|
|
120
|
+
#### Scenario: Locating user turns and failures
|
|
121
|
+
- **WHEN** the model reads a compaction episode's prepared face
|
|
122
|
+
- **THEN** the landmark block lists user-turn lines and failure lines as transcript line numbers
|
|
123
|
+
|
|
124
|
+
#### Scenario: Locating touched files
|
|
125
|
+
- **WHEN** the model reads a compaction episode whose span contains file tool calls
|
|
126
|
+
- **THEN** the landmark block lists each touched path with its occurrence count
|
|
127
|
+
|
|
128
|
+
### Requirement: Fidelity signal
|
|
129
|
+
The system SHALL include, per compaction episode, a `fidelity=<user_turns>:<tool_calls>` figure (in the manifest, the snapshot, and the episode pointer block) so the model can judge whether the digest is trustworthy: a tool-heavy span's digest is trustworthy and detail is regenerable, while a user-intent-heavy span must be drilled into.
|
|
130
|
+
|
|
131
|
+
#### Scenario: Reading fidelity
|
|
132
|
+
- **WHEN** the model reads `ctx://session/compactions` or a compaction episode's prepared face
|
|
133
|
+
- **THEN** each episode carries its `fidelity` ratio
|
|
134
|
+
|
|
135
|
+
### Requirement: Thinking, system, and injections collections
|
|
136
|
+
The system SHALL expose three index-faced collections under `ctx://session/`, all following the canonical/prepared face model (bare URL = prepared index; `:raw` / `:N-M` = canonical full text):
|
|
137
|
+
|
|
138
|
+
- `thinking` — the reasoning blocks of `assistant/message` events (`message.content` blocks of `type: "reasoning"`, in event order; a message may carry several). The bare URL SHALL return an index list, one line per block: 0-based ordinal, event seq, turn/step, and a ≤100-char single-line preview. `[<n|seq>]` SHALL return that block's full text (label = the block's event seq, exact match first, 0-based ordinal fallback). `:raw` SHALL return all blocks' full text joined in event order with a blank line between blocks, and line windows SHALL index that canonical text.
|
|
139
|
+
- `system` — the session's `system/message` events (text from `data.text` when present, else the message content blocks; source kind/plugin from `data.source` when present). The bare URL SHALL return an index list, one line per message: event seq, source kind/plugin, and a ≤100-char single-line preview. `[<n|seq>]` SHALL return that message's full text. `:raw` SHALL return all messages' full text joined with a blank line between messages, and line windows SHALL index that canonical text.
|
|
140
|
+
- `injections` — the session's injected `user/message` events, i.e. every `user/message` whose `source.kind` is not `user` (agent instructions, runtime-context snapshots, …; the exact complement of the `user_prompts` collection). The bare URL SHALL return an index list, one line per message: event seq, source kind, and a ≤100-char single-line preview. `[<n|seq>]` SHALL return that message's full text rendered as `[<zero-padded seq>] INJECTED <kind>` followed by the content. `:raw` SHALL return all messages' full text joined with a blank line between messages, and line windows SHALL index that canonical text.
|
|
141
|
+
|
|
142
|
+
#### Scenario: Index then drill into a reasoning block
|
|
143
|
+
- **WHEN** the model reads `ctx://session/thinking` and then `ctx://session/thinking[2]`
|
|
144
|
+
- **THEN** the index lists one line per reasoning block (ordinal, seq, turn/step, preview) and the drilled read returns the third block's full text
|
|
145
|
+
|
|
146
|
+
#### Scenario: Canonical window over the joined blocks
|
|
147
|
+
- **WHEN** the model reads `ctx://session/thinking:10-20`
|
|
148
|
+
- **THEN** the system returns lines 10–20 of the reasoning blocks' full text joined with blank lines, ignoring the index face
|
|
149
|
+
|
|
150
|
+
#### Scenario: System message by seq label
|
|
151
|
+
- **WHEN** the model reads `ctx://session/system[7]` where event seq 7 is a system message
|
|
152
|
+
- **THEN** the system returns that message's full text
|
|
153
|
+
|
|
154
|
+
#### Scenario: Injections complement user_prompts
|
|
155
|
+
- **WHEN** the model reads `ctx://session/injections` in a session whose `user/message` events carry both `source.kind: "user"` and non-`user` sources (agent instructions, runtime snapshots)
|
|
156
|
+
- **THEN** the index lists only the non-`user` messages (seq, source kind, preview), `ctx://session/injections[<n|seq>]` returns one message's full text, and `ctx://session/user_prompts` continues to list only the real prompts
|
|
157
|
+
|
|
158
|
+
#### Scenario: Injection message by ordinal or seq
|
|
159
|
+
- **WHEN** the model reads `ctx://session/injections[0]` or `ctx://session/injections[<seq>]`
|
|
160
|
+
- **THEN** the system returns that injected message's full text with its `INJECTED <kind>` header line
|
|
161
|
+
|
|
162
|
+
### Requirement: Element collections carry index faces
|
|
163
|
+
The system SHALL give `user_prompts`, `tool_calls`, and `agent_responses` the same prepared-index/canonical model: the bare URL SHALL return an index list (one line per element: event seq and a ≤100-char preview; the long `tool_calls`/`agent_responses` collections SHALL cap the bare index at a screen and tail with `… +N more — use :raw for all, ?q= to filter, [n|seq] for one`); `[<n|seq>]` SHALL return that element's full text; `:raw` SHALL return all elements' full text joined; line windows SHALL index that canonical text. The error for an unaddressed or out-of-range element SHALL name the collection and its count and SHALL NOT echo an empty-bracket URL.
|
|
164
|
+
|
|
165
|
+
#### Scenario: Browsing user prompts
|
|
166
|
+
- **WHEN** the model reads `ctx://session/user_prompts`
|
|
167
|
+
- **THEN** the system returns an index list of the real user prompts (seq + preview)
|
|
168
|
+
|
|
169
|
+
#### Scenario: Addressing a tool call
|
|
170
|
+
- **WHEN** the model reads `ctx://session/tool_calls[<seq>]`
|
|
171
|
+
- **THEN** the system returns that call's name, arguments, and result — where a present result's text is rendered from either the flat or the nested content-block shape, never silently empty
|
|
172
|
+
|
|
173
|
+
### Requirement: Unknown key echoes known keys
|
|
174
|
+
The `CTX_UNKNOWN_KEY` error SHALL list the currently known first-level keys and the sub-path pointer, so the model can self-correct without leaving the read tool.
|
|
175
|
+
|
|
176
|
+
#### Scenario: Unknown key with roster echo
|
|
177
|
+
- **WHEN** the model reads `ctx://bogus`
|
|
178
|
+
- **THEN** the system returns `CTX_UNKNOWN_KEY` naming `session` and the sub-path roster
|
|
179
|
+
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# 发布包瘦身:摘掉与 DSH/本插件无关的 docs(docs-packaging-trim)
|
|
2
|
+
|
|
3
|
+
状态:**设计已定(user 裁决 2026-10-03:档位 F);待落实现**
|
|
4
|
+
| 规格路径:`docs/specs/docs-packaging-trim/spec.md`(仓库根 docs;`better-dsh/docs/` 是 `prebuild` 由 `../docs` 重建的产物,别写那里)
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 0. 动机(审计实证)
|
|
9
|
+
|
|
10
|
+
`better-dsh` 的 tarball 是 **20.2 MB**,而 `lib/`(真正的代码)只有 **2.5 MB**。差额几乎全在**随包发布的 docs 副本**上:`tar czf docs` = **20.3 MB**(含 tar 开销),即 tarball 基本等于 docs。
|
|
11
|
+
|
|
12
|
+
`scripts/copy-docs.mjs` 把仓库 `docs/` 拷进 `better-dsh/docs/`(`files: ["docs"]` 发布),已有 EXCLUDE 规则只挡了 `60_exploration-and-research/`、`superd/`、`dsh-sys-prompt_*.md`、`*_artifacts/`。逐目录盘点后,剩下的发布面里混着**与 DSH 和本插件都无关的东西**。
|
|
13
|
+
|
|
14
|
+
### 0.1 关键澄清:`80_upstream-docs-and-skills/` 不是"纯文档"
|
|
15
|
+
|
|
16
|
+
user 提问:"`api-skills.json` 不是给人读的,那它存在的唯一意义就是作为技能放在 skills 目录让 harness 读取,对吧?既然是纯文档就不需要它?"
|
|
17
|
+
|
|
18
|
+
**比这更弱**——该目录自己的 `src-README.md` 写明:
|
|
19
|
+
|
|
20
|
+
> This stage only does the **fetching**; distillation into a skill is a separate follow-up
|
|
21
|
+
|
|
22
|
+
即 `hermes-dev-skill/` 是"抓取 → 蒸馏成技能"两阶段流水线的**第一阶段**,而**第二阶段从未执行**:整个目录没有 `SKILL.md`、没有 `skill/`。所以这 77 MB 是**没有被任何东西消费的流水线输入**——既不是技能,也不是文档。`api-skills.json` 是 `https://hermes-agent.nousresearch.com/docs/api/skills.json`(59 MB),**Hermes 自己那套技能的机器可读目录**,`grep` 全仓无引用。
|
|
23
|
+
|
|
24
|
+
### 0.2 归属:这是别人的框架说明书
|
|
25
|
+
|
|
26
|
+
`hermes-dev-skill` 是 **NousResearch/hermes-agent** 官方文档的完整镜像(`src-README.md` 记着 sparse clone commit `4e9d3c71…` 与抓取日期 2026-09-16),它自己声明的用途是:
|
|
27
|
+
|
|
28
|
+
> so agents that develop / integrate with **Hermes Agent** can work without hitting the live site
|
|
29
|
+
|
|
30
|
+
——一个**别的 agent 框架**的说明书。Hermes 有自己的文档站与仓库(该 README 自己就引了)。入库溯源:commit `d13c4a3`,提交信息为 *"rig(test123): remove profiles/node_modules symlink farm"*——一个与文档无关的 rig 提交把它捎带进来。
|
|
31
|
+
|
|
32
|
+
### 0.3 全树盘点(`copy-docs.mjs` 实际发布范围)
|
|
33
|
+
|
|
34
|
+
| 路径 | 磁盘 | 是什么 | 判定 |
|
|
35
|
+
|---|---|---|---|
|
|
36
|
+
| `00_adr/` `10_plans/` `20_specs/` `specs/` | 980 K | 本仓 ADR / 计划 / 规格 | ✅ 留 |
|
|
37
|
+
| `50_test-reports/` | 3.5 M | 本仓实测报告(已做 token 脱敏) | ✅ 留 |
|
|
38
|
+
| `superpowers/` | 40 K | 本仓两份 spec/plan | ✅ 留 |
|
|
39
|
+
| `80_.../hermes-dev-skill/` | **77 M** | 别家框架文档镜像;抓取阶段,无 `SKILL.md`,零引用 | ❌ **摘** |
|
|
40
|
+
| `80_.../dsh-dev-skill/pi-and-omp/` | **2.8 M** | OMP / Pi 第三方资料;**技能正文零引用**(`grep -rn "pi-and-omp" skill/` 为空) | ❌ **摘** |
|
|
41
|
+
| `80_.../dsh-dev-skill/src-scripts/` | **3.4 M** | 抓取工具 + `docs-tree.json`(3.5 M 构建清单) | ❌ **摘** |
|
|
42
|
+
| `80_.../dsh-dev-skill/skill/` | 304 K | DSH 开发知识库蒸馏稿(`SKILL.md` + 22 章)——**静态文档**,与技能运行时无关 | ✅ 留(DSH 相关) |
|
|
43
|
+
| `80_.../dsh-dev-skill/src/` | 4.0 M | DSH 官方文档快照——**被 `SKILL.md` 与 4 个章节明确引用** | ✅ 留 |
|
|
44
|
+
| `dsh-docs/`(包根) | 4.1 M | DSH 官方文档(较新),`dsh://docs` 主面 | ✅ 留 |
|
|
45
|
+
| `60_exploration-and-research/` `superd/` | — | 已在既有 EXCLUDE 内 | — |
|
|
46
|
+
|
|
47
|
+
> **不要整段摘 `80_upstream-docs-and-skills/`**:`dsh-dev-skill/` 的内容是**蒸馏过的官方 DSH 文档**,按本 change 的留置规则属「与 DSH 相关」的静态文档。**与技能运行时无关**:Harness 技能发现只扫四个根(`<project>/.dsh/skills`、`<project>/.agents/skills`、`~/.dsh/skills`、`~/.agents/skills`,见 `packages/skill/skill-filesystem/src`),插件 docs 树从来不在其中。`dsh://docs` 是纯静态资源——装了插件任何人都能读,里面的目录叫不叫 skill,与 Harness 加载什么技能毫无关系。早期版本的本节曾称它是「运行时真正加载的技能、整段摘会打断一个技能」,**那是错误推断**(把「文件存在」当成了「被运行时加载」),已撤回。
|
|
48
|
+
|
|
49
|
+
> **重复发布(本 change 不处理)**:`dsh-docs/`(249 文件)与 `…/dsh-dev-skill/src/docs/`(241 文件)是同一套官方 DSH 文档的**两个修订版**(后者较旧)。摘后者需同时改写 `SKILL.md` 与 4 个章节里 `../src/docs/` 的指向——那是**文档内部交叉引用**问题(静态库里出现悬空指针),不是技能问题,另开 change 评估。
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 1. 目标态(硬契约)
|
|
54
|
+
|
|
55
|
+
1. **发布副本里不再出现**:`hermes-dev-skill/`、`dsh-dev-skill/pi-and-omp/`、`dsh-dev-skill/src-scripts/`。
|
|
56
|
+
2. **repo 的 `docs/` 一字不动**:`copy-docs.mjs` 只改写发布副本 `better-dsh/docs/`。本仓测试报告、技能源、任何交叉引用与本地技能(如引用 `site-pages-map.txt` 的 `.agents/skills/cordis-dsh-dev`)全不受影响。
|
|
57
|
+
3. **承重面完好**:`dsh-dev-skill/skill/`(含 `SKILL.md`)与其引用的 `src/docs/`、`src/site-pages-map.txt` 必须**全部保留**。
|
|
58
|
+
4. **无新的悬空引用**:发布副本内不得有指向被摘路径的活引用(见 §3 的已知例外)。
|
|
59
|
+
5. **不改语言/行为面**:本 change 纯打包面,不触碰任何源码或技能正文。
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 2. 改动
|
|
64
|
+
|
|
65
|
+
`scripts/copy-docs.mjs` 的 `EXCLUDE` 数组增加 3 条目录规则(沿用既有的"按源路径正则匹配"形式):
|
|
66
|
+
|
|
67
|
+
```js
|
|
68
|
+
/(^|\/)hermes-dev-skill($|\/)/,
|
|
69
|
+
/(^|\/)dsh-dev-skill\/pi-and-omp($|\/)/,
|
|
70
|
+
/(^|\/)dsh-dev-skill\/src-scripts($|\/)/,
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
不删除任何仓库文件,只改变**进包集合**。
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 3. 已知例外(明示接受,不做过度工程)
|
|
78
|
+
|
|
79
|
+
`docs/80_upstream-docs-and-skills/dsh-dev-skill/src-README.md` 在正文里提到 `src-scripts/`(抓取清单的结构说明)。摘掉该目录后,**发布副本**里这份 fetch manifest 会描述一个不在包内的目录。
|
|
80
|
+
|
|
81
|
+
- 影响面:仅"文档自述"的措辞不一致,无功能影响;该 manifest 的价值在于说明 `src/` 是什么。
|
|
82
|
+
- 处置:**接受**。不改写正文(改写会让发布副本与 repo 副本分叉,违背 §1.2)。若日后要更干净,用发布期的占位替换,另开 change。
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 4. 验收
|
|
87
|
+
|
|
88
|
+
1. **量化**:`npm pack` 出的 tarball 从 **20.2 MB → ≈ 3.7 MB**(docs 贡献 20.3 → 3.7 MB);安装后磁盘 sizeof(`docs/`) 从 **98 MB → ≈ 15 MB**。
|
|
89
|
+
2. **承重存活**:解包 tarball,`docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/SKILL.md` 与 `src/docs/`、`src/site-pages-map.txt` 均在位;被摘三目录不存在。
|
|
90
|
+
3. **静态文档可读**:rig 上 `read dsh://docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/SKILL.md` 能取回正文——它只是众多静态文档之一。~~会话技能目录仍列出 `dsh-dev-skill`、`skill://dsh-dev-skill` 可读~~ 该判据建立在错误模型上,撤回:技能是否被 Harness 加载取决于 user 本地 / per-workspace 安装,与本插件无关。
|
|
91
|
+
4. **零新增悬空引用**:在解包后的 `docs/` 内 `grep -rn "hermes-dev-skill\|pi-and-omp\|src-scripts"` 只剩 §3 那一处已知例外。
|
|
92
|
+
5. **`dsh://docs` 可读性不变**:`read dsh://docs` 列表与抽查若干路径仍正常。
|
|
93
|
+
6. 实测报告落 `docs/50_test-reports/`;发布仍需 user 明确放行。
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 5. 风险
|
|
98
|
+
|
|
99
|
+
| 风险 | 说明 | 处置 |
|
|
100
|
+
|---|---|---|
|
|
101
|
+
| 误摘承重目录 | `80_upstream-docs-and-skills/` 名字像"纯上游资料",实则含承重技能 | §1.3 硬契约 + 验收第 2/3 条把关 |
|
|
102
|
+
| 规则误伤同名目录 | EXCLUDE 是正则,若将来别处出现同名目录会被一并摘 | 规则带路径前缀锚定(`dsh-dev-skill/…`),不做裸名匹配 |
|
|
103
|
+
| 与 ast-engine-deomp 同批发布 | 两者都改打包面,回归时互相遮蔽 | 验收分开做:先各自量化,再合并实测一次 |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 6. 进展日志
|
|
108
|
+
|
|
109
|
+
- **2026-10-03 设计轮**:user 发现 Hermes 材料混入并质疑归属,要求"只要跟 DSH 不相关、跟我们这个插件不相关的,全部摘掉"。完成全树审计(见 §0.3),确认:`hermes-dev-skill` 是别家框架的**未消费抓取产物**(无 `SKILL.md`);`pi-and-omp` 被技能正文零引用;`dsh-dev-skill/skill` + `src/` 承重不可摘。user 裁决**档位 F**(只摘未引用的外来物与构建机械)。实测数字:tarball 20.3 → **3.7 MB**;磁盘 98 → **15 MB**。
|
|
110
|
+
- 附带澄清(user 提问驱动):`api-skills.json` 既非技能亦非文档,是未完成流水线的输入;"包内 gzip"被否决——npm tarball 本就是 gzip,包内再压只影响安装后磁盘,且 `dsh://docs` 读纯文本,需为**零引用**文件新增解压读路径,方向错误。
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# dsh Specification
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Let the model read the harness's own documentation and its effective configuration via `dsh://` URLs — runtime self-description, shipped with the package so it resolves in source, built, and installed layouts alike.
|
|
6
|
+
|
|
7
|
+
## Requirements
|
|
8
|
+
|
|
9
|
+
### Requirement: Documentation addressing
|
|
10
|
+
The system SHALL let `dsh://docs` return the sorted recursive listing of readable harness docs as JSON, and `dsh://docs/<doc>` return that document's content. A missing docs tree returns `URL_DOCS_UNAVAILABLE`; a missing document, a path escaping the docs directory, or a non-file target returns `URL_DOC_NOT_FOUND`. Any other root resource returns `URL_UNKNOWN_RESOURCE`.
|
|
11
|
+
|
|
12
|
+
#### Scenario: Browsing the doc listing
|
|
13
|
+
- **WHEN** the model reads `dsh://docs`
|
|
14
|
+
- **THEN** the system returns the JSON array of doc paths relative to the docs root
|
|
15
|
+
|
|
16
|
+
#### Scenario: Reading a specific document
|
|
17
|
+
- **WHEN** the model reads `dsh://docs/<doc>`
|
|
18
|
+
- **THEN** the system returns that document's content
|
|
19
|
+
|
|
20
|
+
#### Scenario: Path traversal is rejected
|
|
21
|
+
- **WHEN** the model reads `dsh://docs/../secrets`
|
|
22
|
+
- **THEN** the system returns the structured `URL_DOC_NOT_FOUND` error (path escapes the docs directory) and reads nothing
|
|
23
|
+
|
|
24
|
+
### Requirement: Docs tree resolves in every layout
|
|
25
|
+
The system SHALL locate the docs tree by a nearest-first walk-up from the module's own location (`docs-dir.ts`), and the package SHALL ship the docs (`prebuild` copies the repo `docs/` into the package; the `files` array includes it) so source-tree, bundled-lib, and installed-`node_modules` layouts all resolve the package's own docs first.
|
|
26
|
+
|
|
27
|
+
#### Scenario: Installed package resolves its own docs
|
|
28
|
+
- **WHEN** the plugin runs from `node_modules/<dashr>/lib/index.js`
|
|
29
|
+
- **THEN** `dsh://docs` serves the docs shipped inside that package, not an ancestor directory's
|
|
30
|
+
|
|
31
|
+
### Requirement: Effective config addressing
|
|
32
|
+
The system SHALL let `dsh://config` return the current resolved settings as JSON keyed by namespace, and `dsh://config/<ns>` return one namespace. A missing settings service returns `URL_SETTINGS_UNAVAILABLE`; an unknown namespace returns `URL_UNKNOWN_SETTINGS_NAMESPACE`.
|
|
33
|
+
|
|
34
|
+
#### Scenario: Reading the effective config
|
|
35
|
+
- **WHEN** the model reads `dsh://config`
|
|
36
|
+
- **THEN** the system returns the resolved (not documented-default) configuration, namespace by namespace
|
|
37
|
+
|
|
38
|
+
#### Scenario: Reading one namespace
|
|
39
|
+
- **WHEN** the model reads `dsh://config/<known namespace>`
|
|
40
|
+
- **THEN** the system returns that namespace's resolved value as JSON
|
|
41
|
+
|
|
42
|
+
### Requirement: Config never leaks secrets
|
|
43
|
+
The system SHALL strip secrets from every config response: schema-declared `role('secret')` redaction plus a defensive key-name denylist matched against normalized key names (credential/env/API-key material), applied recursively.
|
|
44
|
+
|
|
45
|
+
#### Scenario: Config hides keys
|
|
46
|
+
- **WHEN** the model reads `dsh://config` or `dsh://config/<ns>` and a resolved field is an API key or other secret-named field
|
|
47
|
+
- **THEN** the returned JSON does not contain the secret value
|