@pellux/goodvibes-sdk 0.37.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (555) hide show
  1. package/dist/contracts/artifacts/operator-contract.json +3171 -929
  2. package/dist/daemon.d.ts +2 -0
  3. package/dist/daemon.d.ts.map +1 -1
  4. package/dist/daemon.js +4 -0
  5. package/dist/events/communication.d.ts +21 -1
  6. package/dist/events/communication.d.ts.map +1 -1
  7. package/dist/events/surfaces.d.ts +25 -3
  8. package/dist/events/surfaces.d.ts.map +1 -1
  9. package/dist/events/surfaces.js +22 -1
  10. package/dist/events/workflows.d.ts +7 -6
  11. package/dist/events/workflows.d.ts.map +1 -1
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/platform/agents/archetypes.d.ts.map +1 -1
  15. package/dist/platform/agents/archetypes.js +7 -0
  16. package/dist/platform/agents/index.d.ts +1 -0
  17. package/dist/platform/agents/index.d.ts.map +1 -1
  18. package/dist/platform/agents/index.js +1 -0
  19. package/dist/platform/agents/message-bus-core.d.ts +7 -0
  20. package/dist/platform/agents/message-bus-core.d.ts.map +1 -1
  21. package/dist/platform/agents/message-bus-core.js +2 -1
  22. package/dist/platform/agents/orchestrator-runner.d.ts +50 -1
  23. package/dist/platform/agents/orchestrator-runner.d.ts.map +1 -1
  24. package/dist/platform/agents/orchestrator-runner.js +172 -7
  25. package/dist/platform/agents/orchestrator.d.ts +78 -6
  26. package/dist/platform/agents/orchestrator.d.ts.map +1 -1
  27. package/dist/platform/agents/orchestrator.js +95 -18
  28. package/dist/platform/agents/planner-decomposition-runner.d.ts +38 -0
  29. package/dist/platform/agents/planner-decomposition-runner.d.ts.map +1 -0
  30. package/dist/platform/agents/planner-decomposition-runner.js +113 -0
  31. package/dist/platform/agents/turn-knowledge-injection.d.ts +192 -0
  32. package/dist/platform/agents/turn-knowledge-injection.d.ts.map +1 -0
  33. package/dist/platform/agents/turn-knowledge-injection.js +269 -0
  34. package/dist/platform/agents/worktree.d.ts +126 -8
  35. package/dist/platform/agents/worktree.d.ts.map +1 -1
  36. package/dist/platform/agents/worktree.js +240 -19
  37. package/dist/platform/agents/wrfc-controller.d.ts +46 -0
  38. package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
  39. package/dist/platform/agents/wrfc-controller.js +213 -32
  40. package/dist/platform/agents/wrfc-gate-runtime.d.ts +9 -0
  41. package/dist/platform/agents/wrfc-gate-runtime.d.ts.map +1 -1
  42. package/dist/platform/agents/wrfc-gate-runtime.js +7 -3
  43. package/dist/platform/agents/wrfc-gates.d.ts +1 -1
  44. package/dist/platform/agents/wrfc-gates.d.ts.map +1 -1
  45. package/dist/platform/agents/wrfc-gates.js +7 -1
  46. package/dist/platform/agents/wrfc-types.d.ts +23 -3
  47. package/dist/platform/agents/wrfc-types.d.ts.map +1 -1
  48. package/dist/platform/automation/types.d.ts +9 -1
  49. package/dist/platform/automation/types.d.ts.map +1 -1
  50. package/dist/platform/calendar/calendar-api-shared.d.ts +25 -0
  51. package/dist/platform/calendar/calendar-api-shared.d.ts.map +1 -0
  52. package/dist/platform/calendar/calendar-api-shared.js +100 -0
  53. package/dist/platform/calendar/calendar-connector.d.ts +79 -0
  54. package/dist/platform/calendar/calendar-connector.d.ts.map +1 -0
  55. package/dist/platform/calendar/calendar-connector.js +155 -0
  56. package/dist/platform/calendar/google-calendar-api.d.ts +25 -0
  57. package/dist/platform/calendar/google-calendar-api.d.ts.map +1 -0
  58. package/dist/platform/calendar/google-calendar-api.js +89 -0
  59. package/dist/platform/calendar/http-fetch-adapter.d.ts +25 -0
  60. package/dist/platform/calendar/http-fetch-adapter.d.ts.map +1 -0
  61. package/dist/platform/calendar/http-fetch-adapter.js +25 -0
  62. package/dist/platform/calendar/ics-parser.d.ts +35 -0
  63. package/dist/platform/calendar/ics-parser.d.ts.map +1 -0
  64. package/dist/platform/calendar/ics-parser.js +236 -0
  65. package/dist/platform/calendar/index.d.ts +41 -0
  66. package/dist/platform/calendar/index.d.ts.map +1 -0
  67. package/dist/platform/calendar/index.js +49 -0
  68. package/dist/platform/calendar/merged-calendar-model.d.ts +67 -0
  69. package/dist/platform/calendar/merged-calendar-model.d.ts.map +1 -0
  70. package/dist/platform/calendar/merged-calendar-model.js +181 -0
  71. package/dist/platform/calendar/microsoft-graph-api.d.ts +25 -0
  72. package/dist/platform/calendar/microsoft-graph-api.d.ts.map +1 -0
  73. package/dist/platform/calendar/microsoft-graph-api.js +95 -0
  74. package/dist/platform/calendar/oauth-flow.d.ts +62 -0
  75. package/dist/platform/calendar/oauth-flow.d.ts.map +1 -0
  76. package/dist/platform/calendar/oauth-flow.js +305 -0
  77. package/dist/platform/calendar/oauth-providers.d.ts +43 -0
  78. package/dist/platform/calendar/oauth-providers.d.ts.map +1 -0
  79. package/dist/platform/calendar/oauth-providers.js +120 -0
  80. package/dist/platform/calendar/oauth-token-store.d.ts +72 -0
  81. package/dist/platform/calendar/oauth-token-store.d.ts.map +1 -0
  82. package/dist/platform/calendar/oauth-token-store.js +189 -0
  83. package/dist/platform/calendar/oauth-types.d.ts +274 -0
  84. package/dist/platform/calendar/oauth-types.d.ts.map +1 -0
  85. package/dist/platform/calendar/oauth-types.js +22 -0
  86. package/dist/platform/calendar/rrule.d.ts +39 -0
  87. package/dist/platform/calendar/rrule.d.ts.map +1 -0
  88. package/dist/platform/calendar/rrule.js +261 -0
  89. package/dist/platform/calendar/subscription-store.d.ts +118 -0
  90. package/dist/platform/calendar/subscription-store.d.ts.map +1 -0
  91. package/dist/platform/calendar/subscription-store.js +293 -0
  92. package/dist/platform/calendar/types.d.ts +170 -0
  93. package/dist/platform/calendar/types.d.ts.map +1 -0
  94. package/dist/platform/calendar/types.js +21 -0
  95. package/dist/platform/companion/companion-chat-attachments.d.ts +29 -0
  96. package/dist/platform/companion/companion-chat-attachments.d.ts.map +1 -0
  97. package/dist/platform/companion/companion-chat-attachments.js +121 -0
  98. package/dist/platform/companion/companion-chat-broker-bridge.d.ts +40 -0
  99. package/dist/platform/companion/companion-chat-broker-bridge.d.ts.map +1 -0
  100. package/dist/platform/companion/companion-chat-broker-bridge.js +14 -0
  101. package/dist/platform/companion/companion-chat-broker-sync.d.ts +38 -0
  102. package/dist/platform/companion/companion-chat-broker-sync.d.ts.map +1 -0
  103. package/dist/platform/companion/companion-chat-broker-sync.js +80 -0
  104. package/dist/platform/companion/companion-chat-gc.d.ts +63 -0
  105. package/dist/platform/companion/companion-chat-gc.d.ts.map +1 -0
  106. package/dist/platform/companion/companion-chat-gc.js +38 -0
  107. package/dist/platform/companion/companion-chat-manager.d.ts +67 -20
  108. package/dist/platform/companion/companion-chat-manager.d.ts.map +1 -1
  109. package/dist/platform/companion/companion-chat-manager.js +130 -144
  110. package/dist/platform/companion/companion-chat-persistence.d.ts +9 -1
  111. package/dist/platform/companion/companion-chat-persistence.d.ts.map +1 -1
  112. package/dist/platform/companion/companion-chat-persistence.js +10 -2
  113. package/dist/platform/companion/companion-chat-routes.d.ts +2 -1
  114. package/dist/platform/companion/companion-chat-routes.d.ts.map +1 -1
  115. package/dist/platform/companion/companion-chat-routes.js +37 -4
  116. package/dist/platform/config/credential-status.d.ts +28 -0
  117. package/dist/platform/config/credential-status.d.ts.map +1 -0
  118. package/dist/platform/config/credential-status.js +75 -0
  119. package/dist/platform/config/index.d.ts +25 -0
  120. package/dist/platform/config/index.d.ts.map +1 -1
  121. package/dist/platform/config/index.js +18 -0
  122. package/dist/platform/config/manager.d.ts +18 -0
  123. package/dist/platform/config/manager.d.ts.map +1 -1
  124. package/dist/platform/config/manager.js +36 -2
  125. package/dist/platform/config/migrations.d.ts +48 -0
  126. package/dist/platform/config/migrations.d.ts.map +1 -0
  127. package/dist/platform/config/migrations.js +54 -0
  128. package/dist/platform/config/schema-domain-core.d.ts +10 -1
  129. package/dist/platform/config/schema-domain-core.d.ts.map +1 -1
  130. package/dist/platform/config/schema-domain-core.js +46 -3
  131. package/dist/platform/config/schema-types.d.ts +13 -7
  132. package/dist/platform/config/schema-types.d.ts.map +1 -1
  133. package/dist/platform/config/schema.d.ts.map +1 -1
  134. package/dist/platform/config/schema.js +2 -0
  135. package/dist/platform/control-plane/approval-broker.d.ts +11 -0
  136. package/dist/platform/control-plane/approval-broker.d.ts.map +1 -1
  137. package/dist/platform/control-plane/approval-broker.js +17 -1
  138. package/dist/platform/control-plane/approval-hunk-apply.d.ts +77 -0
  139. package/dist/platform/control-plane/approval-hunk-apply.d.ts.map +1 -0
  140. package/dist/platform/control-plane/approval-hunk-apply.js +80 -0
  141. package/dist/platform/control-plane/gateway-disabled-response.d.ts +20 -0
  142. package/dist/platform/control-plane/gateway-disabled-response.d.ts.map +1 -0
  143. package/dist/platform/control-plane/gateway-disabled-response.js +24 -0
  144. package/dist/platform/control-plane/gateway-scope-enforcement.d.ts +68 -0
  145. package/dist/platform/control-plane/gateway-scope-enforcement.d.ts.map +1 -0
  146. package/dist/platform/control-plane/gateway-scope-enforcement.js +91 -0
  147. package/dist/platform/control-plane/gateway-utils.d.ts +17 -0
  148. package/dist/platform/control-plane/gateway-utils.d.ts.map +1 -1
  149. package/dist/platform/control-plane/gateway-utils.js +30 -0
  150. package/dist/platform/control-plane/gateway.d.ts +12 -2
  151. package/dist/platform/control-plane/gateway.d.ts.map +1 -1
  152. package/dist/platform/control-plane/gateway.js +27 -31
  153. package/dist/platform/control-plane/index.d.ts +6 -1
  154. package/dist/platform/control-plane/index.d.ts.map +1 -1
  155. package/dist/platform/control-plane/index.js +4 -0
  156. package/dist/platform/control-plane/invoke-input-validation.d.ts +56 -0
  157. package/dist/platform/control-plane/invoke-input-validation.d.ts.map +1 -0
  158. package/dist/platform/control-plane/invoke-input-validation.js +163 -0
  159. package/dist/platform/control-plane/method-catalog-admin.d.ts.map +1 -1
  160. package/dist/platform/control-plane/method-catalog-admin.js +12 -1
  161. package/dist/platform/control-plane/method-catalog-calendar.d.ts +16 -0
  162. package/dist/platform/control-plane/method-catalog-calendar.d.ts.map +1 -1
  163. package/dist/platform/control-plane/method-catalog-calendar.js +21 -0
  164. package/dist/platform/control-plane/method-catalog-channels.d.ts.map +1 -1
  165. package/dist/platform/control-plane/method-catalog-channels.js +32 -3
  166. package/dist/platform/control-plane/method-catalog-control-automation.d.ts.map +1 -1
  167. package/dist/platform/control-plane/method-catalog-control-automation.js +19 -34
  168. package/dist/platform/control-plane/method-catalog-control-companion.d.ts +15 -0
  169. package/dist/platform/control-plane/method-catalog-control-companion.d.ts.map +1 -0
  170. package/dist/platform/control-plane/method-catalog-control-companion.js +133 -0
  171. package/dist/platform/control-plane/method-catalog-control-core.d.ts.map +1 -1
  172. package/dist/platform/control-plane/method-catalog-control-core.js +104 -122
  173. package/dist/platform/control-plane/method-catalog-control.d.ts.map +1 -1
  174. package/dist/platform/control-plane/method-catalog-control.js +4 -0
  175. package/dist/platform/control-plane/method-catalog-email.d.ts +17 -0
  176. package/dist/platform/control-plane/method-catalog-email.d.ts.map +1 -1
  177. package/dist/platform/control-plane/method-catalog-email.js +21 -0
  178. package/dist/platform/control-plane/method-catalog-events.d.ts +28 -0
  179. package/dist/platform/control-plane/method-catalog-events.d.ts.map +1 -1
  180. package/dist/platform/control-plane/method-catalog-events.js +74 -1
  181. package/dist/platform/control-plane/method-catalog-fleet.d.ts +24 -0
  182. package/dist/platform/control-plane/method-catalog-fleet.d.ts.map +1 -0
  183. package/dist/platform/control-plane/method-catalog-fleet.js +65 -0
  184. package/dist/platform/control-plane/method-catalog-route-reconcile.d.ts +84 -0
  185. package/dist/platform/control-plane/method-catalog-route-reconcile.d.ts.map +1 -0
  186. package/dist/platform/control-plane/method-catalog-route-reconcile.js +103 -0
  187. package/dist/platform/control-plane/method-catalog-shared.d.ts +29 -0
  188. package/dist/platform/control-plane/method-catalog-shared.d.ts.map +1 -1
  189. package/dist/platform/control-plane/method-catalog.d.ts +9 -0
  190. package/dist/platform/control-plane/method-catalog.d.ts.map +1 -1
  191. package/dist/platform/control-plane/method-catalog.js +32 -3
  192. package/dist/platform/control-plane/operator-contract-schemas-admin.d.ts +8 -0
  193. package/dist/platform/control-plane/operator-contract-schemas-admin.d.ts.map +1 -1
  194. package/dist/platform/control-plane/operator-contract-schemas-admin.js +22 -1
  195. package/dist/platform/control-plane/operator-contract-schemas-fleet.d.ts +18 -0
  196. package/dist/platform/control-plane/operator-contract-schemas-fleet.d.ts.map +1 -0
  197. package/dist/platform/control-plane/operator-contract-schemas-fleet.js +182 -0
  198. package/dist/platform/control-plane/operator-contract-schemas-permissions.d.ts.map +1 -1
  199. package/dist/platform/control-plane/operator-contract-schemas-permissions.js +5 -0
  200. package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts +29 -0
  201. package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts.map +1 -1
  202. package/dist/platform/control-plane/operator-contract-schemas-runtime.js +57 -3
  203. package/dist/platform/control-plane/operator-contract-schemas.d.ts +1 -0
  204. package/dist/platform/control-plane/operator-contract-schemas.d.ts.map +1 -1
  205. package/dist/platform/control-plane/operator-contract-schemas.js +1 -0
  206. package/dist/platform/control-plane/operator-contract.d.ts.map +1 -1
  207. package/dist/platform/control-plane/operator-contract.js +8 -0
  208. package/dist/platform/control-plane/routes/checkpoints.d.ts +39 -0
  209. package/dist/platform/control-plane/routes/checkpoints.d.ts.map +1 -0
  210. package/dist/platform/control-plane/routes/checkpoints.js +166 -0
  211. package/dist/platform/control-plane/routes/fleet.d.ts +53 -0
  212. package/dist/platform/control-plane/routes/fleet.d.ts.map +1 -0
  213. package/dist/platform/control-plane/routes/fleet.js +153 -0
  214. package/dist/platform/control-plane/routes/gateway-verb-error.d.ts +30 -0
  215. package/dist/platform/control-plane/routes/gateway-verb-error.d.ts.map +1 -0
  216. package/dist/platform/control-plane/routes/gateway-verb-error.js +36 -0
  217. package/dist/platform/control-plane/routes/index.d.ts +0 -6
  218. package/dist/platform/control-plane/routes/index.d.ts.map +1 -1
  219. package/dist/platform/control-plane/routes/index.js +5 -5
  220. package/dist/platform/control-plane/routes/invocation-params.d.ts +23 -0
  221. package/dist/platform/control-plane/routes/invocation-params.d.ts.map +1 -0
  222. package/dist/platform/control-plane/routes/invocation-params.js +9 -0
  223. package/dist/platform/control-plane/routes/register-w3-s2.d.ts +26 -0
  224. package/dist/platform/control-plane/routes/register-w3-s2.d.ts.map +1 -0
  225. package/dist/platform/control-plane/routes/register-w3-s2.js +8 -0
  226. package/dist/platform/control-plane/routes/session-search.d.ts +37 -0
  227. package/dist/platform/control-plane/routes/session-search.d.ts.map +1 -0
  228. package/dist/platform/control-plane/routes/session-search.js +113 -0
  229. package/dist/platform/control-plane/session-broker-gc.d.ts +16 -0
  230. package/dist/platform/control-plane/session-broker-gc.d.ts.map +1 -1
  231. package/dist/platform/control-plane/session-broker-gc.js +23 -6
  232. package/dist/platform/control-plane/session-broker-helpers.d.ts +3 -3
  233. package/dist/platform/control-plane/session-broker-helpers.d.ts.map +1 -1
  234. package/dist/platform/control-plane/session-broker-inputs.d.ts +18 -0
  235. package/dist/platform/control-plane/session-broker-inputs.d.ts.map +1 -1
  236. package/dist/platform/control-plane/session-broker-inputs.js +34 -0
  237. package/dist/platform/control-plane/session-broker-sessions.d.ts +102 -3
  238. package/dist/platform/control-plane/session-broker-sessions.d.ts.map +1 -1
  239. package/dist/platform/control-plane/session-broker-sessions.js +179 -5
  240. package/dist/platform/control-plane/session-broker-state.d.ts +20 -1
  241. package/dist/platform/control-plane/session-broker-state.d.ts.map +1 -1
  242. package/dist/platform/control-plane/session-broker-state.js +67 -5
  243. package/dist/platform/control-plane/session-broker.d.ts +51 -38
  244. package/dist/platform/control-plane/session-broker.d.ts.map +1 -1
  245. package/dist/platform/control-plane/session-broker.js +183 -75
  246. package/dist/platform/control-plane/session-store-importer.d.ts +57 -0
  247. package/dist/platform/control-plane/session-store-importer.d.ts.map +1 -0
  248. package/dist/platform/control-plane/session-store-importer.js +227 -0
  249. package/dist/platform/control-plane/session-types.d.ts +142 -7
  250. package/dist/platform/control-plane/session-types.d.ts.map +1 -1
  251. package/dist/platform/core/adaptive-planner.d.ts +50 -0
  252. package/dist/platform/core/adaptive-planner.d.ts.map +1 -1
  253. package/dist/platform/core/adaptive-planner.js +49 -0
  254. package/dist/platform/core/execution-plan.d.ts +43 -1
  255. package/dist/platform/core/execution-plan.d.ts.map +1 -1
  256. package/dist/platform/core/execution-plan.js +46 -10
  257. package/dist/platform/core/index.d.ts +2 -0
  258. package/dist/platform/core/index.d.ts.map +1 -1
  259. package/dist/platform/core/index.js +2 -0
  260. package/dist/platform/core/orchestrator-runtime.d.ts +31 -0
  261. package/dist/platform/core/orchestrator-runtime.d.ts.map +1 -1
  262. package/dist/platform/core/orchestrator-tool-runtime.d.ts +7 -0
  263. package/dist/platform/core/orchestrator-tool-runtime.d.ts.map +1 -1
  264. package/dist/platform/core/orchestrator-tool-runtime.js +10 -0
  265. package/dist/platform/core/orchestrator-turn-loop.d.ts +35 -1
  266. package/dist/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
  267. package/dist/platform/core/orchestrator-turn-loop.js +121 -3
  268. package/dist/platform/core/orchestrator.d.ts +67 -0
  269. package/dist/platform/core/orchestrator.d.ts.map +1 -1
  270. package/dist/platform/core/orchestrator.js +89 -1
  271. package/dist/platform/core/plan-decomposition.d.ts +196 -0
  272. package/dist/platform/core/plan-decomposition.d.ts.map +1 -0
  273. package/dist/platform/core/plan-decomposition.js +417 -0
  274. package/dist/platform/core/plan-proposal.d.ts +204 -0
  275. package/dist/platform/core/plan-proposal.d.ts.map +1 -0
  276. package/dist/platform/core/plan-proposal.js +296 -0
  277. package/dist/platform/core/wrfc-routing.d.ts +1 -0
  278. package/dist/platform/core/wrfc-routing.d.ts.map +1 -1
  279. package/dist/platform/core/wrfc-routing.js +51 -1
  280. package/dist/platform/daemon/boot.d.ts +63 -0
  281. package/dist/platform/daemon/boot.d.ts.map +1 -0
  282. package/dist/platform/daemon/boot.js +60 -0
  283. package/dist/platform/daemon/cli.js +2 -1
  284. package/dist/platform/daemon/control-plane.d.ts.map +1 -1
  285. package/dist/platform/daemon/control-plane.js +50 -1
  286. package/dist/platform/daemon/facade-composition.d.ts.map +1 -1
  287. package/dist/platform/daemon/facade-composition.js +6 -0
  288. package/dist/platform/daemon/facade.d.ts +18 -6
  289. package/dist/platform/daemon/facade.d.ts.map +1 -1
  290. package/dist/platform/daemon/facade.js +50 -43
  291. package/dist/platform/daemon/http/router-route-contexts.d.ts +1 -0
  292. package/dist/platform/daemon/http/router-route-contexts.d.ts.map +1 -1
  293. package/dist/platform/daemon/http/router-route-contexts.js +1 -0
  294. package/dist/platform/daemon/http/router-session-broker-adapter.d.ts +13 -0
  295. package/dist/platform/daemon/http/router-session-broker-adapter.d.ts.map +1 -0
  296. package/dist/platform/daemon/http/router-session-broker-adapter.js +27 -0
  297. package/dist/platform/daemon/http/router.d.ts +1 -1
  298. package/dist/platform/daemon/http/router.d.ts.map +1 -1
  299. package/dist/platform/daemon/http/router.js +7 -22
  300. package/dist/platform/daemon/http/runtime-route-types.d.ts +42 -4
  301. package/dist/platform/daemon/http/runtime-route-types.d.ts.map +1 -1
  302. package/dist/platform/daemon/index.d.ts +2 -0
  303. package/dist/platform/daemon/index.d.ts.map +1 -1
  304. package/dist/platform/daemon/index.js +1 -0
  305. package/dist/platform/daemon/service-manager.d.ts +16 -0
  306. package/dist/platform/daemon/service-manager.d.ts.map +1 -1
  307. package/dist/platform/daemon/service-manager.js +79 -15
  308. package/dist/platform/intelligence/tree-sitter/service.d.ts.map +1 -1
  309. package/dist/platform/intelligence/tree-sitter/service.js +16 -2
  310. package/dist/platform/knowledge/browser-history/readers.d.ts.map +1 -1
  311. package/dist/platform/knowledge/browser-history/readers.js +15 -5
  312. package/dist/platform/knowledge/knowledge-api.d.ts +26 -0
  313. package/dist/platform/knowledge/knowledge-api.d.ts.map +1 -1
  314. package/dist/platform/knowledge/knowledge-api.js +11 -0
  315. package/dist/platform/knowledge/project-planning/service.d.ts +14 -1
  316. package/dist/platform/knowledge/project-planning/service.d.ts.map +1 -1
  317. package/dist/platform/knowledge/project-planning/service.js +77 -0
  318. package/dist/platform/knowledge/project-planning/types.d.ts +32 -0
  319. package/dist/platform/knowledge/project-planning/types.d.ts.map +1 -1
  320. package/dist/platform/orchestration/bookkeeping.d.ts +12 -0
  321. package/dist/platform/orchestration/bookkeeping.d.ts.map +1 -0
  322. package/dist/platform/orchestration/bookkeeping.js +91 -0
  323. package/dist/platform/orchestration/budget.d.ts +22 -0
  324. package/dist/platform/orchestration/budget.d.ts.map +1 -0
  325. package/dist/platform/orchestration/budget.js +35 -0
  326. package/dist/platform/orchestration/cancellation.d.ts +31 -0
  327. package/dist/platform/orchestration/cancellation.d.ts.map +1 -0
  328. package/dist/platform/orchestration/cancellation.js +25 -0
  329. package/dist/platform/orchestration/controller-compat.d.ts +46 -0
  330. package/dist/platform/orchestration/controller-compat.d.ts.map +1 -0
  331. package/dist/platform/orchestration/controller-compat.js +27 -0
  332. package/dist/platform/orchestration/dirty-guard.d.ts +32 -0
  333. package/dist/platform/orchestration/dirty-guard.d.ts.map +1 -0
  334. package/dist/platform/orchestration/dirty-guard.js +147 -0
  335. package/dist/platform/orchestration/engine.d.ts +82 -0
  336. package/dist/platform/orchestration/engine.d.ts.map +1 -0
  337. package/dist/platform/orchestration/engine.js +623 -0
  338. package/dist/platform/orchestration/index.d.ts +20 -0
  339. package/dist/platform/orchestration/index.d.ts.map +1 -0
  340. package/dist/platform/orchestration/index.js +11 -0
  341. package/dist/platform/orchestration/persistence.d.ts +24 -0
  342. package/dist/platform/orchestration/persistence.d.ts.map +1 -0
  343. package/dist/platform/orchestration/persistence.js +179 -0
  344. package/dist/platform/orchestration/phase-runner.d.ts +114 -0
  345. package/dist/platform/orchestration/phase-runner.d.ts.map +1 -0
  346. package/dist/platform/orchestration/phase-runner.js +347 -0
  347. package/dist/platform/orchestration/proposal-workstream.d.ts +56 -0
  348. package/dist/platform/orchestration/proposal-workstream.d.ts.map +1 -0
  349. package/dist/platform/orchestration/proposal-workstream.js +76 -0
  350. package/dist/platform/orchestration/scheduler.d.ts +64 -0
  351. package/dist/platform/orchestration/scheduler.d.ts.map +1 -0
  352. package/dist/platform/orchestration/scheduler.js +73 -0
  353. package/dist/platform/orchestration/types.d.ts +535 -0
  354. package/dist/platform/orchestration/types.d.ts.map +1 -0
  355. package/dist/platform/orchestration/types.js +47 -0
  356. package/dist/platform/orchestration/worktree-isolation.d.ts +33 -0
  357. package/dist/platform/orchestration/worktree-isolation.d.ts.map +1 -0
  358. package/dist/platform/orchestration/worktree-isolation.js +248 -0
  359. package/dist/platform/presentation/glyphs.d.ts +91 -0
  360. package/dist/platform/presentation/glyphs.d.ts.map +1 -0
  361. package/dist/platform/presentation/glyphs.js +93 -0
  362. package/dist/platform/presentation/index.d.ts +28 -0
  363. package/dist/platform/presentation/index.d.ts.map +1 -0
  364. package/dist/platform/presentation/index.js +27 -0
  365. package/dist/platform/presentation/thinking-phrases.d.ts +12 -0
  366. package/dist/platform/presentation/thinking-phrases.d.ts.map +1 -0
  367. package/dist/platform/presentation/thinking-phrases.js +32 -0
  368. package/dist/platform/presentation/tones.d.ts +121 -0
  369. package/dist/platform/presentation/tones.d.ts.map +1 -0
  370. package/dist/platform/presentation/tones.js +145 -0
  371. package/dist/platform/presentation/waiting-wording.d.ts +54 -0
  372. package/dist/platform/presentation/waiting-wording.d.ts.map +1 -0
  373. package/dist/platform/presentation/waiting-wording.js +51 -0
  374. package/dist/platform/providers/runtime-snapshot.d.ts.map +1 -1
  375. package/dist/platform/providers/runtime-snapshot.js +12 -2
  376. package/dist/platform/runtime/bootstrap-services.d.ts +62 -2
  377. package/dist/platform/runtime/bootstrap-services.d.ts.map +1 -1
  378. package/dist/platform/runtime/bootstrap-services.js +217 -50
  379. package/dist/platform/runtime/daemon-version-compat.d.ts +39 -0
  380. package/dist/platform/runtime/daemon-version-compat.d.ts.map +1 -0
  381. package/dist/platform/runtime/daemon-version-compat.js +75 -0
  382. package/dist/platform/runtime/detached-daemon-runtime.d.ts +26 -0
  383. package/dist/platform/runtime/detached-daemon-runtime.d.ts.map +1 -0
  384. package/dist/platform/runtime/detached-daemon-runtime.js +49 -0
  385. package/dist/platform/runtime/emitters/communication.d.ts +11 -0
  386. package/dist/platform/runtime/emitters/communication.d.ts.map +1 -1
  387. package/dist/platform/runtime/emitters/communication.js +9 -0
  388. package/dist/platform/runtime/emitters/workflows.d.ts +1 -1
  389. package/dist/platform/runtime/emitters/workflows.d.ts.map +1 -1
  390. package/dist/platform/runtime/events/index.d.ts +13 -0
  391. package/dist/platform/runtime/events/index.d.ts.map +1 -1
  392. package/dist/platform/runtime/events/index.js +13 -0
  393. package/dist/platform/runtime/feature-flags/flags.d.ts.map +1 -1
  394. package/dist/platform/runtime/feature-flags/flags.js +56 -1
  395. package/dist/platform/runtime/fleet/adapters/agent.d.ts +56 -0
  396. package/dist/platform/runtime/fleet/adapters/agent.d.ts.map +1 -0
  397. package/dist/platform/runtime/fleet/adapters/agent.js +143 -0
  398. package/dist/platform/runtime/fleet/adapters/automation.d.ts +30 -0
  399. package/dist/platform/runtime/fleet/adapters/automation.d.ts.map +1 -0
  400. package/dist/platform/runtime/fleet/adapters/automation.js +41 -0
  401. package/dist/platform/runtime/fleet/adapters/background-process.d.ts +12 -0
  402. package/dist/platform/runtime/fleet/adapters/background-process.d.ts.map +1 -0
  403. package/dist/platform/runtime/fleet/adapters/background-process.js +46 -0
  404. package/dist/platform/runtime/fleet/adapters/code-index.d.ts +21 -0
  405. package/dist/platform/runtime/fleet/adapters/code-index.d.ts.map +1 -0
  406. package/dist/platform/runtime/fleet/adapters/code-index.js +44 -0
  407. package/dist/platform/runtime/fleet/adapters/orchestration.d.ts +69 -0
  408. package/dist/platform/runtime/fleet/adapters/orchestration.d.ts.map +1 -0
  409. package/dist/platform/runtime/fleet/adapters/orchestration.js +329 -0
  410. package/dist/platform/runtime/fleet/adapters/schedule.d.ts +14 -0
  411. package/dist/platform/runtime/fleet/adapters/schedule.d.ts.map +1 -0
  412. package/dist/platform/runtime/fleet/adapters/schedule.js +28 -0
  413. package/dist/platform/runtime/fleet/adapters/trigger.d.ts +12 -0
  414. package/dist/platform/runtime/fleet/adapters/trigger.d.ts.map +1 -0
  415. package/dist/platform/runtime/fleet/adapters/trigger.js +22 -0
  416. package/dist/platform/runtime/fleet/adapters/watcher.d.ts +13 -0
  417. package/dist/platform/runtime/fleet/adapters/watcher.d.ts.map +1 -0
  418. package/dist/platform/runtime/fleet/adapters/watcher.js +47 -0
  419. package/dist/platform/runtime/fleet/adapters/workflow.d.ts +11 -0
  420. package/dist/platform/runtime/fleet/adapters/workflow.d.ts.map +1 -0
  421. package/dist/platform/runtime/fleet/adapters/workflow.js +34 -0
  422. package/dist/platform/runtime/fleet/adapters/wrfc.d.ts +35 -0
  423. package/dist/platform/runtime/fleet/adapters/wrfc.d.ts.map +1 -0
  424. package/dist/platform/runtime/fleet/adapters/wrfc.js +275 -0
  425. package/dist/platform/runtime/fleet/index.d.ts +10 -0
  426. package/dist/platform/runtime/fleet/index.d.ts.map +1 -0
  427. package/dist/platform/runtime/fleet/index.js +6 -0
  428. package/dist/platform/runtime/fleet/registry.d.ts +113 -0
  429. package/dist/platform/runtime/fleet/registry.d.ts.map +1 -0
  430. package/dist/platform/runtime/fleet/registry.js +664 -0
  431. package/dist/platform/runtime/fleet/types.d.ts +199 -0
  432. package/dist/platform/runtime/fleet/types.d.ts.map +1 -0
  433. package/dist/platform/runtime/fleet/types.js +2 -0
  434. package/dist/platform/runtime/operator-client.d.ts +20 -2
  435. package/dist/platform/runtime/operator-client.d.ts.map +1 -1
  436. package/dist/platform/runtime/operator-client.js +11 -1
  437. package/dist/platform/runtime/provider-accounts/registry.d.ts.map +1 -1
  438. package/dist/platform/runtime/provider-accounts/registry.js +11 -1
  439. package/dist/platform/runtime/runtime-knowledge-api.d.ts +1 -1
  440. package/dist/platform/runtime/runtime-knowledge-api.d.ts.map +1 -1
  441. package/dist/platform/runtime/runtime-knowledge-api.js +1 -0
  442. package/dist/platform/runtime/services.d.ts +48 -0
  443. package/dist/platform/runtime/services.d.ts.map +1 -1
  444. package/dist/platform/runtime/services.js +95 -2
  445. package/dist/platform/runtime/session-spine/client.d.ts +234 -0
  446. package/dist/platform/runtime/session-spine/client.d.ts.map +1 -0
  447. package/dist/platform/runtime/session-spine/client.js +449 -0
  448. package/dist/platform/runtime/session-spine/index.d.ts +12 -0
  449. package/dist/platform/runtime/session-spine/index.d.ts.map +1 -0
  450. package/dist/platform/runtime/session-spine/index.js +11 -0
  451. package/dist/platform/runtime/session-spine/union-cache.d.ts +225 -0
  452. package/dist/platform/runtime/session-spine/union-cache.d.ts.map +1 -0
  453. package/dist/platform/runtime/session-spine/union-cache.js +333 -0
  454. package/dist/platform/runtime/shell-command-ops.d.ts +3 -1
  455. package/dist/platform/runtime/shell-command-ops.d.ts.map +1 -1
  456. package/dist/platform/runtime/transports/daemon-http-client-validators.d.ts.map +1 -1
  457. package/dist/platform/runtime/transports/daemon-http-client-validators.js +22 -0
  458. package/dist/platform/runtime/transports/daemon-http-client.d.ts.map +1 -1
  459. package/dist/platform/runtime/transports/daemon-http-client.js +25 -2
  460. package/dist/platform/runtime/transports/http-types.d.ts +9 -2
  461. package/dist/platform/runtime/transports/http-types.d.ts.map +1 -1
  462. package/dist/platform/state/canonical-memory.d.ts +95 -0
  463. package/dist/platform/state/canonical-memory.d.ts.map +1 -0
  464. package/dist/platform/state/canonical-memory.js +155 -0
  465. package/dist/platform/state/code-index-chunking.d.ts +49 -0
  466. package/dist/platform/state/code-index-chunking.d.ts.map +1 -0
  467. package/dist/platform/state/code-index-chunking.js +111 -0
  468. package/dist/platform/state/code-index-db.d.ts +53 -0
  469. package/dist/platform/state/code-index-db.d.ts.map +1 -0
  470. package/dist/platform/state/code-index-db.js +101 -0
  471. package/dist/platform/state/code-index-reindex.d.ts +73 -0
  472. package/dist/platform/state/code-index-reindex.d.ts.map +1 -0
  473. package/dist/platform/state/code-index-reindex.js +156 -0
  474. package/dist/platform/state/code-index-store.d.ts +175 -0
  475. package/dist/platform/state/code-index-store.d.ts.map +1 -0
  476. package/dist/platform/state/code-index-store.js +620 -0
  477. package/dist/platform/state/index.d.ts +12 -2
  478. package/dist/platform/state/index.d.ts.map +1 -1
  479. package/dist/platform/state/index.js +6 -1
  480. package/dist/platform/state/knowledge-injection.d.ts +23 -0
  481. package/dist/platform/state/knowledge-injection.d.ts.map +1 -1
  482. package/dist/platform/state/knowledge-injection.js +34 -19
  483. package/dist/platform/state/memory-recall-contract.d.ts +63 -0
  484. package/dist/platform/state/memory-recall-contract.d.ts.map +1 -0
  485. package/dist/platform/state/memory-recall-contract.js +94 -0
  486. package/dist/platform/state/memory-store.d.ts +2 -0
  487. package/dist/platform/state/memory-store.d.ts.map +1 -1
  488. package/dist/platform/state/memory-store.js +4 -0
  489. package/dist/platform/state/memory-vector-store.d.ts +1 -13
  490. package/dist/platform/state/memory-vector-store.d.ts.map +1 -1
  491. package/dist/platform/state/memory-vector-store.js +18 -39
  492. package/dist/platform/state/sqlite-store.d.ts +2 -0
  493. package/dist/platform/state/sqlite-store.d.ts.map +1 -1
  494. package/dist/platform/state/sqlite-store.js +4 -0
  495. package/dist/platform/state/sqlite-vec-loader.d.ts +25 -0
  496. package/dist/platform/state/sqlite-vec-loader.d.ts.map +1 -0
  497. package/dist/platform/state/sqlite-vec-loader.js +43 -0
  498. package/dist/platform/state/vibe-projection.d.ts +67 -0
  499. package/dist/platform/state/vibe-projection.d.ts.map +1 -0
  500. package/dist/platform/state/vibe-projection.js +115 -0
  501. package/dist/platform/tools/agent/index.d.ts.map +1 -1
  502. package/dist/platform/tools/agent/index.js +8 -0
  503. package/dist/platform/tools/agent/manager.d.ts +140 -1
  504. package/dist/platform/tools/agent/manager.d.ts.map +1 -1
  505. package/dist/platform/tools/agent/manager.js +143 -1
  506. package/dist/platform/tools/agent/schema.d.ts +26 -0
  507. package/dist/platform/tools/agent/schema.d.ts.map +1 -1
  508. package/dist/platform/tools/agent/schema.js +2 -2
  509. package/dist/platform/tools/agent/wrfc-batch-policy.d.ts +13 -0
  510. package/dist/platform/tools/agent/wrfc-batch-policy.d.ts.map +1 -1
  511. package/dist/platform/tools/agent/wrfc-batch-policy.js +60 -0
  512. package/dist/platform/tools/exec/runtime.d.ts +10 -0
  513. package/dist/platform/tools/exec/runtime.d.ts.map +1 -1
  514. package/dist/platform/tools/exec/runtime.js +161 -49
  515. package/dist/platform/tools/exec/schema.d.ts +3 -1
  516. package/dist/platform/tools/exec/schema.d.ts.map +1 -1
  517. package/dist/platform/tools/exec/schema.js +2 -1
  518. package/dist/platform/tools/fetch/runtime.d.ts +7 -0
  519. package/dist/platform/tools/fetch/runtime.d.ts.map +1 -1
  520. package/dist/platform/tools/fetch/runtime.js +8 -6
  521. package/dist/platform/tools/index.d.ts +2 -0
  522. package/dist/platform/tools/index.d.ts.map +1 -1
  523. package/dist/platform/tools/index.js +2 -0
  524. package/dist/platform/tools/registry.d.ts +9 -3
  525. package/dist/platform/tools/registry.d.ts.map +1 -1
  526. package/dist/platform/tools/registry.js +9 -3
  527. package/dist/platform/tools/state/index.d.ts +9 -0
  528. package/dist/platform/tools/state/index.d.ts.map +1 -1
  529. package/dist/platform/tools/state/index.js +60 -3
  530. package/dist/platform/types/foundation-contract.d.ts +1 -1
  531. package/dist/platform/types/foundation-contract.d.ts.map +1 -1
  532. package/dist/platform/types/index.d.ts +1 -1
  533. package/dist/platform/types/index.d.ts.map +1 -1
  534. package/dist/platform/types/tools.d.ts +14 -1
  535. package/dist/platform/types/tools.d.ts.map +1 -1
  536. package/dist/platform/version.js +1 -1
  537. package/package.json +29 -9
  538. package/dist/platform/control-plane/routes/automation.d.ts +0 -3
  539. package/dist/platform/control-plane/routes/automation.d.ts.map +0 -1
  540. package/dist/platform/control-plane/routes/automation.js +0 -63
  541. package/dist/platform/control-plane/routes/context.d.ts +0 -2
  542. package/dist/platform/control-plane/routes/context.d.ts.map +0 -1
  543. package/dist/platform/control-plane/routes/context.js +0 -1
  544. package/dist/platform/control-plane/routes/operator.d.ts +0 -8
  545. package/dist/platform/control-plane/routes/operator.d.ts.map +0 -1
  546. package/dist/platform/control-plane/routes/operator.js +0 -415
  547. package/dist/platform/control-plane/routes/remote.d.ts +0 -3
  548. package/dist/platform/control-plane/routes/remote.d.ts.map +0 -1
  549. package/dist/platform/control-plane/routes/remote.js +0 -35
  550. package/dist/platform/control-plane/routes/sessions.d.ts +0 -3
  551. package/dist/platform/control-plane/routes/sessions.d.ts.map +0 -1
  552. package/dist/platform/control-plane/routes/sessions.js +0 -43
  553. package/dist/platform/control-plane/routes/tasks.d.ts +0 -3
  554. package/dist/platform/control-plane/routes/tasks.d.ts.map +0 -1
  555. package/dist/platform/control-plane/routes/tasks.js +0 -22
@@ -0,0 +1,620 @@
1
+ /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
+ /**
3
+ * CodeIndexStore — an incremental, tree-sitter-chunked, embedding-backed index
4
+ * of a repo's source tree (Wave-5, W5.3, Stage A).
5
+ *
6
+ * Deliberately MIRRORS MemoryStore + SqliteVecMemoryIndex (state/memory-store.ts,
7
+ * state/memory-vector-store.ts) rather than reusing them: those classes are
8
+ * hard-keyed to MemoryRecord (schema columns, memoryVectorSourceHash,
9
+ * buildMemoryEmbeddingText, record-shaped search filters). Code chunks are a
10
+ * different record shape entirely, so this module is a parallel, independent
11
+ * implementation that reuses only:
12
+ * - the sqlite-vec native extension loader (sqlite-vec-loader.ts)
13
+ * - MEMORY_VECTOR_DIMS / the shared MemoryEmbeddingProviderRegistry instance,
14
+ * so code and memory embeddings share one provider and one dimensionality.
15
+ * - CodeIntelligence.getSymbols (tree-sitter-backed chunking; the chunking
16
+ * itself lives in code-index-chunking.ts)
17
+ * - the file-walk helpers already shipped for the `find` tool
18
+ * (tools/find/shared.ts: buildGitignoreMatcher, findNestedGitignoreFiles,
19
+ * collectGlobFiles, isBinary, readTextFile) — no new ignore-file parsing
20
+ * or directory-walk logic. Ignore rules: the ROOT .gitignore plus nested
21
+ * .gitignore files (each applied relative to its own directory). Nested
22
+ * coverage is bounded by findNestedGitignoreFiles' own cap (currently the
23
+ * first 5 nested files found, in walk order) — a repo with more nested
24
+ * .gitignore files than that has the excess UNAPPLIED, same as the find
25
+ * tool itself.
26
+ *
27
+ * Storage: a single bun:sqlite database (schema + all table ops live in
28
+ * code-index-db.ts) — `code_chunks` (chunk metadata), `code_vectors` (vec0
29
+ * virtual table), and `code_index_meta` (build provenance: the embedding
30
+ * provider id the index was last fully built with). When the current default
31
+ * embedding provider differs from the stored one, search() refuses to run the
32
+ * vector path — a query embedded in provider-Y space compared against
33
+ * provider-X vectors is meaningless — and degrades to an honestly-labeled
34
+ * lexical match over chunk symbol/path metadata until a rebuild re-embeds
35
+ * (buildFull() detects the mismatch and forces a full re-embed).
36
+ *
37
+ * Incremental reindex is LAZY, never a watcher: a recursive fs.watch over a
38
+ * repo tree is a per-file-descriptor liability and races the agent's own
39
+ * writes. `reindexFile()` re-chunks and re-embeds a single path on demand.
40
+ * `buildFull()` walks the whole tree once; concurrent calls coalesce through a
41
+ * single-flight promise guard, mirroring MemoryStore.rebuildVectorIndexAsync.
42
+ *
43
+ * Lifecycle honesty: `reroot()`/`close()` bump an epoch counter; an in-flight
44
+ * build re-checks the epoch after every await and aborts cleanly when stale
45
+ * (per-file writes are atomic — all of a file's chunks are embedded before any
46
+ * row is written — so an aborted build never writes wrong-rooted chunks into
47
+ * the new database). Aborted builds return stats carrying
48
+ * `abortReason: 'build aborted by reroot'` and never become `lastBuild`.
49
+ *
50
+ * The index never blocks a turn: buildFull() awaits `embedAsync` on a bounded
51
+ * per-file queue with periodic event-loop yields, and every read (`search`,
52
+ * `stats`) returns whatever is currently indexed — it never waits on an
53
+ * in-flight build.
54
+ */
55
+ import { dirname, join, relative, sep } from 'node:path';
56
+ import { mkdirSync, statSync } from 'node:fs';
57
+ import { createRequire } from 'node:module';
58
+ import { loadSqliteVecExtension } from './sqlite-vec-loader.js';
59
+ import { HASHED_MEMORY_EMBEDDING_PROVIDER, MemoryEmbeddingProviderRegistry, normalizeMemoryEmbeddingVector, } from './memory-embeddings.js';
60
+ import { MEMORY_VECTOR_DIMS } from './memory-vector-store.js';
61
+ import { CodeIntelligence } from '../intelligence/facade.js';
62
+ import { chunkFileContent, sha256, } from './code-index-chunking.js';
63
+ import { CHUNK_ROW_COLUMNS, EMBEDDING_PROVIDER_META_KEY, createCodeIndexSchema, countChunksForPath, countIndexedChunks, countIndexedFiles, deleteChunksForPath, getChunkById, getCodeIndexMeta, getFileHash, listIndexedPaths, rowToChunk, setCodeIndexMeta, writeChunk, } from './code-index-db.js';
64
+ import { buildGitignoreMatcher, collectGlobFiles, createFindDiagnostics, findNestedGitignoreFiles, isBinary, readTextFile, } from '../tools/find/shared.js';
65
+ import { logger } from '../utils/logger.js';
66
+ import { summarizeError } from '../utils/error-display.js';
67
+ // bun:sqlite is a Bun-only builtin; a static import makes this module unloadable
68
+ // under Node (breaks the release install-smoke check). Lazily require the ctor so
69
+ // the `bun:` specifier stays off the static graph — only pulled on the Bun-only
70
+ // path that opens a database.
71
+ let bunDatabaseCtor = null;
72
+ function bunSqliteDatabase() {
73
+ return (bunDatabaseCtor ??= createRequire(import.meta.url)('bun:sqlite').Database);
74
+ }
75
+ const DEFAULT_MAX_FILES = 5000;
76
+ const DEFAULT_MAX_FILE_BYTES = 512 * 1024;
77
+ const DEFAULT_MAX_TOTAL_BYTES = 256 * 1024 * 1024;
78
+ const BUILD_ABORTED_BY_REROOT = 'build aborted by reroot';
79
+ function distanceToSimilarity(distance) {
80
+ if (!Number.isFinite(distance))
81
+ return 0;
82
+ return Math.max(0, Math.min(1, 1 - distance / 2));
83
+ }
84
+ function yieldToEventLoop() {
85
+ return new Promise((resolve) => {
86
+ const timer = setTimeout(resolve, 0);
87
+ timer.unref?.();
88
+ });
89
+ }
90
+ function emptySkipReport() {
91
+ return { tooLarge: 0, overFileCap: 0, overTotalBytes: 0, binary: 0, ignoredByGitignore: 0, readErrors: 0, chunkedByWindow: 0 };
92
+ }
93
+ // ---------------------------------------------------------------------------
94
+ // CodeIndexStore
95
+ // ---------------------------------------------------------------------------
96
+ export class CodeIndexStore {
97
+ embeddingRegistry;
98
+ options;
99
+ db = null;
100
+ available = false;
101
+ error;
102
+ building = false;
103
+ buildStartedAtMs = null;
104
+ buildPromise = null;
105
+ lastBuild = null;
106
+ progress = null;
107
+ intelligence;
108
+ intelligenceReadyPromise = null;
109
+ /**
110
+ * Lifecycle generation counter. Bumped by reroot() and close(); an in-flight
111
+ * runBuild() captures the value at start and re-checks it after EVERY await,
112
+ * aborting cleanly when stale so a build started against one root can never
113
+ * write wrong-rooted chunks into a database opened for a different root.
114
+ */
115
+ epoch = 0;
116
+ rootDir;
117
+ dbPath;
118
+ constructor(rootDir, dbPath, embeddingRegistry, options = {}) {
119
+ this.embeddingRegistry = embeddingRegistry;
120
+ this.options = options;
121
+ this.rootDir = rootDir;
122
+ this.dbPath = dbPath;
123
+ this.intelligence = new CodeIntelligence();
124
+ }
125
+ // ── Lifecycle ────────────────────────────────────────────────────────────
126
+ init() {
127
+ if (this.db)
128
+ return;
129
+ try {
130
+ if (this.dbPath !== ':memory:') {
131
+ mkdirSync(dirname(this.dbPath), { recursive: true });
132
+ }
133
+ this.db = new (bunSqliteDatabase())(this.dbPath);
134
+ loadSqliteVecExtension(this.db);
135
+ this.available = true;
136
+ createCodeIndexSchema(this.db);
137
+ }
138
+ catch (err) {
139
+ this.close();
140
+ this.available = false;
141
+ this.error = summarizeError(err);
142
+ logger.warn('Code index unavailable', { backend: 'sqlite-vec', error: this.error });
143
+ }
144
+ }
145
+ close() {
146
+ if (!this.db)
147
+ return;
148
+ this.epoch++;
149
+ this.db.close();
150
+ this.db = null;
151
+ this.available = false;
152
+ }
153
+ /**
154
+ * Re-root the store to a new working directory + db path (workspace swap).
155
+ * Bumps the build epoch (aborting any in-flight build at its next await),
156
+ * closes existing handles, reopens at the new path, and clears in-memory
157
+ * build state. Does NOT re-trigger a build — the caller decides when to
158
+ * call scheduleBuild()/buildFull() again, exactly as it decided to open the
159
+ * store originally.
160
+ */
161
+ async reroot(newRootDir, newDbPath) {
162
+ this.epoch++;
163
+ this.close();
164
+ this.buildPromise = null;
165
+ this.building = false;
166
+ this.buildStartedAtMs = null;
167
+ this.lastBuild = null;
168
+ this.progress = null;
169
+ this.rootDir = newRootDir;
170
+ this.dbPath = newDbPath;
171
+ this.init();
172
+ }
173
+ // ── Status ───────────────────────────────────────────────────────────────
174
+ isBuilding() {
175
+ return this.building;
176
+ }
177
+ buildProgress() {
178
+ return this.building ? this.progress : null;
179
+ }
180
+ /** Wall-clock start time of the in-flight build, or null when idle. */
181
+ buildStartedAt() {
182
+ return this.building ? this.buildStartedAtMs : null;
183
+ }
184
+ /** True unless the only active embedding provider is the deterministic hashed fallback. */
185
+ hasSemanticProvider() {
186
+ return this.embeddingRegistry.getDefaultProviderId() !== HASHED_MEMORY_EMBEDDING_PROVIDER.id;
187
+ }
188
+ /** Stated once, honest: why Stage-B auto-retrieval (a later wave) would be absent right now. Null when a real provider is active. */
189
+ describeDegradation() {
190
+ return this.hasSemanticProvider()
191
+ ? null
192
+ : 'code auto-retrieval disabled: no semantic embedding provider configured';
193
+ }
194
+ /**
195
+ * Human-readable provider-space mismatch, or null when the stored vectors
196
+ * were built with the current default provider (or provenance is unknown —
197
+ * an index that predates provenance tracking keeps its legacy behavior
198
+ * until the next build stamps it).
199
+ */
200
+ getProviderMismatch() {
201
+ if (!this.db || !this.available)
202
+ return null;
203
+ const stored = getCodeIndexMeta(this.db, EMBEDDING_PROVIDER_META_KEY);
204
+ const current = this.embeddingRegistry.getDefaultProviderId();
205
+ if (stored === null || stored === current)
206
+ return null;
207
+ return `embeddings built with ${stored}, current provider ${current} — rebuild to re-embed`;
208
+ }
209
+ stats() {
210
+ const provider = this.embeddingRegistry.getDefaultProviderOrNull();
211
+ const mismatch = this.getProviderMismatch();
212
+ return {
213
+ backend: 'sqlite-vec',
214
+ enabled: this.available,
215
+ available: this.available,
216
+ path: this.dbPath,
217
+ dimensions: MEMORY_VECTOR_DIMS,
218
+ indexedFiles: this.db && this.available ? countIndexedFiles(this.db) : 0,
219
+ indexedChunks: this.db && this.available ? countIndexedChunks(this.db) : 0,
220
+ embeddingProviderId: provider?.id ?? this.embeddingRegistry.getDefaultProviderId(),
221
+ embeddingProviderLabel: provider?.label ?? `Unregistered (${this.embeddingRegistry.getDefaultProviderId()})`,
222
+ semanticRetrievalAvailable: this.hasSemanticProvider(),
223
+ ...(mismatch ? { embeddingProviderMismatch: mismatch } : {}),
224
+ building: this.building,
225
+ lastBuild: this.lastBuild,
226
+ ...(this.error ? { error: this.error } : {}),
227
+ };
228
+ }
229
+ // ── Search (Stage A explicit query) ─────────────────────────────────────
230
+ search(query, opts = {}) {
231
+ if (!this.db || !this.available)
232
+ return [];
233
+ const trimmed = query.trim();
234
+ if (!trimmed)
235
+ return [];
236
+ const limit = Math.max(1, Math.min(50, opts.limit ?? 10));
237
+ // Provider-space honesty: a query embedded under the CURRENT provider is
238
+ // meaningless against vectors stored under a DIFFERENT one — skip the
239
+ // vector path entirely and degrade to lexical metadata matching.
240
+ if (this.getProviderMismatch() !== null) {
241
+ return this.searchLexical(trimmed, limit);
242
+ }
243
+ let embedding;
244
+ try {
245
+ const result = this.embeddingRegistry.embedSync({
246
+ text: trimmed,
247
+ dimensions: MEMORY_VECTOR_DIMS,
248
+ usage: 'query',
249
+ });
250
+ embedding = normalizeMemoryEmbeddingVector(result.vector, MEMORY_VECTOR_DIMS);
251
+ }
252
+ catch (err) {
253
+ logger.warn('Code index query embedding failed', { error: summarizeError(err) });
254
+ return [];
255
+ }
256
+ const rows = this.db.query('SELECT rowid, chunk_id, distance FROM code_vectors WHERE embedding MATCH ? AND k = ? ORDER BY distance').all(embedding, limit);
257
+ const label = this.hasSemanticProvider() ? 'semantic' : 'lexical';
258
+ const results = [];
259
+ for (const row of rows) {
260
+ const chunk = getChunkById(this.db, row.chunk_id);
261
+ if (!chunk)
262
+ continue;
263
+ results.push({
264
+ chunk,
265
+ distance: Number(row.distance),
266
+ similarity: distanceToSimilarity(Number(row.distance)),
267
+ label,
268
+ });
269
+ }
270
+ return results;
271
+ }
272
+ /**
273
+ * Lexical fallback used when the vector path is disabled by a provider
274
+ * mismatch: token match over chunk symbol/path metadata (chunk text is not
275
+ * stored, so this is name/path matching only — labeled 'lexical', never
276
+ * 'semantic'). Similarity is the matched-token fraction.
277
+ */
278
+ searchLexical(query, limit) {
279
+ if (!this.db)
280
+ return [];
281
+ const tokens = Array.from(new Set(query.toLowerCase().split(/[^a-z0-9_$]+/).filter((token) => token.length >= 2)));
282
+ if (tokens.length === 0)
283
+ return [];
284
+ const where = tokens.map(() => '(lower(symbol) LIKE ? OR lower(path) LIKE ?)').join(' OR ');
285
+ const bindings = tokens.flatMap((token) => [`%${token}%`, `%${token}%`]);
286
+ const rows = this.db.query(`SELECT ${CHUNK_ROW_COLUMNS} FROM code_chunks WHERE ${where} LIMIT ?`).all(...bindings, limit * 5);
287
+ const scored = rows.map((row) => {
288
+ const haystack = `${row.symbol} ${row.path}`.toLowerCase();
289
+ const matched = tokens.filter((token) => haystack.includes(token)).length;
290
+ const similarity = matched / tokens.length;
291
+ return {
292
+ chunk: rowToChunk(row),
293
+ distance: 2 * (1 - similarity),
294
+ similarity,
295
+ label: 'lexical',
296
+ };
297
+ });
298
+ scored.sort((a, b) => b.similarity - a.similarity);
299
+ return scored.slice(0, limit);
300
+ }
301
+ // ── Build / reindex ──────────────────────────────────────────────────────
302
+ /** Fire-and-forget kickoff; concurrent/repeated calls while a build is running are no-ops. Never awaited by the caller — never blocks a turn. */
303
+ scheduleBuild() {
304
+ if (this.building)
305
+ return;
306
+ void this.buildFull().catch((err) => {
307
+ logger.warn('Code index build failed', { error: summarizeError(err) });
308
+ });
309
+ }
310
+ /** Full source-tree walk. Concurrent calls coalesce onto the same in-flight promise (mirrors MemoryStore.rebuildVectorIndexAsync). */
311
+ async buildFull() {
312
+ if (!this.db || !this.available) {
313
+ return this.lastBuild ?? emptyBuildStats();
314
+ }
315
+ if (!this.buildPromise) {
316
+ const buildEpoch = this.epoch;
317
+ this.building = true;
318
+ this.buildStartedAtMs = Date.now();
319
+ this.progress = { scanned: 0, total: 0 };
320
+ this.buildPromise = this.runBuild(buildEpoch).finally(() => {
321
+ // A reroot() already reset these for the NEW lifecycle; a stale
322
+ // build's cleanup must not clobber state belonging to a newer epoch.
323
+ if (this.epoch === buildEpoch) {
324
+ this.building = false;
325
+ this.buildStartedAtMs = null;
326
+ this.buildPromise = null;
327
+ this.progress = null;
328
+ }
329
+ });
330
+ }
331
+ return this.buildPromise;
332
+ }
333
+ /**
334
+ * Reindex a single file on demand. Intended to be called from the file
335
+ * read/write tool paths and from an explicit reindex command — wiring
336
+ * those call sites is out of scope for this module (see module doc).
337
+ * A no-op (chunks removed) if the path is gitignored or no longer exists.
338
+ */
339
+ async reindexFile(absPath) {
340
+ if (!this.db || !this.available)
341
+ return { indexed: false, mode: 'empty' };
342
+ const callEpoch = this.epoch;
343
+ const rel = relative(this.rootDir, absPath);
344
+ if (rel.startsWith('..'))
345
+ return { indexed: false, mode: 'empty' };
346
+ const diagnostics = createFindDiagnostics();
347
+ const isIgnored = this.buildIgnoreMatcher(diagnostics);
348
+ if (isIgnored(absPath, rel)) {
349
+ deleteChunksForPath(this.db, rel);
350
+ return { indexed: false, mode: 'empty' };
351
+ }
352
+ let stat;
353
+ try {
354
+ stat = statSync(absPath);
355
+ }
356
+ catch {
357
+ deleteChunksForPath(this.db, rel);
358
+ return { indexed: false, mode: 'empty' };
359
+ }
360
+ const maxFileBytes = this.options.maxFileBytes ?? DEFAULT_MAX_FILE_BYTES;
361
+ if (stat.size > maxFileBytes)
362
+ return { indexed: false, mode: 'empty' };
363
+ if (await isBinary(absPath, diagnostics))
364
+ return { indexed: false, mode: 'empty' };
365
+ const text = await readTextFile(absPath, diagnostics);
366
+ if (text === null)
367
+ return { indexed: false, mode: 'empty' };
368
+ const outcome = await this.indexFileContent(rel, absPath, text, stat.mtimeMs, callEpoch, false);
369
+ if (outcome === null)
370
+ return { indexed: false, mode: 'empty' };
371
+ return { indexed: outcome.indexed, mode: outcome.mode };
372
+ }
373
+ // ── Build internals ──────────────────────────────────────────────────────
374
+ async runBuild(buildEpoch) {
375
+ const startedAt = Date.now();
376
+ const diagnostics = createFindDiagnostics();
377
+ const maxFiles = this.options.maxFiles ?? DEFAULT_MAX_FILES;
378
+ const maxFileBytes = this.options.maxFileBytes ?? DEFAULT_MAX_FILE_BYTES;
379
+ const maxTotalBytes = this.options.maxTotalBytes ?? DEFAULT_MAX_TOTAL_BYTES;
380
+ const skip = emptySkipReport();
381
+ // Provider-space honesty: if the stored vectors were embedded under a
382
+ // different provider than the current default, the unchanged-file
383
+ // shortcut would silently keep stale-space vectors — force a full
384
+ // re-embed so a completed build always leaves a single-provider index.
385
+ const currentProviderId = this.embeddingRegistry.getDefaultProviderId();
386
+ const storedProviderId = this.db ? getCodeIndexMeta(this.db, EMBEDDING_PROVIDER_META_KEY) : null;
387
+ const forceReembed = storedProviderId !== null && storedProviderId !== currentProviderId;
388
+ const isIgnored = this.buildIgnoreMatcher(diagnostics);
389
+ const scanned = await collectGlobFiles(this.rootDir, ['**/*'], false, false, diagnostics);
390
+ if (this.epoch !== buildEpoch)
391
+ return abortedBuildStats(startedAt, scanned.size, skip);
392
+ // Deterministic order so identical trees always chunk identically (chunking determinism test).
393
+ const candidateFiles = Array.from(scanned).sort();
394
+ const keepPaths = new Set();
395
+ let filesIndexed = 0;
396
+ let filesUnchanged = 0;
397
+ let chunksIndexed = 0;
398
+ let chunksUnchanged = 0;
399
+ let totalBytes = 0;
400
+ let acceptedCount = 0;
401
+ for (const absPath of candidateFiles) {
402
+ const rel = relative(this.rootDir, absPath);
403
+ if (isIgnored(absPath, rel)) {
404
+ skip.ignoredByGitignore++;
405
+ continue;
406
+ }
407
+ if (acceptedCount >= maxFiles) {
408
+ skip.overFileCap++;
409
+ continue;
410
+ }
411
+ let stat;
412
+ try {
413
+ stat = statSync(absPath);
414
+ }
415
+ catch {
416
+ skip.readErrors++;
417
+ continue;
418
+ }
419
+ if (stat.size > maxFileBytes) {
420
+ skip.tooLarge++;
421
+ continue;
422
+ }
423
+ if (totalBytes + stat.size > maxTotalBytes) {
424
+ skip.overTotalBytes++;
425
+ continue;
426
+ }
427
+ const binary = await isBinary(absPath, diagnostics);
428
+ if (this.epoch !== buildEpoch)
429
+ return abortedBuildStats(startedAt, candidateFiles.length, skip);
430
+ if (binary) {
431
+ skip.binary++;
432
+ continue;
433
+ }
434
+ const text = await readTextFile(absPath, diagnostics);
435
+ if (this.epoch !== buildEpoch)
436
+ return abortedBuildStats(startedAt, candidateFiles.length, skip);
437
+ if (text === null) {
438
+ skip.readErrors++;
439
+ continue;
440
+ }
441
+ acceptedCount++;
442
+ totalBytes += stat.size;
443
+ keepPaths.add(rel);
444
+ const outcome = await this.indexFileContent(rel, absPath, text, stat.mtimeMs, buildEpoch, forceReembed);
445
+ if (outcome === null)
446
+ return abortedBuildStats(startedAt, candidateFiles.length, skip);
447
+ if (outcome.mode === 'window')
448
+ skip.chunkedByWindow++;
449
+ if (outcome.mode === 'unchanged') {
450
+ filesUnchanged++;
451
+ chunksUnchanged += outcome.chunkCount;
452
+ }
453
+ else {
454
+ if (outcome.indexed)
455
+ filesIndexed++;
456
+ chunksIndexed += outcome.chunkCount;
457
+ }
458
+ this.progress = { scanned: acceptedCount, total: candidateFiles.length };
459
+ if (acceptedCount % 20 === 0) {
460
+ await yieldToEventLoop();
461
+ if (this.epoch !== buildEpoch)
462
+ return abortedBuildStats(startedAt, candidateFiles.length, skip);
463
+ }
464
+ }
465
+ // Final staleness check before the destructive sweep: a stale build's
466
+ // keepPaths describes the OLD tree and must never delete the new one's rows.
467
+ if (this.epoch !== buildEpoch || !this.db) {
468
+ return abortedBuildStats(startedAt, candidateFiles.length, skip);
469
+ }
470
+ // Sweep: a file that no longer exists (deleted, renamed, or newly gitignored) loses its chunks.
471
+ let filesRemoved = 0;
472
+ for (const path of listIndexedPaths(this.db)) {
473
+ if (!keepPaths.has(path)) {
474
+ deleteChunksForPath(this.db, path);
475
+ filesRemoved++;
476
+ }
477
+ }
478
+ // Stamp provenance only on a COMPLETED build — every chunk that survives
479
+ // to this point is either freshly embedded under currentProviderId or was
480
+ // verified same-provider by the forceReembed logic above.
481
+ setCodeIndexMeta(this.db, EMBEDDING_PROVIDER_META_KEY, currentProviderId);
482
+ const completedAt = Date.now();
483
+ const stats = {
484
+ filesScanned: candidateFiles.length,
485
+ filesIndexed,
486
+ filesUnchanged,
487
+ chunksIndexed,
488
+ chunksUnchanged,
489
+ filesRemoved,
490
+ skip: Object.freeze({ ...skip }),
491
+ startedAt,
492
+ completedAt,
493
+ durationMs: completedAt - startedAt,
494
+ };
495
+ this.lastBuild = stats;
496
+ return stats;
497
+ }
498
+ /**
499
+ * Compose the root .gitignore with any nested .gitignore files (each nested
500
+ * file's patterns apply relative to its own directory, per git semantics).
501
+ * Nested coverage is bounded by findNestedGitignoreFiles' cap (see module doc).
502
+ */
503
+ buildIgnoreMatcher(diagnostics) {
504
+ const rootGitignorePath = join(this.rootDir, '.gitignore');
505
+ const rootMatcher = buildGitignoreMatcher(rootGitignorePath, diagnostics);
506
+ const nested = findNestedGitignoreFiles(this.rootDir, rootGitignorePath)
507
+ .map((path) => ({ dir: dirname(path), matcher: buildGitignoreMatcher(path, diagnostics) }))
508
+ .filter((entry) => entry.matcher !== null);
509
+ return (absPath, rel) => {
510
+ if (rootMatcher !== null && rootMatcher(rel))
511
+ return true;
512
+ for (const entry of nested) {
513
+ if (absPath.startsWith(entry.dir + sep) && entry.matcher(relative(entry.dir, absPath))) {
514
+ return true;
515
+ }
516
+ }
517
+ return false;
518
+ };
519
+ }
520
+ /**
521
+ * Index one file's content. Short-circuits on an unchanged file_hash (no
522
+ * re-chunk, no re-embed) — the "content_hash stable across re-index of
523
+ * unchanged file" contract — unless forceReembed is set (provider mismatch).
524
+ *
525
+ * Epoch honesty: all of a file's chunks are embedded (every await) BEFORE
526
+ * any row is deleted or written, and the epoch is re-checked after each
527
+ * await — so a reroot() mid-file aborts with the database untouched for
528
+ * that file (returns null; the caller abandons the build).
529
+ */
530
+ async indexFileContent(relPath, absPath, content, mtimeMs, callEpoch, forceReembed) {
531
+ if (!this.db)
532
+ return null;
533
+ const fileHash = sha256(content);
534
+ if (!forceReembed) {
535
+ const existingHash = getFileHash(this.db, relPath);
536
+ if (existingHash === fileHash) {
537
+ return { indexed: true, mode: 'unchanged', chunkCount: countChunksForPath(this.db, relPath) };
538
+ }
539
+ }
540
+ await this.ensureIntelligenceReady();
541
+ if (this.epoch !== callEpoch)
542
+ return null;
543
+ const { drafts, mode } = await chunkFileContent({
544
+ intelligence: this.intelligence,
545
+ absPath,
546
+ relPath,
547
+ content,
548
+ fileHash,
549
+ mtimeMs,
550
+ windowLines: this.options.windowLines,
551
+ windowOverlapLines: this.options.windowOverlapLines,
552
+ });
553
+ if (this.epoch !== callEpoch)
554
+ return null;
555
+ const embeddings = [];
556
+ for (const draft of drafts) {
557
+ const embedding = await this.embedChunkAsync(draft.embedText);
558
+ if (this.epoch !== callEpoch)
559
+ return null;
560
+ embeddings.push(embedding);
561
+ }
562
+ // All awaits are done — the delete+write below is synchronous, so the
563
+ // whole file lands atomically with respect to reroot()/close().
564
+ if (!this.db)
565
+ return null;
566
+ deleteChunksForPath(this.db, relPath);
567
+ for (let i = 0; i < drafts.length; i++) {
568
+ writeChunk(this.db, drafts[i].chunk, embeddings[i]);
569
+ }
570
+ return { indexed: drafts.length > 0 || mode === 'empty', mode, chunkCount: drafts.length };
571
+ }
572
+ async ensureIntelligenceReady() {
573
+ if (!this.intelligenceReadyPromise) {
574
+ this.intelligenceReadyPromise = this.intelligence.initialize().catch((err) => {
575
+ logger.warn('CodeIndexStore: tree-sitter init failed', { error: summarizeError(err) });
576
+ });
577
+ }
578
+ return this.intelligenceReadyPromise;
579
+ }
580
+ async embedChunkAsync(text) {
581
+ const result = await this.embeddingRegistry.embedAsync({
582
+ text,
583
+ dimensions: MEMORY_VECTOR_DIMS,
584
+ usage: 'record',
585
+ });
586
+ return normalizeMemoryEmbeddingVector(result.vector, MEMORY_VECTOR_DIMS);
587
+ }
588
+ }
589
+ function abortedBuildStats(startedAt, filesScanned, skip) {
590
+ const completedAt = Date.now();
591
+ logger.warn('Code index build aborted by reroot', { filesScanned });
592
+ return {
593
+ filesScanned,
594
+ filesIndexed: 0,
595
+ filesUnchanged: 0,
596
+ chunksIndexed: 0,
597
+ chunksUnchanged: 0,
598
+ filesRemoved: 0,
599
+ skip: Object.freeze({ ...skip }),
600
+ startedAt,
601
+ completedAt,
602
+ durationMs: completedAt - startedAt,
603
+ abortReason: BUILD_ABORTED_BY_REROOT,
604
+ };
605
+ }
606
+ function emptyBuildStats() {
607
+ const now = Date.now();
608
+ return {
609
+ filesScanned: 0,
610
+ filesIndexed: 0,
611
+ filesUnchanged: 0,
612
+ chunksIndexed: 0,
613
+ chunksUnchanged: 0,
614
+ filesRemoved: 0,
615
+ skip: emptySkipReport(),
616
+ startedAt: now,
617
+ completedAt: now,
618
+ durationMs: 0,
619
+ };
620
+ }
@@ -19,11 +19,21 @@ export { MemoryStore } from './memory-store.js';
19
19
  export { MemoryRegistry } from './memory-registry.js';
20
20
  export type { MemoryBundle, MemoryClass, MemoryRecord, MemoryLink, MemoryAddOptions, MemorySearchFilter, MemorySemanticSearchResult, MemoryStoreOptions, MemoryDoctorReport, MemoryScope, MemoryReviewState, ProvenanceLink, ProvenanceLinkKind, } from './memory-store.js';
21
21
  export { buildIncidentMemoryAddOptions, buildMcpSecurityMemoryAddOptions, buildPluginSecurityMemoryAddOptions, buildPolicyPreflightMemoryAddOptions, } from './memory-ingest.js';
22
+ export { resolveCanonicalMemoryDbPath, foldMemoryStores, formatMemoryFoldReport, } from './canonical-memory.js';
23
+ export type { LegacyMemorySource, MemoryFoldSourceReport, MemoryFoldReport, FoldMemoryStoresOptions, } from './canonical-memory.js';
24
+ export { MIN_PROMPT_MEMORY_CONFIDENCE, describeMemoryPromptEligibility, isPromptActiveMemory, describeMemoryIndexUnavailable, describeMemoryIndexCaveat, } from './memory-recall-contract.js';
25
+ export type { MemoryPromptEligibility } from './memory-recall-contract.js';
26
+ export { VIBE_PERSONA_TAG, VIBE_PROJECTION_HEADING, VIBE_PROJECTION_CAVEAT, selectVibeRecords, renderVibeProjection, vibeBodyToConstraintOptions, } from './vibe-projection.js';
27
+ export type { VibeProjectionOptions, VibeImportOptions } from './vibe-projection.js';
22
28
  export { MEMORY_VECTOR_DIMS, embedMemoryText, resolveMemoryVectorDbPath, SqliteVecMemoryIndex, } from './memory-vector-store.js';
23
29
  export type { MemoryVectorCandidate, MemoryVectorStats } from './memory-vector-store.js';
24
30
  export { DEFAULT_MEMORY_EMBEDDING_DIMS, HASHED_MEMORY_EMBEDDING_PROVIDER, MemoryEmbeddingProviderRegistry, normalizeMemoryEmbeddingVector, } from './memory-embeddings.js';
25
31
  export { createBuiltinMemoryEmbeddingProviders } from './memory-embedding-http.js';
26
32
  export type { MemoryEmbeddingDoctorReport, MemoryEmbeddingProvider, MemoryEmbeddingProviderState, MemoryEmbeddingProviderStatus, MemoryEmbeddingRequest, MemoryEmbeddingResult, MemoryEmbeddingUsage, } from './memory-embeddings.js';
27
- export type { KnowledgeInjection } from './knowledge-injection.js';
28
- export { selectKnowledgeForTask, buildKnowledgeInjectionPrompt } from './knowledge-injection.js';
33
+ export type { KnowledgeInjection, ScoredKnowledgeInjection } from './knowledge-injection.js';
34
+ export { selectKnowledgeForTask, selectKnowledgeForTaskScored, buildKnowledgeInjectionPrompt } from './knowledge-injection.js';
35
+ export { CodeIndexStore } from './code-index-store.js';
36
+ export type { CodeChunk, CodeChunkMode, CodeContextResult, CodeIndexBuildProgress, CodeIndexBuildStats, CodeIndexOptions, CodeIndexSkipReport, CodeIndexStats, } from './code-index-store.js';
37
+ export { CodeIndexReindexScheduler, extractReindexPaths, DEFAULT_REINDEX_DEBOUNCE_MS, } from './code-index-reindex.js';
38
+ export type { CodeIndexReindexActivity, CodeIndexReindexTarget, CodeIndexReindexSchedulerDeps, } from './code-index-reindex.js';
29
39
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/state/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,EAChC,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,EAChC,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAC;AACnF,YAAY,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,4BAA4B,EAC5B,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/state/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,EAChC,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,oBAAoB,EACpB,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,EAChC,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAC;AACnF,YAAY,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,4BAA4B,EAC5B,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAC/H,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,YAAY,EACV,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC"}
@@ -12,7 +12,12 @@ export { FileUndoManager } from './file-undo.js';
12
12
  export { MemoryStore } from './memory-store.js';
13
13
  export { MemoryRegistry } from './memory-registry.js';
14
14
  export { buildIncidentMemoryAddOptions, buildMcpSecurityMemoryAddOptions, buildPluginSecurityMemoryAddOptions, buildPolicyPreflightMemoryAddOptions, } from './memory-ingest.js';
15
+ export { resolveCanonicalMemoryDbPath, foldMemoryStores, formatMemoryFoldReport, } from './canonical-memory.js';
16
+ export { MIN_PROMPT_MEMORY_CONFIDENCE, describeMemoryPromptEligibility, isPromptActiveMemory, describeMemoryIndexUnavailable, describeMemoryIndexCaveat, } from './memory-recall-contract.js';
17
+ export { VIBE_PERSONA_TAG, VIBE_PROJECTION_HEADING, VIBE_PROJECTION_CAVEAT, selectVibeRecords, renderVibeProjection, vibeBodyToConstraintOptions, } from './vibe-projection.js';
15
18
  export { MEMORY_VECTOR_DIMS, embedMemoryText, resolveMemoryVectorDbPath, SqliteVecMemoryIndex, } from './memory-vector-store.js';
16
19
  export { DEFAULT_MEMORY_EMBEDDING_DIMS, HASHED_MEMORY_EMBEDDING_PROVIDER, MemoryEmbeddingProviderRegistry, normalizeMemoryEmbeddingVector, } from './memory-embeddings.js';
17
20
  export { createBuiltinMemoryEmbeddingProviders } from './memory-embedding-http.js';
18
- export { selectKnowledgeForTask, buildKnowledgeInjectionPrompt } from './knowledge-injection.js';
21
+ export { selectKnowledgeForTask, selectKnowledgeForTaskScored, buildKnowledgeInjectionPrompt } from './knowledge-injection.js';
22
+ export { CodeIndexStore } from './code-index-store.js';
23
+ export { CodeIndexReindexScheduler, extractReindexPaths, DEFAULT_REINDEX_DEBOUNCE_MS, } from './code-index-reindex.js';