@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,594 @@
1
+ import { createHash } from 'node:crypto';
2
+ import path from 'node:path';
3
+
4
+ import {
5
+ canonicalizeArtifact,
6
+ digestArtifact,
7
+ validateTransformArtifact,
8
+ } from './artifact-contracts.mjs';
9
+ import { evaluateRc1Hypothesis } from './rc1-comparison.mjs';
10
+
11
+ const SHA256 = /^[0-9a-f]{64}$/;
12
+ const GIT_SHA1 = /^[0-9a-f]{40}$/;
13
+ const IDENTIFIER = /^[0-9A-Za-z](?:[0-9A-Za-z._-]{0,127})$/;
14
+ const CONTROL_CHARACTER = /[\u0000-\u001f\u007f]/;
15
+ const REQUIRED_BEHAVIOR_PATHS = Object.freeze([
16
+ 'behavior/evidence-envelope.json',
17
+ 'behavior/post-receipt.json',
18
+ 'behavior/pre-receipt.json',
19
+ 'transform/seam.patch',
20
+ 'transform/transform-artifact.json',
21
+ ].sort());
22
+ const RECEIPT_KEYS = Object.freeze([
23
+ 'schema',
24
+ 'role',
25
+ 'base_sha',
26
+ 'oracle_digest',
27
+ 'entrypoint',
28
+ 'export_name',
29
+ 'entrypoint_content_digest',
30
+ 'surface',
31
+ 'surface_digest',
32
+ 'observation',
33
+ 'outcome',
34
+ 'case_results',
35
+ 'receipt_digest',
36
+ ]);
37
+ const ENVELOPE_KEYS = Object.freeze([
38
+ 'schema',
39
+ 'base_sha',
40
+ 'oracle_digest',
41
+ 'pre_receipt_digest',
42
+ 'post_receipt_digest',
43
+ 'pre_surface_digest',
44
+ 'post_surface_digest',
45
+ 'transform_artifact_digest',
46
+ 'patch_digest',
47
+ 'output_snapshot_digest',
48
+ 'envelope_digest',
49
+ ]);
50
+
51
+ function isPlainObject(value) {
52
+ return value !== null
53
+ && typeof value === 'object'
54
+ && !Array.isArray(value)
55
+ && Object.getPrototypeOf(value) === Object.prototype;
56
+ }
57
+
58
+ function exactRecord(value, keys) {
59
+ if (!isPlainObject(value)) return false;
60
+ const actual = Object.keys(value).sort();
61
+ const expected = [...keys].sort();
62
+ return actual.length === expected.length
63
+ && actual.every((key, index) => key === expected[index]);
64
+ }
65
+
66
+ function repoPath(value) {
67
+ return typeof value === 'string'
68
+ && value.length > 0
69
+ && value === value.trim()
70
+ && Buffer.byteLength(value, 'utf8') <= 1_024
71
+ && !CONTROL_CHARACTER.test(value)
72
+ && !path.posix.isAbsolute(value)
73
+ && !value.startsWith('/')
74
+ && !value.endsWith('/')
75
+ && !value.includes('\\')
76
+ && !/^[A-Za-z]:/.test(value)
77
+ && value.split('/').every((segment) => (
78
+ segment !== '' && segment !== '.' && segment !== '..'
79
+ ));
80
+ }
81
+
82
+ function digest(value) {
83
+ return typeof value === 'string' && SHA256.test(value);
84
+ }
85
+
86
+ function sameArray(left, right) {
87
+ return Array.isArray(left)
88
+ && Array.isArray(right)
89
+ && left.length === right.length
90
+ && left.every((entry, index) => entry === right[index]);
91
+ }
92
+
93
+ function uniqueSortedStrings(values) {
94
+ if (!Array.isArray(values) || values.length === 0) return false;
95
+ const sorted = [...values].sort();
96
+ return values.every((value, index) => (
97
+ typeof value === 'string'
98
+ && value === sorted[index]
99
+ && (index === 0 || value !== values[index - 1])
100
+ ));
101
+ }
102
+
103
+ function artifactDigestWithout(value, digestKey) {
104
+ const { [digestKey]: ignored, ...preimage } = value;
105
+ return digestArtifact(preimage);
106
+ }
107
+
108
+ function validateSurface(value) {
109
+ try {
110
+ if (!exactRecord(value, ['schema', 'files'])
111
+ || value.schema !== 'lattice.rc1.behavior_surface_snapshot.v1'
112
+ || !Array.isArray(value.files)
113
+ || value.files.length === 0
114
+ || value.files.length > 128) {
115
+ return false;
116
+ }
117
+ const paths = value.files.map(({ path: filePath }) => filePath);
118
+ if (!uniqueSortedStrings(paths)) return false;
119
+ for (const file of value.files) {
120
+ if (!exactRecord(file, ['path', 'state', 'content_digest'])
121
+ || !repoPath(file.path)
122
+ || (file.state !== 'present' && file.state !== 'absent')
123
+ || (file.state === 'present' && !digest(file.content_digest))
124
+ || (file.state === 'absent' && file.content_digest !== null)) {
125
+ return false;
126
+ }
127
+ }
128
+ canonicalizeArtifact(value);
129
+ return true;
130
+ } catch {
131
+ return false;
132
+ }
133
+ }
134
+
135
+ function validateCaseResult(value) {
136
+ return exactRecord(value, [
137
+ 'id',
138
+ 'outcome',
139
+ 'observed_kind',
140
+ 'expected_digest',
141
+ 'observed_digest',
142
+ ])
143
+ && typeof value.id === 'string'
144
+ && IDENTIFIER.test(value.id)
145
+ && (value.outcome === 'passed' || value.outcome === 'failed')
146
+ && (value.observed_kind === 'return' || value.observed_kind === 'throw')
147
+ && digest(value.expected_digest)
148
+ && digest(value.observed_digest);
149
+ }
150
+
151
+ function validateReceipt(value) {
152
+ if (!exactRecord(value, RECEIPT_KEYS)
153
+ || value.schema !== 'lattice.rc1.black_box_behavior_receipt.v3'
154
+ || (value.role !== 'pre' && value.role !== 'post')
155
+ || !GIT_SHA1.test(value.base_sha)
156
+ || !digest(value.oracle_digest)
157
+ || !repoPath(value.entrypoint)
158
+ || typeof value.export_name !== 'string'
159
+ || !IDENTIFIER.test(value.export_name)
160
+ || !digest(value.entrypoint_content_digest)
161
+ || !validateSurface(value.surface)
162
+ || !digest(value.surface_digest)
163
+ || value.surface_digest !== digestArtifact(value.surface)
164
+ || !exactRecord(value.observation, [
165
+ 'before_surface_digest',
166
+ 'after_surface_digest',
167
+ ])
168
+ || value.observation.before_surface_digest !== value.surface_digest
169
+ || value.observation.after_surface_digest !== value.surface_digest
170
+ || (value.outcome !== 'passed' && value.outcome !== 'failed')
171
+ || !Array.isArray(value.case_results)
172
+ || value.case_results.length === 0
173
+ || value.case_results.length > 64
174
+ || !value.case_results.every(validateCaseResult)
175
+ || new Set(value.case_results.map(({ id }) => id)).size !== value.case_results.length
176
+ || (value.outcome === 'passed') !== value.case_results.every(({ outcome }) => outcome === 'passed')
177
+ || !digest(value.receipt_digest)
178
+ || value.receipt_digest !== artifactDigestWithout(value, 'receipt_digest')) {
179
+ return false;
180
+ }
181
+ const entrypoint = value.surface.files.find(({ path: filePath }) => filePath === value.entrypoint);
182
+ return entrypoint?.state === 'present'
183
+ && entrypoint.content_digest === value.entrypoint_content_digest;
184
+ }
185
+
186
+ /** @param {unknown} value @returns {boolean} */
187
+ export function validateRc1V5BehaviorSurface(value) {
188
+ return validateSurface(value);
189
+ }
190
+
191
+ /** @param {unknown} value @returns {boolean} */
192
+ export function validateRc1V5BehaviorReceipt(value) {
193
+ return validateReceipt(value);
194
+ }
195
+
196
+ function validateEnvelope(value) {
197
+ return exactRecord(value, ENVELOPE_KEYS)
198
+ && value.schema === 'lattice.rc1.behavior_evidence_envelope.v1'
199
+ && GIT_SHA1.test(value.base_sha)
200
+ && [
201
+ value.oracle_digest,
202
+ value.pre_receipt_digest,
203
+ value.post_receipt_digest,
204
+ value.pre_surface_digest,
205
+ value.post_surface_digest,
206
+ value.transform_artifact_digest,
207
+ value.patch_digest,
208
+ value.output_snapshot_digest,
209
+ value.envelope_digest,
210
+ ].every(digest)
211
+ && value.envelope_digest === artifactDigestWithout(value, 'envelope_digest');
212
+ }
213
+
214
+ function surfacePaths(surface) {
215
+ return validateSurface(surface) ? surface.files.map(({ path: filePath }) => filePath) : [];
216
+ }
217
+
218
+ function outputProjection(surface) {
219
+ if (!validateSurface(surface) || surface.files.some(({ state }) => state !== 'present')) {
220
+ return null;
221
+ }
222
+ return {
223
+ files: surface.files.map(({ path: filePath, content_digest: contentDigest }) => ({
224
+ path: filePath,
225
+ content_digest: contentDigest,
226
+ })),
227
+ };
228
+ }
229
+
230
+ function validAcceptedTransform(value) {
231
+ if (!validateTransformArtifact(value)
232
+ || value.status !== 'accepted'
233
+ || !GIT_SHA1.test(value.source?.base_sha)
234
+ || !digest(value.patch?.digest)
235
+ || !digest(value.output?.snapshot_digest)
236
+ || !Array.isArray(value.output?.files)
237
+ || value.output.files.length === 0) {
238
+ return false;
239
+ }
240
+ const paths = value.output.files.map(({ path: filePath }) => filePath);
241
+ return uniqueSortedStrings(paths)
242
+ && value.output.files.every((file) => (
243
+ exactRecord(file, ['path', 'content_digest'])
244
+ && repoPath(file.path)
245
+ && digest(file.content_digest)
246
+ ))
247
+ && value.output.snapshot_digest === digestArtifact({ files: value.output.files });
248
+ }
249
+
250
+ function behaviorBindingChecks(value) {
251
+ const validInput = exactRecord(value, [
252
+ 'pre_receipt',
253
+ 'post_receipt',
254
+ 'envelope',
255
+ 'transform_artifact',
256
+ 'patch_digest',
257
+ ]);
258
+ const pre = validInput ? value.pre_receipt : null;
259
+ const post = validInput ? value.post_receipt : null;
260
+ const envelope = validInput ? value.envelope : null;
261
+ const transform = validInput ? value.transform_artifact : null;
262
+ const patchDigest = validInput ? value.patch_digest : null;
263
+ const preValid = validateReceipt(pre);
264
+ const postValid = validateReceipt(post);
265
+ const envelopeValid = validateEnvelope(envelope);
266
+ const transformValid = validAcceptedTransform(transform);
267
+ const prePaths = preValid ? surfacePaths(pre.surface) : [];
268
+ const postPaths = postValid ? surfacePaths(post.surface) : [];
269
+ const projection = postValid ? outputProjection(post.surface) : null;
270
+ const preSourceBound = preValid
271
+ && transformValid
272
+ && pre.surface_digest === transform.source.code_snapshot_digest;
273
+ const outputBound = transformValid
274
+ && projection !== null
275
+ && sameArray(prePaths, postPaths)
276
+ && sameArray(postPaths, transform.scope.allowed_paths)
277
+ && digestArtifact(projection) === transform.output.snapshot_digest
278
+ && digestArtifact(projection.files) === digestArtifact(transform.output.files);
279
+
280
+ return [
281
+ { id: 'receipt_schema', passed: preValid && postValid },
282
+ {
283
+ id: 'receipt_identity',
284
+ passed: preValid && postValid
285
+ && pre.role === 'pre'
286
+ && post.role === 'post'
287
+ && pre.receipt_digest !== post.receipt_digest,
288
+ },
289
+ {
290
+ id: 'base_binding',
291
+ passed: preValid && postValid && transformValid
292
+ && pre.base_sha === post.base_sha
293
+ && pre.base_sha === transform.source.base_sha,
294
+ },
295
+ { id: 'pre_source_binding', passed: preSourceBound },
296
+ {
297
+ id: 'oracle_binding',
298
+ passed: preValid && postValid
299
+ && pre.oracle_digest === post.oracle_digest
300
+ && pre.entrypoint === post.entrypoint
301
+ && pre.export_name === post.export_name,
302
+ },
303
+ {
304
+ id: 'behavior_outcome',
305
+ passed: preValid && postValid && pre.outcome === 'passed' && post.outcome === 'passed',
306
+ },
307
+ {
308
+ id: 'surface_binding',
309
+ passed: preValid && postValid && sameArray(prePaths, postPaths),
310
+ },
311
+ {
312
+ id: 'transform_binding',
313
+ passed: transformValid && envelopeValid
314
+ && envelope.transform_artifact_digest === digestArtifact(transform),
315
+ },
316
+ {
317
+ id: 'patch_binding',
318
+ passed: transformValid && envelopeValid && digest(patchDigest)
319
+ && patchDigest === transform.patch.digest
320
+ && patchDigest === envelope.patch_digest,
321
+ },
322
+ { id: 'post_output_binding', passed: outputBound },
323
+ {
324
+ id: 'envelope_binding',
325
+ passed: preValid && postValid && transformValid && envelopeValid && outputBound
326
+ && envelope.base_sha === pre.base_sha
327
+ && envelope.oracle_digest === pre.oracle_digest
328
+ && envelope.pre_receipt_digest === pre.receipt_digest
329
+ && envelope.post_receipt_digest === post.receipt_digest
330
+ && envelope.pre_surface_digest === pre.surface_digest
331
+ && envelope.post_surface_digest === post.surface_digest
332
+ && envelope.output_snapshot_digest === transform.output.snapshot_digest,
333
+ },
334
+ ];
335
+ }
336
+
337
+ function fail(reason) {
338
+ throw new TypeError(`RC1 v5 behavior evidence契約違反: ${reason}`);
339
+ }
340
+
341
+ /**
342
+ * full pre/post receiptをaccepted transformとpatchへcross-bindする。
343
+ */
344
+ export function compileRc1V5BehaviorEvidence(options = {}) {
345
+ if (!exactRecord(options, [
346
+ 'preReceipt',
347
+ 'postReceipt',
348
+ 'transformArtifact',
349
+ 'patchDigest',
350
+ ])) {
351
+ fail('input shapeが不正');
352
+ }
353
+ const {
354
+ preReceipt,
355
+ postReceipt,
356
+ transformArtifact,
357
+ patchDigest,
358
+ } = options;
359
+ if (!validateReceipt(preReceipt) || !validateReceipt(postReceipt)) fail('full receiptが不正');
360
+ if (!validAcceptedTransform(transformArtifact)) fail('accepted transform artifactが不正');
361
+ if (!digest(patchDigest) || patchDigest !== transformArtifact.patch.digest) {
362
+ fail('patch digestがaccepted transformと不一致');
363
+ }
364
+ const preimage = {
365
+ schema: 'lattice.rc1.behavior_evidence_envelope.v1',
366
+ base_sha: preReceipt.base_sha,
367
+ oracle_digest: preReceipt.oracle_digest,
368
+ pre_receipt_digest: preReceipt.receipt_digest,
369
+ post_receipt_digest: postReceipt.receipt_digest,
370
+ pre_surface_digest: preReceipt.surface_digest,
371
+ post_surface_digest: postReceipt.surface_digest,
372
+ transform_artifact_digest: digestArtifact(transformArtifact),
373
+ patch_digest: patchDigest,
374
+ output_snapshot_digest: transformArtifact.output.snapshot_digest,
375
+ };
376
+ const envelope = { ...preimage, envelope_digest: digestArtifact(preimage) };
377
+ const checks = behaviorBindingChecks({
378
+ pre_receipt: preReceipt,
379
+ post_receipt: postReceipt,
380
+ envelope,
381
+ transform_artifact: transformArtifact,
382
+ patch_digest: patchDigest,
383
+ });
384
+ const failed = checks.filter(({ passed }) => !passed).map(({ id }) => id);
385
+ if (failed.length > 0) fail(`cross-binding failed: ${failed.join(', ')}`);
386
+ return envelope;
387
+ }
388
+
389
+ function failedEvaluation() {
390
+ const checks = [
391
+ 'schema',
392
+ 'compiler_identity',
393
+ 'fixed_inputs',
394
+ 'control_conflict',
395
+ 'test_write_conflicts',
396
+ 'treatment_parallel',
397
+ 'unknowns',
398
+ 'hard_precedence',
399
+ 'negative_state',
400
+ 'behavior_binding',
401
+ 'portable_preimages',
402
+ 'sanitized_diagnostics',
403
+ 'predecessor',
404
+ 'version_barrier',
405
+ 'source_invariant',
406
+ ].map((id) => ({ id, passed: false }));
407
+ return {
408
+ schema: 'lattice.rc1.hypothesis_evaluation.v3',
409
+ supported: false,
410
+ checks,
411
+ failed_conditions: checks.map(({ id }) => id),
412
+ };
413
+ }
414
+
415
+ /**
416
+ * comparison summaryのbehavior自己申告を使わず、underlying artifactからv5仮説を再評価する。
417
+ */
418
+ export function evaluateRc1V5Hypothesis(options = {}) {
419
+ try {
420
+ if (!exactRecord(options, ['comparison', 'behaviorEvidence'])
421
+ || !isPlainObject(options.comparison)) {
422
+ return failedEvaluation();
423
+ }
424
+ const { comparison, behaviorEvidence } = options;
425
+ const behaviorChecks = behaviorBindingChecks(behaviorEvidence);
426
+ const envelope = isPlainObject(behaviorEvidence) ? behaviorEvidence.envelope : null;
427
+ const comparisonBound = comparison.schema === 'lattice.rc1.control_treatment_comparison.v3'
428
+ && exactRecord(comparison.behavior, ['evidence_envelope_digest'])
429
+ && validateEnvelope(envelope)
430
+ && comparison.behavior.evidence_envelope_digest === envelope.envelope_digest;
431
+ const behaviorPassed = comparisonBound && behaviorChecks.every(({ passed }) => passed);
432
+ const projection = structuredClone(comparison);
433
+ projection.schema = 'lattice.rc1.control_treatment_comparison.v2';
434
+ projection.behavior = {
435
+ control: {
436
+ outcome: behaviorPassed ? 'passed' : 'failed',
437
+ oracle_digest: behaviorEvidence?.pre_receipt?.oracle_digest ?? null,
438
+ },
439
+ treatment: {
440
+ outcome: behaviorPassed ? 'passed' : 'failed',
441
+ oracle_digest: behaviorEvidence?.post_receipt?.oracle_digest ?? null,
442
+ },
443
+ };
444
+ const v4 = evaluateRc1Hypothesis(projection);
445
+ const checks = v4.checks.map((check) => {
446
+ if (check.id === 'schema') {
447
+ return { id: 'schema', passed: comparison.schema === 'lattice.rc1.control_treatment_comparison.v3' };
448
+ }
449
+ if (check.id === 'behavior') return { id: 'behavior_binding', passed: behaviorPassed };
450
+ return check;
451
+ });
452
+ const failedConditions = checks.filter(({ passed }) => !passed).map(({ id }) => id);
453
+ return {
454
+ schema: 'lattice.rc1.hypothesis_evaluation.v3',
455
+ supported: failedConditions.length === 0,
456
+ checks,
457
+ failed_conditions: failedConditions,
458
+ };
459
+ } catch {
460
+ return failedEvaluation();
461
+ }
462
+ }
463
+
464
+ function sha256(bytes) {
465
+ return createHash('sha256').update(bytes).digest('hex');
466
+ }
467
+
468
+ function validateManifest(value) {
469
+ try {
470
+ canonicalizeArtifact(value);
471
+ } catch {
472
+ return false;
473
+ }
474
+ if (!exactRecord(value, ['schema', 'base_sha', 'result_digest', 'files'])
475
+ || value.schema !== 'lattice.rc1.artifact_manifest.v5'
476
+ || !GIT_SHA1.test(value.base_sha)
477
+ || !digest(value.result_digest)
478
+ || !Array.isArray(value.files)
479
+ || value.files.length === 0) {
480
+ return false;
481
+ }
482
+ const paths = value.files.map(({ path: filePath }) => filePath);
483
+ return uniqueSortedStrings(paths)
484
+ && value.files.every((file) => (
485
+ exactRecord(file, ['path', 'media_type', 'bytes', 'sha256'])
486
+ && repoPath(file.path)
487
+ && (file.media_type === 'application/json' || file.media_type === 'text/x-diff')
488
+ && file.media_type === (file.path.endsWith('.json')
489
+ ? 'application/json'
490
+ : 'text/x-diff')
491
+ && Number.isSafeInteger(file.bytes)
492
+ && file.bytes >= 0
493
+ && digest(file.sha256)
494
+ ));
495
+ }
496
+
497
+ function payloadMap(payloads) {
498
+ if (!Array.isArray(payloads) || payloads.length === 0) return null;
499
+ const map = new Map();
500
+ for (const payload of payloads) {
501
+ if (!exactRecord(payload, ['path', 'bytes'])
502
+ || !repoPath(payload.path)
503
+ || !Buffer.isBuffer(payload.bytes)
504
+ || map.has(payload.path)) {
505
+ return null;
506
+ }
507
+ map.set(payload.path, payload.bytes);
508
+ }
509
+ return map;
510
+ }
511
+
512
+ function parseJson(bytes) {
513
+ try {
514
+ const value = JSON.parse(bytes.toString('utf8'));
515
+ const serialized = Buffer.from(JSON.stringify(value, null, 2) + '\n', 'utf8');
516
+ return serialized.equals(bytes) ? value : null;
517
+ } catch {
518
+ return null;
519
+ }
520
+ }
521
+
522
+ /** manifestと保存bytesだけからrequired behavior artifactのhashとcross-bindingを検証する。 */
523
+ export function verifyRc1V5BehaviorArtifactSet(options = {}) {
524
+ try {
525
+ const manifest = exactRecord(options, ['manifest', 'payloads']) ? options.manifest : null;
526
+ const payloads = exactRecord(options, ['manifest', 'payloads'])
527
+ ? payloadMap(options.payloads)
528
+ : null;
529
+ const manifestValid = validateManifest(manifest);
530
+ const manifestPaths = manifestValid ? manifest.files.map(({ path: filePath }) => filePath) : [];
531
+ const payloadPaths = payloads ? [...payloads.keys()].sort() : [];
532
+ const requiredPresent = REQUIRED_BEHAVIOR_PATHS.every((requiredPath) => (
533
+ manifestPaths.includes(requiredPath) && payloadPaths.includes(requiredPath)
534
+ ));
535
+ const pathSetsMatch = manifestValid && payloads !== null
536
+ && sameArray(manifestPaths, payloadPaths);
537
+ const bytesMatch = pathSetsMatch && manifest.files.every((file) => {
538
+ const bytes = payloads.get(file.path);
539
+ return bytes.byteLength === file.bytes && sha256(bytes) === file.sha256;
540
+ });
541
+ const pre = bytesMatch ? parseJson(payloads.get('behavior/pre-receipt.json')) : null;
542
+ const post = bytesMatch ? parseJson(payloads.get('behavior/post-receipt.json')) : null;
543
+ const envelope = bytesMatch ? parseJson(payloads.get('behavior/evidence-envelope.json')) : null;
544
+ const transform = bytesMatch ? parseJson(payloads.get('transform/transform-artifact.json')) : null;
545
+ const patch = bytesMatch ? payloads.get('transform/seam.patch') : null;
546
+ const parsed = [pre, post, envelope, transform].every((value) => value !== null)
547
+ && Buffer.isBuffer(patch);
548
+ const bindingChecks = parsed ? behaviorBindingChecks({
549
+ pre_receipt: pre,
550
+ post_receipt: post,
551
+ envelope,
552
+ transform_artifact: transform,
553
+ patch_digest: sha256(patch),
554
+ }) : [];
555
+ const bindingPassed = parsed
556
+ && bindingChecks.length > 0
557
+ && bindingChecks.every(({ passed }) => passed);
558
+ const resultBound = bindingPassed
559
+ && manifest.base_sha === envelope.base_sha
560
+ && manifest.result_digest === envelope.envelope_digest;
561
+ const checks = [
562
+ { id: 'manifest_schema', passed: manifestValid },
563
+ { id: 'required_paths', passed: requiredPresent },
564
+ { id: 'path_bijection', passed: pathSetsMatch },
565
+ { id: 'byte_hashes', passed: bytesMatch },
566
+ { id: 'payload_parsing', passed: parsed },
567
+ { id: 'behavior_binding', passed: bindingPassed },
568
+ { id: 'result_binding', passed: resultBound },
569
+ ];
570
+ const failedConditions = checks.filter(({ passed }) => !passed).map(({ id }) => id);
571
+ return {
572
+ schema: 'lattice.rc1.behavior_artifact_verification.v1',
573
+ valid: failedConditions.length === 0,
574
+ checks,
575
+ failed_conditions: failedConditions,
576
+ };
577
+ } catch {
578
+ const checks = [
579
+ 'manifest_schema',
580
+ 'required_paths',
581
+ 'path_bijection',
582
+ 'byte_hashes',
583
+ 'payload_parsing',
584
+ 'behavior_binding',
585
+ 'result_binding',
586
+ ].map((id) => ({ id, passed: false }));
587
+ return {
588
+ schema: 'lattice.rc1.behavior_artifact_verification.v1',
589
+ valid: false,
590
+ checks,
591
+ failed_conditions: checks.map(({ id }) => id),
592
+ };
593
+ }
594
+ }