agent-devkit 0.1.6 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) hide show
  1. package/README.md +13 -1
  2. package/package.json +1 -1
  3. package/runtime/README.md +53 -1
  4. package/runtime/agent +5 -0
  5. package/runtime/agents/README.md +26 -0
  6. package/runtime/agents/agent-devkit-agent-builder/AGENTS.md +24 -0
  7. package/runtime/agents/agent-devkit-agent-builder/README.md +37 -0
  8. package/runtime/agents/agent-devkit-agent-builder/agent.yaml +46 -0
  9. package/runtime/agents/agent-devkit-agent-builder/capabilities/plan-agent/capability.yaml +29 -0
  10. package/runtime/agents/agent-devkit-agent-builder/capabilities/plan-agent/decision-rules.md +7 -0
  11. package/runtime/agents/agent-devkit-agent-builder/capabilities/plan-agent/runner.py +33 -0
  12. package/runtime/agents/agent-devkit-agent-builder/capabilities/plan-agent/workflow.md +8 -0
  13. package/runtime/agents/agent-devkit-agent-builder/capabilities/scaffold-agent/capability.yaml +31 -0
  14. package/runtime/agents/agent-devkit-agent-builder/capabilities/scaffold-agent/decision-rules.md +9 -0
  15. package/runtime/agents/agent-devkit-agent-builder/capabilities/scaffold-agent/runner.py +39 -0
  16. package/runtime/agents/agent-devkit-agent-builder/capabilities/scaffold-agent/workflow.md +8 -0
  17. package/runtime/agents/agent-devkit-agent-builder/capabilities/validate-agent-contract/capability.yaml +28 -0
  18. package/runtime/agents/agent-devkit-agent-builder/capabilities/validate-agent-contract/decision-rules.md +6 -0
  19. package/runtime/agents/agent-devkit-agent-builder/capabilities/validate-agent-contract/runner.py +33 -0
  20. package/runtime/agents/agent-devkit-agent-builder/capabilities/validate-agent-contract/workflow.md +7 -0
  21. package/runtime/agents/agent-devkit-agent-builder/infra/integrations/agent-devkit/agent_builder_repository.py +527 -0
  22. package/runtime/agents/agent-devkit-agent-builder/knowledge/context.md +15 -0
  23. package/runtime/agents/agent-devkit-agent-builder/knowledge/policies.yaml +11 -0
  24. package/runtime/agents/agent-devkit-agent-builder/knowledge/system.md +11 -0
  25. package/runtime/agents/agent-devkit-agent-builder/templates/agent-plan-output.md +20 -0
  26. package/runtime/agents/agent-devkit-agent-builder/templates/scaffold-plan-output.md +13 -0
  27. package/runtime/agents/agent-devkit-agent-builder/templates/validation-report-output.md +13 -0
  28. package/runtime/agents/agent-devkit-agent-builder/tests/test_runners.py +188 -0
  29. package/runtime/agents/automation-architect/AGENTS.md +11 -0
  30. package/runtime/agents/automation-architect/README.md +27 -0
  31. package/runtime/agents/automation-architect/agent.yaml +57 -0
  32. package/runtime/agents/automation-architect/capabilities/classify-automation-request/capability.yaml +35 -0
  33. package/runtime/agents/automation-architect/capabilities/classify-automation-request/decision-rules.md +10 -0
  34. package/runtime/agents/automation-architect/capabilities/classify-automation-request/runner.py +37 -0
  35. package/runtime/agents/automation-architect/capabilities/classify-automation-request/workflow.md +7 -0
  36. package/runtime/agents/automation-architect/capabilities/delegate-automation-build/capability.yaml +34 -0
  37. package/runtime/agents/automation-architect/capabilities/delegate-automation-build/decision-rules.md +7 -0
  38. package/runtime/agents/automation-architect/capabilities/delegate-automation-build/runner.py +37 -0
  39. package/runtime/agents/automation-architect/capabilities/delegate-automation-build/workflow.md +6 -0
  40. package/runtime/agents/automation-architect/capabilities/plan-automation-solution/capability.yaml +35 -0
  41. package/runtime/agents/automation-architect/capabilities/plan-automation-solution/decision-rules.md +7 -0
  42. package/runtime/agents/automation-architect/capabilities/plan-automation-solution/runner.py +37 -0
  43. package/runtime/agents/automation-architect/capabilities/plan-automation-solution/workflow.md +7 -0
  44. package/runtime/agents/automation-architect/capabilities/review-automation-solution/capability.yaml +36 -0
  45. package/runtime/agents/automation-architect/capabilities/review-automation-solution/decision-rules.md +7 -0
  46. package/runtime/agents/automation-architect/capabilities/review-automation-solution/runner.py +39 -0
  47. package/runtime/agents/automation-architect/capabilities/review-automation-solution/workflow.md +7 -0
  48. package/runtime/agents/automation-architect/infra/integrations/automation-architecture/automation_architecture_repository.py +481 -0
  49. package/runtime/agents/automation-architect/knowledge/context.md +22 -0
  50. package/runtime/agents/automation-architect/knowledge/policies.yaml +20 -0
  51. package/runtime/agents/automation-architect/knowledge/system.md +8 -0
  52. package/runtime/agents/automation-architect/templates/automation-classification.md +6 -0
  53. package/runtime/agents/automation-architect/templates/automation-plan.md +5 -0
  54. package/runtime/agents/automation-architect/tests/test_runners.py +135 -0
  55. package/runtime/agents/aws-architecture-analyst/agent.yaml +17 -4
  56. package/runtime/agents/aws-cloudwatch-log-analyzer/agent.yaml +12 -2
  57. package/runtime/agents/aws-cloudwatch-log-analyzer/capabilities/analyze-service-error/capability.yaml +16 -0
  58. package/runtime/agents/aws-lambda-builder/AGENTS.md +27 -0
  59. package/runtime/agents/aws-lambda-builder/README.md +21 -0
  60. package/runtime/agents/aws-lambda-builder/agent.yaml +46 -0
  61. package/runtime/agents/aws-lambda-builder/capabilities/deploy-lambda-plan/capability.yaml +18 -0
  62. package/runtime/agents/aws-lambda-builder/capabilities/deploy-lambda-plan/decision-rules.md +6 -0
  63. package/runtime/agents/aws-lambda-builder/capabilities/deploy-lambda-plan/runner.py +33 -0
  64. package/runtime/agents/aws-lambda-builder/capabilities/deploy-lambda-plan/workflow.md +6 -0
  65. package/runtime/agents/aws-lambda-builder/capabilities/generate-lambda-project/capability.yaml +20 -0
  66. package/runtime/agents/aws-lambda-builder/capabilities/generate-lambda-project/decision-rules.md +6 -0
  67. package/runtime/agents/aws-lambda-builder/capabilities/generate-lambda-project/runner.py +39 -0
  68. package/runtime/agents/aws-lambda-builder/capabilities/generate-lambda-project/workflow.md +7 -0
  69. package/runtime/agents/aws-lambda-builder/capabilities/package-lambda/capability.yaml +22 -0
  70. package/runtime/agents/aws-lambda-builder/capabilities/package-lambda/decision-rules.md +6 -0
  71. package/runtime/agents/aws-lambda-builder/capabilities/package-lambda/runner.py +41 -0
  72. package/runtime/agents/aws-lambda-builder/capabilities/package-lambda/workflow.md +6 -0
  73. package/runtime/agents/aws-lambda-builder/capabilities/plan-lambda/capability.yaml +18 -0
  74. package/runtime/agents/aws-lambda-builder/capabilities/plan-lambda/decision-rules.md +7 -0
  75. package/runtime/agents/aws-lambda-builder/capabilities/plan-lambda/runner.py +33 -0
  76. package/runtime/agents/aws-lambda-builder/capabilities/plan-lambda/workflow.md +6 -0
  77. package/runtime/agents/aws-lambda-builder/capabilities/review-lambda-security/capability.yaml +18 -0
  78. package/runtime/agents/aws-lambda-builder/capabilities/review-lambda-security/decision-rules.md +7 -0
  79. package/runtime/agents/aws-lambda-builder/capabilities/review-lambda-security/runner.py +33 -0
  80. package/runtime/agents/aws-lambda-builder/capabilities/review-lambda-security/workflow.md +5 -0
  81. package/runtime/agents/aws-lambda-builder/infra/integrations/aws-lambda/aws_lambda_repository.py +688 -0
  82. package/runtime/agents/aws-lambda-builder/knowledge/context.md +12 -0
  83. package/runtime/agents/aws-lambda-builder/knowledge/policies.yaml +23 -0
  84. package/runtime/agents/aws-lambda-builder/knowledge/system.md +10 -0
  85. package/runtime/agents/aws-lambda-builder/templates/lambda-deploy-plan.md +3 -0
  86. package/runtime/agents/aws-lambda-builder/templates/lambda-package.md +3 -0
  87. package/runtime/agents/aws-lambda-builder/templates/lambda-plan.md +3 -0
  88. package/runtime/agents/aws-lambda-builder/templates/lambda-readme.md +3 -0
  89. package/runtime/agents/aws-lambda-builder/templates/lambda-security-review.md +3 -0
  90. package/runtime/agents/aws-lambda-builder/tests/test_runners.py +355 -0
  91. package/runtime/agents/aws-operations-operator/agent.yaml +18 -6
  92. package/runtime/agents/aws-security-governance-auditor/agent.yaml +17 -5
  93. package/runtime/agents/azure-devops-orchestrator/agent.yaml +15 -2
  94. package/runtime/agents/azure-devops-orchestrator/capabilities/read-card/capability.yaml +29 -0
  95. package/runtime/agents/bpo-analyser/agent.yaml +12 -2
  96. package/runtime/agents/bpo-analyser/knowledge/policies.yaml +2 -2
  97. package/runtime/agents/data-scientist-analyst/agent.yaml +16 -4
  98. package/runtime/agents/data-scientist-analyst/capabilities/generate-data-report/capability.yaml +1 -1
  99. package/runtime/agents/data-scientist-analyst/capabilities/generate-reconciliation-report/capability.yaml +1 -1
  100. package/runtime/agents/data-scientist-analyst/capabilities/run-data-pipeline/capability.yaml +1 -1
  101. package/runtime/agents/data-scientist-analyst/infra/integrations/agent-bridge/methods/analyze-sql-source.yaml +1 -1
  102. package/runtime/agents/data-scientist-analyst/knowledge/policies.yaml +4 -4
  103. package/runtime/agents/data-scientist-analyst/knowledge/system.md +1 -1
  104. package/runtime/agents/data-scientist-analyst/tests/test_runners.py +1 -1
  105. package/runtime/agents/database-change-operator/agent.yaml +12 -1
  106. package/runtime/agents/docker-container-builder/AGENTS.md +27 -0
  107. package/runtime/agents/docker-container-builder/README.md +21 -0
  108. package/runtime/agents/docker-container-builder/agent.yaml +52 -0
  109. package/runtime/agents/docker-container-builder/capabilities/analyze-containerization-target/capability.yaml +18 -0
  110. package/runtime/agents/docker-container-builder/capabilities/analyze-containerization-target/decision-rules.md +6 -0
  111. package/runtime/agents/docker-container-builder/capabilities/analyze-containerization-target/runner.py +32 -0
  112. package/runtime/agents/docker-container-builder/capabilities/analyze-containerization-target/workflow.md +6 -0
  113. package/runtime/agents/docker-container-builder/capabilities/generate-compose/capability.yaml +18 -0
  114. package/runtime/agents/docker-container-builder/capabilities/generate-compose/decision-rules.md +7 -0
  115. package/runtime/agents/docker-container-builder/capabilities/generate-compose/runner.py +32 -0
  116. package/runtime/agents/docker-container-builder/capabilities/generate-compose/workflow.md +6 -0
  117. package/runtime/agents/docker-container-builder/capabilities/generate-container-project-files/capability.yaml +20 -0
  118. package/runtime/agents/docker-container-builder/capabilities/generate-container-project-files/decision-rules.md +7 -0
  119. package/runtime/agents/docker-container-builder/capabilities/generate-container-project-files/runner.py +38 -0
  120. package/runtime/agents/docker-container-builder/capabilities/generate-container-project-files/workflow.md +7 -0
  121. package/runtime/agents/docker-container-builder/capabilities/generate-dockerfile/capability.yaml +18 -0
  122. package/runtime/agents/docker-container-builder/capabilities/generate-dockerfile/decision-rules.md +6 -0
  123. package/runtime/agents/docker-container-builder/capabilities/generate-dockerfile/runner.py +32 -0
  124. package/runtime/agents/docker-container-builder/capabilities/generate-dockerfile/workflow.md +7 -0
  125. package/runtime/agents/docker-container-builder/capabilities/plan-image-build/capability.yaml +18 -0
  126. package/runtime/agents/docker-container-builder/capabilities/plan-image-build/decision-rules.md +6 -0
  127. package/runtime/agents/docker-container-builder/capabilities/plan-image-build/runner.py +32 -0
  128. package/runtime/agents/docker-container-builder/capabilities/plan-image-build/workflow.md +6 -0
  129. package/runtime/agents/docker-container-builder/capabilities/review-docker-security/capability.yaml +21 -0
  130. package/runtime/agents/docker-container-builder/capabilities/review-docker-security/decision-rules.md +6 -0
  131. package/runtime/agents/docker-container-builder/capabilities/review-docker-security/runner.py +43 -0
  132. package/runtime/agents/docker-container-builder/capabilities/review-docker-security/workflow.md +5 -0
  133. package/runtime/agents/docker-container-builder/infra/integrations/docker-container/docker_container_repository.py +837 -0
  134. package/runtime/agents/docker-container-builder/knowledge/context.md +21 -0
  135. package/runtime/agents/docker-container-builder/knowledge/policies.yaml +13 -0
  136. package/runtime/agents/docker-container-builder/knowledge/system.md +21 -0
  137. package/runtime/agents/docker-container-builder/templates/container-plan.md +4 -0
  138. package/runtime/agents/docker-container-builder/templates/container-review.md +4 -0
  139. package/runtime/agents/docker-container-builder/templates/docker-compose.md +5 -0
  140. package/runtime/agents/docker-container-builder/templates/docker-readme.md +3 -0
  141. package/runtime/agents/docker-container-builder/templates/dockerfile.md +5 -0
  142. package/runtime/agents/docker-container-builder/tests/test_runners.py +255 -0
  143. package/runtime/agents/drawio-diagram-builder/agent.yaml +11 -2
  144. package/runtime/agents/drawio-diagram-builder/capabilities/execute-diagram-delivery/capability.yaml +1 -1
  145. package/runtime/agents/drawio-diagram-builder/capabilities/read-azure-card-context/capability.yaml +1 -1
  146. package/runtime/agents/elasticsearch-log-analyzer/agent.yaml +14 -2
  147. package/runtime/agents/elasticsearch-log-analyzer/capabilities/analyze-service-errors/capability.yaml +14 -0
  148. package/runtime/agents/excel-workbook-builder/agent.yaml +10 -0
  149. package/runtime/agents/excel-workbook-builder/capabilities/create-template/capability.yaml +1 -1
  150. package/runtime/agents/excel-workbook-builder/capabilities/create-template/workflow.md +1 -1
  151. package/runtime/agents/excel-workbook-builder/capabilities/create-template-version/capability.yaml +1 -1
  152. package/runtime/agents/excel-workbook-builder/capabilities/generate-template-input-file/capability.yaml +1 -2
  153. package/runtime/agents/excel-workbook-builder/capabilities/refine-template/capability.yaml +1 -1
  154. package/runtime/agents/excel-workbook-builder/capabilities/register-template/capability.yaml +1 -2
  155. package/runtime/agents/excel-workbook-builder/capabilities/register-template/workflow.md +1 -1
  156. package/runtime/agents/execution-loop-builder/AGENTS.md +24 -0
  157. package/runtime/agents/execution-loop-builder/README.md +19 -0
  158. package/runtime/agents/execution-loop-builder/agent.yaml +49 -0
  159. package/runtime/agents/execution-loop-builder/capabilities/generate-loop-project-files/capability.yaml +20 -0
  160. package/runtime/agents/execution-loop-builder/capabilities/generate-loop-project-files/decision-rules.md +6 -0
  161. package/runtime/agents/execution-loop-builder/capabilities/generate-loop-project-files/runner.py +38 -0
  162. package/runtime/agents/execution-loop-builder/capabilities/generate-loop-project-files/workflow.md +7 -0
  163. package/runtime/agents/execution-loop-builder/capabilities/generate-loop-runner/capability.yaml +18 -0
  164. package/runtime/agents/execution-loop-builder/capabilities/generate-loop-runner/decision-rules.md +5 -0
  165. package/runtime/agents/execution-loop-builder/capabilities/generate-loop-runner/runner.py +32 -0
  166. package/runtime/agents/execution-loop-builder/capabilities/generate-loop-runner/workflow.md +6 -0
  167. package/runtime/agents/execution-loop-builder/capabilities/plan-execution-loop/capability.yaml +18 -0
  168. package/runtime/agents/execution-loop-builder/capabilities/plan-execution-loop/decision-rules.md +6 -0
  169. package/runtime/agents/execution-loop-builder/capabilities/plan-execution-loop/runner.py +32 -0
  170. package/runtime/agents/execution-loop-builder/capabilities/plan-execution-loop/workflow.md +6 -0
  171. package/runtime/agents/execution-loop-builder/capabilities/register-loop-task/capability.yaml +19 -0
  172. package/runtime/agents/execution-loop-builder/capabilities/register-loop-task/decision-rules.md +6 -0
  173. package/runtime/agents/execution-loop-builder/capabilities/register-loop-task/runner.py +36 -0
  174. package/runtime/agents/execution-loop-builder/capabilities/register-loop-task/workflow.md +6 -0
  175. package/runtime/agents/execution-loop-builder/capabilities/review-loop-safety/capability.yaml +19 -0
  176. package/runtime/agents/execution-loop-builder/capabilities/review-loop-safety/decision-rules.md +6 -0
  177. package/runtime/agents/execution-loop-builder/capabilities/review-loop-safety/runner.py +39 -0
  178. package/runtime/agents/execution-loop-builder/capabilities/review-loop-safety/workflow.md +5 -0
  179. package/runtime/agents/execution-loop-builder/infra/integrations/execution-loop/execution_loop_repository.py +608 -0
  180. package/runtime/agents/execution-loop-builder/knowledge/context.md +26 -0
  181. package/runtime/agents/execution-loop-builder/knowledge/policies.yaml +13 -0
  182. package/runtime/agents/execution-loop-builder/knowledge/system.md +19 -0
  183. package/runtime/agents/execution-loop-builder/templates/loop-plan.md +3 -0
  184. package/runtime/agents/execution-loop-builder/templates/loop-readme.md +3 -0
  185. package/runtime/agents/execution-loop-builder/templates/loop-review.md +3 -0
  186. package/runtime/agents/execution-loop-builder/templates/loop-runner.py +2 -0
  187. package/runtime/agents/execution-loop-builder/tests/test_runners.py +274 -0
  188. package/runtime/agents/execution-reviewer/agent.yaml +6 -4
  189. package/runtime/agents/execution-reviewer/capabilities/review-agent-result/capability.yaml +1 -2
  190. package/runtime/agents/execution-reviewer/capabilities/review-final-output/capability.yaml +1 -2
  191. package/runtime/agents/execution-reviewer/capabilities/review-plan/capability.yaml +1 -2
  192. package/runtime/agents/figma-ui-ux-product-designer/agent.yaml +17 -5
  193. package/runtime/agents/figma-ui-ux-product-designer/capabilities/analyze-product-context/capability.yaml +1 -1
  194. package/runtime/agents/figma-ui-ux-product-designer/capabilities/conduct-design-interview/capability.yaml +1 -1
  195. package/runtime/agents/figma-ui-ux-product-designer/capabilities/conduct-design-review-session/capability.yaml +1 -1
  196. package/runtime/agents/figma-ui-ux-product-designer/capabilities/generate-dev-handoff/capability.yaml +1 -1
  197. package/runtime/agents/figma-ui-ux-product-designer/capabilities/generate-user-journey-diagram/capability.yaml +1 -1
  198. package/runtime/agents/figma-ui-ux-product-designer/capabilities/ingest-design-source/capability.yaml +1 -1
  199. package/runtime/agents/figma-ui-ux-product-designer/capabilities/triage-design-feedback/capability.yaml +1 -1
  200. package/runtime/agents/generic-agent-builder/AGENTS.md +20 -0
  201. package/runtime/agents/generic-agent-builder/README.md +40 -0
  202. package/runtime/agents/generic-agent-builder/agent.yaml +43 -0
  203. package/runtime/agents/generic-agent-builder/capabilities/generate-agent-instructions/capability.yaml +18 -0
  204. package/runtime/agents/generic-agent-builder/capabilities/generate-agent-instructions/decision-rules.md +5 -0
  205. package/runtime/agents/generic-agent-builder/capabilities/generate-agent-instructions/runner.py +33 -0
  206. package/runtime/agents/generic-agent-builder/capabilities/generate-agent-instructions/workflow.md +6 -0
  207. package/runtime/agents/generic-agent-builder/capabilities/generate-project-agent-files/capability.yaml +20 -0
  208. package/runtime/agents/generic-agent-builder/capabilities/generate-project-agent-files/decision-rules.md +6 -0
  209. package/runtime/agents/generic-agent-builder/capabilities/generate-project-agent-files/runner.py +39 -0
  210. package/runtime/agents/generic-agent-builder/capabilities/generate-project-agent-files/workflow.md +7 -0
  211. package/runtime/agents/generic-agent-builder/capabilities/generate-skill/capability.yaml +18 -0
  212. package/runtime/agents/generic-agent-builder/capabilities/generate-skill/decision-rules.md +5 -0
  213. package/runtime/agents/generic-agent-builder/capabilities/generate-skill/runner.py +33 -0
  214. package/runtime/agents/generic-agent-builder/capabilities/generate-skill/workflow.md +5 -0
  215. package/runtime/agents/generic-agent-builder/capabilities/plan-generic-agent/capability.yaml +18 -0
  216. package/runtime/agents/generic-agent-builder/capabilities/plan-generic-agent/decision-rules.md +6 -0
  217. package/runtime/agents/generic-agent-builder/capabilities/plan-generic-agent/runner.py +33 -0
  218. package/runtime/agents/generic-agent-builder/capabilities/plan-generic-agent/workflow.md +6 -0
  219. package/runtime/agents/generic-agent-builder/capabilities/review-generic-agent/capability.yaml +20 -0
  220. package/runtime/agents/generic-agent-builder/capabilities/review-generic-agent/decision-rules.md +6 -0
  221. package/runtime/agents/generic-agent-builder/capabilities/review-generic-agent/runner.py +40 -0
  222. package/runtime/agents/generic-agent-builder/capabilities/review-generic-agent/workflow.md +7 -0
  223. package/runtime/agents/generic-agent-builder/infra/integrations/generic-agent/generic_agent_repository.py +445 -0
  224. package/runtime/agents/generic-agent-builder/knowledge/context.md +11 -0
  225. package/runtime/agents/generic-agent-builder/knowledge/policies.yaml +12 -0
  226. package/runtime/agents/generic-agent-builder/knowledge/system.md +17 -0
  227. package/runtime/agents/generic-agent-builder/templates/generic-agent-instructions.md +17 -0
  228. package/runtime/agents/generic-agent-builder/templates/generic-review-report.md +13 -0
  229. package/runtime/agents/generic-agent-builder/templates/generic-skill.md +14 -0
  230. package/runtime/agents/generic-agent-builder/tests/test_runners.py +220 -0
  231. package/runtime/agents/github-pr-reviewer/agent.yaml +17 -5
  232. package/runtime/agents/github-pr-reviewer/capabilities/create-review-automation/capability.yaml +1 -1
  233. package/runtime/agents/github-pr-reviewer/capabilities/inspect-pr/capability.yaml +1 -1
  234. package/runtime/agents/github-pr-reviewer/capabilities/list-review-requests/capability.yaml +1 -1
  235. package/runtime/agents/github-pr-reviewer/capabilities/review-pr-diff/capability.yaml +1 -1
  236. package/runtime/agents/knowledge-generator/agent.yaml +13 -3
  237. package/runtime/agents/knowledge-generator/capabilities/generate-knowledge/capability.yaml +1 -1
  238. package/runtime/agents/local-llm-operator/agent.yaml +6 -4
  239. package/runtime/agents/local-llm-operator/capabilities/delegate-operational-task/capability.yaml +1 -2
  240. package/runtime/agents/local-llm-operator/capabilities/inspect-local-models/capability.yaml +1 -2
  241. package/runtime/agents/local-llm-operator/capabilities/select-local-worker/capability.yaml +1 -2
  242. package/runtime/agents/n1-support-agent/agent.yaml +40 -1
  243. package/runtime/agents/n2-support-agent/agent.yaml +41 -2
  244. package/runtime/agents/n2-support-agent/knowledge/policies.yaml +2 -2
  245. package/runtime/agents/notification-operator/AGENTS.md +11 -0
  246. package/runtime/agents/notification-operator/README.md +15 -0
  247. package/runtime/agents/notification-operator/agent.yaml +43 -0
  248. package/runtime/agents/notification-operator/capabilities/configure-notification-channel/capability.yaml +19 -0
  249. package/runtime/agents/notification-operator/capabilities/configure-notification-channel/decision-rules.md +6 -0
  250. package/runtime/agents/notification-operator/capabilities/configure-notification-channel/runner.py +33 -0
  251. package/runtime/agents/notification-operator/capabilities/configure-notification-channel/workflow.md +6 -0
  252. package/runtime/agents/notification-operator/capabilities/format-task-completion-notification/capability.yaml +25 -0
  253. package/runtime/agents/notification-operator/capabilities/format-task-completion-notification/decision-rules.md +7 -0
  254. package/runtime/agents/notification-operator/capabilities/format-task-completion-notification/runner.py +49 -0
  255. package/runtime/agents/notification-operator/capabilities/format-task-completion-notification/workflow.md +6 -0
  256. package/runtime/agents/notification-operator/capabilities/send-task-completion-notification/capability.yaml +27 -0
  257. package/runtime/agents/notification-operator/capabilities/send-task-completion-notification/decision-rules.md +6 -0
  258. package/runtime/agents/notification-operator/capabilities/send-task-completion-notification/runner.py +68 -0
  259. package/runtime/agents/notification-operator/capabilities/send-task-completion-notification/workflow.md +7 -0
  260. package/runtime/agents/notification-operator/infra/README.md +6 -0
  261. package/runtime/agents/notification-operator/knowledge/context.md +10 -0
  262. package/runtime/agents/notification-operator/knowledge/policies.yaml +9 -0
  263. package/runtime/agents/notification-operator/knowledge/system.md +7 -0
  264. package/runtime/agents/notification-operator/templates/README.md +6 -0
  265. package/runtime/agents/notification-operator/tests/test_runners.py +108 -0
  266. package/runtime/agents/playwright-automation-builder/AGENTS.md +23 -0
  267. package/runtime/agents/playwright-automation-builder/README.md +43 -0
  268. package/runtime/agents/playwright-automation-builder/agent.yaml +48 -0
  269. package/runtime/agents/playwright-automation-builder/capabilities/generate-playwright-project-files/capability.yaml +20 -0
  270. package/runtime/agents/playwright-automation-builder/capabilities/generate-playwright-project-files/decision-rules.md +6 -0
  271. package/runtime/agents/playwright-automation-builder/capabilities/generate-playwright-project-files/runner.py +38 -0
  272. package/runtime/agents/playwright-automation-builder/capabilities/generate-playwright-project-files/workflow.md +6 -0
  273. package/runtime/agents/playwright-automation-builder/capabilities/generate-playwright-script/capability.yaml +18 -0
  274. package/runtime/agents/playwright-automation-builder/capabilities/generate-playwright-script/decision-rules.md +6 -0
  275. package/runtime/agents/playwright-automation-builder/capabilities/generate-playwright-script/runner.py +32 -0
  276. package/runtime/agents/playwright-automation-builder/capabilities/generate-playwright-script/workflow.md +6 -0
  277. package/runtime/agents/playwright-automation-builder/capabilities/plan-playwright-automation/capability.yaml +18 -0
  278. package/runtime/agents/playwright-automation-builder/capabilities/plan-playwright-automation/decision-rules.md +6 -0
  279. package/runtime/agents/playwright-automation-builder/capabilities/plan-playwright-automation/runner.py +32 -0
  280. package/runtime/agents/playwright-automation-builder/capabilities/plan-playwright-automation/workflow.md +6 -0
  281. package/runtime/agents/playwright-automation-builder/capabilities/review-playwright-artifacts/capability.yaml +19 -0
  282. package/runtime/agents/playwright-automation-builder/capabilities/review-playwright-artifacts/decision-rules.md +6 -0
  283. package/runtime/agents/playwright-automation-builder/capabilities/review-playwright-artifacts/runner.py +33 -0
  284. package/runtime/agents/playwright-automation-builder/capabilities/review-playwright-artifacts/workflow.md +6 -0
  285. package/runtime/agents/playwright-automation-builder/capabilities/run-playwright-check/capability.yaml +22 -0
  286. package/runtime/agents/playwright-automation-builder/capabilities/run-playwright-check/decision-rules.md +6 -0
  287. package/runtime/agents/playwright-automation-builder/capabilities/run-playwright-check/runner.py +40 -0
  288. package/runtime/agents/playwright-automation-builder/capabilities/run-playwright-check/workflow.md +6 -0
  289. package/runtime/agents/playwright-automation-builder/capabilities/wrap-playwright-as-capability/capability.yaml +22 -0
  290. package/runtime/agents/playwright-automation-builder/capabilities/wrap-playwright-as-capability/decision-rules.md +6 -0
  291. package/runtime/agents/playwright-automation-builder/capabilities/wrap-playwright-as-capability/runner.py +42 -0
  292. package/runtime/agents/playwright-automation-builder/capabilities/wrap-playwright-as-capability/workflow.md +6 -0
  293. package/runtime/agents/playwright-automation-builder/infra/integrations/playwright-automation/playwright_automation_repository.py +865 -0
  294. package/runtime/agents/playwright-automation-builder/knowledge/context.md +19 -0
  295. package/runtime/agents/playwright-automation-builder/knowledge/policies.yaml +25 -0
  296. package/runtime/agents/playwright-automation-builder/knowledge/system.md +19 -0
  297. package/runtime/agents/playwright-automation-builder/templates/capability-wrapper.md +4 -0
  298. package/runtime/agents/playwright-automation-builder/templates/playwright-automation.py +12 -0
  299. package/runtime/agents/playwright-automation-builder/templates/playwright-readme.md +13 -0
  300. package/runtime/agents/playwright-automation-builder/templates/playwright-review-report.md +9 -0
  301. package/runtime/agents/playwright-automation-builder/templates/playwright-test.py +2 -0
  302. package/runtime/agents/playwright-automation-builder/tests/test_runners.py +261 -0
  303. package/runtime/agents/postgres-data-analyzer/agent.yaml +13 -2
  304. package/runtime/agents/presentation-deck-builder/agent.yaml +14 -3
  305. package/runtime/agents/presentation-deck-builder/capabilities/create-template/capability.yaml +1 -1
  306. package/runtime/agents/presentation-deck-builder/capabilities/create-template-version/capability.yaml +1 -1
  307. package/runtime/agents/presentation-deck-builder/capabilities/generate-template-input-file/capability.yaml +1 -1
  308. package/runtime/agents/presentation-deck-builder/capabilities/refine-template/capability.yaml +1 -1
  309. package/runtime/agents/presentation-deck-builder/capabilities/register-template/capability.yaml +1 -1
  310. package/runtime/agents/presentation-deck-builder/knowledge/prompts/create-template.md +1 -1
  311. package/runtime/agents/presentation-deck-builder/knowledge/prompts/generate-template-input-file.md +1 -1
  312. package/runtime/agents/provider-configurator/agent.yaml +6 -4
  313. package/runtime/agents/provider-configurator/capabilities/collect-provider-credentials/capability.yaml +1 -2
  314. package/runtime/agents/provider-configurator/capabilities/configure-provider-source/capability.yaml +1 -2
  315. package/runtime/agents/provider-configurator/capabilities/validate-provider-readiness/capability.yaml +1 -2
  316. package/runtime/agents/pyautogui-automation-builder/AGENTS.md +32 -0
  317. package/runtime/agents/pyautogui-automation-builder/README.md +44 -0
  318. package/runtime/agents/pyautogui-automation-builder/agent.yaml +45 -0
  319. package/runtime/agents/pyautogui-automation-builder/capabilities/generate-pyautogui-project-files/capability.yaml +20 -0
  320. package/runtime/agents/pyautogui-automation-builder/capabilities/generate-pyautogui-project-files/decision-rules.md +6 -0
  321. package/runtime/agents/pyautogui-automation-builder/capabilities/generate-pyautogui-project-files/runner.py +39 -0
  322. package/runtime/agents/pyautogui-automation-builder/capabilities/generate-pyautogui-project-files/workflow.md +7 -0
  323. package/runtime/agents/pyautogui-automation-builder/capabilities/generate-pyautogui-script/capability.yaml +18 -0
  324. package/runtime/agents/pyautogui-automation-builder/capabilities/generate-pyautogui-script/decision-rules.md +7 -0
  325. package/runtime/agents/pyautogui-automation-builder/capabilities/generate-pyautogui-script/runner.py +33 -0
  326. package/runtime/agents/pyautogui-automation-builder/capabilities/generate-pyautogui-script/workflow.md +7 -0
  327. package/runtime/agents/pyautogui-automation-builder/capabilities/plan-desktop-automation/capability.yaml +18 -0
  328. package/runtime/agents/pyautogui-automation-builder/capabilities/plan-desktop-automation/decision-rules.md +8 -0
  329. package/runtime/agents/pyautogui-automation-builder/capabilities/plan-desktop-automation/runner.py +33 -0
  330. package/runtime/agents/pyautogui-automation-builder/capabilities/plan-desktop-automation/workflow.md +9 -0
  331. package/runtime/agents/pyautogui-automation-builder/capabilities/review-pyautogui-script/capability.yaml +20 -0
  332. package/runtime/agents/pyautogui-automation-builder/capabilities/review-pyautogui-script/decision-rules.md +8 -0
  333. package/runtime/agents/pyautogui-automation-builder/capabilities/review-pyautogui-script/runner.py +43 -0
  334. package/runtime/agents/pyautogui-automation-builder/capabilities/review-pyautogui-script/workflow.md +7 -0
  335. package/runtime/agents/pyautogui-automation-builder/capabilities/wrap-pyautogui-as-capability/capability.yaml +22 -0
  336. package/runtime/agents/pyautogui-automation-builder/capabilities/wrap-pyautogui-as-capability/decision-rules.md +6 -0
  337. package/runtime/agents/pyautogui-automation-builder/capabilities/wrap-pyautogui-as-capability/runner.py +43 -0
  338. package/runtime/agents/pyautogui-automation-builder/capabilities/wrap-pyautogui-as-capability/workflow.md +7 -0
  339. package/runtime/agents/pyautogui-automation-builder/infra/integrations/pyautogui-automation/pyautogui_automation_repository.py +856 -0
  340. package/runtime/agents/pyautogui-automation-builder/knowledge/context.md +17 -0
  341. package/runtime/agents/pyautogui-automation-builder/knowledge/policies.yaml +24 -0
  342. package/runtime/agents/pyautogui-automation-builder/knowledge/system.md +13 -0
  343. package/runtime/agents/pyautogui-automation-builder/templates/capability-wrapper.md +3 -0
  344. package/runtime/agents/pyautogui-automation-builder/templates/pyautogui-automation.py +12 -0
  345. package/runtime/agents/pyautogui-automation-builder/templates/pyautogui-readme.md +3 -0
  346. package/runtime/agents/pyautogui-automation-builder/templates/pyautogui-review-report.md +3 -0
  347. package/runtime/agents/pyautogui-automation-builder/templates/pyautogui-test.py +2 -0
  348. package/runtime/agents/pyautogui-automation-builder/tests/test_runners.py +376 -0
  349. package/runtime/agents/python-automation-builder/AGENTS.md +25 -0
  350. package/runtime/agents/python-automation-builder/README.md +43 -0
  351. package/runtime/agents/python-automation-builder/agent.yaml +45 -0
  352. package/runtime/agents/python-automation-builder/capabilities/generate-automation-project-files/capability.yaml +20 -0
  353. package/runtime/agents/python-automation-builder/capabilities/generate-automation-project-files/decision-rules.md +6 -0
  354. package/runtime/agents/python-automation-builder/capabilities/generate-automation-project-files/runner.py +39 -0
  355. package/runtime/agents/python-automation-builder/capabilities/generate-automation-project-files/workflow.md +7 -0
  356. package/runtime/agents/python-automation-builder/capabilities/generate-python-automation/capability.yaml +18 -0
  357. package/runtime/agents/python-automation-builder/capabilities/generate-python-automation/decision-rules.md +5 -0
  358. package/runtime/agents/python-automation-builder/capabilities/generate-python-automation/runner.py +33 -0
  359. package/runtime/agents/python-automation-builder/capabilities/generate-python-automation/workflow.md +5 -0
  360. package/runtime/agents/python-automation-builder/capabilities/plan-python-automation/capability.yaml +18 -0
  361. package/runtime/agents/python-automation-builder/capabilities/plan-python-automation/decision-rules.md +6 -0
  362. package/runtime/agents/python-automation-builder/capabilities/plan-python-automation/runner.py +33 -0
  363. package/runtime/agents/python-automation-builder/capabilities/plan-python-automation/workflow.md +6 -0
  364. package/runtime/agents/python-automation-builder/capabilities/review-python-automation/capability.yaml +20 -0
  365. package/runtime/agents/python-automation-builder/capabilities/review-python-automation/decision-rules.md +6 -0
  366. package/runtime/agents/python-automation-builder/capabilities/review-python-automation/runner.py +43 -0
  367. package/runtime/agents/python-automation-builder/capabilities/review-python-automation/workflow.md +5 -0
  368. package/runtime/agents/python-automation-builder/capabilities/wrap-automation-as-capability/capability.yaml +22 -0
  369. package/runtime/agents/python-automation-builder/capabilities/wrap-automation-as-capability/decision-rules.md +6 -0
  370. package/runtime/agents/python-automation-builder/capabilities/wrap-automation-as-capability/runner.py +43 -0
  371. package/runtime/agents/python-automation-builder/capabilities/wrap-automation-as-capability/workflow.md +6 -0
  372. package/runtime/agents/python-automation-builder/infra/integrations/python-automation/python_automation_repository.py +717 -0
  373. package/runtime/agents/python-automation-builder/knowledge/context.md +15 -0
  374. package/runtime/agents/python-automation-builder/knowledge/policies.yaml +12 -0
  375. package/runtime/agents/python-automation-builder/knowledge/system.md +19 -0
  376. package/runtime/agents/python-automation-builder/templates/automation-readme.md +13 -0
  377. package/runtime/agents/python-automation-builder/templates/automation-review-report.md +13 -0
  378. package/runtime/agents/python-automation-builder/templates/automation-test.py +9 -0
  379. package/runtime/agents/python-automation-builder/templates/automation.py +19 -0
  380. package/runtime/agents/python-automation-builder/templates/capability-wrapper.md +4 -0
  381. package/runtime/agents/python-automation-builder/tests/test_runners.py +292 -0
  382. package/runtime/agents/selenium-automation-builder/AGENTS.md +27 -0
  383. package/runtime/agents/selenium-automation-builder/README.md +40 -0
  384. package/runtime/agents/selenium-automation-builder/agent.yaml +45 -0
  385. package/runtime/agents/selenium-automation-builder/capabilities/generate-selenium-project-files/capability.yaml +20 -0
  386. package/runtime/agents/selenium-automation-builder/capabilities/generate-selenium-project-files/decision-rules.md +6 -0
  387. package/runtime/agents/selenium-automation-builder/capabilities/generate-selenium-project-files/runner.py +39 -0
  388. package/runtime/agents/selenium-automation-builder/capabilities/generate-selenium-project-files/workflow.md +7 -0
  389. package/runtime/agents/selenium-automation-builder/capabilities/generate-selenium-script/capability.yaml +18 -0
  390. package/runtime/agents/selenium-automation-builder/capabilities/generate-selenium-script/decision-rules.md +6 -0
  391. package/runtime/agents/selenium-automation-builder/capabilities/generate-selenium-script/runner.py +33 -0
  392. package/runtime/agents/selenium-automation-builder/capabilities/generate-selenium-script/workflow.md +6 -0
  393. package/runtime/agents/selenium-automation-builder/capabilities/plan-selenium-automation/capability.yaml +18 -0
  394. package/runtime/agents/selenium-automation-builder/capabilities/plan-selenium-automation/decision-rules.md +6 -0
  395. package/runtime/agents/selenium-automation-builder/capabilities/plan-selenium-automation/runner.py +33 -0
  396. package/runtime/agents/selenium-automation-builder/capabilities/plan-selenium-automation/workflow.md +6 -0
  397. package/runtime/agents/selenium-automation-builder/capabilities/review-selenium-script/capability.yaml +20 -0
  398. package/runtime/agents/selenium-automation-builder/capabilities/review-selenium-script/decision-rules.md +6 -0
  399. package/runtime/agents/selenium-automation-builder/capabilities/review-selenium-script/runner.py +40 -0
  400. package/runtime/agents/selenium-automation-builder/capabilities/review-selenium-script/workflow.md +6 -0
  401. package/runtime/agents/selenium-automation-builder/capabilities/wrap-selenium-as-capability/capability.yaml +22 -0
  402. package/runtime/agents/selenium-automation-builder/capabilities/wrap-selenium-as-capability/decision-rules.md +6 -0
  403. package/runtime/agents/selenium-automation-builder/capabilities/wrap-selenium-as-capability/runner.py +43 -0
  404. package/runtime/agents/selenium-automation-builder/capabilities/wrap-selenium-as-capability/workflow.md +6 -0
  405. package/runtime/agents/selenium-automation-builder/infra/integrations/selenium-automation/selenium_automation_repository.py +793 -0
  406. package/runtime/agents/selenium-automation-builder/knowledge/context.md +15 -0
  407. package/runtime/agents/selenium-automation-builder/knowledge/policies.yaml +17 -0
  408. package/runtime/agents/selenium-automation-builder/knowledge/system.md +18 -0
  409. package/runtime/agents/selenium-automation-builder/templates/capability-wrapper.md +4 -0
  410. package/runtime/agents/selenium-automation-builder/templates/selenium-automation.py +20 -0
  411. package/runtime/agents/selenium-automation-builder/templates/selenium-readme.md +13 -0
  412. package/runtime/agents/selenium-automation-builder/templates/selenium-review-report.md +13 -0
  413. package/runtime/agents/selenium-automation-builder/templates/selenium-test.py +9 -0
  414. package/runtime/agents/selenium-automation-builder/tests/test_runners.py +282 -0
  415. package/runtime/agents/software-specification-analyst/agent.yaml +17 -4
  416. package/runtime/agents/software-specification-analyst/capabilities/analyze-multiple-projects/capability.yaml +1 -1
  417. package/runtime/agents/software-specification-analyst/capabilities/analyze-project-context/capability.yaml +1 -1
  418. package/runtime/agents/software-specification-analyst/capabilities/conduct-requirements-interview/capability.yaml +1 -1
  419. package/runtime/agents/software-specification-analyst/capabilities/create-complete-spec/capability.yaml +1 -1
  420. package/runtime/agents/software-specification-analyst/capabilities/create-final-spec-from-analysis/capability.yaml +1 -1
  421. package/runtime/agents/software-specification-analyst/capabilities/create-functional-spec/capability.yaml +11 -0
  422. package/runtime/agents/software-specification-analyst/capabilities/create-technical-spec/capability.yaml +12 -0
  423. package/runtime/agents/software-specification-analyst/capabilities/refine-analysis-with-feedback/capability.yaml +1 -1
  424. package/runtime/agents/software-specification-analyst/capabilities/write-user-stories/capability.yaml +12 -0
  425. package/runtime/agents/sqlserver-change-operator/agent.yaml +12 -1
  426. package/runtime/agents/sqlserver-data-analyzer/agent.yaml +13 -2
  427. package/runtime/agents/supabase-project-analyst/AGENTS.md +29 -0
  428. package/runtime/agents/supabase-project-analyst/README.md +23 -0
  429. package/runtime/agents/supabase-project-analyst/agent.yaml +53 -0
  430. package/runtime/agents/supabase-project-analyst/capabilities/audit-auth-security/capability.yaml +18 -0
  431. package/runtime/agents/supabase-project-analyst/capabilities/audit-auth-security/decision-rules.md +5 -0
  432. package/runtime/agents/supabase-project-analyst/capabilities/audit-auth-security/runner.py +32 -0
  433. package/runtime/agents/supabase-project-analyst/capabilities/audit-auth-security/workflow.md +6 -0
  434. package/runtime/agents/supabase-project-analyst/capabilities/audit-rls-policies/capability.yaml +18 -0
  435. package/runtime/agents/supabase-project-analyst/capabilities/audit-rls-policies/decision-rules.md +6 -0
  436. package/runtime/agents/supabase-project-analyst/capabilities/audit-rls-policies/runner.py +32 -0
  437. package/runtime/agents/supabase-project-analyst/capabilities/audit-rls-policies/workflow.md +7 -0
  438. package/runtime/agents/supabase-project-analyst/capabilities/audit-storage-policies/capability.yaml +18 -0
  439. package/runtime/agents/supabase-project-analyst/capabilities/audit-storage-policies/decision-rules.md +5 -0
  440. package/runtime/agents/supabase-project-analyst/capabilities/audit-storage-policies/runner.py +32 -0
  441. package/runtime/agents/supabase-project-analyst/capabilities/audit-storage-policies/workflow.md +6 -0
  442. package/runtime/agents/supabase-project-analyst/capabilities/generate-supabase-report/capability.yaml +18 -0
  443. package/runtime/agents/supabase-project-analyst/capabilities/generate-supabase-report/decision-rules.md +6 -0
  444. package/runtime/agents/supabase-project-analyst/capabilities/generate-supabase-report/runner.py +32 -0
  445. package/runtime/agents/supabase-project-analyst/capabilities/generate-supabase-report/workflow.md +6 -0
  446. package/runtime/agents/supabase-project-analyst/capabilities/inspect-supabase-project/capability.yaml +19 -0
  447. package/runtime/agents/supabase-project-analyst/capabilities/inspect-supabase-project/decision-rules.md +6 -0
  448. package/runtime/agents/supabase-project-analyst/capabilities/inspect-supabase-project/runner.py +36 -0
  449. package/runtime/agents/supabase-project-analyst/capabilities/inspect-supabase-project/workflow.md +7 -0
  450. package/runtime/agents/supabase-project-analyst/capabilities/plan-supabase-fix/capability.yaml +18 -0
  451. package/runtime/agents/supabase-project-analyst/capabilities/plan-supabase-fix/decision-rules.md +6 -0
  452. package/runtime/agents/supabase-project-analyst/capabilities/plan-supabase-fix/runner.py +32 -0
  453. package/runtime/agents/supabase-project-analyst/capabilities/plan-supabase-fix/workflow.md +6 -0
  454. package/runtime/agents/supabase-project-analyst/capabilities/review-migrations/capability.yaml +18 -0
  455. package/runtime/agents/supabase-project-analyst/capabilities/review-migrations/decision-rules.md +6 -0
  456. package/runtime/agents/supabase-project-analyst/capabilities/review-migrations/runner.py +32 -0
  457. package/runtime/agents/supabase-project-analyst/capabilities/review-migrations/workflow.md +5 -0
  458. package/runtime/agents/supabase-project-analyst/infra/integrations/supabase-project/supabase_project_repository.py +589 -0
  459. package/runtime/agents/supabase-project-analyst/knowledge/context.md +11 -0
  460. package/runtime/agents/supabase-project-analyst/knowledge/policies.yaml +24 -0
  461. package/runtime/agents/supabase-project-analyst/knowledge/system.md +10 -0
  462. package/runtime/agents/supabase-project-analyst/templates/supabase-audit.md +3 -0
  463. package/runtime/agents/supabase-project-analyst/templates/supabase-fix-plan.md +3 -0
  464. package/runtime/agents/supabase-project-analyst/templates/supabase-inspection.md +3 -0
  465. package/runtime/agents/supabase-project-analyst/templates/supabase-report.md +3 -0
  466. package/runtime/agents/supabase-project-analyst/tests/test_runners.py +239 -0
  467. package/runtime/agents/task-orchestrator/agent.yaml +25 -3
  468. package/runtime/agents/task-orchestrator/capabilities/plan-task/capability.yaml +1 -2
  469. package/runtime/agents/task-orchestrator/capabilities/select-specialists/capability.yaml +1 -2
  470. package/runtime/agents/technical-integration-analyst/agent.yaml +15 -2
  471. package/runtime/agents/topdesk-orchestrator/agent.yaml +10 -2
  472. package/runtime/cli/aikit/__init__.py +1 -1
  473. package/runtime/cli/aikit/acceptance.py +166 -0
  474. package/runtime/cli/aikit/agent_executor.py +26 -3
  475. package/runtime/cli/aikit/agent_registry.py +244 -5
  476. package/runtime/cli/aikit/architecture.py +84 -0
  477. package/runtime/cli/aikit/audit.py +172 -3
  478. package/runtime/cli/aikit/autonomy.py +237 -0
  479. package/runtime/cli/aikit/capability_runtime.py +522 -0
  480. package/runtime/cli/aikit/catalog.py +246 -0
  481. package/runtime/cli/aikit/cli_dispatch.py +1078 -0
  482. package/runtime/cli/aikit/cli_parser.py +409 -0
  483. package/runtime/cli/aikit/collaboration.py +359 -0
  484. package/runtime/cli/aikit/configuration_orchestrator.py +52 -26
  485. package/runtime/cli/aikit/contribution.py +105 -0
  486. package/runtime/cli/aikit/core/__init__.py +1 -0
  487. package/runtime/cli/aikit/core/capability_contract.py +112 -0
  488. package/runtime/cli/aikit/core/requests.py +69 -0
  489. package/runtime/cli/aikit/core/runtime.py +64 -0
  490. package/runtime/cli/aikit/diagnostics.py +8 -2
  491. package/runtime/cli/aikit/doctor_runtime.py +79 -0
  492. package/runtime/cli/aikit/errors.py +7 -0
  493. package/runtime/cli/aikit/eval.py +158 -0
  494. package/runtime/cli/aikit/execution_reviewer.py +21 -0
  495. package/runtime/cli/aikit/extensions.py +140 -0
  496. package/runtime/cli/aikit/fallback.py +1 -0
  497. package/runtime/cli/aikit/github_pr.py +23 -0
  498. package/runtime/cli/aikit/guardrails.py +25 -10
  499. package/runtime/cli/aikit/human_output.py +1026 -0
  500. package/runtime/cli/aikit/impact_map.py +294 -0
  501. package/runtime/cli/aikit/interactive_wizard.py +79 -0
  502. package/runtime/cli/aikit/local_llm_operator.py +35 -1
  503. package/runtime/cli/aikit/main.py +9 -2834
  504. package/runtime/cli/aikit/mcp_manifest.py +229 -0
  505. package/runtime/cli/aikit/mcp_server.py +132 -0
  506. package/runtime/cli/aikit/mcp_tools.py +262 -0
  507. package/runtime/cli/aikit/mini_brain.py +227 -0
  508. package/runtime/cli/aikit/model_router.py +182 -18
  509. package/runtime/cli/aikit/module_controller.py +335 -0
  510. package/runtime/cli/aikit/natural_prompt_runtime.py +538 -0
  511. package/runtime/cli/aikit/notifications.py +716 -2
  512. package/runtime/cli/aikit/ollama.py +1 -0
  513. package/runtime/cli/aikit/orchestrator.py +809 -119
  514. package/runtime/cli/aikit/output.py +63 -2
  515. package/runtime/cli/aikit/permissions.py +14 -4
  516. package/runtime/cli/aikit/prompt_injection.py +57 -0
  517. package/runtime/cli/aikit/review_gate.py +38 -6
  518. package/runtime/cli/aikit/roadmap.py +195 -0
  519. package/runtime/cli/aikit/roadmap_cli.py +70 -0
  520. package/runtime/cli/aikit/router.py +41 -12
  521. package/runtime/cli/aikit/router_explain.py +152 -0
  522. package/runtime/cli/aikit/runtime_paths.py +11 -0
  523. package/runtime/cli/aikit/secrets.py +113 -0
  524. package/runtime/cli/aikit/sessions.py +88 -2
  525. package/runtime/cli/aikit/setup_wizard_payload.py +32 -0
  526. package/runtime/cli/aikit/sources.py +298 -50
  527. package/runtime/cli/aikit/tasks.py +449 -21
  528. package/runtime/cli/aikit/wizard_state.py +15 -1
  529. package/runtime/cli/aikit/workflows.py +115 -0
  530. package/runtime/cli/aikit/write_policy.py +108 -0
  531. package/runtime/plugins/claude-code-ai-devkit/README.md +17 -0
  532. package/runtime/plugins/claude-code-ai-devkit/agents/README.md +29 -2
  533. package/runtime/plugins/claude-code-ai-devkit/agents/agent-devkit-db-analyst.md +44 -0
  534. package/runtime/plugins/claude-code-ai-devkit/agents/agent-devkit-execution-reviewer.md +38 -0
  535. package/runtime/plugins/claude-code-ai-devkit/agents/agent-devkit-pr-reviewer.md +42 -0
  536. package/runtime/plugins/claude-code-ai-devkit/agents/agent-devkit-repo-explorer.md +40 -0
  537. package/runtime/plugins/claude-code-ai-devkit/agents/agent-devkit-support-triage.md +43 -0
  538. package/runtime/plugins/claude-code-ai-devkit/plugin.json +1 -1
  539. package/runtime/plugins/claude-code-ai-devkit/skills/ai-devkit-router/SKILL.md +16 -0
  540. package/runtime/plugins/claude-skill-ai-devkit/ai-devkit/SKILL.md +1 -0
  541. package/runtime/plugins/claude-skill-ai-devkit/ai-devkit/references/subagents.md +21 -0
  542. package/runtime/plugins/claude-skill-ai-devkit/plugin.json +1 -1
  543. package/runtime/providers/azure-devops.yaml +9 -0
  544. package/runtime/providers/github.yaml +4 -0
  545. package/runtime/providers/local-notification.yaml +5 -2
  546. package/runtime/providers/local-scheduler.yaml +1 -1
  547. package/runtime/providers/supabase.yaml +46 -0
  548. package/runtime/scripts/release-catalog-snapshot.json +543 -0
  549. package/runtime/scripts/release-gate.py +141 -1
  550. package/runtime/scripts/validate-repo.py +312 -0
  551. package/runtime/vendor/skills/napkin/napkin.md +15 -9
@@ -0,0 +1,229 @@
1
+ """MCP manifest and tool schemas for Agent DevKit."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+ from cli.aikit import __version__
8
+
9
+
10
+ MCP_PROTOCOL_VERSION = "2025-11-25"
11
+ MCP_SERVER_NAME = "agent-devkit"
12
+
13
+
14
+ TOOL_DEFINITIONS: list[dict[str, Any]] = [
15
+ {
16
+ "name": "agent_devkit_agents_list",
17
+ "description": "List available Agent DevKit agents.",
18
+ "inputSchema": {"type": "object", "properties": {}, "additionalProperties": False},
19
+ },
20
+ {
21
+ "name": "agent_devkit_capabilities_list",
22
+ "description": "List available capabilities, optionally filtered by agent id.",
23
+ "inputSchema": {
24
+ "type": "object",
25
+ "properties": {"agent_id": {"type": "string"}},
26
+ "additionalProperties": False,
27
+ },
28
+ },
29
+ {
30
+ "name": "agent_devkit_capability_inspect",
31
+ "description": "Inspect one capability contract.",
32
+ "inputSchema": {
33
+ "type": "object",
34
+ "properties": {
35
+ "agent_id": {"type": "string"},
36
+ "capability_id": {"type": "string"},
37
+ },
38
+ "required": ["agent_id", "capability_id"],
39
+ "additionalProperties": False,
40
+ },
41
+ },
42
+ {
43
+ "name": "agent_devkit_capability_run",
44
+ "description": "Run a read-only capability or dry-run a non-read-only capability through Agent DevKit core.",
45
+ "inputSchema": {
46
+ "type": "object",
47
+ "properties": {
48
+ "agent_id": {"type": "string"},
49
+ "capability_id": {"type": "string"},
50
+ "args": {"type": "array", "items": {"type": "string"}},
51
+ "inputs": {"type": "object"},
52
+ "source_id": {"type": "string"},
53
+ "dry_run": {"type": "boolean"},
54
+ "request_id": {"type": "string"},
55
+ },
56
+ "required": ["agent_id", "capability_id"],
57
+ "additionalProperties": False,
58
+ },
59
+ },
60
+ {
61
+ "name": "agent_devkit_doctor",
62
+ "description": "Return local Agent DevKit diagnostics.",
63
+ "inputSchema": {
64
+ "type": "object",
65
+ "properties": {
66
+ "project": {"type": "string"},
67
+ "home": {"type": "string"},
68
+ "scope": {"type": "string"},
69
+ },
70
+ "additionalProperties": False,
71
+ },
72
+ },
73
+ {
74
+ "name": "agent_devkit_catalog_search",
75
+ "description": "Search agents, capabilities and providers in the deterministic Agent DevKit catalog.",
76
+ "inputSchema": {
77
+ "type": "object",
78
+ "properties": {
79
+ "query": {"type": "string"},
80
+ "type": {"type": "string"},
81
+ },
82
+ "required": ["query"],
83
+ "additionalProperties": False,
84
+ },
85
+ },
86
+ {
87
+ "name": "agent_devkit_route_explain",
88
+ "description": "Explain how Agent DevKit would route a prompt without executing it.",
89
+ "inputSchema": {
90
+ "type": "object",
91
+ "properties": {"prompt": {"type": "string"}},
92
+ "required": ["prompt"],
93
+ "additionalProperties": False,
94
+ },
95
+ },
96
+ {
97
+ "name": "agent_devkit_agent_prompt_dry_run",
98
+ "description": "Build a dry-run agentic execution plan for a natural-language prompt.",
99
+ "inputSchema": {
100
+ "type": "object",
101
+ "properties": {"prompt": {"type": "string"}},
102
+ "required": ["prompt"],
103
+ "additionalProperties": False,
104
+ },
105
+ },
106
+ {
107
+ "name": "agent_devkit_eval_list",
108
+ "description": "List deterministic Agent DevKit eval suites.",
109
+ "inputSchema": {"type": "object", "properties": {}, "additionalProperties": False},
110
+ },
111
+ {
112
+ "name": "agent_devkit_eval_run",
113
+ "description": "Run one deterministic Agent DevKit eval suite.",
114
+ "inputSchema": {
115
+ "type": "object",
116
+ "properties": {"suite": {"type": "string"}},
117
+ "required": ["suite"],
118
+ "additionalProperties": False,
119
+ },
120
+ },
121
+ {
122
+ "name": "agent_devkit_secrets_doctor",
123
+ "description": "Diagnose secret reference backends without exposing values.",
124
+ "inputSchema": {"type": "object", "properties": {}, "additionalProperties": False},
125
+ },
126
+ {
127
+ "name": "agent_devkit_roadmap",
128
+ "description": "Return the deterministic Agent DevKit roadmap payload.",
129
+ "inputSchema": {"type": "object", "properties": {}, "additionalProperties": False},
130
+ },
131
+ {
132
+ "name": "agent_devkit_source_list",
133
+ "description": "List configured sources without exposing secrets.",
134
+ "inputSchema": {"type": "object", "properties": {}, "additionalProperties": False},
135
+ },
136
+ {
137
+ "name": "agent_devkit_source_status",
138
+ "description": "Inspect source readiness without exposing secrets.",
139
+ "inputSchema": {
140
+ "type": "object",
141
+ "properties": {"source_id": {"type": "string"}},
142
+ "additionalProperties": False,
143
+ },
144
+ },
145
+ {
146
+ "name": "agent_devkit_wizard_show",
147
+ "description": "Show a pending setup wizard.",
148
+ "inputSchema": {
149
+ "type": "object",
150
+ "properties": {"wizard_id": {"type": "string"}},
151
+ "required": ["wizard_id"],
152
+ "additionalProperties": False,
153
+ },
154
+ },
155
+ {
156
+ "name": "agent_devkit_wizard_answer",
157
+ "description": "Answer a pending setup wizard question.",
158
+ "inputSchema": {
159
+ "type": "object",
160
+ "properties": {
161
+ "wizard_id": {"type": "string"},
162
+ "answer": {"type": "string"},
163
+ },
164
+ "required": ["wizard_id", "answer"],
165
+ "additionalProperties": False,
166
+ },
167
+ },
168
+ ]
169
+
170
+
171
+ def mcp_manifest() -> dict[str, Any]:
172
+ return {
173
+ "kind": "mcp-manifest",
174
+ "status": "ok",
175
+ "schema_version": "ai-devkit.mcp-manifest/v1",
176
+ "protocol_version": MCP_PROTOCOL_VERSION,
177
+ "transport": "stdio",
178
+ "server": {
179
+ "name": MCP_SERVER_NAME,
180
+ "version": __version__,
181
+ },
182
+ "tools": mcp_tools(),
183
+ "host_config": {
184
+ "mcpServers": {
185
+ MCP_SERVER_NAME: {
186
+ "command": "agent",
187
+ "args": ["mcp", "serve"],
188
+ }
189
+ }
190
+ },
191
+ }
192
+
193
+
194
+ def mcp_tools_payload() -> dict[str, Any]:
195
+ return {
196
+ "kind": "mcp-tools",
197
+ "status": "ok",
198
+ "protocol_version": MCP_PROTOCOL_VERSION,
199
+ "transport": "stdio",
200
+ "tools": mcp_tools(),
201
+ }
202
+
203
+
204
+ def mcp_tools() -> list[dict[str, Any]]:
205
+ return [dict(tool) for tool in TOOL_DEFINITIONS]
206
+
207
+
208
+ def mcp_doctor() -> dict[str, Any]:
209
+ return {
210
+ "kind": "mcp-doctor",
211
+ "status": "ok",
212
+ "protocol_version": MCP_PROTOCOL_VERSION,
213
+ "transport": "stdio",
214
+ "server": {
215
+ "name": MCP_SERVER_NAME,
216
+ "version": __version__,
217
+ },
218
+ "tools": {
219
+ "count": len(TOOL_DEFINITIONS),
220
+ "names": [tool["name"] for tool in TOOL_DEFINITIONS],
221
+ },
222
+ "checks": {
223
+ "stdio_transport": True,
224
+ "json_rpc": True,
225
+ "core_runtime": True,
226
+ "secrets_redacted": True,
227
+ "host_specific_dependency": False,
228
+ },
229
+ }
@@ -0,0 +1,132 @@
1
+ """Minimal MCP stdio server for Agent DevKit."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ import sys
7
+ from typing import Any, TextIO
8
+
9
+ from cli.aikit.mcp_manifest import MCP_PROTOCOL_VERSION, MCP_SERVER_NAME, mcp_doctor, mcp_manifest, mcp_tools
10
+ from cli.aikit.mcp_tools import McpToolError, call_mcp_tool
11
+
12
+
13
+ JSONRPC_VERSION = "2.0"
14
+ PARSE_ERROR = -32700
15
+ INVALID_REQUEST = -32600
16
+ METHOD_NOT_FOUND = -32601
17
+ INVALID_PARAMS = -32602
18
+ INTERNAL_ERROR = -32603
19
+
20
+
21
+ class McpMethodNotFound(ValueError):
22
+ """Raised when a JSON-RPC method is not supported by this MCP server."""
23
+
24
+
25
+ def serve_mcp_stdio(stdin: TextIO | None = None, stdout: TextIO | None = None, stderr: TextIO | None = None) -> None:
26
+ input_stream = stdin or sys.stdin
27
+ output_stream = stdout or sys.stdout
28
+ error_stream = stderr or sys.stderr
29
+ for raw_line in input_stream:
30
+ line = raw_line.strip()
31
+ if not line:
32
+ continue
33
+ try:
34
+ message = json.loads(line)
35
+ except json.JSONDecodeError as exc:
36
+ write_message(output_stream, error_response(None, PARSE_ERROR, "Parse error", data={"message": str(exc)}))
37
+ continue
38
+ if not isinstance(message, dict):
39
+ write_message(output_stream, error_response(None, INVALID_REQUEST, "Invalid Request"))
40
+ continue
41
+ response = handle_message(message, stderr=error_stream)
42
+ if response is not None:
43
+ write_message(output_stream, response)
44
+
45
+
46
+ def handle_message(message: dict[str, Any], *, stderr: TextIO | None = None) -> dict[str, Any] | None:
47
+ request_id = message.get("id")
48
+ method = message.get("method")
49
+ if message.get("jsonrpc") != JSONRPC_VERSION or not isinstance(method, str):
50
+ return error_response(request_id, INVALID_REQUEST, "Invalid Request")
51
+ if request_id is None:
52
+ handle_notification(method)
53
+ return None
54
+ try:
55
+ result = dispatch_request(method, message.get("params"))
56
+ except McpMethodNotFound as exc:
57
+ return error_response(request_id, METHOD_NOT_FOUND, str(exc))
58
+ except McpToolError as exc:
59
+ return error_response(request_id, INVALID_PARAMS, str(exc))
60
+ except Exception as exc: # noqa: BLE001 - protocol response must hide stack traces.
61
+ if stderr:
62
+ print(f"agent-devkit MCP internal error: {type(exc).__name__}", file=stderr)
63
+ return error_response(request_id, INTERNAL_ERROR, "Internal error")
64
+ return {
65
+ "jsonrpc": JSONRPC_VERSION,
66
+ "id": request_id,
67
+ "result": result,
68
+ }
69
+
70
+
71
+ def dispatch_request(method: str, params: Any) -> dict[str, Any]:
72
+ if method == "initialize":
73
+ return initialize_result(params)
74
+ if method == "ping":
75
+ return {}
76
+ if method == "tools/list":
77
+ return {"tools": mcp_tools()}
78
+ if method == "tools/call":
79
+ if not isinstance(params, dict):
80
+ raise McpToolError("tools/call params must be an object")
81
+ name = params.get("name")
82
+ if not isinstance(name, str) or not name.strip():
83
+ raise McpToolError("tools/call requires a tool name")
84
+ arguments = params.get("arguments", {})
85
+ if arguments is None:
86
+ arguments = {}
87
+ if not isinstance(arguments, dict):
88
+ raise McpToolError("tools/call arguments must be an object")
89
+ return call_mcp_tool(name.strip(), arguments)
90
+ raise McpMethodNotFound(f"Method not found: {method}")
91
+
92
+
93
+ def initialize_result(params: Any) -> dict[str, Any]:
94
+ requested_version = None
95
+ if isinstance(params, dict):
96
+ requested_version = params.get("protocolVersion")
97
+ return {
98
+ "protocolVersion": str(requested_version or MCP_PROTOCOL_VERSION),
99
+ "capabilities": {
100
+ "tools": {},
101
+ },
102
+ "serverInfo": {
103
+ "name": MCP_SERVER_NAME,
104
+ "version": str(mcp_manifest()["server"]["version"]),
105
+ },
106
+ }
107
+
108
+
109
+ def handle_notification(method: str) -> None:
110
+ if method in {"notifications/initialized", "notifications/cancelled"}:
111
+ return
112
+ return
113
+
114
+
115
+ def mcp_cli_doctor() -> dict[str, Any]:
116
+ return mcp_doctor()
117
+
118
+
119
+ def write_message(stdout: TextIO, message: dict[str, Any]) -> None:
120
+ stdout.write(json.dumps(message, ensure_ascii=False, separators=(",", ":")) + "\n")
121
+ stdout.flush()
122
+
123
+
124
+ def error_response(request_id: Any, code: int, message: str, *, data: Any | None = None) -> dict[str, Any]:
125
+ error: dict[str, Any] = {"code": code, "message": message}
126
+ if data is not None:
127
+ error["data"] = data
128
+ return {
129
+ "jsonrpc": JSONRPC_VERSION,
130
+ "id": request_id,
131
+ "error": error,
132
+ }
@@ -0,0 +1,262 @@
1
+ """MCP tool adapters over the Agent DevKit core runtime."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ from typing import Any, Callable
7
+
8
+ from cli.aikit.audit import redact_value, try_record_audit
9
+ from cli.aikit.catalog import catalog_search
10
+ from cli.aikit.core.requests import CapabilityRunRequest
11
+ from cli.aikit.core.runtime import (
12
+ inspect_capability_request,
13
+ list_agent_modules,
14
+ list_capability_modules,
15
+ run_capability_request,
16
+ )
17
+ from cli.aikit.doctor_runtime import doctor
18
+ from cli.aikit.eval import eval_list, eval_run
19
+ from cli.aikit.errors import DevKitError
20
+ from cli.aikit.mcp_manifest import mcp_tools
21
+ from cli.aikit.orchestrator import build_execution_plan
22
+ from cli.aikit.roadmap_cli import roadmap_payload
23
+ from cli.aikit.router_explain import explain_route
24
+ from cli.aikit.runtime_paths import ROOT
25
+ from cli.aikit.secrets import secrets_doctor
26
+ from cli.aikit.sources import SourceRegistryError, list_sources, source_status
27
+ from cli.aikit.wizard_state import WizardStateError, answer_wizard, show_wizard
28
+
29
+
30
+ class McpToolError(ValueError):
31
+ """Raised when a MCP tool call is malformed or unknown."""
32
+
33
+
34
+ def call_mcp_tool(name: str, arguments: dict[str, Any] | None) -> dict[str, Any]:
35
+ args = arguments or {}
36
+ if not isinstance(args, dict):
37
+ raise McpToolError("MCP tool arguments must be an object")
38
+ handlers: dict[str, Callable[[dict[str, Any]], dict[str, Any]]] = {
39
+ "agent_devkit_agents_list": tool_agents_list,
40
+ "agent_devkit_capabilities_list": tool_capabilities_list,
41
+ "agent_devkit_capability_inspect": tool_capability_inspect,
42
+ "agent_devkit_capability_run": tool_capability_run,
43
+ "agent_devkit_doctor": tool_doctor,
44
+ "agent_devkit_catalog_search": tool_catalog_search,
45
+ "agent_devkit_route_explain": tool_route_explain,
46
+ "agent_devkit_agent_prompt_dry_run": tool_agent_prompt_dry_run,
47
+ "agent_devkit_eval_list": tool_eval_list,
48
+ "agent_devkit_eval_run": tool_eval_run,
49
+ "agent_devkit_secrets_doctor": tool_secrets_doctor,
50
+ "agent_devkit_roadmap": tool_roadmap,
51
+ "agent_devkit_source_list": tool_source_list,
52
+ "agent_devkit_source_status": tool_source_status,
53
+ "agent_devkit_wizard_show": tool_wizard_show,
54
+ "agent_devkit_wizard_answer": tool_wizard_answer,
55
+ }
56
+ handler = handlers.get(name)
57
+ if not handler:
58
+ raise McpToolError(f"Unknown MCP tool: {name}")
59
+ try:
60
+ payload = handler(args)
61
+ except (DevKitError, SourceRegistryError, WizardStateError, ValueError) as exc:
62
+ payload = {
63
+ "kind": "mcp-tool-error",
64
+ "status": "failed",
65
+ "ok": False,
66
+ "tool": name,
67
+ "message": str(exc),
68
+ "origin": "mcp",
69
+ }
70
+ safe_payload = redact_value(payload)
71
+ return tool_result(safe_payload, is_error=is_error_payload(safe_payload))
72
+
73
+
74
+ def list_mcp_tool_definitions() -> dict[str, Any]:
75
+ return {
76
+ "kind": "mcp-tools",
77
+ "status": "ok",
78
+ "tools": mcp_tools(),
79
+ }
80
+
81
+
82
+ def tool_agents_list(_args: dict[str, Any]) -> dict[str, Any]:
83
+ return list_agent_modules()
84
+
85
+
86
+ def tool_capabilities_list(args: dict[str, Any]) -> dict[str, Any]:
87
+ return list_capability_modules(optional_string(args, "agent_id"))
88
+
89
+
90
+ def tool_capability_inspect(args: dict[str, Any]) -> dict[str, Any]:
91
+ return inspect_capability_request(required_string(args, "agent_id"), required_string(args, "capability_id"))
92
+
93
+
94
+ def tool_capability_run(args: dict[str, Any]) -> dict[str, Any]:
95
+ agent_id = required_string(args, "agent_id")
96
+ capability_id = required_string(args, "capability_id")
97
+ dry_run = optional_bool(args, "dry_run", default=False)
98
+ inspected = inspect_capability_request(agent_id, capability_id)
99
+ capability = inspected.get("capability") if isinstance(inspected.get("capability"), dict) else {}
100
+ policy = str(capability.get("write_policy") or "")
101
+ if policy != "read_only" and not dry_run:
102
+ payload = {
103
+ "kind": "run",
104
+ "status": "blocked",
105
+ "ok": False,
106
+ "origin": "mcp",
107
+ "agent": inspected.get("agent"),
108
+ "capability": capability.get("id") or capability_id,
109
+ "write_policy": policy,
110
+ "write_policy_metadata": capability.get("write_policy_metadata"),
111
+ "reason": "mcp_write_policy_blocked",
112
+ "risks": ["MCP stdio v1 only executes read-only capabilities by default."],
113
+ "next_steps": ["Call again with dry_run=true or use the CLI with explicit confirmation for write operations."],
114
+ "exit_code": 2,
115
+ }
116
+ attach_mcp_audit(payload, tool="agent_devkit_capability_run", args=args)
117
+ return payload
118
+
119
+ request = CapabilityRunRequest(
120
+ agent_id=agent_id,
121
+ capability_id=capability_id,
122
+ capability_args=string_list(args.get("args")),
123
+ origin="mcp",
124
+ request_id=optional_string(args, "request_id"),
125
+ inputs=mapping_value(args.get("inputs")),
126
+ source_id=optional_string(args, "source_id"),
127
+ dry_run=dry_run,
128
+ )
129
+ payload = run_capability_request(request)
130
+ attach_mcp_audit(payload, tool="agent_devkit_capability_run", args=args)
131
+ return payload
132
+
133
+
134
+ def tool_doctor(args: dict[str, Any]) -> dict[str, Any]:
135
+ return doctor(
136
+ project=optional_string(args, "project"),
137
+ home=optional_string(args, "home"),
138
+ scope=optional_string(args, "scope") or "auto",
139
+ )
140
+
141
+
142
+ def tool_catalog_search(args: dict[str, Any]) -> dict[str, Any]:
143
+ item_type = optional_string(args, "type")
144
+ if item_type not in {None, "agent", "capability", "provider"}:
145
+ raise McpToolError("type must be agent, capability or provider")
146
+ return catalog_search(required_string(args, "query"), ROOT, item_type=item_type)
147
+
148
+
149
+ def tool_route_explain(args: dict[str, Any]) -> dict[str, Any]:
150
+ return explain_route(required_string(args, "prompt"), ROOT)
151
+
152
+
153
+ def tool_agent_prompt_dry_run(args: dict[str, Any]) -> dict[str, Any]:
154
+ return build_execution_plan(ROOT, required_string(args, "prompt"), dry_run=True)
155
+
156
+
157
+ def tool_eval_list(_args: dict[str, Any]) -> dict[str, Any]:
158
+ return eval_list()
159
+
160
+
161
+ def tool_eval_run(args: dict[str, Any]) -> dict[str, Any]:
162
+ return eval_run(required_string(args, "suite"), ROOT)
163
+
164
+
165
+ def tool_secrets_doctor(_args: dict[str, Any]) -> dict[str, Any]:
166
+ return secrets_doctor()
167
+
168
+
169
+ def tool_roadmap(_args: dict[str, Any]) -> dict[str, Any]:
170
+ return roadmap_payload(ROOT)
171
+
172
+
173
+ def tool_source_list(_args: dict[str, Any]) -> dict[str, Any]:
174
+ return list_sources()
175
+
176
+
177
+ def tool_source_status(args: dict[str, Any]) -> dict[str, Any]:
178
+ return source_status(optional_string(args, "source_id"))
179
+
180
+
181
+ def tool_wizard_show(args: dict[str, Any]) -> dict[str, Any]:
182
+ return show_wizard(required_string(args, "wizard_id"))
183
+
184
+
185
+ def tool_wizard_answer(args: dict[str, Any]) -> dict[str, Any]:
186
+ payload = answer_wizard(required_string(args, "wizard_id"), required_string(args, "answer"))
187
+ attach_mcp_audit(payload, tool="agent_devkit_wizard_answer", args=args)
188
+ return payload
189
+
190
+
191
+ def attach_mcp_audit(payload: dict[str, Any], *, tool: str, args: dict[str, Any]) -> None:
192
+ audit_result = try_record_audit(
193
+ command=tool,
194
+ args={"command": "mcp", "tool": tool, "arguments": redact_value(args)},
195
+ result=payload,
196
+ error=None,
197
+ origin="mcp",
198
+ required=False,
199
+ )
200
+ if audit_result.get("audit_warning"):
201
+ payload["audit_warning"] = audit_result["audit_warning"]
202
+ elif audit_result.get("audit"):
203
+ payload["audit"] = audit_result["audit"]
204
+
205
+
206
+ def tool_result(payload: dict[str, Any], *, is_error: bool) -> dict[str, Any]:
207
+ return {
208
+ "content": [
209
+ {
210
+ "type": "text",
211
+ "text": json.dumps(payload, ensure_ascii=False, indent=2, sort_keys=True),
212
+ }
213
+ ],
214
+ "structuredContent": payload,
215
+ "isError": bool(is_error),
216
+ }
217
+
218
+
219
+ def is_error_payload(payload: Any) -> bool:
220
+ if not isinstance(payload, dict):
221
+ return False
222
+ status = str(payload.get("status") or "")
223
+ return payload.get("ok") is False or status in {"blocked", "failed", "error"}
224
+
225
+
226
+ def required_string(args: dict[str, Any], key: str) -> str:
227
+ value = args.get(key)
228
+ if not isinstance(value, str) or not value.strip():
229
+ raise McpToolError(f"{key} is required")
230
+ return value.strip()
231
+
232
+
233
+ def optional_string(args: dict[str, Any], key: str) -> str | None:
234
+ value = args.get(key)
235
+ if value is None:
236
+ return None
237
+ if not isinstance(value, str):
238
+ raise McpToolError(f"{key} must be a string")
239
+ return value.strip() or None
240
+
241
+
242
+ def string_list(value: Any) -> list[str]:
243
+ if value is None:
244
+ return []
245
+ if not isinstance(value, list) or not all(isinstance(item, str) for item in value):
246
+ raise McpToolError("args must be an array of strings")
247
+ return list(value)
248
+
249
+
250
+ def mapping_value(value: Any) -> dict[str, Any]:
251
+ if value is None:
252
+ return {}
253
+ if not isinstance(value, dict):
254
+ raise McpToolError("inputs must be an object")
255
+ return dict(value)
256
+
257
+
258
+ def optional_bool(args: dict[str, Any], key: str, *, default: bool) -> bool:
259
+ value = args.get(key, default)
260
+ if not isinstance(value, bool):
261
+ raise McpToolError(f"{key} must be a boolean")
262
+ return value