@desplega.ai/agent-swarm 1.20.0 → 1.49.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/.claude/settings.json +84 -0
- package/.claude/settings.local.json +3 -1
- package/.entire/settings.json +4 -0
- package/.env.docker.example +40 -23
- package/.env.example +39 -1
- package/.github/ISSUE_TEMPLATE/bug_report.yml +78 -0
- package/.github/ISSUE_TEMPLATE/community-template.yml +77 -0
- package/.github/ISSUE_TEMPLATE/config.yml +8 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +60 -0
- package/.github/PULL_REQUEST_TEMPLATE/community-template.md +29 -0
- package/.github/workflows/ci.yml +3 -27
- package/.github/workflows/docker-and-deploy.yml +20 -5
- package/.github/workflows/merge-gate.yml +233 -0
- package/.opencode/plugins/entire.ts +133 -0
- package/.superset/config.json +6 -0
- package/.wts-setup.ts +103 -34
- package/CHANGELOG.md +447 -0
- package/CLAUDE.md +422 -5
- package/CONTRIBUTING.md +46 -1
- package/DEPLOYMENT.md +26 -9
- package/Dockerfile +15 -7
- package/Dockerfile.worker +99 -67
- package/MCP.md +452 -17
- package/README.md +271 -169
- package/api-entrypoint.sh +56 -0
- package/depot.json +1 -0
- package/docker-compose.example.yml +194 -3
- package/docker-compose.local.yml +119 -0
- package/docker-entrypoint.sh +393 -113
- package/docs-site/app/api/search/route.ts +4 -0
- package/docs-site/app/docs/[[...slug]]/page.tsx +87 -0
- package/docs-site/app/docs/layout.tsx +12 -0
- package/docs-site/app/globals.css +24 -0
- package/docs-site/app/layout.config.tsx +34 -0
- package/docs-site/app/layout.tsx +119 -0
- package/docs-site/app/llms-full.txt/route.ts +11 -0
- package/docs-site/app/llms.mdx/docs/[[...slug]]/route.ts +24 -0
- package/docs-site/app/llms.txt/route.ts +8 -0
- package/docs-site/app/page.tsx +5 -0
- package/docs-site/app/robots.ts +13 -0
- package/docs-site/app/sitemap.ts +37 -0
- package/docs-site/components/api-page.client.tsx +4 -0
- package/docs-site/components/api-page.tsx +7 -0
- package/docs-site/components/mdx/mermaid.tsx +55 -0
- package/docs-site/content/docs/(documentation)/architecture/agents.mdx +117 -0
- package/docs-site/content/docs/(documentation)/architecture/hooks.mdx +77 -0
- package/docs-site/content/docs/(documentation)/architecture/memory.mdx +96 -0
- package/docs-site/content/docs/(documentation)/architecture/meta.json +4 -0
- package/docs-site/content/docs/(documentation)/architecture/overview.mdx +172 -0
- package/docs-site/content/docs/(documentation)/concepts/epics.mdx +98 -0
- package/docs-site/content/docs/(documentation)/concepts/meta.json +4 -0
- package/docs-site/content/docs/(documentation)/concepts/scheduling.mdx +136 -0
- package/docs-site/content/docs/(documentation)/concepts/services.mdx +104 -0
- package/docs-site/content/docs/(documentation)/concepts/task-lifecycle.mdx +148 -0
- package/docs-site/content/docs/(documentation)/concepts/workflows.mdx +209 -0
- package/docs-site/content/docs/(documentation)/contributing.mdx +158 -0
- package/docs-site/content/docs/(documentation)/getting-started.mdx +157 -0
- package/docs-site/content/docs/(documentation)/guides/agentmail-integration.mdx +79 -0
- package/docs-site/content/docs/(documentation)/guides/deployment.mdx +171 -0
- package/docs-site/content/docs/(documentation)/guides/github-integration.mdx +81 -0
- package/docs-site/content/docs/(documentation)/guides/gitlab-integration.mdx +93 -0
- package/docs-site/content/docs/(documentation)/guides/linear-integration.mdx +98 -0
- package/docs-site/content/docs/(documentation)/guides/meta.json +13 -0
- package/docs-site/content/docs/(documentation)/guides/sentry-integration.mdx +52 -0
- package/docs-site/content/docs/(documentation)/guides/slack-integration.mdx +179 -0
- package/docs-site/content/docs/(documentation)/guides/x402-payments.mdx +154 -0
- package/docs-site/content/docs/(documentation)/index.mdx +65 -0
- package/docs-site/content/docs/(documentation)/meta.json +19 -0
- package/docs-site/content/docs/(documentation)/reference/cli.mdx +241 -0
- package/docs-site/content/docs/(documentation)/reference/environment-variables.mdx +205 -0
- package/docs-site/content/docs/(documentation)/reference/mcp-tools.mdx +449 -0
- package/docs-site/content/docs/(documentation)/reference/meta.json +4 -0
- package/docs-site/content/docs/api-reference/active-sessions.mdx +9 -0
- package/docs-site/content/docs/api-reference/agents.mdx +9 -0
- package/docs-site/content/docs/api-reference/channels.mdx +9 -0
- package/docs-site/content/docs/api-reference/config.mdx +9 -0
- package/docs-site/content/docs/api-reference/debug.mdx +9 -0
- package/docs-site/content/docs/api-reference/ecosystem.mdx +9 -0
- package/docs-site/content/docs/api-reference/epics.mdx +9 -0
- package/docs-site/content/docs/api-reference/index.mdx +32 -0
- package/docs-site/content/docs/api-reference/memory.mdx +9 -0
- package/docs-site/content/docs/api-reference/meta.json +25 -0
- package/docs-site/content/docs/api-reference/poll.mdx +9 -0
- package/docs-site/content/docs/api-reference/repos.mdx +9 -0
- package/docs-site/content/docs/api-reference/schedules.mdx +9 -0
- package/docs-site/content/docs/api-reference/session-data.mdx +9 -0
- package/docs-site/content/docs/api-reference/stats.mdx +9 -0
- package/docs-site/content/docs/api-reference/tasks.mdx +9 -0
- package/docs-site/content/docs/api-reference/trackers.mdx +9 -0
- package/docs-site/content/docs/api-reference/webhooks.mdx +9 -0
- package/docs-site/content/docs/api-reference/workflows.mdx +9 -0
- package/docs-site/content/docs/meta.json +3 -0
- package/docs-site/lib/get-llm-text.ts +10 -0
- package/docs-site/lib/openapi.ts +23 -0
- package/docs-site/lib/source.ts +8 -0
- package/docs-site/mdx-components.tsx +13 -0
- package/docs-site/next.config.mjs +29 -0
- package/docs-site/package.json +35 -0
- package/docs-site/pnpm-lock.yaml +5407 -0
- package/docs-site/postcss.config.mjs +8 -0
- package/docs-site/scripts/generate-docs.ts +171 -0
- package/docs-site/source.config.ts +17 -0
- package/docs-site/tsconfig.json +46 -0
- package/ecosystem.config.cjs +4 -4
- package/landing/next.config.ts +14 -0
- package/landing/package.json +31 -0
- package/landing/pnpm-lock.yaml +1091 -0
- package/landing/postcss.config.mjs +8 -0
- package/landing/public/apple-touch-icon.png +0 -0
- package/landing/public/favicon.ico +0 -0
- package/landing/public/logo.png +0 -0
- package/landing/public/og-image.png +0 -0
- package/landing/public/omghost-desplega.svg +30 -0
- package/landing/public/omghost-openfort.svg +9 -0
- package/landing/src/app/actions/waitlist.ts +25 -0
- package/landing/src/app/blog/openfort-hackathon/page.tsx +863 -0
- package/landing/src/app/blog/page.tsx +162 -0
- package/landing/src/app/blog/swarm-metrics/page.tsx +685 -0
- package/landing/src/app/examples/page.tsx +174 -0
- package/landing/src/app/examples/x402/page.tsx +456 -0
- package/landing/src/app/globals.css +122 -0
- package/landing/src/app/layout.tsx +134 -0
- package/landing/src/app/page.tsx +27 -0
- package/landing/src/app/robots.ts +13 -0
- package/landing/src/app/sitemap.ts +44 -0
- package/landing/src/components/architecture.tsx +163 -0
- package/landing/src/components/cta.tsx +52 -0
- package/landing/src/components/features.tsx +160 -0
- package/landing/src/components/footer.tsx +100 -0
- package/landing/src/components/hero.tsx +217 -0
- package/landing/src/components/how-it-works.tsx +165 -0
- package/landing/src/components/navbar.tsx +147 -0
- package/landing/src/components/waitlist.tsx +110 -0
- package/landing/src/components/why-choose.tsx +149 -0
- package/landing/src/components/workshops.tsx +328 -0
- package/landing/src/lib/utils.ts +6 -0
- package/landing/tsconfig.json +41 -0
- package/misc/transcripts/2026-03-09-pi-mono-e2e-verification.md +154 -0
- package/new-ui/CLAUDE.md +92 -0
- package/new-ui/README.md +73 -0
- package/new-ui/biome.json +42 -0
- package/new-ui/components.json +21 -0
- package/new-ui/index.html +25 -0
- package/new-ui/package.json +49 -0
- package/new-ui/pnpm-lock.yaml +4845 -0
- package/new-ui/public/logo.png +0 -0
- package/new-ui/src/api/client.ts +814 -0
- package/new-ui/src/api/hooks/index.ts +64 -0
- package/new-ui/src/api/hooks/use-agents.ts +58 -0
- package/new-ui/src/api/hooks/use-channels.ts +115 -0
- package/new-ui/src/api/hooks/use-config-api.ts +46 -0
- package/new-ui/src/api/hooks/use-costs.ts +122 -0
- package/new-ui/src/api/hooks/use-db-query.ts +29 -0
- package/new-ui/src/api/hooks/use-epics.ts +75 -0
- package/new-ui/src/api/hooks/use-repos.ts +61 -0
- package/new-ui/src/api/hooks/use-schedules.ts +81 -0
- package/new-ui/src/api/hooks/use-services.ts +16 -0
- package/new-ui/src/api/hooks/use-stats.ts +27 -0
- package/new-ui/src/api/hooks/use-tasks.ts +89 -0
- package/new-ui/src/api/hooks/use-workflows.ts +109 -0
- package/{ui/src/types/api.ts → new-ui/src/api/types.ts} +236 -10
- package/new-ui/src/app/App.tsx +13 -0
- package/new-ui/src/app/providers.tsx +32 -0
- package/new-ui/src/app/router.tsx +52 -0
- package/new-ui/src/components/layout/app-header.tsx +47 -0
- package/new-ui/src/components/layout/app-sidebar.tsx +128 -0
- package/new-ui/src/components/layout/breadcrumbs.tsx +57 -0
- package/new-ui/src/components/layout/config-guard.tsx +22 -0
- package/new-ui/src/components/layout/root-layout.tsx +40 -0
- package/new-ui/src/components/layout/swarm-switcher.tsx +85 -0
- package/new-ui/src/components/shared/command-menu.tsx +131 -0
- package/new-ui/src/components/shared/data-grid.tsx +141 -0
- package/new-ui/src/components/shared/empty-state.tsx +24 -0
- package/new-ui/src/components/shared/error-boundary.tsx +72 -0
- package/new-ui/src/components/shared/json-viewer.tsx +47 -0
- package/new-ui/src/components/shared/name-connection-modal.tsx +99 -0
- package/new-ui/src/components/shared/page-skeleton.tsx +16 -0
- package/new-ui/src/components/shared/session-log-viewer.tsx +364 -0
- package/new-ui/src/components/shared/stats-bar.tsx +132 -0
- package/new-ui/src/components/shared/status-badge.tsx +131 -0
- package/new-ui/src/components/shared/usage-summary.tsx +179 -0
- package/new-ui/src/components/ui/alert-dialog.tsx +176 -0
- package/new-ui/src/components/ui/alert.tsx +60 -0
- package/new-ui/src/components/ui/avatar.tsx +96 -0
- package/new-ui/src/components/ui/badge.tsx +46 -0
- package/new-ui/src/components/ui/button.tsx +62 -0
- package/new-ui/src/components/ui/card.tsx +75 -0
- package/new-ui/src/components/ui/command.tsx +160 -0
- package/new-ui/src/components/ui/dialog.tsx +143 -0
- package/new-ui/src/components/ui/dropdown-menu.tsx +226 -0
- package/new-ui/src/components/ui/input.tsx +21 -0
- package/new-ui/src/components/ui/label.tsx +19 -0
- package/new-ui/src/components/ui/progress.tsx +26 -0
- package/new-ui/src/components/ui/scroll-area.tsx +54 -0
- package/new-ui/src/components/ui/select.tsx +175 -0
- package/new-ui/src/components/ui/separator.tsx +28 -0
- package/new-ui/src/components/ui/sheet.tsx +132 -0
- package/new-ui/src/components/ui/sidebar.tsx +691 -0
- package/new-ui/src/components/ui/skeleton.tsx +13 -0
- package/new-ui/src/components/ui/sonner.tsx +35 -0
- package/new-ui/src/components/ui/switch.tsx +33 -0
- package/new-ui/src/components/ui/table.tsx +92 -0
- package/new-ui/src/components/ui/tabs.tsx +79 -0
- package/new-ui/src/components/ui/textarea.tsx +18 -0
- package/new-ui/src/components/ui/tooltip.tsx +51 -0
- package/new-ui/src/components/workflows/action-node.tsx +53 -0
- package/new-ui/src/components/workflows/condition-node.tsx +50 -0
- package/new-ui/src/components/workflows/graph-utils.ts +124 -0
- package/new-ui/src/components/workflows/json-tree.tsx +189 -0
- package/new-ui/src/components/workflows/node-styles.ts +10 -0
- package/new-ui/src/components/workflows/step-detail-sheet.tsx +87 -0
- package/new-ui/src/components/workflows/trigger-node.tsx +41 -0
- package/new-ui/src/components/workflows/workflow-graph.tsx +65 -0
- package/{ui/src/hooks/useAutoScroll.ts → new-ui/src/hooks/use-auto-scroll.ts} +0 -1
- package/new-ui/src/hooks/use-config.ts +203 -0
- package/new-ui/src/hooks/use-keyboard-shortcuts.ts +41 -0
- package/new-ui/src/hooks/use-mobile.ts +19 -0
- package/new-ui/src/hooks/use-theme.ts +60 -0
- package/new-ui/src/lib/config.ts +188 -0
- package/new-ui/src/lib/slugs.ts +71 -0
- package/{ui → new-ui}/src/lib/utils.ts +32 -0
- package/new-ui/src/main.tsx +11 -0
- package/new-ui/src/pages/agents/[id]/page.tsx +492 -0
- package/new-ui/src/pages/agents/page.tsx +134 -0
- package/new-ui/src/pages/chat/page.tsx +674 -0
- package/new-ui/src/pages/config/page.tsx +1109 -0
- package/new-ui/src/pages/dashboard/page.tsx +454 -0
- package/new-ui/src/pages/debug/page.tsx +275 -0
- package/new-ui/src/pages/epics/[id]/page.tsx +809 -0
- package/new-ui/src/pages/epics/page.tsx +321 -0
- package/new-ui/src/pages/not-found/page.tsx +18 -0
- package/new-ui/src/pages/repos/page.tsx +369 -0
- package/new-ui/src/pages/schedules/[id]/page.tsx +664 -0
- package/new-ui/src/pages/schedules/page.tsx +477 -0
- package/new-ui/src/pages/services/page.tsx +128 -0
- package/new-ui/src/pages/tasks/[id]/page.tsx +670 -0
- package/new-ui/src/pages/tasks/page.tsx +592 -0
- package/new-ui/src/pages/usage/page.tsx +195 -0
- package/new-ui/src/pages/workflow-runs/[id]/page.tsx +363 -0
- package/new-ui/src/pages/workflows/[id]/page.tsx +417 -0
- package/new-ui/src/pages/workflows/page.tsx +266 -0
- package/new-ui/src/styles/ag-grid.css +36 -0
- package/new-ui/src/styles/globals.css +213 -0
- package/new-ui/test-results/.last-run.json +4 -0
- package/{ui/tsconfig.json → new-ui/tsconfig.app.json} +7 -4
- package/new-ui/tsconfig.json +4 -0
- package/new-ui/tsconfig.node.json +26 -0
- package/new-ui/vercel.json +4 -0
- package/new-ui/vite.config.ts +28 -0
- package/openapi.json +4436 -0
- package/package.json +31 -7
- package/plugin/build-pi-skills.ts +233 -0
- package/plugin/commands/close-issue.md +7 -3
- package/plugin/commands/create-pr.md +18 -12
- package/plugin/commands/implement-issue.md +7 -3
- package/plugin/commands/respond-github.md +8 -4
- package/plugin/commands/review-pr.md +44 -10
- package/plugin/commands/start-leader.md +1 -3
- package/plugin/commands/start-worker.md +1 -3
- package/plugin/commands/work-on-task.md +22 -3
- package/plugin/pi-skills/close-issue/SKILL.md +90 -0
- package/plugin/pi-skills/create-pr/SKILL.md +99 -0
- package/plugin/pi-skills/implement-issue/SKILL.md +135 -0
- package/plugin/pi-skills/investigate-sentry-issue/SKILL.md +138 -0
- package/plugin/pi-skills/respond-github/SKILL.md +98 -0
- package/plugin/pi-skills/review-offered-task/SKILL.md +45 -0
- package/plugin/pi-skills/review-pr/SKILL.md +261 -0
- package/plugin/pi-skills/start-leader/SKILL.md +121 -0
- package/plugin/pi-skills/start-worker/SKILL.md +60 -0
- package/plugin/pi-skills/swarm-chat/SKILL.md +82 -0
- package/plugin/pi-skills/todos/SKILL.md +66 -0
- package/plugin/pi-skills/work-on-task/SKILL.md +65 -0
- package/plugin/skills/artifacts/examples/approval-flow.ts +34 -0
- package/plugin/skills/artifacts/examples/hono-dashboard.ts +31 -0
- package/plugin/skills/artifacts/examples/multi-artifact.ts +20 -0
- package/plugin/skills/artifacts/examples/static-report.sh +17 -0
- package/plugin/skills/artifacts/skill.md +71 -0
- package/prek.toml +75 -0
- package/scripts/check-db-boundary.sh +60 -0
- package/scripts/e2e-docker-provider.ts +820 -0
- package/scripts/e2e-io-schemas-test.ts +807 -0
- package/scripts/e2e-provider-test.ts +220 -0
- package/scripts/e2e-workflow-redesign.sh +229 -0
- package/scripts/e2e-workflow-test.sh +285 -0
- package/scripts/e2e-workflow-test.ts +857 -0
- package/scripts/generate-openapi.ts +26 -0
- package/scripts/measure-tool-tokens.ts +118 -0
- package/scripts/x402-e2e-test.ts +195 -0
- package/scripts/x402-test-server.ts +236 -0
- package/scripts/x402-testnet-e2e.ts +668 -0
- package/slack-manifest.json +17 -0
- package/src/agentmail/app.ts +65 -0
- package/src/agentmail/handlers.ts +207 -0
- package/src/agentmail/index.ts +9 -0
- package/src/agentmail/types.ts +51 -0
- package/src/artifact-sdk/browser-sdk.ts +30 -0
- package/src/artifact-sdk/index.ts +2 -0
- package/src/artifact-sdk/localtunnel.d.ts +20 -0
- package/src/artifact-sdk/port.ts +12 -0
- package/src/artifact-sdk/server.ts +156 -0
- package/src/artifact-sdk/tunnel.ts +19 -0
- package/src/be/chunking.ts +193 -0
- package/src/be/db-queries/oauth.ts +90 -0
- package/src/be/db-queries/tracker.ts +182 -0
- package/src/be/db.ts +2729 -770
- package/src/be/embedding.ts +80 -0
- package/src/be/migrations/001_initial.sql +409 -0
- package/src/be/migrations/002_one_time_schedules.sql +59 -0
- package/src/be/migrations/003_workflows.sql +51 -0
- package/src/be/migrations/004_workflow_source.sql +81 -0
- package/src/be/migrations/005_epic_next_steps.sql +2 -0
- package/src/be/migrations/006_vcs_provider.sql +94 -0
- package/src/be/migrations/007_task_dir.sql +2 -0
- package/src/be/migrations/008_workflow_redesign.sql +85 -0
- package/src/be/migrations/009_tracker_integration.sql +144 -0
- package/src/be/migrations/010_step_diagnostics.sql +1 -0
- package/src/be/migrations/011_step_next_port.sql +1 -0
- package/src/be/migrations/012_trigger_schema.sql +1 -0
- package/src/be/migrations/013_task_output_schema.sql +2 -0
- package/src/be/migrations/runner.ts +188 -0
- package/src/cli.tsx +231 -299
- package/src/commands/artifact.ts +241 -0
- package/src/commands/onboard/compose-generator.ts +169 -0
- package/src/commands/onboard/env-generator.ts +79 -0
- package/src/commands/onboard/manifest.ts +37 -0
- package/src/commands/onboard/presets.ts +85 -0
- package/src/commands/onboard/service-names.ts +47 -0
- package/src/commands/onboard/steps/core-credentials.tsx +111 -0
- package/src/commands/onboard/steps/custom-templates.tsx +168 -0
- package/src/commands/onboard/steps/generate.tsx +154 -0
- package/src/commands/onboard/steps/harness-credentials.tsx +195 -0
- package/src/commands/onboard/steps/harness.tsx +21 -0
- package/src/commands/onboard/steps/health-check.tsx +171 -0
- package/src/commands/onboard/steps/integration-github.tsx +105 -0
- package/src/commands/onboard/steps/integration-gitlab.tsx +79 -0
- package/src/commands/onboard/steps/integration-menu.tsx +58 -0
- package/src/commands/onboard/steps/integration-sentry.tsx +79 -0
- package/src/commands/onboard/steps/integration-slack.tsx +165 -0
- package/src/commands/onboard/steps/post-connect.tsx +145 -0
- package/src/commands/onboard/steps/post-dashboard.tsx +34 -0
- package/src/commands/onboard/steps/post-task.tsx +103 -0
- package/src/commands/onboard/steps/prereq-check.tsx +178 -0
- package/src/commands/onboard/steps/review.tsx +82 -0
- package/src/commands/onboard/steps/start.tsx +97 -0
- package/src/commands/onboard/templates.ts +34 -0
- package/src/commands/onboard/types.ts +259 -0
- package/src/commands/onboard.tsx +425 -0
- package/src/commands/runner.ts +1376 -559
- package/src/commands/setup.tsx +23 -38
- package/src/commands/shared/client-config.ts +41 -0
- package/src/github/app.ts +8 -0
- package/src/github/handlers.ts +93 -75
- package/src/github/index.ts +1 -0
- package/src/github/types.ts +1 -0
- package/src/gitlab/auth.ts +63 -0
- package/src/gitlab/handlers.ts +327 -0
- package/src/gitlab/index.ts +19 -0
- package/src/gitlab/reactions.ts +104 -0
- package/src/gitlab/types.ts +130 -0
- package/src/heartbeat/heartbeat.ts +425 -0
- package/src/heartbeat/index.ts +1 -0
- package/src/hooks/hook.ts +555 -4
- package/src/hooks/tool-loop-detection.test.ts +158 -0
- package/src/hooks/tool-loop-detection.ts +167 -0
- package/src/http/active-sessions.ts +172 -0
- package/src/http/agents.ts +328 -0
- package/src/http/config.ts +191 -0
- package/src/http/core.ts +309 -0
- package/src/http/db-query.ts +91 -0
- package/src/http/ecosystem.ts +63 -0
- package/src/http/epics.ts +460 -0
- package/src/http/index.ts +213 -0
- package/src/http/mcp.ts +77 -0
- package/src/http/memory.ts +168 -0
- package/src/http/openapi.ts +109 -0
- package/src/http/poll.ts +178 -0
- package/src/http/repos.ts +195 -0
- package/src/http/route-def.ts +123 -0
- package/src/http/schedules.ts +391 -0
- package/src/http/session-data.ts +241 -0
- package/src/http/stats.ts +174 -0
- package/src/http/tasks.ts +468 -0
- package/src/http/trackers/index.ts +10 -0
- package/src/http/trackers/linear.ts +187 -0
- package/src/http/types.ts +12 -0
- package/src/http/utils.ts +87 -0
- package/src/http/webhooks.ts +432 -0
- package/src/http/workflows.ts +522 -0
- package/src/http.ts +1 -1890
- package/src/linear/README.md +65 -0
- package/src/linear/app.ts +48 -0
- package/src/linear/client.ts +18 -0
- package/src/linear/index.ts +1 -0
- package/src/linear/oauth.ts +35 -0
- package/src/linear/outbound.ts +212 -0
- package/src/linear/sync.ts +543 -0
- package/src/linear/types.ts +7 -0
- package/src/linear/webhook.ts +104 -0
- package/src/oauth/README.md +66 -0
- package/src/oauth/index.ts +6 -0
- package/src/oauth/wrapper.ts +204 -0
- package/src/prompts/base-prompt.ts +366 -24
- package/src/prompts/defaults.ts +196 -0
- package/src/providers/claude-adapter.ts +429 -0
- package/src/providers/index.ts +24 -0
- package/src/providers/pi-mono-adapter.ts +442 -0
- package/src/providers/pi-mono-extension.ts +620 -0
- package/src/providers/pi-mono-mcp-client.ts +124 -0
- package/src/providers/types.ts +75 -0
- package/src/scheduler/scheduler.test.ts +2 -0
- package/src/scheduler/scheduler.ts +186 -29
- package/src/server.ts +82 -6
- package/src/slack/HEURISTICS.md +105 -0
- package/src/slack/actions.ts +133 -0
- package/src/slack/app.ts +7 -0
- package/src/slack/assistant.ts +115 -0
- package/src/slack/blocks.ts +233 -0
- package/src/slack/commands.ts +31 -17
- package/src/slack/files.ts +1 -1
- package/src/slack/handlers.test.ts +114 -1
- package/src/slack/handlers.ts +212 -52
- package/src/slack/responses.ts +120 -67
- package/src/slack/router.ts +17 -99
- package/src/slack/thread-buffer.ts +213 -0
- package/src/slack/watcher.ts +119 -4
- package/src/tests/agent-activity.test.ts +247 -0
- package/src/tests/agentmail-filters.test.ts +97 -0
- package/src/tests/artifact-sdk.test.ts +800 -0
- package/src/tests/base-prompt.test.ts +264 -0
- package/src/tests/build-pi-skills.test.ts +127 -0
- package/src/tests/claude-adapter.test.ts +126 -0
- package/src/tests/context-versioning.test.ts +425 -0
- package/src/tests/db-queries-oauth.test.ts +197 -0
- package/src/tests/db-queries-tracker.test.ts +230 -0
- package/src/tests/epics.test.ts +3 -3
- package/src/tests/error-tracker.test.ts +368 -0
- package/src/tests/fetch-resolved-env.test.ts +167 -0
- package/src/tests/generate-default-claude-md.test.ts +9 -1
- package/src/tests/generate-identity-templates.test.ts +124 -0
- package/src/tests/gitlab-auth.test.ts +109 -0
- package/src/tests/gitlab-handlers.test.ts +691 -0
- package/src/tests/gitlab-vcs-db.test.ts +177 -0
- package/src/tests/heartbeat.test.ts +363 -0
- package/src/tests/http-api-integration.test.ts +1698 -0
- package/src/tests/linear-outbound-sync.test.ts +200 -0
- package/src/tests/linear-webhook.test.ts +402 -0
- package/src/tests/match-route.test.ts +187 -0
- package/src/tests/memory.test.ts +737 -0
- package/src/tests/migration-runner-regressions.test.ts +86 -0
- package/src/tests/model-control.test.ts +338 -0
- package/src/tests/oauth-wrapper.test.ts +147 -0
- package/src/tests/onboard-compose.test.ts +138 -0
- package/src/tests/onboard-env.test.ts +174 -0
- package/src/tests/onboard-manifest.test.ts +137 -0
- package/src/tests/pi-mono-adapter.test.ts +234 -0
- package/src/tests/progress-dedup.test.ts +98 -0
- package/src/tests/provider-adapter.test.ts +122 -0
- package/src/tests/provider-command-format.test.ts +98 -0
- package/src/tests/reload-config.test.ts +170 -0
- package/src/tests/runner-polling-api.test.ts +25 -20
- package/src/tests/scheduled-tasks.test.ts +104 -0
- package/src/tests/scheduler-backoff.test.ts +166 -0
- package/src/tests/self-improvement.test.ts +540 -0
- package/src/tests/session-attach.test.ts +536 -0
- package/src/tests/session-costs.test.ts +267 -1
- package/src/tests/slack-actions.test.ts +133 -0
- package/src/tests/slack-assistant.test.ts +136 -0
- package/src/tests/slack-blocks.test.ts +246 -0
- package/src/tests/slack-metadata-inheritance.test.ts +243 -0
- package/src/tests/slack-queue-offline.test.ts +174 -0
- package/src/tests/slack-router.test.ts +181 -0
- package/src/tests/slack-thread-buffer.test.ts +305 -0
- package/src/tests/slack-thread-followups.test.ts +298 -0
- package/src/tests/slack-watcher.test.ts +101 -0
- package/src/tests/structured-output.test.ts +311 -0
- package/src/tests/swarm-repos.test.ts +198 -0
- package/src/tests/task-cancellation.test.ts +6 -4
- package/src/tests/task-working-dir.test.ts +176 -0
- package/src/tests/template-fetch.test.ts +490 -0
- package/src/tests/tool-annotations.test.ts +371 -0
- package/src/tests/tracker-tools.test.ts +184 -0
- package/src/tests/update-profile-api.test.ts +143 -3
- package/src/tests/validation-adapters.test.ts +86 -0
- package/src/tests/vcs-provider.test.ts +27 -0
- package/src/tests/workflow-agent-task.test.ts +196 -0
- package/src/tests/workflow-async-v2.test.ts +386 -0
- package/src/tests/workflow-convergence.test.ts +541 -0
- package/src/tests/workflow-definition-validation.test.ts +290 -0
- package/src/tests/workflow-engine-v2.test.ts +691 -0
- package/src/tests/workflow-executors.test.ts +736 -0
- package/src/tests/workflow-http-v2.test.ts +599 -0
- package/src/tests/workflow-integration-io.test.ts +902 -0
- package/src/tests/workflow-io-schemas.test.ts +624 -0
- package/src/tests/workflow-registry.test.ts +592 -0
- package/src/tests/workflow-retry-v2.test.ts +401 -0
- package/src/tests/workflow-retry-validation.test.ts +282 -0
- package/src/tests/workflow-template.test.ts +288 -0
- package/src/tests/workflow-trigger-schema.test.ts +359 -0
- package/src/tests/workflow-triggers-v2.test.ts +264 -0
- package/src/tests/workflow-versions.test.ts +208 -0
- package/src/tests/x402-client.test.ts +117 -0
- package/src/tests/x402-config.test.ts +182 -0
- package/src/tests/x402-spending-tracker.test.ts +185 -0
- package/src/tools/cancel-task.ts +2 -0
- package/src/tools/context-diff.ts +171 -0
- package/src/tools/context-history.ts +138 -0
- package/src/tools/create-channel.ts +1 -0
- package/src/tools/db-query.ts +78 -0
- package/src/tools/delete-channel.ts +132 -0
- package/src/tools/epics/assign-task-to-epic.ts +1 -0
- package/src/tools/epics/create-epic.ts +3 -2
- package/src/tools/epics/delete-epic.ts +2 -0
- package/src/tools/epics/get-epic-details.ts +2 -0
- package/src/tools/epics/list-epics.ts +2 -0
- package/src/tools/epics/unassign-task-from-epic.ts +1 -0
- package/src/tools/epics/update-epic.ts +7 -4
- package/src/tools/get-swarm.ts +2 -0
- package/src/tools/get-task-details.ts +2 -0
- package/src/tools/get-tasks.ts +27 -1
- package/src/tools/inject-learning.ts +106 -0
- package/src/tools/join-swarm.ts +17 -7
- package/src/tools/list-channels.ts +2 -0
- package/src/tools/list-services.ts +2 -0
- package/src/tools/memory-get.ts +56 -0
- package/src/tools/memory-search.ts +131 -0
- package/src/tools/my-agent-info.ts +2 -0
- package/src/tools/poll-task.ts +2 -20
- package/src/tools/post-message.ts +1 -0
- package/src/tools/read-messages.ts +2 -0
- package/src/tools/register-agentmail-inbox.ts +166 -0
- package/src/tools/register-service.ts +2 -0
- package/src/tools/schedules/create-schedule.ts +134 -24
- package/src/tools/schedules/delete-schedule.ts +2 -0
- package/src/tools/schedules/list-schedules.ts +20 -4
- package/src/tools/schedules/run-schedule-now.ts +1 -0
- package/src/tools/schedules/update-schedule.ts +49 -17
- package/src/tools/send-task.ts +132 -10
- package/src/tools/slack-download-file.ts +4 -2
- package/src/tools/slack-list-channels.ts +2 -0
- package/src/tools/slack-post.ts +2 -0
- package/src/tools/slack-read.ts +2 -0
- package/src/tools/slack-reply.ts +2 -0
- package/src/tools/slack-upload-file.ts +2 -0
- package/src/tools/store-progress.ts +187 -4
- package/src/tools/swarm-config/delete-config.ts +87 -0
- package/src/tools/swarm-config/get-config.ts +108 -0
- package/src/tools/swarm-config/index.ts +4 -0
- package/src/tools/swarm-config/list-config.ts +99 -0
- package/src/tools/swarm-config/set-config.ts +118 -0
- package/src/tools/task-action.ts +30 -5
- package/src/tools/task-dedup.ts +97 -0
- package/src/tools/tool-config.ts +117 -0
- package/src/tools/tracker/index.ts +6 -0
- package/src/tools/tracker/tracker-link-epic.ts +64 -0
- package/src/tools/tracker/tracker-link-task.ts +64 -0
- package/src/tools/tracker/tracker-map-agent.ts +57 -0
- package/src/tools/tracker/tracker-status.ts +56 -0
- package/src/tools/tracker/tracker-sync-status.ts +42 -0
- package/src/tools/tracker/tracker-unlink.ts +41 -0
- package/src/tools/unregister-service.ts +2 -0
- package/src/tools/update-profile.ts +93 -10
- package/src/tools/update-service-status.ts +2 -0
- package/src/tools/utils.ts +10 -1
- package/src/tools/workflows/create-workflow.ts +111 -0
- package/src/tools/workflows/delete-workflow.ts +42 -0
- package/src/tools/workflows/get-workflow-run.ts +59 -0
- package/src/tools/workflows/get-workflow.ts +53 -0
- package/src/tools/workflows/index.ts +9 -0
- package/src/tools/workflows/list-workflow-runs.ts +48 -0
- package/src/tools/workflows/list-workflows.ts +42 -0
- package/src/tools/workflows/retry-workflow-run.ts +40 -0
- package/src/tools/workflows/trigger-workflow.ts +96 -0
- package/src/tools/workflows/update-workflow.ts +118 -0
- package/src/tracker/types.ts +51 -0
- package/src/types.ts +477 -14
- package/src/utils/credentials.test.ts +156 -0
- package/src/utils/credentials.ts +50 -0
- package/src/utils/error-tracker.ts +190 -0
- package/src/vcs/index.ts +15 -0
- package/src/vcs/types.ts +5 -0
- package/src/workflows/checkpoint.ts +121 -0
- package/src/workflows/cooldown.ts +28 -0
- package/src/workflows/definition.ts +217 -0
- package/src/workflows/engine.ts +554 -0
- package/src/workflows/event-bus.ts +29 -0
- package/src/workflows/executors/agent-task.ts +92 -0
- package/src/workflows/executors/base.ts +86 -0
- package/src/workflows/executors/code-match.ts +88 -0
- package/src/workflows/executors/index.ts +16 -0
- package/src/workflows/executors/notify.ts +93 -0
- package/src/workflows/executors/property-match.ts +104 -0
- package/src/workflows/executors/raw-llm.ts +83 -0
- package/src/workflows/executors/registry.ts +76 -0
- package/src/workflows/executors/script.ts +103 -0
- package/src/workflows/executors/validate.ts +215 -0
- package/src/workflows/executors/vcs.ts +58 -0
- package/src/workflows/index.ts +61 -0
- package/src/workflows/input.ts +46 -0
- package/src/workflows/json-schema-validator.ts +118 -0
- package/src/workflows/recovery.ts +139 -0
- package/src/workflows/resume.ts +143 -0
- package/src/workflows/retry-poller.ts +216 -0
- package/src/workflows/template.ts +74 -0
- package/src/workflows/templates.ts +86 -0
- package/src/workflows/triggers.ts +95 -0
- package/src/workflows/validation.ts +104 -0
- package/src/workflows/version.ts +42 -0
- package/src/x402/cli.ts +140 -0
- package/src/x402/client.ts +192 -0
- package/src/x402/config.ts +131 -0
- package/src/x402/index.ts +37 -0
- package/src/x402/openfort-signer.ts +83 -0
- package/src/x402/spending-tracker.ts +109 -0
- package/templates/community/.gitkeep +0 -0
- package/templates/official/coder/CLAUDE.md +49 -0
- package/templates/official/coder/IDENTITY.md +28 -0
- package/templates/official/coder/SOUL.md +43 -0
- package/templates/official/coder/TOOLS.md +40 -0
- package/templates/official/coder/config.json +23 -0
- package/templates/official/coder/start-up.sh +23 -0
- package/templates/official/content-reviewer/CLAUDE.md +68 -0
- package/templates/official/content-reviewer/IDENTITY.md +28 -0
- package/templates/official/content-reviewer/SOUL.md +44 -0
- package/templates/official/content-reviewer/TOOLS.md +37 -0
- package/templates/official/content-reviewer/config.json +23 -0
- package/templates/official/content-reviewer/start-up.sh +23 -0
- package/templates/official/content-strategist/CLAUDE.md +63 -0
- package/templates/official/content-strategist/IDENTITY.md +33 -0
- package/templates/official/content-strategist/SOUL.md +48 -0
- package/templates/official/content-strategist/TOOLS.md +47 -0
- package/templates/official/content-strategist/config.json +23 -0
- package/templates/official/content-strategist/start-up.sh +23 -0
- package/templates/official/content-writer/CLAUDE.md +72 -0
- package/templates/official/content-writer/IDENTITY.md +30 -0
- package/templates/official/content-writer/SOUL.md +46 -0
- package/templates/official/content-writer/TOOLS.md +44 -0
- package/templates/official/content-writer/config.json +23 -0
- package/templates/official/content-writer/start-up.sh +23 -0
- package/templates/official/forward-deployed-engineer/CLAUDE.md +54 -0
- package/templates/official/forward-deployed-engineer/IDENTITY.md +37 -0
- package/templates/official/forward-deployed-engineer/SOUL.md +55 -0
- package/templates/official/forward-deployed-engineer/config.json +21 -0
- package/templates/official/lead/CLAUDE.md +33 -0
- package/templates/official/lead/IDENTITY.md +36 -0
- package/templates/official/lead/SOUL.md +51 -0
- package/templates/official/lead/config.json +22 -0
- package/templates/official/researcher/CLAUDE.md +46 -0
- package/templates/official/researcher/IDENTITY.md +28 -0
- package/templates/official/researcher/SOUL.md +43 -0
- package/templates/official/researcher/config.json +21 -0
- package/templates/official/reviewer/CLAUDE.md +63 -0
- package/templates/official/reviewer/IDENTITY.md +28 -0
- package/templates/official/reviewer/SOUL.md +45 -0
- package/templates/official/reviewer/config.json +21 -0
- package/templates/official/tester/CLAUDE.md +53 -0
- package/templates/official/tester/IDENTITY.md +28 -0
- package/templates/official/tester/SOUL.md +55 -0
- package/templates/official/tester/config.json +21 -0
- package/templates/schema.ts +35 -0
- package/templates-ui/README.md +46 -0
- package/templates-ui/components.json +17 -0
- package/templates-ui/eslint.config.mjs +18 -0
- package/templates-ui/next.config.ts +7 -0
- package/templates-ui/package.json +35 -0
- package/templates-ui/pnpm-lock.yaml +4571 -0
- package/templates-ui/postcss.config.mjs +7 -0
- package/templates-ui/public/file.svg +1 -0
- package/templates-ui/public/globe.svg +1 -0
- package/templates-ui/public/logo.png +0 -0
- package/templates-ui/public/next.svg +1 -0
- package/templates-ui/public/vercel.svg +1 -0
- package/templates-ui/public/window.svg +1 -0
- package/templates-ui/src/app/[category]/[name]/page.tsx +89 -0
- package/templates-ui/src/app/api/templates/[...slug]/route.ts +52 -0
- package/templates-ui/src/app/api/templates/route.ts +18 -0
- package/templates-ui/src/app/builder/page.tsx +37 -0
- package/templates-ui/src/app/globals.css +94 -0
- package/templates-ui/src/app/layout.tsx +79 -0
- package/templates-ui/src/app/page.tsx +38 -0
- package/templates-ui/src/app/robots.ts +11 -0
- package/templates-ui/src/app/sitemap.ts +31 -0
- package/templates-ui/src/components/compose-builder.tsx +442 -0
- package/templates-ui/src/components/compose-preview.tsx +117 -0
- package/templates-ui/src/components/file-preview.tsx +77 -0
- package/templates-ui/src/components/footer.tsx +40 -0
- package/templates-ui/src/components/header.tsx +41 -0
- package/templates-ui/src/components/template-card.tsx +87 -0
- package/templates-ui/src/components/template-detail.tsx +125 -0
- package/templates-ui/src/components/template-gallery.tsx +263 -0
- package/templates-ui/src/components/ui/badge.tsx +36 -0
- package/templates-ui/src/components/ui/button.tsx +57 -0
- package/templates-ui/src/components/ui/card.tsx +76 -0
- package/templates-ui/src/components/ui/separator.tsx +31 -0
- package/templates-ui/src/components/ui/tooltip.tsx +32 -0
- package/templates-ui/src/lib/compose-generator.ts +241 -0
- package/templates-ui/src/lib/templates.ts +137 -0
- package/templates-ui/src/lib/utils.ts +6 -0
- package/templates-ui/tsconfig.json +34 -0
- package/thoughts/research/2026-02-28-openfort-viem-x402-research.md +679 -0
- package/thoughts/research/2026-02-28-x402-payments-research.md +686 -0
- package/thoughts/researcher/plans/2026-02-20-agent-self-improvement-plan.md +282 -0
- package/thoughts/researcher/research/2026-02-20-agent-self-improvement.md +492 -0
- package/thoughts/shared/plans/2026-02-26-mcp-tool-context-reduction.md +282 -0
- package/thoughts/shared/plans/2026-03-02-claude-context-mode-integration.md +328 -0
- package/thoughts/shared/plans/2026-03-02-code-level-heartbeat.md +224 -0
- package/thoughts/shared/research/2026-02-26-cliffy-mcp-tools.md +159 -0
- package/thoughts/shared/research/2026-03-03-database-migration-system-refactor.md +337 -0
- package/thoughts/swarm-researcher/plans/2026-02-23-openclaw-improvements-plan.md +778 -0
- package/thoughts/swarm-researcher/plans/2026-02-26-artifacts-localtunnel-plan.md +1269 -0
- package/thoughts/swarm-researcher/research/2026-02-23-openclaw-vs-agent-swarm-comparison.md +411 -0
- package/thoughts/swarm-researcher/research/2026-02-26-artifacts-localtunnel.md +724 -0
- package/thoughts/taras/brainstorms/2026-03-20-prompt-template-registry.md +443 -0
- package/thoughts/taras/brainstorms/2026-03-20-setup-cli-onboarding.md +307 -0
- package/thoughts/taras/plans/2026-02-20-auto-improvement.md +803 -0
- package/thoughts/taras/plans/2026-02-20-env-management.md +538 -0
- package/thoughts/taras/plans/2026-02-20-memory-system.md +882 -0
- package/thoughts/taras/plans/2026-02-20-repos-knowledge.md +806 -0
- package/thoughts/taras/plans/2026-02-20-session-attach.md +647 -0
- package/thoughts/taras/plans/2026-02-20-worker-identity.md +820 -0
- package/thoughts/taras/plans/2026-02-25-feat-new-ui-visual-redesign-plan.md +768 -0
- package/thoughts/taras/plans/2026-03-04-fix-buildSystemPrompt-missing-fields.md +77 -0
- package/thoughts/taras/plans/2026-03-04-new-ui-missing-actions.md +543 -0
- package/thoughts/taras/plans/2026-03-06-one-time-scheduled-tasks.md +373 -0
- package/thoughts/taras/plans/2026-03-08-memory-self-improvement-enhancements.md +512 -0
- package/thoughts/taras/plans/2026-03-08-pi-mono-provider-implementation.md +919 -0
- package/thoughts/taras/plans/2026-03-09-templates-registry.md +723 -0
- package/thoughts/taras/plans/2026-03-10-task-working-directory.md +371 -0
- package/thoughts/taras/plans/2026-03-11-archil-per-agent-write-strategy.md +621 -0
- package/thoughts/taras/plans/2026-03-12-eliminate-inbox-route-to-tasks.md +61 -0
- package/thoughts/taras/plans/2026-03-12-slack-thread-followup-additive.md +488 -0
- package/thoughts/taras/plans/2026-03-13-slack-ai-improvements.md +644 -0
- package/thoughts/taras/plans/2026-03-16-route-wrapper-openapi.md +636 -0
- package/thoughts/taras/plans/2026-03-17-multi-api-config.md +444 -0
- package/thoughts/taras/plans/2026-03-18-agent-fs-integration.md +591 -0
- package/thoughts/taras/plans/2026-03-18-debug-db-explorer.md +446 -0
- package/thoughts/taras/plans/2026-03-18-workflow-redesign.md +987 -0
- package/thoughts/taras/plans/2026-03-19-compound-learnings.md +403 -0
- package/thoughts/taras/plans/2026-03-19-ticket-tracker-linear-integration.md +860 -0
- package/thoughts/taras/plans/2026-03-19-workflow-io-schemas-and-bugs.md +899 -0
- package/thoughts/taras/plans/2026-03-20-setup-cli-onboarding.md +874 -0
- package/thoughts/taras/plans/2026-03-20-workflow-structured-output-validation-workspace.md +723 -0
- package/thoughts/taras/research/2026-02-19-agent-native-swarm-architecture.md +390 -0
- package/thoughts/taras/research/2026-02-19-swarm-gaps-implementation.md +594 -0
- package/thoughts/taras/research/2026-02-25-dashboard-ui-design-best-practices.md +825 -0
- package/thoughts/taras/research/2026-02-26-task-detail-page-redesign.md +393 -0
- package/thoughts/taras/research/2026-03-03-new-ui-missing-actions.md +168 -0
- package/thoughts/taras/research/2026-03-05-pi-mono-provider-research.md +230 -0
- package/thoughts/taras/research/2026-03-06-workflow-engine-design.md +445 -0
- package/thoughts/taras/research/2026-03-08-drive-loop-concept.md +375 -0
- package/thoughts/taras/research/2026-03-08-pi-mono-deep-dive.md +869 -0
- package/thoughts/taras/research/2026-03-09-templates-registry.md +373 -0
- package/thoughts/taras/research/2026-03-10-agent-working-directory.md +223 -0
- package/thoughts/taras/research/2026-03-10-configurable-event-prompts.md +339 -0
- package/thoughts/taras/research/2026-03-11-archil-production-setup.md +181 -0
- package/thoughts/taras/research/2026-03-11-archil-shared-disk-write-strategies.md +437 -0
- package/thoughts/taras/research/2026-03-13-slack-ai-features.md +258 -0
- package/thoughts/taras/research/2026-03-16-openapi-docs-generation.md +335 -0
- package/thoughts/taras/research/2026-03-16-route-wrapper-openapi.md +670 -0
- package/thoughts/taras/research/2026-03-16-slack-thread-followups-e2e.md +54 -0
- package/thoughts/taras/research/2026-03-18-agent-fs-integration.md +558 -0
- package/thoughts/taras/research/2026-03-18-linear-integration-finalization.md +526 -0
- package/thoughts/taras/research/2026-03-18-workflow-redesign.md +797 -0
- package/thoughts/taras/research/2026-03-19-workflow-node-io-schemas-and-bugs.md +563 -0
- package/thoughts/taras/research/2026-03-19-workflow-structured-output-validation-workspace.md +486 -0
- package/thoughts/taras/research/2026-03-20-prompt-template-registry.md +469 -0
- package/tsconfig.json +1 -1
- package/FAQ.md +0 -19
- package/src/tests/get-inbox-message.test.ts +0 -145
- package/src/tools/get-inbox-message.ts +0 -89
- package/src/tools/inbox-delegate.ts +0 -113
- package/ui/CLAUDE.md +0 -49
- package/ui/bun.lock +0 -771
- package/ui/index.html +0 -22
- package/ui/package-lock.json +0 -5290
- package/ui/package.json +0 -33
- package/ui/pnpm-lock.yaml +0 -3341
- package/ui/postcss.config.js +0 -6
- package/ui/src/App.tsx +0 -63
- package/ui/src/components/ActivityFeed.tsx +0 -440
- package/ui/src/components/AgentDetailPanel.tsx +0 -733
- package/ui/src/components/AgentsPanel.tsx +0 -815
- package/ui/src/components/ChatPanel.tsx +0 -1920
- package/ui/src/components/ConfigModal.tsx +0 -253
- package/ui/src/components/Dashboard.tsx +0 -832
- package/ui/src/components/EditAgentProfileModal.tsx +0 -433
- package/ui/src/components/EpicDetailPage.tsx +0 -741
- package/ui/src/components/EpicsPanel.tsx +0 -566
- package/ui/src/components/Header.tsx +0 -160
- package/ui/src/components/JsonViewer.tsx +0 -171
- package/ui/src/components/ScheduledTaskDetailPanel.tsx +0 -517
- package/ui/src/components/ScheduledTasksPanel.tsx +0 -639
- package/ui/src/components/ServicesPanel.tsx +0 -622
- package/ui/src/components/SessionLogPanel.tsx +0 -1219
- package/ui/src/components/StatsBar.tsx +0 -321
- package/ui/src/components/StatusBadge.tsx +0 -168
- package/ui/src/components/TaskDetailPanel.tsx +0 -903
- package/ui/src/components/TasksPanel.tsx +0 -614
- package/ui/src/components/UsageCharts.tsx +0 -216
- package/ui/src/components/UsageTab.tsx +0 -394
- package/ui/src/hooks/queries.ts +0 -353
- package/ui/src/index.css +0 -257
- package/ui/src/lib/api.ts +0 -268
- package/ui/src/lib/config.ts +0 -35
- package/ui/src/lib/contentPreview.ts +0 -208
- package/ui/src/lib/theme.ts +0 -214
- package/ui/src/main.tsx +0 -28
- package/ui/src/vite-env.d.ts +0 -1
- package/ui/tailwind.config.js +0 -37
- package/ui/vite.config.ts +0 -35
- /package/{ui → docs-site}/public/logo.png +0 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: close-issue
|
|
3
|
+
description: Close a GitHub or GitLab issue with a summary comment
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Close Issue
|
|
7
|
+
|
|
8
|
+
Close a GitHub or GitLab issue with an appropriate closing comment summarizing the resolution.
|
|
9
|
+
|
|
10
|
+
**Provider detection:** Check the URL or remote to determine the VCS provider:
|
|
11
|
+
- If GitHub → use `gh issue close` / `gh issue comment`
|
|
12
|
+
- If GitLab → use `glab issue close` / `glab issue note`
|
|
13
|
+
|
|
14
|
+
## Arguments
|
|
15
|
+
|
|
16
|
+
- `issue-number-or-url`: Either an issue number (e.g., `123`) or a full issue URL (e.g., `https://github.com/owner/repo/issues/123` or `https://gitlab.com/group/project/-/issues/123`)
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
### 1. Parse the Input
|
|
21
|
+
|
|
22
|
+
If given a URL, extract the owner, repo, and issue number. If given just a number, use the current repository context.
|
|
23
|
+
|
|
24
|
+
### 2. Ensure Repository is Cloned Locally
|
|
25
|
+
|
|
26
|
+
Make sure the repository is available in your personal workspace:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
REPO_PATH=/workspace/personal/<repo-name>
|
|
30
|
+
|
|
31
|
+
if [ ! -d "$REPO_PATH" ]; then
|
|
32
|
+
gh repo clone <owner>/<repo> "$REPO_PATH"
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
cd "$REPO_PATH"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 3. Get Issue Details
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
gh issue view <issue-number> --json title,body,author,labels,comments
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 4. Understand the Context
|
|
45
|
+
|
|
46
|
+
Review:
|
|
47
|
+
- What was the original issue about?
|
|
48
|
+
- What work was done to resolve it?
|
|
49
|
+
- Were there any related PRs or commits?
|
|
50
|
+
|
|
51
|
+
Check for related PRs:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
gh pr list --search "fixes #<issue-number>" --json number,title,state
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 5. Generate Closing Comment
|
|
58
|
+
|
|
59
|
+
Write a closing comment that includes:
|
|
60
|
+
- Brief summary of what was done
|
|
61
|
+
- Reference to any PRs that addressed the issue
|
|
62
|
+
- Any follow-up items or notes
|
|
63
|
+
|
|
64
|
+
### 6. Post Comment and Close
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Add the closing comment
|
|
68
|
+
gh issue comment <issue-number> --body "Your closing comment"
|
|
69
|
+
|
|
70
|
+
# Close the issue
|
|
71
|
+
gh issue close <issue-number>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Or combine with a reason:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
gh issue close <issue-number> --comment "Your closing comment" --reason completed
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Closing Reasons
|
|
81
|
+
|
|
82
|
+
- `completed` - The issue was resolved
|
|
83
|
+
- `not_planned` - Won't fix / out of scope / duplicate
|
|
84
|
+
|
|
85
|
+
## Tips
|
|
86
|
+
|
|
87
|
+
- Always explain why the issue is being closed
|
|
88
|
+
- Reference specific PRs or commits when applicable
|
|
89
|
+
- If closing as "not planned", explain the reasoning
|
|
90
|
+
- Be respectful - someone took time to report the issue
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: create-pr
|
|
3
|
+
description: Create a pull request (GitHub) or merge request (GitLab) from the current branch
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Create Pull Request / Merge Request
|
|
7
|
+
|
|
8
|
+
Create a pull request (GitHub) or merge request (GitLab) from the current branch with an auto-generated title and description.
|
|
9
|
+
|
|
10
|
+
**Provider detection:** Check the remote URL to determine the VCS provider:
|
|
11
|
+
- If the remote contains `github.com` → use `gh` CLI
|
|
12
|
+
- If the remote contains `gitlab.com` or `gitlab.` → use `glab` CLI
|
|
13
|
+
|
|
14
|
+
## Arguments
|
|
15
|
+
|
|
16
|
+
- `base-branch` (optional): The branch to merge into (defaults to `main` or the repo's default branch)
|
|
17
|
+
|
|
18
|
+
## Prerequisites
|
|
19
|
+
|
|
20
|
+
You should be working in a repository cloned to `/workspace/personal/<repo-name>`.
|
|
21
|
+
|
|
22
|
+
## Workflow
|
|
23
|
+
|
|
24
|
+
### 1. Verify Working Directory
|
|
25
|
+
|
|
26
|
+
Ensure you're in a git repository:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
git rev-parse --is-inside-work-tree
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 2. Check Branch Status
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Get current branch
|
|
36
|
+
git branch --show-current
|
|
37
|
+
|
|
38
|
+
# Ensure we're not on main/master
|
|
39
|
+
# Ensure there are commits to push
|
|
40
|
+
git log origin/main..HEAD --oneline
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 3. Push the Branch
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
git push -u origin HEAD
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 4. Gather Context for PR Description
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Get commit messages since diverging from base
|
|
53
|
+
git log origin/main..HEAD --pretty=format:"%s%n%b"
|
|
54
|
+
|
|
55
|
+
# Get changed files
|
|
56
|
+
git diff --stat origin/main..HEAD
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 5. Generate PR Title and Description
|
|
60
|
+
|
|
61
|
+
Based on the commits and changes:
|
|
62
|
+
- **Title**: Concise summary of the changes (use conventional commit style if the repo uses it)
|
|
63
|
+
- **Description**:
|
|
64
|
+
- Summary of what changed and why
|
|
65
|
+
- List of notable changes
|
|
66
|
+
- Any testing done
|
|
67
|
+
- Related issues (if applicable)
|
|
68
|
+
|
|
69
|
+
### 6. Create the PR/MR
|
|
70
|
+
|
|
71
|
+
**For GitHub:**
|
|
72
|
+
```bash
|
|
73
|
+
gh pr create \
|
|
74
|
+
--title "Your generated title" \
|
|
75
|
+
--body "Your generated description" \
|
|
76
|
+
--base main
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**For GitLab:**
|
|
80
|
+
```bash
|
|
81
|
+
glab mr create \
|
|
82
|
+
--title "Your generated title" \
|
|
83
|
+
--description "Your generated description" \
|
|
84
|
+
--target-branch main
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 7. Report the PR/MR URL
|
|
88
|
+
|
|
89
|
+
After creation, provide the URL to the user:
|
|
90
|
+
|
|
91
|
+
**GitHub:** `gh pr view --json url --jq '.url'`
|
|
92
|
+
**GitLab:** `glab mr view --web`
|
|
93
|
+
|
|
94
|
+
## Tips
|
|
95
|
+
|
|
96
|
+
- Link related issues using `Fixes #123` or `Closes #123` in the description
|
|
97
|
+
- Include a test plan if the changes are significant
|
|
98
|
+
- Keep PRs focused - one logical change per PR
|
|
99
|
+
- If the branch has many commits, consider summarizing the overall change rather than listing each commit
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: implement-issue
|
|
3
|
+
description: Implement a GitHub issue or GitLab issue and create a PR/MR
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Implement Issue
|
|
7
|
+
|
|
8
|
+
Read a GitHub or GitLab issue, implement the requested changes, and create a pull request / merge request.
|
|
9
|
+
|
|
10
|
+
**Provider detection:** Check the URL or remote to determine the VCS provider:
|
|
11
|
+
- If GitHub → use `gh issue view` / `gh pr create`
|
|
12
|
+
- If GitLab → use `glab issue view` / `glab mr create`
|
|
13
|
+
|
|
14
|
+
## Arguments
|
|
15
|
+
|
|
16
|
+
- `issue-number-or-url`: Either an issue number (e.g., `123`) or a full URL (e.g., `https://github.com/owner/repo/issues/123` or `https://gitlab.com/group/project/-/issues/123`)
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
### 1. Parse the Input
|
|
21
|
+
|
|
22
|
+
If given a URL, extract the owner, repo, and issue number. If given just a number, use the current repository context.
|
|
23
|
+
|
|
24
|
+
### 2. Fetch Issue Details
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
gh issue view <issue-number> --json number,title,body,labels,comments
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Read and understand:
|
|
31
|
+
- What is being requested?
|
|
32
|
+
- Are there acceptance criteria?
|
|
33
|
+
- Any technical details or constraints mentioned?
|
|
34
|
+
- Check comments for additional context or clarifications
|
|
35
|
+
|
|
36
|
+
### 3. Ensure Repository is Cloned
|
|
37
|
+
|
|
38
|
+
Clone the repository to your personal workspace if not already present:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
REPO_PATH=/workspace/personal/<repo-name>
|
|
42
|
+
|
|
43
|
+
if [ ! -d "$REPO_PATH" ]; then
|
|
44
|
+
gh repo clone <owner>/<repo> "$REPO_PATH"
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
cd "$REPO_PATH"
|
|
48
|
+
git fetch origin
|
|
49
|
+
git checkout main
|
|
50
|
+
git pull origin main
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 4. Create a Feature Branch
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Use a descriptive branch name based on the issue
|
|
57
|
+
git checkout -b fix/issue-<number>-<short-description>
|
|
58
|
+
|
|
59
|
+
# Examples:
|
|
60
|
+
# git checkout -b fix/issue-123-add-dark-mode
|
|
61
|
+
# git checkout -b fix/issue-456-fix-login-redirect
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 5. Implement the Changes
|
|
65
|
+
|
|
66
|
+
This is the core work. Based on the issue:
|
|
67
|
+
|
|
68
|
+
1. **Understand the codebase** - Explore relevant files, understand existing patterns
|
|
69
|
+
2. **Plan your approach** - Consider using plan creation for complex changes
|
|
70
|
+
3. **Write the code** - Implement the requested functionality
|
|
71
|
+
4. **Test your changes** - Run existing tests, add new tests if appropriate
|
|
72
|
+
5. **Verify it works** - Manual verification where possible
|
|
73
|
+
|
|
74
|
+
Keep changes focused on what the issue requests. Avoid scope creep.
|
|
75
|
+
|
|
76
|
+
### 6. Commit Your Changes
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# Stage your changes
|
|
80
|
+
git add -A
|
|
81
|
+
|
|
82
|
+
# Commit with a message referencing the issue
|
|
83
|
+
git commit -m "Fix #<issue-number>: <short description>
|
|
84
|
+
|
|
85
|
+
<longer description if needed>"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Use conventional commit style if the repo uses it (e.g., `feat:`, `fix:`, `docs:`).
|
|
89
|
+
|
|
90
|
+
### 7. Push the Branch
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
git push -u origin HEAD
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 8. Create the Pull Request
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
gh pr create \
|
|
100
|
+
--title "<descriptive title>" \
|
|
101
|
+
--body "## Summary
|
|
102
|
+
<Brief description of what this PR does>
|
|
103
|
+
|
|
104
|
+
## Changes
|
|
105
|
+
- <List key changes>
|
|
106
|
+
|
|
107
|
+
## Testing
|
|
108
|
+
- <How you tested the changes>
|
|
109
|
+
|
|
110
|
+
Fixes #<issue-number>"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
The `Fixes #<number>` syntax will auto-close the issue when the PR is merged.
|
|
114
|
+
|
|
115
|
+
### 9. Report Back
|
|
116
|
+
|
|
117
|
+
Provide the user with:
|
|
118
|
+
- PR URL
|
|
119
|
+
- Summary of changes made
|
|
120
|
+
- Any notes or caveats
|
|
121
|
+
|
|
122
|
+
Optionally, comment on the original issue:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
gh issue comment <issue-number> --body "I've created a PR to address this: <PR-URL>"
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Tips
|
|
129
|
+
|
|
130
|
+
- Read the issue thoroughly before starting - misunderstanding wastes time
|
|
131
|
+
- Check if there are related issues or existing PRs
|
|
132
|
+
- Keep PRs focused - one issue = one PR
|
|
133
|
+
- If the issue is too large, consider breaking it into smaller PRs
|
|
134
|
+
- If you get stuck or the issue is unclear, use `/skill:respond-github` to ask for clarification
|
|
135
|
+
- Run linters and tests before creating the PR
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: investigate-sentry-issue
|
|
3
|
+
description: Investigate and triage a Sentry error issue
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Investigate Sentry Issue
|
|
7
|
+
|
|
8
|
+
Investigate a Sentry issue to understand the error, gather context, and prepare for fixing or triaging.
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
Environment variables `SENTRY_AUTH_TOKEN` and `SENTRY_ORG` must be set (they are pre-configured in the worker environment).
|
|
13
|
+
|
|
14
|
+
Verify authentication:
|
|
15
|
+
```bash
|
|
16
|
+
sentry-cli info
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Arguments
|
|
20
|
+
|
|
21
|
+
- `sentry-issue-url-or-id`: Either a Sentry issue URL (e.g., `https://sentry.io/organizations/myorg/issues/123456/`) or just the issue ID (e.g., `123456`)
|
|
22
|
+
|
|
23
|
+
## Workflow
|
|
24
|
+
|
|
25
|
+
### 1. Parse the Sentry URL
|
|
26
|
+
|
|
27
|
+
If given a URL, extract the issue ID:
|
|
28
|
+
```bash
|
|
29
|
+
# URL format: https://sentry.io/organizations/{org}/issues/{issue_id}/
|
|
30
|
+
# Extract issue_id from the URL path
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2. Get Issue Overview
|
|
34
|
+
|
|
35
|
+
Use `sentry-cli` to list the issue:
|
|
36
|
+
```bash
|
|
37
|
+
sentry-cli issues list --id <issue-id>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 3. Get Detailed Issue Information
|
|
41
|
+
|
|
42
|
+
For more context, use the REST API:
|
|
43
|
+
```bash
|
|
44
|
+
curl -s "https://sentry.io/api/0/organizations/${SENTRY_ORG}/issues/<issue-id>/" \
|
|
45
|
+
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" | jq
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
This returns:
|
|
49
|
+
- Error title and metadata
|
|
50
|
+
- First/last seen timestamps
|
|
51
|
+
- Event count and user impact
|
|
52
|
+
- Assigned user and status
|
|
53
|
+
|
|
54
|
+
### 4. Get Full Stacktrace
|
|
55
|
+
|
|
56
|
+
The recommended event provides the best debugging context:
|
|
57
|
+
```bash
|
|
58
|
+
curl -s "https://sentry.io/api/0/organizations/${SENTRY_ORG}/issues/<issue-id>/events/recommended/" \
|
|
59
|
+
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" | jq
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Key fields in the response:
|
|
63
|
+
- `.entries[] | select(.type == "exception")` - The exception with stacktrace
|
|
64
|
+
- `.entries[] | select(.type == "breadcrumbs")` - Actions leading to the error
|
|
65
|
+
- `.tags` - Environment, browser, OS info
|
|
66
|
+
- `.context` - Custom context data
|
|
67
|
+
|
|
68
|
+
### 5. Extract Stacktrace Frames
|
|
69
|
+
|
|
70
|
+
To see the actual stack:
|
|
71
|
+
```bash
|
|
72
|
+
curl -s "https://sentry.io/api/0/organizations/${SENTRY_ORG}/issues/<issue-id>/events/recommended/" \
|
|
73
|
+
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" | \
|
|
74
|
+
jq '.entries[] | select(.type == "exception") | .data.values[].stacktrace.frames'
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 6. Analyze and Report
|
|
78
|
+
|
|
79
|
+
Based on the stacktrace and context:
|
|
80
|
+
1. Identify the failing file and line number
|
|
81
|
+
2. Understand the error type and message
|
|
82
|
+
3. Review breadcrumbs for the sequence of events
|
|
83
|
+
4. Check tags for environment-specific issues
|
|
84
|
+
|
|
85
|
+
### 7. Take Action (if appropriate)
|
|
86
|
+
|
|
87
|
+
**Resolve an issue:**
|
|
88
|
+
```bash
|
|
89
|
+
sentry-cli issues resolve <issue-id>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Mute an issue:**
|
|
93
|
+
```bash
|
|
94
|
+
sentry-cli issues mute <issue-id>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Unresolve an issue:**
|
|
98
|
+
```bash
|
|
99
|
+
sentry-cli issues unresolve <issue-id>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Common CLI Commands
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# Verify authentication
|
|
106
|
+
sentry-cli info
|
|
107
|
+
|
|
108
|
+
# List unresolved issues
|
|
109
|
+
sentry-cli issues list --query "is:unresolved"
|
|
110
|
+
|
|
111
|
+
# List recent issues (last 2 days)
|
|
112
|
+
sentry-cli issues list --query "lastSeen:-2d"
|
|
113
|
+
|
|
114
|
+
# List issues matching a message
|
|
115
|
+
sentry-cli issues list --query "message:undefined"
|
|
116
|
+
|
|
117
|
+
# Bulk resolve issues
|
|
118
|
+
sentry-cli issues resolve <id1> <id2> <id3>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Search Query Syntax
|
|
122
|
+
|
|
123
|
+
Use these filters with `--query`:
|
|
124
|
+
|
|
125
|
+
| Filter | Example | Description |
|
|
126
|
+
|--------|---------|-------------|
|
|
127
|
+
| `is:` | `is:unresolved`, `is:resolved` | Issue status |
|
|
128
|
+
| `lastSeen:` | `lastSeen:-2d` | Seen within time range |
|
|
129
|
+
| `message:` | `message:undefined` | Match error message |
|
|
130
|
+
| `issue.category:` | `issue.category:error` | Error category |
|
|
131
|
+
|
|
132
|
+
## Tips
|
|
133
|
+
|
|
134
|
+
- Always get the recommended event first - it's curated for debugging
|
|
135
|
+
- Use `jq` to filter large JSON responses
|
|
136
|
+
- Check breadcrumbs to understand user actions before the error
|
|
137
|
+
- Look at tags for environment info (browser, OS, etc.)
|
|
138
|
+
- If investigating from a Slack alert, the issue URL is in the alert message
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: respond-github
|
|
3
|
+
description: Respond to a GitHub issue/PR or GitLab issue/MR
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Respond to VCS Issue/PR/MR
|
|
7
|
+
|
|
8
|
+
Post a response to a GitHub issue/PR or GitLab issue/MR.
|
|
9
|
+
|
|
10
|
+
**Provider detection:** Check the URL or remote to determine the VCS provider:
|
|
11
|
+
- If GitHub → use `gh issue comment` / `gh pr comment`
|
|
12
|
+
- If GitLab → use `glab issue note` / `glab mr note`
|
|
13
|
+
|
|
14
|
+
## Arguments
|
|
15
|
+
|
|
16
|
+
- `issue-or-pr-number-or-url`: Either a number (e.g., `123`) or a full URL (e.g., `https://github.com/owner/repo/issues/123` or `https://gitlab.com/group/project/-/issues/123`)
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
### 1. Parse the Input
|
|
21
|
+
|
|
22
|
+
If given a URL, extract:
|
|
23
|
+
- Owner and repo
|
|
24
|
+
- Whether it's an issue or PR (from the URL path)
|
|
25
|
+
- The number
|
|
26
|
+
|
|
27
|
+
If given just a number, use the current repository context and check if it's an issue or PR.
|
|
28
|
+
|
|
29
|
+
### 2. Ensure Repository is Cloned Locally
|
|
30
|
+
|
|
31
|
+
Make sure the repository is available in your personal workspace:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
REPO_PATH=/workspace/personal/<repo-name>
|
|
35
|
+
|
|
36
|
+
if [ ! -d "$REPO_PATH" ]; then
|
|
37
|
+
gh repo clone <owner>/<repo> "$REPO_PATH"
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
cd "$REPO_PATH"
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 3. Get Full Context
|
|
44
|
+
|
|
45
|
+
For issues:
|
|
46
|
+
```bash
|
|
47
|
+
gh issue view <number> --json title,body,author,labels,comments,state
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
For PRs:
|
|
51
|
+
```bash
|
|
52
|
+
gh pr view <number> --json title,body,author,comments,state,reviews
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 4. Understand What's Being Asked
|
|
56
|
+
|
|
57
|
+
Read through:
|
|
58
|
+
- The original issue/PR description
|
|
59
|
+
- All comments in the thread
|
|
60
|
+
- Any specific questions or requests
|
|
61
|
+
|
|
62
|
+
If this is a task from agent-swarm with `@agent-swarm` mention, focus on what was asked in that mention.
|
|
63
|
+
|
|
64
|
+
### 5. Formulate Your Response
|
|
65
|
+
|
|
66
|
+
Consider:
|
|
67
|
+
- What specific question or request needs addressing?
|
|
68
|
+
- Do you need to provide code examples?
|
|
69
|
+
- Should you ask clarifying questions?
|
|
70
|
+
- Is this something you can resolve, or do you need human input?
|
|
71
|
+
|
|
72
|
+
### 6. Post the Response
|
|
73
|
+
|
|
74
|
+
For issues:
|
|
75
|
+
```bash
|
|
76
|
+
gh issue comment <number> --body "Your response"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
For PRs:
|
|
80
|
+
```bash
|
|
81
|
+
gh pr comment <number> --body "Your response"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Response Guidelines
|
|
85
|
+
|
|
86
|
+
- Be helpful and constructive
|
|
87
|
+
- If you don't know something, say so
|
|
88
|
+
- Provide code examples when relevant
|
|
89
|
+
- Use markdown formatting for readability
|
|
90
|
+
- Keep responses focused and concise
|
|
91
|
+
- If you've completed work, link to the relevant PR or commit
|
|
92
|
+
|
|
93
|
+
## Tips
|
|
94
|
+
|
|
95
|
+
- Check if there's already a PR addressing an issue before responding
|
|
96
|
+
- If asked to implement something, consider whether to respond first or just do it
|
|
97
|
+
- For complex requests, acknowledge receipt and outline your plan
|
|
98
|
+
- Tag relevant people with `@username` if needed
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review-offered-task
|
|
3
|
+
description: Review a task that has been offered to you and decide whether to accept or reject it
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Review Offered Task
|
|
7
|
+
|
|
8
|
+
You have been offered a task. Your job is to review it and decide whether to accept or reject it based on your capabilities and current workload.
|
|
9
|
+
|
|
10
|
+
## Workflow
|
|
11
|
+
|
|
12
|
+
1. **Get task details**: Call the `get-task-details` tool with the provided `taskId` to understand what the task involves.
|
|
13
|
+
|
|
14
|
+
2. **Evaluate the task**: Consider:
|
|
15
|
+
- Does this task match your capabilities?
|
|
16
|
+
- Do you have the necessary context or access to complete it?
|
|
17
|
+
- Is the task description clear enough to proceed?
|
|
18
|
+
|
|
19
|
+
3. **Make a decision**:
|
|
20
|
+
- **Accept**: If you can complete this task, call `task-action` with `action: "accept"` and `taskId: "<taskId>"`. Then immediately use `/skill:work-on-task <taskId>` to start working on it.
|
|
21
|
+
- **Reject**: If you cannot complete this task, call `task-action` with `action: "reject"`, `taskId: "<taskId>"`, and provide a `reason` explaining why you're rejecting it (e.g., "Task requires Python expertise which I don't have", "Task description is too vague").
|
|
22
|
+
|
|
23
|
+
## Example Accept Flow
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
1. get-task-details taskId="abc-123"
|
|
27
|
+
2. [Review the task details]
|
|
28
|
+
3. task-action action="accept" taskId="abc-123"
|
|
29
|
+
4. /skill:work-on-task abc-123
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Example Reject Flow
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
1. get-task-details taskId="abc-123"
|
|
36
|
+
2. [Review the task details]
|
|
37
|
+
3. task-action action="reject" taskId="abc-123" reason="Task requires access to production database which I don't have"
|
|
38
|
+
4. Reply "DONE" to end the session
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Important Notes
|
|
42
|
+
|
|
43
|
+
- Always provide a clear reason when rejecting a task - this helps the lead agent reassign it appropriately
|
|
44
|
+
- If you accept, you must immediately start working on the task using `/skill:work-on-task`
|
|
45
|
+
- If you reject, the task returns to the unassigned pool for reassignment
|