@quolu/lattice 0.1.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/LICENSE +25 -0
- package/README.md +20 -0
- package/bin/lattice-mcp.mjs +134 -0
- package/bin/lattice.mjs +78 -0
- package/package.json +47 -0
- package/sensor/LICENSE +21 -0
- package/sensor/NOTICE +30 -0
- package/sensor/dist/bin/codegraph.d.ts +26 -0
- package/sensor/dist/bin/codegraph.d.ts.map +1 -0
- package/sensor/dist/bin/codegraph.js +2279 -0
- package/sensor/dist/bin/codegraph.js.map +1 -0
- package/sensor/dist/bin/command-supervision.d.ts +49 -0
- package/sensor/dist/bin/command-supervision.d.ts.map +1 -0
- package/sensor/dist/bin/command-supervision.js +95 -0
- package/sensor/dist/bin/command-supervision.js.map +1 -0
- package/sensor/dist/bin/fatal-handler.d.ts +20 -0
- package/sensor/dist/bin/fatal-handler.d.ts.map +1 -0
- package/sensor/dist/bin/fatal-handler.js +118 -0
- package/sensor/dist/bin/fatal-handler.js.map +1 -0
- package/sensor/dist/bin/node-version-check.d.ts +37 -0
- package/sensor/dist/bin/node-version-check.d.ts.map +1 -0
- package/sensor/dist/bin/node-version-check.js +79 -0
- package/sensor/dist/bin/node-version-check.js.map +1 -0
- package/sensor/dist/bin/uninstall.d.ts +14 -0
- package/sensor/dist/bin/uninstall.d.ts.map +1 -0
- package/sensor/dist/bin/uninstall.js +36 -0
- package/sensor/dist/bin/uninstall.js.map +1 -0
- package/sensor/dist/context/formatter.d.ts +30 -0
- package/sensor/dist/context/formatter.d.ts.map +1 -0
- package/sensor/dist/context/formatter.js +263 -0
- package/sensor/dist/context/formatter.js.map +1 -0
- package/sensor/dist/context/index.d.ts +119 -0
- package/sensor/dist/context/index.d.ts.map +1 -0
- package/sensor/dist/context/index.js +1326 -0
- package/sensor/dist/context/index.js.map +1 -0
- package/sensor/dist/context/markers.d.ts +19 -0
- package/sensor/dist/context/markers.d.ts.map +1 -0
- package/sensor/dist/context/markers.js +22 -0
- package/sensor/dist/context/markers.js.map +1 -0
- package/sensor/dist/db/index.d.ts +264 -0
- package/sensor/dist/db/index.d.ts.map +1 -0
- package/sensor/dist/db/index.js +603 -0
- package/sensor/dist/db/index.js.map +1 -0
- package/sensor/dist/db/migrations.d.ts +44 -0
- package/sensor/dist/db/migrations.d.ts.map +1 -0
- package/sensor/dist/db/migrations.js +241 -0
- package/sensor/dist/db/migrations.js.map +1 -0
- package/sensor/dist/db/queries.d.ts +563 -0
- package/sensor/dist/db/queries.d.ts.map +1 -0
- package/sensor/dist/db/queries.js +2179 -0
- package/sensor/dist/db/queries.js.map +1 -0
- package/sensor/dist/db/schema.sql +196 -0
- package/sensor/dist/db/sqlite-adapter.d.ts +55 -0
- package/sensor/dist/db/sqlite-adapter.d.ts.map +1 -0
- package/sensor/dist/db/sqlite-adapter.js +135 -0
- package/sensor/dist/db/sqlite-adapter.js.map +1 -0
- package/sensor/dist/db/wal-valve.d.ts +106 -0
- package/sensor/dist/db/wal-valve.d.ts.map +1 -0
- package/sensor/dist/db/wal-valve.js +208 -0
- package/sensor/dist/db/wal-valve.js.map +1 -0
- package/sensor/dist/directory.d.ts +183 -0
- package/sensor/dist/directory.d.ts.map +1 -0
- package/sensor/dist/directory.js +797 -0
- package/sensor/dist/directory.js.map +1 -0
- package/sensor/dist/errors.d.ts +136 -0
- package/sensor/dist/errors.d.ts.map +1 -0
- package/sensor/dist/errors.js +219 -0
- package/sensor/dist/errors.js.map +1 -0
- package/sensor/dist/extraction/astro-extractor.d.ts +79 -0
- package/sensor/dist/extraction/astro-extractor.d.ts.map +1 -0
- package/sensor/dist/extraction/astro-extractor.js +320 -0
- package/sensor/dist/extraction/astro-extractor.js.map +1 -0
- package/sensor/dist/extraction/cfml-extractor.d.ts +107 -0
- package/sensor/dist/extraction/cfml-extractor.d.ts.map +1 -0
- package/sensor/dist/extraction/cfml-extractor.js +494 -0
- package/sensor/dist/extraction/cfml-extractor.js.map +1 -0
- package/sensor/dist/extraction/dfm-extractor.d.ts +31 -0
- package/sensor/dist/extraction/dfm-extractor.d.ts.map +1 -0
- package/sensor/dist/extraction/dfm-extractor.js +151 -0
- package/sensor/dist/extraction/dfm-extractor.js.map +1 -0
- package/sensor/dist/extraction/dynamic-import.d.ts +82 -0
- package/sensor/dist/extraction/dynamic-import.d.ts.map +1 -0
- package/sensor/dist/extraction/dynamic-import.js +313 -0
- package/sensor/dist/extraction/dynamic-import.js.map +1 -0
- package/sensor/dist/extraction/extraction-version.d.ts +25 -0
- package/sensor/dist/extraction/extraction-version.d.ts.map +1 -0
- package/sensor/dist/extraction/extraction-version.js +28 -0
- package/sensor/dist/extraction/extraction-version.js.map +1 -0
- package/sensor/dist/extraction/function-ref.d.ts +118 -0
- package/sensor/dist/extraction/function-ref.d.ts.map +1 -0
- package/sensor/dist/extraction/function-ref.js +727 -0
- package/sensor/dist/extraction/function-ref.js.map +1 -0
- package/sensor/dist/extraction/generated-detection.d.ts +30 -0
- package/sensor/dist/extraction/generated-detection.d.ts.map +1 -0
- package/sensor/dist/extraction/generated-detection.js +83 -0
- package/sensor/dist/extraction/generated-detection.js.map +1 -0
- package/sensor/dist/extraction/grammars.d.ts +138 -0
- package/sensor/dist/extraction/grammars.d.ts.map +1 -0
- package/sensor/dist/extraction/grammars.js +648 -0
- package/sensor/dist/extraction/grammars.js.map +1 -0
- package/sensor/dist/extraction/index.d.ts +251 -0
- package/sensor/dist/extraction/index.d.ts.map +1 -0
- package/sensor/dist/extraction/index.js +2563 -0
- package/sensor/dist/extraction/index.js.map +1 -0
- package/sensor/dist/extraction/kernel/decode.d.ts +9 -0
- package/sensor/dist/extraction/kernel/decode.d.ts.map +1 -0
- package/sensor/dist/extraction/kernel/decode.js +156 -0
- package/sensor/dist/extraction/kernel/decode.js.map +1 -0
- package/sensor/dist/extraction/kernel/index.d.ts +62 -0
- package/sensor/dist/extraction/kernel/index.d.ts.map +1 -0
- package/sensor/dist/extraction/kernel/index.js +165 -0
- package/sensor/dist/extraction/kernel/index.js.map +1 -0
- package/sensor/dist/extraction/kernel/layout.d.ts +92 -0
- package/sensor/dist/extraction/kernel/layout.d.ts.map +1 -0
- package/sensor/dist/extraction/kernel/layout.js +95 -0
- package/sensor/dist/extraction/kernel/layout.js.map +1 -0
- package/sensor/dist/extraction/kernel/loader.d.ts +61 -0
- package/sensor/dist/extraction/kernel/loader.d.ts.map +1 -0
- package/sensor/dist/extraction/kernel/loader.js +146 -0
- package/sensor/dist/extraction/kernel/loader.js.map +1 -0
- package/sensor/dist/extraction/languages/arkts.d.ts +3 -0
- package/sensor/dist/extraction/languages/arkts.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/arkts.js +127 -0
- package/sensor/dist/extraction/languages/arkts.js.map +1 -0
- package/sensor/dist/extraction/languages/c-cpp.d.ts +111 -0
- package/sensor/dist/extraction/languages/c-cpp.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/c-cpp.js +878 -0
- package/sensor/dist/extraction/languages/c-cpp.js.map +1 -0
- package/sensor/dist/extraction/languages/cfquery.d.ts +12 -0
- package/sensor/dist/extraction/languages/cfquery.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/cfquery.js +28 -0
- package/sensor/dist/extraction/languages/cfquery.js.map +1 -0
- package/sensor/dist/extraction/languages/cfscript.d.ts +3 -0
- package/sensor/dist/extraction/languages/cfscript.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/cfscript.js +73 -0
- package/sensor/dist/extraction/languages/cfscript.js.map +1 -0
- package/sensor/dist/extraction/languages/cobol.d.ts +33 -0
- package/sensor/dist/extraction/languages/cobol.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/cobol.js +499 -0
- package/sensor/dist/extraction/languages/cobol.js.map +1 -0
- package/sensor/dist/extraction/languages/csharp.d.ts +25 -0
- package/sensor/dist/extraction/languages/csharp.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/csharp.js +175 -0
- package/sensor/dist/extraction/languages/csharp.js.map +1 -0
- package/sensor/dist/extraction/languages/dart.d.ts +3 -0
- package/sensor/dist/extraction/languages/dart.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/dart.js +374 -0
- package/sensor/dist/extraction/languages/dart.js.map +1 -0
- package/sensor/dist/extraction/languages/erlang.d.ts +3 -0
- package/sensor/dist/extraction/languages/erlang.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/erlang.js +350 -0
- package/sensor/dist/extraction/languages/erlang.js.map +1 -0
- package/sensor/dist/extraction/languages/go.d.ts +3 -0
- package/sensor/dist/extraction/languages/go.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/go.js +111 -0
- package/sensor/dist/extraction/languages/go.js.map +1 -0
- package/sensor/dist/extraction/languages/index.d.ts +10 -0
- package/sensor/dist/extraction/languages/index.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/index.js +71 -0
- package/sensor/dist/extraction/languages/index.js.map +1 -0
- package/sensor/dist/extraction/languages/java.d.ts +3 -0
- package/sensor/dist/extraction/languages/java.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/java.js +315 -0
- package/sensor/dist/extraction/languages/java.js.map +1 -0
- package/sensor/dist/extraction/languages/javascript.d.ts +3 -0
- package/sensor/dist/extraction/languages/javascript.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/javascript.js +106 -0
- package/sensor/dist/extraction/languages/javascript.js.map +1 -0
- package/sensor/dist/extraction/languages/kotlin.d.ts +3 -0
- package/sensor/dist/extraction/languages/kotlin.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/kotlin.js +379 -0
- package/sensor/dist/extraction/languages/kotlin.js.map +1 -0
- package/sensor/dist/extraction/languages/lua.d.ts +3 -0
- package/sensor/dist/extraction/languages/lua.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/lua.js +150 -0
- package/sensor/dist/extraction/languages/lua.js.map +1 -0
- package/sensor/dist/extraction/languages/luau.d.ts +3 -0
- package/sensor/dist/extraction/languages/luau.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/luau.js +37 -0
- package/sensor/dist/extraction/languages/luau.js.map +1 -0
- package/sensor/dist/extraction/languages/nix.d.ts +3 -0
- package/sensor/dist/extraction/languages/nix.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/nix.js +294 -0
- package/sensor/dist/extraction/languages/nix.js.map +1 -0
- package/sensor/dist/extraction/languages/objc.d.ts +3 -0
- package/sensor/dist/extraction/languages/objc.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/objc.js +175 -0
- package/sensor/dist/extraction/languages/objc.js.map +1 -0
- package/sensor/dist/extraction/languages/pascal.d.ts +3 -0
- package/sensor/dist/extraction/languages/pascal.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/pascal.js +77 -0
- package/sensor/dist/extraction/languages/pascal.js.map +1 -0
- package/sensor/dist/extraction/languages/php.d.ts +3 -0
- package/sensor/dist/extraction/languages/php.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/php.js +196 -0
- package/sensor/dist/extraction/languages/php.js.map +1 -0
- package/sensor/dist/extraction/languages/python.d.ts +3 -0
- package/sensor/dist/extraction/languages/python.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/python.js +56 -0
- package/sensor/dist/extraction/languages/python.js.map +1 -0
- package/sensor/dist/extraction/languages/r.d.ts +3 -0
- package/sensor/dist/extraction/languages/r.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/r.js +314 -0
- package/sensor/dist/extraction/languages/r.js.map +1 -0
- package/sensor/dist/extraction/languages/ruby.d.ts +3 -0
- package/sensor/dist/extraction/languages/ruby.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/ruby.js +149 -0
- package/sensor/dist/extraction/languages/ruby.js.map +1 -0
- package/sensor/dist/extraction/languages/rust.d.ts +3 -0
- package/sensor/dist/extraction/languages/rust.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/rust.js +142 -0
- package/sensor/dist/extraction/languages/rust.js.map +1 -0
- package/sensor/dist/extraction/languages/scala.d.ts +3 -0
- package/sensor/dist/extraction/languages/scala.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/scala.js +209 -0
- package/sensor/dist/extraction/languages/scala.js.map +1 -0
- package/sensor/dist/extraction/languages/solidity.d.ts +3 -0
- package/sensor/dist/extraction/languages/solidity.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/solidity.js +293 -0
- package/sensor/dist/extraction/languages/solidity.js.map +1 -0
- package/sensor/dist/extraction/languages/swift.d.ts +3 -0
- package/sensor/dist/extraction/languages/swift.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/swift.js +152 -0
- package/sensor/dist/extraction/languages/swift.js.map +1 -0
- package/sensor/dist/extraction/languages/terraform.d.ts +3 -0
- package/sensor/dist/extraction/languages/terraform.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/terraform.js +641 -0
- package/sensor/dist/extraction/languages/terraform.js.map +1 -0
- package/sensor/dist/extraction/languages/typescript.d.ts +16 -0
- package/sensor/dist/extraction/languages/typescript.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/typescript.js +167 -0
- package/sensor/dist/extraction/languages/typescript.js.map +1 -0
- package/sensor/dist/extraction/languages/vbnet.d.ts +11 -0
- package/sensor/dist/extraction/languages/vbnet.d.ts.map +1 -0
- package/sensor/dist/extraction/languages/vbnet.js +141 -0
- package/sensor/dist/extraction/languages/vbnet.js.map +1 -0
- package/sensor/dist/extraction/liquid-extractor.d.ts +59 -0
- package/sensor/dist/extraction/liquid-extractor.d.ts.map +1 -0
- package/sensor/dist/extraction/liquid-extractor.js +357 -0
- package/sensor/dist/extraction/liquid-extractor.js.map +1 -0
- package/sensor/dist/extraction/mybatis-extractor.d.ts +68 -0
- package/sensor/dist/extraction/mybatis-extractor.d.ts.map +1 -0
- package/sensor/dist/extraction/mybatis-extractor.js +300 -0
- package/sensor/dist/extraction/mybatis-extractor.js.map +1 -0
- package/sensor/dist/extraction/parse-pool.d.ts +160 -0
- package/sensor/dist/extraction/parse-pool.d.ts.map +1 -0
- package/sensor/dist/extraction/parse-pool.js +402 -0
- package/sensor/dist/extraction/parse-pool.js.map +1 -0
- package/sensor/dist/extraction/parse-worker.d.ts +8 -0
- package/sensor/dist/extraction/parse-worker.d.ts.map +1 -0
- package/sensor/dist/extraction/parse-worker.js +138 -0
- package/sensor/dist/extraction/parse-worker.js.map +1 -0
- package/sensor/dist/extraction/razor-extractor.d.ts +42 -0
- package/sensor/dist/extraction/razor-extractor.d.ts.map +1 -0
- package/sensor/dist/extraction/razor-extractor.js +285 -0
- package/sensor/dist/extraction/razor-extractor.js.map +1 -0
- package/sensor/dist/extraction/spawn-invokes.d.ts +101 -0
- package/sensor/dist/extraction/spawn-invokes.d.ts.map +1 -0
- package/sensor/dist/extraction/spawn-invokes.js +327 -0
- package/sensor/dist/extraction/spawn-invokes.js.map +1 -0
- package/sensor/dist/extraction/store-worker.d.ts +24 -0
- package/sensor/dist/extraction/store-worker.d.ts.map +1 -0
- package/sensor/dist/extraction/store-worker.js +110 -0
- package/sensor/dist/extraction/store-worker.js.map +1 -0
- package/sensor/dist/extraction/store-writer.d.ts +63 -0
- package/sensor/dist/extraction/store-writer.d.ts.map +1 -0
- package/sensor/dist/extraction/store-writer.js +174 -0
- package/sensor/dist/extraction/store-writer.js.map +1 -0
- package/sensor/dist/extraction/svelte-extractor.d.ts +56 -0
- package/sensor/dist/extraction/svelte-extractor.d.ts.map +1 -0
- package/sensor/dist/extraction/svelte-extractor.js +275 -0
- package/sensor/dist/extraction/svelte-extractor.js.map +1 -0
- package/sensor/dist/extraction/tree-sitter-helpers.d.ts +28 -0
- package/sensor/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
- package/sensor/dist/extraction/tree-sitter-helpers.js +153 -0
- package/sensor/dist/extraction/tree-sitter-helpers.js.map +1 -0
- package/sensor/dist/extraction/tree-sitter-types.d.ts +258 -0
- package/sensor/dist/extraction/tree-sitter-types.d.ts.map +1 -0
- package/sensor/dist/extraction/tree-sitter-types.js +10 -0
- package/sensor/dist/extraction/tree-sitter-types.js.map +1 -0
- package/sensor/dist/extraction/tree-sitter.d.ts +724 -0
- package/sensor/dist/extraction/tree-sitter.d.ts.map +1 -0
- package/sensor/dist/extraction/tree-sitter.js +6721 -0
- package/sensor/dist/extraction/tree-sitter.js.map +1 -0
- package/sensor/dist/extraction/vue-extractor.d.ts +51 -0
- package/sensor/dist/extraction/vue-extractor.d.ts.map +1 -0
- package/sensor/dist/extraction/vue-extractor.js +254 -0
- package/sensor/dist/extraction/vue-extractor.js.map +1 -0
- package/sensor/dist/extraction/wasm/tree-sitter-arkts.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-cfml.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-cfquery.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-cfscript.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-cobol.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-erlang.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-go.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-java.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-javascript.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-python.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-terraform.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-tsx.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-typescript.wasm +0 -0
- package/sensor/dist/extraction/wasm/tree-sitter-vbnet.wasm +0 -0
- package/sensor/dist/extraction/wasm-runtime-flags.d.ts +53 -0
- package/sensor/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
- package/sensor/dist/extraction/wasm-runtime-flags.js +130 -0
- package/sensor/dist/extraction/wasm-runtime-flags.js.map +1 -0
- package/sensor/dist/graph/index.d.ts +8 -0
- package/sensor/dist/graph/index.d.ts.map +1 -0
- package/sensor/dist/graph/index.js +13 -0
- package/sensor/dist/graph/index.js.map +1 -0
- package/sensor/dist/graph/queries.d.ts +106 -0
- package/sensor/dist/graph/queries.d.ts.map +1 -0
- package/sensor/dist/graph/queries.js +339 -0
- package/sensor/dist/graph/queries.js.map +1 -0
- package/sensor/dist/graph/traversal.d.ts +127 -0
- package/sensor/dist/graph/traversal.d.ts.map +1 -0
- package/sensor/dist/graph/traversal.js +599 -0
- package/sensor/dist/graph/traversal.js.map +1 -0
- package/sensor/dist/index.d.ts +653 -0
- package/sensor/dist/index.d.ts.map +1 -0
- package/sensor/dist/index.js +1646 -0
- package/sensor/dist/index.js.map +1 -0
- package/sensor/dist/installer/beta-signup.d.ts +54 -0
- package/sensor/dist/installer/beta-signup.d.ts.map +1 -0
- package/sensor/dist/installer/beta-signup.js +178 -0
- package/sensor/dist/installer/beta-signup.js.map +1 -0
- package/sensor/dist/installer/config-writer.d.ts +28 -0
- package/sensor/dist/installer/config-writer.d.ts.map +1 -0
- package/sensor/dist/installer/config-writer.js +91 -0
- package/sensor/dist/installer/config-writer.js.map +1 -0
- package/sensor/dist/installer/index.d.ts +142 -0
- package/sensor/dist/installer/index.d.ts.map +1 -0
- package/sensor/dist/installer/index.js +622 -0
- package/sensor/dist/installer/index.js.map +1 -0
- package/sensor/dist/installer/instructions-template.d.ts +41 -0
- package/sensor/dist/installer/instructions-template.d.ts.map +1 -0
- package/sensor/dist/installer/instructions-template.js +53 -0
- package/sensor/dist/installer/instructions-template.js.map +1 -0
- package/sensor/dist/installer/targets/antigravity.d.ts +57 -0
- package/sensor/dist/installer/targets/antigravity.d.ts.map +1 -0
- package/sensor/dist/installer/targets/antigravity.js +308 -0
- package/sensor/dist/installer/targets/antigravity.js.map +1 -0
- package/sensor/dist/installer/targets/claude.d.ts +62 -0
- package/sensor/dist/installer/targets/claude.d.ts.map +1 -0
- package/sensor/dist/installer/targets/claude.js +454 -0
- package/sensor/dist/installer/targets/claude.js.map +1 -0
- package/sensor/dist/installer/targets/codex.d.ts +18 -0
- package/sensor/dist/installer/targets/codex.d.ts.map +1 -0
- package/sensor/dist/installer/targets/codex.js +185 -0
- package/sensor/dist/installer/targets/codex.js.map +1 -0
- package/sensor/dist/installer/targets/cursor.d.ts +35 -0
- package/sensor/dist/installer/targets/cursor.d.ts.map +1 -0
- package/sensor/dist/installer/targets/cursor.js +254 -0
- package/sensor/dist/installer/targets/cursor.js.map +1 -0
- package/sensor/dist/installer/targets/gemini.d.ts +26 -0
- package/sensor/dist/installer/targets/gemini.d.ts.map +1 -0
- package/sensor/dist/installer/targets/gemini.js +165 -0
- package/sensor/dist/installer/targets/gemini.js.map +1 -0
- package/sensor/dist/installer/targets/hermes.d.ts +18 -0
- package/sensor/dist/installer/targets/hermes.d.ts.map +1 -0
- package/sensor/dist/installer/targets/hermes.js +359 -0
- package/sensor/dist/installer/targets/hermes.js.map +1 -0
- package/sensor/dist/installer/targets/kiro.d.ts +27 -0
- package/sensor/dist/installer/targets/kiro.d.ts.map +1 -0
- package/sensor/dist/installer/targets/kiro.js +178 -0
- package/sensor/dist/installer/targets/kiro.js.map +1 -0
- package/sensor/dist/installer/targets/opencode.d.ts +38 -0
- package/sensor/dist/installer/targets/opencode.d.ts.map +1 -0
- package/sensor/dist/installer/targets/opencode.js +288 -0
- package/sensor/dist/installer/targets/opencode.js.map +1 -0
- package/sensor/dist/installer/targets/registry.d.ts +35 -0
- package/sensor/dist/installer/targets/registry.d.ts.map +1 -0
- package/sensor/dist/installer/targets/registry.js +91 -0
- package/sensor/dist/installer/targets/registry.js.map +1 -0
- package/sensor/dist/installer/targets/shared.d.ts +101 -0
- package/sensor/dist/installer/targets/shared.d.ts.map +1 -0
- package/sensor/dist/installer/targets/shared.js +264 -0
- package/sensor/dist/installer/targets/shared.js.map +1 -0
- package/sensor/dist/installer/targets/toml.d.ts +52 -0
- package/sensor/dist/installer/targets/toml.d.ts.map +1 -0
- package/sensor/dist/installer/targets/toml.js +147 -0
- package/sensor/dist/installer/targets/toml.js.map +1 -0
- package/sensor/dist/installer/targets/types.d.ts +108 -0
- package/sensor/dist/installer/targets/types.d.ts.map +1 -0
- package/sensor/dist/installer/targets/types.js +16 -0
- package/sensor/dist/installer/targets/types.js.map +1 -0
- package/sensor/dist/mcp/daemon-manager.d.ts +42 -0
- package/sensor/dist/mcp/daemon-manager.d.ts.map +1 -0
- package/sensor/dist/mcp/daemon-manager.js +129 -0
- package/sensor/dist/mcp/daemon-manager.js.map +1 -0
- package/sensor/dist/mcp/daemon-paths.d.ts +73 -0
- package/sensor/dist/mcp/daemon-paths.d.ts.map +1 -0
- package/sensor/dist/mcp/daemon-paths.js +170 -0
- package/sensor/dist/mcp/daemon-paths.js.map +1 -0
- package/sensor/dist/mcp/daemon-registry.d.ts +54 -0
- package/sensor/dist/mcp/daemon-registry.d.ts.map +1 -0
- package/sensor/dist/mcp/daemon-registry.js +241 -0
- package/sensor/dist/mcp/daemon-registry.js.map +1 -0
- package/sensor/dist/mcp/daemon.d.ts +290 -0
- package/sensor/dist/mcp/daemon.d.ts.map +1 -0
- package/sensor/dist/mcp/daemon.js +867 -0
- package/sensor/dist/mcp/daemon.js.map +1 -0
- package/sensor/dist/mcp/dynamic-boundaries.d.ts +41 -0
- package/sensor/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
- package/sensor/dist/mcp/dynamic-boundaries.js +360 -0
- package/sensor/dist/mcp/dynamic-boundaries.js.map +1 -0
- package/sensor/dist/mcp/early-ppid.d.ts +26 -0
- package/sensor/dist/mcp/early-ppid.d.ts.map +1 -0
- package/sensor/dist/mcp/early-ppid.js +29 -0
- package/sensor/dist/mcp/early-ppid.js.map +1 -0
- package/sensor/dist/mcp/engine.d.ts +130 -0
- package/sensor/dist/mcp/engine.d.ts.map +1 -0
- package/sensor/dist/mcp/engine.js +375 -0
- package/sensor/dist/mcp/engine.js.map +1 -0
- package/sensor/dist/mcp/index.d.ts +113 -0
- package/sensor/dist/mcp/index.d.ts.map +1 -0
- package/sensor/dist/mcp/index.js +551 -0
- package/sensor/dist/mcp/index.js.map +1 -0
- package/sensor/dist/mcp/liveness-watchdog.d.ts +35 -0
- package/sensor/dist/mcp/liveness-watchdog.d.ts.map +1 -0
- package/sensor/dist/mcp/liveness-watchdog.js +267 -0
- package/sensor/dist/mcp/liveness-watchdog.js.map +1 -0
- package/sensor/dist/mcp/ppid-watchdog.d.ts +62 -0
- package/sensor/dist/mcp/ppid-watchdog.d.ts.map +1 -0
- package/sensor/dist/mcp/ppid-watchdog.js +64 -0
- package/sensor/dist/mcp/ppid-watchdog.js.map +1 -0
- package/sensor/dist/mcp/proxy.d.ts +99 -0
- package/sensor/dist/mcp/proxy.d.ts.map +1 -0
- package/sensor/dist/mcp/proxy.js +737 -0
- package/sensor/dist/mcp/proxy.js.map +1 -0
- package/sensor/dist/mcp/query-pool.d.ts +108 -0
- package/sensor/dist/mcp/query-pool.d.ts.map +1 -0
- package/sensor/dist/mcp/query-pool.js +315 -0
- package/sensor/dist/mcp/query-pool.js.map +1 -0
- package/sensor/dist/mcp/query-worker.d.ts +24 -0
- package/sensor/dist/mcp/query-worker.d.ts.map +1 -0
- package/sensor/dist/mcp/query-worker.js +87 -0
- package/sensor/dist/mcp/query-worker.js.map +1 -0
- package/sensor/dist/mcp/server-instructions.d.ts +34 -0
- package/sensor/dist/mcp/server-instructions.d.ts.map +1 -0
- package/sensor/dist/mcp/server-instructions.js +106 -0
- package/sensor/dist/mcp/server-instructions.js.map +1 -0
- package/sensor/dist/mcp/session.d.ts +92 -0
- package/sensor/dist/mcp/session.d.ts.map +1 -0
- package/sensor/dist/mcp/session.js +355 -0
- package/sensor/dist/mcp/session.js.map +1 -0
- package/sensor/dist/mcp/startup-handshake.d.ts +44 -0
- package/sensor/dist/mcp/startup-handshake.d.ts.map +1 -0
- package/sensor/dist/mcp/startup-handshake.js +73 -0
- package/sensor/dist/mcp/startup-handshake.js.map +1 -0
- package/sensor/dist/mcp/stdin-teardown.d.ts +27 -0
- package/sensor/dist/mcp/stdin-teardown.d.ts.map +1 -0
- package/sensor/dist/mcp/stdin-teardown.js +49 -0
- package/sensor/dist/mcp/stdin-teardown.js.map +1 -0
- package/sensor/dist/mcp/tools.d.ts +651 -0
- package/sensor/dist/mcp/tools.d.ts.map +1 -0
- package/sensor/dist/mcp/tools.js +4574 -0
- package/sensor/dist/mcp/tools.js.map +1 -0
- package/sensor/dist/mcp/transport.d.ts +188 -0
- package/sensor/dist/mcp/transport.d.ts.map +1 -0
- package/sensor/dist/mcp/transport.js +377 -0
- package/sensor/dist/mcp/transport.js.map +1 -0
- package/sensor/dist/mcp/version.d.ts +30 -0
- package/sensor/dist/mcp/version.d.ts.map +1 -0
- package/sensor/dist/mcp/version.js +85 -0
- package/sensor/dist/mcp/version.js.map +1 -0
- package/sensor/dist/project-config.d.ts +94 -0
- package/sensor/dist/project-config.d.ts.map +1 -0
- package/sensor/dist/project-config.js +374 -0
- package/sensor/dist/project-config.js.map +1 -0
- package/sensor/dist/resolution/c-fnptr-synthesizer.d.ts +6 -0
- package/sensor/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/c-fnptr-synthesizer.js +1070 -0
- package/sensor/dist/resolution/c-fnptr-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/callback-synthesizer.d.ts +59 -0
- package/sensor/dist/resolution/callback-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/callback-synthesizer.js +3961 -0
- package/sensor/dist/resolution/callback-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/cooperative-yield.d.ts +40 -0
- package/sensor/dist/resolution/cooperative-yield.d.ts.map +1 -0
- package/sensor/dist/resolution/cooperative-yield.js +44 -0
- package/sensor/dist/resolution/cooperative-yield.js.map +1 -0
- package/sensor/dist/resolution/frameworks/astro.d.ts +9 -0
- package/sensor/dist/resolution/frameworks/astro.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/astro.js +169 -0
- package/sensor/dist/resolution/frameworks/astro.js.map +1 -0
- package/sensor/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
- package/sensor/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/cargo-workspace.js +225 -0
- package/sensor/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
- package/sensor/dist/resolution/frameworks/cics.d.ts +20 -0
- package/sensor/dist/resolution/frameworks/cics.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/cics.js +90 -0
- package/sensor/dist/resolution/frameworks/cics.js.map +1 -0
- package/sensor/dist/resolution/frameworks/csharp.d.ts +8 -0
- package/sensor/dist/resolution/frameworks/csharp.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/csharp.js +241 -0
- package/sensor/dist/resolution/frameworks/csharp.js.map +1 -0
- package/sensor/dist/resolution/frameworks/drupal.d.ts +51 -0
- package/sensor/dist/resolution/frameworks/drupal.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/drupal.js +367 -0
- package/sensor/dist/resolution/frameworks/drupal.js.map +1 -0
- package/sensor/dist/resolution/frameworks/expo-modules.d.ts +3 -0
- package/sensor/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/expo-modules.js +148 -0
- package/sensor/dist/resolution/frameworks/expo-modules.js.map +1 -0
- package/sensor/dist/resolution/frameworks/express.d.ts +8 -0
- package/sensor/dist/resolution/frameworks/express.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/express.js +308 -0
- package/sensor/dist/resolution/frameworks/express.js.map +1 -0
- package/sensor/dist/resolution/frameworks/fabric.d.ts +3 -0
- package/sensor/dist/resolution/frameworks/fabric.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/fabric.js +354 -0
- package/sensor/dist/resolution/frameworks/fabric.js.map +1 -0
- package/sensor/dist/resolution/frameworks/go.d.ts +8 -0
- package/sensor/dist/resolution/frameworks/go.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/go.js +184 -0
- package/sensor/dist/resolution/frameworks/go.js.map +1 -0
- package/sensor/dist/resolution/frameworks/goframe.d.ts +41 -0
- package/sensor/dist/resolution/frameworks/goframe.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/goframe.js +112 -0
- package/sensor/dist/resolution/frameworks/goframe.js.map +1 -0
- package/sensor/dist/resolution/frameworks/index.d.ts +50 -0
- package/sensor/dist/resolution/frameworks/index.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/index.js +175 -0
- package/sensor/dist/resolution/frameworks/index.js.map +1 -0
- package/sensor/dist/resolution/frameworks/java.d.ts +8 -0
- package/sensor/dist/resolution/frameworks/java.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/java.js +517 -0
- package/sensor/dist/resolution/frameworks/java.js.map +1 -0
- package/sensor/dist/resolution/frameworks/laravel.d.ts +13 -0
- package/sensor/dist/resolution/frameworks/laravel.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/laravel.js +257 -0
- package/sensor/dist/resolution/frameworks/laravel.js.map +1 -0
- package/sensor/dist/resolution/frameworks/nestjs.d.ts +26 -0
- package/sensor/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/nestjs.js +698 -0
- package/sensor/dist/resolution/frameworks/nestjs.js.map +1 -0
- package/sensor/dist/resolution/frameworks/play.d.ts +19 -0
- package/sensor/dist/resolution/frameworks/play.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/play.js +111 -0
- package/sensor/dist/resolution/frameworks/play.js.map +1 -0
- package/sensor/dist/resolution/frameworks/python.d.ts +10 -0
- package/sensor/dist/resolution/frameworks/python.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/python.js +400 -0
- package/sensor/dist/resolution/frameworks/python.js.map +1 -0
- package/sensor/dist/resolution/frameworks/react-native.d.ts +3 -0
- package/sensor/dist/resolution/frameworks/react-native.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/react-native.js +410 -0
- package/sensor/dist/resolution/frameworks/react-native.js.map +1 -0
- package/sensor/dist/resolution/frameworks/react.d.ts +8 -0
- package/sensor/dist/resolution/frameworks/react.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/react.js +334 -0
- package/sensor/dist/resolution/frameworks/react.js.map +1 -0
- package/sensor/dist/resolution/frameworks/ruby.d.ts +8 -0
- package/sensor/dist/resolution/frameworks/ruby.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/ruby.js +302 -0
- package/sensor/dist/resolution/frameworks/ruby.js.map +1 -0
- package/sensor/dist/resolution/frameworks/rust.d.ts +8 -0
- package/sensor/dist/resolution/frameworks/rust.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/rust.js +304 -0
- package/sensor/dist/resolution/frameworks/rust.js.map +1 -0
- package/sensor/dist/resolution/frameworks/svelte.d.ts +9 -0
- package/sensor/dist/resolution/frameworks/svelte.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/svelte.js +253 -0
- package/sensor/dist/resolution/frameworks/svelte.js.map +1 -0
- package/sensor/dist/resolution/frameworks/swift-objc.d.ts +37 -0
- package/sensor/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/swift-objc.js +252 -0
- package/sensor/dist/resolution/frameworks/swift-objc.js.map +1 -0
- package/sensor/dist/resolution/frameworks/swift.d.ts +10 -0
- package/sensor/dist/resolution/frameworks/swift.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/swift.js +400 -0
- package/sensor/dist/resolution/frameworks/swift.js.map +1 -0
- package/sensor/dist/resolution/frameworks/terraform.d.ts +38 -0
- package/sensor/dist/resolution/frameworks/terraform.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/terraform.js +277 -0
- package/sensor/dist/resolution/frameworks/terraform.js.map +1 -0
- package/sensor/dist/resolution/frameworks/vue.d.ts +9 -0
- package/sensor/dist/resolution/frameworks/vue.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/vue.js +303 -0
- package/sensor/dist/resolution/frameworks/vue.js.map +1 -0
- package/sensor/dist/resolution/go-module.d.ts +26 -0
- package/sensor/dist/resolution/go-module.d.ts.map +1 -0
- package/sensor/dist/resolution/go-module.js +78 -0
- package/sensor/dist/resolution/go-module.js.map +1 -0
- package/sensor/dist/resolution/goframe-synthesizer.d.ts +29 -0
- package/sensor/dist/resolution/goframe-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/goframe-synthesizer.js +163 -0
- package/sensor/dist/resolution/goframe-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/import-resolver.d.ts +84 -0
- package/sensor/dist/resolution/import-resolver.d.ts.map +1 -0
- package/sensor/dist/resolution/import-resolver.js +2172 -0
- package/sensor/dist/resolution/import-resolver.js.map +1 -0
- package/sensor/dist/resolution/index.d.ts +309 -0
- package/sensor/dist/resolution/index.d.ts.map +1 -0
- package/sensor/dist/resolution/index.js +2050 -0
- package/sensor/dist/resolution/index.js.map +1 -0
- package/sensor/dist/resolution/lru-cache.d.ts +24 -0
- package/sensor/dist/resolution/lru-cache.d.ts.map +1 -0
- package/sensor/dist/resolution/lru-cache.js +62 -0
- package/sensor/dist/resolution/lru-cache.js.map +1 -0
- package/sensor/dist/resolution/name-matcher.d.ts +126 -0
- package/sensor/dist/resolution/name-matcher.d.ts.map +1 -0
- package/sensor/dist/resolution/name-matcher.js +1968 -0
- package/sensor/dist/resolution/name-matcher.js.map +1 -0
- package/sensor/dist/resolution/path-aliases.d.ts +68 -0
- package/sensor/dist/resolution/path-aliases.d.ts.map +1 -0
- package/sensor/dist/resolution/path-aliases.js +238 -0
- package/sensor/dist/resolution/path-aliases.js.map +1 -0
- package/sensor/dist/resolution/resolver-pool.d.ts +66 -0
- package/sensor/dist/resolution/resolver-pool.d.ts.map +1 -0
- package/sensor/dist/resolution/resolver-pool.js +244 -0
- package/sensor/dist/resolution/resolver-pool.js.map +1 -0
- package/sensor/dist/resolution/resolver-worker.d.ts +17 -0
- package/sensor/dist/resolution/resolver-worker.d.ts.map +1 -0
- package/sensor/dist/resolution/resolver-worker.js +114 -0
- package/sensor/dist/resolution/resolver-worker.js.map +1 -0
- package/sensor/dist/resolution/strip-comments.d.ts +27 -0
- package/sensor/dist/resolution/strip-comments.d.ts.map +1 -0
- package/sensor/dist/resolution/strip-comments.js +492 -0
- package/sensor/dist/resolution/strip-comments.js.map +1 -0
- package/sensor/dist/resolution/swift-objc-bridge.d.ts +134 -0
- package/sensor/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
- package/sensor/dist/resolution/swift-objc-bridge.js +256 -0
- package/sensor/dist/resolution/swift-objc-bridge.js.map +1 -0
- package/sensor/dist/resolution/types.d.ts +265 -0
- package/sensor/dist/resolution/types.d.ts.map +1 -0
- package/sensor/dist/resolution/types.js +8 -0
- package/sensor/dist/resolution/types.js.map +1 -0
- package/sensor/dist/resolution/workspace-packages.d.ts +58 -0
- package/sensor/dist/resolution/workspace-packages.d.ts.map +1 -0
- package/sensor/dist/resolution/workspace-packages.js +346 -0
- package/sensor/dist/resolution/workspace-packages.js.map +1 -0
- package/sensor/dist/search/identifier-segments.d.ts +60 -0
- package/sensor/dist/search/identifier-segments.d.ts.map +1 -0
- package/sensor/dist/search/identifier-segments.js +176 -0
- package/sensor/dist/search/identifier-segments.js.map +1 -0
- package/sensor/dist/search/query-parser.d.ts +57 -0
- package/sensor/dist/search/query-parser.d.ts.map +1 -0
- package/sensor/dist/search/query-parser.js +177 -0
- package/sensor/dist/search/query-parser.js.map +1 -0
- package/sensor/dist/search/query-utils.d.ts +87 -0
- package/sensor/dist/search/query-utils.d.ts.map +1 -0
- package/sensor/dist/search/query-utils.js +449 -0
- package/sensor/dist/search/query-utils.js.map +1 -0
- package/sensor/dist/sync/git-hooks.d.ts +45 -0
- package/sensor/dist/sync/git-hooks.d.ts.map +1 -0
- package/sensor/dist/sync/git-hooks.js +227 -0
- package/sensor/dist/sync/git-hooks.js.map +1 -0
- package/sensor/dist/sync/index.d.ts +19 -0
- package/sensor/dist/sync/index.d.ts.map +1 -0
- package/sensor/dist/sync/index.js +35 -0
- package/sensor/dist/sync/index.js.map +1 -0
- package/sensor/dist/sync/watch-policy.d.ts +48 -0
- package/sensor/dist/sync/watch-policy.d.ts.map +1 -0
- package/sensor/dist/sync/watch-policy.js +124 -0
- package/sensor/dist/sync/watch-policy.js.map +1 -0
- package/sensor/dist/sync/watcher.d.ts +372 -0
- package/sensor/dist/sync/watcher.d.ts.map +1 -0
- package/sensor/dist/sync/watcher.js +879 -0
- package/sensor/dist/sync/watcher.js.map +1 -0
- package/sensor/dist/sync/worktree.d.ts +63 -0
- package/sensor/dist/sync/worktree.d.ts.map +1 -0
- package/sensor/dist/sync/worktree.js +182 -0
- package/sensor/dist/sync/worktree.js.map +1 -0
- package/sensor/dist/telemetry/index.d.ts +157 -0
- package/sensor/dist/telemetry/index.d.ts.map +1 -0
- package/sensor/dist/telemetry/index.js +556 -0
- package/sensor/dist/telemetry/index.js.map +1 -0
- package/sensor/dist/types.d.ts +458 -0
- package/sensor/dist/types.d.ts.map +1 -0
- package/sensor/dist/types.js +117 -0
- package/sensor/dist/types.js.map +1 -0
- package/sensor/dist/ui/color.d.ts +21 -0
- package/sensor/dist/ui/color.d.ts.map +1 -0
- package/sensor/dist/ui/color.js +42 -0
- package/sensor/dist/ui/color.js.map +1 -0
- package/sensor/dist/ui/glyphs.d.ts +67 -0
- package/sensor/dist/ui/glyphs.d.ts.map +1 -0
- package/sensor/dist/ui/glyphs.js +125 -0
- package/sensor/dist/ui/glyphs.js.map +1 -0
- package/sensor/dist/ui/shimmer-progress.d.ts +11 -0
- package/sensor/dist/ui/shimmer-progress.d.ts.map +1 -0
- package/sensor/dist/ui/shimmer-progress.js +164 -0
- package/sensor/dist/ui/shimmer-progress.js.map +1 -0
- package/sensor/dist/ui/shimmer-worker.d.ts +2 -0
- package/sensor/dist/ui/shimmer-worker.d.ts.map +1 -0
- package/sensor/dist/ui/shimmer-worker.js +126 -0
- package/sensor/dist/ui/shimmer-worker.js.map +1 -0
- package/sensor/dist/ui/types.d.ts +15 -0
- package/sensor/dist/ui/types.d.ts.map +1 -0
- package/sensor/dist/ui/types.js +3 -0
- package/sensor/dist/ui/types.js.map +1 -0
- package/sensor/dist/upgrade/index.d.ts +171 -0
- package/sensor/dist/upgrade/index.d.ts.map +1 -0
- package/sensor/dist/upgrade/index.js +659 -0
- package/sensor/dist/upgrade/index.js.map +1 -0
- package/sensor/dist/upgrade/remove-binary.d.ts +87 -0
- package/sensor/dist/upgrade/remove-binary.d.ts.map +1 -0
- package/sensor/dist/upgrade/remove-binary.js +289 -0
- package/sensor/dist/upgrade/remove-binary.js.map +1 -0
- package/sensor/dist/upgrade/update-check.d.ts +92 -0
- package/sensor/dist/upgrade/update-check.d.ts.map +1 -0
- package/sensor/dist/upgrade/update-check.js +258 -0
- package/sensor/dist/upgrade/update-check.js.map +1 -0
- package/sensor/dist/utils.d.ts +224 -0
- package/sensor/dist/utils.d.ts.map +1 -0
- package/sensor/dist/utils.js +583 -0
- package/sensor/dist/utils.js.map +1 -0
- package/sensor/package.json +61 -0
- package/src/artifact-contracts-v2.mjs +325 -0
- package/src/artifact-contracts.mjs +895 -0
- package/src/bootstrap.mjs +88 -0
- package/src/boundary-compiler.mjs +712 -0
- package/src/boundary-observation-compiler-v2.mjs +339 -0
- package/src/codegraph-adapter.mjs +422 -0
- package/src/control-compiler.mjs +532 -0
- package/src/factory-diagnostics.mjs +187 -0
- package/src/isolation-runner.mjs +333 -0
- package/src/node-version-guard.mjs +43 -0
- package/src/rc1-black-box-oracle.mjs +906 -0
- package/src/rc1-comparison.mjs +154 -0
- package/src/rc1-evidence-bundle.mjs +456 -0
- package/src/rc1-v4-campaign.mjs +707 -0
- package/src/rc1-v4-transform.mjs +467 -0
- package/src/rc1-v5-artifact-set.mjs +855 -0
- package/src/rc1-v5-behavior-evidence.mjs +594 -0
- package/src/rc1-v5-campaign.mjs +796 -0
- package/src/rc1-v5-transform.mjs +421 -0
- package/src/rc1-v6-artifact-set.mjs +807 -0
- package/src/rc1-v6-behavior-evidence.mjs +273 -0
- package/src/rc1-v6-campaign.mjs +623 -0
- package/src/rc1-v6-causal-binding.mjs +471 -0
- package/src/rc1-v6-measurement.mjs +331 -0
- package/src/rc2-artifact-set.mjs +1579 -0
- package/src/rc2-campaign.mjs +1520 -0
- package/src/rc2-delivery-policy-front-end.mjs +1079 -0
- package/src/rc2-delivery-policy-oracle.mjs +134 -0
- package/src/rc2-delivery-policy-transform.mjs +1127 -0
- package/src/rc2-rc1-transfer-front-end.mjs +511 -0
- package/src/rc3-actual-dogfood.mjs +648 -0
- package/src/rc3-dogfood-scaffold.mjs +310 -0
- package/src/rc3-scripted-campaign.mjs +1301 -0
- package/src/rc4-stage1-dogfood.mjs +652 -0
- package/src/runtime-cli.mjs +504 -0
- package/src/runtime-contracts.mjs +631 -0
- package/src/runtime-decision-verifier.mjs +607 -0
- package/src/runtime-diff-observer.mjs +265 -0
- package/src/runtime-engine.mjs +674 -0
- package/src/runtime-errors.mjs +356 -0
- package/src/runtime-event-store.mjs +217 -0
- package/src/runtime-front-end.mjs +764 -0
- package/src/runtime-hold-recompile.mjs +606 -0
- package/src/runtime-projection.mjs +180 -0
- package/src/runtime-scripted-executor.mjs +163 -0
- package/src/runtime-worktree-executor.mjs +199 -0
- package/src/schedulability-compiler-v2.mjs +303 -0
- package/src/schedulability-verifier-v2.mjs +317 -0
- package/src/seam-transform.mjs +554 -0
- package/src/treatment-compiler.mjs +728 -0
- package/src/treatment-runner.mjs +658 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* JS/TS `child_process` process-spawn detection and target folding (ADR 0048,
|
|
4
|
+
* Lattice sensor correctness fix c/1 — first "call graph非可視の結合" index).
|
|
5
|
+
*
|
|
6
|
+
* `spawnSync(process.execPath, [BIN, ...args])` reaches `BIN` by starting a
|
|
7
|
+
* brand-new OS process, not by calling a JS function — no `calls` edge can
|
|
8
|
+
* ever represent it, so a spawn-driven test harness (the oracle shape:
|
|
9
|
+
* `tests/orchestrate/helpers.mjs` spawning `bin/orchestrate-run.mjs`) showed
|
|
10
|
+
* zero `affected` dependents even though changing the spawned file plainly
|
|
11
|
+
* breaks the test. This module detects the five `child_process` launch
|
|
12
|
+
* functions (`spawn`, `spawnSync`, `execFile`, `execFileSync`, `fork`) —
|
|
13
|
+
* `exec`/`execSync` (shell-string parsing) are OUT OF SCOPE, see
|
|
14
|
+
* `resolveChildProcessCallee`'s doc — and folds their target argument(s) to a
|
|
15
|
+
* project-relative path using the same constant-folding engine as dynamic
|
|
16
|
+
* `import()`/`require()` (dynamic-import.ts's `foldConstantExpr`).
|
|
17
|
+
*
|
|
18
|
+
* Detection REQUIRES the callee to be verified bound to `child_process` (a
|
|
19
|
+
* static `import`/aliased/namespace member, or a simple
|
|
20
|
+
* `const { spawnSync } = require('node:child_process')`) — a bare name match
|
|
21
|
+
* on a user-defined `spawn()` must NOT produce an edge (mirrors fix (a)'s
|
|
22
|
+
* no-name-match-fallback principle).
|
|
23
|
+
*/
|
|
24
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
27
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
28
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
29
|
+
}
|
|
30
|
+
Object.defineProperty(o, k2, desc);
|
|
31
|
+
}) : (function(o, m, k, k2) {
|
|
32
|
+
if (k2 === undefined) k2 = k;
|
|
33
|
+
o[k2] = m[k];
|
|
34
|
+
}));
|
|
35
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
36
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
37
|
+
}) : function(o, v) {
|
|
38
|
+
o["default"] = v;
|
|
39
|
+
});
|
|
40
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
41
|
+
var ownKeys = function(o) {
|
|
42
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
43
|
+
var ar = [];
|
|
44
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
45
|
+
return ar;
|
|
46
|
+
};
|
|
47
|
+
return ownKeys(o);
|
|
48
|
+
};
|
|
49
|
+
return function (mod) {
|
|
50
|
+
if (mod && mod.__esModule) return mod;
|
|
51
|
+
var result = {};
|
|
52
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
53
|
+
__setModuleDefault(result, mod);
|
|
54
|
+
return result;
|
|
55
|
+
};
|
|
56
|
+
})();
|
|
57
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
58
|
+
exports.SPAWN_INVOKES_UNRESOLVED_MARKER = void 0;
|
|
59
|
+
exports.collectChildProcessBindings = collectChildProcessBindings;
|
|
60
|
+
exports.resolveChildProcessCallee = resolveChildProcessCallee;
|
|
61
|
+
exports.resolveInvokesTargets = resolveInvokesTargets;
|
|
62
|
+
const posixPath = __importStar(require("path"));
|
|
63
|
+
const tree_sitter_helpers_1 = require("./tree-sitter-helpers");
|
|
64
|
+
const dynamic_import_1 = require("./dynamic-import");
|
|
65
|
+
/**
|
|
66
|
+
* Sentinel `referenceName` for a `fork(...)` call whose module argument could
|
|
67
|
+
* NOT be statically folded. Mirrors `DYNAMIC_IMPORT_UNRESOLVED_MARKER`
|
|
68
|
+
* (dynamic-import.ts): illegal as both a JS identifier and a file path
|
|
69
|
+
* (angle brackets, colon), so it can never coincidentally name-match a real
|
|
70
|
+
* file, and is pushed as a normal unresolved reference so it surfaces as
|
|
71
|
+
* `status='failed'` rather than being silently dropped. `fork`'s target is
|
|
72
|
+
* ALWAYS a JS module (unlike `spawn`/`exec*`, whose target is usually an
|
|
73
|
+
* external binary) — so an unfoldable `fork` argument stays visible, while
|
|
74
|
+
* an unfoldable `spawn`/`execFile*` argument is a silent skip (see
|
|
75
|
+
* `resolveInvokesTargets`'s case (iv) — spawn's target domain is mostly
|
|
76
|
+
* external commands, so "couldn't fold" carries no useful signal there).
|
|
77
|
+
*/
|
|
78
|
+
exports.SPAWN_INVOKES_UNRESOLVED_MARKER = '<spawn:unresolved>';
|
|
79
|
+
const CHILD_PROCESS_SPAWN_FNS = new Set(['spawn', 'spawnSync', 'execFile', 'execFileSync', 'fork']);
|
|
80
|
+
function isChildProcessSpecifier(text) {
|
|
81
|
+
return text === 'child_process' || text === 'node:child_process';
|
|
82
|
+
}
|
|
83
|
+
const EMPTY_BINDINGS = { localFns: new Map(), namespaces: new Set() };
|
|
84
|
+
/**
|
|
85
|
+
* Scan the file's top-level (Program direct-child) statements for bindings of
|
|
86
|
+
* `child_process`'s spawn family. Two binding shapes, per spec:
|
|
87
|
+
* - static `import` — named (`import { spawnSync } from 'child_process'`,
|
|
88
|
+
* alias-aware), or namespace (`import * as cp from 'node:child_process'`,
|
|
89
|
+
* later matched via `cp.spawnSync(...)`).
|
|
90
|
+
* - simple CommonJS destructure — `const { spawnSync } = require('node:child_process')`
|
|
91
|
+
* (module-level only; `let`/`var` excluded like dynamic-import.ts's
|
|
92
|
+
* module-level-const fold, since a reassignable binding's declaration-site
|
|
93
|
+
* value isn't necessarily the call-site value).
|
|
94
|
+
* A default import isn't a meaningful binding shape for this module (no
|
|
95
|
+
* useful default export) and is intentionally not recognized.
|
|
96
|
+
*/
|
|
97
|
+
function collectChildProcessBindings(anyNodeInTree, source) {
|
|
98
|
+
const root = anyNodeInTree.tree.rootNode;
|
|
99
|
+
const localFns = new Map();
|
|
100
|
+
const namespaces = new Set();
|
|
101
|
+
for (let i = 0; i < root.namedChildCount; i++) {
|
|
102
|
+
let stmt = root.namedChild(i);
|
|
103
|
+
if (!stmt)
|
|
104
|
+
continue;
|
|
105
|
+
if (stmt.type === 'import_statement') {
|
|
106
|
+
const sourceField = (0, tree_sitter_helpers_1.getChildByField)(stmt, 'source');
|
|
107
|
+
const specifierText = sourceField ? (0, tree_sitter_helpers_1.getNodeText)(sourceField, source).replace(/['"]/g, '') : '';
|
|
108
|
+
if (!isChildProcessSpecifier(specifierText))
|
|
109
|
+
continue;
|
|
110
|
+
const clause = stmt.namedChildren.find((c) => c?.type === 'import_clause');
|
|
111
|
+
if (!clause)
|
|
112
|
+
continue;
|
|
113
|
+
for (const child of clause.namedChildren) {
|
|
114
|
+
if (!child)
|
|
115
|
+
continue;
|
|
116
|
+
if (child.type === 'named_imports') {
|
|
117
|
+
for (const spec of child.namedChildren) {
|
|
118
|
+
if (!spec || spec.type !== 'import_specifier')
|
|
119
|
+
continue;
|
|
120
|
+
const nameNode = (0, tree_sitter_helpers_1.getChildByField)(spec, 'name');
|
|
121
|
+
const aliasNode = (0, tree_sitter_helpers_1.getChildByField)(spec, 'alias');
|
|
122
|
+
const imported = nameNode ? (0, tree_sitter_helpers_1.getNodeText)(nameNode, source) : '';
|
|
123
|
+
if (!CHILD_PROCESS_SPAWN_FNS.has(imported))
|
|
124
|
+
continue;
|
|
125
|
+
const local = aliasNode ? (0, tree_sitter_helpers_1.getNodeText)(aliasNode, source) : imported;
|
|
126
|
+
if (local)
|
|
127
|
+
localFns.set(local, imported);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else if (child.type === 'namespace_import') {
|
|
131
|
+
const idNode = child.namedChildren.find((c) => c?.type === 'identifier') ?? child.namedChild(0);
|
|
132
|
+
const local = idNode ? (0, tree_sitter_helpers_1.getNodeText)(idNode, source) : '';
|
|
133
|
+
if (local)
|
|
134
|
+
namespaces.add(local);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (stmt.type === 'lexical_declaration') {
|
|
140
|
+
const kindNode = (0, tree_sitter_helpers_1.getChildByField)(stmt, 'kind');
|
|
141
|
+
if (kindNode?.type !== 'const')
|
|
142
|
+
continue;
|
|
143
|
+
for (let j = 0; j < stmt.namedChildCount; j++) {
|
|
144
|
+
const declarator = stmt.namedChild(j);
|
|
145
|
+
if (declarator?.type !== 'variable_declarator')
|
|
146
|
+
continue;
|
|
147
|
+
const nameNode = (0, tree_sitter_helpers_1.getChildByField)(declarator, 'name');
|
|
148
|
+
const valueNode = (0, tree_sitter_helpers_1.getChildByField)(declarator, 'value');
|
|
149
|
+
if (!nameNode || nameNode.type !== 'object_pattern' || !valueNode)
|
|
150
|
+
continue;
|
|
151
|
+
if (valueNode.type !== 'call_expression')
|
|
152
|
+
continue;
|
|
153
|
+
const fn = (0, tree_sitter_helpers_1.getChildByField)(valueNode, 'function');
|
|
154
|
+
if (!fn || fn.type !== 'identifier' || (0, tree_sitter_helpers_1.getNodeText)(fn, source) !== 'require')
|
|
155
|
+
continue;
|
|
156
|
+
const argsNode = (0, tree_sitter_helpers_1.getChildByField)(valueNode, 'arguments');
|
|
157
|
+
const args = argsNode ? argsNode.namedChildren.filter((n) => !!n) : [];
|
|
158
|
+
if (args.length !== 1 || args[0].type !== 'string')
|
|
159
|
+
continue;
|
|
160
|
+
const fragment = args[0].namedChildren.find((c) => c?.type === 'string_fragment');
|
|
161
|
+
const specifierText = fragment ? (0, tree_sitter_helpers_1.getNodeText)(fragment, source) : '';
|
|
162
|
+
if (!isChildProcessSpecifier(specifierText))
|
|
163
|
+
continue;
|
|
164
|
+
for (let k = 0; k < nameNode.namedChildCount; k++) {
|
|
165
|
+
const prop = nameNode.namedChild(k);
|
|
166
|
+
if (!prop)
|
|
167
|
+
continue;
|
|
168
|
+
let imported = '';
|
|
169
|
+
let local = '';
|
|
170
|
+
if (prop.type === 'shorthand_property_identifier_pattern') {
|
|
171
|
+
imported = (0, tree_sitter_helpers_1.getNodeText)(prop, source);
|
|
172
|
+
local = imported;
|
|
173
|
+
}
|
|
174
|
+
else if (prop.type === 'pair_pattern') {
|
|
175
|
+
const keyNode = (0, tree_sitter_helpers_1.getChildByField)(prop, 'key');
|
|
176
|
+
const valNode = (0, tree_sitter_helpers_1.getChildByField)(prop, 'value');
|
|
177
|
+
imported = keyNode ? (0, tree_sitter_helpers_1.getNodeText)(keyNode, source) : '';
|
|
178
|
+
local = valNode ? (0, tree_sitter_helpers_1.getNodeText)(valNode, source) : imported;
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
if (imported && local && CHILD_PROCESS_SPAWN_FNS.has(imported))
|
|
184
|
+
localFns.set(local, imported);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return localFns.size === 0 && namespaces.size === 0 ? EMPTY_BINDINGS : { localFns, namespaces };
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* True when `node` is `process.execPath` (a `member_expression`, not folded
|
|
193
|
+
* by `foldConstantExpr` — its only member_expression shape is
|
|
194
|
+
* `import.meta.dirname`). Distinguishing this from a general expression fold
|
|
195
|
+
* is what lets `spawn(process.execPath, [...])` route into the array-element
|
|
196
|
+
* folding branch (case (ii) below) instead of failing to fold argv[0].
|
|
197
|
+
*/
|
|
198
|
+
function isProcessExecPath(node, source) {
|
|
199
|
+
if (node.type !== 'member_expression')
|
|
200
|
+
return false;
|
|
201
|
+
const object = (0, tree_sitter_helpers_1.getChildByField)(node, 'object');
|
|
202
|
+
const property = (0, tree_sitter_helpers_1.getChildByField)(node, 'property');
|
|
203
|
+
return (!!object &&
|
|
204
|
+
object.type === 'identifier' &&
|
|
205
|
+
(0, tree_sitter_helpers_1.getNodeText)(object, source) === 'process' &&
|
|
206
|
+
!!property &&
|
|
207
|
+
(0, tree_sitter_helpers_1.getNodeText)(property, source) === 'execPath');
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Given a `call_expression` node, return the canonical `child_process`
|
|
211
|
+
* function name (`spawn`/`spawnSync`/`execFile`/`execFileSync`/`fork`) it
|
|
212
|
+
* invokes, or null when the callee isn't verified bound to one. Two callee
|
|
213
|
+
* shapes: a bare identifier bound via `localFns` (static named import or the
|
|
214
|
+
* `require` destructure), or a `<namespace>.<fn>` member access where
|
|
215
|
+
* `<namespace>` is a verified `import * as cp from 'child_process'` binding.
|
|
216
|
+
*
|
|
217
|
+
* `exec`/`execSync` are deliberately excluded — their single argument is a
|
|
218
|
+
* whole shell command line (`"git status && ls"`), which requires shell
|
|
219
|
+
* grammar parsing (quoting, pipes, `&&`, env vars) to extract a target file,
|
|
220
|
+
* not the argv-array shape this module folds. Out of scope for this fix.
|
|
221
|
+
*/
|
|
222
|
+
function resolveChildProcessCallee(node, source, bindings) {
|
|
223
|
+
if (node.type !== 'call_expression')
|
|
224
|
+
return null;
|
|
225
|
+
const fn = (0, tree_sitter_helpers_1.getChildByField)(node, 'function');
|
|
226
|
+
if (!fn)
|
|
227
|
+
return null;
|
|
228
|
+
if (fn.type === 'identifier') {
|
|
229
|
+
return bindings.localFns.get((0, tree_sitter_helpers_1.getNodeText)(fn, source)) ?? null;
|
|
230
|
+
}
|
|
231
|
+
if (fn.type === 'member_expression') {
|
|
232
|
+
const object = (0, tree_sitter_helpers_1.getChildByField)(fn, 'object');
|
|
233
|
+
const property = (0, tree_sitter_helpers_1.getChildByField)(fn, 'property');
|
|
234
|
+
if (!object || object.type !== 'identifier' || !property)
|
|
235
|
+
return null;
|
|
236
|
+
if (!bindings.namespaces.has((0, tree_sitter_helpers_1.getNodeText)(object, source)))
|
|
237
|
+
return null;
|
|
238
|
+
const propName = (0, tree_sitter_helpers_1.getNodeText)(property, source);
|
|
239
|
+
return CHILD_PROCESS_SPAWN_FNS.has(propName) ? propName : null;
|
|
240
|
+
}
|
|
241
|
+
return null;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Fold `node` to a constant string (`foldConstantExpr`), then — ONLY when the
|
|
245
|
+
* result is a `./`/`../`-relative specifier — rewrite it into the same
|
|
246
|
+
* project-relative, extension-included path space the resolver's exact-match
|
|
247
|
+
* expects (import-resolver.ts's `invokes` branch does plain path equality,
|
|
248
|
+
* no module resolution). A `join(ROOT, ...)`/`resolve(...)`-folded result is
|
|
249
|
+
* already project-relative (dynamic-import.ts's `foldJoinResolve` produces
|
|
250
|
+
* that form) and passes through untouched; a bare command name (`'git'`) has
|
|
251
|
+
* no `./`/`../` prefix and also passes through untouched — the resolver's
|
|
252
|
+
* exact match on a real file node is what turns "didn't fold to a real
|
|
253
|
+
* file" into "no edge", not this function. A relative specifier that
|
|
254
|
+
* resolves outside the project root is a fold failure (can't represent
|
|
255
|
+
* "outside the project" as a project-relative path) — mirrors
|
|
256
|
+
* `foldJoinResolve`'s same rule for `join`/`resolve` arithmetic.
|
|
257
|
+
*/
|
|
258
|
+
function foldToProjectPath(node, source, filePath) {
|
|
259
|
+
const folded = (0, dynamic_import_1.foldConstantExpr)(node, source, filePath);
|
|
260
|
+
if (folded === null)
|
|
261
|
+
return null;
|
|
262
|
+
if (!folded.startsWith('./') && !folded.startsWith('../'))
|
|
263
|
+
return folded;
|
|
264
|
+
const dir = posixPath.posix.dirname(filePath.replace(/\\/g, '/'));
|
|
265
|
+
const base = dir === '.' ? '' : dir;
|
|
266
|
+
const joined = base ? `${base}/${folded}` : folded;
|
|
267
|
+
const normalized = posixPath.posix.normalize(joined);
|
|
268
|
+
if (normalized === '..' || normalized.startsWith('../'))
|
|
269
|
+
return null;
|
|
270
|
+
return normalized;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Fold `callNode`'s target argument(s) into zero or more `invokes` reference
|
|
274
|
+
* names, per `canonicalFn`:
|
|
275
|
+
*
|
|
276
|
+
* - `fork(modulePath, args?, options?)`: fold `modulePath` (argv[0] only —
|
|
277
|
+
* `fork`'s target is always a JS module, so it is ALWAYS pushed, using the
|
|
278
|
+
* unresolved sentinel on a folding failure rather than staying silent).
|
|
279
|
+
* - `spawn`/`spawnSync`/`execFile`/`execFileSync`(cmd, args?, options?):
|
|
280
|
+
* (i) `cmd` folds to a path — push it. The resolver's exact-file-path
|
|
281
|
+
* match is the real filter: a project file resolves, an external
|
|
282
|
+
* command (`git`) or arbitrary string simply never matches a file
|
|
283
|
+
* node and silently stays unresolved (case iii from spec, "正しい
|
|
284
|
+
* 挙動" — no special-casing needed here).
|
|
285
|
+
* (ii) `cmd` is `process.execPath` (AST shape) or folds to the literal
|
|
286
|
+
* string `'node'` — argv[0] is the current runtime, so the REAL
|
|
287
|
+
* target is argv[1]'s array-literal elements. Each element is
|
|
288
|
+
* folded independently; a `...spread` or an unfoldable element is
|
|
289
|
+
* skipped WITHOUT abandoning the rest of the array.
|
|
290
|
+
* (iv) `cmd` doesn't fold at all — skip entirely (no ref pushed).
|
|
291
|
+
* Unlike `fork`, spawn's target domain is mostly external
|
|
292
|
+
* commands, so an unfoldable argv[0] carries no signal that
|
|
293
|
+
* visibility would improve on.
|
|
294
|
+
*/
|
|
295
|
+
function resolveInvokesTargets(canonicalFn, callNode, source, filePath) {
|
|
296
|
+
const argsNode = (0, tree_sitter_helpers_1.getChildByField)(callNode, 'arguments');
|
|
297
|
+
if (!argsNode)
|
|
298
|
+
return [];
|
|
299
|
+
const args = argsNode.namedChildren.filter((n) => !!n);
|
|
300
|
+
if (args.length < 1)
|
|
301
|
+
return [];
|
|
302
|
+
if (canonicalFn === 'fork') {
|
|
303
|
+
const folded = foldToProjectPath(args[0], source, filePath);
|
|
304
|
+
return [{ referenceName: folded ?? exports.SPAWN_INVOKES_UNRESOLVED_MARKER }];
|
|
305
|
+
}
|
|
306
|
+
const first = args[0];
|
|
307
|
+
const foldedFirst = isProcessExecPath(first, source) ? null : foldToProjectPath(first, source, filePath);
|
|
308
|
+
const isNodeSelfInvocation = isProcessExecPath(first, source) || foldedFirst === 'node';
|
|
309
|
+
if (isNodeSelfInvocation) {
|
|
310
|
+
const second = args[1];
|
|
311
|
+
if (!second || second.type !== 'array')
|
|
312
|
+
return [];
|
|
313
|
+
const targets = [];
|
|
314
|
+
for (const el of second.namedChildren) {
|
|
315
|
+
if (!el || el.type === 'spread_element')
|
|
316
|
+
continue; // 個別スキップ、配列全体は諦めない
|
|
317
|
+
const foldedEl = foldToProjectPath(el, source, filePath);
|
|
318
|
+
if (foldedEl !== null)
|
|
319
|
+
targets.push({ referenceName: foldedEl });
|
|
320
|
+
}
|
|
321
|
+
return targets;
|
|
322
|
+
}
|
|
323
|
+
if (foldedFirst === null)
|
|
324
|
+
return []; // case (iv): unfoldable argv[0] — skip, no ref
|
|
325
|
+
return [{ referenceName: foldedFirst }]; // case (i)/(iii): let the resolver's exact-match decide
|
|
326
|
+
}
|
|
327
|
+
//# sourceMappingURL=spawn-invokes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn-invokes.js","sourceRoot":"","sources":["../../src/extraction/spawn-invokes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store worker — dedicated writer thread for the bulk-index store phase.
|
|
3
|
+
*
|
|
4
|
+
* During a fresh full index the main thread's biggest serial cost is executing
|
|
5
|
+
* the per-file INSERT batches. This worker owns that work on its own SQLite
|
|
6
|
+
* connection: the orchestrator posts one message per file (in file order) and
|
|
7
|
+
* the worker applies them in arrival order, which preserves the #1015
|
|
8
|
+
* insertion-order determinism exactly as if the main thread had run the same
|
|
9
|
+
* calls. The main thread performs NO database access while the writer is
|
|
10
|
+
* active (fresh-DB path only), so there is no cross-connection contention.
|
|
11
|
+
*
|
|
12
|
+
* Protocol (main → worker):
|
|
13
|
+
* {type:'open', dbPath, fastInit} → open connection, reply {type:'ready'}
|
|
14
|
+
* {type:'bundle', bundle} → apply one file's store bundle
|
|
15
|
+
* {type:'drain', id} → reply {type:'drained', id} (in-order ⇒ all prior bundles applied)
|
|
16
|
+
* {type:'close'} → close DB and exit
|
|
17
|
+
* Worker → main: {type:'ready'} | {type:'drained', id} | {type:'error', message}
|
|
18
|
+
*
|
|
19
|
+
* A bundle failure does not kill the worker; the first error is reported and
|
|
20
|
+
* the client surfaces it at drain(), matching the main-thread path where a
|
|
21
|
+
* store exception propagates out of the ordered-flush chain.
|
|
22
|
+
*/
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=store-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-worker.d.ts","sourceRoot":"","sources":["../../src/extraction/store-worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Store worker — dedicated writer thread for the bulk-index store phase.
|
|
4
|
+
*
|
|
5
|
+
* During a fresh full index the main thread's biggest serial cost is executing
|
|
6
|
+
* the per-file INSERT batches. This worker owns that work on its own SQLite
|
|
7
|
+
* connection: the orchestrator posts one message per file (in file order) and
|
|
8
|
+
* the worker applies them in arrival order, which preserves the #1015
|
|
9
|
+
* insertion-order determinism exactly as if the main thread had run the same
|
|
10
|
+
* calls. The main thread performs NO database access while the writer is
|
|
11
|
+
* active (fresh-DB path only), so there is no cross-connection contention.
|
|
12
|
+
*
|
|
13
|
+
* Protocol (main → worker):
|
|
14
|
+
* {type:'open', dbPath, fastInit} → open connection, reply {type:'ready'}
|
|
15
|
+
* {type:'bundle', bundle} → apply one file's store bundle
|
|
16
|
+
* {type:'drain', id} → reply {type:'drained', id} (in-order ⇒ all prior bundles applied)
|
|
17
|
+
* {type:'close'} → close DB and exit
|
|
18
|
+
* Worker → main: {type:'ready'} | {type:'drained', id} | {type:'error', message}
|
|
19
|
+
*
|
|
20
|
+
* A bundle failure does not kill the worker; the first error is reported and
|
|
21
|
+
* the client surfaces it at drain(), matching the main-thread path where a
|
|
22
|
+
* store exception propagates out of the ordered-flush chain.
|
|
23
|
+
*/
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
// Compile cache FIRST — same worker-boot rationale as parse-worker.ts.
|
|
26
|
+
try {
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
28
|
+
require('node:module').enableCompileCache?.();
|
|
29
|
+
}
|
|
30
|
+
catch { /* cache is best-effort */ }
|
|
31
|
+
const worker_threads_1 = require("worker_threads");
|
|
32
|
+
const queries_1 = require("../db/queries");
|
|
33
|
+
const sqlite_adapter_1 = require("../db/sqlite-adapter");
|
|
34
|
+
const store_writer_1 = require("./store-writer");
|
|
35
|
+
const decode_1 = require("./kernel/decode");
|
|
36
|
+
if (!worker_threads_1.parentPort) {
|
|
37
|
+
throw new Error('store-worker must be run as a worker thread');
|
|
38
|
+
}
|
|
39
|
+
const port = worker_threads_1.parentPort;
|
|
40
|
+
let db = null;
|
|
41
|
+
let queries = null;
|
|
42
|
+
/** Decode a kernel bundle's buffers into the standard pre-filtered StoreBundle. */
|
|
43
|
+
function decodeKernelBundle(bundle) {
|
|
44
|
+
const asBuf = (u) => Buffer.from(u.buffer, u.byteOffset, u.byteLength);
|
|
45
|
+
const decoded = (0, decode_1.decodeExtractBuffers)({
|
|
46
|
+
meta: asBuf(bundle.buffers.meta),
|
|
47
|
+
nodes: asBuf(bundle.buffers.nodes),
|
|
48
|
+
edges: asBuf(bundle.buffers.edges),
|
|
49
|
+
refs: asBuf(bundle.buffers.refs),
|
|
50
|
+
arena: asBuf(bundle.buffers.arena),
|
|
51
|
+
}, bundle.filePath, bundle.language);
|
|
52
|
+
return (0, store_writer_1.finalizeStoreBundle)(decoded, bundle.filePath, bundle.language, bundle.file);
|
|
53
|
+
}
|
|
54
|
+
port.on('message', (msg) => {
|
|
55
|
+
try {
|
|
56
|
+
switch (msg.type) {
|
|
57
|
+
case 'open': {
|
|
58
|
+
const created = (0, sqlite_adapter_1.createDatabase)(msg.dbPath);
|
|
59
|
+
db = created.db;
|
|
60
|
+
// Mirrors db/index.ts configureConnection, with the same fast-init
|
|
61
|
+
// durability trade the main connection applies for fresh builds.
|
|
62
|
+
db.pragma('busy_timeout = 5000');
|
|
63
|
+
db.pragma('foreign_keys = ON');
|
|
64
|
+
if (msg.fastInit) {
|
|
65
|
+
db.pragma('journal_mode = MEMORY');
|
|
66
|
+
db.pragma('synchronous = OFF');
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
db.pragma('synchronous = NORMAL');
|
|
70
|
+
}
|
|
71
|
+
db.pragma('cache_size = -64000');
|
|
72
|
+
db.pragma('temp_store = MEMORY');
|
|
73
|
+
queries = new queries_1.QueryBuilder(db);
|
|
74
|
+
port.postMessage({ type: 'ready' });
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
case 'bundle': {
|
|
78
|
+
if (!queries)
|
|
79
|
+
throw new Error('store-worker: bundle before open');
|
|
80
|
+
const bundle = 'kernel' in msg.bundle ? decodeKernelBundle(msg.bundle) : msg.bundle;
|
|
81
|
+
queries.storeFileBundle(bundle);
|
|
82
|
+
port.postMessage({ type: 'ack' });
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
case 'drain': {
|
|
86
|
+
port.postMessage({ type: 'drained', id: msg.id });
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
case 'close': {
|
|
90
|
+
try {
|
|
91
|
+
db?.close();
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
/* already closed */
|
|
95
|
+
}
|
|
96
|
+
process.exit(0);
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
// The error reply doubles as the bundle's ack so the client's outstanding
|
|
103
|
+
// counter still drains after a failure.
|
|
104
|
+
port.postMessage({
|
|
105
|
+
type: 'error',
|
|
106
|
+
message: err instanceof Error ? err.message : String(err),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=store-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-worker.js","sourceRoot":"","sources":["../../src/extraction/store-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StoreWriter — main-thread client for the store worker (see store-worker.ts).
|
|
3
|
+
*
|
|
4
|
+
* Used ONLY on the fresh-DB bulk path: bundles are posted in file order and the
|
|
5
|
+
* worker applies them in arrival order, so rowid assignment (and therefore
|
|
6
|
+
* resolution's insertion-order disambiguation) is byte-identical to the
|
|
7
|
+
* main-thread store. Kill switch: CODEGRAPH_NO_STORE_WORKER=1.
|
|
8
|
+
*/
|
|
9
|
+
import { ExtractionResult, Language, Node, Edge, UnresolvedReference, FileRecord } from '../types';
|
|
10
|
+
/** One file's complete store payload (pre-filtered — see storeFileBundle). */
|
|
11
|
+
export interface StoreBundle {
|
|
12
|
+
nodes: Node[];
|
|
13
|
+
edges: Edge[];
|
|
14
|
+
refs: UnresolvedReference[];
|
|
15
|
+
file: FileRecord;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A kernel deferred-decode payload: the file's raw table buffers plus the
|
|
19
|
+
* FileRecord the main thread built from meta counts. The store WORKER decodes
|
|
20
|
+
* and finalizes (same filters as the object path), so per-node objects never
|
|
21
|
+
* exist on the main thread.
|
|
22
|
+
*/
|
|
23
|
+
export interface KernelStoreBundle {
|
|
24
|
+
kernel: true;
|
|
25
|
+
filePath: string;
|
|
26
|
+
language: Language;
|
|
27
|
+
buffers: NonNullable<ExtractionResult['kernelBuffers']>;
|
|
28
|
+
file: FileRecord;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The validation/denormalization every bundle gets before storeFileBundle —
|
|
32
|
+
* shared by the orchestrator's object path and the store worker's kernel
|
|
33
|
+
* decode path so the two can never drift:
|
|
34
|
+
* - nodes missing identity fields are dropped (#42-class safety),
|
|
35
|
+
* - edges must connect inserted nodes (FK integrity),
|
|
36
|
+
* - refs must originate from inserted nodes and carry the denormalized
|
|
37
|
+
* filePath/language the resolver reads.
|
|
38
|
+
*/
|
|
39
|
+
export declare function finalizeStoreBundle(result: Pick<ExtractionResult, 'nodes' | 'edges' | 'unresolvedReferences'>, filePath: string, language: Language, file: FileRecord): StoreBundle;
|
|
40
|
+
export declare class StoreWriter {
|
|
41
|
+
private worker;
|
|
42
|
+
private readyPromise;
|
|
43
|
+
private firstError;
|
|
44
|
+
private drainWaiters;
|
|
45
|
+
private nextDrainId;
|
|
46
|
+
private exited;
|
|
47
|
+
/** Bundles posted but not yet acked — the queue-depth backpressure signal. */
|
|
48
|
+
private outstanding;
|
|
49
|
+
private belowWaiters;
|
|
50
|
+
constructor(workerScriptPath: string, dbPath: string, fastInit: boolean);
|
|
51
|
+
private failAll;
|
|
52
|
+
private settleOne;
|
|
53
|
+
ready(): Promise<void>;
|
|
54
|
+
/** Post one file's bundle. Throws immediately if the writer already failed. */
|
|
55
|
+
send(bundle: StoreBundle | KernelStoreBundle): void;
|
|
56
|
+
/** Backpressure: resolves once fewer than `limit` bundles are un-acked. */
|
|
57
|
+
waitBelow(limit: number): Promise<void>;
|
|
58
|
+
/** Resolves when every bundle posted before this call has been applied. */
|
|
59
|
+
drain(): Promise<void>;
|
|
60
|
+
/** Close the worker's DB connection and join the thread. */
|
|
61
|
+
close(): Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=store-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-writer.d.ts","sourceRoot":"","sources":["../../src/extraction/store-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEnG,8EAA8E;AAC9E,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAC5B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;IACxD,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,GAAG,sBAAsB,CAAC,EAC1E,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,UAAU,GACf,WAAW,CAcb;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,YAAY,CAA0E;IAC9F,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,8EAA8E;IAC9E,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAqD;gBAE7D,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IA+CvE,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,SAAS;IAWjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,+EAA+E;IAC/E,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,iBAAiB,GAAG,IAAI;IAOnD,2EAA2E;IAC3E,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvC,2EAA2E;IAC3E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,4DAA4D;IACtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAa7B"}
|