@flyingrobots/graft 0.7.1 → 0.9.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/CHANGELOG.md +202 -0
- package/GUIDE.md +8 -3
- package/README.md +128 -85
- package/dist/adapters/fake-echo-kernel-transport.d.ts +33 -0
- package/dist/adapters/fake-echo-kernel-transport.d.ts.map +1 -0
- package/dist/adapters/fake-echo-kernel-transport.js +208 -0
- package/dist/adapters/fake-echo-kernel-transport.js.map +1 -0
- package/dist/api/index.d.ts +3 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +2 -0
- package/dist/api/index.js.map +1 -1
- package/dist/cli/cli-error.d.ts.map +1 -1
- package/dist/cli/cli-error.js +22 -3
- package/dist/cli/cli-error.js.map +1 -1
- package/dist/cli/command-parser.d.ts.map +1 -1
- package/dist/cli/command-parser.js +62 -6
- package/dist/cli/command-parser.js.map +1 -1
- package/dist/cli/dead-symbols-render.d.ts +2 -0
- package/dist/cli/dead-symbols-render.d.ts.map +1 -0
- package/dist/cli/dead-symbols-render.js +23 -0
- package/dist/cli/dead-symbols-render.js.map +1 -0
- package/dist/cli/doctor-render.d.ts +2 -0
- package/dist/cli/doctor-render.d.ts.map +1 -0
- package/dist/cli/doctor-render.js +80 -0
- package/dist/cli/doctor-render.js.map +1 -0
- package/dist/cli/entrypoint.d.ts +1 -0
- package/dist/cli/entrypoint.d.ts.map +1 -1
- package/dist/cli/entrypoint.js +1 -0
- package/dist/cli/entrypoint.js.map +1 -1
- package/dist/cli/git-graft-enhance-model.d.ts +33 -3
- package/dist/cli/git-graft-enhance-model.d.ts.map +1 -1
- package/dist/cli/git-graft-enhance-model.js +38 -0
- package/dist/cli/git-graft-enhance-model.js.map +1 -1
- package/dist/cli/git-graft-enhance-render.d.ts.map +1 -1
- package/dist/cli/git-graft-enhance-render.js +13 -0
- package/dist/cli/git-graft-enhance-render.js.map +1 -1
- package/dist/cli/git-graft-enhance.d.ts.map +1 -1
- package/dist/cli/git-graft-enhance.js +44 -1
- package/dist/cli/git-graft-enhance.js.map +1 -1
- package/dist/cli/index-cmd.d.ts +1 -0
- package/dist/cli/index-cmd.d.ts.map +1 -1
- package/dist/cli/index-cmd.js +3 -0
- package/dist/cli/index-cmd.js.map +1 -1
- package/dist/cli/main.d.ts +2 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +24 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/peer-command.d.ts.map +1 -1
- package/dist/cli/peer-command.js +25 -0
- package/dist/cli/peer-command.js.map +1 -1
- package/dist/cli/review-cooldown.d.ts +15 -0
- package/dist/cli/review-cooldown.d.ts.map +1 -0
- package/dist/cli/review-cooldown.js +136 -0
- package/dist/cli/review-cooldown.js.map +1 -0
- package/dist/cli/structural-blame-render.d.ts +2 -0
- package/dist/cli/structural-blame-render.d.ts.map +1 -0
- package/dist/cli/structural-blame-render.js +42 -0
- package/dist/cli/structural-blame-render.js.map +1 -0
- package/dist/cli/structural-review-render.d.ts +2 -0
- package/dist/cli/structural-review-render.d.ts.map +1 -0
- package/dist/cli/structural-review-render.js +56 -0
- package/dist/cli/structural-review-render.js.map +1 -0
- package/dist/cli/structural-test-coverage-render.d.ts +2 -0
- package/dist/cli/structural-test-coverage-render.d.ts.map +1 -0
- package/dist/cli/structural-test-coverage-render.js +46 -0
- package/dist/cli/structural-test-coverage-render.js.map +1 -0
- package/dist/contracts/capabilities.d.ts +9 -6
- package/dist/contracts/capabilities.d.ts.map +1 -1
- package/dist/contracts/capabilities.js +54 -1
- package/dist/contracts/capabilities.js.map +1 -1
- package/dist/contracts/causal-ontology.d.ts +17 -17
- package/dist/contracts/output-schema-cli.d.ts +106 -41
- package/dist/contracts/output-schema-cli.d.ts.map +1 -1
- package/dist/contracts/output-schema-cli.js +29 -0
- package/dist/contracts/output-schema-cli.js.map +1 -1
- package/dist/contracts/output-schema-fragments.d.ts +238 -76
- package/dist/contracts/output-schema-fragments.d.ts.map +1 -1
- package/dist/contracts/output-schema-fragments.js +27 -0
- package/dist/contracts/output-schema-fragments.js.map +1 -1
- package/dist/contracts/output-schema-mcp.d.ts +171 -62
- package/dist/contracts/output-schema-mcp.d.ts.map +1 -1
- package/dist/contracts/output-schema-mcp.js +49 -22
- package/dist/contracts/output-schema-mcp.js.map +1 -1
- package/dist/contracts/output-schema-meta.d.ts +2 -2
- package/dist/contracts/output-schema-meta.d.ts.map +1 -1
- package/dist/contracts/output-schemas.d.ts +7 -7
- package/dist/contracts/output-schemas.d.ts.map +1 -1
- package/dist/contracts/output-schemas.js +101 -1
- package/dist/contracts/output-schemas.js.map +1 -1
- package/dist/echo/canonical-cbor.d.ts +10 -0
- package/dist/echo/canonical-cbor.d.ts.map +1 -0
- package/dist/echo/canonical-cbor.js +213 -0
- package/dist/echo/canonical-cbor.js.map +1 -0
- package/dist/echo/codec-runtime.d.ts +72 -0
- package/dist/echo/codec-runtime.d.ts.map +1 -0
- package/dist/echo/codec-runtime.js +259 -0
- package/dist/echo/codec-runtime.js.map +1 -0
- package/dist/echo/structural-history-client.d.ts +68 -0
- package/dist/echo/structural-history-client.d.ts.map +1 -0
- package/dist/echo/structural-history-client.js +149 -0
- package/dist/echo/structural-history-client.js.map +1 -0
- package/dist/echo/structural-history-envelope-codec.d.ts +46 -0
- package/dist/echo/structural-history-envelope-codec.d.ts.map +1 -0
- package/dist/echo/structural-history-envelope-codec.js +121 -0
- package/dist/echo/structural-history-envelope-codec.js.map +1 -0
- package/dist/echo/structural-reading-adapter.d.ts +13 -0
- package/dist/echo/structural-reading-adapter.d.ts.map +1 -0
- package/dist/echo/structural-reading-adapter.js +120 -0
- package/dist/echo/structural-reading-adapter.js.map +1 -0
- package/dist/generated/graft-structural-history.codec.generated.d.ts +135 -0
- package/dist/generated/graft-structural-history.codec.generated.d.ts.map +1 -0
- package/dist/generated/graft-structural-history.codec.generated.js +545 -0
- package/dist/generated/graft-structural-history.codec.generated.js.map +1 -0
- package/dist/generated/graft-structural-history.d.ts +331 -0
- package/dist/generated/graft-structural-history.d.ts.map +1 -0
- package/dist/generated/graft-structural-history.js +47 -0
- package/dist/generated/graft-structural-history.js.map +1 -0
- package/dist/git/version-guard.d.ts +17 -0
- package/dist/git/version-guard.d.ts.map +1 -0
- package/dist/git/version-guard.js +51 -0
- package/dist/git/version-guard.js.map +1 -0
- package/dist/hooks/posttooluse-read.js +2 -2
- package/dist/hooks/posttooluse-read.js.map +1 -1
- package/dist/mcp/burden.d.ts.map +1 -1
- package/dist/mcp/burden.js +4 -0
- package/dist/mcp/burden.js.map +1 -1
- package/dist/mcp/context.d.ts +5 -1
- package/dist/mcp/context.d.ts.map +1 -1
- package/dist/mcp/context.js +11 -1
- package/dist/mcp/context.js.map +1 -1
- package/dist/mcp/daemon-server.d.ts.map +1 -1
- package/dist/mcp/daemon-server.js +2 -0
- package/dist/mcp/daemon-server.js.map +1 -1
- package/dist/mcp/persisted-local-history-graph.d.ts.map +1 -1
- package/dist/mcp/persisted-local-history-graph.js +2 -1
- package/dist/mcp/persisted-local-history-graph.js.map +1 -1
- package/dist/mcp/persisted-local-history.d.ts +5 -5
- package/dist/mcp/repo-tool-job.d.ts.map +1 -1
- package/dist/mcp/repo-tool-job.js +2 -0
- package/dist/mcp/repo-tool-job.js.map +1 -1
- package/dist/mcp/repo-tool-worker-context.d.ts.map +1 -1
- package/dist/mcp/repo-tool-worker-context.js +19 -0
- package/dist/mcp/repo-tool-worker-context.js.map +1 -1
- package/dist/mcp/server-context.d.ts.map +1 -1
- package/dist/mcp/server-context.js +17 -0
- package/dist/mcp/server-context.js.map +1 -1
- package/dist/mcp/server-invocation.d.ts.map +1 -1
- package/dist/mcp/server-invocation.js +206 -147
- package/dist/mcp/server-invocation.js.map +1 -1
- package/dist/mcp/server-tool-access.d.ts.map +1 -1
- package/dist/mcp/server-tool-access.js +4 -0
- package/dist/mcp/server-tool-access.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +184 -116
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/stdio-server.d.ts.map +1 -1
- package/dist/mcp/stdio-server.js +2 -0
- package/dist/mcp/stdio-server.js.map +1 -1
- package/dist/mcp/tool-registry.d.ts.map +1 -1
- package/dist/mcp/tool-registry.js +9 -1
- package/dist/mcp/tool-registry.js.map +1 -1
- package/dist/mcp/tools/changed-since.d.ts.map +1 -1
- package/dist/mcp/tools/changed-since.js +10 -3
- package/dist/mcp/tools/changed-since.js.map +1 -1
- package/dist/mcp/tools/dead-symbols.d.ts +3 -0
- package/dist/mcp/tools/dead-symbols.d.ts.map +1 -0
- package/dist/mcp/tools/dead-symbols.js +32 -0
- package/dist/mcp/tools/dead-symbols.js.map +1 -0
- package/dist/mcp/tools/map.d.ts.map +1 -1
- package/dist/mcp/tools/map.js +2 -0
- package/dist/mcp/tools/map.js.map +1 -1
- package/dist/mcp/tools/precision-warp.d.ts.map +1 -1
- package/dist/mcp/tools/precision-warp.js +2 -6
- package/dist/mcp/tools/precision-warp.js.map +1 -1
- package/dist/mcp/tools/refactor-difficulty.d.ts.map +1 -1
- package/dist/mcp/tools/refactor-difficulty.js +2 -0
- package/dist/mcp/tools/refactor-difficulty.js.map +1 -1
- package/dist/mcp/tools/safe-read.d.ts.map +1 -1
- package/dist/mcp/tools/safe-read.js +10 -105
- package/dist/mcp/tools/safe-read.js.map +1 -1
- package/dist/mcp/tools/structural-blame.d.ts.map +1 -1
- package/dist/mcp/tools/structural-blame.js +3 -0
- package/dist/mcp/tools/structural-blame.js.map +1 -1
- package/dist/mcp/tools/structural-review.d.ts.map +1 -1
- package/dist/mcp/tools/structural-review.js +9 -22
- package/dist/mcp/tools/structural-review.js.map +1 -1
- package/dist/mcp/tools/structural-test-coverage.d.ts +3 -0
- package/dist/mcp/tools/structural-test-coverage.d.ts.map +1 -0
- package/dist/mcp/tools/structural-test-coverage.js +35 -0
- package/dist/mcp/tools/structural-test-coverage.js.map +1 -0
- package/dist/mcp/tools/workspace-list-opened.d.ts +3 -0
- package/dist/mcp/tools/workspace-list-opened.d.ts.map +1 -0
- package/dist/mcp/tools/workspace-list-opened.js +10 -0
- package/dist/mcp/tools/workspace-list-opened.js.map +1 -0
- package/dist/mcp/tools/workspace-open.d.ts +3 -0
- package/dist/mcp/tools/workspace-open.d.ts.map +1 -0
- package/dist/mcp/tools/workspace-open.js +34 -0
- package/dist/mcp/tools/workspace-open.js.map +1 -0
- package/dist/mcp/workspace-router-model.d.ts +27 -0
- package/dist/mcp/workspace-router-model.d.ts.map +1 -1
- package/dist/mcp/workspace-router-model.js.map +1 -1
- package/dist/mcp/workspace-router.d.ts +9 -2
- package/dist/mcp/workspace-router.d.ts.map +1 -1
- package/dist/mcp/workspace-router.js +145 -1
- package/dist/mcp/workspace-router.js.map +1 -1
- package/dist/operations/cached-file.d.ts +6 -2
- package/dist/operations/cached-file.d.ts.map +1 -1
- package/dist/operations/cached-file.js +30 -6
- package/dist/operations/cached-file.js.map +1 -1
- package/dist/operations/export-surface-diff.d.ts.map +1 -1
- package/dist/operations/export-surface-diff.js +2 -0
- package/dist/operations/export-surface-diff.js.map +1 -1
- package/dist/operations/file-outline.js +2 -2
- package/dist/operations/file-outline.js.map +1 -1
- package/dist/operations/graft-diff.d.ts.map +1 -1
- package/dist/operations/graft-diff.js +2 -0
- package/dist/operations/graft-diff.js.map +1 -1
- package/dist/operations/projection-safety.d.ts.map +1 -1
- package/dist/operations/projection-safety.js +2 -0
- package/dist/operations/projection-safety.js.map +1 -1
- package/dist/operations/repo-workspace.d.ts.map +1 -1
- package/dist/operations/repo-workspace.js +26 -8
- package/dist/operations/repo-workspace.js.map +1 -1
- package/dist/operations/review-cooldown-status.d.ts +27 -0
- package/dist/operations/review-cooldown-status.d.ts.map +1 -0
- package/dist/operations/review-cooldown-status.js +115 -0
- package/dist/operations/review-cooldown-status.js.map +1 -0
- package/dist/operations/safe-read.js +2 -2
- package/dist/operations/safe-read.js.map +1 -1
- package/dist/operations/sludge-detector.d.ts.map +1 -1
- package/dist/operations/sludge-detector.js +2 -1
- package/dist/operations/sludge-detector.js.map +1 -1
- package/dist/operations/structural-review.js +8 -8
- package/dist/operations/structural-review.js.map +1 -1
- package/dist/operations/structural-test-coverage-map.d.ts +44 -0
- package/dist/operations/structural-test-coverage-map.d.ts.map +1 -0
- package/dist/operations/structural-test-coverage-map.js +331 -0
- package/dist/operations/structural-test-coverage-map.js.map +1 -0
- package/dist/operations/structured-buffer-compare.d.ts.map +1 -1
- package/dist/operations/structured-buffer-compare.js +4 -1
- package/dist/operations/structured-buffer-compare.js.map +1 -1
- package/dist/operations/structured-buffer-model.d.ts +15 -13
- package/dist/operations/structured-buffer-model.d.ts.map +1 -1
- package/dist/operations/structured-buffer-model.js +24 -5
- package/dist/operations/structured-buffer-model.js.map +1 -1
- package/dist/operations/structured-buffer-query.d.ts.map +1 -1
- package/dist/operations/structured-buffer-query.js +21 -12
- package/dist/operations/structured-buffer-query.js.map +1 -1
- package/dist/parser/extractors/common.d.ts +16 -0
- package/dist/parser/extractors/common.d.ts.map +1 -0
- package/dist/parser/extractors/common.js +23 -0
- package/dist/parser/extractors/common.js.map +1 -0
- package/dist/parser/extractors/go.d.ts +18 -0
- package/dist/parser/extractors/go.d.ts.map +1 -0
- package/dist/parser/extractors/go.js +200 -0
- package/dist/parser/extractors/go.js.map +1 -0
- package/dist/parser/extractors/graphql.d.ts +26 -0
- package/dist/parser/extractors/graphql.d.ts.map +1 -0
- package/dist/parser/extractors/graphql.js +239 -0
- package/dist/parser/extractors/graphql.js.map +1 -0
- package/dist/parser/extractors/index.d.ts +4 -0
- package/dist/parser/extractors/index.d.ts.map +1 -0
- package/dist/parser/extractors/index.js +26 -0
- package/dist/parser/extractors/index.js.map +1 -0
- package/dist/parser/extractors/json.d.ts +10 -0
- package/dist/parser/extractors/json.d.ts.map +1 -0
- package/dist/parser/extractors/json.js +75 -0
- package/dist/parser/extractors/json.js.map +1 -0
- package/dist/parser/extractors/python.d.ts +16 -0
- package/dist/parser/extractors/python.d.ts.map +1 -0
- package/dist/parser/extractors/python.js +145 -0
- package/dist/parser/extractors/python.js.map +1 -0
- package/dist/parser/extractors/rust.d.ts +12 -0
- package/dist/parser/extractors/rust.d.ts.map +1 -0
- package/dist/parser/extractors/rust.js +122 -0
- package/dist/parser/extractors/rust.js.map +1 -0
- package/dist/parser/extractors/toml.d.ts +10 -0
- package/dist/parser/extractors/toml.d.ts.map +1 -0
- package/dist/parser/extractors/toml.js +74 -0
- package/dist/parser/extractors/toml.js.map +1 -0
- package/dist/parser/extractors/typescript.d.ts +13 -0
- package/dist/parser/extractors/typescript.d.ts.map +1 -0
- package/dist/parser/extractors/typescript.js +179 -0
- package/dist/parser/extractors/typescript.js.map +1 -0
- package/dist/parser/extractors/yaml.d.ts +13 -0
- package/dist/parser/extractors/yaml.d.ts.map +1 -0
- package/dist/parser/extractors/yaml.js +93 -0
- package/dist/parser/extractors/yaml.js.map +1 -0
- package/dist/parser/lang.d.ts +2 -2
- package/dist/parser/lang.d.ts.map +1 -1
- package/dist/parser/lang.js +19 -1
- package/dist/parser/lang.js.map +1 -1
- package/dist/parser/outline.d.ts +4 -0
- package/dist/parser/outline.d.ts.map +1 -1
- package/dist/parser/outline.js +32 -221
- package/dist/parser/outline.js.map +1 -1
- package/dist/parser/runtime.d.ts +7 -0
- package/dist/parser/runtime.d.ts.map +1 -1
- package/dist/parser/runtime.js +99 -10
- package/dist/parser/runtime.js.map +1 -1
- package/dist/parser/types.d.ts +1 -1
- package/dist/parser/types.d.ts.map +1 -1
- package/dist/parser/types.js.map +1 -1
- package/dist/ports/echo-kernel-transport.d.ts +12 -0
- package/dist/ports/echo-kernel-transport.d.ts.map +1 -0
- package/dist/ports/echo-kernel-transport.js +13 -0
- package/dist/ports/echo-kernel-transport.js.map +1 -0
- package/dist/ports/provenance-timeline.d.ts +10 -0
- package/dist/ports/provenance-timeline.d.ts.map +1 -0
- package/dist/ports/provenance-timeline.js +17 -0
- package/dist/ports/provenance-timeline.js.map +1 -0
- package/dist/ports/semantic-enrichment.d.ts +47 -0
- package/dist/ports/semantic-enrichment.d.ts.map +1 -0
- package/dist/ports/semantic-enrichment.js +2 -0
- package/dist/ports/semantic-enrichment.js.map +1 -0
- package/dist/ports/structural-reading.d.ts +100 -0
- package/dist/ports/structural-reading.d.ts.map +1 -0
- package/dist/ports/structural-reading.js +41 -0
- package/dist/ports/structural-reading.js.map +1 -0
- package/dist/warp/ast-import-resolver.d.ts.map +1 -1
- package/dist/warp/ast-import-resolver.js +2 -1
- package/dist/warp/ast-import-resolver.js.map +1 -1
- package/dist/warp/dead-symbols.d.ts.map +1 -1
- package/dist/warp/dead-symbols.js +4 -7
- package/dist/warp/dead-symbols.js.map +1 -1
- package/dist/warp/index-head.d.ts +4 -0
- package/dist/warp/index-head.d.ts.map +1 -1
- package/dist/warp/index-head.js +255 -22
- package/dist/warp/index-head.js.map +1 -1
- package/dist/warp/observers.d.ts.map +1 -1
- package/dist/warp/observers.js +3 -2
- package/dist/warp/observers.js.map +1 -1
- package/dist/warp/refactor-difficulty.d.ts.map +1 -1
- package/dist/warp/refactor-difficulty.js +4 -9
- package/dist/warp/refactor-difficulty.js.map +1 -1
- package/dist/warp/references.d.ts.map +1 -1
- package/dist/warp/references.js +2 -1
- package/dist/warp/references.js.map +1 -1
- package/dist/warp/semantic-enrichment.d.ts +14 -0
- package/dist/warp/semantic-enrichment.d.ts.map +1 -0
- package/dist/warp/semantic-enrichment.js +55 -0
- package/dist/warp/semantic-enrichment.js.map +1 -0
- package/dist/warp/structural-queries.d.ts.map +1 -1
- package/dist/warp/structural-queries.js +7 -14
- package/dist/warp/structural-queries.js.map +1 -1
- package/dist/warp/structural-reading-adapter.d.ts +28 -0
- package/dist/warp/structural-reading-adapter.d.ts.map +1 -0
- package/dist/warp/structural-reading-adapter.js +94 -0
- package/dist/warp/structural-reading-adapter.js.map +1 -0
- package/dist/warp/sym-id-codec.d.ts +14 -0
- package/dist/warp/sym-id-codec.d.ts.map +1 -0
- package/dist/warp/sym-id-codec.js +47 -0
- package/dist/warp/sym-id-codec.js.map +1 -0
- package/dist/warp/symbol-timeline.d.ts.map +1 -1
- package/dist/warp/symbol-timeline.js +6 -14
- package/dist/warp/symbol-timeline.js.map +1 -1
- package/dist/warp/warp-structural-churn.d.ts.map +1 -1
- package/dist/warp/warp-structural-churn.js +6 -10
- package/dist/warp/warp-structural-churn.js.map +1 -1
- package/dist/warp/warp-structural-log.d.ts.map +1 -1
- package/dist/warp/warp-structural-log.js +8 -10
- package/dist/warp/warp-structural-log.js.map +1 -1
- package/docs/CLI.md +63 -5
- package/docs/MCP.md +12 -6
- package/docs/SETUP.md +12 -6
- package/package.json +13 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp-structural-log.js","sourceRoot":"","sources":["../../src/warp/warp-structural-log.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAI9E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"warp-structural-log.js","sourceRoot":"","sources":["../../src/warp/warp-structural-log.ts"],"names":[],"mappings":"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"}
|
package/docs/CLI.md
CHANGED
|
@@ -14,10 +14,12 @@ flowchart LR
|
|
|
14
14
|
B --> B6[index]
|
|
15
15
|
B --> B7[migrate local-history]
|
|
16
16
|
B --> B8[enhance]
|
|
17
|
+
B --> B9[review]
|
|
17
18
|
C --> C1[read]
|
|
18
19
|
C --> C2[struct]
|
|
19
20
|
C --> C3[symbol]
|
|
20
21
|
C --> C4[diag]
|
|
22
|
+
C --> C5[review]
|
|
21
23
|
```
|
|
22
24
|
|
|
23
25
|
## What it is for
|
|
@@ -27,6 +29,10 @@ flowchart LR
|
|
|
27
29
|
- read-only daemon status inspection via `graft daemon status`
|
|
28
30
|
- bounded, lazy WARP refresh via `graft index --path <path>`
|
|
29
31
|
- one-time legacy import via `graft migrate local-history`
|
|
32
|
+
- human-facing structural review summaries via `graft review`
|
|
33
|
+
- review-loop readiness via `graft review cooldown`
|
|
34
|
+
- structural/reference test coverage maps via `graft struct test-coverage`
|
|
35
|
+
- dead-symbol cleanup candidates via `graft struct dead-symbols`
|
|
30
36
|
- Git-facing structural review summaries via `git graft enhance`
|
|
31
37
|
- local debugging and dogfooding of MCP peer commands
|
|
32
38
|
- human-facing inspection of bounded state such as:
|
|
@@ -35,12 +41,14 @@ flowchart LR
|
|
|
35
41
|
- `graft diag doctor`
|
|
36
42
|
- `graft doctor --sludge`
|
|
37
43
|
- `graft diag stats`
|
|
44
|
+
- `graft symbol history`
|
|
38
45
|
- `graft symbol difficulty`
|
|
39
46
|
|
|
40
47
|
## Core namespaces
|
|
41
48
|
- `read` — bounded reads and change checks
|
|
42
|
-
- `struct` — structural diff / since / map
|
|
43
|
-
- `symbol` — precision show / find / blame / difficulty
|
|
49
|
+
- `struct` — structural diff / since / map / review / test-coverage / dead-symbols
|
|
50
|
+
- `symbol` — precision show / find / blame / history / difficulty
|
|
51
|
+
- `review` — structural review and review-loop readiness
|
|
44
52
|
- `diag` — activity, local-history-dag, doctor, explain, stats, capture
|
|
45
53
|
|
|
46
54
|
## Release-facing commands
|
|
@@ -55,9 +63,18 @@ graft diag activity --json
|
|
|
55
63
|
graft diag local-history-dag --json
|
|
56
64
|
graft diag doctor --json
|
|
57
65
|
graft doctor --sludge --json
|
|
66
|
+
graft review --base HEAD~1
|
|
67
|
+
graft review --base origin/main --head HEAD --json
|
|
68
|
+
graft review cooldown --pr 48
|
|
69
|
+
graft review cooldown --comments-file comments.json --now 2026-05-05T15:10:00.000Z --json
|
|
58
70
|
graft symbol find 'create*' --json
|
|
71
|
+
graft symbol history createUser --path src/users.ts
|
|
59
72
|
graft symbol difficulty createUser --path src/users.ts --json
|
|
60
73
|
graft struct diff --json
|
|
74
|
+
graft struct test-coverage --src src --tests test
|
|
75
|
+
graft struct test-coverage --src src --tests test --json
|
|
76
|
+
graft struct dead-symbols --limit 20
|
|
77
|
+
graft struct dead-symbols --limit 20 --json
|
|
61
78
|
git graft enhance --since HEAD~1
|
|
62
79
|
git-graft enhance --since HEAD~1
|
|
63
80
|
git-graft enhance --since HEAD~1 --json
|
|
@@ -73,14 +90,55 @@ pnpm graft diag activity
|
|
|
73
90
|
|
|
74
91
|
Bare `graft ...` only works when the package is installed or linked onto your `PATH`.
|
|
75
92
|
|
|
93
|
+
`graft review --base <ref> [--head <ref>] [--json]` renders the
|
|
94
|
+
repo-local structural review summary backed by the same `graft_review`
|
|
95
|
+
model as MCP and `graft struct review`. Human output separates
|
|
96
|
+
structural files from formatting, test, docs, and config churn. JSON
|
|
97
|
+
output keeps the schema-validated `graft.cli.struct_review` payload for
|
|
98
|
+
agents. GitHub PR-number resolution and comment posting are intentionally
|
|
99
|
+
outside this first slice; check out or fetch the PR branch and compare
|
|
100
|
+
refs locally.
|
|
101
|
+
|
|
102
|
+
`graft review cooldown [--pr <number>] [--comments-file <path>] [--now
|
|
103
|
+
<iso>] [--json]` reads PR comments, detects CodeRabbit rate-limit
|
|
104
|
+
markers, and reports whether another automated review request is ready,
|
|
105
|
+
still cooling down, or unknown. Without `--comments-file` it shells out
|
|
106
|
+
to `gh pr view [<number>] --json comments`; fixtures can use
|
|
107
|
+
`--comments-file` to validate the same logic without network or GitHub
|
|
108
|
+
state. Human output includes local timestamps; JSON output keeps the
|
|
109
|
+
schema-validated `graft.cli.review_cooldown` payload.
|
|
110
|
+
|
|
111
|
+
`graft struct test-coverage [--src <path>] [--tests <path>] [--json]`
|
|
112
|
+
renders a structural/reference coverage map for exported source symbols.
|
|
113
|
+
The default paths are `src` and `test`. Human output lists summary
|
|
114
|
+
counts, limitations, and per-symbol `covered` / `uncovered` status.
|
|
115
|
+
JSON output keeps the schema-validated
|
|
116
|
+
`graft.cli.struct_test_coverage` payload. This command does not run
|
|
117
|
+
tests or claim line, branch, statement, or execution coverage; imports
|
|
118
|
+
and mentions in test files can count as structural references.
|
|
119
|
+
|
|
120
|
+
`graft struct dead-symbols [--limit <n>] [--json]` lists symbols removed
|
|
121
|
+
from indexed WARP history and not subsequently re-added. Human output is
|
|
122
|
+
intended for cleanup and API-surface shrinkage review; JSON output keeps
|
|
123
|
+
the schema-validated `graft.cli.struct_dead_symbols` payload backed by
|
|
124
|
+
the `graft_dead_symbols` MCP peer.
|
|
125
|
+
|
|
126
|
+
`graft symbol history <symbol> [--path <path>] [--json]` renders the
|
|
127
|
+
same provenance-backed history as `graft symbol blame`, with a
|
|
128
|
+
timeline-first human view over creation, signature-change, per-version
|
|
129
|
+
path and line-range facts, and reference facts. JSON output remains the
|
|
130
|
+
schema-validated `graft.cli.symbol_blame` payload so the alias does not
|
|
131
|
+
create a second wire shape for the same WARP truth.
|
|
132
|
+
|
|
76
133
|
`git graft enhance --since <ref> [--head <ref>] [--json]` is the
|
|
77
134
|
installed Git external-command form for the release-facing structural
|
|
78
135
|
review aggregator. `git-graft enhance --since <ref>` is the direct
|
|
79
136
|
package binary form. Both route through the same top-level `enhance`
|
|
80
137
|
parser path. The command composes the shipped structural-since and
|
|
81
|
-
export-surface facts into a concise review summary
|
|
82
|
-
|
|
83
|
-
|
|
138
|
+
export-surface facts into a concise review summary, plus bounded
|
|
139
|
+
provenance hints for changed symbols when WARP blame data is available.
|
|
140
|
+
It does not wrap arbitrary Git subcommands or expand into unbounded
|
|
141
|
+
reference traversal or write-tool behavior.
|
|
84
142
|
|
|
85
143
|
`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.
|
|
86
144
|
|
package/docs/MCP.md
CHANGED
|
@@ -52,22 +52,28 @@ npx @flyingrobots/graft daemon
|
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
Daemon sessions start `unbound`. Once a client is connected to the
|
|
55
|
-
daemon MCP surface, repository-scoped work follows this
|
|
56
|
-
flow:
|
|
55
|
+
daemon MCP surface, repository-scoped work normally follows this
|
|
56
|
+
agent-facing flow:
|
|
57
57
|
|
|
58
|
-
1. `
|
|
59
|
-
2. `
|
|
58
|
+
1. `workspace_open` with the target `cwd`
|
|
59
|
+
2. optionally `workspace_list_opened` to inspect opened paths and the
|
|
60
|
+
active workspace
|
|
60
61
|
3. then call repository-scoped tools such as `safe_read`, `graft_since`,
|
|
61
62
|
or `code_show`
|
|
62
63
|
|
|
64
|
+
`workspace_authorize` and `workspace_bind` remain available as lower-level
|
|
65
|
+
daemon control-plane tools.
|
|
66
|
+
|
|
63
67
|
## Key Tool Groups
|
|
64
68
|
- **Bounded Reads**: `safe_read`, `file_outline`, `read_range`, `changed_since`
|
|
65
69
|
- **Governed Edits**: `graft_edit`
|
|
66
|
-
- **Structural History**: `graft_diff`, `graft_since`, `graft_map
|
|
70
|
+
- **Structural History**: `graft_diff`, `graft_since`, `graft_map`,
|
|
71
|
+
`graft_review`, `graft_test_coverage`, `graft_dead_symbols`
|
|
67
72
|
- **Structural Metrics**: `graft_churn`, `graft_difficulty`
|
|
68
73
|
- **Precision**: `code_show`, `code_find`, `code_refs`
|
|
69
74
|
- **Activity & Footing**: `activity_view`, `causal_status`, `causal_attach`, `doctor`
|
|
70
|
-
- **
|
|
75
|
+
- **Workspace Routing**: `workspace_open`, `workspace_list_opened`, `workspace_status`
|
|
76
|
+
- **Daemon Control Plane**: `workspace_authorizations`, `workspace_authorize`, `workspace_bind`, `workspace_rebind`, `workspace_revoke`, `daemon_status`, `daemon_repos`, `daemon_sessions`, `daemon_monitors`, `monitor_*`
|
|
71
77
|
|
|
72
78
|
## Current Truth
|
|
73
79
|
- MCP is the primary agent surface.
|
package/docs/SETUP.md
CHANGED
|
@@ -98,6 +98,8 @@ Daemon control-plane inspection now exists through MCP tools:
|
|
|
98
98
|
- `monitor_stop`
|
|
99
99
|
- `workspace_authorizations`
|
|
100
100
|
- `workspace_authorize`
|
|
101
|
+
- `workspace_open`
|
|
102
|
+
- `workspace_list_opened`
|
|
101
103
|
- `workspace_bind`
|
|
102
104
|
- `workspace_status`
|
|
103
105
|
- `workspace_rebind`
|
|
@@ -120,10 +122,14 @@ Practical daemon-backed MCP first-use sequence:
|
|
|
120
122
|
|
|
121
123
|
1. configure your MCP client with `graft serve --runtime daemon`
|
|
122
124
|
2. let the bridge auto-start the daemon, or start `npx @flyingrobots/graft daemon`
|
|
123
|
-
3. call `
|
|
124
|
-
4. call `
|
|
125
|
+
3. call `workspace_open` with the target `cwd`
|
|
126
|
+
4. optionally call `workspace_list_opened` to inspect opened paths and the
|
|
127
|
+
active workspace
|
|
125
128
|
5. then use repository-scoped tools such as `safe_read` or `graft_map`
|
|
126
129
|
|
|
130
|
+
Use `workspace_authorize` plus `workspace_bind` when you need direct
|
|
131
|
+
operator control over daemon authorization and binding state.
|
|
132
|
+
|
|
127
133
|
### MCP runtime selection
|
|
128
134
|
|
|
129
135
|
Repo-local stdio is the default and remains the simplest path:
|
|
@@ -157,8 +163,7 @@ Use repo-local stdio when you want one MCP server bound directly to the
|
|
|
157
163
|
current checkout. Use daemon-backed stdio when you want daemon-only
|
|
158
164
|
capabilities such as shared worker pools, persistent monitors, and
|
|
159
165
|
daemon control-plane inspection. Daemon-backed sessions start unbound;
|
|
160
|
-
repository-scoped tools
|
|
161
|
-
`workspace_bind`.
|
|
166
|
+
repository-scoped tools normally begin with `workspace_open`.
|
|
162
167
|
|
|
163
168
|
### One-step bootstrap
|
|
164
169
|
|
|
@@ -399,8 +404,9 @@ If your client doesn't support `npx`, install globally and use:
|
|
|
399
404
|
|
|
400
405
|
This section shows the repo-local stdio path. If you connect through
|
|
401
406
|
`graft daemon` instead, the MCP session starts `unbound` and needs
|
|
402
|
-
`
|
|
403
|
-
|
|
407
|
+
`workspace_open` before repository-scoped tool calls. The lower-level
|
|
408
|
+
`workspace_authorize` and `workspace_bind` tools remain available for
|
|
409
|
+
operator control-plane workflows.
|
|
404
410
|
|
|
405
411
|
## Claude Code Hooks
|
|
406
412
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flyingrobots/graft",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Context governor and between-commit activity surface for coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@10.30.0",
|
|
@@ -46,11 +46,15 @@
|
|
|
46
46
|
"test:watch": "vitest",
|
|
47
47
|
"lint": "eslint .",
|
|
48
48
|
"typecheck": "tsc --noEmit",
|
|
49
|
+
"schema:structural-history:check": "tsx scripts/check-structural-history-schema-artifacts.ts && tsx scripts/check-structural-history-echo-package.ts",
|
|
49
50
|
"pack:check": "pnpm pack --dry-run",
|
|
50
51
|
"guard:agent-worktrees": "tsx scripts/check-agent-worktree-hygiene.ts",
|
|
51
52
|
"security:check": "tsx scripts/check-release-security.ts",
|
|
52
53
|
"release:surface-gate": "vitest run --run test/unit/release/package-library-surface.test.ts test/unit/release/three-surface-capability-posture.test.ts",
|
|
53
|
-
"release:check": "pnpm guard:agent-worktrees && pnpm lint && pnpm typecheck && pnpm release:surface-gate && pnpm test && pnpm security:check && pnpm pack:check"
|
|
54
|
+
"release:check": "pnpm guard:agent-worktrees && pnpm schema:structural-history:check && pnpm lint && pnpm typecheck && pnpm release:surface-gate && pnpm test && pnpm security:check && pnpm pack:check",
|
|
55
|
+
"gh:issues": "bash scripts/gh-issues.sh bootstrap",
|
|
56
|
+
"gh-issues": "bash scripts/gh-issues.sh bootstrap",
|
|
57
|
+
"gh-issues:check": "bash scripts/gh-issues-check.sh"
|
|
54
58
|
},
|
|
55
59
|
"engines": {
|
|
56
60
|
"node": ">=20.11.0"
|
|
@@ -90,6 +94,7 @@
|
|
|
90
94
|
"@git-stunts/plumbing": "^2.8.0",
|
|
91
95
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
92
96
|
"picomatch": "^4.0.4",
|
|
97
|
+
"tree-sitter-graphql-grammar-wasm": "1.0.1",
|
|
93
98
|
"tree-sitter-wasms": "0.1.13",
|
|
94
99
|
"web-tree-sitter": "^0.20.8",
|
|
95
100
|
"zod": "4.3.6"
|
|
@@ -110,8 +115,12 @@
|
|
|
110
115
|
"onlyBuiltDependencies": [],
|
|
111
116
|
"overrides": {
|
|
112
117
|
"vite": "^8.0.5",
|
|
113
|
-
"
|
|
114
|
-
"
|
|
118
|
+
"brace-expansion": "5.0.6",
|
|
119
|
+
"hono": "4.12.18",
|
|
120
|
+
"fast-uri": "3.1.2",
|
|
121
|
+
"ip-address": "10.2.0",
|
|
122
|
+
"postcss": "8.5.12",
|
|
123
|
+
"qs": "6.15.2"
|
|
115
124
|
}
|
|
116
125
|
}
|
|
117
126
|
}
|