@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
@@ -46,6 +46,19 @@ function extractErrorMessage(err) {
46
46
  * sessionId, timestamps, and source context.
47
47
  *
48
48
  * This is the authoritative event transport for runtime domain signaling.
49
+ *
50
+ * DISPATCH ORDERING GUARANTEE (contract — pinned by
51
+ * test/runtime-event-bus-dispatch-contract.test.ts): {@link emit} NEVER invokes
52
+ * a subscriber synchronously. Each matching handler is deferred to its own
53
+ * `queueMicrotask`, so emit() always returns to its caller — and the caller's
54
+ * remaining synchronous statements run — BEFORE any listener fires. A component
55
+ * may therefore emit an event from the MIDDLE of a state mutation without risk
56
+ * that a subscriber observes the half-applied state: by the time a listener
57
+ * runs, the mutating call has already completed and the state has settled. This
58
+ * asynchronous-dispatch ordering is load-bearing for event-ordering safety
59
+ * across the runtime (e.g. the orchestration zombie-reap path relies on
60
+ * listeners never seeing a mutation mid-flight) — do NOT replace queueMicrotask
61
+ * with synchronous invocation.
49
62
  */
50
63
  export class RuntimeEventBus {
51
64
  /** Per-event-type listener sets. Keyed by the exact event type string. */
@@ -1 +1 @@
1
- {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../../../src/platform/runtime/feature-flags/flags.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,EAyctC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAE7D,CAAC"}
1
+ {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../../../src/platform/runtime/feature-flags/flags.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,EAogBtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAE7D,CAAC"}
@@ -190,6 +190,43 @@ export const FEATURE_FLAGS = [
190
190
  tier: 9,
191
191
  runtimeToggleable: true,
192
192
  },
193
+ {
194
+ id: 'agent-passive-knowledge-injection',
195
+ name: 'Agent Passive Knowledge Injection',
196
+ description: 'Enables per-turn re-retrieval of project-memory knowledge against the EVOLVING main-'
197
+ + 'session conversation (steers, new sub-topics), not just the frozen spawn-time task. '
198
+ + 'Re-runs retrieval only when a new user/steer message arrived this turn, applies a '
199
+ + 'relevance floor to filter filler, and holds the injected block to a hard token '
200
+ + 'budget (min ~800 tokens or 3% of the model context window) with a visible per-turn '
201
+ + 'record (candidates considered, ids injected, ids dropped for budget, token cost, '
202
+ + 'embeddings backend) stored on AgentRecord.turnInjections and the session transcript. '
203
+ + 'Default-on is safe specifically because the block is hard-budgeted and every turn '
204
+ + 'is honestly recorded, never silently eating context. Disable or set the budget to 0 '
205
+ + 'to revert to spawn-time-only injection (base system prompt byte-identical).',
206
+ defaultState: 'enabled',
207
+ tier: 9,
208
+ runtimeToggleable: true,
209
+ },
210
+ {
211
+ id: 'agent-passive-code-injection',
212
+ name: 'Agent Passive Code Injection',
213
+ description: 'Enables per-turn passive retrieval from the repo SOURCE-TREE CODE INDEX (CodeIndexStore) '
214
+ + 'alongside project-memory knowledge, sharing the SAME token budget and relevance floor. '
215
+ + 'When the query would benefit and the index is built, similarity-ranked code chunks are '
216
+ + 'injected as untrusted reference pointers, each recorded on the turn injection record with '
217
+ + 'source=code-index and its honest match label (semantic/lexical). Never injects from an '
218
+ + 'empty or provider-mismatched index, or from a hashed-only (no real semantic) provider — '
219
+ + 'the store exposes each of those and the turn record states which. '
220
+ + 'DEFAULT OFF (unlike agent-passive-knowledge-injection, which defaults on): code injection '
221
+ + 'is a newer, higher-variance signal than reviewed project memory — code chunks carry no '
222
+ + 'review/trust provenance and a weak similarity match can pull in a plausibly-worded but '
223
+ + 'wrong chunk — so this first landing is opt-in, earned on by the same hard-budget + '
224
+ + 'honest-record discipline before it becomes a default. Also respects the embedder’s '
225
+ + 'storage.codeIndexEnabled setting; disable either to revert to memory-only injection.',
226
+ defaultState: 'disabled',
227
+ tier: 9,
228
+ runtimeToggleable: true,
229
+ },
193
230
  {
194
231
  id: 'output-schema-fingerprint',
195
232
  name: 'Output Schema Fingerprints',
@@ -306,11 +343,29 @@ export const FEATURE_FLAGS = [
306
343
  runtimeToggleable: true,
307
344
  },
308
345
  {
346
+ // NOTE: control-plane-gateway is the ONE tier-10 flag that defaults ON (One-Platform
347
+ // Wave 1). A stock daemon (no config) must be able to stream companion chat over SSE;
348
+ // leaving this OFF made a fresh daemon return 503 on the live-stream path (the W1
349
+ // "stock daemon is dead" bug).
350
+ //
351
+ // HONEST SURFACE STATEMENT: flipping this default ON DOES expose surface — just not
352
+ // an UNAUTHENTICATED one. Concretely it turns on: (1) the auth-gated streaming surface
353
+ // — SSE `/api/control-plane/events`, the companion-chat `.../events` stream, and the WS
354
+ // control channel — every one of which returns 401 before any principal is resolved
355
+ // (daemon-sdk/control-routes.ts), and per-channel scopes are enforced on the fan-out
356
+ // (e.g. read:sessions on session-update); and (2) the inert pre-auth login shell — the
357
+ // handful of unauthenticated bootstrap endpoints that carry NO session/runtime data and
358
+ // exist only to establish auth. The default bind stays loopback and the 60/min + 5/min
359
+ // rate limiters are unchanged. It remains runtimeToggleable, so an operator who wants a
360
+ // request/response-only daemon can turn it back off via config
361
+ // (`flags: { 'control-plane-gateway': 'disabled' }`), which the manager honours over
362
+ // this default. Do NOT generalise this to the other tier-10 siblings (slack/discord/web
363
+ // surfaces, delivery-engine, etc.) — they stay OFF until individually validated.
309
364
  id: 'control-plane-gateway',
310
365
  name: 'Control-Plane Gateway',
311
366
  description: 'Enables the shared gateway/control-plane host that serves state snapshots, live streams, '
312
367
  + 'and authenticated automation control APIs to terminal hosts and remote clients.',
313
- defaultState: 'disabled',
368
+ defaultState: 'enabled',
314
369
  tier: 10,
315
370
  runtimeToggleable: true,
316
371
  },
@@ -0,0 +1,56 @@
1
+ /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
+ import type { AgentRecord } from '../../../tools/agent/manager.js';
3
+ import type { ProcessActivity, ProcessNode, ProcessState, ProcessUsage } from '../types.js';
4
+ /** Chain node ids are namespaced to avoid colliding with agent/process ids. */
5
+ export declare function chainNodeId(chainId: string): string;
6
+ /** Subtask node ids are namespaced to avoid colliding with agent/process ids. */
7
+ export declare function subtaskNodeId(subtaskId: string): string;
8
+ /** Work-item node ids are namespaced to avoid colliding with agent/process ids (Wave 4, wo701). */
9
+ export declare function workItemNodeId(workItemId: string): string;
10
+ /**
11
+ * One activity side-table entry. Registry-owned; populated from the EXISTING
12
+ * runtime-bus 'agents' channel emitters (no new event contract).
13
+ */
14
+ export interface AgentActivityEntry {
15
+ readonly state: Extract<ProcessState, 'thinking' | 'executing-tool' | 'streaming' | 'retrying' | 'queued' | 'done' | 'failed'>;
16
+ readonly activity?: ProcessActivity | undefined;
17
+ /** Epoch ms of the last observed bus event for this agent. */
18
+ readonly at: number;
19
+ }
20
+ /** Assembly context the agent adapter needs to derive state and edges. */
21
+ export interface AgentAdapterContext {
22
+ readonly now: number;
23
+ readonly stalledThresholdMs: number;
24
+ /** Side-table entries keyed by agentId. Empty map when no runtimeBus was provided. */
25
+ readonly activity: ReadonlyMap<string, AgentActivityEntry>;
26
+ /** True when a runtimeBus feeds the side-table — gates the stalled derivation. */
27
+ readonly liveness: boolean;
28
+ /** Agent ids that have a pending shared approval (metadata.agentId match). */
29
+ readonly pendingApprovalAgentIds: ReadonlySet<string>;
30
+ /** Session ids that have a pending shared approval (sessionRef cross-match). */
31
+ readonly pendingApprovalSessionIds: ReadonlySet<string>;
32
+ /** agentId → bound sessionId (from the session broker, when available). */
33
+ readonly sessionIdByAgentId: ReadonlyMap<string, string>;
34
+ /** Raw WrfcChain ids present in this snapshot. */
35
+ readonly chainIds: ReadonlySet<string>;
36
+ /** Raw WrfcSubtask ids present in this snapshot. */
37
+ readonly subtaskIds: ReadonlySet<string>;
38
+ /** Raw orchestration-engine WorkItem ids present in this snapshot (Wave 4, wo701). */
39
+ readonly workItemIds: ReadonlySet<string>;
40
+ /** orchestrationNodeId → owning agentId, for parentNodeId edge resolution. */
41
+ readonly agentIdByOrchestrationNodeId: ReadonlyMap<string, string>;
42
+ /** All agent ids present in this snapshot. */
43
+ readonly agentIds: ReadonlySet<string>;
44
+ readonly priceUsage?: ((model: string | undefined, usage: ProcessUsage) => number | null) | undefined;
45
+ /**
46
+ * True when the registry was constructed with a `messageBus` dep — gates
47
+ * `steerable`. Without it, steering has no delivery mechanism, so every
48
+ * agent (even a live one) honestly reports steerable=false.
49
+ */
50
+ readonly messageBusPresent: boolean;
51
+ }
52
+ /** AgentRecord.usage + toolCallCount → ProcessUsage. */
53
+ export declare function usageFromAgentRecord(record: AgentRecord): ProcessUsage | undefined;
54
+ /** AgentRecord → ProcessNode. */
55
+ export declare function adaptAgent(record: AgentRecord, ctx: AgentAdapterContext): ProcessNode;
56
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../../../src/platform/runtime/fleet/adapters/agent.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,YAAY,EACZ,YAAY,EACb,MAAM,aAAa,CAAC;AAErB,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,UAAU,GAAG,gBAAgB,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;IAC/H,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAChD,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC3D,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtD,gFAAgF;IAChF,QAAQ,CAAC,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxD,2EAA2E;IAC3E,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,sFAAsF;IACtF,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,8EAA8E;IAC9E,QAAQ,CAAC,4BAA4B,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnE,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,YAAY,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IACtG;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;CACrC;AAED,wDAAwD;AACxD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS,CAYlF;AA8ED,iCAAiC;AACjC,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,mBAAmB,GAAG,WAAW,CA6CrF"}
@@ -0,0 +1,143 @@
1
+ /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
+ /** Chain node ids are namespaced to avoid colliding with agent/process ids. */
3
+ export function chainNodeId(chainId) {
4
+ return `chain:${chainId}`;
5
+ }
6
+ /** Subtask node ids are namespaced to avoid colliding with agent/process ids. */
7
+ export function subtaskNodeId(subtaskId) {
8
+ return `subtask:${subtaskId}`;
9
+ }
10
+ /** Work-item node ids are namespaced to avoid colliding with agent/process ids (Wave 4, wo701). */
11
+ export function workItemNodeId(workItemId) {
12
+ return `work-item:${workItemId}`;
13
+ }
14
+ /** AgentRecord.usage + toolCallCount → ProcessUsage. */
15
+ export function usageFromAgentRecord(record) {
16
+ if (!record.usage)
17
+ return undefined;
18
+ return {
19
+ inputTokens: record.usage.inputTokens,
20
+ outputTokens: record.usage.outputTokens,
21
+ cacheReadTokens: record.usage.cacheReadTokens,
22
+ cacheWriteTokens: record.usage.cacheWriteTokens,
23
+ reasoningTokens: record.usage.reasoningTokens,
24
+ llmCallCount: record.usage.llmCallCount,
25
+ turnCount: record.usage.turnCount,
26
+ toolCallCount: record.toolCallCount,
27
+ };
28
+ }
29
+ /**
30
+ * parentId precedence (brief-mandated, Wave-4 stable):
31
+ * wrfcSubtaskId → `subtask:<id>` else wrfcId → `chain:<id>` else
32
+ * workItemId → `work-item:<id>` (Wave 4, wo701 — orchestration-engine phase
33
+ * agents, a separate track from WRFC so the two systems' agents are never
34
+ * conflated) else orchestrationNodeId/parentNodeId (resolved to the owning
35
+ * agent) else parentAgentId. Every step falls through when the referenced
36
+ * node is not present in this snapshot, so edges always resolve or the node
37
+ * is a root.
38
+ */
39
+ function resolveParentId(record, ctx) {
40
+ if (record.wrfcSubtaskId && ctx.subtaskIds.has(record.wrfcSubtaskId)) {
41
+ return subtaskNodeId(record.wrfcSubtaskId);
42
+ }
43
+ if (record.wrfcId && ctx.chainIds.has(record.wrfcId)) {
44
+ return chainNodeId(record.wrfcId);
45
+ }
46
+ if (record.workItemId && ctx.workItemIds.has(record.workItemId)) {
47
+ return workItemNodeId(record.workItemId);
48
+ }
49
+ if (record.parentNodeId) {
50
+ const owner = ctx.agentIdByOrchestrationNodeId.get(record.parentNodeId);
51
+ if (owner && owner !== record.id && ctx.agentIds.has(owner))
52
+ return owner;
53
+ }
54
+ if (record.parentAgentId && ctx.agentIds.has(record.parentAgentId)) {
55
+ return record.parentAgentId;
56
+ }
57
+ return undefined;
58
+ }
59
+ function deriveAgentState(record, entry, sessionId, ctx) {
60
+ switch (record.status) {
61
+ case 'completed':
62
+ return 'done';
63
+ case 'failed':
64
+ return 'failed';
65
+ case 'cancelled':
66
+ // terminationKind distinguishes a graceful interrupt request from a hard
67
+ // kill for display purposes (Wave-3 verb formalization). Records
68
+ // persisted before this field existed have no terminationKind and
69
+ // default to 'killed' — the historical behavior.
70
+ return record.terminationKind === 'interrupt' ? 'interrupted' : 'killed';
71
+ case 'pending':
72
+ return 'queued';
73
+ case 'running':
74
+ break;
75
+ }
76
+ // running — fine-grained derivation.
77
+ if (ctx.pendingApprovalAgentIds.has(record.id) ||
78
+ (sessionId !== undefined && ctx.pendingApprovalSessionIds.has(sessionId))) {
79
+ return 'awaiting-approval';
80
+ }
81
+ // Stalled: only derivable when a bus feeds the side-table (headless runtimes
82
+ // degrade to the coarse state, never crash). Baseline is the last observed
83
+ // event, or startedAt when the agent predates the registry.
84
+ //
85
+ // executing-tool is exempt: AGENT_AWAITING_TOOL stamps activity.at once at
86
+ // tool start and no further 'agents' event fires until the tool returns, so
87
+ // a long-running tool call (build, test suite, bash) would otherwise be
88
+ // misread as silence and falsely flip a working agent to 'stalled'. Only
89
+ // thinking/streaming (and other non-tool) silence may stall.
90
+ if (ctx.liveness && entry?.state !== 'executing-tool') {
91
+ const lastActivityAt = entry?.at ?? record.startedAt;
92
+ if (ctx.now - lastActivityAt > ctx.stalledThresholdMs)
93
+ return 'stalled';
94
+ }
95
+ if (entry && entry.state !== 'done' && entry.state !== 'failed')
96
+ return entry.state;
97
+ return 'executing-tool';
98
+ }
99
+ /** AgentRecord → ProcessNode. */
100
+ export function adaptAgent(record, ctx) {
101
+ const entry = ctx.activity.get(record.id);
102
+ const sessionId = ctx.sessionIdByAgentId.get(record.id);
103
+ const state = deriveAgentState(record, entry, sessionId, ctx);
104
+ const usage = usageFromAgentRecord(record);
105
+ const active = record.status === 'pending' || record.status === 'running';
106
+ let costUsd = null;
107
+ let costState = 'unpriced';
108
+ if (usage && ctx.priceUsage) {
109
+ let priced = null;
110
+ try {
111
+ priced = ctx.priceUsage(record.model, usage);
112
+ }
113
+ catch {
114
+ priced = null;
115
+ }
116
+ if (priced !== null) {
117
+ costUsd = priced;
118
+ costState = 'priced';
119
+ }
120
+ }
121
+ const label = record.wrfcRole ? `${record.template} (${record.wrfcRole})` : record.template;
122
+ const elapsedMs = Math.max(0, (record.completedAt ?? ctx.now) - record.startedAt);
123
+ return {
124
+ id: record.id,
125
+ kind: 'agent',
126
+ parentId: resolveParentId(record, ctx),
127
+ label,
128
+ task: record.task,
129
+ state,
130
+ startedAt: record.startedAt,
131
+ completedAt: record.completedAt,
132
+ elapsedMs,
133
+ usage,
134
+ model: record.model,
135
+ provider: record.provider,
136
+ costUsd,
137
+ costState,
138
+ currentActivity: entry?.activity,
139
+ capabilities: { interruptible: active, killable: active, pausable: false, resumable: false, steerable: active && ctx.messageBusPresent },
140
+ sessionRef: { sessionId, agentId: record.id },
141
+ raw: record,
142
+ };
143
+ }
@@ -0,0 +1,30 @@
1
+ /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
+ import type { AutomationJob } from '../../../automation/jobs.js';
3
+ import type { ProcessNode } from '../types.js';
4
+ /**
5
+ * Automation-job node ids are namespaced separately from workflow-tool
6
+ * ScheduleEntry ids (adapters/schedule.ts's scheduleNodeId) — same kind
7
+ * ('schedule'), completely different id space (AutomationJob.id vs
8
+ * ScheduleEntry.name), so the two can never collide even though a user
9
+ * could name a workflow-tool schedule and an automation job identically.
10
+ */
11
+ export declare function automationJobNodeId(jobId: string): string;
12
+ /** The `raw` shape for an automation-job-sourced 'schedule' node — the source marker registry.ts's control dispatch switches on to route kill/interrupt/resume to AutomationManager instead of ScheduleManager. */
13
+ export interface AutomationJobRaw {
14
+ readonly source: 'automation-manager';
15
+ readonly job: AutomationJob;
16
+ }
17
+ /** Type guard for AutomationJobRaw, used by registry.ts to distinguish an automation-job 'schedule' node's `raw` from a workflow-tool ScheduleEntry's `raw` — both share the 'schedule' kind. */
18
+ export declare function isAutomationJobRaw(raw: unknown): raw is AutomationJobRaw;
19
+ /**
20
+ * AutomationJob → ProcessNode (Wave 6, wo-F item d4). Reuses the 'schedule'
21
+ * kind rather than inventing a new one — a job created via `/schedule` IS a
22
+ * schedule from the user's viewpoint, even though it lives in a completely
23
+ * separate subsystem (platform/automation) from the workflow-tool's
24
+ * ScheduleManager (platform/tools/workflow) that adapters/schedule.ts
25
+ * already covers. `raw.source: 'automation-manager'` (AutomationJobRaw)
26
+ * distinguishes the origin so registry.ts's kill/interrupt/resume dispatch
27
+ * can route to the right manager.
28
+ */
29
+ export declare function adaptAutomationJob(job: AutomationJob): ProcessNode;
30
+ //# sourceMappingURL=automation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation.d.ts","sourceRoot":"","sources":["../../../../../src/platform/runtime/fleet/adapters/automation.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,mNAAmN;AACnN,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;CAC7B;AAED,iMAAiM;AACjM,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,gBAAgB,CAExE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,WAAW,CAelE"}
@@ -0,0 +1,41 @@
1
+ /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
+ /**
3
+ * Automation-job node ids are namespaced separately from workflow-tool
4
+ * ScheduleEntry ids (adapters/schedule.ts's scheduleNodeId) — same kind
5
+ * ('schedule'), completely different id space (AutomationJob.id vs
6
+ * ScheduleEntry.name), so the two can never collide even though a user
7
+ * could name a workflow-tool schedule and an automation job identically.
8
+ */
9
+ export function automationJobNodeId(jobId) {
10
+ return `automation-job:${jobId}`;
11
+ }
12
+ /** Type guard for AutomationJobRaw, used by registry.ts to distinguish an automation-job 'schedule' node's `raw` from a workflow-tool ScheduleEntry's `raw` — both share the 'schedule' kind. */
13
+ export function isAutomationJobRaw(raw) {
14
+ return raw !== null && typeof raw === 'object' && raw.source === 'automation-manager';
15
+ }
16
+ /**
17
+ * AutomationJob → ProcessNode (Wave 6, wo-F item d4). Reuses the 'schedule'
18
+ * kind rather than inventing a new one — a job created via `/schedule` IS a
19
+ * schedule from the user's viewpoint, even though it lives in a completely
20
+ * separate subsystem (platform/automation) from the workflow-tool's
21
+ * ScheduleManager (platform/tools/workflow) that adapters/schedule.ts
22
+ * already covers. `raw.source: 'automation-manager'` (AutomationJobRaw)
23
+ * distinguishes the origin so registry.ts's kill/interrupt/resume dispatch
24
+ * can route to the right manager.
25
+ */
26
+ export function adaptAutomationJob(job) {
27
+ return {
28
+ id: automationJobNodeId(job.id),
29
+ kind: 'schedule',
30
+ parentId: undefined,
31
+ label: job.name,
32
+ task: job.execution.prompt,
33
+ state: job.enabled ? 'idle' : 'paused',
34
+ startedAt: job.lastRunAt,
35
+ elapsedMs: 0,
36
+ costUsd: null,
37
+ costState: 'unpriced',
38
+ capabilities: { interruptible: false, killable: true, pausable: job.enabled, resumable: !job.enabled, steerable: false },
39
+ raw: { source: 'automation-manager', job },
40
+ };
41
+ }
@@ -0,0 +1,12 @@
1
+ /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
+ import type { BackgroundProcess } from '../../../tools/shared/process-manager.js';
3
+ import type { ProcessNode } from '../types.js';
4
+ /** Last non-empty stdout line — already tracked on the record, no new emission needed. */
5
+ export declare function lastOutputLine(stdout: readonly string[]): string | undefined;
6
+ /**
7
+ * BackgroundProcess → ProcessNode. Silent source (no bus emission): liveness
8
+ * rides the registry tick; currentActivity is the last stdout line the
9
+ * ProcessManager already buffers.
10
+ */
11
+ export declare function adaptBackgroundProcess(record: BackgroundProcess, now: number): ProcessNode;
12
+ //# sourceMappingURL=background-process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-process.d.ts","sourceRoot":"","sources":["../../../../../src/platform/runtime/fleet/adapters/background-process.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,aAAa,CAAC;AAE7D,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAU5E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAuB1F"}
@@ -0,0 +1,46 @@
1
+ /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
+ /** Last non-empty stdout line — already tracked on the record, no new emission needed. */
3
+ export function lastOutputLine(stdout) {
4
+ // stdout is an array of chunks; join a bounded tail and take the last
5
+ // non-empty line so the scan stays cheap even for chatty processes.
6
+ const tail = stdout.slice(-8).join('');
7
+ const lines = tail.split('\n');
8
+ for (let i = lines.length - 1; i >= 0; i--) {
9
+ const line = lines[i]?.trim();
10
+ if (line)
11
+ return line;
12
+ }
13
+ return undefined;
14
+ }
15
+ /**
16
+ * BackgroundProcess → ProcessNode. Silent source (no bus emission): liveness
17
+ * rides the registry tick; currentActivity is the last stdout line the
18
+ * ProcessManager already buffers.
19
+ */
20
+ export function adaptBackgroundProcess(record, now) {
21
+ let state;
22
+ if (!record.done)
23
+ state = 'executing-tool';
24
+ else if (record.exitCode !== null && record.exitCode !== 0)
25
+ state = 'failed';
26
+ else
27
+ state = 'done';
28
+ const line = lastOutputLine(record.stdout);
29
+ return {
30
+ id: record.id,
31
+ kind: 'background-process',
32
+ parentId: undefined,
33
+ label: record.cmd,
34
+ state,
35
+ startedAt: record.startTime,
36
+ completedAt: record.completedAt,
37
+ elapsedMs: Math.max(0, (record.completedAt ?? now) - record.startTime),
38
+ costUsd: null,
39
+ costState: 'unpriced',
40
+ // Silent source: anchored to a stable timestamp (chunk arrival times are
41
+ // not tracked), so an unchanged line never looks like fresh activity.
42
+ currentActivity: line ? { kind: 'output-line', text: line, at: record.completedAt ?? record.startTime } : undefined,
43
+ capabilities: { interruptible: false, killable: !record.done, pausable: false, resumable: false, steerable: false },
44
+ raw: record,
45
+ };
46
+ }
@@ -0,0 +1,21 @@
1
+ /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
+ import type { CodeIndexBuildProgress, CodeIndexStats } from '../../../state/code-index-store.js';
3
+ import type { ProcessNode } from '../types.js';
4
+ /** Narrow view of CodeIndexStore the fleet needs — Pick<CodeIndexStore, ...>, same pattern as the other adapter deps. */
5
+ export interface CodeIndexProcessSource {
6
+ isBuilding(): boolean;
7
+ buildProgress(): CodeIndexBuildProgress | null;
8
+ buildStartedAt(): number | null;
9
+ stats(): CodeIndexStats;
10
+ }
11
+ /** Single well-known id: one code index per working directory (no per-workspace fan-out in Stage A). */
12
+ export declare function codeIndexNodeId(): string;
13
+ /**
14
+ * CodeIndexStore → ProcessNode. Silent source (no bus emission, like
15
+ * background-process): liveness rides the registry tick. An index build has
16
+ * no pid, so it is NOT a 'background-process' node (ProcessManager is
17
+ * shell/OS-process-only) — it gets its own ProcessKind, mirroring the
18
+ * Wave-4 orchestrationEngine-dep precedent.
19
+ */
20
+ export declare function adaptCodeIndex(service: CodeIndexProcessSource, now: number): ProcessNode;
21
+ //# sourceMappingURL=code-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-index.d.ts","sourceRoot":"","sources":["../../../../../src/platform/runtime/fleet/adapters/code-index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACjG,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,aAAa,CAAC;AAE7D,yHAAyH;AACzH,MAAM,WAAW,sBAAsB;IACrC,UAAU,IAAI,OAAO,CAAC;IACtB,aAAa,IAAI,sBAAsB,GAAG,IAAI,CAAC;IAC/C,cAAc,IAAI,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,IAAI,cAAc,CAAC;CACzB;AAED,wGAAwG;AACxG,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAkCxF"}
@@ -0,0 +1,44 @@
1
+ /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
+ /** Single well-known id: one code index per working directory (no per-workspace fan-out in Stage A). */
3
+ export function codeIndexNodeId() {
4
+ return 'code-index:main';
5
+ }
6
+ /**
7
+ * CodeIndexStore → ProcessNode. Silent source (no bus emission, like
8
+ * background-process): liveness rides the registry tick. An index build has
9
+ * no pid, so it is NOT a 'background-process' node (ProcessManager is
10
+ * shell/OS-process-only) — it gets its own ProcessKind, mirroring the
11
+ * Wave-4 orchestrationEngine-dep precedent.
12
+ */
13
+ export function adaptCodeIndex(service, now) {
14
+ const building = service.isBuilding();
15
+ const progress = service.buildProgress();
16
+ const startedAt = service.buildStartedAt();
17
+ const stats = service.stats();
18
+ const lastBuild = stats.lastBuild;
19
+ const state = building ? 'executing-tool' : lastBuild ? 'done' : 'idle';
20
+ const label = building
21
+ ? progress
22
+ ? `Code index: building ${progress.scanned}/${progress.total} files`
23
+ : 'Code index: building'
24
+ : lastBuild
25
+ ? `Code index: ${stats.indexedFiles} files, ${stats.indexedChunks} chunks`
26
+ : 'Code index: idle';
27
+ return {
28
+ id: codeIndexNodeId(),
29
+ kind: 'code-index',
30
+ parentId: undefined,
31
+ label,
32
+ state,
33
+ startedAt: building ? (startedAt ?? undefined) : (lastBuild?.startedAt ?? undefined),
34
+ completedAt: building ? undefined : (lastBuild?.completedAt ?? undefined),
35
+ elapsedMs: building ? Math.max(0, now - (startedAt ?? now)) : Math.max(0, lastBuild?.durationMs ?? 0),
36
+ costUsd: null,
37
+ costState: 'unpriced',
38
+ currentActivity: building
39
+ ? { kind: 'phase', text: progress ? `Indexing ${progress.scanned}/${progress.total}` : 'Indexing', at: now }
40
+ : undefined,
41
+ capabilities: { interruptible: false, killable: false, pausable: false, resumable: false, steerable: false },
42
+ raw: stats,
43
+ };
44
+ }
@@ -0,0 +1,69 @@
1
+ /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
+ import type { Phase, WorkItem, WorkItemUsage, Workstream } from '../../../orchestration/types.js';
3
+ import type { ProcessCostState, ProcessNode, ProcessUsage } from '../types.js';
4
+ import { workItemNodeId } from './agent.js';
5
+ /**
6
+ * Live in-flight usage of a work-item's currently-active agent, read from that
7
+ * agent's fleet node at snapshot time (DEBT-4 item 2). Overlaid onto the
8
+ * item's phase-boundary-committed `item.usage` so a RUNNING phase shows real,
9
+ * growing numbers instead of n/a until it completes.
10
+ */
11
+ export interface LiveItemUsage {
12
+ readonly usage?: ProcessUsage | undefined;
13
+ readonly costUsd?: number | null | undefined;
14
+ readonly costState?: ProcessCostState | undefined;
15
+ }
16
+ /**
17
+ * The usage the fleet DISPLAYS for a work-item: its committed phase-boundary
18
+ * total, plus — only while it is actively 'in-phase' — the live in-flight
19
+ * usage of its current agent. The overlay is applied ONLY for an 'in-phase'
20
+ * item, which is exactly the window in which `item.usage` does NOT yet include
21
+ * the running phase (the engine folds that in at completion — see
22
+ * runItemPhase), so committed + live never double-counts and the two hand off
23
+ * atomically at the phase boundary. Because both operands only ever grow and
24
+ * merge through {@link mergeWorkItemUsage}, presence is MONOTONE: once usage
25
+ * has appeared for an item it never blinks back to n/a (DEBT-4 item 2).
26
+ */
27
+ export declare function displayWorkItemUsage(item: WorkItem, live: LiveItemUsage | undefined): WorkItemUsage;
28
+ /** Workstream node ids are namespaced to avoid colliding with agent/process ids. */
29
+ export declare function workstreamNodeId(workstreamId: string): string;
30
+ /**
31
+ * Phase node ids are namespaced by their owning workstream — phase ids are
32
+ * only unique WITHIN a workstream, so two workstreams' phases must not
33
+ * collide in the flat node list.
34
+ */
35
+ export declare function phaseNodeId(workstreamId: string, phaseId: string): string;
36
+ export { workItemNodeId };
37
+ /** The work-item's currently-active agent, i.e. the one driving its live phase run. Undefined once terminal or between phases. */
38
+ export declare function activeWorkItemAgentId(item: WorkItem): string | undefined;
39
+ /**
40
+ * WorkItem -> ProcessNode. Delegates interruptible/killable/steerable to its
41
+ * currently-active agent, mirroring adaptSubtask. `opts.live` supplies the
42
+ * currently-active agent's in-flight usage so a running phase shows real,
43
+ * growing numbers instead of n/a until it completes (DEBT-4 item 2); omit it
44
+ * (or pass undefined) for the committed-only view.
45
+ */
46
+ export declare function adaptWorkItem(item: WorkItem, workstreamId: string, parentId: string, opts: {
47
+ steerable: boolean;
48
+ live?: LiveItemUsage | undefined;
49
+ }): ProcessNode;
50
+ /**
51
+ * Phase -> ProcessNode. Deliberately reports NO usage/cost (mirrors
52
+ * adaptSubtask's "report nothing" choice): a work-item's usage is cumulative
53
+ * across every phase it has visited, so attributing it to whichever phase it
54
+ * currently occupies would double-count against both the phase and the
55
+ * workstream total. Real numbers live on the workstream (sums every item
56
+ * exactly once) and the work-item (its own direct total) — never on phase.
57
+ */
58
+ export declare function adaptPhase(phase: Phase, workstream: Workstream): ProcessNode;
59
+ /**
60
+ * Workstream -> ProcessNode. Root node (no parentId). Sums every item's DISPLAY
61
+ * usage/cost (committed total + any live in-flight overlay, resolved once per
62
+ * item) exactly once — never through an intermediate phase bucket (see
63
+ * adaptPhase) — so this total can never double-count and never shows n/a while
64
+ * an item is actively producing usage (DEBT-4 item 2). `liveByItemId` supplies
65
+ * the active agents' in-flight usage keyed by item id; omit it for the
66
+ * committed-only view.
67
+ */
68
+ export declare function adaptWorkstream(workstream: Workstream, now: number, liveByItemId?: ReadonlyMap<string, LiveItemUsage>): ProcessNode;
69
+ //# sourceMappingURL=orchestration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration.d.ts","sourceRoot":"","sources":["../../../../../src/platform/runtime/fleet/adapters/orchestration.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAerF,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAgB,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACnD;AA2CD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,GAAG,SAAS,GAAG,aAAa,CAOnG;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,OAAO,EAAE,cAAc,EAAE,CAAC;AAI1B,kIAAkI;AAClI,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAExE;AA0GD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;CAAE,GAAG,WAAW,CAqDjK;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,GAAG,WAAW,CAuB5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,WAAW,CAgCnI"}