@pellux/goodvibes-sdk 0.37.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (555) hide show
  1. package/dist/contracts/artifacts/operator-contract.json +3171 -929
  2. package/dist/daemon.d.ts +2 -0
  3. package/dist/daemon.d.ts.map +1 -1
  4. package/dist/daemon.js +4 -0
  5. package/dist/events/communication.d.ts +21 -1
  6. package/dist/events/communication.d.ts.map +1 -1
  7. package/dist/events/surfaces.d.ts +25 -3
  8. package/dist/events/surfaces.d.ts.map +1 -1
  9. package/dist/events/surfaces.js +22 -1
  10. package/dist/events/workflows.d.ts +7 -6
  11. package/dist/events/workflows.d.ts.map +1 -1
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/platform/agents/archetypes.d.ts.map +1 -1
  15. package/dist/platform/agents/archetypes.js +7 -0
  16. package/dist/platform/agents/index.d.ts +1 -0
  17. package/dist/platform/agents/index.d.ts.map +1 -1
  18. package/dist/platform/agents/index.js +1 -0
  19. package/dist/platform/agents/message-bus-core.d.ts +7 -0
  20. package/dist/platform/agents/message-bus-core.d.ts.map +1 -1
  21. package/dist/platform/agents/message-bus-core.js +2 -1
  22. package/dist/platform/agents/orchestrator-runner.d.ts +50 -1
  23. package/dist/platform/agents/orchestrator-runner.d.ts.map +1 -1
  24. package/dist/platform/agents/orchestrator-runner.js +172 -7
  25. package/dist/platform/agents/orchestrator.d.ts +78 -6
  26. package/dist/platform/agents/orchestrator.d.ts.map +1 -1
  27. package/dist/platform/agents/orchestrator.js +95 -18
  28. package/dist/platform/agents/planner-decomposition-runner.d.ts +38 -0
  29. package/dist/platform/agents/planner-decomposition-runner.d.ts.map +1 -0
  30. package/dist/platform/agents/planner-decomposition-runner.js +113 -0
  31. package/dist/platform/agents/turn-knowledge-injection.d.ts +192 -0
  32. package/dist/platform/agents/turn-knowledge-injection.d.ts.map +1 -0
  33. package/dist/platform/agents/turn-knowledge-injection.js +269 -0
  34. package/dist/platform/agents/worktree.d.ts +126 -8
  35. package/dist/platform/agents/worktree.d.ts.map +1 -1
  36. package/dist/platform/agents/worktree.js +240 -19
  37. package/dist/platform/agents/wrfc-controller.d.ts +46 -0
  38. package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
  39. package/dist/platform/agents/wrfc-controller.js +213 -32
  40. package/dist/platform/agents/wrfc-gate-runtime.d.ts +9 -0
  41. package/dist/platform/agents/wrfc-gate-runtime.d.ts.map +1 -1
  42. package/dist/platform/agents/wrfc-gate-runtime.js +7 -3
  43. package/dist/platform/agents/wrfc-gates.d.ts +1 -1
  44. package/dist/platform/agents/wrfc-gates.d.ts.map +1 -1
  45. package/dist/platform/agents/wrfc-gates.js +7 -1
  46. package/dist/platform/agents/wrfc-types.d.ts +23 -3
  47. package/dist/platform/agents/wrfc-types.d.ts.map +1 -1
  48. package/dist/platform/automation/types.d.ts +9 -1
  49. package/dist/platform/automation/types.d.ts.map +1 -1
  50. package/dist/platform/calendar/calendar-api-shared.d.ts +25 -0
  51. package/dist/platform/calendar/calendar-api-shared.d.ts.map +1 -0
  52. package/dist/platform/calendar/calendar-api-shared.js +100 -0
  53. package/dist/platform/calendar/calendar-connector.d.ts +79 -0
  54. package/dist/platform/calendar/calendar-connector.d.ts.map +1 -0
  55. package/dist/platform/calendar/calendar-connector.js +155 -0
  56. package/dist/platform/calendar/google-calendar-api.d.ts +25 -0
  57. package/dist/platform/calendar/google-calendar-api.d.ts.map +1 -0
  58. package/dist/platform/calendar/google-calendar-api.js +89 -0
  59. package/dist/platform/calendar/http-fetch-adapter.d.ts +25 -0
  60. package/dist/platform/calendar/http-fetch-adapter.d.ts.map +1 -0
  61. package/dist/platform/calendar/http-fetch-adapter.js +25 -0
  62. package/dist/platform/calendar/ics-parser.d.ts +35 -0
  63. package/dist/platform/calendar/ics-parser.d.ts.map +1 -0
  64. package/dist/platform/calendar/ics-parser.js +236 -0
  65. package/dist/platform/calendar/index.d.ts +41 -0
  66. package/dist/platform/calendar/index.d.ts.map +1 -0
  67. package/dist/platform/calendar/index.js +49 -0
  68. package/dist/platform/calendar/merged-calendar-model.d.ts +67 -0
  69. package/dist/platform/calendar/merged-calendar-model.d.ts.map +1 -0
  70. package/dist/platform/calendar/merged-calendar-model.js +181 -0
  71. package/dist/platform/calendar/microsoft-graph-api.d.ts +25 -0
  72. package/dist/platform/calendar/microsoft-graph-api.d.ts.map +1 -0
  73. package/dist/platform/calendar/microsoft-graph-api.js +95 -0
  74. package/dist/platform/calendar/oauth-flow.d.ts +62 -0
  75. package/dist/platform/calendar/oauth-flow.d.ts.map +1 -0
  76. package/dist/platform/calendar/oauth-flow.js +305 -0
  77. package/dist/platform/calendar/oauth-providers.d.ts +43 -0
  78. package/dist/platform/calendar/oauth-providers.d.ts.map +1 -0
  79. package/dist/platform/calendar/oauth-providers.js +120 -0
  80. package/dist/platform/calendar/oauth-token-store.d.ts +72 -0
  81. package/dist/platform/calendar/oauth-token-store.d.ts.map +1 -0
  82. package/dist/platform/calendar/oauth-token-store.js +189 -0
  83. package/dist/platform/calendar/oauth-types.d.ts +274 -0
  84. package/dist/platform/calendar/oauth-types.d.ts.map +1 -0
  85. package/dist/platform/calendar/oauth-types.js +22 -0
  86. package/dist/platform/calendar/rrule.d.ts +39 -0
  87. package/dist/platform/calendar/rrule.d.ts.map +1 -0
  88. package/dist/platform/calendar/rrule.js +261 -0
  89. package/dist/platform/calendar/subscription-store.d.ts +118 -0
  90. package/dist/platform/calendar/subscription-store.d.ts.map +1 -0
  91. package/dist/platform/calendar/subscription-store.js +293 -0
  92. package/dist/platform/calendar/types.d.ts +170 -0
  93. package/dist/platform/calendar/types.d.ts.map +1 -0
  94. package/dist/platform/calendar/types.js +21 -0
  95. package/dist/platform/companion/companion-chat-attachments.d.ts +29 -0
  96. package/dist/platform/companion/companion-chat-attachments.d.ts.map +1 -0
  97. package/dist/platform/companion/companion-chat-attachments.js +121 -0
  98. package/dist/platform/companion/companion-chat-broker-bridge.d.ts +40 -0
  99. package/dist/platform/companion/companion-chat-broker-bridge.d.ts.map +1 -0
  100. package/dist/platform/companion/companion-chat-broker-bridge.js +14 -0
  101. package/dist/platform/companion/companion-chat-broker-sync.d.ts +38 -0
  102. package/dist/platform/companion/companion-chat-broker-sync.d.ts.map +1 -0
  103. package/dist/platform/companion/companion-chat-broker-sync.js +80 -0
  104. package/dist/platform/companion/companion-chat-gc.d.ts +63 -0
  105. package/dist/platform/companion/companion-chat-gc.d.ts.map +1 -0
  106. package/dist/platform/companion/companion-chat-gc.js +38 -0
  107. package/dist/platform/companion/companion-chat-manager.d.ts +67 -20
  108. package/dist/platform/companion/companion-chat-manager.d.ts.map +1 -1
  109. package/dist/platform/companion/companion-chat-manager.js +130 -144
  110. package/dist/platform/companion/companion-chat-persistence.d.ts +9 -1
  111. package/dist/platform/companion/companion-chat-persistence.d.ts.map +1 -1
  112. package/dist/platform/companion/companion-chat-persistence.js +10 -2
  113. package/dist/platform/companion/companion-chat-routes.d.ts +2 -1
  114. package/dist/platform/companion/companion-chat-routes.d.ts.map +1 -1
  115. package/dist/platform/companion/companion-chat-routes.js +37 -4
  116. package/dist/platform/config/credential-status.d.ts +28 -0
  117. package/dist/platform/config/credential-status.d.ts.map +1 -0
  118. package/dist/platform/config/credential-status.js +75 -0
  119. package/dist/platform/config/index.d.ts +25 -0
  120. package/dist/platform/config/index.d.ts.map +1 -1
  121. package/dist/platform/config/index.js +18 -0
  122. package/dist/platform/config/manager.d.ts +18 -0
  123. package/dist/platform/config/manager.d.ts.map +1 -1
  124. package/dist/platform/config/manager.js +36 -2
  125. package/dist/platform/config/migrations.d.ts +48 -0
  126. package/dist/platform/config/migrations.d.ts.map +1 -0
  127. package/dist/platform/config/migrations.js +54 -0
  128. package/dist/platform/config/schema-domain-core.d.ts +10 -1
  129. package/dist/platform/config/schema-domain-core.d.ts.map +1 -1
  130. package/dist/platform/config/schema-domain-core.js +46 -3
  131. package/dist/platform/config/schema-types.d.ts +13 -7
  132. package/dist/platform/config/schema-types.d.ts.map +1 -1
  133. package/dist/platform/config/schema.d.ts.map +1 -1
  134. package/dist/platform/config/schema.js +2 -0
  135. package/dist/platform/control-plane/approval-broker.d.ts +11 -0
  136. package/dist/platform/control-plane/approval-broker.d.ts.map +1 -1
  137. package/dist/platform/control-plane/approval-broker.js +17 -1
  138. package/dist/platform/control-plane/approval-hunk-apply.d.ts +77 -0
  139. package/dist/platform/control-plane/approval-hunk-apply.d.ts.map +1 -0
  140. package/dist/platform/control-plane/approval-hunk-apply.js +80 -0
  141. package/dist/platform/control-plane/gateway-disabled-response.d.ts +20 -0
  142. package/dist/platform/control-plane/gateway-disabled-response.d.ts.map +1 -0
  143. package/dist/platform/control-plane/gateway-disabled-response.js +24 -0
  144. package/dist/platform/control-plane/gateway-scope-enforcement.d.ts +68 -0
  145. package/dist/platform/control-plane/gateway-scope-enforcement.d.ts.map +1 -0
  146. package/dist/platform/control-plane/gateway-scope-enforcement.js +91 -0
  147. package/dist/platform/control-plane/gateway-utils.d.ts +17 -0
  148. package/dist/platform/control-plane/gateway-utils.d.ts.map +1 -1
  149. package/dist/platform/control-plane/gateway-utils.js +30 -0
  150. package/dist/platform/control-plane/gateway.d.ts +12 -2
  151. package/dist/platform/control-plane/gateway.d.ts.map +1 -1
  152. package/dist/platform/control-plane/gateway.js +27 -31
  153. package/dist/platform/control-plane/index.d.ts +6 -1
  154. package/dist/platform/control-plane/index.d.ts.map +1 -1
  155. package/dist/platform/control-plane/index.js +4 -0
  156. package/dist/platform/control-plane/invoke-input-validation.d.ts +56 -0
  157. package/dist/platform/control-plane/invoke-input-validation.d.ts.map +1 -0
  158. package/dist/platform/control-plane/invoke-input-validation.js +163 -0
  159. package/dist/platform/control-plane/method-catalog-admin.d.ts.map +1 -1
  160. package/dist/platform/control-plane/method-catalog-admin.js +12 -1
  161. package/dist/platform/control-plane/method-catalog-calendar.d.ts +16 -0
  162. package/dist/platform/control-plane/method-catalog-calendar.d.ts.map +1 -1
  163. package/dist/platform/control-plane/method-catalog-calendar.js +21 -0
  164. package/dist/platform/control-plane/method-catalog-channels.d.ts.map +1 -1
  165. package/dist/platform/control-plane/method-catalog-channels.js +32 -3
  166. package/dist/platform/control-plane/method-catalog-control-automation.d.ts.map +1 -1
  167. package/dist/platform/control-plane/method-catalog-control-automation.js +19 -34
  168. package/dist/platform/control-plane/method-catalog-control-companion.d.ts +15 -0
  169. package/dist/platform/control-plane/method-catalog-control-companion.d.ts.map +1 -0
  170. package/dist/platform/control-plane/method-catalog-control-companion.js +133 -0
  171. package/dist/platform/control-plane/method-catalog-control-core.d.ts.map +1 -1
  172. package/dist/platform/control-plane/method-catalog-control-core.js +104 -122
  173. package/dist/platform/control-plane/method-catalog-control.d.ts.map +1 -1
  174. package/dist/platform/control-plane/method-catalog-control.js +4 -0
  175. package/dist/platform/control-plane/method-catalog-email.d.ts +17 -0
  176. package/dist/platform/control-plane/method-catalog-email.d.ts.map +1 -1
  177. package/dist/platform/control-plane/method-catalog-email.js +21 -0
  178. package/dist/platform/control-plane/method-catalog-events.d.ts +28 -0
  179. package/dist/platform/control-plane/method-catalog-events.d.ts.map +1 -1
  180. package/dist/platform/control-plane/method-catalog-events.js +74 -1
  181. package/dist/platform/control-plane/method-catalog-fleet.d.ts +24 -0
  182. package/dist/platform/control-plane/method-catalog-fleet.d.ts.map +1 -0
  183. package/dist/platform/control-plane/method-catalog-fleet.js +65 -0
  184. package/dist/platform/control-plane/method-catalog-route-reconcile.d.ts +84 -0
  185. package/dist/platform/control-plane/method-catalog-route-reconcile.d.ts.map +1 -0
  186. package/dist/platform/control-plane/method-catalog-route-reconcile.js +103 -0
  187. package/dist/platform/control-plane/method-catalog-shared.d.ts +29 -0
  188. package/dist/platform/control-plane/method-catalog-shared.d.ts.map +1 -1
  189. package/dist/platform/control-plane/method-catalog.d.ts +9 -0
  190. package/dist/platform/control-plane/method-catalog.d.ts.map +1 -1
  191. package/dist/platform/control-plane/method-catalog.js +32 -3
  192. package/dist/platform/control-plane/operator-contract-schemas-admin.d.ts +8 -0
  193. package/dist/platform/control-plane/operator-contract-schemas-admin.d.ts.map +1 -1
  194. package/dist/platform/control-plane/operator-contract-schemas-admin.js +22 -1
  195. package/dist/platform/control-plane/operator-contract-schemas-fleet.d.ts +18 -0
  196. package/dist/platform/control-plane/operator-contract-schemas-fleet.d.ts.map +1 -0
  197. package/dist/platform/control-plane/operator-contract-schemas-fleet.js +182 -0
  198. package/dist/platform/control-plane/operator-contract-schemas-permissions.d.ts.map +1 -1
  199. package/dist/platform/control-plane/operator-contract-schemas-permissions.js +5 -0
  200. package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts +29 -0
  201. package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts.map +1 -1
  202. package/dist/platform/control-plane/operator-contract-schemas-runtime.js +57 -3
  203. package/dist/platform/control-plane/operator-contract-schemas.d.ts +1 -0
  204. package/dist/platform/control-plane/operator-contract-schemas.d.ts.map +1 -1
  205. package/dist/platform/control-plane/operator-contract-schemas.js +1 -0
  206. package/dist/platform/control-plane/operator-contract.d.ts.map +1 -1
  207. package/dist/platform/control-plane/operator-contract.js +8 -0
  208. package/dist/platform/control-plane/routes/checkpoints.d.ts +39 -0
  209. package/dist/platform/control-plane/routes/checkpoints.d.ts.map +1 -0
  210. package/dist/platform/control-plane/routes/checkpoints.js +166 -0
  211. package/dist/platform/control-plane/routes/fleet.d.ts +53 -0
  212. package/dist/platform/control-plane/routes/fleet.d.ts.map +1 -0
  213. package/dist/platform/control-plane/routes/fleet.js +153 -0
  214. package/dist/platform/control-plane/routes/gateway-verb-error.d.ts +30 -0
  215. package/dist/platform/control-plane/routes/gateway-verb-error.d.ts.map +1 -0
  216. package/dist/platform/control-plane/routes/gateway-verb-error.js +36 -0
  217. package/dist/platform/control-plane/routes/index.d.ts +0 -6
  218. package/dist/platform/control-plane/routes/index.d.ts.map +1 -1
  219. package/dist/platform/control-plane/routes/index.js +5 -5
  220. package/dist/platform/control-plane/routes/invocation-params.d.ts +23 -0
  221. package/dist/platform/control-plane/routes/invocation-params.d.ts.map +1 -0
  222. package/dist/platform/control-plane/routes/invocation-params.js +9 -0
  223. package/dist/platform/control-plane/routes/register-w3-s2.d.ts +26 -0
  224. package/dist/platform/control-plane/routes/register-w3-s2.d.ts.map +1 -0
  225. package/dist/platform/control-plane/routes/register-w3-s2.js +8 -0
  226. package/dist/platform/control-plane/routes/session-search.d.ts +37 -0
  227. package/dist/platform/control-plane/routes/session-search.d.ts.map +1 -0
  228. package/dist/platform/control-plane/routes/session-search.js +113 -0
  229. package/dist/platform/control-plane/session-broker-gc.d.ts +16 -0
  230. package/dist/platform/control-plane/session-broker-gc.d.ts.map +1 -1
  231. package/dist/platform/control-plane/session-broker-gc.js +23 -6
  232. package/dist/platform/control-plane/session-broker-helpers.d.ts +3 -3
  233. package/dist/platform/control-plane/session-broker-helpers.d.ts.map +1 -1
  234. package/dist/platform/control-plane/session-broker-inputs.d.ts +18 -0
  235. package/dist/platform/control-plane/session-broker-inputs.d.ts.map +1 -1
  236. package/dist/platform/control-plane/session-broker-inputs.js +34 -0
  237. package/dist/platform/control-plane/session-broker-sessions.d.ts +102 -3
  238. package/dist/platform/control-plane/session-broker-sessions.d.ts.map +1 -1
  239. package/dist/platform/control-plane/session-broker-sessions.js +179 -5
  240. package/dist/platform/control-plane/session-broker-state.d.ts +20 -1
  241. package/dist/platform/control-plane/session-broker-state.d.ts.map +1 -1
  242. package/dist/platform/control-plane/session-broker-state.js +67 -5
  243. package/dist/platform/control-plane/session-broker.d.ts +51 -38
  244. package/dist/platform/control-plane/session-broker.d.ts.map +1 -1
  245. package/dist/platform/control-plane/session-broker.js +183 -75
  246. package/dist/platform/control-plane/session-store-importer.d.ts +57 -0
  247. package/dist/platform/control-plane/session-store-importer.d.ts.map +1 -0
  248. package/dist/platform/control-plane/session-store-importer.js +227 -0
  249. package/dist/platform/control-plane/session-types.d.ts +142 -7
  250. package/dist/platform/control-plane/session-types.d.ts.map +1 -1
  251. package/dist/platform/core/adaptive-planner.d.ts +50 -0
  252. package/dist/platform/core/adaptive-planner.d.ts.map +1 -1
  253. package/dist/platform/core/adaptive-planner.js +49 -0
  254. package/dist/platform/core/execution-plan.d.ts +43 -1
  255. package/dist/platform/core/execution-plan.d.ts.map +1 -1
  256. package/dist/platform/core/execution-plan.js +46 -10
  257. package/dist/platform/core/index.d.ts +2 -0
  258. package/dist/platform/core/index.d.ts.map +1 -1
  259. package/dist/platform/core/index.js +2 -0
  260. package/dist/platform/core/orchestrator-runtime.d.ts +31 -0
  261. package/dist/platform/core/orchestrator-runtime.d.ts.map +1 -1
  262. package/dist/platform/core/orchestrator-tool-runtime.d.ts +7 -0
  263. package/dist/platform/core/orchestrator-tool-runtime.d.ts.map +1 -1
  264. package/dist/platform/core/orchestrator-tool-runtime.js +10 -0
  265. package/dist/platform/core/orchestrator-turn-loop.d.ts +35 -1
  266. package/dist/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
  267. package/dist/platform/core/orchestrator-turn-loop.js +121 -3
  268. package/dist/platform/core/orchestrator.d.ts +67 -0
  269. package/dist/platform/core/orchestrator.d.ts.map +1 -1
  270. package/dist/platform/core/orchestrator.js +89 -1
  271. package/dist/platform/core/plan-decomposition.d.ts +196 -0
  272. package/dist/platform/core/plan-decomposition.d.ts.map +1 -0
  273. package/dist/platform/core/plan-decomposition.js +417 -0
  274. package/dist/platform/core/plan-proposal.d.ts +204 -0
  275. package/dist/platform/core/plan-proposal.d.ts.map +1 -0
  276. package/dist/platform/core/plan-proposal.js +296 -0
  277. package/dist/platform/core/wrfc-routing.d.ts +1 -0
  278. package/dist/platform/core/wrfc-routing.d.ts.map +1 -1
  279. package/dist/platform/core/wrfc-routing.js +51 -1
  280. package/dist/platform/daemon/boot.d.ts +63 -0
  281. package/dist/platform/daemon/boot.d.ts.map +1 -0
  282. package/dist/platform/daemon/boot.js +60 -0
  283. package/dist/platform/daemon/cli.js +2 -1
  284. package/dist/platform/daemon/control-plane.d.ts.map +1 -1
  285. package/dist/platform/daemon/control-plane.js +50 -1
  286. package/dist/platform/daemon/facade-composition.d.ts.map +1 -1
  287. package/dist/platform/daemon/facade-composition.js +6 -0
  288. package/dist/platform/daemon/facade.d.ts +18 -6
  289. package/dist/platform/daemon/facade.d.ts.map +1 -1
  290. package/dist/platform/daemon/facade.js +50 -43
  291. package/dist/platform/daemon/http/router-route-contexts.d.ts +1 -0
  292. package/dist/platform/daemon/http/router-route-contexts.d.ts.map +1 -1
  293. package/dist/platform/daemon/http/router-route-contexts.js +1 -0
  294. package/dist/platform/daemon/http/router-session-broker-adapter.d.ts +13 -0
  295. package/dist/platform/daemon/http/router-session-broker-adapter.d.ts.map +1 -0
  296. package/dist/platform/daemon/http/router-session-broker-adapter.js +27 -0
  297. package/dist/platform/daemon/http/router.d.ts +1 -1
  298. package/dist/platform/daemon/http/router.d.ts.map +1 -1
  299. package/dist/platform/daemon/http/router.js +7 -22
  300. package/dist/platform/daemon/http/runtime-route-types.d.ts +42 -4
  301. package/dist/platform/daemon/http/runtime-route-types.d.ts.map +1 -1
  302. package/dist/platform/daemon/index.d.ts +2 -0
  303. package/dist/platform/daemon/index.d.ts.map +1 -1
  304. package/dist/platform/daemon/index.js +1 -0
  305. package/dist/platform/daemon/service-manager.d.ts +16 -0
  306. package/dist/platform/daemon/service-manager.d.ts.map +1 -1
  307. package/dist/platform/daemon/service-manager.js +79 -15
  308. package/dist/platform/intelligence/tree-sitter/service.d.ts.map +1 -1
  309. package/dist/platform/intelligence/tree-sitter/service.js +16 -2
  310. package/dist/platform/knowledge/browser-history/readers.d.ts.map +1 -1
  311. package/dist/platform/knowledge/browser-history/readers.js +15 -5
  312. package/dist/platform/knowledge/knowledge-api.d.ts +26 -0
  313. package/dist/platform/knowledge/knowledge-api.d.ts.map +1 -1
  314. package/dist/platform/knowledge/knowledge-api.js +11 -0
  315. package/dist/platform/knowledge/project-planning/service.d.ts +14 -1
  316. package/dist/platform/knowledge/project-planning/service.d.ts.map +1 -1
  317. package/dist/platform/knowledge/project-planning/service.js +77 -0
  318. package/dist/platform/knowledge/project-planning/types.d.ts +32 -0
  319. package/dist/platform/knowledge/project-planning/types.d.ts.map +1 -1
  320. package/dist/platform/orchestration/bookkeeping.d.ts +12 -0
  321. package/dist/platform/orchestration/bookkeeping.d.ts.map +1 -0
  322. package/dist/platform/orchestration/bookkeeping.js +91 -0
  323. package/dist/platform/orchestration/budget.d.ts +22 -0
  324. package/dist/platform/orchestration/budget.d.ts.map +1 -0
  325. package/dist/platform/orchestration/budget.js +35 -0
  326. package/dist/platform/orchestration/cancellation.d.ts +31 -0
  327. package/dist/platform/orchestration/cancellation.d.ts.map +1 -0
  328. package/dist/platform/orchestration/cancellation.js +25 -0
  329. package/dist/platform/orchestration/controller-compat.d.ts +46 -0
  330. package/dist/platform/orchestration/controller-compat.d.ts.map +1 -0
  331. package/dist/platform/orchestration/controller-compat.js +27 -0
  332. package/dist/platform/orchestration/dirty-guard.d.ts +32 -0
  333. package/dist/platform/orchestration/dirty-guard.d.ts.map +1 -0
  334. package/dist/platform/orchestration/dirty-guard.js +147 -0
  335. package/dist/platform/orchestration/engine.d.ts +82 -0
  336. package/dist/platform/orchestration/engine.d.ts.map +1 -0
  337. package/dist/platform/orchestration/engine.js +623 -0
  338. package/dist/platform/orchestration/index.d.ts +20 -0
  339. package/dist/platform/orchestration/index.d.ts.map +1 -0
  340. package/dist/platform/orchestration/index.js +11 -0
  341. package/dist/platform/orchestration/persistence.d.ts +24 -0
  342. package/dist/platform/orchestration/persistence.d.ts.map +1 -0
  343. package/dist/platform/orchestration/persistence.js +179 -0
  344. package/dist/platform/orchestration/phase-runner.d.ts +114 -0
  345. package/dist/platform/orchestration/phase-runner.d.ts.map +1 -0
  346. package/dist/platform/orchestration/phase-runner.js +347 -0
  347. package/dist/platform/orchestration/proposal-workstream.d.ts +56 -0
  348. package/dist/platform/orchestration/proposal-workstream.d.ts.map +1 -0
  349. package/dist/platform/orchestration/proposal-workstream.js +76 -0
  350. package/dist/platform/orchestration/scheduler.d.ts +64 -0
  351. package/dist/platform/orchestration/scheduler.d.ts.map +1 -0
  352. package/dist/platform/orchestration/scheduler.js +73 -0
  353. package/dist/platform/orchestration/types.d.ts +535 -0
  354. package/dist/platform/orchestration/types.d.ts.map +1 -0
  355. package/dist/platform/orchestration/types.js +47 -0
  356. package/dist/platform/orchestration/worktree-isolation.d.ts +33 -0
  357. package/dist/platform/orchestration/worktree-isolation.d.ts.map +1 -0
  358. package/dist/platform/orchestration/worktree-isolation.js +248 -0
  359. package/dist/platform/presentation/glyphs.d.ts +91 -0
  360. package/dist/platform/presentation/glyphs.d.ts.map +1 -0
  361. package/dist/platform/presentation/glyphs.js +93 -0
  362. package/dist/platform/presentation/index.d.ts +28 -0
  363. package/dist/platform/presentation/index.d.ts.map +1 -0
  364. package/dist/platform/presentation/index.js +27 -0
  365. package/dist/platform/presentation/thinking-phrases.d.ts +12 -0
  366. package/dist/platform/presentation/thinking-phrases.d.ts.map +1 -0
  367. package/dist/platform/presentation/thinking-phrases.js +32 -0
  368. package/dist/platform/presentation/tones.d.ts +121 -0
  369. package/dist/platform/presentation/tones.d.ts.map +1 -0
  370. package/dist/platform/presentation/tones.js +145 -0
  371. package/dist/platform/presentation/waiting-wording.d.ts +54 -0
  372. package/dist/platform/presentation/waiting-wording.d.ts.map +1 -0
  373. package/dist/platform/presentation/waiting-wording.js +51 -0
  374. package/dist/platform/providers/runtime-snapshot.d.ts.map +1 -1
  375. package/dist/platform/providers/runtime-snapshot.js +12 -2
  376. package/dist/platform/runtime/bootstrap-services.d.ts +62 -2
  377. package/dist/platform/runtime/bootstrap-services.d.ts.map +1 -1
  378. package/dist/platform/runtime/bootstrap-services.js +217 -50
  379. package/dist/platform/runtime/daemon-version-compat.d.ts +39 -0
  380. package/dist/platform/runtime/daemon-version-compat.d.ts.map +1 -0
  381. package/dist/platform/runtime/daemon-version-compat.js +75 -0
  382. package/dist/platform/runtime/detached-daemon-runtime.d.ts +26 -0
  383. package/dist/platform/runtime/detached-daemon-runtime.d.ts.map +1 -0
  384. package/dist/platform/runtime/detached-daemon-runtime.js +49 -0
  385. package/dist/platform/runtime/emitters/communication.d.ts +11 -0
  386. package/dist/platform/runtime/emitters/communication.d.ts.map +1 -1
  387. package/dist/platform/runtime/emitters/communication.js +9 -0
  388. package/dist/platform/runtime/emitters/workflows.d.ts +1 -1
  389. package/dist/platform/runtime/emitters/workflows.d.ts.map +1 -1
  390. package/dist/platform/runtime/events/index.d.ts +13 -0
  391. package/dist/platform/runtime/events/index.d.ts.map +1 -1
  392. package/dist/platform/runtime/events/index.js +13 -0
  393. package/dist/platform/runtime/feature-flags/flags.d.ts.map +1 -1
  394. package/dist/platform/runtime/feature-flags/flags.js +56 -1
  395. package/dist/platform/runtime/fleet/adapters/agent.d.ts +56 -0
  396. package/dist/platform/runtime/fleet/adapters/agent.d.ts.map +1 -0
  397. package/dist/platform/runtime/fleet/adapters/agent.js +143 -0
  398. package/dist/platform/runtime/fleet/adapters/automation.d.ts +30 -0
  399. package/dist/platform/runtime/fleet/adapters/automation.d.ts.map +1 -0
  400. package/dist/platform/runtime/fleet/adapters/automation.js +41 -0
  401. package/dist/platform/runtime/fleet/adapters/background-process.d.ts +12 -0
  402. package/dist/platform/runtime/fleet/adapters/background-process.d.ts.map +1 -0
  403. package/dist/platform/runtime/fleet/adapters/background-process.js +46 -0
  404. package/dist/platform/runtime/fleet/adapters/code-index.d.ts +21 -0
  405. package/dist/platform/runtime/fleet/adapters/code-index.d.ts.map +1 -0
  406. package/dist/platform/runtime/fleet/adapters/code-index.js +44 -0
  407. package/dist/platform/runtime/fleet/adapters/orchestration.d.ts +69 -0
  408. package/dist/platform/runtime/fleet/adapters/orchestration.d.ts.map +1 -0
  409. package/dist/platform/runtime/fleet/adapters/orchestration.js +329 -0
  410. package/dist/platform/runtime/fleet/adapters/schedule.d.ts +14 -0
  411. package/dist/platform/runtime/fleet/adapters/schedule.d.ts.map +1 -0
  412. package/dist/platform/runtime/fleet/adapters/schedule.js +28 -0
  413. package/dist/platform/runtime/fleet/adapters/trigger.d.ts +12 -0
  414. package/dist/platform/runtime/fleet/adapters/trigger.d.ts.map +1 -0
  415. package/dist/platform/runtime/fleet/adapters/trigger.js +22 -0
  416. package/dist/platform/runtime/fleet/adapters/watcher.d.ts +13 -0
  417. package/dist/platform/runtime/fleet/adapters/watcher.d.ts.map +1 -0
  418. package/dist/platform/runtime/fleet/adapters/watcher.js +47 -0
  419. package/dist/platform/runtime/fleet/adapters/workflow.d.ts +11 -0
  420. package/dist/platform/runtime/fleet/adapters/workflow.d.ts.map +1 -0
  421. package/dist/platform/runtime/fleet/adapters/workflow.js +34 -0
  422. package/dist/platform/runtime/fleet/adapters/wrfc.d.ts +35 -0
  423. package/dist/platform/runtime/fleet/adapters/wrfc.d.ts.map +1 -0
  424. package/dist/platform/runtime/fleet/adapters/wrfc.js +275 -0
  425. package/dist/platform/runtime/fleet/index.d.ts +10 -0
  426. package/dist/platform/runtime/fleet/index.d.ts.map +1 -0
  427. package/dist/platform/runtime/fleet/index.js +6 -0
  428. package/dist/platform/runtime/fleet/registry.d.ts +113 -0
  429. package/dist/platform/runtime/fleet/registry.d.ts.map +1 -0
  430. package/dist/platform/runtime/fleet/registry.js +664 -0
  431. package/dist/platform/runtime/fleet/types.d.ts +199 -0
  432. package/dist/platform/runtime/fleet/types.d.ts.map +1 -0
  433. package/dist/platform/runtime/fleet/types.js +2 -0
  434. package/dist/platform/runtime/operator-client.d.ts +20 -2
  435. package/dist/platform/runtime/operator-client.d.ts.map +1 -1
  436. package/dist/platform/runtime/operator-client.js +11 -1
  437. package/dist/platform/runtime/provider-accounts/registry.d.ts.map +1 -1
  438. package/dist/platform/runtime/provider-accounts/registry.js +11 -1
  439. package/dist/platform/runtime/runtime-knowledge-api.d.ts +1 -1
  440. package/dist/platform/runtime/runtime-knowledge-api.d.ts.map +1 -1
  441. package/dist/platform/runtime/runtime-knowledge-api.js +1 -0
  442. package/dist/platform/runtime/services.d.ts +48 -0
  443. package/dist/platform/runtime/services.d.ts.map +1 -1
  444. package/dist/platform/runtime/services.js +95 -2
  445. package/dist/platform/runtime/session-spine/client.d.ts +234 -0
  446. package/dist/platform/runtime/session-spine/client.d.ts.map +1 -0
  447. package/dist/platform/runtime/session-spine/client.js +449 -0
  448. package/dist/platform/runtime/session-spine/index.d.ts +12 -0
  449. package/dist/platform/runtime/session-spine/index.d.ts.map +1 -0
  450. package/dist/platform/runtime/session-spine/index.js +11 -0
  451. package/dist/platform/runtime/session-spine/union-cache.d.ts +225 -0
  452. package/dist/platform/runtime/session-spine/union-cache.d.ts.map +1 -0
  453. package/dist/platform/runtime/session-spine/union-cache.js +333 -0
  454. package/dist/platform/runtime/shell-command-ops.d.ts +3 -1
  455. package/dist/platform/runtime/shell-command-ops.d.ts.map +1 -1
  456. package/dist/platform/runtime/transports/daemon-http-client-validators.d.ts.map +1 -1
  457. package/dist/platform/runtime/transports/daemon-http-client-validators.js +22 -0
  458. package/dist/platform/runtime/transports/daemon-http-client.d.ts.map +1 -1
  459. package/dist/platform/runtime/transports/daemon-http-client.js +25 -2
  460. package/dist/platform/runtime/transports/http-types.d.ts +9 -2
  461. package/dist/platform/runtime/transports/http-types.d.ts.map +1 -1
  462. package/dist/platform/state/canonical-memory.d.ts +95 -0
  463. package/dist/platform/state/canonical-memory.d.ts.map +1 -0
  464. package/dist/platform/state/canonical-memory.js +155 -0
  465. package/dist/platform/state/code-index-chunking.d.ts +49 -0
  466. package/dist/platform/state/code-index-chunking.d.ts.map +1 -0
  467. package/dist/platform/state/code-index-chunking.js +111 -0
  468. package/dist/platform/state/code-index-db.d.ts +53 -0
  469. package/dist/platform/state/code-index-db.d.ts.map +1 -0
  470. package/dist/platform/state/code-index-db.js +101 -0
  471. package/dist/platform/state/code-index-reindex.d.ts +73 -0
  472. package/dist/platform/state/code-index-reindex.d.ts.map +1 -0
  473. package/dist/platform/state/code-index-reindex.js +156 -0
  474. package/dist/platform/state/code-index-store.d.ts +175 -0
  475. package/dist/platform/state/code-index-store.d.ts.map +1 -0
  476. package/dist/platform/state/code-index-store.js +620 -0
  477. package/dist/platform/state/index.d.ts +12 -2
  478. package/dist/platform/state/index.d.ts.map +1 -1
  479. package/dist/platform/state/index.js +6 -1
  480. package/dist/platform/state/knowledge-injection.d.ts +23 -0
  481. package/dist/platform/state/knowledge-injection.d.ts.map +1 -1
  482. package/dist/platform/state/knowledge-injection.js +34 -19
  483. package/dist/platform/state/memory-recall-contract.d.ts +63 -0
  484. package/dist/platform/state/memory-recall-contract.d.ts.map +1 -0
  485. package/dist/platform/state/memory-recall-contract.js +94 -0
  486. package/dist/platform/state/memory-store.d.ts +2 -0
  487. package/dist/platform/state/memory-store.d.ts.map +1 -1
  488. package/dist/platform/state/memory-store.js +4 -0
  489. package/dist/platform/state/memory-vector-store.d.ts +1 -13
  490. package/dist/platform/state/memory-vector-store.d.ts.map +1 -1
  491. package/dist/platform/state/memory-vector-store.js +18 -39
  492. package/dist/platform/state/sqlite-store.d.ts +2 -0
  493. package/dist/platform/state/sqlite-store.d.ts.map +1 -1
  494. package/dist/platform/state/sqlite-store.js +4 -0
  495. package/dist/platform/state/sqlite-vec-loader.d.ts +25 -0
  496. package/dist/platform/state/sqlite-vec-loader.d.ts.map +1 -0
  497. package/dist/platform/state/sqlite-vec-loader.js +43 -0
  498. package/dist/platform/state/vibe-projection.d.ts +67 -0
  499. package/dist/platform/state/vibe-projection.d.ts.map +1 -0
  500. package/dist/platform/state/vibe-projection.js +115 -0
  501. package/dist/platform/tools/agent/index.d.ts.map +1 -1
  502. package/dist/platform/tools/agent/index.js +8 -0
  503. package/dist/platform/tools/agent/manager.d.ts +140 -1
  504. package/dist/platform/tools/agent/manager.d.ts.map +1 -1
  505. package/dist/platform/tools/agent/manager.js +143 -1
  506. package/dist/platform/tools/agent/schema.d.ts +26 -0
  507. package/dist/platform/tools/agent/schema.d.ts.map +1 -1
  508. package/dist/platform/tools/agent/schema.js +2 -2
  509. package/dist/platform/tools/agent/wrfc-batch-policy.d.ts +13 -0
  510. package/dist/platform/tools/agent/wrfc-batch-policy.d.ts.map +1 -1
  511. package/dist/platform/tools/agent/wrfc-batch-policy.js +60 -0
  512. package/dist/platform/tools/exec/runtime.d.ts +10 -0
  513. package/dist/platform/tools/exec/runtime.d.ts.map +1 -1
  514. package/dist/platform/tools/exec/runtime.js +161 -49
  515. package/dist/platform/tools/exec/schema.d.ts +3 -1
  516. package/dist/platform/tools/exec/schema.d.ts.map +1 -1
  517. package/dist/platform/tools/exec/schema.js +2 -1
  518. package/dist/platform/tools/fetch/runtime.d.ts +7 -0
  519. package/dist/platform/tools/fetch/runtime.d.ts.map +1 -1
  520. package/dist/platform/tools/fetch/runtime.js +8 -6
  521. package/dist/platform/tools/index.d.ts +2 -0
  522. package/dist/platform/tools/index.d.ts.map +1 -1
  523. package/dist/platform/tools/index.js +2 -0
  524. package/dist/platform/tools/registry.d.ts +9 -3
  525. package/dist/platform/tools/registry.d.ts.map +1 -1
  526. package/dist/platform/tools/registry.js +9 -3
  527. package/dist/platform/tools/state/index.d.ts +9 -0
  528. package/dist/platform/tools/state/index.d.ts.map +1 -1
  529. package/dist/platform/tools/state/index.js +60 -3
  530. package/dist/platform/types/foundation-contract.d.ts +1 -1
  531. package/dist/platform/types/foundation-contract.d.ts.map +1 -1
  532. package/dist/platform/types/index.d.ts +1 -1
  533. package/dist/platform/types/index.d.ts.map +1 -1
  534. package/dist/platform/types/tools.d.ts +14 -1
  535. package/dist/platform/types/tools.d.ts.map +1 -1
  536. package/dist/platform/version.js +1 -1
  537. package/package.json +29 -9
  538. package/dist/platform/control-plane/routes/automation.d.ts +0 -3
  539. package/dist/platform/control-plane/routes/automation.d.ts.map +0 -1
  540. package/dist/platform/control-plane/routes/automation.js +0 -63
  541. package/dist/platform/control-plane/routes/context.d.ts +0 -2
  542. package/dist/platform/control-plane/routes/context.d.ts.map +0 -1
  543. package/dist/platform/control-plane/routes/context.js +0 -1
  544. package/dist/platform/control-plane/routes/operator.d.ts +0 -8
  545. package/dist/platform/control-plane/routes/operator.d.ts.map +0 -1
  546. package/dist/platform/control-plane/routes/operator.js +0 -415
  547. package/dist/platform/control-plane/routes/remote.d.ts +0 -3
  548. package/dist/platform/control-plane/routes/remote.d.ts.map +0 -1
  549. package/dist/platform/control-plane/routes/remote.js +0 -35
  550. package/dist/platform/control-plane/routes/sessions.d.ts +0 -3
  551. package/dist/platform/control-plane/routes/sessions.d.ts.map +0 -1
  552. package/dist/platform/control-plane/routes/sessions.js +0 -43
  553. package/dist/platform/control-plane/routes/tasks.d.ts +0 -3
  554. package/dist/platform/control-plane/routes/tasks.d.ts.map +0 -1
  555. package/dist/platform/control-plane/routes/tasks.js +0 -22
@@ -0,0 +1,535 @@
1
+ /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
+ /**
3
+ * Orchestration engine — the model (W4.1, wo701).
4
+ *
5
+ * A phase/work-item pipeline layered OVER (not replacing) WrfcController. The
6
+ * hard departure from WrfcController is pipeline semantics: an item advances
7
+ * to its next phase the instant its gate passes, claimed by WHATEVER capacity
8
+ * slot is free — there is no pairwise binding of one reviewer to one
9
+ * engineer's history (see wrfc-controller.ts startReview:883/startFix:1042,
10
+ * which bind chain.reviewerAgentId/chain.fixerAgentId to a single chain).
11
+ *
12
+ * Float ordinals on Phase are load-bearing: inserting a phase mid-run assigns
13
+ * an ordinal strictly between its neighbors, so existing phase ids — and
14
+ * therefore existing PhaseResult resume-cache keys (itemId,phaseId) — never
15
+ * shift or invalidate.
16
+ */
17
+ import type { WrfcAgentRole, QualityGateResult } from '../agents/wrfc-types.js';
18
+ import type { WrfcCommitScope } from '../agents/wrfc-config.js';
19
+ import type { CompletionReport, ConstraintFinding } from '../agents/completion-report.js';
20
+ /** A named agent role, OR an archetype name loaded via ArchetypeLoader. */
21
+ export type PhaseRole = WrfcAgentRole | (string & {});
22
+ export type PhaseKind = 'plan' | 'engineer' | 'review' | 'fix' | 'gate' | 'integrate' | 'custom';
23
+ /** The gate policy a phase enforces before an item may advance past it. */
24
+ export interface PhaseGateSpec {
25
+ readonly scope: WrfcCommitScope;
26
+ readonly gates: readonly string[];
27
+ }
28
+ /**
29
+ * One pipeline stage. `ordinal` is a float specifically so
30
+ * `engine.insertPhase()` can slot a new phase strictly between two existing
31
+ * ordinals without renumbering anything — renumbering would invalidate every
32
+ * PhaseResult cache key already keyed off the old (itemId,phaseId) pairs.
33
+ */
34
+ export interface Phase {
35
+ readonly id: string;
36
+ readonly ordinal: number;
37
+ readonly role: PhaseRole;
38
+ readonly capacity: number;
39
+ readonly gate: PhaseGateSpec;
40
+ readonly kind: PhaseKind;
41
+ /** Epoch ms — set only for phases created via insertPhase() mid-run. */
42
+ readonly insertedAt?: number | undefined;
43
+ }
44
+ /** Caller-supplied shape for engine.insertPhase() / seeding. `id` is generated when omitted. */
45
+ export interface PhaseSpec {
46
+ readonly id?: string | undefined;
47
+ readonly role: PhaseRole;
48
+ readonly capacity: number;
49
+ readonly gate: PhaseGateSpec;
50
+ readonly kind: PhaseKind;
51
+ }
52
+ export type WorkItemState = 'pending' | 'awaiting-capacity'
53
+ /**
54
+ * Live only while a phase's agent is actually running. `importWorkstream`
55
+ * (engine.ts) reconciles any item persisted in this state back to
56
+ * 'pending' and clears `agentId` before the workstream is registered — a
57
+ * snapshot can only ever capture 'in-phase' as a crash artifact (the
58
+ * process died mid-run), never a resumable one, since no agent from a
59
+ * prior process is still alive to finish it. Without that reconciliation
60
+ * an imported 'in-phase' item counts as an OCCUPIED capacity slot forever
61
+ * (computeClaims, scheduler.ts) while never being in the re-claimable
62
+ * waiting set, permanently starving its workstream.
63
+ */
64
+ | 'in-phase' | 'passed' | 'failed'
65
+ /**
66
+ * Recoverable, not terminal. computeClaims (scheduler.ts) includes
67
+ * 'blocked-budget' items in its waiting set, so the item is automatically
68
+ * reconsidered on the next tick(). Because usage only grows, in practice
69
+ * that next tick only unblocks the item once the ceiling itself rises (or
70
+ * is removed) via `engine.updateBudget()` — which calls tick() after
71
+ * updating `workstream.budget` so the reconsideration happens immediately
72
+ * rather than waiting on some unrelated sibling to complete. `blockedReason`
73
+ * carries the human-readable reason for as long as the item stays blocked
74
+ * (cleared the moment it reclaims a slot).
75
+ */
76
+ | 'blocked-budget'
77
+ /**
78
+ * Recoverable, not terminal — the item cannot be claimed yet because at
79
+ * least one of its `dependsOn` items has not reached 'passed'. This is a
80
+ * REFUSE-not-kill gate (BIG-3 item 2): the item sits here, out of the
81
+ * claimable waiting set (computeClaims excludes it), until the engine's
82
+ * per-tick dependency pre-pass (applyDependencyGates, engine.ts) finds every
83
+ * dependency passed and flips it back to 'pending'. `blockedReason` is
84
+ * recomputed every tick so it stays honest as dependencies change:
85
+ * - `waiting on: <titles>` while dependencies are still pending/running,
86
+ * - `dependency failed: <titles>` once a dependency has terminally failed.
87
+ * A FAILED dependency does NOT terminally fail the dependent — it stays here,
88
+ * recoverable: if that dependency is later retried (engine.retryItem) and
89
+ * passes, the next tick clears this block and the item proceeds. Only ever
90
+ * set on an item that has not started yet (no phase has run); once an item's
91
+ * dependencies are all passed at its first claim they stay passed (passed is
92
+ * terminal), so a mid-pipeline item is never re-gated.
93
+ */
94
+ | 'blocked-dependency';
95
+ /** Token/cost usage rolled up across every agent this work-item has ever spawned. */
96
+ export interface WorkItemUsage {
97
+ readonly inputTokens: number;
98
+ readonly outputTokens: number;
99
+ readonly cacheReadTokens: number;
100
+ readonly cacheWriteTokens: number;
101
+ readonly reasoningTokens?: number | undefined;
102
+ readonly llmCallCount: number;
103
+ readonly turnCount: number;
104
+ readonly toolCallCount: number;
105
+ readonly costUsd: number | null;
106
+ readonly costState: 'priced' | 'unpriced' | 'estimated';
107
+ }
108
+ export declare function emptyWorkItemUsage(): WorkItemUsage;
109
+ /**
110
+ * Combine two usage rollups into one running total. The SINGLE canonical merge
111
+ * used everywhere a WorkItemUsage is accumulated — the phase-runner (folding a
112
+ * completed phase into an item), the engine (same, at the phase boundary), and
113
+ * the fleet rollup adapters (overlaying live in-flight usage onto committed
114
+ * totals). Keeping one implementation is what makes the rollup MONOTONE in
115
+ * presence: every count is summed (counts only grow) and a cost is retained
116
+ * via `??` whenever either operand carries one, so once a real token or cost
117
+ * value has appeared the merged result can never regress to absent/`null`
118
+ * (DEBT-4 item 2 — "updating" is a state, never a data wipe).
119
+ *
120
+ * Cost state stays honest rather than optimistic: 'priced' only when BOTH
121
+ * operands are priced; 'unpriced' only when NEITHER carries a cost; any mix is
122
+ * 'estimated' — a real partial sum, explicitly flagged as incomplete.
123
+ */
124
+ export declare function mergeWorkItemUsage(a: WorkItemUsage, b: WorkItemUsage): WorkItemUsage;
125
+ /**
126
+ * One unit of pipeline work. `visits` bounds re-review cycles the same way
127
+ * WrfcController.retryTransportFailure/evaluateConstraints cap fix attempts —
128
+ * keyed by phaseId so a dynamically-inserted 'fix' phase gets its own counter.
129
+ */
130
+ export interface WorkItem {
131
+ readonly id: string;
132
+ title: string;
133
+ readonly task: string;
134
+ /**
135
+ * IDs of the sibling work items this item depends on (BIG-3 item 2). The
136
+ * item is not claimable until EVERY id here refers to an item that has
137
+ * reached 'passed'; until then it sits in 'blocked-dependency' with an
138
+ * honest `blockedReason`. Empty (the common case) ⇒ no dependency gate, the
139
+ * item is claimable as soon as capacity and budget allow. Populated from a
140
+ * PlanProposal's resolved `dependsOn` by `fromPlanProposal`
141
+ * (proposal-workstream.ts); the assembly asserts these reference real items
142
+ * and form no cycle. JSON-safe (a plain string[]), so it serializes with the
143
+ * work item unchanged.
144
+ */
145
+ dependsOn: string[];
146
+ /** The phase this item is currently queued for or running in; null once terminal. */
147
+ currentPhaseId: string | null;
148
+ state: WorkItemState;
149
+ branch?: string | undefined;
150
+ /** The agent currently (or most recently) driving this item's active phase. */
151
+ agentId?: string | undefined;
152
+ /** Every agent ever spawned for this item, across all phases/retries — usage rollup roster. */
153
+ allAgentIds: string[];
154
+ /** phaseId -> number of times this item has been routed through that phase. */
155
+ readonly visits: Map<string, number>;
156
+ /** Deduped touched-path ledger for scoped commits, mirrors WrfcChain.touchedPaths. */
157
+ touchedPaths: string[];
158
+ usage: WorkItemUsage;
159
+ /** Separate from `visits` — a transport blip must never eat into the fix-cycle budget. */
160
+ transportRetryCount: number;
161
+ readonly createdAt: number;
162
+ completedAt?: number | undefined;
163
+ failureReason?: string | undefined;
164
+ /** Set only while state === 'blocked-budget'; cleared the instant the item reclaims a slot. See the 'blocked-budget' state doc for recovery semantics. */
165
+ blockedReason?: string | undefined;
166
+ /**
167
+ * Non-fatal bookkeeping notes accrued while the item PASSED its phases — e.g.
168
+ * a scoped commit that could not complete (DEBT-4 item 1). Warnings NEVER
169
+ * change the item's terminal status (that derives only from phase outcomes
170
+ * plus the explicit negating set, see bookkeeping.ts); they make a
171
+ * passed-with-caveats outcome legible instead of hiding it — or, worse,
172
+ * misreporting a genuinely-passed item as failed.
173
+ */
174
+ warnings?: string[] | undefined;
175
+ /**
176
+ * Absolute path to this item's isolated git worktree (worktree mode only).
177
+ * Set at first claim, cleared once the worktree is removed. Retained on a
178
+ * KEPT worktree (merge conflict, or a dirty tree after fail/kill) so the
179
+ * terminal summary and events can name exactly where the unmerged work lives.
180
+ */
181
+ worktreePath?: string | undefined;
182
+ /** The item's branch name inside its worktree (worktree mode only), e.g. `ws/<wsShort>/<itemShort>`. */
183
+ worktreeBranch?: string | undefined;
184
+ /**
185
+ * Integration state of the item branch relative to the base branch (worktree
186
+ * mode). `'pending'` from the moment the passed item enters the integration
187
+ * lane until its merge resolves; `'merged'` (with {@link mergeHash} set) on a
188
+ * clean merge; `'conflict'` when the lane could not merge it — the worktree is
189
+ * then KEPT and `blockedReason` carries `merge-conflict: <files>`.
190
+ */
191
+ mergeState?: ItemMergeState | undefined;
192
+ /** The merge commit hash recorded on a clean integration (mergeState === 'merged'). */
193
+ mergeHash?: string | undefined;
194
+ /**
195
+ * True when this item's worktree was deliberately KEPT rather than removed —
196
+ * a merge conflict, or a dirty tree left after fail/kill (data safety, rule
197
+ * 4). A kept worktree still lives at {@link worktreePath} for inspection.
198
+ */
199
+ worktreeKept?: boolean | undefined;
200
+ }
201
+ export interface WorkItemSpec {
202
+ readonly id?: string | undefined;
203
+ readonly title: string;
204
+ readonly task: string;
205
+ /**
206
+ * IDs of other items in the SAME workstream this item depends on (BIG-3
207
+ * item 2). Omitted/empty ⇒ no dependency gate. Every id must match another
208
+ * item's id in the same CreateWorkstreamInput; `fromPlanProposal` asserts
209
+ * this (and acyclicity) at assembly, and the engine gates the claim path on
210
+ * it (see the 'blocked-dependency' state doc).
211
+ */
212
+ readonly dependsOn?: readonly string[] | undefined;
213
+ }
214
+ /**
215
+ * Where a workstream's item phases run their file changes.
216
+ *
217
+ * - `shared` (DEFAULT): every item's phases run their agents in the ONE shared
218
+ * `projectRoot` working tree and scoped-commit straight onto its branch, as
219
+ * the engine has always behaved. Two items editing the same file serialize
220
+ * only by luck of scheduling — full behavioral back-compat, every pre-existing
221
+ * test passes untouched.
222
+ * - `worktree`: at first claim each item gets its own git worktree branched
223
+ * from the base branch (see IsolatedWorktree, worktree.ts). Its phases commit
224
+ * onto the item branch INSIDE that worktree, so concurrent items never touch
225
+ * each other's working tree. When an item terminates passed its branch is
226
+ * merged back into the base branch through a single sequential integration
227
+ * lane (completion order). See the engine's WorktreeIsolationManager.
228
+ */
229
+ export type WorkstreamIsolation = 'shared' | 'worktree';
230
+ /**
231
+ * The integration state of an item's isolated worktree branch relative to the
232
+ * base branch (worktree mode only; absent/`'n-a'` in shared mode). Distinct
233
+ * from WorkItemState (the pipeline state): an item can be terminally `passed`
234
+ * while its merge is still `pending` in the integration lane, or `conflict`
235
+ * after the lane hit an unmergeable branch.
236
+ */
237
+ export type ItemMergeState = 'n-a' | 'pending' | 'merged' | 'conflict';
238
+ export interface BudgetCeiling {
239
+ readonly maxTokens?: number | undefined;
240
+ readonly maxCostUsd?: number | undefined;
241
+ }
242
+ /**
243
+ * Workstream-level provenance (BIG-3 item 1) — honest, machine-readable record
244
+ * of where a workstream's items came from when it was assembled from an
245
+ * approved PlanProposal by `fromPlanProposal` (proposal-workstream.ts). Absent
246
+ * on workstreams built the compat way (`fromChainSpec`) or authored directly.
247
+ * Carried through serialization and surfaced in status/fleet so a resumed or
248
+ * observed workstream reports its origin without guessing.
249
+ */
250
+ export interface WorkstreamProvenance {
251
+ /** Whether a read-only planning agent decomposed the goal, or the heuristic single-item path did. Mirrors PlanProposal.decomposedBy. */
252
+ readonly decomposedBy?: 'agent' | 'heuristic' | undefined;
253
+ /** The id of the PlanProposal this workstream was assembled from. */
254
+ readonly proposalId?: string | undefined;
255
+ /** The proposal's execution strategy label (e.g. 'parallel', 'sequential'), for display. */
256
+ readonly strategy?: string | undefined;
257
+ /** Estimated dollar cost of the planning-agent decomposition run, when priced. */
258
+ readonly agentCostUsd?: number | undefined;
259
+ /** Wall-clock time the planning agent ran, in ms (when the agent path ran). */
260
+ readonly elapsedMs?: number | undefined;
261
+ }
262
+ export interface Workstream {
263
+ readonly id: string;
264
+ title: string;
265
+ readonly schemaVersion: number;
266
+ phases: Phase[];
267
+ items: WorkItem[];
268
+ /**
269
+ * Mutable (not readonly) specifically so `engine.updateBudget()` can raise,
270
+ * lower, or clear (`undefined`) the ceiling on a live workstream. Every
271
+ * update calls tick() immediately afterward, so any item already sitting
272
+ * in 'blocked-budget' gets reconsidered right away rather than waiting on
273
+ * an unrelated sibling to complete first.
274
+ */
275
+ budget?: BudgetCeiling | undefined;
276
+ /**
277
+ * Where item phases run their file changes (see {@link WorkstreamIsolation}).
278
+ * Absent is treated as `'shared'` everywhere — the default that preserves
279
+ * full behavioral back-compat. Persisted with the workstream and surfaced in
280
+ * events, so a resumed or observed workstream reports its isolation honestly.
281
+ */
282
+ readonly isolation?: WorkstreamIsolation | undefined;
283
+ /**
284
+ * Where this workstream's items came from (BIG-3 item 1). Set only when the
285
+ * workstream was assembled from an approved PlanProposal via
286
+ * `fromPlanProposal`; absent for compat/`fromChainSpec` or hand-authored
287
+ * workstreams. Persisted and surfaced for honest origin reporting.
288
+ */
289
+ readonly provenance?: WorkstreamProvenance | undefined;
290
+ readonly createdAt: number;
291
+ }
292
+ /** Outcome of running a phase's configured gates for one item. */
293
+ export interface GateOutcome {
294
+ readonly passed: boolean;
295
+ readonly results: readonly QualityGateResult[];
296
+ readonly constraintFindings?: readonly ConstraintFinding[] | undefined;
297
+ readonly unsatisfiedConstraintIds?: readonly string[] | undefined;
298
+ }
299
+ /**
300
+ * Recorded on a PhaseResult when a scoped commit (Wave 6, wo-F item 4)
301
+ * excluded one or more candidate paths because they were already dirty
302
+ * before this engine run launched and this phase never actually touched
303
+ * them (see dirty-guard.ts's excludeUntouchedLaunchResidue). `skipped: true`
304
+ * means every candidate was excluded and no commit was attempted at all.
305
+ */
306
+ export interface CommitExclusion {
307
+ readonly excludedPaths: readonly string[];
308
+ readonly skipped: boolean;
309
+ }
310
+ /**
311
+ * Honest record of the scoped-commit bookkeeping step that runs AFTER a
312
+ * phase's gate has already passed (see phase-runner.ts commitPhaseWork). The
313
+ * commit is a POST-gate step: its outcome never decides whether the phase
314
+ * passed — the gate already did that — it only reports what happened to the
315
+ * working tree afterward, so the fleet and transcript can state "committed
316
+ * <hash>" or "commit skipped/failed" without ever contradicting the phase
317
+ * verdict (DEBT-4 item 1). Present on a PhaseResult only when the gate passed
318
+ * and a commit was therefore attempted or deliberately skipped.
319
+ */
320
+ export interface PhaseCommitOutcome {
321
+ readonly status: 'committed' | 'skipped' | 'failed';
322
+ /** The landed commit hash, present only for status 'committed'. */
323
+ readonly hash?: string | undefined;
324
+ /** Human-readable detail for 'skipped'/'failed', plus any gitignored-path note on 'committed'. */
325
+ readonly reason?: string | undefined;
326
+ /**
327
+ * True ONLY for a 'failed' commit whose failure belongs to the NEGATING SET —
328
+ * a bookkeeping failure (workspace/index corruption) that genuinely
329
+ * invalidates the phase's passed work. A negating commit failure is the one
330
+ * post-gate condition that DOES fail the item; every other commit failure is
331
+ * a non-fatal warning on a passed item. See bookkeeping.ts for the set.
332
+ */
333
+ readonly negating?: boolean | undefined;
334
+ }
335
+ /**
336
+ * The resume-cache unit, keyed (itemId,phaseId). On resume, every
337
+ * (itemId,phaseId) present in a snapshot's completedResults is hydrated
338
+ * without re-spawning — this is what makes prefix-replay possible.
339
+ */
340
+ export interface PhaseResult {
341
+ readonly itemId: string;
342
+ readonly phaseId: string;
343
+ readonly agentId: string;
344
+ readonly report: CompletionReport;
345
+ readonly gate: GateOutcome;
346
+ readonly startedAt: number;
347
+ readonly completedAt: number;
348
+ readonly usage: WorkItemUsage;
349
+ /** Present only when a scoped commit excluded launch-dirty residue (see CommitExclusion). */
350
+ readonly commitExclusion?: CommitExclusion | undefined;
351
+ /**
352
+ * Outcome of the post-gate scoped-commit step (DEBT-4 item 1). Present only
353
+ * when this phase's gate passed and a commit was attempted or deliberately
354
+ * skipped; absent for a failed/cancelled phase (no commit is reached).
355
+ */
356
+ readonly commit?: PhaseCommitOutcome | undefined;
357
+ }
358
+ /** Snapshot shape written to .goodvibes/orchestration/<workstreamId>.json. */
359
+ export interface WorkstreamSnapshot {
360
+ readonly schemaVersion: number;
361
+ readonly writtenAt: number;
362
+ readonly workstream: SerializedWorkstream;
363
+ readonly completedResults: readonly PhaseResult[];
364
+ }
365
+ /** JSON-safe mirror of Workstream (WorkItem.visits as an object, not a Map). */
366
+ export interface SerializedWorkstream extends Omit<Workstream, 'items'> {
367
+ readonly items: readonly SerializedWorkItem[];
368
+ }
369
+ export interface SerializedWorkItem extends Omit<WorkItem, 'visits'> {
370
+ readonly visits: Record<string, number>;
371
+ }
372
+ export declare const CURRENT_WORKSTREAM_SCHEMA_VERSION = 1;
373
+ /** Discriminated events the engine emits over its own lifecycle (persistence, budget, fleet). */
374
+ export type OrchestrationEvent = {
375
+ readonly type: 'phase-inserted';
376
+ readonly workstreamId: string;
377
+ readonly phase: Phase;
378
+ } | {
379
+ readonly type: 'item-advanced';
380
+ readonly workstreamId: string;
381
+ readonly itemId: string;
382
+ readonly fromPhaseId: string | null;
383
+ readonly toPhaseId: string | null;
384
+ } | {
385
+ readonly type: 'item-blocked-budget';
386
+ readonly workstreamId: string;
387
+ readonly itemId: string;
388
+ readonly phaseId: string;
389
+ readonly reason: string;
390
+ } | {
391
+ readonly type: 'item-cancelled';
392
+ readonly workstreamId: string;
393
+ readonly itemId: string;
394
+ readonly reason: string;
395
+ } | {
396
+ readonly type: 'item-passed';
397
+ readonly workstreamId: string;
398
+ readonly itemId: string;
399
+ readonly warnings?: readonly string[] | undefined;
400
+ } | {
401
+ readonly type: 'item-failed';
402
+ readonly workstreamId: string;
403
+ readonly itemId: string;
404
+ readonly reason: string;
405
+ }
406
+ /**
407
+ * Dependency-gating lifecycle (BIG-3 item 2). `item-blocked-dependency`
408
+ * fires once per NEW block (not every idle tick), naming the unmet
409
+ * dependencies by id in `deps` and carrying the current human-readable
410
+ * `reason` ('waiting on: …' or 'dependency failed: …'). `item-dependency-cleared`
411
+ * fires when a previously-blocked item's dependencies all reach passed and it
412
+ * is released back to the claimable set. `item-retried` fires when a
413
+ * terminally-failed item is deliberately reset to re-run via engine.retryItem
414
+ * — the documented recovery path that lets a failed dependency (and its
415
+ * stuck dependents) recover.
416
+ */
417
+ | {
418
+ readonly type: 'item-blocked-dependency';
419
+ readonly workstreamId: string;
420
+ readonly itemId: string;
421
+ readonly phaseId: string;
422
+ readonly reason: string;
423
+ readonly deps: readonly string[];
424
+ } | {
425
+ readonly type: 'item-dependency-cleared';
426
+ readonly workstreamId: string;
427
+ readonly itemId: string;
428
+ } | {
429
+ readonly type: 'item-retried';
430
+ readonly workstreamId: string;
431
+ readonly itemId: string;
432
+ readonly reason: string;
433
+ }
434
+ /** Emitted once per item on `importWorkstream` for every item reconciled from a crash-artifact 'in-phase' snapshot back to 'pending' — see the 'in-phase' state doc. */
435
+ | {
436
+ readonly type: 'item-requeued';
437
+ readonly workstreamId: string;
438
+ readonly itemId: string;
439
+ readonly reason: string;
440
+ } | {
441
+ readonly type: 'workstream-persisted';
442
+ readonly workstreamId: string;
443
+ }
444
+ /**
445
+ * Worktree-isolation lifecycle events (worktree mode only). Each names the
446
+ * item and, where relevant, the on-disk worktree path and branch so an
447
+ * observer (TUI, transcript) can report isolation + merge state honestly and
448
+ * point at KEPT worktrees for inspection. None of these ever fire in shared
449
+ * mode.
450
+ */
451
+ | {
452
+ readonly type: 'item-worktree-created';
453
+ readonly workstreamId: string;
454
+ readonly itemId: string;
455
+ readonly path: string;
456
+ readonly branch: string;
457
+ }
458
+ /** A passed item's branch merged cleanly into the base branch through the integration lane. */
459
+ | {
460
+ readonly type: 'item-merged';
461
+ readonly workstreamId: string;
462
+ readonly itemId: string;
463
+ readonly branch: string;
464
+ readonly hash: string;
465
+ }
466
+ /**
467
+ * The integration lane could not merge a passed item's branch — the base
468
+ * merge conflicted. The worktree + branch are KEPT (never auto-resolved,
469
+ * never silently dropped); the lane continues with the next item.
470
+ */
471
+ | {
472
+ readonly type: 'item-merge-conflict';
473
+ readonly workstreamId: string;
474
+ readonly itemId: string;
475
+ readonly branch: string;
476
+ readonly path: string;
477
+ readonly files: readonly string[];
478
+ }
479
+ /** An item's worktree + branch were removed (merged item, or a clean tree after fail/kill). */
480
+ | {
481
+ readonly type: 'item-worktree-removed';
482
+ readonly workstreamId: string;
483
+ readonly itemId: string;
484
+ readonly path: string;
485
+ }
486
+ /**
487
+ * An item's worktree was deliberately KEPT rather than removed — a merge
488
+ * conflict, or a dirty tree left behind by a failed/killed item (data
489
+ * safety). `reason` states which; `path` is where the work still lives.
490
+ */
491
+ | {
492
+ readonly type: 'item-worktree-kept';
493
+ readonly workstreamId: string;
494
+ readonly itemId: string;
495
+ readonly path: string;
496
+ readonly reason: string;
497
+ }
498
+ /**
499
+ * A KEPT worktree was evicted (removed) to stay under the kept-worktree cap —
500
+ * oldest-first, and always announced (never a silent sweep). `path` is what
501
+ * was removed.
502
+ */
503
+ | {
504
+ readonly type: 'item-worktree-evicted';
505
+ readonly workstreamId: string;
506
+ readonly itemId: string;
507
+ readonly path: string;
508
+ }
509
+ /**
510
+ * Reconciliation of an orphaned `ws/*` worktree found at import (a crash
511
+ * artifact from a prior process). `disposition` is `'adopted'` when the
512
+ * engine re-attached it to a re-queued item, or `'reported'` when it belongs
513
+ * to no known item and was left in place for the operator (NEVER deleted on
514
+ * sight).
515
+ */
516
+ | {
517
+ readonly type: 'orphan-worktree-reconciled';
518
+ readonly workstreamId: string;
519
+ readonly path: string;
520
+ readonly branch: string;
521
+ readonly disposition: 'adopted' | 'reported';
522
+ }
523
+ /**
524
+ * Emitted once per engine instance (Wave 6, wo-F item 4), right after the
525
+ * launch-time dirty-tree snapshot resolves, ONLY when it is non-empty.
526
+ * Engine-wide, not workstream-scoped — `workstreamId` is absent (unlike
527
+ * every other variant above) because it fires before any workstream is
528
+ * necessarily even created. See dirty-guard.ts.
529
+ */
530
+ | {
531
+ readonly type: 'dirty-tree-at-launch';
532
+ readonly paths: readonly string[];
533
+ };
534
+ export type OrchestrationEventListener = (event: OrchestrationEvent) => void;
535
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/platform/orchestration/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
+ export function emptyWorkItemUsage() {
3
+ return {
4
+ inputTokens: 0,
5
+ outputTokens: 0,
6
+ cacheReadTokens: 0,
7
+ cacheWriteTokens: 0,
8
+ llmCallCount: 0,
9
+ turnCount: 0,
10
+ toolCallCount: 0,
11
+ costUsd: null,
12
+ costState: 'unpriced',
13
+ };
14
+ }
15
+ /**
16
+ * Combine two usage rollups into one running total. The SINGLE canonical merge
17
+ * used everywhere a WorkItemUsage is accumulated — the phase-runner (folding a
18
+ * completed phase into an item), the engine (same, at the phase boundary), and
19
+ * the fleet rollup adapters (overlaying live in-flight usage onto committed
20
+ * totals). Keeping one implementation is what makes the rollup MONOTONE in
21
+ * presence: every count is summed (counts only grow) and a cost is retained
22
+ * via `??` whenever either operand carries one, so once a real token or cost
23
+ * value has appeared the merged result can never regress to absent/`null`
24
+ * (DEBT-4 item 2 — "updating" is a state, never a data wipe).
25
+ *
26
+ * Cost state stays honest rather than optimistic: 'priced' only when BOTH
27
+ * operands are priced; 'unpriced' only when NEITHER carries a cost; any mix is
28
+ * 'estimated' — a real partial sum, explicitly flagged as incomplete.
29
+ */
30
+ export function mergeWorkItemUsage(a, b) {
31
+ const sawReasoning = a.reasoningTokens !== undefined || b.reasoningTokens !== undefined;
32
+ const bothPriced = a.costState === 'priced' && b.costState === 'priced';
33
+ const neitherPriced = a.costUsd === null && b.costUsd === null;
34
+ return {
35
+ inputTokens: a.inputTokens + b.inputTokens,
36
+ outputTokens: a.outputTokens + b.outputTokens,
37
+ cacheReadTokens: a.cacheReadTokens + b.cacheReadTokens,
38
+ cacheWriteTokens: a.cacheWriteTokens + b.cacheWriteTokens,
39
+ reasoningTokens: sawReasoning ? (a.reasoningTokens ?? 0) + (b.reasoningTokens ?? 0) : undefined,
40
+ llmCallCount: a.llmCallCount + b.llmCallCount,
41
+ turnCount: a.turnCount + b.turnCount,
42
+ toolCallCount: a.toolCallCount + b.toolCallCount,
43
+ costUsd: a.costUsd !== null && b.costUsd !== null ? a.costUsd + b.costUsd : (a.costUsd ?? b.costUsd),
44
+ costState: bothPriced ? 'priced' : neitherPriced ? 'unpriced' : 'estimated',
45
+ };
46
+ }
47
+ export const CURRENT_WORKSTREAM_SCHEMA_VERSION = 1;
@@ -0,0 +1,33 @@
1
+ /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
+ import { type CommitWorkingTreeResult } from '../agents/worktree.js';
3
+ import type { OrchestrationEvent, WorkItem, Workstream } from './types.js';
4
+ export interface WorktreeIsolationManagerDeps {
5
+ readonly projectRoot: string;
6
+ readonly emit: (event: OrchestrationEvent) => void;
7
+ readonly now?: (() => number) | undefined;
8
+ /** Bounds how many KEPT (conflict/dirty) worktrees are retained before oldest-first eviction. Default 20. */
9
+ readonly keptWorktreeCap?: number | undefined;
10
+ }
11
+ export interface ItemWorktreeHandle {
12
+ readonly path: string;
13
+ commit(message: string, paths?: string[]): Promise<CommitWorkingTreeResult>;
14
+ }
15
+ export interface WorktreeIsolationManager {
16
+ /** Ensure this item has a dedicated worktree (idempotent — created once, at first claim). Only meaningful when workstream.isolation === 'worktree'. */
17
+ ensureWorktree(workstream: Workstream, item: WorkItem): Promise<ItemWorktreeHandle>;
18
+ /**
19
+ * Enqueue a just-passed item's branch onto the sequential integration lane.
20
+ * Resolves once THIS item's attempt (merged/conflict/empty) and any
21
+ * resulting cleanup has settled. Callers that don't need to wait may let
22
+ * the returned promise run fire-and-forget (errors are caught internally —
23
+ * this never rejects).
24
+ */
25
+ enqueueIntegration(workstream: Workstream, item: WorkItem): Promise<void>;
26
+ /** Fail/kill cleanup rule: remove the item's worktree if clean, else KEEP it (data safety). No-op if the item never got a worktree. Never throws. */
27
+ cleanupTerminated(workstream: Workstream, item: WorkItem): Promise<void>;
28
+ /** Synchronous orphan scan — see the module doc. Call once, right after registering an imported workstream, before start()/tick(). */
29
+ reconcileOrphans(workstream: Workstream): void;
30
+ }
31
+ export declare function itemWorktreeBranch(workstreamId: string, itemId: string): string;
32
+ export declare function createWorktreeIsolationManager(deps: WorktreeIsolationManagerDeps): WorktreeIsolationManager;
33
+ //# sourceMappingURL=worktree-isolation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-isolation.d.ts","sourceRoot":"","sources":["../../../src/platform/orchestration/worktree-isolation.ts"],"names":[],"mappings":"AAAA,qFAAqF;AA+CrF,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3E,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;IAC1C,6GAA6G;IAC7G,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC7E;AAED,MAAM,WAAW,wBAAwB;IACvC,uJAAuJ;IACvJ,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpF;;;;;;OAMG;IACH,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,qJAAqJ;IACrJ,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,sIAAsI;IACtI,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAChD;AAUD,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/E;AAaD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,4BAA4B,GAAG,wBAAwB,CA4L3G"}