Extend SandboxMode enforcement from bash to the filesystem tools, the sandbox RFC's deferred cross-family phase. - dsh-sandbox-policy (new, ctx.sandboxPolicy): the single home for the deployment default mode + workspaceRoot and the per-session override event, renamed bash/sandbox-mode -> sandbox/mode and moved here with its fold/setter. Decouples the bash seam from dsh-session. - dsh-fs-sandbox (new): SandboxedFileSystem extends LocalFileSystem and fences write/edit by the per-call mode (read-only denies, workspace-write contains to the workspace + temp roots via the shared writableRoots, danger passes through); reads pass through. Structured FS_SANDBOX_DENIED; in-lock parent re-canonicalization. A policy fence in trusted code, not a kernel boundary. - dsh-sandbox: the shared escalation kit (writableRoots, the strictly-wider ladder, denial/hint markers, approveEscalation) both tool families use; approveEscalation takes a structural approver so dsh-sandbox gains no approval/agent dependency, and both tools stay duplication-free. - tool-fs: write/edit advertise sandbox_permissions/justification under a confining ctx.fs, map FS_SANDBOX_DENIED to the shared [sandbox: ...] marker, and resolve the same one-approved-wider retry. - examples/acp-agent: composes sandbox-policy + fs-sandbox, drops the gating that disabled the fs stack under confined modes. RFC docs/rfc/implemented/feature/2026-07-14-cross-family-fs-sandbox.md; the old sandbox RFC's In-process/deferred/FAQ sections updated to shipped fact.
77 lines
3.7 KiB
JSON
77 lines
3.7 KiB
JSON
{
|
|
"name": "dsh-jsonrpc-agent-pkg",
|
|
"description": "Deploy root of the single-exe pipeline and the single source of truth unifying 'which plugins the exe bundles' and 'what the Python runtime distributes': the dependency list below IS the exe closure. Pure manifest — no code; a deploy materializes only this package.json plus node_modules.",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"type": "module",
|
|
"dependencies": {
|
|
"@cordisjs/plugin-include": "workspace:^",
|
|
"@cordisjs/plugin-loader": "workspace:^",
|
|
"@cordisjs/plugin-timer": "workspace:^",
|
|
"@deepseek-ai/dsh-acp": "workspace:^",
|
|
"@deepseek-ai/dsh-agent": "workspace:^",
|
|
"@deepseek-ai/dsh-agent-core": "workspace:^",
|
|
"@deepseek-ai/dsh-agent-loop": "workspace:^",
|
|
"@deepseek-ai/dsh-app-boot": "workspace:^",
|
|
"@deepseek-ai/dsh-bash": "workspace:^",
|
|
"@deepseek-ai/dsh-bash-local": "workspace:^",
|
|
"@deepseek-ai/dsh-brand": "workspace:^",
|
|
"@deepseek-ai/dsh-code-runtime": "workspace:^",
|
|
"@deepseek-ai/dsh-code-runtime-worker": "workspace:^",
|
|
"@deepseek-ai/dsh-compact": "workspace:^",
|
|
"@deepseek-ai/dsh-compact-basic": "workspace:^",
|
|
"@deepseek-ai/dsh-fs": "workspace:^",
|
|
"@deepseek-ai/dsh-fs-local": "workspace:^",
|
|
"@deepseek-ai/dsh-fs-policy": "workspace:^",
|
|
"@deepseek-ai/dsh-hook-protocol": "workspace:^",
|
|
"@deepseek-ai/dsh-hooks-claude": "workspace:^",
|
|
"@deepseek-ai/dsh-hooks-codex": "workspace:^",
|
|
"@deepseek-ai/dsh-invariants": "workspace:^",
|
|
"@deepseek-ai/dsh-jsonrpc": "workspace:^",
|
|
"@deepseek-ai/dsh-jsonrpc-agent": "workspace:^",
|
|
"@deepseek-ai/dsh-llm": "workspace:^",
|
|
"@deepseek-ai/dsh-llm-deepseek": "workspace:^",
|
|
"@deepseek-ai/dsh-llm-pi-ai": "workspace:^",
|
|
"@deepseek-ai/dsh-permission": "workspace:^",
|
|
"@deepseek-ai/dsh-repeat-tool-guard": "workspace:^",
|
|
"@deepseek-ai/dsh-sandbox": "workspace:^",
|
|
"@deepseek-ai/dsh-sandbox-policy": "workspace:^",
|
|
"@deepseek-ai/dsh-scope": "workspace:^",
|
|
"@deepseek-ai/dsh-session": "workspace:^",
|
|
"@deepseek-ai/dsh-session-persistence": "workspace:^",
|
|
"@deepseek-ai/dsh-session-persistence-jsonl": "workspace:^",
|
|
"@deepseek-ai/dsh-session-persistence-sqlite": "workspace:^",
|
|
"@deepseek-ai/dsh-skill": "workspace:^",
|
|
"@deepseek-ai/dsh-skill-local": "workspace:^",
|
|
"@deepseek-ai/dsh-subagent": "workspace:^",
|
|
"@deepseek-ai/dsh-subagent-acp": "workspace:^",
|
|
"@deepseek-ai/dsh-subagent-fork": "workspace:^",
|
|
"@deepseek-ai/dsh-subagent-inprocess": "workspace:^",
|
|
"@deepseek-ai/dsh-subagent-spawn": "workspace:^",
|
|
"@deepseek-ai/dsh-subagent-subprocess": "workspace:^",
|
|
"@deepseek-ai/dsh-system-prompt": "workspace:^",
|
|
"@deepseek-ai/dsh-timeout": "workspace:^",
|
|
"@deepseek-ai/dsh-timeout-policy": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-ask-user": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-bash": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-cordis": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-fs": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-skill": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-subagent": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-todo": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-web": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-workflow": "workspace:^",
|
|
"@deepseek-ai/dsh-tools": "workspace:^",
|
|
"@deepseek-ai/dsh-user-approval": "workspace:^",
|
|
"@deepseek-ai/dsh-user-interaction": "workspace:^",
|
|
"@deepseek-ai/dsh-web": "workspace:^",
|
|
"@deepseek-ai/dsh-web-fetch-local": "workspace:^",
|
|
"@deepseek-ai/dsh-web-search-deepseek": "workspace:^",
|
|
"@deepseek-ai/dsh-web-search-exa": "workspace:^",
|
|
"@deepseek-ai/dsh-web-search-perplexity": "workspace:^",
|
|
"@deepseek-ai/dsh-workflow": "workspace:^",
|
|
"@deepseek-ai/dsh-workflow-workerthread": "workspace:^",
|
|
"cordis": "workspace:^"
|
|
}
|
|
}
|