@jiggai/kitchen 0.3.33 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +4 -0
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.js +4 -4
- package/.next/required-server-files.json +4 -4
- package/.next/routes-manifest.json +24 -0
- package/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/.next/server/app/_global-error/page.js +2 -2
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error.html +2 -2
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +5 -5
- package/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/agents/[agentId]/page/build-manifest.json +3 -3
- package/.next/server/app/agents/[agentId]/page.js +2 -2
- package/.next/server/app/agents/[agentId]/page.js.nft.json +1 -1
- package/.next/server/app/agents/[agentId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/[id]/route.js +1 -1
- package/.next/server/app/api/agents/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/add/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/file/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/files/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/route.js +1 -1
- package/.next/server/app/api/agents/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/skills/install/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/update/route.js.nft.json +1 -1
- package/.next/server/app/api/channels/bindings/route.js +1 -1
- package/.next/server/app/api/channels/bindings/route.js.nft.json +1 -1
- package/.next/server/app/api/cron/bulk/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/cron/bulk/route/build-manifest.json +11 -0
- package/.next/server/app/api/cron/bulk/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/cron/bulk/route.js +6 -0
- package/.next/server/app/api/cron/bulk/route.js.map +5 -0
- package/.next/server/app/api/cron/bulk/route.js.nft.json +1 -0
- package/.next/server/app/api/cron/bulk/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/cron/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/cron/jobs/route.js.nft.json +1 -1
- package/.next/server/app/api/cron/recipe-installed/route.js.nft.json +1 -1
- package/.next/server/app/api/cron/worker/route.js +2 -1
- package/.next/server/app/api/cron/worker/route.js.nft.json +1 -1
- package/.next/server/app/api/goals/[id]/promote/route.js.nft.json +1 -1
- package/.next/server/app/api/goals/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/goals/route.js.nft.json +1 -1
- package/.next/server/app/api/ids/check/route.js.nft.json +1 -1
- package/.next/server/app/api/manifest/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/manifest/route/build-manifest.json +11 -0
- package/.next/server/app/api/manifest/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/manifest/route.js +6 -0
- package/.next/server/app/api/manifest/route.js.map +5 -0
- package/.next/server/app/api/manifest/route.js.nft.json +1 -0
- package/.next/server/app/api/manifest/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/marketplace/recipes/[slug]/route.js +1 -1
- package/.next/server/app/api/marketplace/recipes/[slug]/route.js.nft.json +1 -1
- package/.next/server/app/api/marketplace/recipes/route.js +1 -1
- package/.next/server/app/api/marketplace/recipes/route.js.nft.json +1 -1
- package/.next/server/app/api/plugins/[pluginId]/[...path]/route.js +2 -2
- package/.next/server/app/api/plugins/[pluginId]/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/plugins/[pluginId]/tabs/[tabId]/route.js +1 -1
- package/.next/server/app/api/plugins/[pluginId]/tabs/[tabId]/route.js.nft.json +1 -1
- package/.next/server/app/api/plugins/route.js +1 -1
- package/.next/server/app/api/plugins/route.js.nft.json +1 -1
- package/.next/server/app/api/plugins/test/route.js +1 -1
- package/.next/server/app/api/plugins/test/route.js.nft.json +1 -1
- package/.next/server/app/api/recipes/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/recipes/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/recipes/custom-team/route.js.nft.json +1 -1
- package/.next/server/app/api/recipes/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/recipes/local-agent-catalog/route.js.nft.json +1 -1
- package/.next/server/app/api/recipes/route.js +1 -1
- package/.next/server/app/api/recipes/route.js.nft.json +1 -1
- package/.next/server/app/api/recipes/team-agents/route.js.nft.json +1 -1
- package/.next/server/app/api/scaffold/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/cron-installation/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/model-options/route.js +1 -1
- package/.next/server/app/api/settings/model-options/route.js.nft.json +1 -1
- package/.next/server/app/api/swarms/start/route.js +1 -1
- package/.next/server/app/api/swarms/start/route.js.nft.json +1 -1
- package/.next/server/app/api/swarms/status/route.js +1 -1
- package/.next/server/app/api/swarms/status/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/[teamId]/media-providers/route.js +1 -1
- package/.next/server/app/api/teams/[teamId]/media-providers/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/[teamId]/tickets/assign/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/[teamId]/tickets/assignees/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/[teamId]/tickets/comment/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/[teamId]/tickets/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/[teamId]/tickets/move/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/[teamId]/tickets/move-to-goals/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/file/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/files/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/list/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/teams/list/route/build-manifest.json +11 -0
- package/.next/server/app/api/teams/list/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/teams/list/route.js +6 -0
- package/.next/server/app/api/teams/list/route.js.map +5 -0
- package/.next/server/app/api/teams/list/route.js.nft.json +1 -0
- package/.next/server/app/api/teams/list/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/teams/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/meta/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/orchestrator/route.js +1 -1
- package/.next/server/app/api/teams/orchestrator/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/remove-team/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/skills/install/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/workflow-deliverables/file/route.js +1 -1
- package/.next/server/app/api/teams/workflow-deliverables/file/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/workflow-deliverables/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/workflow-runs/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/workflow-templates/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/workflow-triggers/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/teams/workflow-triggers/route/build-manifest.json +11 -0
- package/.next/server/app/api/teams/workflow-triggers/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/teams/workflow-triggers/route.js +6 -0
- package/.next/server/app/api/teams/workflow-triggers/route.js.map +5 -0
- package/.next/server/app/api/teams/workflow-triggers/route.js.nft.json +1 -0
- package/.next/server/app/api/teams/workflow-triggers/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/teams/workflows/route.js.nft.json +1 -1
- package/.next/server/app/api/tickets/assign/route.js.nft.json +1 -1
- package/.next/server/app/api/tickets/assignees/route.js.nft.json +1 -1
- package/.next/server/app/api/tickets/move/route.js.nft.json +1 -1
- package/.next/server/app/channels/page/build-manifest.json +3 -3
- package/.next/server/app/channels/page.js +2 -2
- package/.next/server/app/channels/page.js.nft.json +1 -1
- package/.next/server/app/channels/page_client-reference-manifest.js +1 -1
- package/.next/server/app/channels.html +2 -2
- package/.next/server/app/channels.rsc +6 -6
- package/.next/server/app/channels.segments/_full.segment.rsc +6 -6
- package/.next/server/app/channels.segments/_head.segment.rsc +1 -1
- package/.next/server/app/channels.segments/_index.segment.rsc +3 -3
- package/.next/server/app/channels.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/channels.segments/channels/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/channels.segments/channels.segment.rsc +1 -1
- package/.next/server/app/cron-jobs/page/build-manifest.json +3 -3
- package/.next/server/app/cron-jobs/page.js +2 -2
- package/.next/server/app/cron-jobs/page.js.nft.json +1 -1
- package/.next/server/app/cron-jobs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/goals/[id]/page/build-manifest.json +3 -3
- package/.next/server/app/goals/[id]/page.js +2 -2
- package/.next/server/app/goals/[id]/page.js.nft.json +1 -1
- package/.next/server/app/goals/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/goals/new/page/build-manifest.json +3 -3
- package/.next/server/app/goals/new/page.js +2 -2
- package/.next/server/app/goals/new/page.js.nft.json +1 -1
- package/.next/server/app/goals/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/goals/new.html +2 -2
- package/.next/server/app/goals/new.rsc +6 -6
- package/.next/server/app/goals/new.segments/_full.segment.rsc +6 -6
- package/.next/server/app/goals/new.segments/_head.segment.rsc +1 -1
- package/.next/server/app/goals/new.segments/_index.segment.rsc +3 -3
- package/.next/server/app/goals/new.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/goals/new.segments/goals/new/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/goals/new.segments/goals/new.segment.rsc +1 -1
- package/.next/server/app/goals/new.segments/goals.segment.rsc +1 -1
- package/.next/server/app/goals/page/build-manifest.json +3 -3
- package/.next/server/app/goals/page.js +2 -2
- package/.next/server/app/goals/page.js.nft.json +1 -1
- package/.next/server/app/goals/page_client-reference-manifest.js +1 -1
- package/.next/server/app/goals.html +1 -1
- package/.next/server/app/goals.rsc +6 -6
- package/.next/server/app/goals.segments/_full.segment.rsc +6 -6
- package/.next/server/app/goals.segments/_head.segment.rsc +1 -1
- package/.next/server/app/goals.segments/_index.segment.rsc +3 -3
- package/.next/server/app/goals.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/goals.segments/goals/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/goals.segments/goals.segment.rsc +1 -1
- package/.next/server/app/page/build-manifest.json +3 -3
- package/.next/server/app/page.js +4 -4
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/recipes/[id]/page/build-manifest.json +3 -3
- package/.next/server/app/recipes/[id]/page.js +4 -4
- package/.next/server/app/recipes/[id]/page.js.nft.json +1 -1
- package/.next/server/app/recipes/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/recipes/page/build-manifest.json +3 -3
- package/.next/server/app/recipes/page.js +4 -4
- package/.next/server/app/recipes/page.js.nft.json +1 -1
- package/.next/server/app/recipes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/runs/page/build-manifest.json +3 -3
- package/.next/server/app/runs/page.js +5 -7
- package/.next/server/app/runs/page.js.nft.json +1 -1
- package/.next/server/app/runs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page/build-manifest.json +3 -3
- package/.next/server/app/settings/page.js +2 -2
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +6 -6
- package/.next/server/app/settings.segments/_full.segment.rsc +6 -6
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +3 -3
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/teams/[teamId]/deliverables/page/build-manifest.json +3 -3
- package/.next/server/app/teams/[teamId]/deliverables/page.js +5 -5
- package/.next/server/app/teams/[teamId]/deliverables/page.js.nft.json +1 -1
- package/.next/server/app/teams/[teamId]/deliverables/page_client-reference-manifest.js +1 -1
- package/.next/server/app/teams/[teamId]/page/build-manifest.json +3 -3
- package/.next/server/app/teams/[teamId]/page.js +5 -6
- package/.next/server/app/teams/[teamId]/page.js.nft.json +1 -1
- package/.next/server/app/teams/[teamId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page/build-manifest.json +3 -3
- package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page.js +5 -6
- package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page.js.nft.json +1 -1
- package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/teams/[teamId]/runs/page/build-manifest.json +3 -3
- package/.next/server/app/teams/[teamId]/runs/page.js +2 -2
- package/.next/server/app/teams/[teamId]/runs/page.js.nft.json +1 -1
- package/.next/server/app/teams/[teamId]/runs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/teams/[teamId]/tickets/[ticket]/page/build-manifest.json +3 -3
- package/.next/server/app/teams/[teamId]/tickets/[ticket]/page.js +2 -2
- package/.next/server/app/teams/[teamId]/tickets/[ticket]/page.js.nft.json +1 -1
- package/.next/server/app/teams/[teamId]/tickets/[ticket]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/teams/[teamId]/tickets/page/build-manifest.json +3 -3
- package/.next/server/app/teams/[teamId]/tickets/page.js +2 -2
- package/.next/server/app/teams/[teamId]/tickets/page.js.nft.json +1 -1
- package/.next/server/app/teams/[teamId]/tickets/page_client-reference-manifest.js +1 -1
- package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page/build-manifest.json +3 -3
- package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page.js +5 -5
- package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page.js.nft.json +1 -1
- package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/teams/[teamId]/workflows/page/build-manifest.json +3 -3
- package/.next/server/app/teams/[teamId]/workflows/page.js +5 -5
- package/.next/server/app/teams/[teamId]/workflows/page.js.nft.json +1 -1
- package/.next/server/app/teams/[teamId]/workflows/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tickets/[ticket]/page/build-manifest.json +3 -3
- package/.next/server/app/tickets/[ticket]/page.js +2 -2
- package/.next/server/app/tickets/[ticket]/page.js.nft.json +1 -1
- package/.next/server/app/tickets/[ticket]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tickets/page/build-manifest.json +3 -3
- package/.next/server/app/tickets/page.js +2 -2
- package/.next/server/app/tickets/page.js.nft.json +1 -1
- package/.next/server/app/tickets/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +4 -0
- package/.next/server/chunks/[externals]_node:fs_ddf6f167._.js +3 -0
- package/.next/server/chunks/[externals]_node:fs_ddf6f167._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__00a30f40._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__03c5f2a6._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__03c5f2a6._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__04f289da._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__08b4c8f2._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0b2c557c._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0b2c557c._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0f55461f._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1311d7a3._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1480ffda._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__be5f57b2._.js → [root-of-the-server]__17fa6089._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1873f417._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1d4f6506._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1d4f6506._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1f18c0c4._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1f18c0c4._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1f1e62ac._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__20b1f42d._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__21ad9eeb._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__2c207e60._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__2dd1afff._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__3021a250._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__30cd38e9._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__392e585d._.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__3bfad714._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__3d15e850._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__3f648b9b._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__482575d2._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__4898071c._.js +4 -4
- package/.next/server/chunks/[root-of-the-server]__497e7a9d._.js +22 -0
- package/.next/server/chunks/[root-of-the-server]__497e7a9d._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__4ee12514._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__55defc7c._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__74b80ca4._.js → [root-of-the-server]__5792c29e._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__5aa1dc93._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__5c5990a6._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__603cb0fa._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__6131b7e2._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__6131b7e2._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__636919a0._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__653d42f0._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__653d42f0._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__663e79ff._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0883634a._.js → [root-of-the-server]__68a21bb1._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0883634a._.js.map → [root-of-the-server]__68a21bb1._.js.map} +1 -1
- package/.next/server/chunks/[root-of-the-server]__69c065ce._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__6e463e5f._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__6e463e5f._.js.map +1 -0
- package/.next/server/chunks/{[root-of-the-server]__c1b0d50e._.js → [root-of-the-server]__7194dfe2._.js} +3 -3
- package/.next/server/chunks/{[root-of-the-server]__f45ceefb._.js → [root-of-the-server]__7347e39f._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__f45ceefb._.js.map → [root-of-the-server]__7347e39f._.js.map} +1 -1
- package/.next/server/chunks/[root-of-the-server]__74e2a9ba._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__7bdf9f6e._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__7bdf9f6e._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__7e12b9f4._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__87875179._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__17124952._.js → [root-of-the-server]__89f2190c._.js} +3 -3
- package/.next/server/chunks/[root-of-the-server]__8f8e110f._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__91d0cce1._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__91d0cce1._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__937b40e2._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__937b40e2._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__9853b72d._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__9dba20b3._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__9e96d37b._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__aba68368._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__aed4e4f2._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__b6cff26d._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0bea0f71._.js → [root-of-the-server]__b986660c._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0bea0f71._.js.map → [root-of-the-server]__b986660c._.js.map} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__343776df._.js → [root-of-the-server]__bbed0e46._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__c15c5141._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__c50e4bc4._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__cc0860cb._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__cc3ea05b._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__cc3ea05b._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__d302afb4._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__d4a8660e._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__e1432bba._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__e1432bba._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__e478ef0d._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__e9acbabd._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__e9d9d570._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__f408c708._.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__f4cbadf7._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__f5cd81f1._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__f85b5a70._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__f85b5a70._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__f994dc62._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__fb22e719._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__fb22e719._.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_cron_bulk_route_actions_30f8adb9.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_cron_bulk_route_actions_30f8adb9.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_manifest_route_actions_7f7622ff.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_manifest_route_actions_7f7622ff.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_teams_list_route_actions_5aa8c937.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_teams_list_route_actions_5aa8c937.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_teams_workflow-triggers_route_actions_e86e3b38.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_teams_workflow-triggers_route_actions_e86e3b38.js.map +1 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_1fe98a49.js +1 -1
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_1fe98a49.js.map +1 -1
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_3a1b29e4.js +1 -1
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_cb6ddb24.js +13 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_cb6ddb24.js.map +1 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f5680d9e.js +1 -1
- package/.next/server/chunks/node_modules_yaml_dist_49c13b35._.js +1 -1
- package/.next/server/chunks/node_modules_yaml_dist_49c13b35._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__195421b7._.js +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__195421b7._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__2a657095._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__2a657095._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__3b880807._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__3b880807._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__3f55f975._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__3f55f975._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__471bc2e7._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__471bc2e7._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__4d24c088._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__4d24c088._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__6390ce9c._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__6390ce9c._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__7b8cdea5._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__7b8cdea5._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__7d21617d._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__7d21617d._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__8135c9d5._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__8135c9d5._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_next_dist_1038a5b9._.js → [root-of-the-server]__8e8f535b._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_next_dist_1038a5b9._.js.map → [root-of-the-server]__8e8f535b._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__92524828._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__92524828._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__997aa62c._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__997aa62c._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__9db1df87._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__9db1df87._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__9e1ab064._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__9e1ab064._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__a2e3966f._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__a2e3966f._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__af792402._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__af792402._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__b5f65083._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__b5f65083._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__becf14db._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__becf14db._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__c106a298._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__c106a298._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__cb91405c._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__cb91405c._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__f59c3144._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__f59c3144._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__fbe5ff69._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__fbe5ff69._.js.map +1 -1
- package/.next/server/chunks/ssr/_1ee3bd7b._.js +1 -1
- package/.next/server/chunks/ssr/_1ee3bd7b._.js.map +1 -1
- package/.next/server/chunks/ssr/{_deb7a691._.js → _2ab986a4._.js} +2 -2
- package/.next/server/chunks/ssr/_2ab986a4._.js.map +1 -0
- package/.next/server/chunks/ssr/_2d8d7232._.js +1 -1
- package/.next/server/chunks/ssr/_2d8d7232._.js.map +1 -1
- package/.next/server/chunks/ssr/_43a80c61._.js +1 -1
- package/.next/server/chunks/ssr/_43a80c61._.js.map +1 -1
- package/.next/server/chunks/ssr/_641f29bc._.js +3 -0
- package/.next/server/chunks/ssr/_641f29bc._.js.map +1 -0
- package/.next/server/chunks/ssr/_ac993243._.js +3 -0
- package/.next/server/chunks/ssr/_ac993243._.js.map +1 -0
- package/.next/server/chunks/ssr/_f636ce67._.js +3 -0
- package/.next/server/chunks/ssr/_f636ce67._.js.map +1 -0
- package/.next/server/chunks/ssr/b1a17_app_teams_[teamId]_workflows_[workflowId]_workflows-editor-client_tsx_5e714aa2._.js +7 -1
- package/.next/server/chunks/ssr/b1a17_app_teams_[teamId]_workflows_[workflowId]_workflows-editor-client_tsx_5e714aa2._.js.map +1 -1
- package/.next/server/chunks/ssr/{_7f9e89d2._.js → node_modules_next_10fb6ad9._.js} +3 -3
- package/.next/server/chunks/ssr/node_modules_next_10fb6ad9._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_25a30daf._.js +1 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_compiled_bc6b8ddf._.js +1 -1
- package/.next/server/chunks/ssr/node_modules_yaml_dist_18db9ed7._.js +2 -2
- package/.next/server/chunks/ssr/src_13139e3d._.js +1 -1
- package/.next/server/chunks/ssr/src_13139e3d._.js.map +1 -1
- package/.next/server/chunks/ssr/src_2a73b867._.js +1 -1
- package/.next/server/chunks/ssr/src_2a73b867._.js.map +1 -1
- package/.next/server/chunks/ssr/src_2dbb3b7f._.js +1 -1
- package/.next/server/chunks/ssr/src_2dbb3b7f._.js.map +1 -1
- package/.next/server/chunks/ssr/src_417bc4a6._.js +1 -1
- package/.next/server/chunks/ssr/src_417bc4a6._.js.map +1 -1
- package/.next/server/chunks/ssr/src_59477309._.js +1 -1
- package/.next/server/chunks/ssr/src_59477309._.js.map +1 -1
- package/.next/server/chunks/ssr/src_79d55c05._.js +1 -1
- package/.next/server/chunks/ssr/src_79d55c05._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_HomeClient_tsx_f9f7568d._.js +1 -1
- package/.next/server/chunks/ssr/src_app_HomeClient_tsx_f9f7568d._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_agents_[agentId]_agent-editor_tsx_f85bbe65._.js +1 -1
- package/.next/server/chunks/ssr/src_app_agents_[agentId]_agent-editor_tsx_f85bbe65._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_cron-jobs_cron-jobs-client_tsx_ec91a73d._.js +1 -1
- package/.next/server/chunks/ssr/src_app_cron-jobs_cron-jobs-client_tsx_ec91a73d._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_recipes_[id]_RecipeEditor_index_tsx_98393217._.js +1 -1
- package/.next/server/chunks/ssr/src_app_recipes_[id]_RecipeEditor_index_tsx_98393217._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_recipes_recipes-client_tsx_8ed3ca94._.js +1 -1
- package/.next/server/chunks/ssr/src_app_recipes_recipes-client_tsx_8ed3ca94._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_teams_[teamId]_runs_[workflowId]_[runId]_run-detail-client_tsx_56f0cbd7._.js +3 -0
- package/.next/server/chunks/ssr/src_app_teams_[teamId]_runs_[workflowId]_[runId]_run-detail-client_tsx_56f0cbd7._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_teams_[teamId]_workflows_workflows-client_tsx_12742cc9._.js +1 -1
- package/.next/server/chunks/ssr/src_app_teams_[teamId]_workflows_workflows-client_tsx_12742cc9._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_tickets_TicketsBoardClient_tsx_5e156ef3._.js +1 -1
- package/.next/server/chunks/ssr/src_app_tickets_TicketsBoardClient_tsx_5e156ef3._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +2 -2
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/001f840e2d5598af.js +10 -0
- package/.next/static/chunks/212477db59154fa7.js +3 -0
- package/.next/static/chunks/242fee5849d79d1b.js +1 -0
- package/.next/static/chunks/26d8587a145bded7.js +1 -0
- package/.next/static/chunks/{b83c1ca03c3b8c6d.js → 372ac1d07db9969a.js} +1 -1
- package/.next/static/chunks/4a0d27f3023676a5.js +1 -0
- package/.next/static/chunks/4ad57cfc54e20abd.js +1 -0
- package/.next/static/chunks/4e8866ad8f1f6b2b.js +1 -0
- package/.next/static/chunks/7d9e7a36b92578fd.js +1 -0
- package/.next/static/chunks/87f63f654bc046a2.js +3 -0
- package/.next/static/chunks/8aac543d98940eb3.js +2 -0
- package/.next/static/chunks/8acd42df55d57556.js +1 -0
- package/.next/static/chunks/95b7564f2360e762.js +1 -0
- package/.next/static/chunks/9801fc48f532d076.js +1 -0
- package/.next/static/chunks/{d6e1b7307a9274ce.js → 9c627cb11f73ac4c.js} +1 -1
- package/.next/static/chunks/ad652e4b50e1fb17.js +1 -0
- package/.next/static/chunks/aff32612e6b9d901.js +1 -0
- package/.next/static/chunks/c6c561355e97baa8.js +7 -0
- package/.next/static/chunks/d4c855575c079ffc.js +3 -0
- package/.next/static/chunks/d593ea5e91e81b45.js +1 -0
- package/.next/static/chunks/{87879d67a1601ee0.js → e0984ec981f01c0d.js} +1 -1
- package/.next/static/chunks/f5039461b97678c7.js +1 -0
- package/.next/static/chunks/f51763a2aea0a4b6.js +1 -0
- package/.next/static/chunks/f7f157ba542e1ae5.js +1 -0
- package/.next/static/chunks/fb008837ba324b34.css +3 -0
- package/.next/static/chunks/{turbopack-dbf3078dbf5863bd.js → turbopack-bdd9478663f034d6.js} +1 -1
- package/LICENSE +192 -0
- package/README.md +19 -5
- package/openclaw/index.ts +154 -5
- package/openclaw.plugin.json +2 -8
- package/package.json +5 -2
- package/.next/server/chunks/[root-of-the-server]__18423bab._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__18423bab._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__35ec765d._.js +0 -13
- package/.next/server/chunks/[root-of-the-server]__35ec765d._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__3c92e5aa._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__3c92e5aa._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__813dd669._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__813dd669._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__b457b884._.js +0 -22
- package/.next/server/chunks/[root-of-the-server]__b457b884._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__c5e88cbb._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__c5e88cbb._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__da7df58d._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__da7df58d._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0a5cb3ca._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0a5cb3ca._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__177cec74._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__177cec74._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__4981f370._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__4981f370._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__51e26a01._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__51e26a01._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__6b6b7595._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__6b6b7595._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__8f9585b9._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__8f9585b9._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__9e400864._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__9e400864._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__a6348eaa._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__a6348eaa._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__ad4e8478._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__ad4e8478._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__b5aa14b8._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__b5aa14b8._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__b8998a21._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__b8998a21._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__e9bd9b71._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__e9bd9b71._.js.map +0 -1
- package/.next/server/chunks/ssr/_32beff4b._.js +0 -3
- package/.next/server/chunks/ssr/_32beff4b._.js.map +0 -1
- package/.next/server/chunks/ssr/_7f9e89d2._.js.map +0 -1
- package/.next/server/chunks/ssr/_8538617d._.js +0 -3
- package/.next/server/chunks/ssr/_8538617d._.js.map +0 -1
- package/.next/server/chunks/ssr/_a506fcf8._.js +0 -3
- package/.next/server/chunks/ssr/_a506fcf8._.js.map +0 -1
- package/.next/server/chunks/ssr/_deb7a691._.js.map +0 -1
- package/.next/server/chunks/ssr/d4b1c_modules_next_dist_server_route-modules_app-page_vendored_ssr_react-dom_6ef9314a.js +0 -3
- package/.next/server/chunks/ssr/d4b1c_modules_next_dist_server_route-modules_app-page_vendored_ssr_react-dom_6ef9314a.js.map +0 -1
- package/.next/server/chunks/ssr/src_app_21685f67._.js +0 -3
- package/.next/server/chunks/ssr/src_app_21685f67._.js.map +0 -1
- package/.next/static/chunks/0edab8a24d59a626.js +0 -2
- package/.next/static/chunks/410dc851d0e3033d.js +0 -1
- package/.next/static/chunks/4e38b3f280ced64c.js +0 -1
- package/.next/static/chunks/4f2b8a07ace7e02b.js +0 -1
- package/.next/static/chunks/57ad5290f7e92ffd.css +0 -3
- package/.next/static/chunks/8a919077b73862da.js +0 -1
- package/.next/static/chunks/9906444fb1191bb4.js +0 -1
- package/.next/static/chunks/a625725b4cd85ea3.js +0 -1
- package/.next/static/chunks/ac32974713c57cb3.js +0 -1
- package/.next/static/chunks/bdb7ebd88ea13111.js +0 -1
- package/.next/static/chunks/bfcfbe145220d365.js +0 -1
- package/.next/static/chunks/c0d9f53d91cc65c5.js +0 -10
- package/.next/static/chunks/c0e2f959abc4cc13.js +0 -1
- package/.next/static/chunks/c822e53f79a492c7.js +0 -1
- package/.next/static/chunks/ce6b2024d13b4333.js +0 -1
- package/.next/static/chunks/d13249af74d111cf.js +0 -3
- package/.next/static/chunks/d16f64ca3a8ed208.js +0 -1
- package/.next/static/chunks/d7541a171116ec9c.js +0 -1
- package/.next/static/chunks/e03137fd069b1514.js +0 -1
- package/.next/static/chunks/e10faa9296c8b246.js +0 -1
- package/.next/static/chunks/ec24877f7b7f82c5.js +0 -3
- package/.next/static/chunks/ff3bbb5df40b2cc4.js +0 -1
- /package/.next/server/chunks/{[root-of-the-server]__be5f57b2._.js.map → [root-of-the-server]__17fa6089._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__74b80ca4._.js.map → [root-of-the-server]__5792c29e._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__c1b0d50e._.js.map → [root-of-the-server]__7194dfe2._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__17124952._.js.map → [root-of-the-server]__89f2190c._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__343776df._.js.map → [root-of-the-server]__bbed0e46._.js.map} +0 -0
- /package/.next/static/{F0PhVXEIb3LrF9XQem5EQ → QPNWZUPFu-1zEy4dGcXv5}/_buildManifest.js +0 -0
- /package/.next/static/{F0PhVXEIb3LrF9XQem5EQ → QPNWZUPFu-1zEy4dGcXv5}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{F0PhVXEIb3LrF9XQem5EQ → QPNWZUPFu-1zEy4dGcXv5}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-dom.ts","../../../../src/app/teams/%5BteamId%5D/deliverables/deliverables-client.tsx"],"sourcesContent":["module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactDOM\n","\"use client\";\n\nimport Image from \"next/image\";\nimport Link from \"next/link\";\nimport { useMemo, useState } from \"react\";\nimport { useRouter } from \"next/navigation\";\n\nimport type { WorkflowDeliverable } from \"@/app/api/teams/workflow-deliverables/route\";\nimport { isImageFile } from \"@/lib/media-file-utils\";\nimport { DeliverablePreviewPanel } from \"@/components/DeliverablePreviewPanel\";\n\nfunction deliverableFileUrl(teamId: string, d: WorkflowDeliverable): string {\n return `/api/teams/workflow-deliverables/file?teamId=${encodeURIComponent(teamId)}&runId=${encodeURIComponent(d.runId)}&path=${encodeURIComponent(d.relativePath)}`;\n}\n\nfunction formatBytes(bytes: number) {\n if (bytes === 0) return \"0 B\";\n const k = 1024;\n const sizes = [\"B\", \"KB\", \"MB\", \"GB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + \" \" + sizes[i];\n}\n\nfunction formatDate(dateString: string) {\n try {\n return new Date(dateString).toLocaleString();\n } catch {\n return dateString;\n }\n}\n\nfunction getFileIcon(fileName: string) {\n const ext = fileName.toLowerCase().split(\".\").pop();\n switch (ext) {\n case \"md\":\n return \"📝\";\n case \"json\":\n return \"🔧\";\n case \"txt\":\n return \"📄\";\n case \"html\":\n case \"htm\":\n return \"🌐\";\n case \"css\":\n return \"🎨\";\n case \"js\":\n case \"ts\":\n case \"tsx\":\n case \"jsx\":\n return \"⚙️\";\n case \"png\":\n case \"jpg\":\n case \"jpeg\":\n case \"gif\":\n case \"webp\":\n return \"🖼️\";\n case \"pdf\":\n return \"📋\";\n case \"zip\":\n case \"tar\":\n case \"gz\":\n return \"📦\";\n default:\n return \"📄\";\n }\n}\n\nexport default function DeliverablesClient({\n teamId,\n deliverables,\n workflows,\n}: {\n teamId: string;\n deliverables: WorkflowDeliverable[];\n workflows: Record<string, { id: string; name?: string }>;\n}) {\n const router = useRouter();\n const [workflowFilter, setWorkflowFilter] = useState<string>(\"\");\n const [runFilter, setRunFilter] = useState<string>(\"\");\n const [searchQuery, setSearchQuery] = useState<string>(\"\");\n const [selectedDeliverable, setSelectedDeliverable] = useState<WorkflowDeliverable | null>(null);\n\n const filteredDeliverables = useMemo(() => {\n const needle = searchQuery.trim().toLowerCase();\n return deliverables.filter((d) => {\n if (workflowFilter && d.workflowId !== workflowFilter) return false;\n if (runFilter && d.runId !== runFilter) return false;\n if (!needle) return true;\n \n const wfName = workflows[d.workflowId]?.name ?? \"\";\n return (\n d.fileName.toLowerCase().includes(needle) ||\n d.workflowId.toLowerCase().includes(needle) ||\n d.runId.toLowerCase().includes(needle) ||\n wfName.toLowerCase().includes(needle) ||\n (d.contentPreview && d.contentPreview.toLowerCase().includes(needle))\n );\n });\n }, [deliverables, searchQuery, workflowFilter, runFilter, workflows]);\n\n const workflowOptions = useMemo(() => {\n const ids = Array.from(new Set(deliverables.map((d) => d.workflowId).filter(Boolean))).sort();\n return ids;\n }, [deliverables]);\n\n const runOptions = useMemo(() => {\n const filtered = workflowFilter \n ? deliverables.filter(d => d.workflowId === workflowFilter)\n : deliverables;\n const ids = Array.from(new Set(filtered.map((d) => d.runId).filter(Boolean))).sort();\n return ids;\n }, [deliverables, workflowFilter]);\n\n const downloadDeliverable = async (deliverable: WorkflowDeliverable) => {\n try {\n if (deliverable.isText && deliverable.contentPreview) {\n await navigator.clipboard.writeText(deliverable.contentPreview);\n alert(\"Content copied to clipboard!\");\n } else {\n // Download binary files via the file API\n const url = deliverableFileUrl(teamId, deliverable);\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = deliverable.fileName;\n document.body.appendChild(a);\n a.click();\n a.remove();\n }\n } catch {\n alert(\"Failed to download file\");\n }\n };\n\n return (\n <div className=\"flex flex-col gap-4\">\n <div className=\"rounded-3xl border border-white/10 bg-black/10 p-4\">\n <div className=\"flex flex-wrap items-end justify-between gap-3\">\n <div className=\"flex flex-wrap items-end gap-3\">\n <label className=\"block\">\n <div className=\"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]\">workflow</div>\n <select\n value={workflowFilter}\n onChange={(e) => {\n setWorkflowFilter(e.target.value || \"\");\n setRunFilter(\"\"); // Reset run filter when workflow changes\n }}\n className=\"mt-1 w-64 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]\"\n >\n <option value=\"\">All workflows</option>\n {workflowOptions.map((id) => (\n <option key={id} value={id}>\n {workflows[id]?.name ? `${workflows[id]?.name} (${id})` : id}\n </option>\n ))}\n </select>\n </label>\n\n <label className=\"block\">\n <div className=\"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]\">run</div>\n <select\n value={runFilter}\n onChange={(e) => setRunFilter(e.target.value || \"\")}\n className=\"mt-1 w-56 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]\"\n >\n <option value=\"\">All runs</option>\n {runOptions.map((id) => (\n <option key={id} value={id}>\n {id}\n </option>\n ))}\n </select>\n </label>\n\n <label className=\"block\">\n <div className=\"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]\">search</div>\n <input\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder=\"filename / content\"\n className=\"mt-1 w-72 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]\"\n />\n </label>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n onClick={() => router.refresh()}\n className=\"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10\"\n >\n Refresh\n </button>\n </div>\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 lg:grid-cols-3\">\n {/* Deliverables List */}\n <div className=\"lg:col-span-2 rounded-3xl border border-white/10 bg-black/10 p-4\">\n <h2 className=\"text-lg font-semibold text-[color:var(--ck-text-primary)] mb-4\">\n Workflow Deliverables\n </h2>\n\n {filteredDeliverables.length > 0 ? (\n <div className=\"space-y-2\">\n {filteredDeliverables.map((deliverable, idx) => {\n const isSelected = selectedDeliverable?.absolutePath === deliverable.absolutePath;\n const wfName = workflows[deliverable.workflowId]?.name || deliverable.workflowId;\n \n return (\n <div\n key={`${deliverable.runId}-${deliverable.relativePath}`}\n className={`cursor-pointer rounded-lg border p-3 transition-colors ${\n isSelected\n ? \"border-white/20 bg-white/10\"\n : \"border-white/5 bg-black/5 hover:bg-white/5\"\n }`}\n onClick={() => setSelectedDeliverable(deliverable)}\n >\n <div className=\"flex items-start justify-between gap-3\">\n {isImageFile(deliverable.fileName) && (\n <div className=\"flex-shrink-0 w-12 h-12 rounded overflow-hidden bg-white/5 border border-white/10\">\n <Image\n src={deliverableFileUrl(teamId, deliverable)}\n alt={deliverable.fileName}\n width={48}\n height={48}\n className=\"w-full h-full object-cover\"\n unoptimized\n />\n </div>\n )}\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-lg\">{getFileIcon(deliverable.fileName)}</span>\n <span className=\"font-medium text-[color:var(--ck-text-primary)] truncate\">\n {deliverable.fileName}\n </span>\n {deliverable.isText && (\n <span className=\"text-xs bg-green-500/20 text-green-400 px-1.5 py-0.5 rounded\">\n TEXT\n </span>\n )}\n </div>\n \n <div className=\"mt-1 text-xs text-[color:var(--ck-text-tertiary)]\">\n <span className=\"font-mono\">{wfName}</span>\n {\" · \"}\n <span className=\"font-mono\">{deliverable.runId}</span>\n </div>\n \n <div className=\"mt-1 text-xs text-[color:var(--ck-text-tertiary)]\">\n {deliverable.relativePath !== deliverable.fileName && (\n <span>{deliverable.relativePath} · </span>\n )}\n {formatBytes(deliverable.size)} · {formatDate(deliverable.mtime)}\n </div>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <button\n onClick={(e) => {\n e.stopPropagation();\n downloadDeliverable(deliverable);\n }}\n className=\"text-xs px-2 py-1 border border-white/10 rounded hover:bg-white/5 text-[color:var(--ck-text-secondary)]\"\n >\n {deliverable.isText ? \"Copy\" : \"Download\"}\n </button>\n <Link\n href={`/teams/${teamId}/runs/${deliverable.workflowId}/${deliverable.runId}`}\n onClick={(e) => e.stopPropagation()}\n className=\"text-xs px-2 py-1 border border-white/10 rounded hover:bg-white/5 text-[color:var(--ck-text-secondary)]\"\n >\n View Run →\n </Link>\n </div>\n </div>\n </div>\n );\n })}\n </div>\n ) : (\n <div className=\"text-center py-8 text-[color:var(--ck-text-secondary)]\">\n <div className=\"text-4xl mb-2\">📋</div>\n <div className=\"text-lg mb-1\">No deliverables found</div>\n <div className=\"text-sm\">\n Workflow runs will create deliverables that appear here when they complete.\n </div>\n </div>\n )}\n\n {filteredDeliverables.length > 0 && (\n <div className=\"mt-4 text-xs text-[color:var(--ck-text-tertiary)]\">\n Showing {filteredDeliverables.length} of {deliverables.length} deliverables.\n </div>\n )}\n </div>\n\n {/* Preview Panel */}\n <div className=\"lg:col-span-1 rounded-3xl border border-white/10 bg-black/10 p-4\">\n <h3 className=\"text-sm font-semibold text-[color:var(--ck-text-primary)] mb-3\">\n Preview\n </h3>\n\n {selectedDeliverable ? (\n <div>\n <div className=\"mb-3 pb-3 border-b border-white/10\">\n <div className=\"flex items-center gap-2 mb-2\">\n <span className=\"text-lg\">{getFileIcon(selectedDeliverable.fileName)}</span>\n <span className=\"font-medium text-[color:var(--ck-text-primary)] text-sm break-all\">\n {selectedDeliverable.fileName}\n </span>\n </div>\n <div className=\"text-xs text-[color:var(--ck-text-tertiary)] space-y-1\">\n <div>Size: {formatBytes(selectedDeliverable.size)}</div>\n <div>Modified: {formatDate(selectedDeliverable.mtime)}</div>\n <div>Path: {selectedDeliverable.relativePath}</div>\n </div>\n </div>\n\n <DeliverablePreviewPanel\n deliverable={selectedDeliverable}\n fileUrl={deliverableFileUrl(teamId, selectedDeliverable)}\n maxMediaHeight=\"500px\"\n onDownload={() => downloadDeliverable(selectedDeliverable)}\n />\n </div>\n ) : (\n <div className=\"text-sm text-[color:var(--ck-text-secondary)] italic\">\n Select a deliverable to preview\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}"],"names":["module","exports","require","vendored","ReactDOM"],"mappings":"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","ignoreList":[0]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[35112,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactDOM},74621,a=>{"use strict";function b(a){return a instanceof Error?a.message:String(a)}a.s(["errorMessage",()=>b])},66063,a=>{"use strict";var b=a.i(87924),c=a.i(35112);function d({open:a,onClose:d,title:e,children:f,error:g,confirmLabel:h,confirmBusyLabel:i,onConfirm:j,confirmDisabled:k,busy:l,confirmButtonClassName:m}){if(!a)return null;let n=l??!1,o=n&&i?i:h,p="confirmation-modal-title";return(0,c.createPortal)((0,b.jsxs)("div",{className:"fixed inset-0 z-[200]",children:[(0,b.jsx)("div",{className:"fixed inset-0 bg-black/60",onClick:d,"aria-hidden":"true"}),(0,b.jsx)("div",{className:"fixed inset-0 overflow-y-auto",role:"dialog","aria-modal":"true","aria-labelledby":p,children:(0,b.jsx)("div",{className:"flex min-h-full items-center justify-center p-4",children:(0,b.jsxs)("div",{className:"w-full max-w-lg rounded-2xl border border-white/10 bg-[color:var(--ck-bg-soft)] p-5 shadow-[var(--ck-shadow-2)]",children:[(0,b.jsx)("h2",{id:p,className:"text-lg font-semibold text-[color:var(--ck-text-primary)]",children:e}),f,g?(0,b.jsx)("div",{className:"mt-4 rounded-lg border border-red-400/30 bg-red-500/10 p-3 text-sm text-red-100",children:g}):null,(0,b.jsxs)("div",{className:"mt-6 flex items-center justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:d,className:"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"Cancel"}),(0,b.jsx)("button",{type:"button",disabled:(k??!1)||n,onClick:j,className:m??"rounded-lg bg-[var(--ck-accent-red)] px-3 py-2 text-sm font-medium text-white shadow-[var(--ck-shadow-1)] transition-colors hover:bg-[var(--ck-accent-red-hover)] disabled:opacity-50",children:o})]})]})})})]}),document.body)}a.s(["ConfirmationModal",()=>d])},88764,a=>{"use strict";var b=a.i(87924),c=a.i(66063);function d({open:a,onClose:d,title:e,entityLabel:f,bodyText:g,onConfirm:h,busy:i,error:j}){return(0,b.jsx)(c.ConfirmationModal,{open:a,onClose:d,title:e,confirmLabel:"Delete",confirmBusyLabel:"Deleting…",onConfirm:h,busy:i,error:j??void 0,children:(0,b.jsxs)("p",{className:"mt-2 text-sm text-[color:var(--ck-text-secondary)]",children:[e," ",(0,b.jsx)("code",{className:"font-mono",children:f}),"? ",g]})})}function e(a){return function(c){let e=c[a.entityLabelKey];return(0,b.jsx)(d,{open:c.open,onClose:c.onClose,title:a.title,entityLabel:e,bodyText:a.bodyText,onConfirm:c.onConfirm,busy:c.busy,error:c.error})}}let f=e({title:"Delete agent",bodyText:"This will remove its workspace/state.",entityLabelKey:"agentId"}),g=e({title:"Delete Team",bodyText:"This will remove the team workspace, agents, and stamped cron jobs.",entityLabelKey:"teamId"}),h=e({title:"Delete recipe",bodyText:"This removes the markdown file from your workspace.",entityLabelKey:"recipeId"}),i=e({title:"Delete cron job",bodyText:"This removes it from the Gateway scheduler. You can recreate it later.",entityLabelKey:"jobLabel"});a.s(["DeleteAgentModal",0,f,"DeleteCronJobModal",0,i,"DeleteRecipeModal",0,h,"DeleteTeamModal",0,g],88764)},32553,a=>{"use strict";var b=a.i(72131);function c(a){let[c,d]=(0,b.useState)(new Set),e=(0,b.useCallback)(a=>{d(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),f=(0,b.useMemo)(()=>a.length>0&&a.every(a=>c.has(a)),[a,c]),g=(0,b.useCallback)(()=>{f?d(new Set):d(new Set(a))},[f,a]),h=(0,b.useCallback)(()=>d(new Set),[]),i=(0,b.useMemo)(()=>a.filter(a=>c.has(a)).length,[a,c]);return{selected:c,toggle:e,allSelected:f,toggleAll:g,clear:h,count:i}}a.s(["useRunSelection",()=>c])},28268,a=>{"use strict";var b=a.i(87924),c=a.i(35112);function d({open:a,onClose:d,title:e,children:f,size:g="md",hideTitle:h=!1}){if(!a)return null;let i="modal-title";return(0,c.createPortal)((0,b.jsxs)("div",{className:"fixed inset-0 z-[200]",children:[(0,b.jsx)("div",{className:"fixed inset-0 bg-black/60",onClick:d,"aria-hidden":"true"}),(0,b.jsx)("div",{className:"fixed inset-0 overflow-y-auto",role:"dialog","aria-modal":"true","aria-labelledby":i,children:(0,b.jsx)("div",{className:"flex min-h-full items-center justify-center p-4",children:(0,b.jsxs)("div",{className:`w-full ${{sm:"max-w-md",md:"max-w-lg",lg:"max-w-2xl",xl:"max-w-4xl",full:"max-w-6xl"}[g]} rounded-2xl border border-white/10 bg-[color:var(--ck-bg-soft)] p-6 shadow-[var(--ck-shadow-2)]`,children:[h?(0,b.jsx)("h2",{id:i,className:"sr-only",children:e}):(0,b.jsx)("h2",{id:i,className:"text-lg font-semibold text-[color:var(--ck-text-primary)] mb-4",children:e}),f]})})})]}),document.body)}a.s(["Modal",()=>d])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_ac993243._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-dom.ts","../../../../src/lib/errors.ts","../../../../src/components/ConfirmationModal.tsx","../../../../src/components/DeleteEntityModal.tsx","../../../../src/components/delete-modals.tsx","../../../../src/hooks/useRunSelection.ts","../../../../src/components/Modal.tsx"],"sourcesContent":["module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactDOM\n","/**\n * Extracts a string message from an unknown error value.\n * Used consistently across API routes and client components.\n */\nexport function errorMessage(e: unknown): string {\n return e instanceof Error ? e.message : String(e);\n}\n","\"use client\";\n\nimport { createPortal } from \"react-dom\";\n\n/** Shared confirmation modal shell: overlay, title, body, optional error, Cancel + Confirm buttons. */\nexport function ConfirmationModal({\n open,\n onClose,\n title,\n children,\n error,\n confirmLabel,\n confirmBusyLabel,\n onConfirm,\n confirmDisabled,\n busy,\n confirmButtonClassName,\n}: {\n open: boolean;\n onClose: () => void;\n title: string;\n children: React.ReactNode;\n /** Optional error message to show above footer */\n error?: string | null;\n confirmLabel: string;\n confirmBusyLabel?: string;\n onConfirm: () => void;\n confirmDisabled?: boolean;\n busy?: boolean;\n /** Override confirm button styles (default: accent red) */\n confirmButtonClassName?: string;\n}) {\n if (!open) return null;\n\n const isDisabled = confirmDisabled ?? false;\n const isBusy = busy ?? false;\n const btnLabel = isBusy && confirmBusyLabel ? confirmBusyLabel : confirmLabel;\n const confirmClass =\n confirmButtonClassName ??\n \"rounded-lg bg-[var(--ck-accent-red)] px-3 py-2 text-sm font-medium text-white shadow-[var(--ck-shadow-1)] transition-colors hover:bg-[var(--ck-accent-red-hover)] disabled:opacity-50\";\n\n const titleId = \"confirmation-modal-title\";\n return createPortal(\n <div className=\"fixed inset-0 z-[200]\">\n <div className=\"fixed inset-0 bg-black/60\" onClick={onClose} aria-hidden=\"true\" />\n <div className=\"fixed inset-0 overflow-y-auto\" role=\"dialog\" aria-modal=\"true\" aria-labelledby={titleId}>\n <div className=\"flex min-h-full items-center justify-center p-4\">\n <div className=\"w-full max-w-lg rounded-2xl border border-white/10 bg-[color:var(--ck-bg-soft)] p-5 shadow-[var(--ck-shadow-2)]\">\n <h2 id={titleId} className=\"text-lg font-semibold text-[color:var(--ck-text-primary)]\">{title}</h2>\n {children}\n\n {error ? (\n <div className=\"mt-4 rounded-lg border border-red-400/30 bg-red-500/10 p-3 text-sm text-red-100\">\n {error}\n </div>\n ) : null}\n\n <div className=\"mt-6 flex items-center justify-end gap-2\">\n <button\n type=\"button\"\n onClick={onClose}\n className=\"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10\"\n >\n Cancel\n </button>\n <button\n type=\"button\"\n disabled={isDisabled || isBusy}\n onClick={onConfirm}\n className={confirmClass}\n >\n {btnLabel}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>,\n document.body\n );\n}\n","\"use client\";\n\nimport { ConfirmationModal } from \"./ConfirmationModal\";\n\n/** Shared delete confirmation modal: title, entity label in code, body text. */\nexport function DeleteEntityModal({\n open,\n onClose,\n title,\n entityLabel,\n bodyText,\n onConfirm,\n busy,\n error,\n}: {\n open: boolean;\n onClose: () => void;\n title: string;\n entityLabel: string;\n bodyText: string;\n onConfirm: () => void;\n busy?: boolean;\n error?: string | null;\n}) {\n return (\n <ConfirmationModal\n open={open}\n onClose={onClose}\n title={title}\n confirmLabel=\"Delete\"\n confirmBusyLabel=\"Deleting…\"\n onConfirm={onConfirm}\n busy={busy}\n error={error ?? undefined}\n >\n <p className=\"mt-2 text-sm text-[color:var(--ck-text-secondary)]\">\n {title} <code className=\"font-mono\">{entityLabel}</code>? {bodyText}\n </p>\n </ConfirmationModal>\n );\n}\n","\"use client\";\n\nimport { DeleteEntityModal } from \"./DeleteEntityModal\";\n\ntype EntityLabelKey = \"agentId\" | \"teamId\" | \"recipeId\" | \"jobLabel\";\n\ntype BaseProps = {\n open: boolean;\n onClose: () => void;\n onConfirm: () => void;\n busy?: boolean;\n error?: string | null;\n};\n\nfunction createDeleteModal<K extends EntityLabelKey>(config: {\n title: string;\n bodyText: string;\n entityLabelKey: K;\n}) {\n return function DeleteModal(props: BaseProps & Record<K, string>) {\n const entityLabel = props[config.entityLabelKey];\n return (\n <DeleteEntityModal\n open={props.open}\n onClose={props.onClose}\n title={config.title}\n entityLabel={entityLabel}\n bodyText={config.bodyText}\n onConfirm={props.onConfirm}\n busy={props.busy}\n error={props.error}\n />\n );\n };\n}\n\nexport const DeleteAgentModal = createDeleteModal({\n title: \"Delete agent\",\n bodyText: \"This will remove its workspace/state.\",\n entityLabelKey: \"agentId\",\n});\n\nexport const DeleteTeamModal = createDeleteModal({\n title: \"Delete Team\",\n bodyText: \"This will remove the team workspace, agents, and stamped cron jobs.\",\n entityLabelKey: \"teamId\",\n});\n\nexport const DeleteRecipeModal = createDeleteModal({\n title: \"Delete recipe\",\n bodyText: \"This removes the markdown file from your workspace.\",\n entityLabelKey: \"recipeId\",\n});\n\nexport const DeleteCronJobModal = createDeleteModal({\n title: \"Delete cron job\",\n bodyText: \"This removes it from the Gateway scheduler. You can recreate it later.\",\n entityLabelKey: \"jobLabel\",\n});\n","\"use client\";\n\nimport { useCallback, useMemo, useState } from \"react\";\n\n/**\n * Multi-select state for run list rows.\n * Tracks selected run IDs and provides toggle/select-all helpers.\n */\nexport function useRunSelection(visibleIds: string[]) {\n const [selected, setSelected] = useState<Set<string>>(new Set());\n\n const toggle = useCallback((id: string) => {\n setSelected((prev) => {\n const next = new Set(prev);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n }, []);\n\n const allSelected = useMemo(\n () => visibleIds.length > 0 && visibleIds.every((id) => selected.has(id)),\n [visibleIds, selected],\n );\n\n const toggleAll = useCallback(() => {\n if (allSelected) {\n setSelected(new Set());\n } else {\n setSelected(new Set(visibleIds));\n }\n }, [allSelected, visibleIds]);\n\n const clear = useCallback(() => setSelected(new Set()), []);\n\n const count = useMemo(\n () => visibleIds.filter((id) => selected.has(id)).length,\n [visibleIds, selected],\n );\n\n return { selected, toggle, allSelected, toggleAll, clear, count };\n}\n","\"use client\";\n\nimport { createPortal } from \"react-dom\";\n\nexport function Modal({\n open,\n onClose,\n title,\n children,\n size = \"md\",\n hideTitle = false,\n}: {\n open: boolean;\n onClose: () => void;\n title: string;\n children: React.ReactNode;\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n hideTitle?: boolean;\n}) {\n if (!open) return null;\n\n const sizeClasses = {\n sm: \"max-w-md\",\n md: \"max-w-lg\",\n lg: \"max-w-2xl\",\n xl: \"max-w-4xl\",\n full: \"max-w-6xl\"\n };\n\n const titleId = \"modal-title\";\n return createPortal(\n <div className=\"fixed inset-0 z-[200]\">\n <div className=\"fixed inset-0 bg-black/60\" onClick={onClose} aria-hidden=\"true\" />\n <div className=\"fixed inset-0 overflow-y-auto\" role=\"dialog\" aria-modal=\"true\" aria-labelledby={titleId}>\n <div className=\"flex min-h-full items-center justify-center p-4\">\n <div className={`w-full ${sizeClasses[size]} rounded-2xl border border-white/10 bg-[color:var(--ck-bg-soft)] p-6 shadow-[var(--ck-shadow-2)]`}>\n {hideTitle ? <h2 id={titleId} className=\"sr-only\">{title}</h2> : <h2 id={titleId} className=\"text-lg font-semibold text-[color:var(--ck-text-primary)] mb-4\">{title}</h2>}\n {children}\n </div>\n </div>\n </div>\n </div>,\n document.body\n );\n}"],"names":["module","exports","require","vendored","ReactDOM"],"mappings":"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","ignoreList":[0]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[35112,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactDOM},66063,a=>{"use strict";var b=a.i(87924),c=a.i(35112);function d({open:a,onClose:d,title:e,children:f,error:g,confirmLabel:h,confirmBusyLabel:i,onConfirm:j,confirmDisabled:k,busy:l,confirmButtonClassName:m}){if(!a)return null;let n=l??!1,o=n&&i?i:h,p="confirmation-modal-title";return(0,c.createPortal)((0,b.jsxs)("div",{className:"fixed inset-0 z-[200]",children:[(0,b.jsx)("div",{className:"fixed inset-0 bg-black/60",onClick:d,"aria-hidden":"true"}),(0,b.jsx)("div",{className:"fixed inset-0 overflow-y-auto",role:"dialog","aria-modal":"true","aria-labelledby":p,children:(0,b.jsx)("div",{className:"flex min-h-full items-center justify-center p-4",children:(0,b.jsxs)("div",{className:"w-full max-w-lg rounded-2xl border border-white/10 bg-[color:var(--ck-bg-soft)] p-5 shadow-[var(--ck-shadow-2)]",children:[(0,b.jsx)("h2",{id:p,className:"text-lg font-semibold text-[color:var(--ck-text-primary)]",children:e}),f,g?(0,b.jsx)("div",{className:"mt-4 rounded-lg border border-red-400/30 bg-red-500/10 p-3 text-sm text-red-100",children:g}):null,(0,b.jsxs)("div",{className:"mt-6 flex items-center justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:d,className:"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"Cancel"}),(0,b.jsx)("button",{type:"button",disabled:(k??!1)||n,onClick:j,className:m??"rounded-lg bg-[var(--ck-accent-red)] px-3 py-2 text-sm font-medium text-white shadow-[var(--ck-shadow-1)] transition-colors hover:bg-[var(--ck-accent-red-hover)] disabled:opacity-50",children:o})]})]})})})]}),document.body)}a.s(["ConfirmationModal",()=>d])},32553,a=>{"use strict";var b=a.i(72131);function c(a){let[c,d]=(0,b.useState)(new Set),e=(0,b.useCallback)(a=>{d(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),f=(0,b.useMemo)(()=>a.length>0&&a.every(a=>c.has(a)),[a,c]),g=(0,b.useCallback)(()=>{f?d(new Set):d(new Set(a))},[f,a]),h=(0,b.useCallback)(()=>d(new Set),[]),i=(0,b.useMemo)(()=>a.filter(a=>c.has(a)).length,[a,c]);return{selected:c,toggle:e,allSelected:f,toggleAll:g,clear:h,count:i}}a.s(["useRunSelection",()=>c])},40700,a=>{"use strict";var b=a.i(87924),c=a.i(38246),d=a.i(72131),e=a.i(50944),f=a.i(32553),g=a.i(66063),h=a.i(51200);function i({teamId:a,initialRuns:i,workflows:j}){let k=(0,e.useRouter)(),[l,m]=(0,d.useState)(""),[n,o]=(0,d.useState)(""),[p,q]=(0,d.useState)(""),[r,s]=(0,d.useState)(!1),[t,u]=(0,d.useState)(!1),[v,w]=(0,d.useState)(null),x=(0,d.useMemo)(()=>{let a=p.trim().toLowerCase();return i.filter(b=>{if(l&&b.workflowId!==l||n&&String(b.status??"")!==n)return!1;if(!a)return!0;let c=j[b.workflowId]?.name??"";return b.runId.toLowerCase().includes(a)||b.workflowId.toLowerCase().includes(a)||c.toLowerCase().includes(a)})},[i,p,n,l,j]),y=(0,d.useMemo)(()=>Array.from(new Set(i.map(a=>a.workflowId).filter(Boolean))).sort(),[i]),z=(0,d.useMemo)(()=>x.map(a=>`${a.workflowId}:${a.runId}`),[x]),{selected:A,toggle:B,allSelected:C,toggleAll:D,clear:E,count:F}=(0,f.useRunSelection)(z),G=async()=>{u(!0),w(null);let b=new Map;for(let a of A){let[c,d]=a.split(":");b.has(c)||b.set(c,[]),b.get(c).push(d)}try{let c=(await Promise.all(Array.from(b.entries()).map(([b,c])=>(0,h.fetchJson)("/api/teams/workflow-runs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({teamId:a,workflowId:b,action:"bulk-delete",runIds:c})})))).filter(a=>!a.ok);if(c.length)throw Error(c.map(a=>a.error).join("; "));E(),s(!1),k.refresh()}catch(a){w(String(a))}finally{u(!1)}};return(0,b.jsxs)("div",{className:"rounded-3xl border border-white/10 bg-black/10 p-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-end justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-3",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"workflow"}),(0,b.jsxs)("select",{value:l,onChange:a=>m((a.target.value||"").trim()),className:"mt-1 w-64 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]",children:[(0,b.jsx)("option",{value:"",children:"All workflows"}),y.map(a=>(0,b.jsx)("option",{value:a,children:j[a]?.name?`${j[a]?.name} (${a})`:a},a))]})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"status"}),(0,b.jsxs)("select",{value:n,onChange:a=>o((a.target.value||"").trim()),className:"mt-1 w-56 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]",children:[(0,b.jsx)("option",{value:"",children:"All"}),(0,b.jsx)("option",{value:"running",children:"running"}),(0,b.jsx)("option",{value:"waiting_for_approval",children:"waiting_for_approval"}),(0,b.jsx)("option",{value:"success",children:"success"}),(0,b.jsx)("option",{value:"error",children:"error"}),(0,b.jsx)("option",{value:"canceled",children:"canceled"})]})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"search"}),(0,b.jsx)("input",{value:p,onChange:a=>q(a.target.value),placeholder:"run id / workflow / name",className:"mt-1 w-72 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]"})]})]}),(0,b.jsx)("div",{className:"flex items-center gap-2",children:(0,b.jsx)("button",{type:"button",onClick:()=>k.refresh(),className:"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"Refresh"})})]}),(0,b.jsx)("div",{className:"mt-4 overflow-x-auto",children:(0,b.jsxs)("table",{className:"min-w-full border-separate border-spacing-0",children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{className:"text-left text-xs uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:[(0,b.jsx)("th",{className:"border-b border-white/10 px-2 py-2 w-8",children:(0,b.jsx)("input",{type:"checkbox",checked:C&&x.length>0,onChange:D,className:"accent-[var(--ck-accent-red)]","aria-label":"Select all runs"})}),(0,b.jsx)("th",{className:"border-b border-white/10 px-2 py-2",children:"workflow"}),(0,b.jsx)("th",{className:"border-b border-white/10 px-2 py-2",children:"status"}),(0,b.jsx)("th",{className:"border-b border-white/10 px-2 py-2",children:"updated"}),(0,b.jsx)("th",{className:"border-b border-white/10 px-2 py-2",children:"run"})]})}),(0,b.jsx)("tbody",{children:x.length?x.map(d=>{let e=j[d.workflowId],f=e?.name?e.name:d.workflowId,g=`${d.workflowId}:${d.runId}`;return(0,b.jsxs)("tr",{className:"text-sm",children:[(0,b.jsx)("td",{className:"border-b border-white/5 px-2 py-2",children:(0,b.jsx)("input",{type:"checkbox",checked:A.has(g),onChange:()=>B(g),className:"accent-[var(--ck-accent-red)]","aria-label":`Select run ${d.runId}`})}),(0,b.jsxs)("td",{className:"border-b border-white/5 px-2 py-2",children:[(0,b.jsx)("div",{className:"text-[color:var(--ck-text-primary)]",children:f}),(0,b.jsx)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)] font-mono",children:d.workflowId})]}),(0,b.jsx)("td",{className:"border-b border-white/5 px-2 py-2",children:(0,b.jsx)("span",{className:"rounded-full border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-secondary)]",children:d.status??"(unknown)"})}),(0,b.jsx)("td",{className:"border-b border-white/5 px-2 py-2 text-xs text-[color:var(--ck-text-secondary)]",children:function(a){if(!a)return"";try{return new Date(a).toLocaleString()}catch{return a}}(d.updatedAt||d.endedAt||d.startedAt)}),(0,b.jsx)("td",{className:"border-b border-white/5 px-2 py-2",children:(0,b.jsx)(c.default,{href:`/teams/${encodeURIComponent(a)}/runs/${encodeURIComponent(d.workflowId)}/${encodeURIComponent(d.runId)}`,className:"font-mono text-sm text-[color:var(--ck-text-primary)] hover:underline",children:d.runId})})]},g)}):(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:5,className:"px-2 py-6 text-sm text-[color:var(--ck-text-secondary)]",children:"No runs found."})})})]})}),(0,b.jsxs)("div",{className:"mt-3 text-xs text-[color:var(--ck-text-tertiary)]",children:["Showing ",x.length," of ",i.length,"."]}),F>0&&(0,b.jsxs)("div",{className:"sticky bottom-4 mt-4 flex items-center justify-between rounded-xl border border-white/10 bg-black/80 backdrop-blur-md px-4 py-3 shadow-lg",children:[(0,b.jsxs)("span",{className:"text-sm text-[color:var(--ck-text-secondary)]",children:[F," run",1!==F?"s":""," selected"]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:E,className:"rounded-lg border border-white/10 bg-white/5 px-3 py-1.5 text-xs font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"Clear"}),(0,b.jsx)("button",{type:"button",onClick:()=>{w(null),s(!0)},className:"rounded-lg bg-[var(--ck-accent-red)] px-3 py-1.5 text-xs font-medium text-white hover:bg-[var(--ck-accent-red-hover)]",children:"Delete selected"})]})]}),(0,b.jsx)(g.ConfirmationModal,{open:r,onClose:()=>{s(!1),w(null)},title:"Delete Workflow Runs",confirmLabel:"Delete Runs",confirmBusyLabel:"Deleting...",onConfirm:G,busy:t,error:v,children:(0,b.jsxs)("p",{className:"mt-3 text-sm text-[color:var(--ck-text-secondary)]",children:["Are you sure you want to permanently delete"," ",(0,b.jsxs)("strong",{className:"text-[color:var(--ck-text-primary)]",children:[F," run",1!==F?"s":""]}),"? This action cannot be undone."]})})]})}a.s(["default",()=>i])},52675,a=>{"use strict";var b=a.i(87924),c=a.i(38246),d=a.i(72131),e=a.i(50944),f=a.i(32553),g=a.i(66063),h=a.i(51200);function i({rows:a}){let i=(0,e.useRouter)(),[j,k]=(0,d.useState)(""),[l,m]=(0,d.useState)(""),[n,o]=(0,d.useState)(""),[p,q]=(0,d.useState)(""),[r,s]=(0,d.useState)(!1),[t,u]=(0,d.useState)(!1),[v,w]=(0,d.useState)(null),x=(0,d.useMemo)(()=>Array.from(new Set(a.map(a=>a.teamId))).sort(),[a]),y=(0,d.useMemo)(()=>Array.from(new Set((j?a.filter(a=>a.teamId===j):a).map(a=>a.workflowId))).sort(),[a,j]),z=(0,d.useMemo)(()=>{let b=p.trim().toLowerCase();return a.filter(a=>(!j||a.teamId===j)&&(!l||a.workflowId===l)&&(!n||String(a.status??"")===n)&&(!b||[a.teamId,a.teamName??"",a.workflowId,a.workflowName??"",a.runId].some(a=>a.toLowerCase().includes(b))))},[p,a,n,j,l]),A=(0,d.useMemo)(()=>z.map(a=>`${a.teamId}:${a.workflowId}:${a.runId}`),[z]),{selected:B,toggle:C,allSelected:D,toggleAll:E,clear:F,count:G}=(0,f.useRunSelection)(A),H=(0,d.useMemo)(()=>{let a=new Map;for(let b of z)a.set(`${b.teamId}:${b.workflowId}:${b.runId}`,b);return a},[z]),I=async()=>{u(!0),w(null);let a=new Map;for(let b of B){let c=H.get(b);if(!c)continue;let d=`${c.teamId}:${c.workflowId}`;a.has(d)||a.set(d,{teamId:c.teamId,workflowId:c.workflowId,runIds:[]}),a.get(d).runIds.push(c.runId)}try{let b=(await Promise.all(Array.from(a.values()).map(a=>(0,h.fetchJson)("/api/teams/workflow-runs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({teamId:a.teamId,workflowId:a.workflowId,action:"bulk-delete",runIds:a.runIds})})))).filter(a=>!a.ok);if(b.length)throw Error(b.map(a=>a.error).join("; "));F(),s(!1),i.refresh()}catch(a){w(String(a))}finally{u(!1)}};return(0,b.jsxs)("div",{className:"rounded-3xl border border-white/10 bg-black/10 p-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-end justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-3",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"team"}),(0,b.jsxs)("select",{value:j,onChange:a=>{k((a.target.value||"").trim()),m("")},className:"mt-1 w-64 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]",children:[(0,b.jsx)("option",{value:"",children:"All teams"}),x.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"workflow"}),(0,b.jsxs)("select",{value:l,onChange:a=>m((a.target.value||"").trim()),className:"mt-1 w-64 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]",children:[(0,b.jsx)("option",{value:"",children:"All workflows"}),y.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"status"}),(0,b.jsxs)("select",{value:n,onChange:a=>o((a.target.value||"").trim()),className:"mt-1 w-56 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]",children:[(0,b.jsx)("option",{value:"",children:"All"}),(0,b.jsx)("option",{value:"running",children:"running"}),(0,b.jsx)("option",{value:"waiting_for_approval",children:"waiting_for_approval"}),(0,b.jsx)("option",{value:"success",children:"success"}),(0,b.jsx)("option",{value:"error",children:"error"}),(0,b.jsx)("option",{value:"canceled",children:"canceled"}),(0,b.jsx)("option",{value:"completed",children:"completed"}),(0,b.jsx)("option",{value:"queued",children:"queued"}),(0,b.jsx)("option",{value:"waiting_workers",children:"waiting_workers"})]})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"search"}),(0,b.jsx)("input",{value:p,onChange:a=>q(a.target.value),placeholder:"team / workflow / run id",className:"mt-1 w-72 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]"})]})]}),(0,b.jsx)("div",{className:"flex items-center gap-2",children:(0,b.jsx)("button",{type:"button",onClick:()=>i.refresh(),className:"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"Refresh"})})]}),(0,b.jsx)("div",{className:"mt-4 overflow-x-auto",children:(0,b.jsxs)("table",{className:"min-w-full border-separate border-spacing-0",children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{className:"text-left text-xs uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:[(0,b.jsx)("th",{className:"border-b border-white/10 px-2 py-2 w-8",children:(0,b.jsx)("input",{type:"checkbox",checked:D&&z.length>0,onChange:E,className:"accent-[var(--ck-accent-red)]","aria-label":"Select all runs"})}),(0,b.jsx)("th",{className:"border-b border-white/10 px-2 py-2",children:"team"}),(0,b.jsx)("th",{className:"border-b border-white/10 px-2 py-2",children:"workflow"}),(0,b.jsx)("th",{className:"border-b border-white/10 px-2 py-2",children:"status"}),(0,b.jsx)("th",{className:"border-b border-white/10 px-2 py-2",children:"updated"}),(0,b.jsx)("th",{className:"border-b border-white/10 px-2 py-2",children:"run"})]})}),(0,b.jsx)("tbody",{children:z.length?z.map(a=>{let d=`${a.teamId}:${a.workflowId}:${a.runId}`;return(0,b.jsxs)("tr",{className:"text-sm",children:[(0,b.jsx)("td",{className:"border-b border-white/5 px-2 py-2",children:(0,b.jsx)("input",{type:"checkbox",checked:B.has(d),onChange:()=>C(d),className:"accent-[var(--ck-accent-red)]","aria-label":`Select run ${a.runId}`})}),(0,b.jsxs)("td",{className:"border-b border-white/5 px-2 py-2",children:[(0,b.jsx)("div",{className:"text-[color:var(--ck-text-primary)]",children:a.teamName||a.teamId}),(0,b.jsx)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)] font-mono",children:a.teamId})]}),(0,b.jsxs)("td",{className:"border-b border-white/5 px-2 py-2",children:[(0,b.jsx)("div",{className:"text-[color:var(--ck-text-primary)]",children:a.workflowName||a.workflowId}),(0,b.jsx)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)] font-mono",children:a.workflowId})]}),(0,b.jsx)("td",{className:"border-b border-white/5 px-2 py-2",children:(0,b.jsx)("span",{className:"rounded-full border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-secondary)]",children:a.status??"(unknown)"})}),(0,b.jsx)("td",{className:"border-b border-white/5 px-2 py-2 text-xs text-[color:var(--ck-text-secondary)]",children:function(a){if(!a)return"";try{return new Date(a).toLocaleString()}catch{return a}}(a.updatedAt||a.endedAt||a.startedAt)}),(0,b.jsx)("td",{className:"border-b border-white/5 px-2 py-2",children:(0,b.jsx)(c.default,{href:`/teams/${encodeURIComponent(a.teamId)}/runs/${encodeURIComponent(a.workflowId)}/${encodeURIComponent(a.runId)}`,className:"font-mono text-sm text-[color:var(--ck-text-primary)] hover:underline",children:a.runId})})]},d)}):(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:6,className:"px-2 py-6 text-sm text-[color:var(--ck-text-secondary)]",children:"No runs found."})})})]})}),(0,b.jsxs)("div",{className:"mt-3 text-xs text-[color:var(--ck-text-tertiary)]",children:["Showing ",z.length," of ",a.length,"."]}),G>0&&(0,b.jsxs)("div",{className:"sticky bottom-4 mt-4 flex items-center justify-between rounded-xl border border-white/10 bg-black/80 backdrop-blur-md px-4 py-3 shadow-lg",children:[(0,b.jsxs)("span",{className:"text-sm text-[color:var(--ck-text-secondary)]",children:[G," run",1!==G?"s":""," selected"]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:F,className:"rounded-lg border border-white/10 bg-white/5 px-3 py-1.5 text-xs font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"Clear"}),(0,b.jsx)("button",{type:"button",onClick:()=>{w(null),s(!0)},className:"rounded-lg bg-[var(--ck-accent-red)] px-3 py-1.5 text-xs font-medium text-white hover:bg-[var(--ck-accent-red-hover)]",children:"Delete selected"})]})]}),(0,b.jsx)(g.ConfirmationModal,{open:r,onClose:()=>{s(!1),w(null)},title:"Delete Workflow Runs",confirmLabel:"Delete Runs",confirmBusyLabel:"Deleting...",onConfirm:I,busy:t,error:v,children:(0,b.jsxs)("p",{className:"mt-3 text-sm text-[color:var(--ck-text-secondary)]",children:["Are you sure you want to permanently delete"," ",(0,b.jsxs)("strong",{className:"text-[color:var(--ck-text-primary)]",children:[G," run",1!==G?"s":""]}),"? This action cannot be undone."]})})]})}a.s(["default",()=>i])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_f636ce67._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-dom.ts","../../../../src/components/ConfirmationModal.tsx","../../../../src/hooks/useRunSelection.ts","../../../../src/app/teams/%5BteamId%5D/runs/runs-client.tsx","../../../../src/app/runs/AllRunsClient.tsx"],"sourcesContent":["module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactDOM\n","\"use client\";\n\nimport { createPortal } from \"react-dom\";\n\n/** Shared confirmation modal shell: overlay, title, body, optional error, Cancel + Confirm buttons. */\nexport function ConfirmationModal({\n open,\n onClose,\n title,\n children,\n error,\n confirmLabel,\n confirmBusyLabel,\n onConfirm,\n confirmDisabled,\n busy,\n confirmButtonClassName,\n}: {\n open: boolean;\n onClose: () => void;\n title: string;\n children: React.ReactNode;\n /** Optional error message to show above footer */\n error?: string | null;\n confirmLabel: string;\n confirmBusyLabel?: string;\n onConfirm: () => void;\n confirmDisabled?: boolean;\n busy?: boolean;\n /** Override confirm button styles (default: accent red) */\n confirmButtonClassName?: string;\n}) {\n if (!open) return null;\n\n const isDisabled = confirmDisabled ?? false;\n const isBusy = busy ?? false;\n const btnLabel = isBusy && confirmBusyLabel ? confirmBusyLabel : confirmLabel;\n const confirmClass =\n confirmButtonClassName ??\n \"rounded-lg bg-[var(--ck-accent-red)] px-3 py-2 text-sm font-medium text-white shadow-[var(--ck-shadow-1)] transition-colors hover:bg-[var(--ck-accent-red-hover)] disabled:opacity-50\";\n\n const titleId = \"confirmation-modal-title\";\n return createPortal(\n <div className=\"fixed inset-0 z-[200]\">\n <div className=\"fixed inset-0 bg-black/60\" onClick={onClose} aria-hidden=\"true\" />\n <div className=\"fixed inset-0 overflow-y-auto\" role=\"dialog\" aria-modal=\"true\" aria-labelledby={titleId}>\n <div className=\"flex min-h-full items-center justify-center p-4\">\n <div className=\"w-full max-w-lg rounded-2xl border border-white/10 bg-[color:var(--ck-bg-soft)] p-5 shadow-[var(--ck-shadow-2)]\">\n <h2 id={titleId} className=\"text-lg font-semibold text-[color:var(--ck-text-primary)]\">{title}</h2>\n {children}\n\n {error ? (\n <div className=\"mt-4 rounded-lg border border-red-400/30 bg-red-500/10 p-3 text-sm text-red-100\">\n {error}\n </div>\n ) : null}\n\n <div className=\"mt-6 flex items-center justify-end gap-2\">\n <button\n type=\"button\"\n onClick={onClose}\n className=\"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10\"\n >\n Cancel\n </button>\n <button\n type=\"button\"\n disabled={isDisabled || isBusy}\n onClick={onConfirm}\n className={confirmClass}\n >\n {btnLabel}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>,\n document.body\n );\n}\n","\"use client\";\n\nimport { useCallback, useMemo, useState } from \"react\";\n\n/**\n * Multi-select state for run list rows.\n * Tracks selected run IDs and provides toggle/select-all helpers.\n */\nexport function useRunSelection(visibleIds: string[]) {\n const [selected, setSelected] = useState<Set<string>>(new Set());\n\n const toggle = useCallback((id: string) => {\n setSelected((prev) => {\n const next = new Set(prev);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n }, []);\n\n const allSelected = useMemo(\n () => visibleIds.length > 0 && visibleIds.every((id) => selected.has(id)),\n [visibleIds, selected],\n );\n\n const toggleAll = useCallback(() => {\n if (allSelected) {\n setSelected(new Set());\n } else {\n setSelected(new Set(visibleIds));\n }\n }, [allSelected, visibleIds]);\n\n const clear = useCallback(() => setSelected(new Set()), []);\n\n const count = useMemo(\n () => visibleIds.filter((id) => selected.has(id)).length,\n [visibleIds, selected],\n );\n\n return { selected, toggle, allSelected, toggleAll, clear, count };\n}\n","\"use client\";\n\nimport Link from \"next/link\";\nimport { useMemo, useState } from \"react\";\nimport { useRouter } from \"next/navigation\";\n\nimport type { WorkflowRunSummary } from \"@/lib/workflows/runs-storage\";\nimport { useRunSelection } from \"@/hooks/useRunSelection\";\nimport { ConfirmationModal } from \"@/components/ConfirmationModal\";\nimport { fetchJson } from \"@/lib/fetch-json\";\n\nfunction fmt(ts?: string) {\n if (!ts) return \"\";\n try {\n return new Date(ts).toLocaleString();\n } catch {\n return ts;\n }\n}\n\nexport default function RunsClient({\n teamId,\n initialRuns,\n workflows,\n}: {\n teamId: string;\n initialRuns: WorkflowRunSummary[];\n workflows: Record<string, { id: string; name?: string }>;\n}) {\n const router = useRouter();\n const [workflowId, setWorkflowId] = useState<string>(\"\");\n const [status, setStatus] = useState<string>(\"\");\n const [q, setQ] = useState<string>(\"\");\n\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [deleteBusy, setDeleteBusy] = useState(false);\n const [deleteError, setDeleteError] = useState<string | null>(null);\n\n const filtered = useMemo(() => {\n const needle = q.trim().toLowerCase();\n return initialRuns.filter((r) => {\n if (workflowId && r.workflowId !== workflowId) return false;\n if (status && String(r.status ?? \"\") !== status) return false;\n if (!needle) return true;\n const wfName = workflows[r.workflowId]?.name ?? \"\";\n return (\n r.runId.toLowerCase().includes(needle) ||\n r.workflowId.toLowerCase().includes(needle) ||\n wfName.toLowerCase().includes(needle)\n );\n });\n }, [initialRuns, q, status, workflowId, workflows]);\n\n const workflowOptions = useMemo(() => {\n const ids = Array.from(new Set(initialRuns.map((r) => r.workflowId).filter(Boolean))).sort();\n return ids;\n }, [initialRuns]);\n\n const visibleIds = useMemo(() => filtered.map((r) => `${r.workflowId}:${r.runId}`), [filtered]);\n const { selected, toggle, allSelected, toggleAll, clear, count } = useRunSelection(visibleIds);\n\n const handleBulkDelete = async () => {\n setDeleteBusy(true);\n setDeleteError(null);\n\n // Group selected runs by workflow for batching\n const groups = new Map<string, string[]>();\n for (const key of selected) {\n const [wfId, runId] = key.split(\":\");\n if (!groups.has(wfId)) groups.set(wfId, []);\n groups.get(wfId)!.push(runId);\n }\n\n try {\n const results = await Promise.all(\n Array.from(groups.entries()).map(([wfId, runIds]) =>\n fetchJson<{ ok: boolean; error?: string }>(\"/api/teams/workflow-runs\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ teamId, workflowId: wfId, action: \"bulk-delete\", runIds }),\n }),\n ),\n );\n const failed = results.filter((r) => !r.ok);\n if (failed.length) throw new Error(failed.map((r) => r.error).join(\"; \"));\n clear();\n setShowDeleteModal(false);\n router.refresh();\n } catch (err) {\n setDeleteError(String(err));\n } finally {\n setDeleteBusy(false);\n }\n };\n\n return (\n <div className=\"rounded-3xl border border-white/10 bg-black/10 p-4\">\n <div className=\"flex flex-wrap items-end justify-between gap-3\">\n <div className=\"flex flex-wrap items-end gap-3\">\n <label className=\"block\">\n <div className=\"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]\">workflow</div>\n <select\n value={workflowId}\n onChange={(e) => setWorkflowId((e.target.value || \"\").trim())}\n className=\"mt-1 w-64 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]\"\n >\n <option value=\"\">All workflows</option>\n {workflowOptions.map((id) => (\n <option key={id} value={id}>\n {workflows[id]?.name ? `${workflows[id]?.name} (${id})` : id}\n </option>\n ))}\n </select>\n </label>\n\n <label className=\"block\">\n <div className=\"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]\">status</div>\n <select\n value={status}\n onChange={(e) => setStatus((e.target.value || \"\").trim())}\n className=\"mt-1 w-56 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]\"\n >\n <option value=\"\">All</option>\n <option value=\"running\">running</option>\n <option value=\"waiting_for_approval\">waiting_for_approval</option>\n <option value=\"success\">success</option>\n <option value=\"error\">error</option>\n <option value=\"canceled\">canceled</option>\n </select>\n </label>\n\n <label className=\"block\">\n <div className=\"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]\">search</div>\n <input\n value={q}\n onChange={(e) => setQ(e.target.value)}\n placeholder=\"run id / workflow / name\"\n className=\"mt-1 w-72 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]\"\n />\n </label>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n onClick={() => router.refresh()}\n className=\"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10\"\n >\n Refresh\n </button>\n </div>\n </div>\n\n <div className=\"mt-4 overflow-x-auto\">\n <table className=\"min-w-full border-separate border-spacing-0\">\n <thead>\n <tr className=\"text-left text-xs uppercase tracking-wide text-[color:var(--ck-text-tertiary)]\">\n <th className=\"border-b border-white/10 px-2 py-2 w-8\">\n <input\n type=\"checkbox\"\n checked={allSelected && filtered.length > 0}\n onChange={toggleAll}\n className=\"accent-[var(--ck-accent-red)]\"\n aria-label=\"Select all runs\"\n />\n </th>\n <th className=\"border-b border-white/10 px-2 py-2\">workflow</th>\n <th className=\"border-b border-white/10 px-2 py-2\">status</th>\n <th className=\"border-b border-white/10 px-2 py-2\">updated</th>\n <th className=\"border-b border-white/10 px-2 py-2\">run</th>\n </tr>\n </thead>\n <tbody>\n {filtered.length ? (\n filtered.map((r) => {\n const wf = workflows[r.workflowId];\n const wfLabel = wf?.name ? wf.name : r.workflowId;\n const key = `${r.workflowId}:${r.runId}`;\n return (\n <tr key={key} className=\"text-sm\">\n <td className=\"border-b border-white/5 px-2 py-2\">\n <input\n type=\"checkbox\"\n checked={selected.has(key)}\n onChange={() => toggle(key)}\n className=\"accent-[var(--ck-accent-red)]\"\n aria-label={`Select run ${r.runId}`}\n />\n </td>\n <td className=\"border-b border-white/5 px-2 py-2\">\n <div className=\"text-[color:var(--ck-text-primary)]\">{wfLabel}</div>\n <div className=\"text-xs text-[color:var(--ck-text-tertiary)] font-mono\">{r.workflowId}</div>\n </td>\n <td className=\"border-b border-white/5 px-2 py-2\">\n <span className=\"rounded-full border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-secondary)]\">\n {r.status ?? \"(unknown)\"}\n </span>\n </td>\n <td className=\"border-b border-white/5 px-2 py-2 text-xs text-[color:var(--ck-text-secondary)]\">\n {fmt(r.updatedAt || r.endedAt || r.startedAt)}\n </td>\n <td className=\"border-b border-white/5 px-2 py-2\">\n <Link\n href={`/teams/${encodeURIComponent(teamId)}/runs/${encodeURIComponent(r.workflowId)}/${encodeURIComponent(r.runId)}`}\n className=\"font-mono text-sm text-[color:var(--ck-text-primary)] hover:underline\"\n >\n {r.runId}\n </Link>\n </td>\n </tr>\n );\n })\n ) : (\n <tr>\n <td colSpan={5} className=\"px-2 py-6 text-sm text-[color:var(--ck-text-secondary)]\">\n No runs found.\n </td>\n </tr>\n )}\n </tbody>\n </table>\n </div>\n\n <div className=\"mt-3 text-xs text-[color:var(--ck-text-tertiary)]\">\n Showing {filtered.length} of {initialRuns.length}.\n </div>\n\n {count > 0 && (\n <div className=\"sticky bottom-4 mt-4 flex items-center justify-between rounded-xl border border-white/10 bg-black/80 backdrop-blur-md px-4 py-3 shadow-lg\">\n <span className=\"text-sm text-[color:var(--ck-text-secondary)]\">\n {count} run{count !== 1 ? \"s\" : \"\"} selected\n </span>\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n onClick={clear}\n className=\"rounded-lg border border-white/10 bg-white/5 px-3 py-1.5 text-xs font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10\"\n >\n Clear\n </button>\n <button\n type=\"button\"\n onClick={() => { setDeleteError(null); setShowDeleteModal(true); }}\n className=\"rounded-lg bg-[var(--ck-accent-red)] px-3 py-1.5 text-xs font-medium text-white hover:bg-[var(--ck-accent-red-hover)]\"\n >\n Delete selected\n </button>\n </div>\n </div>\n )}\n\n <ConfirmationModal\n open={showDeleteModal}\n onClose={() => { setShowDeleteModal(false); setDeleteError(null); }}\n title=\"Delete Workflow Runs\"\n confirmLabel=\"Delete Runs\"\n confirmBusyLabel=\"Deleting...\"\n onConfirm={handleBulkDelete}\n busy={deleteBusy}\n error={deleteError}\n >\n <p className=\"mt-3 text-sm text-[color:var(--ck-text-secondary)]\">\n Are you sure you want to permanently delete{\" \"}\n <strong className=\"text-[color:var(--ck-text-primary)]\">{count} run{count !== 1 ? \"s\" : \"\"}</strong>?\n This action cannot be undone.\n </p>\n </ConfirmationModal>\n </div>\n );\n}\n","\"use client\";\n\nimport Link from \"next/link\";\nimport { useMemo, useState } from \"react\";\nimport { useRouter } from \"next/navigation\";\nimport { useRunSelection } from \"@/hooks/useRunSelection\";\nimport { ConfirmationModal } from \"@/components/ConfirmationModal\";\nimport { fetchJson } from \"@/lib/fetch-json\";\n\nexport type AllRunsRow = {\n teamId: string;\n teamName?: string | null;\n workflowId: string;\n workflowName?: string;\n runId: string;\n status?: string;\n startedAt?: string;\n endedAt?: string;\n updatedAt?: string;\n};\n\nfunction fmt(ts?: string) {\n if (!ts) return \"\";\n try {\n return new Date(ts).toLocaleString();\n } catch {\n return ts;\n }\n}\n\nexport default function AllRunsClient({ rows }: { rows: AllRunsRow[] }) {\n const router = useRouter();\n const [teamId, setTeamId] = useState<string>(\"\");\n const [workflowId, setWorkflowId] = useState<string>(\"\");\n const [status, setStatus] = useState<string>(\"\");\n const [q, setQ] = useState<string>(\"\");\n\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [deleteBusy, setDeleteBusy] = useState(false);\n const [deleteError, setDeleteError] = useState<string | null>(null);\n\n const teamOptions = useMemo(() => {\n return Array.from(new Set(rows.map((r) => r.teamId))).sort();\n }, [rows]);\n\n const workflowOptions = useMemo(() => {\n const filteredByTeam = teamId ? rows.filter((r) => r.teamId === teamId) : rows;\n return Array.from(new Set(filteredByTeam.map((r) => r.workflowId))).sort();\n }, [rows, teamId]);\n\n const filtered = useMemo(() => {\n const needle = q.trim().toLowerCase();\n return rows.filter((r) => {\n if (teamId && r.teamId !== teamId) return false;\n if (workflowId && r.workflowId !== workflowId) return false;\n if (status && String(r.status ?? \"\") !== status) return false;\n if (!needle) return true;\n const parts = [r.teamId, r.teamName ?? \"\", r.workflowId, r.workflowName ?? \"\", r.runId];\n return parts.some((p) => p.toLowerCase().includes(needle));\n });\n }, [q, rows, status, teamId, workflowId]);\n\n const visibleIds = useMemo(() => filtered.map((r) => `${r.teamId}:${r.workflowId}:${r.runId}`), [filtered]);\n const { selected, toggle, allSelected, toggleAll, clear, count } = useRunSelection(visibleIds);\n\n const runsByKey = useMemo(() => {\n const map = new Map<string, AllRunsRow>();\n for (const r of filtered) map.set(`${r.teamId}:${r.workflowId}:${r.runId}`, r);\n return map;\n }, [filtered]);\n\n const handleBulkDelete = async () => {\n setDeleteBusy(true);\n setDeleteError(null);\n\n // Group selected runs by team+workflow for batching\n const groups = new Map<string, { teamId: string; workflowId: string; runIds: string[] }>();\n for (const key of selected) {\n const row = runsByKey.get(key);\n if (!row) continue;\n const gk = `${row.teamId}:${row.workflowId}`;\n if (!groups.has(gk)) groups.set(gk, { teamId: row.teamId, workflowId: row.workflowId, runIds: [] });\n groups.get(gk)!.runIds.push(row.runId);\n }\n\n try {\n const results = await Promise.all(\n Array.from(groups.values()).map((g) =>\n fetchJson<{ ok: boolean; error?: string }>(\"/api/teams/workflow-runs\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ teamId: g.teamId, workflowId: g.workflowId, action: \"bulk-delete\", runIds: g.runIds }),\n }),\n ),\n );\n const failed = results.filter((r) => !r.ok);\n if (failed.length) throw new Error(failed.map((r) => r.error).join(\"; \"));\n clear();\n setShowDeleteModal(false);\n router.refresh();\n } catch (err) {\n setDeleteError(String(err));\n } finally {\n setDeleteBusy(false);\n }\n };\n\n return (\n <div className=\"rounded-3xl border border-white/10 bg-black/10 p-4\">\n <div className=\"flex flex-wrap items-end justify-between gap-3\">\n <div className=\"flex flex-wrap items-end gap-3\">\n <label className=\"block\">\n <div className=\"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]\">team</div>\n <select\n value={teamId}\n onChange={(e) => {\n const next = (e.target.value || \"\").trim();\n setTeamId(next);\n setWorkflowId(\"\");\n }}\n className=\"mt-1 w-64 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]\"\n >\n <option value=\"\">All teams</option>\n {teamOptions.map((id) => (\n <option key={id} value={id}>\n {id}\n </option>\n ))}\n </select>\n </label>\n\n <label className=\"block\">\n <div className=\"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]\">workflow</div>\n <select\n value={workflowId}\n onChange={(e) => setWorkflowId((e.target.value || \"\").trim())}\n className=\"mt-1 w-64 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]\"\n >\n <option value=\"\">All workflows</option>\n {workflowOptions.map((id) => (\n <option key={id} value={id}>\n {id}\n </option>\n ))}\n </select>\n </label>\n\n <label className=\"block\">\n <div className=\"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]\">status</div>\n <select\n value={status}\n onChange={(e) => setStatus((e.target.value || \"\").trim())}\n className=\"mt-1 w-56 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]\"\n >\n <option value=\"\">All</option>\n <option value=\"running\">running</option>\n <option value=\"waiting_for_approval\">waiting_for_approval</option>\n <option value=\"success\">success</option>\n <option value=\"error\">error</option>\n <option value=\"canceled\">canceled</option>\n <option value=\"completed\">completed</option>\n <option value=\"queued\">queued</option>\n <option value=\"waiting_workers\">waiting_workers</option>\n </select>\n </label>\n\n <label className=\"block\">\n <div className=\"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]\">search</div>\n <input\n value={q}\n onChange={(e) => setQ(e.target.value)}\n placeholder=\"team / workflow / run id\"\n className=\"mt-1 w-72 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]\"\n />\n </label>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n onClick={() => router.refresh()}\n className=\"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10\"\n >\n Refresh\n </button>\n </div>\n </div>\n\n <div className=\"mt-4 overflow-x-auto\">\n <table className=\"min-w-full border-separate border-spacing-0\">\n <thead>\n <tr className=\"text-left text-xs uppercase tracking-wide text-[color:var(--ck-text-tertiary)]\">\n <th className=\"border-b border-white/10 px-2 py-2 w-8\">\n <input\n type=\"checkbox\"\n checked={allSelected && filtered.length > 0}\n onChange={toggleAll}\n className=\"accent-[var(--ck-accent-red)]\"\n aria-label=\"Select all runs\"\n />\n </th>\n <th className=\"border-b border-white/10 px-2 py-2\">team</th>\n <th className=\"border-b border-white/10 px-2 py-2\">workflow</th>\n <th className=\"border-b border-white/10 px-2 py-2\">status</th>\n <th className=\"border-b border-white/10 px-2 py-2\">updated</th>\n <th className=\"border-b border-white/10 px-2 py-2\">run</th>\n </tr>\n </thead>\n <tbody>\n {filtered.length ? (\n filtered.map((r) => {\n const key = `${r.teamId}:${r.workflowId}:${r.runId}`;\n return (\n <tr key={key} className=\"text-sm\">\n <td className=\"border-b border-white/5 px-2 py-2\">\n <input\n type=\"checkbox\"\n checked={selected.has(key)}\n onChange={() => toggle(key)}\n className=\"accent-[var(--ck-accent-red)]\"\n aria-label={`Select run ${r.runId}`}\n />\n </td>\n <td className=\"border-b border-white/5 px-2 py-2\">\n <div className=\"text-[color:var(--ck-text-primary)]\">{r.teamName || r.teamId}</div>\n <div className=\"text-xs text-[color:var(--ck-text-tertiary)] font-mono\">{r.teamId}</div>\n </td>\n <td className=\"border-b border-white/5 px-2 py-2\">\n <div className=\"text-[color:var(--ck-text-primary)]\">{r.workflowName || r.workflowId}</div>\n <div className=\"text-xs text-[color:var(--ck-text-tertiary)] font-mono\">{r.workflowId}</div>\n </td>\n <td className=\"border-b border-white/5 px-2 py-2\">\n <span className=\"rounded-full border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-secondary)]\">\n {r.status ?? \"(unknown)\"}\n </span>\n </td>\n <td className=\"border-b border-white/5 px-2 py-2 text-xs text-[color:var(--ck-text-secondary)]\">\n {fmt(r.updatedAt || r.endedAt || r.startedAt)}\n </td>\n <td className=\"border-b border-white/5 px-2 py-2\">\n <Link\n href={`/teams/${encodeURIComponent(r.teamId)}/runs/${encodeURIComponent(r.workflowId)}/${encodeURIComponent(r.runId)}`}\n className=\"font-mono text-sm text-[color:var(--ck-text-primary)] hover:underline\"\n >\n {r.runId}\n </Link>\n </td>\n </tr>\n );\n })\n ) : (\n <tr>\n <td colSpan={6} className=\"px-2 py-6 text-sm text-[color:var(--ck-text-secondary)]\">\n No runs found.\n </td>\n </tr>\n )}\n </tbody>\n </table>\n </div>\n\n <div className=\"mt-3 text-xs text-[color:var(--ck-text-tertiary)]\">Showing {filtered.length} of {rows.length}.</div>\n\n {count > 0 && (\n <div className=\"sticky bottom-4 mt-4 flex items-center justify-between rounded-xl border border-white/10 bg-black/80 backdrop-blur-md px-4 py-3 shadow-lg\">\n <span className=\"text-sm text-[color:var(--ck-text-secondary)]\">\n {count} run{count !== 1 ? \"s\" : \"\"} selected\n </span>\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n onClick={clear}\n className=\"rounded-lg border border-white/10 bg-white/5 px-3 py-1.5 text-xs font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10\"\n >\n Clear\n </button>\n <button\n type=\"button\"\n onClick={() => { setDeleteError(null); setShowDeleteModal(true); }}\n className=\"rounded-lg bg-[var(--ck-accent-red)] px-3 py-1.5 text-xs font-medium text-white hover:bg-[var(--ck-accent-red-hover)]\"\n >\n Delete selected\n </button>\n </div>\n </div>\n )}\n\n <ConfirmationModal\n open={showDeleteModal}\n onClose={() => { setShowDeleteModal(false); setDeleteError(null); }}\n title=\"Delete Workflow Runs\"\n confirmLabel=\"Delete Runs\"\n confirmBusyLabel=\"Deleting...\"\n onConfirm={handleBulkDelete}\n busy={deleteBusy}\n error={deleteError}\n >\n <p className=\"mt-3 text-sm text-[color:var(--ck-text-secondary)]\">\n Are you sure you want to permanently delete{\" \"}\n <strong className=\"text-[color:var(--ck-text-primary)]\">{count} run{count !== 1 ? \"s\" : \"\"}</strong>?\n This action cannot be undone.\n </p>\n </ConfirmationModal>\n </div>\n );\n}\n"],"names":["module","exports","require","vendored","ReactDOM"],"mappings":"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","ignoreList":[0]}
|