@agimon-ai/doompi-workflow 0.0.1-alpha.74 → 0.0.1-alpha.76

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 (332) hide show
  1. package/package.json +8 -8
  2. package/dist/_virtual/_rolldown/runtime.cjs +0 -23
  3. package/dist/api-contracts.cjs +0 -7
  4. package/dist/api-contracts.d.cts +0 -2
  5. package/dist/api-contracts.d.mts +0 -2
  6. package/dist/api-contracts.mjs +0 -2
  7. package/dist/extensions/pi.cjs +0 -63
  8. package/dist/extensions/pi.cjs.map +0 -1
  9. package/dist/extensions/pi.d.cts +0 -6
  10. package/dist/extensions/pi.d.cts.map +0 -1
  11. package/dist/extensions/pi.d.mts +0 -6
  12. package/dist/extensions/pi.d.mts.map +0 -1
  13. package/dist/extensions/pi.mjs +0 -58
  14. package/dist/extensions/pi.mjs.map +0 -1
  15. package/dist/extensions/server.cjs +0 -96
  16. package/dist/extensions/server.cjs.map +0 -1
  17. package/dist/extensions/server.d.cts +0 -5
  18. package/dist/extensions/server.d.cts.map +0 -1
  19. package/dist/extensions/server.d.mts +0 -5
  20. package/dist/extensions/server.d.mts.map +0 -1
  21. package/dist/extensions/server.mjs +0 -91
  22. package/dist/extensions/server.mjs.map +0 -1
  23. package/dist/extensions/web.mjs +0 -3219
  24. package/dist/extensions/web.mjs.map +0 -1
  25. package/dist/index.cjs +0 -4
  26. package/dist/index.d.cts +0 -2
  27. package/dist/index.d.mts +0 -2
  28. package/dist/index.mjs +0 -2
  29. package/dist/src/constants/workflow.cjs +0 -32
  30. package/dist/src/constants/workflow.cjs.map +0 -1
  31. package/dist/src/constants/workflow.mjs +0 -21
  32. package/dist/src/constants/workflow.mjs.map +0 -1
  33. package/dist/src/extensions/(backend)/_lib/index.server.cjs +0 -12
  34. package/dist/src/extensions/(backend)/_lib/index.server.cjs.map +0 -1
  35. package/dist/src/extensions/(backend)/_lib/index.server.mjs +0 -12
  36. package/dist/src/extensions/(backend)/_lib/index.server.mjs.map +0 -1
  37. package/dist/src/extensions/(backend)/api/workflow/route.server.cjs +0 -7
  38. package/dist/src/extensions/(backend)/api/workflow/route.server.cjs.map +0 -1
  39. package/dist/src/extensions/(backend)/api/workflow/route.server.mjs +0 -8
  40. package/dist/src/extensions/(backend)/api/workflow/route.server.mjs.map +0 -1
  41. package/dist/src/extensions/(backend)/channel/workflow-catalog.server.cjs +0 -7
  42. package/dist/src/extensions/(backend)/channel/workflow-catalog.server.cjs.map +0 -1
  43. package/dist/src/extensions/(backend)/channel/workflow-catalog.server.mjs +0 -8
  44. package/dist/src/extensions/(backend)/channel/workflow-catalog.server.mjs.map +0 -1
  45. package/dist/src/extensions/(backend)/channel/workflows.server.cjs +0 -7
  46. package/dist/src/extensions/(backend)/channel/workflows.server.cjs.map +0 -1
  47. package/dist/src/extensions/(backend)/channel/workflows.server.mjs +0 -8
  48. package/dist/src/extensions/(backend)/channel/workflows.server.mjs.map +0 -1
  49. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.cli.cjs +0 -100
  50. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.cli.cjs.map +0 -1
  51. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.cli.mjs +0 -100
  52. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.cli.mjs.map +0 -1
  53. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.server.cjs +0 -11
  54. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.server.cjs.map +0 -1
  55. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.server.mjs +0 -11
  56. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.server.mjs.map +0 -1
  57. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/workflowSkillsResource.cjs +0 -12
  58. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/workflowSkillsResource.cjs.map +0 -1
  59. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/workflowSkillsResource.mjs +0 -12
  60. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/workflowSkillsResource.mjs.map +0 -1
  61. package/dist/src/extensions/workspaces/sessions/(backend)/api/workflow/route.server.cjs +0 -6
  62. package/dist/src/extensions/workspaces/sessions/(backend)/api/workflow/route.server.cjs.map +0 -1
  63. package/dist/src/extensions/workspaces/sessions/(backend)/api/workflow/route.server.mjs +0 -7
  64. package/dist/src/extensions/workspaces/sessions/(backend)/api/workflow/route.server.mjs.map +0 -1
  65. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.cli.cjs +0 -6
  66. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.cli.cjs.map +0 -1
  67. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.cli.mjs +0 -7
  68. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.cli.mjs.map +0 -1
  69. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.server.cjs +0 -6
  70. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.server.cjs.map +0 -1
  71. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.server.mjs +0 -7
  72. package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.server.mjs.map +0 -1
  73. package/dist/src/extensions/workspaces/sessions/(backend)/hook/resources-discover.cli.cjs +0 -6
  74. package/dist/src/extensions/workspaces/sessions/(backend)/hook/resources-discover.cli.cjs.map +0 -1
  75. package/dist/src/extensions/workspaces/sessions/(backend)/hook/resources-discover.cli.mjs +0 -7
  76. package/dist/src/extensions/workspaces/sessions/(backend)/hook/resources-discover.cli.mjs.map +0 -1
  77. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs +0 -6
  78. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs.map +0 -1
  79. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs +0 -7
  80. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs.map +0 -1
  81. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs +0 -6
  82. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs.map +0 -1
  83. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs +0 -7
  84. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs.map +0 -1
  85. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.server.cjs +0 -6
  86. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.server.cjs.map +0 -1
  87. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.server.mjs +0 -7
  88. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.server.mjs.map +0 -1
  89. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-author-workflow.server.cjs +0 -6
  90. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-author-workflow.server.cjs.map +0 -1
  91. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-author-workflow.server.mjs +0 -7
  92. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-author-workflow.server.mjs.map +0 -1
  93. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-workflow.server.cjs +0 -6
  94. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-workflow.server.cjs.map +0 -1
  95. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-workflow.server.mjs +0 -7
  96. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-workflow.server.mjs.map +0 -1
  97. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-recovery.server.cjs +0 -6
  98. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-recovery.server.cjs.map +0 -1
  99. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-recovery.server.mjs +0 -7
  100. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-recovery.server.mjs.map +0 -1
  101. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-skills.cli.cjs +0 -7
  102. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-skills.cli.cjs.map +0 -1
  103. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-skills.cli.mjs +0 -8
  104. package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-skills.cli.mjs.map +0 -1
  105. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs +0 -15
  106. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs.map +0 -1
  107. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs +0 -16
  108. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs.map +0 -1
  109. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs +0 -17
  110. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs.map +0 -1
  111. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs +0 -18
  112. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs.map +0 -1
  113. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-panel.cli.cjs +0 -6
  114. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-panel.cli.cjs.map +0 -1
  115. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-panel.cli.mjs +0 -7
  116. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-panel.cli.mjs.map +0 -1
  117. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-view-close.cli.cjs +0 -6
  118. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-view-close.cli.cjs.map +0 -1
  119. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-view-close.cli.mjs +0 -7
  120. package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-view-close.cli.mjs.map +0 -1
  121. package/dist/src/extensions/workspaces/sessions/(backend)/tool/launch-workflow.server.cjs +0 -6
  122. package/dist/src/extensions/workspaces/sessions/(backend)/tool/launch-workflow.server.cjs.map +0 -1
  123. package/dist/src/extensions/workspaces/sessions/(backend)/tool/launch-workflow.server.mjs +0 -7
  124. package/dist/src/extensions/workspaces/sessions/(backend)/tool/launch-workflow.server.mjs.map +0 -1
  125. package/dist/src/extensions/workspaces/sessions/(backend)/tool/list-workflows.server.cjs +0 -6
  126. package/dist/src/extensions/workspaces/sessions/(backend)/tool/list-workflows.server.cjs.map +0 -1
  127. package/dist/src/extensions/workspaces/sessions/(backend)/tool/list-workflows.server.mjs +0 -7
  128. package/dist/src/extensions/workspaces/sessions/(backend)/tool/list-workflows.server.mjs.map +0 -1
  129. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow-run.server.cjs +0 -6
  130. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow-run.server.cjs.map +0 -1
  131. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow-run.server.mjs +0 -7
  132. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow-run.server.mjs.map +0 -1
  133. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow.cli.cjs +0 -6
  134. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow.cli.cjs.map +0 -1
  135. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow.cli.mjs +0 -7
  136. package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow.cli.mjs.map +0 -1
  137. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.cli.cjs +0 -6
  138. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.cli.cjs.map +0 -1
  139. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.cli.mjs +0 -7
  140. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.cli.mjs.map +0 -1
  141. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.server.cjs +0 -6
  142. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.server.cjs.map +0 -1
  143. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.server.mjs +0 -7
  144. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.server.mjs.map +0 -1
  145. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.cjs +0 -50
  146. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.cjs.map +0 -1
  147. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.mjs +0 -47
  148. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.mjs.map +0 -1
  149. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.cjs +0 -36
  150. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.cjs.map +0 -1
  151. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.mjs +0 -35
  152. package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.mjs.map +0 -1
  153. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.cjs +0 -7
  154. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.cjs.map +0 -1
  155. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.mjs +0 -8
  156. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.mjs.map +0 -1
  157. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.cjs +0 -7
  158. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.cjs.map +0 -1
  159. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.mjs +0 -8
  160. package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.mjs.map +0 -1
  161. package/dist/src/schemas/apiContracts.cjs +0 -330
  162. package/dist/src/schemas/apiContracts.cjs.map +0 -1
  163. package/dist/src/schemas/apiContracts.d.cts +0 -53
  164. package/dist/src/schemas/apiContracts.d.cts.map +0 -1
  165. package/dist/src/schemas/apiContracts.d.mts +0 -53
  166. package/dist/src/schemas/apiContracts.d.mts.map +0 -1
  167. package/dist/src/schemas/apiContracts.mjs +0 -327
  168. package/dist/src/schemas/apiContracts.mjs.map +0 -1
  169. package/dist/src/schemas/workflowPi.cjs +0 -77
  170. package/dist/src/schemas/workflowPi.cjs.map +0 -1
  171. package/dist/src/schemas/workflowPi.d.cts +0 -1
  172. package/dist/src/schemas/workflowPi.d.mts +0 -1
  173. package/dist/src/schemas/workflowPi.mjs +0 -74
  174. package/dist/src/schemas/workflowPi.mjs.map +0 -1
  175. package/dist/src/services/backgroundWork/index.cjs +0 -61
  176. package/dist/src/services/backgroundWork/index.cjs.map +0 -1
  177. package/dist/src/services/backgroundWork/index.mjs +0 -61
  178. package/dist/src/services/backgroundWork/index.mjs.map +0 -1
  179. package/dist/src/services/piToolBridge/index.cjs +0 -205
  180. package/dist/src/services/piToolBridge/index.cjs.map +0 -1
  181. package/dist/src/services/piToolBridge/index.mjs +0 -195
  182. package/dist/src/services/piToolBridge/index.mjs.map +0 -1
  183. package/dist/src/services/serverRuntime/index.cjs +0 -341
  184. package/dist/src/services/serverRuntime/index.cjs.map +0 -1
  185. package/dist/src/services/serverRuntime/index.mjs +0 -341
  186. package/dist/src/services/serverRuntime/index.mjs.map +0 -1
  187. package/dist/src/services/webWorkflowCatalog/index.cjs +0 -53
  188. package/dist/src/services/webWorkflowCatalog/index.cjs.map +0 -1
  189. package/dist/src/services/webWorkflowCatalog/index.mjs +0 -52
  190. package/dist/src/services/webWorkflowCatalog/index.mjs.map +0 -1
  191. package/dist/src/services/workflowCatalogChannel/index.cjs +0 -74
  192. package/dist/src/services/workflowCatalogChannel/index.cjs.map +0 -1
  193. package/dist/src/services/workflowCatalogChannel/index.mjs +0 -74
  194. package/dist/src/services/workflowCatalogChannel/index.mjs.map +0 -1
  195. package/dist/src/services/workflowCatalogDeps/index.cjs +0 -25
  196. package/dist/src/services/workflowCatalogDeps/index.cjs.map +0 -1
  197. package/dist/src/services/workflowCatalogDeps/index.mjs +0 -25
  198. package/dist/src/services/workflowCatalogDeps/index.mjs.map +0 -1
  199. package/dist/src/services/workflowExecution/index.cjs +0 -205
  200. package/dist/src/services/workflowExecution/index.cjs.map +0 -1
  201. package/dist/src/services/workflowExecution/index.d.cts +0 -6
  202. package/dist/src/services/workflowExecution/index.d.mts +0 -6
  203. package/dist/src/services/workflowExecution/index.mjs +0 -200
  204. package/dist/src/services/workflowExecution/index.mjs.map +0 -1
  205. package/dist/src/services/workflowFence/index.cjs +0 -170
  206. package/dist/src/services/workflowFence/index.cjs.map +0 -1
  207. package/dist/src/services/workflowFence/index.mjs +0 -166
  208. package/dist/src/services/workflowFence/index.mjs.map +0 -1
  209. package/dist/src/services/workflowHubApi/index.cjs +0 -415
  210. package/dist/src/services/workflowHubApi/index.cjs.map +0 -1
  211. package/dist/src/services/workflowHubApi/index.mjs +0 -411
  212. package/dist/src/services/workflowHubApi/index.mjs.map +0 -1
  213. package/dist/src/services/workflowLaunchCommand/index.cjs +0 -121
  214. package/dist/src/services/workflowLaunchCommand/index.cjs.map +0 -1
  215. package/dist/src/services/workflowLaunchCommand/index.d.cts +0 -52
  216. package/dist/src/services/workflowLaunchCommand/index.d.cts.map +0 -1
  217. package/dist/src/services/workflowLaunchCommand/index.d.mts +0 -52
  218. package/dist/src/services/workflowLaunchCommand/index.d.mts.map +0 -1
  219. package/dist/src/services/workflowLaunchCommand/index.mjs +0 -118
  220. package/dist/src/services/workflowLaunchCommand/index.mjs.map +0 -1
  221. package/dist/src/services/workflowLauncher/index.cjs +0 -181
  222. package/dist/src/services/workflowLauncher/index.cjs.map +0 -1
  223. package/dist/src/services/workflowLauncher/index.mjs +0 -177
  224. package/dist/src/services/workflowLauncher/index.mjs.map +0 -1
  225. package/dist/src/services/workflowNarration/index.cjs +0 -19
  226. package/dist/src/services/workflowNarration/index.cjs.map +0 -1
  227. package/dist/src/services/workflowNarration/index.mjs +0 -19
  228. package/dist/src/services/workflowNarration/index.mjs.map +0 -1
  229. package/dist/src/services/workflowResource/index.cjs +0 -27
  230. package/dist/src/services/workflowResource/index.cjs.map +0 -1
  231. package/dist/src/services/workflowResource/index.mjs +0 -24
  232. package/dist/src/services/workflowResource/index.mjs.map +0 -1
  233. package/dist/src/services/workflowRuns/index.cjs +0 -333
  234. package/dist/src/services/workflowRuns/index.cjs.map +0 -1
  235. package/dist/src/services/workflowRuns/index.mjs +0 -319
  236. package/dist/src/services/workflowRuns/index.mjs.map +0 -1
  237. package/dist/src/services/workflowTerminal/index.cjs +0 -69
  238. package/dist/src/services/workflowTerminal/index.cjs.map +0 -1
  239. package/dist/src/services/workflowTerminal/index.mjs +0 -69
  240. package/dist/src/services/workflowTerminal/index.mjs.map +0 -1
  241. package/dist/src/services/workflowTools/index.cjs +0 -221
  242. package/dist/src/services/workflowTools/index.cjs.map +0 -1
  243. package/dist/src/services/workflowTools/index.mjs +0 -221
  244. package/dist/src/services/workflowTools/index.mjs.map +0 -1
  245. package/dist/src/services/workflowWatcher/index.cjs +0 -78
  246. package/dist/src/services/workflowWatcher/index.cjs.map +0 -1
  247. package/dist/src/services/workflowWatcher/index.mjs +0 -74
  248. package/dist/src/services/workflowWatcher/index.mjs.map +0 -1
  249. package/dist/src/services/workflowsHubChannel/index.cjs +0 -58
  250. package/dist/src/services/workflowsHubChannel/index.cjs.map +0 -1
  251. package/dist/src/services/workflowsHubChannel/index.mjs +0 -58
  252. package/dist/src/services/workflowsHubChannel/index.mjs.map +0 -1
  253. package/dist/src/tui/leader.cjs +0 -84
  254. package/dist/src/tui/leader.cjs.map +0 -1
  255. package/dist/src/tui/leader.mjs +0 -83
  256. package/dist/src/tui/leader.mjs.map +0 -1
  257. package/dist/src/tui/workflow/doomOverlay.cjs +0 -159
  258. package/dist/src/tui/workflow/doomOverlay.cjs.map +0 -1
  259. package/dist/src/tui/workflow/doomOverlay.mjs +0 -157
  260. package/dist/src/tui/workflow/doomOverlay.mjs.map +0 -1
  261. package/dist/src/tui/workflow/overlayText.cjs +0 -83
  262. package/dist/src/tui/workflow/overlayText.cjs.map +0 -1
  263. package/dist/src/tui/workflow/overlayText.mjs +0 -78
  264. package/dist/src/tui/workflow/overlayText.mjs.map +0 -1
  265. package/dist/src/tui/workflow/rendering.cjs +0 -22
  266. package/dist/src/tui/workflow/rendering.cjs.map +0 -1
  267. package/dist/src/tui/workflow/rendering.mjs +0 -20
  268. package/dist/src/tui/workflow/rendering.mjs.map +0 -1
  269. package/dist/src/tui/workflow/workflowCatalog.cjs +0 -336
  270. package/dist/src/tui/workflow/workflowCatalog.cjs.map +0 -1
  271. package/dist/src/tui/workflow/workflowCatalog.mjs +0 -333
  272. package/dist/src/tui/workflow/workflowCatalog.mjs.map +0 -1
  273. package/dist/src/tui/workflow/workflowFinishedMessage.cjs +0 -50
  274. package/dist/src/tui/workflow/workflowFinishedMessage.cjs.map +0 -1
  275. package/dist/src/tui/workflow/workflowFinishedMessage.mjs +0 -47
  276. package/dist/src/tui/workflow/workflowFinishedMessage.mjs.map +0 -1
  277. package/dist/src/tui/workflow/workflowInspector.cjs +0 -276
  278. package/dist/src/tui/workflow/workflowInspector.cjs.map +0 -1
  279. package/dist/src/tui/workflow/workflowInspector.mjs +0 -276
  280. package/dist/src/tui/workflow/workflowInspector.mjs.map +0 -1
  281. package/dist/src/tui/workflow/workflowOverlay.cjs +0 -126
  282. package/dist/src/tui/workflow/workflowOverlay.cjs.map +0 -1
  283. package/dist/src/tui/workflow/workflowOverlay.mjs +0 -125
  284. package/dist/src/tui/workflow/workflowOverlay.mjs.map +0 -1
  285. package/dist/src/tui/workflow/workflowPicker.cjs +0 -138
  286. package/dist/src/tui/workflow/workflowPicker.cjs.map +0 -1
  287. package/dist/src/tui/workflow/workflowPicker.mjs +0 -136
  288. package/dist/src/tui/workflow/workflowPicker.mjs.map +0 -1
  289. package/dist/src/tui/workflow/workflowProgressOverlay.cjs +0 -197
  290. package/dist/src/tui/workflow/workflowProgressOverlay.cjs.map +0 -1
  291. package/dist/src/tui/workflow/workflowProgressOverlay.mjs +0 -192
  292. package/dist/src/tui/workflow/workflowProgressOverlay.mjs.map +0 -1
  293. package/dist/src/tui/workflow/workflowPrompt.cjs +0 -142
  294. package/dist/src/tui/workflow/workflowPrompt.cjs.map +0 -1
  295. package/dist/src/tui/workflow/workflowPrompt.mjs +0 -139
  296. package/dist/src/tui/workflow/workflowPrompt.mjs.map +0 -1
  297. package/dist/src/tui/workflow/workflowRunPanel.cjs +0 -95
  298. package/dist/src/tui/workflow/workflowRunPanel.cjs.map +0 -1
  299. package/dist/src/tui/workflow/workflowRunPanel.mjs +0 -94
  300. package/dist/src/tui/workflow/workflowRunPanel.mjs.map +0 -1
  301. package/dist/src/tui/workflow/workflowStatusRow.cjs +0 -20
  302. package/dist/src/tui/workflow/workflowStatusRow.cjs.map +0 -1
  303. package/dist/src/tui/workflow/workflowStatusRow.mjs +0 -20
  304. package/dist/src/tui/workflow/workflowStatusRow.mjs.map +0 -1
  305. package/dist/src/tui/workflow/workflowStepMessage.cjs +0 -32
  306. package/dist/src/tui/workflow/workflowStepMessage.cjs.map +0 -1
  307. package/dist/src/tui/workflow/workflowStepMessage.mjs +0 -31
  308. package/dist/src/tui/workflow/workflowStepMessage.mjs.map +0 -1
  309. package/dist/src/tui/workflow/workflowToolRender.cjs +0 -491
  310. package/dist/src/tui/workflow/workflowToolRender.cjs.map +0 -1
  311. package/dist/src/tui/workflow/workflowToolRender.mjs +0 -490
  312. package/dist/src/tui/workflow/workflowToolRender.mjs.map +0 -1
  313. package/dist/src/tui/workflowRuntime.cjs +0 -1934
  314. package/dist/src/tui/workflowRuntime.cjs.map +0 -1
  315. package/dist/src/tui/workflowRuntime.d.cts +0 -33
  316. package/dist/src/tui/workflowRuntime.d.cts.map +0 -1
  317. package/dist/src/tui/workflowRuntime.d.mts +0 -33
  318. package/dist/src/tui/workflowRuntime.d.mts.map +0 -1
  319. package/dist/src/tui/workflowRuntime.mjs +0 -1930
  320. package/dist/src/tui/workflowRuntime.mjs.map +0 -1
  321. package/dist/src/types/apiRoutes.cjs +0 -82
  322. package/dist/src/types/apiRoutes.cjs.map +0 -1
  323. package/dist/src/types/apiRoutes.mjs +0 -80
  324. package/dist/src/types/apiRoutes.mjs.map +0 -1
  325. package/dist/src/types/webWorkflowTerminal.cjs +0 -23
  326. package/dist/src/types/webWorkflowTerminal.cjs.map +0 -1
  327. package/dist/src/types/webWorkflowTerminal.mjs +0 -22
  328. package/dist/src/types/webWorkflowTerminal.mjs.map +0 -1
  329. package/dist/src/types/webWorkflows.cjs +0 -8
  330. package/dist/src/types/webWorkflows.cjs.map +0 -1
  331. package/dist/src/types/webWorkflows.mjs +0 -7
  332. package/dist/src/types/webWorkflows.mjs.map +0 -1
@@ -1,47 +0,0 @@
1
- import { Text } from "@earendil-works/pi-tui";
2
- //#region src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.ts
3
- const WORKFLOW_FINISHED_MESSAGE = "workflow-run-finished";
4
- const COMPLETED_STAGE = "completed";
5
- const HELD_STAGES = /* @__PURE__ */ new Set([
6
- "stopped",
7
- "paused",
8
- "cancelled"
9
- ]);
10
- function statusIcon(stage, theme) {
11
- if (stage === COMPLETED_STAGE) return theme.fg("success", "✔");
12
- if (HELD_STAGES.has(stage)) return theme.fg("warning", "■");
13
- return theme.fg("error", "✖");
14
- }
15
- function runLine(run, theme) {
16
- const separator = ` ${theme.fg("dim", "·")} `;
17
- const identity = [run.runKey, run.workspace].filter(Boolean).join("/");
18
- const parts = [theme.fg("dim", identity), theme.fg("dim", run.stage)];
19
- if (run.workflowId) parts.unshift(theme.bold(run.workflowId));
20
- let text = `${statusIcon(run.stage, theme)} ${parts.join(separator)}`;
21
- if (run.failedJob) text += `\n ${theme.fg("dim", `⎿ failed job: ${run.failedJob}`)}`;
22
- if (run.error) text += `\n ${theme.fg("dim", `⎿ ${run.error}`)}`;
23
- return text;
24
- }
25
- /**
26
- * Exported for tests: the rendered string before it is wrapped in a `Text`
27
- * component, so the formatting is assertable without a terminal.
28
- */
29
- function renderWorkflowFinished(runs, theme) {
30
- return runs.map((run) => runLine(run, theme)).join("\n");
31
- }
32
- function isWorkflowFinishedRuns(value) {
33
- if (!Array.isArray(value) || value.length === 0) return false;
34
- return value.every((entry) => typeof entry === "object" && entry !== null && typeof entry.runKey === "string" && typeof entry.stage === "string");
35
- }
36
- function createWorkflowFinishedRenderer() {
37
- return [WORKFLOW_FINISHED_MESSAGE, (message, _options, theme) => {
38
- const content = typeof message.content === "string" ? message.content : JSON.stringify(message.content);
39
- const runs = message.details?.runs;
40
- if (!isWorkflowFinishedRuns(runs)) return new Text(content, 0, 0);
41
- return new Text(renderWorkflowFinished(runs, theme), 0, 0);
42
- }];
43
- }
44
- //#endregion
45
- export { WORKFLOW_FINISHED_MESSAGE, createWorkflowFinishedRenderer, isWorkflowFinishedRuns, renderWorkflowFinished };
46
-
47
- //# sourceMappingURL=workflowFinishedRenderer.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflowFinishedRenderer.mjs","names":[],"sources":["../../../../../../../../src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.ts"],"sourcesContent":["/**\n * Renders the `workflow-run-finished` custom message: one line per run that\n * reached a terminal state, rather than the host's default block of the\n * `[workflow-run-finished]` label above raw markdown.\n *\n * The same shape `@agimon-ai/doompi-team` gives a slash launch: a status glyph,\n * the run's identity, its outcome, and anything that went wrong indented under\n * it. A finished run is read at a glance in a transcript that is mostly about\n * something else, so it earns a line, not a card.\n *\n * DESIGN PATTERNS:\n * - A message with no `details` renders its content verbatim. That is a\n * transcript entry written before the field existed, and re-deriving it by\n * parsing the summary back out of markdown is exactly the liability\n * `completionNotice.ts` in the team package refused to port\n * - The full summary is still the message's `content`, which is what the model\n * reads and what `deliverAs: 'steer'` carries. This changes what a person\n * sees, never what the agent is told\n */\n\nimport type { ExtensionAPI, Theme } from '@earendil-works/pi-coding-agent';\nimport { type Component, Text } from '@earendil-works/pi-tui';\n\nexport const WORKFLOW_FINISHED_MESSAGE = 'workflow-run-finished';\n\n/** One finished run, as the extension records it on the message. */\nexport interface WorkflowFinishedRun {\n runKey: string;\n workspace: string;\n stage: string;\n workflowId?: string;\n failedJob?: string;\n error?: string;\n}\n\nexport interface WorkflowFinishedDetails {\n /** Kept for readers that already index runs by id; the lines come from `runs`. */\n runIds?: string[];\n runs?: WorkflowFinishedRun[];\n}\n\nconst COMPLETED_STAGE = 'completed';\nconst HELD_STAGES = new Set(['stopped', 'paused', 'cancelled']);\n\nfunction statusIcon(stage: string, theme: Theme): string {\n if (stage === COMPLETED_STAGE) return theme.fg('success', '✔');\n // Held is not failed: the run went nowhere wrong, it just stopped short.\n if (HELD_STAGES.has(stage)) return theme.fg('warning', '■');\n return theme.fg('error', '✖');\n}\n\nfunction runLine(run: WorkflowFinishedRun, theme: Theme): string {\n const separator = ` ${theme.fg('dim', '·')} `;\n const identity = [run.runKey, run.workspace].filter(Boolean).join('/');\n const parts = [theme.fg('dim', identity), theme.fg('dim', run.stage)];\n if (run.workflowId) parts.unshift(theme.bold(run.workflowId));\n let text = `${statusIcon(run.stage, theme)} ${parts.join(separator)}`;\n if (run.failedJob) text += `\\n ${theme.fg('dim', `⎿ failed job: ${run.failedJob}`)}`;\n if (run.error) text += `\\n ${theme.fg('dim', `⎿ ${run.error}`)}`;\n return text;\n}\n\n/**\n * Exported for tests: the rendered string before it is wrapped in a `Text`\n * component, so the formatting is assertable without a terminal.\n */\nexport function renderWorkflowFinished(runs: readonly WorkflowFinishedRun[], theme: Theme): string {\n return runs.map((run) => runLine(run, theme)).join('\\n');\n}\n\nexport function isWorkflowFinishedRuns(value: unknown): value is WorkflowFinishedRun[] {\n if (!Array.isArray(value) || value.length === 0) return false;\n return value.every(\n (entry) =>\n typeof entry === 'object' &&\n entry !== null &&\n typeof (entry as WorkflowFinishedRun).runKey === 'string' &&\n typeof (entry as WorkflowFinishedRun).stage === 'string',\n );\n}\n\nexport function createWorkflowFinishedRenderer(): readonly [...Parameters<ExtensionAPI['registerMessageRenderer']>] {\n return [\n WORKFLOW_FINISHED_MESSAGE,\n (message, _options, theme: Theme): Component => {\n const content = typeof message.content === 'string' ? message.content : JSON.stringify(message.content);\n const runs = (message.details as WorkflowFinishedDetails | undefined)?.runs;\n if (!isWorkflowFinishedRuns(runs)) return new Text(content, 0, 0);\n return new Text(renderWorkflowFinished(runs, theme), 0, 0);\n },\n ];\n}\n"],"mappings":";;AAuBA,MAAa,4BAA4B;AAkBzC,MAAM,kBAAkB;AACxB,MAAM,8BAAc,IAAI,IAAI;CAAC;CAAW;CAAU;AAAW,CAAC;AAE9D,SAAS,WAAW,OAAe,OAAsB;CACvD,IAAI,UAAU,iBAAiB,OAAO,MAAM,GAAG,WAAW,GAAG;CAE7D,IAAI,YAAY,IAAI,KAAK,GAAG,OAAO,MAAM,GAAG,WAAW,GAAG;CAC1D,OAAO,MAAM,GAAG,SAAS,GAAG;AAC9B;AAEA,SAAS,QAAQ,KAA0B,OAAsB;CAC/D,MAAM,YAAY,IAAI,MAAM,GAAG,OAAO,GAAG,EAAE;CAC3C,MAAM,WAAW,CAAC,IAAI,QAAQ,IAAI,SAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;CACrE,MAAM,QAAQ,CAAC,MAAM,GAAG,OAAO,QAAQ,GAAG,MAAM,GAAG,OAAO,IAAI,KAAK,CAAC;CACpE,IAAI,IAAI,YAAY,MAAM,QAAQ,MAAM,KAAK,IAAI,UAAU,CAAC;CAC5D,IAAI,OAAO,GAAG,WAAW,IAAI,OAAO,KAAK,EAAE,GAAG,MAAM,KAAK,SAAS;CAClE,IAAI,IAAI,WAAW,QAAQ,OAAO,MAAM,GAAG,OAAO,kBAAkB,IAAI,WAAW;CACnF,IAAI,IAAI,OAAO,QAAQ,OAAO,MAAM,GAAG,OAAO,MAAM,IAAI,OAAO;CAC/D,OAAO;AACT;;;;;AAMA,SAAgB,uBAAuB,MAAsC,OAAsB;CACjG,OAAO,KAAK,KAAK,QAAQ,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;AACzD;AAEA,SAAgB,uBAAuB,OAAgD;CACrF,IAAI,CAAC,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,GAAG,OAAO;CACxD,OAAO,MAAM,OACV,UACC,OAAO,UAAU,YACjB,UAAU,QACV,OAAQ,MAA8B,WAAW,YACjD,OAAQ,MAA8B,UAAU,QACpD;AACF;AAEA,SAAgB,iCAAoG;CAClH,OAAO,CACL,4BACC,SAAS,UAAU,UAA4B;EAC9C,MAAM,UAAU,OAAO,QAAQ,YAAY,WAAW,QAAQ,UAAU,KAAK,UAAU,QAAQ,OAAO;EACtG,MAAM,OAAQ,QAAQ,SAAiD;EACvE,IAAI,CAAC,uBAAuB,IAAI,GAAG,OAAO,IAAI,KAAK,SAAS,GAAG,CAAC;EAChE,OAAO,IAAI,KAAK,uBAAuB,MAAM,KAAK,GAAG,GAAG,CAAC;CAC3D,CACF;AACF"}
@@ -1,36 +0,0 @@
1
- let _earendil_works_pi_tui = require("@earendil-works/pi-tui");
2
- //#region src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.ts
3
- const LEGACY_WORKFLOW_STEP_MESSAGE = "workflow-step";
4
- function isWorkflowStepMessageDetails(value) {
5
- if (!value || typeof value !== "object" || Array.isArray(value)) return false;
6
- const candidate = value;
7
- return typeof candidate.displayName === "string" && typeof candidate.job === "string" && typeof candidate.step === "string" && (candidate.status === "STARTED" || candidate.status === "FINISHED" || candidate.status === "FAILED") && (candidate.duration === void 0 || typeof candidate.duration === "string");
8
- }
9
- var WorkflowStepMessageLines = class {
10
- details;
11
- theme;
12
- constructor(details, theme) {
13
- this.details = details;
14
- this.theme = theme;
15
- }
16
- render(width) {
17
- const header = `${this.theme.fg("accent", `[${this.details.displayName}]:`)} ${this.details.job}`;
18
- const transition = this.details.duration ? `${this.details.status}::${this.details.duration}::${this.details.step}` : `${this.details.status}::${this.details.step}`;
19
- const colour = this.details.status === "FAILED" ? "error" : this.details.status === "FINISHED" ? "success" : "accent";
20
- return [(0, _earendil_works_pi_tui.truncateToWidth)(header, width), (0, _earendil_works_pi_tui.truncateToWidth)(this.theme.fg(colour, transition), width)];
21
- }
22
- invalidate() {}
23
- };
24
- function renderWorkflowStepMessage(details, fallback, outputPad, theme) {
25
- const box = new _earendil_works_pi_tui.Box(outputPad, 1, (text) => theme.bg("customMessageBg", text));
26
- box.addChild(details ? new WorkflowStepMessageLines(details, theme) : new _earendil_works_pi_tui.Text(fallback, 0, 0));
27
- return box;
28
- }
29
- const workflowStepRenderer = (message, { outputPad }, theme) => {
30
- return renderWorkflowStepMessage(isWorkflowStepMessageDetails(message.details) ? message.details : void 0, typeof message.content === "string" ? message.content : JSON.stringify(message.content), outputPad, theme);
31
- };
32
- //#endregion
33
- exports.LEGACY_WORKFLOW_STEP_MESSAGE = LEGACY_WORKFLOW_STEP_MESSAGE;
34
- exports.workflowStepRenderer = workflowStepRenderer;
35
-
36
- //# sourceMappingURL=workflowStepRenderer.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflowStepRenderer.cjs","names":["truncateToWidth","Box","Text"],"sources":["../../../../../../../../src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.ts"],"sourcesContent":["import type { PiPluginContributions } from '@agimon-ai/doompi-core/pi-extension';\nimport type { Theme } from '@earendil-works/pi-coding-agent';\nimport { Box, type Component, Text, truncateToWidth } from '@earendil-works/pi-tui';\n\nexport const LEGACY_WORKFLOW_STEP_MESSAGE = 'workflow-step';\n\ninterface WorkflowStepMessageDetails {\n displayName: string;\n duration?: string;\n job: string;\n status: 'STARTED' | 'FINISHED' | 'FAILED';\n step: string;\n}\n\nfunction isWorkflowStepMessageDetails(value: unknown): value is WorkflowStepMessageDetails {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return false;\n const candidate = value as Partial<WorkflowStepMessageDetails>;\n return (\n typeof candidate.displayName === 'string' &&\n typeof candidate.job === 'string' &&\n typeof candidate.step === 'string' &&\n (candidate.status === 'STARTED' || candidate.status === 'FINISHED' || candidate.status === 'FAILED') &&\n (candidate.duration === undefined || typeof candidate.duration === 'string')\n );\n}\n\nclass WorkflowStepMessageLines implements Component {\n constructor(\n private readonly details: WorkflowStepMessageDetails,\n private readonly theme: Theme,\n ) {}\n\n render(width: number): string[] {\n const header = `${this.theme.fg('accent', `[${this.details.displayName}]:`)} ${this.details.job}`;\n const transition = this.details.duration\n ? `${this.details.status}::${this.details.duration}::${this.details.step}`\n : `${this.details.status}::${this.details.step}`;\n const colour =\n this.details.status === 'FAILED' ? 'error' : this.details.status === 'FINISHED' ? 'success' : 'accent';\n return [truncateToWidth(header, width), truncateToWidth(this.theme.fg(colour, transition), width)];\n }\n\n invalidate(): void {}\n}\n\nfunction renderWorkflowStepMessage(\n details: WorkflowStepMessageDetails | undefined,\n fallback: string,\n outputPad: number,\n theme: Theme,\n): Component {\n const box = new Box(outputPad, 1, (text) => theme.bg('customMessageBg', text));\n box.addChild(details ? new WorkflowStepMessageLines(details, theme) : new Text(fallback, 0, 0));\n return box;\n}\n\nexport const workflowStepRenderer: NonNullable<PiPluginContributions['messageRenderers']>[number][1] = (\n message,\n { outputPad },\n theme,\n) => {\n const details = isWorkflowStepMessageDetails(message.details) ? message.details : undefined;\n const content = typeof message.content === 'string' ? message.content : JSON.stringify(message.content);\n return renderWorkflowStepMessage(details, content, outputPad, theme);\n};\n"],"mappings":";;AAIA,MAAa,+BAA+B;AAU5C,SAAS,6BAA6B,OAAqD;CACzF,IAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG,OAAO;CACxE,MAAM,YAAY;CAClB,OACE,OAAO,UAAU,gBAAgB,YACjC,OAAO,UAAU,QAAQ,YACzB,OAAO,UAAU,SAAS,aACzB,UAAU,WAAW,aAAa,UAAU,WAAW,cAAc,UAAU,WAAW,cAC1F,UAAU,aAAa,KAAA,KAAa,OAAO,UAAU,aAAa;AAEvE;AAEA,IAAM,2BAAN,MAAoD;CAE/B;CACA;CAFnB,YACE,SACA,OACA;EAFiB,KAAA,UAAA;EACA,KAAA,QAAA;CAChB;CAEH,OAAO,OAAyB;EAC9B,MAAM,SAAS,GAAG,KAAK,MAAM,GAAG,UAAU,IAAI,KAAK,QAAQ,YAAY,GAAG,EAAE,GAAG,KAAK,QAAQ;EAC5F,MAAM,aAAa,KAAK,QAAQ,WAC5B,GAAG,KAAK,QAAQ,OAAO,IAAI,KAAK,QAAQ,SAAS,IAAI,KAAK,QAAQ,SAClE,GAAG,KAAK,QAAQ,OAAO,IAAI,KAAK,QAAQ;EAC5C,MAAM,SACJ,KAAK,QAAQ,WAAW,WAAW,UAAU,KAAK,QAAQ,WAAW,aAAa,YAAY;EAChG,OAAO,EAAA,GAACA,uBAAAA,gBAAAA,CAAgB,QAAQ,KAAK,IAAA,GAAGA,uBAAAA,gBAAAA,CAAgB,KAAK,MAAM,GAAG,QAAQ,UAAU,GAAG,KAAK,CAAC;CACnG;CAEA,aAAmB,CAAC;AACtB;AAEA,SAAS,0BACP,SACA,UACA,WACA,OACW;CACX,MAAM,MAAM,IAAIC,uBAAAA,IAAI,WAAW,IAAI,SAAS,MAAM,GAAG,mBAAmB,IAAI,CAAC;CAC7E,IAAI,SAAS,UAAU,IAAI,yBAAyB,SAAS,KAAK,IAAI,IAAIC,uBAAAA,KAAK,UAAU,GAAG,CAAC,CAAC;CAC9F,OAAO;AACT;AAEA,MAAa,wBACX,SACA,EAAE,aACF,UACG;CAGH,OAAO,0BAFS,6BAA6B,QAAQ,OAAO,IAAI,QAAQ,UAAU,KAAA,GAClE,OAAO,QAAQ,YAAY,WAAW,QAAQ,UAAU,KAAK,UAAU,QAAQ,OAAO,GACnD,WAAW,KAAK;AACrE"}
@@ -1,35 +0,0 @@
1
- import { Box, Text, truncateToWidth } from "@earendil-works/pi-tui";
2
- //#region src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.ts
3
- const LEGACY_WORKFLOW_STEP_MESSAGE = "workflow-step";
4
- function isWorkflowStepMessageDetails(value) {
5
- if (!value || typeof value !== "object" || Array.isArray(value)) return false;
6
- const candidate = value;
7
- return typeof candidate.displayName === "string" && typeof candidate.job === "string" && typeof candidate.step === "string" && (candidate.status === "STARTED" || candidate.status === "FINISHED" || candidate.status === "FAILED") && (candidate.duration === void 0 || typeof candidate.duration === "string");
8
- }
9
- var WorkflowStepMessageLines = class {
10
- details;
11
- theme;
12
- constructor(details, theme) {
13
- this.details = details;
14
- this.theme = theme;
15
- }
16
- render(width) {
17
- const header = `${this.theme.fg("accent", `[${this.details.displayName}]:`)} ${this.details.job}`;
18
- const transition = this.details.duration ? `${this.details.status}::${this.details.duration}::${this.details.step}` : `${this.details.status}::${this.details.step}`;
19
- const colour = this.details.status === "FAILED" ? "error" : this.details.status === "FINISHED" ? "success" : "accent";
20
- return [truncateToWidth(header, width), truncateToWidth(this.theme.fg(colour, transition), width)];
21
- }
22
- invalidate() {}
23
- };
24
- function renderWorkflowStepMessage(details, fallback, outputPad, theme) {
25
- const box = new Box(outputPad, 1, (text) => theme.bg("customMessageBg", text));
26
- box.addChild(details ? new WorkflowStepMessageLines(details, theme) : new Text(fallback, 0, 0));
27
- return box;
28
- }
29
- const workflowStepRenderer = (message, { outputPad }, theme) => {
30
- return renderWorkflowStepMessage(isWorkflowStepMessageDetails(message.details) ? message.details : void 0, typeof message.content === "string" ? message.content : JSON.stringify(message.content), outputPad, theme);
31
- };
32
- //#endregion
33
- export { LEGACY_WORKFLOW_STEP_MESSAGE, workflowStepRenderer };
34
-
35
- //# sourceMappingURL=workflowStepRenderer.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflowStepRenderer.mjs","names":[],"sources":["../../../../../../../../src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.ts"],"sourcesContent":["import type { PiPluginContributions } from '@agimon-ai/doompi-core/pi-extension';\nimport type { Theme } from '@earendil-works/pi-coding-agent';\nimport { Box, type Component, Text, truncateToWidth } from '@earendil-works/pi-tui';\n\nexport const LEGACY_WORKFLOW_STEP_MESSAGE = 'workflow-step';\n\ninterface WorkflowStepMessageDetails {\n displayName: string;\n duration?: string;\n job: string;\n status: 'STARTED' | 'FINISHED' | 'FAILED';\n step: string;\n}\n\nfunction isWorkflowStepMessageDetails(value: unknown): value is WorkflowStepMessageDetails {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return false;\n const candidate = value as Partial<WorkflowStepMessageDetails>;\n return (\n typeof candidate.displayName === 'string' &&\n typeof candidate.job === 'string' &&\n typeof candidate.step === 'string' &&\n (candidate.status === 'STARTED' || candidate.status === 'FINISHED' || candidate.status === 'FAILED') &&\n (candidate.duration === undefined || typeof candidate.duration === 'string')\n );\n}\n\nclass WorkflowStepMessageLines implements Component {\n constructor(\n private readonly details: WorkflowStepMessageDetails,\n private readonly theme: Theme,\n ) {}\n\n render(width: number): string[] {\n const header = `${this.theme.fg('accent', `[${this.details.displayName}]:`)} ${this.details.job}`;\n const transition = this.details.duration\n ? `${this.details.status}::${this.details.duration}::${this.details.step}`\n : `${this.details.status}::${this.details.step}`;\n const colour =\n this.details.status === 'FAILED' ? 'error' : this.details.status === 'FINISHED' ? 'success' : 'accent';\n return [truncateToWidth(header, width), truncateToWidth(this.theme.fg(colour, transition), width)];\n }\n\n invalidate(): void {}\n}\n\nfunction renderWorkflowStepMessage(\n details: WorkflowStepMessageDetails | undefined,\n fallback: string,\n outputPad: number,\n theme: Theme,\n): Component {\n const box = new Box(outputPad, 1, (text) => theme.bg('customMessageBg', text));\n box.addChild(details ? new WorkflowStepMessageLines(details, theme) : new Text(fallback, 0, 0));\n return box;\n}\n\nexport const workflowStepRenderer: NonNullable<PiPluginContributions['messageRenderers']>[number][1] = (\n message,\n { outputPad },\n theme,\n) => {\n const details = isWorkflowStepMessageDetails(message.details) ? message.details : undefined;\n const content = typeof message.content === 'string' ? message.content : JSON.stringify(message.content);\n return renderWorkflowStepMessage(details, content, outputPad, theme);\n};\n"],"mappings":";;AAIA,MAAa,+BAA+B;AAU5C,SAAS,6BAA6B,OAAqD;CACzF,IAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG,OAAO;CACxE,MAAM,YAAY;CAClB,OACE,OAAO,UAAU,gBAAgB,YACjC,OAAO,UAAU,QAAQ,YACzB,OAAO,UAAU,SAAS,aACzB,UAAU,WAAW,aAAa,UAAU,WAAW,cAAc,UAAU,WAAW,cAC1F,UAAU,aAAa,KAAA,KAAa,OAAO,UAAU,aAAa;AAEvE;AAEA,IAAM,2BAAN,MAAoD;CAE/B;CACA;CAFnB,YACE,SACA,OACA;EAFiB,KAAA,UAAA;EACA,KAAA,QAAA;CAChB;CAEH,OAAO,OAAyB;EAC9B,MAAM,SAAS,GAAG,KAAK,MAAM,GAAG,UAAU,IAAI,KAAK,QAAQ,YAAY,GAAG,EAAE,GAAG,KAAK,QAAQ;EAC5F,MAAM,aAAa,KAAK,QAAQ,WAC5B,GAAG,KAAK,QAAQ,OAAO,IAAI,KAAK,QAAQ,SAAS,IAAI,KAAK,QAAQ,SAClE,GAAG,KAAK,QAAQ,OAAO,IAAI,KAAK,QAAQ;EAC5C,MAAM,SACJ,KAAK,QAAQ,WAAW,WAAW,UAAU,KAAK,QAAQ,WAAW,aAAa,YAAY;EAChG,OAAO,CAAC,gBAAgB,QAAQ,KAAK,GAAG,gBAAgB,KAAK,MAAM,GAAG,QAAQ,UAAU,GAAG,KAAK,CAAC;CACnG;CAEA,aAAmB,CAAC;AACtB;AAEA,SAAS,0BACP,SACA,UACA,WACA,OACW;CACX,MAAM,MAAM,IAAI,IAAI,WAAW,IAAI,SAAS,MAAM,GAAG,mBAAmB,IAAI,CAAC;CAC7E,IAAI,SAAS,UAAU,IAAI,yBAAyB,SAAS,KAAK,IAAI,IAAI,KAAK,UAAU,GAAG,CAAC,CAAC;CAC9F,OAAO;AACT;AAEA,MAAa,wBACX,SACA,EAAE,aACF,UACG;CAGH,OAAO,0BAFS,6BAA6B,QAAQ,OAAO,IAAI,QAAQ,UAAU,KAAA,GAClE,OAAO,QAAQ,YAAY,WAAW,QAAQ,UAAU,KAAK,UAAU,QAAQ,OAAO,GACnD,WAAW,KAAK;AACrE"}
@@ -1,7 +0,0 @@
1
- const require_workflowFinishedRenderer = require("./_lib/workflowFinishedRenderer.cjs");
2
- //#region src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.ts
3
- var workflow_finished_cli_default = (0, require("@agimon-ai/doompi-core/pi-extension").defineMessageRenderer)(...require_workflowFinishedRenderer.createWorkflowFinishedRenderer());
4
- //#endregion
5
- exports.default = workflow_finished_cli_default;
6
-
7
- //# sourceMappingURL=workflow-finished.cli.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-finished.cli.cjs","names":["defineMessageRenderer","createWorkflowFinishedRenderer"],"sources":["../../../../../../../src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.ts"],"sourcesContent":["import { defineMessageRenderer } from '@agimon-ai/doompi-core/pi-extension';\n\nimport { createWorkflowFinishedRenderer } from './_lib/workflowFinishedRenderer';\n\nexport default defineMessageRenderer(...createWorkflowFinishedRenderer());\n"],"mappings":";;AAIA,IAAA,iCAAA,gDAAeA,CAAAA,CAAAA,sBAAAA,CAAsB,GAAGC,iCAAAA,+BAA+B,CAAC"}
@@ -1,8 +0,0 @@
1
- import { createWorkflowFinishedRenderer } from "./_lib/workflowFinishedRenderer.mjs";
2
- import { defineMessageRenderer } from "@agimon-ai/doompi-core/pi-extension";
3
- //#region src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.ts
4
- var workflow_finished_cli_default = defineMessageRenderer(...createWorkflowFinishedRenderer());
5
- //#endregion
6
- export { workflow_finished_cli_default as default };
7
-
8
- //# sourceMappingURL=workflow-finished.cli.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-finished.cli.mjs","names":[],"sources":["../../../../../../../src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.ts"],"sourcesContent":["import { defineMessageRenderer } from '@agimon-ai/doompi-core/pi-extension';\n\nimport { createWorkflowFinishedRenderer } from './_lib/workflowFinishedRenderer';\n\nexport default defineMessageRenderer(...createWorkflowFinishedRenderer());\n"],"mappings":";;;AAIA,IAAA,gCAAe,sBAAsB,GAAG,+BAA+B,CAAC"}
@@ -1,7 +0,0 @@
1
- const require_workflowStepRenderer = require("./_lib/workflowStepRenderer.cjs");
2
- //#region src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.ts
3
- var workflow_step_cli_default = (0, require("@agimon-ai/doompi-core/pi-extension").defineMessageRenderer)(require_workflowStepRenderer.LEGACY_WORKFLOW_STEP_MESSAGE, require_workflowStepRenderer.workflowStepRenderer);
4
- //#endregion
5
- exports.default = workflow_step_cli_default;
6
-
7
- //# sourceMappingURL=workflow-step.cli.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-step.cli.cjs","names":["defineMessageRenderer","LEGACY_WORKFLOW_STEP_MESSAGE","workflowStepRenderer"],"sources":["../../../../../../../src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.ts"],"sourcesContent":["import { defineMessageRenderer } from '@agimon-ai/doompi-core/pi-extension';\n\nimport { LEGACY_WORKFLOW_STEP_MESSAGE, workflowStepRenderer } from './_lib/workflowStepRenderer';\n\nexport default defineMessageRenderer(LEGACY_WORKFLOW_STEP_MESSAGE, workflowStepRenderer);\n"],"mappings":";;AAIA,IAAA,6BAAA,gDAAeA,CAAAA,CAAAA,sBAAAA,CAAsBC,6BAAAA,8BAA8BC,6BAAAA,oBAAoB"}
@@ -1,8 +0,0 @@
1
- import { LEGACY_WORKFLOW_STEP_MESSAGE, workflowStepRenderer } from "./_lib/workflowStepRenderer.mjs";
2
- import { defineMessageRenderer } from "@agimon-ai/doompi-core/pi-extension";
3
- //#region src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.ts
4
- var workflow_step_cli_default = defineMessageRenderer(LEGACY_WORKFLOW_STEP_MESSAGE, workflowStepRenderer);
5
- //#endregion
6
- export { workflow_step_cli_default as default };
7
-
8
- //# sourceMappingURL=workflow-step.cli.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-step.cli.mjs","names":[],"sources":["../../../../../../../src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.ts"],"sourcesContent":["import { defineMessageRenderer } from '@agimon-ai/doompi-core/pi-extension';\n\nimport { LEGACY_WORKFLOW_STEP_MESSAGE, workflowStepRenderer } from './_lib/workflowStepRenderer';\n\nexport default defineMessageRenderer(LEGACY_WORKFLOW_STEP_MESSAGE, workflowStepRenderer);\n"],"mappings":";;;AAIA,IAAA,4BAAe,sBAAsB,8BAA8B,oBAAoB"}
@@ -1,330 +0,0 @@
1
- let _agimon_ai_doompi_core_api_contracts = require("@agimon-ai/doompi-core/api-contracts");
2
- let typebox = require("typebox");
3
- //#region src/schemas/apiContracts.ts
4
- const S = typebox.Type.String();
5
- const N = typebox.Type.Number();
6
- const B = typebox.Type.Boolean();
7
- const O = typebox.Type.Optional;
8
- const values = (items) => typebox.Type.Union(items.map((item) => typebox.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 = typebox.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(typebox.Type.Object({
56
- job: S,
57
- step: O(S),
58
- index: O(N),
59
- total: O(N)
60
- })),
61
- jobs: typebox.Type.Array(typebox.Type.Object({
62
- ...Step,
63
- phase: values([
64
- "pre",
65
- "job",
66
- "post"
67
- ]),
68
- index: O(N),
69
- total: O(N),
70
- steps: typebox.Type.Array(typebox.Type.Object(Step))
71
- }))
72
- });
73
- const WorkflowRunsSchema = typebox.Type.Object({ runs: typebox.Type.Array(Run) });
74
- const Artifact = {
75
- path: S,
76
- kind: values(["file", "directory"]),
77
- description: S,
78
- producedBy: typebox.Type.Array(S)
79
- };
80
- const WorkflowCatalogSchema = typebox.Type.Object({
81
- cwd: S,
82
- warning: O(S),
83
- workflows: typebox.Type.Array(typebox.Type.Object({
84
- path: S,
85
- relativePath: S,
86
- name: S,
87
- description: S,
88
- tags: typebox.Type.Array(S),
89
- triggers: typebox.Type.Array(S),
90
- inputs: typebox.Type.Array(typebox.Type.Object({
91
- name: S,
92
- description: O(S),
93
- required: O(B),
94
- default: O(S),
95
- type: O(S),
96
- options: O(typebox.Type.Array(S))
97
- })),
98
- jobs: typebox.Type.Array(typebox.Type.Object({
99
- name: S,
100
- steps: typebox.Type.Array(S)
101
- })),
102
- artifacts: typebox.Type.Array(typebox.Type.Object(Artifact)),
103
- runners: O(typebox.Type.Array(S)),
104
- error: O(S)
105
- }))
106
- });
107
- const Screen = typebox.Type.Object({
108
- lines: typebox.Type.Array(S),
109
- capabilities: typebox.Type.Object({
110
- readable: B,
111
- writable: B,
112
- resizable: B,
113
- reason: O(S)
114
- }),
115
- ended: O(B)
116
- });
117
- const Control = typebox.Type.Object({
118
- held: B,
119
- token: O(S),
120
- reason: O(S)
121
- });
122
- const root = "/runs/{workspace}/{runKey}";
123
- const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.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: typebox.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: typebox.Type.Object({
164
- release: O(B),
165
- token: O(S)
166
- })
167
- },
168
- responses: {
169
- ...(0, _agimon_ai_doompi_core_api_contracts.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: typebox.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: typebox.Type.Object({ error: S })
197
- },
198
- "409": {
199
- description: "Write refused.",
200
- schema: typebox.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: typebox.Type.Object({
216
- token: S,
217
- columns: N,
218
- rows: N
219
- })
220
- },
221
- responses: (0, _agimon_ai_doompi_core_api_contracts.jsonApiResponses)(typebox.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: (0, _agimon_ai_doompi_core_api_contracts.jsonApiResponses)(typebox.Type.Object({ deleted: typebox.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: (0, _agimon_ai_doompi_core_api_contracts.jsonApiResponses)(typebox.Type.Object({
242
- runDir: S,
243
- description: S,
244
- artifacts: typebox.Type.Array(typebox.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
- ...(0, _agimon_ai_doompi_core_api_contracts.jsonApiResponses)(typebox.Type.Union([typebox.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
- exports.WorkflowCatalogSchema = WorkflowCatalogSchema;
326
- exports.WorkflowRunsSchema = WorkflowRunsSchema;
327
- exports.apiContracts = apiContracts;
328
- exports.default = apiContracts;
329
-
330
- //# sourceMappingURL=apiContracts.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apiContracts.cjs","names":["Type","defineApiContract","jsonApiResponses"],"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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"}
@@ -1,53 +0,0 @@
1
- import "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.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apiContracts.d.cts","names":[],"sources":["../../../src/schemas/apiContracts.ts"],"mappings":";;qBA2Ea"}