@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.
Files changed (769) hide show
  1. package/LICENSE +25 -0
  2. package/README.md +20 -0
  3. package/bin/lattice-mcp.mjs +134 -0
  4. package/bin/lattice.mjs +78 -0
  5. package/package.json +47 -0
  6. package/sensor/LICENSE +21 -0
  7. package/sensor/NOTICE +30 -0
  8. package/sensor/dist/bin/codegraph.d.ts +26 -0
  9. package/sensor/dist/bin/codegraph.d.ts.map +1 -0
  10. package/sensor/dist/bin/codegraph.js +2279 -0
  11. package/sensor/dist/bin/codegraph.js.map +1 -0
  12. package/sensor/dist/bin/command-supervision.d.ts +49 -0
  13. package/sensor/dist/bin/command-supervision.d.ts.map +1 -0
  14. package/sensor/dist/bin/command-supervision.js +95 -0
  15. package/sensor/dist/bin/command-supervision.js.map +1 -0
  16. package/sensor/dist/bin/fatal-handler.d.ts +20 -0
  17. package/sensor/dist/bin/fatal-handler.d.ts.map +1 -0
  18. package/sensor/dist/bin/fatal-handler.js +118 -0
  19. package/sensor/dist/bin/fatal-handler.js.map +1 -0
  20. package/sensor/dist/bin/node-version-check.d.ts +37 -0
  21. package/sensor/dist/bin/node-version-check.d.ts.map +1 -0
  22. package/sensor/dist/bin/node-version-check.js +79 -0
  23. package/sensor/dist/bin/node-version-check.js.map +1 -0
  24. package/sensor/dist/bin/uninstall.d.ts +14 -0
  25. package/sensor/dist/bin/uninstall.d.ts.map +1 -0
  26. package/sensor/dist/bin/uninstall.js +36 -0
  27. package/sensor/dist/bin/uninstall.js.map +1 -0
  28. package/sensor/dist/context/formatter.d.ts +30 -0
  29. package/sensor/dist/context/formatter.d.ts.map +1 -0
  30. package/sensor/dist/context/formatter.js +263 -0
  31. package/sensor/dist/context/formatter.js.map +1 -0
  32. package/sensor/dist/context/index.d.ts +119 -0
  33. package/sensor/dist/context/index.d.ts.map +1 -0
  34. package/sensor/dist/context/index.js +1326 -0
  35. package/sensor/dist/context/index.js.map +1 -0
  36. package/sensor/dist/context/markers.d.ts +19 -0
  37. package/sensor/dist/context/markers.d.ts.map +1 -0
  38. package/sensor/dist/context/markers.js +22 -0
  39. package/sensor/dist/context/markers.js.map +1 -0
  40. package/sensor/dist/db/index.d.ts +264 -0
  41. package/sensor/dist/db/index.d.ts.map +1 -0
  42. package/sensor/dist/db/index.js +603 -0
  43. package/sensor/dist/db/index.js.map +1 -0
  44. package/sensor/dist/db/migrations.d.ts +44 -0
  45. package/sensor/dist/db/migrations.d.ts.map +1 -0
  46. package/sensor/dist/db/migrations.js +241 -0
  47. package/sensor/dist/db/migrations.js.map +1 -0
  48. package/sensor/dist/db/queries.d.ts +563 -0
  49. package/sensor/dist/db/queries.d.ts.map +1 -0
  50. package/sensor/dist/db/queries.js +2179 -0
  51. package/sensor/dist/db/queries.js.map +1 -0
  52. package/sensor/dist/db/schema.sql +196 -0
  53. package/sensor/dist/db/sqlite-adapter.d.ts +55 -0
  54. package/sensor/dist/db/sqlite-adapter.d.ts.map +1 -0
  55. package/sensor/dist/db/sqlite-adapter.js +135 -0
  56. package/sensor/dist/db/sqlite-adapter.js.map +1 -0
  57. package/sensor/dist/db/wal-valve.d.ts +106 -0
  58. package/sensor/dist/db/wal-valve.d.ts.map +1 -0
  59. package/sensor/dist/db/wal-valve.js +208 -0
  60. package/sensor/dist/db/wal-valve.js.map +1 -0
  61. package/sensor/dist/directory.d.ts +183 -0
  62. package/sensor/dist/directory.d.ts.map +1 -0
  63. package/sensor/dist/directory.js +797 -0
  64. package/sensor/dist/directory.js.map +1 -0
  65. package/sensor/dist/errors.d.ts +136 -0
  66. package/sensor/dist/errors.d.ts.map +1 -0
  67. package/sensor/dist/errors.js +219 -0
  68. package/sensor/dist/errors.js.map +1 -0
  69. package/sensor/dist/extraction/astro-extractor.d.ts +79 -0
  70. package/sensor/dist/extraction/astro-extractor.d.ts.map +1 -0
  71. package/sensor/dist/extraction/astro-extractor.js +320 -0
  72. package/sensor/dist/extraction/astro-extractor.js.map +1 -0
  73. package/sensor/dist/extraction/cfml-extractor.d.ts +107 -0
  74. package/sensor/dist/extraction/cfml-extractor.d.ts.map +1 -0
  75. package/sensor/dist/extraction/cfml-extractor.js +494 -0
  76. package/sensor/dist/extraction/cfml-extractor.js.map +1 -0
  77. package/sensor/dist/extraction/dfm-extractor.d.ts +31 -0
  78. package/sensor/dist/extraction/dfm-extractor.d.ts.map +1 -0
  79. package/sensor/dist/extraction/dfm-extractor.js +151 -0
  80. package/sensor/dist/extraction/dfm-extractor.js.map +1 -0
  81. package/sensor/dist/extraction/dynamic-import.d.ts +82 -0
  82. package/sensor/dist/extraction/dynamic-import.d.ts.map +1 -0
  83. package/sensor/dist/extraction/dynamic-import.js +313 -0
  84. package/sensor/dist/extraction/dynamic-import.js.map +1 -0
  85. package/sensor/dist/extraction/extraction-version.d.ts +25 -0
  86. package/sensor/dist/extraction/extraction-version.d.ts.map +1 -0
  87. package/sensor/dist/extraction/extraction-version.js +28 -0
  88. package/sensor/dist/extraction/extraction-version.js.map +1 -0
  89. package/sensor/dist/extraction/function-ref.d.ts +118 -0
  90. package/sensor/dist/extraction/function-ref.d.ts.map +1 -0
  91. package/sensor/dist/extraction/function-ref.js +727 -0
  92. package/sensor/dist/extraction/function-ref.js.map +1 -0
  93. package/sensor/dist/extraction/generated-detection.d.ts +30 -0
  94. package/sensor/dist/extraction/generated-detection.d.ts.map +1 -0
  95. package/sensor/dist/extraction/generated-detection.js +83 -0
  96. package/sensor/dist/extraction/generated-detection.js.map +1 -0
  97. package/sensor/dist/extraction/grammars.d.ts +138 -0
  98. package/sensor/dist/extraction/grammars.d.ts.map +1 -0
  99. package/sensor/dist/extraction/grammars.js +648 -0
  100. package/sensor/dist/extraction/grammars.js.map +1 -0
  101. package/sensor/dist/extraction/index.d.ts +251 -0
  102. package/sensor/dist/extraction/index.d.ts.map +1 -0
  103. package/sensor/dist/extraction/index.js +2563 -0
  104. package/sensor/dist/extraction/index.js.map +1 -0
  105. package/sensor/dist/extraction/kernel/decode.d.ts +9 -0
  106. package/sensor/dist/extraction/kernel/decode.d.ts.map +1 -0
  107. package/sensor/dist/extraction/kernel/decode.js +156 -0
  108. package/sensor/dist/extraction/kernel/decode.js.map +1 -0
  109. package/sensor/dist/extraction/kernel/index.d.ts +62 -0
  110. package/sensor/dist/extraction/kernel/index.d.ts.map +1 -0
  111. package/sensor/dist/extraction/kernel/index.js +165 -0
  112. package/sensor/dist/extraction/kernel/index.js.map +1 -0
  113. package/sensor/dist/extraction/kernel/layout.d.ts +92 -0
  114. package/sensor/dist/extraction/kernel/layout.d.ts.map +1 -0
  115. package/sensor/dist/extraction/kernel/layout.js +95 -0
  116. package/sensor/dist/extraction/kernel/layout.js.map +1 -0
  117. package/sensor/dist/extraction/kernel/loader.d.ts +61 -0
  118. package/sensor/dist/extraction/kernel/loader.d.ts.map +1 -0
  119. package/sensor/dist/extraction/kernel/loader.js +146 -0
  120. package/sensor/dist/extraction/kernel/loader.js.map +1 -0
  121. package/sensor/dist/extraction/languages/arkts.d.ts +3 -0
  122. package/sensor/dist/extraction/languages/arkts.d.ts.map +1 -0
  123. package/sensor/dist/extraction/languages/arkts.js +127 -0
  124. package/sensor/dist/extraction/languages/arkts.js.map +1 -0
  125. package/sensor/dist/extraction/languages/c-cpp.d.ts +111 -0
  126. package/sensor/dist/extraction/languages/c-cpp.d.ts.map +1 -0
  127. package/sensor/dist/extraction/languages/c-cpp.js +878 -0
  128. package/sensor/dist/extraction/languages/c-cpp.js.map +1 -0
  129. package/sensor/dist/extraction/languages/cfquery.d.ts +12 -0
  130. package/sensor/dist/extraction/languages/cfquery.d.ts.map +1 -0
  131. package/sensor/dist/extraction/languages/cfquery.js +28 -0
  132. package/sensor/dist/extraction/languages/cfquery.js.map +1 -0
  133. package/sensor/dist/extraction/languages/cfscript.d.ts +3 -0
  134. package/sensor/dist/extraction/languages/cfscript.d.ts.map +1 -0
  135. package/sensor/dist/extraction/languages/cfscript.js +73 -0
  136. package/sensor/dist/extraction/languages/cfscript.js.map +1 -0
  137. package/sensor/dist/extraction/languages/cobol.d.ts +33 -0
  138. package/sensor/dist/extraction/languages/cobol.d.ts.map +1 -0
  139. package/sensor/dist/extraction/languages/cobol.js +499 -0
  140. package/sensor/dist/extraction/languages/cobol.js.map +1 -0
  141. package/sensor/dist/extraction/languages/csharp.d.ts +25 -0
  142. package/sensor/dist/extraction/languages/csharp.d.ts.map +1 -0
  143. package/sensor/dist/extraction/languages/csharp.js +175 -0
  144. package/sensor/dist/extraction/languages/csharp.js.map +1 -0
  145. package/sensor/dist/extraction/languages/dart.d.ts +3 -0
  146. package/sensor/dist/extraction/languages/dart.d.ts.map +1 -0
  147. package/sensor/dist/extraction/languages/dart.js +374 -0
  148. package/sensor/dist/extraction/languages/dart.js.map +1 -0
  149. package/sensor/dist/extraction/languages/erlang.d.ts +3 -0
  150. package/sensor/dist/extraction/languages/erlang.d.ts.map +1 -0
  151. package/sensor/dist/extraction/languages/erlang.js +350 -0
  152. package/sensor/dist/extraction/languages/erlang.js.map +1 -0
  153. package/sensor/dist/extraction/languages/go.d.ts +3 -0
  154. package/sensor/dist/extraction/languages/go.d.ts.map +1 -0
  155. package/sensor/dist/extraction/languages/go.js +111 -0
  156. package/sensor/dist/extraction/languages/go.js.map +1 -0
  157. package/sensor/dist/extraction/languages/index.d.ts +10 -0
  158. package/sensor/dist/extraction/languages/index.d.ts.map +1 -0
  159. package/sensor/dist/extraction/languages/index.js +71 -0
  160. package/sensor/dist/extraction/languages/index.js.map +1 -0
  161. package/sensor/dist/extraction/languages/java.d.ts +3 -0
  162. package/sensor/dist/extraction/languages/java.d.ts.map +1 -0
  163. package/sensor/dist/extraction/languages/java.js +315 -0
  164. package/sensor/dist/extraction/languages/java.js.map +1 -0
  165. package/sensor/dist/extraction/languages/javascript.d.ts +3 -0
  166. package/sensor/dist/extraction/languages/javascript.d.ts.map +1 -0
  167. package/sensor/dist/extraction/languages/javascript.js +106 -0
  168. package/sensor/dist/extraction/languages/javascript.js.map +1 -0
  169. package/sensor/dist/extraction/languages/kotlin.d.ts +3 -0
  170. package/sensor/dist/extraction/languages/kotlin.d.ts.map +1 -0
  171. package/sensor/dist/extraction/languages/kotlin.js +379 -0
  172. package/sensor/dist/extraction/languages/kotlin.js.map +1 -0
  173. package/sensor/dist/extraction/languages/lua.d.ts +3 -0
  174. package/sensor/dist/extraction/languages/lua.d.ts.map +1 -0
  175. package/sensor/dist/extraction/languages/lua.js +150 -0
  176. package/sensor/dist/extraction/languages/lua.js.map +1 -0
  177. package/sensor/dist/extraction/languages/luau.d.ts +3 -0
  178. package/sensor/dist/extraction/languages/luau.d.ts.map +1 -0
  179. package/sensor/dist/extraction/languages/luau.js +37 -0
  180. package/sensor/dist/extraction/languages/luau.js.map +1 -0
  181. package/sensor/dist/extraction/languages/nix.d.ts +3 -0
  182. package/sensor/dist/extraction/languages/nix.d.ts.map +1 -0
  183. package/sensor/dist/extraction/languages/nix.js +294 -0
  184. package/sensor/dist/extraction/languages/nix.js.map +1 -0
  185. package/sensor/dist/extraction/languages/objc.d.ts +3 -0
  186. package/sensor/dist/extraction/languages/objc.d.ts.map +1 -0
  187. package/sensor/dist/extraction/languages/objc.js +175 -0
  188. package/sensor/dist/extraction/languages/objc.js.map +1 -0
  189. package/sensor/dist/extraction/languages/pascal.d.ts +3 -0
  190. package/sensor/dist/extraction/languages/pascal.d.ts.map +1 -0
  191. package/sensor/dist/extraction/languages/pascal.js +77 -0
  192. package/sensor/dist/extraction/languages/pascal.js.map +1 -0
  193. package/sensor/dist/extraction/languages/php.d.ts +3 -0
  194. package/sensor/dist/extraction/languages/php.d.ts.map +1 -0
  195. package/sensor/dist/extraction/languages/php.js +196 -0
  196. package/sensor/dist/extraction/languages/php.js.map +1 -0
  197. package/sensor/dist/extraction/languages/python.d.ts +3 -0
  198. package/sensor/dist/extraction/languages/python.d.ts.map +1 -0
  199. package/sensor/dist/extraction/languages/python.js +56 -0
  200. package/sensor/dist/extraction/languages/python.js.map +1 -0
  201. package/sensor/dist/extraction/languages/r.d.ts +3 -0
  202. package/sensor/dist/extraction/languages/r.d.ts.map +1 -0
  203. package/sensor/dist/extraction/languages/r.js +314 -0
  204. package/sensor/dist/extraction/languages/r.js.map +1 -0
  205. package/sensor/dist/extraction/languages/ruby.d.ts +3 -0
  206. package/sensor/dist/extraction/languages/ruby.d.ts.map +1 -0
  207. package/sensor/dist/extraction/languages/ruby.js +149 -0
  208. package/sensor/dist/extraction/languages/ruby.js.map +1 -0
  209. package/sensor/dist/extraction/languages/rust.d.ts +3 -0
  210. package/sensor/dist/extraction/languages/rust.d.ts.map +1 -0
  211. package/sensor/dist/extraction/languages/rust.js +142 -0
  212. package/sensor/dist/extraction/languages/rust.js.map +1 -0
  213. package/sensor/dist/extraction/languages/scala.d.ts +3 -0
  214. package/sensor/dist/extraction/languages/scala.d.ts.map +1 -0
  215. package/sensor/dist/extraction/languages/scala.js +209 -0
  216. package/sensor/dist/extraction/languages/scala.js.map +1 -0
  217. package/sensor/dist/extraction/languages/solidity.d.ts +3 -0
  218. package/sensor/dist/extraction/languages/solidity.d.ts.map +1 -0
  219. package/sensor/dist/extraction/languages/solidity.js +293 -0
  220. package/sensor/dist/extraction/languages/solidity.js.map +1 -0
  221. package/sensor/dist/extraction/languages/swift.d.ts +3 -0
  222. package/sensor/dist/extraction/languages/swift.d.ts.map +1 -0
  223. package/sensor/dist/extraction/languages/swift.js +152 -0
  224. package/sensor/dist/extraction/languages/swift.js.map +1 -0
  225. package/sensor/dist/extraction/languages/terraform.d.ts +3 -0
  226. package/sensor/dist/extraction/languages/terraform.d.ts.map +1 -0
  227. package/sensor/dist/extraction/languages/terraform.js +641 -0
  228. package/sensor/dist/extraction/languages/terraform.js.map +1 -0
  229. package/sensor/dist/extraction/languages/typescript.d.ts +16 -0
  230. package/sensor/dist/extraction/languages/typescript.d.ts.map +1 -0
  231. package/sensor/dist/extraction/languages/typescript.js +167 -0
  232. package/sensor/dist/extraction/languages/typescript.js.map +1 -0
  233. package/sensor/dist/extraction/languages/vbnet.d.ts +11 -0
  234. package/sensor/dist/extraction/languages/vbnet.d.ts.map +1 -0
  235. package/sensor/dist/extraction/languages/vbnet.js +141 -0
  236. package/sensor/dist/extraction/languages/vbnet.js.map +1 -0
  237. package/sensor/dist/extraction/liquid-extractor.d.ts +59 -0
  238. package/sensor/dist/extraction/liquid-extractor.d.ts.map +1 -0
  239. package/sensor/dist/extraction/liquid-extractor.js +357 -0
  240. package/sensor/dist/extraction/liquid-extractor.js.map +1 -0
  241. package/sensor/dist/extraction/mybatis-extractor.d.ts +68 -0
  242. package/sensor/dist/extraction/mybatis-extractor.d.ts.map +1 -0
  243. package/sensor/dist/extraction/mybatis-extractor.js +300 -0
  244. package/sensor/dist/extraction/mybatis-extractor.js.map +1 -0
  245. package/sensor/dist/extraction/parse-pool.d.ts +160 -0
  246. package/sensor/dist/extraction/parse-pool.d.ts.map +1 -0
  247. package/sensor/dist/extraction/parse-pool.js +402 -0
  248. package/sensor/dist/extraction/parse-pool.js.map +1 -0
  249. package/sensor/dist/extraction/parse-worker.d.ts +8 -0
  250. package/sensor/dist/extraction/parse-worker.d.ts.map +1 -0
  251. package/sensor/dist/extraction/parse-worker.js +138 -0
  252. package/sensor/dist/extraction/parse-worker.js.map +1 -0
  253. package/sensor/dist/extraction/razor-extractor.d.ts +42 -0
  254. package/sensor/dist/extraction/razor-extractor.d.ts.map +1 -0
  255. package/sensor/dist/extraction/razor-extractor.js +285 -0
  256. package/sensor/dist/extraction/razor-extractor.js.map +1 -0
  257. package/sensor/dist/extraction/spawn-invokes.d.ts +101 -0
  258. package/sensor/dist/extraction/spawn-invokes.d.ts.map +1 -0
  259. package/sensor/dist/extraction/spawn-invokes.js +327 -0
  260. package/sensor/dist/extraction/spawn-invokes.js.map +1 -0
  261. package/sensor/dist/extraction/store-worker.d.ts +24 -0
  262. package/sensor/dist/extraction/store-worker.d.ts.map +1 -0
  263. package/sensor/dist/extraction/store-worker.js +110 -0
  264. package/sensor/dist/extraction/store-worker.js.map +1 -0
  265. package/sensor/dist/extraction/store-writer.d.ts +63 -0
  266. package/sensor/dist/extraction/store-writer.d.ts.map +1 -0
  267. package/sensor/dist/extraction/store-writer.js +174 -0
  268. package/sensor/dist/extraction/store-writer.js.map +1 -0
  269. package/sensor/dist/extraction/svelte-extractor.d.ts +56 -0
  270. package/sensor/dist/extraction/svelte-extractor.d.ts.map +1 -0
  271. package/sensor/dist/extraction/svelte-extractor.js +275 -0
  272. package/sensor/dist/extraction/svelte-extractor.js.map +1 -0
  273. package/sensor/dist/extraction/tree-sitter-helpers.d.ts +28 -0
  274. package/sensor/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
  275. package/sensor/dist/extraction/tree-sitter-helpers.js +153 -0
  276. package/sensor/dist/extraction/tree-sitter-helpers.js.map +1 -0
  277. package/sensor/dist/extraction/tree-sitter-types.d.ts +258 -0
  278. package/sensor/dist/extraction/tree-sitter-types.d.ts.map +1 -0
  279. package/sensor/dist/extraction/tree-sitter-types.js +10 -0
  280. package/sensor/dist/extraction/tree-sitter-types.js.map +1 -0
  281. package/sensor/dist/extraction/tree-sitter.d.ts +724 -0
  282. package/sensor/dist/extraction/tree-sitter.d.ts.map +1 -0
  283. package/sensor/dist/extraction/tree-sitter.js +6721 -0
  284. package/sensor/dist/extraction/tree-sitter.js.map +1 -0
  285. package/sensor/dist/extraction/vue-extractor.d.ts +51 -0
  286. package/sensor/dist/extraction/vue-extractor.d.ts.map +1 -0
  287. package/sensor/dist/extraction/vue-extractor.js +254 -0
  288. package/sensor/dist/extraction/vue-extractor.js.map +1 -0
  289. package/sensor/dist/extraction/wasm/tree-sitter-arkts.wasm +0 -0
  290. package/sensor/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
  291. package/sensor/dist/extraction/wasm/tree-sitter-cfml.wasm +0 -0
  292. package/sensor/dist/extraction/wasm/tree-sitter-cfquery.wasm +0 -0
  293. package/sensor/dist/extraction/wasm/tree-sitter-cfscript.wasm +0 -0
  294. package/sensor/dist/extraction/wasm/tree-sitter-cobol.wasm +0 -0
  295. package/sensor/dist/extraction/wasm/tree-sitter-erlang.wasm +0 -0
  296. package/sensor/dist/extraction/wasm/tree-sitter-go.wasm +0 -0
  297. package/sensor/dist/extraction/wasm/tree-sitter-java.wasm +0 -0
  298. package/sensor/dist/extraction/wasm/tree-sitter-javascript.wasm +0 -0
  299. package/sensor/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  300. package/sensor/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
  301. package/sensor/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
  302. package/sensor/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  303. package/sensor/dist/extraction/wasm/tree-sitter-python.wasm +0 -0
  304. package/sensor/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
  305. package/sensor/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  306. package/sensor/dist/extraction/wasm/tree-sitter-terraform.wasm +0 -0
  307. package/sensor/dist/extraction/wasm/tree-sitter-tsx.wasm +0 -0
  308. package/sensor/dist/extraction/wasm/tree-sitter-typescript.wasm +0 -0
  309. package/sensor/dist/extraction/wasm/tree-sitter-vbnet.wasm +0 -0
  310. package/sensor/dist/extraction/wasm-runtime-flags.d.ts +53 -0
  311. package/sensor/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
  312. package/sensor/dist/extraction/wasm-runtime-flags.js +130 -0
  313. package/sensor/dist/extraction/wasm-runtime-flags.js.map +1 -0
  314. package/sensor/dist/graph/index.d.ts +8 -0
  315. package/sensor/dist/graph/index.d.ts.map +1 -0
  316. package/sensor/dist/graph/index.js +13 -0
  317. package/sensor/dist/graph/index.js.map +1 -0
  318. package/sensor/dist/graph/queries.d.ts +106 -0
  319. package/sensor/dist/graph/queries.d.ts.map +1 -0
  320. package/sensor/dist/graph/queries.js +339 -0
  321. package/sensor/dist/graph/queries.js.map +1 -0
  322. package/sensor/dist/graph/traversal.d.ts +127 -0
  323. package/sensor/dist/graph/traversal.d.ts.map +1 -0
  324. package/sensor/dist/graph/traversal.js +599 -0
  325. package/sensor/dist/graph/traversal.js.map +1 -0
  326. package/sensor/dist/index.d.ts +653 -0
  327. package/sensor/dist/index.d.ts.map +1 -0
  328. package/sensor/dist/index.js +1646 -0
  329. package/sensor/dist/index.js.map +1 -0
  330. package/sensor/dist/installer/beta-signup.d.ts +54 -0
  331. package/sensor/dist/installer/beta-signup.d.ts.map +1 -0
  332. package/sensor/dist/installer/beta-signup.js +178 -0
  333. package/sensor/dist/installer/beta-signup.js.map +1 -0
  334. package/sensor/dist/installer/config-writer.d.ts +28 -0
  335. package/sensor/dist/installer/config-writer.d.ts.map +1 -0
  336. package/sensor/dist/installer/config-writer.js +91 -0
  337. package/sensor/dist/installer/config-writer.js.map +1 -0
  338. package/sensor/dist/installer/index.d.ts +142 -0
  339. package/sensor/dist/installer/index.d.ts.map +1 -0
  340. package/sensor/dist/installer/index.js +622 -0
  341. package/sensor/dist/installer/index.js.map +1 -0
  342. package/sensor/dist/installer/instructions-template.d.ts +41 -0
  343. package/sensor/dist/installer/instructions-template.d.ts.map +1 -0
  344. package/sensor/dist/installer/instructions-template.js +53 -0
  345. package/sensor/dist/installer/instructions-template.js.map +1 -0
  346. package/sensor/dist/installer/targets/antigravity.d.ts +57 -0
  347. package/sensor/dist/installer/targets/antigravity.d.ts.map +1 -0
  348. package/sensor/dist/installer/targets/antigravity.js +308 -0
  349. package/sensor/dist/installer/targets/antigravity.js.map +1 -0
  350. package/sensor/dist/installer/targets/claude.d.ts +62 -0
  351. package/sensor/dist/installer/targets/claude.d.ts.map +1 -0
  352. package/sensor/dist/installer/targets/claude.js +454 -0
  353. package/sensor/dist/installer/targets/claude.js.map +1 -0
  354. package/sensor/dist/installer/targets/codex.d.ts +18 -0
  355. package/sensor/dist/installer/targets/codex.d.ts.map +1 -0
  356. package/sensor/dist/installer/targets/codex.js +185 -0
  357. package/sensor/dist/installer/targets/codex.js.map +1 -0
  358. package/sensor/dist/installer/targets/cursor.d.ts +35 -0
  359. package/sensor/dist/installer/targets/cursor.d.ts.map +1 -0
  360. package/sensor/dist/installer/targets/cursor.js +254 -0
  361. package/sensor/dist/installer/targets/cursor.js.map +1 -0
  362. package/sensor/dist/installer/targets/gemini.d.ts +26 -0
  363. package/sensor/dist/installer/targets/gemini.d.ts.map +1 -0
  364. package/sensor/dist/installer/targets/gemini.js +165 -0
  365. package/sensor/dist/installer/targets/gemini.js.map +1 -0
  366. package/sensor/dist/installer/targets/hermes.d.ts +18 -0
  367. package/sensor/dist/installer/targets/hermes.d.ts.map +1 -0
  368. package/sensor/dist/installer/targets/hermes.js +359 -0
  369. package/sensor/dist/installer/targets/hermes.js.map +1 -0
  370. package/sensor/dist/installer/targets/kiro.d.ts +27 -0
  371. package/sensor/dist/installer/targets/kiro.d.ts.map +1 -0
  372. package/sensor/dist/installer/targets/kiro.js +178 -0
  373. package/sensor/dist/installer/targets/kiro.js.map +1 -0
  374. package/sensor/dist/installer/targets/opencode.d.ts +38 -0
  375. package/sensor/dist/installer/targets/opencode.d.ts.map +1 -0
  376. package/sensor/dist/installer/targets/opencode.js +288 -0
  377. package/sensor/dist/installer/targets/opencode.js.map +1 -0
  378. package/sensor/dist/installer/targets/registry.d.ts +35 -0
  379. package/sensor/dist/installer/targets/registry.d.ts.map +1 -0
  380. package/sensor/dist/installer/targets/registry.js +91 -0
  381. package/sensor/dist/installer/targets/registry.js.map +1 -0
  382. package/sensor/dist/installer/targets/shared.d.ts +101 -0
  383. package/sensor/dist/installer/targets/shared.d.ts.map +1 -0
  384. package/sensor/dist/installer/targets/shared.js +264 -0
  385. package/sensor/dist/installer/targets/shared.js.map +1 -0
  386. package/sensor/dist/installer/targets/toml.d.ts +52 -0
  387. package/sensor/dist/installer/targets/toml.d.ts.map +1 -0
  388. package/sensor/dist/installer/targets/toml.js +147 -0
  389. package/sensor/dist/installer/targets/toml.js.map +1 -0
  390. package/sensor/dist/installer/targets/types.d.ts +108 -0
  391. package/sensor/dist/installer/targets/types.d.ts.map +1 -0
  392. package/sensor/dist/installer/targets/types.js +16 -0
  393. package/sensor/dist/installer/targets/types.js.map +1 -0
  394. package/sensor/dist/mcp/daemon-manager.d.ts +42 -0
  395. package/sensor/dist/mcp/daemon-manager.d.ts.map +1 -0
  396. package/sensor/dist/mcp/daemon-manager.js +129 -0
  397. package/sensor/dist/mcp/daemon-manager.js.map +1 -0
  398. package/sensor/dist/mcp/daemon-paths.d.ts +73 -0
  399. package/sensor/dist/mcp/daemon-paths.d.ts.map +1 -0
  400. package/sensor/dist/mcp/daemon-paths.js +170 -0
  401. package/sensor/dist/mcp/daemon-paths.js.map +1 -0
  402. package/sensor/dist/mcp/daemon-registry.d.ts +54 -0
  403. package/sensor/dist/mcp/daemon-registry.d.ts.map +1 -0
  404. package/sensor/dist/mcp/daemon-registry.js +241 -0
  405. package/sensor/dist/mcp/daemon-registry.js.map +1 -0
  406. package/sensor/dist/mcp/daemon.d.ts +290 -0
  407. package/sensor/dist/mcp/daemon.d.ts.map +1 -0
  408. package/sensor/dist/mcp/daemon.js +867 -0
  409. package/sensor/dist/mcp/daemon.js.map +1 -0
  410. package/sensor/dist/mcp/dynamic-boundaries.d.ts +41 -0
  411. package/sensor/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
  412. package/sensor/dist/mcp/dynamic-boundaries.js +360 -0
  413. package/sensor/dist/mcp/dynamic-boundaries.js.map +1 -0
  414. package/sensor/dist/mcp/early-ppid.d.ts +26 -0
  415. package/sensor/dist/mcp/early-ppid.d.ts.map +1 -0
  416. package/sensor/dist/mcp/early-ppid.js +29 -0
  417. package/sensor/dist/mcp/early-ppid.js.map +1 -0
  418. package/sensor/dist/mcp/engine.d.ts +130 -0
  419. package/sensor/dist/mcp/engine.d.ts.map +1 -0
  420. package/sensor/dist/mcp/engine.js +375 -0
  421. package/sensor/dist/mcp/engine.js.map +1 -0
  422. package/sensor/dist/mcp/index.d.ts +113 -0
  423. package/sensor/dist/mcp/index.d.ts.map +1 -0
  424. package/sensor/dist/mcp/index.js +551 -0
  425. package/sensor/dist/mcp/index.js.map +1 -0
  426. package/sensor/dist/mcp/liveness-watchdog.d.ts +35 -0
  427. package/sensor/dist/mcp/liveness-watchdog.d.ts.map +1 -0
  428. package/sensor/dist/mcp/liveness-watchdog.js +267 -0
  429. package/sensor/dist/mcp/liveness-watchdog.js.map +1 -0
  430. package/sensor/dist/mcp/ppid-watchdog.d.ts +62 -0
  431. package/sensor/dist/mcp/ppid-watchdog.d.ts.map +1 -0
  432. package/sensor/dist/mcp/ppid-watchdog.js +64 -0
  433. package/sensor/dist/mcp/ppid-watchdog.js.map +1 -0
  434. package/sensor/dist/mcp/proxy.d.ts +99 -0
  435. package/sensor/dist/mcp/proxy.d.ts.map +1 -0
  436. package/sensor/dist/mcp/proxy.js +737 -0
  437. package/sensor/dist/mcp/proxy.js.map +1 -0
  438. package/sensor/dist/mcp/query-pool.d.ts +108 -0
  439. package/sensor/dist/mcp/query-pool.d.ts.map +1 -0
  440. package/sensor/dist/mcp/query-pool.js +315 -0
  441. package/sensor/dist/mcp/query-pool.js.map +1 -0
  442. package/sensor/dist/mcp/query-worker.d.ts +24 -0
  443. package/sensor/dist/mcp/query-worker.d.ts.map +1 -0
  444. package/sensor/dist/mcp/query-worker.js +87 -0
  445. package/sensor/dist/mcp/query-worker.js.map +1 -0
  446. package/sensor/dist/mcp/server-instructions.d.ts +34 -0
  447. package/sensor/dist/mcp/server-instructions.d.ts.map +1 -0
  448. package/sensor/dist/mcp/server-instructions.js +106 -0
  449. package/sensor/dist/mcp/server-instructions.js.map +1 -0
  450. package/sensor/dist/mcp/session.d.ts +92 -0
  451. package/sensor/dist/mcp/session.d.ts.map +1 -0
  452. package/sensor/dist/mcp/session.js +355 -0
  453. package/sensor/dist/mcp/session.js.map +1 -0
  454. package/sensor/dist/mcp/startup-handshake.d.ts +44 -0
  455. package/sensor/dist/mcp/startup-handshake.d.ts.map +1 -0
  456. package/sensor/dist/mcp/startup-handshake.js +73 -0
  457. package/sensor/dist/mcp/startup-handshake.js.map +1 -0
  458. package/sensor/dist/mcp/stdin-teardown.d.ts +27 -0
  459. package/sensor/dist/mcp/stdin-teardown.d.ts.map +1 -0
  460. package/sensor/dist/mcp/stdin-teardown.js +49 -0
  461. package/sensor/dist/mcp/stdin-teardown.js.map +1 -0
  462. package/sensor/dist/mcp/tools.d.ts +651 -0
  463. package/sensor/dist/mcp/tools.d.ts.map +1 -0
  464. package/sensor/dist/mcp/tools.js +4574 -0
  465. package/sensor/dist/mcp/tools.js.map +1 -0
  466. package/sensor/dist/mcp/transport.d.ts +188 -0
  467. package/sensor/dist/mcp/transport.d.ts.map +1 -0
  468. package/sensor/dist/mcp/transport.js +377 -0
  469. package/sensor/dist/mcp/transport.js.map +1 -0
  470. package/sensor/dist/mcp/version.d.ts +30 -0
  471. package/sensor/dist/mcp/version.d.ts.map +1 -0
  472. package/sensor/dist/mcp/version.js +85 -0
  473. package/sensor/dist/mcp/version.js.map +1 -0
  474. package/sensor/dist/project-config.d.ts +94 -0
  475. package/sensor/dist/project-config.d.ts.map +1 -0
  476. package/sensor/dist/project-config.js +374 -0
  477. package/sensor/dist/project-config.js.map +1 -0
  478. package/sensor/dist/resolution/c-fnptr-synthesizer.d.ts +6 -0
  479. package/sensor/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -0
  480. package/sensor/dist/resolution/c-fnptr-synthesizer.js +1070 -0
  481. package/sensor/dist/resolution/c-fnptr-synthesizer.js.map +1 -0
  482. package/sensor/dist/resolution/callback-synthesizer.d.ts +59 -0
  483. package/sensor/dist/resolution/callback-synthesizer.d.ts.map +1 -0
  484. package/sensor/dist/resolution/callback-synthesizer.js +3961 -0
  485. package/sensor/dist/resolution/callback-synthesizer.js.map +1 -0
  486. package/sensor/dist/resolution/cooperative-yield.d.ts +40 -0
  487. package/sensor/dist/resolution/cooperative-yield.d.ts.map +1 -0
  488. package/sensor/dist/resolution/cooperative-yield.js +44 -0
  489. package/sensor/dist/resolution/cooperative-yield.js.map +1 -0
  490. package/sensor/dist/resolution/frameworks/astro.d.ts +9 -0
  491. package/sensor/dist/resolution/frameworks/astro.d.ts.map +1 -0
  492. package/sensor/dist/resolution/frameworks/astro.js +169 -0
  493. package/sensor/dist/resolution/frameworks/astro.js.map +1 -0
  494. package/sensor/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
  495. package/sensor/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
  496. package/sensor/dist/resolution/frameworks/cargo-workspace.js +225 -0
  497. package/sensor/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
  498. package/sensor/dist/resolution/frameworks/cics.d.ts +20 -0
  499. package/sensor/dist/resolution/frameworks/cics.d.ts.map +1 -0
  500. package/sensor/dist/resolution/frameworks/cics.js +90 -0
  501. package/sensor/dist/resolution/frameworks/cics.js.map +1 -0
  502. package/sensor/dist/resolution/frameworks/csharp.d.ts +8 -0
  503. package/sensor/dist/resolution/frameworks/csharp.d.ts.map +1 -0
  504. package/sensor/dist/resolution/frameworks/csharp.js +241 -0
  505. package/sensor/dist/resolution/frameworks/csharp.js.map +1 -0
  506. package/sensor/dist/resolution/frameworks/drupal.d.ts +51 -0
  507. package/sensor/dist/resolution/frameworks/drupal.d.ts.map +1 -0
  508. package/sensor/dist/resolution/frameworks/drupal.js +367 -0
  509. package/sensor/dist/resolution/frameworks/drupal.js.map +1 -0
  510. package/sensor/dist/resolution/frameworks/expo-modules.d.ts +3 -0
  511. package/sensor/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
  512. package/sensor/dist/resolution/frameworks/expo-modules.js +148 -0
  513. package/sensor/dist/resolution/frameworks/expo-modules.js.map +1 -0
  514. package/sensor/dist/resolution/frameworks/express.d.ts +8 -0
  515. package/sensor/dist/resolution/frameworks/express.d.ts.map +1 -0
  516. package/sensor/dist/resolution/frameworks/express.js +308 -0
  517. package/sensor/dist/resolution/frameworks/express.js.map +1 -0
  518. package/sensor/dist/resolution/frameworks/fabric.d.ts +3 -0
  519. package/sensor/dist/resolution/frameworks/fabric.d.ts.map +1 -0
  520. package/sensor/dist/resolution/frameworks/fabric.js +354 -0
  521. package/sensor/dist/resolution/frameworks/fabric.js.map +1 -0
  522. package/sensor/dist/resolution/frameworks/go.d.ts +8 -0
  523. package/sensor/dist/resolution/frameworks/go.d.ts.map +1 -0
  524. package/sensor/dist/resolution/frameworks/go.js +184 -0
  525. package/sensor/dist/resolution/frameworks/go.js.map +1 -0
  526. package/sensor/dist/resolution/frameworks/goframe.d.ts +41 -0
  527. package/sensor/dist/resolution/frameworks/goframe.d.ts.map +1 -0
  528. package/sensor/dist/resolution/frameworks/goframe.js +112 -0
  529. package/sensor/dist/resolution/frameworks/goframe.js.map +1 -0
  530. package/sensor/dist/resolution/frameworks/index.d.ts +50 -0
  531. package/sensor/dist/resolution/frameworks/index.d.ts.map +1 -0
  532. package/sensor/dist/resolution/frameworks/index.js +175 -0
  533. package/sensor/dist/resolution/frameworks/index.js.map +1 -0
  534. package/sensor/dist/resolution/frameworks/java.d.ts +8 -0
  535. package/sensor/dist/resolution/frameworks/java.d.ts.map +1 -0
  536. package/sensor/dist/resolution/frameworks/java.js +517 -0
  537. package/sensor/dist/resolution/frameworks/java.js.map +1 -0
  538. package/sensor/dist/resolution/frameworks/laravel.d.ts +13 -0
  539. package/sensor/dist/resolution/frameworks/laravel.d.ts.map +1 -0
  540. package/sensor/dist/resolution/frameworks/laravel.js +257 -0
  541. package/sensor/dist/resolution/frameworks/laravel.js.map +1 -0
  542. package/sensor/dist/resolution/frameworks/nestjs.d.ts +26 -0
  543. package/sensor/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
  544. package/sensor/dist/resolution/frameworks/nestjs.js +698 -0
  545. package/sensor/dist/resolution/frameworks/nestjs.js.map +1 -0
  546. package/sensor/dist/resolution/frameworks/play.d.ts +19 -0
  547. package/sensor/dist/resolution/frameworks/play.d.ts.map +1 -0
  548. package/sensor/dist/resolution/frameworks/play.js +111 -0
  549. package/sensor/dist/resolution/frameworks/play.js.map +1 -0
  550. package/sensor/dist/resolution/frameworks/python.d.ts +10 -0
  551. package/sensor/dist/resolution/frameworks/python.d.ts.map +1 -0
  552. package/sensor/dist/resolution/frameworks/python.js +400 -0
  553. package/sensor/dist/resolution/frameworks/python.js.map +1 -0
  554. package/sensor/dist/resolution/frameworks/react-native.d.ts +3 -0
  555. package/sensor/dist/resolution/frameworks/react-native.d.ts.map +1 -0
  556. package/sensor/dist/resolution/frameworks/react-native.js +410 -0
  557. package/sensor/dist/resolution/frameworks/react-native.js.map +1 -0
  558. package/sensor/dist/resolution/frameworks/react.d.ts +8 -0
  559. package/sensor/dist/resolution/frameworks/react.d.ts.map +1 -0
  560. package/sensor/dist/resolution/frameworks/react.js +334 -0
  561. package/sensor/dist/resolution/frameworks/react.js.map +1 -0
  562. package/sensor/dist/resolution/frameworks/ruby.d.ts +8 -0
  563. package/sensor/dist/resolution/frameworks/ruby.d.ts.map +1 -0
  564. package/sensor/dist/resolution/frameworks/ruby.js +302 -0
  565. package/sensor/dist/resolution/frameworks/ruby.js.map +1 -0
  566. package/sensor/dist/resolution/frameworks/rust.d.ts +8 -0
  567. package/sensor/dist/resolution/frameworks/rust.d.ts.map +1 -0
  568. package/sensor/dist/resolution/frameworks/rust.js +304 -0
  569. package/sensor/dist/resolution/frameworks/rust.js.map +1 -0
  570. package/sensor/dist/resolution/frameworks/svelte.d.ts +9 -0
  571. package/sensor/dist/resolution/frameworks/svelte.d.ts.map +1 -0
  572. package/sensor/dist/resolution/frameworks/svelte.js +253 -0
  573. package/sensor/dist/resolution/frameworks/svelte.js.map +1 -0
  574. package/sensor/dist/resolution/frameworks/swift-objc.d.ts +37 -0
  575. package/sensor/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
  576. package/sensor/dist/resolution/frameworks/swift-objc.js +252 -0
  577. package/sensor/dist/resolution/frameworks/swift-objc.js.map +1 -0
  578. package/sensor/dist/resolution/frameworks/swift.d.ts +10 -0
  579. package/sensor/dist/resolution/frameworks/swift.d.ts.map +1 -0
  580. package/sensor/dist/resolution/frameworks/swift.js +400 -0
  581. package/sensor/dist/resolution/frameworks/swift.js.map +1 -0
  582. package/sensor/dist/resolution/frameworks/terraform.d.ts +38 -0
  583. package/sensor/dist/resolution/frameworks/terraform.d.ts.map +1 -0
  584. package/sensor/dist/resolution/frameworks/terraform.js +277 -0
  585. package/sensor/dist/resolution/frameworks/terraform.js.map +1 -0
  586. package/sensor/dist/resolution/frameworks/vue.d.ts +9 -0
  587. package/sensor/dist/resolution/frameworks/vue.d.ts.map +1 -0
  588. package/sensor/dist/resolution/frameworks/vue.js +303 -0
  589. package/sensor/dist/resolution/frameworks/vue.js.map +1 -0
  590. package/sensor/dist/resolution/go-module.d.ts +26 -0
  591. package/sensor/dist/resolution/go-module.d.ts.map +1 -0
  592. package/sensor/dist/resolution/go-module.js +78 -0
  593. package/sensor/dist/resolution/go-module.js.map +1 -0
  594. package/sensor/dist/resolution/goframe-synthesizer.d.ts +29 -0
  595. package/sensor/dist/resolution/goframe-synthesizer.d.ts.map +1 -0
  596. package/sensor/dist/resolution/goframe-synthesizer.js +163 -0
  597. package/sensor/dist/resolution/goframe-synthesizer.js.map +1 -0
  598. package/sensor/dist/resolution/import-resolver.d.ts +84 -0
  599. package/sensor/dist/resolution/import-resolver.d.ts.map +1 -0
  600. package/sensor/dist/resolution/import-resolver.js +2172 -0
  601. package/sensor/dist/resolution/import-resolver.js.map +1 -0
  602. package/sensor/dist/resolution/index.d.ts +309 -0
  603. package/sensor/dist/resolution/index.d.ts.map +1 -0
  604. package/sensor/dist/resolution/index.js +2050 -0
  605. package/sensor/dist/resolution/index.js.map +1 -0
  606. package/sensor/dist/resolution/lru-cache.d.ts +24 -0
  607. package/sensor/dist/resolution/lru-cache.d.ts.map +1 -0
  608. package/sensor/dist/resolution/lru-cache.js +62 -0
  609. package/sensor/dist/resolution/lru-cache.js.map +1 -0
  610. package/sensor/dist/resolution/name-matcher.d.ts +126 -0
  611. package/sensor/dist/resolution/name-matcher.d.ts.map +1 -0
  612. package/sensor/dist/resolution/name-matcher.js +1968 -0
  613. package/sensor/dist/resolution/name-matcher.js.map +1 -0
  614. package/sensor/dist/resolution/path-aliases.d.ts +68 -0
  615. package/sensor/dist/resolution/path-aliases.d.ts.map +1 -0
  616. package/sensor/dist/resolution/path-aliases.js +238 -0
  617. package/sensor/dist/resolution/path-aliases.js.map +1 -0
  618. package/sensor/dist/resolution/resolver-pool.d.ts +66 -0
  619. package/sensor/dist/resolution/resolver-pool.d.ts.map +1 -0
  620. package/sensor/dist/resolution/resolver-pool.js +244 -0
  621. package/sensor/dist/resolution/resolver-pool.js.map +1 -0
  622. package/sensor/dist/resolution/resolver-worker.d.ts +17 -0
  623. package/sensor/dist/resolution/resolver-worker.d.ts.map +1 -0
  624. package/sensor/dist/resolution/resolver-worker.js +114 -0
  625. package/sensor/dist/resolution/resolver-worker.js.map +1 -0
  626. package/sensor/dist/resolution/strip-comments.d.ts +27 -0
  627. package/sensor/dist/resolution/strip-comments.d.ts.map +1 -0
  628. package/sensor/dist/resolution/strip-comments.js +492 -0
  629. package/sensor/dist/resolution/strip-comments.js.map +1 -0
  630. package/sensor/dist/resolution/swift-objc-bridge.d.ts +134 -0
  631. package/sensor/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
  632. package/sensor/dist/resolution/swift-objc-bridge.js +256 -0
  633. package/sensor/dist/resolution/swift-objc-bridge.js.map +1 -0
  634. package/sensor/dist/resolution/types.d.ts +265 -0
  635. package/sensor/dist/resolution/types.d.ts.map +1 -0
  636. package/sensor/dist/resolution/types.js +8 -0
  637. package/sensor/dist/resolution/types.js.map +1 -0
  638. package/sensor/dist/resolution/workspace-packages.d.ts +58 -0
  639. package/sensor/dist/resolution/workspace-packages.d.ts.map +1 -0
  640. package/sensor/dist/resolution/workspace-packages.js +346 -0
  641. package/sensor/dist/resolution/workspace-packages.js.map +1 -0
  642. package/sensor/dist/search/identifier-segments.d.ts +60 -0
  643. package/sensor/dist/search/identifier-segments.d.ts.map +1 -0
  644. package/sensor/dist/search/identifier-segments.js +176 -0
  645. package/sensor/dist/search/identifier-segments.js.map +1 -0
  646. package/sensor/dist/search/query-parser.d.ts +57 -0
  647. package/sensor/dist/search/query-parser.d.ts.map +1 -0
  648. package/sensor/dist/search/query-parser.js +177 -0
  649. package/sensor/dist/search/query-parser.js.map +1 -0
  650. package/sensor/dist/search/query-utils.d.ts +87 -0
  651. package/sensor/dist/search/query-utils.d.ts.map +1 -0
  652. package/sensor/dist/search/query-utils.js +449 -0
  653. package/sensor/dist/search/query-utils.js.map +1 -0
  654. package/sensor/dist/sync/git-hooks.d.ts +45 -0
  655. package/sensor/dist/sync/git-hooks.d.ts.map +1 -0
  656. package/sensor/dist/sync/git-hooks.js +227 -0
  657. package/sensor/dist/sync/git-hooks.js.map +1 -0
  658. package/sensor/dist/sync/index.d.ts +19 -0
  659. package/sensor/dist/sync/index.d.ts.map +1 -0
  660. package/sensor/dist/sync/index.js +35 -0
  661. package/sensor/dist/sync/index.js.map +1 -0
  662. package/sensor/dist/sync/watch-policy.d.ts +48 -0
  663. package/sensor/dist/sync/watch-policy.d.ts.map +1 -0
  664. package/sensor/dist/sync/watch-policy.js +124 -0
  665. package/sensor/dist/sync/watch-policy.js.map +1 -0
  666. package/sensor/dist/sync/watcher.d.ts +372 -0
  667. package/sensor/dist/sync/watcher.d.ts.map +1 -0
  668. package/sensor/dist/sync/watcher.js +879 -0
  669. package/sensor/dist/sync/watcher.js.map +1 -0
  670. package/sensor/dist/sync/worktree.d.ts +63 -0
  671. package/sensor/dist/sync/worktree.d.ts.map +1 -0
  672. package/sensor/dist/sync/worktree.js +182 -0
  673. package/sensor/dist/sync/worktree.js.map +1 -0
  674. package/sensor/dist/telemetry/index.d.ts +157 -0
  675. package/sensor/dist/telemetry/index.d.ts.map +1 -0
  676. package/sensor/dist/telemetry/index.js +556 -0
  677. package/sensor/dist/telemetry/index.js.map +1 -0
  678. package/sensor/dist/types.d.ts +458 -0
  679. package/sensor/dist/types.d.ts.map +1 -0
  680. package/sensor/dist/types.js +117 -0
  681. package/sensor/dist/types.js.map +1 -0
  682. package/sensor/dist/ui/color.d.ts +21 -0
  683. package/sensor/dist/ui/color.d.ts.map +1 -0
  684. package/sensor/dist/ui/color.js +42 -0
  685. package/sensor/dist/ui/color.js.map +1 -0
  686. package/sensor/dist/ui/glyphs.d.ts +67 -0
  687. package/sensor/dist/ui/glyphs.d.ts.map +1 -0
  688. package/sensor/dist/ui/glyphs.js +125 -0
  689. package/sensor/dist/ui/glyphs.js.map +1 -0
  690. package/sensor/dist/ui/shimmer-progress.d.ts +11 -0
  691. package/sensor/dist/ui/shimmer-progress.d.ts.map +1 -0
  692. package/sensor/dist/ui/shimmer-progress.js +164 -0
  693. package/sensor/dist/ui/shimmer-progress.js.map +1 -0
  694. package/sensor/dist/ui/shimmer-worker.d.ts +2 -0
  695. package/sensor/dist/ui/shimmer-worker.d.ts.map +1 -0
  696. package/sensor/dist/ui/shimmer-worker.js +126 -0
  697. package/sensor/dist/ui/shimmer-worker.js.map +1 -0
  698. package/sensor/dist/ui/types.d.ts +15 -0
  699. package/sensor/dist/ui/types.d.ts.map +1 -0
  700. package/sensor/dist/ui/types.js +3 -0
  701. package/sensor/dist/ui/types.js.map +1 -0
  702. package/sensor/dist/upgrade/index.d.ts +171 -0
  703. package/sensor/dist/upgrade/index.d.ts.map +1 -0
  704. package/sensor/dist/upgrade/index.js +659 -0
  705. package/sensor/dist/upgrade/index.js.map +1 -0
  706. package/sensor/dist/upgrade/remove-binary.d.ts +87 -0
  707. package/sensor/dist/upgrade/remove-binary.d.ts.map +1 -0
  708. package/sensor/dist/upgrade/remove-binary.js +289 -0
  709. package/sensor/dist/upgrade/remove-binary.js.map +1 -0
  710. package/sensor/dist/upgrade/update-check.d.ts +92 -0
  711. package/sensor/dist/upgrade/update-check.d.ts.map +1 -0
  712. package/sensor/dist/upgrade/update-check.js +258 -0
  713. package/sensor/dist/upgrade/update-check.js.map +1 -0
  714. package/sensor/dist/utils.d.ts +224 -0
  715. package/sensor/dist/utils.d.ts.map +1 -0
  716. package/sensor/dist/utils.js +583 -0
  717. package/sensor/dist/utils.js.map +1 -0
  718. package/sensor/package.json +61 -0
  719. package/src/artifact-contracts-v2.mjs +325 -0
  720. package/src/artifact-contracts.mjs +895 -0
  721. package/src/bootstrap.mjs +88 -0
  722. package/src/boundary-compiler.mjs +712 -0
  723. package/src/boundary-observation-compiler-v2.mjs +339 -0
  724. package/src/codegraph-adapter.mjs +422 -0
  725. package/src/control-compiler.mjs +532 -0
  726. package/src/factory-diagnostics.mjs +187 -0
  727. package/src/isolation-runner.mjs +333 -0
  728. package/src/node-version-guard.mjs +43 -0
  729. package/src/rc1-black-box-oracle.mjs +906 -0
  730. package/src/rc1-comparison.mjs +154 -0
  731. package/src/rc1-evidence-bundle.mjs +456 -0
  732. package/src/rc1-v4-campaign.mjs +707 -0
  733. package/src/rc1-v4-transform.mjs +467 -0
  734. package/src/rc1-v5-artifact-set.mjs +855 -0
  735. package/src/rc1-v5-behavior-evidence.mjs +594 -0
  736. package/src/rc1-v5-campaign.mjs +796 -0
  737. package/src/rc1-v5-transform.mjs +421 -0
  738. package/src/rc1-v6-artifact-set.mjs +807 -0
  739. package/src/rc1-v6-behavior-evidence.mjs +273 -0
  740. package/src/rc1-v6-campaign.mjs +623 -0
  741. package/src/rc1-v6-causal-binding.mjs +471 -0
  742. package/src/rc1-v6-measurement.mjs +331 -0
  743. package/src/rc2-artifact-set.mjs +1579 -0
  744. package/src/rc2-campaign.mjs +1520 -0
  745. package/src/rc2-delivery-policy-front-end.mjs +1079 -0
  746. package/src/rc2-delivery-policy-oracle.mjs +134 -0
  747. package/src/rc2-delivery-policy-transform.mjs +1127 -0
  748. package/src/rc2-rc1-transfer-front-end.mjs +511 -0
  749. package/src/rc3-actual-dogfood.mjs +648 -0
  750. package/src/rc3-dogfood-scaffold.mjs +310 -0
  751. package/src/rc3-scripted-campaign.mjs +1301 -0
  752. package/src/rc4-stage1-dogfood.mjs +652 -0
  753. package/src/runtime-cli.mjs +504 -0
  754. package/src/runtime-contracts.mjs +631 -0
  755. package/src/runtime-decision-verifier.mjs +607 -0
  756. package/src/runtime-diff-observer.mjs +265 -0
  757. package/src/runtime-engine.mjs +674 -0
  758. package/src/runtime-errors.mjs +356 -0
  759. package/src/runtime-event-store.mjs +217 -0
  760. package/src/runtime-front-end.mjs +764 -0
  761. package/src/runtime-hold-recompile.mjs +606 -0
  762. package/src/runtime-projection.mjs +180 -0
  763. package/src/runtime-scripted-executor.mjs +163 -0
  764. package/src/runtime-worktree-executor.mjs +199 -0
  765. package/src/schedulability-compiler-v2.mjs +303 -0
  766. package/src/schedulability-verifier-v2.mjs +317 -0
  767. package/src/seam-transform.mjs +554 -0
  768. package/src/treatment-compiler.mjs +728 -0
  769. package/src/treatment-runner.mjs +658 -0
@@ -0,0 +1,607 @@
1
+ import { digestArtifact } from './artifact-contracts.mjs';
2
+ import { validateCarryOverWitness } from './runtime-contracts.mjs';
3
+ import { projectRuntimeState } from './runtime-projection.mjs';
4
+
5
+ // RC3 runtime decision verifier(ADR 0044 Decision 4〜7)。
6
+ // dispatch/hold/continue/invalidate裁定を、保存planとevent prefixだけから
7
+ // producer非依存に再計算する。schema envelope/digestの完全検証は
8
+ // runtime-contracts.mjsのvalidatorが担い、本moduleはruntime意味論を再計算する。
9
+ // 判定はすべてevent sequenceで行い、生成時刻・到着時刻を根拠にしない(Decision 7.4)。
10
+
11
+ function invalidVerification(reason) {
12
+ throw new TypeError(`runtime decision verifier契約違反: ${reason}`);
13
+ }
14
+
15
+ function requirePlan(plan) {
16
+ if (plan === null || typeof plan !== 'object' || Array.isArray(plan)
17
+ || !Array.isArray(plan.nodes)
18
+ || plan.nodes.length === 0
19
+ || !Array.isArray(plan.precedence)
20
+ || !Array.isArray(plan.conflicts)
21
+ || plan.capacity === null
22
+ || typeof plan.capacity !== 'object'
23
+ || !Number.isSafeInteger(plan.capacity.executors)
24
+ || plan.capacity.executors < 1
25
+ || !Number.isSafeInteger(plan.plan_epoch)) {
26
+ invalidVerification('runtime planの意味論的shapeが不正');
27
+ }
28
+ const nodeIds = plan.nodes.map((node) => node.todo_id);
29
+ if (nodeIds.some((todoId) => typeof todoId !== 'string')
30
+ || new Set(nodeIds).size !== nodeIds.length) {
31
+ invalidVerification('plan nodeが不正');
32
+ }
33
+ return nodeIds;
34
+ }
35
+
36
+ function sorted(values) {
37
+ return [...values].sort();
38
+ }
39
+
40
+ /**
41
+ * ready frontierを再計算する(ADR 0044 Decision 4)。
42
+ * minimum waveを同期barrierとして扱わず、hard predecessor充足、running集合との
43
+ * conflict不在、実capacityだけをdispatch可否の根拠にする。intake freeze中は
44
+ * fail closedでdispatch 0件とする。dispatchableは辞書順で空きcapacity分に切る。
45
+ */
46
+ export function computeReadyFrontier(options = {}) {
47
+ const { plan, events } = options;
48
+ const nodeIds = requirePlan(plan);
49
+ const state = projectRuntimeState({ events });
50
+
51
+ if (state.freeze !== null || state.closed) {
52
+ return { dispatchable: [] };
53
+ }
54
+
55
+ const acceptedSet = new Set(state.accepted);
56
+ const runningSet = new Set(state.running);
57
+ // dispatch済み・terminal済み・held済みの除外は現plan epochへscopeする。
58
+ // 旧epochのdispatch/hold記録は、recompile時のcontext失効とredispatch契約
59
+ //(RC3-G)によって新epochでは再配置可能になる。accepted/runningは
60
+ // epoch非依存(物理状態)のまま除外する。
61
+ const heldSet = new Set();
62
+ const terminalSet = new Set();
63
+ const dispatchedSet = new Set();
64
+ for (const event of events) {
65
+ if (event.plan_epoch !== plan.plan_epoch) continue;
66
+ if (event.kind === 'hold_decided') {
67
+ for (const todoId of event.payload?.hold_set ?? []) heldSet.add(todoId);
68
+ }
69
+ if (event.subject?.kind !== 'todo') continue;
70
+ if (event.kind === 'executor_dispatched') dispatchedSet.add(event.subject.ref);
71
+ if (event.kind === 'executor_terminal') terminalSet.add(event.subject.ref);
72
+ }
73
+ const slots = plan.capacity.executors - runningSet.size;
74
+ if (slots < 1) {
75
+ return { dispatchable: [] };
76
+ }
77
+
78
+ const eligible = nodeIds.filter((todoId) => {
79
+ if (acceptedSet.has(todoId) || runningSet.has(todoId) || heldSet.has(todoId)
80
+ || terminalSet.has(todoId) || dispatchedSet.has(todoId)) return false;
81
+ return plan.precedence.every((edge) => (
82
+ edge.to_todo_id !== todoId || acceptedSet.has(edge.from_todo_id)
83
+ ));
84
+ });
85
+
86
+ // running集合だけでなく、同じfrontierで既に選んだnodeとのconflictも検査する。
87
+ // conflict pairを同一dispatch decisionで同時実行しないための貪欲選択(辞書順)。
88
+ const dispatchable = [];
89
+ for (const todoId of sorted(eligible)) {
90
+ if (dispatchable.length >= slots) break;
91
+ const conflictFree = plan.conflicts.every((conflict) => {
92
+ if (!conflict.todo_ids.includes(todoId)) return true;
93
+ return conflict.todo_ids.every((member) => (
94
+ member === todoId || (!runningSet.has(member) && !dispatchable.includes(member))
95
+ ));
96
+ });
97
+ if (conflictFree) dispatchable.push(todoId);
98
+ }
99
+
100
+ return { dispatchable };
101
+ }
102
+
103
+ function declaredWriteCovers(declaredWrites, observedPath) {
104
+ return declaredWrites.some((declared) => (
105
+ declared === observedPath
106
+ || (declared.endsWith('/') && observedPath.startsWith(declared))
107
+ ));
108
+ }
109
+
110
+ function witnessSet(manifest, kinds) {
111
+ const resources = new Set(manifest?.resources ?? []);
112
+ for (const effect of manifest?.state_effects ?? []) {
113
+ if (kinds.includes(effect.kind) && typeof effect.resource_id === 'string') {
114
+ resources.add(effect.resource_id);
115
+ }
116
+ }
117
+ return resources;
118
+ }
119
+
120
+ /**
121
+ * 観測diffをdeclared path/resource witnessへcross-bindし、closed conflict分類の
122
+ * findingを返す(ADR 0044 Decision 5)。宣言外writeと運転中overlapは別findingで
123
+ * 保存し、silent mergeしない。path非交差でも共有witnessがあれば安全と推測せず
124
+ * unknown findingにする。
125
+ */
126
+ export function classifyObservedDiff(options = {}) {
127
+ const { plan, manifests, observations } = options;
128
+ requirePlan(plan);
129
+ if (manifests === null || typeof manifests !== 'object' || Array.isArray(manifests)
130
+ || !Array.isArray(observations)) {
131
+ invalidVerification('manifests/observationsが不正');
132
+ }
133
+
134
+ const findings = [];
135
+ const observedByTodo = new Map();
136
+ for (const observation of observations) {
137
+ if (observation === null || typeof observation !== 'object'
138
+ || typeof observation.todo_id !== 'string'
139
+ || !Array.isArray(observation.paths)) {
140
+ invalidVerification('observationが不正');
141
+ }
142
+ const manifest = manifests[observation.todo_id];
143
+ if (manifest === undefined) {
144
+ invalidVerification(`boundary manifestがないTODOの観測: ${observation.todo_id}`);
145
+ }
146
+ observedByTodo.set(observation.todo_id, [...new Set(observation.paths)].sort());
147
+ }
148
+
149
+ for (const [todoId, paths] of observedByTodo) {
150
+ const declaredWrites = manifests[todoId].writes ?? [];
151
+ for (const path of paths) {
152
+ if (!declaredWriteCovers(declaredWrites, path)) {
153
+ findings.push({ kind: 'scope_violation', todo_ids: [todoId], path });
154
+ }
155
+ }
156
+ }
157
+
158
+ const writersByPath = new Map();
159
+ for (const [todoId, paths] of observedByTodo) {
160
+ for (const path of paths) {
161
+ const writers = writersByPath.get(path) ?? [];
162
+ writers.push(todoId);
163
+ writersByPath.set(path, writers);
164
+ }
165
+ }
166
+ const overlapPairs = new Set();
167
+ const emittedOverlaps = new Set();
168
+ for (const [path, writers] of [...writersByPath.entries()].sort()) {
169
+ if (writers.length < 2) continue;
170
+ const sortedWriters = sorted(writers);
171
+ for (let left = 0; left < sortedWriters.length; left += 1) {
172
+ for (let right = left + 1; right < sortedWriters.length; right += 1) {
173
+ findings.push({
174
+ kind: 'observed_write_conflict',
175
+ todo_ids: [sortedWriters[left], sortedWriters[right]],
176
+ path,
177
+ });
178
+ emittedOverlaps.add(`${sortedWriters[left]} ${sortedWriters[right]} ${path}`);
179
+ overlapPairs.add(`${sortedWriters[left]} ${sortedWriters[right]}`);
180
+ }
181
+ }
182
+ }
183
+
184
+ // 観測pathが、まだ観測を持たない別TODOのdeclared write(prefix宣言含む)へ
185
+ // 到達する場合も後発write conflictとして保存する(片側観測だけの
186
+ // late conflictを安全と推測しない。RC3-F採用のverifier意味論補完)。
187
+ for (const [todoId, paths] of observedByTodo) {
188
+ for (const [otherId, manifest] of Object.entries(manifests)) {
189
+ if (otherId === todoId) continue;
190
+ const otherDeclared = manifest.writes ?? [];
191
+ for (const path of paths) {
192
+ if (!declaredWriteCovers(otherDeclared, path)) continue;
193
+ const pair = sorted([todoId, otherId]);
194
+ const key = `${pair[0]} ${pair[1]} ${path}`;
195
+ if (emittedOverlaps.has(key)) continue;
196
+ emittedOverlaps.add(key);
197
+ findings.push({
198
+ kind: 'observed_write_conflict',
199
+ todo_ids: pair,
200
+ path,
201
+ });
202
+ overlapPairs.add(`${pair[0]} ${pair[1]}`);
203
+ }
204
+ }
205
+ }
206
+
207
+ const todoIds = sorted(observedByTodo.keys());
208
+ for (let left = 0; left < todoIds.length; left += 1) {
209
+ for (let right = left + 1; right < todoIds.length; right += 1) {
210
+ const pairKey = `${todoIds[left]} ${todoIds[right]}`;
211
+ if (overlapPairs.has(pairKey)) continue;
212
+ // dynamic/semantic/effect unknownを持つTODOは、path非交差でも独立性を
213
+ // 主張できない(ADR 0044 Decision 1.5・5.1)。unknown由来のpairをevidence
214
+ // acquisition対象のsemantic conflict unknownとして保存する。
215
+ const declaredUnknowns = [
216
+ ...(manifests[todoIds[left]].unknowns ?? []),
217
+ ...(manifests[todoIds[right]].unknowns ?? []),
218
+ ];
219
+ if (declaredUnknowns.length > 0) {
220
+ findings.push({
221
+ kind: 'semantic_conflict_unknown',
222
+ todo_ids: [todoIds[left], todoIds[right]],
223
+ resource_id: null,
224
+ unknowns: structuredClone(declaredUnknowns),
225
+ });
226
+ }
227
+ for (const [kind, witnessKinds] of [
228
+ ['semantic_conflict_unknown', ['state', 'schema', 'invariant']],
229
+ ['effect_conflict_unknown', ['effect', 'external_effect']],
230
+ ]) {
231
+ const leftWitness = kind === 'semantic_conflict_unknown'
232
+ ? witnessSet(manifests[todoIds[left]], witnessKinds)
233
+ : witnessSet({ state_effects: manifests[todoIds[left]].state_effects }, witnessKinds);
234
+ const rightWitness = kind === 'semantic_conflict_unknown'
235
+ ? witnessSet(manifests[todoIds[right]], witnessKinds)
236
+ : witnessSet({ state_effects: manifests[todoIds[right]].state_effects }, witnessKinds);
237
+ for (const resourceId of sorted(leftWitness)) {
238
+ if (rightWitness.has(resourceId)) {
239
+ findings.push({
240
+ kind,
241
+ todo_ids: [todoIds[left], todoIds[right]],
242
+ resource_id: resourceId,
243
+ });
244
+ }
245
+ }
246
+ }
247
+ }
248
+ }
249
+
250
+ return { findings };
251
+ }
252
+
253
+ function affectedClosure(plan, seedTodoIds, manifests) {
254
+ const closure = new Set(seedTodoIds);
255
+ // manifestsが与えられた場合、同一resource witnessへ到達するTODOをclosureへ
256
+ // 含める(ADR 0044 Decision 6.3の第三要素)。resource→TODOのindexを先に作る。
257
+ const byResource = new Map();
258
+ if (manifests !== undefined) {
259
+ for (const [todoId, manifest] of Object.entries(manifests)) {
260
+ for (const resourceId of witnessSet(manifest, [
261
+ 'state', 'schema', 'invariant', 'effect', 'external_effect',
262
+ ])) {
263
+ const members = byResource.get(resourceId) ?? new Set();
264
+ members.add(todoId);
265
+ byResource.set(resourceId, members);
266
+ }
267
+ }
268
+ }
269
+ let changed = true;
270
+ while (changed) {
271
+ changed = false;
272
+ for (const conflict of plan.conflicts) {
273
+ const [left, right] = conflict.todo_ids;
274
+ if (closure.has(left) !== closure.has(right)) {
275
+ closure.add(left);
276
+ closure.add(right);
277
+ changed = true;
278
+ }
279
+ }
280
+ for (const edge of plan.precedence) {
281
+ if (closure.has(edge.from_todo_id) && !closure.has(edge.to_todo_id)) {
282
+ closure.add(edge.to_todo_id);
283
+ changed = true;
284
+ }
285
+ }
286
+ for (const members of byResource.values()) {
287
+ if ([...members].some((todoId) => closure.has(todoId))) {
288
+ for (const todoId of members) {
289
+ if (!closure.has(todoId)) {
290
+ closure.add(todoId);
291
+ changed = true;
292
+ }
293
+ }
294
+ }
295
+ }
296
+ }
297
+ return closure;
298
+ }
299
+
300
+ /**
301
+ * carry_over_witnessed eventが埋め込むwitness documentをschema・自己digest・
302
+ * 帰属で検証する。event payloadは`{ witness_digest, witness }`を持ち、witnessは
303
+ * `lattice.carry_over_witness.v1`の完全documentでなければならない。
304
+ * invariant digestと提供bytesの再照合はverifyCarryOverWitnessが行う(RC3-Gで
305
+ * 保存artifactと配線する)。ここでは存在・shape・digest整合を実証できない
306
+ * witnessをすべて不成立として扱う(fail closed)。
307
+ */
308
+ function witnessedForContinue(witnessRecord, todoId) {
309
+ if (witnessRecord === undefined) return false;
310
+ const payload = witnessRecord.payload;
311
+ const witness = payload?.witness;
312
+ if (witness === null || witness === undefined) return false;
313
+ if (!validateCarryOverWitness(witness)) return false;
314
+ if (witness.todo_id !== todoId) return false;
315
+ if (typeof payload.witness_digest !== 'string'
316
+ || payload.witness_digest !== witness.witness_digest) {
317
+ return false;
318
+ }
319
+ return true;
320
+ }
321
+
322
+ /**
323
+ * frozen prefixからaffected closureとhold/continue集合を再計算する
324
+ * (ADR 0044 Decision 6・7.2)。closure外のrunning TODOでも、schema・自己digest
325
+ * 整合まで実証できたcarry-over witnessが保存bytesに存在しなければcontinueできない
326
+ * (fail closed)。manifestsを渡すと同一resource witness到達もclosureへ含める。
327
+ */
328
+ export function recomputeHoldDecision(options = {}) {
329
+ const { plan, events, manifests } = options;
330
+ requirePlan(plan);
331
+ const state = projectRuntimeState({ events });
332
+ if (state.freeze === null) {
333
+ invalidVerification('intake_frozen eventのないprefixからhold decisionを再計算できない');
334
+ }
335
+ const freezeSequence = state.freeze.sequence;
336
+
337
+ // seedは現plan epochのconflictだけ(過去epochの処理済みconflictを再seedしない)。
338
+ const currentEpochConflictSequences = new Set(events
339
+ .filter((event) => event.kind === 'conflict_found' && event.plan_epoch === plan.plan_epoch)
340
+ .map((event) => event.sequence));
341
+ const frozenConflicts = state.conflicts.filter((conflict) => (
342
+ conflict.sequence <= freezeSequence && currentEpochConflictSequences.has(conflict.sequence)
343
+ ));
344
+ if (frozenConflicts.length === 0) {
345
+ invalidVerification('frozen prefix内にconflict findingがない');
346
+ }
347
+ const finding = frozenConflicts.at(-1);
348
+ const seed = frozenConflicts.flatMap((conflict) => conflict.todo_ids ?? []);
349
+ const closure = affectedClosure(plan, seed, manifests);
350
+
351
+ const frozenRunning = new Set();
352
+ for (const event of events) {
353
+ if (event.sequence > freezeSequence) continue;
354
+ if (event.kind === 'executor_dispatched' && event.subject?.kind === 'todo') {
355
+ frozenRunning.add(event.subject.ref);
356
+ }
357
+ if ((event.kind === 'receipt_accepted' || event.kind === 'executor_terminal')
358
+ && event.subject?.kind === 'todo') {
359
+ frozenRunning.delete(event.subject.ref);
360
+ }
361
+ }
362
+
363
+ const holdSet = new Set();
364
+ const continueSet = new Set();
365
+ const reasons = {};
366
+ for (const todoId of frozenRunning) {
367
+ if (closure.has(todoId)) {
368
+ holdSet.add(todoId);
369
+ reasons[todoId] = 'affected_closure';
370
+ } else if (witnessedForContinue(state.witnesses[todoId], todoId)) {
371
+ continueSet.add(todoId);
372
+ } else {
373
+ holdSet.add(todoId);
374
+ reasons[todoId] = 'carry_over_unprovable';
375
+ }
376
+ }
377
+ for (const todoId of closure) {
378
+ if (!holdSet.has(todoId) && !continueSet.has(todoId)) {
379
+ holdSet.add(todoId);
380
+ reasons[todoId] = 'affected_closure';
381
+ }
382
+ }
383
+
384
+ return {
385
+ finding: structuredClone(finding),
386
+ frozen_prefix_sequence: freezeSequence,
387
+ hold_set: sorted(holdSet),
388
+ continue_set: sorted(continueSet),
389
+ reasons,
390
+ };
391
+ }
392
+
393
+ /**
394
+ * receipt受理裁定をevent prefixから再計算する(ADR 0044 Decision 7.4)。
395
+ * 「rebind前」「rebind後」は生成時刻でなくevent sequenceで判定する。
396
+ * freeze後のvN epoch receiptはwitness bindingの有無によらずstale_contextで
397
+ * rejectし、frozen prefix内のpending receiptはwitness bindingがある場合だけ
398
+ * 受理する。証明できない受理はすべてrejectへ倒す(fail closed)。
399
+ */
400
+ const RECEIPT_BINDING_FIELDS = Object.freeze([
401
+ 'executor_handle',
402
+ 'worktree_id',
403
+ 'base_sha',
404
+ 'packet_digest',
405
+ 'checkpoint_digest',
406
+ ]);
407
+
408
+ export function recomputeReceiptDecisions(options = {}) {
409
+ const { plan, events } = options;
410
+ requirePlan(plan);
411
+ const state = projectRuntimeState({ events });
412
+ // freezeはresumeで消えない永続境界として扱う。resume後もvN epoch receiptの
413
+ // stale判定は最初のfreeze境界に対して行う(受理へ反転させない)。
414
+ // 境界は検証対象planのepochで発生したfreezeへscopeする: vN+1 epochの
415
+ // receiptをvNのfreezeで塞がない(rebind後のvN+1 receipt受理、RC3-G)。
416
+ const freezes = events
417
+ .filter((event) => event.kind === 'intake_frozen' && event.plan_epoch === plan.plan_epoch)
418
+ .map((event) => event.sequence)
419
+ .sort((left, right) => left - right);
420
+ const freezeBoundary = freezes.length === 0 ? null : freezes[0];
421
+
422
+ const seenReceiptIds = new Set();
423
+ const decisions = state.receipts.map((receipt) => {
424
+ const base = {
425
+ receipt_id: receipt.receipt_id,
426
+ todo_id: receipt.todo_id,
427
+ sequence: receipt.sequence,
428
+ };
429
+ const reject = (detail) => (
430
+ { ...base, decision: 'rejected', reason: 'stale_context', detail }
431
+ );
432
+
433
+ // receipt_idの再利用は帰属の一意性を壊すためreject(先着だけを裁定対象にする)。
434
+ if (seenReceiptIds.has(receipt.receipt_id)) {
435
+ return reject('duplicate_receipt_id');
436
+ }
437
+ seenReceiptIds.add(receipt.receipt_id);
438
+
439
+ // 帰属照合の基準はdispatch記録であり、executor自己申告ではない(Decision 7.4)。
440
+ const payload = receipt.payload ?? {};
441
+ if (RECEIPT_BINDING_FIELDS.some((field) => typeof payload[field] !== 'string')) {
442
+ return reject('binding_missing');
443
+ }
444
+ // dispatch記録は「receipt記録時点までの最後のdispatch」を使う(裁定時点の
445
+ // prefix意味論。全投影の最後勝ちにすると、後続redispatchが過去receiptの
446
+ // 帰属先を書き換えてproducer裁定とdivergeする。RC3-J P1採用)。
447
+ const dispatchEventForReceipt = events.findLast((event) => (
448
+ event.kind === 'executor_dispatched'
449
+ && event.subject?.kind === 'todo'
450
+ && event.subject.ref === receipt.todo_id
451
+ && event.sequence < receipt.sequence
452
+ ));
453
+ const dispatch = dispatchEventForReceipt === undefined
454
+ ? undefined
455
+ : { sequence: dispatchEventForReceipt.sequence, payload: dispatchEventForReceipt.payload };
456
+ if (dispatch === undefined) {
457
+ return reject('not_dispatched');
458
+ }
459
+ const dispatchPayload = dispatch.payload ?? {};
460
+ if (payload.executor_handle !== dispatchPayload.executor_handle
461
+ || payload.worktree_id !== dispatchPayload.worktree_id
462
+ || payload.packet_digest !== dispatchPayload.packet_digest) {
463
+ return reject('binding_mismatch');
464
+ }
465
+ if (typeof plan.base_sha === 'string' && payload.base_sha !== plan.base_sha) {
466
+ return reject('base_mismatch');
467
+ }
468
+ if (receipt.plan_epoch !== plan.plan_epoch) {
469
+ return reject('epoch_mismatch');
470
+ }
471
+ // dispatchが旧epochのTODOが現epoch receiptを名乗る場合はepoch_rebound必須
472
+ // (rebindなしのepoch自称を受理しない。Decision 7.3/7.4)。
473
+ if (dispatchEventForReceipt.plan_epoch !== plan.plan_epoch) {
474
+ const rebound = state.rebinds[receipt.todo_id];
475
+ if (rebound === undefined
476
+ || rebound.payload?.new_plan_epoch !== plan.plan_epoch
477
+ || rebound.sequence >= receipt.sequence) {
478
+ return reject('unrebound_epoch');
479
+ }
480
+ }
481
+ // checkpoint観測が存在するTODOは、receipt以前の最後の観測checkpointとの
482
+ // digest一致とobserved_diff一致を要求(executor自己申告をbinding証拠に
483
+ // しない。RC3-F)。bindingは同一dispatch attemptへscope=最後のdispatch
484
+ // 以降のcheckpointだけが対象(redispatch後のreceiptを旧attemptの
485
+ // checkpointで塞がない。RC3-G)。
486
+ const observedCheckpoints = state.checkpoints.filter((entry) => (
487
+ entry.todo_id === receipt.todo_id
488
+ && entry.sequence > dispatch.sequence
489
+ && entry.sequence < receipt.sequence
490
+ ));
491
+ if (observedCheckpoints.length > 0) {
492
+ const last = observedCheckpoints[observedCheckpoints.length - 1].payload;
493
+ if (typeof last?.checkpoint_digest === 'string'
494
+ && payload.checkpoint_digest !== last.checkpoint_digest) {
495
+ return reject('checkpoint_mismatch');
496
+ }
497
+ if (last?.diff?.entries !== undefined && Array.isArray(last.diff.entries)) {
498
+ const expected = JSON.stringify(last.diff.entries.map(({ path, change }) => ({ path, change })));
499
+ const reported = JSON.stringify((payload.observed_diff ?? []).map(({ path, change }) => ({ path, change })));
500
+ if (expected !== reported) {
501
+ return reject('checkpoint_mismatch');
502
+ }
503
+ }
504
+ }
505
+ if (receipt.rejected_sequence !== null) {
506
+ return reject('recorded_rejection');
507
+ }
508
+ if (freezeBoundary === null) {
509
+ return { ...base, decision: 'accepted', reason: null, detail: null };
510
+ }
511
+ if (receipt.accepted_sequence !== null && receipt.accepted_sequence <= freezeBoundary) {
512
+ return { ...base, decision: 'accepted', reason: null, detail: null };
513
+ }
514
+ if (receipt.sequence > freezeBoundary) {
515
+ return reject('post_freeze');
516
+ }
517
+ // frozen prefix内のpending receiptは、実証済みwitness documentの
518
+ // receipt_bindingsが当該receiptをbindする場合だけ有効になる(Decision 7.5)。
519
+ const witnessRecord = state.witnesses[receipt.todo_id];
520
+ if (!witnessedForContinue(witnessRecord, receipt.todo_id)) {
521
+ return reject('witness_unproven');
522
+ }
523
+ const bound = witnessRecord.payload.witness.receipt_bindings.some((binding) => (
524
+ binding.receipt_id === receipt.receipt_id
525
+ && binding.recorded_sequence === receipt.sequence
526
+ && binding.within_frozen_prefix === true
527
+ ));
528
+ if (bound) {
529
+ return { ...base, decision: 'accepted', reason: null, detail: null };
530
+ }
531
+ return reject('unbound_receipt');
532
+ });
533
+
534
+ return { decisions };
535
+ }
536
+
537
+ const INVARIANT_DIGEST_FIELDS = Object.freeze([
538
+ 'todo_input',
539
+ 'boundary_manifest',
540
+ 'validator',
541
+ 'context_content',
542
+ ]);
543
+
544
+ /**
545
+ * carry-over witnessのinvariant digestを提供bytesから再計算する
546
+ * (ADR 0044 Decision 7.2・7.5)。1 fieldでも証明不能ならvalid falseとし、
547
+ * reasonsへ具体的なfailureと`carry_over_unprovable`を返す。
548
+ */
549
+ export function verifyCarryOverWitness(options = {}) {
550
+ const { witness, sources } = options;
551
+ const reasons = [];
552
+ if (witness === null || typeof witness !== 'object' || Array.isArray(witness)
553
+ || witness.invariant_digests === null
554
+ || typeof witness.invariant_digests !== 'object') {
555
+ return { valid: false, reasons: ['witness_shape', 'carry_over_unprovable'] };
556
+ }
557
+ if (sources === null || typeof sources !== 'object' || Array.isArray(sources)) {
558
+ return { valid: false, reasons: ['sources_shape', 'carry_over_unprovable'] };
559
+ }
560
+
561
+ if (!Number.isSafeInteger(witness.predecessor_epoch)
562
+ || !Number.isSafeInteger(witness.successor_epoch)
563
+ || witness.successor_epoch <= witness.predecessor_epoch) {
564
+ reasons.push('epoch_ordering');
565
+ }
566
+
567
+ for (const field of INVARIANT_DIGEST_FIELDS) {
568
+ if (sources[field] === undefined) {
569
+ reasons.push(`missing_source:${field}`);
570
+ continue;
571
+ }
572
+ let recomputed = null;
573
+ try {
574
+ recomputed = digestArtifact(sources[field]);
575
+ } catch {
576
+ reasons.push(`source_not_canonical:${field}`);
577
+ continue;
578
+ }
579
+ if (witness.invariant_digests[field] !== recomputed) {
580
+ reasons.push(`invariant_digest_mismatch:${field}`);
581
+ }
582
+ }
583
+
584
+ if (typeof witness.witness_digest === 'string') {
585
+ const projection = {};
586
+ for (const key of Object.keys(witness)) {
587
+ if (key !== 'witness_digest') projection[key] = witness[key];
588
+ }
589
+ let selfDigest = null;
590
+ try {
591
+ selfDigest = digestArtifact(projection);
592
+ } catch {
593
+ selfDigest = null;
594
+ }
595
+ if (witness.witness_digest !== selfDigest) {
596
+ reasons.push('witness_digest_mismatch');
597
+ }
598
+ } else {
599
+ reasons.push('witness_digest_mismatch');
600
+ }
601
+
602
+ if (reasons.length > 0) {
603
+ reasons.push('carry_over_unprovable');
604
+ return { valid: false, reasons };
605
+ }
606
+ return { valid: true, reasons: [] };
607
+ }