agent-toolkit-cli 1.11.0__py3-none-win_amd64.whl
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.
- agent_toolkit/__init__.py +4 -0
- agent_toolkit/__main__.py +5 -0
- agent_toolkit/_paths.py +145 -0
- agent_toolkit/bin/.gitkeep +0 -0
- agent_toolkit/bin/agent-toolkit.exe +0 -0
- agent_toolkit/cli/__init__.py +0 -0
- agent_toolkit/cli/__main__.py +5 -0
- agent_toolkit/cli/build.py +278 -0
- agent_toolkit/cli/completion.py +297 -0
- agent_toolkit/cli/context_budget.py +455 -0
- agent_toolkit/cli/devcompanion.py +923 -0
- agent_toolkit/cli/devcompanion_queue.py +235 -0
- agent_toolkit/cli/diff.py +176 -0
- agent_toolkit/cli/doctor.py +1052 -0
- agent_toolkit/cli/insights.py +771 -0
- agent_toolkit/cli/install.py +706 -0
- agent_toolkit/cli/main.py +171 -0
- agent_toolkit/cli/mcp.py +537 -0
- agent_toolkit/cli/memory.py +739 -0
- agent_toolkit/cli/plugin.py +224 -0
- agent_toolkit/cli/project.py +459 -0
- agent_toolkit/cli/release.py +178 -0
- agent_toolkit/cli/skills.py +461 -0
- agent_toolkit/cli/uninstall.py +166 -0
- agent_toolkit/cli/update.py +298 -0
- agent_toolkit/cli/workspace.py +1713 -0
- agent_toolkit/compiler/hook_registry.py +110 -0
- agent_toolkit/compiler/loader.py +338 -0
- agent_toolkit/compiler/mcp_registry.py +87 -0
- agent_toolkit/compiler/model.py +182 -0
- agent_toolkit/compiler/provenance.py +140 -0
- agent_toolkit/compiler/registry_emit.py +263 -0
- agent_toolkit/compiler/target_registry.py +122 -0
- agent_toolkit/compiler/targets/__init__.py +1 -0
- agent_toolkit/compiler/targets/agent_plugins.py +160 -0
- agent_toolkit/compiler/targets/base.py +229 -0
- agent_toolkit/compiler/targets/claude_code.py +241 -0
- agent_toolkit/compiler/targets/codex.py +261 -0
- agent_toolkit/compiler/targets/copilot.py +275 -0
- agent_toolkit/compiler/targets/cursor.py +207 -0
- agent_toolkit/compiler/targets/gemini_cli.py +213 -0
- agent_toolkit/compiler/targets/muse_code.py +113 -0
- agent_toolkit/compiler/targets/opencode.py +204 -0
- agent_toolkit/compiler/targets/pi.py +263 -0
- agent_toolkit/compiler/targets/windsurf.py +267 -0
- agent_toolkit/compiler/tool_mapping.py +83 -0
- agent_toolkit/data/.gitignore +4 -0
- agent_toolkit/data/__init__.py +1 -0
- agent_toolkit/data/agents/agentic-security-reviewer/AGENT.md +60 -0
- agent_toolkit/data/agents/architect/AGENT.md +30 -0
- agent_toolkit/data/agents/assistant/AGENT.md +59 -0
- agent_toolkit/data/agents/build-error-resolver/AGENT.md +30 -0
- agent_toolkit/data/agents/client-workflow-bootstrap/AGENT.md +60 -0
- agent_toolkit/data/agents/code-reviewer/AGENT.md +49 -0
- agent_toolkit/data/agents/database-reviewer/AGENT.md +44 -0
- agent_toolkit/data/agents/docs-lookup/AGENT.md +28 -0
- agent_toolkit/data/agents/e2e-runner/AGENT.md +38 -0
- agent_toolkit/data/agents/performance-optimizer/AGENT.md +52 -0
- agent_toolkit/data/agents/planner/AGENT.md +41 -0
- agent_toolkit/data/agents/refactor-cleaner/AGENT.md +43 -0
- agent_toolkit/data/agents/reference-lookup/AGENT.md +33 -0
- agent_toolkit/data/agents/security-reviewer/AGENT.md +47 -0
- agent_toolkit/data/agents/tdd-guide/AGENT.md +58 -0
- agent_toolkit/data/agents/tech-assistant/AGENT.md +11 -0
- agent_toolkit/data/agents/typescript-reviewer/AGENT.md +61 -0
- agent_toolkit/data/capabilities/hooks/README.md +6 -0
- agent_toolkit/data/capabilities/hooks/pre-commit-validate.yaml +26 -0
- agent_toolkit/data/capabilities/hooks/scripts/pre-commit-validate.sh +41 -0
- agent_toolkit/data/capabilities/hooks/scripts/session-start-context.sh +11 -0
- agent_toolkit/data/capabilities/hooks/session-start-context.yaml +23 -0
- agent_toolkit/data/capabilities/targets/registry.yaml +90 -0
- agent_toolkit/data/capabilities/upstream.lock +118 -0
- agent_toolkit/data/catalogs/agent-catalog.yaml +81 -0
- agent_toolkit/data/catalogs/loop-catalog.yaml +55 -0
- agent_toolkit/data/catalogs/skill-catalog.yaml +520 -0
- agent_toolkit/data/catalogs/skills-layout.json +391 -0
- agent_toolkit/data/distributions/products.yaml +190 -0
- agent_toolkit/data/distributions/targets/claude-code.yaml +47 -0
- agent_toolkit/data/distributions/targets/cursor.yaml +42 -0
- agent_toolkit/data/distributions/targets/opencode.yaml +55 -0
- agent_toolkit/data/loops/changelog-drafter/loop.yaml +40 -0
- agent_toolkit/data/loops/ci-sweeper/loop.yaml +53 -0
- agent_toolkit/data/loops/daily-triage/loop.yaml +47 -0
- agent_toolkit/data/loops/dep-sweeper/loop.yaml +46 -0
- agent_toolkit/data/loops/issue-triage/loop.yaml +40 -0
- agent_toolkit/data/loops/oss-daily-briefing/loop.yaml +65 -0
- agent_toolkit/data/loops/oss-pr-monitor/loop.yaml +86 -0
- agent_toolkit/data/loops/oss-triage/loop.yaml +67 -0
- agent_toolkit/data/loops/post-merge-cleanup/loop.yaml +44 -0
- agent_toolkit/data/loops/pr-babysitter/loop.yaml +46 -0
- agent_toolkit/data/mcp/registry/chrome-devtools.yaml +61 -0
- agent_toolkit/data/mcp/registry/clickup.yaml +48 -0
- agent_toolkit/data/mcp/registry/figma.yaml +44 -0
- agent_toolkit/data/mcp/registry/github.yaml +52 -0
- agent_toolkit/data/mcp/registry/linear.yaml +47 -0
- agent_toolkit/data/mcp/registry/notion.yaml +48 -0
- agent_toolkit/data/mcp/registry/slack.yaml +46 -0
- agent_toolkit/data/mcp/templates/chrome-devtools/README.md +57 -0
- agent_toolkit/data/mcp/templates/chrome-devtools/config.template.json +6 -0
- agent_toolkit/data/mcp/templates/clickup/README.md +45 -0
- agent_toolkit/data/mcp/templates/clickup/config.template.json +8 -0
- agent_toolkit/data/mcp/templates/clickup/wrapper.sh +23 -0
- agent_toolkit/data/mcp/templates/figma/README.md +54 -0
- agent_toolkit/data/mcp/templates/figma/config.template.json +9 -0
- agent_toolkit/data/mcp/templates/github/README.md +16 -0
- agent_toolkit/data/mcp/templates/github/config.template.json +15 -0
- agent_toolkit/data/mcp/templates/github/wrapper.sh +6 -0
- agent_toolkit/data/mcp/templates/linear/README.md +49 -0
- agent_toolkit/data/mcp/templates/linear/config.template.json +10 -0
- agent_toolkit/data/mcp/templates/notion/README.md +7 -0
- agent_toolkit/data/mcp/templates/notion/config.template.json +8 -0
- agent_toolkit/data/mcp/templates/notion/wrapper.sh +23 -0
- agent_toolkit/data/mcp/templates/slack/README.md +8 -0
- agent_toolkit/data/mcp/templates/slack/config.template.json +9 -0
- agent_toolkit/data/mcp/templates/slack/wrapper.sh +23 -0
- agent_toolkit/data/packs/README.md +66 -0
- agent_toolkit/data/packs/agentic-security/README.md +19 -0
- agent_toolkit/data/packs/agentic-security/config.yaml +25 -0
- agent_toolkit/data/packs/architecture/README.md +22 -0
- agent_toolkit/data/packs/architecture/config.yaml +27 -0
- agent_toolkit/data/packs/code-quality/README.md +19 -0
- agent_toolkit/data/packs/code-quality/config.yaml +21 -0
- agent_toolkit/data/packs/delivery-discipline/README.md +19 -0
- agent_toolkit/data/packs/delivery-discipline/config.yaml +42 -0
- agent_toolkit/data/packs/design-engineering/README.md +19 -0
- agent_toolkit/data/packs/design-engineering/config.yaml +41 -0
- agent_toolkit/data/packs/engineering-workflow/README.md +21 -0
- agent_toolkit/data/packs/engineering-workflow/config.yaml +57 -0
- agent_toolkit/data/packs/oss-maintenance/README.md +245 -0
- agent_toolkit/data/packs/oss-maintenance/config.yaml +75 -0
- agent_toolkit/data/profiles/claude-code/CLAUDE.md +110 -0
- agent_toolkit/data/profiles/claude-code/agents/assistant.md +59 -0
- agent_toolkit/data/profiles/claude-code/agents/build-error-resolver.md +30 -0
- agent_toolkit/data/profiles/claude-code/agents/client-workflow-bootstrap.md +60 -0
- agent_toolkit/data/profiles/claude-code/agents/contribution-planner.md +39 -0
- agent_toolkit/data/profiles/claude-code/agents/database-reviewer.md +44 -0
- agent_toolkit/data/profiles/claude-code/agents/docs-lookup.md +28 -0
- agent_toolkit/data/profiles/claude-code/agents/e2e-runner.md +38 -0
- agent_toolkit/data/profiles/claude-code/agents/performance-optimizer.md +52 -0
- agent_toolkit/data/profiles/claude-code/agents/planner.md +41 -0
- agent_toolkit/data/profiles/claude-code/agents/refactor-cleaner.md +43 -0
- agent_toolkit/data/profiles/claude-code/agents/reference-lookup.md +33 -0
- agent_toolkit/data/profiles/claude-code/agents/security-reviewer.md +47 -0
- agent_toolkit/data/profiles/claude-code/agents/tdd-guide.md +58 -0
- agent_toolkit/data/profiles/claude-code/agents/typescript-reviewer.md +61 -0
- agent_toolkit/data/profiles/claude-code/settings.json +86 -0
- agent_toolkit/data/profiles/copilot/copilot-instructions.md +15 -0
- agent_toolkit/data/profiles/cursor/README.md +33 -0
- agent_toolkit/data/profiles/cursor/rules/architect.mdc +23 -0
- agent_toolkit/data/profiles/cursor/rules/assistant.mdc +61 -0
- agent_toolkit/data/profiles/cursor/rules/build-error-resolver.mdc +20 -0
- agent_toolkit/data/profiles/cursor/rules/code-reviewer.mdc +21 -0
- agent_toolkit/data/profiles/cursor/rules/database-reviewer.mdc +29 -0
- agent_toolkit/data/profiles/cursor/rules/docs-lookup.mdc +15 -0
- agent_toolkit/data/profiles/cursor/rules/e2e-runner.mdc +30 -0
- agent_toolkit/data/profiles/cursor/rules/performance-optimizer.mdc +27 -0
- agent_toolkit/data/profiles/cursor/rules/planner.mdc +28 -0
- agent_toolkit/data/profiles/cursor/rules/refactor-cleaner.mdc +26 -0
- agent_toolkit/data/profiles/cursor/rules/reference-lookup.mdc +20 -0
- agent_toolkit/data/profiles/cursor/rules/security-reviewer.mdc +20 -0
- agent_toolkit/data/profiles/cursor/rules/tdd-guide.mdc +26 -0
- agent_toolkit/data/profiles/cursor/rules/typescript-reviewer.mdc +28 -0
- agent_toolkit/data/profiles/muse-code/README.md +35 -0
- agent_toolkit/data/profiles/opencode/README.md +44 -0
- agent_toolkit/data/profiles/opencode/agents/architect.md +30 -0
- agent_toolkit/data/profiles/opencode/agents/assistant.md +96 -0
- agent_toolkit/data/profiles/opencode/agents/build-error-resolver.md +31 -0
- agent_toolkit/data/profiles/opencode/agents/client-workflow-bootstrap.md +66 -0
- agent_toolkit/data/profiles/opencode/agents/code-reviewer.md +47 -0
- agent_toolkit/data/profiles/opencode/agents/contribution-planner.md +44 -0
- agent_toolkit/data/profiles/opencode/agents/database-reviewer.md +43 -0
- agent_toolkit/data/profiles/opencode/agents/docs-lookup.md +28 -0
- agent_toolkit/data/profiles/opencode/agents/e2e-runner.md +33 -0
- agent_toolkit/data/profiles/opencode/agents/performance-optimizer.md +34 -0
- agent_toolkit/data/profiles/opencode/agents/planner.md +27 -0
- agent_toolkit/data/profiles/opencode/agents/refactor-cleaner.md +27 -0
- agent_toolkit/data/profiles/opencode/agents/reference-lookup.md +27 -0
- agent_toolkit/data/profiles/opencode/agents/security-reviewer.md +27 -0
- agent_toolkit/data/profiles/opencode/agents/tdd-guide.md +27 -0
- agent_toolkit/data/profiles/opencode/agents/typescript-reviewer.md +30 -0
- agent_toolkit/data/profiles/opencode/opencode.json +3 -0
- agent_toolkit/data/profiles/pi/skills/architect/skill.md +5 -0
- agent_toolkit/data/profiles/pi/skills/assistant/skill.md +3 -0
- agent_toolkit/data/profiles/pi/skills/code-reviewer/skill.md +5 -0
- agent_toolkit/data/profiles/pi/skills/planner/skill.md +3 -0
- agent_toolkit/data/profiles/pi/skills/security-reviewer/skill.md +3 -0
- agent_toolkit/data/profiles/windsurf/memories/global_rules.md +114 -0
- agent_toolkit/data/profiles/windsurf/rules/architect.mdc +23 -0
- agent_toolkit/data/profiles/windsurf/rules/assistant.mdc +61 -0
- agent_toolkit/data/profiles/windsurf/rules/build-error-resolver.mdc +20 -0
- agent_toolkit/data/profiles/windsurf/rules/code-reviewer.mdc +21 -0
- agent_toolkit/data/profiles/windsurf/rules/database-reviewer.mdc +29 -0
- agent_toolkit/data/profiles/windsurf/rules/docs-lookup.mdc +15 -0
- agent_toolkit/data/profiles/windsurf/rules/e2e-runner.mdc +30 -0
- agent_toolkit/data/profiles/windsurf/rules/performance-optimizer.mdc +27 -0
- agent_toolkit/data/profiles/windsurf/rules/planner.mdc +28 -0
- agent_toolkit/data/profiles/windsurf/rules/refactor-cleaner.mdc +26 -0
- agent_toolkit/data/profiles/windsurf/rules/reference-lookup.mdc +20 -0
- agent_toolkit/data/profiles/windsurf/rules/security-reviewer.mdc +20 -0
- agent_toolkit/data/profiles/windsurf/rules/tdd-guide.mdc +26 -0
- agent_toolkit/data/profiles/windsurf/rules/typescript-reviewer.mdc +28 -0
- agent_toolkit/data/skills/accessibility/review/SKILL.md +116 -0
- agent_toolkit/data/skills/accessibility/review/references/a11y-checklist.md +25 -0
- agent_toolkit/data/skills/accessibility/review/references/a11y-findings-template.md +56 -0
- agent_toolkit/data/skills/accessibility/review/references/research.md +47 -0
- agent_toolkit/data/skills/agentic-security/mcp-audit/SKILL.md +116 -0
- agent_toolkit/data/skills/agentic-security/mcp-audit/references/mcp-audit-template.md +51 -0
- agent_toolkit/data/skills/agentic-security/owasp-agentic-review/SKILL.md +73 -0
- agent_toolkit/data/skills/agentic-security/owasp-agentic-review/references/owasp-agentic-template.md +32 -0
- agent_toolkit/data/skills/agentic-security/supply-chain-audit/SKILL.md +142 -0
- agent_toolkit/data/skills/agentic-security/threat-modeling/SKILL.md +100 -0
- agent_toolkit/data/skills/agentic-security/threat-modeling/references/threat-model-template.md +55 -0
- agent_toolkit/data/skills/architecture/c4-model/SKILL.md +49 -0
- agent_toolkit/data/skills/cloud/aws-well-architected-review/SKILL.md +37 -0
- agent_toolkit/data/skills/cloud/cloud-design-patterns/SKILL.md +38 -0
- agent_toolkit/data/skills/core/assistant/SKILL.md +216 -0
- agent_toolkit/data/skills/core/assistant/references/AGENTS_TEMPLATE.md +0 -0
- agent_toolkit/data/skills/core/assistant/references/ORCHESTRATION.md +0 -0
- agent_toolkit/data/skills/core/assistant/references/REPO_INSPECTION.md +0 -0
- agent_toolkit/data/skills/core/dev-companion/SKILL.md +65 -0
- agent_toolkit/data/skills/core/dev-companion/references/LOOP_GUARDRAILS.md +0 -0
- agent_toolkit/data/skills/core/onboarding/SKILL.md +122 -0
- agent_toolkit/data/skills/core/output-handshake/SKILL.md +26 -0
- agent_toolkit/data/skills/core/pr-fallback/SKILL.md +35 -0
- agent_toolkit/data/skills/core/pr-fallback/references/pr-body-default.md +0 -0
- agent_toolkit/data/skills/core/project/SKILL.md +89 -0
- agent_toolkit/data/skills/core/workspace/SKILL.md +103 -0
- agent_toolkit/data/skills/core/workspace-knowledge-sync/SKILL.md +140 -0
- agent_toolkit/data/skills/data/dbt-validation/SKILL.md +41 -0
- agent_toolkit/data/skills/data/snowflake-validation/SKILL.md +38 -0
- agent_toolkit/data/skills/delivery/adr/SKILL.md +56 -0
- agent_toolkit/data/skills/delivery/adr/references/default-template.md +35 -0
- agent_toolkit/data/skills/delivery/adr/references/example-001-graphql-adoption.md +66 -0
- agent_toolkit/data/skills/delivery/agreement/SKILL.md +24 -0
- agent_toolkit/data/skills/delivery/agreement/references/default-template.md +17 -0
- agent_toolkit/data/skills/delivery/agreement/references/example-api-versioning.md +29 -0
- agent_toolkit/data/skills/delivery/bug/SKILL.md +26 -0
- agent_toolkit/data/skills/delivery/bug/references/default-template.md +26 -0
- agent_toolkit/data/skills/delivery/bug/references/example-search-filter-bug.md +58 -0
- agent_toolkit/data/skills/delivery/decision-log/SKILL.md +28 -0
- agent_toolkit/data/skills/delivery/decision-log/references/default-template.md +17 -0
- agent_toolkit/data/skills/delivery/decision-log/references/example-repository-pattern.md +27 -0
- agent_toolkit/data/skills/delivery/development-workflow/SKILL.md +34 -0
- agent_toolkit/data/skills/delivery/development-workflow/references/default-workflow-checklist.md +44 -0
- agent_toolkit/data/skills/delivery/epic/SKILL.md +22 -0
- agent_toolkit/data/skills/delivery/epic/references/default-template.md +26 -0
- agent_toolkit/data/skills/delivery/epic/references/example-unified-dashboard.md +40 -0
- agent_toolkit/data/skills/delivery/incident/SKILL.md +24 -0
- agent_toolkit/data/skills/delivery/incident/references/default-template.md +29 -0
- agent_toolkit/data/skills/delivery/incident/references/example-payment-outage.md +62 -0
- agent_toolkit/data/skills/delivery/management-unit-assessment/SKILL.md +104 -0
- agent_toolkit/data/skills/delivery/management-unit-assessment/references/default-template.md +24 -0
- agent_toolkit/data/skills/delivery/management-unit-assessment/references/example-team-assessment.md +126 -0
- agent_toolkit/data/skills/delivery/meeting-minutes/SKILL.md +25 -0
- agent_toolkit/data/skills/delivery/meeting-minutes/references/default-template.md +22 -0
- agent_toolkit/data/skills/delivery/meeting-minutes/references/example-weekly-sync.md +72 -0
- agent_toolkit/data/skills/delivery/planning/SKILL.md +31 -0
- agent_toolkit/data/skills/delivery/planning/references/default-template.md +25 -0
- agent_toolkit/data/skills/delivery/planning/references/example-sprint-planning.md +62 -0
- agent_toolkit/data/skills/delivery/prd/SKILL.md +46 -0
- agent_toolkit/data/skills/delivery/prd/references/default-template.md +31 -0
- agent_toolkit/data/skills/delivery/prd/references/example-unified-api.md +71 -0
- agent_toolkit/data/skills/delivery/project-assessment/SKILL.md +90 -0
- agent_toolkit/data/skills/delivery/project-assessment/references/default-template.md +26 -0
- agent_toolkit/data/skills/delivery/project-assessment/references/example-platform-assessment.md +122 -0
- agent_toolkit/data/skills/delivery/project-assessment-evidence/SKILL.md +88 -0
- agent_toolkit/data/skills/delivery/project-assessment-evidence/references/default-template.md +24 -0
- agent_toolkit/data/skills/delivery/project-assessment-evidence/references/example-evidence-map.md +46 -0
- agent_toolkit/data/skills/delivery/spike/SKILL.md +24 -0
- agent_toolkit/data/skills/delivery/spike/references/default-template.md +29 -0
- agent_toolkit/data/skills/delivery/spike/references/example-graphql-federation.md +79 -0
- agent_toolkit/data/skills/delivery/task/SKILL.md +21 -0
- agent_toolkit/data/skills/delivery/task/references/default-template.md +21 -0
- agent_toolkit/data/skills/delivery/task/references/example-nav-system.md +33 -0
- agent_toolkit/data/skills/delivery/technical-unit-assessment/SKILL.md +58 -0
- agent_toolkit/data/skills/delivery/technical-unit-assessment/references/default-template.md +26 -0
- agent_toolkit/data/skills/delivery/technical-unit-assessment/references/example-frontend-assessment.md +112 -0
- agent_toolkit/data/skills/delivery/technical-unit-assessment/references/indicator-groups.md +65 -0
- agent_toolkit/data/skills/delivery/trd/SKILL.md +49 -0
- agent_toolkit/data/skills/delivery/trd/references/default-template.md +31 -0
- agent_toolkit/data/skills/delivery/trd/references/example-api-migration.md +122 -0
- agent_toolkit/data/skills/delivery/user-story/SKILL.md +21 -0
- agent_toolkit/data/skills/delivery/user-story/references/default-template.md +21 -0
- agent_toolkit/data/skills/delivery/user-story/references/example-advanced-filtering.md +37 -0
- agent_toolkit/data/skills/delivery/work-item/SKILL.md +31 -0
- agent_toolkit/data/skills/delivery/work-item/references/default-template.md +21 -0
- agent_toolkit/data/skills/delivery/work-item/references/example-routing-dashboard.md +23 -0
- agent_toolkit/data/skills/delivery/workflow-client-bootstrap/SKILL.md +148 -0
- agent_toolkit/data/skills/delivery/workflow-client-bootstrap/questions.yaml +165 -0
- agent_toolkit/data/skills/delivery/workflow-generic-project/SKILL.md +79 -0
- agent_toolkit/data/skills/design/design-assessment/SKILL.md +150 -0
- agent_toolkit/data/skills/design/design-assessment/references/design-scorecard-template.md +78 -0
- agent_toolkit/data/skills/design/design-improvement/SKILL.md +167 -0
- agent_toolkit/data/skills/design/design-improvement/references/improvement-plan-template.md +113 -0
- agent_toolkit/data/skills/design/figma/LICENSE.txt +2 -0
- agent_toolkit/data/skills/design/figma/NOTICE.txt +25 -0
- agent_toolkit/data/skills/design/figma/SKILL.md +98 -0
- agent_toolkit/data/skills/design/figma/references/figma-mcp-config.md +82 -0
- agent_toolkit/data/skills/design/figma/references/figma-tools-and-prompts.md +34 -0
- agent_toolkit/data/skills/design/figma-code-connect-components/LICENSE.txt +2 -0
- agent_toolkit/data/skills/design/figma-code-connect-components/NOTICE.txt +18 -0
- agent_toolkit/data/skills/design/figma-code-connect-components/SKILL.md +354 -0
- agent_toolkit/data/skills/design/figma-code-connect-components/references/mapping-checklist.md +7 -0
- agent_toolkit/data/skills/design/figma-code-connect-components/scripts/normalize_node_id.py +25 -0
- agent_toolkit/data/skills/design/figma-create-design-system-rules/LICENSE.txt +2 -0
- agent_toolkit/data/skills/design/figma-create-design-system-rules/NOTICE.txt +19 -0
- agent_toolkit/data/skills/design/figma-create-design-system-rules/SKILL.md +554 -0
- agent_toolkit/data/skills/design/figma-create-design-system-rules/references/rule-template.md +15 -0
- agent_toolkit/data/skills/design/figma-create-design-system-rules/scripts/check_agents_md.sh +9 -0
- agent_toolkit/data/skills/design/figma-create-new-file/LICENSE.txt +2 -0
- agent_toolkit/data/skills/design/figma-create-new-file/NOTICE.txt +17 -0
- agent_toolkit/data/skills/design/figma-create-new-file/SKILL.md +72 -0
- agent_toolkit/data/skills/design/figma-implement-design/LICENSE.txt +2 -0
- agent_toolkit/data/skills/design/figma-implement-design/NOTICE.txt +19 -0
- agent_toolkit/data/skills/design/figma-implement-design/SKILL.md +268 -0
- agent_toolkit/data/skills/design/frontend-design/LICENSE.txt +177 -0
- agent_toolkit/data/skills/design/frontend-design/SKILL.md +82 -0
- agent_toolkit/data/skills/design/frontend-design/UPSTREAM.md +14 -0
- agent_toolkit/data/skills/design/frontend-design-review/LICENSE +21 -0
- agent_toolkit/data/skills/design/frontend-design-review/SKILL.md +194 -0
- agent_toolkit/data/skills/design/frontend-design-review/references/pattern-examples.md +21 -0
- agent_toolkit/data/skills/design/frontend-design-review/references/quick-checklist.md +38 -0
- agent_toolkit/data/skills/design/frontend-design-review/references/review-output-format.md +68 -0
- agent_toolkit/data/skills/design/frontend-design-review/references/review-type-modifiers.md +31 -0
- agent_toolkit/data/skills/design/web-design-guidelines/SKILL.md +78 -0
- agent_toolkit/data/skills/design/web-design-guidelines/references/LICENSE +21 -0
- agent_toolkit/data/skills/design/web-design-guidelines/references/web-interface-guidelines.md +180 -0
- agent_toolkit/data/skills/forge/gh-address-comments/LICENSE.txt +202 -0
- agent_toolkit/data/skills/forge/gh-address-comments/NOTICE.txt +20 -0
- agent_toolkit/data/skills/forge/gh-address-comments/SKILL.md +72 -0
- agent_toolkit/data/skills/forge/gh-address-comments/scripts/fetch_comments.py +239 -0
- agent_toolkit/data/skills/forge/gh-contribution-planner/SKILL.md +160 -0
- agent_toolkit/data/skills/forge/gh-contribution-planner/scripts/inspect_contributions.py +818 -0
- agent_toolkit/data/skills/forge/gh-fix-ci/LICENSE.txt +201 -0
- agent_toolkit/data/skills/forge/gh-fix-ci/NOTICE.txt +20 -0
- agent_toolkit/data/skills/forge/gh-fix-ci/SKILL.md +74 -0
- agent_toolkit/data/skills/forge/gh-fix-ci/scripts/inspect_pr_checks.py +509 -0
- agent_toolkit/data/skills/forge/github-cli-workflow/SKILL.md +49 -0
- agent_toolkit/data/skills/forge/gitlab-cli-workflow/SKILL.md +44 -0
- agent_toolkit/data/skills/forge/workflow-client-bootstrap/SKILL.md +14 -0
- agent_toolkit/data/skills/forge/workflow-generic-project/SKILL.md +14 -0
- agent_toolkit/data/skills/forge/worktree/SKILL.md +113 -0
- agent_toolkit/data/skills/integrations/clickup-cli/SKILL.md +78 -0
- agent_toolkit/data/skills/integrations/clickup-cli/references/docs-management.md +57 -0
- agent_toolkit/data/skills/integrations/clickup-cli/references/task-management.md +131 -0
- agent_toolkit/data/skills/integrations/clickup-cli/references/time-tracking.md +38 -0
- agent_toolkit/data/skills/integrations/linear/LICENSE.txt +202 -0
- agent_toolkit/data/skills/integrations/linear/NOTICE.txt +23 -0
- agent_toolkit/data/skills/integrations/linear/SKILL.md +134 -0
- agent_toolkit/data/skills/integrations/mcp/SKILL.md +88 -0
- agent_toolkit/data/skills/integrations/slack-assistant/SKILL.md +138 -0
- agent_toolkit/data/skills/integrations/slack-cli/SKILL.md +109 -0
- agent_toolkit/data/skills/integrations/slack-cli/references/INSTALLATION.md +42 -0
- agent_toolkit/data/skills/loops/loop-runner/SKILL.md +92 -0
- agent_toolkit/data/skills/ops/docs-generator/SKILL.md +120 -0
- agent_toolkit/data/skills/ops/llm-cost-advisor/SKILL.md +87 -0
- agent_toolkit/data/skills/ops/swarm/SKILL.md +108 -0
- agent_toolkit/data/skills/ops/swarm-handoff/SKILL.md +112 -0
- agent_toolkit/data/skills/ops/swarm-observer/SKILL.md +102 -0
- agent_toolkit/data/skills/ops/triage/SKILL.md +119 -0
- agent_toolkit/data/skills/quality/codeql/SKILL.md +106 -0
- agent_toolkit/data/skills/quality/codeql/references/codeql-queries.md +43 -0
- agent_toolkit/data/skills/quality/megalinter/SKILL.md +162 -0
- agent_toolkit/data/skills/quality/megalinter/references/megalinter-images.md +36 -0
- agent_toolkit/data/skills/quality/megalinter/references/megalinter-license.md +41 -0
- agent_toolkit/data/skills/quality/megalinter/references/megalinter-targets.md +66 -0
- agent_toolkit/data/skills/tooling/chrome-devtools/SKILL.md +146 -0
- agent_toolkit/data/skills/tooling/herdr/SKILL.md +109 -0
- agent_toolkit/data/skills/tooling/inventory/SKILL.md +81 -0
- agent_toolkit/data/skills/tooling/jupyter-notebook/LICENSE.txt +201 -0
- agent_toolkit/data/skills/tooling/jupyter-notebook/NOTICE.txt +27 -0
- agent_toolkit/data/skills/tooling/jupyter-notebook/SKILL.md +145 -0
- agent_toolkit/data/skills/tooling/jupyter-notebook/assets/experiment-template.ipynb +117 -0
- agent_toolkit/data/skills/tooling/jupyter-notebook/assets/tutorial-template.ipynb +115 -0
- agent_toolkit/data/skills/tooling/jupyter-notebook/references/experiment-patterns.md +10 -0
- agent_toolkit/data/skills/tooling/jupyter-notebook/references/notebook-structure.md +17 -0
- agent_toolkit/data/skills/tooling/jupyter-notebook/references/quality-checklist.md +11 -0
- agent_toolkit/data/skills/tooling/jupyter-notebook/references/tutorial-patterns.md +9 -0
- agent_toolkit/data/skills/tooling/jupyter-notebook/scripts/new_notebook.py +132 -0
- agent_toolkit/data/skills/tooling/mermaid/SKILL.md +36 -0
- agent_toolkit/data/skills/tooling/playwright-cli/LICENSE.txt +201 -0
- agent_toolkit/data/skills/tooling/playwright-cli/NOTICE.txt +29 -0
- agent_toolkit/data/skills/tooling/playwright-cli/SKILL.md +154 -0
- agent_toolkit/data/skills/tooling/playwright-cli/references/cli.md +116 -0
- agent_toolkit/data/skills/tooling/playwright-cli/references/workflows.md +98 -0
- agent_toolkit/data/skills/tooling/playwright-cli/scripts/executable_playwright_cli.sh +25 -0
- agent_toolkit/data_cache.py +79 -0
- agent_toolkit/data_sync.py +144 -0
- agent_toolkit/installer/__init__.py +0 -0
- agent_toolkit/installer/merge.py +59 -0
- agent_toolkit/installer/receipt.py +89 -0
- agent_toolkit/installer/sources.py +92 -0
- agent_toolkit/installer/tracking.py +63 -0
- agent_toolkit/launcher.py +69 -0
- agent_toolkit/loop/__init__.py +0 -0
- agent_toolkit/loop/budget.py +107 -0
- agent_toolkit/loop/gh_gate.py +923 -0
- agent_toolkit/loop/loop-gh-gate +923 -0
- agent_toolkit/loop/pack.py +65 -0
- agent_toolkit/loop/runner.py +2722 -0
- agent_toolkit/runner/__init__.py +0 -0
- agent_toolkit/runner/dispatcher.py +163 -0
- agent_toolkit/runner/policy.py +356 -0
- agent_toolkit/runner/providers/__init__.py +21 -0
- agent_toolkit/runner/providers/anthropic_provider.py +109 -0
- agent_toolkit/runner/providers/base.py +53 -0
- agent_toolkit/runner/providers/ollama_provider.py +108 -0
- agent_toolkit/runner/providers/openai_provider.py +103 -0
- agent_toolkit/runner/providers/opencode_provider.py +127 -0
- agent_toolkit/swarm/__init__.py +5 -0
- agent_toolkit/swarm/approvals.py +121 -0
- agent_toolkit/swarm/backends/__init__.py +596 -0
- agent_toolkit/swarm/budget.py +83 -0
- agent_toolkit/swarm/cli.py +2448 -0
- agent_toolkit/swarm/config.py +351 -0
- agent_toolkit/swarm/handoff.py +174 -0
- agent_toolkit/swarm/models.py +230 -0
- agent_toolkit/swarm/prompts.py +177 -0
- agent_toolkit/swarm/recipes.py +304 -0
- agent_toolkit/swarm/runner.py +267 -0
- agent_toolkit/swarm/state.py +93 -0
- agent_toolkit/swarm/store.py +148 -0
- agent_toolkit/swarm/worktree.py +105 -0
- agent_toolkit/templates/workspace/.gitignore +19 -0
- agent_toolkit/templates/workspace/AGENTS.md +82 -0
- agent_toolkit/templates/workspace/knowledge/README.md +22 -0
- agent_toolkit/templates/workspace/knowledge/learnings/general.md +3 -0
- agent_toolkit/templates/workspace/knowledge/todos/pending.md +7 -0
- agent_toolkit/templates/workspace/packs/README.md +24 -0
- agent_toolkit/templates/workspace/personas/architect.md +12 -0
- agent_toolkit/templates/workspace/personas/implementer.md +12 -0
- agent_toolkit/templates/workspace/personas/researcher.md +12 -0
- agent_toolkit/templates/workspace/personas/reviewer.md +12 -0
- agent_toolkit_cli-1.11.0.dist-info/METADATA +363 -0
- agent_toolkit_cli-1.11.0.dist-info/RECORD +438 -0
- agent_toolkit_cli-1.11.0.dist-info/WHEEL +4 -0
- agent_toolkit_cli-1.11.0.dist-info/entry_points.txt +4 -0
- agent_toolkit_cli-1.11.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"""Swarm store — filesystem layout, atomic writes, observability."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import json
|
|
6
|
+
import os
|
|
7
|
+
import re
|
|
8
|
+
import tempfile
|
|
9
|
+
from datetime import datetime, timezone
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
from typing import Any
|
|
12
|
+
|
|
13
|
+
from .models import STATE_VERSION
|
|
14
|
+
|
|
15
|
+
# Default swarm root relative to repo: .agent-toolkit/swarm/runs/<run-id>
|
|
16
|
+
SWARM_DIR_NAME = ".agent-toolkit"
|
|
17
|
+
SWARM_SUBDIR = "swarm"
|
|
18
|
+
RUNS_SUBDIR = "runs"
|
|
19
|
+
|
|
20
|
+
ALLOWED_PATH_RE = re.compile(r"^[a-zA-Z0-9._/-]+$")
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def swarm_root_for_repo(repo_root: Path) -> Path:
|
|
24
|
+
return repo_root / SWARM_DIR_NAME / SWARM_SUBDIR
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def run_dir_for(repo_root: Path, run_id: str) -> Path:
|
|
28
|
+
# Validate run_id strictly to prevent traversal
|
|
29
|
+
if not re.match(r"^[a-zA-Z0-9][a-zA-Z0-9._-]{2,64}$", run_id):
|
|
30
|
+
raise ValueError(f"Invalid run_id: {run_id!r}")
|
|
31
|
+
return swarm_root_for_repo(repo_root) / RUNS_SUBDIR / run_id
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def ensure_run_dirs(run_dir: Path) -> None:
|
|
35
|
+
for sub in [
|
|
36
|
+
"artifacts",
|
|
37
|
+
"handoffs/outbox",
|
|
38
|
+
"handoffs/queued",
|
|
39
|
+
"handoffs/active",
|
|
40
|
+
"handoffs/completed",
|
|
41
|
+
"handoffs/failed",
|
|
42
|
+
"prompts",
|
|
43
|
+
"worktrees",
|
|
44
|
+
"runner/opencode/agents",
|
|
45
|
+
]:
|
|
46
|
+
(run_dir / sub).mkdir(parents=True, exist_ok=True)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def atomic_write_json(path: Path, data: Any) -> None:
|
|
50
|
+
path.parent.mkdir(parents=True, exist_ok=True)
|
|
51
|
+
tmp_fd, tmp_path = tempfile.mkstemp(dir=str(path.parent), prefix=".tmp-")
|
|
52
|
+
try:
|
|
53
|
+
with os.fdopen(tmp_fd, "w", encoding="utf-8") as f:
|
|
54
|
+
json.dump(data, f, indent=2, sort_keys=True)
|
|
55
|
+
f.write("\n")
|
|
56
|
+
os.replace(tmp_path, path)
|
|
57
|
+
finally:
|
|
58
|
+
try:
|
|
59
|
+
Path(tmp_path).unlink(missing_ok=True)
|
|
60
|
+
except Exception:
|
|
61
|
+
pass
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def atomic_write_text(path: Path, text: str) -> None:
|
|
65
|
+
path.parent.mkdir(parents=True, exist_ok=True)
|
|
66
|
+
tmp_fd, tmp_path = tempfile.mkstemp(dir=str(path.parent), prefix=".tmp-")
|
|
67
|
+
try:
|
|
68
|
+
with os.fdopen(tmp_fd, "w", encoding="utf-8") as f:
|
|
69
|
+
f.write(text)
|
|
70
|
+
os.replace(tmp_path, path)
|
|
71
|
+
finally:
|
|
72
|
+
try:
|
|
73
|
+
Path(tmp_path).unlink(missing_ok=True)
|
|
74
|
+
except Exception:
|
|
75
|
+
pass
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def append_trace(run_dir: Path, event: dict[str, Any]) -> None:
|
|
79
|
+
trace_path = run_dir / "trace.jsonl"
|
|
80
|
+
trace_path.parent.mkdir(parents=True, exist_ok=True)
|
|
81
|
+
line = json.dumps(event, ensure_ascii=False)
|
|
82
|
+
with trace_path.open("a", encoding="utf-8") as f:
|
|
83
|
+
f.write(line + "\n")
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def now_ts() -> str:
|
|
87
|
+
return datetime.now(timezone.utc).isoformat().replace("+00:00", "Z")
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def is_path_contained(base: Path, candidate: Path) -> bool:
|
|
91
|
+
try:
|
|
92
|
+
candidate.resolve().relative_to(base.resolve())
|
|
93
|
+
return True
|
|
94
|
+
except ValueError:
|
|
95
|
+
return False
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def validate_artifact_path(run_dir: Path, artifact: str) -> Path:
|
|
99
|
+
# Must be relative, no traversal, stay under run_dir/artifacts or run_dir
|
|
100
|
+
if os.path.isabs(artifact):
|
|
101
|
+
raise ValueError(f"Artifact path must be relative: {artifact!r}")
|
|
102
|
+
if ".." in Path(artifact).parts:
|
|
103
|
+
raise ValueError(f"Artifact path traversal: {artifact!r}")
|
|
104
|
+
# Normalize
|
|
105
|
+
p = (run_dir / artifact).resolve()
|
|
106
|
+
base = run_dir.resolve()
|
|
107
|
+
if not is_path_contained(base, p) and p != base:
|
|
108
|
+
raise ValueError(f"Artifact escape: {artifact!r}")
|
|
109
|
+
return p
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def read_json(path: Path) -> Any:
|
|
113
|
+
if not path.is_file():
|
|
114
|
+
return None
|
|
115
|
+
return json.loads(path.read_text(encoding="utf-8"))
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def write_state(run_dir: Path, state: dict[str, Any]) -> None:
|
|
119
|
+
state = dict(state)
|
|
120
|
+
state["version"] = STATE_VERSION
|
|
121
|
+
state["updated_at"] = now_ts()
|
|
122
|
+
atomic_write_json(run_dir / "state.json", state)
|
|
123
|
+
append_trace(
|
|
124
|
+
run_dir, {"ts": now_ts(), "kind": "state_changed", "state": state.get("run_state")}
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def read_state(run_dir: Path) -> dict[str, Any] | None:
|
|
129
|
+
return read_json(run_dir / "state.json")
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def list_runs(repo_root: Path) -> list[Path]:
|
|
133
|
+
runs_root = swarm_root_for_repo(repo_root) / RUNS_SUBDIR
|
|
134
|
+
if not runs_root.is_dir():
|
|
135
|
+
return []
|
|
136
|
+
return sorted([p for p in runs_root.iterdir() if p.is_dir()])
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def sanitize_args(args: list[str]) -> list[str]:
|
|
140
|
+
# Redact secrets in args for logging: look for token-like values
|
|
141
|
+
redacted: list[str] = []
|
|
142
|
+
for a in args:
|
|
143
|
+
low = a.lower()
|
|
144
|
+
if any(k in low for k in ["token", "secret", "key", "password"]):
|
|
145
|
+
redacted.append("[REDACTED]")
|
|
146
|
+
else:
|
|
147
|
+
redacted.append(a)
|
|
148
|
+
return redacted
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"""Worktree and branch management."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import re
|
|
6
|
+
import shutil
|
|
7
|
+
import subprocess
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
from typing import Any
|
|
10
|
+
|
|
11
|
+
ROLE_RE = re.compile(r"^[a-z][a-z0-9_-]{1,31}$")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def branch_for_run_role(run_id: str, role: str) -> str:
|
|
15
|
+
if not ROLE_RE.match(role):
|
|
16
|
+
raise ValueError(f"Invalid role: {role!r}")
|
|
17
|
+
# Safe short prefix if too long (git branch limit ~ 255, filesystem limits)
|
|
18
|
+
safe_run = re.sub(r"[^a-zA-Z0-9._-]", "-", run_id)[:32]
|
|
19
|
+
return f"agent-toolkit-swarm/{safe_run}/{role}"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def worktree_path_for(run_dir: Path, role: str) -> Path:
|
|
23
|
+
if not ROLE_RE.match(role):
|
|
24
|
+
raise ValueError(f"Invalid role: {role!r}")
|
|
25
|
+
return run_dir / "worktrees" / role
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def git_run(args: list[str], cwd: Path, check: bool = True) -> subprocess.CompletedProcess:
|
|
29
|
+
# Safe arg handling — no shell
|
|
30
|
+
return subprocess.run(["git"] + args, cwd=str(cwd), capture_output=True, text=True, check=False)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def create_worktree(
|
|
34
|
+
repo_root: Path, run_dir: Path, role: str, run_id: str, base_ref: str = "HEAD"
|
|
35
|
+
) -> dict[str, Any]:
|
|
36
|
+
branch = branch_for_run_role(run_id, role)
|
|
37
|
+
wt_path = worktree_path_for(run_dir, role)
|
|
38
|
+
if wt_path.exists():
|
|
39
|
+
return {"branch": branch, "path": str(wt_path), "exists": True}
|
|
40
|
+
# Create branch if not exists
|
|
41
|
+
res = git_run(["rev-parse", "--verify", branch], cwd=repo_root, check=False)
|
|
42
|
+
if res.returncode != 0:
|
|
43
|
+
# create branch from base_ref
|
|
44
|
+
cre = git_run(["branch", branch, base_ref], cwd=repo_root, check=False)
|
|
45
|
+
if cre.returncode != 0:
|
|
46
|
+
raise RuntimeError(f"Failed to create branch {branch}: {cre.stderr}")
|
|
47
|
+
# Create worktree
|
|
48
|
+
wt_path.parent.mkdir(parents=True, exist_ok=True)
|
|
49
|
+
res2 = git_run(["worktree", "add", str(wt_path), branch], cwd=repo_root, check=False)
|
|
50
|
+
if res2.returncode != 0:
|
|
51
|
+
raise RuntimeError(f"Failed to create worktree {wt_path}: {res2.stderr}")
|
|
52
|
+
return {"branch": branch, "path": str(wt_path), "exists": False}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def remove_worktree(repo_root: Path, wt_path: Path, force: bool = False) -> bool:
|
|
56
|
+
if not wt_path.exists():
|
|
57
|
+
return False
|
|
58
|
+
# Check dirty
|
|
59
|
+
res = git_run(["status", "--porcelain"], cwd=wt_path, check=False)
|
|
60
|
+
if res.returncode == 0 and res.stdout.strip() and not force:
|
|
61
|
+
raise RuntimeError(f"Worktree dirty, refusing removal without --force: {wt_path}")
|
|
62
|
+
# Remove worktree
|
|
63
|
+
git_run(
|
|
64
|
+
["worktree", "remove", str(wt_path), "--force" if force else str(wt_path)],
|
|
65
|
+
cwd=repo_root,
|
|
66
|
+
check=False,
|
|
67
|
+
)
|
|
68
|
+
# Clean up directory if still exists
|
|
69
|
+
if wt_path.exists():
|
|
70
|
+
shutil.rmtree(wt_path, ignore_errors=True)
|
|
71
|
+
return True
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def is_worktree_dirty(wt_path: Path) -> bool:
|
|
75
|
+
res = git_run(["status", "--porcelain"], cwd=wt_path, check=False)
|
|
76
|
+
return bool(res.stdout.strip())
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def validate_worktree_ownership(run_dir: Path, wt_path: Path) -> bool:
|
|
80
|
+
# Check that wt_path is under run_dir/worktrees and owned
|
|
81
|
+
try:
|
|
82
|
+
wt_path.resolve().relative_to((run_dir / "worktrees").resolve())
|
|
83
|
+
return True
|
|
84
|
+
except ValueError:
|
|
85
|
+
return False
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def list_worktrees(repo_root: Path) -> list[dict[str, Any]]:
|
|
89
|
+
res = git_run(["worktree", "list", "--porcelain"], cwd=repo_root, check=False)
|
|
90
|
+
if res.returncode != 0:
|
|
91
|
+
return []
|
|
92
|
+
items: list[dict[str, Any]] = []
|
|
93
|
+
cur: dict[str, Any] = {}
|
|
94
|
+
for line in res.stdout.splitlines():
|
|
95
|
+
if line.startswith("worktree "):
|
|
96
|
+
if cur:
|
|
97
|
+
items.append(cur)
|
|
98
|
+
cur = {"worktree": line.split(" ", 1)[1]}
|
|
99
|
+
elif line.startswith("branch "):
|
|
100
|
+
cur["branch"] = line.split(" ", 1)[1]
|
|
101
|
+
elif line.startswith("HEAD "):
|
|
102
|
+
cur["head"] = line.split(" ", 1)[1]
|
|
103
|
+
if cur:
|
|
104
|
+
items.append(cur)
|
|
105
|
+
return items
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Cloned repos (large, machine-specific)
|
|
2
|
+
repos/
|
|
3
|
+
|
|
4
|
+
# Project symlinks (machine-specific)
|
|
5
|
+
projects/
|
|
6
|
+
|
|
7
|
+
# Devcompanion artifacts
|
|
8
|
+
.devcompanion/runs/
|
|
9
|
+
|
|
10
|
+
# Loop run artifacts (keep STATE.md but not run dirs)
|
|
11
|
+
loops/*/runs/
|
|
12
|
+
|
|
13
|
+
# Python
|
|
14
|
+
__pycache__/
|
|
15
|
+
*.pyc
|
|
16
|
+
.venv/
|
|
17
|
+
|
|
18
|
+
# OS
|
|
19
|
+
.DS_Store
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<!-- generated-by: agent-toolkit workspace init -->
|
|
2
|
+
# AGENTS.md — AI Workspace Orchestrator
|
|
3
|
+
|
|
4
|
+
**Purpose**: Stateless session that orchestrates multi-repository work across any project or team.
|
|
5
|
+
|
|
6
|
+
**Language**: Match the user's language for conversation → English for commits, PRs, tickets, docs.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Work Context
|
|
11
|
+
|
|
12
|
+
- **Repos**: `./projects/` symlinks (quick access) · `./repos/` cloned on-demand
|
|
13
|
+
- **Knowledge**: `./knowledge/` — persistent memory across sessions
|
|
14
|
+
- **Personas**: `./personas/` — focused work modes with behavioral constraints
|
|
15
|
+
- **Packs**: `./packs/` — context bundles for switching between clients/projects
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## agent-toolkit CLI
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Session start
|
|
23
|
+
agent-toolkit workspace context # inject workspace state
|
|
24
|
+
agent-toolkit memory inject # load all persistent knowledge
|
|
25
|
+
agent-toolkit memory todo # review pending follow-ups
|
|
26
|
+
|
|
27
|
+
# During session
|
|
28
|
+
agent-toolkit memory search "topic" # before asking known questions
|
|
29
|
+
agent-toolkit memory add --type learning "pattern found" # save discoveries
|
|
30
|
+
agent-toolkit memory add --type todo "follow-up item" # track follow-ups
|
|
31
|
+
|
|
32
|
+
# Async work
|
|
33
|
+
agent-toolkit loop run <name> # run a loop template
|
|
34
|
+
agent-toolkit devcompanion queue <project> --request "..." # background job
|
|
35
|
+
agent-toolkit devcompanion status # check queue
|
|
36
|
+
|
|
37
|
+
# Projects
|
|
38
|
+
agent-toolkit project clone owner/repo # clone + symlink
|
|
39
|
+
agent-toolkit project list # list indexed projects
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Operating Rules
|
|
45
|
+
|
|
46
|
+
**Always:**
|
|
47
|
+
- Run `agent-toolkit workspace context` at session start
|
|
48
|
+
- Run `agent-toolkit memory search` before asking questions answered before
|
|
49
|
+
- Save discoveries after every session: `agent-toolkit memory add`
|
|
50
|
+
- For delivery: follow plan → implement → review → PR phases
|
|
51
|
+
|
|
52
|
+
**Never:**
|
|
53
|
+
- Assume we are inside a repo without verifying
|
|
54
|
+
- Commit without code review
|
|
55
|
+
- Skip the plan phase for non-trivial work
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Routing
|
|
60
|
+
|
|
61
|
+
| Task type | Delegate to |
|
|
62
|
+
|-----------|-------------|
|
|
63
|
+
| Discovery / first look at a repo | `assistant` skill |
|
|
64
|
+
| Generic delivery workflow | `workflow-generic-project` skill |
|
|
65
|
+
| Code review / refactor | `code-reviewer` / `refactor-cleaner` agents |
|
|
66
|
+
| Background async work | `agent-toolkit devcompanion queue` |
|
|
67
|
+
| Recurring automation | `agent-toolkit loop run` |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Portability
|
|
72
|
+
|
|
73
|
+
| AI Tool | Config read |
|
|
74
|
+
|---------|-------------|
|
|
75
|
+
| Claude Code | `AGENTS.md` |
|
|
76
|
+
| Cursor / OpenCode / Windsurf | `CLAUDE.md` → symlink to `AGENTS.md` |
|
|
77
|
+
| GitHub Copilot | `.github/copilot-instructions.md` |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
> Customize this file to reflect your team's skills, routing, and conventions.
|
|
82
|
+
> See [agent-toolkit](https://github.com/ulises-jeremias/agent-toolkit) for the full toolkit.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Knowledge Base
|
|
2
|
+
|
|
3
|
+
Persistent memory across AI sessions.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
knowledge/
|
|
9
|
+
├── learnings/general.md # factual learnings and patterns
|
|
10
|
+
├── processes/ # how-to procedures (one file per topic)
|
|
11
|
+
└── todos/pending.md # follow-up items
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
agent-toolkit memory add --type learning "what you learned"
|
|
18
|
+
agent-toolkit memory add --type todo "follow-up item"
|
|
19
|
+
agent-toolkit memory search "topic"
|
|
20
|
+
agent-toolkit memory inject # output all for session context
|
|
21
|
+
agent-toolkit memory todo # show pending todos
|
|
22
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Context Packs
|
|
2
|
+
|
|
3
|
+
Packs bundle context for a specific client, project, or domain.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
agent-toolkit workspace context load packs/my-client.yaml
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Structure
|
|
12
|
+
|
|
13
|
+
```yaml
|
|
14
|
+
# packs/my-client.yaml
|
|
15
|
+
name: my-client
|
|
16
|
+
description: Context for MyClient engagement
|
|
17
|
+
repos:
|
|
18
|
+
- owner/repo1
|
|
19
|
+
- owner/repo2
|
|
20
|
+
env:
|
|
21
|
+
JIRA_PROJECT: MYPROJ
|
|
22
|
+
notes: |
|
|
23
|
+
Key conventions and decisions for this client.
|
|
24
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Reviewer Persona
|
|
2
|
+
|
|
3
|
+
> Activate: tell the AI "switch to reviewer mode"
|
|
4
|
+
|
|
5
|
+
## Focus
|
|
6
|
+
Analyze and critique. No changes without explicit approval.
|
|
7
|
+
|
|
8
|
+
## Allow
|
|
9
|
+
- Read files, write analysis, suggest changes
|
|
10
|
+
|
|
11
|
+
## Deny
|
|
12
|
+
- Edit production files without approval
|