better-dsh 0.2.3 → 0.2.4
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/cordis.patch.yml +1 -1
- package/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/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/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/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/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/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/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/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/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/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/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/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/docs/50_test-reports/upstream-dsh-0.1.3-alpha.2-local-test-report.md +44 -0
- package/docs/50_test-reports/upstream-dsh-0.1.3-alpha.2-report.md +110 -0
- package/docs/50_test-reports/upstream-dsh-0.1.5-rc.2-local-test-report.md +79 -0
- package/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/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/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/docs/specs/agent/spec.md +54 -0
- package/docs/specs/ast/spec.md +34 -0
- package/docs/specs/compaction-recall/spec.md +46 -0
- package/docs/specs/ctx/spec.md +107 -0
- package/docs/specs/dsh/spec.md +47 -0
- package/docs/specs/dvc/spec.md +87 -0
- package/docs/specs/escalation-guidance/spec.md +44 -0
- package/docs/specs/fs-scheme-resolution/spec.md +37 -0
- package/docs/specs/hash-edit/spec.md +41 -0
- package/docs/specs/http-read/spec.md +73 -0
- package/docs/specs/kernel-provisioning/spec.md +53 -0
- package/docs/specs/lsp/spec.md +121 -0
- package/docs/specs/mobile-layout/spec.md +108 -0
- package/docs/specs/model-failover/spec.md +20 -0
- package/docs/specs/preact-ui-shell/spec.md +22 -0
- package/docs/specs/repl-dispatch-resilience/spec.md +21 -0
- package/docs/specs/skill/spec.md +58 -0
- package/docs/specs/tool-surface/spec.md +222 -0
- package/docs/specs/url-schema/spec.md +148 -0
- package/docs/specs/web-trust-fence/spec.md +43 -0
- package/docs/upstream-dsh-0.1.5-rc.2-report.md +156 -0
- package/dsh-docs/AGENTS.md +75 -0
- package/dsh-docs/agent-lifecycle.md +84 -0
- package/dsh-docs/agent-lifecycle.zh.md +86 -0
- package/dsh-docs/api-gateway.md +164 -0
- package/dsh-docs/api-gateway.zh.md +164 -0
- package/dsh-docs/architecture.md +150 -0
- package/dsh-docs/architecture.zh.md +154 -0
- package/dsh-docs/capability-seams.md +543 -0
- package/dsh-docs/capability-seams.zh.md +545 -0
- package/dsh-docs/config-catalog.md +3473 -0
- package/dsh-docs/config-catalog.zh.md +3474 -0
- package/dsh-docs/cookbook/adding-a-package.md +117 -0
- package/dsh-docs/cookbook/adding-a-package.zh.md +119 -0
- package/dsh-docs/cookbook/adding-a-remote-api.md +197 -0
- package/dsh-docs/cookbook/adding-a-remote-api.zh.md +197 -0
- package/dsh-docs/cookbook/adding-a-session-format-version.md +109 -0
- package/dsh-docs/cookbook/adding-a-session-format-version.zh.md +109 -0
- package/dsh-docs/cookbook/adding-a-settings-card.md +102 -0
- package/dsh-docs/cookbook/adding-a-settings-card.zh.md +102 -0
- package/dsh-docs/cookbook/adding-a-tool.md +101 -0
- package/dsh-docs/cookbook/adding-a-tool.zh.md +103 -0
- package/dsh-docs/cookbook/adding-a-vendored-package.md +59 -0
- package/dsh-docs/cookbook/adding-a-vendored-package.zh.md +59 -0
- package/dsh-docs/cookbook/adding-an-llm-adapter.md +43 -0
- package/dsh-docs/cookbook/adding-an-llm-adapter.zh.md +43 -0
- package/dsh-docs/cookbook/extension-cookbook.md +132 -0
- package/dsh-docs/cookbook/extension-cookbook.zh.md +136 -0
- package/dsh-docs/cookbook/maintaining-dsh-code-review.md +64 -0
- package/dsh-docs/cookbook/maintaining-dsh-code-review.zh.md +64 -0
- package/dsh-docs/cookbook/responding-to-pr-review-on-a-stack.md +32 -0
- package/dsh-docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +32 -0
- package/dsh-docs/cordis-api/context.md +364 -0
- package/dsh-docs/cordis-api/context.zh.md +366 -0
- package/dsh-docs/cordis-api/events.md +207 -0
- package/dsh-docs/cordis-api/events.zh.md +209 -0
- package/dsh-docs/cordis-api/fiber.md +375 -0
- package/dsh-docs/cordis-api/fiber.zh.md +377 -0
- package/dsh-docs/cordis-api/inherited.md +39 -0
- package/dsh-docs/cordis-api/registry.md +152 -0
- package/dsh-docs/cordis-api/registry.zh.md +154 -0
- package/dsh-docs/cordis-api/service.md +102 -0
- package/dsh-docs/cordis-api/service.zh.md +104 -0
- package/dsh-docs/cordis-primer.md +45 -0
- package/dsh-docs/cordis-primer.zh.md +51 -0
- package/dsh-docs/cordis-tutorial/01-first-plugin.md +95 -0
- package/dsh-docs/cordis-tutorial/01-first-plugin.zh.md +95 -0
- package/dsh-docs/cordis-tutorial/02-lifecycle-and-effects.md +98 -0
- package/dsh-docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +98 -0
- package/dsh-docs/cordis-tutorial/03-services.md +98 -0
- package/dsh-docs/cordis-tutorial/03-services.zh.md +98 -0
- package/dsh-docs/cordis-tutorial/04-events.md +144 -0
- package/dsh-docs/cordis-tutorial/04-events.zh.md +144 -0
- package/dsh-docs/cordis-tutorial/05-config.md +84 -0
- package/dsh-docs/cordis-tutorial/05-config.zh.md +84 -0
- package/dsh-docs/cordis-tutorial/06-composition-and-hmr.md +113 -0
- package/dsh-docs/cordis-tutorial/06-composition-and-hmr.zh.md +113 -0
- package/dsh-docs/cordis-tutorial/07-into-the-harness.md +108 -0
- package/dsh-docs/cordis-tutorial/07-into-the-harness.zh.md +108 -0
- package/dsh-docs/cordis-tutorial/index.md +60 -0
- package/dsh-docs/cordis-tutorial/index.zh.md +62 -0
- package/dsh-docs/deepseek-llm-api-wire-extensions.md +163 -0
- package/dsh-docs/deepseek-llm-api-wire-extensions.zh.md +163 -0
- package/dsh-docs/defensive-patterns.md +33 -0
- package/dsh-docs/defensive-patterns.zh.md +35 -0
- package/dsh-docs/development.md +167 -0
- package/dsh-docs/development.zh.md +173 -0
- package/dsh-docs/event-producer-consumer.md +86 -0
- package/dsh-docs/event-producer-consumer.zh.md +88 -0
- package/dsh-docs/glossary.md +45 -0
- package/dsh-docs/glossary.zh.md +45 -0
- package/dsh-docs/graph-atlas.md +22 -0
- package/dsh-docs/graph-atlas.zh.md +24 -0
- package/dsh-docs/i18n/README.md +60 -0
- package/dsh-docs/i18n/README.zh.md +62 -0
- package/dsh-docs/i18n/style-samples.md +87 -0
- package/dsh-docs/i18n/terminology.md +214 -0
- package/dsh-docs/i18n/translation-prompt.md +263 -0
- package/dsh-docs/i18n/translation-rules.md +69 -0
- package/dsh-docs/i18n/translation-rules.zh.md +69 -0
- package/dsh-docs/module-graph.md +1411 -0
- package/dsh-docs/module-graph.zh.md +1413 -0
- package/dsh-docs/persistence-catalog.md +1075 -0
- package/dsh-docs/persistence-catalog.zh.md +1077 -0
- package/dsh-docs/postmortem/0001-acp-default-export-drops-inject.md +113 -0
- package/dsh-docs/postmortem/0001-acp-default-export-drops-inject.zh.md +113 -0
- package/dsh-docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +47 -0
- package/dsh-docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +47 -0
- package/dsh-docs/postmortem/0003-web-agent-gui-feedback-loop.md +53 -0
- package/dsh-docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +53 -0
- package/dsh-docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +55 -0
- package/dsh-docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +55 -0
- package/dsh-docs/postmortem/README.md +18 -0
- package/dsh-docs/postmortem/README.zh.md +18 -0
- package/dsh-docs/rescope.md +53 -0
- package/dsh-docs/rescope.zh.md +53 -0
- package/dsh-docs/session-format-status.md +47 -0
- package/dsh-docs/session-format-status.zh.md +47 -0
- package/dsh-docs/subsystems/README.md +61 -0
- package/dsh-docs/subsystems/README.zh.md +61 -0
- package/dsh-docs/subsystems/agent-team.md +207 -0
- package/dsh-docs/subsystems/agent-team.zh.md +207 -0
- package/dsh-docs/subsystems/approval.md +170 -0
- package/dsh-docs/subsystems/approval.zh.md +170 -0
- package/dsh-docs/subsystems/attachment.md +351 -0
- package/dsh-docs/subsystems/attachment.zh.md +351 -0
- package/dsh-docs/subsystems/client-modules.md +168 -0
- package/dsh-docs/subsystems/client-modules.zh.md +168 -0
- package/dsh-docs/subsystems/client-resources.md +91 -0
- package/dsh-docs/subsystems/client-resources.zh.md +91 -0
- package/dsh-docs/subsystems/code-runtime.md +195 -0
- package/dsh-docs/subsystems/code-runtime.zh.md +195 -0
- package/dsh-docs/subsystems/commands.md +219 -0
- package/dsh-docs/subsystems/commands.zh.md +219 -0
- package/dsh-docs/subsystems/compaction.md +238 -0
- package/dsh-docs/subsystems/compaction.zh.md +238 -0
- package/dsh-docs/subsystems/conversation.md +258 -0
- package/dsh-docs/subsystems/conversation.zh.md +258 -0
- package/dsh-docs/subsystems/core.md +1209 -0
- package/dsh-docs/subsystems/core.zh.md +1219 -0
- package/dsh-docs/subsystems/credentials.md +329 -0
- package/dsh-docs/subsystems/credentials.zh.md +329 -0
- package/dsh-docs/subsystems/extensions.md +382 -0
- package/dsh-docs/subsystems/extensions.zh.md +382 -0
- package/dsh-docs/subsystems/feedback.md +266 -0
- package/dsh-docs/subsystems/feedback.zh.md +266 -0
- package/dsh-docs/subsystems/filesystem.md +505 -0
- package/dsh-docs/subsystems/filesystem.zh.md +505 -0
- package/dsh-docs/subsystems/goal.md +277 -0
- package/dsh-docs/subsystems/goal.zh.md +277 -0
- package/dsh-docs/subsystems/invariants.md +88 -0
- package/dsh-docs/subsystems/invariants.zh.md +88 -0
- package/dsh-docs/subsystems/jobs.md +290 -0
- package/dsh-docs/subsystems/jobs.zh.md +290 -0
- package/dsh-docs/subsystems/llm-streaming.md +1080 -0
- package/dsh-docs/subsystems/llm-streaming.zh.md +1086 -0
- package/dsh-docs/subsystems/lsp.md +202 -0
- package/dsh-docs/subsystems/lsp.zh.md +202 -0
- package/dsh-docs/subsystems/permission-presets.md +131 -0
- package/dsh-docs/subsystems/permission-presets.zh.md +131 -0
- package/dsh-docs/subsystems/persistence.md +395 -0
- package/dsh-docs/subsystems/persistence.zh.md +395 -0
- package/dsh-docs/subsystems/plan.md +87 -0
- package/dsh-docs/subsystems/plan.zh.md +87 -0
- package/dsh-docs/subsystems/sandbox.md +220 -0
- package/dsh-docs/subsystems/sandbox.zh.md +220 -0
- package/dsh-docs/subsystems/schedule.md +192 -0
- package/dsh-docs/subsystems/schedule.zh.md +192 -0
- package/dsh-docs/subsystems/scope.md +59 -0
- package/dsh-docs/subsystems/scope.zh.md +59 -0
- package/dsh-docs/subsystems/session-projection.md +354 -0
- package/dsh-docs/subsystems/session-projection.zh.md +354 -0
- package/dsh-docs/subsystems/session-query.md +509 -0
- package/dsh-docs/subsystems/session-query.zh.md +509 -0
- package/dsh-docs/subsystems/session-reference.md +219 -0
- package/dsh-docs/subsystems/session-reference.zh.md +219 -0
- package/dsh-docs/subsystems/session-telemetry.md +194 -0
- package/dsh-docs/subsystems/session-telemetry.zh.md +194 -0
- package/dsh-docs/subsystems/session-title.md +204 -0
- package/dsh-docs/subsystems/session-title.zh.md +204 -0
- package/dsh-docs/subsystems/session.md +1155 -0
- package/dsh-docs/subsystems/session.zh.md +1159 -0
- package/dsh-docs/subsystems/settings.md +405 -0
- package/dsh-docs/subsystems/settings.zh.md +405 -0
- package/dsh-docs/subsystems/shell.md +303 -0
- package/dsh-docs/subsystems/shell.zh.md +303 -0
- package/dsh-docs/subsystems/sidebar-right.md +148 -0
- package/dsh-docs/subsystems/sidebar-right.zh.md +148 -0
- package/dsh-docs/subsystems/skills.md +354 -0
- package/dsh-docs/subsystems/skills.zh.md +354 -0
- package/dsh-docs/subsystems/slots.md +175 -0
- package/dsh-docs/subsystems/slots.zh.md +175 -0
- package/dsh-docs/subsystems/spill.md +117 -0
- package/dsh-docs/subsystems/spill.zh.md +117 -0
- package/dsh-docs/subsystems/storage.md +260 -0
- package/dsh-docs/subsystems/storage.zh.md +260 -0
- package/dsh-docs/subsystems/subagent.md +766 -0
- package/dsh-docs/subsystems/subagent.zh.md +770 -0
- package/dsh-docs/subsystems/subprocess.md +324 -0
- package/dsh-docs/subsystems/subprocess.zh.md +324 -0
- package/dsh-docs/subsystems/system-prompt.md +220 -0
- package/dsh-docs/subsystems/system-prompt.zh.md +220 -0
- package/dsh-docs/subsystems/terminal.md +184 -0
- package/dsh-docs/subsystems/terminal.zh.md +184 -0
- package/dsh-docs/subsystems/todo.md +32 -0
- package/dsh-docs/subsystems/todo.zh.md +32 -0
- package/dsh-docs/subsystems/token-meter.md +105 -0
- package/dsh-docs/subsystems/token-meter.zh.md +105 -0
- package/dsh-docs/subsystems/tools.md +720 -0
- package/dsh-docs/subsystems/tools.zh.md +720 -0
- package/dsh-docs/subsystems/typert.md +343 -0
- package/dsh-docs/subsystems/typert.zh.md +343 -0
- package/dsh-docs/subsystems/user-questions.md +178 -0
- package/dsh-docs/subsystems/user-questions.zh.md +178 -0
- package/dsh-docs/subsystems/web-client.md +95 -0
- package/dsh-docs/subsystems/web-client.zh.md +95 -0
- package/dsh-docs/subsystems/web-server.md +154 -0
- package/dsh-docs/subsystems/web-server.zh.md +154 -0
- package/dsh-docs/subsystems/web.md +206 -0
- package/dsh-docs/subsystems/web.zh.md +206 -0
- package/dsh-docs/subsystems/webhook.md +70 -0
- package/dsh-docs/subsystems/webhook.zh.md +70 -0
- package/dsh-docs/subsystems/workflow.md +278 -0
- package/dsh-docs/subsystems/workflow.zh.md +278 -0
- package/dsh-docs/subsystems/workspace.md +321 -0
- package/dsh-docs/subsystems/workspace.zh.md +321 -0
- package/dsh-docs/testing.md +54 -0
- package/dsh-docs/testing.zh.md +54 -0
- package/dsh-docs/tool-catalog.md +2225 -0
- package/dsh-docs/tool-catalog.zh.md +2233 -0
- package/dsh-docs/tool-execution-pipeline.md +62 -0
- package/dsh-docs/tool-execution-pipeline.zh.md +64 -0
- package/dsh-docs/user/develop/basic/config.md +106 -0
- package/dsh-docs/user/develop/basic/config.zh.md +106 -0
- package/dsh-docs/user/develop/basic/index.md +144 -0
- package/dsh-docs/user/develop/basic/index.zh.md +144 -0
- package/dsh-docs/user/develop/basic/publish.md +183 -0
- package/dsh-docs/user/develop/basic/publish.zh.md +183 -0
- package/dsh-docs/user/develop/basic/tool.md +52 -0
- package/dsh-docs/user/develop/basic/tool.zh.md +52 -0
- package/dsh-docs/user/develop/framework/events.md +143 -0
- package/dsh-docs/user/develop/framework/events.zh.md +143 -0
- package/dsh-docs/user/develop/framework/index.md +137 -0
- package/dsh-docs/user/develop/framework/index.zh.md +137 -0
- package/dsh-docs/user/develop/framework/service.md +148 -0
- package/dsh-docs/user/develop/framework/service.zh.md +150 -0
- package/dsh-docs/user/develop/practice/dynamic-cordis.md +15 -0
- package/dsh-docs/user/develop/practice/dynamic-cordis.zh.md +15 -0
- package/dsh-docs/user/develop/practice/index.md +155 -0
- package/dsh-docs/user/develop/practice/index.zh.md +155 -0
- package/dsh-docs/user/develop/practice/llm-adapter.md +189 -0
- package/dsh-docs/user/develop/practice/llm-adapter.zh.md +189 -0
- package/dsh-docs/user/guide/github-review.md +102 -0
- package/dsh-docs/user/guide/github-review.zh.md +102 -0
- package/dsh-docs/user/guide/index.md +30 -0
- package/dsh-docs/user/guide/index.zh.md +30 -0
- package/dsh-docs/user/guide/mcp-memory.md +101 -0
- package/dsh-docs/user/guide/mcp-memory.zh.md +101 -0
- package/dsh-docs/user/guide/network-proxy.md +85 -0
- package/dsh-docs/user/guide/network-proxy.zh.md +85 -0
- package/dsh-docs/user/guide/providers.md +190 -0
- package/dsh-docs/user/guide/providers.zh.md +190 -0
- package/dsh-docs/user/guide/python-sdk.md +150 -0
- package/dsh-docs/user/guide/python-sdk.zh.md +150 -0
- package/dsh-docs/user/guide/schedule.md +21 -0
- package/dsh-docs/user/guide/schedule.zh.md +21 -0
- package/dsh-docs/user/index.md +11 -0
- package/dsh-docs/user/index.zh.md +11 -0
- package/dsh-docs/web-styling.md +29 -0
- package/dsh-docs/web-styling.zh.md +29 -0
- package/eval-description.md +33 -0
- package/lib/client/index.js +327 -88
- package/lib/fs-aware/sandbox-plugin.d.ts +71 -0
- package/lib/fs-aware/sandbox-plugin.js +249 -0
- package/lib/index.d.ts +22 -22
- package/lib/index.js +3095 -3204
- package/lib/lsp-server-registry-DkaYmTwt.js +972 -0
- package/lib/lsp-server-registry-_hk-Wcia.js +3 -0
- package/lib/py-sdk-Chvy92MB.js +178 -0
- package/lib/py-sdk.d.ts +19 -2
- package/lib/py-sdk.js +2 -2
- package/lib/wrap-JFjcWwZf.js +747 -0
- package/package.json +9 -3
- package/url-schemes-instruction.md +22 -0
- package/control-prompt.md +0 -37
- package/docs/50_test-reports/v0.1.8d_artifacts/README.md +0 -138
- package/docs/50_test-reports/v0.1.8d_artifacts/code-mode-repl-only.observation.md +0 -74
- package/docs/50_test-reports/v0.1.8d_artifacts/dsh-session-session-4a293388-9ae1-474b-87a0-9e17bb556d94.jsonl +0 -3890
- package/docs/50_test-reports/v0.1.8d_artifacts/dsh-session-session-4a293388-9ae1-474b-87a0-9e17bb556d94.w-sample-0435.jsonl +0 -544
- package/docs/50_test-reports/v0.1.8d_artifacts/functions.json +0 -592
- package/docs/50_test-reports/v0.1.8d_artifacts/skills-catalog.snapshot.md +0 -30
- package/docs/50_test-reports/v0.1.8d_artifacts/tools-sdk.output-schemas.json +0 -1236
- package/docs/50_test-reports/v0.1.8d_artifacts/tools-sdk.python.txt +0 -592
- package/docs/50_test-reports/v0.1.8d_artifacts/tools-sdk.typescript.txt +0 -516
- package/docs/50_test-reports/v0.1.8d_artifacts/wire-vs-transcription.diff.md +0 -54
- package/docs/50_test-reports/v0.2.0b_artifacts/f2probe/Cargo.lock +0 -7
- package/docs/50_test-reports/v0.2.0b_artifacts/f2probe/Cargo.toml +0 -6
- package/docs/50_test-reports/v0.2.0b_artifacts/f2probe/src/bin/messy.rs +0 -8
- package/docs/50_test-reports/v0.2.0b_artifacts/f2probe/src/main.rs +0 -4
- package/docs/50_test-reports/v0.2.0b_artifacts/hashline-probe.md +0 -5
- package/docs/50_test-reports/v0.2.0b_artifacts/slowprobe/Cargo.lock +0 -7
- package/docs/50_test-reports/v0.2.0b_artifacts/slowprobe/Cargo.toml +0 -7
- package/docs/50_test-reports/v0.2.0b_artifacts/slowprobe/build.rs +0 -4
- package/docs/50_test-reports/v0.2.0b_artifacts/slowprobe/src/main.rs +0 -13
- package/docs/60_exploration-and-research/cordis-research.md +0 -350
- package/docs/60_exploration-and-research/dsh-web-profile-package-map.md +0 -186
- package/docs/60_exploration-and-research/dsh-web-ui-slot-system-research.md +0 -310
- package/docs/60_exploration-and-research/dsh-webui-strip-boundary-research.md +0 -300
- package/docs/60_exploration-and-research/ios-chat-app-bridge-research.md +0 -324
- package/docs/60_exploration-and-research/web-frontend-composability-research.md +0 -191
- package/docs/REPL-/345/267/245/345/205/267/350/260/203/347/224/250-/346/210/252/346/226/255/350/257/212/346/226/255.md +0 -110
- package/docs/adr/0001-bridge-tool-layer-not-service-layer.md +0 -14
- package/docs/adr/0002-masking-is-presentation-only.md +0 -15
- package/docs/plans/A2A-messaging-channel-test-archive.md +0 -256
- package/docs/plans/code-mode-vs-rlm-ipython-comparison.md +0 -137
- package/docs/plans/dashr-blueprint-review.md +0 -201
- package/docs/plans/dashr-blueprint.md +0 -561
- package/docs/plans/dashr-compaction-window-and-archive.md +0 -307
- package/docs/plans/dashr-profile-layer-feasibility.md +0 -367
- package/docs/plans/dashr-sandbox-escalation-semantics-gap.md +0 -171
- package/docs/plans/dashr-security-sandbox-analysis.md +0 -187
- package/docs/plans/dashr-surface-invariant-and-omp-imports.md +0 -97
- package/docs/plans/ipython-kernel-interactive-interface-test-report.md +0 -152
- package/docs/plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft.md +0 -146
- package/docs/plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft_v3.md +0 -50
- package/docs/plans/kernel-refactoring/Dash-IPython-Control-Prompt-draft_v4.md +0 -79
- package/docs/plans/kernel-refactoring/Dash-vs-PrimeAgent-systemprompt-toolcatalog-comparison.md +0 -138
- package/docs/plans/kernel-refactoring/RLM-system-prompt-injection-gap-report.md +0 -161
- package/docs/plans/kernel-refactoring/V0.1.5-development-plan.md +0 -109
- package/docs/plans/kernel-refactoring/actinoable-surface-to-llm-in-agent-runtime_dsh.md +0 -50
- package/docs/plans/kernel-refactoring/actinoable-surface-to-llm-in-agent-runtime_prime.md +0 -113
- package/docs/plans/recallable-compaction.md +0 -147
- package/docs/plans/spike-tag-repro.mjs +0 -102
- package/docs/plans/upstream-analysis.md +0 -128
- package/docs/v0.1.8-improved-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -142
- package/docs/v0.1.8-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -193
- package/docs/v0.1.8b-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -96
- package/docs/v0.1.8c-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -127
- package/docs/v0.1.8d-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -150
- package/docs/v0.1.8d_artifacts/README.md +0 -138
- package/docs/v0.1.8d_artifacts/code-mode-repl-only.observation.md +0 -74
- package/docs/v0.1.8d_artifacts/dsh-session-session-4a293388-9ae1-474b-87a0-9e17bb556d94.jsonl +0 -3890
- package/docs/v0.1.8d_artifacts/dsh-session-session-4a293388-9ae1-474b-87a0-9e17bb556d94.w-sample-0435.jsonl +0 -544
- package/docs/v0.1.8d_artifacts/functions.json +0 -592
- package/docs/v0.1.8d_artifacts/skills-catalog.snapshot.md +0 -30
- package/docs/v0.1.8d_artifacts/tools-sdk.output-schemas.json +0 -1236
- package/docs/v0.1.8d_artifacts/tools-sdk.python.txt +0 -592
- package/docs/v0.1.8d_artifacts/tools-sdk.typescript.txt +0 -516
- package/docs/v0.1.8d_artifacts/wire-vs-transcription.diff.md +0 -54
- package/docs/v0.1.8e-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -224
- package/docs/v0.1.9a-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -168
- package/docs/v0.2.0b-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -123
- package/docs/v0.2.0b_artifacts/f2probe/Cargo.lock +0 -7
- package/docs/v0.2.0b_artifacts/f2probe/Cargo.toml +0 -6
- package/docs/v0.2.0b_artifacts/f2probe/src/bin/messy.rs +0 -8
- package/docs/v0.2.0b_artifacts/f2probe/src/main.rs +0 -4
- package/docs/v0.2.0b_artifacts/hashline-probe.md +0 -5
- package/docs/v0.2.0b_artifacts/slowprobe/Cargo.lock +0 -7
- package/docs/v0.2.0b_artifacts/slowprobe/Cargo.toml +0 -7
- package/docs/v0.2.0b_artifacts/slowprobe/build.rs +0 -4
- package/docs/v0.2.0b_artifacts/slowprobe/src/main.rs +0 -13
- package/docs/v0.2.1-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -110
- package/docs/v0.2.1b-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -86
- package/docs/v0.2.1c-/345/256/236/346/265/213/346/212/245/345/221/212.md +0 -66
- package/lib/py-sdk-BCaOGYz7.d.ts +0 -125
- package/lib/py-sdk-CbgYiX8O.js +0 -691
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import { f as UrlSchemesError, t as buildFsLayerResolver } from "../wrap-JFjcWwZf.js";
|
|
2
|
+
import { Context } from "@deepseek-ai/cordis";
|
|
3
|
+
import { dirname, sep } from "node:path";
|
|
4
|
+
import { stat } from "node:fs/promises";
|
|
5
|
+
import { FsError } from "@deepseek-ai/dsh-fs";
|
|
6
|
+
import { writableRoots } from "@deepseek-ai/dsh-sandbox";
|
|
7
|
+
import { LocalFileSystem } from "@deepseek-ai/dsh-fs-local";
|
|
8
|
+
|
|
9
|
+
//#region node_modules/@deepseek-ai/dsh-fs-sandbox/lib/index.js
|
|
10
|
+
/**
|
|
11
|
+
* Path-containment mechanics for the filesystem sandbox. Canonical spellings
|
|
12
|
+
* take the fast lexical path; filesystem identity supplies the conservative
|
|
13
|
+
* fallback for alias-equivalent roots such as Windows 8.3 names and casing.
|
|
14
|
+
* @module @deepseek-ai/dsh-fs-sandbox/containment
|
|
15
|
+
*/
|
|
16
|
+
const MISSING_CODES = new Set(["ENOENT", "ENOTDIR"]);
|
|
17
|
+
function isMissing(error) {
|
|
18
|
+
const code = error.code;
|
|
19
|
+
return MISSING_CODES.has(code);
|
|
20
|
+
}
|
|
21
|
+
function comparablePath(path, caseSensitive) {
|
|
22
|
+
return caseSensitive ? path : path.toLowerCase();
|
|
23
|
+
}
|
|
24
|
+
function isLexicallyUnder(path, root, caseSensitive) {
|
|
25
|
+
const comparableTarget = comparablePath(path, caseSensitive);
|
|
26
|
+
const comparableRoot = comparablePath(root, caseSensitive);
|
|
27
|
+
if (comparableTarget === comparableRoot) return true;
|
|
28
|
+
const prefix = comparableRoot.endsWith(sep) ? comparableRoot : comparableRoot + sep;
|
|
29
|
+
return comparableTarget.startsWith(prefix);
|
|
30
|
+
}
|
|
31
|
+
async function statIfPresent(path) {
|
|
32
|
+
try {
|
|
33
|
+
return await stat(path, { bigint: true });
|
|
34
|
+
} catch (error) {
|
|
35
|
+
/* v8 ignore else -- a non-missing stat failure requires a host permission or I/O fault after resolve reached this ancestor. */
|
|
36
|
+
if (isMissing(error)) return void 0;
|
|
37
|
+
/* v8 ignore next -- requires a host permission or I/O fault after resolve already reached this ancestor. */
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function sameIdentity(left, right) {
|
|
42
|
+
return left.dev === right.dev && left.ino === right.ino;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Determine whether a canonical target is a writable root or lies beneath it.
|
|
46
|
+
* The lexical fast path handles normal canonical spellings. When spellings
|
|
47
|
+
* differ, walk the target's existing ancestors and compare filesystem identity
|
|
48
|
+
* with the root; this recognizes Windows long-name/8.3 aliases and casing
|
|
49
|
+
* without weakening containment to a textual approximation.
|
|
50
|
+
* @param path - canonical target key, which may end in a missing suffix.
|
|
51
|
+
* @param root - canonical writable root.
|
|
52
|
+
* @param caseSensitive - whether lexical comparison preserves case; defaults
|
|
53
|
+
* to the host filesystem convention used by supported platforms.
|
|
54
|
+
* @returns whether the target is the root or a descendant of it.
|
|
55
|
+
*/
|
|
56
|
+
async function isPathUnder(path, root, caseSensitive = process.platform !== "win32") {
|
|
57
|
+
if (isLexicallyUnder(path, root, caseSensitive)) return true;
|
|
58
|
+
const rootInfo = await statIfPresent(root);
|
|
59
|
+
if (!rootInfo) return false;
|
|
60
|
+
let ancestor = path;
|
|
61
|
+
while (true) {
|
|
62
|
+
const ancestorInfo = await statIfPresent(ancestor);
|
|
63
|
+
if (ancestorInfo && sameIdentity(ancestorInfo, rootInfo)) return true;
|
|
64
|
+
const parent = dirname(ancestor);
|
|
65
|
+
if (parent === ancestor) return false;
|
|
66
|
+
ancestor = parent;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* `SandboxedFileSystem`: the sandbox-enforcing implementation of the
|
|
71
|
+
* `@deepseek-ai/dsh-fs` Service Definition. It extends `LocalFileSystem` so all
|
|
72
|
+
* text-storage mechanics — resolve, stat, read/stream, list, the atomic
|
|
73
|
+
* write and the read-match-write edit critical section — are the local
|
|
74
|
+
* implementation's, verbatim; this package adds only the per-call POLICY fence
|
|
75
|
+
* on the two mutations. Reads pass through untouched: every mode permits
|
|
76
|
+
* reading.
|
|
77
|
+
*
|
|
78
|
+
* The fence is a policy check in TRUSTED code over a MODEL-CONTROLLED path,
|
|
79
|
+
* NOT a kernel boundary — the operations are the seam's own (open, rename),
|
|
80
|
+
* and only the target path is untrusted, so canonicalize-then-contain is the
|
|
81
|
+
* complete answer to this surface. This is containment, not a security
|
|
82
|
+
* boundary; kernel-grade isolation of untrusted CODE stays `ctx.shell`'s job
|
|
83
|
+
* (`@deepseek-ai/dsh-bash-sandbox`). The residual
|
|
84
|
+
* TOCTOU (an ancestor symlink swapped between the containment re-check and the
|
|
85
|
+
* syscall) is narrowed by re-canonicalizing immediately before delegating and
|
|
86
|
+
* is accepted for this threat model.
|
|
87
|
+
*
|
|
88
|
+
* Per-call policy: `read-only` denies every mutation; `workspace-write` allows
|
|
89
|
+
* a mutation only when the target canonicalizes under the policy's workspace
|
|
90
|
+
* root or a platform temp area from the shared `writableRoots` policy;
|
|
91
|
+
* `danger-full-access` delegates unfenced. A denial throws the structured
|
|
92
|
+
* `FS_SANDBOX_DENIED`.
|
|
93
|
+
*
|
|
94
|
+
* @module @deepseek-ai/dsh-fs-sandbox
|
|
95
|
+
*/
|
|
96
|
+
/**
|
|
97
|
+
* Sandbox-enforcing filesystem backend. Registers as `ctx.fs` (loading it
|
|
98
|
+
* INSTEAD OF `dsh-fs-local`, together with a `ctx.sandboxPolicy`, is the whole
|
|
99
|
+
* swap — the model-facing tools are untouched). Its configured default mode is
|
|
100
|
+
* the capability fact exposed by {@link sandboxMode}; `dsh-tool-fs` resolves
|
|
101
|
+
* each session's mode and cwd into a policy for every mutation, while an
|
|
102
|
+
* approved escalation may stamp a strictly wider mode for one call.
|
|
103
|
+
*/
|
|
104
|
+
var SandboxedFileSystem = class extends LocalFileSystem {
|
|
105
|
+
static inject = ["sandboxPolicy"];
|
|
106
|
+
defaultMode;
|
|
107
|
+
constructor(ctx, config) {
|
|
108
|
+
super(ctx, config);
|
|
109
|
+
this.defaultMode = ctx.sandboxPolicy.defaultMode;
|
|
110
|
+
}
|
|
111
|
+
/** The deployment default mode — the capability fact the tool layer reads to advertise escalation. */
|
|
112
|
+
get sandboxMode() {
|
|
113
|
+
return this.defaultMode;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Fence the write by the per-call policy, then delegate to the inherited
|
|
117
|
+
* atomic write. See {@link checkedTarget}.
|
|
118
|
+
* @param target - the resolved target to write.
|
|
119
|
+
* @param content - the full new file content.
|
|
120
|
+
* @param expected - the write intent guarding the write; omit for unconditional.
|
|
121
|
+
* @param signal - aborts before atomic publication takes effect.
|
|
122
|
+
* @param sandboxPolicy - the per-call mode and workspace root; omit to use
|
|
123
|
+
* the deployment fallback.
|
|
124
|
+
* @returns the write outcome from the inherited backend.
|
|
125
|
+
*/
|
|
126
|
+
async writeText(target, content, expected, signal, sandboxPolicy) {
|
|
127
|
+
return super.writeText(await this.checkedTarget(target, sandboxPolicy), content, expected, signal);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Fence the edit by the per-call policy, then delegate to the inherited
|
|
131
|
+
* atomic edit. See {@link checkedTarget}.
|
|
132
|
+
* @param target - the resolved target to edit.
|
|
133
|
+
* @param edit - the literal search/replace request.
|
|
134
|
+
* @param expected - the version guard; omit for an unconditional edit.
|
|
135
|
+
* @param signal - aborts before atomic publication takes effect.
|
|
136
|
+
* @param sandboxPolicy - the per-call mode and workspace root; omit to use
|
|
137
|
+
* the deployment fallback.
|
|
138
|
+
* @returns the edit outcome from the inherited backend.
|
|
139
|
+
*/
|
|
140
|
+
async editText(target, edit, expected, signal, sandboxPolicy) {
|
|
141
|
+
return super.editText(await this.checkedTarget(target, sandboxPolicy), edit, expected, signal);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Enforce the per-call policy against `target` and return the EXACT target the
|
|
145
|
+
* mutation must use, so the checked identity is the mutated one (no
|
|
146
|
+
* check-here-write-there TOCTOU). `read-only` denies; `workspace-write`
|
|
147
|
+
* re-canonicalizes NOW (`resolve` realpaths the deepest existing ancestor,
|
|
148
|
+
* reflecting a concurrently swapped symlink), requires containment under a
|
|
149
|
+
* writable root, and returns THAT fresh target; `danger-full-access` returns
|
|
150
|
+
* the caller's target unfenced. Throws the structured `FS_SANDBOX_DENIED` on
|
|
151
|
+
* refusal — the tool layer maps it to the model-facing `[sandbox: …]` marker
|
|
152
|
+
* and the escalation hint.
|
|
153
|
+
*/
|
|
154
|
+
async checkedTarget(target, sandboxPolicy) {
|
|
155
|
+
const policy = sandboxPolicy ?? this.ctx.sandboxPolicy.resolve();
|
|
156
|
+
const { mode } = policy;
|
|
157
|
+
if (mode === "danger-full-access") return target;
|
|
158
|
+
if (mode === "read-only") throw new FsError(`cannot write "${target.displayPath}": file access denied under read-only mode`, "FS_SANDBOX_DENIED");
|
|
159
|
+
const fresh = await this.resolve(target.displayPath);
|
|
160
|
+
let contained = false;
|
|
161
|
+
for (const root of writableRoots(policy)) if (await isPathUnder(fresh.targetKey, root)) {
|
|
162
|
+
contained = true;
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
if (!contained) throw new FsError(`cannot write "${target.displayPath}": file access denied under workspace-write mode`, "FS_SANDBOX_DENIED");
|
|
166
|
+
return fresh;
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
//#endregion
|
|
171
|
+
//#region src/fs-aware/sandbox-plugin.ts
|
|
172
|
+
/** Scheme prefix test — mirrors the resolver's own grammar. */
|
|
173
|
+
function isSchemePath(path) {
|
|
174
|
+
return /^[a-z][a-z0-9]*:\/\//.test(path);
|
|
175
|
+
}
|
|
176
|
+
/** Session-layer schemes are excluded from FS-layer resolution (design D2). */
|
|
177
|
+
function isSessionLayerScheme(path) {
|
|
178
|
+
return path.startsWith("ctx://") || path.startsWith("agent://") || path.startsWith("skill://");
|
|
179
|
+
}
|
|
180
|
+
function sessionLayerError(url) {
|
|
181
|
+
if (url.startsWith("skill://")) return new UrlSchemesError("CTX_SESSION_LAYER", `${url}: session-layer scheme — skill discovery (which roots load, scan depth, layered scope merge) is the host skill provider's business logic and resolves only against a calling agent, which the filesystem layer does not have. Load skills with the native \`skill\` tool; grep/glob with path=skill://… keep working through the tool layer`);
|
|
182
|
+
return new UrlSchemesError("CTX_SESSION_LAYER", `${url}: session-layer scheme — read it through the read tool (the session-layer resolver environment carries the live agent this filesystem layer does not have)`);
|
|
183
|
+
}
|
|
184
|
+
const Base = SandboxedFileSystem;
|
|
185
|
+
var FsAwareSandboxFileSystem = class extends Base {
|
|
186
|
+
static inject = [
|
|
187
|
+
"sandboxPolicy",
|
|
188
|
+
"settings",
|
|
189
|
+
"agents"
|
|
190
|
+
];
|
|
191
|
+
resolver;
|
|
192
|
+
schemeResolution;
|
|
193
|
+
constructor(ctx, config) {
|
|
194
|
+
super(ctx, config);
|
|
195
|
+
this.schemeResolution = config?.urlSchemes !== false;
|
|
196
|
+
this.resolver = this.buildResolver(ctx);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* FS-layer resolver — the SHARED builder from `wrap.ts` (design D2). One
|
|
200
|
+
* registration source for both FS consumers: this backend and the instance
|
|
201
|
+
* wrap. (A private duplicate here once drifted — a doubled `dsh` register
|
|
202
|
+
* and a literal `'http'` that would silently drop `https` if this backend
|
|
203
|
+
* were ever the outermost layer.) The `ctx`/`agent` handlers it registers
|
|
204
|
+
* are unreachable here: session-layer schemes are guarded before resolve.
|
|
205
|
+
*/
|
|
206
|
+
buildResolver(ctx) {
|
|
207
|
+
return buildFsLayerResolver({ settings: ctx.settings }, this);
|
|
208
|
+
}
|
|
209
|
+
/** FS-layer resolver env: no live agent — session-layer schemes are excluded upstream. */
|
|
210
|
+
envFor(url) {
|
|
211
|
+
return {
|
|
212
|
+
fs: this,
|
|
213
|
+
rawUrl: url
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
async resolve(path, opts) {
|
|
217
|
+
if (!this.schemeResolution || !isSchemePath(path)) return super.resolve(path, opts);
|
|
218
|
+
if (isSessionLayerScheme(path)) throw sessionLayerError(path);
|
|
219
|
+
await this.resolver.resolve(this.envFor(path), path);
|
|
220
|
+
return {
|
|
221
|
+
targetKey: path,
|
|
222
|
+
displayPath: path
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
async stat(target, signal) {
|
|
226
|
+
if (!this.schemeResolution || !isSchemePath(target.targetKey)) return super.stat(target, signal);
|
|
227
|
+
if (isSessionLayerScheme(target.targetKey)) throw sessionLayerError(target.targetKey);
|
|
228
|
+
return {
|
|
229
|
+
type: "file",
|
|
230
|
+
size: (await this.resolver.resolve(this.envFor(target.targetKey), target.targetKey)).length
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
async readText(target, signal) {
|
|
234
|
+
if (!this.schemeResolution || !isSchemePath(target.targetKey)) return super.readText(target, signal);
|
|
235
|
+
if (isSessionLayerScheme(target.targetKey)) throw sessionLayerError(target.targetKey);
|
|
236
|
+
return this.resolver.resolve(this.envFor(target.targetKey), target.targetKey);
|
|
237
|
+
}
|
|
238
|
+
async writeText(target, ...rest) {
|
|
239
|
+
if (this.schemeResolution && isSchemePath(target.targetKey)) throw new UrlSchemesError("FS_VIRTUAL_READONLY", `cannot write "${target.targetKey}": scheme resources are read-only at the filesystem layer`);
|
|
240
|
+
return super.writeText(target, ...rest);
|
|
241
|
+
}
|
|
242
|
+
async editText(target, ...rest) {
|
|
243
|
+
if (this.schemeResolution && isSchemePath(target.targetKey)) throw new UrlSchemesError("FS_VIRTUAL_READONLY", `cannot edit "${target.targetKey}": scheme resources are read-only at the filesystem layer`);
|
|
244
|
+
return super.editText(target, ...rest);
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
//#endregion
|
|
249
|
+
export { FsAwareSandboxFileSystem as default };
|
package/lib/index.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { t as DASHRSdkSchema } from "./py-sdk-BCaOGYz7.js";
|
|
2
1
|
import { Context, Service } from "@deepseek-ai/cordis";
|
|
3
2
|
import z from "@deepseek-ai/schemastery";
|
|
4
3
|
import { ToolDefinition, ToolExecutionInput, ToolRunContext, ToolRuntime } from "@deepseek-ai/dsh-tools";
|
|
5
4
|
import { ContentBlock, HarnessError } from "@deepseek-ai/dsh-llm";
|
|
6
|
-
import {
|
|
5
|
+
import { Scoped } from "@deepseek-ai/dsh-scope";
|
|
7
6
|
import { Agent } from "@deepseek-ai/dsh-agent";
|
|
8
7
|
|
|
9
8
|
//#region src/vendored/types.d.ts
|
|
@@ -547,15 +546,22 @@ type ToolCallId = ToolExecutionInput['callId'];
|
|
|
547
546
|
interface WebTrustConfig {
|
|
548
547
|
/** Hostnames this operator declares their own devices' pages run on. */
|
|
549
548
|
trustedPageAuthorities?: readonly string[];
|
|
550
|
-
/** Mobile responsiveness knobs (client half consumes via page global). */
|
|
551
549
|
mobile?: {
|
|
552
550
|
enabled?: boolean;
|
|
553
|
-
breakpoint?: number;
|
|
554
551
|
swipeDistancePx?: number;
|
|
555
552
|
dominanceRatio?: number;
|
|
556
553
|
leftEdgeBandPx?: number;
|
|
557
554
|
rightZoneRatio?: number;
|
|
558
555
|
swipeVelocityPxPerMs?: number;
|
|
556
|
+
/**
|
|
557
|
+
* iOS focus auto-zoom suppression mode (change
|
|
558
|
+
* `2026-09-03-ios-focus-zoom-suppression`): `'meta'` (default) rewrites
|
|
559
|
+
* the viewport meta on iOS-class narrow viewports; `'off'` is the escape
|
|
560
|
+
* hatch. `'font'` (16px floor, solution A) is a RESERVED value slot,
|
|
561
|
+
* deliberately not in the schema enum — unimplemented values fail loud
|
|
562
|
+
* at config load rather than no-op silently.
|
|
563
|
+
*/
|
|
564
|
+
zoomGuard?: 'meta' | 'off';
|
|
559
565
|
};
|
|
560
566
|
}
|
|
561
567
|
//#endregion
|
|
@@ -571,6 +577,10 @@ declare const inject: string[];
|
|
|
571
577
|
/** Plugin config. */
|
|
572
578
|
interface Config extends Config$1 {
|
|
573
579
|
maxParallelSubCalls?: number;
|
|
580
|
+
/** URL scheme resolution (read/write/grep/glob scheme branches + `ctx://`). */
|
|
581
|
+
urlSchemes?: boolean;
|
|
582
|
+
/** Hashline feature: read anchors + the `edit`/`undo` tool family. */
|
|
583
|
+
hashline?: boolean;
|
|
574
584
|
/** Page hostnames this operator declares their own (web-trust boot script). */
|
|
575
585
|
trustedPageAuthorities?: string[];
|
|
576
586
|
/** Mobile responsiveness knobs (delivered to the client half as a page global). */
|
|
@@ -596,6 +606,11 @@ declare const EVAL_NAME = "eval";
|
|
|
596
606
|
* (`modelSelectionSettings: true`) lands on the agent's OWN layer, outside
|
|
597
607
|
* registry restriction reach, so it stays visible on every surface and the
|
|
598
608
|
* control prompt annotates it as an alias of the `agent` delegation tool.
|
|
609
|
+
* `skill` was REMOVED from this list (2026-09-12, user ruling): the native
|
|
610
|
+
* skill tool stays visible and self-surfaces its session catalog
|
|
611
|
+
* (`<available_skills>` is gated on the tool's registry visibility — masking
|
|
612
|
+
* the tool silenced the catalog). dashr's dual pipeline keeps `read
|
|
613
|
+
* skill://<name>` as the addressing form alongside native invocation.
|
|
599
614
|
* own URL wrappers) is exempt from restrictions by construction — the
|
|
600
615
|
* capability it carries stays reachable through the captured-definition
|
|
601
616
|
* bridges below, never through the masked name.
|
|
@@ -609,10 +624,6 @@ declare const MASKED_TOOL_NAMES: ReadonlySet<string>;
|
|
|
609
624
|
* bridges that read captured definitions.
|
|
610
625
|
*/
|
|
611
626
|
declare const WIRE_MASKED_NAMES: ReadonlySet<string>;
|
|
612
|
-
/** The `dashr:control-prompt` section order: the FIRST section in the 100–199 tool-guidance band, so the cell paradigm is taught before the Tool Catalog renders its signatures. */
|
|
613
|
-
declare const CONTROL_SECTION_ORDER = 100;
|
|
614
|
-
/** The `dashr:tool-catalog` section order: the 100–199 tool-guidance band's SDK position, matching upstream `tools:sdk`. */
|
|
615
|
-
declare const SDK_SECTION_ORDER = 150;
|
|
616
627
|
/**
|
|
617
628
|
* The `dashr:escalation-guidance` CONTEXT order: sits inside the runtime-context snapshot
|
|
618
629
|
* band between upstream `approval:policy` (115) and `subagent:delegation` (120) — the
|
|
@@ -663,7 +674,7 @@ declare module '@deepseek-ai/cordis' {
|
|
|
663
674
|
/**
|
|
664
675
|
* Allow a listener to replace content in the DURABLE LOG COPY of one
|
|
665
676
|
* `eval` sub-dispatch outcome before the bridge appends its
|
|
666
|
-
* `tool/
|
|
677
|
+
* `tool/ptc-dispatch` event. `next()` keeps the content unchanged; a
|
|
667
678
|
* listener may return replacement blocks (e.g. the spill policy's preview
|
|
668
679
|
* + locator for an oversized text result). Scope-filtered dispatch
|
|
669
680
|
* (`@deepseek-ai/dsh-scope`): agent-scoped listeners receive only that
|
|
@@ -706,7 +717,7 @@ interface RunCellBridgeOptions {
|
|
|
706
717
|
* in the module doc. Sub-calls ride the registry's exported staged scheduler
|
|
707
718
|
* (`prepare`/`dispatch`/`finalize`/`finish`) under the native concurrency
|
|
708
719
|
* contract; each sub-dispatch is logged for reconstruction
|
|
709
|
-
* (`tool/
|
|
720
|
+
* (`tool/ptc-dispatch-start` / `tool/ptc-dispatch`) while only the outer
|
|
710
721
|
* curated result enters model history.
|
|
711
722
|
* @param registry - the host tool registry (sub-calls go through its staged
|
|
712
723
|
* scheduler, bindings cover its registered tools).
|
|
@@ -714,17 +725,6 @@ interface RunCellBridgeOptions {
|
|
|
714
725
|
* @returns the registry-ready definition.
|
|
715
726
|
*/
|
|
716
727
|
declare function createRunCellTool(registry: ToolRuntime, options: RunCellBridgeOptions): ToolDefinition;
|
|
717
|
-
/**
|
|
718
|
-
* Collect one calling scope's bridge-declaration schemas through the
|
|
719
|
-
* registry's public projection APIs: `schemas(scope)` for the model-facing
|
|
720
|
-
* view (scoped tools join, restrictions apply — the wire mask is a
|
|
721
|
-
* registry-level restriction installed at session-start, so every masked
|
|
722
|
-
* name is ALREADY absent from this projection; no second name filter
|
|
723
|
-
* exists to drift), `get(name, scope)` for the canonical output schema,
|
|
724
|
-
* snapshotted so a live definition cannot mutate under the render. `eval`
|
|
725
|
-
* itself is excluded — it is the transport, not a binding.
|
|
726
|
-
*/
|
|
727
|
-
declare function collectSdkSchemas(registry: ToolRuntime, scope?: ScopeKey): DASHRSdkSchema[];
|
|
728
728
|
declare function apply(ctx: Context, config: Config): void;
|
|
729
729
|
declare const _default: {
|
|
730
730
|
name: string;
|
|
@@ -733,4 +733,4 @@ declare const _default: {
|
|
|
733
733
|
apply: typeof apply;
|
|
734
734
|
};
|
|
735
735
|
//#endregion
|
|
736
|
-
export {
|
|
736
|
+
export { Config, DASHRRunFailedError, DashrRuntime, ESCALATION_GUIDANCE_ORDER, EVAL_NAME, MASKED_TOOL_NAMES, ReplDispatchLog, ReplRuntime, RunCellBridgeOptions, type Config$1 as RuntimeConfig, WIRE_MASKED_NAMES, apply, createRunCellTool, _default as default, inject, name, resolveMaxParallelSubCalls };
|