@flyingrobots/graft 0.5.0 → 0.6.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/ARCHITECTURE.md +130 -377
- package/CHANGELOG.md +94 -13
- package/README.md +107 -269
- package/bin/graft.js +5 -3
- package/dist/adapters/canonical-json.d.ts +6 -0
- package/dist/adapters/canonical-json.d.ts.map +1 -0
- package/dist/adapters/canonical-json.js +52 -0
- package/dist/adapters/canonical-json.js.map +1 -0
- package/dist/adapters/node-fs.d.ts +3 -0
- package/dist/adapters/node-fs.d.ts.map +1 -0
- package/dist/adapters/node-fs.js +33 -0
- package/dist/adapters/node-fs.js.map +1 -0
- package/dist/adapters/node-git.d.ts +3 -0
- package/dist/adapters/node-git.d.ts.map +1 -0
- package/dist/adapters/node-git.js +44 -0
- package/dist/adapters/node-git.js.map +1 -0
- package/dist/adapters/node-process-runner.d.ts +3 -0
- package/dist/adapters/node-process-runner.d.ts.map +1 -0
- package/dist/adapters/node-process-runner.js +23 -0
- package/dist/adapters/node-process-runner.js.map +1 -0
- package/dist/adapters/repo-paths.d.ts +3 -0
- package/dist/adapters/repo-paths.d.ts.map +1 -0
- package/dist/adapters/repo-paths.js +22 -0
- package/dist/adapters/repo-paths.js.map +1 -0
- package/dist/adapters/rotating-ndjson-log.d.ts +18 -0
- package/dist/adapters/rotating-ndjson-log.d.ts.map +1 -0
- package/dist/adapters/rotating-ndjson-log.js +48 -0
- package/dist/adapters/rotating-ndjson-log.js.map +1 -0
- package/dist/api/index.d.ts +27 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +25 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/repo-local-graft.d.ts +7 -0
- package/dist/api/repo-local-graft.d.ts.map +1 -0
- package/dist/api/repo-local-graft.js +12 -0
- package/dist/api/repo-local-graft.js.map +1 -0
- package/dist/api/repo-workspace.d.ts +15 -0
- package/dist/api/repo-workspace.d.ts.map +1 -0
- package/dist/api/repo-workspace.js +23 -0
- package/dist/api/repo-workspace.js.map +1 -0
- package/dist/api/tool-bridge.d.ts +7 -0
- package/dist/api/tool-bridge.d.ts.map +1 -0
- package/dist/api/tool-bridge.js +14 -0
- package/dist/api/tool-bridge.js.map +1 -0
- package/dist/cli/activity-render.d.ts +2 -0
- package/dist/cli/activity-render.d.ts.map +1 -0
- package/dist/cli/activity-render.js +90 -0
- package/dist/cli/activity-render.js.map +1 -0
- package/dist/cli/cli-error.d.ts +10 -0
- package/dist/cli/cli-error.d.ts.map +1 -0
- package/dist/cli/cli-error.js +130 -0
- package/dist/cli/cli-error.js.map +1 -0
- package/dist/cli/command-parser.d.ts +17 -0
- package/dist/cli/command-parser.d.ts.map +1 -0
- package/dist/cli/command-parser.js +255 -0
- package/dist/cli/command-parser.js.map +1 -0
- package/dist/cli/entrypoint.d.ts +7 -0
- package/dist/cli/entrypoint.d.ts.map +1 -0
- package/dist/cli/entrypoint.js +8 -0
- package/dist/cli/entrypoint.js.map +1 -0
- package/dist/cli/index-cmd.d.ts +12 -0
- package/dist/cli/index-cmd.d.ts.map +1 -0
- package/dist/cli/index-cmd.js +73 -0
- package/dist/cli/index-cmd.js.map +1 -0
- package/dist/cli/index-model.d.ts +33 -0
- package/dist/cli/index-model.d.ts.map +1 -0
- package/dist/cli/index-model.js +55 -0
- package/dist/cli/index-model.js.map +1 -0
- package/dist/cli/init-bootstrap.d.ts +6 -0
- package/dist/cli/init-bootstrap.d.ts.map +1 -0
- package/dist/cli/init-bootstrap.js +27 -0
- package/dist/cli/init-bootstrap.js.map +1 -0
- package/dist/cli/init-client-config.d.ts +13 -0
- package/dist/cli/init-client-config.d.ts.map +1 -0
- package/dist/cli/init-client-config.js +215 -0
- package/dist/cli/init-client-config.js.map +1 -0
- package/dist/cli/init-model.d.ts +80 -0
- package/dist/cli/init-model.d.ts.map +1 -0
- package/dist/cli/init-model.js +202 -0
- package/dist/cli/init-model.js.map +1 -0
- package/dist/cli/init-render.d.ts +8 -0
- package/dist/cli/init-render.d.ts.map +1 -0
- package/dist/cli/init-render.js +43 -0
- package/dist/cli/init-render.js.map +1 -0
- package/dist/cli/init-target-hooks.d.ts +3 -0
- package/dist/cli/init-target-hooks.d.ts.map +1 -0
- package/dist/cli/init-target-hooks.js +75 -0
- package/dist/cli/init-target-hooks.js.map +1 -0
- package/dist/cli/init.d.ts +12 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +96 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/json-document.d.ts +35 -0
- package/dist/cli/json-document.d.ts.map +1 -0
- package/dist/cli/json-document.js +107 -0
- package/dist/cli/json-document.js.map +1 -0
- package/dist/cli/local-history-dag-model.d.ts +43 -0
- package/dist/cli/local-history-dag-model.d.ts.map +1 -0
- package/dist/cli/local-history-dag-model.js +344 -0
- package/dist/cli/local-history-dag-model.js.map +1 -0
- package/dist/cli/local-history-dag-render.d.ts +3 -0
- package/dist/cli/local-history-dag-render.d.ts.map +1 -0
- package/dist/cli/local-history-dag-render.js +126 -0
- package/dist/cli/local-history-dag-render.js.map +1 -0
- package/dist/cli/local-history-dag.d.ts +13 -0
- package/dist/cli/local-history-dag.d.ts.map +1 -0
- package/dist/cli/local-history-dag.js +60 -0
- package/dist/cli/local-history-dag.js.map +1 -0
- package/dist/cli/main.d.ts +15 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +126 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/migrate-local-history.d.ts +12 -0
- package/dist/cli/migrate-local-history.d.ts.map +1 -0
- package/dist/cli/migrate-local-history.js +82 -0
- package/dist/cli/migrate-local-history.js.map +1 -0
- package/dist/cli/peer-command.d.ts +9 -0
- package/dist/cli/peer-command.d.ts.map +1 -0
- package/dist/cli/peer-command.js +38 -0
- package/dist/cli/peer-command.js.map +1 -0
- package/dist/contracts/capabilities.d.ts +44 -0
- package/dist/contracts/capabilities.d.ts.map +1 -0
- package/dist/contracts/capabilities.js +382 -0
- package/dist/contracts/capabilities.js.map +1 -0
- package/dist/contracts/causal-ontology.d.ts +1937 -0
- package/dist/contracts/causal-ontology.d.ts.map +1 -0
- package/dist/contracts/causal-ontology.js +506 -0
- package/dist/contracts/causal-ontology.js.map +1 -0
- package/dist/contracts/causal-surface-next-action.d.ts +17 -0
- package/dist/contracts/causal-surface-next-action.d.ts.map +1 -0
- package/dist/contracts/causal-surface-next-action.js +16 -0
- package/dist/contracts/causal-surface-next-action.js.map +1 -0
- package/dist/contracts/json-object.d.ts +7 -0
- package/dist/contracts/json-object.d.ts.map +1 -0
- package/dist/contracts/json-object.js +24 -0
- package/dist/contracts/json-object.js.map +1 -0
- package/dist/contracts/mcp-runtime.d.ts +4 -0
- package/dist/contracts/mcp-runtime.d.ts.map +1 -0
- package/dist/contracts/mcp-runtime.js +11 -0
- package/dist/contracts/mcp-runtime.js.map +1 -0
- package/dist/contracts/output-schema-cli.d.ts +2716 -0
- package/dist/contracts/output-schema-cli.d.ts.map +1 -0
- package/dist/contracts/output-schema-cli.js +68 -0
- package/dist/contracts/output-schema-cli.js.map +1 -0
- package/dist/contracts/output-schema-fragments.d.ts +10819 -0
- package/dist/contracts/output-schema-fragments.d.ts.map +1 -0
- package/dist/contracts/output-schema-fragments.js +753 -0
- package/dist/contracts/output-schema-fragments.js.map +1 -0
- package/dist/contracts/output-schema-mcp.d.ts +5926 -0
- package/dist/contracts/output-schema-mcp.d.ts.map +1 -0
- package/dist/contracts/output-schema-mcp.js +231 -0
- package/dist/contracts/output-schema-mcp.js.map +1 -0
- package/dist/contracts/output-schema-meta.d.ts +30 -0
- package/dist/contracts/output-schema-meta.d.ts.map +1 -0
- package/dist/contracts/output-schema-meta.js +51 -0
- package/dist/contracts/output-schema-meta.js.map +1 -0
- package/dist/contracts/output-schemas.d.ts +1072 -0
- package/dist/contracts/output-schemas.d.ts.map +1 -0
- package/dist/contracts/output-schemas.js +1089 -0
- package/dist/contracts/output-schemas.js.map +1 -0
- package/dist/git/diff.d.ts +32 -0
- package/dist/git/diff.d.ts.map +1 -0
- package/dist/git/diff.js +82 -0
- package/dist/git/diff.js.map +1 -0
- package/dist/git/target-git-hook-bootstrap.d.ts +7 -0
- package/dist/git/target-git-hook-bootstrap.d.ts.map +1 -0
- package/dist/git/target-git-hook-bootstrap.js +40 -0
- package/dist/git/target-git-hook-bootstrap.js.map +1 -0
- package/dist/guards/stream-boundary.d.ts +41 -0
- package/dist/guards/stream-boundary.d.ts.map +1 -0
- package/dist/guards/stream-boundary.js +97 -0
- package/dist/guards/stream-boundary.js.map +1 -0
- package/dist/hooks/posttooluse-read.d.ts +4 -0
- package/dist/hooks/posttooluse-read.d.ts.map +1 -0
- package/dist/hooks/posttooluse-read.js +41 -0
- package/dist/hooks/posttooluse-read.js.map +1 -0
- package/dist/hooks/pretooluse-read.d.ts +4 -0
- package/dist/hooks/pretooluse-read.d.ts.map +1 -0
- package/dist/hooks/pretooluse-read.js +41 -0
- package/dist/hooks/pretooluse-read.js.map +1 -0
- package/dist/hooks/read-governor.d.ts +24 -0
- package/dist/hooks/read-governor.d.ts.map +1 -0
- package/dist/hooks/read-governor.js +76 -0
- package/dist/hooks/read-governor.js.map +1 -0
- package/dist/hooks/read-messages.d.ts +6 -0
- package/dist/hooks/read-messages.d.ts.map +1 -0
- package/dist/hooks/read-messages.js +45 -0
- package/dist/hooks/read-messages.js.map +1 -0
- package/dist/hooks/shared.d.ts +52 -0
- package/dist/hooks/shared.d.ts.map +1 -0
- package/dist/hooks/shared.js +137 -0
- package/dist/hooks/shared.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/burden.d.ts +21 -0
- package/dist/mcp/burden.d.ts.map +1 -0
- package/dist/mcp/burden.js +96 -0
- package/dist/mcp/burden.js.map +1 -0
- package/dist/mcp/cache.d.ts +2 -0
- package/dist/mcp/cache.d.ts.map +1 -0
- package/dist/mcp/cache.js +2 -0
- package/dist/mcp/cache.js.map +1 -0
- package/dist/mcp/cached-file.d.ts +2 -0
- package/dist/mcp/cached-file.d.ts.map +1 -0
- package/dist/mcp/cached-file.js +2 -0
- package/dist/mcp/cached-file.js.map +1 -0
- package/dist/mcp/context.d.ts +84 -0
- package/dist/mcp/context.d.ts.map +1 -0
- package/dist/mcp/context.js +79 -0
- package/dist/mcp/context.js.map +1 -0
- package/dist/mcp/control-plane/authz-storage.d.ts +35 -0
- package/dist/mcp/control-plane/authz-storage.d.ts.map +1 -0
- package/dist/mcp/control-plane/authz-storage.js +85 -0
- package/dist/mcp/control-plane/authz-storage.js.map +1 -0
- package/dist/mcp/control-plane/session-registry.d.ts +12 -0
- package/dist/mcp/control-plane/session-registry.d.ts.map +1 -0
- package/dist/mcp/control-plane/session-registry.js +88 -0
- package/dist/mcp/control-plane/session-registry.js.map +1 -0
- package/dist/mcp/control-plane/status-projection.d.ts +8 -0
- package/dist/mcp/control-plane/status-projection.d.ts.map +1 -0
- package/dist/mcp/control-plane/status-projection.js +49 -0
- package/dist/mcp/control-plane/status-projection.js.map +1 -0
- package/dist/mcp/control-plane/types.d.ts +107 -0
- package/dist/mcp/control-plane/types.d.ts.map +1 -0
- package/dist/mcp/control-plane/types.js +2 -0
- package/dist/mcp/control-plane/types.js.map +1 -0
- package/dist/mcp/daemon-bootstrap.d.ts +9 -0
- package/dist/mcp/daemon-bootstrap.d.ts.map +1 -0
- package/dist/mcp/daemon-bootstrap.js +96 -0
- package/dist/mcp/daemon-bootstrap.js.map +1 -0
- package/dist/mcp/daemon-control-plane.d.ts +37 -0
- package/dist/mcp/daemon-control-plane.d.ts.map +1 -0
- package/dist/mcp/daemon-control-plane.js +200 -0
- package/dist/mcp/daemon-control-plane.js.map +1 -0
- package/dist/mcp/daemon-job-scheduler.d.ts +60 -0
- package/dist/mcp/daemon-job-scheduler.d.ts.map +1 -0
- package/dist/mcp/daemon-job-scheduler.js +203 -0
- package/dist/mcp/daemon-job-scheduler.js.map +1 -0
- package/dist/mcp/daemon-repos.d.ts +9 -0
- package/dist/mcp/daemon-repos.d.ts.map +1 -0
- package/dist/mcp/daemon-repos.js +73 -0
- package/dist/mcp/daemon-repos.js.map +1 -0
- package/dist/mcp/daemon-server.d.ts +23 -0
- package/dist/mcp/daemon-server.d.ts.map +1 -0
- package/dist/mcp/daemon-server.js +128 -0
- package/dist/mcp/daemon-server.js.map +1 -0
- package/dist/mcp/daemon-session-host.d.ts +31 -0
- package/dist/mcp/daemon-session-host.d.ts.map +1 -0
- package/dist/mcp/daemon-session-host.js +173 -0
- package/dist/mcp/daemon-session-host.js.map +1 -0
- package/dist/mcp/daemon-stdio-bridge.d.ts +17 -0
- package/dist/mcp/daemon-stdio-bridge.d.ts.map +1 -0
- package/dist/mcp/daemon-stdio-bridge.js +207 -0
- package/dist/mcp/daemon-stdio-bridge.js.map +1 -0
- package/dist/mcp/daemon-worker-child-pool.d.ts +22 -0
- package/dist/mcp/daemon-worker-child-pool.d.ts.map +1 -0
- package/dist/mcp/daemon-worker-child-pool.js +193 -0
- package/dist/mcp/daemon-worker-child-pool.js.map +1 -0
- package/dist/mcp/daemon-worker-inline-pool.d.ts +12 -0
- package/dist/mcp/daemon-worker-inline-pool.d.ts.map +1 -0
- package/dist/mcp/daemon-worker-inline-pool.js +43 -0
- package/dist/mcp/daemon-worker-inline-pool.js.map +1 -0
- package/dist/mcp/daemon-worker-pool.d.ts +4 -0
- package/dist/mcp/daemon-worker-pool.d.ts.map +1 -0
- package/dist/mcp/daemon-worker-pool.js +3 -0
- package/dist/mcp/daemon-worker-pool.js.map +1 -0
- package/dist/mcp/daemon-worker-process.d.ts +2 -0
- package/dist/mcp/daemon-worker-process.d.ts.map +1 -0
- package/dist/mcp/daemon-worker-process.js +26 -0
- package/dist/mcp/daemon-worker-process.js.map +1 -0
- package/dist/mcp/daemon-worker-types.d.ts +56 -0
- package/dist/mcp/daemon-worker-types.d.ts.map +1 -0
- package/dist/mcp/daemon-worker-types.js +2 -0
- package/dist/mcp/daemon-worker-types.js.map +1 -0
- package/dist/mcp/metrics.d.ts +57 -0
- package/dist/mcp/metrics.d.ts.map +1 -0
- package/dist/mcp/metrics.js +133 -0
- package/dist/mcp/metrics.js.map +1 -0
- package/dist/mcp/monitor-health.d.ts +29 -0
- package/dist/mcp/monitor-health.d.ts.map +1 -0
- package/dist/mcp/monitor-health.js +70 -0
- package/dist/mcp/monitor-health.js.map +1 -0
- package/dist/mcp/monitor-persistence.d.ts +17 -0
- package/dist/mcp/monitor-persistence.d.ts.map +1 -0
- package/dist/mcp/monitor-persistence.js +38 -0
- package/dist/mcp/monitor-persistence.js.map +1 -0
- package/dist/mcp/monitor-tick-job.d.ts +22 -0
- package/dist/mcp/monitor-tick-job.d.ts.map +1 -0
- package/dist/mcp/monitor-tick-job.js +65 -0
- package/dist/mcp/monitor-tick-job.js.map +1 -0
- package/dist/mcp/monitor-types.d.ts +123 -0
- package/dist/mcp/monitor-types.d.ts.map +1 -0
- package/dist/mcp/monitor-types.js +29 -0
- package/dist/mcp/monitor-types.js.map +1 -0
- package/dist/mcp/persisted-local-history-graph.d.ts +40 -0
- package/dist/mcp/persisted-local-history-graph.d.ts.map +1 -0
- package/dist/mcp/persisted-local-history-graph.js +388 -0
- package/dist/mcp/persisted-local-history-graph.js.map +1 -0
- package/dist/mcp/persisted-local-history-policy.d.ts +43 -0
- package/dist/mcp/persisted-local-history-policy.d.ts.map +1 -0
- package/dist/mcp/persisted-local-history-policy.js +372 -0
- package/dist/mcp/persisted-local-history-policy.js.map +1 -0
- package/dist/mcp/persisted-local-history-views.d.ts +24 -0
- package/dist/mcp/persisted-local-history-views.d.ts.map +1 -0
- package/dist/mcp/persisted-local-history-views.js +201 -0
- package/dist/mcp/persisted-local-history-views.js.map +1 -0
- package/dist/mcp/persisted-local-history.d.ts +795 -0
- package/dist/mcp/persisted-local-history.d.ts.map +1 -0
- package/dist/mcp/persisted-local-history.js +1076 -0
- package/dist/mcp/persisted-local-history.js.map +1 -0
- package/dist/mcp/persistent-monitor-runtime.d.ts +33 -0
- package/dist/mcp/persistent-monitor-runtime.d.ts.map +1 -0
- package/dist/mcp/persistent-monitor-runtime.js +356 -0
- package/dist/mcp/persistent-monitor-runtime.js.map +1 -0
- package/dist/mcp/policy.d.ts +29 -0
- package/dist/mcp/policy.d.ts.map +1 -0
- package/dist/mcp/policy.js +40 -0
- package/dist/mcp/policy.js.map +1 -0
- package/dist/mcp/receipt.d.ts +64 -0
- package/dist/mcp/receipt.d.ts.map +1 -0
- package/dist/mcp/receipt.js +99 -0
- package/dist/mcp/receipt.js.map +1 -0
- package/dist/mcp/repo-concurrency.d.ts +62 -0
- package/dist/mcp/repo-concurrency.d.ts.map +1 -0
- package/dist/mcp/repo-concurrency.js +195 -0
- package/dist/mcp/repo-concurrency.js.map +1 -0
- package/dist/mcp/repo-overview/filter.d.ts +6 -0
- package/dist/mcp/repo-overview/filter.d.ts.map +1 -0
- package/dist/mcp/repo-overview/filter.js +32 -0
- package/dist/mcp/repo-overview/filter.js.map +1 -0
- package/dist/mcp/repo-overview/types.d.ts +41 -0
- package/dist/mcp/repo-overview/types.d.ts.map +1 -0
- package/dist/mcp/repo-overview/types.js +2 -0
- package/dist/mcp/repo-overview/types.js.map +1 -0
- package/dist/mcp/repo-overview/view-projection.d.ts +8 -0
- package/dist/mcp/repo-overview/view-projection.d.ts.map +1 -0
- package/dist/mcp/repo-overview/view-projection.js +73 -0
- package/dist/mcp/repo-overview/view-projection.js.map +1 -0
- package/dist/mcp/repo-state-git.d.ts +8 -0
- package/dist/mcp/repo-state-git.d.ts.map +1 -0
- package/dist/mcp/repo-state-git.js +203 -0
- package/dist/mcp/repo-state-git.js.map +1 -0
- package/dist/mcp/repo-state-observation.d.ts +4 -0
- package/dist/mcp/repo-state-observation.d.ts.map +1 -0
- package/dist/mcp/repo-state-observation.js +171 -0
- package/dist/mcp/repo-state-observation.js.map +1 -0
- package/dist/mcp/repo-state-transition.d.ts +4 -0
- package/dist/mcp/repo-state-transition.d.ts.map +1 -0
- package/dist/mcp/repo-state-transition.js +124 -0
- package/dist/mcp/repo-state-transition.js.map +1 -0
- package/dist/mcp/repo-state-types.d.ts +88 -0
- package/dist/mcp/repo-state-types.d.ts.map +1 -0
- package/dist/mcp/repo-state-types.js +2 -0
- package/dist/mcp/repo-state-types.js.map +1 -0
- package/dist/mcp/repo-state.d.ts +37 -0
- package/dist/mcp/repo-state.d.ts.map +1 -0
- package/dist/mcp/repo-state.js +101 -0
- package/dist/mcp/repo-state.js.map +1 -0
- package/dist/mcp/repo-tool-job.d.ts +55 -0
- package/dist/mcp/repo-tool-job.d.ts.map +1 -0
- package/dist/mcp/repo-tool-job.js +50 -0
- package/dist/mcp/repo-tool-job.js.map +1 -0
- package/dist/mcp/repo-tool-worker-context.d.ts +8 -0
- package/dist/mcp/repo-tool-worker-context.d.ts.map +1 -0
- package/dist/mcp/repo-tool-worker-context.js +199 -0
- package/dist/mcp/repo-tool-worker-context.js.map +1 -0
- package/dist/mcp/repo-workspace.d.ts +4 -0
- package/dist/mcp/repo-workspace.d.ts.map +1 -0
- package/dist/mcp/repo-workspace.js +15 -0
- package/dist/mcp/repo-workspace.js.map +1 -0
- package/dist/mcp/run-capture-config.d.ts +11 -0
- package/dist/mcp/run-capture-config.d.ts.map +1 -0
- package/dist/mcp/run-capture-config.js +23 -0
- package/dist/mcp/run-capture-config.js.map +1 -0
- package/dist/mcp/runtime-causal-context.d.ts +22 -0
- package/dist/mcp/runtime-causal-context.d.ts.map +1 -0
- package/dist/mcp/runtime-causal-context.js +28 -0
- package/dist/mcp/runtime-causal-context.js.map +1 -0
- package/dist/mcp/runtime-observability.d.ts +102 -0
- package/dist/mcp/runtime-observability.d.ts.map +1 -0
- package/dist/mcp/runtime-observability.js +95 -0
- package/dist/mcp/runtime-observability.js.map +1 -0
- package/dist/mcp/runtime-staged-target.d.ts +28 -0
- package/dist/mcp/runtime-staged-target.d.ts.map +1 -0
- package/dist/mcp/runtime-staged-target.js +101 -0
- package/dist/mcp/runtime-staged-target.js.map +1 -0
- package/dist/mcp/runtime-workspace-overlay.d.ts +45 -0
- package/dist/mcp/runtime-workspace-overlay.d.ts.map +1 -0
- package/dist/mcp/runtime-workspace-overlay.js +153 -0
- package/dist/mcp/runtime-workspace-overlay.js.map +1 -0
- package/dist/mcp/secret-scrub.d.ts +17 -0
- package/dist/mcp/secret-scrub.d.ts.map +1 -0
- package/dist/mcp/secret-scrub.js +82 -0
- package/dist/mcp/secret-scrub.js.map +1 -0
- package/dist/mcp/semantic-transition-guidance.d.ts +6 -0
- package/dist/mcp/semantic-transition-guidance.d.ts.map +1 -0
- package/dist/mcp/semantic-transition-guidance.js +47 -0
- package/dist/mcp/semantic-transition-guidance.js.map +1 -0
- package/dist/mcp/semantic-transition-summary.d.ts +23 -0
- package/dist/mcp/semantic-transition-summary.d.ts.map +1 -0
- package/dist/mcp/semantic-transition-summary.js +82 -0
- package/dist/mcp/semantic-transition-summary.js.map +1 -0
- package/dist/mcp/server-context.d.ts +46 -0
- package/dist/mcp/server-context.d.ts.map +1 -0
- package/dist/mcp/server-context.js +163 -0
- package/dist/mcp/server-context.js.map +1 -0
- package/dist/mcp/server-invocation.d.ts +73 -0
- package/dist/mcp/server-invocation.d.ts.map +1 -0
- package/dist/mcp/server-invocation.js +265 -0
- package/dist/mcp/server-invocation.js.map +1 -0
- package/dist/mcp/server-tool-access.d.ts +18 -0
- package/dist/mcp/server-tool-access.d.ts.map +1 -0
- package/dist/mcp/server-tool-access.js +123 -0
- package/dist/mcp/server-tool-access.js.map +1 -0
- package/dist/mcp/server.d.ts +41 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +215 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/stdio-server.d.ts +6 -0
- package/dist/mcp/stdio-server.d.ts.map +1 -0
- package/dist/mcp/stdio-server.js +20 -0
- package/dist/mcp/stdio-server.js.map +1 -0
- package/dist/mcp/stdio.d.ts +2 -0
- package/dist/mcp/stdio.d.ts.map +1 -0
- package/dist/mcp/stdio.js +3 -0
- package/dist/mcp/stdio.js.map +1 -0
- package/dist/mcp/tool-registry.d.ts +5 -0
- package/dist/mcp/tool-registry.d.ts.map +1 -0
- package/dist/mcp/tool-registry.js +76 -0
- package/dist/mcp/tool-registry.js.map +1 -0
- package/dist/mcp/tools/activity-view.d.ts +3 -0
- package/dist/mcp/tools/activity-view.d.ts.map +1 -0
- package/dist/mcp/tools/activity-view.js +259 -0
- package/dist/mcp/tools/activity-view.js.map +1 -0
- package/dist/mcp/tools/budget.d.ts +3 -0
- package/dist/mcp/tools/budget.d.ts.map +1 -0
- package/dist/mcp/tools/budget.js +20 -0
- package/dist/mcp/tools/budget.js.map +1 -0
- package/dist/mcp/tools/causal-attach.d.ts +3 -0
- package/dist/mcp/tools/causal-attach.d.ts.map +1 -0
- package/dist/mcp/tools/causal-attach.js +53 -0
- package/dist/mcp/tools/causal-attach.js.map +1 -0
- package/dist/mcp/tools/causal-status.d.ts +3 -0
- package/dist/mcp/tools/causal-status.d.ts.map +1 -0
- package/dist/mcp/tools/causal-status.js +46 -0
- package/dist/mcp/tools/causal-status.js.map +1 -0
- package/dist/mcp/tools/changed-since.d.ts +3 -0
- package/dist/mcp/tools/changed-since.d.ts.map +1 -0
- package/dist/mcp/tools/changed-since.js +57 -0
- package/dist/mcp/tools/changed-since.js.map +1 -0
- package/dist/mcp/tools/code-find.d.ts +104 -0
- package/dist/mcp/tools/code-find.d.ts.map +1 -0
- package/dist/mcp/tools/code-find.js +125 -0
- package/dist/mcp/tools/code-find.js.map +1 -0
- package/dist/mcp/tools/code-refs.d.ts +3 -0
- package/dist/mcp/tools/code-refs.d.ts.map +1 -0
- package/dist/mcp/tools/code-refs.js +370 -0
- package/dist/mcp/tools/code-refs.js.map +1 -0
- package/dist/mcp/tools/code-show.d.ts +104 -0
- package/dist/mcp/tools/code-show.d.ts.map +1 -0
- package/dist/mcp/tools/code-show.js +202 -0
- package/dist/mcp/tools/code-show.js.map +1 -0
- package/dist/mcp/tools/daemon-monitors.d.ts +3 -0
- package/dist/mcp/tools/daemon-monitors.d.ts.map +1 -0
- package/dist/mcp/tools/daemon-monitors.js +12 -0
- package/dist/mcp/tools/daemon-monitors.js.map +1 -0
- package/dist/mcp/tools/daemon-repos.d.ts +3 -0
- package/dist/mcp/tools/daemon-repos.d.ts.map +1 -0
- package/dist/mcp/tools/daemon-repos.js +20 -0
- package/dist/mcp/tools/daemon-repos.js.map +1 -0
- package/dist/mcp/tools/daemon-sessions.d.ts +3 -0
- package/dist/mcp/tools/daemon-sessions.d.ts.map +1 -0
- package/dist/mcp/tools/daemon-sessions.js +12 -0
- package/dist/mcp/tools/daemon-sessions.js.map +1 -0
- package/dist/mcp/tools/daemon-status.d.ts +3 -0
- package/dist/mcp/tools/daemon-status.d.ts.map +1 -0
- package/dist/mcp/tools/daemon-status.js +10 -0
- package/dist/mcp/tools/daemon-status.js.map +1 -0
- package/dist/mcp/tools/diagnostic-models.d.ts +85 -0
- package/dist/mcp/tools/diagnostic-models.d.ts.map +1 -0
- package/dist/mcp/tools/diagnostic-models.js +5 -0
- package/dist/mcp/tools/diagnostic-models.js.map +1 -0
- package/dist/mcp/tools/doctor.d.ts +3 -0
- package/dist/mcp/tools/doctor.d.ts.map +1 -0
- package/dist/mcp/tools/doctor.js +54 -0
- package/dist/mcp/tools/doctor.js.map +1 -0
- package/dist/mcp/tools/explain.d.ts +3 -0
- package/dist/mcp/tools/explain.d.ts.map +1 -0
- package/dist/mcp/tools/explain.js +81 -0
- package/dist/mcp/tools/explain.js.map +1 -0
- package/dist/mcp/tools/file-outline.d.ts +3 -0
- package/dist/mcp/tools/file-outline.d.ts.map +1 -0
- package/dist/mcp/tools/file-outline.js +54 -0
- package/dist/mcp/tools/file-outline.js.map +1 -0
- package/dist/mcp/tools/git-files.d.ts +24 -0
- package/dist/mcp/tools/git-files.d.ts.map +1 -0
- package/dist/mcp/tools/git-files.js +57 -0
- package/dist/mcp/tools/git-files.js.map +1 -0
- package/dist/mcp/tools/graft-diff.d.ts +3 -0
- package/dist/mcp/tools/graft-diff.d.ts.map +1 -0
- package/dist/mcp/tools/graft-diff.js +33 -0
- package/dist/mcp/tools/graft-diff.js.map +1 -0
- package/dist/mcp/tools/map-collector.d.ts +85 -0
- package/dist/mcp/tools/map-collector.d.ts.map +1 -0
- package/dist/mcp/tools/map-collector.js +249 -0
- package/dist/mcp/tools/map-collector.js.map +1 -0
- package/dist/mcp/tools/map.d.ts +7 -0
- package/dist/mcp/tools/map.d.ts.map +1 -0
- package/dist/mcp/tools/map.js +154 -0
- package/dist/mcp/tools/map.js.map +1 -0
- package/dist/mcp/tools/monitor-pause.d.ts +3 -0
- package/dist/mcp/tools/monitor-pause.d.ts.map +1 -0
- package/dist/mcp/tools/monitor-pause.js +16 -0
- package/dist/mcp/tools/monitor-pause.js.map +1 -0
- package/dist/mcp/tools/monitor-resume.d.ts +3 -0
- package/dist/mcp/tools/monitor-resume.d.ts.map +1 -0
- package/dist/mcp/tools/monitor-resume.js +16 -0
- package/dist/mcp/tools/monitor-resume.js.map +1 -0
- package/dist/mcp/tools/monitor-start.d.ts +3 -0
- package/dist/mcp/tools/monitor-start.d.ts.map +1 -0
- package/dist/mcp/tools/monitor-start.js +18 -0
- package/dist/mcp/tools/monitor-start.js.map +1 -0
- package/dist/mcp/tools/monitor-stop.d.ts +3 -0
- package/dist/mcp/tools/monitor-stop.d.ts.map +1 -0
- package/dist/mcp/tools/monitor-stop.js +16 -0
- package/dist/mcp/tools/monitor-stop.js.map +1 -0
- package/dist/mcp/tools/precision-live.d.ts +20 -0
- package/dist/mcp/tools/precision-live.d.ts.map +1 -0
- package/dist/mcp/tools/precision-live.js +105 -0
- package/dist/mcp/tools/precision-live.js.map +1 -0
- package/dist/mcp/tools/precision-match.d.ts +21 -0
- package/dist/mcp/tools/precision-match.d.ts.map +1 -0
- package/dist/mcp/tools/precision-match.js +46 -0
- package/dist/mcp/tools/precision-match.js.map +1 -0
- package/dist/mcp/tools/precision-paths.d.ts +7 -0
- package/dist/mcp/tools/precision-paths.d.ts.map +1 -0
- package/dist/mcp/tools/precision-paths.js +53 -0
- package/dist/mcp/tools/precision-paths.js.map +1 -0
- package/dist/mcp/tools/precision-query.d.ts +38 -0
- package/dist/mcp/tools/precision-query.d.ts.map +1 -0
- package/dist/mcp/tools/precision-query.js +116 -0
- package/dist/mcp/tools/precision-query.js.map +1 -0
- package/dist/mcp/tools/precision-show.d.ts +15 -0
- package/dist/mcp/tools/precision-show.d.ts.map +1 -0
- package/dist/mcp/tools/precision-show.js +46 -0
- package/dist/mcp/tools/precision-show.js.map +1 -0
- package/dist/mcp/tools/precision-visibility.d.ts +10 -0
- package/dist/mcp/tools/precision-visibility.d.ts.map +1 -0
- package/dist/mcp/tools/precision-visibility.js +24 -0
- package/dist/mcp/tools/precision-visibility.js.map +1 -0
- package/dist/mcp/tools/precision-warp.d.ts +6 -0
- package/dist/mcp/tools/precision-warp.d.ts.map +1 -0
- package/dist/mcp/tools/precision-warp.js +76 -0
- package/dist/mcp/tools/precision-warp.js.map +1 -0
- package/dist/mcp/tools/precision.d.ts +7 -0
- package/dist/mcp/tools/precision.d.ts.map +1 -0
- package/dist/mcp/tools/precision.js +6 -0
- package/dist/mcp/tools/precision.js.map +1 -0
- package/dist/mcp/tools/read-range.d.ts +3 -0
- package/dist/mcp/tools/read-range.d.ts.map +1 -0
- package/dist/mcp/tools/read-range.js +26 -0
- package/dist/mcp/tools/read-range.js.map +1 -0
- package/dist/mcp/tools/run-capture.d.ts +3 -0
- package/dist/mcp/tools/run-capture.d.ts.map +1 -0
- package/dist/mcp/tools/run-capture.js +125 -0
- package/dist/mcp/tools/run-capture.js.map +1 -0
- package/dist/mcp/tools/safe-read.d.ts +3 -0
- package/dist/mcp/tools/safe-read.d.ts.map +1 -0
- package/dist/mcp/tools/safe-read.js +133 -0
- package/dist/mcp/tools/safe-read.js.map +1 -0
- package/dist/mcp/tools/since.d.ts +3 -0
- package/dist/mcp/tools/since.d.ts.map +1 -0
- package/dist/mcp/tools/since.js +46 -0
- package/dist/mcp/tools/since.js.map +1 -0
- package/dist/mcp/tools/state.d.ts +4 -0
- package/dist/mcp/tools/state.d.ts.map +1 -0
- package/dist/mcp/tools/state.js +35 -0
- package/dist/mcp/tools/state.js.map +1 -0
- package/dist/mcp/tools/stats.d.ts +3 -0
- package/dist/mcp/tools/stats.d.ts.map +1 -0
- package/dist/mcp/tools/stats.js +22 -0
- package/dist/mcp/tools/stats.js.map +1 -0
- package/dist/mcp/tools/workspace-authorizations.d.ts +3 -0
- package/dist/mcp/tools/workspace-authorizations.d.ts.map +1 -0
- package/dist/mcp/tools/workspace-authorizations.js +12 -0
- package/dist/mcp/tools/workspace-authorizations.js.map +1 -0
- package/dist/mcp/tools/workspace-authorize.d.ts +3 -0
- package/dist/mcp/tools/workspace-authorize.d.ts.map +1 -0
- package/dist/mcp/tools/workspace-authorize.js +18 -0
- package/dist/mcp/tools/workspace-authorize.js.map +1 -0
- package/dist/mcp/tools/workspace-bind.d.ts +3 -0
- package/dist/mcp/tools/workspace-bind.d.ts.map +1 -0
- package/dist/mcp/tools/workspace-bind.js +23 -0
- package/dist/mcp/tools/workspace-bind.js.map +1 -0
- package/dist/mcp/tools/workspace-rebind.d.ts +3 -0
- package/dist/mcp/tools/workspace-rebind.d.ts.map +1 -0
- package/dist/mcp/tools/workspace-rebind.js +23 -0
- package/dist/mcp/tools/workspace-rebind.js.map +1 -0
- package/dist/mcp/tools/workspace-revoke.d.ts +3 -0
- package/dist/mcp/tools/workspace-revoke.d.ts.map +1 -0
- package/dist/mcp/tools/workspace-revoke.js +16 -0
- package/dist/mcp/tools/workspace-revoke.js.map +1 -0
- package/dist/mcp/tools/workspace-status.d.ts +3 -0
- package/dist/mcp/tools/workspace-status.d.ts.map +1 -0
- package/dist/mcp/tools/workspace-status.js +10 -0
- package/dist/mcp/tools/workspace-status.js.map +1 -0
- package/dist/mcp/warp-pool.d.ts +13 -0
- package/dist/mcp/warp-pool.d.ts.map +1 -0
- package/dist/mcp/warp-pool.js +30 -0
- package/dist/mcp/warp-pool.js.map +1 -0
- package/dist/mcp/workspace-read-observation-model.d.ts +34 -0
- package/dist/mcp/workspace-read-observation-model.d.ts.map +1 -0
- package/dist/mcp/workspace-read-observation-model.js +35 -0
- package/dist/mcp/workspace-read-observation-model.js.map +1 -0
- package/dist/mcp/workspace-read-observation.d.ts +19 -0
- package/dist/mcp/workspace-read-observation.d.ts.map +1 -0
- package/dist/mcp/workspace-read-observation.js +71 -0
- package/dist/mcp/workspace-read-observation.js.map +1 -0
- package/dist/mcp/workspace-router-capability.d.ts +14 -0
- package/dist/mcp/workspace-router-capability.d.ts.map +1 -0
- package/dist/mcp/workspace-router-capability.js +22 -0
- package/dist/mcp/workspace-router-capability.js.map +1 -0
- package/dist/mcp/workspace-router-history.d.ts +65 -0
- package/dist/mcp/workspace-router-history.d.ts.map +1 -0
- package/dist/mcp/workspace-router-history.js +142 -0
- package/dist/mcp/workspace-router-history.js.map +1 -0
- package/dist/mcp/workspace-router-model.d.ts +96 -0
- package/dist/mcp/workspace-router-model.d.ts.map +1 -0
- package/dist/mcp/workspace-router-model.js +31 -0
- package/dist/mcp/workspace-router-model.js.map +1 -0
- package/dist/mcp/workspace-router-resolution.d.ts +10 -0
- package/dist/mcp/workspace-router-resolution.d.ts.map +1 -0
- package/dist/mcp/workspace-router-resolution.js +56 -0
- package/dist/mcp/workspace-router-resolution.js.map +1 -0
- package/dist/mcp/workspace-router-runtime.d.ts +79 -0
- package/dist/mcp/workspace-router-runtime.d.ts.map +1 -0
- package/dist/mcp/workspace-router-runtime.js +126 -0
- package/dist/mcp/workspace-router-runtime.js.map +1 -0
- package/dist/mcp/workspace-router.d.ts +72 -0
- package/dist/mcp/workspace-router.d.ts.map +1 -0
- package/dist/mcp/workspace-router.js +494 -0
- package/dist/mcp/workspace-router.js.map +1 -0
- package/dist/metrics/logger.d.ts +14 -0
- package/dist/metrics/logger.d.ts.map +1 -0
- package/dist/metrics/logger.js +30 -0
- package/dist/metrics/logger.js.map +1 -0
- package/dist/metrics/types.d.ts +25 -0
- package/dist/metrics/types.d.ts.map +1 -0
- package/dist/metrics/types.js +28 -0
- package/dist/metrics/types.js.map +1 -0
- package/dist/operations/cached-file.d.ts +24 -0
- package/dist/operations/cached-file.d.ts.map +1 -0
- package/dist/operations/cached-file.js +37 -0
- package/dist/operations/cached-file.js.map +1 -0
- package/dist/operations/diff-identity.d.ts +32 -0
- package/dist/operations/diff-identity.d.ts.map +1 -0
- package/dist/operations/diff-identity.js +93 -0
- package/dist/operations/diff-identity.js.map +1 -0
- package/dist/operations/file-outline.d.ts +15 -0
- package/dist/operations/file-outline.d.ts.map +1 -0
- package/dist/operations/file-outline.js +32 -0
- package/dist/operations/file-outline.js.map +1 -0
- package/dist/operations/graft-diff.d.ts +43 -0
- package/dist/operations/graft-diff.d.ts.map +1 -0
- package/dist/operations/graft-diff.js +115 -0
- package/dist/operations/graft-diff.js.map +1 -0
- package/dist/operations/observation-cache.d.ts +64 -0
- package/dist/operations/observation-cache.d.ts.map +1 -0
- package/dist/operations/observation-cache.js +104 -0
- package/dist/operations/observation-cache.js.map +1 -0
- package/dist/operations/read-range.d.ts +14 -0
- package/dist/operations/read-range.d.ts.map +1 -0
- package/dist/operations/read-range.js +41 -0
- package/dist/operations/read-range.js.map +1 -0
- package/dist/operations/repo-workspace.d.ts +114 -0
- package/dist/operations/repo-workspace.d.ts.map +1 -0
- package/dist/operations/repo-workspace.js +228 -0
- package/dist/operations/repo-workspace.js.map +1 -0
- package/dist/operations/result-dto.d.ts +10 -0
- package/dist/operations/result-dto.d.ts.map +1 -0
- package/dist/operations/result-dto.js +21 -0
- package/dist/operations/result-dto.js.map +1 -0
- package/dist/operations/safe-read.d.ts +35 -0
- package/dist/operations/safe-read.d.ts.map +1 -0
- package/dist/operations/safe-read.js +75 -0
- package/dist/operations/safe-read.js.map +1 -0
- package/dist/operations/state.d.ts +25 -0
- package/dist/operations/state.d.ts.map +1 -0
- package/dist/operations/state.js +47 -0
- package/dist/operations/state.js.map +1 -0
- package/dist/operations/structured-buffer-compare.d.ts +5 -0
- package/dist/operations/structured-buffer-compare.d.ts.map +1 -0
- package/dist/operations/structured-buffer-compare.js +392 -0
- package/dist/operations/structured-buffer-compare.js.map +1 -0
- package/dist/operations/structured-buffer-model.d.ts +232 -0
- package/dist/operations/structured-buffer-model.d.ts.map +1 -0
- package/dist/operations/structured-buffer-model.js +175 -0
- package/dist/operations/structured-buffer-model.js.map +1 -0
- package/dist/operations/structured-buffer-query.d.ts +24 -0
- package/dist/operations/structured-buffer-query.d.ts.map +1 -0
- package/dist/operations/structured-buffer-query.js +690 -0
- package/dist/operations/structured-buffer-query.js.map +1 -0
- package/dist/operations/structured-buffer.d.ts +43 -0
- package/dist/operations/structured-buffer.d.ts.map +1 -0
- package/dist/operations/structured-buffer.js +96 -0
- package/dist/operations/structured-buffer.js.map +1 -0
- package/dist/parser/diff.d.ts +63 -0
- package/dist/parser/diff.d.ts.map +1 -0
- package/dist/parser/diff.js +259 -0
- package/dist/parser/diff.js.map +1 -0
- package/dist/parser/lang.d.ts +17 -0
- package/dist/parser/lang.d.ts.map +1 -0
- package/dist/parser/lang.js +51 -0
- package/dist/parser/lang.js.map +1 -0
- package/dist/parser/markdown.d.ts +3 -0
- package/dist/parser/markdown.d.ts.map +1 -0
- package/dist/parser/markdown.js +168 -0
- package/dist/parser/markdown.js.map +1 -0
- package/dist/parser/outline.d.ts +12 -0
- package/dist/parser/outline.d.ts.map +1 -0
- package/dist/parser/outline.js +251 -0
- package/dist/parser/outline.js.map +1 -0
- package/dist/parser/runtime.d.ts +13 -0
- package/dist/parser/runtime.d.ts.map +1 -0
- package/dist/parser/runtime.js +43 -0
- package/dist/parser/runtime.js.map +1 -0
- package/dist/parser/types.d.ts +41 -0
- package/dist/parser/types.d.ts.map +1 -0
- package/dist/parser/types.js +46 -0
- package/dist/parser/types.js.map +1 -0
- package/dist/policy/evaluate.d.ts +8 -0
- package/dist/policy/evaluate.d.ts.map +1 -0
- package/dist/policy/evaluate.js +153 -0
- package/dist/policy/evaluate.js.map +1 -0
- package/dist/policy/graftignore.d.ts +2 -0
- package/dist/policy/graftignore.d.ts.map +1 -0
- package/dist/policy/graftignore.js +7 -0
- package/dist/policy/graftignore.js.map +1 -0
- package/dist/policy/types.d.ts +104 -0
- package/dist/policy/types.d.ts.map +1 -0
- package/dist/policy/types.js +49 -0
- package/dist/policy/types.js.map +1 -0
- package/dist/ports/codec.d.ts +10 -0
- package/dist/ports/codec.d.ts.map +1 -0
- package/dist/ports/codec.js +5 -0
- package/dist/ports/codec.js.map +1 -0
- package/dist/ports/filesystem.d.ts +19 -0
- package/dist/ports/filesystem.d.ts.map +1 -0
- package/dist/ports/filesystem.js +5 -0
- package/dist/ports/filesystem.js.map +1 -0
- package/dist/ports/git.d.ts +11 -0
- package/dist/ports/git.d.ts.map +1 -0
- package/dist/ports/git.js +5 -0
- package/dist/ports/git.js.map +1 -0
- package/dist/ports/guards.d.ts +15 -0
- package/dist/ports/guards.d.ts.map +1 -0
- package/dist/ports/guards.js +43 -0
- package/dist/ports/guards.js.map +1 -0
- package/dist/ports/process-runner.d.ts +17 -0
- package/dist/ports/process-runner.d.ts.map +1 -0
- package/dist/ports/process-runner.js +5 -0
- package/dist/ports/process-runner.js.map +1 -0
- package/dist/ports/warp.d.ts +45 -0
- package/dist/ports/warp.d.ts.map +1 -0
- package/dist/ports/warp.js +5 -0
- package/dist/ports/warp.js.map +1 -0
- package/dist/release/security-gate.d.ts +24 -0
- package/dist/release/security-gate.d.ts.map +1 -0
- package/dist/release/security-gate.js +69 -0
- package/dist/release/security-gate.js.map +1 -0
- package/dist/session/tracker.d.ts +36 -0
- package/dist/session/tracker.d.ts.map +1 -0
- package/dist/session/tracker.js +113 -0
- package/dist/session/tracker.js.map +1 -0
- package/dist/session/types.d.ts +14 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +18 -0
- package/dist/session/types.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/dist/warp/identity-resolver.d.ts +14 -0
- package/dist/warp/identity-resolver.d.ts.map +1 -0
- package/dist/warp/identity-resolver.js +31 -0
- package/dist/warp/identity-resolver.js.map +1 -0
- package/dist/warp/indexer-git.d.ts +22 -0
- package/dist/warp/indexer-git.d.ts.map +1 -0
- package/dist/warp/indexer-git.js +148 -0
- package/dist/warp/indexer-git.js.map +1 -0
- package/dist/warp/indexer-graph.d.ts +17 -0
- package/dist/warp/indexer-graph.d.ts.map +1 -0
- package/dist/warp/indexer-graph.js +179 -0
- package/dist/warp/indexer-graph.js.map +1 -0
- package/dist/warp/indexer-model.d.ts +51 -0
- package/dist/warp/indexer-model.d.ts.map +1 -0
- package/dist/warp/indexer-model.js +21 -0
- package/dist/warp/indexer-model.js.map +1 -0
- package/dist/warp/indexer.d.ts +9 -0
- package/dist/warp/indexer.d.ts.map +1 -0
- package/dist/warp/indexer.js +112 -0
- package/dist/warp/indexer.js.map +1 -0
- package/dist/warp/observers.d.ts +54 -0
- package/dist/warp/observers.d.ts.map +1 -0
- package/dist/warp/observers.js +88 -0
- package/dist/warp/observers.js.map +1 -0
- package/dist/warp/open.d.ts +15 -0
- package/dist/warp/open.d.ts.map +1 -0
- package/dist/warp/open.js +67 -0
- package/dist/warp/open.js.map +1 -0
- package/dist/warp/symbol-identity.d.ts +11 -0
- package/dist/warp/symbol-identity.d.ts.map +1 -0
- package/dist/warp/symbol-identity.js +67 -0
- package/dist/warp/symbol-identity.js.map +1 -0
- package/dist/warp/writer-id.d.ts +5 -0
- package/dist/warp/writer-id.d.ts.map +1 -0
- package/dist/warp/writer-id.js +25 -0
- package/dist/warp/writer-id.js.map +1 -0
- package/docs/CLI.md +37 -15
- package/docs/MCP.md +44 -25
- package/package.json +19 -3
- package/src/adapters/repo-paths.ts +22 -0
- package/src/adapters/rotating-ndjson-log.ts +66 -0
- package/src/api/index.ts +107 -0
- package/src/api/repo-local-graft.ts +21 -0
- package/src/api/repo-workspace.ts +34 -0
- package/src/api/tool-bridge.ts +21 -0
- package/src/cli/activity-render.ts +112 -0
- package/src/cli/cli-error.ts +153 -0
- package/src/cli/command-parser.ts +302 -0
- package/src/cli/entrypoint.ts +18 -0
- package/src/cli/index-cmd.ts +31 -23
- package/src/cli/index-model.ts +76 -0
- package/src/cli/init-bootstrap.ts +47 -0
- package/src/cli/init-client-config.ts +299 -0
- package/src/cli/init-model.ts +229 -0
- package/src/cli/init-render.ts +54 -0
- package/src/cli/init-target-hooks.ts +93 -0
- package/src/cli/init.ts +16 -757
- package/src/cli/json-document.ts +144 -0
- package/src/cli/local-history-dag-model.ts +437 -0
- package/src/cli/local-history-dag-render.ts +133 -0
- package/src/cli/local-history-dag.ts +103 -0
- package/src/cli/main.ts +46 -333
- package/src/cli/migrate-local-history.ts +118 -0
- package/src/cli/peer-command.ts +59 -0
- package/src/contracts/capabilities.ts +218 -109
- package/src/contracts/causal-ontology.ts +5 -0
- package/src/contracts/json-object.ts +28 -0
- package/src/contracts/mcp-runtime.ts +16 -0
- package/src/contracts/output-schema-cli.ts +70 -0
- package/src/contracts/output-schema-fragments.ts +831 -0
- package/src/contracts/output-schema-mcp.ts +282 -0
- package/src/contracts/output-schema-meta.ts +119 -0
- package/src/contracts/output-schemas.ts +62 -1
- package/src/index.ts +1 -0
- package/src/mcp/cache.ts +7 -145
- package/src/mcp/cached-file.ts +1 -40
- package/src/mcp/context.ts +83 -13
- package/src/mcp/control-plane/authz-storage.ts +129 -0
- package/src/mcp/control-plane/session-registry.ts +115 -0
- package/src/mcp/control-plane/status-projection.ts +76 -0
- package/src/mcp/control-plane/types.ts +144 -0
- package/src/mcp/daemon-bootstrap.ts +100 -0
- package/src/mcp/daemon-control-plane.ts +93 -337
- package/src/mcp/daemon-repos.ts +27 -144
- package/src/mcp/daemon-server.ts +31 -262
- package/src/mcp/daemon-session-host.ts +230 -0
- package/src/mcp/daemon-stdio-bridge.ts +260 -0
- package/src/mcp/daemon-worker-child-pool.ts +213 -0
- package/src/mcp/daemon-worker-inline-pool.ts +46 -0
- package/src/mcp/daemon-worker-pool.ts +7 -310
- package/src/mcp/daemon-worker-types.ts +66 -0
- package/src/mcp/metrics.ts +68 -52
- package/src/mcp/monitor-health.ts +83 -0
- package/src/mcp/monitor-persistence.ts +54 -0
- package/src/mcp/monitor-tick-job.ts +3 -0
- package/src/mcp/monitor-types.ts +103 -0
- package/src/mcp/persisted-local-history-graph.ts +591 -0
- package/src/mcp/persisted-local-history-policy.ts +501 -0
- package/src/mcp/persisted-local-history-views.ts +250 -0
- package/src/mcp/persisted-local-history.ts +1137 -762
- package/src/mcp/persistent-monitor-runtime.ts +71 -175
- package/src/mcp/policy.ts +11 -20
- package/src/mcp/receipt.ts +67 -19
- package/src/mcp/repo-concurrency.ts +81 -7
- package/src/mcp/repo-overview/filter.ts +44 -0
- package/src/mcp/repo-overview/types.ts +63 -0
- package/src/mcp/repo-overview/view-projection.ts +90 -0
- package/src/mcp/repo-state-git.ts +247 -0
- package/src/mcp/repo-state-observation.ts +203 -0
- package/src/mcp/repo-state-transition.ts +151 -0
- package/src/mcp/repo-state-types.ts +107 -0
- package/src/mcp/repo-state.ts +90 -721
- package/src/mcp/repo-tool-job.ts +16 -216
- package/src/mcp/repo-tool-worker-context.ts +212 -0
- package/src/mcp/repo-workspace.ts +21 -0
- package/src/mcp/runtime-observability.ts +41 -43
- package/src/mcp/secret-scrub.ts +89 -0
- package/src/mcp/server-context.ts +223 -0
- package/src/mcp/server-invocation.ts +388 -0
- package/src/mcp/server-tool-access.ts +145 -0
- package/src/mcp/server.ts +46 -606
- package/src/mcp/stdio-server.ts +16 -2
- package/src/mcp/tool-registry.ts +80 -0
- package/src/mcp/tools/activity-view.ts +3 -3
- package/src/mcp/tools/budget.ts +10 -7
- package/src/mcp/tools/causal-attach.ts +3 -3
- package/src/mcp/tools/causal-status.ts +3 -3
- package/src/mcp/tools/changed-since.ts +4 -3
- package/src/mcp/tools/code-find.ts +7 -2
- package/src/mcp/tools/code-refs.ts +7 -3
- package/src/mcp/tools/code-show.ts +12 -2
- package/src/mcp/tools/daemon-monitors.ts +3 -3
- package/src/mcp/tools/daemon-repos.ts +3 -3
- package/src/mcp/tools/daemon-sessions.ts +3 -3
- package/src/mcp/tools/daemon-status.ts +3 -3
- package/src/mcp/tools/diagnostic-models.ts +95 -0
- package/src/mcp/tools/doctor.ts +10 -7
- package/src/mcp/tools/explain.ts +3 -3
- package/src/mcp/tools/file-outline.ts +10 -4
- package/src/mcp/tools/graft-diff.ts +6 -3
- package/src/mcp/tools/map-collector.ts +338 -0
- package/src/mcp/tools/map.ts +52 -3
- package/src/mcp/tools/monitor-pause.ts +3 -3
- package/src/mcp/tools/monitor-resume.ts +3 -3
- package/src/mcp/tools/monitor-start.ts +3 -3
- package/src/mcp/tools/monitor-stop.ts +3 -3
- package/src/mcp/tools/precision-live.ts +158 -0
- package/src/mcp/tools/precision-match.ts +3 -0
- package/src/mcp/tools/precision-paths.ts +59 -0
- package/src/mcp/tools/precision-show.ts +86 -0
- package/src/mcp/tools/precision-visibility.ts +44 -0
- package/src/mcp/tools/precision-warp.ts +90 -0
- package/src/mcp/tools/precision.ts +19 -310
- package/src/mcp/tools/read-range.ts +12 -5
- package/src/mcp/tools/run-capture.ts +2 -2
- package/src/mcp/tools/safe-read.ts +21 -10
- package/src/mcp/tools/since.ts +7 -3
- package/src/mcp/tools/state.ts +8 -7
- package/src/mcp/tools/stats.ts +3 -3
- package/src/mcp/tools/workspace-authorizations.ts +3 -3
- package/src/mcp/tools/workspace-authorize.ts +3 -3
- package/src/mcp/tools/workspace-bind.ts +3 -3
- package/src/mcp/tools/workspace-rebind.ts +3 -3
- package/src/mcp/tools/workspace-revoke.ts +3 -3
- package/src/mcp/tools/workspace-status.ts +3 -3
- package/src/mcp/warp-pool.ts +6 -6
- package/src/mcp/workspace-read-observation-model.ts +48 -0
- package/src/mcp/workspace-read-observation.ts +103 -0
- package/src/mcp/workspace-router-capability.ts +32 -0
- package/src/mcp/workspace-router-history.ts +233 -0
- package/src/mcp/workspace-router-model.ts +131 -0
- package/src/mcp/workspace-router-resolution.ts +71 -0
- package/src/mcp/workspace-router-runtime.ts +243 -0
- package/src/mcp/workspace-router.ts +151 -454
- package/src/metrics/logger.ts +22 -51
- package/src/metrics/types.ts +32 -4
- package/src/operations/cached-file.ts +40 -0
- package/src/operations/diff-identity.ts +127 -0
- package/src/operations/file-outline.ts +1 -1
- package/src/operations/graft-diff.ts +0 -1
- package/src/operations/observation-cache.ts +149 -0
- package/src/operations/read-range.ts +0 -1
- package/src/operations/repo-workspace.ts +339 -0
- package/src/operations/result-dto.ts +23 -0
- package/src/operations/safe-read.ts +3 -4
- package/src/operations/state.ts +42 -6
- package/src/operations/structured-buffer-compare.ts +429 -0
- package/src/operations/structured-buffer-model.ts +456 -0
- package/src/operations/structured-buffer-query.ts +794 -0
- package/src/operations/structured-buffer.ts +181 -0
- package/src/parser/diff.ts +172 -1
- package/src/parser/lang.ts +58 -15
- package/src/parser/markdown.ts +197 -0
- package/src/parser/outline.ts +8 -208
- package/src/parser/runtime.ts +71 -0
- package/src/policy/evaluate.ts +2 -2
- package/src/policy/types.ts +9 -9
- package/src/ports/guards.ts +68 -0
- package/src/ports/warp.ts +55 -0
- package/src/session/tracker.ts +7 -7
- package/src/session/types.ts +4 -1
- package/src/warp/identity-resolver.ts +35 -0
- package/src/warp/indexer-git.ts +182 -0
- package/src/warp/indexer-graph.ts +276 -0
- package/src/warp/indexer-model.ts +69 -0
- package/src/warp/indexer.ts +122 -449
- package/src/warp/observers.ts +7 -12
- package/src/warp/open.ts +66 -4
- package/src/warp/symbol-identity.ts +100 -0
- package/docs/ADVANCED_GUIDE.md +0 -49
- package/docs/GUIDE.md +0 -677
|
@@ -1,172 +1,82 @@
|
|
|
1
|
-
import * as crypto from "node:crypto";
|
|
2
1
|
import * as path from "node:path";
|
|
3
|
-
import type WarpApp from "@git-stunts/git-warp";
|
|
4
2
|
import { ObservationCache } from "./cache.js";
|
|
5
|
-
import { createPathResolver } from "./context.js";
|
|
6
3
|
import { Metrics } from "./metrics.js";
|
|
7
|
-
import { loadProjectGraftignore } from "./policy.js";
|
|
8
4
|
import {
|
|
9
5
|
type PersistedLocalActivityWindow,
|
|
10
6
|
PersistedLocalHistoryAttachUnavailableError,
|
|
11
7
|
PersistedLocalHistoryStore,
|
|
12
8
|
type PersistedLocalHistoryAttachDeclaration,
|
|
13
9
|
type PersistedLocalHistoryContext,
|
|
14
|
-
type PersistedLocalHistorySharedAttachSource,
|
|
15
10
|
type RepoConcurrencySummary,
|
|
16
11
|
type PersistedLocalHistorySummary,
|
|
17
12
|
} from "./persisted-local-history.js";
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
13
|
+
import { type PersistedLocalHistoryGraphContext } from "./persisted-local-history-graph.js";
|
|
14
|
+
import { RepoStateTracker, type RepoObservation } from "./repo-state.js";
|
|
15
|
+
import type { RuntimeCausalContext } from "./runtime-causal-context.js";
|
|
20
16
|
import { buildRuntimeStagedTarget } from "./runtime-staged-target.js";
|
|
21
17
|
import {
|
|
22
18
|
buildRuntimeWorkspaceOverlayFooting,
|
|
23
|
-
type GitTransitionHookEvent,
|
|
24
19
|
type RuntimeWorkspaceOverlayFooting,
|
|
25
20
|
} from "./runtime-workspace-overlay.js";
|
|
26
|
-
import {
|
|
21
|
+
import { buildWorkspaceReadObservation, type AttributedReadToolName } from "./workspace-read-observation.js";
|
|
22
|
+
import {
|
|
23
|
+
DEFAULT_REPO_LOCAL_CAPABILITY_PROFILE,
|
|
24
|
+
WorkspaceBindingRequiredError,
|
|
25
|
+
type CausalAttachResult,
|
|
26
|
+
type ResolvedWorkspace,
|
|
27
|
+
type WorkspaceActionResult,
|
|
28
|
+
type WorkspaceAuthorizationPolicy,
|
|
29
|
+
type WorkspaceBindAction,
|
|
30
|
+
type WorkspaceBindRequest,
|
|
31
|
+
type WorkspaceCapabilityProfile,
|
|
32
|
+
type WorkspaceExecutionContext,
|
|
33
|
+
type WorkspaceMode,
|
|
34
|
+
type WorkspaceSharedAttachPolicy,
|
|
35
|
+
type WorkspaceStatus,
|
|
36
|
+
} from "./workspace-router-model.js";
|
|
37
|
+
import { resolveWorkspaceRequest, stableWorkspaceId } from "./workspace-router-resolution.js";
|
|
27
38
|
import type { FileSystem } from "../ports/filesystem.js";
|
|
28
39
|
import type { GitClient } from "../ports/git.js";
|
|
40
|
+
import type { WarpHandle } from "../ports/warp.js";
|
|
41
|
+
import type { JsonObject } from "../contracts/json-object.js";
|
|
29
42
|
import type { WarpPool } from "./warp-pool.js";
|
|
30
43
|
import { DEFAULT_WARP_WRITER_ID } from "../warp/writer-id.js";
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export interface CausalAttachResult extends WorkspaceStatus {
|
|
65
|
-
readonly ok: boolean;
|
|
66
|
-
readonly action: "attach";
|
|
67
|
-
readonly persistedLocalHistory: PersistedLocalHistorySummary;
|
|
68
|
-
readonly errorCode?: string;
|
|
69
|
-
readonly error?: string;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export interface WorkspaceBindRequest {
|
|
73
|
-
readonly cwd: string;
|
|
74
|
-
readonly worktreeRoot?: string | undefined;
|
|
75
|
-
readonly gitCommonDir?: string | undefined;
|
|
76
|
-
readonly repoId?: string | undefined;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export class WorkspaceBindingRequiredError extends Error {
|
|
80
|
-
readonly code = "UNBOUND_SESSION";
|
|
81
|
-
|
|
82
|
-
constructor(toolName: string) {
|
|
83
|
-
super(`Tool ${toolName} requires an active workspace binding. Call workspace_bind first.`);
|
|
84
|
-
this.name = "WorkspaceBindingRequiredError";
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export class WorkspaceCapabilityDeniedError extends Error {
|
|
89
|
-
readonly code = "CAPABILITY_DENIED";
|
|
90
|
-
|
|
91
|
-
constructor(toolName: string) {
|
|
92
|
-
super(`Tool ${toolName} is not enabled in the daemon default capability profile.`);
|
|
93
|
-
this.name = "WorkspaceCapabilityDeniedError";
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
interface WorkspaceBindError {
|
|
98
|
-
readonly code: string;
|
|
99
|
-
readonly message: string;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
interface WorkspaceSlice {
|
|
103
|
-
readonly sliceId: string;
|
|
104
|
-
readonly session: SessionTracker;
|
|
105
|
-
readonly cache: ObservationCache;
|
|
106
|
-
readonly metrics: Metrics;
|
|
107
|
-
readonly graftDir: string;
|
|
108
|
-
readonly repoState: RepoStateTracker | null;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
interface BoundWorkspace {
|
|
112
|
-
readonly repoId: string;
|
|
113
|
-
readonly worktreeId: string;
|
|
114
|
-
readonly worktreeRoot: string;
|
|
115
|
-
readonly gitCommonDir: string;
|
|
116
|
-
readonly graftignorePatterns: readonly string[];
|
|
117
|
-
readonly resolvePath: (input: string) => string;
|
|
118
|
-
readonly capabilityProfile: WorkspaceCapabilityProfile;
|
|
119
|
-
readonly warpWriterId: string;
|
|
120
|
-
readonly transportSessionId: string;
|
|
121
|
-
readonly slice: WorkspaceSlice;
|
|
122
|
-
readonly getWarp: () => Promise<WarpApp>;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
export interface WorkspaceExecutionContext {
|
|
126
|
-
readonly sliceId: string;
|
|
127
|
-
readonly repoId: string;
|
|
128
|
-
readonly worktreeId: string;
|
|
129
|
-
readonly projectRoot: string;
|
|
130
|
-
readonly worktreeRoot: string;
|
|
131
|
-
readonly gitCommonDir: string;
|
|
132
|
-
readonly graftignorePatterns: readonly string[];
|
|
133
|
-
readonly resolvePath: (input: string) => string;
|
|
134
|
-
readonly capabilityProfile: WorkspaceCapabilityProfile;
|
|
135
|
-
readonly warpWriterId: string;
|
|
136
|
-
getCausalContext(): RuntimeCausalContext;
|
|
137
|
-
readonly status: WorkspaceStatus;
|
|
138
|
-
readonly session: SessionTracker;
|
|
139
|
-
readonly cache: ObservationCache;
|
|
140
|
-
readonly metrics: Metrics;
|
|
141
|
-
readonly graftDir: string;
|
|
142
|
-
readonly repoState: RepoStateTracker;
|
|
143
|
-
readonly getWarp: () => Promise<WarpApp>;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
type AttributedReadToolName = "safe_read" | "file_outline" | "read_range";
|
|
147
|
-
|
|
148
|
-
export interface ResolvedWorkspace {
|
|
149
|
-
readonly repoId: string;
|
|
150
|
-
readonly worktreeId: string;
|
|
151
|
-
readonly worktreeRoot: string;
|
|
152
|
-
readonly gitCommonDir: string;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
export interface WorkspaceAuthorizationPolicy {
|
|
156
|
-
getCapabilityProfile(resolved: ResolvedWorkspace): Promise<WorkspaceCapabilityProfile | null>;
|
|
157
|
-
noteBound(resolved: ResolvedWorkspace): Promise<void>;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
export interface WorkspaceSharedAttachPolicy {
|
|
161
|
-
resolveSharedAttachSource(input: {
|
|
162
|
-
readonly sessionId: string;
|
|
163
|
-
readonly repoId: string;
|
|
164
|
-
readonly worktreeId: string;
|
|
165
|
-
}): PersistedLocalHistorySharedAttachSource | null;
|
|
166
|
-
}
|
|
44
|
+
import { GovernorTracker } from "../session/tracker.js";
|
|
45
|
+
import {
|
|
46
|
+
type BoundWorkspace,
|
|
47
|
+
type WorkspaceSlice,
|
|
48
|
+
boundWorkspaceStatus,
|
|
49
|
+
buildPersistedLocalHistoryContext,
|
|
50
|
+
buildPersistedLocalHistoryContextFromExecution,
|
|
51
|
+
buildPersistedLocalHistoryGraphContext,
|
|
52
|
+
buildWorkspaceCausalContext,
|
|
53
|
+
createBoundWorkspace,
|
|
54
|
+
createWorkspaceSlice,
|
|
55
|
+
nextBindingSliceDir,
|
|
56
|
+
resolveCheckoutBoundaryHookEvent,
|
|
57
|
+
unboundWorkspaceStatus,
|
|
58
|
+
} from "./workspace-router-runtime.js";
|
|
59
|
+
export {
|
|
60
|
+
DEFAULT_DAEMON_CAPABILITY_PROFILE,
|
|
61
|
+
DEFAULT_REPO_LOCAL_CAPABILITY_PROFILE,
|
|
62
|
+
WorkspaceBindingRequiredError,
|
|
63
|
+
WorkspaceCapabilityDeniedError,
|
|
64
|
+
type CausalAttachResult,
|
|
65
|
+
type ResolvedWorkspace,
|
|
66
|
+
type WorkspaceActionResult,
|
|
67
|
+
type WorkspaceAuthorizationPolicy,
|
|
68
|
+
type WorkspaceBindAction,
|
|
69
|
+
type WorkspaceBindRequest,
|
|
70
|
+
type WorkspaceCapabilityProfile,
|
|
71
|
+
type WorkspaceExecutionContext,
|
|
72
|
+
type WorkspaceMode,
|
|
73
|
+
type WorkspaceSharedAttachPolicy,
|
|
74
|
+
type WorkspaceStatus,
|
|
75
|
+
} from "./workspace-router-model.js";
|
|
76
|
+
export { resolveWorkspaceRequest } from "./workspace-router-resolution.js";
|
|
167
77
|
|
|
168
78
|
interface WorkspaceRouterOptions {
|
|
169
|
-
readonly mode:
|
|
79
|
+
readonly mode: WorkspaceMode;
|
|
170
80
|
readonly fs: FileSystem;
|
|
171
81
|
readonly git: GitClient;
|
|
172
82
|
readonly graftDir: string;
|
|
@@ -179,71 +89,6 @@ interface WorkspaceRouterOptions {
|
|
|
179
89
|
readonly persistedLocalHistory: PersistedLocalHistoryStore;
|
|
180
90
|
}
|
|
181
91
|
|
|
182
|
-
export const DEFAULT_DAEMON_CAPABILITY_PROFILE: WorkspaceCapabilityProfile = Object.freeze({
|
|
183
|
-
boundedReads: true,
|
|
184
|
-
structuralTools: true,
|
|
185
|
-
precisionTools: true,
|
|
186
|
-
stateBookmarks: true,
|
|
187
|
-
runtimeLogs: "session_local_only",
|
|
188
|
-
runCapture: false,
|
|
189
|
-
});
|
|
190
|
-
|
|
191
|
-
export const DEFAULT_REPO_LOCAL_CAPABILITY_PROFILE: WorkspaceCapabilityProfile = Object.freeze({
|
|
192
|
-
boundedReads: true,
|
|
193
|
-
structuralTools: true,
|
|
194
|
-
precisionTools: true,
|
|
195
|
-
stateBookmarks: true,
|
|
196
|
-
runtimeLogs: "session_local_only",
|
|
197
|
-
runCapture: true,
|
|
198
|
-
});
|
|
199
|
-
|
|
200
|
-
function stableId(prefix: string, input: string): string {
|
|
201
|
-
return `${prefix}:${crypto.createHash("sha256").update(input).digest("hex").slice(0, 16)}`;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
async function readGitValue(git: GitClient, cwd: string, args: readonly string[]): Promise<string | null> {
|
|
205
|
-
const result = await git.run({ args, cwd });
|
|
206
|
-
if (result.error !== undefined || result.status !== 0) {
|
|
207
|
-
return null;
|
|
208
|
-
}
|
|
209
|
-
const trimmed = result.stdout.trim();
|
|
210
|
-
return trimmed.length > 0 ? trimmed : null;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
function toAbsolutePath(base: string, value: string): string {
|
|
214
|
-
return path.isAbsolute(value) ? value : path.resolve(base, value);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
export async function resolveWorkspaceRequest(
|
|
218
|
-
git: GitClient,
|
|
219
|
-
request: WorkspaceBindRequest,
|
|
220
|
-
): Promise<ResolvedWorkspace | WorkspaceBindError> {
|
|
221
|
-
const cwd = path.resolve(request.cwd);
|
|
222
|
-
const worktreeRoot = await readGitValue(git, cwd, ["rev-parse", "--path-format=absolute", "--show-toplevel"]);
|
|
223
|
-
if (worktreeRoot === null) {
|
|
224
|
-
return {
|
|
225
|
-
code: "NOT_A_GIT_REPO",
|
|
226
|
-
message: `cwd is not inside a git worktree: ${cwd}`,
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
const rawGitCommonDir = await readGitValue(git, cwd, ["rev-parse", "--path-format=absolute", "--git-common-dir"]);
|
|
231
|
-
if (rawGitCommonDir === null) {
|
|
232
|
-
return {
|
|
233
|
-
code: "WORKSPACE_RESOLUTION_FAILED",
|
|
234
|
-
message: `Unable to resolve git common dir from ${cwd}`,
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
const gitCommonDir = toAbsolutePath(worktreeRoot, rawGitCommonDir);
|
|
239
|
-
return {
|
|
240
|
-
repoId: stableId("repo", gitCommonDir),
|
|
241
|
-
worktreeId: stableId("worktree", worktreeRoot),
|
|
242
|
-
worktreeRoot,
|
|
243
|
-
gitCommonDir,
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
|
|
247
92
|
export class WorkspaceRouter {
|
|
248
93
|
private bindingCounter = 0;
|
|
249
94
|
private sliceIdCounter = 0;
|
|
@@ -253,10 +98,13 @@ export class WorkspaceRouter {
|
|
|
253
98
|
|
|
254
99
|
constructor(private readonly options: WorkspaceRouterOptions) {
|
|
255
100
|
const initialProjectRoot = options.mode === "repo_local" ? options.projectRoot : undefined;
|
|
256
|
-
this.currentSlice =
|
|
257
|
-
options.mode === "repo_local" ? options.graftDir : path.join(options.graftDir, "unbound"),
|
|
258
|
-
|
|
259
|
-
|
|
101
|
+
this.currentSlice = createWorkspaceSlice({
|
|
102
|
+
graftDir: options.mode === "repo_local" ? options.graftDir : path.join(options.graftDir, "unbound"),
|
|
103
|
+
fs: options.fs,
|
|
104
|
+
git: options.git,
|
|
105
|
+
nextSliceId: `slice-${String(++this.sliceIdCounter).padStart(4, "0")}`,
|
|
106
|
+
...(initialProjectRoot !== undefined ? { projectRoot: initialProjectRoot } : {}),
|
|
107
|
+
});
|
|
260
108
|
}
|
|
261
109
|
|
|
262
110
|
async initialize(): Promise<void> {
|
|
@@ -280,18 +128,18 @@ export class WorkspaceRouter {
|
|
|
280
128
|
const resolved = await resolveWorkspaceRequest(this.options.git, { cwd: projectRoot });
|
|
281
129
|
const initialWorkspace = "code" in resolved
|
|
282
130
|
? {
|
|
283
|
-
repoId:
|
|
284
|
-
worktreeId:
|
|
131
|
+
repoId: stableWorkspaceId("repo", projectRoot),
|
|
132
|
+
worktreeId: stableWorkspaceId("worktree", projectRoot),
|
|
285
133
|
worktreeRoot: projectRoot,
|
|
286
134
|
gitCommonDir: projectRoot,
|
|
287
135
|
}
|
|
288
136
|
: {
|
|
289
137
|
repoId: resolved.repoId,
|
|
290
|
-
worktreeId:
|
|
138
|
+
worktreeId: stableWorkspaceId("worktree", projectRoot),
|
|
291
139
|
worktreeRoot: projectRoot,
|
|
292
140
|
gitCommonDir: resolved.gitCommonDir,
|
|
293
141
|
};
|
|
294
|
-
const currentBinding = this.createBoundWorkspace(
|
|
142
|
+
const currentBinding = await this.createBoundWorkspace(
|
|
295
143
|
initialWorkspace,
|
|
296
144
|
this.options.graftDir,
|
|
297
145
|
DEFAULT_REPO_LOCAL_CAPABILITY_PROFILE,
|
|
@@ -305,6 +153,7 @@ export class WorkspaceRouter {
|
|
|
305
153
|
await currentRepoState.initialize();
|
|
306
154
|
await this.options.persistedLocalHistory.noteBinding({
|
|
307
155
|
current: this.buildPersistedLocalHistoryContext(currentBinding, currentRepoState.getState()),
|
|
156
|
+
currentGraph: await this.buildPersistedLocalHistoryGraphContext(currentBinding),
|
|
308
157
|
});
|
|
309
158
|
this.currentBinding = currentBinding;
|
|
310
159
|
})();
|
|
@@ -312,12 +161,12 @@ export class WorkspaceRouter {
|
|
|
312
161
|
await this.initialization;
|
|
313
162
|
}
|
|
314
163
|
|
|
315
|
-
get mode():
|
|
164
|
+
get mode(): WorkspaceMode {
|
|
316
165
|
return this.options.mode;
|
|
317
166
|
}
|
|
318
167
|
|
|
319
|
-
get
|
|
320
|
-
return this.currentSlice.
|
|
168
|
+
get governor(): GovernorTracker {
|
|
169
|
+
return this.currentSlice.governor;
|
|
321
170
|
}
|
|
322
171
|
|
|
323
172
|
get cache(): ObservationCache {
|
|
@@ -348,7 +197,7 @@ export class WorkspaceRouter {
|
|
|
348
197
|
return this.requireBinding().resolvePath;
|
|
349
198
|
}
|
|
350
199
|
|
|
351
|
-
getWarp(): Promise<
|
|
200
|
+
getWarp(): Promise<WarpHandle> {
|
|
352
201
|
return this.requireBinding().getWarp();
|
|
353
202
|
}
|
|
354
203
|
|
|
@@ -370,6 +219,7 @@ export class WorkspaceRouter {
|
|
|
370
219
|
await this.options.persistedLocalHistory.noteCheckoutBoundary({
|
|
371
220
|
previous: previousContext,
|
|
372
221
|
current: nextContext,
|
|
222
|
+
graph: await this.buildPersistedLocalHistoryGraphContext(binding),
|
|
373
223
|
});
|
|
374
224
|
}
|
|
375
225
|
}
|
|
@@ -380,28 +230,9 @@ export class WorkspaceRouter {
|
|
|
380
230
|
|
|
381
231
|
getStatus(): WorkspaceStatus {
|
|
382
232
|
if (this.currentBinding === null) {
|
|
383
|
-
return
|
|
384
|
-
sessionMode: this.options.mode,
|
|
385
|
-
bindState: "unbound",
|
|
386
|
-
repoId: null,
|
|
387
|
-
worktreeId: null,
|
|
388
|
-
worktreeRoot: null,
|
|
389
|
-
gitCommonDir: null,
|
|
390
|
-
graftDir: null,
|
|
391
|
-
capabilityProfile: null,
|
|
392
|
-
};
|
|
233
|
+
return unboundWorkspaceStatus(this.options.mode);
|
|
393
234
|
}
|
|
394
|
-
|
|
395
|
-
return {
|
|
396
|
-
sessionMode: this.options.mode,
|
|
397
|
-
bindState: "bound",
|
|
398
|
-
repoId: this.currentBinding.repoId,
|
|
399
|
-
worktreeId: this.currentBinding.worktreeId,
|
|
400
|
-
worktreeRoot: this.currentBinding.worktreeRoot,
|
|
401
|
-
gitCommonDir: this.currentBinding.gitCommonDir,
|
|
402
|
-
graftDir: this.currentBinding.slice.graftDir,
|
|
403
|
-
capabilityProfile: this.currentBinding.capabilityProfile,
|
|
404
|
-
};
|
|
235
|
+
return boundWorkspaceStatus(this.options.mode, this.currentBinding);
|
|
405
236
|
}
|
|
406
237
|
|
|
407
238
|
async getPersistedLocalHistorySummary(): Promise<PersistedLocalHistorySummary> {
|
|
@@ -457,7 +288,8 @@ export class WorkspaceRouter {
|
|
|
457
288
|
const status = this.getStatus();
|
|
458
289
|
const repoState = binding.slice.repoState.getState();
|
|
459
290
|
const causalContext = this.buildCausalContext(binding, repoState);
|
|
460
|
-
|
|
291
|
+
const graph = await this.buildPersistedLocalHistoryGraphContext(binding);
|
|
292
|
+
let summary = await this.options.persistedLocalHistory.summarize(status, causalContext, graph);
|
|
461
293
|
|
|
462
294
|
if (repoState.semanticTransition !== null) {
|
|
463
295
|
await this.options.persistedLocalHistory.noteSemanticTransitionObservation({
|
|
@@ -465,8 +297,9 @@ export class WorkspaceRouter {
|
|
|
465
297
|
semanticTransition: repoState.semanticTransition,
|
|
466
298
|
transition: repoState.lastTransition,
|
|
467
299
|
attribution: summary.attribution,
|
|
300
|
+
graph,
|
|
468
301
|
});
|
|
469
|
-
summary = await this.options.persistedLocalHistory.summarize(status, causalContext);
|
|
302
|
+
summary = await this.options.persistedLocalHistory.summarize(status, causalContext, graph);
|
|
470
303
|
}
|
|
471
304
|
|
|
472
305
|
const stagedTarget = buildRuntimeStagedTarget(status, causalContext, repoState, summary.attribution);
|
|
@@ -476,8 +309,9 @@ export class WorkspaceRouter {
|
|
|
476
309
|
current: this.buildPersistedLocalHistoryContext(binding, repoState),
|
|
477
310
|
stagedTarget,
|
|
478
311
|
attribution: summary.attribution,
|
|
312
|
+
graph,
|
|
479
313
|
});
|
|
480
|
-
return this.options.persistedLocalHistory.summarize(status, causalContext);
|
|
314
|
+
return this.options.persistedLocalHistory.summarize(status, causalContext, graph);
|
|
481
315
|
}
|
|
482
316
|
|
|
483
317
|
return summary;
|
|
@@ -488,7 +322,10 @@ export class WorkspaceRouter {
|
|
|
488
322
|
if (binding?.slice.repoState === null || binding === null) {
|
|
489
323
|
return null;
|
|
490
324
|
}
|
|
491
|
-
return this.options.persistedLocalHistory.summarizeRepoConcurrency(
|
|
325
|
+
return this.options.persistedLocalHistory.summarizeRepoConcurrency(
|
|
326
|
+
this.getStatus(),
|
|
327
|
+
await this.buildPersistedLocalHistoryGraphContext(binding),
|
|
328
|
+
);
|
|
492
329
|
}
|
|
493
330
|
|
|
494
331
|
async getPersistedLocalActivityWindow(limit: number): Promise<PersistedLocalActivityWindow> {
|
|
@@ -508,17 +345,19 @@ export class WorkspaceRouter {
|
|
|
508
345
|
const status = this.getStatus();
|
|
509
346
|
const repoState = binding.slice.repoState.getState();
|
|
510
347
|
const causalContext = this.buildCausalContext(binding, repoState);
|
|
348
|
+
const graph = await this.buildPersistedLocalHistoryGraphContext(binding);
|
|
511
349
|
return this.options.persistedLocalHistory.listRecentActivity(
|
|
512
350
|
status,
|
|
513
351
|
causalContext,
|
|
514
352
|
limit,
|
|
353
|
+
graph,
|
|
515
354
|
);
|
|
516
355
|
}
|
|
517
356
|
|
|
518
|
-
|
|
357
|
+
getWorkspaceOverlayFooting(): Promise<RuntimeWorkspaceOverlayFooting | null> {
|
|
519
358
|
const binding = this.currentBinding;
|
|
520
359
|
if (binding?.slice.repoState === null || binding === null) {
|
|
521
|
-
return null;
|
|
360
|
+
return Promise.resolve(null);
|
|
522
361
|
}
|
|
523
362
|
return buildRuntimeWorkspaceOverlayFooting(
|
|
524
363
|
this.options.fs,
|
|
@@ -531,8 +370,8 @@ export class WorkspaceRouter {
|
|
|
531
370
|
|
|
532
371
|
async noteReadObservation(
|
|
533
372
|
toolName: AttributedReadToolName,
|
|
534
|
-
args:
|
|
535
|
-
result:
|
|
373
|
+
args: JsonObject,
|
|
374
|
+
result: JsonObject,
|
|
536
375
|
execution?: WorkspaceExecutionContext | null,
|
|
537
376
|
): Promise<void> {
|
|
538
377
|
const active = execution ?? this.captureCurrentExecutionContext();
|
|
@@ -540,7 +379,7 @@ export class WorkspaceRouter {
|
|
|
540
379
|
return;
|
|
541
380
|
}
|
|
542
381
|
|
|
543
|
-
const readObservation =
|
|
382
|
+
const readObservation = buildWorkspaceReadObservation(active, toolName, args, result);
|
|
544
383
|
if (readObservation === null) {
|
|
545
384
|
return;
|
|
546
385
|
}
|
|
@@ -548,11 +387,13 @@ export class WorkspaceRouter {
|
|
|
548
387
|
const summary = await this.options.persistedLocalHistory.summarize(
|
|
549
388
|
active.status,
|
|
550
389
|
active.getCausalContext(),
|
|
390
|
+
await this.buildPersistedLocalHistoryGraphContextFromExecution(active),
|
|
551
391
|
);
|
|
552
392
|
|
|
553
393
|
await this.options.persistedLocalHistory.noteReadObservation({
|
|
554
394
|
current: this.buildPersistedLocalHistoryContextFromExecution(active, active.repoState.getState()),
|
|
555
395
|
attribution: summary.attribution,
|
|
396
|
+
graph: await this.buildPersistedLocalHistoryGraphContextFromExecution(active),
|
|
556
397
|
...readObservation,
|
|
557
398
|
});
|
|
558
399
|
}
|
|
@@ -575,17 +416,8 @@ export class WorkspaceRouter {
|
|
|
575
416
|
capabilityProfile: binding.capabilityProfile,
|
|
576
417
|
warpWriterId: binding.warpWriterId,
|
|
577
418
|
getCausalContext: () => this.buildCausalContext(binding, repoState.getState()),
|
|
578
|
-
status:
|
|
579
|
-
|
|
580
|
-
bindState: "bound",
|
|
581
|
-
repoId: binding.repoId,
|
|
582
|
-
worktreeId: binding.worktreeId,
|
|
583
|
-
worktreeRoot: binding.worktreeRoot,
|
|
584
|
-
gitCommonDir: binding.gitCommonDir,
|
|
585
|
-
graftDir: binding.slice.graftDir,
|
|
586
|
-
capabilityProfile: binding.capabilityProfile,
|
|
587
|
-
},
|
|
588
|
-
session: binding.slice.session,
|
|
419
|
+
status: boundWorkspaceStatus(this.options.mode, binding),
|
|
420
|
+
governor: binding.slice.governor,
|
|
589
421
|
cache: binding.slice.cache,
|
|
590
422
|
metrics: binding.slice.metrics,
|
|
591
423
|
graftDir: binding.slice.graftDir,
|
|
@@ -631,6 +463,7 @@ export class WorkspaceRouter {
|
|
|
631
463
|
await this.options.persistedLocalHistory.declareAttach({
|
|
632
464
|
current: this.buildPersistedLocalHistoryContext(binding, binding.slice.repoState.getState()),
|
|
633
465
|
declaration,
|
|
466
|
+
graph: await this.buildPersistedLocalHistoryGraphContext(binding),
|
|
634
467
|
});
|
|
635
468
|
} catch (error) {
|
|
636
469
|
if (error instanceof PersistedLocalHistoryAttachUnavailableError) {
|
|
@@ -644,6 +477,7 @@ export class WorkspaceRouter {
|
|
|
644
477
|
current: this.buildPersistedLocalHistoryContext(binding, binding.slice.repoState.getState()),
|
|
645
478
|
declaration,
|
|
646
479
|
source: sharedAttachSource,
|
|
480
|
+
graph: await this.buildPersistedLocalHistoryGraphContext(binding),
|
|
647
481
|
});
|
|
648
482
|
return {
|
|
649
483
|
ok: true,
|
|
@@ -689,11 +523,7 @@ export class WorkspaceRouter {
|
|
|
689
523
|
};
|
|
690
524
|
}
|
|
691
525
|
|
|
692
|
-
const sliceDir =
|
|
693
|
-
this.options.graftDir,
|
|
694
|
-
"bindings",
|
|
695
|
-
`slice-${String(++this.bindingCounter).padStart(4, "0")}`,
|
|
696
|
-
);
|
|
526
|
+
const sliceDir = nextBindingSliceDir(this.options.graftDir, ++this.bindingCounter);
|
|
697
527
|
await this.options.fs.mkdir(sliceDir, { recursive: true });
|
|
698
528
|
|
|
699
529
|
const capabilityProfile = this.options.mode === "repo_local"
|
|
@@ -710,7 +540,7 @@ export class WorkspaceRouter {
|
|
|
710
540
|
};
|
|
711
541
|
}
|
|
712
542
|
|
|
713
|
-
const nextBinding = this.createBoundWorkspace(resolved, sliceDir, capabilityProfile, actionName);
|
|
543
|
+
const nextBinding = await this.createBoundWorkspace(resolved, sliceDir, capabilityProfile, actionName);
|
|
714
544
|
const nextRepoState = nextBinding.slice.repoState;
|
|
715
545
|
if (nextRepoState === null) {
|
|
716
546
|
throw new WorkspaceBindingRequiredError("workspace");
|
|
@@ -723,6 +553,10 @@ export class WorkspaceRouter {
|
|
|
723
553
|
previous: previousBinding === null || previousRepoState == null
|
|
724
554
|
? null
|
|
725
555
|
: this.buildPersistedLocalHistoryContext(previousBinding, previousRepoState.getState()),
|
|
556
|
+
currentGraph: await this.buildPersistedLocalHistoryGraphContext(nextBinding),
|
|
557
|
+
previousGraph: previousBinding === null
|
|
558
|
+
? null
|
|
559
|
+
: await this.buildPersistedLocalHistoryGraphContext(previousBinding),
|
|
726
560
|
});
|
|
727
561
|
if (this.options.mode === "daemon") {
|
|
728
562
|
await this.options.authorizationPolicy?.noteBound(resolved);
|
|
@@ -738,44 +572,31 @@ export class WorkspaceRouter {
|
|
|
738
572
|
};
|
|
739
573
|
}
|
|
740
574
|
|
|
741
|
-
private createBoundWorkspace(
|
|
575
|
+
private async createBoundWorkspace(
|
|
742
576
|
resolved: ResolvedWorkspace,
|
|
743
577
|
graftDir: string,
|
|
744
578
|
capabilityProfile: WorkspaceCapabilityProfile,
|
|
745
579
|
actionName: string | undefined,
|
|
746
580
|
sliceOverride?: WorkspaceSlice,
|
|
747
|
-
): BoundWorkspace {
|
|
748
|
-
const slice = sliceOverride ??
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
581
|
+
): Promise<BoundWorkspace> {
|
|
582
|
+
const slice = sliceOverride ?? createWorkspaceSlice({
|
|
583
|
+
graftDir,
|
|
584
|
+
projectRoot: resolved.worktreeRoot,
|
|
585
|
+
fs: this.options.fs,
|
|
586
|
+
git: this.options.git,
|
|
587
|
+
nextSliceId: `slice-${String(++this.sliceIdCounter).padStart(4, "0")}`,
|
|
588
|
+
});
|
|
589
|
+
return createBoundWorkspace({
|
|
590
|
+
resolved,
|
|
591
|
+
graftDir,
|
|
758
592
|
capabilityProfile,
|
|
593
|
+
...(actionName !== undefined ? { actionName } : {}),
|
|
594
|
+
slice,
|
|
595
|
+
fs: this.options.fs,
|
|
759
596
|
transportSessionId: this.options.transportSessionId,
|
|
760
597
|
warpWriterId: this.options.warpWriterId ?? DEFAULT_WARP_WRITER_ID,
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
resolved.repoId,
|
|
764
|
-
resolved.worktreeRoot,
|
|
765
|
-
this.options.warpWriterId ?? DEFAULT_WARP_WRITER_ID,
|
|
766
|
-
),
|
|
767
|
-
};
|
|
768
|
-
}
|
|
769
|
-
|
|
770
|
-
private createSlice(graftDir: string, projectRoot?: string): WorkspaceSlice {
|
|
771
|
-
return {
|
|
772
|
-
sliceId: `slice-${String(++this.sliceIdCounter).padStart(4, "0")}`,
|
|
773
|
-
session: new SessionTracker(),
|
|
774
|
-
cache: new ObservationCache(),
|
|
775
|
-
metrics: new Metrics(),
|
|
776
|
-
graftDir,
|
|
777
|
-
repoState: projectRoot !== undefined ? new RepoStateTracker(projectRoot, this.options.fs, this.options.git) : null,
|
|
778
|
-
};
|
|
598
|
+
warpPool: this.options.warpPool,
|
|
599
|
+
});
|
|
779
600
|
}
|
|
780
601
|
|
|
781
602
|
private requireBinding(): BoundWorkspace {
|
|
@@ -797,84 +618,46 @@ export class WorkspaceRouter {
|
|
|
797
618
|
binding: BoundWorkspace,
|
|
798
619
|
observation: { readonly checkoutEpoch: number },
|
|
799
620
|
): RuntimeCausalContext {
|
|
800
|
-
return
|
|
801
|
-
transportSessionId: binding.transportSessionId,
|
|
802
|
-
workspaceSliceId: binding.slice.sliceId,
|
|
803
|
-
repoId: binding.repoId,
|
|
804
|
-
worktreeId: binding.worktreeId,
|
|
805
|
-
checkoutEpoch: observation.checkoutEpoch,
|
|
806
|
-
warpWriterId: binding.warpWriterId,
|
|
807
|
-
});
|
|
621
|
+
return buildWorkspaceCausalContext(binding, observation);
|
|
808
622
|
}
|
|
809
623
|
|
|
810
624
|
private buildPersistedLocalHistoryContext(
|
|
811
625
|
binding: BoundWorkspace,
|
|
812
|
-
observation:
|
|
813
|
-
hookEvent: GitTransitionHookEvent | null = null,
|
|
626
|
+
observation: RepoObservation,
|
|
627
|
+
hookEvent: import("./runtime-workspace-overlay.js").GitTransitionHookEvent | null = null,
|
|
814
628
|
): PersistedLocalHistoryContext {
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
repoId: binding.repoId,
|
|
820
|
-
worktreeId: binding.worktreeId,
|
|
821
|
-
worktreeRoot: binding.worktreeRoot,
|
|
822
|
-
gitCommonDir: binding.gitCommonDir,
|
|
823
|
-
graftDir: binding.slice.graftDir,
|
|
824
|
-
capabilityProfile: binding.capabilityProfile,
|
|
825
|
-
},
|
|
826
|
-
this.buildCausalContext(binding, observation),
|
|
629
|
+
return buildPersistedLocalHistoryContext({
|
|
630
|
+
persistedLocalHistory: this.options.persistedLocalHistory,
|
|
631
|
+
mode: this.options.mode,
|
|
632
|
+
binding,
|
|
827
633
|
observation,
|
|
828
634
|
hookEvent,
|
|
829
|
-
);
|
|
830
|
-
if (context === null) {
|
|
831
|
-
throw new WorkspaceBindingRequiredError("workspace");
|
|
832
|
-
}
|
|
833
|
-
return context;
|
|
635
|
+
});
|
|
834
636
|
}
|
|
835
637
|
|
|
836
638
|
private buildPersistedLocalHistoryContextFromExecution(
|
|
837
639
|
execution: WorkspaceExecutionContext,
|
|
838
|
-
observation:
|
|
640
|
+
observation: RepoObservation,
|
|
839
641
|
): PersistedLocalHistoryContext {
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
execution
|
|
642
|
+
return buildPersistedLocalHistoryContextFromExecution({
|
|
643
|
+
persistedLocalHistory: this.options.persistedLocalHistory,
|
|
644
|
+
execution,
|
|
843
645
|
observation,
|
|
844
|
-
);
|
|
845
|
-
if (context === null) {
|
|
846
|
-
throw new WorkspaceBindingRequiredError("workspace");
|
|
847
|
-
}
|
|
848
|
-
return context;
|
|
646
|
+
});
|
|
849
647
|
}
|
|
850
648
|
|
|
851
649
|
private async resolveCheckoutBoundaryHookEvent(
|
|
852
650
|
binding: BoundWorkspace,
|
|
853
651
|
previousObservedAt: string,
|
|
854
|
-
observation:
|
|
855
|
-
): Promise<GitTransitionHookEvent | null> {
|
|
856
|
-
|
|
857
|
-
this.options.fs,
|
|
858
|
-
this.options.git,
|
|
859
|
-
binding
|
|
860
|
-
|
|
652
|
+
observation: RepoObservation,
|
|
653
|
+
): Promise<import("./runtime-workspace-overlay.js").GitTransitionHookEvent | null> {
|
|
654
|
+
return resolveCheckoutBoundaryHookEvent({
|
|
655
|
+
fs: this.options.fs,
|
|
656
|
+
git: this.options.git,
|
|
657
|
+
binding,
|
|
658
|
+
previousObservedAt,
|
|
861
659
|
observation,
|
|
862
|
-
);
|
|
863
|
-
const latestHookEvent = footing.latestHookEvent;
|
|
864
|
-
if (latestHookEvent === null) {
|
|
865
|
-
return null;
|
|
866
|
-
}
|
|
867
|
-
|
|
868
|
-
const previousObservedAtMs = Date.parse(previousObservedAt);
|
|
869
|
-
const hookObservedAtMs = Date.parse(latestHookEvent.observedAt);
|
|
870
|
-
if (
|
|
871
|
-
Number.isFinite(previousObservedAtMs) &&
|
|
872
|
-
Number.isFinite(hookObservedAtMs) &&
|
|
873
|
-
hookObservedAtMs < previousObservedAtMs
|
|
874
|
-
) {
|
|
875
|
-
return null;
|
|
876
|
-
}
|
|
877
|
-
return latestHookEvent;
|
|
660
|
+
});
|
|
878
661
|
}
|
|
879
662
|
|
|
880
663
|
private captureCurrentExecutionContext(): WorkspaceExecutionContext | null {
|
|
@@ -884,101 +667,15 @@ export class WorkspaceRouter {
|
|
|
884
667
|
return this.captureExecutionContext();
|
|
885
668
|
}
|
|
886
669
|
|
|
887
|
-
private
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
): {
|
|
893
|
-
readonly surface: string;
|
|
894
|
-
readonly projection: string;
|
|
895
|
-
readonly sourceLayer: "canonical_structural_truth" | "workspace_overlay";
|
|
896
|
-
readonly reason: string;
|
|
897
|
-
readonly footprint: {
|
|
898
|
-
readonly paths: string[];
|
|
899
|
-
readonly symbols: string[];
|
|
900
|
-
readonly regions: {
|
|
901
|
-
readonly path: string;
|
|
902
|
-
readonly startLine: number;
|
|
903
|
-
readonly endLine: number;
|
|
904
|
-
}[];
|
|
905
|
-
};
|
|
906
|
-
} | null {
|
|
907
|
-
const rawPath = args["path"];
|
|
908
|
-
if (typeof rawPath !== "string") {
|
|
909
|
-
return null;
|
|
910
|
-
}
|
|
911
|
-
|
|
912
|
-
const absolutePath = execution.resolvePath(rawPath);
|
|
913
|
-
const relativePath = path.relative(execution.worktreeRoot, absolutePath);
|
|
914
|
-
const footprintPath = relativePath.startsWith("..") ? absolutePath : relativePath;
|
|
915
|
-
const sourceLayer = execution.repoState.getState().workspaceOverlayId === null
|
|
916
|
-
? "canonical_structural_truth"
|
|
917
|
-
: "workspace_overlay";
|
|
918
|
-
|
|
919
|
-
if (toolName === "safe_read") {
|
|
920
|
-
const projection = result["projection"];
|
|
921
|
-
if (
|
|
922
|
-
projection !== "content" &&
|
|
923
|
-
projection !== "outline" &&
|
|
924
|
-
projection !== "cache_hit" &&
|
|
925
|
-
projection !== "diff"
|
|
926
|
-
) {
|
|
927
|
-
return null;
|
|
928
|
-
}
|
|
929
|
-
return {
|
|
930
|
-
surface: "safe_read",
|
|
931
|
-
projection,
|
|
932
|
-
sourceLayer,
|
|
933
|
-
reason: typeof result["reason"] === "string" ? result["reason"] : "SAFE_READ",
|
|
934
|
-
footprint: {
|
|
935
|
-
paths: [footprintPath],
|
|
936
|
-
symbols: [],
|
|
937
|
-
regions: [],
|
|
938
|
-
},
|
|
939
|
-
};
|
|
940
|
-
}
|
|
941
|
-
|
|
942
|
-
if (toolName === "file_outline") {
|
|
943
|
-
if (typeof result["error"] === "string" || result["reason"] === "UNSUPPORTED_LANGUAGE") {
|
|
944
|
-
return null;
|
|
945
|
-
}
|
|
946
|
-
return {
|
|
947
|
-
surface: "file_outline",
|
|
948
|
-
projection: "outline",
|
|
949
|
-
sourceLayer,
|
|
950
|
-
reason: typeof result["reason"] === "string" ? result["reason"] : "FILE_OUTLINE",
|
|
951
|
-
footprint: {
|
|
952
|
-
paths: [footprintPath],
|
|
953
|
-
symbols: [],
|
|
954
|
-
regions: [],
|
|
955
|
-
},
|
|
956
|
-
};
|
|
957
|
-
}
|
|
670
|
+
private async buildPersistedLocalHistoryGraphContext(
|
|
671
|
+
binding: BoundWorkspace,
|
|
672
|
+
): Promise<PersistedLocalHistoryGraphContext | null> {
|
|
673
|
+
return buildPersistedLocalHistoryGraphContext(binding.worktreeRoot, binding.getWarp);
|
|
674
|
+
}
|
|
958
675
|
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
typeof startLine !== "number" ||
|
|
964
|
-
typeof endLine !== "number"
|
|
965
|
-
) {
|
|
966
|
-
return null;
|
|
967
|
-
}
|
|
968
|
-
return {
|
|
969
|
-
surface: "read_range",
|
|
970
|
-
projection: "content",
|
|
971
|
-
sourceLayer,
|
|
972
|
-
reason: typeof result["reason"] === "string" ? result["reason"] : "READ_RANGE",
|
|
973
|
-
footprint: {
|
|
974
|
-
paths: [footprintPath],
|
|
975
|
-
symbols: [],
|
|
976
|
-
regions: [{
|
|
977
|
-
path: footprintPath,
|
|
978
|
-
startLine,
|
|
979
|
-
endLine,
|
|
980
|
-
}],
|
|
981
|
-
},
|
|
982
|
-
};
|
|
676
|
+
private async buildPersistedLocalHistoryGraphContextFromExecution(
|
|
677
|
+
execution: WorkspaceExecutionContext,
|
|
678
|
+
): Promise<PersistedLocalHistoryGraphContext | null> {
|
|
679
|
+
return buildPersistedLocalHistoryGraphContext(execution.worktreeRoot, execution.getWarp);
|
|
983
680
|
}
|
|
984
681
|
}
|