@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
@@ -8,7 +8,7 @@ import { SubscriptionManager } from '../config/subscriptions.js';
8
8
  import { AutomationDeliveryManager, AutomationManager, AutomationRouteStore } from '../automation/index.js';
9
9
  import { ChannelPluginRegistry, ChannelPolicyManager, RouteBindingManager, SurfaceRegistry } from '../channels/index.js';
10
10
  import { ChannelDeliveryRouter } from '../channels/delivery-router.js';
11
- import { ApprovalBroker, GatewayMethodCatalog, SharedSessionBroker } from '../control-plane/index.js';
11
+ import { ApprovalBroker, GatewayMethodCatalog, SharedSessionBroker, registerW3S2GatewayMethods } from '../control-plane/index.js';
12
12
  import { buildSharedSessionAgentSpawnRoutingInput } from '../control-plane/session-intents.js';
13
13
  import { WatcherRegistry } from '../watchers/index.js';
14
14
  import { ArtifactStore } from '../artifacts/index.js';
@@ -27,6 +27,8 @@ import { FileUndoManager } from '../state/file-undo.js';
27
27
  import { WorkspaceCheckpointManager } from '../workspace/checkpoint/index.js';
28
28
  import { MemoryRegistry } from '../state/memory-registry.js';
29
29
  import { MemoryStore } from '../state/memory-store.js';
30
+ import { CodeIndexStore } from '../state/code-index-store.js';
31
+ import { CodeIndexReindexScheduler } from '../state/code-index-reindex.js';
30
32
  import { createDomainDispatch } from './store/index.js';
31
33
  import { DistributedRuntimeManager } from './remote/distributed-runtime-manager.js';
32
34
  import { RemoteRunnerRegistry, RemoteSupervisor } from './remote/index.js';
@@ -72,6 +74,8 @@ import { PolicyRuntimeState } from './permissions/policy-runtime.js';
72
74
  import { requireSurfaceRoot } from './surface-root.js';
73
75
  import { createNoopKeybindingsManager, createNoopPanelManager, } from './host-ui.js';
74
76
  import { createWorkflowServices, } from '../tools/workflow/index.js';
77
+ import { createProcessRegistry } from './fleet/index.js';
78
+ import { createOrchestrationEngine } from '../orchestration/index.js';
75
79
  export function bindProviderOptimizerFeatureFlag(featureFlags, providerOptimizer) {
76
80
  providerOptimizer.setEnabled(featureFlags.isEnabled('provider-optimizer'));
77
81
  return featureFlags.subscribe((flagId, state) => {
@@ -172,6 +176,20 @@ export function createRuntimeServices(options) {
172
176
  executor: agentOrchestrator,
173
177
  configManager,
174
178
  });
179
+ // Wave-3 Part C6 bridge: AgentOrchestrator is constructed before
180
+ // AgentManager exists, so the conversation-snapshot sink is wired here via
181
+ // setConversationSink rather than as a constructor dependency (same
182
+ // ordering constraint as setRuntimeBus above).
183
+ agentOrchestrator.setConversationSink({
184
+ register: (agentId, source) => agentManager.registerConversationSource(agentId, source),
185
+ release: (agentId) => agentManager.releaseConversationSource(agentId),
186
+ });
187
+ // Wave-4 cooperative cancellation bridge (wo701): same ordering constraint
188
+ // and setter pattern as setConversationSink above — AgentOrchestrator is
189
+ // constructed before AgentManager exists.
190
+ agentOrchestrator.setCancellationSource({
191
+ get: (agentId) => agentManager.getCancellationSignal(agentId),
192
+ });
175
193
  agentManager.setRuntimeBus(options.runtimeBus);
176
194
  const wrfcController = new WrfcController(options.runtimeBus, agentMessageBus, {
177
195
  agentManager,
@@ -189,8 +207,9 @@ export function createRuntimeServices(options) {
189
207
  const approvalBroker = new ApprovalBroker({
190
208
  storePath: shellPaths.resolveProjectPath(surfaceRoot, 'control-plane', 'approvals.json'),
191
209
  });
210
+ // ONE home-scoped durable session store; project is DATA on each record.
192
211
  const sessionBroker = new SharedSessionBroker({
193
- storePath: shellPaths.resolveProjectPath(surfaceRoot, 'control-plane', 'sessions.json'),
212
+ storePath: options.sessionStorePath ?? shellPaths.resolveUserPath('control-plane', 'sessions.json'),
194
213
  routeBindings,
195
214
  agentStatusProvider: agentManager,
196
215
  messageSender: agentMessageBus,
@@ -211,6 +230,25 @@ export function createRuntimeServices(options) {
211
230
  embeddingRegistry: memoryEmbeddingRegistry,
212
231
  });
213
232
  const memoryRegistry = new MemoryRegistry(memoryStore);
233
+ // Repo source-tree code index (Wave-5 wo802, W5.3 Stage A) — shares
234
+ // memoryEmbeddingRegistry so code + memory embeddings use one provider and
235
+ // one dimensionality. Schema init only; build is not auto-triggered here
236
+ // (see the RuntimeServices.codeIndexStore doc comment).
237
+ const codeIndexDbPath = join(workingDirectory, '.goodvibes', surfaceRoot, 'code-index.sqlite');
238
+ const codeIndexStore = new CodeIndexStore(workingDirectory, codeIndexDbPath, memoryEmbeddingRegistry);
239
+ codeIndexStore.init();
240
+ if (options.autoStartCodeIndex) {
241
+ codeIndexStore.scheduleBuild();
242
+ }
243
+ // Wave-5 Stage B: tool-site incremental reindex. Gated on the SDK's autoStartCodeIndex opt-in
244
+ // (this library's storage.codeIndexEnabled analog) AND the built-state check inside the
245
+ // scheduler — an unbuilt index is a no-op either way.
246
+ const codeInjectionSettingEnabled = () => options.autoStartCodeIndex === true;
247
+ const codeIndexReindexScheduler = new CodeIndexReindexScheduler({
248
+ target: codeIndexStore,
249
+ workingDirectory,
250
+ isEnabled: codeInjectionSettingEnabled,
251
+ });
214
252
  const deliveryManager = new AutomationDeliveryManager({
215
253
  configManager,
216
254
  secretsManager,
@@ -422,6 +460,9 @@ export function createRuntimeServices(options) {
422
460
  remoteRunnerRegistry,
423
461
  knowledgeService,
424
462
  memoryRegistry,
463
+ codeIndex: codeIndexStore,
464
+ isCodeInjectionSettingEnabled: codeInjectionSettingEnabled,
465
+ codeIndexReindexScheduler,
425
466
  archetypeLoader,
426
467
  configManager,
427
468
  providerRegistry,
@@ -435,6 +476,50 @@ export function createRuntimeServices(options) {
435
476
  sandboxSessionRegistry,
436
477
  workflowServices: workflow,
437
478
  });
479
+ // Honest-unpriced: only price models the catalog actually knows; an
480
+ // unknown model yields null (costState 'unpriced'), never a fabricated $0.
481
+ // SHARED between the fleet registry and the orchestration engine — the
482
+ // single cost source of truth so budget checks and fleet cost totals can
483
+ // never double-count against each other.
484
+ const priceUsage = (model, usage) => {
485
+ if (!model)
486
+ return null;
487
+ const catalogModels = providerRegistry.getRawCatalogModels();
488
+ const known = catalogModels.some((entry) => model === entry.id || model.startsWith(entry.id) || model.includes(entry.id));
489
+ if (!known && !model.endsWith(':free'))
490
+ return null;
491
+ const pricing = providerRegistry.getCostFromCatalog(model);
492
+ return (usage.inputTokens * pricing.input + usage.outputTokens * pricing.output) / 1_000_000;
493
+ };
494
+ // Orchestration engine (Wave 4, wo701) — ships alongside wrfcController, untouched by this change. See the RuntimeServices interface comment.
495
+ const orchestrationEngine = createOrchestrationEngine({
496
+ agentManager,
497
+ configManager,
498
+ runtimeBus: options.runtimeBus,
499
+ projectRoot: workingDirectory,
500
+ priceUsage,
501
+ });
502
+ // Live process registry (W2.1) — narrow structural deps only, constructed
503
+ // after every source manager exists. See the RuntimeServices interface
504
+ // comment for the dispose story (no RuntimeServices-wide shutdown seam yet).
505
+ const processRegistry = createProcessRegistry({
506
+ agentManager,
507
+ wrfcController,
508
+ orchestrationEngine,
509
+ processManager,
510
+ watcherRegistry,
511
+ workflow: {
512
+ workflowManager: workflow.workflowManager,
513
+ triggerManager: workflow.triggerManager,
514
+ scheduleManager: workflow.scheduleManager,
515
+ },
516
+ approvalBroker,
517
+ sessionBroker,
518
+ runtimeBus: options.runtimeBus,
519
+ priceUsage,
520
+ codeIndexService: codeIndexStore,
521
+ });
522
+ registerW3S2GatewayMethods(gatewayMethods, { processRegistry, workspaceCheckpointManager, sessionBroker }); // W3-S2 (routes/register-w3-s2.ts)
438
523
  return {
439
524
  workingDirectory,
440
525
  homeDirectory,
@@ -463,6 +548,8 @@ export function createRuntimeServices(options) {
463
548
  projectPlanningService,
464
549
  memoryStore,
465
550
  memoryRegistry,
551
+ codeIndexStore,
552
+ codeIndexReindexScheduler,
466
553
  serviceRegistry,
467
554
  secretsManager,
468
555
  subscriptionManager,
@@ -515,7 +602,9 @@ export function createRuntimeServices(options) {
515
602
  agentMessageBus,
516
603
  agentOrchestrator,
517
604
  wrfcController,
605
+ orchestrationEngine,
518
606
  processManager,
607
+ processRegistry,
519
608
  modeManager,
520
609
  fileUndoManager,
521
610
  workspaceCheckpointManager,
@@ -524,6 +613,10 @@ export function createRuntimeServices(options) {
524
613
  // Step 1: Re-root MemoryStore — close existing SQLite/vector handles, reopen at new path.
525
614
  const newMemoryDbPath = join(newWorkingDir, '.goodvibes', surfaceRoot, 'memory.sqlite');
526
615
  await memoryStore.reroot(newMemoryDbPath);
616
+ // Step 1b: Re-root the code index alongside memory — otherwise it keeps
617
+ // pointing at the old tree after a workspace swap (Wave-5 wo802 risk #7).
618
+ const newCodeIndexDbPath = join(newWorkingDir, '.goodvibes', surfaceRoot, 'code-index.sqlite');
619
+ await codeIndexStore.reroot(newWorkingDir, newCodeIndexDbPath);
527
620
  // Step 2: Re-root ProjectIndex — flush current path, reset, load from new directory.
528
621
  await projectIndex.reroot(newWorkingDir);
529
622
  // Step 3: Subsystems that cannot be live-rerooted emit a warn log.
@@ -0,0 +1,234 @@
1
+ /**
2
+ * client.ts — the SDK session-spine surface client.
3
+ *
4
+ * The in-process coordinator that mirrors a surface's OWN session identity
5
+ * (create / resume / heartbeat / close) into the daemon-hosted session spine.
6
+ * It sits NEXT TO a surface's local session truth, never replacing it: the local
7
+ * store stays the offline read-model; this client mirrors identity to the daemon
8
+ * and buffers ops when the daemon is unreachable.
9
+ *
10
+ * This is the ONE core extracted from two near-twin implementations — the TUI's
11
+ * typed-client version (`goodvibes-tui` src/runtime/session-spine-client.ts) and
12
+ * the agent's raw-REST version (`goodvibes-agent` src/runtime/session-spine-client.ts).
13
+ * The union of their behaviors is the spec; their differences are parameterized:
14
+ *
15
+ * - TRANSPORT is injected. The core builds a canonical
16
+ * {@link RegisterSharedSessionInput} and hands it to an injected
17
+ * {@link SpineTransport}; the adapter performs the real wire call (a typed SDK
18
+ * sessions client, or a hand-rolled version-tolerant REST mirror) and folds its
19
+ * result into a {@link SpineResult}. The core NEVER assumes a typed client
20
+ * exists — that is exactly why the agent, which compiles against a pinned npm
21
+ * SDK that may predate `sessions.register`, can still use this core.
22
+ * - ACTIVATION MODE is optional. Construct WITH a `transport` for
23
+ * live-immediately mode (the agent — live for the whole process lifetime), or
24
+ * WITHOUT one for dormant-until-`activate()` mode (the TUI — activated once its
25
+ * bootstrap adopts a compatible external daemon, deactivated when the mode is
26
+ * lost).
27
+ * - PARTICIPANT identity, origin `kind`, queue bound and heartbeat window are
28
+ * options with the verified defaults.
29
+ *
30
+ * Discipline (load-bearing for the interactive-latency budget):
31
+ * - Every public method (register / reopen / heartbeat / close /
32
+ * foldLegacyRecords) is fire-and-forget: it returns `void` SYNCHRONOUSLY and
33
+ * never throws into the caller, even when the wire call rejects. Session
34
+ * start/resume/heartbeat never block the render or turn path.
35
+ * - Before a transport is attached every op is queued, never dropped-on-the-floor
36
+ * and never attempted over a transport that does not exist. Attaching flushes
37
+ * the backlog.
38
+ * - Offline ops go into a bounded ring (drop-oldest); flush is idempotent because
39
+ * register is an upsert.
40
+ * - Heartbeat is debounced/coalesced to at most one wire call per window and omits
41
+ * the title so it never renames a titled session.
42
+ * - A timer-driven keepalive fires the heartbeat on a fixed cadence INDEPENDENT of
43
+ * render/turn activity, so a live-but-idle surface keeps its participant
44
+ * lastSeenAt fresh and never falls outside the daemon's freshness/reaper windows.
45
+ */
46
+ import { logger } from '../../utils/logger.js';
47
+ import type { RegisterSharedSessionInput, SharedSessionKind, SharedSessionParticipant } from '../../control-plane/index.js';
48
+ /**
49
+ * The canonical TUI participant (TRANSPORT axis). Pass as the `participant` option
50
+ * when the surface is the operator terminal UI.
51
+ */
52
+ export declare const TUI_SPINE_PARTICIPANT: Omit<SharedSessionParticipant, 'lastSeenAt'>;
53
+ /**
54
+ * The canonical agent participant (TRANSPORT axis). `surfaceKind` stays 'service';
55
+ * the record origin `kind` ('agent') is stamped by the REST mirror server-side, not
56
+ * here — so the agent leaves `recordKind` unset.
57
+ */
58
+ export declare const AGENT_SPINE_PARTICIPANT: Omit<SharedSessionParticipant, 'lastSeenAt'>;
59
+ /** Honest reachability posture derived from this client's own wire attempts. */
60
+ export type SpineReachability = 'unknown' | 'online' | 'offline';
61
+ /**
62
+ * Outcome of a single injected-transport op, folding the two real backends' result
63
+ * vocabularies into one common core:
64
+ * - `'ok'` — the daemon applied it. Reachability → online; flush the queue.
65
+ * - `'offline'` — a transient connectivity fault (host unreachable). Reachability
66
+ * → offline; enqueue for idempotent replay on reconnect.
67
+ * - `'rejected'` — a DURABLE refusal (auth required / route missing / server error).
68
+ * NOT a connectivity fault: logged, NEVER enqueued (so it can't
69
+ * retry-forever), reachability left unchanged.
70
+ */
71
+ export type SpineOutcome = 'ok' | 'offline' | 'rejected';
72
+ export interface SpineResult {
73
+ readonly outcome: SpineOutcome;
74
+ readonly error?: string | undefined;
75
+ }
76
+ /**
77
+ * The injected async transport. Structurally satisfied by a thin adapter over the
78
+ * SDK's typed HTTP sessions client (TUI) or over a hand-rolled REST mirror (agent).
79
+ * The core only ever calls these two methods and reads the folded {@link SpineResult}.
80
+ */
81
+ export interface SpineTransport {
82
+ register(input: RegisterSharedSessionInput): Promise<SpineResult>;
83
+ close(sessionId: string): Promise<SpineResult>;
84
+ }
85
+ export interface SessionSpineRecord {
86
+ readonly sessionId: string;
87
+ readonly project: string;
88
+ readonly title?: string | undefined;
89
+ readonly userId?: string | undefined;
90
+ }
91
+ type SpineLogger = Pick<typeof logger, 'debug' | 'info'>;
92
+ export interface SessionSpineClientOptions {
93
+ /**
94
+ * The participant identity stamped onto every register/heartbeat (TRANSPORT axis).
95
+ * Required — each surface passes its own (e.g. {@link TUI_SPINE_PARTICIPANT} /
96
+ * {@link AGENT_SPINE_PARTICIPANT}).
97
+ */
98
+ readonly participant: Omit<SharedSessionParticipant, 'lastSeenAt'>;
99
+ /**
100
+ * Attach the transport at construction for LIVE-IMMEDIATELY mode (the agent is
101
+ * live for the whole process lifetime). Omit for DORMANT-UNTIL-`activate()` mode
102
+ * (the TUI activates once its bootstrap adopts a compatible external daemon).
103
+ */
104
+ readonly transport?: SpineTransport | undefined;
105
+ /**
106
+ * Origin record `kind` stamped into every built input. The TUI stamps `'tui'`;
107
+ * the agent leaves it unset (its REST mirror stamps `'agent'` server-side).
108
+ */
109
+ readonly recordKind?: SharedSessionKind | undefined;
110
+ /**
111
+ * Optional reachability probe backing {@link SessionSpineClient.probeReachability}
112
+ * (the agent's deferred-startup GET /status). Returns true when the host answered.
113
+ * Omitted for the TUI (whose reachability rides its wire calls). Runs OFF the
114
+ * interactive path.
115
+ */
116
+ readonly probe?: (() => Promise<boolean>) | undefined;
117
+ readonly now?: () => number;
118
+ readonly queueLimit?: number;
119
+ readonly heartbeatMinIntervalMs?: number;
120
+ readonly log?: SpineLogger;
121
+ }
122
+ export declare class SessionSpineClient {
123
+ private readonly participant;
124
+ private readonly recordKind;
125
+ private readonly probeImpl;
126
+ private readonly now;
127
+ private readonly queueLimit;
128
+ private readonly heartbeatMinIntervalMs;
129
+ private readonly log;
130
+ private transport;
131
+ private reachability;
132
+ private readonly records;
133
+ private readonly queue;
134
+ private lastHeartbeatAt;
135
+ private heartbeatTimer;
136
+ private flushing;
137
+ /** The most recently registered/reopened session — the keepalive heartbeat target. */
138
+ private lastSessionId;
139
+ /**
140
+ * Timer-driven keepalive: fires the heartbeat on a fixed cadence INDEPENDENT of
141
+ * render/turn activity, so a live-but-render-silent surface keeps its participant
142
+ * lastSeenAt fresh. Each tick is just a heartbeat() call, so it rides the SAME
143
+ * bounded offline-queue/reconnect handling as every other op — no new retry loop,
144
+ * no faster-than-cadence attempts against a dead daemon.
145
+ */
146
+ private keepaliveTimer;
147
+ constructor(options: SessionSpineClientOptions);
148
+ /** Honest reachability: 'unknown' until a wire call resolves, then online/offline. */
149
+ status(): SpineReachability;
150
+ /** Whether a transport is currently attached. */
151
+ get active(): boolean;
152
+ /** Current bounded offline-queue depth (for diagnostics / tests). */
153
+ get pendingOps(): number;
154
+ /** The session the keepalive heartbeat currently targets (diagnostics/tests). */
155
+ get keepaliveSessionId(): string | null;
156
+ /**
157
+ * The CANONICAL "which wire rows are mine" set: every sessionId this client
158
+ * has register()/reopen()'d and not yet close()'d, regardless of whatever id
159
+ * a caller's own local store separately uses for the same conceptual
160
+ * session. register()/reopen() send exactly the `sessionId` the caller
161
+ * passes in — this client never assumes that string also matches a local
162
+ * broker's own idea of the session's id. A cross-surface read facade (the
163
+ * SDK's SessionUnionCache) uses this to recognize its own wire mirror by
164
+ * the id ACTUALLY SENT, not by hoping a local reader's id happens to agree.
165
+ */
166
+ get mirroredSessionIds(): ReadonlySet<string>;
167
+ /**
168
+ * DORMANT-MODE activation: attach the transport once a compatible external daemon
169
+ * has been adopted. Flushes anything queued while dormant, starts the keepalive.
170
+ * Reachability stays 'unknown' until the first wire call resolves.
171
+ */
172
+ activate(transport: SpineTransport): void;
173
+ /**
174
+ * Detach the transport (daemon mode resolved to non-external, or was lost). Ops
175
+ * continue to be queued (bounded, drop-oldest) rather than dropped.
176
+ */
177
+ deactivate(reason: string): void;
178
+ /** CREATE: fire-and-forget initial registration (title stamped once). */
179
+ register(record: SessionSpineRecord): void;
180
+ /** RESUME: fire-and-forget reopen (reopen:true, no title) — the only reopen path. */
181
+ reopen(record: SessionSpineRecord): void;
182
+ /**
183
+ * HEARTBEAT: debounced re-register, coalesced to one wire call per window, no title,
184
+ * no reopen. Safe to call on every turn/render tick — internally a no-op unless the
185
+ * window has elapsed.
186
+ */
187
+ heartbeat(sessionId: string): void;
188
+ /** CLOSE: best-effort, fire-and-forget; tolerate a racing daemon stop. */
189
+ close(sessionId: string): void;
190
+ /**
191
+ * LEGACY FOLD: register each per-project record; a record whose id is in `closedIds`
192
+ * is registered then closed so a locally-closed session STAYS closed in the daemon
193
+ * (honest history). Idempotent — register is an upsert; closing an already-closed
194
+ * record is a no-op.
195
+ */
196
+ foldLegacyRecords(records: readonly SessionSpineRecord[], closedIds: ReadonlySet<string>): void;
197
+ /** Reachability probe — runs OFF the interactive path (deferred startup). Flushes on
198
+ * success. A no-op returning the current status when no `probe` option was supplied. */
199
+ probeReachability(): Promise<SpineReachability>;
200
+ /** Clears the pending heartbeat + keepalive timers; call on shutdown. */
201
+ dispose(): void;
202
+ private startKeepalive;
203
+ private stopKeepalive;
204
+ private cacheHeartbeatRecord;
205
+ private buildInput;
206
+ private withFreshLastSeen;
207
+ private dispatchRegister;
208
+ private runRegister;
209
+ private runClose;
210
+ private enqueue;
211
+ private flush;
212
+ }
213
+ export interface FoldLegacySpineStoreOptions {
214
+ readonly storePath: string;
215
+ readonly markerPath: string;
216
+ readonly project: string;
217
+ readonly now?: () => number;
218
+ readonly log?: SpineLogger;
219
+ }
220
+ export interface FoldLegacySpineStoreResult {
221
+ readonly folded: number;
222
+ readonly skipped: boolean;
223
+ }
224
+ /**
225
+ * Reads a surface's OWN project-scoped control-plane sessions.json and folds each
226
+ * record into the daemon via the client (register upsert; closed records also
227
+ * closed). Writes a marker file so subsequent runs are a no-op. Register is
228
+ * idempotent, so even a marker-less re-run is safe. Only folds the store for the
229
+ * project it is invoked from — the per-project discovery scope is documented, not
230
+ * silently "complete" across every project a surface has ever run in.
231
+ */
232
+ export declare function foldLegacySpineStore(client: Pick<SessionSpineClient, 'foldLegacyRecords'>, options: FoldLegacySpineStoreOptions): FoldLegacySpineStoreResult;
233
+ export {};
234
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/platform/runtime/session-spine/client.ts"],"names":[],"mappings":"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"}