@quolu/lattice 0.1.0 → 0.12.2

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 (370) hide show
  1. package/README.md +87 -4
  2. package/bin/lattice-bridge.mjs +87 -0
  3. package/bin/lattice-dashboard.mjs +70 -0
  4. package/bin/lattice-mcp.mjs +9 -9
  5. package/bin/lattice.mjs +61 -8
  6. package/docs/bridge-setup.md +87 -0
  7. package/docs/schemas/lattice.plan_create_input.v1.schema.json +56 -0
  8. package/docs/schemas/lattice.plan_create_input.v2.schema.json +72 -0
  9. package/docs/schemas/lattice.plan_create_input.v3.schema.json +81 -0
  10. package/package.json +19 -7
  11. package/sensor/dist/bin/command-supervision.d.ts +1 -1
  12. package/sensor/dist/bin/command-supervision.js +4 -4
  13. package/sensor/dist/bin/command-supervision.js.map +1 -1
  14. package/sensor/dist/bin/fatal-handler.js +2 -2
  15. package/sensor/dist/bin/fatal-handler.js.map +1 -1
  16. package/sensor/dist/bin/{codegraph.js → lattice-sensor.js} +207 -328
  17. package/sensor/dist/bin/node-version-check.d.ts +7 -5
  18. package/sensor/dist/bin/node-version-check.d.ts.map +1 -1
  19. package/sensor/dist/bin/node-version-check.js +19 -14
  20. package/sensor/dist/bin/node-version-check.js.map +1 -1
  21. package/sensor/dist/context/index.d.ts +1 -1
  22. package/sensor/dist/context/index.js +6 -6
  23. package/sensor/dist/context/index.js.map +1 -1
  24. package/sensor/dist/db/index.d.ts +5 -5
  25. package/sensor/dist/db/index.d.ts.map +1 -1
  26. package/sensor/dist/db/index.js +7 -7
  27. package/sensor/dist/db/index.js.map +1 -1
  28. package/sensor/dist/db/migrations.js +1 -1
  29. package/sensor/dist/db/migrations.js.map +1 -1
  30. package/sensor/dist/db/queries.d.ts +1 -1
  31. package/sensor/dist/db/queries.js +5 -5
  32. package/sensor/dist/db/queries.js.map +1 -1
  33. package/sensor/dist/db/schema.sql +2 -2
  34. package/sensor/dist/db/sqlite-adapter.d.ts +2 -2
  35. package/sensor/dist/db/sqlite-adapter.js +3 -3
  36. package/sensor/dist/db/sqlite-adapter.js.map +1 -1
  37. package/sensor/dist/db/wal-valve.d.ts +1 -1
  38. package/sensor/dist/db/wal-valve.d.ts.map +1 -1
  39. package/sensor/dist/db/wal-valve.js +2 -2
  40. package/sensor/dist/db/wal-valve.js.map +1 -1
  41. package/sensor/dist/directory.d.ts +27 -63
  42. package/sensor/dist/directory.d.ts.map +1 -1
  43. package/sensor/dist/directory.js +78 -134
  44. package/sensor/dist/directory.js.map +1 -1
  45. package/sensor/dist/errors.d.ts +15 -15
  46. package/sensor/dist/errors.d.ts.map +1 -1
  47. package/sensor/dist/errors.js +21 -21
  48. package/sensor/dist/errors.js.map +1 -1
  49. package/sensor/dist/extraction/dynamic-import.d.ts +1 -1
  50. package/sensor/dist/extraction/dynamic-import.js +1 -1
  51. package/sensor/dist/extraction/extraction-version.d.ts +1 -1
  52. package/sensor/dist/extraction/extraction-version.js +1 -1
  53. package/sensor/dist/extraction/generated-detection.d.ts +1 -1
  54. package/sensor/dist/extraction/generated-detection.js +1 -1
  55. package/sensor/dist/extraction/grammars.d.ts +3 -3
  56. package/sensor/dist/extraction/grammars.js +5 -5
  57. package/sensor/dist/extraction/grammars.js.map +1 -1
  58. package/sensor/dist/extraction/index.d.ts +6 -6
  59. package/sensor/dist/extraction/index.js +50 -50
  60. package/sensor/dist/extraction/index.js.map +1 -1
  61. package/sensor/dist/extraction/kernel/decode.d.ts +1 -1
  62. package/sensor/dist/extraction/kernel/decode.js +1 -1
  63. package/sensor/dist/extraction/kernel/index.d.ts +3 -3
  64. package/sensor/dist/extraction/kernel/index.js +6 -6
  65. package/sensor/dist/extraction/kernel/index.js.map +1 -1
  66. package/sensor/dist/extraction/kernel/layout.d.ts +1 -1
  67. package/sensor/dist/extraction/kernel/layout.js +1 -1
  68. package/sensor/dist/extraction/kernel/loader.d.ts +6 -6
  69. package/sensor/dist/extraction/kernel/loader.js +13 -13
  70. package/sensor/dist/extraction/kernel/loader.js.map +1 -1
  71. package/sensor/dist/extraction/languages/cfquery.d.ts +1 -1
  72. package/sensor/dist/extraction/languages/cfquery.js +1 -1
  73. package/sensor/dist/extraction/languages/lua.d.ts +11 -0
  74. package/sensor/dist/extraction/languages/lua.d.ts.map +1 -1
  75. package/sensor/dist/extraction/languages/lua.js +1 -0
  76. package/sensor/dist/extraction/languages/lua.js.map +1 -1
  77. package/sensor/dist/extraction/parse-pool.d.ts +5 -5
  78. package/sensor/dist/extraction/parse-pool.d.ts.map +1 -1
  79. package/sensor/dist/extraction/parse-pool.js +4 -4
  80. package/sensor/dist/extraction/parse-worker.js +1 -1
  81. package/sensor/dist/extraction/parse-worker.js.map +1 -1
  82. package/sensor/dist/extraction/store-writer.d.ts +1 -1
  83. package/sensor/dist/extraction/store-writer.js +1 -1
  84. package/sensor/dist/extraction/svelte-extractor.d.ts +1 -1
  85. package/sensor/dist/extraction/svelte-extractor.js +1 -1
  86. package/sensor/dist/extraction/tree-sitter-helpers.js +1 -1
  87. package/sensor/dist/extraction/tree-sitter.d.ts +2 -2
  88. package/sensor/dist/extraction/tree-sitter.d.ts.map +1 -1
  89. package/sensor/dist/extraction/tree-sitter.js +71 -4
  90. package/sensor/dist/extraction/tree-sitter.js.map +1 -1
  91. package/sensor/dist/extraction/wasm-runtime-flags.d.ts +2 -2
  92. package/sensor/dist/extraction/wasm-runtime-flags.d.ts.map +1 -1
  93. package/sensor/dist/extraction/wasm-runtime-flags.js +5 -5
  94. package/sensor/dist/extraction/wasm-runtime-flags.js.map +1 -1
  95. package/sensor/dist/index.d.ts +36 -36
  96. package/sensor/dist/index.d.ts.map +1 -1
  97. package/sensor/dist/index.js +71 -71
  98. package/sensor/dist/index.js.map +1 -1
  99. package/sensor/dist/mcp/daemon-manager.js +1 -1
  100. package/sensor/dist/mcp/daemon-paths.d.ts +3 -3
  101. package/sensor/dist/mcp/daemon-paths.js +7 -7
  102. package/sensor/dist/mcp/daemon-paths.js.map +1 -1
  103. package/sensor/dist/mcp/daemon-registry.d.ts +2 -2
  104. package/sensor/dist/mcp/daemon-registry.js +5 -5
  105. package/sensor/dist/mcp/daemon.d.ts +7 -7
  106. package/sensor/dist/mcp/daemon.d.ts.map +1 -1
  107. package/sensor/dist/mcp/daemon.js +21 -21
  108. package/sensor/dist/mcp/daemon.js.map +1 -1
  109. package/sensor/dist/mcp/dynamic-boundaries.js +1 -1
  110. package/sensor/dist/mcp/engine.d.ts +9 -9
  111. package/sensor/dist/mcp/engine.d.ts.map +1 -1
  112. package/sensor/dist/mcp/engine.js +44 -44
  113. package/sensor/dist/mcp/engine.js.map +1 -1
  114. package/sensor/dist/mcp/index.d.ts +14 -14
  115. package/sensor/dist/mcp/index.d.ts.map +1 -1
  116. package/sensor/dist/mcp/index.js +41 -41
  117. package/sensor/dist/mcp/index.js.map +1 -1
  118. package/sensor/dist/mcp/liveness-watchdog.js +7 -7
  119. package/sensor/dist/mcp/liveness-watchdog.js.map +1 -1
  120. package/sensor/dist/mcp/ppid-watchdog.d.ts +3 -3
  121. package/sensor/dist/mcp/ppid-watchdog.js +2 -2
  122. package/sensor/dist/mcp/proxy.d.ts.map +1 -1
  123. package/sensor/dist/mcp/proxy.js +37 -37
  124. package/sensor/dist/mcp/proxy.js.map +1 -1
  125. package/sensor/dist/mcp/query-pool.d.ts +3 -3
  126. package/sensor/dist/mcp/query-pool.js +7 -7
  127. package/sensor/dist/mcp/query-pool.js.map +1 -1
  128. package/sensor/dist/mcp/query-worker.d.ts +2 -2
  129. package/sensor/dist/mcp/query-worker.js +7 -7
  130. package/sensor/dist/mcp/query-worker.js.map +1 -1
  131. package/sensor/dist/mcp/server-instructions.d.ts +10 -12
  132. package/sensor/dist/mcp/server-instructions.d.ts.map +1 -1
  133. package/sensor/dist/mcp/server-instructions.js +39 -37
  134. package/sensor/dist/mcp/server-instructions.js.map +1 -1
  135. package/sensor/dist/mcp/session.d.ts +2 -2
  136. package/sensor/dist/mcp/session.js +18 -18
  137. package/sensor/dist/mcp/session.js.map +1 -1
  138. package/sensor/dist/mcp/startup-handshake.d.ts +3 -3
  139. package/sensor/dist/mcp/startup-handshake.d.ts.map +1 -1
  140. package/sensor/dist/mcp/startup-handshake.js +3 -3
  141. package/sensor/dist/mcp/startup-handshake.js.map +1 -1
  142. package/sensor/dist/mcp/tools.d.ts +53 -53
  143. package/sensor/dist/mcp/tools.d.ts.map +1 -1
  144. package/sensor/dist/mcp/tools.js +180 -216
  145. package/sensor/dist/mcp/tools.js.map +1 -1
  146. package/sensor/dist/mcp/transport.d.ts +1 -1
  147. package/sensor/dist/mcp/transport.js +6 -6
  148. package/sensor/dist/mcp/transport.js.map +1 -1
  149. package/sensor/dist/mcp/version.d.ts +2 -2
  150. package/sensor/dist/mcp/version.d.ts.map +1 -1
  151. package/sensor/dist/mcp/version.js +3 -3
  152. package/sensor/dist/mcp/version.js.map +1 -1
  153. package/sensor/dist/project-config.d.ts +6 -6
  154. package/sensor/dist/project-config.d.ts.map +1 -1
  155. package/sensor/dist/project-config.js +10 -10
  156. package/sensor/dist/project-config.js.map +1 -1
  157. package/sensor/dist/resolution/callback-synthesizer.js +4 -4
  158. package/sensor/dist/resolution/callback-synthesizer.js.map +1 -1
  159. package/sensor/dist/resolution/frameworks/drupal.d.ts +3 -3
  160. package/sensor/dist/resolution/frameworks/drupal.js +3 -3
  161. package/sensor/dist/resolution/frameworks/fabric.js +1 -1
  162. package/sensor/dist/resolution/frameworks/fabric.js.map +1 -1
  163. package/sensor/dist/resolution/frameworks/java.js +1 -1
  164. package/sensor/dist/resolution/frameworks/java.js.map +1 -1
  165. package/sensor/dist/resolution/frameworks/svelte.js +1 -1
  166. package/sensor/dist/resolution/frameworks/svelte.js.map +1 -1
  167. package/sensor/dist/resolution/goframe-synthesizer.d.ts +1 -1
  168. package/sensor/dist/resolution/goframe-synthesizer.js +1 -1
  169. package/sensor/dist/resolution/index.d.ts +1 -1
  170. package/sensor/dist/resolution/index.js +9 -9
  171. package/sensor/dist/resolution/index.js.map +1 -1
  172. package/sensor/dist/resolution/name-matcher.js +2 -2
  173. package/sensor/dist/resolution/name-matcher.js.map +1 -1
  174. package/sensor/dist/resolution/resolver-pool.d.ts +2 -2
  175. package/sensor/dist/resolution/resolver-pool.js +4 -4
  176. package/sensor/dist/resolution/resolver-pool.js.map +1 -1
  177. package/sensor/dist/resolution/resolver-worker.js +2 -2
  178. package/sensor/dist/resolution/resolver-worker.js.map +1 -1
  179. package/sensor/dist/resolution/workspace-packages.js +1 -1
  180. package/sensor/dist/resolution/workspace-packages.js.map +1 -1
  181. package/sensor/dist/search/identifier-segments.d.ts +1 -1
  182. package/sensor/dist/search/identifier-segments.js +1 -1
  183. package/sensor/dist/search/query-utils.d.ts +1 -0
  184. package/sensor/dist/search/query-utils.d.ts.map +1 -1
  185. package/sensor/dist/search/query-utils.js +10 -3
  186. package/sensor/dist/search/query-utils.js.map +1 -1
  187. package/sensor/dist/sync/git-hooks.d.ts +9 -9
  188. package/sensor/dist/sync/git-hooks.d.ts.map +1 -1
  189. package/sensor/dist/sync/git-hooks.js +15 -15
  190. package/sensor/dist/sync/git-hooks.js.map +1 -1
  191. package/sensor/dist/sync/watch-policy.d.ts +2 -2
  192. package/sensor/dist/sync/watch-policy.js +5 -5
  193. package/sensor/dist/sync/watch-policy.js.map +1 -1
  194. package/sensor/dist/sync/watcher.d.ts +2 -2
  195. package/sensor/dist/sync/watcher.d.ts.map +1 -1
  196. package/sensor/dist/sync/watcher.js +16 -16
  197. package/sensor/dist/sync/watcher.js.map +1 -1
  198. package/sensor/dist/sync/worktree.d.ts +5 -5
  199. package/sensor/dist/sync/worktree.d.ts.map +1 -1
  200. package/sensor/dist/sync/worktree.js +9 -9
  201. package/sensor/dist/sync/worktree.js.map +1 -1
  202. package/sensor/dist/telemetry/index.d.ts +8 -8
  203. package/sensor/dist/telemetry/index.d.ts.map +1 -1
  204. package/sensor/dist/telemetry/index.js +16 -16
  205. package/sensor/dist/telemetry/index.js.map +1 -1
  206. package/sensor/dist/types.d.ts +2 -2
  207. package/sensor/dist/types.js +1 -1
  208. package/sensor/dist/ui/color.d.ts +2 -2
  209. package/sensor/dist/ui/color.js +2 -2
  210. package/sensor/dist/ui/glyphs.d.ts +3 -3
  211. package/sensor/dist/ui/glyphs.js +7 -7
  212. package/sensor/dist/ui/glyphs.js.map +1 -1
  213. package/sensor/dist/utils.d.ts +4 -4
  214. package/sensor/dist/utils.js +8 -8
  215. package/sensor/dist/utils.js.map +1 -1
  216. package/sensor/package.json +8 -13
  217. package/src/artifact-contracts.mjs +2 -2
  218. package/src/boundary-compiler.mjs +28 -28
  219. package/src/boundary-observation-compiler-v2.mjs +10 -10
  220. package/src/bounded-seam.mjs +144 -0
  221. package/src/bridge-cli.mjs +227 -0
  222. package/src/bridge-config.mjs +346 -0
  223. package/src/bridge-daemon.mjs +328 -0
  224. package/src/bridge-launch-agent.mjs +311 -0
  225. package/src/bridge-server.mjs +309 -0
  226. package/src/cli-help.mjs +163 -0
  227. package/src/control-compiler.mjs +30 -30
  228. package/src/dag-chain.mjs +261 -0
  229. package/src/factory-diagnostics.mjs +8 -7
  230. package/src/hash-chain.mjs +76 -0
  231. package/src/node-version-guard.mjs +5 -4
  232. package/src/project-cli.mjs +392 -0
  233. package/src/project-identity.mjs +71 -0
  234. package/src/rc1-evidence-bundle.mjs +16 -16
  235. package/src/rc1-v4-campaign.mjs +15 -14
  236. package/src/rc1-v5-artifact-set.mjs +2 -2
  237. package/src/rc1-v5-campaign.mjs +15 -14
  238. package/src/rc1-v6-artifact-set.mjs +18 -18
  239. package/src/rc1-v6-campaign.mjs +16 -16
  240. package/src/rc1-v6-causal-binding.mjs +16 -14
  241. package/src/rc1-v6-measurement.mjs +20 -38
  242. package/src/rc2-artifact-set.mjs +45 -40
  243. package/src/rc2-campaign.mjs +48 -66
  244. package/src/rc2-delivery-policy-front-end.mjs +30 -30
  245. package/src/rc2-rc1-transfer-front-end.mjs +5 -5
  246. package/src/rc3-actual-dogfood.mjs +6 -6
  247. package/src/rc3-dogfood-scaffold.mjs +12 -7
  248. package/src/rc3-scripted-campaign.mjs +75 -21
  249. package/src/rc4-stage1-dogfood.mjs +24 -7
  250. package/src/runtime-cli.mjs +2424 -45
  251. package/src/runtime-contracts.mjs +7 -7
  252. package/src/runtime-control-store.mjs +547 -0
  253. package/src/runtime-controller-protocol.mjs +517 -0
  254. package/src/runtime-direct-os-observer.mjs +284 -0
  255. package/src/runtime-engine.mjs +2 -2
  256. package/src/runtime-errors.mjs +1 -1
  257. package/src/runtime-event-store.mjs +15 -43
  258. package/src/runtime-front-end.mjs +26 -26
  259. package/src/runtime-gate-store.mjs +477 -0
  260. package/src/runtime-hold-recompile.mjs +214 -23
  261. package/src/runtime-lifecycle-lock.mjs +290 -0
  262. package/src/runtime-managed-supervisor.mjs +1276 -0
  263. package/src/runtime-multi-epoch-store.mjs +761 -0
  264. package/src/runtime-projection.mjs +62 -0
  265. package/src/seam-transform.mjs +38 -38
  266. package/src/{codegraph-adapter.mjs → sensor-adapter.mjs} +7 -7
  267. package/src/sensor-cli.mjs +107 -0
  268. package/src/sensor-runtime.mjs +48 -0
  269. package/src/timestamp-contract.mjs +8 -0
  270. package/src/todo-chain.mjs +178 -0
  271. package/src/todo-cli.mjs +1032 -0
  272. package/src/todo-contracts.mjs +501 -0
  273. package/src/todo-dashboard-registry.mjs +318 -0
  274. package/src/todo-gantt-html.mjs +416 -0
  275. package/src/todo-gantt-layout.mjs +603 -0
  276. package/src/todo-gantt-live.mjs +269 -0
  277. package/src/todo-gantt-presentation.mjs +217 -0
  278. package/src/todo-gantt-svg.mjs +249 -0
  279. package/src/todo-markdown-renderer.mjs +260 -0
  280. package/src/todo-migration.mjs +260 -0
  281. package/src/todo-narrative-anchor.mjs +130 -0
  282. package/src/todo-revision.mjs +425 -0
  283. package/src/todo-status.mjs +340 -0
  284. package/src/todo-store.mjs +3451 -0
  285. package/src/treatment-compiler.mjs +28 -28
  286. package/src/treatment-runner.mjs +42 -44
  287. package/sensor/dist/bin/codegraph.d.ts +0 -26
  288. package/sensor/dist/bin/codegraph.d.ts.map +0 -1
  289. package/sensor/dist/bin/codegraph.js.map +0 -1
  290. package/sensor/dist/bin/uninstall.d.ts +0 -14
  291. package/sensor/dist/bin/uninstall.d.ts.map +0 -1
  292. package/sensor/dist/bin/uninstall.js +0 -36
  293. package/sensor/dist/bin/uninstall.js.map +0 -1
  294. package/sensor/dist/installer/beta-signup.d.ts +0 -54
  295. package/sensor/dist/installer/beta-signup.d.ts.map +0 -1
  296. package/sensor/dist/installer/beta-signup.js +0 -178
  297. package/sensor/dist/installer/beta-signup.js.map +0 -1
  298. package/sensor/dist/installer/config-writer.d.ts +0 -28
  299. package/sensor/dist/installer/config-writer.d.ts.map +0 -1
  300. package/sensor/dist/installer/config-writer.js +0 -91
  301. package/sensor/dist/installer/config-writer.js.map +0 -1
  302. package/sensor/dist/installer/index.d.ts +0 -142
  303. package/sensor/dist/installer/index.d.ts.map +0 -1
  304. package/sensor/dist/installer/index.js +0 -622
  305. package/sensor/dist/installer/index.js.map +0 -1
  306. package/sensor/dist/installer/instructions-template.d.ts +0 -41
  307. package/sensor/dist/installer/instructions-template.d.ts.map +0 -1
  308. package/sensor/dist/installer/instructions-template.js +0 -53
  309. package/sensor/dist/installer/instructions-template.js.map +0 -1
  310. package/sensor/dist/installer/targets/antigravity.d.ts +0 -57
  311. package/sensor/dist/installer/targets/antigravity.d.ts.map +0 -1
  312. package/sensor/dist/installer/targets/antigravity.js +0 -308
  313. package/sensor/dist/installer/targets/antigravity.js.map +0 -1
  314. package/sensor/dist/installer/targets/claude.d.ts +0 -62
  315. package/sensor/dist/installer/targets/claude.d.ts.map +0 -1
  316. package/sensor/dist/installer/targets/claude.js +0 -454
  317. package/sensor/dist/installer/targets/claude.js.map +0 -1
  318. package/sensor/dist/installer/targets/codex.d.ts +0 -18
  319. package/sensor/dist/installer/targets/codex.d.ts.map +0 -1
  320. package/sensor/dist/installer/targets/codex.js +0 -185
  321. package/sensor/dist/installer/targets/codex.js.map +0 -1
  322. package/sensor/dist/installer/targets/cursor.d.ts +0 -35
  323. package/sensor/dist/installer/targets/cursor.d.ts.map +0 -1
  324. package/sensor/dist/installer/targets/cursor.js +0 -254
  325. package/sensor/dist/installer/targets/cursor.js.map +0 -1
  326. package/sensor/dist/installer/targets/gemini.d.ts +0 -26
  327. package/sensor/dist/installer/targets/gemini.d.ts.map +0 -1
  328. package/sensor/dist/installer/targets/gemini.js +0 -165
  329. package/sensor/dist/installer/targets/gemini.js.map +0 -1
  330. package/sensor/dist/installer/targets/hermes.d.ts +0 -18
  331. package/sensor/dist/installer/targets/hermes.d.ts.map +0 -1
  332. package/sensor/dist/installer/targets/hermes.js +0 -359
  333. package/sensor/dist/installer/targets/hermes.js.map +0 -1
  334. package/sensor/dist/installer/targets/kiro.d.ts +0 -27
  335. package/sensor/dist/installer/targets/kiro.d.ts.map +0 -1
  336. package/sensor/dist/installer/targets/kiro.js +0 -178
  337. package/sensor/dist/installer/targets/kiro.js.map +0 -1
  338. package/sensor/dist/installer/targets/opencode.d.ts +0 -38
  339. package/sensor/dist/installer/targets/opencode.d.ts.map +0 -1
  340. package/sensor/dist/installer/targets/opencode.js +0 -288
  341. package/sensor/dist/installer/targets/opencode.js.map +0 -1
  342. package/sensor/dist/installer/targets/registry.d.ts +0 -35
  343. package/sensor/dist/installer/targets/registry.d.ts.map +0 -1
  344. package/sensor/dist/installer/targets/registry.js +0 -91
  345. package/sensor/dist/installer/targets/registry.js.map +0 -1
  346. package/sensor/dist/installer/targets/shared.d.ts +0 -101
  347. package/sensor/dist/installer/targets/shared.d.ts.map +0 -1
  348. package/sensor/dist/installer/targets/shared.js +0 -264
  349. package/sensor/dist/installer/targets/shared.js.map +0 -1
  350. package/sensor/dist/installer/targets/toml.d.ts +0 -52
  351. package/sensor/dist/installer/targets/toml.d.ts.map +0 -1
  352. package/sensor/dist/installer/targets/toml.js +0 -147
  353. package/sensor/dist/installer/targets/toml.js.map +0 -1
  354. package/sensor/dist/installer/targets/types.d.ts +0 -108
  355. package/sensor/dist/installer/targets/types.d.ts.map +0 -1
  356. package/sensor/dist/installer/targets/types.js +0 -16
  357. package/sensor/dist/installer/targets/types.js.map +0 -1
  358. package/sensor/dist/upgrade/index.d.ts +0 -171
  359. package/sensor/dist/upgrade/index.d.ts.map +0 -1
  360. package/sensor/dist/upgrade/index.js +0 -659
  361. package/sensor/dist/upgrade/index.js.map +0 -1
  362. package/sensor/dist/upgrade/remove-binary.d.ts +0 -87
  363. package/sensor/dist/upgrade/remove-binary.d.ts.map +0 -1
  364. package/sensor/dist/upgrade/remove-binary.js +0 -289
  365. package/sensor/dist/upgrade/remove-binary.js.map +0 -1
  366. package/sensor/dist/upgrade/update-check.d.ts +0 -92
  367. package/sensor/dist/upgrade/update-check.d.ts.map +0 -1
  368. package/sensor/dist/upgrade/update-check.js +0 -258
  369. package/sensor/dist/upgrade/update-check.js.map +0 -1
  370. package/src/bootstrap.mjs +0 -88
@@ -88,9 +88,9 @@ const SYNC_RECONCILE_YIELD_INTERVAL = 1000;
88
88
  * Maximum time (ms) to wait for a single file to parse in the worker thread.
89
89
  * If tree-sitter hangs or WASM runs out of memory, this prevents the entire
90
90
  * indexing run from freezing. The worker is restarted after a (hard) timeout.
91
- * Env-overridable via CODEGRAPH_PARSE_TIMEOUT_MS for slow storage (#1231).
91
+ * Env-overridable via LATTICE_SENSOR_PARSE_TIMEOUT_MS for slow storage (#1231).
92
92
  */
93
- const PARSE_TIMEOUT_MS = (0, parse_pool_1.resolveParseTimeoutMs)(process.env.CODEGRAPH_PARSE_TIMEOUT_MS);
93
+ const PARSE_TIMEOUT_MS = (0, parse_pool_1.resolveParseTimeoutMs)(process.env.LATTICE_SENSOR_PARSE_TIMEOUT_MS);
94
94
  /**
95
95
  * Number of files to parse before recycling the worker thread.
96
96
  * WASM linear memory can grow but NEVER shrink (WebAssembly spec limitation).
@@ -113,7 +113,7 @@ function hashContent(content) {
113
113
  const MAX_FILE_SIZE = 1024 * 1024;
114
114
  /**
115
115
  * Directory names that are dependency, build, cache, or tooling output across the
116
- * languages/frameworks CodeGraph supports — curated from the canonical
116
+ * languages/frameworks LatticeSensor supports — curated from the canonical
117
117
  * github/gitignore templates. Excluded by default so the graph reflects your code,
118
118
  * not third-party noise, without requiring a `.gitignore` (issue #407). The
119
119
  * exclusion applies uniformly (git or not, tracked or not); the only opt-in is an
@@ -122,7 +122,7 @@ const MAX_FILE_SIZE = 1024 * 1024;
122
122
  * `Library`) are deliberately NOT listed, to avoid ever hiding real source.
123
123
  *
124
124
  * Only dirs that actually contain *indexable source* (or are enormous) earn a slot
125
- * — IDE/state dirs like `.idea`/`.vs` are omitted because CodeGraph indexes only
125
+ * — IDE/state dirs like `.idea`/`.vs` are omitted because LatticeSensor indexes only
126
126
  * recognized source extensions, so they produce no symbols regardless.
127
127
  */
128
128
  const DEFAULT_IGNORE_DIRS = new Set([
@@ -169,7 +169,7 @@ const DEFAULT_IGNORE_DIRS = new Set([
169
169
  * version-qualified (`values-es`, `drawable-hdpi`, `layout-v21`, …). None of it
170
170
  * yields an extractable code symbol, yet on an Android app it DOMINATES the tree
171
171
  * (one report: 26k XML files = 97% of the project, 0 symbols), bloating the DB,
172
- * slowing indexing, and skewing both the file count and `codegraph_explore`
172
+ * slowing indexing, and skewing both the file count and `lattice_sensor_explore`
173
173
  * results (#1047). So these are excluded by default. The structure is
174
174
  * self-identifying — a non-Android project has no `res/layout/` etc., so it's
175
175
  * untouched — and the only XML that DOES produce symbols (MyBatis mappers) lives
@@ -237,7 +237,7 @@ function readGitignorePatterns(giPath) {
237
237
  // Fast path: one `.ignores()` call forces the library to compile EVERY rule,
238
238
  // so if it doesn't throw, the whole file is safe to use verbatim.
239
239
  try {
240
- (0, ignore_1.default)().add(content).ignores('.codegraph-probe');
240
+ (0, ignore_1.default)().add(content).ignores('.lattice/sensor-probe');
241
241
  return content;
242
242
  }
243
243
  catch {
@@ -247,7 +247,7 @@ function readGitignorePatterns(giPath) {
247
247
  let dropped = 0;
248
248
  for (const line of content.split(/\r?\n/)) {
249
249
  try {
250
- (0, ignore_1.default)().add(line).ignores('.codegraph-probe');
250
+ (0, ignore_1.default)().add(line).ignores('.lattice/sensor-probe');
251
251
  kept.push(line);
252
252
  }
253
253
  catch {
@@ -282,7 +282,7 @@ function defaultsOnlyIgnore() {
282
282
  return (0, ignore_1.default)().add(DEFAULT_IGNORE_PATTERNS);
283
283
  }
284
284
  /**
285
- * Matcher for the project's `codegraph.json` `includeIgnored` patterns — the
285
+ * Matcher for the project's `lattice-sensor.json` `includeIgnored` patterns — the
286
286
  * explicit opt-in to index embedded git repos living inside gitignored
287
287
  * directories (#622, #699). Returns `null` when the project opted in nothing,
288
288
  * which is the zero-config DEFAULT: `.gitignore` is then fully respected and a
@@ -295,7 +295,7 @@ function loadIncludeIgnoredMatcher(rootDir) {
295
295
  return patterns.length > 0 ? (0, ignore_1.default)().add(patterns) : null;
296
296
  }
297
297
  /**
298
- * Matcher for the project's `codegraph.json` `exclude` patterns — paths to keep
298
+ * Matcher for the project's `lattice-sensor.json` `exclude` patterns — paths to keep
299
299
  * OUT of the index even when git-tracked, which `.gitignore` cannot do (#999).
300
300
  * The escape hatch for a committed vendor/theme/SDK directory. Returns `null`
301
301
  * when nothing is excluded (the zero-config default → no overhead). Matched
@@ -308,7 +308,7 @@ function loadExcludeMatcher(rootDir) {
308
308
  return patterns.length > 0 ? (0, ignore_1.default)().add(patterns) : null;
309
309
  }
310
310
  /**
311
- * Matcher for the project's `codegraph.json` `include` patterns — first-party
311
+ * Matcher for the project's `lattice-sensor.json` `include` patterns — first-party
312
312
  * source to force INTO the index even when `.gitignore` drops it (the general
313
313
  * whitelist `includeIgnored` never was — that one only revives *embedded git
314
314
  * repos*). The case it exists for: a project under a second VCS (SVN/Perforce)
@@ -374,7 +374,7 @@ function includeStaticRoots(patterns) {
374
374
  * A file is collected when it MATCHES `include`, is NOT hit by `exclude` (an
375
375
  * explicit exclude always wins), is a recognized source file, and does not live
376
376
  * under a built-in default-ignored dir (`node_modules`, `dist`, …), `.git`, or
377
- * CodeGraph's data dir — those are never resurfaced, mirroring `ScopeIgnore`.
377
+ * LatticeSensor's data dir — those are never resurfaced, mirroring `ScopeIgnore`.
378
378
  * `.gitignore` is deliberately NOT consulted: overriding it is the whole point.
379
379
  */
380
380
  function collectIncludedFiles(rootDir, include, exclude, roots, overrides) {
@@ -424,7 +424,7 @@ function collectIncludedFiles(rootDir, include, exclude, roots, overrides) {
424
424
  return;
425
425
  }
426
426
  for (const entry of entries) {
427
- if (entry.name === '.git' || (0, directory_1.isCodeGraphDataDir)(entry.name))
427
+ if (entry.name === '.git' || (0, directory_1.isLatticeStateDir)(entry.name))
428
428
  continue;
429
429
  const abs = path.join(absDir, entry.name);
430
430
  const rel = (0, utils_1.normalizePath)(path.relative(rootDir, abs));
@@ -449,7 +449,7 @@ function collectIncludedFiles(rootDir, include, exclude, roots, overrides) {
449
449
  return out;
450
450
  }
451
451
  /**
452
- * The included source files (`codegraph.json` `include`) for a scan root, or an
452
+ * The included source files (`lattice-sensor.json` `include`) for a scan root, or an
453
453
  * empty set when nothing is force-included. Centralizes loading the matcher,
454
454
  * roots, exclude, and overrides so both enumeration paths (git and filesystem
455
455
  * walk) add the same files.
@@ -502,7 +502,7 @@ const EMBEDDED_REPO_SEARCH_ENTRIES = 2000;
502
502
  * super-repo merely hides from git; index it (#193, #514).
503
503
  * - A `.git` **file** is a pointer (`gitdir: …`). A git **worktree** points into
504
504
  * the host repo's own `.git/worktrees/<name>`, so it is a second working view
505
- * of a repo CodeGraph already indexes — indexing it just duplicates the whole
505
+ * of a repo LatticeSensor already indexes — indexing it just duplicates the whole
506
506
  * graph N times; skip it (#848). A **submodule worktree** points into
507
507
  * `.git/modules/<module>/worktrees/<name>` — same duplication, so skip it too
508
508
  * (#945). A **submodule** checkout points into `.git/modules/<module>` (no
@@ -541,7 +541,7 @@ function classifyGitDir(absDir) {
541
541
  * Find git repositories nested under `absDir` (inclusive), shallow bounded BFS.
542
542
  * Stops descending at each repo root found — contents belong to that repo's own
543
543
  * enumeration. Skips default-ignored dirs (`node_modules` can contain `.git`
544
- * from npm git-dependencies — that never makes it project code) and CodeGraph
544
+ * from npm git-dependencies — that never makes it project code) and LatticeSensor
545
545
  * data dirs. Depth- and entry-capped so a huge ignored tree can't stall the scan.
546
546
  */
547
547
  function findNestedGitRepos(absDir, relPrefix) {
@@ -577,7 +577,7 @@ function findNestedGitRepos(absDir, relPrefix) {
577
577
  for (const entry of entries) {
578
578
  if (!entry.isDirectory())
579
579
  continue;
580
- if (entry.name === '.git' || (0, directory_1.isCodeGraphDataDir)(entry.name))
580
+ if (entry.name === '.git' || (0, directory_1.isLatticeStateDir)(entry.name))
581
581
  continue;
582
582
  const childRel = rel + entry.name + '/';
583
583
  if (defaults.ignores(childRel))
@@ -607,13 +607,13 @@ class ScopeIgnore {
607
607
  defaults = defaultsOnlyIgnore();
608
608
  constructor(rootMatcher, embedded,
609
609
  /**
610
- * Project `codegraph.json` `exclude` patterns (#999), matched against the
610
+ * Project `lattice-sensor.json` `exclude` patterns (#999), matched against the
611
611
  * full root-relative path. Wins over everything else — an explicit user
612
612
  * exclude applies even to tracked files and even inside embedded repos.
613
613
  */
614
614
  exclude = null,
615
615
  /**
616
- * Project `codegraph.json` `include` patterns — first-party source forced
616
+ * Project `lattice-sensor.json` `include` patterns — first-party source forced
617
617
  * INTO the index despite `.gitignore`. When a path matches, it is NOT
618
618
  * ignored (so the watcher watches it), overriding `.gitignore`/`rootMatcher`
619
619
  * — but never `exclude` (checked first) and never a built-in default-ignored
@@ -689,7 +689,7 @@ function buildScopeIgnore(rootDir, embeddedRoots) {
689
689
  * under `node_modules` is never project code; not even an explicit opt-in
690
690
  * revives it (matches `findIgnoredEmbeddedRepos`).
691
691
  * 2. The parent repo's own `.gitignore` covers its path and the project did
692
- * NOT opt that path in via `codegraph.json` `includeIgnored`. The gitignore
692
+ * NOT opt that path in via `lattice-sensor.json` `includeIgnored`. The gitignore
693
693
  * rule is the user's stated intent to keep that path out of scope, exactly
694
694
  * as for an UNtracked embedded repo — respect it by default, opt back in
695
695
  * with `includeIgnored` (#514, #970, #976).
@@ -710,7 +710,7 @@ function gitlinkEmbeddedRepoSkipped(relDir, prefix, defaults, repoIgnore, includ
710
710
  /**
711
711
  * Standalone discovery of every embedded repo root under `rootDir` (relative,
712
712
  * trailing-slashed) — the untracked kind (#193) always, and the gitignored kind
713
- * (#514) only for directories the project opted in via `codegraph.json`
713
+ * (#514) only for directories the project opted in via `lattice-sensor.json`
714
714
  * `includeIgnored` (#622, #699); otherwise `.gitignore` is respected and they
715
715
  * are not discovered (#970, #976). Recursive (an embedded repo can embed further
716
716
  * repos). Returns [] for non-git roots: the filesystem walk handles nested repos
@@ -781,7 +781,7 @@ const UNINDEXED_IGNORED_REPO_HINT_CAP = 100;
781
781
  /**
782
782
  * The INVERSE of the gitignored side of {@link discoverEmbeddedRepoRoots}:
783
783
  * nested git repositories under a gitignored directory that the project has NOT
784
- * opted into via `codegraph.json` `includeIgnored`. These are real repos the
784
+ * opted into via `lattice-sensor.json` `includeIgnored`. These are real repos the
785
785
  * default `init`/`index` deliberately skips because `.gitignore` excludes them
786
786
  * (#970, #976) — most visibly the "super-repo `.gitignore`s its child repos"
787
787
  * layout (#1156), where `init` at the parent correctly indexes ~nothing while
@@ -827,9 +827,9 @@ function findUnindexedIgnoredRepos(rootDir) {
827
827
  * relative to `repoDir`, trailing-slashed.
828
828
  *
829
829
  * OPT-IN ONLY. Walking into a gitignored directory contradicts what every other
830
- * tool (and CodeGraph's own `git ls-files` foundation) does — `.gitignore`
830
+ * tool (and LatticeSensor's own `git ls-files` foundation) does — `.gitignore`
831
831
  * excludes. So this returns `[]` unless the project opted the directory in via
832
- * `codegraph.json` `includeIgnored`; without that, a gitignored dir — including
832
+ * `lattice-sensor.json` `includeIgnored`; without that, a gitignored dir — including
833
833
  * a huge reference/data dir full of nested clones — is left untouched (#970,
834
834
  * #976). When opted in, it restores the super-repo-of-clones behavior (#622,
835
835
  * #699). `prefix` is the scan-root-relative path of `repoDir`, so a pattern like
@@ -876,7 +876,7 @@ function findIgnoredEmbeddedRepos(repoDir, includeIgnored, prefix) {
876
876
  * embedded repo is its own git boundary, so we re-run `git ls-files` inside it.
877
877
  * (See issue #193.) GITIGNORED embedded repos are invisible even to that; they
878
878
  * are discovered separately via `findIgnoredEmbeddedRepos` (#514) but ONLY for
879
- * directories the project opted in through `codegraph.json` `includeIgnored`
879
+ * directories the project opted in through `lattice-sensor.json` `includeIgnored`
880
880
  * (`includeIgnored` here, threaded from the scan root) — by default `.gitignore`
881
881
  * is respected and they stay out (#970, #976). Every embedded repo root (however
882
882
  * found) is recorded in `embeddedRoots` so callers can exempt its files from the
@@ -974,7 +974,7 @@ function collectGitFiles(repoDir, prefix, files, embeddedRoots, includeIgnored =
974
974
  // Embedded repos hidden by THIS repo's ignore rules (`/packages/` in a
975
975
  // super-repo .gitignore) never appear in any listing above. By default they
976
976
  // stay hidden — `.gitignore` is respected (#970, #976). They are recursed into
977
- // only when the project opted the directory in via `codegraph.json`
977
+ // only when the project opted the directory in via `lattice-sensor.json`
978
978
  // `includeIgnored` (#622, #699), which `findIgnoredEmbeddedRepos` enforces.
979
979
  for (const rel of findIgnoredEmbeddedRepos(repoDir, includeIgnored, prefix)) {
980
980
  embeddedRoots?.add((0, utils_1.normalizePath)(prefix + rel));
@@ -1016,7 +1016,7 @@ function getGitVisibleFiles(rootDir) {
1016
1016
  const ig = buildScopeIgnore(rootDir, embeddedRoots);
1017
1017
  const visible = new Set([...files].filter((f) => !ig.ignores(f)));
1018
1018
  // Force-include first-party source the project whitelisted in
1019
- // `codegraph.json` `include`. These are gitignored, so `git ls-files` never
1019
+ // `lattice-sensor.json` `include`. These are gitignored, so `git ls-files` never
1020
1020
  // listed them above — discover them directly off disk and add them. (The
1021
1021
  // common SVN+Git dual-VCS case: source committed to SVN, gitignored out of
1022
1022
  // Git, but still wanted in the graph.)
@@ -1035,17 +1035,17 @@ function getGitVisibleFiles(rootDir) {
1035
1035
  * Recurses into embedded repos — the untracked kind (#193: the parent's status
1036
1036
  * collapses them to an opaque `?? subdir/` entry) always, and the gitignored
1037
1037
  * kind (#514: they never appear in the parent's status at all) only for
1038
- * directories opted in via `codegraph.json` `includeIgnored` (#622, #699) —
1038
+ * directories opted in via `lattice-sensor.json` `includeIgnored` (#622, #699) —
1039
1039
  * running `git status` inside each, so changes in a multi-repo workspace sync
1040
1040
  * without a full rescan. By default a gitignored dir is left alone, matching the
1041
1041
  * full-index scan (#970, #976). Deleting an ENTIRE embedded repo dir is the one
1042
1042
  * case this cannot see (the child status that would report the deletions is gone
1043
- * with it); a full `codegraph index` reconciles that.
1043
+ * with it); a full `lattice sensor index` reconciles that.
1044
1044
  */
1045
1045
  function getGitChangedFiles(rootDir) {
1046
1046
  try {
1047
1047
  const changes = { modified: [], added: [], deleted: [] };
1048
- // Custom extension → language overrides from the project's codegraph.json,
1048
+ // Custom extension → language overrides from the project's lattice-sensor.json,
1049
1049
  // so change detection sees the same custom-extension files the full index does.
1050
1050
  const overrides = (0, project_config_1.loadExtensionOverrides)(rootDir);
1051
1051
  collectGitStatus(rootDir, '', changes, overrides, loadIncludeIgnoredMatcher(rootDir), loadExcludeMatcher(rootDir));
@@ -1062,7 +1062,7 @@ function collectGitStatus(repoDir, prefix, out, overrides, includeIgnored = null
1062
1062
  // status hides neither: it ignores nothing for *tracked* paths, and the
1063
1063
  // built-in defaults aren't gitignore at all. Without this filter a committed
1064
1064
  // vendor/ dir, or a tracked file under a .gitignored dir, surfaces here as a
1065
- // change — so `codegraph status` (which reads getChangedFiles) reports a
1065
+ // change — so `lattice sensor status` (which reads getChangedFiles) reports a
1066
1066
  // pending edit the full index never tracks and `sync` never clears. Matching
1067
1067
  // repo-relative `rel` at each recursion level mirrors getGitVisibleFiles'
1068
1068
  // ScopeIgnore: every embedded repo is judged by ITS OWN rules, never the
@@ -1094,7 +1094,7 @@ function collectGitStatus(repoDir, prefix, out, overrides, includeIgnored = null
1094
1094
  // index — match against the repo-relative path, same as the full scan. (#766)
1095
1095
  if (ig.ignores(rel))
1096
1096
  continue;
1097
- // User `codegraph.json` `exclude` (#999) is project-root-relative, so it's
1097
+ // User `lattice-sensor.json` `exclude` (#999) is project-root-relative, so it's
1098
1098
  // matched against the full path — sync must not re-add a tracked file the
1099
1099
  // full index now keeps out. Deletions above stay unfiltered so a file that
1100
1100
  // WAS indexed before an exclude was added still cleans itself out.
@@ -1129,7 +1129,7 @@ function collectGitStatus(repoDir, prefix, out, overrides, includeIgnored = null
1129
1129
  * projects, falls back to a filesystem walk that parses .gitignore itself.
1130
1130
  */
1131
1131
  function scanDirectory(rootDir, onProgress) {
1132
- // Custom extension → language overrides from the project's codegraph.json.
1132
+ // Custom extension → language overrides from the project's lattice-sensor.json.
1133
1133
  const overrides = (0, project_config_1.loadExtensionOverrides)(rootDir);
1134
1134
  // Fast path: use git to get all visible files (respects .gitignore everywhere)
1135
1135
  const gitFiles = getGitVisibleFiles(rootDir);
@@ -1153,7 +1153,7 @@ function scanDirectory(rootDir, onProgress) {
1153
1153
  * allowing worker threads to receive and render progress messages.
1154
1154
  */
1155
1155
  async function scanDirectoryAsync(rootDir, onProgress) {
1156
- // Custom extension → language overrides from the project's codegraph.json.
1156
+ // Custom extension → language overrides from the project's lattice-sensor.json.
1157
1157
  const overrides = (0, project_config_1.loadExtensionOverrides)(rootDir);
1158
1158
  const gitFiles = getGitVisibleFiles(rootDir);
1159
1159
  if (gitFiles) {
@@ -1181,7 +1181,7 @@ function scanDirectoryWalk(rootDir, onProgress) {
1181
1181
  const files = [];
1182
1182
  let count = 0;
1183
1183
  const visitedDirs = new Set();
1184
- // Custom extension → language overrides from the project's codegraph.json.
1184
+ // Custom extension → language overrides from the project's lattice-sensor.json.
1185
1185
  const overrides = (0, project_config_1.loadExtensionOverrides)(rootDir);
1186
1186
  const loadIgnore = (dir) => {
1187
1187
  const giPath = path.join(dir, '.gitignore');
@@ -1233,9 +1233,9 @@ function scanDirectoryWalk(rootDir, onProgress) {
1233
1233
  return;
1234
1234
  }
1235
1235
  for (const entry of entries) {
1236
- // Never descend into git internals or any CodeGraph data directory
1236
+ // Never descend into git internals or any LatticeSensor data directory
1237
1237
  // (the active one or a sibling another environment created — #636).
1238
- if (entry.name === '.git' || (0, directory_1.isCodeGraphDataDir)(entry.name))
1238
+ if (entry.name === '.git' || (0, directory_1.isLatticeStateDir)(entry.name))
1239
1239
  continue;
1240
1240
  const fullPath = path.join(dir, entry.name);
1241
1241
  const relativePath = (0, utils_1.normalizePath)(path.relative(rootDir, fullPath));
@@ -1278,14 +1278,14 @@ function scanDirectoryWalk(rootDir, onProgress) {
1278
1278
  // Seed a base matcher with the built-in default ignores (merged with the root
1279
1279
  // .gitignore so a negation can override). Nested .gitignores still layer per-dir.
1280
1280
  const baseMatchers = [{ dir: rootDir, ig: buildDefaultIgnore(rootDir) }];
1281
- // Project `codegraph.json` `exclude` patterns (#999), rooted at the project so
1281
+ // Project `lattice-sensor.json` `exclude` patterns (#999), rooted at the project so
1282
1282
  // `isIgnored` matches them against root-relative paths — same coverage the
1283
1283
  // git path gets via ScopeIgnore, for non-git projects.
1284
1284
  const exclude = loadExcludeMatcher(rootDir);
1285
1285
  if (exclude)
1286
1286
  baseMatchers.push({ dir: rootDir, ig: exclude });
1287
1287
  walk(rootDir, baseMatchers);
1288
- // Force-include first-party source whitelisted in `codegraph.json` `include`
1288
+ // Force-include first-party source whitelisted in `lattice-sensor.json` `include`
1289
1289
  // — the walk above honours `.gitignore`, so anything gitignored was dropped;
1290
1290
  // add it back here (deduped). Mirrors the git path's union.
1291
1291
  const included = collectIncludedFilesForRoot(rootDir);
@@ -1436,7 +1436,7 @@ class ExtractionOrchestrator {
1436
1436
  storeWriterOpts) {
1437
1437
  const tGrammar = Date.now();
1438
1438
  await (0, grammars_1.initGrammars)();
1439
- if (process.env.CODEGRAPH_SYNTH_TIMINGS)
1439
+ if (process.env.LATTICE_SENSOR_SYNTH_TIMINGS)
1440
1440
  console.error(`[phase-timing] grammar-init: ${Date.now() - tGrammar}ms`);
1441
1441
  const startTime = Date.now();
1442
1442
  const errors = [];
@@ -1445,7 +1445,7 @@ class ExtractionOrchestrator {
1445
1445
  let filesErrored = 0;
1446
1446
  let totalNodes = 0;
1447
1447
  let totalEdges = 0;
1448
- // Custom extension → language overrides from the project's codegraph.json.
1448
+ // Custom extension → language overrides from the project's lattice-sensor.json.
1449
1449
  // Threaded into language detection so custom-extension files load the right
1450
1450
  // grammar and store under the mapped language.
1451
1451
  const overrides = (0, project_config_1.loadExtensionOverrides)(this.rootDir);
@@ -1470,7 +1470,7 @@ class ExtractionOrchestrator {
1470
1470
  currentFile: file,
1471
1471
  });
1472
1472
  });
1473
- if (process.env.CODEGRAPH_SYNTH_TIMINGS)
1473
+ if (process.env.LATTICE_SENSOR_SYNTH_TIMINGS)
1474
1474
  console.error(`[phase-timing] scan: ${Date.now() - tScan}ms (${files.length} files)`);
1475
1475
  // Detect frameworks once per indexAll run using the scanned file list.
1476
1476
  // Names are passed to each parse call so framework-specific extractors
@@ -1480,7 +1480,7 @@ class ExtractionOrchestrator {
1480
1480
  this.detectedFrameworkNames = null;
1481
1481
  const tFw = Date.now();
1482
1482
  const frameworkNames = this.ensureDetectedFrameworks(files);
1483
- if (process.env.CODEGRAPH_SYNTH_TIMINGS)
1483
+ if (process.env.LATTICE_SENSOR_SYNTH_TIMINGS)
1484
1484
  console.error(`[phase-timing] framework-detect: ${Date.now() - tFw}ms`);
1485
1485
  if (signal?.aborted) {
1486
1486
  return {
@@ -1519,9 +1519,9 @@ class ExtractionOrchestrator {
1519
1519
  const useWorker = fs.existsSync(parseWorkerPath);
1520
1520
  let pool = null;
1521
1521
  if (useWorker) {
1522
- // CODEGRAPH_PARSE_WORKERS: explicit worker count; 1 = the old single-worker
1522
+ // LATTICE_SENSOR_PARSE_WORKERS: explicit worker count; 1 = the old single-worker
1523
1523
  // behaviour (the conservative rollback). Unset → clamp(cores-1, 1, 8).
1524
- const poolSize = (0, parse_pool_1.resolveParsePoolSize)(process.env.CODEGRAPH_PARSE_WORKERS, os.cpus().length);
1524
+ const poolSize = (0, parse_pool_1.resolveParsePoolSize)(process.env.LATTICE_SENSOR_PARSE_WORKERS, os.cpus().length);
1525
1525
  // Read each needed grammar's WASM ONCE here and hand the bytes to every
1526
1526
  // worker, so spawns/respawns load grammars from memory instead of
1527
1527
  // re-reading them from disk (#1231: on an HDD, respawn re-reads amplify
@@ -1552,7 +1552,7 @@ class ExtractionOrchestrator {
1552
1552
  const storeWorkerPath = path.join(__dirname, 'store-worker.js');
1553
1553
  let storeWriter = null;
1554
1554
  if (storeWriterOpts &&
1555
- process.env.CODEGRAPH_NO_STORE_WORKER !== '1' &&
1555
+ process.env.LATTICE_SENSOR_NO_STORE_WORKER !== '1' &&
1556
1556
  fs.existsSync(storeWorkerPath)) {
1557
1557
  // Deliberately NOT awaiting ready(): worker_threads delivers messages in
1558
1558
  // order, so bundles posted while the worker is still booting queue
@@ -1567,7 +1567,7 @@ class ExtractionOrchestrator {
1567
1567
  * Parse one file: on the pool when available (the promise REJECTS on a worker
1568
1568
  * crash/timeout — the caller records it and the retry pass re-attempts), or
1569
1569
  * in-process synchronously as the no-worker fallback. The language is resolved
1570
- * here on the main thread, where the codegraph.json overrides are loaded.
1570
+ * here on the main thread, where the lattice-sensor.json overrides are loaded.
1571
1571
  */
1572
1572
  const parseFile = (filePath, content) => {
1573
1573
  const language = (0, grammars_1.detectLanguage)(filePath, content, overrides);
@@ -1831,7 +1831,7 @@ class ExtractionOrchestrator {
1831
1831
  }
1832
1832
  }
1833
1833
  }
1834
- if (process.env.CODEGRAPH_SYNTH_TIMINGS)
1834
+ if (process.env.LATTICE_SENSOR_SYNTH_TIMINGS)
1835
1835
  console.error(`[phase-timing] parse-loop: ${Date.now() - tParseLoop}ms`);
1836
1836
  if (signal?.aborted || aborted) {
1837
1837
  if (storeWriter)
@@ -2097,7 +2097,7 @@ class ExtractionOrchestrator {
2097
2097
  durationMs: 0,
2098
2098
  };
2099
2099
  }
2100
- // Detect language (honoring the project's codegraph.json extension overrides)
2100
+ // Detect language (honoring the project's lattice-sensor.json extension overrides)
2101
2101
  const language = (0, grammars_1.detectLanguage)(relativePath, content, (0, project_config_1.loadExtensionOverrides)(this.rootDir));
2102
2102
  if (!(0, grammars_1.isLanguageSupported)(language)) {
2103
2103
  return {
@@ -2340,13 +2340,13 @@ class ExtractionOrchestrator {
2340
2340
  // cannot see, because the working tree is clean afterward.
2341
2341
  const tSyncScan = Date.now();
2342
2342
  const currentFiles = await scanDirectoryAsync(this.rootDir);
2343
- if (process.env.CODEGRAPH_SYNTH_TIMINGS)
2343
+ if (process.env.LATTICE_SENSOR_SYNTH_TIMINGS)
2344
2344
  console.error(`[phase-timing] sync-scan: ${Date.now() - tSyncScan}ms (${currentFiles.length} files)`);
2345
2345
  filesChecked = currentFiles.length;
2346
2346
  const currentSet = new Set(currentFiles);
2347
2347
  const tTracked = Date.now();
2348
2348
  const trackedFiles = this.queries.getAllFiles();
2349
- if (process.env.CODEGRAPH_SYNTH_TIMINGS)
2349
+ if (process.env.LATTICE_SENSOR_SYNTH_TIMINGS)
2350
2350
  console.error(`[phase-timing] sync-tracked-load: ${Date.now() - tTracked}ms (${trackedFiles.length} tracked)`);
2351
2351
  const trackedMap = new Map();
2352
2352
  for (const f of trackedFiles) {