@agimon-ai/doompi-workflow 0.0.1-alpha.76 → 0.0.1-alpha.78
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.
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/api-contracts.cjs +7 -0
- package/dist/api-contracts.d.cts +2 -0
- package/dist/api-contracts.d.mts +2 -0
- package/dist/api-contracts.mjs +2 -0
- package/dist/extensions/pi.cjs +63 -0
- package/dist/extensions/pi.cjs.map +1 -0
- package/dist/extensions/pi.d.cts +6 -0
- package/dist/extensions/pi.d.cts.map +1 -0
- package/dist/extensions/pi.d.mts +6 -0
- package/dist/extensions/pi.d.mts.map +1 -0
- package/dist/extensions/pi.mjs +58 -0
- package/dist/extensions/pi.mjs.map +1 -0
- package/dist/extensions/server.cjs +96 -0
- package/dist/extensions/server.cjs.map +1 -0
- package/dist/extensions/server.d.cts +5 -0
- package/dist/extensions/server.d.cts.map +1 -0
- package/dist/extensions/server.d.mts +5 -0
- package/dist/extensions/server.d.mts.map +1 -0
- package/dist/extensions/server.mjs +91 -0
- package/dist/extensions/server.mjs.map +1 -0
- package/dist/extensions/web.mjs +3219 -0
- package/dist/extensions/web.mjs.map +1 -0
- package/dist/index.cjs +4 -0
- package/dist/index.d.cts +2 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.mjs +2 -0
- package/dist/src/constants/workflow.cjs +32 -0
- package/dist/src/constants/workflow.cjs.map +1 -0
- package/dist/src/constants/workflow.mjs +21 -0
- package/dist/src/constants/workflow.mjs.map +1 -0
- package/dist/src/extensions/(backend)/_lib/index.server.cjs +12 -0
- package/dist/src/extensions/(backend)/_lib/index.server.cjs.map +1 -0
- package/dist/src/extensions/(backend)/_lib/index.server.mjs +12 -0
- package/dist/src/extensions/(backend)/_lib/index.server.mjs.map +1 -0
- package/dist/src/extensions/(backend)/api/workflow/route.server.cjs +7 -0
- package/dist/src/extensions/(backend)/api/workflow/route.server.cjs.map +1 -0
- package/dist/src/extensions/(backend)/api/workflow/route.server.mjs +8 -0
- package/dist/src/extensions/(backend)/api/workflow/route.server.mjs.map +1 -0
- package/dist/src/extensions/(backend)/channel/workflow-catalog.server.cjs +7 -0
- package/dist/src/extensions/(backend)/channel/workflow-catalog.server.cjs.map +1 -0
- package/dist/src/extensions/(backend)/channel/workflow-catalog.server.mjs +8 -0
- package/dist/src/extensions/(backend)/channel/workflow-catalog.server.mjs.map +1 -0
- package/dist/src/extensions/(backend)/channel/workflows.server.cjs +7 -0
- package/dist/src/extensions/(backend)/channel/workflows.server.cjs.map +1 -0
- package/dist/src/extensions/(backend)/channel/workflows.server.mjs +8 -0
- package/dist/src/extensions/(backend)/channel/workflows.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.cli.cjs +100 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.cli.mjs +100 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.server.cjs +11 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.server.mjs +11 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/index.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/workflowSkillsResource.cjs +12 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/workflowSkillsResource.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/workflowSkillsResource.mjs +12 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/workflowSkillsResource.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/api/workflow/route.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/api/workflow/route.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/api/workflow/route.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/api/workflow/route.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.cli.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.cli.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/workflow-launch.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/resources-discover.cli.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/resources-discover.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/resources-discover.cli.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/resources-discover.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-author-workflow.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-author-workflow.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-author-workflow.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-author-workflow.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-workflow.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-workflow.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-workflow.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-workflow.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-recovery.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-recovery.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-recovery.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-recovery.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-skills.cli.cjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-skills.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-skills.cli.mjs +8 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/workflow-skills.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs +15 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs +16 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs +17 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs +18 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-panel.cli.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-panel.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-panel.cli.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-panel.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-view-close.cli.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-view-close.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-view-close.cli.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/shortcut/workflow-view-close.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/launch-workflow.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/launch-workflow.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/launch-workflow.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/launch-workflow.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/list-workflows.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/list-workflows.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/list-workflows.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/list-workflows.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow-run.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow-run.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow-run.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow-run.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow.cli.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow.cli.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/workflow.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.cli.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.cli.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/workflow.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.cjs +50 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.mjs +47 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.cjs +36 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.mjs +35 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.cjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.mjs +8 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.cjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.mjs +8 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-step.cli.mjs.map +1 -0
- package/dist/src/schemas/apiContracts.cjs +330 -0
- package/dist/src/schemas/apiContracts.cjs.map +1 -0
- package/dist/src/schemas/apiContracts.d.cts +53 -0
- package/dist/src/schemas/apiContracts.d.cts.map +1 -0
- package/dist/src/schemas/apiContracts.d.mts +53 -0
- package/dist/src/schemas/apiContracts.d.mts.map +1 -0
- package/dist/src/schemas/apiContracts.mjs +327 -0
- package/dist/src/schemas/apiContracts.mjs.map +1 -0
- package/dist/src/schemas/workflowPi.cjs +77 -0
- package/dist/src/schemas/workflowPi.cjs.map +1 -0
- package/dist/src/schemas/workflowPi.d.cts +1 -0
- package/dist/src/schemas/workflowPi.d.mts +1 -0
- package/dist/src/schemas/workflowPi.mjs +74 -0
- package/dist/src/schemas/workflowPi.mjs.map +1 -0
- package/dist/src/services/backgroundWork/index.cjs +61 -0
- package/dist/src/services/backgroundWork/index.cjs.map +1 -0
- package/dist/src/services/backgroundWork/index.mjs +61 -0
- package/dist/src/services/backgroundWork/index.mjs.map +1 -0
- package/dist/src/services/piToolBridge/index.cjs +205 -0
- package/dist/src/services/piToolBridge/index.cjs.map +1 -0
- package/dist/src/services/piToolBridge/index.mjs +195 -0
- package/dist/src/services/piToolBridge/index.mjs.map +1 -0
- package/dist/src/services/serverRuntime/index.cjs +387 -0
- package/dist/src/services/serverRuntime/index.cjs.map +1 -0
- package/dist/src/services/serverRuntime/index.mjs +387 -0
- package/dist/src/services/serverRuntime/index.mjs.map +1 -0
- package/dist/src/services/webWorkflowCatalog/index.cjs +53 -0
- package/dist/src/services/webWorkflowCatalog/index.cjs.map +1 -0
- package/dist/src/services/webWorkflowCatalog/index.mjs +52 -0
- package/dist/src/services/webWorkflowCatalog/index.mjs.map +1 -0
- package/dist/src/services/workflowCatalogChannel/index.cjs +74 -0
- package/dist/src/services/workflowCatalogChannel/index.cjs.map +1 -0
- package/dist/src/services/workflowCatalogChannel/index.mjs +74 -0
- package/dist/src/services/workflowCatalogChannel/index.mjs.map +1 -0
- package/dist/src/services/workflowCatalogDeps/index.cjs +25 -0
- package/dist/src/services/workflowCatalogDeps/index.cjs.map +1 -0
- package/dist/src/services/workflowCatalogDeps/index.mjs +25 -0
- package/dist/src/services/workflowCatalogDeps/index.mjs.map +1 -0
- package/dist/src/services/workflowExecution/index.cjs +205 -0
- package/dist/src/services/workflowExecution/index.cjs.map +1 -0
- package/dist/src/services/workflowExecution/index.d.cts +6 -0
- package/dist/src/services/workflowExecution/index.d.mts +6 -0
- package/dist/src/services/workflowExecution/index.mjs +200 -0
- package/dist/src/services/workflowExecution/index.mjs.map +1 -0
- package/dist/src/services/workflowFence/index.cjs +170 -0
- package/dist/src/services/workflowFence/index.cjs.map +1 -0
- package/dist/src/services/workflowFence/index.mjs +166 -0
- package/dist/src/services/workflowFence/index.mjs.map +1 -0
- package/dist/src/services/workflowHubApi/index.cjs +415 -0
- package/dist/src/services/workflowHubApi/index.cjs.map +1 -0
- package/dist/src/services/workflowHubApi/index.mjs +411 -0
- package/dist/src/services/workflowHubApi/index.mjs.map +1 -0
- package/dist/src/services/workflowLaunchCommand/index.cjs +121 -0
- package/dist/src/services/workflowLaunchCommand/index.cjs.map +1 -0
- package/dist/src/services/workflowLaunchCommand/index.d.cts +52 -0
- package/dist/src/services/workflowLaunchCommand/index.d.cts.map +1 -0
- package/dist/src/services/workflowLaunchCommand/index.d.mts +52 -0
- package/dist/src/services/workflowLaunchCommand/index.d.mts.map +1 -0
- package/dist/src/services/workflowLaunchCommand/index.mjs +118 -0
- package/dist/src/services/workflowLaunchCommand/index.mjs.map +1 -0
- package/dist/src/services/workflowLauncher/index.cjs +181 -0
- package/dist/src/services/workflowLauncher/index.cjs.map +1 -0
- package/dist/src/services/workflowLauncher/index.mjs +177 -0
- package/dist/src/services/workflowLauncher/index.mjs.map +1 -0
- package/dist/src/services/workflowNarration/index.cjs +19 -0
- package/dist/src/services/workflowNarration/index.cjs.map +1 -0
- package/dist/src/services/workflowNarration/index.mjs +19 -0
- package/dist/src/services/workflowNarration/index.mjs.map +1 -0
- package/dist/src/services/workflowResource/index.cjs +27 -0
- package/dist/src/services/workflowResource/index.cjs.map +1 -0
- package/dist/src/services/workflowResource/index.mjs +24 -0
- package/dist/src/services/workflowResource/index.mjs.map +1 -0
- package/dist/src/services/workflowRuns/index.cjs +333 -0
- package/dist/src/services/workflowRuns/index.cjs.map +1 -0
- package/dist/src/services/workflowRuns/index.mjs +319 -0
- package/dist/src/services/workflowRuns/index.mjs.map +1 -0
- package/dist/src/services/workflowTerminal/index.cjs +69 -0
- package/dist/src/services/workflowTerminal/index.cjs.map +1 -0
- package/dist/src/services/workflowTerminal/index.mjs +69 -0
- package/dist/src/services/workflowTerminal/index.mjs.map +1 -0
- package/dist/src/services/workflowTools/index.cjs +221 -0
- package/dist/src/services/workflowTools/index.cjs.map +1 -0
- package/dist/src/services/workflowTools/index.mjs +221 -0
- package/dist/src/services/workflowTools/index.mjs.map +1 -0
- package/dist/src/services/workflowWatcher/index.cjs +78 -0
- package/dist/src/services/workflowWatcher/index.cjs.map +1 -0
- package/dist/src/services/workflowWatcher/index.mjs +74 -0
- package/dist/src/services/workflowWatcher/index.mjs.map +1 -0
- package/dist/src/services/workflowsHubChannel/index.cjs +58 -0
- package/dist/src/services/workflowsHubChannel/index.cjs.map +1 -0
- package/dist/src/services/workflowsHubChannel/index.mjs +58 -0
- package/dist/src/services/workflowsHubChannel/index.mjs.map +1 -0
- package/dist/src/tui/leader.cjs +84 -0
- package/dist/src/tui/leader.cjs.map +1 -0
- package/dist/src/tui/leader.mjs +83 -0
- package/dist/src/tui/leader.mjs.map +1 -0
- package/dist/src/tui/workflow/doomOverlay.cjs +159 -0
- package/dist/src/tui/workflow/doomOverlay.cjs.map +1 -0
- package/dist/src/tui/workflow/doomOverlay.mjs +157 -0
- package/dist/src/tui/workflow/doomOverlay.mjs.map +1 -0
- package/dist/src/tui/workflow/overlayText.cjs +83 -0
- package/dist/src/tui/workflow/overlayText.cjs.map +1 -0
- package/dist/src/tui/workflow/overlayText.mjs +78 -0
- package/dist/src/tui/workflow/overlayText.mjs.map +1 -0
- package/dist/src/tui/workflow/rendering.cjs +22 -0
- package/dist/src/tui/workflow/rendering.cjs.map +1 -0
- package/dist/src/tui/workflow/rendering.mjs +20 -0
- package/dist/src/tui/workflow/rendering.mjs.map +1 -0
- package/dist/src/tui/workflow/workflowCatalog.cjs +336 -0
- package/dist/src/tui/workflow/workflowCatalog.cjs.map +1 -0
- package/dist/src/tui/workflow/workflowCatalog.mjs +333 -0
- package/dist/src/tui/workflow/workflowCatalog.mjs.map +1 -0
- package/dist/src/tui/workflow/workflowFinishedMessage.cjs +50 -0
- package/dist/src/tui/workflow/workflowFinishedMessage.cjs.map +1 -0
- package/dist/src/tui/workflow/workflowFinishedMessage.mjs +47 -0
- package/dist/src/tui/workflow/workflowFinishedMessage.mjs.map +1 -0
- package/dist/src/tui/workflow/workflowInspector.cjs +276 -0
- package/dist/src/tui/workflow/workflowInspector.cjs.map +1 -0
- package/dist/src/tui/workflow/workflowInspector.mjs +276 -0
- package/dist/src/tui/workflow/workflowInspector.mjs.map +1 -0
- package/dist/src/tui/workflow/workflowOverlay.cjs +126 -0
- package/dist/src/tui/workflow/workflowOverlay.cjs.map +1 -0
- package/dist/src/tui/workflow/workflowOverlay.mjs +125 -0
- package/dist/src/tui/workflow/workflowOverlay.mjs.map +1 -0
- package/dist/src/tui/workflow/workflowPicker.cjs +138 -0
- package/dist/src/tui/workflow/workflowPicker.cjs.map +1 -0
- package/dist/src/tui/workflow/workflowPicker.mjs +136 -0
- package/dist/src/tui/workflow/workflowPicker.mjs.map +1 -0
- package/dist/src/tui/workflow/workflowProgressOverlay.cjs +197 -0
- package/dist/src/tui/workflow/workflowProgressOverlay.cjs.map +1 -0
- package/dist/src/tui/workflow/workflowProgressOverlay.mjs +192 -0
- package/dist/src/tui/workflow/workflowProgressOverlay.mjs.map +1 -0
- package/dist/src/tui/workflow/workflowPrompt.cjs +142 -0
- package/dist/src/tui/workflow/workflowPrompt.cjs.map +1 -0
- package/dist/src/tui/workflow/workflowPrompt.mjs +139 -0
- package/dist/src/tui/workflow/workflowPrompt.mjs.map +1 -0
- package/dist/src/tui/workflow/workflowRunPanel.cjs +95 -0
- package/dist/src/tui/workflow/workflowRunPanel.cjs.map +1 -0
- package/dist/src/tui/workflow/workflowRunPanel.mjs +94 -0
- package/dist/src/tui/workflow/workflowRunPanel.mjs.map +1 -0
- package/dist/src/tui/workflow/workflowStatusRow.cjs +20 -0
- package/dist/src/tui/workflow/workflowStatusRow.cjs.map +1 -0
- package/dist/src/tui/workflow/workflowStatusRow.mjs +20 -0
- package/dist/src/tui/workflow/workflowStatusRow.mjs.map +1 -0
- package/dist/src/tui/workflow/workflowStepMessage.cjs +32 -0
- package/dist/src/tui/workflow/workflowStepMessage.cjs.map +1 -0
- package/dist/src/tui/workflow/workflowStepMessage.mjs +31 -0
- package/dist/src/tui/workflow/workflowStepMessage.mjs.map +1 -0
- package/dist/src/tui/workflow/workflowToolRender.cjs +491 -0
- package/dist/src/tui/workflow/workflowToolRender.cjs.map +1 -0
- package/dist/src/tui/workflow/workflowToolRender.mjs +490 -0
- package/dist/src/tui/workflow/workflowToolRender.mjs.map +1 -0
- package/dist/src/tui/workflowRuntime.cjs +1934 -0
- package/dist/src/tui/workflowRuntime.cjs.map +1 -0
- package/dist/src/tui/workflowRuntime.d.cts +33 -0
- package/dist/src/tui/workflowRuntime.d.cts.map +1 -0
- package/dist/src/tui/workflowRuntime.d.mts +33 -0
- package/dist/src/tui/workflowRuntime.d.mts.map +1 -0
- package/dist/src/tui/workflowRuntime.mjs +1930 -0
- package/dist/src/tui/workflowRuntime.mjs.map +1 -0
- package/dist/src/types/apiRoutes.cjs +82 -0
- package/dist/src/types/apiRoutes.cjs.map +1 -0
- package/dist/src/types/apiRoutes.mjs +80 -0
- package/dist/src/types/apiRoutes.mjs.map +1 -0
- package/dist/src/types/webWorkflowTerminal.cjs +23 -0
- package/dist/src/types/webWorkflowTerminal.cjs.map +1 -0
- package/dist/src/types/webWorkflowTerminal.mjs +22 -0
- package/dist/src/types/webWorkflowTerminal.mjs.map +1 -0
- package/dist/src/types/webWorkflows.cjs +8 -0
- package/dist/src/types/webWorkflows.cjs.map +1 -0
- package/dist/src/types/webWorkflows.mjs +7 -0
- package/dist/src/types/webWorkflows.mjs.map +1 -0
- package/package.json +8 -8
package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowFinishedRenderer.mjs
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.cjs
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
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
|
package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
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"}
|
package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.mjs
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
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
|
package/dist/src/extensions/workspaces/sessions/(frontend)/message/_lib/workflowStepRenderer.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
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
|
package/dist/src/extensions/workspaces/sessions/(frontend)/message/workflow-finished.cli.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,330 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiContracts.d.cts","names":[],"sources":["../../../src/schemas/apiContracts.ts"],"mappings":";;qBA2Ea"}
|