@flyingrobots/graft 0.4.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 +139 -0
- package/CHANGELOG.md +128 -0
- package/CODE_OF_CONDUCT.md +65 -0
- package/README.md +117 -143
- package/bin/graft.js +6 -14
- 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 +65 -0
- package/docs/MCP.md +63 -0
- package/package.json +31 -4
- package/src/adapters/node-fs.ts +4 -0
- package/src/adapters/node-git.ts +47 -0
- package/src/adapters/node-process-runner.ts +27 -0
- 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 +83 -11
- 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 +82 -72
- 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 +150 -0
- package/src/cli/migrate-local-history.ts +118 -0
- package/src/cli/peer-command.ts +59 -0
- package/src/contracts/capabilities.ts +450 -0
- package/src/contracts/causal-ontology.ts +627 -0
- package/src/contracts/causal-surface-next-action.ts +18 -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 +1230 -0
- package/src/git/diff.ts +25 -21
- package/src/git/target-git-hook-bootstrap.ts +56 -0
- package/src/hooks/posttooluse-read.ts +21 -74
- package/src/hooks/pretooluse-read.ts +20 -56
- package/src/hooks/read-governor.ts +95 -0
- package/src/hooks/read-messages.ts +53 -0
- package/src/index.ts +1 -0
- package/src/mcp/burden.ts +123 -0
- package/src/mcp/cache.ts +7 -94
- package/src/mcp/cached-file.ts +1 -38
- package/src/mcp/context.ts +147 -14
- 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 +310 -0
- package/src/mcp/daemon-job-scheduler.ts +279 -0
- package/src/mcp/daemon-repos.ts +99 -0
- package/src/mcp/daemon-server.ts +165 -0
- 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 -0
- package/src/mcp/daemon-worker-process.ts +52 -0
- package/src/mcp/daemon-worker-types.ts +66 -0
- package/src/mcp/metrics.ts +127 -4
- package/src/mcp/monitor-health.ts +83 -0
- package/src/mcp/monitor-persistence.ts +54 -0
- package/src/mcp/monitor-tick-job.ts +102 -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 +1621 -0
- package/src/mcp/persistent-monitor-runtime.ts +445 -0
- package/src/mcp/policy.ts +75 -0
- package/src/mcp/receipt.ts +136 -18
- package/src/mcp/repo-concurrency.ts +392 -0
- 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 +146 -0
- package/src/mcp/repo-tool-job.ts +102 -0
- package/src/mcp/repo-tool-worker-context.ts +212 -0
- package/src/mcp/repo-workspace.ts +21 -0
- package/src/mcp/run-capture-config.ts +33 -0
- package/src/mcp/runtime-causal-context.ts +72 -0
- package/src/mcp/runtime-observability.ts +217 -0
- package/src/mcp/runtime-staged-target.ts +161 -0
- package/src/mcp/runtime-workspace-overlay.ts +255 -0
- package/src/mcp/secret-scrub.ts +89 -0
- package/src/mcp/semantic-transition-guidance.ts +60 -0
- package/src/mcp/semantic-transition-summary.ts +130 -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 +207 -126
- package/src/mcp/stdio-server.ts +26 -0
- package/src/mcp/stdio.ts +2 -5
- package/src/mcp/tool-registry.ts +80 -0
- package/src/mcp/tools/activity-view.ts +325 -0
- package/src/mcp/tools/budget.ts +10 -7
- package/src/mcp/tools/causal-attach.ts +67 -0
- package/src/mcp/tools/causal-status.ts +58 -0
- package/src/mcp/tools/changed-since.ts +16 -13
- package/src/mcp/tools/code-find.ts +169 -0
- package/src/mcp/tools/code-refs.ts +470 -0
- package/src/mcp/tools/code-show.ts +262 -0
- package/src/mcp/tools/daemon-monitors.ts +14 -0
- package/src/mcp/tools/daemon-repos.ts +22 -0
- package/src/mcp/tools/daemon-sessions.ts +14 -0
- package/src/mcp/tools/daemon-status.ts +12 -0
- package/src/mcp/tools/diagnostic-models.ts +95 -0
- package/src/mcp/tools/doctor.ts +54 -8
- package/src/mcp/tools/explain.ts +7 -3
- package/src/mcp/tools/file-outline.ts +17 -7
- package/src/mcp/tools/git-files.ts +73 -0
- package/src/mcp/tools/graft-diff.ts +17 -6
- package/src/mcp/tools/map-collector.ts +338 -0
- package/src/mcp/tools/map.ts +142 -39
- package/src/mcp/tools/monitor-pause.ts +18 -0
- package/src/mcp/tools/monitor-resume.ts +18 -0
- package/src/mcp/tools/monitor-start.ts +20 -0
- package/src/mcp/tools/monitor-stop.ts +18 -0
- package/src/mcp/tools/precision-live.ts +158 -0
- package/src/mcp/tools/precision-match.ts +54 -0
- package/src/mcp/tools/precision-paths.ts +59 -0
- package/src/mcp/tools/precision-query.ts +127 -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 +21 -0
- package/src/mcp/tools/read-range.ts +12 -5
- package/src/mcp/tools/run-capture.ts +128 -46
- package/src/mcp/tools/safe-read.ts +33 -20
- package/src/mcp/tools/since.ts +13 -4
- package/src/mcp/tools/state.ts +19 -10
- package/src/mcp/tools/stats.ts +8 -4
- package/src/mcp/tools/workspace-authorizations.ts +14 -0
- package/src/mcp/tools/workspace-authorize.ts +20 -0
- package/src/mcp/tools/workspace-bind.ts +25 -0
- package/src/mcp/tools/workspace-rebind.ts +25 -0
- package/src/mcp/tools/workspace-revoke.ts +18 -0
- package/src/mcp/tools/workspace-status.ts +12 -0
- package/src/mcp/warp-pool.ts +36 -0
- 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 +681 -0
- 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 +13 -3
- package/src/operations/graft-diff.ts +56 -11
- 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 +30 -8
- package/src/operations/state.ts +48 -15
- 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 +66 -7
- package/src/parser/markdown.ts +197 -0
- package/src/parser/outline.ts +27 -38
- package/src/parser/runtime.ts +71 -0
- package/src/parser/types.ts +9 -1
- package/src/policy/evaluate.ts +2 -2
- package/src/policy/types.ts +12 -11
- package/src/ports/filesystem.ts +1 -0
- package/src/ports/git.ts +16 -0
- package/src/ports/guards.ts +68 -0
- package/src/ports/process-runner.ts +22 -0
- package/src/ports/warp.ts +55 -0
- package/src/release/security-gate.ts +102 -0
- package/src/session/tracker.ts +34 -3
- package/src/session/types.ts +4 -1
- package/src/version.ts +3 -0
- 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 +141 -353
- package/src/warp/observers.ts +7 -12
- package/src/warp/open.ts +70 -7
- package/src/warp/plumbing.d.ts +5 -1
- package/src/warp/symbol-identity.ts +100 -0
- package/src/warp/writer-id.ts +30 -0
- package/docs/GUIDE.md +0 -388
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../src/warp/open.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,UAAU,EAAE,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAS/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAOtC,SAAS,SAAS,CAAC,IAAsB;IAKvC,OAAO;QACL,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACpE,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAwC;IAGpE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;QACL,MAAM,EAAE;YACN,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;YACzB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;SAChC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,GAAe;IAClC,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,MAAc;YAC1B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QACD,QAAQ,CAAC,IAAI,EAAE,OAAO;YACpB,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAA0B,CAAC;QAC/F,CAAC;QACD,KAAK,CAAC,KAAK;YACT,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAoC,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,KAAK,CAAC,WAAW;YACf,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,mBAAmB;YACvB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,OAAO,QAA6C,CAAC;QACvD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,WAAW,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEtD,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;QAChC,WAAW;QACX,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,sBAAsB;QACpD,gBAAgB,EAAE,SAAS;KAC5B,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { OutlineEntry } from "../parser/types.js";
|
|
2
|
+
export type SymbolIdentityMap = ReadonlyMap<string, string>;
|
|
3
|
+
export declare function buildSymbolPath(parentPath: string, name: string): string;
|
|
4
|
+
export declare function assignCanonicalSymbolIdentities(input: {
|
|
5
|
+
oldEntries: readonly OutlineEntry[];
|
|
6
|
+
newEntries: readonly OutlineEntry[];
|
|
7
|
+
oldIdentityByPath: SymbolIdentityMap;
|
|
8
|
+
commitSha: string;
|
|
9
|
+
filePath: string;
|
|
10
|
+
}): Map<string, string>;
|
|
11
|
+
//# sourceMappingURL=symbol-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol-identity.d.ts","sourceRoot":"","sources":["../../src/warp/symbol-identity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5D,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAExE;AAmBD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;IACpC,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;IACpC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAetB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
import { diffOutlines } from "../parser/diff.js";
|
|
3
|
+
export function buildSymbolPath(parentPath, name) {
|
|
4
|
+
return parentPath.length > 0 ? `${parentPath}.${name}` : name;
|
|
5
|
+
}
|
|
6
|
+
function mintCanonicalSymbolIdentity(commitSha, filePath, symbolPath, entry) {
|
|
7
|
+
const seed = [
|
|
8
|
+
commitSha,
|
|
9
|
+
filePath,
|
|
10
|
+
symbolPath,
|
|
11
|
+
entry.kind,
|
|
12
|
+
entry.signature ?? "",
|
|
13
|
+
String(entry.exported),
|
|
14
|
+
].join("\n");
|
|
15
|
+
return `sid:${crypto.createHash("sha256").update(seed).digest("hex").slice(0, 16)}`;
|
|
16
|
+
}
|
|
17
|
+
export function assignCanonicalSymbolIdentities(input) {
|
|
18
|
+
const assigned = new Map();
|
|
19
|
+
assignLevel({
|
|
20
|
+
oldEntries: input.oldEntries,
|
|
21
|
+
newEntries: input.newEntries,
|
|
22
|
+
oldIdentityByPath: input.oldIdentityByPath,
|
|
23
|
+
commitSha: input.commitSha,
|
|
24
|
+
filePath: input.filePath,
|
|
25
|
+
oldParentPath: "",
|
|
26
|
+
newParentPath: "",
|
|
27
|
+
assigned,
|
|
28
|
+
});
|
|
29
|
+
return assigned;
|
|
30
|
+
}
|
|
31
|
+
function assignLevel(input) {
|
|
32
|
+
const oldByName = new Map();
|
|
33
|
+
for (const entry of input.oldEntries) {
|
|
34
|
+
oldByName.set(entry.name, entry);
|
|
35
|
+
}
|
|
36
|
+
const continuityByNewName = new Map();
|
|
37
|
+
const diff = diffOutlines(input.oldEntries, input.newEntries);
|
|
38
|
+
for (const continuity of diff.continuity) {
|
|
39
|
+
continuityByNewName.set(continuity.newName, continuity.oldName);
|
|
40
|
+
}
|
|
41
|
+
for (const newEntry of input.newEntries) {
|
|
42
|
+
const newSymbolPath = buildSymbolPath(input.newParentPath, newEntry.name);
|
|
43
|
+
const oldName = oldByName.has(newEntry.name)
|
|
44
|
+
? newEntry.name
|
|
45
|
+
: continuityByNewName.get(newEntry.name);
|
|
46
|
+
const oldEntry = oldName !== undefined ? oldByName.get(oldName) : undefined;
|
|
47
|
+
const oldSymbolPath = oldName !== undefined
|
|
48
|
+
? buildSymbolPath(input.oldParentPath, oldName)
|
|
49
|
+
: null;
|
|
50
|
+
const identityId = oldSymbolPath !== null
|
|
51
|
+
? input.oldIdentityByPath.get(oldSymbolPath) ??
|
|
52
|
+
mintCanonicalSymbolIdentity(input.commitSha, input.filePath, newSymbolPath, newEntry)
|
|
53
|
+
: mintCanonicalSymbolIdentity(input.commitSha, input.filePath, newSymbolPath, newEntry);
|
|
54
|
+
input.assigned.set(newSymbolPath, identityId);
|
|
55
|
+
assignLevel({
|
|
56
|
+
oldEntries: oldEntry?.children ?? [],
|
|
57
|
+
newEntries: newEntry.children ?? [],
|
|
58
|
+
oldIdentityByPath: input.oldIdentityByPath,
|
|
59
|
+
commitSha: input.commitSha,
|
|
60
|
+
filePath: input.filePath,
|
|
61
|
+
oldParentPath: oldSymbolPath ?? "",
|
|
62
|
+
newParentPath: newSymbolPath,
|
|
63
|
+
assigned: input.assigned,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=symbol-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol-identity.js","sourceRoot":"","sources":["../../src/warp/symbol-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const DEFAULT_WARP_WRITER_ID = "graft";
|
|
2
|
+
export declare function buildWarpWriterId(kind: string, scope?: string): string;
|
|
3
|
+
export declare function buildSessionWarpWriterId(sessionId: string): string;
|
|
4
|
+
export declare function buildMonitorWarpWriterId(repoId: string): string;
|
|
5
|
+
//# sourceMappingURL=writer-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer-id.d.ts","sourceRoot":"","sources":["../../src/warp/writer-id.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAW9C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAQtE;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/D"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as crypto from "node:crypto";
|
|
2
|
+
export const DEFAULT_WARP_WRITER_ID = "graft";
|
|
3
|
+
function sanitizeSegment(input) {
|
|
4
|
+
const normalized = input
|
|
5
|
+
.trim()
|
|
6
|
+
.toLowerCase()
|
|
7
|
+
.replace(/[^a-z0-9_-]+/g, "_")
|
|
8
|
+
.replace(/^_+|_+$/g, "");
|
|
9
|
+
return normalized.length > 0 ? normalized : "lane";
|
|
10
|
+
}
|
|
11
|
+
export function buildWarpWriterId(kind, scope) {
|
|
12
|
+
const lane = sanitizeSegment(kind);
|
|
13
|
+
if (scope === undefined || scope.trim().length === 0) {
|
|
14
|
+
return `graft_${lane}`;
|
|
15
|
+
}
|
|
16
|
+
const digest = crypto.createHash("sha256").update(scope).digest("hex").slice(0, 12);
|
|
17
|
+
return `graft_${lane}_${digest}`;
|
|
18
|
+
}
|
|
19
|
+
export function buildSessionWarpWriterId(sessionId) {
|
|
20
|
+
return buildWarpWriterId("session", sessionId);
|
|
21
|
+
}
|
|
22
|
+
export function buildMonitorWarpWriterId(repoId) {
|
|
23
|
+
return buildWarpWriterId("monitor", repoId);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=writer-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer-id.js","sourceRoot":"","sources":["../../src/warp/writer-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAE9C,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,UAAU,GAAG,KAAK;SACrB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,KAAc;IAC5D,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,SAAS,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpF,OAAO,SAAS,IAAI,IAAI,MAAM,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,SAAiB;IACxD,OAAO,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,OAAO,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC"}
|
package/docs/CLI.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# CLI
|
|
2
|
+
|
|
3
|
+
The Graft command surface is a composite of published binaries and repo-local operator scripts.
|
|
4
|
+
|
|
5
|
+
```mermaid
|
|
6
|
+
flowchart LR
|
|
7
|
+
A[Graft CLI Surface] --> B[Lifecycle]
|
|
8
|
+
A --> C[Namespaces]
|
|
9
|
+
B --> B1[init]
|
|
10
|
+
B --> B2[serve]
|
|
11
|
+
B --> B3[daemon]
|
|
12
|
+
B --> B4[index]
|
|
13
|
+
B --> B5[migrate local-history]
|
|
14
|
+
C --> C1[read]
|
|
15
|
+
C --> C2[struct]
|
|
16
|
+
C --> C3[symbol]
|
|
17
|
+
C --> C4[diag]
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## What it is for
|
|
21
|
+
- bootstrap and setup via `graft init`
|
|
22
|
+
- one-time legacy import via `graft migrate local-history`
|
|
23
|
+
- local debugging and dogfooding of MCP peer commands
|
|
24
|
+
- human-facing inspection of bounded state such as:
|
|
25
|
+
- `graft diag activity`
|
|
26
|
+
- `graft diag local-history-dag`
|
|
27
|
+
- `graft diag doctor`
|
|
28
|
+
- `graft diag stats`
|
|
29
|
+
|
|
30
|
+
## Core namespaces
|
|
31
|
+
- `read` — bounded reads and change checks
|
|
32
|
+
- `struct` — structural diff / since / map
|
|
33
|
+
- `symbol` — precision show / find
|
|
34
|
+
- `diag` — activity, local-history-dag, doctor, explain, stats, capture
|
|
35
|
+
|
|
36
|
+
## Release-facing commands
|
|
37
|
+
```bash
|
|
38
|
+
graft migrate local-history --json
|
|
39
|
+
graft diag activity --json
|
|
40
|
+
graft diag local-history-dag --json
|
|
41
|
+
graft diag doctor --json
|
|
42
|
+
graft symbol find 'create*' --json
|
|
43
|
+
graft struct diff --json
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Repo-local invocation
|
|
47
|
+
When working from this checkout, use one of these forms:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
pnpm graft diag activity
|
|
51
|
+
./bin/graft.js diag activity
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Bare `graft ...` only works when the package is installed or linked onto your `PATH`.
|
|
55
|
+
|
|
56
|
+
`graft diag activity` is the current human-facing between-commit surface. It reports bounded local `artifact_history`, not canonical provenance, and now renders a textual operator summary by default. Use `--json` when you want the structured machine-readable form.
|
|
57
|
+
|
|
58
|
+
`graft diag local-history-dag` is a CLI-only debug surface over the repo-local WARP graph. It renders a bounded event-centric DAG for local history through Bijou's `dag()` component. In interactive terminals that means the Bijou DAG layout; in pipes or non-TTY contexts it degrades to Bijou's truthful pipe-mode graph listing.
|
|
59
|
+
|
|
60
|
+
## Related docs
|
|
61
|
+
- [README](../README.md)
|
|
62
|
+
- [Setup Guide](./SETUP.md)
|
|
63
|
+
- [MCP Guide](./MCP.md)
|
|
64
|
+
- [Advanced Guide](./ADVANCED_GUIDE.md)
|
|
65
|
+
- [Architecture](../ARCHITECTURE.md)
|
package/docs/MCP.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# MCP
|
|
2
|
+
|
|
3
|
+
Graft is a high-fidelity tool provider for the Model Context Protocol (MCP).
|
|
4
|
+
|
|
5
|
+
```mermaid
|
|
6
|
+
sequenceDiagram
|
|
7
|
+
participant Client
|
|
8
|
+
participant Server as Graft Server
|
|
9
|
+
participant Policy as Policy Engine
|
|
10
|
+
participant Parser as Tree-Sitter
|
|
11
|
+
Client->>Server: call tool(safe_read, path)
|
|
12
|
+
Server->>Policy: evaluate(path, session)
|
|
13
|
+
Policy-->>Server: ALLOW (outline)
|
|
14
|
+
Server->>Parser: extract outline
|
|
15
|
+
Parser-->>Server: Outline + JumpTable
|
|
16
|
+
Server-->>Client: respond(JSON + Receipt)
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Startup
|
|
20
|
+
|
|
21
|
+
### Repo-local stdio MCP
|
|
22
|
+
```bash
|
|
23
|
+
npx @flyingrobots/graft serve
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
This is the default repo-local MCP posture. The current checkout is the
|
|
27
|
+
active workspace, so there is no separate daemon authorization or
|
|
28
|
+
binding step.
|
|
29
|
+
|
|
30
|
+
### Local Daemon
|
|
31
|
+
```bash
|
|
32
|
+
npx @flyingrobots/graft daemon
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Daemon sessions start `unbound`. Once a client is connected to the
|
|
36
|
+
daemon MCP surface, repository-scoped work follows this control-plane
|
|
37
|
+
flow:
|
|
38
|
+
|
|
39
|
+
1. `workspace_authorize` with the target `cwd`
|
|
40
|
+
2. `workspace_bind` with the target `cwd`
|
|
41
|
+
3. then call repository-scoped tools such as `safe_read`, `graft_since`,
|
|
42
|
+
or `code_show`
|
|
43
|
+
|
|
44
|
+
## Key Tool Groups
|
|
45
|
+
- **Bounded Reads**: `safe_read`, `file_outline`, `read_range`, `changed_since`
|
|
46
|
+
- **Structural History**: `graft_diff`, `graft_since`, `graft_map`
|
|
47
|
+
- **Precision**: `code_show`, `code_find`, `code_refs`
|
|
48
|
+
- **Activity & Footing**: `activity_view`, `causal_status`, `causal_attach`, `doctor`
|
|
49
|
+
- **Daemon Control Plane**: `workspace_authorizations`, `workspace_authorize`, `workspace_bind`, `workspace_status`, `workspace_rebind`, `workspace_revoke`, `daemon_status`, `daemon_repos`, `daemon_sessions`, `daemon_monitors`, `monitor_*`
|
|
50
|
+
|
|
51
|
+
## Current Truth
|
|
52
|
+
- MCP is the primary agent surface.
|
|
53
|
+
- Responses carry versioned `_schema` metadata and `_receipt` decision data.
|
|
54
|
+
- `activity_view` provides bounded local `artifact_history` anchored to Git `HEAD`.
|
|
55
|
+
|
|
56
|
+
## Related docs
|
|
57
|
+
- [README](../README.md)
|
|
58
|
+
- [Setup Guide](./SETUP.md)
|
|
59
|
+
- [CLI Guide](./CLI.md)
|
|
60
|
+
- [Advanced Guide](./ADVANCED_GUIDE.md)
|
|
61
|
+
- [Architecture](../ARCHITECTURE.md)
|
|
62
|
+
- [Security Model](./strategy/security-model.md)
|
|
63
|
+
- [Causal Provenance](./strategy/causal-provenance.md)
|
package/package.json
CHANGED
|
@@ -1,29 +1,49 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flyingrobots/graft",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Context governor
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "Context governor and between-commit activity surface for coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@10.30.0",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./package.json": "./package.json"
|
|
15
|
+
},
|
|
7
16
|
"bin": {
|
|
8
17
|
"graft": "./bin/graft.js",
|
|
9
18
|
"git-graft": "./bin/graft.js"
|
|
10
19
|
},
|
|
11
20
|
"files": [
|
|
12
21
|
"bin/",
|
|
22
|
+
"dist/",
|
|
13
23
|
"src/",
|
|
24
|
+
"ARCHITECTURE.md",
|
|
25
|
+
"CODE_OF_CONDUCT.md",
|
|
26
|
+
"docs/ADVANCED_GUIDE.md",
|
|
27
|
+
"docs/CLI.md",
|
|
14
28
|
"docs/GUIDE.md",
|
|
29
|
+
"docs/MCP.md",
|
|
15
30
|
"LICENSE",
|
|
16
31
|
"NOTICE",
|
|
17
32
|
"README.md",
|
|
18
33
|
"CHANGELOG.md"
|
|
19
34
|
],
|
|
20
35
|
"scripts": {
|
|
36
|
+
"graft": "node ./bin/graft.js",
|
|
21
37
|
"build": "tsc -p tsconfig.build.json",
|
|
38
|
+
"prepack": "pnpm build",
|
|
22
39
|
"test": "vitest run",
|
|
23
40
|
"test:watch": "vitest",
|
|
24
41
|
"lint": "eslint .",
|
|
25
42
|
"typecheck": "tsc --noEmit",
|
|
26
|
-
"pack:check": "pnpm pack --dry-run"
|
|
43
|
+
"pack:check": "pnpm pack --dry-run",
|
|
44
|
+
"security:check": "tsx scripts/check-release-security.ts",
|
|
45
|
+
"release:surface-gate": "vitest run --run test/unit/release/package-library-surface.test.ts test/unit/release/three-surface-capability-posture.test.ts",
|
|
46
|
+
"release:check": "pnpm lint && pnpm typecheck && pnpm release:surface-gate && pnpm test && pnpm security:check && pnpm pack:check"
|
|
27
47
|
},
|
|
28
48
|
"engines": {
|
|
29
49
|
"node": ">=20.11.0"
|
|
@@ -57,6 +77,8 @@
|
|
|
57
77
|
"url": "git+https://github.com/flyingrobots/graft.git"
|
|
58
78
|
},
|
|
59
79
|
"dependencies": {
|
|
80
|
+
"@flyingrobots/bijou": "^4.4.1",
|
|
81
|
+
"@flyingrobots/bijou-node": "^4.4.1",
|
|
60
82
|
"@git-stunts/git-warp": "^16.0.0",
|
|
61
83
|
"@git-stunts/plumbing": "^2.8.0",
|
|
62
84
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
@@ -74,9 +96,14 @@
|
|
|
74
96
|
"globals": "^17.4.0",
|
|
75
97
|
"typescript": "^6.0.2",
|
|
76
98
|
"typescript-eslint": "^8.58.0",
|
|
99
|
+
"vite": "^8.0.5",
|
|
77
100
|
"vitest": "^4.1.2"
|
|
78
101
|
},
|
|
79
102
|
"pnpm": {
|
|
80
|
-
"onlyBuiltDependencies": []
|
|
103
|
+
"onlyBuiltDependencies": [],
|
|
104
|
+
"overrides": {
|
|
105
|
+
"vite": "^8.0.5",
|
|
106
|
+
"hono": ">=4.12.14"
|
|
107
|
+
}
|
|
81
108
|
}
|
|
82
109
|
}
|
package/src/adapters/node-fs.ts
CHANGED
|
@@ -14,6 +14,10 @@ class NodeFileSystem implements FileSystem {
|
|
|
14
14
|
return fsp.readFile(path);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
readdir(path: string): Promise<string[]> {
|
|
18
|
+
return fsp.readdir(path);
|
|
19
|
+
}
|
|
20
|
+
|
|
17
21
|
writeFile(path: string, data: string, encoding: "utf-8"): Promise<void> {
|
|
18
22
|
return fsp.writeFile(path, data, encoding);
|
|
19
23
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// NodeGitClient — implements the GitClient port via GitPlumbing
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
import GitPlumbing from "@git-stunts/plumbing";
|
|
6
|
+
import type { GitClient, GitRunRequest } from "../ports/git.js";
|
|
7
|
+
|
|
8
|
+
class NodeGitClient implements GitClient {
|
|
9
|
+
private readonly clients = new Map<string, GitPlumbing>();
|
|
10
|
+
|
|
11
|
+
private resolveClient(cwd: string): GitPlumbing {
|
|
12
|
+
const cached = this.clients.get(cwd);
|
|
13
|
+
if (cached !== undefined) return cached;
|
|
14
|
+
const created = GitPlumbing.createDefault({ cwd });
|
|
15
|
+
this.clients.set(cwd, created);
|
|
16
|
+
return created;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async run(request: GitRunRequest) {
|
|
20
|
+
try {
|
|
21
|
+
const plumbing = this.resolveClient(request.cwd);
|
|
22
|
+
const stream = await plumbing.executeStream({ args: [...request.args] });
|
|
23
|
+
const stdout = await stream.collect({
|
|
24
|
+
asString: true,
|
|
25
|
+
...(request.maxBufferBytes !== undefined ? { maxBytes: request.maxBufferBytes } : {}),
|
|
26
|
+
});
|
|
27
|
+
const finished = await stream.finished;
|
|
28
|
+
const error = "error" in finished && finished.error instanceof Error ? finished.error : undefined;
|
|
29
|
+
return {
|
|
30
|
+
status: finished.code,
|
|
31
|
+
stdout: typeof stdout === "string" ? stdout : new TextDecoder().decode(stdout),
|
|
32
|
+
stderr: finished.stderr,
|
|
33
|
+
...(error !== undefined ? { error } : {}),
|
|
34
|
+
};
|
|
35
|
+
} catch (error: unknown) {
|
|
36
|
+
const normalized = error instanceof Error ? error : new Error(String(error));
|
|
37
|
+
return {
|
|
38
|
+
status: 1,
|
|
39
|
+
stdout: "",
|
|
40
|
+
stderr: normalized.message,
|
|
41
|
+
error: normalized,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export const nodeGit: GitClient = new NodeGitClient();
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// NodeProcessRunner — implements the ProcessRunner port
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
import { spawnSync } from "node:child_process";
|
|
6
|
+
import type { ProcessRunRequest, ProcessRunResult, ProcessRunner } from "../ports/process-runner.js";
|
|
7
|
+
|
|
8
|
+
class NodeProcessRunner implements ProcessRunner {
|
|
9
|
+
run(request: ProcessRunRequest): ProcessRunResult {
|
|
10
|
+
const result = spawnSync(request.command, [...request.args], {
|
|
11
|
+
cwd: request.cwd,
|
|
12
|
+
encoding: "utf-8",
|
|
13
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
14
|
+
...(request.timeoutMs !== undefined ? { timeout: request.timeoutMs } : {}),
|
|
15
|
+
...(request.maxBufferBytes !== undefined ? { maxBuffer: request.maxBufferBytes } : {}),
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
return {
|
|
19
|
+
status: result.status,
|
|
20
|
+
stdout: typeof result.stdout === "string" ? result.stdout : "",
|
|
21
|
+
stderr: typeof result.stderr === "string" ? result.stderr : "",
|
|
22
|
+
...(result.error !== undefined ? { error: result.error } : {}),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const nodeProcessRunner: ProcessRunner = new NodeProcessRunner();
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
|
|
3
|
+
export function createRepoPathResolver(projectRoot: string): (input: string) => string {
|
|
4
|
+
return (input: string): string => {
|
|
5
|
+
if (path.isAbsolute(input)) return input;
|
|
6
|
+
const resolved = path.resolve(projectRoot, input);
|
|
7
|
+
const relative = path.relative(projectRoot, resolved);
|
|
8
|
+
if (relative.startsWith("..")) {
|
|
9
|
+
throw new Error(`Path traversal blocked: ${input}`);
|
|
10
|
+
}
|
|
11
|
+
return resolved;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function toRepoPolicyPath(projectRoot: string, filePath: string): string {
|
|
16
|
+
const absolutePath = path.isAbsolute(filePath) ? filePath : path.resolve(projectRoot, filePath);
|
|
17
|
+
const relativePath = path.relative(projectRoot, absolutePath);
|
|
18
|
+
if (relativePath.length === 0 || relativePath.startsWith("..") || path.isAbsolute(relativePath)) {
|
|
19
|
+
return absolutePath;
|
|
20
|
+
}
|
|
21
|
+
return relativePath.split(path.sep).join("/");
|
|
22
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
import type { JsonCodec } from "../ports/codec.js";
|
|
3
|
+
import type { FileSystem } from "../ports/filesystem.js";
|
|
4
|
+
|
|
5
|
+
export interface RotatingNdjsonLogOptions {
|
|
6
|
+
readonly fs: FileSystem;
|
|
7
|
+
readonly codec: JsonCodec;
|
|
8
|
+
readonly logPath: string;
|
|
9
|
+
readonly maxBytes?: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const DEFAULT_MAX_BYTES = 1_048_576;
|
|
13
|
+
|
|
14
|
+
export class RotatingNdjsonLog {
|
|
15
|
+
private readonly fs: FileSystem;
|
|
16
|
+
private readonly codec: JsonCodec;
|
|
17
|
+
private readonly logPath: string;
|
|
18
|
+
private readonly maxBytes: number;
|
|
19
|
+
|
|
20
|
+
constructor(options: RotatingNdjsonLogOptions) {
|
|
21
|
+
this.fs = options.fs;
|
|
22
|
+
this.codec = options.codec;
|
|
23
|
+
this.logPath = options.logPath;
|
|
24
|
+
this.maxBytes = options.maxBytes ?? DEFAULT_MAX_BYTES;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async append(entry: object): Promise<void> {
|
|
28
|
+
const line = this.codec.encode(entry) + "\n";
|
|
29
|
+
const dir = path.dirname(this.logPath);
|
|
30
|
+
await this.fs.mkdir(dir, { recursive: true });
|
|
31
|
+
await this.fs.appendFile(this.logPath, line, "utf-8");
|
|
32
|
+
await this.rotateIfNeeded();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
private async rotateIfNeeded(): Promise<void> {
|
|
36
|
+
let stat: { size: number };
|
|
37
|
+
try {
|
|
38
|
+
stat = await this.fs.stat(this.logPath);
|
|
39
|
+
} catch {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (stat.size <= this.maxBytes) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const content = await this.fs.readFile(this.logPath, "utf-8");
|
|
48
|
+
const lines = content.trimEnd().split("\n");
|
|
49
|
+
let kept = lines.slice(Math.ceil(lines.length / 2));
|
|
50
|
+
|
|
51
|
+
// If slicing left nothing (e.g. a single oversized entry), skip rotation —
|
|
52
|
+
// the file is already at minimum size (one entry).
|
|
53
|
+
if (kept.length === 0) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
let result = kept.join("\n") + "\n";
|
|
58
|
+
|
|
59
|
+
while (Buffer.byteLength(result, "utf-8") > this.maxBytes && kept.length > 1) {
|
|
60
|
+
kept = kept.slice(Math.ceil(kept.length / 2));
|
|
61
|
+
result = kept.join("\n") + "\n";
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
await this.fs.writeFile(this.logPath, result, "utf-8");
|
|
65
|
+
}
|
|
66
|
+
}
|
package/src/api/index.ts
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { startDaemonServer } from "../mcp/daemon-server.js";
|
|
2
|
+
import { MCP_TOOL_NAMES } from "../contracts/capabilities.js";
|
|
3
|
+
import { createGraftServer } from "../mcp/server.js";
|
|
4
|
+
import { startStdioServer } from "../mcp/stdio-server.js";
|
|
5
|
+
import { ObservationCache } from "../operations/observation-cache.js";
|
|
6
|
+
import { RepoWorkspace } from "../operations/repo-workspace.js";
|
|
7
|
+
import { StructuredBuffer } from "../operations/structured-buffer.js";
|
|
8
|
+
import type { BufferRange, WarmProjectionBasis, WarmProjectionBundleResult } from "../operations/structured-buffer.js";
|
|
9
|
+
import { GRAFT_VERSION } from "../version.js";
|
|
10
|
+
export { createRepoLocalGraft, type CreateRepoLocalGraftOptions } from "./repo-local-graft.js";
|
|
11
|
+
export { createRepoWorkspace, type CreateRepoWorkspaceOptions } from "./repo-workspace.js";
|
|
12
|
+
export { callGraftTool, parseGraftToolPayload } from "./tool-bridge.js";
|
|
13
|
+
|
|
14
|
+
export interface CreateStructuredBufferOptions {
|
|
15
|
+
readonly basis?: WarmProjectionBasis | undefined;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface CreateProjectionBundleOptions extends CreateStructuredBufferOptions {
|
|
19
|
+
readonly viewport?: BufferRange | undefined;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function createStructuredBuffer(
|
|
23
|
+
path: string,
|
|
24
|
+
content: string,
|
|
25
|
+
options: CreateStructuredBufferOptions = {},
|
|
26
|
+
): StructuredBuffer {
|
|
27
|
+
return new StructuredBuffer({ path, content, basis: options.basis });
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function createProjectionBundle(
|
|
31
|
+
path: string,
|
|
32
|
+
content: string,
|
|
33
|
+
options: CreateProjectionBundleOptions = {},
|
|
34
|
+
): WarmProjectionBundleResult {
|
|
35
|
+
const buffer = new StructuredBuffer({ path, content, basis: options.basis });
|
|
36
|
+
try {
|
|
37
|
+
return buffer.projectionBundle({ viewport: options.viewport });
|
|
38
|
+
} finally {
|
|
39
|
+
buffer.dispose();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export {
|
|
44
|
+
GRAFT_VERSION,
|
|
45
|
+
MCP_TOOL_NAMES,
|
|
46
|
+
ObservationCache,
|
|
47
|
+
RepoWorkspace,
|
|
48
|
+
StructuredBuffer,
|
|
49
|
+
createGraftServer,
|
|
50
|
+
startDaemonServer,
|
|
51
|
+
startStdioServer,
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export type {
|
|
55
|
+
AnchorAffinityResult,
|
|
56
|
+
BufferDiagnostic,
|
|
57
|
+
BufferOutlineResult,
|
|
58
|
+
BufferPoint,
|
|
59
|
+
BufferRange,
|
|
60
|
+
BufferSelection,
|
|
61
|
+
ChangedRegion,
|
|
62
|
+
DiagnosticsResult,
|
|
63
|
+
FoldRegion,
|
|
64
|
+
FoldRegionsResult,
|
|
65
|
+
InjectionRegion,
|
|
66
|
+
InjectionResult,
|
|
67
|
+
NodeLookupResult,
|
|
68
|
+
NodeSummary,
|
|
69
|
+
RenameEditPreview,
|
|
70
|
+
RenamePreviewResult,
|
|
71
|
+
SelectionStepResult,
|
|
72
|
+
SemanticSummaryKind,
|
|
73
|
+
SemanticSummaryResult,
|
|
74
|
+
StructuredBufferDiffResult,
|
|
75
|
+
SymbolOccurrence,
|
|
76
|
+
SymbolOccurrencesResult,
|
|
77
|
+
SyntaxClass,
|
|
78
|
+
SyntaxSpan,
|
|
79
|
+
SyntaxSpanResult,
|
|
80
|
+
WarmProjectionBundleResult,
|
|
81
|
+
WarmProjectionParseStatus,
|
|
82
|
+
WarmProjectionBasis,
|
|
83
|
+
} from "../operations/structured-buffer.js";
|
|
84
|
+
|
|
85
|
+
export type {
|
|
86
|
+
StartDaemonServerOptions,
|
|
87
|
+
} from "../mcp/daemon-server.js";
|
|
88
|
+
|
|
89
|
+
export type {
|
|
90
|
+
CreateGraftServerOptions,
|
|
91
|
+
GraftServer,
|
|
92
|
+
McpToolResult,
|
|
93
|
+
} from "../mcp/server.js";
|
|
94
|
+
|
|
95
|
+
export type {
|
|
96
|
+
McpToolName,
|
|
97
|
+
} from "../contracts/capabilities.js";
|
|
98
|
+
|
|
99
|
+
export type {
|
|
100
|
+
RepoWorkspaceChangedSinceResult,
|
|
101
|
+
RepoWorkspaceFileOutlineResult,
|
|
102
|
+
RepoWorkspaceReadRangeResult,
|
|
103
|
+
RepoWorkspaceRefusedResult,
|
|
104
|
+
RepoWorkspaceSafeReadCacheHitResult,
|
|
105
|
+
RepoWorkspaceSafeReadDiffResult,
|
|
106
|
+
RepoWorkspaceSafeReadResult,
|
|
107
|
+
} from "../operations/repo-workspace.js";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
import {
|
|
3
|
+
createGraftServer,
|
|
4
|
+
type CreateGraftServerOptions,
|
|
5
|
+
type GraftServer,
|
|
6
|
+
} from "../mcp/server.js";
|
|
7
|
+
|
|
8
|
+
export interface CreateRepoLocalGraftOptions extends Omit<CreateGraftServerOptions, "mode" | "projectRoot" | "graftDir"> {
|
|
9
|
+
readonly cwd?: string | undefined;
|
|
10
|
+
readonly graftDir?: string | undefined;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function createRepoLocalGraft(options: CreateRepoLocalGraftOptions = {}): GraftServer {
|
|
14
|
+
const cwd = path.resolve(options.cwd ?? process.cwd());
|
|
15
|
+
return createGraftServer({
|
|
16
|
+
...options,
|
|
17
|
+
mode: "repo_local",
|
|
18
|
+
projectRoot: cwd,
|
|
19
|
+
graftDir: options.graftDir ?? path.join(cwd, ".graft"),
|
|
20
|
+
});
|
|
21
|
+
}
|