@flyingrobots/graft 0.5.0 → 0.6.1
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/{docs/ADVANCED_GUIDE.md → ADVANCED_GUIDE.md} +10 -7
- package/ARCHITECTURE.md +130 -377
- package/CHANGELOG.md +101 -13
- package/GUIDE.md +53 -0
- 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/docs/{GUIDE.md → SETUP.md} +21 -0
- package/package.json +24 -7
- 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/GUIDE.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Guide — Graft
|
|
2
|
+
|
|
3
|
+
This is the developer-level operator guide for Graft. Use it for orientation, the productive-fast path, and to understand how the context governor orchestrates agentic reads.
|
|
4
|
+
|
|
5
|
+
For deep-track doctrine, worldline internals, and repository-wide engineering standards, use [ADVANCED_GUIDE.md](./ADVANCED_GUIDE.md).
|
|
6
|
+
|
|
7
|
+
## Choose Your Lane
|
|
8
|
+
|
|
9
|
+
### 1. Initialize a Repository
|
|
10
|
+
Bootstrap a new repo with read policies, git hooks, and agent instructions.
|
|
11
|
+
- **Run**: `npx @flyingrobots/graft init`
|
|
12
|
+
- **Read**: [Setup Guide](./docs/SETUP.md) (Detailed per-editor steps)
|
|
13
|
+
|
|
14
|
+
### 2. Standalone CLI Usage
|
|
15
|
+
Manually enforce policies or inspect structural history from your terminal.
|
|
16
|
+
- **Read**: [CLI Signpost](./docs/CLI.md)
|
|
17
|
+
|
|
18
|
+
### 3. Shared Daemon Mode
|
|
19
|
+
Run the central execution authority for multi-repo work and persistent monitors.
|
|
20
|
+
- **Run**: `npx @flyingrobots/graft daemon`
|
|
21
|
+
- **Read**: [docs/SETUP.md](./docs/SETUP.md) (Daemon bootstrap and `workspace_authorize` / `workspace_bind`)
|
|
22
|
+
- **Read**: [Architecture](./ARCHITECTURE.md) (Daemon section)
|
|
23
|
+
|
|
24
|
+
## Big Picture: System Orchestration
|
|
25
|
+
|
|
26
|
+
Graft is a tiered governor. It manages the context burden across three layers:
|
|
27
|
+
|
|
28
|
+
1. **Graft Core (Policy)**: Pure TypeScript logic that evaluates file size, language support, and session budgets to decide *what* an agent should see.
|
|
29
|
+
2. **Parser (Meaning)**: Uses Tree-Sitter WASM to extract structural outlines and compute diffs, turning raw files into actionable meaning.
|
|
30
|
+
3. **WARP (Memory)**: The Structural Worldline Memory that tracks AST evolution across commits, providing a provenance-aware history of the repository.
|
|
31
|
+
|
|
32
|
+
## Orientation Checklist
|
|
33
|
+
|
|
34
|
+
- [ ] **I am setting up a new project**: Start with `README.md` Quick Start.
|
|
35
|
+
- [ ] **I am configuring Claude Code**: Use `npx graft init --write-claude-hooks`.
|
|
36
|
+
- [ ] **I am using daemon mode in a generic MCP client**: Read [docs/SETUP.md](./docs/SETUP.md) and expect explicit `workspace_authorize` then `workspace_bind`.
|
|
37
|
+
- [ ] **I am debugging a structural diff**: Use `npx graft struct diff --json`.
|
|
38
|
+
- [ ] **I am contributing to Graft**: Read `METHOD.md` and `docs/BEARING.md`.
|
|
39
|
+
|
|
40
|
+
## Rule of Thumb
|
|
41
|
+
|
|
42
|
+
If you need a comprehensive tool reference, use the [MCP Signpost](./docs/MCP.md).
|
|
43
|
+
|
|
44
|
+
If you need the daemon trust boundary or handoff model, use
|
|
45
|
+
[docs/strategy/security-model.md](./docs/strategy/security-model.md) and
|
|
46
|
+
[docs/strategy/causal-provenance.md](./docs/strategy/causal-provenance.md).
|
|
47
|
+
|
|
48
|
+
If you need to know "what's true right now," use [docs/BEARING.md](./docs/BEARING.md).
|
|
49
|
+
|
|
50
|
+
If you are just starting, use the [README.md](./README.md) and the setup instructions in [docs/SETUP.md](./docs/SETUP.md).
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
**The goal is inevitably. Every feature is defined by its tests.**
|
package/README.md
CHANGED
|
@@ -1,306 +1,144 @@
|
|
|
1
|
-
|
|
2
|
-
<img src="./docs/assets/graft.svg" />
|
|
3
|
-
<h3>Context governor for coding agents</h3>
|
|
4
|
-
</div>
|
|
1
|
+
# Graft
|
|
5
2
|
|
|
6
|
-
Graft enforces read policy so
|
|
7
|
-
structurally correct view of a codebase instead of dumping entire
|
|
8
|
-
files into their context window. Agent-first, but the structural
|
|
9
|
-
tools (outlines, diffs, symbol history) are useful to anyone.
|
|
3
|
+
An industrial-grade context governor for coding agents. Graft enforces read policy so agents consume the smallest structurally correct view of a codebase instead of dumping raw files into their context window.
|
|
10
4
|
|
|
11
|
-
|
|
5
|
+
Graft is designed for the operator who demands precision and the architect who needs a stable foundation for agentic work. It scales from simple policy-aware reads to high-fidelity causal provenance tracking across multi-session worktrees.
|
|
12
6
|
|
|
13
|
-
|
|
7
|
+
[](https://www.npmjs.com/package/@flyingrobots/graft)
|
|
8
|
+
[](./LICENSE)
|
|
14
9
|
|
|
15
|
-
|
|
16
|
-
that **Read accounts for 96.2 GB of context burden** — 6.6x all
|
|
17
|
-
other tools combined. 58% of reads are full-file. The fattest 2.4%
|
|
18
|
-
of reads produce 24% of raw bytes. Dynamic read caps + session
|
|
19
|
-
management reduce this by **75.1%**.
|
|
10
|
+

|
|
20
11
|
|
|
21
|
-
##
|
|
12
|
+
## Why Graft?
|
|
22
13
|
|
|
23
|
-
|
|
24
|
-
npm install -g @flyingrobots/graft
|
|
25
|
-
```
|
|
14
|
+
Unlike simple file-scraping tools, Graft treats the repository as a layered worldline of code structure and causal activity.
|
|
26
15
|
|
|
27
|
-
|
|
16
|
+
- **Policy-Enforced Reads**: Automatically degrades large files to structural outlines and jump tables. Refuses binaries, secrets, and lockfiles with machine-readable reasons.
|
|
17
|
+
- **Machine-Readable Contracts**: Responses carry versioned `_schema` metadata and decision receipts so agents can reason about outcomes without scraping prose.
|
|
18
|
+
- **Structural Memory**: Uses WARP (Structural Worldline Memory) to track AST evolution across Git commits. Query what changed structurally without reading a single byte of source code.
|
|
19
|
+
- **Causal Provenance**: Tracks the *why* behind structural changes by logging read, stage, and transition activity into strand-scoped causal workspaces.
|
|
20
|
+
- **Industrial-Grade Daemon**: A same-user local runtime that manages multi-repo authorization, background indexing, and shared-machine worker pools.
|
|
28
21
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
## Quick Start
|
|
23
|
+
|
|
24
|
+
Graft has three official entry points:
|
|
32
25
|
|
|
33
|
-
|
|
26
|
+
- **API** for direct in-process integration
|
|
27
|
+
- **CLI** for operator and debugging workflows
|
|
28
|
+
- **MCP** for agent transport integration
|
|
34
29
|
|
|
30
|
+
### 1. Bootstrap a Repo
|
|
31
|
+
Scaffold `.graftignore`, setup git hooks, and seed agent instructions.
|
|
35
32
|
```bash
|
|
36
|
-
|
|
33
|
+
npx @flyingrobots/graft init --write-claude-hooks --write-codex-mcp
|
|
37
34
|
```
|
|
38
35
|
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
### 2. Repo-Local Stdio MCP
|
|
37
|
+
This is the simplest per-repo path for most clients. The current
|
|
38
|
+
checkout is the authority, and there is no separate workspace binding
|
|
39
|
+
step.
|
|
41
40
|
```bash
|
|
42
|
-
npx @flyingrobots/graft
|
|
41
|
+
npx @flyingrobots/graft serve
|
|
43
42
|
```
|
|
44
43
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
prints Claude Code hook / MCP config for manual setup.
|
|
48
|
-
|
|
49
|
-
If you use Codex, the explicit `--write-codex-mcp` path also seeds
|
|
50
|
-
`AGENTS.md` so the repo has both the MCP wiring and the instruction
|
|
51
|
-
layer that tells Codex to prefer graft reads. It also writes a larger
|
|
52
|
-
Codex `startup_timeout_sec` because cold `npx` startup can exceed the
|
|
53
|
-
default 30 second MCP budget.
|
|
54
|
-
|
|
55
|
-
For a project-local one-step bootstrap, use explicit write flags:
|
|
56
|
-
|
|
44
|
+
### 3. Standalone CLI
|
|
45
|
+
Enforce policy on a single read or inspect structural history.
|
|
57
46
|
```bash
|
|
58
|
-
npx @flyingrobots/graft
|
|
59
|
-
npx @flyingrobots/graft
|
|
60
|
-
npx @flyingrobots/graft init --write-windsurf-mcp
|
|
61
|
-
npx @flyingrobots/graft init --write-continue-mcp
|
|
62
|
-
npx @flyingrobots/graft init --write-cline-mcp
|
|
63
|
-
npx @flyingrobots/graft init --write-codex-mcp
|
|
47
|
+
npx @flyingrobots/graft read safe src/app.ts
|
|
48
|
+
npx @flyingrobots/graft struct since HEAD~3
|
|
64
49
|
```
|
|
65
50
|
|
|
66
|
-
|
|
67
|
-
without
|
|
68
|
-
|
|
69
|
-
|
|
51
|
+
### 4. Direct Library API
|
|
52
|
+
Embed Graft in-process when you want direct access without MCP transport
|
|
53
|
+
or CLI process orchestration.
|
|
54
|
+
```ts
|
|
55
|
+
import { createRepoLocalGraft, callGraftTool } from "@flyingrobots/graft";
|
|
70
56
|
|
|
71
|
-
|
|
72
|
-
{
|
|
73
|
-
"mcpServers": {
|
|
74
|
-
"graft": {
|
|
75
|
-
"command": "npx",
|
|
76
|
-
"args": ["-y", "@flyingrobots/graft", "serve"]
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
57
|
+
const graft = createRepoLocalGraft({ cwd: process.cwd() });
|
|
58
|
+
const outline = await callGraftTool(graft, "file_outline", { path: "src/app.ts" });
|
|
80
59
|
```
|
|
81
60
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
behavior differs by client: Claude has hook guardrails, Codex now has
|
|
85
|
-
repo-local `AGENTS.md` bootstrap guidance, and the other clients remain
|
|
86
|
-
MCP-plus-instructions rather than true default-governed reads.
|
|
87
|
-
|
|
88
|
-
Supported deployment posture today is local-user:
|
|
89
|
-
|
|
90
|
-
- repo-local `serve` remains the standard editor bootstrap path
|
|
91
|
-
- `graft daemon` now exists as a separate same-user local runtime on a
|
|
92
|
-
Unix socket or Windows named pipe
|
|
93
|
-
|
|
94
|
-
The daemon still follows a stricter contract than repo-local stdio:
|
|
95
|
-
daemon sessions start unbound, workspace binding is the authorization
|
|
96
|
-
event, `/healthz` is the liveness surface, and escape hatches like
|
|
97
|
-
`run_capture` stay default-denied there unless a workspace is
|
|
98
|
-
explicitly authorized for that posture through the daemon control
|
|
99
|
-
plane. Daemon-wide inspection now exists through MCP tools such as
|
|
100
|
-
`daemon_status`, `daemon_repos`, `daemon_sessions`,
|
|
101
|
-
`workspace_authorizations`, and `daemon_monitors`. Repo-scoped
|
|
102
|
-
background WARP indexing can now be controlled there too through
|
|
103
|
-
`monitor_start`, `monitor_pause`, `monitor_resume`, and `monitor_stop`.
|
|
104
|
-
|
|
105
|
-
See the **[Setup decision table](docs/GUIDE.md#choose-your-setup-path)**
|
|
106
|
-
for the fastest path by client and mode, and the full
|
|
107
|
-
**[Setup Guide](docs/GUIDE.md)** for per-editor instructions, Claude
|
|
108
|
-
Code hooks, `.graftignore` configuration, troubleshooting, and
|
|
109
|
-
details on what the agent experiences. For release-facing operator
|
|
110
|
-
surfaces, see **[CLI Guide](docs/CLI.md)**,
|
|
111
|
-
**[MCP Guide](docs/MCP.md)**, and **[Advanced Guide](docs/ADVANCED_GUIDE.md)**.
|
|
112
|
-
Contributors should also read **[Architecture](ARCHITECTURE.md)** for
|
|
113
|
-
the runtime systems map and **[Code of Conduct](CODE_OF_CONDUCT.md)**
|
|
114
|
-
for project participation expectations.
|
|
115
|
-
|
|
116
|
-
## What it does
|
|
61
|
+
This uses the same repo-local core as the CLI and MCP server, but it
|
|
62
|
+
lets host tools call Graft directly inside the same process.
|
|
117
63
|
|
|
118
|
-
When
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
table so the agent can request specific ranges.
|
|
123
|
-
- **Banned files** (binaries, lockfiles, minified bundles, secrets)
|
|
124
|
-
are refused with a machine-readable reason code and suggested next
|
|
125
|
-
steps.
|
|
126
|
-
- **Re-reads** of unchanged files return a cached outline (no wasted
|
|
127
|
-
context). Changed files return a structural diff (added/removed/
|
|
128
|
-
changed symbols).
|
|
129
|
-
- **Ranges** are bounded — no stealth `cat` of a 10,000-line file.
|
|
130
|
-
- **Session depth** tightens caps as the context window fills.
|
|
131
|
-
- **Budget governor** — agent declares a byte budget, thresholds
|
|
132
|
-
tighten as it drains. No single read may consume more than 5% of
|
|
133
|
-
remaining budget.
|
|
134
|
-
- **Structural memory** — WARP-backed structural history across git
|
|
135
|
-
commits. Query what changed structurally without reading files.
|
|
136
|
-
- **Tripwires** signal when the session is going off the rails.
|
|
137
|
-
- **Receipts** on every response with session/trace correlation,
|
|
138
|
-
latency, and compression ratio for usage analysis.
|
|
139
|
-
- **MCP runtime observability** — metadata-only session and tool-call
|
|
140
|
-
logs under `.graft/logs/mcp-runtime.ndjson`.
|
|
141
|
-
- **Versioned schemas** on every machine-readable MCP / CLI payload.
|
|
142
|
-
- **Between-commit activity view** — bounded local `artifact_history`
|
|
143
|
-
over recent continuity, transitions, staging, and reads, anchored
|
|
144
|
-
to the current commit when possible.
|
|
145
|
-
|
|
146
|
-
Every decision is logged. Every refusal is explainable. All output
|
|
147
|
-
is structured JSON with versioned `_schema` metadata.
|
|
148
|
-
|
|
149
|
-
## Tools
|
|
150
|
-
|
|
151
|
-
| Tool | Purpose |
|
|
152
|
-
|---|---|
|
|
153
|
-
| `safe_read` | Policy-enforced file read (content, outline, refusal, or diff) |
|
|
154
|
-
| `file_outline` | Structural skeleton with jump table |
|
|
155
|
-
| `read_range` | Bounded range read (max 250 lines), policy-gated |
|
|
156
|
-
| `graft_diff` | Structural diff between git refs with per-file summary lines and explicit denied-file reporting |
|
|
157
|
-
| `graft_since` | Structural changes since a git ref — symbols added/removed/changed with explicit denied-file reporting |
|
|
158
|
-
| `graft_map` | Structural map of a directory — all files and symbols in one call, with explicit denied-file reporting |
|
|
159
|
-
| `code_show` | Focus on a symbol by name — get its source code in one call |
|
|
160
|
-
| `code_find` | Search symbols across the project by approximate name or glob, with optional kind/path filters |
|
|
161
|
-
| `code_refs` | Search import sites, callsites, property access, or literal text references with explicit text-fallback provenance |
|
|
162
|
-
| `changed_since` | Check if a file changed since last read (peek or consume) |
|
|
163
|
-
| `run_capture` | Diagnostic shell-output escape hatch — tail to agent, optional redacted log persistence, explicit enable/disable posture, outside bounded-read policy, with explicit `policyBoundary` marker |
|
|
164
|
-
| `state_save` | Save session working state (max 8 KB) |
|
|
165
|
-
| `state_load` | Restore session working state |
|
|
166
|
-
| `set_budget` | Declare session byte budget — governor tightens as it drains |
|
|
167
|
-
| `activity_view` | Recent bounded local `artifact_history` for the active workspace, with current commit anchor, grouped activity, and degraded posture |
|
|
168
|
-
| `explain` | Human-readable help for any reason code |
|
|
169
|
-
| `doctor` | Runtime health check with burden summary and layered-worldline state |
|
|
170
|
-
| `stats` | Decision metrics summary with cumulative burden-by-kind totals |
|
|
171
|
-
|
|
172
|
-
## Claude Code hooks
|
|
173
|
-
|
|
174
|
-
Two hooks work alongside the MCP server to govern native `Read`
|
|
175
|
-
calls — a safety net for when agents bypass graft's tools:
|
|
64
|
+
When you want a direct repo-local read surface instead of tool receipts,
|
|
65
|
+
use the workspace API:
|
|
66
|
+
```ts
|
|
67
|
+
import { createRepoWorkspace } from "@flyingrobots/graft";
|
|
176
68
|
|
|
177
|
-
|
|
178
|
-
{
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
{
|
|
182
|
-
"matcher": "Read",
|
|
183
|
-
"hooks": [
|
|
184
|
-
{
|
|
185
|
-
"type": "command",
|
|
186
|
-
"command": "node --import tsx node_modules/@flyingrobots/graft/src/hooks/pretooluse-read.ts"
|
|
187
|
-
}
|
|
188
|
-
]
|
|
189
|
-
}
|
|
190
|
-
],
|
|
191
|
-
"PostToolUse": [
|
|
192
|
-
{
|
|
193
|
-
"matcher": "Read",
|
|
194
|
-
"hooks": [
|
|
195
|
-
{
|
|
196
|
-
"type": "command",
|
|
197
|
-
"command": "node --import tsx node_modules/@flyingrobots/graft/src/hooks/posttooluse-read.ts"
|
|
198
|
-
}
|
|
199
|
-
]
|
|
200
|
-
}
|
|
201
|
-
]
|
|
202
|
-
}
|
|
203
|
-
}
|
|
69
|
+
const workspace = await createRepoWorkspace({ cwd: process.cwd() });
|
|
70
|
+
const first = await workspace.safeRead({ path: "src/app.ts" });
|
|
71
|
+
const second = await workspace.safeRead({ path: "src/app.ts" });
|
|
72
|
+
const outline = await workspace.fileOutline({ path: "src/app.ts" });
|
|
204
73
|
```
|
|
205
74
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
`
|
|
209
|
-
**PostToolUse** is the backstop: it reports what `safe_read` would have
|
|
210
|
-
saved when an oversized code read still slips through.
|
|
75
|
+
This exposes the same governed repo-local read behavior that the MCP
|
|
76
|
+
surface uses for `safe_read`, `file_outline`, `read_range`, and
|
|
77
|
+
`changed_since`, but without going through MCP receipts at all.
|
|
211
78
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
79
|
+
For close editor integration, use the buffer-native surface directly:
|
|
80
|
+
```ts
|
|
81
|
+
import { createProjectionBundle, createStructuredBuffer } from "@flyingrobots/graft";
|
|
82
|
+
|
|
83
|
+
const buffer = createStructuredBuffer("src/app.tsx", liveEditorText, {
|
|
84
|
+
basis: { kind: "editor_head", headId: "head-42", tick: 17 },
|
|
85
|
+
});
|
|
86
|
+
const spans = buffer.syntaxSpans({
|
|
87
|
+
viewport: {
|
|
88
|
+
start: { row: 0, column: 0 },
|
|
89
|
+
end: { row: 80, column: 0 },
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
const context = buffer.nodeAt({ row: 24, column: 12 });
|
|
93
|
+
const rename = buffer.renamePreview({
|
|
94
|
+
position: { row: 24, column: 12 },
|
|
95
|
+
nextName: "nextValue",
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
// Every warm result now carries the basis it was derived from.
|
|
99
|
+
console.log(spans.basis);
|
|
100
|
+
|
|
101
|
+
const bundle = createProjectionBundle("src/app.tsx", liveEditorText, {
|
|
102
|
+
basis: { kind: "editor_head", headId: "head-42", tick: 17 },
|
|
103
|
+
viewport: {
|
|
104
|
+
start: { row: 0, column: 0 },
|
|
105
|
+
end: { row: 80, column: 0 },
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
console.log(bundle.parseStatus.status);
|
|
110
|
+
```
|
|
216
111
|
|
|
112
|
+
### 5. Shared Daemon Runtime
|
|
113
|
+
Start the same-user execution authority for multi-session or multi-repo
|
|
114
|
+
work.
|
|
217
115
|
```bash
|
|
218
|
-
npx @flyingrobots/graft
|
|
219
|
-
npx @flyingrobots/graft init --write-claude-mcp --write-claude-hooks
|
|
220
|
-
npx @flyingrobots/graft init --write-cursor-mcp
|
|
221
|
-
npx @flyingrobots/graft init --write-windsurf-mcp
|
|
222
|
-
npx @flyingrobots/graft init --write-continue-mcp
|
|
223
|
-
npx @flyingrobots/graft init --write-cline-mcp
|
|
224
|
-
npx @flyingrobots/graft init --write-codex-mcp
|
|
225
|
-
npx @flyingrobots/graft serve
|
|
226
|
-
npx @flyingrobots/graft index
|
|
227
|
-
npx @flyingrobots/graft read safe src/app.ts --json
|
|
228
|
-
npx @flyingrobots/graft read outline README.md --json
|
|
229
|
-
npx @flyingrobots/graft read range src/app.ts --start 10 --end 40 --json
|
|
230
|
-
npx @flyingrobots/graft read changed src/app.ts --json
|
|
231
|
-
npx @flyingrobots/graft struct diff --json
|
|
232
|
-
npx @flyingrobots/graft struct since HEAD~3 --json
|
|
233
|
-
npx @flyingrobots/graft struct map src --json
|
|
234
|
-
npx @flyingrobots/graft symbol show createServer --path src/mcp/server.ts --json
|
|
235
|
-
npx @flyingrobots/graft symbol find 'create*' --json
|
|
236
|
-
npx @flyingrobots/graft diag activity --json
|
|
237
|
-
npx @flyingrobots/graft diag doctor --json
|
|
238
|
-
npx @flyingrobots/graft diag explain CONTENT --json
|
|
239
|
-
npx @flyingrobots/graft diag stats --json
|
|
240
|
-
npx @flyingrobots/graft diag capture --tail 20 -- pnpm test --json
|
|
116
|
+
npx @flyingrobots/graft daemon
|
|
241
117
|
```
|
|
242
118
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
- `read` for bounded reads
|
|
246
|
-
- `struct` for structural navigation
|
|
247
|
-
- `symbol` for precision lookup
|
|
248
|
-
- `diag` for diagnostics
|
|
249
|
-
|
|
250
|
-
`init` and `index` remain explicit CLI-only commands. MCP responses and
|
|
251
|
-
CLI peer commands both carry versioned `_schema` metadata, and declared
|
|
252
|
-
output contracts live in `src/contracts/output-schemas.ts`.
|
|
253
|
-
|
|
254
|
-
`run_capture` remains an explicit shell escape hatch. For shared or
|
|
255
|
-
release-sensitive environments, you can disable it with
|
|
256
|
-
`GRAFT_ENABLE_RUN_CAPTURE=0`. Persisted capture logs can be disabled
|
|
257
|
-
with `GRAFT_RUN_CAPTURE_PERSIST=0`, and persisted output is redacted for
|
|
258
|
-
obvious secret-shaped values by default. In the local daemon runtime,
|
|
259
|
-
`run_capture` remains opt-in rather than ambiently available.
|
|
119
|
+
Daemon sessions start `unbound`. If your client connects through the
|
|
120
|
+
daemon instead of repo-local stdio, the first repo-scoped flow is:
|
|
260
121
|
|
|
261
|
-
|
|
122
|
+
1. `workspace_authorize` for the target repo/worktree
|
|
123
|
+
2. `workspace_bind` for the active daemon session
|
|
124
|
+
3. then use repository-scoped tools such as `safe_read`
|
|
262
125
|
|
|
263
|
-
|
|
264
|
-
|
|
126
|
+
Use [docs/SETUP.md](./docs/SETUP.md) for the exact client bootstrap and
|
|
127
|
+
daemon control-plane posture.
|
|
265
128
|
|
|
266
|
-
|
|
267
|
-
|------|---------|
|
|
268
|
-
| `CONTENT` | File within thresholds — full content returned |
|
|
269
|
-
| `OUTLINE` | File exceeds thresholds — structural outline returned |
|
|
270
|
-
| `SESSION_CAP` | Session-depth byte cap triggered |
|
|
271
|
-
| `BUDGET_CAP` | Budget-proportional cap triggered |
|
|
272
|
-
| `UNSUPPORTED_LANGUAGE` | No parser-backed outline for this file type |
|
|
273
|
-
| `BINARY` | Binary file refused |
|
|
274
|
-
| `LOCKFILE` | Machine-generated lockfile refused |
|
|
275
|
-
| `MINIFIED` | Minified file refused |
|
|
276
|
-
| `BUILD_OUTPUT` | Build output directory refused |
|
|
277
|
-
| `SECRET` | Potential secrets file refused |
|
|
278
|
-
| `GRAFTIGNORE` | Matches .graftignore pattern |
|
|
129
|
+
## Documentation
|
|
279
130
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
131
|
+
- **[Guide](./GUIDE.md)**: Orientation, the fast path, and agent bootstrap.
|
|
132
|
+
- **[Setup Guide](./docs/SETUP.md)**: Client-specific MCP setup, daemon posture, and workspace binding.
|
|
133
|
+
- **[Advanced Guide](./ADVANCED_GUIDE.md)**: Deep dives into the pipeline, worldlines, and daemon mechanics.
|
|
134
|
+
- **[Architecture](./ARCHITECTURE.md)**: The authoritative structural reference (Ports, Adapters, WARP).
|
|
135
|
+
- **[Public API Contract](./docs/public-api.md)**: The semver-public root import surface and stability policy.
|
|
136
|
+
- **[Repo Topology](./docs/repo-topology.md)**: Where API, CLI, MCP, and the core live in the source tree.
|
|
137
|
+
- **[Three-Surface Capability Matrix](./docs/three-surface-capability-matrix.md)**: Current API / CLI / MCP baseline and peer posture.
|
|
138
|
+
- **[Security Model](./docs/strategy/security-model.md)**: Same-user daemon trust boundaries, authz, and observability posture.
|
|
139
|
+
- **[Causal Provenance](./docs/strategy/causal-provenance.md)**: Transport sessions, causal workspaces, strands, and handoff truth.
|
|
140
|
+
- **[Vision](./docs/VISION.md)**: Core tenets and the provenance-aware mission.
|
|
141
|
+
- **[Method](./METHOD.md)**: Repo work doctrine and the cycle loop.
|
|
283
142
|
|
|
284
143
|
---
|
|
285
|
-
|
|
286
|
-
```ts
|
|
287
|
-
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
288
|
-
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
289
|
-
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣾⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
290
|
-
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⠿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
291
|
-
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣶⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
292
|
-
⠀⠀⠀⠀⠀⠀⢀⣤⣴⣶⣶⣶⣶⣦⣤⣼⣿⣿⣿⣿⣿⠀⢠⣶⣶⣦⡀⠀⢀⣴⣶⣶⣤⠀⠀⠀⠀⣀⣤⣴⣶⣶⣶⣶⣦⣄⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⡄⠀⣀⣀⣠⣤⠀⠀⢀⣾⣿⣿⣀⣀⣀⣤⣤⣄⠀⠀⠀⠀⠀⠀
|
|
293
|
-
⠀⠀⠀⠀⠀⣴⣿⣿⠛⠉⠉⠉⠛⠿⣿⣿⣿⡿⠉⠉⠀⠀⢻⣿⣿⣿⣇⠀⣾⣿⣿⣿⣿⡇⠀⢠⣾⣿⣿⣿⡿⠟⠛⢻⣿⣿⣷⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀
|
|
294
|
-
⠀⠀⠀⠀⢸⣿⣿⣇⠀⠀⠀⠀⠀⠀⠘⣿⣿⡇⠀⠀⠀⠀⠈⢿⣿⣿⣿⢠⡿⠛⠛⠿⠟⠁⠀⢺⣿⣿⡿⠋⠀⠀⠀⣸⣿⣿⣿⡀⠀⠀⠀⠀⠛⠿⢿⣿⣿⠟⠛⠛⠛⠛⠀⠘⠻⠿⢿⣿⣿⠛⠛⠛⠛⠋⠀⠀⠀⠀⠀⠀
|
|
295
|
-
⠀⠀⠀⠀⠸⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠉⠉⠀⠀⠀⣠⣾⠟⢻⣿⣿⡇⠀⠀⠀⠀⠀⠀⠈⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
296
|
-
⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣶⣤⣤⣤⣾⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⡿⠋⠀⢸⣿⣿⡇⠀⢀⣤⡀⠀⠀⠀⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡆⠀⠀⠀⢀⣀⡀⠀⠀⠀⠀
|
|
297
|
-
⠀⠀⠀⠀⠀⠀⠀⣨⣿⡿⠟⠛⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⡏⠀⠀⠀⢸⣿⣿⡇⠀⢸⣿⡇⠀⠀⠀⢻⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣇⠀⠀⠀⢸⣿⣿⠀⠀⠀⠀
|
|
298
|
-
⠀⠀⠀⠀⠀⠀⣼⣿⣿⡀⠀⢀⣀⣀⣤⣤⣤⣴⣦⣤⣄⠀⠀⠀⠀⢰⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⢾⣿⣿⣇⠀⠀⣠⣿⢻⣿⣿⡀⣸⣿⡇⠀⠀⠀⠸⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣦⣀⣠⣾⣿⡟⠀⠀⠀⠀
|
|
299
|
-
⠀⠀⠀⠀⠀⠀⠹⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⢸⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿⣿⠏⠀⢿⣿⣿⣿⣿⠇⠀⠀⠀⠀⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀
|
|
300
|
-
⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⠟⠉⠁⠀⠀⠀⠀⠀⢻⣿⣿⡟⠀⠀⠀⠈⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠛⠛⠁⠀⠀⠀⠙⠛⠛⠁⠀⠀⠀⠀⠀⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠛⠛⠋⠁⠀⠀⠀⠀⠀
|
|
301
|
-
⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
302
|
-
⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣷⣤⣤⣤⣤⣤⣾⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
303
|
-
⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠻⠿⠿⠿⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠿⠿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
304
|
-
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
305
|
-
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
306
|
-
```
|
|
144
|
+
Built with precision by [FLYING ROBOTS](https://github.com/flyingrobots)
|
package/bin/graft.js
CHANGED
|
@@ -13,9 +13,11 @@ const require = createRequire(import.meta.url);
|
|
|
13
13
|
|
|
14
14
|
// If already running under tsx, proceed directly
|
|
15
15
|
if (process.env.__GRAFT_TSX_LOADED === "1") {
|
|
16
|
-
const {
|
|
17
|
-
await
|
|
18
|
-
|
|
16
|
+
const { runCliEntrypoint } = await import("../src/cli/entrypoint.js");
|
|
17
|
+
await runCliEntrypoint({
|
|
18
|
+
argv: process.argv.slice(2),
|
|
19
|
+
stdinIsTTY: process.stdin.isTTY,
|
|
20
|
+
stdoutIsTTY: process.stdout.isTTY,
|
|
19
21
|
});
|
|
20
22
|
} else {
|
|
21
23
|
// Re-exec with tsx loader from our own node_modules
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-json.d.ts","sourceRoot":"","sources":["../../src/adapters/canonical-json.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAmCnD,qBAAa,kBAAmB,YAAW,SAAS;IAClD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAI9B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG9B"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// CanonicalJsonCodec — deterministic JSON with sorted keys
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
//
|
|
5
|
+
// Subset of RFC 8785 (JSON Canonicalization Scheme):
|
|
6
|
+
// - Object keys sorted lexicographically at every nesting level
|
|
7
|
+
// - Compact output (no whitespace)
|
|
8
|
+
// - Deterministic: same data always produces the same string
|
|
9
|
+
//
|
|
10
|
+
// Enables stable hashes, diffable logs, reproducible receipts.
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
function isPlainObject(value) {
|
|
13
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
const proto = Object.getPrototypeOf(value);
|
|
17
|
+
return proto === Object.prototype || proto === null;
|
|
18
|
+
}
|
|
19
|
+
function sortDeep(value, seen = new WeakSet()) {
|
|
20
|
+
if (value === null || typeof value !== "object") {
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
if (!isPlainObject(value) && !Array.isArray(value)) {
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
if (seen.has(value)) {
|
|
27
|
+
throw new TypeError("Converting circular structure to JSON");
|
|
28
|
+
}
|
|
29
|
+
seen.add(value);
|
|
30
|
+
try {
|
|
31
|
+
if (Array.isArray(value)) {
|
|
32
|
+
return value.map((v) => sortDeep(v, seen));
|
|
33
|
+
}
|
|
34
|
+
const sorted = {};
|
|
35
|
+
for (const key of Object.keys(value).sort()) {
|
|
36
|
+
sorted[key] = sortDeep(value[key], seen);
|
|
37
|
+
}
|
|
38
|
+
return sorted;
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
seen.delete(value);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export class CanonicalJsonCodec {
|
|
45
|
+
encode(value) {
|
|
46
|
+
return JSON.stringify(sortDeep(value));
|
|
47
|
+
}
|
|
48
|
+
decode(data) {
|
|
49
|
+
return JSON.parse(data);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=canonical-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-json.js","sourceRoot":"","sources":["../../src/adapters/canonical-json.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAC9E,EAAE;AACF,qDAAqD;AACrD,kEAAkE;AAClE,qCAAqC;AACrC,+DAA+D;AAC/D,EAAE;AACF,+DAA+D;AAC/D,8EAA8E;AAI9E,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAY,CAAC;IACtD,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACtD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,IAAI,GAAG,IAAI,OAAO,EAAE;IACpD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,kBAAkB;IAC7B,MAAM,CAAC,KAAc;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-fs.d.ts","sourceRoot":"","sources":["../../src/adapters/node-fs.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAoCzD,eAAO,MAAM,MAAM,EAAE,UAAiC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Node.js filesystem adapter — implements the FileSystem port
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
import * as fs from "node:fs";
|
|
5
|
+
import * as fsp from "node:fs/promises";
|
|
6
|
+
class NodeFileSystem {
|
|
7
|
+
readFile(path, encoding) {
|
|
8
|
+
if (encoding !== undefined)
|
|
9
|
+
return fsp.readFile(path, encoding);
|
|
10
|
+
return fsp.readFile(path);
|
|
11
|
+
}
|
|
12
|
+
readdir(path) {
|
|
13
|
+
return fsp.readdir(path);
|
|
14
|
+
}
|
|
15
|
+
writeFile(path, data, encoding) {
|
|
16
|
+
return fsp.writeFile(path, data, encoding);
|
|
17
|
+
}
|
|
18
|
+
appendFile(path, data, encoding) {
|
|
19
|
+
return fsp.appendFile(path, data, encoding);
|
|
20
|
+
}
|
|
21
|
+
async mkdir(path, options) {
|
|
22
|
+
await fsp.mkdir(path, options);
|
|
23
|
+
}
|
|
24
|
+
async stat(path) {
|
|
25
|
+
const s = await fsp.stat(path);
|
|
26
|
+
return { size: s.size };
|
|
27
|
+
}
|
|
28
|
+
readFileSync(path, encoding) {
|
|
29
|
+
return fs.readFileSync(path, encoding);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export const nodeFs = new NodeFileSystem();
|
|
33
|
+
//# sourceMappingURL=node-fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-fs.js","sourceRoot":"","sources":["../../src/adapters/node-fs.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8DAA8D;AAC9D,8EAA8E;AAE9E,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAGxC,MAAM,cAAc;IAGlB,QAAQ,CAAC,IAAY,EAAE,QAAkB;QACvC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChE,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,IAAY,EAAE,QAAiB;QACrD,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,IAAY,EAAE,QAAiB;QACtD,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAA4B;QACpD,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,QAAiB;QAC1C,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAe,IAAI,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-git.d.ts","sourceRoot":"","sources":["../../src/adapters/node-git.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAyChE,eAAO,MAAM,OAAO,EAAE,SAA+B,CAAC"}
|