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.
Files changed (438) hide show
  1. agent_toolkit/__init__.py +4 -0
  2. agent_toolkit/__main__.py +5 -0
  3. agent_toolkit/_paths.py +145 -0
  4. agent_toolkit/bin/.gitkeep +0 -0
  5. agent_toolkit/bin/agent-toolkit.exe +0 -0
  6. agent_toolkit/cli/__init__.py +0 -0
  7. agent_toolkit/cli/__main__.py +5 -0
  8. agent_toolkit/cli/build.py +278 -0
  9. agent_toolkit/cli/completion.py +297 -0
  10. agent_toolkit/cli/context_budget.py +455 -0
  11. agent_toolkit/cli/devcompanion.py +923 -0
  12. agent_toolkit/cli/devcompanion_queue.py +235 -0
  13. agent_toolkit/cli/diff.py +176 -0
  14. agent_toolkit/cli/doctor.py +1052 -0
  15. agent_toolkit/cli/insights.py +771 -0
  16. agent_toolkit/cli/install.py +706 -0
  17. agent_toolkit/cli/main.py +171 -0
  18. agent_toolkit/cli/mcp.py +537 -0
  19. agent_toolkit/cli/memory.py +739 -0
  20. agent_toolkit/cli/plugin.py +224 -0
  21. agent_toolkit/cli/project.py +459 -0
  22. agent_toolkit/cli/release.py +178 -0
  23. agent_toolkit/cli/skills.py +461 -0
  24. agent_toolkit/cli/uninstall.py +166 -0
  25. agent_toolkit/cli/update.py +298 -0
  26. agent_toolkit/cli/workspace.py +1713 -0
  27. agent_toolkit/compiler/hook_registry.py +110 -0
  28. agent_toolkit/compiler/loader.py +338 -0
  29. agent_toolkit/compiler/mcp_registry.py +87 -0
  30. agent_toolkit/compiler/model.py +182 -0
  31. agent_toolkit/compiler/provenance.py +140 -0
  32. agent_toolkit/compiler/registry_emit.py +263 -0
  33. agent_toolkit/compiler/target_registry.py +122 -0
  34. agent_toolkit/compiler/targets/__init__.py +1 -0
  35. agent_toolkit/compiler/targets/agent_plugins.py +160 -0
  36. agent_toolkit/compiler/targets/base.py +229 -0
  37. agent_toolkit/compiler/targets/claude_code.py +241 -0
  38. agent_toolkit/compiler/targets/codex.py +261 -0
  39. agent_toolkit/compiler/targets/copilot.py +275 -0
  40. agent_toolkit/compiler/targets/cursor.py +207 -0
  41. agent_toolkit/compiler/targets/gemini_cli.py +213 -0
  42. agent_toolkit/compiler/targets/muse_code.py +113 -0
  43. agent_toolkit/compiler/targets/opencode.py +204 -0
  44. agent_toolkit/compiler/targets/pi.py +263 -0
  45. agent_toolkit/compiler/targets/windsurf.py +267 -0
  46. agent_toolkit/compiler/tool_mapping.py +83 -0
  47. agent_toolkit/data/.gitignore +4 -0
  48. agent_toolkit/data/__init__.py +1 -0
  49. agent_toolkit/data/agents/agentic-security-reviewer/AGENT.md +60 -0
  50. agent_toolkit/data/agents/architect/AGENT.md +30 -0
  51. agent_toolkit/data/agents/assistant/AGENT.md +59 -0
  52. agent_toolkit/data/agents/build-error-resolver/AGENT.md +30 -0
  53. agent_toolkit/data/agents/client-workflow-bootstrap/AGENT.md +60 -0
  54. agent_toolkit/data/agents/code-reviewer/AGENT.md +49 -0
  55. agent_toolkit/data/agents/database-reviewer/AGENT.md +44 -0
  56. agent_toolkit/data/agents/docs-lookup/AGENT.md +28 -0
  57. agent_toolkit/data/agents/e2e-runner/AGENT.md +38 -0
  58. agent_toolkit/data/agents/performance-optimizer/AGENT.md +52 -0
  59. agent_toolkit/data/agents/planner/AGENT.md +41 -0
  60. agent_toolkit/data/agents/refactor-cleaner/AGENT.md +43 -0
  61. agent_toolkit/data/agents/reference-lookup/AGENT.md +33 -0
  62. agent_toolkit/data/agents/security-reviewer/AGENT.md +47 -0
  63. agent_toolkit/data/agents/tdd-guide/AGENT.md +58 -0
  64. agent_toolkit/data/agents/tech-assistant/AGENT.md +11 -0
  65. agent_toolkit/data/agents/typescript-reviewer/AGENT.md +61 -0
  66. agent_toolkit/data/capabilities/hooks/README.md +6 -0
  67. agent_toolkit/data/capabilities/hooks/pre-commit-validate.yaml +26 -0
  68. agent_toolkit/data/capabilities/hooks/scripts/pre-commit-validate.sh +41 -0
  69. agent_toolkit/data/capabilities/hooks/scripts/session-start-context.sh +11 -0
  70. agent_toolkit/data/capabilities/hooks/session-start-context.yaml +23 -0
  71. agent_toolkit/data/capabilities/targets/registry.yaml +90 -0
  72. agent_toolkit/data/capabilities/upstream.lock +118 -0
  73. agent_toolkit/data/catalogs/agent-catalog.yaml +81 -0
  74. agent_toolkit/data/catalogs/loop-catalog.yaml +55 -0
  75. agent_toolkit/data/catalogs/skill-catalog.yaml +520 -0
  76. agent_toolkit/data/catalogs/skills-layout.json +391 -0
  77. agent_toolkit/data/distributions/products.yaml +190 -0
  78. agent_toolkit/data/distributions/targets/claude-code.yaml +47 -0
  79. agent_toolkit/data/distributions/targets/cursor.yaml +42 -0
  80. agent_toolkit/data/distributions/targets/opencode.yaml +55 -0
  81. agent_toolkit/data/loops/changelog-drafter/loop.yaml +40 -0
  82. agent_toolkit/data/loops/ci-sweeper/loop.yaml +53 -0
  83. agent_toolkit/data/loops/daily-triage/loop.yaml +47 -0
  84. agent_toolkit/data/loops/dep-sweeper/loop.yaml +46 -0
  85. agent_toolkit/data/loops/issue-triage/loop.yaml +40 -0
  86. agent_toolkit/data/loops/oss-daily-briefing/loop.yaml +65 -0
  87. agent_toolkit/data/loops/oss-pr-monitor/loop.yaml +86 -0
  88. agent_toolkit/data/loops/oss-triage/loop.yaml +67 -0
  89. agent_toolkit/data/loops/post-merge-cleanup/loop.yaml +44 -0
  90. agent_toolkit/data/loops/pr-babysitter/loop.yaml +46 -0
  91. agent_toolkit/data/mcp/registry/chrome-devtools.yaml +61 -0
  92. agent_toolkit/data/mcp/registry/clickup.yaml +48 -0
  93. agent_toolkit/data/mcp/registry/figma.yaml +44 -0
  94. agent_toolkit/data/mcp/registry/github.yaml +52 -0
  95. agent_toolkit/data/mcp/registry/linear.yaml +47 -0
  96. agent_toolkit/data/mcp/registry/notion.yaml +48 -0
  97. agent_toolkit/data/mcp/registry/slack.yaml +46 -0
  98. agent_toolkit/data/mcp/templates/chrome-devtools/README.md +57 -0
  99. agent_toolkit/data/mcp/templates/chrome-devtools/config.template.json +6 -0
  100. agent_toolkit/data/mcp/templates/clickup/README.md +45 -0
  101. agent_toolkit/data/mcp/templates/clickup/config.template.json +8 -0
  102. agent_toolkit/data/mcp/templates/clickup/wrapper.sh +23 -0
  103. agent_toolkit/data/mcp/templates/figma/README.md +54 -0
  104. agent_toolkit/data/mcp/templates/figma/config.template.json +9 -0
  105. agent_toolkit/data/mcp/templates/github/README.md +16 -0
  106. agent_toolkit/data/mcp/templates/github/config.template.json +15 -0
  107. agent_toolkit/data/mcp/templates/github/wrapper.sh +6 -0
  108. agent_toolkit/data/mcp/templates/linear/README.md +49 -0
  109. agent_toolkit/data/mcp/templates/linear/config.template.json +10 -0
  110. agent_toolkit/data/mcp/templates/notion/README.md +7 -0
  111. agent_toolkit/data/mcp/templates/notion/config.template.json +8 -0
  112. agent_toolkit/data/mcp/templates/notion/wrapper.sh +23 -0
  113. agent_toolkit/data/mcp/templates/slack/README.md +8 -0
  114. agent_toolkit/data/mcp/templates/slack/config.template.json +9 -0
  115. agent_toolkit/data/mcp/templates/slack/wrapper.sh +23 -0
  116. agent_toolkit/data/packs/README.md +66 -0
  117. agent_toolkit/data/packs/agentic-security/README.md +19 -0
  118. agent_toolkit/data/packs/agentic-security/config.yaml +25 -0
  119. agent_toolkit/data/packs/architecture/README.md +22 -0
  120. agent_toolkit/data/packs/architecture/config.yaml +27 -0
  121. agent_toolkit/data/packs/code-quality/README.md +19 -0
  122. agent_toolkit/data/packs/code-quality/config.yaml +21 -0
  123. agent_toolkit/data/packs/delivery-discipline/README.md +19 -0
  124. agent_toolkit/data/packs/delivery-discipline/config.yaml +42 -0
  125. agent_toolkit/data/packs/design-engineering/README.md +19 -0
  126. agent_toolkit/data/packs/design-engineering/config.yaml +41 -0
  127. agent_toolkit/data/packs/engineering-workflow/README.md +21 -0
  128. agent_toolkit/data/packs/engineering-workflow/config.yaml +57 -0
  129. agent_toolkit/data/packs/oss-maintenance/README.md +245 -0
  130. agent_toolkit/data/packs/oss-maintenance/config.yaml +75 -0
  131. agent_toolkit/data/profiles/claude-code/CLAUDE.md +110 -0
  132. agent_toolkit/data/profiles/claude-code/agents/assistant.md +59 -0
  133. agent_toolkit/data/profiles/claude-code/agents/build-error-resolver.md +30 -0
  134. agent_toolkit/data/profiles/claude-code/agents/client-workflow-bootstrap.md +60 -0
  135. agent_toolkit/data/profiles/claude-code/agents/contribution-planner.md +39 -0
  136. agent_toolkit/data/profiles/claude-code/agents/database-reviewer.md +44 -0
  137. agent_toolkit/data/profiles/claude-code/agents/docs-lookup.md +28 -0
  138. agent_toolkit/data/profiles/claude-code/agents/e2e-runner.md +38 -0
  139. agent_toolkit/data/profiles/claude-code/agents/performance-optimizer.md +52 -0
  140. agent_toolkit/data/profiles/claude-code/agents/planner.md +41 -0
  141. agent_toolkit/data/profiles/claude-code/agents/refactor-cleaner.md +43 -0
  142. agent_toolkit/data/profiles/claude-code/agents/reference-lookup.md +33 -0
  143. agent_toolkit/data/profiles/claude-code/agents/security-reviewer.md +47 -0
  144. agent_toolkit/data/profiles/claude-code/agents/tdd-guide.md +58 -0
  145. agent_toolkit/data/profiles/claude-code/agents/typescript-reviewer.md +61 -0
  146. agent_toolkit/data/profiles/claude-code/settings.json +86 -0
  147. agent_toolkit/data/profiles/copilot/copilot-instructions.md +15 -0
  148. agent_toolkit/data/profiles/cursor/README.md +33 -0
  149. agent_toolkit/data/profiles/cursor/rules/architect.mdc +23 -0
  150. agent_toolkit/data/profiles/cursor/rules/assistant.mdc +61 -0
  151. agent_toolkit/data/profiles/cursor/rules/build-error-resolver.mdc +20 -0
  152. agent_toolkit/data/profiles/cursor/rules/code-reviewer.mdc +21 -0
  153. agent_toolkit/data/profiles/cursor/rules/database-reviewer.mdc +29 -0
  154. agent_toolkit/data/profiles/cursor/rules/docs-lookup.mdc +15 -0
  155. agent_toolkit/data/profiles/cursor/rules/e2e-runner.mdc +30 -0
  156. agent_toolkit/data/profiles/cursor/rules/performance-optimizer.mdc +27 -0
  157. agent_toolkit/data/profiles/cursor/rules/planner.mdc +28 -0
  158. agent_toolkit/data/profiles/cursor/rules/refactor-cleaner.mdc +26 -0
  159. agent_toolkit/data/profiles/cursor/rules/reference-lookup.mdc +20 -0
  160. agent_toolkit/data/profiles/cursor/rules/security-reviewer.mdc +20 -0
  161. agent_toolkit/data/profiles/cursor/rules/tdd-guide.mdc +26 -0
  162. agent_toolkit/data/profiles/cursor/rules/typescript-reviewer.mdc +28 -0
  163. agent_toolkit/data/profiles/muse-code/README.md +35 -0
  164. agent_toolkit/data/profiles/opencode/README.md +44 -0
  165. agent_toolkit/data/profiles/opencode/agents/architect.md +30 -0
  166. agent_toolkit/data/profiles/opencode/agents/assistant.md +96 -0
  167. agent_toolkit/data/profiles/opencode/agents/build-error-resolver.md +31 -0
  168. agent_toolkit/data/profiles/opencode/agents/client-workflow-bootstrap.md +66 -0
  169. agent_toolkit/data/profiles/opencode/agents/code-reviewer.md +47 -0
  170. agent_toolkit/data/profiles/opencode/agents/contribution-planner.md +44 -0
  171. agent_toolkit/data/profiles/opencode/agents/database-reviewer.md +43 -0
  172. agent_toolkit/data/profiles/opencode/agents/docs-lookup.md +28 -0
  173. agent_toolkit/data/profiles/opencode/agents/e2e-runner.md +33 -0
  174. agent_toolkit/data/profiles/opencode/agents/performance-optimizer.md +34 -0
  175. agent_toolkit/data/profiles/opencode/agents/planner.md +27 -0
  176. agent_toolkit/data/profiles/opencode/agents/refactor-cleaner.md +27 -0
  177. agent_toolkit/data/profiles/opencode/agents/reference-lookup.md +27 -0
  178. agent_toolkit/data/profiles/opencode/agents/security-reviewer.md +27 -0
  179. agent_toolkit/data/profiles/opencode/agents/tdd-guide.md +27 -0
  180. agent_toolkit/data/profiles/opencode/agents/typescript-reviewer.md +30 -0
  181. agent_toolkit/data/profiles/opencode/opencode.json +3 -0
  182. agent_toolkit/data/profiles/pi/skills/architect/skill.md +5 -0
  183. agent_toolkit/data/profiles/pi/skills/assistant/skill.md +3 -0
  184. agent_toolkit/data/profiles/pi/skills/code-reviewer/skill.md +5 -0
  185. agent_toolkit/data/profiles/pi/skills/planner/skill.md +3 -0
  186. agent_toolkit/data/profiles/pi/skills/security-reviewer/skill.md +3 -0
  187. agent_toolkit/data/profiles/windsurf/memories/global_rules.md +114 -0
  188. agent_toolkit/data/profiles/windsurf/rules/architect.mdc +23 -0
  189. agent_toolkit/data/profiles/windsurf/rules/assistant.mdc +61 -0
  190. agent_toolkit/data/profiles/windsurf/rules/build-error-resolver.mdc +20 -0
  191. agent_toolkit/data/profiles/windsurf/rules/code-reviewer.mdc +21 -0
  192. agent_toolkit/data/profiles/windsurf/rules/database-reviewer.mdc +29 -0
  193. agent_toolkit/data/profiles/windsurf/rules/docs-lookup.mdc +15 -0
  194. agent_toolkit/data/profiles/windsurf/rules/e2e-runner.mdc +30 -0
  195. agent_toolkit/data/profiles/windsurf/rules/performance-optimizer.mdc +27 -0
  196. agent_toolkit/data/profiles/windsurf/rules/planner.mdc +28 -0
  197. agent_toolkit/data/profiles/windsurf/rules/refactor-cleaner.mdc +26 -0
  198. agent_toolkit/data/profiles/windsurf/rules/reference-lookup.mdc +20 -0
  199. agent_toolkit/data/profiles/windsurf/rules/security-reviewer.mdc +20 -0
  200. agent_toolkit/data/profiles/windsurf/rules/tdd-guide.mdc +26 -0
  201. agent_toolkit/data/profiles/windsurf/rules/typescript-reviewer.mdc +28 -0
  202. agent_toolkit/data/skills/accessibility/review/SKILL.md +116 -0
  203. agent_toolkit/data/skills/accessibility/review/references/a11y-checklist.md +25 -0
  204. agent_toolkit/data/skills/accessibility/review/references/a11y-findings-template.md +56 -0
  205. agent_toolkit/data/skills/accessibility/review/references/research.md +47 -0
  206. agent_toolkit/data/skills/agentic-security/mcp-audit/SKILL.md +116 -0
  207. agent_toolkit/data/skills/agentic-security/mcp-audit/references/mcp-audit-template.md +51 -0
  208. agent_toolkit/data/skills/agentic-security/owasp-agentic-review/SKILL.md +73 -0
  209. agent_toolkit/data/skills/agentic-security/owasp-agentic-review/references/owasp-agentic-template.md +32 -0
  210. agent_toolkit/data/skills/agentic-security/supply-chain-audit/SKILL.md +142 -0
  211. agent_toolkit/data/skills/agentic-security/threat-modeling/SKILL.md +100 -0
  212. agent_toolkit/data/skills/agentic-security/threat-modeling/references/threat-model-template.md +55 -0
  213. agent_toolkit/data/skills/architecture/c4-model/SKILL.md +49 -0
  214. agent_toolkit/data/skills/cloud/aws-well-architected-review/SKILL.md +37 -0
  215. agent_toolkit/data/skills/cloud/cloud-design-patterns/SKILL.md +38 -0
  216. agent_toolkit/data/skills/core/assistant/SKILL.md +216 -0
  217. agent_toolkit/data/skills/core/assistant/references/AGENTS_TEMPLATE.md +0 -0
  218. agent_toolkit/data/skills/core/assistant/references/ORCHESTRATION.md +0 -0
  219. agent_toolkit/data/skills/core/assistant/references/REPO_INSPECTION.md +0 -0
  220. agent_toolkit/data/skills/core/dev-companion/SKILL.md +65 -0
  221. agent_toolkit/data/skills/core/dev-companion/references/LOOP_GUARDRAILS.md +0 -0
  222. agent_toolkit/data/skills/core/onboarding/SKILL.md +122 -0
  223. agent_toolkit/data/skills/core/output-handshake/SKILL.md +26 -0
  224. agent_toolkit/data/skills/core/pr-fallback/SKILL.md +35 -0
  225. agent_toolkit/data/skills/core/pr-fallback/references/pr-body-default.md +0 -0
  226. agent_toolkit/data/skills/core/project/SKILL.md +89 -0
  227. agent_toolkit/data/skills/core/workspace/SKILL.md +103 -0
  228. agent_toolkit/data/skills/core/workspace-knowledge-sync/SKILL.md +140 -0
  229. agent_toolkit/data/skills/data/dbt-validation/SKILL.md +41 -0
  230. agent_toolkit/data/skills/data/snowflake-validation/SKILL.md +38 -0
  231. agent_toolkit/data/skills/delivery/adr/SKILL.md +56 -0
  232. agent_toolkit/data/skills/delivery/adr/references/default-template.md +35 -0
  233. agent_toolkit/data/skills/delivery/adr/references/example-001-graphql-adoption.md +66 -0
  234. agent_toolkit/data/skills/delivery/agreement/SKILL.md +24 -0
  235. agent_toolkit/data/skills/delivery/agreement/references/default-template.md +17 -0
  236. agent_toolkit/data/skills/delivery/agreement/references/example-api-versioning.md +29 -0
  237. agent_toolkit/data/skills/delivery/bug/SKILL.md +26 -0
  238. agent_toolkit/data/skills/delivery/bug/references/default-template.md +26 -0
  239. agent_toolkit/data/skills/delivery/bug/references/example-search-filter-bug.md +58 -0
  240. agent_toolkit/data/skills/delivery/decision-log/SKILL.md +28 -0
  241. agent_toolkit/data/skills/delivery/decision-log/references/default-template.md +17 -0
  242. agent_toolkit/data/skills/delivery/decision-log/references/example-repository-pattern.md +27 -0
  243. agent_toolkit/data/skills/delivery/development-workflow/SKILL.md +34 -0
  244. agent_toolkit/data/skills/delivery/development-workflow/references/default-workflow-checklist.md +44 -0
  245. agent_toolkit/data/skills/delivery/epic/SKILL.md +22 -0
  246. agent_toolkit/data/skills/delivery/epic/references/default-template.md +26 -0
  247. agent_toolkit/data/skills/delivery/epic/references/example-unified-dashboard.md +40 -0
  248. agent_toolkit/data/skills/delivery/incident/SKILL.md +24 -0
  249. agent_toolkit/data/skills/delivery/incident/references/default-template.md +29 -0
  250. agent_toolkit/data/skills/delivery/incident/references/example-payment-outage.md +62 -0
  251. agent_toolkit/data/skills/delivery/management-unit-assessment/SKILL.md +104 -0
  252. agent_toolkit/data/skills/delivery/management-unit-assessment/references/default-template.md +24 -0
  253. agent_toolkit/data/skills/delivery/management-unit-assessment/references/example-team-assessment.md +126 -0
  254. agent_toolkit/data/skills/delivery/meeting-minutes/SKILL.md +25 -0
  255. agent_toolkit/data/skills/delivery/meeting-minutes/references/default-template.md +22 -0
  256. agent_toolkit/data/skills/delivery/meeting-minutes/references/example-weekly-sync.md +72 -0
  257. agent_toolkit/data/skills/delivery/planning/SKILL.md +31 -0
  258. agent_toolkit/data/skills/delivery/planning/references/default-template.md +25 -0
  259. agent_toolkit/data/skills/delivery/planning/references/example-sprint-planning.md +62 -0
  260. agent_toolkit/data/skills/delivery/prd/SKILL.md +46 -0
  261. agent_toolkit/data/skills/delivery/prd/references/default-template.md +31 -0
  262. agent_toolkit/data/skills/delivery/prd/references/example-unified-api.md +71 -0
  263. agent_toolkit/data/skills/delivery/project-assessment/SKILL.md +90 -0
  264. agent_toolkit/data/skills/delivery/project-assessment/references/default-template.md +26 -0
  265. agent_toolkit/data/skills/delivery/project-assessment/references/example-platform-assessment.md +122 -0
  266. agent_toolkit/data/skills/delivery/project-assessment-evidence/SKILL.md +88 -0
  267. agent_toolkit/data/skills/delivery/project-assessment-evidence/references/default-template.md +24 -0
  268. agent_toolkit/data/skills/delivery/project-assessment-evidence/references/example-evidence-map.md +46 -0
  269. agent_toolkit/data/skills/delivery/spike/SKILL.md +24 -0
  270. agent_toolkit/data/skills/delivery/spike/references/default-template.md +29 -0
  271. agent_toolkit/data/skills/delivery/spike/references/example-graphql-federation.md +79 -0
  272. agent_toolkit/data/skills/delivery/task/SKILL.md +21 -0
  273. agent_toolkit/data/skills/delivery/task/references/default-template.md +21 -0
  274. agent_toolkit/data/skills/delivery/task/references/example-nav-system.md +33 -0
  275. agent_toolkit/data/skills/delivery/technical-unit-assessment/SKILL.md +58 -0
  276. agent_toolkit/data/skills/delivery/technical-unit-assessment/references/default-template.md +26 -0
  277. agent_toolkit/data/skills/delivery/technical-unit-assessment/references/example-frontend-assessment.md +112 -0
  278. agent_toolkit/data/skills/delivery/technical-unit-assessment/references/indicator-groups.md +65 -0
  279. agent_toolkit/data/skills/delivery/trd/SKILL.md +49 -0
  280. agent_toolkit/data/skills/delivery/trd/references/default-template.md +31 -0
  281. agent_toolkit/data/skills/delivery/trd/references/example-api-migration.md +122 -0
  282. agent_toolkit/data/skills/delivery/user-story/SKILL.md +21 -0
  283. agent_toolkit/data/skills/delivery/user-story/references/default-template.md +21 -0
  284. agent_toolkit/data/skills/delivery/user-story/references/example-advanced-filtering.md +37 -0
  285. agent_toolkit/data/skills/delivery/work-item/SKILL.md +31 -0
  286. agent_toolkit/data/skills/delivery/work-item/references/default-template.md +21 -0
  287. agent_toolkit/data/skills/delivery/work-item/references/example-routing-dashboard.md +23 -0
  288. agent_toolkit/data/skills/delivery/workflow-client-bootstrap/SKILL.md +148 -0
  289. agent_toolkit/data/skills/delivery/workflow-client-bootstrap/questions.yaml +165 -0
  290. agent_toolkit/data/skills/delivery/workflow-generic-project/SKILL.md +79 -0
  291. agent_toolkit/data/skills/design/design-assessment/SKILL.md +150 -0
  292. agent_toolkit/data/skills/design/design-assessment/references/design-scorecard-template.md +78 -0
  293. agent_toolkit/data/skills/design/design-improvement/SKILL.md +167 -0
  294. agent_toolkit/data/skills/design/design-improvement/references/improvement-plan-template.md +113 -0
  295. agent_toolkit/data/skills/design/figma/LICENSE.txt +2 -0
  296. agent_toolkit/data/skills/design/figma/NOTICE.txt +25 -0
  297. agent_toolkit/data/skills/design/figma/SKILL.md +98 -0
  298. agent_toolkit/data/skills/design/figma/references/figma-mcp-config.md +82 -0
  299. agent_toolkit/data/skills/design/figma/references/figma-tools-and-prompts.md +34 -0
  300. agent_toolkit/data/skills/design/figma-code-connect-components/LICENSE.txt +2 -0
  301. agent_toolkit/data/skills/design/figma-code-connect-components/NOTICE.txt +18 -0
  302. agent_toolkit/data/skills/design/figma-code-connect-components/SKILL.md +354 -0
  303. agent_toolkit/data/skills/design/figma-code-connect-components/references/mapping-checklist.md +7 -0
  304. agent_toolkit/data/skills/design/figma-code-connect-components/scripts/normalize_node_id.py +25 -0
  305. agent_toolkit/data/skills/design/figma-create-design-system-rules/LICENSE.txt +2 -0
  306. agent_toolkit/data/skills/design/figma-create-design-system-rules/NOTICE.txt +19 -0
  307. agent_toolkit/data/skills/design/figma-create-design-system-rules/SKILL.md +554 -0
  308. agent_toolkit/data/skills/design/figma-create-design-system-rules/references/rule-template.md +15 -0
  309. agent_toolkit/data/skills/design/figma-create-design-system-rules/scripts/check_agents_md.sh +9 -0
  310. agent_toolkit/data/skills/design/figma-create-new-file/LICENSE.txt +2 -0
  311. agent_toolkit/data/skills/design/figma-create-new-file/NOTICE.txt +17 -0
  312. agent_toolkit/data/skills/design/figma-create-new-file/SKILL.md +72 -0
  313. agent_toolkit/data/skills/design/figma-implement-design/LICENSE.txt +2 -0
  314. agent_toolkit/data/skills/design/figma-implement-design/NOTICE.txt +19 -0
  315. agent_toolkit/data/skills/design/figma-implement-design/SKILL.md +268 -0
  316. agent_toolkit/data/skills/design/frontend-design/LICENSE.txt +177 -0
  317. agent_toolkit/data/skills/design/frontend-design/SKILL.md +82 -0
  318. agent_toolkit/data/skills/design/frontend-design/UPSTREAM.md +14 -0
  319. agent_toolkit/data/skills/design/frontend-design-review/LICENSE +21 -0
  320. agent_toolkit/data/skills/design/frontend-design-review/SKILL.md +194 -0
  321. agent_toolkit/data/skills/design/frontend-design-review/references/pattern-examples.md +21 -0
  322. agent_toolkit/data/skills/design/frontend-design-review/references/quick-checklist.md +38 -0
  323. agent_toolkit/data/skills/design/frontend-design-review/references/review-output-format.md +68 -0
  324. agent_toolkit/data/skills/design/frontend-design-review/references/review-type-modifiers.md +31 -0
  325. agent_toolkit/data/skills/design/web-design-guidelines/SKILL.md +78 -0
  326. agent_toolkit/data/skills/design/web-design-guidelines/references/LICENSE +21 -0
  327. agent_toolkit/data/skills/design/web-design-guidelines/references/web-interface-guidelines.md +180 -0
  328. agent_toolkit/data/skills/forge/gh-address-comments/LICENSE.txt +202 -0
  329. agent_toolkit/data/skills/forge/gh-address-comments/NOTICE.txt +20 -0
  330. agent_toolkit/data/skills/forge/gh-address-comments/SKILL.md +72 -0
  331. agent_toolkit/data/skills/forge/gh-address-comments/scripts/fetch_comments.py +239 -0
  332. agent_toolkit/data/skills/forge/gh-contribution-planner/SKILL.md +160 -0
  333. agent_toolkit/data/skills/forge/gh-contribution-planner/scripts/inspect_contributions.py +818 -0
  334. agent_toolkit/data/skills/forge/gh-fix-ci/LICENSE.txt +201 -0
  335. agent_toolkit/data/skills/forge/gh-fix-ci/NOTICE.txt +20 -0
  336. agent_toolkit/data/skills/forge/gh-fix-ci/SKILL.md +74 -0
  337. agent_toolkit/data/skills/forge/gh-fix-ci/scripts/inspect_pr_checks.py +509 -0
  338. agent_toolkit/data/skills/forge/github-cli-workflow/SKILL.md +49 -0
  339. agent_toolkit/data/skills/forge/gitlab-cli-workflow/SKILL.md +44 -0
  340. agent_toolkit/data/skills/forge/workflow-client-bootstrap/SKILL.md +14 -0
  341. agent_toolkit/data/skills/forge/workflow-generic-project/SKILL.md +14 -0
  342. agent_toolkit/data/skills/forge/worktree/SKILL.md +113 -0
  343. agent_toolkit/data/skills/integrations/clickup-cli/SKILL.md +78 -0
  344. agent_toolkit/data/skills/integrations/clickup-cli/references/docs-management.md +57 -0
  345. agent_toolkit/data/skills/integrations/clickup-cli/references/task-management.md +131 -0
  346. agent_toolkit/data/skills/integrations/clickup-cli/references/time-tracking.md +38 -0
  347. agent_toolkit/data/skills/integrations/linear/LICENSE.txt +202 -0
  348. agent_toolkit/data/skills/integrations/linear/NOTICE.txt +23 -0
  349. agent_toolkit/data/skills/integrations/linear/SKILL.md +134 -0
  350. agent_toolkit/data/skills/integrations/mcp/SKILL.md +88 -0
  351. agent_toolkit/data/skills/integrations/slack-assistant/SKILL.md +138 -0
  352. agent_toolkit/data/skills/integrations/slack-cli/SKILL.md +109 -0
  353. agent_toolkit/data/skills/integrations/slack-cli/references/INSTALLATION.md +42 -0
  354. agent_toolkit/data/skills/loops/loop-runner/SKILL.md +92 -0
  355. agent_toolkit/data/skills/ops/docs-generator/SKILL.md +120 -0
  356. agent_toolkit/data/skills/ops/llm-cost-advisor/SKILL.md +87 -0
  357. agent_toolkit/data/skills/ops/swarm/SKILL.md +108 -0
  358. agent_toolkit/data/skills/ops/swarm-handoff/SKILL.md +112 -0
  359. agent_toolkit/data/skills/ops/swarm-observer/SKILL.md +102 -0
  360. agent_toolkit/data/skills/ops/triage/SKILL.md +119 -0
  361. agent_toolkit/data/skills/quality/codeql/SKILL.md +106 -0
  362. agent_toolkit/data/skills/quality/codeql/references/codeql-queries.md +43 -0
  363. agent_toolkit/data/skills/quality/megalinter/SKILL.md +162 -0
  364. agent_toolkit/data/skills/quality/megalinter/references/megalinter-images.md +36 -0
  365. agent_toolkit/data/skills/quality/megalinter/references/megalinter-license.md +41 -0
  366. agent_toolkit/data/skills/quality/megalinter/references/megalinter-targets.md +66 -0
  367. agent_toolkit/data/skills/tooling/chrome-devtools/SKILL.md +146 -0
  368. agent_toolkit/data/skills/tooling/herdr/SKILL.md +109 -0
  369. agent_toolkit/data/skills/tooling/inventory/SKILL.md +81 -0
  370. agent_toolkit/data/skills/tooling/jupyter-notebook/LICENSE.txt +201 -0
  371. agent_toolkit/data/skills/tooling/jupyter-notebook/NOTICE.txt +27 -0
  372. agent_toolkit/data/skills/tooling/jupyter-notebook/SKILL.md +145 -0
  373. agent_toolkit/data/skills/tooling/jupyter-notebook/assets/experiment-template.ipynb +117 -0
  374. agent_toolkit/data/skills/tooling/jupyter-notebook/assets/tutorial-template.ipynb +115 -0
  375. agent_toolkit/data/skills/tooling/jupyter-notebook/references/experiment-patterns.md +10 -0
  376. agent_toolkit/data/skills/tooling/jupyter-notebook/references/notebook-structure.md +17 -0
  377. agent_toolkit/data/skills/tooling/jupyter-notebook/references/quality-checklist.md +11 -0
  378. agent_toolkit/data/skills/tooling/jupyter-notebook/references/tutorial-patterns.md +9 -0
  379. agent_toolkit/data/skills/tooling/jupyter-notebook/scripts/new_notebook.py +132 -0
  380. agent_toolkit/data/skills/tooling/mermaid/SKILL.md +36 -0
  381. agent_toolkit/data/skills/tooling/playwright-cli/LICENSE.txt +201 -0
  382. agent_toolkit/data/skills/tooling/playwright-cli/NOTICE.txt +29 -0
  383. agent_toolkit/data/skills/tooling/playwright-cli/SKILL.md +154 -0
  384. agent_toolkit/data/skills/tooling/playwright-cli/references/cli.md +116 -0
  385. agent_toolkit/data/skills/tooling/playwright-cli/references/workflows.md +98 -0
  386. agent_toolkit/data/skills/tooling/playwright-cli/scripts/executable_playwright_cli.sh +25 -0
  387. agent_toolkit/data_cache.py +79 -0
  388. agent_toolkit/data_sync.py +144 -0
  389. agent_toolkit/installer/__init__.py +0 -0
  390. agent_toolkit/installer/merge.py +59 -0
  391. agent_toolkit/installer/receipt.py +89 -0
  392. agent_toolkit/installer/sources.py +92 -0
  393. agent_toolkit/installer/tracking.py +63 -0
  394. agent_toolkit/launcher.py +69 -0
  395. agent_toolkit/loop/__init__.py +0 -0
  396. agent_toolkit/loop/budget.py +107 -0
  397. agent_toolkit/loop/gh_gate.py +923 -0
  398. agent_toolkit/loop/loop-gh-gate +923 -0
  399. agent_toolkit/loop/pack.py +65 -0
  400. agent_toolkit/loop/runner.py +2722 -0
  401. agent_toolkit/runner/__init__.py +0 -0
  402. agent_toolkit/runner/dispatcher.py +163 -0
  403. agent_toolkit/runner/policy.py +356 -0
  404. agent_toolkit/runner/providers/__init__.py +21 -0
  405. agent_toolkit/runner/providers/anthropic_provider.py +109 -0
  406. agent_toolkit/runner/providers/base.py +53 -0
  407. agent_toolkit/runner/providers/ollama_provider.py +108 -0
  408. agent_toolkit/runner/providers/openai_provider.py +103 -0
  409. agent_toolkit/runner/providers/opencode_provider.py +127 -0
  410. agent_toolkit/swarm/__init__.py +5 -0
  411. agent_toolkit/swarm/approvals.py +121 -0
  412. agent_toolkit/swarm/backends/__init__.py +596 -0
  413. agent_toolkit/swarm/budget.py +83 -0
  414. agent_toolkit/swarm/cli.py +2448 -0
  415. agent_toolkit/swarm/config.py +351 -0
  416. agent_toolkit/swarm/handoff.py +174 -0
  417. agent_toolkit/swarm/models.py +230 -0
  418. agent_toolkit/swarm/prompts.py +177 -0
  419. agent_toolkit/swarm/recipes.py +304 -0
  420. agent_toolkit/swarm/runner.py +267 -0
  421. agent_toolkit/swarm/state.py +93 -0
  422. agent_toolkit/swarm/store.py +148 -0
  423. agent_toolkit/swarm/worktree.py +105 -0
  424. agent_toolkit/templates/workspace/.gitignore +19 -0
  425. agent_toolkit/templates/workspace/AGENTS.md +82 -0
  426. agent_toolkit/templates/workspace/knowledge/README.md +22 -0
  427. agent_toolkit/templates/workspace/knowledge/learnings/general.md +3 -0
  428. agent_toolkit/templates/workspace/knowledge/todos/pending.md +7 -0
  429. agent_toolkit/templates/workspace/packs/README.md +24 -0
  430. agent_toolkit/templates/workspace/personas/architect.md +12 -0
  431. agent_toolkit/templates/workspace/personas/implementer.md +12 -0
  432. agent_toolkit/templates/workspace/personas/researcher.md +12 -0
  433. agent_toolkit/templates/workspace/personas/reviewer.md +12 -0
  434. agent_toolkit_cli-1.11.0.dist-info/METADATA +363 -0
  435. agent_toolkit_cli-1.11.0.dist-info/RECORD +438 -0
  436. agent_toolkit_cli-1.11.0.dist-info/WHEEL +4 -0
  437. agent_toolkit_cli-1.11.0.dist-info/entry_points.txt +4 -0
  438. agent_toolkit_cli-1.11.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,261 @@
1
+ """
2
+ OpenAI Codex target adapter.
3
+
4
+ OpenAI Codex launched a plugin marketplace in March 2026. As of the research
5
+ date (2026-08-04) it is in early experimental status — self-serve marketplace
6
+ submission is "coming soon" and the plugin API surface is still evolving.
7
+
8
+ **IMPORTANT**: This adapter is labeled ``maturity = "experimental"`` because:
9
+ 1. The Codex plugin API may change without notice.
10
+ 2. Marketplace submission requires explicit authorization from OpenAI.
11
+ 3. Hooks and MCP integration are unknown-blocked (not confirmed by official docs).
12
+
13
+ Generated artifacts:
14
+ .codex-plugin/plugin.json — manifest (different directory from .claude-plugin/)
15
+ skills/<name>/SKILL.md — on-demand procedures
16
+ agents/<name>/AGENT.md — agent personas
17
+
18
+ NOT generated:
19
+ Hooks — unknown-blocked; not confirmed in official Codex plugin docs.
20
+ MCP — unknown-blocked; not confirmed in official Codex plugin docs.
21
+
22
+ Marketplace note:
23
+ Codex artifacts MUST NOT be submitted to the Codex marketplace without
24
+ explicit authorization from OpenAI. The marketplace is gated as of 2026-08-04.
25
+ Use this adapter to generate the plugin structure for local development only.
26
+
27
+ Path distinction from Claude Code / Cursor:
28
+ Claude Code: .claude-plugin/plugin.json
29
+ Cursor: .cursor-plugin/plugin.json
30
+ Codex: .codex-plugin/plugin.json ← this adapter
31
+
32
+ Research: docs/research/platform-capability-matrix.md (2026-08-04)
33
+ Marketplace: https://marketplace.openai.com/codex (gated, submission "coming soon")
34
+ """
35
+
36
+ from __future__ import annotations
37
+
38
+ import json
39
+ from pathlib import Path
40
+
41
+ from agent_toolkit.compiler.model import (
42
+ Agent,
43
+ CanonicalGraph,
44
+ CompilationResult,
45
+ Product,
46
+ Skill,
47
+ )
48
+ from agent_toolkit.compiler.targets.base import TargetAdapter, private_network_leak_errors
49
+
50
+ # Settings that must never appear in a publicly distributed Codex plugin.
51
+ # These bypass safety mechanisms and are forbidden in any marketplace submission.
52
+ _FORBIDDEN_CODEX_SETTINGS = {
53
+ "skipDangerousModePermissionPrompt",
54
+ "autoAcceptPermissions",
55
+ "disablePermissionPrompts",
56
+ "allowUnsafeCode",
57
+ }
58
+
59
+
60
+ class CodexAdapter(TargetAdapter):
61
+ """Compiles agent-toolkit products into OpenAI Codex plugin bundles.
62
+
63
+ EXPERIMENTAL: The Codex plugin API launched in March 2026 and is still
64
+ evolving. Self-serve marketplace submission is "coming soon" as of
65
+ 2026-08-04. Do NOT submit generated artifacts to the marketplace without
66
+ explicit OpenAI authorization.
67
+
68
+ The generated bundle structure mirrors the Codex plugin format:
69
+ .codex-plugin/plugin.json — manifest
70
+ skills/<name>/SKILL.md — on-demand skills
71
+ agents/<name>/AGENT.md — agent personas
72
+
73
+ Capability parity:
74
+ native (experimental): plugin manifest, skills, agents
75
+ unknown-blocked: hooks (not confirmed in official Codex docs)
76
+ unknown-blocked: MCP (not confirmed in official Codex docs)
77
+ unsupported: lifecycle hooks, MCP integration
78
+
79
+ Maturity: experimental — API may change without notice.
80
+ """
81
+
82
+ target_id = "codex"
83
+ package_type = "plugin"
84
+ maturity = "experimental" # MUST remain "experimental" — marketplace is gated
85
+
86
+ def compile(self, graph: CanonicalGraph, product: Product) -> CompilationResult:
87
+ result = CompilationResult(target=self.target_id, product=product.id)
88
+ out_dir = self.output_root / product.id
89
+
90
+ # 1. Emit .codex-plugin/plugin.json (NOT .claude-plugin/ — different path)
91
+ plugin_json = self._build_plugin_json(product)
92
+ self._write_file(
93
+ out_dir / ".codex-plugin" / "plugin.json",
94
+ json.dumps(plugin_json, indent=2) + "\n",
95
+ result,
96
+ )
97
+ result.emitted.append("plugin-manifest")
98
+
99
+ # 2. Emit skills to skills/<name>/SKILL.md
100
+ for skill_id in product.included_skills:
101
+ skill = graph.skills.get(skill_id)
102
+ if skill is None:
103
+ result.warnings.append(f"Skill '{skill_id}' not found — skipping")
104
+ result.omitted.append(f"skill:{skill_id}")
105
+ continue
106
+ self._emit_skill(skill, out_dir, result)
107
+
108
+ # 3. Emit agents to agents/<name>/AGENT.md
109
+ for agent_id in product.included_agents:
110
+ agent = graph.agents.get(agent_id)
111
+ if agent is None:
112
+ result.warnings.append(f"Agent '{agent_id}' not found — skipping")
113
+ result.omitted.append(f"agent:{agent_id}")
114
+ continue
115
+ self._emit_agent(agent, out_dir, result)
116
+
117
+ # 4. Explicitly document unsupported capabilities.
118
+ # Never silently drop a capability — always report.
119
+ result.unsupported.extend(
120
+ [
121
+ "hooks — unknown-blocked: lifecycle hooks not confirmed in official Codex plugin docs",
122
+ "mcp — unknown-blocked: MCP integration not confirmed in official Codex plugin docs",
123
+ ]
124
+ )
125
+
126
+ # 5. Add an experimental maturity warning to every compilation result.
127
+ result.warnings.append(
128
+ "Codex plugin API is experimental (maturity='experimental'). "
129
+ "Do NOT submit to Codex marketplace without explicit OpenAI authorization. "
130
+ "Self-serve submission is 'coming soon' as of 2026-08-04."
131
+ )
132
+
133
+ return result
134
+
135
+ # ── manifest ──────────────────────────────────────────────────────────────
136
+
137
+ def _build_plugin_json(self, product: Product) -> dict:
138
+ """Build .codex-plugin/plugin.json manifest.
139
+
140
+ The Codex manifest uses the same general shape as Claude Code / Cursor
141
+ plugin.json but is placed in .codex-plugin/ (not .claude-plugin/).
142
+
143
+ Security:
144
+ - No forbidden settings (skipDangerousModePermissionPrompt, etc.)
145
+ - No private hostnames or IPs
146
+ - maturity field is always set to "experimental"
147
+ """
148
+ try:
149
+ from agent_toolkit import __version__
150
+
151
+ version = __version__
152
+ except ImportError:
153
+ version = "1.0.0"
154
+
155
+ manifest = {
156
+ "name": product.id,
157
+ "version": version,
158
+ "description": product.description,
159
+ "maturity": self.maturity, # always "experimental" — accurately labels this plugin
160
+ "author": {
161
+ "name": "ulises-jeremias",
162
+ "email": "ulisescf.24@gmail.com",
163
+ },
164
+ "homepage": "https://github.com/ulises-jeremias/agent-toolkit",
165
+ "repository": "https://github.com/ulises-jeremias/agent-toolkit",
166
+ "license": "MIT",
167
+ "keywords": [
168
+ "agent-toolkit",
169
+ product.id.replace("agent-toolkit-", ""),
170
+ "codex",
171
+ "skills",
172
+ "agents",
173
+ ],
174
+ }
175
+
176
+ # Validate — raise loudly if forbidden settings sneak in
177
+ errors = self.validate_plugin_json(manifest)
178
+ # In practice this should never trigger since we build the dict above,
179
+ # but defensive validation is always correct.
180
+ for err in errors:
181
+ raise ValueError(f"Generated Codex plugin.json is invalid: {err}")
182
+
183
+ return manifest
184
+
185
+ @staticmethod
186
+ def validate_plugin_json(data: dict) -> list[str]:
187
+ """Return error messages for any forbidden plugin.json fields or values."""
188
+ errors = []
189
+ for field in _FORBIDDEN_CODEX_SETTINGS:
190
+ if field in data:
191
+ errors.append(
192
+ f"Forbidden field '{field}' in .codex-plugin/plugin.json — "
193
+ "this setting bypasses safety mechanisms and is prohibited "
194
+ "in any Codex marketplace submission"
195
+ )
196
+ text = json.dumps(data)
197
+ errors.extend(private_network_leak_errors(text, context="plugin.json"))
198
+ return errors
199
+
200
+ # ── skills ────────────────────────────────────────────────────────────────
201
+
202
+ def _emit_skill(self, skill: Skill, out_dir: Path, result: CompilationResult) -> None:
203
+ """Copy SKILL.md to skills/<name>/SKILL.md.
204
+
205
+ Codex discovers skills at <plugin-root>/skills/<name>/SKILL.md —
206
+ the same path convention as Claude Code and Cursor.
207
+ """
208
+ if not skill.source_path.exists():
209
+ result.warnings.append(f"Skill source missing: {skill.source_path}")
210
+ result.omitted.append(f"skill:{skill.id}")
211
+ return
212
+
213
+ dst = out_dir / "skills" / skill.name
214
+ dst.mkdir(parents=True, exist_ok=True)
215
+
216
+ content = skill.source_path.read_text(encoding="utf-8", errors="replace")
217
+ self._write_file(dst / "SKILL.md", content, result)
218
+
219
+ # Progressive disclosure: copy references/
220
+ self._copy_skill_references(skill, dst, result)
221
+
222
+ result.emitted.append(f"skill:{skill.id}")
223
+
224
+ # ── agents ────────────────────────────────────────────────────────────────
225
+
226
+ def _emit_agent(self, agent: Agent, out_dir: Path, result: CompilationResult) -> None:
227
+ """Copy AGENT.md to agents/<name>/AGENT.md."""
228
+ if not agent.source_path.exists():
229
+ result.warnings.append(f"Agent source missing: {agent.source_path}")
230
+ result.omitted.append(f"agent:{agent.id}")
231
+ return
232
+
233
+ dst = out_dir / "agents" / agent.name
234
+ dst.mkdir(parents=True, exist_ok=True)
235
+
236
+ content = agent.source_path.read_text(encoding="utf-8", errors="replace")
237
+ self._write_file(dst / "AGENT.md", content, result)
238
+ result.emitted.append(f"agent:{agent.id}")
239
+
240
+ # ── parity notes ──────────────────────────────────────────────────────────
241
+
242
+ @staticmethod
243
+ def parity_notes() -> str:
244
+ return (
245
+ "OpenAI Codex plugin support is EXPERIMENTAL. The marketplace launched "
246
+ "in March 2026 but self-serve submission is 'coming soon' as of 2026-08-04. "
247
+ "Generated artifacts MUST NOT be submitted to the marketplace without "
248
+ "explicit authorization from OpenAI.\n"
249
+ "\n"
250
+ "Manifest path: .codex-plugin/plugin.json\n"
251
+ " (distinct from .claude-plugin/ and .cursor-plugin/ — same general schema)\n"
252
+ "\n"
253
+ "Hooks and MCP are unknown-blocked — neither surface is confirmed by "
254
+ "official Codex plugin documentation. They are explicitly reported in "
255
+ "CompilationResult.unsupported rather than silently dropped.\n"
256
+ "\n"
257
+ "The ``maturity`` field in plugin.json is always set to 'experimental' "
258
+ "to accurately represent the current state of the Codex plugin ecosystem. "
259
+ "This must not be changed to 'stable' until the Codex plugin API is "
260
+ "officially stable and marketplace submission is open to all publishers."
261
+ )
@@ -0,0 +1,275 @@
1
+ """
2
+ GitHub Copilot CLI and Repository target adapter.
3
+
4
+ GitHub Copilot has TWO distinct distribution surfaces — both generated from
5
+ the same canonical IR but published separately:
6
+
7
+ 1. **Copilot CLI Plugin** — installable via `copilot plugin install`
8
+ Root-level `plugin.json` (NOT `.copilot-plugin/` — different schema
9
+ from Claude Code / Cursor).
10
+ Discovery paths: skills/, agents/, hooks.json
11
+
12
+ 2. **Repository Surface** — files committed to a project repository
13
+ `.github/copilot-instructions.md` — global instructions
14
+ `.github/agents/<name>.agent.md` — agent personas (different format!)
15
+ `.github/skills/<name>/SKILL.md` — on-demand skills
16
+ `.github/hooks/<name>.json` — lifecycle hooks (future)
17
+
18
+ Official docs:
19
+ https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-plugin-reference
20
+ Research:
21
+ docs/research/platform-capability-matrix.md (2026-08-04)
22
+
23
+ Key differences from Claude Code / Cursor:
24
+ - CLI plugin.json is at ROOT level, not in .copilot-plugin/
25
+ - Agent format uses .agent.md extension (not AGENT.md)
26
+ - Each surface (CLI plugin, repository) must be generated independently
27
+ - Hooks require both Bash (.sh) AND PowerShell (.ps1) handlers
28
+ - MCP: unknown-blocked (not confirmed from official docs as of research date)
29
+ """
30
+
31
+ from __future__ import annotations
32
+
33
+ import json
34
+ from pathlib import Path
35
+
36
+ from agent_toolkit.compiler.model import (
37
+ Agent,
38
+ CanonicalGraph,
39
+ CompilationResult,
40
+ Product,
41
+ Skill,
42
+ )
43
+ from agent_toolkit.compiler.targets.base import TargetAdapter
44
+
45
+
46
+ class CopilotCLIAdapter(TargetAdapter):
47
+ """Generates GitHub Copilot CLI plugin bundle.
48
+
49
+ The plugin is installed via:
50
+ copilot plugin install <name>@<marketplace>
51
+ or declared in .github/copilot/settings.json.
52
+
53
+ Capability parity:
54
+ native: skills, agents (.agent.md format), plugin manifest
55
+ unknown-blocked: MCP (not confirmed from official docs)
56
+ unsupported: hooks (handler format unclear; cross-platform requires
57
+ both Bash + PowerShell — pending canonical hook model #16)
58
+ """
59
+
60
+ target_id = "copilot-cli"
61
+ package_type = "plugin"
62
+ maturity = "stable"
63
+
64
+ def compile(self, graph: CanonicalGraph, product: Product) -> CompilationResult:
65
+ result = CompilationResult(target=self.target_id, product=product.id)
66
+ out_dir = self.output_root / product.id
67
+
68
+ # 1. Root-level plugin.json (different from .claude-plugin/plugin.json)
69
+ self._write_file(
70
+ out_dir / "plugin.json",
71
+ json.dumps(self._build_plugin_json(product), indent=2) + "\n",
72
+ result,
73
+ )
74
+ result.emitted.append("plugin-manifest")
75
+
76
+ # 2. Skills
77
+ for skill_id in product.included_skills:
78
+ skill = graph.skills.get(skill_id)
79
+ if skill is None:
80
+ result.warnings.append(f"Skill '{skill_id}' not found — skipping")
81
+ result.omitted.append(f"skill:{skill_id}")
82
+ continue
83
+ self._emit_skill(skill, out_dir, result)
84
+
85
+ # 3. Agents (.agent.md format — distinct from AGENT.md)
86
+ for agent_id in product.included_agents:
87
+ agent = graph.agents.get(agent_id)
88
+ if agent is None:
89
+ result.warnings.append(f"Agent '{agent_id}' not found — skipping")
90
+ result.omitted.append(f"agent:{agent_id}")
91
+ continue
92
+ self._emit_agent_cli(agent, out_dir, result)
93
+
94
+ # 4. Explicitly report what is not yet implemented
95
+ result.unsupported.extend(
96
+ [
97
+ "hooks (cross-platform Bash+PowerShell handlers required — pending #16)",
98
+ "mcp (unknown-blocked: not confirmed in official Copilot CLI docs)",
99
+ ]
100
+ )
101
+
102
+ return result
103
+
104
+ def _build_plugin_json(self, product: Product) -> dict:
105
+ try:
106
+ from agent_toolkit import __version__
107
+
108
+ version = __version__
109
+ except ImportError:
110
+ version = "1.0.0"
111
+
112
+ return {
113
+ "name": product.id,
114
+ "version": version,
115
+ "description": product.description,
116
+ "author": {
117
+ "name": "ulises-jeremias",
118
+ "url": "https://github.com/ulises-jeremias/agent-toolkit",
119
+ },
120
+ "repository": "https://github.com/ulises-jeremias/agent-toolkit",
121
+ "license": "MIT",
122
+ "skills": "skills/",
123
+ "agents": "agents/",
124
+ }
125
+
126
+ def _emit_skill(self, skill: Skill, out_dir: Path, result: CompilationResult) -> None:
127
+ if not skill.source_path.exists():
128
+ result.warnings.append(f"Skill source missing: {skill.source_path}")
129
+ result.omitted.append(f"skill:{skill.id}")
130
+ return
131
+
132
+ dst = out_dir / "skills" / skill.name
133
+ dst.mkdir(parents=True, exist_ok=True)
134
+ content = skill.source_path.read_text(encoding="utf-8", errors="replace")
135
+ self._write_file(dst / "SKILL.md", content, result)
136
+
137
+ self._copy_skill_references(skill, dst, result)
138
+
139
+ result.emitted.append(f"skill:{skill.id}")
140
+
141
+ def _emit_agent_cli(self, agent: Agent, out_dir: Path, result: CompilationResult) -> None:
142
+ """Emit agent in Copilot CLI .agent.md format.
143
+
144
+ The Copilot CLI agent format uses <name>.agent.md (not AGENT.md).
145
+ Content is the same AGENT.md body with frontmatter.
146
+ """
147
+ if not agent.source_path.exists():
148
+ result.warnings.append(f"Agent source missing: {agent.source_path}")
149
+ result.omitted.append(f"agent:{agent.id}")
150
+ return
151
+
152
+ dst = out_dir / "agents"
153
+ dst.mkdir(parents=True, exist_ok=True)
154
+
155
+ content = agent.source_path.read_text(encoding="utf-8", errors="replace")
156
+ # Write as <name>.agent.md (Copilot CLI convention)
157
+ self._write_file(dst / f"{agent.name}.agent.md", content, result)
158
+ result.emitted.append(f"agent:{agent.id}")
159
+
160
+ @staticmethod
161
+ def parity_notes() -> str:
162
+ return (
163
+ "Copilot CLI plugins use root-level plugin.json (not .copilot-plugin/). "
164
+ "Agents use the .agent.md extension. Hooks and MCP are not generated — "
165
+ "hooks need cross-platform handlers; MCP is unknown-blocked pending official docs."
166
+ )
167
+
168
+
169
+ class CopilotRepositoryAdapter(TargetAdapter):
170
+ """Generates GitHub Copilot repository-scoped assets.
171
+
172
+ These are committed to a project repository and activate for
173
+ all Copilot surfaces (IDE, cloud-agent, CLI) within that repo.
174
+
175
+ Generated files:
176
+ .github/copilot-instructions.md ← global instructions
177
+ .github/agents/<name>.agent.md ← agent personas
178
+ .github/skills/<name>/SKILL.md ← on-demand skills
179
+
180
+ Capability parity:
181
+ native: copilot-instructions.md, agents (.agent.md), skills
182
+ unsupported: hooks, MCP (not confirmed for repository surface)
183
+ """
184
+
185
+ target_id = "copilot-repository"
186
+ package_type = "repository-customization"
187
+ maturity = "stable"
188
+
189
+ def compile(self, graph: CanonicalGraph, product: Product) -> CompilationResult:
190
+ result = CompilationResult(target=self.target_id, product=product.id)
191
+ out_dir = self.output_root / product.id
192
+
193
+ # 1. Global instructions from assistant agent body
194
+ self._emit_instructions(graph, product, out_dir, result)
195
+
196
+ # 2. Skills
197
+ for skill_id in product.included_skills:
198
+ skill = graph.skills.get(skill_id)
199
+ if skill is None:
200
+ result.omitted.append(f"skill:{skill_id}")
201
+ continue
202
+ self._emit_skill_repo(skill, out_dir, result)
203
+
204
+ # 3. Agents
205
+ for agent_id in product.included_agents:
206
+ agent = graph.agents.get(agent_id)
207
+ if agent is None:
208
+ result.omitted.append(f"agent:{agent_id}")
209
+ continue
210
+ self._emit_agent_repo(agent, out_dir, result)
211
+
212
+ result.unsupported.extend(
213
+ [
214
+ "hooks (unknown-blocked for repository surface)",
215
+ "mcp (unknown-blocked for repository surface)",
216
+ ]
217
+ )
218
+ return result
219
+
220
+ def _emit_instructions(
221
+ self, graph: CanonicalGraph, product: Product, out_dir: Path, result: CompilationResult
222
+ ) -> None:
223
+ """Generate .github/copilot-instructions.md from assistant agent."""
224
+ # Build instructions from assistant agent + product description
225
+ lines = [
226
+ f"# {product.name}",
227
+ "",
228
+ product.description,
229
+ "",
230
+ "## Available skills",
231
+ "",
232
+ ]
233
+ for skill_id in product.included_skills:
234
+ skill = graph.skills.get(skill_id)
235
+ if skill:
236
+ lines.append(f"- **{skill.name}**: {skill.description[:80]}")
237
+ lines.extend(["", "## Available agents", ""])
238
+ for agent_id in product.included_agents:
239
+ agent = graph.agents.get(agent_id)
240
+ if agent:
241
+ lines.append(f"- **{agent.name}**: {agent.description[:80]}")
242
+
243
+ content = "\n".join(lines) + "\n"
244
+ github_dir = out_dir / ".github"
245
+ github_dir.mkdir(parents=True, exist_ok=True)
246
+ self._write_file(github_dir / "copilot-instructions.md", content, result)
247
+ result.emitted.append("copilot-instructions.md")
248
+
249
+ def _emit_skill_repo(self, skill: Skill, out_dir: Path, result: CompilationResult) -> None:
250
+ if not skill.source_path.exists():
251
+ result.omitted.append(f"skill:{skill.id}")
252
+ return
253
+ dst = out_dir / ".github" / "skills" / skill.name
254
+ dst.mkdir(parents=True, exist_ok=True)
255
+ content = skill.source_path.read_text(encoding="utf-8", errors="replace")
256
+ self._write_file(dst / "SKILL.md", content, result)
257
+ result.emitted.append(f"skill:{skill.id}")
258
+
259
+ def _emit_agent_repo(self, agent: Agent, out_dir: Path, result: CompilationResult) -> None:
260
+ if not agent.source_path.exists():
261
+ result.omitted.append(f"agent:{agent.id}")
262
+ return
263
+ dst = out_dir / ".github" / "agents"
264
+ dst.mkdir(parents=True, exist_ok=True)
265
+ content = agent.source_path.read_text(encoding="utf-8", errors="replace")
266
+ self._write_file(dst / f"{agent.name}.agent.md", content, result)
267
+ result.emitted.append(f"agent:{agent.id}")
268
+
269
+ @staticmethod
270
+ def parity_notes() -> str:
271
+ return (
272
+ "Repository surface emits .github/copilot-instructions.md, "
273
+ ".github/agents/*.agent.md, and .github/skills/*/SKILL.md. "
274
+ "Hooks and MCP are not generated for the repository surface."
275
+ )