@mrclrchtr/supi-code-intelligence 3.2.0 → 4.0.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/README.md +154 -435
- package/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
- package/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
- package/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
- package/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
- package/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
- package/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
- package/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-lsp/README.md +72 -62
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-lsp/package.json +4 -5
- package/node_modules/@mrclrchtr/supi-lsp/src/api.ts +9 -9
- package/node_modules/@mrclrchtr/supi-lsp/src/client/client.ts +70 -41
- package/node_modules/@mrclrchtr/supi-lsp/src/client/transport.ts +16 -13
- package/node_modules/@mrclrchtr/supi-lsp/src/config/config.ts +2 -2
- package/node_modules/@mrclrchtr/supi-lsp/src/config/lsp-settings.ts +0 -2
- package/node_modules/@mrclrchtr/supi-lsp/src/index.ts +6 -6
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-diagnostics.ts +5 -95
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-recovery.ts +4 -3
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-symbol.ts +44 -6
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +47 -65
- package/node_modules/@mrclrchtr/supi-lsp/src/provider/lsp-semantic-provider.ts +132 -79
- package/node_modules/@mrclrchtr/supi-lsp/src/provider/refactor-planning.ts +6 -14
- package/node_modules/@mrclrchtr/supi-lsp/src/session/readiness.ts +38 -0
- package/node_modules/@mrclrchtr/supi-lsp/src/session/runtime-controller.ts +87 -75
- package/node_modules/@mrclrchtr/supi-lsp/src/session/runtime-registration.ts +5 -5
- package/node_modules/@mrclrchtr/supi-lsp/src/session/{service-registry.ts → runtime-registry.ts} +163 -71
- package/node_modules/@mrclrchtr/supi-tree-sitter/README.md +4 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +4 -21
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/bash/tree-sitter-bash.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/bash/tree-sitter-bash.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/c/tree-sitter-c.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/c/tree-sitter-c.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/go/tree-sitter-go.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/go/tree-sitter-go.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/javascript/tree-sitter-javascript.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/javascript/tree-sitter-javascript.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/kotlin/tree-sitter-kotlin.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/kotlin/tree-sitter-kotlin.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/python/tree-sitter-python.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/python/tree-sitter-python.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/r/tree-sitter-r.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/r/tree-sitter-r.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/rust/tree-sitter-rust.wasm.json +1 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/sql/tree-sitter-sql.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/sql/tree-sitter-sql.wasm.json +3 -3
- package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/generate-kotlin-wasm.mjs +6 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/generate-sql-wasm.mjs +18 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/vendor-wasm.mjs +17 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/api.ts +2 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/coordinates.ts +20 -41
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/index.ts +2 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/language.ts +7 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/operation-support.ts +40 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/session.ts +9 -7
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/call-sites.ts +6 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/callees.ts +76 -37
- package/node_modules/yaml/LICENSE +13 -0
- package/node_modules/yaml/README.md +172 -0
- package/node_modules/yaml/bin.mjs +11 -0
- package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
- package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
- package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
- package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
- package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
- package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +225 -0
- package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
- package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
- package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
- package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
- package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
- package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
- package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
- package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
- package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
- package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
- package/node_modules/yaml/browser/dist/errors.js +57 -0
- package/node_modules/yaml/browser/dist/index.js +17 -0
- package/node_modules/yaml/browser/dist/log.js +11 -0
- package/node_modules/yaml/browser/dist/nodes/Alias.js +116 -0
- package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
- package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
- package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
- package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
- package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
- package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
- package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
- package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
- package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
- package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
- package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
- package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
- package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
- package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
- package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
- package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
- package/node_modules/yaml/browser/dist/public-api.js +102 -0
- package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
- package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
- package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
- package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
- package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
- package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
- package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
- package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
- package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
- package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
- package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
- package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
- package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
- package/node_modules/yaml/browser/dist/util.js +11 -0
- package/node_modules/yaml/browser/dist/visit.js +233 -0
- package/node_modules/yaml/browser/index.js +5 -0
- package/node_modules/yaml/browser/package.json +3 -0
- package/node_modules/yaml/dist/cli.d.ts +8 -0
- package/node_modules/yaml/dist/cli.mjs +201 -0
- package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
- package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
- package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
- package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
- package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
- package/node_modules/yaml/dist/compose/compose-node.js +112 -0
- package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
- package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
- package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
- package/node_modules/yaml/dist/compose/composer.js +224 -0
- package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
- package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
- package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
- package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
- package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
- package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
- package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +227 -0
- package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
- package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
- package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
- package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
- package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
- package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
- package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
- package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
- package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
- package/node_modules/yaml/dist/doc/Document.js +337 -0
- package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
- package/node_modules/yaml/dist/doc/anchors.js +76 -0
- package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
- package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
- package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
- package/node_modules/yaml/dist/doc/createNode.js +90 -0
- package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
- package/node_modules/yaml/dist/doc/directives.js +178 -0
- package/node_modules/yaml/dist/errors.d.ts +21 -0
- package/node_modules/yaml/dist/errors.js +62 -0
- package/node_modules/yaml/dist/index.d.ts +25 -0
- package/node_modules/yaml/dist/index.js +50 -0
- package/node_modules/yaml/dist/log.d.ts +3 -0
- package/node_modules/yaml/dist/log.js +19 -0
- package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
- package/node_modules/yaml/dist/nodes/Alias.js +118 -0
- package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
- package/node_modules/yaml/dist/nodes/Collection.js +151 -0
- package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
- package/node_modules/yaml/dist/nodes/Node.js +40 -0
- package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
- package/node_modules/yaml/dist/nodes/Pair.js +39 -0
- package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
- package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
- package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
- package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
- package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
- package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
- package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
- package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
- package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
- package/node_modules/yaml/dist/nodes/identity.js +53 -0
- package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
- package/node_modules/yaml/dist/nodes/toJS.js +39 -0
- package/node_modules/yaml/dist/options.d.ts +350 -0
- package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
- package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
- package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
- package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
- package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
- package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
- package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
- package/node_modules/yaml/dist/parse/cst.js +112 -0
- package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
- package/node_modules/yaml/dist/parse/lexer.js +723 -0
- package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
- package/node_modules/yaml/dist/parse/line-counter.js +41 -0
- package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
- package/node_modules/yaml/dist/parse/parser.js +980 -0
- package/node_modules/yaml/dist/public-api.d.ts +44 -0
- package/node_modules/yaml/dist/public-api.js +107 -0
- package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
- package/node_modules/yaml/dist/schema/Schema.js +39 -0
- package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/map.js +19 -0
- package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
- package/node_modules/yaml/dist/schema/common/null.js +17 -0
- package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/seq.js +19 -0
- package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/string.js +16 -0
- package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/bool.js +21 -0
- package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/float.js +47 -0
- package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/int.js +42 -0
- package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
- package/node_modules/yaml/dist/schema/core/schema.js +25 -0
- package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
- package/node_modules/yaml/dist/schema/json/schema.js +64 -0
- package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
- package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
- package/node_modules/yaml/dist/schema/tags.js +99 -0
- package/node_modules/yaml/dist/schema/types.d.ts +92 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
- package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
- package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
- package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
- package/node_modules/yaml/dist/stringify/stringify.js +132 -0
- package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
- package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
- package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
- package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
- package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
- package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
- package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
- package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
- package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
- package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
- package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
- package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
- package/node_modules/yaml/dist/test-events.d.ts +4 -0
- package/node_modules/yaml/dist/test-events.js +134 -0
- package/node_modules/yaml/dist/util.d.ts +16 -0
- package/node_modules/yaml/dist/util.js +28 -0
- package/node_modules/yaml/dist/visit.d.ts +102 -0
- package/node_modules/yaml/dist/visit.js +236 -0
- package/node_modules/yaml/package.json +97 -0
- package/node_modules/yaml/util.js +2 -0
- package/package.json +9 -8
- package/src/analysis/architecture/discovery.ts +213 -227
- package/src/analysis/architecture/manifest.ts +147 -0
- package/src/analysis/architecture/model.ts +119 -52
- package/src/analysis/architecture/workspace-config.ts +229 -0
- package/src/analysis/{coverage/coverage-warnings.ts → capability/capability-warnings.ts} +41 -78
- package/src/analysis/evidence.ts +22 -5
- package/src/analysis/health/diagnostics.ts +183 -0
- package/src/analysis/health/recovery.ts +39 -0
- package/src/analysis/health/signals.ts +20 -0
- package/src/analysis/instruction-files.ts +60 -48
- package/src/analysis/provider.ts +31 -12
- package/src/analysis/readiness.ts +29 -9
- package/src/{tool/refactor-apply → analysis/refactor}/apply.ts +120 -26
- package/src/analysis/refactor/position.ts +6 -0
- package/src/analysis/refactor/safety.ts +4 -11
- package/src/analysis/references/locations.ts +20 -0
- package/src/analysis/references/semantic-refs.ts +21 -11
- package/src/{tool/graph → analysis/relations}/implementations.ts +27 -23
- package/src/analysis/relations/provider-locations.ts +179 -0
- package/src/{tool/graph → analysis/relations}/references.ts +25 -21
- package/src/{tool/graph → analysis/relations}/types.ts +4 -19
- package/src/analysis/search/ast-scan.ts +376 -0
- package/src/analysis/search/call-name.ts +68 -0
- package/src/analysis/search/deadline.ts +84 -0
- package/src/analysis/search/paths.ts +88 -0
- package/src/analysis/search/pattern.ts +290 -246
- package/src/analysis/target/anchored.ts +72 -27
- package/src/analysis/target/file.ts +292 -132
- package/src/analysis/target/identity.ts +237 -0
- package/src/analysis/target/symbol.ts +169 -86
- package/src/analysis/target/types.ts +36 -4
- package/src/api.ts +21 -4
- package/src/app/app.ts +53 -46
- package/src/extension.ts +68 -66
- package/src/session/capability-adapter.ts +26 -118
- package/src/session/find-types.ts +38 -0
- package/src/session/find-workflow.ts +141 -0
- package/src/session/graph/collect.ts +181 -0
- package/src/session/graph-types.ts +77 -0
- package/src/session/graph-workflow.ts +152 -0
- package/src/session/health-types.ts +134 -0
- package/src/session/health-workflow.ts +341 -0
- package/src/session/input/common.ts +216 -0
- package/src/session/input/health-refactor.ts +169 -0
- package/src/session/input/workflows.ts +211 -0
- package/src/session/inspect/collect.ts +304 -0
- package/src/session/inspect/file-point.ts +69 -0
- package/src/session/inspect-types.ts +78 -0
- package/src/session/inspect-workflow.ts +157 -0
- package/src/session/orientation/collect.ts +718 -0
- package/src/session/orientation/context-facts.ts +319 -0
- package/src/session/orientation/context-sections.ts +352 -0
- package/src/session/orientation-types.ts +97 -0
- package/src/session/orientation-workflow.ts +307 -0
- package/src/session/refactor-plans.ts +1 -1
- package/src/session/refactor-types.ts +51 -0
- package/src/session/refactor-workflow.ts +263 -0
- package/src/session/session.ts +263 -234
- package/src/session/target-candidates.ts +60 -0
- package/src/session/target-input.ts +98 -0
- package/src/session/target-store.ts +132 -29
- package/src/session/target-workflow.ts +254 -302
- package/src/session/workflow-control.ts +35 -0
- package/src/substrate/lsp/lifecycle.ts +9 -22
- package/src/substrate/lsp/maintenance.ts +75 -0
- package/src/substrate/lsp/recovery.ts +41 -25
- package/src/substrate/lsp/settings.ts +1 -10
- package/src/substrate/lsp/state.ts +2 -13
- package/src/tool/find/ast-kinds.ts +35 -0
- package/src/tool/find/execute.ts +22 -113
- package/src/tool/find/markdown.ts +85 -221
- package/src/tool/find/modes.ts +5 -0
- package/src/tool/find/render.ts +57 -0
- package/src/tool/find/tui.ts +1 -1
- package/src/tool/graph/calls-md.ts +17 -30
- package/src/tool/graph/execute.ts +42 -103
- package/src/tool/graph/implementations-md.ts +32 -54
- package/src/tool/graph/markdown-base.ts +73 -196
- package/src/tool/graph/provider-location-md.ts +9 -0
- package/src/tool/graph/references-md.ts +34 -27
- package/src/tool/graph/tui.ts +8 -26
- package/src/tool/guidance.ts +31 -48
- package/src/tool/health/execute.ts +15 -56
- package/src/tool/health/markdown.ts +199 -148
- package/src/tool/health/semantic-state.ts +24 -0
- package/src/tool/health/tui.ts +262 -36
- package/src/tool/infra/error-results.ts +0 -2
- package/src/tool/infra/progress.ts +2 -2
- package/src/tool/infra/workflow-control.ts +11 -0
- package/src/tool/inspect/execute.ts +23 -63
- package/src/tool/inspect/markdown.ts +114 -95
- package/src/tool/inspect/tui.ts +7 -7
- package/src/tool/orientation/execute.ts +50 -37
- package/src/tool/orientation/markdown.ts +26 -31
- package/src/tool/orientation/tui.ts +41 -39
- package/src/tool/refactor-apply/execute.ts +23 -9
- package/src/tool/refactor-apply/tui.ts +7 -3
- package/src/tool/refactor-plan/execute.ts +44 -61
- package/src/tool/refactor-plan/markdown.ts +33 -56
- package/src/tool/refactor-plan/tui.ts +10 -11
- package/src/tool/register.ts +6 -5
- package/src/tool/resolve/execute.ts +23 -69
- package/src/tool/resolve/markdown.ts +125 -114
- package/src/tool/resolve/tui.ts +11 -9
- package/src/tool/result/assembly.ts +125 -0
- package/src/tool/result/errors.ts +20 -34
- package/src/tool/result/find.ts +107 -21
- package/src/tool/result/graph.ts +163 -64
- package/src/tool/result/health.ts +170 -73
- package/src/tool/result/inspect.ts +183 -41
- package/src/tool/result/orientation.ts +118 -16
- package/src/tool/result/refactor.ts +101 -21
- package/src/tool/result/resolve.ts +243 -80
- package/src/tool/result/types.ts +100 -56
- package/src/tool/schemas.ts +160 -231
- package/src/tool/specs.ts +57 -168
- package/src/types/details.ts +2 -4
- package/src/types/execution.ts +6 -15
- package/src/types/index.ts +2 -4
- package/src/types/tool-names.ts +1 -2
- package/src/ui/footer.ts +3 -3
- package/src/ui/markdown/gather.ts +17 -65
- package/src/ui/markdown/overview-data.ts +143 -21
- package/src/ui/markdown/overview.ts +27 -8
- package/src/ui/markdown/types.ts +12 -16
- package/src/ui/status-command.ts +39 -31
- package/src/ui/status-overlay.ts +23 -15
- package/src/ui/tui/common.ts +121 -74
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-augmentation.ts +0 -82
- package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-context.ts +0 -116
- package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-display.ts +0 -69
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/capability-index.ts +0 -24
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/client-pool.ts +0 -33
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/diagnostic-store.ts +0 -51
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-stale-resync.ts +0 -47
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/recovery-coordinator.ts +0 -37
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/workspace-router.ts +0 -44
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/src/analysis/brief/directory.ts +0 -324
- package/src/analysis/brief/enrich.ts +0 -157
- package/src/analysis/brief/file.ts +0 -84
- package/src/analysis/brief/inventory.ts +0 -177
- package/src/analysis/brief/main.ts +0 -176
- package/src/analysis/brief/models.ts +0 -75
- package/src/analysis/brief/public-brief.ts +0 -179
- package/src/analysis/brief/summarize.ts +0 -208
- package/src/analysis/brief/types.ts +0 -27
- package/src/analysis/brief/use-case.ts +0 -264
- package/src/analysis/search/ripgrep.ts +0 -558
- package/src/analysis/signals/git.ts +0 -89
- package/src/analysis/signals/project.ts +0 -189
- package/src/analysis/target/bridge.ts +0 -152
- package/src/analysis/target/file-resolution.ts +0 -125
- package/src/analysis/target/planner.ts +0 -92
- package/src/analysis/target/query.ts +0 -74
- package/src/analysis/target/resolve-common.ts +0 -115
- package/src/analysis/target/service.ts +0 -229
- package/src/analysis/tests/likely-tests.ts +0 -174
- package/src/analysis/tests/test-discovery.ts +0 -540
- package/src/analysis/tests/vitest.ts +0 -87
- package/src/app/manager.ts +0 -65
- package/src/substrate/lsp/diagnostic-injection.ts +0 -203
- package/src/substrate/lsp/overrides.ts +0 -132
- package/src/tool/find/orchestrate.ts +0 -317
- package/src/tool/find/semantic-search.ts +0 -128
- package/src/tool/graph/collect-relation.ts +0 -372
- package/src/tool/graph/orchestrate.ts +0 -259
- package/src/tool/health/orchestrate.ts +0 -151
- package/src/tool/health/sections/diagnostics.ts +0 -182
- package/src/tool/health/sections/recovery.ts +0 -89
- package/src/tool/health/sections/signals.ts +0 -89
- package/src/tool/impact/analysis.ts +0 -220
- package/src/tool/impact/change-set-impact.ts +0 -152
- package/src/tool/impact/execute.ts +0 -125
- package/src/tool/impact/file-level-impact.ts +0 -82
- package/src/tool/impact/markdown.ts +0 -283
- package/src/tool/impact/orchestrate.ts +0 -97
- package/src/tool/impact/result.ts +0 -2
- package/src/tool/impact/single-impact.ts +0 -90
- package/src/tool/impact/tui.ts +0 -39
- package/src/tool/impact/types.ts +0 -34
- package/src/tool/infra/cross-field.ts +0 -335
- package/src/tool/infra/pipeline.ts +0 -334
- package/src/tool/infra/readiness-message.ts +0 -5
- package/src/tool/inspect/orchestrate.ts +0 -154
- package/src/tool/orientation/deps.ts +0 -63
- package/src/tool/orientation/mode.ts +0 -139
- package/src/tool/orientation/orchestrate.ts +0 -475
- package/src/tool/orientation/precise-target.ts +0 -253
- package/src/tool/params.ts +0 -15
- package/src/tool/refactor-apply/markdown.ts +0 -118
- package/src/tool/refactor-apply/orchestrate.ts +0 -84
- package/src/tool/refactor-plan/orchestrate.ts +0 -355
- package/src/tool/resolve/orchestrate.ts +0 -38
- package/src/tool/result/impact.ts +0 -50
- package/src/ui/markdown/brief.ts +0 -218
- package/src/ui/message-renderer.ts +0 -121
- package/src/ui/tui/index.ts +0 -37
- /package/src/{tool/graph → analysis/relations}/callees.ts +0 -0
package/src/session/session.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Workspace code-intelligence session
|
|
2
|
+
* Workspace code-intelligence session.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
*
|
|
5
|
+
* Per-workspace module that owns session-scoped state (targets, plans,
|
|
6
|
+
* Capability Warnings) and provides typed workflow methods for all
|
|
6
7
|
* public code_* tools. Tool executors receive this session explicitly
|
|
7
8
|
* through their execution context; the session centralizes provider
|
|
8
9
|
* access, target resolution, plan management, and readiness policy.
|
|
@@ -15,19 +16,35 @@
|
|
|
15
16
|
* @mrclrchtr/supi-code-intelligence — internal, not exported via api.ts
|
|
16
17
|
*/
|
|
17
18
|
|
|
19
|
+
import { realpathSync } from "node:fs";
|
|
18
20
|
import * as path from "node:path";
|
|
19
21
|
import type { SessionEntry } from "@earendil-works/pi-coding-agent";
|
|
20
|
-
import {
|
|
21
|
-
getDefaultWorkspaceRuntime,
|
|
22
|
-
type SemanticProvider,
|
|
23
|
-
type StructuralProvider,
|
|
24
|
-
} from "@mrclrchtr/supi-code-runtime/api";
|
|
25
22
|
import type { LspRuntimeController } from "@mrclrchtr/supi-lsp/api";
|
|
26
|
-
import { CoverageWarningState } from "../analysis/coverage/coverage-warnings.ts";
|
|
27
|
-
import type { CodeProvider } from "../analysis/provider.ts";
|
|
28
|
-
import { getCodeProvider } from "../analysis/provider.ts";
|
|
29
23
|
import { type CapabilityAdapter, WorkspaceCapabilityAdapter } from "./capability-adapter.ts";
|
|
24
|
+
import type { FindWorkflowInput, FindWorkflowOutcome } from "./find-types.ts";
|
|
25
|
+
import { runFindWorkflow } from "./find-workflow.ts";
|
|
26
|
+
import type { GraphWorkflowInput, GraphWorkflowOutcome } from "./graph-types.ts";
|
|
27
|
+
import { runGraphWorkflow } from "./graph-workflow.ts";
|
|
28
|
+
import type {
|
|
29
|
+
HealthRefreshAttempt,
|
|
30
|
+
HealthWorkflowInput,
|
|
31
|
+
HealthWorkflowOutcome,
|
|
32
|
+
} from "./health-types.ts";
|
|
33
|
+
import { runHealthWorkflow } from "./health-workflow.ts";
|
|
34
|
+
import { parseResolveRequest } from "./input/common.ts";
|
|
35
|
+
import type { InspectWorkflowInput, InspectWorkflowOutcome } from "./inspect-types.ts";
|
|
36
|
+
import { runInspectWorkflow } from "./inspect-workflow.ts";
|
|
37
|
+
import type { OrientationWorkflowInput, OrientationWorkflowOutcome } from "./orientation-types.ts";
|
|
38
|
+
import { runOrientationWorkflow } from "./orientation-workflow.ts";
|
|
30
39
|
import { getPlan, type RefactorPlan, removePlan, storePlan } from "./refactor-plans.ts";
|
|
40
|
+
import type {
|
|
41
|
+
RefactorApplyWorkflowInput,
|
|
42
|
+
RefactorApplyWorkflowOutcome,
|
|
43
|
+
RefactorPlanWorkflowInput,
|
|
44
|
+
RefactorPlanWorkflowOutcome,
|
|
45
|
+
} from "./refactor-types.ts";
|
|
46
|
+
import { runRefactorApplyWorkflow, runRefactorPlanWorkflow } from "./refactor-workflow.ts";
|
|
47
|
+
import type { ResolveTargetInput, TargetInput } from "./target-input.ts";
|
|
31
48
|
import {
|
|
32
49
|
getWorkflowTarget,
|
|
33
50
|
registerWorkflowTarget,
|
|
@@ -38,43 +55,70 @@ import {
|
|
|
38
55
|
} from "./target-store.ts";
|
|
39
56
|
import {
|
|
40
57
|
resolveTargetWorkflow,
|
|
41
|
-
type TargetWorkflowInput,
|
|
42
58
|
type TargetWorkflowOutcome,
|
|
43
59
|
type TargetWorkflowPolicy,
|
|
44
60
|
} from "./target-workflow.ts";
|
|
61
|
+
import { reportProgress, throwIfAborted, type WorkflowControl } from "./workflow-control.ts";
|
|
45
62
|
|
|
46
63
|
// ── Re-export types consumed by callers ───────────────────────────────
|
|
47
64
|
|
|
48
|
-
export type { CoverageWarningState } from "../analysis/coverage/coverage-warnings.ts";
|
|
49
|
-
export type { CodeProvider, CodeProviderState } from "../analysis/provider.ts";
|
|
50
65
|
export type { CapabilityAdapter } from "./capability-adapter.ts";
|
|
66
|
+
export type {
|
|
67
|
+
FindMode,
|
|
68
|
+
FindWorkflowData,
|
|
69
|
+
FindWorkflowInput,
|
|
70
|
+
FindWorkflowOutcome,
|
|
71
|
+
} from "./find-types.ts";
|
|
72
|
+
export type {
|
|
73
|
+
GraphRelationKind,
|
|
74
|
+
GraphSection,
|
|
75
|
+
GraphWorkflowInput,
|
|
76
|
+
GraphWorkflowOutcome,
|
|
77
|
+
RequestedGraphRelation,
|
|
78
|
+
} from "./graph-types.ts";
|
|
79
|
+
export type {
|
|
80
|
+
HealthData,
|
|
81
|
+
HealthSection,
|
|
82
|
+
HealthWorkflowInput,
|
|
83
|
+
HealthWorkflowOutcome,
|
|
84
|
+
} from "./health-types.ts";
|
|
85
|
+
export type {
|
|
86
|
+
InspectResultData,
|
|
87
|
+
InspectWorkflowInput,
|
|
88
|
+
InspectWorkflowOutcome,
|
|
89
|
+
} from "./inspect-types.ts";
|
|
90
|
+
export type {
|
|
91
|
+
OrientationFocusInput,
|
|
92
|
+
OrientationWorkflowInput,
|
|
93
|
+
OrientationWorkflowOutcome,
|
|
94
|
+
} from "./orientation-types.ts";
|
|
51
95
|
export type { RefactorPlan } from "./refactor-plans.ts";
|
|
96
|
+
export type {
|
|
97
|
+
PublicSourceRange,
|
|
98
|
+
RefactorApplyWorkflowInput,
|
|
99
|
+
RefactorApplyWorkflowOutcome,
|
|
100
|
+
RefactorOperationInput,
|
|
101
|
+
RefactorPlanWorkflowInput,
|
|
102
|
+
RefactorPlanWorkflowOutcome,
|
|
103
|
+
} from "./refactor-types.ts";
|
|
104
|
+
export type {
|
|
105
|
+
GraphTargetInput,
|
|
106
|
+
OrientationTargetInput,
|
|
107
|
+
RefactorTargetInput,
|
|
108
|
+
ResolveTargetInput,
|
|
109
|
+
SourcePointInput,
|
|
110
|
+
SymbolTargetInput,
|
|
111
|
+
TargetInput,
|
|
112
|
+
TargetSymbolKind,
|
|
113
|
+
} from "./target-input.ts";
|
|
52
114
|
export type {
|
|
53
115
|
TargetLookupResult,
|
|
54
116
|
TargetRegistrationInput,
|
|
55
117
|
TargetRegistrationOutput,
|
|
56
118
|
TargetStoreEntry,
|
|
57
119
|
} from "./target-store.ts";
|
|
58
|
-
export type {
|
|
59
|
-
|
|
60
|
-
TargetWorkflowOutcome,
|
|
61
|
-
TargetWorkflowPolicy,
|
|
62
|
-
} from "./target-workflow.ts";
|
|
63
|
-
|
|
64
|
-
// ── Target ID expansion result ────────────────────────────────────────
|
|
65
|
-
|
|
66
|
-
export type TargetIdExpansionResult =
|
|
67
|
-
| {
|
|
68
|
-
kind: "ok";
|
|
69
|
-
file: string;
|
|
70
|
-
line: number;
|
|
71
|
-
character: number;
|
|
72
|
-
targetName: string | null;
|
|
73
|
-
targetKind: string | null;
|
|
74
|
-
entry: TargetStoreEntry;
|
|
75
|
-
}
|
|
76
|
-
| { kind: "not-provided" }
|
|
77
|
-
| { kind: "error"; message: string };
|
|
120
|
+
export type { TargetWorkflowOutcome, TargetWorkflowPolicy } from "./target-workflow.ts";
|
|
121
|
+
export type { WorkflowControl, WorkflowProgressEvent } from "./workflow-control.ts";
|
|
78
122
|
|
|
79
123
|
// ── Session class ─────────────────────────────────────────────────────
|
|
80
124
|
|
|
@@ -93,7 +137,10 @@ export class WorkspaceCodeIntelligenceSession {
|
|
|
93
137
|
readonly #capability: CapabilityAdapter;
|
|
94
138
|
|
|
95
139
|
/** Whether the hidden architecture overview has been injected. */
|
|
96
|
-
hasInjectedOverview = false;
|
|
140
|
+
#hasInjectedOverview = false;
|
|
141
|
+
|
|
142
|
+
/** Most recent explicit diagnostic refresh attempt, including its established outcome. */
|
|
143
|
+
#lastHealthRefreshAttempt: HealthRefreshAttempt | null = null;
|
|
97
144
|
|
|
98
145
|
/** Session-scoped workflow target storage (targetId → entry). */
|
|
99
146
|
readonly #workflowTargets = new Map<string, TargetStoreEntry>();
|
|
@@ -101,53 +148,189 @@ export class WorkspaceCodeIntelligenceSession {
|
|
|
101
148
|
/** Session-scoped refactor plan storage (planId → plan). */
|
|
102
149
|
readonly #refactorPlans = new Map<string, RefactorPlan>();
|
|
103
150
|
|
|
104
|
-
/**
|
|
105
|
-
* Coverage warning state for deduplication and grace-period timing.
|
|
106
|
-
*/
|
|
107
|
-
readonly coverageWarningState = new CoverageWarningState();
|
|
108
|
-
|
|
109
151
|
/** Absolute instruction files already loaded by PI's native context-file mechanism. */
|
|
110
|
-
readonly nativeInstructionPaths = new Set<string>();
|
|
152
|
+
readonly #nativeInstructionPaths = new Set<string>();
|
|
111
153
|
|
|
112
154
|
/** Absolute directories whose instruction files were already surfaced by code_orientation. */
|
|
113
|
-
readonly surfacedInstructionDirs = new Set<string>();
|
|
155
|
+
readonly #surfacedInstructionDirs = new Set<string>();
|
|
114
156
|
|
|
115
157
|
/**
|
|
116
158
|
* Optional LSP controller reference — attached by LSP lifecycle module
|
|
117
|
-
* for
|
|
159
|
+
* for Capability Warning evaluation and server management.
|
|
118
160
|
*/
|
|
119
|
-
lspController: LspRuntimeController | null = null;
|
|
161
|
+
#lspController: LspRuntimeController | null = null;
|
|
120
162
|
|
|
121
|
-
/**
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
163
|
+
/** Workspace sentinel snapshot for change detection across explicit queries. */
|
|
164
|
+
#sentinelSnapshot: Map<string, number> = new Map();
|
|
165
|
+
|
|
166
|
+
/** Whether the project owning this session is trusted for config loading. */
|
|
167
|
+
#projectTrusted = false;
|
|
126
168
|
|
|
127
169
|
constructor(cwd: string, capability?: CapabilityAdapter) {
|
|
128
170
|
this.cwd = cwd;
|
|
129
171
|
this.#capability = capability ?? new WorkspaceCapabilityAdapter();
|
|
130
172
|
}
|
|
131
173
|
|
|
174
|
+
/** Record whether project-local configuration may be read for this session. */
|
|
175
|
+
setProjectTrusted(trusted: boolean): void {
|
|
176
|
+
this.#projectTrusted = trusted;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/** Attach lifecycle-owned LSP state without exposing it to Tool adapters. */
|
|
180
|
+
attachLspController(controller: LspRuntimeController | null): void {
|
|
181
|
+
this.#lspController = controller;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Seed the sentinel snapshot from lifecycle-owned state after session start.
|
|
186
|
+
* Called by the extension entry point after LSP initialization.
|
|
187
|
+
*/
|
|
188
|
+
seedSentinelSnapshot(snapshot: Map<string, number>): void {
|
|
189
|
+
this.#sentinelSnapshot = snapshot;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/** Restore overview state from the active session branch. */
|
|
193
|
+
restoreOverviewInjection(): void {
|
|
194
|
+
this.#hasInjectedOverview = true;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/** Atomically claim first-turn overview injection for this workspace session. */
|
|
198
|
+
claimOverviewInjection(): boolean {
|
|
199
|
+
if (this.#hasInjectedOverview) return false;
|
|
200
|
+
this.#hasInjectedOverview = true;
|
|
201
|
+
return true;
|
|
202
|
+
}
|
|
203
|
+
|
|
132
204
|
// ── Target workflow (deep seam) ───────────────────────────────────
|
|
133
205
|
|
|
134
206
|
/**
|
|
135
207
|
* Resolve target input into an immutable resolved target.
|
|
136
208
|
*
|
|
137
|
-
* This is the deep module interface. Tool executors
|
|
138
|
-
*
|
|
139
|
-
*
|
|
209
|
+
* This is the deep module interface. Tool executors use it instead of
|
|
210
|
+
* bypassing session policy through one-off target adapters. Returns typed
|
|
211
|
+
* outcomes — no markdown and no mutated parameters.
|
|
140
212
|
*/
|
|
141
213
|
async resolveTarget(
|
|
142
|
-
input:
|
|
214
|
+
input: TargetInput,
|
|
143
215
|
policy: TargetWorkflowPolicy,
|
|
144
216
|
): Promise<TargetWorkflowOutcome> {
|
|
145
|
-
return resolveTargetWorkflow(input, policy,
|
|
217
|
+
return resolveTargetWorkflow(input, policy, this.targetWorkflowDeps());
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/** Resolve one public target source and register its session-scoped handle. */
|
|
221
|
+
async resolve(
|
|
222
|
+
input: { readonly target: ResolveTargetInput; readonly maxResults?: number },
|
|
223
|
+
control?: WorkflowControl,
|
|
224
|
+
): Promise<TargetWorkflowOutcome> {
|
|
225
|
+
const parsed = parseResolveRequest(input);
|
|
226
|
+
if (parsed.kind === "invalid-input") return parsed;
|
|
227
|
+
const request = parsed.value;
|
|
228
|
+
throwIfAborted(control);
|
|
229
|
+
reportProgress(control, {
|
|
230
|
+
intent: "resolve",
|
|
231
|
+
phase: "target",
|
|
232
|
+
message: "Resolving target evidence",
|
|
233
|
+
});
|
|
234
|
+
return resolveTargetWorkflow(
|
|
235
|
+
request.target,
|
|
236
|
+
{
|
|
237
|
+
fileLevelAllowed: true,
|
|
238
|
+
nameAnchorRequired: false,
|
|
239
|
+
maxResults: request.maxResults,
|
|
240
|
+
},
|
|
241
|
+
this.targetWorkflowDeps(),
|
|
242
|
+
);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/** Collect evidence-backed workspace health facts. */
|
|
246
|
+
async health(
|
|
247
|
+
input: HealthWorkflowInput,
|
|
248
|
+
control?: WorkflowControl,
|
|
249
|
+
): Promise<HealthWorkflowOutcome> {
|
|
250
|
+
return runHealthWorkflow(
|
|
251
|
+
input,
|
|
252
|
+
{
|
|
253
|
+
cwd: this.cwd,
|
|
254
|
+
capability: this.#capability,
|
|
255
|
+
lspController: this.#lspController,
|
|
256
|
+
lastRefreshAttempt: this.#lastHealthRefreshAttempt,
|
|
257
|
+
trackRefreshAttempt: (attempt) => {
|
|
258
|
+
this.#lastHealthRefreshAttempt = attempt;
|
|
259
|
+
},
|
|
260
|
+
sentinelSnapshot: this.#sentinelSnapshot,
|
|
261
|
+
},
|
|
262
|
+
control,
|
|
263
|
+
);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/** Search one explicit structural or semantic substrate. */
|
|
267
|
+
async find(input: FindWorkflowInput, control?: WorkflowControl): Promise<FindWorkflowOutcome> {
|
|
268
|
+
return runFindWorkflow(input, { cwd: this.cwd, capability: this.#capability }, control);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/** Orient around the workspace or one exact focus. */
|
|
272
|
+
async orient(
|
|
273
|
+
input: OrientationWorkflowInput,
|
|
274
|
+
control?: WorkflowControl,
|
|
275
|
+
): Promise<OrientationWorkflowOutcome> {
|
|
276
|
+
return runOrientationWorkflow(
|
|
277
|
+
input,
|
|
278
|
+
{
|
|
279
|
+
...this.targetWorkflowDeps(),
|
|
280
|
+
nativeInstructionPaths: this.#nativeInstructionPaths,
|
|
281
|
+
surfacedInstructionDirs: this.#surfacedInstructionDirs,
|
|
282
|
+
markInstructionDirsSurfaced: (directories) => this.markInstructionDirsSurfaced(directories),
|
|
283
|
+
projectTrusted: this.#projectTrusted,
|
|
284
|
+
},
|
|
285
|
+
control,
|
|
286
|
+
);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/** Plan one precise semantic refactor without mutating files. */
|
|
290
|
+
async planRefactor(
|
|
291
|
+
input: RefactorPlanWorkflowInput,
|
|
292
|
+
control?: WorkflowControl,
|
|
293
|
+
): Promise<RefactorPlanWorkflowOutcome> {
|
|
294
|
+
return runRefactorPlanWorkflow(input, this.refactorWorkflowDeps(), control);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/** Revalidate and apply one stored refactor plan. */
|
|
298
|
+
async applyRefactor(
|
|
299
|
+
input: RefactorApplyWorkflowInput,
|
|
300
|
+
control?: WorkflowControl,
|
|
301
|
+
): Promise<RefactorApplyWorkflowOutcome> {
|
|
302
|
+
return runRefactorApplyWorkflow(input, this.refactorWorkflowDeps(), control);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/** Inspect one exact source point with available semantic and structural evidence. */
|
|
306
|
+
async inspect(
|
|
307
|
+
input: InspectWorkflowInput,
|
|
308
|
+
control?: WorkflowControl,
|
|
309
|
+
): Promise<InspectWorkflowOutcome> {
|
|
310
|
+
return runInspectWorkflow(input, { cwd: this.cwd, capability: this.#capability }, control);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
/** Collect evidence-backed relations for one exact target. */
|
|
314
|
+
async graph(input: GraphWorkflowInput, control?: WorkflowControl): Promise<GraphWorkflowOutcome> {
|
|
315
|
+
return runGraphWorkflow(input, this.targetWorkflowDeps(), control);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
private refactorWorkflowDeps() {
|
|
319
|
+
return {
|
|
320
|
+
...this.targetWorkflowDeps(),
|
|
321
|
+
storePlan: (plan: RefactorPlan) => this.#storePlan(plan),
|
|
322
|
+
getPlan: (id: string) => this.#getPlan(id),
|
|
323
|
+
removePlan: (id: string) => this.#removePlan(id),
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
private targetWorkflowDeps() {
|
|
328
|
+
return {
|
|
146
329
|
cwd: this.cwd,
|
|
147
330
|
capability: this.#capability,
|
|
148
|
-
lookupTargetId: (id) => this
|
|
149
|
-
registerTarget: (
|
|
150
|
-
}
|
|
331
|
+
lookupTargetId: (id: string) => this.#lookupTargetId(id),
|
|
332
|
+
registerTarget: (input: TargetRegistrationInput) => this.#registerTarget(input),
|
|
333
|
+
};
|
|
151
334
|
}
|
|
152
335
|
|
|
153
336
|
// ── Instruction-file state ───────────────────────────────────────
|
|
@@ -155,183 +338,73 @@ export class WorkspaceCodeIntelligenceSession {
|
|
|
155
338
|
/** Remember instruction/context file paths already loaded by PI natively. */
|
|
156
339
|
captureNativeInstructionPaths(files: Array<{ path: string }>): void {
|
|
157
340
|
for (const file of files) {
|
|
158
|
-
|
|
341
|
+
const resolved = path.resolve(this.cwd, file.path);
|
|
342
|
+
// Resolve to real path so dedup aligns with the realpath-aware
|
|
343
|
+
// instruction-file lookup in findInstructionFilesForDirectory.
|
|
344
|
+
try {
|
|
345
|
+
this.#nativeInstructionPaths.add(path.resolve(realpathSync(resolved)));
|
|
346
|
+
} catch {
|
|
347
|
+
this.#nativeInstructionPaths.add(resolved);
|
|
348
|
+
}
|
|
159
349
|
}
|
|
160
350
|
}
|
|
161
351
|
|
|
162
352
|
/** Mark directory-local instruction files as surfaced after a successful orientation render. */
|
|
163
353
|
markInstructionDirsSurfaced(directories: string[]): void {
|
|
164
354
|
for (const directory of directories) {
|
|
165
|
-
this
|
|
355
|
+
this.#surfacedInstructionDirs.add(path.resolve(this.cwd, directory));
|
|
166
356
|
}
|
|
167
357
|
}
|
|
168
358
|
|
|
169
359
|
/** Clear instruction-file dedup state after compaction. */
|
|
170
360
|
resetSurfacedInstructionDirs(): void {
|
|
171
|
-
this
|
|
361
|
+
this.#surfacedInstructionDirs.clear();
|
|
172
362
|
}
|
|
173
363
|
|
|
174
364
|
/** Reconstruct surfaced instruction directories from branch tool-result details after compaction. */
|
|
175
365
|
reconstructInstructionState(branch: SessionEntry[]): void {
|
|
176
|
-
this
|
|
366
|
+
this.#surfacedInstructionDirs.clear();
|
|
177
367
|
const entries = entriesAfterLatestCompaction(branch);
|
|
178
368
|
for (const entry of entries) {
|
|
179
369
|
for (const directory of extractInstructionDirectories(entry)) {
|
|
180
|
-
this
|
|
370
|
+
this.#surfacedInstructionDirs.add(path.resolve(this.cwd, directory));
|
|
181
371
|
}
|
|
182
372
|
}
|
|
183
373
|
}
|
|
184
374
|
|
|
185
|
-
// ──
|
|
375
|
+
// ── Private session stores ───────────────────────────────────────
|
|
186
376
|
|
|
187
|
-
|
|
188
|
-
* Get the composite code provider state for this workspace.
|
|
189
|
-
* Combines semantic (LSP) and structural (tree-sitter) capabilities
|
|
190
|
-
* along with LSP service state.
|
|
191
|
-
*/
|
|
192
|
-
getProviders(): import("../analysis/provider.ts").CodeProviderState {
|
|
193
|
-
return getCodeProvider(this.cwd);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Get the ready composite code provider, or null if unavailable.
|
|
198
|
-
*/
|
|
199
|
-
getProvider(): CodeProvider | null {
|
|
200
|
-
const state = this.getProviders();
|
|
201
|
-
return state.kind === "ready" ? state.provider : null;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Get the semantic provider from the shared runtime.
|
|
206
|
-
*/
|
|
207
|
-
getSemanticProvider(): SemanticProvider | null {
|
|
208
|
-
const ws = getDefaultWorkspaceRuntime().getWorkspace(this.cwd);
|
|
209
|
-
if (
|
|
210
|
-
(ws.semantic.state.kind === "ready" || ws.semantic.state.kind === "pending") &&
|
|
211
|
-
ws.semantic.provider !== null
|
|
212
|
-
) {
|
|
213
|
-
return ws.semantic.provider as SemanticProvider;
|
|
214
|
-
}
|
|
215
|
-
return null;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
/**
|
|
219
|
-
* Get the structural provider from the shared runtime.
|
|
220
|
-
*/
|
|
221
|
-
getStructuralProvider(): StructuralProvider | null {
|
|
222
|
-
const ws = getDefaultWorkspaceRuntime().getWorkspace(this.cwd);
|
|
223
|
-
if (ws.structural.state.kind === "ready" && ws.structural.provider !== null) {
|
|
224
|
-
return ws.structural.provider as StructuralProvider;
|
|
225
|
-
}
|
|
226
|
-
return null;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
/**
|
|
230
|
-
* Get the raw workspace state from the shared runtime.
|
|
231
|
-
*
|
|
232
|
-
* Exposes semantic/structural state and provider refs for tools
|
|
233
|
-
* that need detailed status (e.g. code_health). Prefer higher-level
|
|
234
|
-
* methods (`getProvider()`, `getSemanticProvider()`) when you only
|
|
235
|
-
* need a ready provider reference.
|
|
236
|
-
*/
|
|
237
|
-
getWorkspaceState() {
|
|
238
|
-
return getDefaultWorkspaceRuntime().getWorkspace(this.cwd);
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
// ── Target resolution ─────────────────────────────────────────────
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* Look up a stored target by targetId in this session's store.
|
|
245
|
-
*/
|
|
246
|
-
lookupTargetId(targetId: string): TargetLookupResult {
|
|
377
|
+
#lookupTargetId(targetId: string): TargetLookupResult {
|
|
247
378
|
return getWorkflowTarget(this.#workflowTargets, targetId);
|
|
248
379
|
}
|
|
249
380
|
|
|
250
|
-
|
|
251
|
-
* Register a resolved target in this session's store and return
|
|
252
|
-
* stable session-scoped handles.
|
|
253
|
-
*/
|
|
254
|
-
registerTarget(input: TargetRegistrationInput): TargetRegistrationOutput {
|
|
381
|
+
#registerTarget(input: TargetRegistrationInput): TargetRegistrationOutput {
|
|
255
382
|
return registerWorkflowTarget(this.#workflowTargets, this.cwd, input);
|
|
256
383
|
}
|
|
257
384
|
|
|
258
|
-
|
|
259
|
-
* Expand an optional targetId from tool params into anchored
|
|
260
|
-
* file/line/character.
|
|
261
|
-
*
|
|
262
|
-
* Usage at the top of each target-oriented executor:
|
|
263
|
-
*
|
|
264
|
-
* ```ts
|
|
265
|
-
* const expansion = session.expandTargetId(params);
|
|
266
|
-
* if (expansion.kind === "error") return errorResult(expansion.message);
|
|
267
|
-
* if (expansion.kind === "ok") {
|
|
268
|
-
* params.file = expansion.file;
|
|
269
|
-
* params.line = expansion.line;
|
|
270
|
-
* params.character = expansion.character;
|
|
271
|
-
* }
|
|
272
|
-
* ```
|
|
273
|
-
*/
|
|
274
|
-
expandTargetId(params: {
|
|
275
|
-
targetId?: string;
|
|
276
|
-
file?: string;
|
|
277
|
-
line?: number;
|
|
278
|
-
character?: number;
|
|
279
|
-
symbol?: string;
|
|
280
|
-
}): TargetIdExpansionResult {
|
|
281
|
-
return expandSessionTargetId(this, params);
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* Look up a targetId without expanding into file/line/character.
|
|
286
|
-
* Returns the raw store entry or an error.
|
|
287
|
-
*/
|
|
288
|
-
lookupTargetEntry(targetId: string): TargetLookupResult {
|
|
289
|
-
return getWorkflowTarget(this.#workflowTargets, targetId);
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
// ── Plan store ────────────────────────────────────────────────────
|
|
293
|
-
|
|
294
|
-
/**
|
|
295
|
-
* Store a refactor plan and return its planId.
|
|
296
|
-
*/
|
|
297
|
-
storePlan(plan: RefactorPlan): string {
|
|
385
|
+
#storePlan(plan: RefactorPlan): string {
|
|
298
386
|
return storePlan(this.#refactorPlans, plan);
|
|
299
387
|
}
|
|
300
388
|
|
|
301
|
-
|
|
302
|
-
* Retrieve a plan by id, or undefined.
|
|
303
|
-
*/
|
|
304
|
-
getPlan(id: string): RefactorPlan | undefined {
|
|
389
|
+
#getPlan(id: string): RefactorPlan | undefined {
|
|
305
390
|
return getPlan(this.#refactorPlans, id);
|
|
306
391
|
}
|
|
307
392
|
|
|
308
|
-
|
|
309
|
-
* Remove a plan after successful apply.
|
|
310
|
-
*/
|
|
311
|
-
removePlan(id: string): void {
|
|
393
|
+
#removePlan(id: string): void {
|
|
312
394
|
removePlan(this.#refactorPlans, id);
|
|
313
395
|
}
|
|
314
396
|
|
|
315
|
-
// ── Introspection (for tests / debugging) ───────────────────────
|
|
316
|
-
|
|
317
|
-
/** Number of stored targets (for test isolation checks). */
|
|
318
|
-
get targetCount(): number {
|
|
319
|
-
return this.#workflowTargets.size;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
/** Number of stored refactor plans (for test isolation checks). */
|
|
323
|
-
get planCount(): number {
|
|
324
|
-
return this.#refactorPlans.size;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
397
|
// ── Cleanup ───────────────────────────────────────────────────────
|
|
328
398
|
|
|
329
399
|
/** Clear all session-scoped stores. */
|
|
330
400
|
clearStores(): void {
|
|
331
401
|
this.#refactorPlans.clear();
|
|
332
402
|
this.#workflowTargets.clear();
|
|
333
|
-
this
|
|
334
|
-
this
|
|
403
|
+
this.#surfacedInstructionDirs.clear();
|
|
404
|
+
this.#nativeInstructionPaths.clear();
|
|
405
|
+
this.#sentinelSnapshot.clear();
|
|
406
|
+
this.#lspController = null;
|
|
407
|
+
this.#projectTrusted = false;
|
|
335
408
|
}
|
|
336
409
|
}
|
|
337
410
|
|
|
@@ -359,47 +432,3 @@ function extractInstructionDirectories(entry: SessionEntry): string[] {
|
|
|
359
432
|
.map((file) => file.directory)
|
|
360
433
|
.filter((directory): directory is string => typeof directory === "string");
|
|
361
434
|
}
|
|
362
|
-
|
|
363
|
-
// ── Standalone target-id expansion helper ─────────────────────────────
|
|
364
|
-
|
|
365
|
-
/**
|
|
366
|
-
* Expand an optional targetId into anchored file/line/character params
|
|
367
|
-
* using the given session's store.
|
|
368
|
-
*
|
|
369
|
-
* Exported separately so executors that already hold a session ref
|
|
370
|
-
* can call it directly, without going through an ad-hoc session factory.
|
|
371
|
-
*/
|
|
372
|
-
export function expandSessionTargetId(
|
|
373
|
-
session: WorkspaceCodeIntelligenceSession,
|
|
374
|
-
params: {
|
|
375
|
-
targetId?: string;
|
|
376
|
-
file?: string;
|
|
377
|
-
line?: number;
|
|
378
|
-
character?: number;
|
|
379
|
-
symbol?: string;
|
|
380
|
-
},
|
|
381
|
-
): TargetIdExpansionResult {
|
|
382
|
-
const targetId = params.targetId;
|
|
383
|
-
if (targetId === undefined || targetId === null) {
|
|
384
|
-
return { kind: "not-provided" };
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
const result = session.lookupTargetEntry(targetId);
|
|
388
|
-
if (result.kind === "unavailable") {
|
|
389
|
-
return {
|
|
390
|
-
kind: "error",
|
|
391
|
-
message: `**Error:** ${result.reason}`,
|
|
392
|
-
};
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
const { entry } = result;
|
|
396
|
-
return {
|
|
397
|
-
kind: "ok",
|
|
398
|
-
file: entry.file,
|
|
399
|
-
line: entry.displayLine,
|
|
400
|
-
character: entry.displayCharacter,
|
|
401
|
-
targetName: entry.name,
|
|
402
|
-
targetKind: entry.kind,
|
|
403
|
-
entry,
|
|
404
|
-
};
|
|
405
|
-
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { canonicalDeclarationKind } from "../analysis/target/identity.ts";
|
|
2
|
+
import type { TargetOutcome } from "../analysis/target/types.ts";
|
|
3
|
+
import type {
|
|
4
|
+
AnchorKind,
|
|
5
|
+
TargetRegistrationInput,
|
|
6
|
+
TargetRegistrationOutput,
|
|
7
|
+
} from "./target-store.ts";
|
|
8
|
+
|
|
9
|
+
/** Registered candidate returned when target selection remains unresolved. */
|
|
10
|
+
export interface TargetWorkflowCandidate {
|
|
11
|
+
readonly targetId: string;
|
|
12
|
+
readonly name: string;
|
|
13
|
+
readonly kind: string | null;
|
|
14
|
+
readonly container: string | null;
|
|
15
|
+
readonly file: string;
|
|
16
|
+
readonly line: number;
|
|
17
|
+
readonly character: number;
|
|
18
|
+
readonly rank: number;
|
|
19
|
+
readonly anchorKind: AnchorKind;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** Materialize only the bounded candidates already selected by the resolver. */
|
|
23
|
+
export function registerTargetCandidates(
|
|
24
|
+
candidates: Extract<TargetOutcome, { kind: "disambiguation" | "kind-mismatch" }>["candidates"],
|
|
25
|
+
registerTarget: (input: TargetRegistrationInput) => TargetRegistrationOutput,
|
|
26
|
+
): ReadonlyArray<TargetWorkflowCandidate> {
|
|
27
|
+
return Object.freeze(
|
|
28
|
+
candidates.map((candidate) => {
|
|
29
|
+
const registered = registerTarget({
|
|
30
|
+
file: candidate.file,
|
|
31
|
+
position: { line: candidate.line - 1, character: candidate.character - 1 },
|
|
32
|
+
declarationPosition: {
|
|
33
|
+
line: candidate.declarationAnchor.line - 1,
|
|
34
|
+
character: candidate.declarationAnchor.character - 1,
|
|
35
|
+
},
|
|
36
|
+
declarationOccurrence: candidate.declarationOccurrence,
|
|
37
|
+
displayLine: candidate.line,
|
|
38
|
+
displayCharacter: candidate.character,
|
|
39
|
+
name: candidate.name,
|
|
40
|
+
kind: candidate.kind,
|
|
41
|
+
identityKind: candidate.identityKind ?? canonicalDeclarationKind(candidate.kind),
|
|
42
|
+
confidence: "semantic",
|
|
43
|
+
provenance: candidate.provenance ?? ["semantic"],
|
|
44
|
+
anchorKind: candidate.anchorKind,
|
|
45
|
+
container: candidate.container,
|
|
46
|
+
});
|
|
47
|
+
return Object.freeze({
|
|
48
|
+
targetId: registered.targetId,
|
|
49
|
+
name: candidate.name,
|
|
50
|
+
kind: candidate.kind,
|
|
51
|
+
container: candidate.container,
|
|
52
|
+
file: candidate.file,
|
|
53
|
+
line: candidate.line,
|
|
54
|
+
character: candidate.character,
|
|
55
|
+
rank: candidate.rank,
|
|
56
|
+
anchorKind: candidate.anchorKind,
|
|
57
|
+
});
|
|
58
|
+
}),
|
|
59
|
+
);
|
|
60
|
+
}
|