@agimon-ai/doompi-workflow 0.0.1-alpha.8 → 0.0.1-alpha.80

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 (434) hide show
  1. package/LICENSE +8 -0
  2. package/LICENSE.web +29 -0
  3. package/README.md +125 -26
  4. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  5. package/dist/api-contracts.cjs +7 -0
  6. package/dist/api-contracts.d.cts +2 -0
  7. package/dist/api-contracts.d.mts +2 -0
  8. package/dist/api-contracts.mjs +2 -0
  9. package/dist/extensions/pi.cjs +62 -1
  10. package/dist/extensions/pi.cjs.map +1 -1
  11. package/dist/extensions/pi.d.cts +6 -2
  12. package/dist/extensions/pi.d.cts.map +1 -0
  13. package/dist/extensions/pi.d.mts +6 -2
  14. package/dist/extensions/pi.d.mts.map +1 -0
  15. package/dist/extensions/pi.mjs +57 -1
  16. package/dist/extensions/pi.mjs.map +1 -1
  17. package/dist/extensions/server.cjs +96 -0
  18. package/dist/extensions/server.cjs.map +1 -0
  19. package/dist/extensions/server.d.cts +5 -0
  20. package/dist/extensions/server.d.cts.map +1 -0
  21. package/dist/extensions/server.d.mts +5 -0
  22. package/dist/extensions/server.d.mts.map +1 -0
  23. package/dist/extensions/server.mjs +91 -0
  24. package/dist/extensions/server.mjs.map +1 -0
  25. package/dist/extensions/web.mjs +3219 -0
  26. package/dist/extensions/web.mjs.map +1 -0
  27. package/dist/index.cjs +4 -1
  28. package/dist/index.d.cts +2 -3
  29. package/dist/index.d.mts +2 -3
  30. package/dist/index.mjs +2 -1
  31. package/dist/src/constants/workflow.cjs +32 -0
  32. package/dist/src/constants/workflow.cjs.map +1 -0
  33. package/dist/src/constants/workflow.mjs +21 -0
  34. package/dist/src/constants/workflow.mjs.map +1 -0
  35. package/dist/src/extensions/(backend)/_lib/index.server.cjs +12 -0
  36. package/dist/src/extensions/(backend)/_lib/index.server.cjs.map +1 -0
  37. package/dist/src/extensions/(backend)/_lib/index.server.mjs +12 -0
  38. package/dist/src/extensions/(backend)/_lib/index.server.mjs.map +1 -0
  39. package/dist/src/extensions/(backend)/api/workflow/route.server.cjs +7 -0
  40. package/dist/src/extensions/(backend)/api/workflow/route.server.cjs.map +1 -0
  41. package/dist/src/extensions/(backend)/api/workflow/route.server.mjs +8 -0
  42. package/dist/src/extensions/(backend)/api/workflow/route.server.mjs.map +1 -0
  43. package/dist/src/extensions/(backend)/channel/workflow-catalog.server.cjs +7 -0
  44. package/dist/src/extensions/(backend)/channel/workflow-catalog.server.cjs.map +1 -0
  45. package/dist/src/extensions/(backend)/channel/workflow-catalog.server.mjs +8 -0
  46. package/dist/src/extensions/(backend)/channel/workflow-catalog.server.mjs.map +1 -0
  47. package/dist/src/extensions/(backend)/channel/workflows.server.cjs +7 -0
  48. package/dist/src/extensions/(backend)/channel/workflows.server.cjs.map +1 -0
  49. package/dist/src/extensions/(backend)/channel/workflows.server.mjs +8 -0
  50. package/dist/src/extensions/(backend)/channel/workflows.server.mjs.map +1 -0
  51. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.cli.cjs +100 -0
  52. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.cli.cjs.map +1 -0
  53. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.cli.mjs +100 -0
  54. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.cli.mjs.map +1 -0
  55. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.server.cjs +11 -0
  56. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.server.cjs.map +1 -0
  57. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.server.mjs +11 -0
  58. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.server.mjs.map +1 -0
  59. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/workflowSkillsResource.cjs +12 -0
  60. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/workflowSkillsResource.cjs.map +1 -0
  61. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/workflowSkillsResource.mjs +12 -0
  62. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/workflowSkillsResource.mjs.map +1 -0
  63. package/dist/src/extensions/workspaces/sessions/(backend)/api/workflow/route.server.cjs +6 -0
  64. package/dist/src/extensions/workspaces/sessions/(backend)/api/workflow/route.server.cjs.map +1 -0
  65. package/dist/src/extensions/workspaces/sessions/(backend)/api/workflow/route.server.mjs +7 -0
  66. package/dist/src/extensions/workspaces/sessions/(backend)/api/workflow/route.server.mjs.map +1 -0
  67. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.cli.cjs +6 -0
  68. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.cli.cjs.map +1 -0
  69. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.cli.mjs +7 -0
  70. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.cli.mjs.map +1 -0
  71. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.server.cjs +6 -0
  72. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.server.cjs.map +1 -0
  73. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.server.mjs +7 -0
  74. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.server.mjs.map +1 -0
  75. package/dist/src/extensions/workspaces/sessions/(backend)/hook/resources-discover.cli.cjs +6 -0
  76. package/dist/src/extensions/workspaces/sessions/(backend)/hook/resources-discover.cli.cjs.map +1 -0
  77. package/dist/src/extensions/workspaces/sessions/(backend)/hook/resources-discover.cli.mjs +7 -0
  78. package/dist/src/extensions/workspaces/sessions/(backend)/hook/resources-discover.cli.mjs.map +1 -0
  79. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs +6 -0
  80. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs.map +1 -0
  81. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs +7 -0
  82. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs.map +1 -0
  83. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs +6 -0
  84. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs.map +1 -0
  85. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs +7 -0
  86. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs.map +1 -0
  87. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.server.cjs +6 -0
  88. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.server.cjs.map +1 -0
  89. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.server.mjs +7 -0
  90. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.server.mjs.map +1 -0
  91. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-author-workflow.server.cjs +6 -0
  92. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-author-workflow.server.cjs.map +1 -0
  93. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-author-workflow.server.mjs +7 -0
  94. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-author-workflow.server.mjs.map +1 -0
  95. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-workflow.server.cjs +6 -0
  96. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-workflow.server.cjs.map +1 -0
  97. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-workflow.server.mjs +7 -0
  98. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-workflow.server.mjs.map +1 -0
  99. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-recovery.server.cjs +6 -0
  100. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-recovery.server.cjs.map +1 -0
  101. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-recovery.server.mjs +7 -0
  102. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-recovery.server.mjs.map +1 -0
  103. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-skills.cli.cjs +7 -0
  104. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-skills.cli.cjs.map +1 -0
  105. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-skills.cli.mjs +8 -0
  106. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-skills.cli.mjs.map +1 -0
  107. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs +15 -0
  108. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs.map +1 -0
  109. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs +16 -0
  110. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs.map +1 -0
  111. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs +17 -0
  112. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs.map +1 -0
  113. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs +18 -0
  114. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs.map +1 -0
  115. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-panel.cli.cjs +6 -0
  116. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-panel.cli.cjs.map +1 -0
  117. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-panel.cli.mjs +7 -0
  118. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-panel.cli.mjs.map +1 -0
  119. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-view-close.cli.cjs +6 -0
  120. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-view-close.cli.cjs.map +1 -0
  121. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-view-close.cli.mjs +7 -0
  122. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-view-close.cli.mjs.map +1 -0
  123. package/dist/src/extensions/workspaces/sessions/(backend)/tool/launch-workflow.server.cjs +6 -0
  124. package/dist/src/extensions/workspaces/sessions/(backend)/tool/launch-workflow.server.cjs.map +1 -0
  125. package/dist/src/extensions/workspaces/sessions/(backend)/tool/launch-workflow.server.mjs +7 -0
  126. package/dist/src/extensions/workspaces/sessions/(backend)/tool/launch-workflow.server.mjs.map +1 -0
  127. package/dist/src/extensions/workspaces/sessions/(backend)/tool/list-workflows.server.cjs +6 -0
  128. package/dist/src/extensions/workspaces/sessions/(backend)/tool/list-workflows.server.cjs.map +1 -0
  129. package/dist/src/extensions/workspaces/sessions/(backend)/tool/list-workflows.server.mjs +7 -0
  130. package/dist/src/extensions/workspaces/sessions/(backend)/tool/list-workflows.server.mjs.map +1 -0
  131. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow-run.server.cjs +6 -0
  132. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow-run.server.cjs.map +1 -0
  133. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow-run.server.mjs +7 -0
  134. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow-run.server.mjs.map +1 -0
  135. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow.cli.cjs +6 -0
  136. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow.cli.cjs.map +1 -0
  137. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow.cli.mjs +7 -0
  138. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow.cli.mjs.map +1 -0
  139. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.cli.cjs +6 -0
  140. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.cli.cjs.map +1 -0
  141. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.cli.mjs +7 -0
  142. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.cli.mjs.map +1 -0
  143. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.server.cjs +6 -0
  144. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.server.cjs.map +1 -0
  145. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.server.mjs +7 -0
  146. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.server.mjs.map +1 -0
  147. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.cjs +50 -0
  148. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.cjs.map +1 -0
  149. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.mjs +47 -0
  150. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.mjs.map +1 -0
  151. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.cjs +36 -0
  152. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.cjs.map +1 -0
  153. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.mjs +35 -0
  154. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.mjs.map +1 -0
  155. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.cjs +7 -0
  156. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.cjs.map +1 -0
  157. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.mjs +8 -0
  158. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.mjs.map +1 -0
  159. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.cjs +7 -0
  160. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.cjs.map +1 -0
  161. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.mjs +8 -0
  162. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.mjs.map +1 -0
  163. package/dist/src/schemas/apiContracts.cjs +330 -0
  164. package/dist/src/schemas/apiContracts.cjs.map +1 -0
  165. package/dist/src/schemas/apiContracts.d.cts +53 -0
  166. package/dist/src/schemas/apiContracts.d.cts.map +1 -0
  167. package/dist/src/schemas/apiContracts.d.mts +53 -0
  168. package/dist/src/schemas/apiContracts.d.mts.map +1 -0
  169. package/dist/src/schemas/apiContracts.mjs +327 -0
  170. package/dist/src/schemas/apiContracts.mjs.map +1 -0
  171. package/dist/src/schemas/workflowPi.cjs +77 -0
  172. package/dist/src/schemas/workflowPi.cjs.map +1 -0
  173. package/dist/src/schemas/workflowPi.d.cts +1 -0
  174. package/dist/src/schemas/workflowPi.d.mts +1 -0
  175. package/dist/src/schemas/workflowPi.mjs +74 -0
  176. package/dist/src/schemas/workflowPi.mjs.map +1 -0
  177. package/dist/src/services/backgroundWork/index.cjs +61 -0
  178. package/dist/src/services/backgroundWork/index.cjs.map +1 -0
  179. package/dist/src/services/backgroundWork/index.mjs +61 -0
  180. package/dist/src/services/backgroundWork/index.mjs.map +1 -0
  181. package/dist/src/services/piToolBridge/index.cjs +205 -0
  182. package/dist/src/services/piToolBridge/index.cjs.map +1 -0
  183. package/dist/src/services/piToolBridge/index.mjs +195 -0
  184. package/dist/src/services/piToolBridge/index.mjs.map +1 -0
  185. package/dist/src/services/serverRuntime/index.cjs +387 -0
  186. package/dist/src/services/serverRuntime/index.cjs.map +1 -0
  187. package/dist/src/services/serverRuntime/index.mjs +387 -0
  188. package/dist/src/services/serverRuntime/index.mjs.map +1 -0
  189. package/dist/src/services/webWorkflowCatalog/index.cjs +53 -0
  190. package/dist/src/services/webWorkflowCatalog/index.cjs.map +1 -0
  191. package/dist/src/services/webWorkflowCatalog/index.mjs +52 -0
  192. package/dist/src/services/webWorkflowCatalog/index.mjs.map +1 -0
  193. package/dist/src/services/workflowCatalogChannel/index.cjs +74 -0
  194. package/dist/src/services/workflowCatalogChannel/index.cjs.map +1 -0
  195. package/dist/src/services/workflowCatalogChannel/index.mjs +74 -0
  196. package/dist/src/services/workflowCatalogChannel/index.mjs.map +1 -0
  197. package/dist/src/services/workflowCatalogDeps/index.cjs +25 -0
  198. package/dist/src/services/workflowCatalogDeps/index.cjs.map +1 -0
  199. package/dist/src/services/workflowCatalogDeps/index.mjs +25 -0
  200. package/dist/src/services/workflowCatalogDeps/index.mjs.map +1 -0
  201. package/dist/src/services/workflowExecution/index.cjs +205 -0
  202. package/dist/src/services/workflowExecution/index.cjs.map +1 -0
  203. package/dist/src/services/workflowExecution/index.d.cts +6 -0
  204. package/dist/src/services/workflowExecution/index.d.mts +6 -0
  205. package/dist/src/services/workflowExecution/index.mjs +200 -0
  206. package/dist/src/services/workflowExecution/index.mjs.map +1 -0
  207. package/dist/src/services/workflowFence/index.cjs +170 -0
  208. package/dist/src/services/workflowFence/index.cjs.map +1 -0
  209. package/dist/src/services/workflowFence/index.mjs +166 -0
  210. package/dist/src/services/workflowFence/index.mjs.map +1 -0
  211. package/dist/src/services/workflowHubApi/index.cjs +415 -0
  212. package/dist/src/services/workflowHubApi/index.cjs.map +1 -0
  213. package/dist/src/services/workflowHubApi/index.mjs +411 -0
  214. package/dist/src/services/workflowHubApi/index.mjs.map +1 -0
  215. package/dist/src/services/workflowLaunchCommand/index.cjs +121 -0
  216. package/dist/src/services/workflowLaunchCommand/index.cjs.map +1 -0
  217. package/dist/src/services/workflowLaunchCommand/index.d.cts +52 -0
  218. package/dist/src/services/workflowLaunchCommand/index.d.cts.map +1 -0
  219. package/dist/src/services/workflowLaunchCommand/index.d.mts +52 -0
  220. package/dist/src/services/workflowLaunchCommand/index.d.mts.map +1 -0
  221. package/dist/src/services/workflowLaunchCommand/index.mjs +118 -0
  222. package/dist/src/services/workflowLaunchCommand/index.mjs.map +1 -0
  223. package/dist/src/services/workflowLauncher/index.cjs +181 -0
  224. package/dist/src/services/workflowLauncher/index.cjs.map +1 -0
  225. package/dist/src/services/workflowLauncher/index.mjs +177 -0
  226. package/dist/src/services/workflowLauncher/index.mjs.map +1 -0
  227. package/dist/src/services/workflowNarration/index.cjs +19 -0
  228. package/dist/src/services/workflowNarration/index.cjs.map +1 -0
  229. package/dist/src/services/workflowNarration/index.mjs +19 -0
  230. package/dist/src/services/workflowNarration/index.mjs.map +1 -0
  231. package/dist/src/services/workflowResource/index.cjs +27 -0
  232. package/dist/src/services/workflowResource/index.cjs.map +1 -0
  233. package/dist/src/services/workflowResource/index.mjs +24 -0
  234. package/dist/src/services/workflowResource/index.mjs.map +1 -0
  235. package/dist/src/services/workflowRuns/index.cjs +333 -0
  236. package/dist/src/services/workflowRuns/index.cjs.map +1 -0
  237. package/dist/src/services/workflowRuns/index.mjs +319 -0
  238. package/dist/src/services/workflowRuns/index.mjs.map +1 -0
  239. package/dist/src/services/workflowTerminal/index.cjs +69 -0
  240. package/dist/src/services/workflowTerminal/index.cjs.map +1 -0
  241. package/dist/src/services/workflowTerminal/index.mjs +69 -0
  242. package/dist/src/services/workflowTerminal/index.mjs.map +1 -0
  243. package/dist/src/services/workflowTools/index.cjs +221 -0
  244. package/dist/src/services/workflowTools/index.cjs.map +1 -0
  245. package/dist/src/services/workflowTools/index.mjs +221 -0
  246. package/dist/src/services/workflowTools/index.mjs.map +1 -0
  247. package/dist/src/services/workflowWatcher/index.cjs +78 -0
  248. package/dist/src/services/workflowWatcher/index.cjs.map +1 -0
  249. package/dist/src/services/workflowWatcher/index.mjs +74 -0
  250. package/dist/src/services/workflowWatcher/index.mjs.map +1 -0
  251. package/dist/src/services/workflowsHubChannel/index.cjs +58 -0
  252. package/dist/src/services/workflowsHubChannel/index.cjs.map +1 -0
  253. package/dist/src/services/workflowsHubChannel/index.mjs +58 -0
  254. package/dist/src/services/workflowsHubChannel/index.mjs.map +1 -0
  255. package/dist/src/tui/leader.cjs +84 -0
  256. package/dist/src/tui/leader.cjs.map +1 -0
  257. package/dist/src/tui/leader.mjs +83 -0
  258. package/dist/src/tui/leader.mjs.map +1 -0
  259. package/dist/src/tui/workflow/doomOverlay.cjs +159 -0
  260. package/dist/src/tui/workflow/doomOverlay.cjs.map +1 -0
  261. package/dist/src/tui/workflow/doomOverlay.mjs +157 -0
  262. package/dist/src/tui/workflow/doomOverlay.mjs.map +1 -0
  263. package/dist/src/tui/workflow/overlayText.cjs +83 -0
  264. package/dist/src/tui/workflow/overlayText.cjs.map +1 -0
  265. package/dist/src/tui/workflow/overlayText.mjs +78 -0
  266. package/dist/src/tui/workflow/overlayText.mjs.map +1 -0
  267. package/dist/src/tui/workflow/rendering.cjs +22 -0
  268. package/dist/src/tui/workflow/rendering.cjs.map +1 -0
  269. package/dist/src/tui/workflow/rendering.mjs +20 -0
  270. package/dist/src/tui/workflow/rendering.mjs.map +1 -0
  271. package/dist/src/tui/workflow/workflowCatalog.cjs +336 -0
  272. package/dist/src/tui/workflow/workflowCatalog.cjs.map +1 -0
  273. package/dist/src/tui/workflow/workflowCatalog.mjs +333 -0
  274. package/dist/src/tui/workflow/workflowCatalog.mjs.map +1 -0
  275. package/dist/src/tui/workflow/workflowFinishedMessage.cjs +50 -0
  276. package/dist/src/tui/workflow/workflowFinishedMessage.cjs.map +1 -0
  277. package/dist/src/tui/workflow/workflowFinishedMessage.mjs +47 -0
  278. package/dist/src/tui/workflow/workflowFinishedMessage.mjs.map +1 -0
  279. package/dist/src/tui/workflow/workflowInspector.cjs +276 -0
  280. package/dist/src/tui/workflow/workflowInspector.cjs.map +1 -0
  281. package/dist/src/tui/workflow/workflowInspector.mjs +276 -0
  282. package/dist/src/tui/workflow/workflowInspector.mjs.map +1 -0
  283. package/dist/src/tui/workflow/workflowOverlay.cjs +126 -0
  284. package/dist/src/tui/workflow/workflowOverlay.cjs.map +1 -0
  285. package/dist/src/tui/workflow/workflowOverlay.mjs +125 -0
  286. package/dist/src/tui/workflow/workflowOverlay.mjs.map +1 -0
  287. package/dist/src/tui/workflow/workflowPicker.cjs +138 -0
  288. package/dist/src/tui/workflow/workflowPicker.cjs.map +1 -0
  289. package/dist/src/tui/workflow/workflowPicker.mjs +136 -0
  290. package/dist/src/tui/workflow/workflowPicker.mjs.map +1 -0
  291. package/dist/src/tui/workflow/workflowProgressOverlay.cjs +197 -0
  292. package/dist/src/tui/workflow/workflowProgressOverlay.cjs.map +1 -0
  293. package/dist/src/tui/workflow/workflowProgressOverlay.mjs +192 -0
  294. package/dist/src/tui/workflow/workflowProgressOverlay.mjs.map +1 -0
  295. package/dist/src/tui/workflow/workflowPrompt.cjs +142 -0
  296. package/dist/src/tui/workflow/workflowPrompt.cjs.map +1 -0
  297. package/dist/src/tui/workflow/workflowPrompt.mjs +139 -0
  298. package/dist/src/tui/workflow/workflowPrompt.mjs.map +1 -0
  299. package/dist/src/tui/workflow/workflowRunPanel.cjs +95 -0
  300. package/dist/src/tui/workflow/workflowRunPanel.cjs.map +1 -0
  301. package/dist/src/tui/workflow/workflowRunPanel.mjs +94 -0
  302. package/dist/src/tui/workflow/workflowRunPanel.mjs.map +1 -0
  303. package/dist/src/tui/workflow/workflowStatusRow.cjs +20 -0
  304. package/dist/src/tui/workflow/workflowStatusRow.cjs.map +1 -0
  305. package/dist/src/tui/workflow/workflowStatusRow.mjs +20 -0
  306. package/dist/src/tui/workflow/workflowStatusRow.mjs.map +1 -0
  307. package/dist/src/tui/workflow/workflowStepMessage.cjs +32 -0
  308. package/dist/src/tui/workflow/workflowStepMessage.cjs.map +1 -0
  309. package/dist/src/tui/workflow/workflowStepMessage.mjs +31 -0
  310. package/dist/src/tui/workflow/workflowStepMessage.mjs.map +1 -0
  311. package/dist/src/tui/workflow/workflowToolRender.cjs +491 -0
  312. package/dist/src/tui/workflow/workflowToolRender.cjs.map +1 -0
  313. package/dist/src/tui/workflow/workflowToolRender.mjs +490 -0
  314. package/dist/src/tui/workflow/workflowToolRender.mjs.map +1 -0
  315. package/dist/src/tui/workflowRuntime.cjs +1934 -0
  316. package/dist/src/tui/workflowRuntime.cjs.map +1 -0
  317. package/dist/src/tui/workflowRuntime.d.cts +33 -0
  318. package/dist/src/tui/workflowRuntime.d.cts.map +1 -0
  319. package/dist/src/tui/workflowRuntime.d.mts +33 -0
  320. package/dist/src/tui/workflowRuntime.d.mts.map +1 -0
  321. package/dist/src/tui/workflowRuntime.mjs +1930 -0
  322. package/dist/src/tui/workflowRuntime.mjs.map +1 -0
  323. package/dist/src/types/apiRoutes.cjs +82 -0
  324. package/dist/src/types/apiRoutes.cjs.map +1 -0
  325. package/dist/src/types/apiRoutes.mjs +80 -0
  326. package/dist/src/types/apiRoutes.mjs.map +1 -0
  327. package/dist/src/types/webWorkflowTerminal.cjs +23 -0
  328. package/dist/src/types/webWorkflowTerminal.cjs.map +1 -0
  329. package/dist/src/types/webWorkflowTerminal.mjs +22 -0
  330. package/dist/src/types/webWorkflowTerminal.mjs.map +1 -0
  331. package/dist/src/types/webWorkflows.cjs +8 -0
  332. package/dist/src/types/webWorkflows.cjs.map +1 -0
  333. package/dist/src/types/webWorkflows.mjs +7 -0
  334. package/dist/src/types/webWorkflows.mjs.map +1 -0
  335. package/llms.txt +16 -0
  336. package/package.json +91 -26
  337. package/src/prompts/doompi-author-workflow/SKILL.md +30 -0
  338. package/src/prompts/doompi-use-workflow/SKILL.md +21 -0
  339. package/src/types/webWorkflowTerminal.ts +93 -0
  340. package/src/types/webWorkflows.ts +150 -0
  341. package/dist/dispatcher.cjs +0 -2
  342. package/dist/dispatcher.cjs.map +0 -1
  343. package/dist/dispatcher.d.cts +0 -6
  344. package/dist/dispatcher.d.cts.map +0 -1
  345. package/dist/dispatcher.d.mts +0 -6
  346. package/dist/dispatcher.d.mts.map +0 -1
  347. package/dist/dispatcher.mjs +0 -2
  348. package/dist/dispatcher.mjs.map +0 -1
  349. package/dist/extension.cjs +0 -2
  350. package/dist/extension.cjs.map +0 -1
  351. package/dist/extension.d.cts +0 -6
  352. package/dist/extension.d.cts.map +0 -1
  353. package/dist/extension.d.mts +0 -6
  354. package/dist/extension.d.mts.map +0 -1
  355. package/dist/extension.mjs +0 -2
  356. package/dist/extension.mjs.map +0 -1
  357. package/dist/extensions/dispatcher.cjs +0 -2
  358. package/dist/extensions/dispatcher.cjs.map +0 -1
  359. package/dist/extensions/dispatcher.d.cts +0 -2
  360. package/dist/extensions/dispatcher.d.mts +0 -2
  361. package/dist/extensions/dispatcher.mjs +0 -2
  362. package/dist/extensions/dispatcher.mjs.map +0 -1
  363. package/dist/leader.cjs +0 -2
  364. package/dist/leader.cjs.map +0 -1
  365. package/dist/leader.mjs +0 -2
  366. package/dist/leader.mjs.map +0 -1
  367. package/dist/types.cjs +0 -2
  368. package/dist/types.cjs.map +0 -1
  369. package/dist/types.mjs +0 -2
  370. package/dist/types.mjs.map +0 -1
  371. package/dist/workflow/backgroundWork.cjs +0 -2
  372. package/dist/workflow/backgroundWork.cjs.map +0 -1
  373. package/dist/workflow/backgroundWork.mjs +0 -2
  374. package/dist/workflow/backgroundWork.mjs.map +0 -1
  375. package/dist/workflow/doomOverlay.cjs +0 -2
  376. package/dist/workflow/doomOverlay.cjs.map +0 -1
  377. package/dist/workflow/doomOverlay.mjs +0 -2
  378. package/dist/workflow/doomOverlay.mjs.map +0 -1
  379. package/dist/workflow/overlayText.cjs +0 -2
  380. package/dist/workflow/overlayText.cjs.map +0 -1
  381. package/dist/workflow/overlayText.mjs +0 -2
  382. package/dist/workflow/overlayText.mjs.map +0 -1
  383. package/dist/workflow/piExtension.cjs +0 -11
  384. package/dist/workflow/piExtension.cjs.map +0 -1
  385. package/dist/workflow/piExtension.mjs +0 -11
  386. package/dist/workflow/piExtension.mjs.map +0 -1
  387. package/dist/workflow/piToolBridge.cjs +0 -11
  388. package/dist/workflow/piToolBridge.cjs.map +0 -1
  389. package/dist/workflow/piToolBridge.mjs +0 -11
  390. package/dist/workflow/piToolBridge.mjs.map +0 -1
  391. package/dist/workflow/piTools.cjs +0 -4
  392. package/dist/workflow/piTools.cjs.map +0 -1
  393. package/dist/workflow/piTools.mjs +0 -4
  394. package/dist/workflow/piTools.mjs.map +0 -1
  395. package/dist/workflow/rendering.cjs +0 -2
  396. package/dist/workflow/rendering.cjs.map +0 -1
  397. package/dist/workflow/rendering.mjs +0 -2
  398. package/dist/workflow/rendering.mjs.map +0 -1
  399. package/dist/workflow/workflowFooterStatus.cjs +0 -2
  400. package/dist/workflow/workflowFooterStatus.cjs.map +0 -1
  401. package/dist/workflow/workflowFooterStatus.mjs +0 -2
  402. package/dist/workflow/workflowFooterStatus.mjs.map +0 -1
  403. package/dist/workflow/workflowInspector.cjs +0 -2
  404. package/dist/workflow/workflowInspector.cjs.map +0 -1
  405. package/dist/workflow/workflowInspector.mjs +0 -2
  406. package/dist/workflow/workflowInspector.mjs.map +0 -1
  407. package/dist/workflow/workflowLauncher.cjs +0 -2
  408. package/dist/workflow/workflowLauncher.cjs.map +0 -1
  409. package/dist/workflow/workflowLauncher.mjs +0 -2
  410. package/dist/workflow/workflowLauncher.mjs.map +0 -1
  411. package/dist/workflow/workflowOverlay.cjs +0 -2
  412. package/dist/workflow/workflowOverlay.cjs.map +0 -1
  413. package/dist/workflow/workflowOverlay.mjs +0 -2
  414. package/dist/workflow/workflowOverlay.mjs.map +0 -1
  415. package/dist/workflow/workflowPicker.cjs +0 -2
  416. package/dist/workflow/workflowPicker.cjs.map +0 -1
  417. package/dist/workflow/workflowPicker.mjs +0 -2
  418. package/dist/workflow/workflowPicker.mjs.map +0 -1
  419. package/dist/workflow/workflowPrompt.cjs +0 -2
  420. package/dist/workflow/workflowPrompt.cjs.map +0 -1
  421. package/dist/workflow/workflowPrompt.mjs +0 -2
  422. package/dist/workflow/workflowPrompt.mjs.map +0 -1
  423. package/dist/workflow/workflowRunPanel.cjs +0 -2
  424. package/dist/workflow/workflowRunPanel.cjs.map +0 -1
  425. package/dist/workflow/workflowRunPanel.mjs +0 -2
  426. package/dist/workflow/workflowRunPanel.mjs.map +0 -1
  427. package/dist/workflow/workflowStatusRow.cjs +0 -2
  428. package/dist/workflow/workflowStatusRow.cjs.map +0 -1
  429. package/dist/workflow/workflowStatusRow.mjs +0 -2
  430. package/dist/workflow/workflowStatusRow.mjs.map +0 -1
  431. package/dist/workflow/workflowStepMessage.cjs +0 -2
  432. package/dist/workflow/workflowStepMessage.cjs.map +0 -1
  433. package/dist/workflow/workflowStepMessage.mjs +0 -2
  434. package/dist/workflow/workflowStepMessage.mjs.map +0 -1
@@ -0,0 +1,53 @@
1
+ import { Type } from "typebox";
2
+ //#region src/schemas/apiContracts.d.ts
3
+ export declare const apiContracts: {
4
+ version: 1;
5
+ protocols?: Record<string, string> | undefined;
6
+ schemas?: Record<string, boolean | object> | undefined;
7
+ http: {
8
+ id: string;
9
+ scope: "global" | "session" | "workspace";
10
+ basePath?: string | undefined;
11
+ path: string;
12
+ method: "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT";
13
+ description: string;
14
+ availability?: string | undefined;
15
+ authentication: "device" | "none" | "owner";
16
+ parameters?: {
17
+ name: string;
18
+ in: "header" | "path" | "query";
19
+ required: boolean;
20
+ schema: boolean | object;
21
+ }[] | undefined;
22
+ body?: {
23
+ contentType: string;
24
+ contentTypes?: string[] | undefined;
25
+ required: boolean;
26
+ schema: boolean | object;
27
+ } | undefined;
28
+ responses: Record<string, {
29
+ description: string;
30
+ contentType?: string | undefined;
31
+ schema?: boolean | object | undefined;
32
+ events?: Record<string, boolean | object> | undefined;
33
+ }>;
34
+ }[];
35
+ sockets: {
36
+ id: string;
37
+ scope: "global" | "session" | "workspace";
38
+ description: string;
39
+ availability?: string | undefined;
40
+ service: string;
41
+ member: string;
42
+ direction: "client-to-server" | "server-to-client";
43
+ kind: "channel" | "method" | "state";
44
+ input: boolean | object;
45
+ output?: boolean | object | undefined;
46
+ errors?: boolean | object | undefined;
47
+ }[];
48
+ dynamic: string[];
49
+ gaps?: string[] | undefined;
50
+ };
51
+ //#endregion
52
+ export { apiContracts as default };
53
+ //# sourceMappingURL=apiContracts.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiContracts.d.mts","names":[],"sources":["../../../src/schemas/apiContracts.ts"],"mappings":";;qBA2Ea"}
@@ -0,0 +1,327 @@
1
+ import { defineApiContract, jsonApiResponses } from "@agimon-ai/doompi-core/api-contracts";
2
+ import { Type } from "typebox";
3
+ //#region src/schemas/apiContracts.ts
4
+ const S = Type.String();
5
+ const N = Type.Number();
6
+ const B = Type.Boolean();
7
+ const O = Type.Optional;
8
+ const values = (items) => Type.Union(items.map((item) => Type.Literal(item)));
9
+ const Step = {
10
+ name: S,
11
+ status: values([
12
+ "running",
13
+ "completed",
14
+ "skipped",
15
+ "failed",
16
+ "pause_requested",
17
+ "paused",
18
+ "resumed"
19
+ ]),
20
+ reason: O(S),
21
+ startedAt: O(S),
22
+ endedAt: O(S)
23
+ };
24
+ const Run = Type.Object({
25
+ runKey: S,
26
+ workspace: S,
27
+ displayName: S,
28
+ workflowName: O(S),
29
+ workflowPath: S,
30
+ stage: values([
31
+ "running",
32
+ "completed",
33
+ "error"
34
+ ]),
35
+ outcome: O(values([
36
+ "success",
37
+ "skipped",
38
+ "failed",
39
+ "interrupted"
40
+ ])),
41
+ executionState: O(values([
42
+ "running",
43
+ "pause_requested",
44
+ "paused",
45
+ "resume_requested"
46
+ ])),
47
+ prompt: O(S),
48
+ startedAt: S,
49
+ finishedAt: O(S),
50
+ errorMessage: O(S),
51
+ failedJob: O(S),
52
+ stale: O(B),
53
+ staleReason: O(S),
54
+ worktreeBranch: O(S),
55
+ position: O(Type.Object({
56
+ job: S,
57
+ step: O(S),
58
+ index: O(N),
59
+ total: O(N)
60
+ })),
61
+ jobs: Type.Array(Type.Object({
62
+ ...Step,
63
+ phase: values([
64
+ "pre",
65
+ "job",
66
+ "post"
67
+ ]),
68
+ index: O(N),
69
+ total: O(N),
70
+ steps: Type.Array(Type.Object(Step))
71
+ }))
72
+ });
73
+ const WorkflowRunsSchema = Type.Object({ runs: Type.Array(Run) });
74
+ const Artifact = {
75
+ path: S,
76
+ kind: values(["file", "directory"]),
77
+ description: S,
78
+ producedBy: Type.Array(S)
79
+ };
80
+ const WorkflowCatalogSchema = Type.Object({
81
+ cwd: S,
82
+ warning: O(S),
83
+ workflows: Type.Array(Type.Object({
84
+ path: S,
85
+ relativePath: S,
86
+ name: S,
87
+ description: S,
88
+ tags: Type.Array(S),
89
+ triggers: Type.Array(S),
90
+ inputs: Type.Array(Type.Object({
91
+ name: S,
92
+ description: O(S),
93
+ required: O(B),
94
+ default: O(S),
95
+ type: O(S),
96
+ options: O(Type.Array(S))
97
+ })),
98
+ jobs: Type.Array(Type.Object({
99
+ name: S,
100
+ steps: Type.Array(S)
101
+ })),
102
+ artifacts: Type.Array(Type.Object(Artifact)),
103
+ runners: O(Type.Array(S)),
104
+ error: O(S)
105
+ }))
106
+ });
107
+ const Screen = Type.Object({
108
+ lines: Type.Array(S),
109
+ capabilities: Type.Object({
110
+ readable: B,
111
+ writable: B,
112
+ resizable: B,
113
+ reason: O(S)
114
+ }),
115
+ ended: O(B)
116
+ });
117
+ const Control = Type.Object({
118
+ held: B,
119
+ token: O(S),
120
+ reason: O(S)
121
+ });
122
+ const root = "/runs/{workspace}/{runKey}";
123
+ const apiContracts = defineApiContract({
124
+ version: 1,
125
+ dynamic: [],
126
+ http: [
127
+ "global",
128
+ "workspace",
129
+ "session"
130
+ ].flatMap((scope) => [
131
+ {
132
+ id: "workflow.screen",
133
+ scope,
134
+ basePath: "workflow",
135
+ path: `${root}/screen/stream`,
136
+ method: "GET",
137
+ authentication: "owner",
138
+ description: "Follow the workflow terminal.",
139
+ responses: {
140
+ "200": {
141
+ description: "SSE stream with JSON screen events.",
142
+ contentType: "text/event-stream",
143
+ schema: S,
144
+ events: { screen: Screen }
145
+ },
146
+ "404": {
147
+ description: "Run unavailable.",
148
+ schema: Type.Object({ error: S })
149
+ }
150
+ }
151
+ },
152
+ {
153
+ id: "workflow.control",
154
+ scope,
155
+ basePath: "workflow",
156
+ path: `${root}/control`,
157
+ method: "POST",
158
+ authentication: "owner",
159
+ description: "Take or release the keyboard.",
160
+ body: {
161
+ required: true,
162
+ contentType: "application/json",
163
+ schema: Type.Object({
164
+ release: O(B),
165
+ token: O(S)
166
+ })
167
+ },
168
+ responses: {
169
+ ...jsonApiResponses(Control),
170
+ "409": {
171
+ description: "Keyboard unavailable.",
172
+ schema: Control
173
+ }
174
+ }
175
+ },
176
+ {
177
+ id: "workflow.keys",
178
+ scope,
179
+ basePath: "workflow",
180
+ path: `${root}/keys`,
181
+ method: "POST",
182
+ authentication: "owner",
183
+ description: "Write terminal data with the control token.",
184
+ body: {
185
+ required: true,
186
+ contentType: "application/json",
187
+ schema: Type.Object({
188
+ token: S,
189
+ data: S
190
+ })
191
+ },
192
+ responses: {
193
+ "204": { description: "Data written." },
194
+ "400": {
195
+ description: "Invalid request.",
196
+ schema: Type.Object({ error: S })
197
+ },
198
+ "409": {
199
+ description: "Write refused.",
200
+ schema: Type.Object({ error: S })
201
+ }
202
+ }
203
+ },
204
+ {
205
+ id: "workflow.resize",
206
+ scope,
207
+ basePath: "workflow",
208
+ path: `${root}/resize`,
209
+ method: "POST",
210
+ authentication: "owner",
211
+ description: "Resize the terminal.",
212
+ body: {
213
+ required: true,
214
+ contentType: "application/json",
215
+ schema: Type.Object({
216
+ token: S,
217
+ columns: N,
218
+ rows: N
219
+ })
220
+ },
221
+ responses: jsonApiResponses(Type.Object({ resized: B }))
222
+ },
223
+ {
224
+ id: "workflow.delete",
225
+ scope,
226
+ basePath: "workflow",
227
+ path: root,
228
+ method: "DELETE",
229
+ authentication: "owner",
230
+ description: "Delete a settled run and its directory.",
231
+ responses: jsonApiResponses(Type.Object({ deleted: Type.Literal(true) }))
232
+ },
233
+ {
234
+ id: "workflow.artifacts",
235
+ scope,
236
+ basePath: "workflow",
237
+ path: `${root}/artifacts`,
238
+ method: "GET",
239
+ authentication: "owner",
240
+ description: "List declared and discovered artifacts.",
241
+ responses: jsonApiResponses(Type.Object({
242
+ runDir: S,
243
+ description: S,
244
+ artifacts: Type.Array(Type.Object({
245
+ ...Artifact,
246
+ declared: B,
247
+ state: values([
248
+ "written",
249
+ "empty",
250
+ "pending",
251
+ "unreadable"
252
+ ]),
253
+ size: O(N),
254
+ modifiedAt: O(S)
255
+ }))
256
+ }))
257
+ },
258
+ {
259
+ id: "workflow.artifact",
260
+ scope,
261
+ basePath: "workflow",
262
+ path: `${root}/artifacts/{name}`,
263
+ method: "GET",
264
+ authentication: "owner",
265
+ description: "Read artifact metadata and text. name may contain nested path segments. raw=1 streams binary with its media type and supports byte ranges.",
266
+ parameters: [
267
+ {
268
+ name: "raw",
269
+ in: "query",
270
+ required: false,
271
+ schema: values(["0", "1"])
272
+ },
273
+ {
274
+ name: "download",
275
+ in: "query",
276
+ required: false,
277
+ schema: values(["0", "1"])
278
+ },
279
+ {
280
+ name: "range",
281
+ in: "header",
282
+ required: false,
283
+ schema: S
284
+ }
285
+ ],
286
+ responses: {
287
+ ...jsonApiResponses(Type.Union([Type.Object({
288
+ path: S,
289
+ size: N,
290
+ modifiedAt: S,
291
+ mimeType: O(S),
292
+ text: O(S),
293
+ truncated: B
294
+ }), S])),
295
+ "206": {
296
+ description: "Partial raw bytes.",
297
+ contentType: "application/octet-stream",
298
+ schema: S
299
+ },
300
+ "416": { description: "Unsatisfiable byte range." }
301
+ }
302
+ }
303
+ ]),
304
+ sockets: ["global", "workspace"].flatMap((scope) => [{
305
+ id: "workflow.runs",
306
+ scope,
307
+ service: "doompi.hub.v1",
308
+ member: "workflow_runs",
309
+ kind: "channel",
310
+ direction: "server-to-client",
311
+ description: "Workflow runs channel payload.",
312
+ input: WorkflowRunsSchema
313
+ }, {
314
+ id: "workflow.catalog",
315
+ scope,
316
+ service: "doompi.hub.v1",
317
+ member: "workflow_catalog",
318
+ kind: "channel",
319
+ direction: "server-to-client",
320
+ description: "Workflow catalog channel payload.",
321
+ input: WorkflowCatalogSchema
322
+ }])
323
+ });
324
+ //#endregion
325
+ export { WorkflowCatalogSchema, WorkflowRunsSchema, apiContracts, apiContracts as default };
326
+
327
+ //# sourceMappingURL=apiContracts.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiContracts.mjs","names":[],"sources":["../../../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses, type DoomHttpContract } from '@agimon-ai/doompi-core/api-contracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst N = Type.Number();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst values = <T extends string>(items: T[]) => Type.Union(items.map((item) => Type.Literal(item)));\nconst Progress = values(['running', 'completed', 'skipped', 'failed', 'pause_requested', 'paused', 'resumed']);\nconst Step = { name: S, status: Progress, reason: O(S), startedAt: O(S), endedAt: O(S) };\nconst Run = Type.Object({\n runKey: S,\n workspace: S,\n displayName: S,\n workflowName: O(S),\n workflowPath: S,\n stage: values(['running', 'completed', 'error']),\n outcome: O(values(['success', 'skipped', 'failed', 'interrupted'])),\n executionState: O(values(['running', 'pause_requested', 'paused', 'resume_requested'])),\n prompt: O(S),\n startedAt: S,\n finishedAt: O(S),\n errorMessage: O(S),\n failedJob: O(S),\n stale: O(B),\n staleReason: O(S),\n worktreeBranch: O(S),\n position: O(Type.Object({ job: S, step: O(S), index: O(N), total: O(N) })),\n jobs: Type.Array(\n Type.Object({\n ...Step,\n phase: values(['pre', 'job', 'post']),\n index: O(N),\n total: O(N),\n steps: Type.Array(Type.Object(Step)),\n }),\n ),\n});\nexport const WorkflowRunsSchema = Type.Object({ runs: Type.Array(Run) });\nconst Artifact = { path: S, kind: values(['file', 'directory']), description: S, producedBy: Type.Array(S) };\nexport const WorkflowCatalogSchema = Type.Object({\n cwd: S,\n warning: O(S),\n workflows: Type.Array(\n Type.Object({\n path: S,\n relativePath: S,\n name: S,\n description: S,\n tags: Type.Array(S),\n triggers: Type.Array(S),\n inputs: Type.Array(\n Type.Object({\n name: S,\n description: O(S),\n required: O(B),\n default: O(S),\n type: O(S),\n options: O(Type.Array(S)),\n }),\n ),\n jobs: Type.Array(Type.Object({ name: S, steps: Type.Array(S) })),\n artifacts: Type.Array(Type.Object(Artifact)),\n runners: O(Type.Array(S)),\n error: O(S),\n }),\n ),\n});\nconst Screen = Type.Object({\n lines: Type.Array(S),\n capabilities: Type.Object({ readable: B, writable: B, resizable: B, reason: O(S) }),\n ended: O(B),\n});\nconst Control = Type.Object({ held: B, token: O(S), reason: O(S) });\nconst root = '/runs/{workspace}/{runKey}';\nexport const apiContracts = defineApiContract({\n version: 1,\n dynamic: [],\n http: (['global', 'workspace', 'session'] as const).flatMap((scope): DoomHttpContract[] => [\n {\n id: 'workflow.screen',\n scope,\n basePath: 'workflow',\n path: `${root}/screen/stream`,\n method: 'GET',\n authentication: 'owner',\n description: 'Follow the workflow terminal.',\n responses: {\n '200': {\n description: 'SSE stream with JSON screen events.',\n contentType: 'text/event-stream',\n schema: S,\n events: { screen: Screen },\n },\n '404': { description: 'Run unavailable.', schema: Type.Object({ error: S }) },\n },\n },\n {\n id: 'workflow.control',\n scope,\n basePath: 'workflow',\n path: `${root}/control`,\n method: 'POST',\n authentication: 'owner',\n description: 'Take or release the keyboard.',\n body: { required: true, contentType: 'application/json', schema: Type.Object({ release: O(B), token: O(S) }) },\n responses: { ...jsonApiResponses(Control), '409': { description: 'Keyboard unavailable.', schema: Control } },\n },\n {\n id: 'workflow.keys',\n scope,\n basePath: 'workflow',\n path: `${root}/keys`,\n method: 'POST',\n authentication: 'owner',\n description: 'Write terminal data with the control token.',\n body: { required: true, contentType: 'application/json', schema: Type.Object({ token: S, data: S }) },\n responses: {\n '204': { description: 'Data written.' },\n '400': { description: 'Invalid request.', schema: Type.Object({ error: S }) },\n '409': { description: 'Write refused.', schema: Type.Object({ error: S }) },\n },\n },\n {\n id: 'workflow.resize',\n scope,\n basePath: 'workflow',\n path: `${root}/resize`,\n method: 'POST',\n authentication: 'owner',\n description: 'Resize the terminal.',\n body: { required: true, contentType: 'application/json', schema: Type.Object({ token: S, columns: N, rows: N }) },\n responses: jsonApiResponses(Type.Object({ resized: B })),\n },\n {\n id: 'workflow.delete',\n scope,\n basePath: 'workflow',\n path: root,\n method: 'DELETE',\n authentication: 'owner',\n description: 'Delete a settled run and its directory.',\n responses: jsonApiResponses(Type.Object({ deleted: Type.Literal(true) })),\n },\n {\n id: 'workflow.artifacts',\n scope,\n basePath: 'workflow',\n path: `${root}/artifacts`,\n method: 'GET',\n authentication: 'owner',\n description: 'List declared and discovered artifacts.',\n responses: jsonApiResponses(\n Type.Object({\n runDir: S,\n description: S,\n artifacts: Type.Array(\n Type.Object({\n ...Artifact,\n declared: B,\n state: values(['written', 'empty', 'pending', 'unreadable']),\n size: O(N),\n modifiedAt: O(S),\n }),\n ),\n }),\n ),\n },\n {\n id: 'workflow.artifact',\n scope,\n basePath: 'workflow',\n path: `${root}/artifacts/{name}`,\n method: 'GET',\n authentication: 'owner',\n description:\n 'Read artifact metadata and text. name may contain nested path segments. raw=1 streams binary with its media type and supports byte ranges.',\n parameters: [\n { name: 'raw', in: 'query', required: false, schema: values(['0', '1']) },\n { name: 'download', in: 'query', required: false, schema: values(['0', '1']) },\n { name: 'range', in: 'header', required: false, schema: S },\n ],\n responses: {\n ...jsonApiResponses(\n Type.Union([Type.Object({ path: S, size: N, modifiedAt: S, mimeType: O(S), text: O(S), truncated: B }), S]),\n ),\n '206': { description: 'Partial raw bytes.', contentType: 'application/octet-stream', schema: S },\n '416': { description: 'Unsatisfiable byte range.' },\n },\n },\n ]),\n sockets: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'workflow.runs',\n scope,\n service: 'doompi.hub.v1',\n member: 'workflow_runs',\n kind: 'channel',\n direction: 'server-to-client',\n description: 'Workflow runs channel payload.',\n input: WorkflowRunsSchema,\n },\n {\n id: 'workflow.catalog',\n scope,\n service: 'doompi.hub.v1',\n member: 'workflow_catalog',\n kind: 'channel',\n direction: 'server-to-client',\n description: 'Workflow catalog channel payload.',\n input: WorkflowCatalogSchema,\n },\n ]),\n});\nexport default apiContracts;\n"],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ let zod = require("zod");
2
+ //#region src/schemas/workflowPi.ts
3
+ const RUN_SELECTOR_FIELDS = {
4
+ runKey: zod.z.string().min(1).describe("Run key of the workflow run."),
5
+ workspace: zod.z.string().optional().describe("Workspace the run belongs to.")
6
+ };
7
+ const workflowRunInputSchema = zod.z.discriminatedUnion("action", [
8
+ zod.z.object({
9
+ action: zod.z.literal("status"),
10
+ ...RUN_SELECTOR_FIELDS
11
+ }).strict(),
12
+ zod.z.object({
13
+ action: zod.z.literal("tail"),
14
+ ...RUN_SELECTOR_FIELDS
15
+ }).strict(),
16
+ zod.z.object({
17
+ action: zod.z.literal("recovery-evidence"),
18
+ ...RUN_SELECTOR_FIELDS
19
+ }).strict(),
20
+ zod.z.object({
21
+ action: zod.z.literal("follow"),
22
+ ...RUN_SELECTOR_FIELDS
23
+ }).strict(),
24
+ zod.z.object({
25
+ action: zod.z.literal("open"),
26
+ ...RUN_SELECTOR_FIELDS
27
+ }).strict(),
28
+ zod.z.object({
29
+ action: zod.z.literal("pause"),
30
+ ...RUN_SELECTOR_FIELDS,
31
+ reason: zod.z.string().optional()
32
+ }).strict(),
33
+ zod.z.object({
34
+ action: zod.z.literal("resume"),
35
+ ...RUN_SELECTOR_FIELDS,
36
+ reason: zod.z.string().optional()
37
+ }).strict(),
38
+ zod.z.object({
39
+ action: zod.z.literal("stop"),
40
+ ...RUN_SELECTOR_FIELDS,
41
+ reason: zod.z.string().optional()
42
+ }).strict(),
43
+ zod.z.object({
44
+ action: zod.z.literal("recover"),
45
+ ...RUN_SELECTOR_FIELDS,
46
+ dryRun: zod.z.boolean().optional(),
47
+ job: zod.z.string().optional(),
48
+ runner: zod.z.string().optional()
49
+ }).strict()
50
+ ]);
51
+ const dispatchInputSchema = zod.z.object({
52
+ description: zod.z.string().optional().describe("Description shown for the workflow input."),
53
+ required: zod.z.boolean().optional().describe("Whether the workflow input must be provided."),
54
+ default: zod.z.string().optional().describe("Default value for the workflow input."),
55
+ type: zod.z.string().optional().describe("Declared workflow input type."),
56
+ options: zod.z.array(zod.z.string()).optional().describe("Allowed values for the workflow input.")
57
+ }).passthrough();
58
+ const workflowDispatchInputsSchema = zod.z.object({ inputs: zod.z.record(zod.z.string(), dispatchInputSchema).optional().describe("Workflow dispatch input definitions.") }).passthrough();
59
+ const workflowCatalogPageSchema = zod.z.object({
60
+ directory: zod.z.string().min(1).describe("Directory searched for workflow definitions."),
61
+ hasNextPage: zod.z.boolean().describe("Whether another catalog page exists."),
62
+ page: zod.z.number().int().positive().describe("One-based catalog page number."),
63
+ pageSize: zod.z.number().int().positive().describe("Catalog page size."),
64
+ workflows: zod.z.array(zod.z.object({
65
+ path: zod.z.string().min(1).describe("Workflow path relative to the catalog directory."),
66
+ name: zod.z.string().describe("Workflow display name."),
67
+ description: zod.z.string().describe("Workflow description."),
68
+ tags: zod.z.array(zod.z.string()).describe("Workflow tags.")
69
+ }).passthrough()).describe("Workflow definitions on this page.")
70
+ }).passthrough();
71
+ //#endregion
72
+ exports.dispatchInputSchema = dispatchInputSchema;
73
+ exports.workflowCatalogPageSchema = workflowCatalogPageSchema;
74
+ exports.workflowDispatchInputsSchema = workflowDispatchInputsSchema;
75
+ exports.workflowRunInputSchema = workflowRunInputSchema;
76
+
77
+ //# sourceMappingURL=workflowPi.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflowPi.cjs","names":["z"],"sources":["../../../src/schemas/workflowPi.ts"],"sourcesContent":["import { z } from 'zod';\n\nconst RUN_SELECTOR_FIELDS = {\n runKey: z.string().min(1).describe('Run key of the workflow run.'),\n workspace: z.string().optional().describe('Workspace the run belongs to.'),\n} as const;\n\nexport const workflowRunInputSchema = z.discriminatedUnion('action', [\n z.object({ action: z.literal('status'), ...RUN_SELECTOR_FIELDS }).strict(),\n z.object({ action: z.literal('tail'), ...RUN_SELECTOR_FIELDS }).strict(),\n z.object({ action: z.literal('recovery-evidence'), ...RUN_SELECTOR_FIELDS }).strict(),\n z.object({ action: z.literal('follow'), ...RUN_SELECTOR_FIELDS }).strict(),\n z.object({ action: z.literal('open'), ...RUN_SELECTOR_FIELDS }).strict(),\n z.object({ action: z.literal('pause'), ...RUN_SELECTOR_FIELDS, reason: z.string().optional() }).strict(),\n z.object({ action: z.literal('resume'), ...RUN_SELECTOR_FIELDS, reason: z.string().optional() }).strict(),\n z.object({ action: z.literal('stop'), ...RUN_SELECTOR_FIELDS, reason: z.string().optional() }).strict(),\n z\n .object({\n action: z.literal('recover'),\n ...RUN_SELECTOR_FIELDS,\n dryRun: z.boolean().optional(),\n job: z.string().optional(),\n runner: z.string().optional(),\n })\n .strict(),\n]);\n\nexport type WorkflowRunInput = z.infer<typeof workflowRunInputSchema>;\n\nexport const dispatchInputSchema = z\n .object({\n description: z.string().optional().describe('Description shown for the workflow input.'),\n required: z.boolean().optional().describe('Whether the workflow input must be provided.'),\n default: z.string().optional().describe('Default value for the workflow input.'),\n type: z.string().optional().describe('Declared workflow input type.'),\n options: z.array(z.string()).optional().describe('Allowed values for the workflow input.'),\n })\n .passthrough();\n\nexport type DispatchInput = z.infer<typeof dispatchInputSchema>;\n\nexport const workflowDispatchInputsSchema = z\n .object({\n inputs: z.record(z.string(), dispatchInputSchema).optional().describe('Workflow dispatch input definitions.'),\n })\n .passthrough();\n\nexport const workflowCatalogPageSchema = z\n .object({\n directory: z.string().min(1).describe('Directory searched for workflow definitions.'),\n hasNextPage: z.boolean().describe('Whether another catalog page exists.'),\n page: z.number().int().positive().describe('One-based catalog page number.'),\n pageSize: z.number().int().positive().describe('Catalog page size.'),\n workflows: z\n .array(\n z\n .object({\n path: z.string().min(1).describe('Workflow path relative to the catalog directory.'),\n name: z.string().describe('Workflow display name.'),\n description: z.string().describe('Workflow description.'),\n tags: z.array(z.string()).describe('Workflow tags.'),\n })\n .passthrough(),\n )\n .describe('Workflow definitions on this page.'),\n })\n .passthrough();\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import "zod";
@@ -0,0 +1 @@
1
+ import { z } from "zod";
@@ -0,0 +1,74 @@
1
+ import { z } from "zod";
2
+ //#region src/schemas/workflowPi.ts
3
+ const RUN_SELECTOR_FIELDS = {
4
+ runKey: z.string().min(1).describe("Run key of the workflow run."),
5
+ workspace: z.string().optional().describe("Workspace the run belongs to.")
6
+ };
7
+ const workflowRunInputSchema = z.discriminatedUnion("action", [
8
+ z.object({
9
+ action: z.literal("status"),
10
+ ...RUN_SELECTOR_FIELDS
11
+ }).strict(),
12
+ z.object({
13
+ action: z.literal("tail"),
14
+ ...RUN_SELECTOR_FIELDS
15
+ }).strict(),
16
+ z.object({
17
+ action: z.literal("recovery-evidence"),
18
+ ...RUN_SELECTOR_FIELDS
19
+ }).strict(),
20
+ z.object({
21
+ action: z.literal("follow"),
22
+ ...RUN_SELECTOR_FIELDS
23
+ }).strict(),
24
+ z.object({
25
+ action: z.literal("open"),
26
+ ...RUN_SELECTOR_FIELDS
27
+ }).strict(),
28
+ z.object({
29
+ action: z.literal("pause"),
30
+ ...RUN_SELECTOR_FIELDS,
31
+ reason: z.string().optional()
32
+ }).strict(),
33
+ z.object({
34
+ action: z.literal("resume"),
35
+ ...RUN_SELECTOR_FIELDS,
36
+ reason: z.string().optional()
37
+ }).strict(),
38
+ z.object({
39
+ action: z.literal("stop"),
40
+ ...RUN_SELECTOR_FIELDS,
41
+ reason: z.string().optional()
42
+ }).strict(),
43
+ z.object({
44
+ action: z.literal("recover"),
45
+ ...RUN_SELECTOR_FIELDS,
46
+ dryRun: z.boolean().optional(),
47
+ job: z.string().optional(),
48
+ runner: z.string().optional()
49
+ }).strict()
50
+ ]);
51
+ const dispatchInputSchema = z.object({
52
+ description: z.string().optional().describe("Description shown for the workflow input."),
53
+ required: z.boolean().optional().describe("Whether the workflow input must be provided."),
54
+ default: z.string().optional().describe("Default value for the workflow input."),
55
+ type: z.string().optional().describe("Declared workflow input type."),
56
+ options: z.array(z.string()).optional().describe("Allowed values for the workflow input.")
57
+ }).passthrough();
58
+ const workflowDispatchInputsSchema = z.object({ inputs: z.record(z.string(), dispatchInputSchema).optional().describe("Workflow dispatch input definitions.") }).passthrough();
59
+ const workflowCatalogPageSchema = z.object({
60
+ directory: z.string().min(1).describe("Directory searched for workflow definitions."),
61
+ hasNextPage: z.boolean().describe("Whether another catalog page exists."),
62
+ page: z.number().int().positive().describe("One-based catalog page number."),
63
+ pageSize: z.number().int().positive().describe("Catalog page size."),
64
+ workflows: z.array(z.object({
65
+ path: z.string().min(1).describe("Workflow path relative to the catalog directory."),
66
+ name: z.string().describe("Workflow display name."),
67
+ description: z.string().describe("Workflow description."),
68
+ tags: z.array(z.string()).describe("Workflow tags.")
69
+ }).passthrough()).describe("Workflow definitions on this page.")
70
+ }).passthrough();
71
+ //#endregion
72
+ export { dispatchInputSchema, workflowCatalogPageSchema, workflowDispatchInputsSchema, workflowRunInputSchema };
73
+
74
+ //# sourceMappingURL=workflowPi.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflowPi.mjs","names":[],"sources":["../../../src/schemas/workflowPi.ts"],"sourcesContent":["import { z } from 'zod';\n\nconst RUN_SELECTOR_FIELDS = {\n runKey: z.string().min(1).describe('Run key of the workflow run.'),\n workspace: z.string().optional().describe('Workspace the run belongs to.'),\n} as const;\n\nexport const workflowRunInputSchema = z.discriminatedUnion('action', [\n z.object({ action: z.literal('status'), ...RUN_SELECTOR_FIELDS }).strict(),\n z.object({ action: z.literal('tail'), ...RUN_SELECTOR_FIELDS }).strict(),\n z.object({ action: z.literal('recovery-evidence'), ...RUN_SELECTOR_FIELDS }).strict(),\n z.object({ action: z.literal('follow'), ...RUN_SELECTOR_FIELDS }).strict(),\n z.object({ action: z.literal('open'), ...RUN_SELECTOR_FIELDS }).strict(),\n z.object({ action: z.literal('pause'), ...RUN_SELECTOR_FIELDS, reason: z.string().optional() }).strict(),\n z.object({ action: z.literal('resume'), ...RUN_SELECTOR_FIELDS, reason: z.string().optional() }).strict(),\n z.object({ action: z.literal('stop'), ...RUN_SELECTOR_FIELDS, reason: z.string().optional() }).strict(),\n z\n .object({\n action: z.literal('recover'),\n ...RUN_SELECTOR_FIELDS,\n dryRun: z.boolean().optional(),\n job: z.string().optional(),\n runner: z.string().optional(),\n })\n .strict(),\n]);\n\nexport type WorkflowRunInput = z.infer<typeof workflowRunInputSchema>;\n\nexport const dispatchInputSchema = z\n .object({\n description: z.string().optional().describe('Description shown for the workflow input.'),\n required: z.boolean().optional().describe('Whether the workflow input must be provided.'),\n default: z.string().optional().describe('Default value for the workflow input.'),\n type: z.string().optional().describe('Declared workflow input type.'),\n options: z.array(z.string()).optional().describe('Allowed values for the workflow input.'),\n })\n .passthrough();\n\nexport type DispatchInput = z.infer<typeof dispatchInputSchema>;\n\nexport const workflowDispatchInputsSchema = z\n .object({\n inputs: z.record(z.string(), dispatchInputSchema).optional().describe('Workflow dispatch input definitions.'),\n })\n .passthrough();\n\nexport const workflowCatalogPageSchema = z\n .object({\n directory: z.string().min(1).describe('Directory searched for workflow definitions.'),\n hasNextPage: z.boolean().describe('Whether another catalog page exists.'),\n page: z.number().int().positive().describe('One-based catalog page number.'),\n pageSize: z.number().int().positive().describe('Catalog page size.'),\n workflows: z\n .array(\n z\n .object({\n path: z.string().min(1).describe('Workflow path relative to the catalog directory.'),\n name: z.string().describe('Workflow display name.'),\n description: z.string().describe('Workflow description.'),\n tags: z.array(z.string()).describe('Workflow tags.'),\n })\n .passthrough(),\n )\n .describe('Workflow definitions on this page.'),\n })\n .passthrough();\n"],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ let _agimon_ai_doompi_core_background_work = require("@agimon-ai/doompi-core/background-work");
2
+ //#region src/services/backgroundWork/index.ts
3
+ /**
4
+ * Background-work registration for workflow runs.
5
+ *
6
+ * DESIGN PATTERNS:
7
+ * - Hard dependency binding through Cordis injection
8
+ * - Snapshot pattern: the extension pushes the current run set, the provider
9
+ * only reads it
10
+ *
11
+ * CODING STANDARDS:
12
+ * - Named exports only
13
+ * - Explicit return types on exported functions
14
+ *
15
+ * AVOID:
16
+ * - Process-global symbols or dynamic imports for extension communication
17
+ * - Reporting runs owned by another Pi session
18
+ */
19
+ const PROVIDER_NAME = "workflow-mcp";
20
+ /**
21
+ * Register a background-work provider for this session's workflow runs.
22
+ *
23
+ * The runtime pins all announcements to the active Pi session and validates
24
+ * each snapshot before it reaches another extension.
25
+ */
26
+ function registerRunProvider(ctx) {
27
+ let items = [];
28
+ let provider;
29
+ let disposed = false;
30
+ ctx.inject([_agimon_ai_doompi_core_background_work.DOOM_BACKGROUND_WORK_SERVICE], (serviceContext) => {
31
+ if (disposed) return void 0;
32
+ const service = (0, _agimon_ai_doompi_core_background_work.readDoomBackgroundWorkService)(serviceContext);
33
+ if (!service) return void 0;
34
+ const registration = service.register({
35
+ provider: PROVIDER_NAME,
36
+ listActiveWork: () => items
37
+ });
38
+ provider = registration;
39
+ return () => {
40
+ registration.dispose();
41
+ if (provider === registration) provider = void 0;
42
+ };
43
+ });
44
+ return {
45
+ update(next) {
46
+ items = next;
47
+ provider?.update();
48
+ },
49
+ dispose() {
50
+ if (disposed) return;
51
+ disposed = true;
52
+ items = [];
53
+ provider?.dispose();
54
+ provider = void 0;
55
+ }
56
+ };
57
+ }
58
+ //#endregion
59
+ exports.registerRunProvider = registerRunProvider;
60
+
61
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["DOOM_BACKGROUND_WORK_SERVICE","readDoomBackgroundWorkService"],"sources":["../../../../src/services/backgroundWork/index.ts"],"sourcesContent":["/**\n * Background-work registration for workflow runs.\n *\n * DESIGN PATTERNS:\n * - Hard dependency binding through Cordis injection\n * - Snapshot pattern: the extension pushes the current run set, the provider\n * only reads it\n *\n * CODING STANDARDS:\n * - Named exports only\n * - Explicit return types on exported functions\n *\n * AVOID:\n * - Process-global symbols or dynamic imports for extension communication\n * - Reporting runs owned by another Pi session\n */\n\nimport {\n DOOM_BACKGROUND_WORK_SERVICE,\n type BackgroundWorkProviderHandle,\n readDoomBackgroundWorkService,\n} from '@agimon-ai/doompi-core/background-work';\nimport type { Context } from '@deepseek-ai/cordis';\n\nexport interface RunProviderItem {\n id: string;\n sessionId: string;\n}\n\nexport interface RunProviderHandle {\n /** Replace the reported run set. */\n update(items: RunProviderItem[]): void;\n /** Remove the registration. Safe to call when registration never happened. */\n dispose(): void;\n}\n\nconst PROVIDER_NAME = 'workflow-mcp';\n\n/**\n * Register a background-work provider for this session's workflow runs.\n *\n * The runtime pins all announcements to the active Pi session and validates\n * each snapshot before it reaches another extension.\n */\nexport function registerRunProvider(ctx: Context): RunProviderHandle {\n let items: RunProviderItem[] = [];\n let provider: BackgroundWorkProviderHandle | undefined;\n let disposed = false;\n ctx.inject([DOOM_BACKGROUND_WORK_SERVICE], (serviceContext) => {\n if (disposed) return undefined;\n const service = readDoomBackgroundWorkService(serviceContext);\n if (!service) return undefined;\n const registration = service.register({ provider: PROVIDER_NAME, listActiveWork: () => items });\n provider = registration;\n return () => {\n registration.dispose();\n if (provider === registration) provider = undefined;\n };\n });\n const handle: RunProviderHandle = {\n update(next) {\n items = next;\n provider?.update();\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n items = [];\n provider?.dispose();\n provider = undefined;\n },\n };\n return handle;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAoCA,MAAM,gBAAgB;;;;;;;AAQtB,SAAgB,oBAAoB,KAAiC;CACnE,IAAI,QAA2B,CAAC;CAChC,IAAI;CACJ,IAAI,WAAW;CACf,IAAI,OAAO,CAACA,uCAAAA,4BAA4B,IAAI,mBAAmB;EAC7D,IAAI,UAAU,OAAO,KAAA;EACrB,MAAM,WAAA,GAAUC,uCAAAA,8BAAAA,CAA8B,cAAc;EAC5D,IAAI,CAAC,SAAS,OAAO,KAAA;EACrB,MAAM,eAAe,QAAQ,SAAS;GAAE,UAAU;GAAe,sBAAsB;EAAM,CAAC;EAC9F,WAAW;EACX,aAAa;GACX,aAAa,QAAQ;GACrB,IAAI,aAAa,cAAc,WAAW,KAAA;EAC5C;CACF,CAAC;CAcD,OAAO;EAZL,OAAO,MAAM;GACX,QAAQ;GACR,UAAU,OAAO;EACnB;EACA,UAAU;GACR,IAAI,UAAU;GACd,WAAW;GACX,QAAQ,CAAC;GACT,UAAU,QAAQ;GAClB,WAAW,KAAA;EACb;CAEU;AACd"}