@flyingrobots/graft 0.7.0 → 0.8.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 +153 -0
- package/README.md +33 -17
- package/bin/graft.js +26 -26
- 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/init-client-config.d.ts.map +1 -1
- package/dist/cli/init-client-config.js +40 -4
- package/dist/cli/init-client-config.js.map +1 -1
- package/dist/cli/init-model.js +2 -2
- package/dist/cli/init-model.js.map +1 -1
- package/dist/cli/json-document.d.ts +1 -0
- package/dist/cli/json-document.d.ts.map +1 -1
- package/dist/cli/json-document.js +3 -0
- package/dist/cli/json-document.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 +39 -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 +40 -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 +103 -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 +76 -76
- package/dist/contracts/output-schema-mcp.d.ts +87 -62
- package/dist/contracts/output-schema-mcp.d.ts.map +1 -1
- package/dist/contracts/output-schema-mcp.js +43 -21
- 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 +69 -1
- package/dist/contracts/output-schemas.js.map +1 -1
- 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 +3 -3
- package/dist/hooks/posttooluse-read.js.map +1 -1
- package/dist/hooks/pretooluse-read.js +1 -1
- package/dist/hooks/pretooluse-read.js.map +1 -1
- package/dist/mcp/burden.d.ts.map +1 -1
- package/dist/mcp/burden.js +2 -0
- package/dist/mcp/burden.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/daemon-worker-child-pool.d.ts +2 -0
- package/dist/mcp/daemon-worker-child-pool.d.ts.map +1 -1
- package/dist/mcp/daemon-worker-child-pool.js +10 -3
- package/dist/mcp/daemon-worker-child-pool.js.map +1 -1
- package/dist/mcp/daemon-worker-pool.d.ts +1 -1
- package/dist/mcp/daemon-worker-pool.d.ts.map +1 -1
- package/dist/mcp/daemon-worker-pool.js +1 -1
- package/dist/mcp/daemon-worker-pool.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/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.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 +4 -0
- 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 +33 -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-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/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/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/version.d.ts.map +1 -1
- package/dist/version.js +3 -1
- package/dist/version.js.map +1 -1
- 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/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 +2 -1
- package/docs/SETUP.md +11 -7
- package/package.json +12 -4
- package/src/adapters/canonical-json.ts +0 -56
- package/src/adapters/json-text-decoder.ts +0 -11
- package/src/adapters/node-fs.ts +0 -43
- package/src/adapters/node-git.ts +0 -47
- package/src/adapters/node-paths.ts +0 -35
- package/src/adapters/node-process-runner.ts +0 -27
- package/src/adapters/repo-paths.ts +0 -63
- package/src/adapters/rotating-ndjson-log.ts +0 -66
- package/src/api/index.ts +0 -107
- package/src/api/repo-local-graft.ts +0 -21
- package/src/api/repo-workspace.ts +0 -34
- package/src/api/tool-bridge.ts +0 -22
- package/src/cli/activity-render.ts +0 -112
- package/src/cli/cli-error.ts +0 -192
- package/src/cli/command-parser.ts +0 -484
- package/src/cli/daemon-status-model.ts +0 -238
- package/src/cli/daemon-status-render.ts +0 -102
- package/src/cli/daemon-status.ts +0 -100
- package/src/cli/entrypoint.ts +0 -18
- package/src/cli/git-graft-enhance-model.ts +0 -131
- package/src/cli/git-graft-enhance-render.ts +0 -33
- package/src/cli/git-graft-enhance.ts +0 -54
- package/src/cli/index-cmd.ts +0 -90
- package/src/cli/index-model.ts +0 -75
- package/src/cli/init-bootstrap.ts +0 -47
- package/src/cli/init-client-config.ts +0 -428
- package/src/cli/init-model.ts +0 -284
- package/src/cli/init-render.ts +0 -54
- package/src/cli/init-target-hooks.ts +0 -93
- package/src/cli/init.ts +0 -124
- package/src/cli/json-document.ts +0 -155
- package/src/cli/local-history-dag-model.ts +0 -437
- package/src/cli/local-history-dag-render.ts +0 -133
- package/src/cli/local-history-dag.ts +0 -103
- package/src/cli/main.ts +0 -197
- package/src/cli/migrate-local-history.ts +0 -119
- package/src/cli/peer-command.ts +0 -60
- package/src/contracts/capabilities.ts +0 -540
- package/src/contracts/causal-ontology.ts +0 -627
- package/src/contracts/causal-surface-next-action.ts +0 -18
- package/src/contracts/json-object.ts +0 -18
- package/src/contracts/mcp-runtime.ts +0 -16
- package/src/contracts/output-schema-cli.ts +0 -103
- package/src/contracts/output-schema-fragments.ts +0 -881
- package/src/contracts/output-schema-mcp.ts +0 -501
- package/src/contracts/output-schema-meta.ts +0 -119
- package/src/contracts/output-schemas.ts +0 -1524
- package/src/git/diff.ts +0 -161
- package/src/git/target-git-hook-bootstrap.ts +0 -56
- package/src/guards/stream-boundary.ts +0 -110
- package/src/hooks/posttooluse-read.ts +0 -54
- package/src/hooks/pretooluse-read.ts +0 -52
- package/src/hooks/read-governor.ts +0 -95
- package/src/hooks/read-messages.ts +0 -53
- package/src/hooks/shared.ts +0 -168
- package/src/index.ts +0 -1
- package/src/mcp/burden.ts +0 -132
- package/src/mcp/cache.ts +0 -7
- package/src/mcp/cached-file.ts +0 -1
- package/src/mcp/context.ts +0 -150
- package/src/mcp/control-plane/authz-storage.ts +0 -129
- package/src/mcp/control-plane/session-registry.ts +0 -115
- package/src/mcp/control-plane/status-projection.ts +0 -76
- package/src/mcp/control-plane/types.ts +0 -144
- package/src/mcp/daemon-bootstrap.ts +0 -100
- package/src/mcp/daemon-control-plane.ts +0 -310
- package/src/mcp/daemon-job-scheduler.ts +0 -279
- package/src/mcp/daemon-repos.ts +0 -99
- package/src/mcp/daemon-server.ts +0 -172
- package/src/mcp/daemon-session-host.ts +0 -234
- package/src/mcp/daemon-stdio-bridge.ts +0 -262
- package/src/mcp/daemon-worker-child-pool.ts +0 -213
- package/src/mcp/daemon-worker-inline-pool.ts +0 -46
- package/src/mcp/daemon-worker-pool.ts +0 -7
- package/src/mcp/daemon-worker-process.ts +0 -52
- package/src/mcp/daemon-worker-types.ts +0 -66
- package/src/mcp/metrics.ts +0 -176
- package/src/mcp/monitor-health.ts +0 -83
- package/src/mcp/monitor-persistence.ts +0 -54
- package/src/mcp/monitor-tick-job.ts +0 -153
- package/src/mcp/monitor-types.ts +0 -103
- package/src/mcp/persisted-local-history-graph.ts +0 -592
- package/src/mcp/persisted-local-history-policy.ts +0 -501
- package/src/mcp/persisted-local-history-views.ts +0 -250
- package/src/mcp/persisted-local-history.ts +0 -1621
- package/src/mcp/persistent-monitor-runtime.ts +0 -482
- package/src/mcp/policy.ts +0 -75
- package/src/mcp/receipt.ts +0 -201
- package/src/mcp/repo-concurrency.ts +0 -392
- package/src/mcp/repo-overview/filter.ts +0 -44
- package/src/mcp/repo-overview/types.ts +0 -63
- package/src/mcp/repo-overview/view-projection.ts +0 -90
- package/src/mcp/repo-state-git.ts +0 -247
- package/src/mcp/repo-state-observation.ts +0 -203
- package/src/mcp/repo-state-transition.ts +0 -151
- package/src/mcp/repo-state-types.ts +0 -107
- package/src/mcp/repo-state.ts +0 -146
- package/src/mcp/repo-tool-job.ts +0 -102
- package/src/mcp/repo-tool-worker-context.ts +0 -215
- package/src/mcp/repo-workspace.ts +0 -21
- package/src/mcp/run-capture-config.ts +0 -33
- package/src/mcp/runtime-causal-context.ts +0 -72
- package/src/mcp/runtime-observability.ts +0 -217
- package/src/mcp/runtime-staged-target.ts +0 -161
- package/src/mcp/runtime-workspace-overlay.ts +0 -255
- package/src/mcp/secret-scrub.ts +0 -89
- package/src/mcp/semantic-transition-guidance.ts +0 -60
- package/src/mcp/semantic-transition-summary.ts +0 -130
- package/src/mcp/server-context.ts +0 -236
- package/src/mcp/server-invocation.ts +0 -388
- package/src/mcp/server-tool-access.ts +0 -148
- package/src/mcp/server.ts +0 -270
- package/src/mcp/stdio-server.ts +0 -26
- package/src/mcp/stdio.ts +0 -3
- package/src/mcp/tool-registry.ts +0 -98
- package/src/mcp/tools/activity-view.ts +0 -325
- package/src/mcp/tools/budget.ts +0 -23
- package/src/mcp/tools/causal-attach.ts +0 -67
- package/src/mcp/tools/causal-status.ts +0 -58
- package/src/mcp/tools/changed-since.ts +0 -71
- package/src/mcp/tools/code-find.ts +0 -192
- package/src/mcp/tools/code-refs.ts +0 -470
- package/src/mcp/tools/code-show.ts +0 -289
- package/src/mcp/tools/daemon-monitors.ts +0 -14
- package/src/mcp/tools/daemon-repos.ts +0 -22
- package/src/mcp/tools/daemon-sessions.ts +0 -14
- package/src/mcp/tools/daemon-status.ts +0 -12
- package/src/mcp/tools/diagnostic-models.ts +0 -97
- package/src/mcp/tools/doctor.ts +0 -83
- package/src/mcp/tools/explain.ts +0 -84
- package/src/mcp/tools/export-surface-diff.ts +0 -26
- package/src/mcp/tools/file-outline.ts +0 -67
- package/src/mcp/tools/git-files.ts +0 -73
- package/src/mcp/tools/graft-diff.ts +0 -35
- package/src/mcp/tools/graft-edit.ts +0 -276
- package/src/mcp/tools/knowledge-map.ts +0 -34
- package/src/mcp/tools/map-collector.ts +0 -338
- package/src/mcp/tools/map.ts +0 -185
- package/src/mcp/tools/monitor-nudge.ts +0 -19
- package/src/mcp/tools/monitor-pause.ts +0 -18
- package/src/mcp/tools/monitor-resume.ts +0 -18
- package/src/mcp/tools/monitor-start.ts +0 -20
- package/src/mcp/tools/monitor-stop.ts +0 -18
- package/src/mcp/tools/precision-live.ts +0 -158
- package/src/mcp/tools/precision-match.ts +0 -54
- package/src/mcp/tools/precision-paths.ts +0 -59
- package/src/mcp/tools/precision-query.ts +0 -127
- package/src/mcp/tools/precision-show.ts +0 -86
- package/src/mcp/tools/precision-visibility.ts +0 -44
- package/src/mcp/tools/precision-warp.ts +0 -101
- package/src/mcp/tools/precision.ts +0 -21
- package/src/mcp/tools/read-range.ts +0 -28
- package/src/mcp/tools/refactor-difficulty.ts +0 -42
- package/src/mcp/tools/run-capture.ts +0 -149
- package/src/mcp/tools/safe-read.ts +0 -148
- package/src/mcp/tools/since.ts +0 -53
- package/src/mcp/tools/state.ts +0 -39
- package/src/mcp/tools/stats.ts +0 -24
- package/src/mcp/tools/structural-blame.ts +0 -55
- package/src/mcp/tools/structural-churn.ts +0 -28
- package/src/mcp/tools/structural-log.ts +0 -41
- package/src/mcp/tools/structural-review.ts +0 -63
- package/src/mcp/tools/workspace-authorizations.ts +0 -14
- package/src/mcp/tools/workspace-authorize.ts +0 -20
- package/src/mcp/tools/workspace-bind.ts +0 -25
- package/src/mcp/tools/workspace-rebind.ts +0 -25
- package/src/mcp/tools/workspace-revoke.ts +0 -18
- package/src/mcp/tools/workspace-status.ts +0 -12
- package/src/mcp/warp-pool.ts +0 -36
- package/src/mcp/workspace-read-observation-model.ts +0 -48
- package/src/mcp/workspace-read-observation.ts +0 -103
- package/src/mcp/workspace-router-capability.ts +0 -32
- package/src/mcp/workspace-router-history.ts +0 -233
- package/src/mcp/workspace-router-model.ts +0 -131
- package/src/mcp/workspace-router-resolution.ts +0 -71
- package/src/mcp/workspace-router-runtime.ts +0 -246
- package/src/mcp/workspace-router.ts +0 -688
- package/src/metrics/logger.ts +0 -40
- package/src/metrics/types.ts +0 -40
- package/src/operations/adaptive-projection.ts +0 -54
- package/src/operations/agent-handoff.ts +0 -59
- package/src/operations/cached-file.ts +0 -40
- package/src/operations/capture-range.ts +0 -64
- package/src/operations/conversation-primer.ts +0 -82
- package/src/operations/cross-session-resume.ts +0 -104
- package/src/operations/deterministic-replay.ts +0 -143
- package/src/operations/diff-identity.ts +0 -127
- package/src/operations/export-surface-diff.ts +0 -355
- package/src/operations/file-outline.ts +0 -48
- package/src/operations/footprint-parallelism.ts +0 -98
- package/src/operations/graft-diff.ts +0 -169
- package/src/operations/horizon-of-readability.ts +0 -60
- package/src/operations/import-reference-impact.ts +0 -143
- package/src/operations/knowledge-map.ts +0 -96
- package/src/operations/observation-cache.ts +0 -165
- package/src/operations/projection-safety.ts +0 -111
- package/src/operations/read-range.ts +0 -64
- package/src/operations/repo-workspace.ts +0 -339
- package/src/operations/result-dto.ts +0 -23
- package/src/operations/safe-read.ts +0 -118
- package/src/operations/semantic-drift.ts +0 -70
- package/src/operations/session-filtration.ts +0 -76
- package/src/operations/session-replay.ts +0 -73
- package/src/operations/sludge-detector.ts +0 -356
- package/src/operations/state.ts +0 -66
- package/src/operations/structural-blame.ts +0 -197
- package/src/operations/structural-review.ts +0 -317
- package/src/operations/structured-buffer-compare.ts +0 -429
- package/src/operations/structured-buffer-model.ts +0 -456
- package/src/operations/structured-buffer-query.ts +0 -794
- package/src/operations/structured-buffer.ts +0 -181
- package/src/operations/teaching-hints.ts +0 -52
- package/src/parser/diff.ts +0 -320
- package/src/parser/lang.ts +0 -71
- package/src/parser/markdown.ts +0 -197
- package/src/parser/outline.ts +0 -316
- package/src/parser/runtime.ts +0 -71
- package/src/parser/types.ts +0 -75
- package/src/policy/evaluate.ts +0 -178
- package/src/policy/graftignore.ts +0 -6
- package/src/policy/types.ts +0 -87
- package/src/ports/codec.ts +0 -13
- package/src/ports/filesystem.ts +0 -18
- package/src/ports/git.ts +0 -16
- package/src/ports/guards.ts +0 -68
- package/src/ports/paths.ts +0 -22
- package/src/ports/process-runner.ts +0 -22
- package/src/release/security-gate.ts +0 -102
- package/src/session/tracker.ts +0 -145
- package/src/session/types.ts +0 -23
- package/src/version.ts +0 -3
- package/src/warp/ast-emitter.ts +0 -133
- package/src/warp/ast-import-resolver.ts +0 -333
- package/src/warp/commit-meta.ts +0 -19
- package/src/warp/context.ts +0 -48
- package/src/warp/dead-symbols.ts +0 -174
- package/src/warp/drift-sentinel.ts +0 -101
- package/src/warp/index-head.ts +0 -348
- package/src/warp/observers.ts +0 -101
- package/src/warp/open.ts +0 -67
- package/src/warp/outline-diff-trailer.ts +0 -100
- package/src/warp/plumbing.d.ts +0 -24
- package/src/warp/refactor-difficulty.ts +0 -257
- package/src/warp/references.ts +0 -77
- package/src/warp/stale-docs.ts +0 -210
- package/src/warp/structural-drift-detection.ts +0 -97
- package/src/warp/structural-queries.ts +0 -258
- package/src/warp/symbol-timeline.ts +0 -209
- package/src/warp/traverse-hydrate.ts +0 -61
- package/src/warp/warp-reference-count.ts +0 -47
- package/src/warp/warp-structural-blame.ts +0 -65
- package/src/warp/warp-structural-churn.ts +0 -309
- package/src/warp/warp-structural-log.ts +0 -149
- package/src/warp/writer-id.ts +0 -30
|
@@ -1,456 +0,0 @@
|
|
|
1
|
-
import type Parser from "web-tree-sitter";
|
|
2
|
-
import { detectStructuredFormat } from "../parser/lang.js";
|
|
3
|
-
import type { SupportedStructuredFormat } from "../parser/lang.js";
|
|
4
|
-
import type { OutlineDiff } from "../parser/diff.js";
|
|
5
|
-
import { parseStructuredTreeForFile } from "../parser/runtime.js";
|
|
6
|
-
import type { OutlineEntry, JumpEntry } from "../parser/types.js";
|
|
7
|
-
|
|
8
|
-
export interface BufferPoint {
|
|
9
|
-
readonly row: number;
|
|
10
|
-
readonly column: number;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface BufferRange {
|
|
14
|
-
readonly start: BufferPoint;
|
|
15
|
-
readonly end: BufferPoint;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export type BufferSelection = BufferPoint | BufferRange;
|
|
19
|
-
|
|
20
|
-
export interface WarmProjectionBasis {
|
|
21
|
-
readonly kind: "editor_head";
|
|
22
|
-
readonly headId: string;
|
|
23
|
-
readonly tick?: number | undefined;
|
|
24
|
-
readonly editGroupId?: string | undefined;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface BufferOutlineResult {
|
|
28
|
-
readonly path: string;
|
|
29
|
-
readonly format: SupportedStructuredFormat | null;
|
|
30
|
-
readonly basis: WarmProjectionBasis | null;
|
|
31
|
-
readonly outline: readonly OutlineEntry[];
|
|
32
|
-
readonly jumpTable: readonly JumpEntry[];
|
|
33
|
-
readonly partial: boolean;
|
|
34
|
-
readonly reason?: "UNSUPPORTED_LANGUAGE" | undefined;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export type SyntaxClass =
|
|
38
|
-
| "comment"
|
|
39
|
-
| "function"
|
|
40
|
-
| "keyword"
|
|
41
|
-
| "number"
|
|
42
|
-
| "operator"
|
|
43
|
-
| "property"
|
|
44
|
-
| "punctuation"
|
|
45
|
-
| "string"
|
|
46
|
-
| "type"
|
|
47
|
-
| "variable";
|
|
48
|
-
|
|
49
|
-
export interface SyntaxSpan {
|
|
50
|
-
readonly className: SyntaxClass;
|
|
51
|
-
readonly range: BufferRange;
|
|
52
|
-
readonly text: string;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export interface SyntaxSpanResult {
|
|
56
|
-
readonly path: string;
|
|
57
|
-
readonly format: SupportedStructuredFormat | null;
|
|
58
|
-
readonly basis: WarmProjectionBasis | null;
|
|
59
|
-
readonly partial: boolean;
|
|
60
|
-
readonly spans: readonly SyntaxSpan[];
|
|
61
|
-
readonly injections: readonly InjectionRegion[];
|
|
62
|
-
readonly reason?: "UNSUPPORTED_LANGUAGE" | undefined;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export interface BufferDiagnostic {
|
|
66
|
-
readonly severity: "error" | "warning";
|
|
67
|
-
readonly code: "parse_error" | "missing_node";
|
|
68
|
-
readonly message: string;
|
|
69
|
-
readonly range: BufferRange;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export interface DiagnosticsResult {
|
|
73
|
-
readonly path: string;
|
|
74
|
-
readonly format: SupportedStructuredFormat | null;
|
|
75
|
-
readonly basis: WarmProjectionBasis | null;
|
|
76
|
-
readonly partial: boolean;
|
|
77
|
-
readonly diagnostics: readonly BufferDiagnostic[];
|
|
78
|
-
readonly reason?: "UNSUPPORTED_LANGUAGE" | undefined;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export interface NodeSummary {
|
|
82
|
-
readonly type: string;
|
|
83
|
-
readonly named: boolean;
|
|
84
|
-
readonly range: BufferRange;
|
|
85
|
-
readonly text: string;
|
|
86
|
-
readonly name?: string | undefined;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export interface NodeLookupResult {
|
|
90
|
-
readonly path: string;
|
|
91
|
-
readonly format: SupportedStructuredFormat | null;
|
|
92
|
-
readonly basis: WarmProjectionBasis | null;
|
|
93
|
-
readonly partial: boolean;
|
|
94
|
-
readonly node: NodeSummary | null;
|
|
95
|
-
readonly parents: readonly NodeSummary[];
|
|
96
|
-
readonly reason?: "UNSUPPORTED_LANGUAGE" | undefined;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export interface InjectionRegion {
|
|
100
|
-
readonly language: string;
|
|
101
|
-
readonly range: BufferRange;
|
|
102
|
-
readonly reason: "fenced_code_block" | "jsx_syntax" | "tagged_template";
|
|
103
|
-
readonly hint?: string | undefined;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
export interface InjectionResult {
|
|
107
|
-
readonly path: string;
|
|
108
|
-
readonly format: SupportedStructuredFormat | null;
|
|
109
|
-
readonly basis: WarmProjectionBasis | null;
|
|
110
|
-
readonly injections: readonly InjectionRegion[];
|
|
111
|
-
readonly reason?: "UNSUPPORTED_LANGUAGE" | undefined;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
export interface FoldRegion {
|
|
115
|
-
readonly kind: string;
|
|
116
|
-
readonly range: BufferRange;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
export interface FoldRegionsResult {
|
|
120
|
-
readonly path: string;
|
|
121
|
-
readonly format: SupportedStructuredFormat | null;
|
|
122
|
-
readonly basis: WarmProjectionBasis | null;
|
|
123
|
-
readonly partial: boolean;
|
|
124
|
-
readonly regions: readonly FoldRegion[];
|
|
125
|
-
readonly reason?: "UNSUPPORTED_LANGUAGE" | undefined;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
export interface WarmProjectionParseStatus {
|
|
129
|
-
readonly basis: WarmProjectionBasis | null;
|
|
130
|
-
readonly format: SupportedStructuredFormat | null;
|
|
131
|
-
readonly partial: boolean;
|
|
132
|
-
readonly status: "full" | "partial" | "unsupported";
|
|
133
|
-
readonly reason?: "UNSUPPORTED_LANGUAGE" | undefined;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
export interface WarmProjectionBundleResult {
|
|
137
|
-
readonly path: string;
|
|
138
|
-
readonly format: SupportedStructuredFormat | null;
|
|
139
|
-
readonly basis: WarmProjectionBasis | null;
|
|
140
|
-
readonly partial: boolean;
|
|
141
|
-
readonly parseStatus: WarmProjectionParseStatus;
|
|
142
|
-
readonly syntax: SyntaxSpanResult;
|
|
143
|
-
readonly diagnostics: DiagnosticsResult;
|
|
144
|
-
readonly folds: FoldRegionsResult;
|
|
145
|
-
readonly outline: BufferOutlineResult;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
export interface SelectionStepResult {
|
|
149
|
-
readonly path: string;
|
|
150
|
-
readonly format: SupportedStructuredFormat | null;
|
|
151
|
-
readonly basis: WarmProjectionBasis | null;
|
|
152
|
-
readonly partial: boolean;
|
|
153
|
-
readonly range: BufferRange | null;
|
|
154
|
-
readonly node: NodeSummary | null;
|
|
155
|
-
readonly reason?: "UNSUPPORTED_LANGUAGE" | "NO_SELECTION_STEP" | undefined;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
export interface SymbolOccurrence {
|
|
159
|
-
readonly symbol: string;
|
|
160
|
-
readonly kind: "declaration" | "occurrence";
|
|
161
|
-
readonly range: BufferRange;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
export interface SymbolOccurrencesResult {
|
|
165
|
-
readonly path: string;
|
|
166
|
-
readonly format: SupportedStructuredFormat | null;
|
|
167
|
-
readonly basis: WarmProjectionBasis | null;
|
|
168
|
-
readonly partial: boolean;
|
|
169
|
-
readonly symbol: string | null;
|
|
170
|
-
readonly occurrences: readonly SymbolOccurrence[];
|
|
171
|
-
readonly scopeApplied: "buffer";
|
|
172
|
-
readonly reason?: "UNSUPPORTED_LANGUAGE" | "SYMBOL_NOT_FOUND" | undefined;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
export interface RenameEditPreview {
|
|
176
|
-
readonly path: string;
|
|
177
|
-
readonly range: BufferRange;
|
|
178
|
-
readonly before: string;
|
|
179
|
-
readonly after: string;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
export interface RenamePreviewResult {
|
|
183
|
-
readonly path: string;
|
|
184
|
-
readonly format: SupportedStructuredFormat | null;
|
|
185
|
-
readonly basis: WarmProjectionBasis | null;
|
|
186
|
-
readonly partial: boolean;
|
|
187
|
-
readonly symbol: string | null;
|
|
188
|
-
readonly nextName: string;
|
|
189
|
-
readonly edits: readonly RenameEditPreview[];
|
|
190
|
-
readonly scopeApplied: "buffer";
|
|
191
|
-
readonly reason?: "UNSUPPORTED_LANGUAGE" | "SYMBOL_NOT_FOUND" | undefined;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
export interface ChangedRegion {
|
|
195
|
-
readonly kind: "delete" | "insert" | "replace";
|
|
196
|
-
readonly oldRange: BufferRange;
|
|
197
|
-
readonly newRange: BufferRange;
|
|
198
|
-
readonly oldText: string;
|
|
199
|
-
readonly newText: string;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
export interface StructuredBufferDiffResult {
|
|
203
|
-
readonly path: string;
|
|
204
|
-
readonly format: SupportedStructuredFormat | null;
|
|
205
|
-
readonly fromBasis: WarmProjectionBasis | null;
|
|
206
|
-
readonly toBasis: WarmProjectionBasis | null;
|
|
207
|
-
readonly partial: boolean;
|
|
208
|
-
readonly outlineDiff: OutlineDiff;
|
|
209
|
-
readonly changedRegions: readonly ChangedRegion[];
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
export type SemanticSummaryKind =
|
|
213
|
-
| "no_changes"
|
|
214
|
-
| "whitespace_only"
|
|
215
|
-
| "comments_only"
|
|
216
|
-
| "renamed_symbol"
|
|
217
|
-
| "added_symbol"
|
|
218
|
-
| "removed_symbol"
|
|
219
|
-
| "changed_signature"
|
|
220
|
-
| "changed_structure"
|
|
221
|
-
| "changed_regions_only"
|
|
222
|
-
| "mixed_edit";
|
|
223
|
-
|
|
224
|
-
export interface SemanticSummaryResult {
|
|
225
|
-
readonly path: string;
|
|
226
|
-
readonly format: SupportedStructuredFormat | null;
|
|
227
|
-
readonly fromBasis: WarmProjectionBasis | null;
|
|
228
|
-
readonly toBasis: WarmProjectionBasis | null;
|
|
229
|
-
readonly partial: boolean;
|
|
230
|
-
readonly kind: SemanticSummaryKind;
|
|
231
|
-
readonly summary: string;
|
|
232
|
-
readonly facts: readonly string[];
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
export interface AnchorAffinityResult {
|
|
236
|
-
readonly path: string;
|
|
237
|
-
readonly format: SupportedStructuredFormat | null;
|
|
238
|
-
readonly fromBasis: WarmProjectionBasis | null;
|
|
239
|
-
readonly toBasis: WarmProjectionBasis | null;
|
|
240
|
-
readonly partial: boolean;
|
|
241
|
-
readonly oldRange: BufferRange;
|
|
242
|
-
readonly newRange: BufferRange | null;
|
|
243
|
-
readonly status: "mapped" | "lost";
|
|
244
|
-
readonly strategy: "named_path" | "named_search" | "text_search" | "none";
|
|
245
|
-
readonly confidence: "high" | "medium" | "low";
|
|
246
|
-
readonly reason?: "UNSUPPORTED_LANGUAGE" | "ANCHOR_NOT_FOUND" | undefined;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
export interface StructuredBufferSnapshot {
|
|
250
|
-
readonly path: string;
|
|
251
|
-
readonly content: string;
|
|
252
|
-
readonly format: SupportedStructuredFormat | null;
|
|
253
|
-
readonly basis: WarmProjectionBasis | null;
|
|
254
|
-
readonly partial: boolean;
|
|
255
|
-
readonly parsed: ReturnType<typeof parseStructuredTreeForFile> | null;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
export function createStructuredBufferSnapshot(opts: {
|
|
259
|
-
path: string;
|
|
260
|
-
content: string;
|
|
261
|
-
basis?: WarmProjectionBasis | undefined;
|
|
262
|
-
}): StructuredBufferSnapshot {
|
|
263
|
-
const format = detectStructuredFormat(opts.path);
|
|
264
|
-
const parsed = format === null || format === "md"
|
|
265
|
-
? null
|
|
266
|
-
: parseStructuredTreeForFile(opts.path, opts.content);
|
|
267
|
-
return {
|
|
268
|
-
path: opts.path,
|
|
269
|
-
content: opts.content,
|
|
270
|
-
format,
|
|
271
|
-
basis: opts.basis ?? null,
|
|
272
|
-
partial: parsed?.root.hasError() ?? false,
|
|
273
|
-
parsed,
|
|
274
|
-
};
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
export function isPoint(value: BufferSelection): value is BufferPoint {
|
|
278
|
-
return !("start" in value);
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
export function point(row: number, column: number): BufferPoint {
|
|
282
|
-
return { row, column };
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
export function comparePoints(left: BufferPoint, right: BufferPoint): number {
|
|
286
|
-
if (left.row !== right.row) {
|
|
287
|
-
return left.row - right.row;
|
|
288
|
-
}
|
|
289
|
-
return left.column - right.column;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
export function range(start: BufferPoint, end: BufferPoint): BufferRange {
|
|
293
|
-
return comparePoints(start, end) <= 0 ? { start, end } : { start: end, end: start };
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
export function normalizeSelection(selection: BufferSelection): BufferRange {
|
|
297
|
-
return isPoint(selection) ? { start: selection, end: selection } : range(selection.start, selection.end);
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
function buildLineStarts(source: string): number[] {
|
|
301
|
-
const starts = [0];
|
|
302
|
-
for (let index = 0; index < source.length; index += 1) {
|
|
303
|
-
if (source[index] === "\n") {
|
|
304
|
-
starts.push(index + 1);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
return starts;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
export function pointToIndex(source: string, value: BufferPoint): number {
|
|
311
|
-
const starts = buildLineStarts(source);
|
|
312
|
-
const lineStart = starts[value.row] ?? source.length;
|
|
313
|
-
return Math.min(lineStart + value.column, source.length);
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
export function indexToPoint(source: string, index: number): BufferPoint {
|
|
317
|
-
const starts = buildLineStarts(source);
|
|
318
|
-
let low = 0;
|
|
319
|
-
let high = starts.length - 1;
|
|
320
|
-
while (low <= high) {
|
|
321
|
-
const mid = Math.floor((low + high) / 2);
|
|
322
|
-
const start = starts[mid] ?? 0;
|
|
323
|
-
const next = starts[mid + 1] ?? source.length + 1;
|
|
324
|
-
if (index < start) {
|
|
325
|
-
high = mid - 1;
|
|
326
|
-
continue;
|
|
327
|
-
}
|
|
328
|
-
if (index >= next) {
|
|
329
|
-
low = mid + 1;
|
|
330
|
-
continue;
|
|
331
|
-
}
|
|
332
|
-
return point(mid, index - start);
|
|
333
|
-
}
|
|
334
|
-
const lastRow = Math.max(starts.length - 1, 0);
|
|
335
|
-
return point(lastRow, Math.max(index - (starts[lastRow] ?? 0), 0));
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
export function nodeRange(node: Parser.SyntaxNode): BufferRange {
|
|
339
|
-
return {
|
|
340
|
-
start: point(node.startPosition.row, node.startPosition.column),
|
|
341
|
-
end: point(node.endPosition.row, node.endPosition.column),
|
|
342
|
-
};
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
export function rangesEqual(left: BufferRange, right: BufferRange): boolean {
|
|
346
|
-
return comparePoints(left.start, right.start) === 0 && comparePoints(left.end, right.end) === 0;
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
export function rangeContainsRange(container: BufferRange, target: BufferRange): boolean {
|
|
350
|
-
return comparePoints(container.start, target.start) <= 0 && comparePoints(container.end, target.end) >= 0;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
export function rangeOverlaps(left: BufferRange, right: BufferRange): boolean {
|
|
354
|
-
return comparePoints(left.start, right.end) < 0 && comparePoints(right.start, left.end) < 0;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
export function emptyRangeAt(pointValue: BufferPoint): BufferRange {
|
|
358
|
-
return { start: pointValue, end: pointValue };
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
function truncateText(text: string): string {
|
|
362
|
-
const compact = text.replace(/\s+/g, " ").trim();
|
|
363
|
-
if (compact.length <= 80) {
|
|
364
|
-
return compact;
|
|
365
|
-
}
|
|
366
|
-
return `${compact.slice(0, 77)}...`;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
export function nodeName(node: Parser.SyntaxNode): string | undefined {
|
|
370
|
-
return node.childForFieldName("name")?.text;
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
export function summarizeNode(node: Parser.SyntaxNode): NodeSummary {
|
|
374
|
-
return {
|
|
375
|
-
type: node.type,
|
|
376
|
-
named: node.isNamed(),
|
|
377
|
-
range: nodeRange(node),
|
|
378
|
-
text: truncateText(node.text),
|
|
379
|
-
...(nodeName(node) !== undefined ? { name: nodeName(node) } : {}),
|
|
380
|
-
};
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
export function isIdentifierType(type: string): boolean {
|
|
384
|
-
return type === "identifier"
|
|
385
|
-
|| type === "property_identifier"
|
|
386
|
-
|| type === "private_property_identifier"
|
|
387
|
-
|| type === "type_identifier";
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
export function findCoveringNamedNode(root: Parser.SyntaxNode, selection: BufferRange): Parser.SyntaxNode {
|
|
391
|
-
let current = root.namedDescendantForPosition(selection.start, selection.end);
|
|
392
|
-
while (current.parent !== null && current.parent.isNamed() && !rangeContainsRange(nodeRange(current), selection)) {
|
|
393
|
-
current = current.parent;
|
|
394
|
-
}
|
|
395
|
-
while (!rangeContainsRange(nodeRange(current), selection) && current.parent !== null) {
|
|
396
|
-
current = current.parent;
|
|
397
|
-
}
|
|
398
|
-
return current;
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
export function nearestNamedChild(current: Parser.SyntaxNode, focus: BufferPoint): Parser.SyntaxNode | null {
|
|
402
|
-
let child = current.namedDescendantForPosition(focus);
|
|
403
|
-
if (child.id === current.id) {
|
|
404
|
-
return null;
|
|
405
|
-
}
|
|
406
|
-
while (child.parent !== null && child.parent.id !== current.id) {
|
|
407
|
-
child = child.parent;
|
|
408
|
-
}
|
|
409
|
-
return child.id === current.id ? null : child;
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
export function collectIdentifierNodes(node: Parser.SyntaxNode, output: Parser.SyntaxNode[]): void {
|
|
413
|
-
if (isIdentifierType(node.type)) {
|
|
414
|
-
output.push(node);
|
|
415
|
-
}
|
|
416
|
-
for (const child of node.children) {
|
|
417
|
-
collectIdentifierNodes(child, output);
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
function namedChildIndex(parent: Parser.SyntaxNode, node: Parser.SyntaxNode): number | null {
|
|
422
|
-
for (let index = 0; index < parent.namedChildren.length; index += 1) {
|
|
423
|
-
const child = parent.namedChildren[index];
|
|
424
|
-
if (child?.id === node.id) {
|
|
425
|
-
return index;
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
return null;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
export function buildNamedPath(node: Parser.SyntaxNode): number[] {
|
|
432
|
-
const path: number[] = [];
|
|
433
|
-
let current = node;
|
|
434
|
-
for (;;) {
|
|
435
|
-
if (current.parent === null) {
|
|
436
|
-
break;
|
|
437
|
-
}
|
|
438
|
-
const parent: Parser.SyntaxNode = current.parent;
|
|
439
|
-
const index = namedChildIndex(parent, current);
|
|
440
|
-
if (index === null) {
|
|
441
|
-
break;
|
|
442
|
-
}
|
|
443
|
-
path.push(index);
|
|
444
|
-
current = parent;
|
|
445
|
-
}
|
|
446
|
-
path.reverse();
|
|
447
|
-
return path;
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
export function followNamedPath(root: Parser.SyntaxNode, path: readonly number[]): Parser.SyntaxNode | null {
|
|
451
|
-
let current: Parser.SyntaxNode | null = root;
|
|
452
|
-
for (const index of path) {
|
|
453
|
-
current = current?.namedChildren[index] ?? null;
|
|
454
|
-
}
|
|
455
|
-
return current;
|
|
456
|
-
}
|