@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,417 @@
1
+ /**
2
+ * Agent-driven goal decomposition for the planner.
3
+ *
4
+ * This module is the model-decomposition counterpart to the deterministic
5
+ * heuristic path in `plan-proposal.ts`. Given a goal, it drives a bounded,
6
+ * READ-ONLY planning agent (through the injected `DecompositionRunner` seam —
7
+ * this module never imports the agent machinery, so it stays in `core` and is
8
+ * fully unit-testable with a stubbed runner), parses and STRICTLY validates
9
+ * the agent's structured output, and produces a `PlanProposal` tagged with
10
+ * honest provenance.
11
+ *
12
+ * Failure honesty is the whole point: a spawn error, a timeout/cancellation,
13
+ * or output that is still malformed after ONE repair attempt all fall back to
14
+ * the existing heuristic `singleItemProposal` path, tagged
15
+ * `decomposedBy: 'heuristic'` with a `fallbackReason`. The heuristic path is
16
+ * reused verbatim — `singleItemProposal`/`assemblePlanProposal` are never
17
+ * modified — so their existing byte-for-byte test expectations are preserved;
18
+ * provenance is layered on afterward.
19
+ *
20
+ * The module NEVER performs surgery on agent output to force it to validate:
21
+ * a proposal is accepted only when `assemblePlanProposal` reports ZERO issues
22
+ * (no dangling dependency, no dependency cycle, no unresolved phase). Anything
23
+ * short of that is one repair attempt and then an honest fallback — never a
24
+ * silent edit that drops or rewrites the agent's work items.
25
+ */
26
+ import { AdaptivePlanner } from './adaptive-planner.js';
27
+ import { assemblePlanProposal, singleItemProposal, } from './plan-proposal.js';
28
+ /** Pull the first balanced JSON object out of arbitrary agent text (fenced or not). */
29
+ function extractJsonObject(text) {
30
+ const fenced = text.match(/```(?:json)?\s*([\s\S]*?)```/i);
31
+ const haystack = fenced?.[1] ?? text;
32
+ const start = haystack.indexOf('{');
33
+ if (start === -1)
34
+ return null;
35
+ let depth = 0;
36
+ let inString = false;
37
+ let escaped = false;
38
+ for (let i = start; i < haystack.length; i++) {
39
+ const ch = haystack[i];
40
+ if (inString) {
41
+ if (escaped) {
42
+ escaped = false;
43
+ }
44
+ else if (ch === '\\') {
45
+ escaped = true;
46
+ }
47
+ else if (ch === '"') {
48
+ inString = false;
49
+ }
50
+ continue;
51
+ }
52
+ if (ch === '"') {
53
+ inString = true;
54
+ continue;
55
+ }
56
+ if (ch === '{')
57
+ depth++;
58
+ else if (ch === '}') {
59
+ depth--;
60
+ if (depth === 0)
61
+ return haystack.slice(start, i + 1);
62
+ }
63
+ }
64
+ return null;
65
+ }
66
+ function isNonEmptyString(value) {
67
+ return typeof value === 'string' && value.trim().length > 0;
68
+ }
69
+ /**
70
+ * Parse + strictly validate a planning agent's output text into a
71
+ * `RawDecomposition` the assembler can consume. Never throws; every problem is
72
+ * accumulated into `errors` so a single repair prompt can address them all at
73
+ * once. Structural rejects: unparseable JSON, empty/absent items array, empty
74
+ * item title/brief, non-finite ordinal, empty phase title.
75
+ */
76
+ export function parseDecomposition(text) {
77
+ const errors = [];
78
+ const json = extractJsonObject(text ?? '');
79
+ if (!json) {
80
+ return { ok: false, errors: ['Output did not contain a JSON object.'] };
81
+ }
82
+ let parsed;
83
+ try {
84
+ parsed = JSON.parse(json);
85
+ }
86
+ catch (err) {
87
+ return { ok: false, errors: [`Output was not valid JSON: ${err.message}`] };
88
+ }
89
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
90
+ return { ok: false, errors: ['Top-level value must be a JSON object.'] };
91
+ }
92
+ const obj = parsed;
93
+ const rawItems = obj.items;
94
+ if (!Array.isArray(rawItems) || rawItems.length === 0) {
95
+ return { ok: false, errors: ['"items" must be a non-empty array.'] };
96
+ }
97
+ // Validate phases (optional).
98
+ const rawPhases = Array.isArray(obj.phases) ? obj.phases : [];
99
+ rawPhases.forEach((p, i) => {
100
+ if (typeof p !== 'object' || p === null || !isNonEmptyString(p.title)) {
101
+ errors.push(`phases[${i}] must have a non-empty "title".`);
102
+ }
103
+ });
104
+ // Validate items.
105
+ const items = [];
106
+ rawItems.forEach((raw, i) => {
107
+ if (typeof raw !== 'object' || raw === null) {
108
+ errors.push(`items[${i}] must be an object.`);
109
+ return;
110
+ }
111
+ const item = raw;
112
+ if (!isNonEmptyString(item.title))
113
+ errors.push(`items[${i}].title must be a non-empty string.`);
114
+ if (!isNonEmptyString(item.brief))
115
+ errors.push(`items[${i}].brief must be a non-empty string.`);
116
+ if (typeof item.ordinal !== 'number' || !Number.isFinite(item.ordinal)) {
117
+ errors.push(`items[${i}].ordinal must be a finite number.`);
118
+ }
119
+ if (item.phase !== undefined && !isNonEmptyString(item.phase)) {
120
+ errors.push(`items[${i}].phase, when present, must be a non-empty string.`);
121
+ }
122
+ if (isNonEmptyString(item.title) && isNonEmptyString(item.brief) && typeof item.ordinal === 'number' && Number.isFinite(item.ordinal)) {
123
+ items.push({
124
+ title: item.title,
125
+ brief: item.brief,
126
+ ordinal: item.ordinal,
127
+ ...(isNonEmptyString(item.phase) ? { phase: item.phase } : {}),
128
+ ...(Array.isArray(item.dependsOn) ? { dependsOn: item.dependsOn.filter((d) => typeof d === 'string' || typeof d === 'number') } : {}),
129
+ ...(isNonEmptyString(item.suggestedArchetype) ? { suggestedArchetype: item.suggestedArchetype } : {}),
130
+ ...(Array.isArray(item.likelyFiles) ? { likelyFiles: item.likelyFiles.filter(isNonEmptyString) } : {}),
131
+ ...(Array.isArray(item.verification) ? { verification: item.verification.filter(isNonEmptyString) } : {}),
132
+ ...(typeof item.canRunConcurrently === 'boolean' ? { canRunConcurrently: item.canRunConcurrently } : {}),
133
+ ...(typeof item.needsReview === 'boolean' ? { needsReview: item.needsReview } : {}),
134
+ });
135
+ }
136
+ });
137
+ if (errors.length > 0) {
138
+ return { ok: false, errors };
139
+ }
140
+ const notes = [];
141
+ if (Array.isArray(obj.notes))
142
+ notes.push(...obj.notes.filter(isNonEmptyString));
143
+ if (Array.isArray(obj.risks))
144
+ notes.push(...obj.risks.filter(isNonEmptyString));
145
+ const output = {
146
+ items,
147
+ ...(rawPhases.length > 0 ? { phases: rawPhases } : {}),
148
+ ...(Array.isArray(obj.dependencies) ? { dependencies: obj.dependencies } : {}),
149
+ };
150
+ return { ok: true, raw: toRawDecomposition(output), ...(notes.length > 0 ? { notes } : {}), errors: [] };
151
+ }
152
+ const DEFAULT_PHASE_TITLE = 'Execute';
153
+ /**
154
+ * Map a validated `DecompositionAgentOutput` into the `RawDecomposition` shape
155
+ * `assemblePlanProposal` consumes. Items are ordered by `ordinal` (stable on
156
+ * ties). Every referenced phase is materialized so the assembler never has to
157
+ * synthesize an "Unphased" bucket — an unresolved phase from here would be a
158
+ * real bug, not agent sloppiness. Ordinal-based dependency references are
159
+ * resolved to titles so the assembler's title resolver handles them uniformly.
160
+ */
161
+ export function toRawDecomposition(output) {
162
+ const ordered = [...output.items].sort((a, b) => a.ordinal - b.ordinal);
163
+ const ordinalToTitle = new Map();
164
+ for (const item of ordered) {
165
+ if (!ordinalToTitle.has(item.ordinal))
166
+ ordinalToTitle.set(item.ordinal, item.title);
167
+ }
168
+ const resolveRef = (ref) => {
169
+ if (typeof ref === 'number')
170
+ return ordinalToTitle.get(ref) ?? String(ref);
171
+ const asNum = Number(ref);
172
+ if (ref.trim() !== '' && Number.isFinite(asNum) && ordinalToTitle.has(asNum))
173
+ return ordinalToTitle.get(asNum);
174
+ return ref;
175
+ };
176
+ // Phase set: explicit phases first, then any item phase titles not covered,
177
+ // then the default shared phase if any item lacks one.
178
+ const phaseTitles = [];
179
+ const seenPhase = new Set();
180
+ const addPhase = (title) => {
181
+ const key = title.toLowerCase().trim();
182
+ if (!seenPhase.has(key)) {
183
+ seenPhase.add(key);
184
+ phaseTitles.push(title);
185
+ }
186
+ };
187
+ const explicit = new Map();
188
+ for (const p of output.phases ?? []) {
189
+ explicit.set(p.title.toLowerCase().trim(), p);
190
+ addPhase(p.title);
191
+ }
192
+ let needsDefault = false;
193
+ for (const item of ordered) {
194
+ if (item.phase)
195
+ addPhase(item.phase);
196
+ else
197
+ needsDefault = true;
198
+ }
199
+ if (needsDefault)
200
+ addPhase(DEFAULT_PHASE_TITLE);
201
+ const phases = phaseTitles.map((title) => {
202
+ const meta = explicit.get(title.toLowerCase().trim());
203
+ return meta?.description ? { title, description: meta.description } : { title };
204
+ });
205
+ // Accumulate dependencies: inline dependsOn plus explicit edges.
206
+ const depsByTitle = new Map();
207
+ const addDep = (from, to) => {
208
+ const key = from.toLowerCase().trim();
209
+ if (!depsByTitle.has(key))
210
+ depsByTitle.set(key, new Set());
211
+ depsByTitle.get(key).add(to);
212
+ };
213
+ for (const item of ordered) {
214
+ for (const dep of item.dependsOn ?? [])
215
+ addDep(item.title, resolveRef(dep));
216
+ }
217
+ for (const edge of output.dependencies ?? [])
218
+ addDep(resolveRef(edge.from), resolveRef(edge.to));
219
+ const workItems = ordered.map((item) => {
220
+ const deps = depsByTitle.get(item.title.toLowerCase().trim());
221
+ return {
222
+ title: item.title,
223
+ brief: item.brief,
224
+ phase: item.phase ?? DEFAULT_PHASE_TITLE,
225
+ ...(deps && deps.size > 0 ? { dependsOn: [...deps] } : {}),
226
+ ...(item.suggestedArchetype ? { suggestedArchetype: item.suggestedArchetype } : {}),
227
+ ...(item.likelyFiles ? { likelyFiles: item.likelyFiles } : {}),
228
+ ...(item.verification ? { verification: item.verification } : {}),
229
+ ...(item.canRunConcurrently !== undefined ? { canRunConcurrently: item.canRunConcurrently } : {}),
230
+ ...(item.needsReview !== undefined ? { needsReview: item.needsReview } : {}),
231
+ };
232
+ });
233
+ return { phases, workItems };
234
+ }
235
+ // ---------------------------------------------------------------------------
236
+ // Planner agent prompt
237
+ // ---------------------------------------------------------------------------
238
+ /**
239
+ * Build the system prompt for the read-only planning agent. It is explicit
240
+ * about the exact JSON contract and about the read-only posture (the agent's
241
+ * tool set already excludes write/edit/exec; this reinforces intent).
242
+ */
243
+ export function buildPlannerSystemPrompt() {
244
+ return [
245
+ 'You are a READ-ONLY planning agent. You may read, search, and analyze the codebase',
246
+ 'to understand it, but you MUST NOT modify anything and you have no write/edit/exec tools.',
247
+ '',
248
+ 'Decompose the given goal into an ordered set of work items. Respond with a SINGLE JSON',
249
+ 'object and NOTHING else (no prose, no markdown outside a single optional ```json fence).',
250
+ '',
251
+ 'Schema:',
252
+ '{',
253
+ ' "phases": [{ "title": string, "description"?: string }], // optional; shared phase template',
254
+ ' "items": [{',
255
+ ' "title": string, // required, non-empty, unique',
256
+ ' "brief": string, // required, non-empty: what this item does',
257
+ ' "ordinal": number, // required: execution order (0-based or 1-based, ascending)',
258
+ ' "phase"?: string, // phase title this item belongs to',
259
+ ' "dependsOn"?: (string|number)[], // item titles or ordinals this item depends on',
260
+ ' "suggestedArchetype"?: "engineer"|"reviewer"|"tester"|"researcher"|"integrator",',
261
+ ' "likelyFiles"?: string[],',
262
+ ' "verification"?: string[],',
263
+ ' "canRunConcurrently"?: boolean,',
264
+ ' "needsReview"?: boolean',
265
+ ' }],',
266
+ ' "dependencies"?: [{ "from": string|number, "to": string|number }], // "from depends on to"',
267
+ ' "notes"?: string[],',
268
+ ' "risks"?: string[]',
269
+ '}',
270
+ '',
271
+ 'Rules: dependencies must reference real items and must be acyclic. Every brief must be',
272
+ 'non-empty. Keep the decomposition honest — if the goal is genuinely a single unit of work,',
273
+ 'return exactly one item.',
274
+ ].join('\n');
275
+ }
276
+ function buildUserPrompt(request, repairErrors) {
277
+ const lines = [`Goal: ${request.goal}`, `Working directory: ${request.workingDir}`];
278
+ if (request.constraints?.capacity !== undefined)
279
+ lines.push(`Concurrency capacity: ${request.constraints.capacity}`);
280
+ if (request.constraints?.budgetUsd !== undefined)
281
+ lines.push(`Budget (USD): ${request.constraints.budgetUsd}`);
282
+ if (request.userContext)
283
+ lines.push('', 'Additional context:', request.userContext);
284
+ if (repairErrors && repairErrors.length > 0) {
285
+ lines.push('', 'Your previous response was rejected for these reasons. Fix ALL of them and respond again', 'with a single corrected JSON object:', ...repairErrors.map((e) => ` - ${e}`));
286
+ }
287
+ return lines.join('\n');
288
+ }
289
+ // ---------------------------------------------------------------------------
290
+ // The service
291
+ // ---------------------------------------------------------------------------
292
+ /**
293
+ * Decompose a goal into a `PlanProposal`, honestly tagged with provenance.
294
+ *
295
+ * Control flow:
296
+ * 1. `config.mode === 'heuristic'` → the configured heuristic path (no agent).
297
+ * 2. The planner's decompose gate declines → honest single-item (no agent).
298
+ * 3. No runner available → heuristic fallback (reason: no runtime).
299
+ * 4. Agent path: run → parse → strict-validate → (assemble; issues===0 ?
300
+ * accept : ONE repair attempt) → accept-or-fallback. Spawn error,
301
+ * cancellation (kill / wall-timeout / token ceiling), or still-invalid
302
+ * output after repair all fall back to the heuristic path with a reason.
303
+ */
304
+ export async function decomposeGoal(request, planner, inputs, config, runner, deps = {}) {
305
+ const gate = planner.shouldDecompose(inputs);
306
+ const heuristicResult = (outcome) => {
307
+ const base = singleItemProposal(request.goal);
308
+ const fallbackReason = outcome.kind === 'fallback' ? outcome.reason : undefined;
309
+ const usage = outcome.kind === 'fallback' ? outcome.usage : undefined;
310
+ const elapsedMs = outcome.kind === 'fallback' ? outcome.elapsedMs : undefined;
311
+ const proposal = {
312
+ ...base,
313
+ decomposedBy: 'heuristic',
314
+ ...(fallbackReason ? { fallbackReason } : {}),
315
+ ...(usage ? { agentUsage: usage } : {}),
316
+ ...(elapsedMs !== undefined ? { elapsedMs } : {}),
317
+ };
318
+ deps.onOutcome?.(outcome);
319
+ return { proposal, gate, issues: [], outcome };
320
+ };
321
+ if (config.mode === 'heuristic') {
322
+ return heuristicResult({ kind: 'heuristic-configured' });
323
+ }
324
+ if (!gate.decompose) {
325
+ return heuristicResult({ kind: 'gate-declined', reasonCode: gate.reasonCode });
326
+ }
327
+ if (!runner) {
328
+ return heuristicResult({ kind: 'fallback', reason: 'no planning agent runtime available' });
329
+ }
330
+ const systemPrompt = buildPlannerSystemPrompt();
331
+ let lastUsage;
332
+ let totalElapsedMs = 0;
333
+ const runOnce = async (attempt, repairErrors) => {
334
+ const result = await runner.run({
335
+ goal: request.goal,
336
+ workingDir: request.workingDir,
337
+ systemPrompt,
338
+ userPrompt: buildUserPrompt(request, repairErrors),
339
+ bounds: config.bounds,
340
+ attempt,
341
+ });
342
+ lastUsage = result.usage ?? lastUsage;
343
+ totalElapsedMs += result.elapsedMs;
344
+ return result;
345
+ };
346
+ // --- initial attempt ---
347
+ let run;
348
+ try {
349
+ run = await runOnce('initial');
350
+ }
351
+ catch (err) {
352
+ return heuristicResult({ kind: 'fallback', reason: `spawn error: ${err.message}`, usage: lastUsage, elapsedMs: totalElapsedMs });
353
+ }
354
+ if (run.status === 'cancelled') {
355
+ return heuristicResult({ kind: 'fallback', reason: `cancelled${run.detail ? ` (${run.detail})` : ''}`, usage: lastUsage, elapsedMs: totalElapsedMs });
356
+ }
357
+ if (run.status === 'failed') {
358
+ return heuristicResult({ kind: 'fallback', reason: `agent error: ${run.detail ?? 'unknown'}`, usage: lastUsage, elapsedMs: totalElapsedMs });
359
+ }
360
+ const accept = (proposal, issues, repaired) => {
361
+ const costUsd = lastUsage ? deps.estimateCostUsd?.(lastUsage) : undefined;
362
+ const decorated = {
363
+ ...proposal,
364
+ decomposedBy: 'agent',
365
+ elapsedMs: totalElapsedMs,
366
+ ...(lastUsage ? { agentUsage: lastUsage } : {}),
367
+ ...(costUsd !== undefined ? { agentCostUsd: costUsd } : {}),
368
+ };
369
+ const outcome = {
370
+ kind: 'agent',
371
+ itemCount: decorated.workItems.length,
372
+ repaired,
373
+ ...(lastUsage ? { usage: lastUsage } : {}),
374
+ ...(costUsd !== undefined ? { costUsd } : {}),
375
+ elapsedMs: totalElapsedMs,
376
+ };
377
+ deps.onOutcome?.(outcome);
378
+ return { proposal: decorated, gate, issues, outcome };
379
+ };
380
+ // --- validate the initial output ---
381
+ const first = parseDecomposition(run.output);
382
+ if (first.ok && first.raw) {
383
+ const { proposal, issues } = assemblePlanProposal(request.goal, gate.strategy, first.raw);
384
+ if (issues.length === 0)
385
+ return accept(proposal, issues, false);
386
+ // Not clean — fall through to a single repair with the assembler's issues.
387
+ const repairErrors = issues.map((i) => i.message);
388
+ const repaired = await tryRepair(repairErrors);
389
+ if (repaired)
390
+ return repaired;
391
+ return heuristicResult({ kind: 'fallback', reason: `invalid agent decomposition after repair: ${issues.map((i) => i.kind).join(', ')}`, usage: lastUsage, elapsedMs: totalElapsedMs });
392
+ }
393
+ // Malformed structure — one repair attempt with the parser's errors.
394
+ const repaired = await tryRepair(first.errors);
395
+ if (repaired)
396
+ return repaired;
397
+ return heuristicResult({ kind: 'fallback', reason: `malformed agent output after repair: ${first.errors.slice(0, 3).join('; ')}`, usage: lastUsage, elapsedMs: totalElapsedMs });
398
+ // --- one repair attempt: returns an accepted result, or null to fall back ---
399
+ async function tryRepair(repairErrors) {
400
+ let repairRun;
401
+ try {
402
+ repairRun = await runOnce('repair', repairErrors);
403
+ }
404
+ catch {
405
+ return null;
406
+ }
407
+ if (repairRun.status !== 'completed')
408
+ return null;
409
+ const parsed = parseDecomposition(repairRun.output);
410
+ if (!parsed.ok || !parsed.raw)
411
+ return null;
412
+ const { proposal, issues } = assemblePlanProposal(request.goal, gate.strategy, parsed.raw);
413
+ if (issues.length !== 0)
414
+ return null;
415
+ return accept(proposal, issues, true);
416
+ }
417
+ }
@@ -0,0 +1,204 @@
1
+ /**
2
+ * Plan proposal types + pure assembler.
3
+ *
4
+ * This module turns a loose decomposition (produced by an LLM planning agent,
5
+ * or handed in directly by a caller) into a validated, typed `PlanProposal`.
6
+ * It is intentionally free of I/O and LLM calls: no filesystem access, no
7
+ * agent spawning, no network. It exists so `AdaptivePlanner` can stay a
8
+ * synchronous, deterministic, side-effect-free scorer while still producing
9
+ * a rich, structured artifact that an orchestration engine can render for
10
+ * human approval and (once approved) instantiate.
11
+ *
12
+ * A `PlanProposal` is DATA. It is never instantiated on its own — approval
13
+ * flows through the existing `ProjectPlanningState.executionApproved` gate
14
+ * (see `planProposalToPlanningState` below), and durable persistence reuses
15
+ * `ExecutionPlanManager` (see `planProposalToExecutionPlanItems` below).
16
+ * Neither adapter performs any I/O itself; they only shape data for callers
17
+ * that do.
18
+ */
19
+ import type { ExecutionStrategy } from './adaptive-planner.js';
20
+ import type { PlanItem } from './execution-plan.js';
21
+ import type { ProjectPlanningState } from '../knowledge/project-planning/types.js';
22
+ /** Archetypes a work item can suggest for its executing agent. Open-ended by design. */
23
+ export type WorkItemArchetype = 'engineer' | 'reviewer' | 'tester' | 'researcher' | 'integrator' | string;
24
+ /**
25
+ * A single unit of work inside a proposal.
26
+ *
27
+ * Field shapes deliberately mirror three existing types so downstream bridges
28
+ * are near-1:1 maps rather than translations:
29
+ * - knowledge `ProjectPlanningTask` (approval-render bridge)
30
+ * - knowledge `ProjectWorkPlanTask` (phaseId/dependency naming)
31
+ * - core `PlanItem` (persistence bridge)
32
+ */
33
+ export interface WorkItem {
34
+ id: string;
35
+ title: string;
36
+ brief: string;
37
+ phaseId: string;
38
+ dependsOn: string[];
39
+ suggestedArchetype?: WorkItemArchetype | undefined;
40
+ likelyFiles?: string[] | undefined;
41
+ verification?: string[] | undefined;
42
+ canRunConcurrently?: boolean | undefined;
43
+ needsReview?: boolean | undefined;
44
+ }
45
+ export interface Phase {
46
+ id: string;
47
+ title: string;
48
+ description?: string | undefined;
49
+ order: number;
50
+ }
51
+ /** Where a proposal's decomposition came from. */
52
+ export type PlanProposalSource = 'planner-agent' | 'single-item-fallback' | 'caller-supplied';
53
+ /**
54
+ * Honest provenance for how a proposal's work items were produced.
55
+ *
56
+ * - `'agent'` — a read-only planning agent decomposed the goal, and its
57
+ * output validated cleanly (possibly after one repair attempt).
58
+ * - `'heuristic'` — the deterministic single-item path produced the proposal,
59
+ * either because `planner.decomposition` is configured to `'heuristic'`, the
60
+ * planner's gate declined to decompose, or the agent path failed and fell
61
+ * back. `fallbackReason` is set only in the failure case, never when the
62
+ * heuristic path was chosen deliberately by config or gate.
63
+ */
64
+ export type DecomposedBy = 'agent' | 'heuristic';
65
+ /** Token usage reported by a planning-decomposition agent run. */
66
+ export interface DecompositionAgentUsage {
67
+ readonly inputTokens: number;
68
+ readonly outputTokens: number;
69
+ readonly cacheReadTokens?: number | undefined;
70
+ readonly cacheWriteTokens?: number | undefined;
71
+ readonly totalTokens: number;
72
+ }
73
+ export interface PlanProposal {
74
+ id: string;
75
+ task: string;
76
+ strategy: ExecutionStrategy;
77
+ rationale: string;
78
+ phases: Phase[];
79
+ workItems: WorkItem[];
80
+ createdAt: number;
81
+ source: PlanProposalSource;
82
+ /**
83
+ * Provenance overlay set by the decomposition service (plan-decomposition.ts).
84
+ * Absent on proposals produced directly by `assemblePlanProposal` /
85
+ * `singleItemProposal`, which stay byte-compatible with pre-provenance tests.
86
+ */
87
+ decomposedBy?: DecomposedBy | undefined;
88
+ /** Token usage of the planning agent (present when the agent path ran, even on fallback). */
89
+ agentUsage?: DecompositionAgentUsage | undefined;
90
+ /** Estimated dollar cost of the planning agent run, when a pricing lookup was available. */
91
+ agentCostUsd?: number | undefined;
92
+ /** Wall-clock time the planning agent ran, in ms (present when the agent path ran). */
93
+ elapsedMs?: number | undefined;
94
+ /**
95
+ * Why the agent path fell back to the heuristic path. Set ONLY on honest
96
+ * failure fallbacks (spawn error, timeout, cancellation, or output that was
97
+ * still malformed after one repair attempt) — never when `'heuristic'` was
98
+ * chosen by config or by the planner's decompose gate.
99
+ */
100
+ fallbackReason?: string | undefined;
101
+ }
102
+ /** The loose JSON shape a planning agent (or a caller) emits, pre-validation. */
103
+ export interface RawDecompositionPhase {
104
+ title: string;
105
+ description?: string | undefined;
106
+ }
107
+ export interface RawDecompositionWorkItem {
108
+ title: string;
109
+ brief: string;
110
+ phase: string;
111
+ dependsOn?: string[] | undefined;
112
+ suggestedArchetype?: string | undefined;
113
+ likelyFiles?: string[] | undefined;
114
+ verification?: string[] | undefined;
115
+ canRunConcurrently?: boolean | undefined;
116
+ needsReview?: boolean | undefined;
117
+ }
118
+ export interface RawDecomposition {
119
+ phases: RawDecompositionPhase[];
120
+ workItems: RawDecompositionWorkItem[];
121
+ }
122
+ /** Kinds of honest-partial issues `assemblePlanProposal` can flag without throwing. */
123
+ export type PlanProposalIssueKind = 'dangling-dependency' | 'dependency-cycle' | 'unresolved-phase';
124
+ export interface PlanProposalIssue {
125
+ readonly kind: PlanProposalIssueKind;
126
+ readonly workItemTitle: string;
127
+ readonly message: string;
128
+ }
129
+ /**
130
+ * Turn a raw decomposition into a validated, typed `PlanProposal`.
131
+ *
132
+ * Never throws. Malformed input degrades to an honest partial result: an
133
+ * unresolved phase reference lands its work item in a synthesized "Unphased"
134
+ * bucket; an unresolved dependency reference is dropped; a dependency cycle
135
+ * is flagged but left in place (no silent edge removal). Every problem is
136
+ * reported via the returned `issues` list rather than an exception.
137
+ *
138
+ * Dependency resolution mirrors `ExecutionPlanManager.replaceItems` exactly:
139
+ * a dep that already looks like a UUID passes through unchecked, otherwise
140
+ * it is resolved by case-insensitive title match, otherwise it is dropped.
141
+ *
142
+ * `source` defaults to `'planner-agent'` (the expected majority caller —
143
+ * `AdaptivePlanner.proposeWorkstream`). Pass `'caller-supplied'` when a
144
+ * non-agent caller hands in its own decomposition directly.
145
+ */
146
+ export declare function assemblePlanProposal(task: string, strategy: ExecutionStrategy, raw: RawDecomposition, source?: Extract<PlanProposalSource, 'planner-agent' | 'caller-supplied'>): {
147
+ proposal: PlanProposal;
148
+ issues: PlanProposalIssue[];
149
+ };
150
+ /**
151
+ * The honest fallback: one phase ("Execute"), one work item whose title and
152
+ * brief both equal the task text, no dependencies. Used whenever decomposition
153
+ * was not warranted (see `AdaptivePlanner.shouldDecompose`) or no raw
154
+ * decomposition is available yet.
155
+ */
156
+ export declare function singleItemProposal(task: string): PlanProposal;
157
+ /**
158
+ * Project a `PlanProposal` into the existing `/plan approve` seam. This is
159
+ * data-only — no store is written here. The caller feeds the result into
160
+ * `ProjectPlanningService.upsertState` (or an equivalent), which is what
161
+ * actually persists it and evaluates readiness.
162
+ *
163
+ * Direction convention for the emitted `ProjectPlanningDependency` records
164
+ * (this type has no prior producer in the codebase to inherit a convention
165
+ * from, so it is fixed here): `fromTaskId` depends on `toTaskId`, i.e. the
166
+ * edge reads "fromTaskId depends on toTaskId" the same way `WorkItem.dependsOn`
167
+ * reads "this item depends on these ids".
168
+ *
169
+ * `ProjectPlanningTask` has no first-class phase concept, so phase
170
+ * membership is preserved in `metadata` rather than dropped silently.
171
+ *
172
+ * `executionApproved` is always `false` here — approval is a separate,
173
+ * explicit step owned by `/plan approve` (planning-runtime.ts), never implied
174
+ * by proposing.
175
+ */
176
+ export declare function planProposalToPlanningState(proposal: PlanProposal): Partial<ProjectPlanningState>;
177
+ /**
178
+ * Project a `PlanProposal` into the plain items `ExecutionPlanManager` deals
179
+ * in. This is a deliberately lossy projection: `PlanItem` has no room for
180
+ * verification/likelyFiles/suggestedArchetype, and those stay in the
181
+ * full-fidelity `ProjectPlanningState` render above. It exists purely so a
182
+ * caller can hand a proposal's items to `ExecutionPlanManager` without
183
+ * re-deriving the phase/description/dependency shape by hand.
184
+ *
185
+ * Dependencies are expressed as WORK ITEM TITLES, not ids, because
186
+ * `ExecutionPlanManager.create()` does not resolve dependency references —
187
+ * only `ExecutionPlanManager.replaceItems()` does, by case-insensitive
188
+ * description match. The intended call sequence at instantiation is
189
+ * therefore:
190
+ *
191
+ * const plan = planManager.create(title, []);
192
+ * const { items } = planProposalToExecutionPlanItems(proposal);
193
+ * planManager.replaceItems(plan.id, items);
194
+ *
195
+ * which reuses `replaceItems`' existing dependency resolver end-to-end
196
+ * instead of re-implementing dependency resolution here. This module defines
197
+ * no scheduler of its own — ready-to-run item selection stays
198
+ * `ExecutionPlanManager.getNextItems`'s job.
199
+ */
200
+ export declare function planProposalToExecutionPlanItems(proposal: PlanProposal): {
201
+ title: string;
202
+ items: Array<Omit<PlanItem, 'id' | 'status'>>;
203
+ };
204
+ //# sourceMappingURL=plan-proposal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-proposal.d.ts","sourceRoot":"","sources":["../../../src/platform/core/plan-proposal.ts"],"names":[],"mappings":"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"}