@pellux/goodvibes-sdk 0.38.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (559) hide show
  1. package/dist/contracts/artifacts/operator-contract.json +4468 -916
  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 +1 -1
  6. package/dist/events/surfaces.d.ts +25 -3
  7. package/dist/events/surfaces.d.ts.map +1 -1
  8. package/dist/events/surfaces.js +22 -1
  9. package/dist/events/workflows.d.ts +7 -6
  10. package/dist/events/workflows.d.ts.map +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/platform/agents/archetypes.d.ts.map +1 -1
  14. package/dist/platform/agents/archetypes.js +7 -0
  15. package/dist/platform/agents/index.d.ts +1 -0
  16. package/dist/platform/agents/index.d.ts.map +1 -1
  17. package/dist/platform/agents/index.js +1 -0
  18. package/dist/platform/agents/orchestrator-runner.d.ts +16 -3
  19. package/dist/platform/agents/orchestrator-runner.d.ts.map +1 -1
  20. package/dist/platform/agents/orchestrator-runner.js +20 -6
  21. package/dist/platform/agents/orchestrator.d.ts +42 -10
  22. package/dist/platform/agents/orchestrator.d.ts.map +1 -1
  23. package/dist/platform/agents/orchestrator.js +68 -20
  24. package/dist/platform/agents/planner-decomposition-runner.d.ts +38 -0
  25. package/dist/platform/agents/planner-decomposition-runner.d.ts.map +1 -0
  26. package/dist/platform/agents/planner-decomposition-runner.js +113 -0
  27. package/dist/platform/agents/turn-knowledge-injection.d.ts +88 -3
  28. package/dist/platform/agents/turn-knowledge-injection.d.ts.map +1 -1
  29. package/dist/platform/agents/turn-knowledge-injection.js +147 -30
  30. package/dist/platform/agents/worktree.d.ts +126 -8
  31. package/dist/platform/agents/worktree.d.ts.map +1 -1
  32. package/dist/platform/agents/worktree.js +240 -19
  33. package/dist/platform/agents/wrfc-controller.d.ts +24 -1
  34. package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
  35. package/dist/platform/agents/wrfc-controller.js +161 -35
  36. package/dist/platform/agents/wrfc-gate-runtime.d.ts +9 -0
  37. package/dist/platform/agents/wrfc-gate-runtime.d.ts.map +1 -1
  38. package/dist/platform/agents/wrfc-gate-runtime.js +7 -3
  39. package/dist/platform/agents/wrfc-gates.d.ts +1 -1
  40. package/dist/platform/agents/wrfc-gates.d.ts.map +1 -1
  41. package/dist/platform/agents/wrfc-gates.js +7 -1
  42. package/dist/platform/agents/wrfc-types.d.ts +23 -3
  43. package/dist/platform/agents/wrfc-types.d.ts.map +1 -1
  44. package/dist/platform/automation/types.d.ts +9 -1
  45. package/dist/platform/automation/types.d.ts.map +1 -1
  46. package/dist/platform/calendar/calendar-api-shared.d.ts +25 -0
  47. package/dist/platform/calendar/calendar-api-shared.d.ts.map +1 -0
  48. package/dist/platform/calendar/calendar-api-shared.js +100 -0
  49. package/dist/platform/calendar/calendar-connector.d.ts +79 -0
  50. package/dist/platform/calendar/calendar-connector.d.ts.map +1 -0
  51. package/dist/platform/calendar/calendar-connector.js +155 -0
  52. package/dist/platform/calendar/google-calendar-api.d.ts +25 -0
  53. package/dist/platform/calendar/google-calendar-api.d.ts.map +1 -0
  54. package/dist/platform/calendar/google-calendar-api.js +89 -0
  55. package/dist/platform/calendar/http-fetch-adapter.d.ts +25 -0
  56. package/dist/platform/calendar/http-fetch-adapter.d.ts.map +1 -0
  57. package/dist/platform/calendar/http-fetch-adapter.js +25 -0
  58. package/dist/platform/calendar/ics-parser.d.ts +35 -0
  59. package/dist/platform/calendar/ics-parser.d.ts.map +1 -0
  60. package/dist/platform/calendar/ics-parser.js +236 -0
  61. package/dist/platform/calendar/index.d.ts +41 -0
  62. package/dist/platform/calendar/index.d.ts.map +1 -0
  63. package/dist/platform/calendar/index.js +49 -0
  64. package/dist/platform/calendar/merged-calendar-model.d.ts +67 -0
  65. package/dist/platform/calendar/merged-calendar-model.d.ts.map +1 -0
  66. package/dist/platform/calendar/merged-calendar-model.js +181 -0
  67. package/dist/platform/calendar/microsoft-graph-api.d.ts +25 -0
  68. package/dist/platform/calendar/microsoft-graph-api.d.ts.map +1 -0
  69. package/dist/platform/calendar/microsoft-graph-api.js +95 -0
  70. package/dist/platform/calendar/oauth-flow.d.ts +62 -0
  71. package/dist/platform/calendar/oauth-flow.d.ts.map +1 -0
  72. package/dist/platform/calendar/oauth-flow.js +305 -0
  73. package/dist/platform/calendar/oauth-providers.d.ts +43 -0
  74. package/dist/platform/calendar/oauth-providers.d.ts.map +1 -0
  75. package/dist/platform/calendar/oauth-providers.js +120 -0
  76. package/dist/platform/calendar/oauth-token-store.d.ts +72 -0
  77. package/dist/platform/calendar/oauth-token-store.d.ts.map +1 -0
  78. package/dist/platform/calendar/oauth-token-store.js +189 -0
  79. package/dist/platform/calendar/oauth-types.d.ts +274 -0
  80. package/dist/platform/calendar/oauth-types.d.ts.map +1 -0
  81. package/dist/platform/calendar/oauth-types.js +22 -0
  82. package/dist/platform/calendar/rrule.d.ts +39 -0
  83. package/dist/platform/calendar/rrule.d.ts.map +1 -0
  84. package/dist/platform/calendar/rrule.js +261 -0
  85. package/dist/platform/calendar/subscription-store.d.ts +118 -0
  86. package/dist/platform/calendar/subscription-store.d.ts.map +1 -0
  87. package/dist/platform/calendar/subscription-store.js +293 -0
  88. package/dist/platform/calendar/types.d.ts +170 -0
  89. package/dist/platform/calendar/types.d.ts.map +1 -0
  90. package/dist/platform/calendar/types.js +21 -0
  91. package/dist/platform/companion/companion-chat-attachments.d.ts +29 -0
  92. package/dist/platform/companion/companion-chat-attachments.d.ts.map +1 -0
  93. package/dist/platform/companion/companion-chat-attachments.js +121 -0
  94. package/dist/platform/companion/companion-chat-branching.d.ts +66 -0
  95. package/dist/platform/companion/companion-chat-branching.d.ts.map +1 -0
  96. package/dist/platform/companion/companion-chat-branching.js +142 -0
  97. package/dist/platform/companion/companion-chat-broker-bridge.d.ts +40 -0
  98. package/dist/platform/companion/companion-chat-broker-bridge.d.ts.map +1 -0
  99. package/dist/platform/companion/companion-chat-broker-bridge.js +14 -0
  100. package/dist/platform/companion/companion-chat-broker-sync.d.ts +38 -0
  101. package/dist/platform/companion/companion-chat-broker-sync.d.ts.map +1 -0
  102. package/dist/platform/companion/companion-chat-broker-sync.js +80 -0
  103. package/dist/platform/companion/companion-chat-gc.d.ts +63 -0
  104. package/dist/platform/companion/companion-chat-gc.d.ts.map +1 -0
  105. package/dist/platform/companion/companion-chat-gc.js +38 -0
  106. package/dist/platform/companion/companion-chat-manager.d.ts +91 -23
  107. package/dist/platform/companion/companion-chat-manager.d.ts.map +1 -1
  108. package/dist/platform/companion/companion-chat-manager.js +195 -223
  109. package/dist/platform/companion/companion-chat-persistence.d.ts +9 -1
  110. package/dist/platform/companion/companion-chat-persistence.d.ts.map +1 -1
  111. package/dist/platform/companion/companion-chat-persistence.js +10 -2
  112. package/dist/platform/companion/companion-chat-routes.d.ts +2 -1
  113. package/dist/platform/companion/companion-chat-routes.d.ts.map +1 -1
  114. package/dist/platform/companion/companion-chat-routes.js +113 -4
  115. package/dist/platform/companion/companion-chat-turn-execution.d.ts +61 -0
  116. package/dist/platform/companion/companion-chat-turn-execution.d.ts.map +1 -0
  117. package/dist/platform/companion/companion-chat-turn-execution.js +107 -0
  118. package/dist/platform/companion/companion-chat-types.d.ts +67 -0
  119. package/dist/platform/companion/companion-chat-types.d.ts.map +1 -1
  120. package/dist/platform/config/credential-status.d.ts +28 -0
  121. package/dist/platform/config/credential-status.d.ts.map +1 -0
  122. package/dist/platform/config/credential-status.js +75 -0
  123. package/dist/platform/config/index.d.ts +25 -0
  124. package/dist/platform/config/index.d.ts.map +1 -1
  125. package/dist/platform/config/index.js +18 -0
  126. package/dist/platform/config/manager.d.ts +9 -0
  127. package/dist/platform/config/manager.d.ts.map +1 -1
  128. package/dist/platform/config/manager.js +21 -2
  129. package/dist/platform/config/migrations.d.ts +48 -0
  130. package/dist/platform/config/migrations.d.ts.map +1 -0
  131. package/dist/platform/config/migrations.js +54 -0
  132. package/dist/platform/config/schema-domain-core.d.ts +10 -1
  133. package/dist/platform/config/schema-domain-core.d.ts.map +1 -1
  134. package/dist/platform/config/schema-domain-core.js +46 -3
  135. package/dist/platform/config/schema-domain-runtime.d.ts +8 -0
  136. package/dist/platform/config/schema-domain-runtime.d.ts.map +1 -1
  137. package/dist/platform/config/schema-domain-runtime.js +32 -0
  138. package/dist/platform/config/schema-types.d.ts +21 -7
  139. package/dist/platform/config/schema-types.d.ts.map +1 -1
  140. package/dist/platform/config/schema.d.ts.map +1 -1
  141. package/dist/platform/config/schema.js +2 -0
  142. package/dist/platform/control-plane/approval-broker.d.ts +11 -0
  143. package/dist/platform/control-plane/approval-broker.d.ts.map +1 -1
  144. package/dist/platform/control-plane/approval-broker.js +17 -1
  145. package/dist/platform/control-plane/approval-hunk-apply.d.ts +77 -0
  146. package/dist/platform/control-plane/approval-hunk-apply.d.ts.map +1 -0
  147. package/dist/platform/control-plane/approval-hunk-apply.js +80 -0
  148. package/dist/platform/control-plane/gateway-disabled-response.d.ts +20 -0
  149. package/dist/platform/control-plane/gateway-disabled-response.d.ts.map +1 -0
  150. package/dist/platform/control-plane/gateway-disabled-response.js +24 -0
  151. package/dist/platform/control-plane/gateway-scope-enforcement.d.ts +68 -0
  152. package/dist/platform/control-plane/gateway-scope-enforcement.d.ts.map +1 -0
  153. package/dist/platform/control-plane/gateway-scope-enforcement.js +91 -0
  154. package/dist/platform/control-plane/gateway-utils.d.ts +17 -0
  155. package/dist/platform/control-plane/gateway-utils.d.ts.map +1 -1
  156. package/dist/platform/control-plane/gateway-utils.js +30 -0
  157. package/dist/platform/control-plane/gateway.d.ts +12 -2
  158. package/dist/platform/control-plane/gateway.d.ts.map +1 -1
  159. package/dist/platform/control-plane/gateway.js +27 -31
  160. package/dist/platform/control-plane/index.d.ts +8 -1
  161. package/dist/platform/control-plane/index.d.ts.map +1 -1
  162. package/dist/platform/control-plane/index.js +8 -0
  163. package/dist/platform/control-plane/invoke-input-validation.d.ts +56 -0
  164. package/dist/platform/control-plane/invoke-input-validation.d.ts.map +1 -0
  165. package/dist/platform/control-plane/invoke-input-validation.js +163 -0
  166. package/dist/platform/control-plane/method-catalog-admin.d.ts.map +1 -1
  167. package/dist/platform/control-plane/method-catalog-admin.js +12 -1
  168. package/dist/platform/control-plane/method-catalog-calendar.d.ts +16 -0
  169. package/dist/platform/control-plane/method-catalog-calendar.d.ts.map +1 -1
  170. package/dist/platform/control-plane/method-catalog-calendar.js +21 -0
  171. package/dist/platform/control-plane/method-catalog-channels.d.ts.map +1 -1
  172. package/dist/platform/control-plane/method-catalog-channels.js +32 -3
  173. package/dist/platform/control-plane/method-catalog-control-automation.d.ts.map +1 -1
  174. package/dist/platform/control-plane/method-catalog-control-automation.js +19 -34
  175. package/dist/platform/control-plane/method-catalog-control-companion.d.ts +15 -0
  176. package/dist/platform/control-plane/method-catalog-control-companion.d.ts.map +1 -0
  177. package/dist/platform/control-plane/method-catalog-control-companion.js +176 -0
  178. package/dist/platform/control-plane/method-catalog-control-core.d.ts.map +1 -1
  179. package/dist/platform/control-plane/method-catalog-control-core.js +104 -122
  180. package/dist/platform/control-plane/method-catalog-control.d.ts.map +1 -1
  181. package/dist/platform/control-plane/method-catalog-control.js +4 -0
  182. package/dist/platform/control-plane/method-catalog-email.d.ts +17 -0
  183. package/dist/platform/control-plane/method-catalog-email.d.ts.map +1 -1
  184. package/dist/platform/control-plane/method-catalog-email.js +21 -0
  185. package/dist/platform/control-plane/method-catalog-events.d.ts +28 -0
  186. package/dist/platform/control-plane/method-catalog-events.d.ts.map +1 -1
  187. package/dist/platform/control-plane/method-catalog-events.js +74 -1
  188. package/dist/platform/control-plane/method-catalog-fleet.d.ts +24 -0
  189. package/dist/platform/control-plane/method-catalog-fleet.d.ts.map +1 -0
  190. package/dist/platform/control-plane/method-catalog-fleet.js +65 -0
  191. package/dist/platform/control-plane/method-catalog-push.d.ts +30 -0
  192. package/dist/platform/control-plane/method-catalog-push.d.ts.map +1 -0
  193. package/dist/platform/control-plane/method-catalog-push.js +80 -0
  194. package/dist/platform/control-plane/method-catalog-route-reconcile.d.ts +84 -0
  195. package/dist/platform/control-plane/method-catalog-route-reconcile.d.ts.map +1 -0
  196. package/dist/platform/control-plane/method-catalog-route-reconcile.js +103 -0
  197. package/dist/platform/control-plane/method-catalog-runtime.d.ts.map +1 -1
  198. package/dist/platform/control-plane/method-catalog-runtime.js +83 -1
  199. package/dist/platform/control-plane/method-catalog-shared.d.ts +29 -0
  200. package/dist/platform/control-plane/method-catalog-shared.d.ts.map +1 -1
  201. package/dist/platform/control-plane/method-catalog.d.ts +9 -0
  202. package/dist/platform/control-plane/method-catalog.d.ts.map +1 -1
  203. package/dist/platform/control-plane/method-catalog.js +34 -3
  204. package/dist/platform/control-plane/operator-contract-schemas-admin.d.ts +8 -0
  205. package/dist/platform/control-plane/operator-contract-schemas-admin.d.ts.map +1 -1
  206. package/dist/platform/control-plane/operator-contract-schemas-admin.js +22 -1
  207. package/dist/platform/control-plane/operator-contract-schemas-fleet.d.ts +18 -0
  208. package/dist/platform/control-plane/operator-contract-schemas-fleet.d.ts.map +1 -0
  209. package/dist/platform/control-plane/operator-contract-schemas-fleet.js +182 -0
  210. package/dist/platform/control-plane/operator-contract-schemas-permissions.d.ts.map +1 -1
  211. package/dist/platform/control-plane/operator-contract-schemas-permissions.js +5 -0
  212. package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts +37 -0
  213. package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts.map +1 -1
  214. package/dist/platform/control-plane/operator-contract-schemas-runtime.js +100 -3
  215. package/dist/platform/control-plane/operator-contract-schemas.d.ts +1 -0
  216. package/dist/platform/control-plane/operator-contract-schemas.d.ts.map +1 -1
  217. package/dist/platform/control-plane/operator-contract-schemas.js +1 -0
  218. package/dist/platform/control-plane/operator-contract.d.ts.map +1 -1
  219. package/dist/platform/control-plane/operator-contract.js +8 -0
  220. package/dist/platform/control-plane/routes/checkpoints.d.ts +39 -0
  221. package/dist/platform/control-plane/routes/checkpoints.d.ts.map +1 -0
  222. package/dist/platform/control-plane/routes/checkpoints.js +166 -0
  223. package/dist/platform/control-plane/routes/fleet.d.ts +53 -0
  224. package/dist/platform/control-plane/routes/fleet.d.ts.map +1 -0
  225. package/dist/platform/control-plane/routes/fleet.js +153 -0
  226. package/dist/platform/control-plane/routes/gateway-verb-error.d.ts +30 -0
  227. package/dist/platform/control-plane/routes/gateway-verb-error.d.ts.map +1 -0
  228. package/dist/platform/control-plane/routes/gateway-verb-error.js +36 -0
  229. package/dist/platform/control-plane/routes/index.d.ts +0 -6
  230. package/dist/platform/control-plane/routes/index.d.ts.map +1 -1
  231. package/dist/platform/control-plane/routes/index.js +5 -5
  232. package/dist/platform/control-plane/routes/invocation-params.d.ts +23 -0
  233. package/dist/platform/control-plane/routes/invocation-params.d.ts.map +1 -0
  234. package/dist/platform/control-plane/routes/invocation-params.js +9 -0
  235. package/dist/platform/control-plane/routes/push.d.ts +26 -0
  236. package/dist/platform/control-plane/routes/push.d.ts.map +1 -0
  237. package/dist/platform/control-plane/routes/push.js +104 -0
  238. package/dist/platform/control-plane/routes/register-gateway-verb-groups.d.ts +31 -0
  239. package/dist/platform/control-plane/routes/register-gateway-verb-groups.d.ts.map +1 -0
  240. package/dist/platform/control-plane/routes/register-gateway-verb-groups.js +16 -0
  241. package/dist/platform/control-plane/routes/register-w3-s2.d.ts +26 -0
  242. package/dist/platform/control-plane/routes/register-w3-s2.d.ts.map +1 -0
  243. package/dist/platform/control-plane/routes/register-w3-s2.js +8 -0
  244. package/dist/platform/control-plane/routes/session-search.d.ts +37 -0
  245. package/dist/platform/control-plane/routes/session-search.d.ts.map +1 -0
  246. package/dist/platform/control-plane/routes/session-search.js +113 -0
  247. package/dist/platform/control-plane/session-broker-gc.d.ts +16 -0
  248. package/dist/platform/control-plane/session-broker-gc.d.ts.map +1 -1
  249. package/dist/platform/control-plane/session-broker-gc.js +23 -6
  250. package/dist/platform/control-plane/session-broker-helpers.d.ts +3 -3
  251. package/dist/platform/control-plane/session-broker-helpers.d.ts.map +1 -1
  252. package/dist/platform/control-plane/session-broker-inputs.d.ts +18 -0
  253. package/dist/platform/control-plane/session-broker-inputs.d.ts.map +1 -1
  254. package/dist/platform/control-plane/session-broker-inputs.js +34 -0
  255. package/dist/platform/control-plane/session-broker-sessions.d.ts +102 -3
  256. package/dist/platform/control-plane/session-broker-sessions.d.ts.map +1 -1
  257. package/dist/platform/control-plane/session-broker-sessions.js +179 -5
  258. package/dist/platform/control-plane/session-broker-state.d.ts +20 -1
  259. package/dist/platform/control-plane/session-broker-state.d.ts.map +1 -1
  260. package/dist/platform/control-plane/session-broker-state.js +67 -5
  261. package/dist/platform/control-plane/session-broker.d.ts +51 -38
  262. package/dist/platform/control-plane/session-broker.d.ts.map +1 -1
  263. package/dist/platform/control-plane/session-broker.js +183 -75
  264. package/dist/platform/control-plane/session-store-importer.d.ts +57 -0
  265. package/dist/platform/control-plane/session-store-importer.d.ts.map +1 -0
  266. package/dist/platform/control-plane/session-store-importer.js +227 -0
  267. package/dist/platform/control-plane/session-types.d.ts +142 -7
  268. package/dist/platform/control-plane/session-types.d.ts.map +1 -1
  269. package/dist/platform/core/execution-plan.d.ts +43 -1
  270. package/dist/platform/core/execution-plan.d.ts.map +1 -1
  271. package/dist/platform/core/execution-plan.js +46 -10
  272. package/dist/platform/core/index.d.ts +1 -0
  273. package/dist/platform/core/index.d.ts.map +1 -1
  274. package/dist/platform/core/index.js +1 -0
  275. package/dist/platform/core/orchestrator-runtime.d.ts +23 -3
  276. package/dist/platform/core/orchestrator-runtime.d.ts.map +1 -1
  277. package/dist/platform/core/orchestrator-tool-runtime.d.ts +7 -0
  278. package/dist/platform/core/orchestrator-tool-runtime.d.ts.map +1 -1
  279. package/dist/platform/core/orchestrator-tool-runtime.js +10 -0
  280. package/dist/platform/core/orchestrator-turn-loop.d.ts +13 -6
  281. package/dist/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
  282. package/dist/platform/core/orchestrator-turn-loop.js +29 -22
  283. package/dist/platform/core/orchestrator.d.ts +16 -10
  284. package/dist/platform/core/orchestrator.d.ts.map +1 -1
  285. package/dist/platform/core/orchestrator.js +23 -8
  286. package/dist/platform/core/plan-decomposition.d.ts +196 -0
  287. package/dist/platform/core/plan-decomposition.d.ts.map +1 -0
  288. package/dist/platform/core/plan-decomposition.js +417 -0
  289. package/dist/platform/core/plan-proposal.d.ts +39 -0
  290. package/dist/platform/core/plan-proposal.d.ts.map +1 -1
  291. package/dist/platform/core/wrfc-routing.d.ts +1 -0
  292. package/dist/platform/core/wrfc-routing.d.ts.map +1 -1
  293. package/dist/platform/core/wrfc-routing.js +51 -1
  294. package/dist/platform/daemon/boot.d.ts +69 -0
  295. package/dist/platform/daemon/boot.d.ts.map +1 -0
  296. package/dist/platform/daemon/boot.js +61 -0
  297. package/dist/platform/daemon/cli.js +2 -1
  298. package/dist/platform/daemon/control-plane.d.ts.map +1 -1
  299. package/dist/platform/daemon/control-plane.js +50 -1
  300. package/dist/platform/daemon/facade-composition.d.ts.map +1 -1
  301. package/dist/platform/daemon/facade-composition.js +6 -0
  302. package/dist/platform/daemon/facade.d.ts +15 -6
  303. package/dist/platform/daemon/facade.d.ts.map +1 -1
  304. package/dist/platform/daemon/facade.js +48 -43
  305. package/dist/platform/daemon/http/router-route-contexts.d.ts +1 -0
  306. package/dist/platform/daemon/http/router-route-contexts.d.ts.map +1 -1
  307. package/dist/platform/daemon/http/router-route-contexts.js +1 -0
  308. package/dist/platform/daemon/http/router-session-broker-adapter.d.ts +13 -0
  309. package/dist/platform/daemon/http/router-session-broker-adapter.d.ts.map +1 -0
  310. package/dist/platform/daemon/http/router-session-broker-adapter.js +27 -0
  311. package/dist/platform/daemon/http/router.d.ts +2 -1
  312. package/dist/platform/daemon/http/router.d.ts.map +1 -1
  313. package/dist/platform/daemon/http/router.js +42 -40
  314. package/dist/platform/daemon/http/runtime-route-types.d.ts +42 -4
  315. package/dist/platform/daemon/http/runtime-route-types.d.ts.map +1 -1
  316. package/dist/platform/daemon/http/webui-serving.d.ts +68 -0
  317. package/dist/platform/daemon/http/webui-serving.d.ts.map +1 -0
  318. package/dist/platform/daemon/http/webui-serving.js +230 -0
  319. package/dist/platform/daemon/index.d.ts +2 -0
  320. package/dist/platform/daemon/index.d.ts.map +1 -1
  321. package/dist/platform/daemon/index.js +1 -0
  322. package/dist/platform/daemon/service-manager.d.ts +16 -0
  323. package/dist/platform/daemon/service-manager.d.ts.map +1 -1
  324. package/dist/platform/daemon/service-manager.js +79 -15
  325. package/dist/platform/intelligence/tree-sitter/service.d.ts.map +1 -1
  326. package/dist/platform/intelligence/tree-sitter/service.js +16 -2
  327. package/dist/platform/knowledge/browser-history/readers.d.ts.map +1 -1
  328. package/dist/platform/knowledge/browser-history/readers.js +15 -5
  329. package/dist/platform/knowledge/knowledge-api.d.ts +1 -1
  330. package/dist/platform/knowledge/project-planning/service.d.ts +14 -1
  331. package/dist/platform/knowledge/project-planning/service.d.ts.map +1 -1
  332. package/dist/platform/knowledge/project-planning/service.js +77 -0
  333. package/dist/platform/knowledge/project-planning/types.d.ts +32 -0
  334. package/dist/platform/knowledge/project-planning/types.d.ts.map +1 -1
  335. package/dist/platform/orchestration/bookkeeping.d.ts +12 -0
  336. package/dist/platform/orchestration/bookkeeping.d.ts.map +1 -0
  337. package/dist/platform/orchestration/bookkeeping.js +91 -0
  338. package/dist/platform/orchestration/budget.d.ts +2 -2
  339. package/dist/platform/orchestration/cancellation.d.ts +2 -2
  340. package/dist/platform/orchestration/controller-compat.d.ts +16 -3
  341. package/dist/platform/orchestration/controller-compat.d.ts.map +1 -1
  342. package/dist/platform/orchestration/controller-compat.js +18 -4
  343. package/dist/platform/orchestration/dirty-guard.js +1 -1
  344. package/dist/platform/orchestration/engine.d.ts +26 -1
  345. package/dist/platform/orchestration/engine.d.ts.map +1 -1
  346. package/dist/platform/orchestration/engine.js +229 -25
  347. package/dist/platform/orchestration/index.d.ts +6 -4
  348. package/dist/platform/orchestration/index.d.ts.map +1 -1
  349. package/dist/platform/orchestration/index.js +3 -2
  350. package/dist/platform/orchestration/persistence.d.ts.map +1 -1
  351. package/dist/platform/orchestration/persistence.js +6 -3
  352. package/dist/platform/orchestration/phase-runner.d.ts +33 -6
  353. package/dist/platform/orchestration/phase-runner.d.ts.map +1 -1
  354. package/dist/platform/orchestration/phase-runner.js +98 -25
  355. package/dist/platform/orchestration/proposal-workstream.d.ts +56 -0
  356. package/dist/platform/orchestration/proposal-workstream.d.ts.map +1 -0
  357. package/dist/platform/orchestration/proposal-workstream.js +76 -0
  358. package/dist/platform/orchestration/scheduler.d.ts +20 -1
  359. package/dist/platform/orchestration/scheduler.d.ts.map +1 -1
  360. package/dist/platform/orchestration/scheduler.js +16 -0
  361. package/dist/platform/orchestration/types.d.ts +289 -4
  362. package/dist/platform/orchestration/types.d.ts.map +1 -1
  363. package/dist/platform/orchestration/types.js +32 -0
  364. package/dist/platform/orchestration/worktree-isolation.d.ts +33 -0
  365. package/dist/platform/orchestration/worktree-isolation.d.ts.map +1 -0
  366. package/dist/platform/orchestration/worktree-isolation.js +248 -0
  367. package/dist/platform/presentation/glyphs.d.ts +91 -0
  368. package/dist/platform/presentation/glyphs.d.ts.map +1 -0
  369. package/dist/platform/presentation/glyphs.js +93 -0
  370. package/dist/platform/presentation/index.d.ts +28 -0
  371. package/dist/platform/presentation/index.d.ts.map +1 -0
  372. package/dist/platform/presentation/index.js +27 -0
  373. package/dist/platform/presentation/thinking-phrases.d.ts +12 -0
  374. package/dist/platform/presentation/thinking-phrases.d.ts.map +1 -0
  375. package/dist/platform/presentation/thinking-phrases.js +32 -0
  376. package/dist/platform/presentation/tones.d.ts +121 -0
  377. package/dist/platform/presentation/tones.d.ts.map +1 -0
  378. package/dist/platform/presentation/tones.js +145 -0
  379. package/dist/platform/presentation/waiting-wording.d.ts +54 -0
  380. package/dist/platform/presentation/waiting-wording.d.ts.map +1 -0
  381. package/dist/platform/presentation/waiting-wording.js +51 -0
  382. package/dist/platform/providers/runtime-snapshot.d.ts.map +1 -1
  383. package/dist/platform/providers/runtime-snapshot.js +12 -2
  384. package/dist/platform/push/delivery.d.ts +48 -0
  385. package/dist/platform/push/delivery.d.ts.map +1 -0
  386. package/dist/platform/push/delivery.js +117 -0
  387. package/dist/platform/push/encryption.d.ts +41 -0
  388. package/dist/platform/push/encryption.d.ts.map +1 -0
  389. package/dist/platform/push/encryption.js +82 -0
  390. package/dist/platform/push/index.d.ts +17 -0
  391. package/dist/platform/push/index.d.ts.map +1 -0
  392. package/dist/platform/push/index.js +10 -0
  393. package/dist/platform/push/service.d.ts +75 -0
  394. package/dist/platform/push/service.d.ts.map +1 -0
  395. package/dist/platform/push/service.js +95 -0
  396. package/dist/platform/push/subscription-store.d.ts +50 -0
  397. package/dist/platform/push/subscription-store.d.ts.map +1 -0
  398. package/dist/platform/push/subscription-store.js +123 -0
  399. package/dist/platform/push/types.d.ts +68 -0
  400. package/dist/platform/push/types.d.ts.map +1 -0
  401. package/dist/platform/push/types.js +13 -0
  402. package/dist/platform/push/vapid.d.ts +54 -0
  403. package/dist/platform/push/vapid.d.ts.map +1 -0
  404. package/dist/platform/push/vapid.js +113 -0
  405. package/dist/platform/runtime/bootstrap-services.d.ts +62 -2
  406. package/dist/platform/runtime/bootstrap-services.d.ts.map +1 -1
  407. package/dist/platform/runtime/bootstrap-services.js +217 -50
  408. package/dist/platform/runtime/daemon-version-compat.d.ts +39 -0
  409. package/dist/platform/runtime/daemon-version-compat.d.ts.map +1 -0
  410. package/dist/platform/runtime/daemon-version-compat.js +75 -0
  411. package/dist/platform/runtime/detached-daemon-runtime.d.ts +26 -0
  412. package/dist/platform/runtime/detached-daemon-runtime.d.ts.map +1 -0
  413. package/dist/platform/runtime/detached-daemon-runtime.js +49 -0
  414. package/dist/platform/runtime/emitters/workflows.d.ts +1 -1
  415. package/dist/platform/runtime/emitters/workflows.d.ts.map +1 -1
  416. package/dist/platform/runtime/events/index.d.ts +13 -0
  417. package/dist/platform/runtime/events/index.d.ts.map +1 -1
  418. package/dist/platform/runtime/events/index.js +13 -0
  419. package/dist/platform/runtime/feature-flags/flags.d.ts.map +1 -1
  420. package/dist/platform/runtime/feature-flags/flags.js +39 -1
  421. package/dist/platform/runtime/fleet/adapters/agent.d.ts +2 -2
  422. package/dist/platform/runtime/fleet/adapters/agent.d.ts.map +1 -1
  423. package/dist/platform/runtime/fleet/adapters/agent.js +4 -4
  424. package/dist/platform/runtime/fleet/adapters/automation.d.ts +1 -1
  425. package/dist/platform/runtime/fleet/adapters/automation.js +1 -1
  426. package/dist/platform/runtime/fleet/adapters/code-index.d.ts +1 -1
  427. package/dist/platform/runtime/fleet/adapters/code-index.js +1 -1
  428. package/dist/platform/runtime/fleet/adapters/orchestration.d.ts +40 -18
  429. package/dist/platform/runtime/fleet/adapters/orchestration.d.ts.map +1 -1
  430. package/dist/platform/runtime/fleet/adapters/orchestration.js +138 -34
  431. package/dist/platform/runtime/fleet/adapters/schedule.d.ts +4 -4
  432. package/dist/platform/runtime/fleet/adapters/schedule.js +4 -4
  433. package/dist/platform/runtime/fleet/adapters/trigger.d.ts +3 -4
  434. package/dist/platform/runtime/fleet/adapters/trigger.d.ts.map +1 -1
  435. package/dist/platform/runtime/fleet/adapters/trigger.js +3 -4
  436. package/dist/platform/runtime/fleet/adapters/wrfc.d.ts +13 -0
  437. package/dist/platform/runtime/fleet/adapters/wrfc.d.ts.map +1 -1
  438. package/dist/platform/runtime/fleet/adapters/wrfc.js +49 -2
  439. package/dist/platform/runtime/fleet/registry.d.ts +7 -7
  440. package/dist/platform/runtime/fleet/registry.d.ts.map +1 -1
  441. package/dist/platform/runtime/fleet/registry.js +41 -7
  442. package/dist/platform/runtime/fleet/types.d.ts +9 -9
  443. package/dist/platform/runtime/fleet/types.d.ts.map +1 -1
  444. package/dist/platform/runtime/memory-spine/client.d.ts +127 -0
  445. package/dist/platform/runtime/memory-spine/client.d.ts.map +1 -0
  446. package/dist/platform/runtime/memory-spine/client.js +113 -0
  447. package/dist/platform/runtime/memory-spine/index.d.ts +11 -0
  448. package/dist/platform/runtime/memory-spine/index.d.ts.map +1 -0
  449. package/dist/platform/runtime/memory-spine/index.js +10 -0
  450. package/dist/platform/runtime/operator-client.d.ts +20 -2
  451. package/dist/platform/runtime/operator-client.d.ts.map +1 -1
  452. package/dist/platform/runtime/operator-client.js +11 -1
  453. package/dist/platform/runtime/provider-accounts/registry.d.ts.map +1 -1
  454. package/dist/platform/runtime/provider-accounts/registry.js +11 -1
  455. package/dist/platform/runtime/services.d.ts +11 -9
  456. package/dist/platform/runtime/services.d.ts.map +1 -1
  457. package/dist/platform/runtime/services.js +24 -9
  458. package/dist/platform/runtime/session-spine/client.d.ts +234 -0
  459. package/dist/platform/runtime/session-spine/client.d.ts.map +1 -0
  460. package/dist/platform/runtime/session-spine/client.js +449 -0
  461. package/dist/platform/runtime/session-spine/index.d.ts +12 -0
  462. package/dist/platform/runtime/session-spine/index.d.ts.map +1 -0
  463. package/dist/platform/runtime/session-spine/index.js +11 -0
  464. package/dist/platform/runtime/session-spine/union-cache.d.ts +225 -0
  465. package/dist/platform/runtime/session-spine/union-cache.d.ts.map +1 -0
  466. package/dist/platform/runtime/session-spine/union-cache.js +333 -0
  467. package/dist/platform/runtime/shell-command-ops.d.ts +3 -1
  468. package/dist/platform/runtime/shell-command-ops.d.ts.map +1 -1
  469. package/dist/platform/runtime/transports/daemon-http-client-validators.d.ts.map +1 -1
  470. package/dist/platform/runtime/transports/daemon-http-client-validators.js +22 -0
  471. package/dist/platform/runtime/transports/daemon-http-client.d.ts.map +1 -1
  472. package/dist/platform/runtime/transports/daemon-http-client.js +25 -2
  473. package/dist/platform/runtime/transports/http-types.d.ts +9 -2
  474. package/dist/platform/runtime/transports/http-types.d.ts.map +1 -1
  475. package/dist/platform/state/canonical-memory.d.ts +95 -0
  476. package/dist/platform/state/canonical-memory.d.ts.map +1 -0
  477. package/dist/platform/state/canonical-memory.js +155 -0
  478. package/dist/platform/state/code-index-chunking.js +1 -1
  479. package/dist/platform/state/code-index-db.d.ts +1 -1
  480. package/dist/platform/state/code-index-reindex.d.ts +73 -0
  481. package/dist/platform/state/code-index-reindex.d.ts.map +1 -0
  482. package/dist/platform/state/code-index-reindex.js +156 -0
  483. package/dist/platform/state/code-index-store.d.ts.map +1 -1
  484. package/dist/platform/state/code-index-store.js +11 -3
  485. package/dist/platform/state/index.d.ts +8 -0
  486. package/dist/platform/state/index.d.ts.map +1 -1
  487. package/dist/platform/state/index.js +4 -0
  488. package/dist/platform/state/memory-recall-contract.d.ts +118 -0
  489. package/dist/platform/state/memory-recall-contract.d.ts.map +1 -0
  490. package/dist/platform/state/memory-recall-contract.js +170 -0
  491. package/dist/platform/state/memory-registry.d.ts +8 -0
  492. package/dist/platform/state/memory-registry.d.ts.map +1 -1
  493. package/dist/platform/state/memory-registry.js +10 -0
  494. package/dist/platform/state/memory-store.d.ts +2 -0
  495. package/dist/platform/state/memory-store.d.ts.map +1 -1
  496. package/dist/platform/state/memory-store.js +4 -0
  497. package/dist/platform/state/memory-vector-store.d.ts.map +1 -1
  498. package/dist/platform/state/memory-vector-store.js +14 -3
  499. package/dist/platform/state/sqlite-store.d.ts +2 -0
  500. package/dist/platform/state/sqlite-store.d.ts.map +1 -1
  501. package/dist/platform/state/sqlite-store.js +4 -0
  502. package/dist/platform/state/sqlite-vec-loader.d.ts +1 -1
  503. package/dist/platform/state/sqlite-vec-loader.js +1 -1
  504. package/dist/platform/state/vibe-projection.d.ts +67 -0
  505. package/dist/platform/state/vibe-projection.d.ts.map +1 -0
  506. package/dist/platform/state/vibe-projection.js +115 -0
  507. package/dist/platform/tools/agent/index.d.ts.map +1 -1
  508. package/dist/platform/tools/agent/index.js +8 -0
  509. package/dist/platform/tools/agent/manager.d.ts +22 -10
  510. package/dist/platform/tools/agent/manager.d.ts.map +1 -1
  511. package/dist/platform/tools/agent/manager.js +13 -7
  512. package/dist/platform/tools/agent/schema.d.ts +26 -0
  513. package/dist/platform/tools/agent/schema.d.ts.map +1 -1
  514. package/dist/platform/tools/agent/schema.js +2 -2
  515. package/dist/platform/tools/agent/wrfc-batch-policy.d.ts +13 -0
  516. package/dist/platform/tools/agent/wrfc-batch-policy.d.ts.map +1 -1
  517. package/dist/platform/tools/agent/wrfc-batch-policy.js +60 -0
  518. package/dist/platform/tools/exec/runtime.d.ts +10 -0
  519. package/dist/platform/tools/exec/runtime.d.ts.map +1 -1
  520. package/dist/platform/tools/exec/runtime.js +27 -10
  521. package/dist/platform/tools/exec/schema.d.ts +2 -2
  522. package/dist/platform/tools/exec/schema.d.ts.map +1 -1
  523. package/dist/platform/tools/exec/schema.js +2 -1
  524. package/dist/platform/tools/fetch/runtime.d.ts +1 -1
  525. package/dist/platform/tools/index.d.ts +2 -0
  526. package/dist/platform/tools/index.d.ts.map +1 -1
  527. package/dist/platform/tools/index.js +2 -0
  528. package/dist/platform/tools/registry.d.ts +1 -1
  529. package/dist/platform/tools/registry.js +1 -1
  530. package/dist/platform/tools/state/index.d.ts +9 -0
  531. package/dist/platform/tools/state/index.d.ts.map +1 -1
  532. package/dist/platform/tools/state/index.js +60 -3
  533. package/dist/platform/types/foundation-contract.d.ts +1 -1
  534. package/dist/platform/types/foundation-contract.d.ts.map +1 -1
  535. package/dist/platform/types/index.d.ts +1 -1
  536. package/dist/platform/types/index.d.ts.map +1 -1
  537. package/dist/platform/types/tools.d.ts +1 -1
  538. package/dist/platform/utils/request-body.d.ts.map +1 -1
  539. package/dist/platform/utils/request-body.js +50 -5
  540. package/dist/platform/version.js +1 -1
  541. package/package.json +25 -9
  542. package/dist/platform/control-plane/routes/automation.d.ts +0 -3
  543. package/dist/platform/control-plane/routes/automation.d.ts.map +0 -1
  544. package/dist/platform/control-plane/routes/automation.js +0 -63
  545. package/dist/platform/control-plane/routes/context.d.ts +0 -2
  546. package/dist/platform/control-plane/routes/context.d.ts.map +0 -1
  547. package/dist/platform/control-plane/routes/context.js +0 -1
  548. package/dist/platform/control-plane/routes/operator.d.ts +0 -8
  549. package/dist/platform/control-plane/routes/operator.d.ts.map +0 -1
  550. package/dist/platform/control-plane/routes/operator.js +0 -415
  551. package/dist/platform/control-plane/routes/remote.d.ts +0 -3
  552. package/dist/platform/control-plane/routes/remote.d.ts.map +0 -1
  553. package/dist/platform/control-plane/routes/remote.js +0 -35
  554. package/dist/platform/control-plane/routes/sessions.d.ts +0 -3
  555. package/dist/platform/control-plane/routes/sessions.d.ts.map +0 -1
  556. package/dist/platform/control-plane/routes/sessions.js +0 -43
  557. package/dist/platform/control-plane/routes/tasks.d.ts +0 -3
  558. package/dist/platform/control-plane/routes/tasks.d.ts.map +0 -1
  559. package/dist/platform/control-plane/routes/tasks.js +0 -22
@@ -0,0 +1,156 @@
1
+ /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
+ /**
3
+ * CodeIndexReindexScheduler — Stage B tool-site reindex hooks.
4
+ *
5
+ * After a successful file-writing tool call (write / edit, including the edit
6
+ * tool's notebook operations), the touched path(s) are scheduled for an
7
+ * incremental `CodeIndexStore.reindexFile()`. Three properties the brief asks
8
+ * for, all enforced here rather than at the (two) tool-execution call sites:
9
+ *
10
+ * 1. NEVER BLOCKS THE TURN. `onToolExecuted` only records paths and arms a
11
+ * timer; the reindex runs later, off the tool-result path. Nothing here is
12
+ * awaited by the caller.
13
+ *
14
+ * 2. DEBOUNCED + COALESCED, per path. Each touched path gets its own timer;
15
+ * re-touching the same path before its quiet window elapses resets that
16
+ * path's timer, so a phased edit or several edits to one file in a turn
17
+ * collapse to a SINGLE reindex. Distinct paths reindex independently, each
18
+ * after its own quiet window. Timers are `unref()`'d so a pending reindex
19
+ * never keeps the process alive.
20
+ *
21
+ * 3. NO-OP WHEN THERE IS NOTHING TO MAINTAIN, and CONTAINED FAILURE. At fire
22
+ * time the scheduler re-checks (live, so a runtime toggle is respected)
23
+ * that the code index is enabled AND already built (available &&
24
+ * indexedChunks > 0) — reindexing a single file into an index that was
25
+ * never built would fabricate a misleading one-file index, so that case is
26
+ * a silent no-op. `reindexFile` is cheap when the file is unchanged
27
+ * (hash-gated). Any error is caught, logged, and recorded as the last
28
+ * activity — it never rethrows into the turn.
29
+ *
30
+ * The most-recent completed reindex is exposed via `lastActivity()` for honest
31
+ * surfacing (e.g. TUI `/codebase status`).
32
+ */
33
+ import { resolve as resolvePathAbsolute } from 'node:path';
34
+ import { logger } from '../utils/logger.js';
35
+ import { summarizeError } from '../utils/error-display.js';
36
+ /** Default per-path debounce window: long enough to coalesce a burst of edits to one file, short enough that the index trails the working tree by well under a second. */
37
+ export const DEFAULT_REINDEX_DEBOUNCE_MS = 300;
38
+ /**
39
+ * Tool names whose successful execution touches files worth reindexing, and the
40
+ * argument shapes that carry the touched path(s). `write` carries `files[].path`;
41
+ * `edit` carries `edits[].path` plus an optional `notebook_operations.path`. A
42
+ * top-level `path`/`file_path` is also honored for robustness against tool
43
+ * variants. Anything else yields no paths (no-op).
44
+ */
45
+ export function extractReindexPaths(toolName, args) {
46
+ if (toolName !== 'write' && toolName !== 'edit')
47
+ return [];
48
+ const paths = new Set();
49
+ const addIfString = (value) => {
50
+ if (typeof value === 'string' && value.trim().length > 0)
51
+ paths.add(value);
52
+ };
53
+ addIfString(args['path']);
54
+ addIfString(args['file_path']);
55
+ const files = args['files'];
56
+ if (Array.isArray(files)) {
57
+ for (const file of files) {
58
+ if (file && typeof file === 'object')
59
+ addIfString(file['path']);
60
+ }
61
+ }
62
+ const edits = args['edits'];
63
+ if (Array.isArray(edits)) {
64
+ for (const edit of edits) {
65
+ if (edit && typeof edit === 'object')
66
+ addIfString(edit['path']);
67
+ }
68
+ }
69
+ const notebookOps = args['notebook_operations'];
70
+ if (notebookOps && typeof notebookOps === 'object') {
71
+ addIfString(notebookOps['path']);
72
+ }
73
+ return [...paths];
74
+ }
75
+ export class CodeIndexReindexScheduler {
76
+ deps;
77
+ timers = new Map();
78
+ inFlight = new Set();
79
+ last = null;
80
+ debounceMs;
81
+ now;
82
+ constructor(deps) {
83
+ this.deps = deps;
84
+ this.debounceMs = deps.debounceMs ?? DEFAULT_REINDEX_DEBOUNCE_MS;
85
+ this.now = deps.now ?? Date.now;
86
+ }
87
+ /**
88
+ * Entry point wired into both tool-execution loops. A no-op for a failed call
89
+ * or a non-file tool. Extracts touched paths and schedules each (debounced).
90
+ * Returns immediately — never awaits a reindex.
91
+ */
92
+ onToolExecuted(toolName, args, success) {
93
+ if (!success)
94
+ return;
95
+ for (const p of extractReindexPaths(toolName, args)) {
96
+ this.schedule(resolvePathAbsolute(this.deps.workingDirectory, p));
97
+ }
98
+ }
99
+ /** Arm (or reset) the per-path debounce timer for one absolute path. */
100
+ schedule(absPath) {
101
+ const existing = this.timers.get(absPath);
102
+ if (existing)
103
+ clearTimeout(existing);
104
+ const timer = setTimeout(() => {
105
+ this.timers.delete(absPath);
106
+ this.track(this.runReindex(absPath));
107
+ }, this.debounceMs);
108
+ timer.unref?.();
109
+ this.timers.set(absPath, timer);
110
+ }
111
+ /** The most recent reindex the scheduler actually ran, or null if none has completed. */
112
+ lastActivity() {
113
+ return this.last;
114
+ }
115
+ /** Count of paths with a pending (debouncing) reindex. */
116
+ pendingCount() {
117
+ return this.timers.size;
118
+ }
119
+ /** Test/shutdown helper: fire every pending debounce timer now and await all in-flight reindexes. */
120
+ async flush() {
121
+ for (const [path, timer] of [...this.timers]) {
122
+ clearTimeout(timer);
123
+ this.timers.delete(path);
124
+ this.track(this.runReindex(path));
125
+ }
126
+ await Promise.allSettled([...this.inFlight]);
127
+ }
128
+ /** Cancel every pending timer (does not touch in-flight reindexes). */
129
+ dispose() {
130
+ for (const timer of this.timers.values())
131
+ clearTimeout(timer);
132
+ this.timers.clear();
133
+ }
134
+ track(promise) {
135
+ this.inFlight.add(promise);
136
+ void promise.finally(() => this.inFlight.delete(promise));
137
+ }
138
+ async runReindex(absPath) {
139
+ // Live gates — respect a runtime toggle of the setting and never fabricate a
140
+ // one-file index when nothing was ever built.
141
+ if (this.deps.isEnabled && !this.deps.isEnabled())
142
+ return;
143
+ const stats = this.deps.target.stats();
144
+ if (!stats.available || stats.indexedChunks === 0)
145
+ return;
146
+ try {
147
+ const { indexed, mode } = await this.deps.target.reindexFile(absPath);
148
+ this.last = { path: absPath, at: this.now(), status: indexed ? 'indexed' : 'skipped', mode };
149
+ }
150
+ catch (err) {
151
+ const error = summarizeError(err);
152
+ logger.warn('Code index incremental reindex failed', { path: absPath, error });
153
+ this.last = { path: absPath, at: this.now(), status: 'error', error };
154
+ }
155
+ }
156
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"code-index-store.d.ts","sourceRoot":"","sources":["../../../src/platform/state/code-index-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-index-store.d.ts","sourceRoot":"","sources":["../../../src/platform/state/code-index-store.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
2
  /**
3
3
  * CodeIndexStore — an incremental, tree-sitter-chunked, embedding-backed index
4
- * of a repo's source tree (Wave-5, W5.3, Stage A).
4
+ * of a repo's source tree (Stage A; see CHANGELOG 0.38.0).
5
5
  *
6
6
  * Deliberately MIRRORS MemoryStore + SqliteVecMemoryIndex (state/memory-store.ts,
7
7
  * state/memory-vector-store.ts) rather than reusing them: those classes are
@@ -54,7 +54,7 @@
54
54
  */
55
55
  import { dirname, join, relative, sep } from 'node:path';
56
56
  import { mkdirSync, statSync } from 'node:fs';
57
- import { Database } from 'bun:sqlite';
57
+ import { createRequire } from 'node:module';
58
58
  import { loadSqliteVecExtension } from './sqlite-vec-loader.js';
59
59
  import { HASHED_MEMORY_EMBEDDING_PROVIDER, MemoryEmbeddingProviderRegistry, normalizeMemoryEmbeddingVector, } from './memory-embeddings.js';
60
60
  import { MEMORY_VECTOR_DIMS } from './memory-vector-store.js';
@@ -64,6 +64,14 @@ import { CHUNK_ROW_COLUMNS, EMBEDDING_PROVIDER_META_KEY, createCodeIndexSchema,
64
64
  import { buildGitignoreMatcher, collectGlobFiles, createFindDiagnostics, findNestedGitignoreFiles, isBinary, readTextFile, } from '../tools/find/shared.js';
65
65
  import { logger } from '../utils/logger.js';
66
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
+ }
67
75
  const DEFAULT_MAX_FILES = 5000;
68
76
  const DEFAULT_MAX_FILE_BYTES = 512 * 1024;
69
77
  const DEFAULT_MAX_TOTAL_BYTES = 256 * 1024 * 1024;
@@ -122,7 +130,7 @@ export class CodeIndexStore {
122
130
  if (this.dbPath !== ':memory:') {
123
131
  mkdirSync(dirname(this.dbPath), { recursive: true });
124
132
  }
125
- this.db = new Database(this.dbPath);
133
+ this.db = new (bunSqliteDatabase())(this.dbPath);
126
134
  loadSqliteVecExtension(this.db);
127
135
  this.available = true;
128
136
  createCodeIndexSchema(this.db);
@@ -19,6 +19,12 @@ 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, runHonestMemorySearch, } from './memory-recall-contract.js';
25
+ export type { MemoryPromptEligibility, HonestSearchStore, HonestMemorySearchOptions, HonestMemorySearchResult, } 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';
@@ -28,4 +34,6 @@ export type { KnowledgeInjection, ScoredKnowledgeInjection } from './knowledge-i
28
34
  export { selectKnowledgeForTask, selectKnowledgeForTaskScored, buildKnowledgeInjectionPrompt } from './knowledge-injection.js';
29
35
  export { CodeIndexStore } from './code-index-store.js';
30
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';
31
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,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/state/index.ts"],"names":[],"mappings":"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"}
@@ -12,8 +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, runHonestMemorySearch, } 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
21
  export { selectKnowledgeForTask, selectKnowledgeForTaskScored, buildKnowledgeInjectionPrompt } from './knowledge-injection.js';
19
22
  export { CodeIndexStore } from './code-index-store.js';
23
+ export { CodeIndexReindexScheduler, extractReindexPaths, DEFAULT_REINDEX_DEBOUNCE_MS, } from './code-index-reindex.js';
@@ -0,0 +1,118 @@
1
+ /**
2
+ * memory-recall-contract.ts — the CROSS-SURFACE recall-honesty contract (see CHANGELOG 1.0.0).
3
+ *
4
+ * PROVENANCE. This is the agent's memory-honesty discipline, promoted
5
+ * verbatim from a single surface (the agent's memory-prompt.ts) into the SDK so it
6
+ * is ONE shared contract, not a discipline re-derived (and re-weakened) per surface.
7
+ * Under memory unification the store is unified and cross-surface, which multiplies the cost of a
8
+ * dishonest recall — so this discipline becomes MORE load-bearing, not less. A
9
+ * unified store must not be able to lie more loudly than the siloed one did.
10
+ *
11
+ * The contract is three rules:
12
+ * 1. INJECTION FLOOR = the store's own declared baseline trust (60), never higher.
13
+ * MemoryStore.add() stamps every new record at confidence 60 unless the caller
14
+ * says otherwise. A floor above 60 would starve every honestly-stored fact — a
15
+ * freshly-learned fact could never clear recall on its own. The floor trusts a
16
+ * record exactly as much as the store already vouches for it; anything stored
17
+ * BELOW 60 (explicitly marked less certain) still does not qualify.
18
+ * 2. FLAGGED RECORDS ARE NEVER INJECTED. stale/contradicted records are excluded
19
+ * outright, regardless of confidence — the surface already knows they are wrong
20
+ * or superseded, so no confidence number buys them back into a prompt.
21
+ * 3. DEGRADED STATES ARE HONEST, NOT SILENT. an unavailable semantic index yields
22
+ * a STATED reason and a literal fallback — never a silent empty result that
23
+ * reads as "nothing was ever stored." 'no match' and 'index unavailable' are
24
+ * distinct and both said out loud.
25
+ */
26
+ import type { MemoryRecord, MemorySearchFilter, MemorySemanticSearchResult } from './memory-store.js';
27
+ import type { MemoryVectorStats } from './memory-vector-store.js';
28
+ /**
29
+ * Recall-prompt confidence floor. Tied to the store's own baseline: MemoryStore.add
30
+ * stamps new records at confidence 60. This is NOT a number chosen to make things
31
+ * pass — it is the store's own definition of "a real, usable fact."
32
+ */
33
+ export declare const MIN_PROMPT_MEMORY_CONFIDENCE = 60;
34
+ export interface MemoryPromptEligibility {
35
+ readonly eligible: boolean;
36
+ /** Why this record did or did not clear the recall floor — confidence, review state, and provenance, never silent. */
37
+ readonly reason: string;
38
+ }
39
+ /**
40
+ * Recall-eligibility decision for one record, with an honest human-readable reason
41
+ * attached (never a silent yes/no). This is the receipt every surface surfaces.
42
+ *
43
+ * Flagged records (stale/contradicted) are excluded outright regardless of
44
+ * confidence. Everything else is judged on its own stored confidence against
45
+ * MIN_PROMPT_MEMORY_CONFIDENCE — the store's own baseline. Nothing is blanket-boosted.
46
+ */
47
+ export declare function describeMemoryPromptEligibility(record: MemoryRecord): MemoryPromptEligibility;
48
+ export declare function isPromptActiveMemory(record: MemoryRecord): boolean;
49
+ /**
50
+ * A HARD unavailable reason: the semantic index cannot be consulted at all, so a
51
+ * search must fall back to a literal scan and SAY SO — never a silent empty result
52
+ * that reads as "no memory matches" when the index was never asked. Returns null
53
+ * when the index is available and can be consulted.
54
+ */
55
+ export declare function describeMemoryIndexUnavailable(stats: MemoryVectorStats): string | null;
56
+ /**
57
+ * A SOFT caveat: the index is up and consulted, but running on the built-in
58
+ * hashed-only fallback embedding provider rather than a modeled semantic provider.
59
+ * Still ranks real matches better than a literal scan, but say so rather than
60
+ * presenting it as equivalent. Returns null when a real provider is configured.
61
+ */
62
+ export declare function describeMemoryIndexCaveat(stats: MemoryVectorStats): string | null;
63
+ /**
64
+ * The minimal read surface a honest search needs. MemoryStore (and MemoryRegistry)
65
+ * satisfy this structurally — the function stays decoupled from either concrete
66
+ * class so it can run over any store that exposes the three read paths.
67
+ */
68
+ export interface HonestSearchStore {
69
+ search(filter: MemorySearchFilter): MemoryRecord[];
70
+ searchSemantic(filter: MemorySearchFilter): MemorySemanticSearchResult[];
71
+ vectorStats(): MemoryVectorStats;
72
+ }
73
+ export interface HonestMemorySearchOptions {
74
+ /**
75
+ * Apply the recall-INJECTION contract to the result set: exclude flagged
76
+ * (stale/contradicted) records outright and drop records below the confidence
77
+ * floor, counting each exclusion honestly. Off by default — a review/browse
78
+ * caller wants to SEE flagged and low-confidence records; only a prompt-recall
79
+ * caller filters them out.
80
+ */
81
+ readonly recall?: boolean | undefined;
82
+ }
83
+ /**
84
+ * The honest search envelope. `records` is what a caller should use; the rest is
85
+ * the receipt: which path actually ran, and — when a degraded path was taken —
86
+ * WHY, out loud. A wire client and a local surface serialize the SAME envelope, so
87
+ * the honesty contract cannot be re-weakened per surface.
88
+ */
89
+ export interface HonestMemorySearchResult {
90
+ readonly records: readonly MemoryRecord[];
91
+ /** The path that actually ran. `'literal'` even when semantic was requested but the index could not be consulted. */
92
+ readonly mode: 'literal' | 'semantic';
93
+ readonly requestedSemantic: boolean;
94
+ /** Non-null ONLY when semantic was requested and the index could not be consulted, forcing the literal fallback. The stated reason — never a silent empty. */
95
+ readonly indexUnavailableReason: string | null;
96
+ /** Soft caveat when the semantic path ran on the hashed-only fallback provider. */
97
+ readonly caveat: string | null;
98
+ /** Whether the recall-injection contract filtered the set (options.recall). */
99
+ readonly recallFiltered: boolean;
100
+ readonly excludedFlaggedCount: number;
101
+ readonly excludedBelowFloorCount: number;
102
+ /** Result count BEFORE any recall-injection filtering — so a caller can tell "index empty" from "everything filtered out". */
103
+ readonly totalBeforeRecallFilter: number;
104
+ }
105
+ /**
106
+ * Run a search that HONORS the recall-honesty contract end to end:
107
+ * - semantic requested + index consultable → semantic ranking (+ soft caveat when
108
+ * on the hashed fallback provider);
109
+ * - semantic requested + index NOT consultable → literal scan WITH the stated
110
+ * `indexUnavailableReason`, never a silent empty that reads as "nothing stored";
111
+ * - `recall: true` → flagged records excluded outright and sub-floor records
112
+ * dropped, each exclusion counted rather than silently vanished.
113
+ *
114
+ * This is the ONE composition every surface (daemon route, wire client, offline
115
+ * local store) calls, so the contract is applied identically everywhere.
116
+ */
117
+ export declare function runHonestMemorySearch(store: HonestSearchStore, filter?: MemorySearchFilter, options?: HonestMemorySearchOptions): HonestMemorySearchResult;
118
+ //# sourceMappingURL=memory-recall-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-recall-contract.d.ts","sourceRoot":"","sources":["../../../src/platform/state/memory-recall-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACtG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,sHAAsH;IACtH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAOD;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,YAAY,GAAG,uBAAuB,CAkB7F;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAElE;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAKtF;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAKjF;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,EAAE,CAAC;IACnD,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,0BAA0B,EAAE,CAAC;IACzE,WAAW,IAAI,iBAAiB,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACvC;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,qHAAqH;IACrH,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,8JAA8J;IAC9J,QAAQ,CAAC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,mFAAmF;IACnF,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,8HAA8H;IAC9H,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;CAC1C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,MAAM,GAAE,kBAAuB,EAC/B,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CA+D1B"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * memory-recall-contract.ts — the CROSS-SURFACE recall-honesty contract (see CHANGELOG 1.0.0).
3
+ *
4
+ * PROVENANCE. This is the agent's memory-honesty discipline, promoted
5
+ * verbatim from a single surface (the agent's memory-prompt.ts) into the SDK so it
6
+ * is ONE shared contract, not a discipline re-derived (and re-weakened) per surface.
7
+ * Under memory unification the store is unified and cross-surface, which multiplies the cost of a
8
+ * dishonest recall — so this discipline becomes MORE load-bearing, not less. A
9
+ * unified store must not be able to lie more loudly than the siloed one did.
10
+ *
11
+ * The contract is three rules:
12
+ * 1. INJECTION FLOOR = the store's own declared baseline trust (60), never higher.
13
+ * MemoryStore.add() stamps every new record at confidence 60 unless the caller
14
+ * says otherwise. A floor above 60 would starve every honestly-stored fact — a
15
+ * freshly-learned fact could never clear recall on its own. The floor trusts a
16
+ * record exactly as much as the store already vouches for it; anything stored
17
+ * BELOW 60 (explicitly marked less certain) still does not qualify.
18
+ * 2. FLAGGED RECORDS ARE NEVER INJECTED. stale/contradicted records are excluded
19
+ * outright, regardless of confidence — the surface already knows they are wrong
20
+ * or superseded, so no confidence number buys them back into a prompt.
21
+ * 3. DEGRADED STATES ARE HONEST, NOT SILENT. an unavailable semantic index yields
22
+ * a STATED reason and a literal fallback — never a silent empty result that
23
+ * reads as "nothing was ever stored." 'no match' and 'index unavailable' are
24
+ * distinct and both said out loud.
25
+ */
26
+ import { HASHED_MEMORY_EMBEDDING_PROVIDER } from './memory-embeddings.js';
27
+ /**
28
+ * Recall-prompt confidence floor. Tied to the store's own baseline: MemoryStore.add
29
+ * stamps new records at confidence 60. This is NOT a number chosen to make things
30
+ * pass — it is the store's own definition of "a real, usable fact."
31
+ */
32
+ export const MIN_PROMPT_MEMORY_CONFIDENCE = 60;
33
+ function provenanceSummary(record) {
34
+ if (record.provenance.length === 0)
35
+ return 'no provenance recorded';
36
+ return `provenance ${record.provenance.slice(0, 2).map((entry) => `${entry.kind}:${entry.ref}`).join(', ')}`;
37
+ }
38
+ /**
39
+ * Recall-eligibility decision for one record, with an honest human-readable reason
40
+ * attached (never a silent yes/no). This is the receipt every surface surfaces.
41
+ *
42
+ * Flagged records (stale/contradicted) are excluded outright regardless of
43
+ * confidence. Everything else is judged on its own stored confidence against
44
+ * MIN_PROMPT_MEMORY_CONFIDENCE — the store's own baseline. Nothing is blanket-boosted.
45
+ */
46
+ export function describeMemoryPromptEligibility(record) {
47
+ const provenance = provenanceSummary(record);
48
+ if (record.reviewState === 'stale' || record.reviewState === 'contradicted') {
49
+ return {
50
+ eligible: false,
51
+ reason: `reviewState is ${record.reviewState} — flagged memory is never injected regardless of confidence (${provenance})`,
52
+ };
53
+ }
54
+ if (record.confidence < MIN_PROMPT_MEMORY_CONFIDENCE) {
55
+ return {
56
+ eligible: false,
57
+ reason: `confidence ${record.confidence}% is below the ${MIN_PROMPT_MEMORY_CONFIDENCE}% recall floor (${provenance})`,
58
+ };
59
+ }
60
+ return {
61
+ eligible: true,
62
+ reason: `confidence ${record.confidence}% clears the ${MIN_PROMPT_MEMORY_CONFIDENCE}% recall floor, reviewState ${record.reviewState} (${provenance})`,
63
+ };
64
+ }
65
+ export function isPromptActiveMemory(record) {
66
+ return describeMemoryPromptEligibility(record).eligible;
67
+ }
68
+ /**
69
+ * A HARD unavailable reason: the semantic index cannot be consulted at all, so a
70
+ * search must fall back to a literal scan and SAY SO — never a silent empty result
71
+ * that reads as "no memory matches" when the index was never asked. Returns null
72
+ * when the index is available and can be consulted.
73
+ */
74
+ export function describeMemoryIndexUnavailable(stats) {
75
+ if (!stats.enabled)
76
+ return 'the semantic memory index is disabled for this store';
77
+ if (!stats.available)
78
+ return `the semantic memory index is unavailable${stats.error ? `: ${stats.error}` : ''}`;
79
+ if (stats.indexedRecords === 0)
80
+ return 'the semantic memory index has no indexed records yet';
81
+ return null;
82
+ }
83
+ /**
84
+ * A SOFT caveat: the index is up and consulted, but running on the built-in
85
+ * hashed-only fallback embedding provider rather than a modeled semantic provider.
86
+ * Still ranks real matches better than a literal scan, but say so rather than
87
+ * presenting it as equivalent. Returns null when a real provider is configured.
88
+ */
89
+ export function describeMemoryIndexCaveat(stats) {
90
+ if (stats.embeddingProviderId === HASHED_MEMORY_EMBEDDING_PROVIDER.id) {
91
+ return 'running on the hashed-only fallback embedding provider (no dedicated semantic model configured) — ranking is approximate, not modeled semantic understanding';
92
+ }
93
+ return null;
94
+ }
95
+ /**
96
+ * Run a search that HONORS the recall-honesty contract end to end:
97
+ * - semantic requested + index consultable → semantic ranking (+ soft caveat when
98
+ * on the hashed fallback provider);
99
+ * - semantic requested + index NOT consultable → literal scan WITH the stated
100
+ * `indexUnavailableReason`, never a silent empty that reads as "nothing stored";
101
+ * - `recall: true` → flagged records excluded outright and sub-floor records
102
+ * dropped, each exclusion counted rather than silently vanished.
103
+ *
104
+ * This is the ONE composition every surface (daemon route, wire client, offline
105
+ * local store) calls, so the contract is applied identically everywhere.
106
+ */
107
+ export function runHonestMemorySearch(store, filter = {}, options = {}) {
108
+ const requestedSemantic = filter.semantic === true;
109
+ let mode = 'literal';
110
+ let indexUnavailableReason = null;
111
+ let caveat = null;
112
+ let baseRecords;
113
+ if (requestedSemantic) {
114
+ const stats = store.vectorStats();
115
+ indexUnavailableReason = describeMemoryIndexUnavailable(stats);
116
+ if (indexUnavailableReason !== null) {
117
+ // Honest degrade: the index cannot be consulted, so fall back to a literal
118
+ // scan and SAY SO via indexUnavailableReason.
119
+ baseRecords = store.search({ ...filter, semantic: false });
120
+ }
121
+ else {
122
+ mode = 'semantic';
123
+ caveat = describeMemoryIndexCaveat(stats);
124
+ baseRecords = store.searchSemantic(filter).map((entry) => entry.record);
125
+ }
126
+ }
127
+ else {
128
+ baseRecords = store.search(filter);
129
+ }
130
+ const totalBeforeRecallFilter = baseRecords.length;
131
+ if (!options.recall) {
132
+ return {
133
+ records: baseRecords,
134
+ mode,
135
+ requestedSemantic,
136
+ indexUnavailableReason,
137
+ caveat,
138
+ recallFiltered: false,
139
+ excludedFlaggedCount: 0,
140
+ excludedBelowFloorCount: 0,
141
+ totalBeforeRecallFilter,
142
+ };
143
+ }
144
+ const kept = [];
145
+ let excludedFlaggedCount = 0;
146
+ let excludedBelowFloorCount = 0;
147
+ for (const record of baseRecords) {
148
+ if (isPromptActiveMemory(record)) {
149
+ kept.push(record);
150
+ continue;
151
+ }
152
+ if (record.reviewState === 'stale' || record.reviewState === 'contradicted') {
153
+ excludedFlaggedCount += 1;
154
+ }
155
+ else {
156
+ excludedBelowFloorCount += 1;
157
+ }
158
+ }
159
+ return {
160
+ records: kept,
161
+ mode,
162
+ requestedSemantic,
163
+ indexUnavailableReason,
164
+ caveat,
165
+ recallFiltered: true,
166
+ excludedFlaggedCount,
167
+ excludedBelowFloorCount,
168
+ totalBeforeRecallFilter,
169
+ };
170
+ }
@@ -1,6 +1,7 @@
1
1
  import type { MemoryAddOptions, MemoryBundle, MemoryDoctorReport, MemoryLink, MemoryRecord, MemoryReviewPatch, MemoryScope, MemorySearchFilter, MemorySemanticSearchResult, MemoryStore } from './memory-store.js';
2
2
  import type { MemoryVectorStats } from './memory-vector-store.js';
3
3
  import type { MemoryImportResult } from './memory-store.js';
4
+ import { type HonestMemorySearchOptions, type HonestMemorySearchResult } from './memory-recall-contract.js';
4
5
  /**
5
6
  * MemoryRegistry — thin observable wrapper around the MemoryStore.
6
7
  * Panels subscribe via listeners; commands push/retrieve through this.
@@ -15,6 +16,13 @@ export declare class MemoryRegistry {
15
16
  add(opts: MemoryAddOptions): Promise<MemoryRecord>;
16
17
  search(filter?: MemorySearchFilter): MemoryRecord[];
17
18
  searchSemantic(filter?: MemorySearchFilter): MemorySemanticSearchResult[];
19
+ /**
20
+ * Search honoring the recall-honesty contract: semantic-or-literal with a stated
21
+ * fallback reason when the index is unavailable, and (with `options.recall`) the
22
+ * flagged/confidence-floor exclusion. This is the method a wire client and an
23
+ * offline surface both route through, so the honesty is identical either way.
24
+ */
25
+ honestSearch(filter?: MemorySearchFilter, options?: HonestMemorySearchOptions): HonestMemorySearchResult;
18
26
  rebuildVectors(): MemoryVectorStats;
19
27
  rebuildVectorsAsync(): Promise<MemoryVectorStats>;
20
28
  vectorStats(): MemoryVectorStats;
@@ -1 +1 @@
1
- {"version":3,"file":"memory-registry.d.ts","sourceRoot":"","sources":["../../../src/platform/state/memory-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnN,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,SAAS,CAAyB;gBAE9B,KAAK,EAAE,WAAW;IAI9B,QAAQ,IAAI,WAAW;IAIvB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAOrC,OAAO,CAAC,MAAM;IAIR,GAAG,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAMxD,MAAM,CAAC,MAAM,GAAE,kBAAuB,GAAG,YAAY,EAAE;IAIvD,cAAc,CAAC,MAAM,GAAE,kBAAuB,GAAG,0BAA0B,EAAE;IAI7E,cAAc,IAAI,iBAAiB;IAI7B,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAIvD,WAAW,IAAI,iBAAiB;IAI1B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAI3C,WAAW,CAAC,KAAK,SAAK,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,EAAE;IAI5D,YAAY,CAAC,MAAM,GAAE,kBAAuB,GAAG,YAAY;IAIrD,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAMrE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAI9B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAMtF,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,EAAE;IAIlC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,YAAY,GAAG,IAAI;IAM3H,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI;IAMjE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAM3B,MAAM,IAAI,YAAY,EAAE;CAGzB"}
1
+ {"version":3,"file":"memory-registry.d.ts","sourceRoot":"","sources":["../../../src/platform/state/memory-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnN,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAyB,KAAK,yBAAyB,EAAE,KAAK,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEnI;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,SAAS,CAAyB;gBAE9B,KAAK,EAAE,WAAW;IAI9B,QAAQ,IAAI,WAAW;IAIvB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAOrC,OAAO,CAAC,MAAM;IAIR,GAAG,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAMxD,MAAM,CAAC,MAAM,GAAE,kBAAuB,GAAG,YAAY,EAAE;IAIvD,cAAc,CAAC,MAAM,GAAE,kBAAuB,GAAG,0BAA0B,EAAE;IAI7E;;;;;OAKG;IACH,YAAY,CAAC,MAAM,GAAE,kBAAuB,EAAE,OAAO,GAAE,yBAA8B,GAAG,wBAAwB;IAIhH,cAAc,IAAI,iBAAiB;IAI7B,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAIvD,WAAW,IAAI,iBAAiB;IAI1B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAI3C,WAAW,CAAC,KAAK,SAAK,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,EAAE;IAI5D,YAAY,CAAC,MAAM,GAAE,kBAAuB,GAAG,YAAY;IAIrD,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAMrE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAI9B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAMtF,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,EAAE;IAIlC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,YAAY,GAAG,IAAI;IAM3H,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI;IAMjE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAM3B,MAAM,IAAI,YAAY,EAAE;CAGzB"}
@@ -1,3 +1,4 @@
1
+ import { runHonestMemorySearch } from './memory-recall-contract.js';
1
2
  /**
2
3
  * MemoryRegistry — thin observable wrapper around the MemoryStore.
3
4
  * Panels subscribe via listeners; commands push/retrieve through this.
@@ -32,6 +33,15 @@ export class MemoryRegistry {
32
33
  searchSemantic(filter = {}) {
33
34
  return this.store.searchSemantic(filter);
34
35
  }
36
+ /**
37
+ * Search honoring the recall-honesty contract: semantic-or-literal with a stated
38
+ * fallback reason when the index is unavailable, and (with `options.recall`) the
39
+ * flagged/confidence-floor exclusion. This is the method a wire client and an
40
+ * offline surface both route through, so the honesty is identical either way.
41
+ */
42
+ honestSearch(filter = {}, options = {}) {
43
+ return runHonestMemorySearch(this.store, filter, options);
44
+ }
35
45
  rebuildVectors() {
36
46
  return this.store.rebuildVectorIndex();
37
47
  }
@@ -141,6 +141,8 @@ export declare class MemoryStore {
141
141
  constructor(dbPath: string | undefined, options: MemoryStoreOptions);
142
142
  init(): Promise<void>;
143
143
  get isReady(): boolean;
144
+ /** The on-disk database path backing this store, or null when ephemeral. */
145
+ get dbPath(): string | null;
144
146
  /** Add a new memory record. Returns the created record. */
145
147
  add(opts: MemoryAddOptions): Promise<MemoryRecord>;
146
148
  /** Retrieve a single record by ID. */