@josstei/maestro 1.6.4-rc.1

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 (655) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/CHANGELOG.md +485 -0
  3. package/EXAMPLES.md +255 -0
  4. package/GEMINI.md +231 -0
  5. package/LICENSE +201 -0
  6. package/QWEN.md +241 -0
  7. package/README.md +220 -0
  8. package/agents/accessibility_specialist.md +20 -0
  9. package/agents/analytics_engineer.md +22 -0
  10. package/agents/api_designer.md +19 -0
  11. package/agents/architect.md +19 -0
  12. package/agents/cloud_architect.md +19 -0
  13. package/agents/cobol_engineer.md +22 -0
  14. package/agents/code_reviewer.md +17 -0
  15. package/agents/coder.md +22 -0
  16. package/agents/compliance_reviewer.md +19 -0
  17. package/agents/content_strategist.md +19 -0
  18. package/agents/copywriter.md +19 -0
  19. package/agents/data_engineer.md +22 -0
  20. package/agents/database_administrator.md +21 -0
  21. package/agents/db2_dba.md +21 -0
  22. package/agents/debugger.md +19 -0
  23. package/agents/design_system_engineer.md +22 -0
  24. package/agents/devops_engineer.md +23 -0
  25. package/agents/hlasm_assembler_specialist.md +22 -0
  26. package/agents/i18n_specialist.md +21 -0
  27. package/agents/ibm_i_specialist.md +22 -0
  28. package/agents/integration_engineer.md +23 -0
  29. package/agents/ml_engineer.md +23 -0
  30. package/agents/mlops_engineer.md +23 -0
  31. package/agents/mobile_engineer.md +23 -0
  32. package/agents/observability_engineer.md +23 -0
  33. package/agents/performance_engineer.md +21 -0
  34. package/agents/platform_engineer.md +24 -0
  35. package/agents/product_manager.md +20 -0
  36. package/agents/prompt_engineer.md +22 -0
  37. package/agents/refactor.md +22 -0
  38. package/agents/release_manager.md +22 -0
  39. package/agents/security_engineer.md +21 -0
  40. package/agents/seo_specialist.md +21 -0
  41. package/agents/site_reliability_engineer.md +21 -0
  42. package/agents/solutions_architect.md +19 -0
  43. package/agents/technical_writer.md +21 -0
  44. package/agents/tester.md +23 -0
  45. package/agents/ux_designer.md +20 -0
  46. package/agents/zos_sysprog.md +21 -0
  47. package/bin/maestro-mcp-server.js +10 -0
  48. package/claude/.claude-plugin/plugin.json +21 -0
  49. package/claude/.mcp.json +11 -0
  50. package/claude/README.md +191 -0
  51. package/claude/agents/accessibility-specialist.md +36 -0
  52. package/claude/agents/analytics-engineer.md +38 -0
  53. package/claude/agents/api-designer.md +33 -0
  54. package/claude/agents/architect.md +33 -0
  55. package/claude/agents/cloud-architect.md +33 -0
  56. package/claude/agents/cobol-engineer.md +38 -0
  57. package/claude/agents/code-reviewer.md +31 -0
  58. package/claude/agents/coder.md +38 -0
  59. package/claude/agents/compliance-reviewer.md +33 -0
  60. package/claude/agents/content-strategist.md +33 -0
  61. package/claude/agents/copywriter.md +33 -0
  62. package/claude/agents/data-engineer.md +37 -0
  63. package/claude/agents/database-administrator.md +37 -0
  64. package/claude/agents/db2-dba.md +37 -0
  65. package/claude/agents/debugger.md +32 -0
  66. package/claude/agents/design-system-engineer.md +38 -0
  67. package/claude/agents/devops-engineer.md +39 -0
  68. package/claude/agents/hlasm-assembler-specialist.md +38 -0
  69. package/claude/agents/i18n-specialist.md +37 -0
  70. package/claude/agents/ibm-i-specialist.md +38 -0
  71. package/claude/agents/integration-engineer.md +39 -0
  72. package/claude/agents/ml-engineer.md +39 -0
  73. package/claude/agents/mlops-engineer.md +39 -0
  74. package/claude/agents/mobile-engineer.md +39 -0
  75. package/claude/agents/observability-engineer.md +39 -0
  76. package/claude/agents/performance-engineer.md +34 -0
  77. package/claude/agents/platform-engineer.md +40 -0
  78. package/claude/agents/product-manager.md +34 -0
  79. package/claude/agents/prompt-engineer.md +38 -0
  80. package/claude/agents/refactor.md +38 -0
  81. package/claude/agents/release-manager.md +38 -0
  82. package/claude/agents/security-engineer.md +37 -0
  83. package/claude/agents/seo-specialist.md +37 -0
  84. package/claude/agents/site-reliability-engineer.md +37 -0
  85. package/claude/agents/solutions-architect.md +33 -0
  86. package/claude/agents/technical-writer.md +37 -0
  87. package/claude/agents/tester.md +39 -0
  88. package/claude/agents/ux-designer.md +34 -0
  89. package/claude/agents/zos-sysprog.md +37 -0
  90. package/claude/hooks/claude-hooks.json +48 -0
  91. package/claude/mcp/maestro-server.js +9 -0
  92. package/claude/mcp-config.example.json +9 -0
  93. package/claude/scripts/adapters/claude-adapter.js +7 -0
  94. package/claude/scripts/hook-runner.js +8 -0
  95. package/claude/scripts/policy-enforcer.js +294 -0
  96. package/claude/skills/a11y-audit/SKILL.md +26 -0
  97. package/claude/skills/archive/SKILL.md +24 -0
  98. package/claude/skills/code-review/SKILL.md +7 -0
  99. package/claude/skills/compliance-check/SKILL.md +26 -0
  100. package/claude/skills/debug-workflow/SKILL.md +27 -0
  101. package/claude/skills/delegation/SKILL.md +7 -0
  102. package/claude/skills/design-dialogue/SKILL.md +7 -0
  103. package/claude/skills/execute/SKILL.md +38 -0
  104. package/claude/skills/execution/SKILL.md +7 -0
  105. package/claude/skills/implementation-planning/SKILL.md +7 -0
  106. package/claude/skills/orchestrate/SKILL.md +38 -0
  107. package/claude/skills/perf-check/SKILL.md +26 -0
  108. package/claude/skills/resume-session/SKILL.md +38 -0
  109. package/claude/skills/review-code/SKILL.md +27 -0
  110. package/claude/skills/security-audit/SKILL.md +28 -0
  111. package/claude/skills/seo-audit/SKILL.md +26 -0
  112. package/claude/skills/session-management/SKILL.md +7 -0
  113. package/claude/skills/status/SKILL.md +22 -0
  114. package/claude/skills/validation/SKILL.md +7 -0
  115. package/claude/src/agents/accessibility-specialist.md +163 -0
  116. package/claude/src/agents/analytics-engineer.md +182 -0
  117. package/claude/src/agents/api-designer.md +124 -0
  118. package/claude/src/agents/architect.md +120 -0
  119. package/claude/src/agents/cloud-architect.md +134 -0
  120. package/claude/src/agents/cobol-engineer.md +127 -0
  121. package/claude/src/agents/code-reviewer.md +123 -0
  122. package/claude/src/agents/coder.md +132 -0
  123. package/claude/src/agents/compliance-reviewer.md +219 -0
  124. package/claude/src/agents/content-strategist.md +111 -0
  125. package/claude/src/agents/copywriter.md +113 -0
  126. package/claude/src/agents/data-engineer.md +130 -0
  127. package/claude/src/agents/database-administrator.md +126 -0
  128. package/claude/src/agents/db2-dba.md +124 -0
  129. package/claude/src/agents/debugger.md +133 -0
  130. package/claude/src/agents/design-system-engineer.md +258 -0
  131. package/claude/src/agents/devops-engineer.md +138 -0
  132. package/claude/src/agents/hlasm-assembler-specialist.md +134 -0
  133. package/claude/src/agents/i18n-specialist.md +241 -0
  134. package/claude/src/agents/ibm-i-specialist.md +132 -0
  135. package/claude/src/agents/integration-engineer.md +133 -0
  136. package/claude/src/agents/ml-engineer.md +115 -0
  137. package/claude/src/agents/mlops-engineer.md +116 -0
  138. package/claude/src/agents/mobile-engineer.md +115 -0
  139. package/claude/src/agents/observability-engineer.md +133 -0
  140. package/claude/src/agents/performance-engineer.md +139 -0
  141. package/claude/src/agents/platform-engineer.md +129 -0
  142. package/claude/src/agents/product-manager.md +170 -0
  143. package/claude/src/agents/prompt-engineer.md +129 -0
  144. package/claude/src/agents/refactor.md +138 -0
  145. package/claude/src/agents/release-manager.md +132 -0
  146. package/claude/src/agents/security-engineer.md +143 -0
  147. package/claude/src/agents/seo-specialist.md +129 -0
  148. package/claude/src/agents/site-reliability-engineer.md +131 -0
  149. package/claude/src/agents/solutions-architect.md +137 -0
  150. package/claude/src/agents/technical-writer.md +129 -0
  151. package/claude/src/agents/tester.md +135 -0
  152. package/claude/src/agents/ux-designer.md +168 -0
  153. package/claude/src/agents/zos-sysprog.md +134 -0
  154. package/claude/src/config/setting-resolver.js +32 -0
  155. package/claude/src/core/agent-registry.js +67 -0
  156. package/claude/src/core/canonical-source.js +39 -0
  157. package/claude/src/core/env-file-parser.js +82 -0
  158. package/claude/src/core/feature-blocks.js +34 -0
  159. package/claude/src/core/logger.js +12 -0
  160. package/claude/src/core/markdown-state.js +36 -0
  161. package/claude/src/core/policy-rules.js +32 -0
  162. package/claude/src/core/project-root-resolver.js +184 -0
  163. package/claude/src/core/stdin-reader.js +77 -0
  164. package/claude/src/core/version.js +50 -0
  165. package/claude/src/entry-points/core-command-registry.js +37 -0
  166. package/claude/src/entry-points/preamble-builders.js +54 -0
  167. package/claude/src/entry-points/registry.js +199 -0
  168. package/claude/src/entry-points/templates/claude-core-command.md.tmpl +38 -0
  169. package/claude/src/entry-points/templates/claude-skill.md.tmpl +18 -0
  170. package/claude/src/entry-points/templates/codex-core-command.md.tmpl +16 -0
  171. package/claude/src/entry-points/templates/codex-skill.md.tmpl +11 -0
  172. package/claude/src/entry-points/templates/gemini-command.toml.tmpl +17 -0
  173. package/claude/src/entry-points/templates/gemini-core-command.toml.tmpl +30 -0
  174. package/claude/src/generated/agent-registry.json +630 -0
  175. package/claude/src/generated/hook-registry.json +18 -0
  176. package/claude/src/generated/resource-registry.json +16 -0
  177. package/claude/src/hooks/logic/after-agent-logic.js +54 -0
  178. package/claude/src/hooks/logic/before-agent-logic.js +57 -0
  179. package/claude/src/hooks/logic/hook-state.js +127 -0
  180. package/claude/src/hooks/logic/session-end-logic.js +17 -0
  181. package/claude/src/hooks/logic/session-start-logic.js +25 -0
  182. package/claude/src/lib/discovery/index.js +172 -0
  183. package/claude/src/lib/errors/index.js +104 -0
  184. package/claude/src/lib/framework-detection.js +50 -0
  185. package/claude/src/lib/frontmatter/index.js +262 -0
  186. package/claude/src/lib/io/index.js +96 -0
  187. package/claude/src/lib/naming/index.js +94 -0
  188. package/claude/src/lib/validation/index.js +124 -0
  189. package/claude/src/lib/yaml-emit.js +38 -0
  190. package/claude/src/mcp/content/provider.js +68 -0
  191. package/claude/src/mcp/content/runtime-content.js +188 -0
  192. package/claude/src/mcp/contracts/cache-path-rejector.js +39 -0
  193. package/claude/src/mcp/contracts/downstream-context.js +106 -0
  194. package/claude/src/mcp/contracts/plan-schema.js +148 -0
  195. package/claude/src/mcp/contracts/workspace-marker.js +61 -0
  196. package/claude/src/mcp/core/create-server.js +76 -0
  197. package/claude/src/mcp/core/line-reader.js +35 -0
  198. package/claude/src/mcp/core/project-root-cache.js +120 -0
  199. package/claude/src/mcp/core/protocol-dispatcher.js +274 -0
  200. package/claude/src/mcp/core/recovery-hints.js +43 -0
  201. package/claude/src/mcp/core/tool-outcome.js +77 -0
  202. package/claude/src/mcp/core/tool-registry.js +82 -0
  203. package/claude/src/mcp/handlers/assess-task-complexity.js +108 -0
  204. package/claude/src/mcp/handlers/blocker-parser.js +34 -0
  205. package/claude/src/mcp/handlers/design-gate.js +393 -0
  206. package/claude/src/mcp/handlers/get-agent.js +54 -0
  207. package/claude/src/mcp/handlers/get-runtime-context.js +49 -0
  208. package/claude/src/mcp/handlers/get-skill-content.js +51 -0
  209. package/claude/src/mcp/handlers/initialize-workspace.js +45 -0
  210. package/claude/src/mcp/handlers/reconciliation.js +224 -0
  211. package/claude/src/mcp/handlers/resolve-settings.js +39 -0
  212. package/claude/src/mcp/handlers/session-state-core.js +108 -0
  213. package/claude/src/mcp/handlers/session-state-tools.js +562 -0
  214. package/claude/src/mcp/handlers/validate-plan.js +76 -0
  215. package/claude/src/mcp/maestro-server.js +122 -0
  216. package/claude/src/mcp/runtime/runtime-config-map.js +70 -0
  217. package/claude/src/mcp/tool-packs/content/index.js +80 -0
  218. package/claude/src/mcp/tool-packs/contracts.js +30 -0
  219. package/claude/src/mcp/tool-packs/index.js +15 -0
  220. package/claude/src/mcp/tool-packs/session/index.js +243 -0
  221. package/claude/src/mcp/tool-packs/workspace/index.js +98 -0
  222. package/claude/src/mcp/utils/extension-root.js +31 -0
  223. package/claude/src/mcp/validation/agent-checker.js +81 -0
  224. package/claude/src/mcp/validation/dag-checker.js +214 -0
  225. package/claude/src/mcp/validation/file-overlap-checker.js +63 -0
  226. package/claude/src/mcp/validation/schema-checker.js +108 -0
  227. package/claude/src/platforms/claude/runtime-config.js +60 -0
  228. package/claude/src/platforms/shared/adapters/claude-adapter.js +36 -0
  229. package/claude/src/platforms/shared/adapters/conventions.js +29 -0
  230. package/claude/src/platforms/shared/adapters/exit-codes.js +6 -0
  231. package/claude/src/platforms/shared/adapters/factory.js +40 -0
  232. package/claude/src/platforms/shared/agent-names.js +10 -0
  233. package/claude/src/platforms/shared/hook-runner.js +52 -0
  234. package/claude/src/references/architecture.md +139 -0
  235. package/claude/src/references/orchestration-steps.md +193 -0
  236. package/claude/src/skills/shared/code-review/SKILL.md +145 -0
  237. package/claude/src/skills/shared/delegation/SKILL.md +370 -0
  238. package/claude/src/skills/shared/delegation/protocols/agent-base-protocol.md +145 -0
  239. package/claude/src/skills/shared/delegation/protocols/filesystem-safety-protocol.md +31 -0
  240. package/claude/src/skills/shared/design-dialogue/SKILL.md +284 -0
  241. package/claude/src/skills/shared/execution/SKILL.md +258 -0
  242. package/claude/src/skills/shared/implementation-planning/SKILL.md +303 -0
  243. package/claude/src/skills/shared/session-management/SKILL.md +314 -0
  244. package/claude/src/skills/shared/validation/SKILL.md +204 -0
  245. package/claude/src/state/session-state.js +113 -0
  246. package/claude/src/templates/design-document.md +95 -0
  247. package/claude/src/templates/implementation-plan.md +86 -0
  248. package/claude/src/templates/session-state.md +68 -0
  249. package/claude/src/version.json +3 -0
  250. package/commands/maestro/a11y-audit.toml +22 -0
  251. package/commands/maestro/archive.toml +23 -0
  252. package/commands/maestro/compliance-check.toml +22 -0
  253. package/commands/maestro/debug.toml +23 -0
  254. package/commands/maestro/execute.toml +30 -0
  255. package/commands/maestro/orchestrate.toml +30 -0
  256. package/commands/maestro/perf-check.toml +22 -0
  257. package/commands/maestro/resume.toml +38 -0
  258. package/commands/maestro/review.toml +23 -0
  259. package/commands/maestro/security-audit.toml +24 -0
  260. package/commands/maestro/seo-audit.toml +22 -0
  261. package/commands/maestro/status.toml +21 -0
  262. package/docs/architecture.md +310 -0
  263. package/docs/cicd.md +647 -0
  264. package/docs/flow.md +255 -0
  265. package/docs/maestro-cheatsheet.md +199 -0
  266. package/docs/overview.md +141 -0
  267. package/docs/runtime-claude.md +190 -0
  268. package/docs/runtime-codex.md +197 -0
  269. package/docs/runtime-gemini.md +170 -0
  270. package/docs/runtime-qwen.md +147 -0
  271. package/docs/usage.md +312 -0
  272. package/gemini-extension.json +55 -0
  273. package/hooks/adapters/gemini-adapter.js +2 -0
  274. package/hooks/adapters/qwen-adapter.js +2 -0
  275. package/hooks/hook-runner.js +3 -0
  276. package/hooks/hooks.json +56 -0
  277. package/mcp/maestro-server.js +4 -0
  278. package/package.json +93 -0
  279. package/plugins/maestro/.app.json +3 -0
  280. package/plugins/maestro/.codex-plugin/plugin.json +41 -0
  281. package/plugins/maestro/.mcp.json +16 -0
  282. package/plugins/maestro/README.md +57 -0
  283. package/plugins/maestro/references/runtime-guide.md +125 -0
  284. package/plugins/maestro/skills/a11y-audit/SKILL.md +16 -0
  285. package/plugins/maestro/skills/archive/SKILL.md +16 -0
  286. package/plugins/maestro/skills/code-review/SKILL.md +6 -0
  287. package/plugins/maestro/skills/compliance-check/SKILL.md +16 -0
  288. package/plugins/maestro/skills/debug-workflow/SKILL.md +16 -0
  289. package/plugins/maestro/skills/delegation/SKILL.md +6 -0
  290. package/plugins/maestro/skills/design-dialogue/SKILL.md +6 -0
  291. package/plugins/maestro/skills/execute/SKILL.md +16 -0
  292. package/plugins/maestro/skills/execution/SKILL.md +6 -0
  293. package/plugins/maestro/skills/implementation-planning/SKILL.md +6 -0
  294. package/plugins/maestro/skills/orchestrate/SKILL.md +16 -0
  295. package/plugins/maestro/skills/perf-check/SKILL.md +16 -0
  296. package/plugins/maestro/skills/resume-session/SKILL.md +16 -0
  297. package/plugins/maestro/skills/review-code/SKILL.md +16 -0
  298. package/plugins/maestro/skills/security-audit/SKILL.md +16 -0
  299. package/plugins/maestro/skills/seo-audit/SKILL.md +16 -0
  300. package/plugins/maestro/skills/session-management/SKILL.md +6 -0
  301. package/plugins/maestro/skills/status/SKILL.md +14 -0
  302. package/plugins/maestro/skills/validation/SKILL.md +6 -0
  303. package/plugins/maestro/src/agents/accessibility-specialist.md +163 -0
  304. package/plugins/maestro/src/agents/analytics-engineer.md +182 -0
  305. package/plugins/maestro/src/agents/api-designer.md +124 -0
  306. package/plugins/maestro/src/agents/architect.md +120 -0
  307. package/plugins/maestro/src/agents/cloud-architect.md +134 -0
  308. package/plugins/maestro/src/agents/cobol-engineer.md +127 -0
  309. package/plugins/maestro/src/agents/code-reviewer.md +123 -0
  310. package/plugins/maestro/src/agents/coder.md +132 -0
  311. package/plugins/maestro/src/agents/compliance-reviewer.md +219 -0
  312. package/plugins/maestro/src/agents/content-strategist.md +111 -0
  313. package/plugins/maestro/src/agents/copywriter.md +113 -0
  314. package/plugins/maestro/src/agents/data-engineer.md +130 -0
  315. package/plugins/maestro/src/agents/database-administrator.md +126 -0
  316. package/plugins/maestro/src/agents/db2-dba.md +124 -0
  317. package/plugins/maestro/src/agents/debugger.md +133 -0
  318. package/plugins/maestro/src/agents/design-system-engineer.md +258 -0
  319. package/plugins/maestro/src/agents/devops-engineer.md +138 -0
  320. package/plugins/maestro/src/agents/hlasm-assembler-specialist.md +134 -0
  321. package/plugins/maestro/src/agents/i18n-specialist.md +241 -0
  322. package/plugins/maestro/src/agents/ibm-i-specialist.md +132 -0
  323. package/plugins/maestro/src/agents/integration-engineer.md +133 -0
  324. package/plugins/maestro/src/agents/ml-engineer.md +115 -0
  325. package/plugins/maestro/src/agents/mlops-engineer.md +116 -0
  326. package/plugins/maestro/src/agents/mobile-engineer.md +115 -0
  327. package/plugins/maestro/src/agents/observability-engineer.md +133 -0
  328. package/plugins/maestro/src/agents/performance-engineer.md +139 -0
  329. package/plugins/maestro/src/agents/platform-engineer.md +129 -0
  330. package/plugins/maestro/src/agents/product-manager.md +170 -0
  331. package/plugins/maestro/src/agents/prompt-engineer.md +129 -0
  332. package/plugins/maestro/src/agents/refactor.md +138 -0
  333. package/plugins/maestro/src/agents/release-manager.md +132 -0
  334. package/plugins/maestro/src/agents/security-engineer.md +143 -0
  335. package/plugins/maestro/src/agents/seo-specialist.md +129 -0
  336. package/plugins/maestro/src/agents/site-reliability-engineer.md +131 -0
  337. package/plugins/maestro/src/agents/solutions-architect.md +137 -0
  338. package/plugins/maestro/src/agents/technical-writer.md +129 -0
  339. package/plugins/maestro/src/agents/tester.md +135 -0
  340. package/plugins/maestro/src/agents/ux-designer.md +168 -0
  341. package/plugins/maestro/src/agents/zos-sysprog.md +134 -0
  342. package/plugins/maestro/src/config/setting-resolver.js +32 -0
  343. package/plugins/maestro/src/core/agent-registry.js +67 -0
  344. package/plugins/maestro/src/core/canonical-source.js +39 -0
  345. package/plugins/maestro/src/core/env-file-parser.js +82 -0
  346. package/plugins/maestro/src/core/feature-blocks.js +34 -0
  347. package/plugins/maestro/src/core/logger.js +12 -0
  348. package/plugins/maestro/src/core/markdown-state.js +36 -0
  349. package/plugins/maestro/src/core/policy-rules.js +32 -0
  350. package/plugins/maestro/src/core/project-root-resolver.js +184 -0
  351. package/plugins/maestro/src/core/stdin-reader.js +77 -0
  352. package/plugins/maestro/src/core/version.js +50 -0
  353. package/plugins/maestro/src/entry-points/core-command-registry.js +37 -0
  354. package/plugins/maestro/src/entry-points/preamble-builders.js +54 -0
  355. package/plugins/maestro/src/entry-points/registry.js +199 -0
  356. package/plugins/maestro/src/entry-points/templates/claude-core-command.md.tmpl +38 -0
  357. package/plugins/maestro/src/entry-points/templates/claude-skill.md.tmpl +18 -0
  358. package/plugins/maestro/src/entry-points/templates/codex-core-command.md.tmpl +16 -0
  359. package/plugins/maestro/src/entry-points/templates/codex-skill.md.tmpl +11 -0
  360. package/plugins/maestro/src/entry-points/templates/gemini-command.toml.tmpl +17 -0
  361. package/plugins/maestro/src/entry-points/templates/gemini-core-command.toml.tmpl +30 -0
  362. package/plugins/maestro/src/generated/agent-registry.json +630 -0
  363. package/plugins/maestro/src/generated/hook-registry.json +18 -0
  364. package/plugins/maestro/src/generated/resource-registry.json +16 -0
  365. package/plugins/maestro/src/hooks/logic/after-agent-logic.js +54 -0
  366. package/plugins/maestro/src/hooks/logic/before-agent-logic.js +57 -0
  367. package/plugins/maestro/src/hooks/logic/hook-state.js +127 -0
  368. package/plugins/maestro/src/hooks/logic/session-end-logic.js +17 -0
  369. package/plugins/maestro/src/hooks/logic/session-start-logic.js +25 -0
  370. package/plugins/maestro/src/lib/discovery/index.js +172 -0
  371. package/plugins/maestro/src/lib/errors/index.js +104 -0
  372. package/plugins/maestro/src/lib/framework-detection.js +50 -0
  373. package/plugins/maestro/src/lib/frontmatter/index.js +262 -0
  374. package/plugins/maestro/src/lib/io/index.js +96 -0
  375. package/plugins/maestro/src/lib/naming/index.js +94 -0
  376. package/plugins/maestro/src/lib/validation/index.js +124 -0
  377. package/plugins/maestro/src/lib/yaml-emit.js +38 -0
  378. package/plugins/maestro/src/mcp/content/provider.js +68 -0
  379. package/plugins/maestro/src/mcp/content/runtime-content.js +188 -0
  380. package/plugins/maestro/src/mcp/contracts/cache-path-rejector.js +39 -0
  381. package/plugins/maestro/src/mcp/contracts/downstream-context.js +106 -0
  382. package/plugins/maestro/src/mcp/contracts/plan-schema.js +148 -0
  383. package/plugins/maestro/src/mcp/contracts/workspace-marker.js +61 -0
  384. package/plugins/maestro/src/mcp/core/create-server.js +76 -0
  385. package/plugins/maestro/src/mcp/core/line-reader.js +35 -0
  386. package/plugins/maestro/src/mcp/core/project-root-cache.js +120 -0
  387. package/plugins/maestro/src/mcp/core/protocol-dispatcher.js +274 -0
  388. package/plugins/maestro/src/mcp/core/recovery-hints.js +43 -0
  389. package/plugins/maestro/src/mcp/core/tool-outcome.js +77 -0
  390. package/plugins/maestro/src/mcp/core/tool-registry.js +82 -0
  391. package/plugins/maestro/src/mcp/handlers/assess-task-complexity.js +108 -0
  392. package/plugins/maestro/src/mcp/handlers/blocker-parser.js +34 -0
  393. package/plugins/maestro/src/mcp/handlers/design-gate.js +393 -0
  394. package/plugins/maestro/src/mcp/handlers/get-agent.js +54 -0
  395. package/plugins/maestro/src/mcp/handlers/get-runtime-context.js +49 -0
  396. package/plugins/maestro/src/mcp/handlers/get-skill-content.js +51 -0
  397. package/plugins/maestro/src/mcp/handlers/initialize-workspace.js +45 -0
  398. package/plugins/maestro/src/mcp/handlers/reconciliation.js +224 -0
  399. package/plugins/maestro/src/mcp/handlers/resolve-settings.js +39 -0
  400. package/plugins/maestro/src/mcp/handlers/session-state-core.js +108 -0
  401. package/plugins/maestro/src/mcp/handlers/session-state-tools.js +562 -0
  402. package/plugins/maestro/src/mcp/handlers/validate-plan.js +76 -0
  403. package/plugins/maestro/src/mcp/maestro-server.js +122 -0
  404. package/plugins/maestro/src/mcp/runtime/runtime-config-map.js +70 -0
  405. package/plugins/maestro/src/mcp/tool-packs/content/index.js +80 -0
  406. package/plugins/maestro/src/mcp/tool-packs/contracts.js +30 -0
  407. package/plugins/maestro/src/mcp/tool-packs/index.js +15 -0
  408. package/plugins/maestro/src/mcp/tool-packs/session/index.js +243 -0
  409. package/plugins/maestro/src/mcp/tool-packs/workspace/index.js +98 -0
  410. package/plugins/maestro/src/mcp/utils/extension-root.js +31 -0
  411. package/plugins/maestro/src/mcp/validation/agent-checker.js +81 -0
  412. package/plugins/maestro/src/mcp/validation/dag-checker.js +214 -0
  413. package/plugins/maestro/src/mcp/validation/file-overlap-checker.js +63 -0
  414. package/plugins/maestro/src/mcp/validation/schema-checker.js +108 -0
  415. package/plugins/maestro/src/platforms/codex/runtime-config.js +58 -0
  416. package/plugins/maestro/src/platforms/shared/adapters/conventions.js +29 -0
  417. package/plugins/maestro/src/platforms/shared/adapters/exit-codes.js +6 -0
  418. package/plugins/maestro/src/platforms/shared/adapters/factory.js +40 -0
  419. package/plugins/maestro/src/platforms/shared/agent-names.js +10 -0
  420. package/plugins/maestro/src/platforms/shared/hook-runner.js +52 -0
  421. package/plugins/maestro/src/references/architecture.md +139 -0
  422. package/plugins/maestro/src/references/orchestration-steps.md +193 -0
  423. package/plugins/maestro/src/skills/shared/code-review/SKILL.md +145 -0
  424. package/plugins/maestro/src/skills/shared/delegation/SKILL.md +370 -0
  425. package/plugins/maestro/src/skills/shared/delegation/protocols/agent-base-protocol.md +145 -0
  426. package/plugins/maestro/src/skills/shared/delegation/protocols/filesystem-safety-protocol.md +31 -0
  427. package/plugins/maestro/src/skills/shared/design-dialogue/SKILL.md +284 -0
  428. package/plugins/maestro/src/skills/shared/execution/SKILL.md +258 -0
  429. package/plugins/maestro/src/skills/shared/implementation-planning/SKILL.md +303 -0
  430. package/plugins/maestro/src/skills/shared/session-management/SKILL.md +314 -0
  431. package/plugins/maestro/src/skills/shared/validation/SKILL.md +204 -0
  432. package/plugins/maestro/src/state/session-state.js +113 -0
  433. package/plugins/maestro/src/templates/design-document.md +95 -0
  434. package/plugins/maestro/src/templates/implementation-plan.md +86 -0
  435. package/plugins/maestro/src/templates/session-state.md +68 -0
  436. package/plugins/maestro/src/version.json +3 -0
  437. package/policies/maestro.toml +44 -0
  438. package/qwen/agents/accessibility_specialist.md +18 -0
  439. package/qwen/agents/analytics_engineer.md +20 -0
  440. package/qwen/agents/api_designer.md +17 -0
  441. package/qwen/agents/architect.md +17 -0
  442. package/qwen/agents/cloud_architect.md +17 -0
  443. package/qwen/agents/cobol_engineer.md +20 -0
  444. package/qwen/agents/code_reviewer.md +15 -0
  445. package/qwen/agents/coder.md +20 -0
  446. package/qwen/agents/compliance_reviewer.md +17 -0
  447. package/qwen/agents/content_strategist.md +17 -0
  448. package/qwen/agents/copywriter.md +17 -0
  449. package/qwen/agents/data_engineer.md +20 -0
  450. package/qwen/agents/database_administrator.md +19 -0
  451. package/qwen/agents/db2_dba.md +19 -0
  452. package/qwen/agents/debugger.md +17 -0
  453. package/qwen/agents/design_system_engineer.md +20 -0
  454. package/qwen/agents/devops_engineer.md +21 -0
  455. package/qwen/agents/hlasm_assembler_specialist.md +20 -0
  456. package/qwen/agents/i18n_specialist.md +19 -0
  457. package/qwen/agents/ibm_i_specialist.md +20 -0
  458. package/qwen/agents/integration_engineer.md +21 -0
  459. package/qwen/agents/ml_engineer.md +21 -0
  460. package/qwen/agents/mlops_engineer.md +21 -0
  461. package/qwen/agents/mobile_engineer.md +21 -0
  462. package/qwen/agents/observability_engineer.md +21 -0
  463. package/qwen/agents/performance_engineer.md +19 -0
  464. package/qwen/agents/platform_engineer.md +22 -0
  465. package/qwen/agents/product_manager.md +18 -0
  466. package/qwen/agents/prompt_engineer.md +20 -0
  467. package/qwen/agents/refactor.md +20 -0
  468. package/qwen/agents/release_manager.md +20 -0
  469. package/qwen/agents/security_engineer.md +19 -0
  470. package/qwen/agents/seo_specialist.md +19 -0
  471. package/qwen/agents/site_reliability_engineer.md +19 -0
  472. package/qwen/agents/solutions_architect.md +17 -0
  473. package/qwen/agents/technical_writer.md +19 -0
  474. package/qwen/agents/tester.md +21 -0
  475. package/qwen/agents/ux_designer.md +18 -0
  476. package/qwen/agents/zos_sysprog.md +19 -0
  477. package/qwen/hooks.json +56 -0
  478. package/qwen-extension.json +55 -0
  479. package/scripts/check-layer-boundaries.js +74 -0
  480. package/scripts/generate.js +155 -0
  481. package/scripts/install-codex-plugin.js +167 -0
  482. package/scripts/install-git-hooks.js +43 -0
  483. package/scripts/npm-publish-idempotent.js +150 -0
  484. package/scripts/package-release-artifacts.js +156 -0
  485. package/scripts/release-artifact-manifest.js +378 -0
  486. package/scripts/release-version-metadata.js +129 -0
  487. package/scripts/update-versions.js +33 -0
  488. package/scripts/verify-npm-pack.js +85 -0
  489. package/scripts/verify-release-artifacts.js +95 -0
  490. package/src/agents/accessibility-specialist.md +163 -0
  491. package/src/agents/analytics-engineer.md +182 -0
  492. package/src/agents/api-designer.md +124 -0
  493. package/src/agents/architect.md +120 -0
  494. package/src/agents/cloud-architect.md +134 -0
  495. package/src/agents/cobol-engineer.md +127 -0
  496. package/src/agents/code-reviewer.md +123 -0
  497. package/src/agents/coder.md +132 -0
  498. package/src/agents/compliance-reviewer.md +219 -0
  499. package/src/agents/content-strategist.md +111 -0
  500. package/src/agents/copywriter.md +113 -0
  501. package/src/agents/data-engineer.md +130 -0
  502. package/src/agents/database-administrator.md +126 -0
  503. package/src/agents/db2-dba.md +124 -0
  504. package/src/agents/debugger.md +133 -0
  505. package/src/agents/design-system-engineer.md +258 -0
  506. package/src/agents/devops-engineer.md +138 -0
  507. package/src/agents/hlasm-assembler-specialist.md +134 -0
  508. package/src/agents/i18n-specialist.md +241 -0
  509. package/src/agents/ibm-i-specialist.md +132 -0
  510. package/src/agents/integration-engineer.md +133 -0
  511. package/src/agents/ml-engineer.md +115 -0
  512. package/src/agents/mlops-engineer.md +116 -0
  513. package/src/agents/mobile-engineer.md +115 -0
  514. package/src/agents/observability-engineer.md +133 -0
  515. package/src/agents/performance-engineer.md +139 -0
  516. package/src/agents/platform-engineer.md +129 -0
  517. package/src/agents/product-manager.md +170 -0
  518. package/src/agents/prompt-engineer.md +129 -0
  519. package/src/agents/refactor.md +138 -0
  520. package/src/agents/release-manager.md +132 -0
  521. package/src/agents/security-engineer.md +143 -0
  522. package/src/agents/seo-specialist.md +129 -0
  523. package/src/agents/site-reliability-engineer.md +131 -0
  524. package/src/agents/solutions-architect.md +137 -0
  525. package/src/agents/technical-writer.md +129 -0
  526. package/src/agents/tester.md +135 -0
  527. package/src/agents/ux-designer.md +168 -0
  528. package/src/agents/zos-sysprog.md +134 -0
  529. package/src/config/setting-resolver.js +32 -0
  530. package/src/core/agent-registry.js +67 -0
  531. package/src/core/canonical-source.js +39 -0
  532. package/src/core/env-file-parser.js +82 -0
  533. package/src/core/feature-blocks.js +34 -0
  534. package/src/core/logger.js +12 -0
  535. package/src/core/markdown-state.js +36 -0
  536. package/src/core/policy-rules.js +32 -0
  537. package/src/core/project-root-resolver.js +184 -0
  538. package/src/core/stdin-reader.js +77 -0
  539. package/src/core/version.js +50 -0
  540. package/src/entry-points/core-command-registry.js +37 -0
  541. package/src/entry-points/preamble-builders.js +54 -0
  542. package/src/entry-points/registry.js +199 -0
  543. package/src/entry-points/templates/claude-core-command.md.tmpl +38 -0
  544. package/src/entry-points/templates/claude-skill.md.tmpl +18 -0
  545. package/src/entry-points/templates/codex-core-command.md.tmpl +16 -0
  546. package/src/entry-points/templates/codex-skill.md.tmpl +11 -0
  547. package/src/entry-points/templates/gemini-command.toml.tmpl +17 -0
  548. package/src/entry-points/templates/gemini-core-command.toml.tmpl +30 -0
  549. package/src/generated/agent-registry.json +630 -0
  550. package/src/generated/hook-registry.json +18 -0
  551. package/src/generated/resource-registry.json +16 -0
  552. package/src/generator/entry-point-expander.js +182 -0
  553. package/src/generator/file-writer.js +167 -0
  554. package/src/generator/generation-session.js +62 -0
  555. package/src/generator/manifest-curator.js +31 -0
  556. package/src/generator/manifest-expander.js +256 -0
  557. package/src/generator/payload-builder.js +217 -0
  558. package/src/generator/registry-scanner.js +130 -0
  559. package/src/generator/stale-pruner.js +101 -0
  560. package/src/hooks/logic/after-agent-logic.js +54 -0
  561. package/src/hooks/logic/before-agent-logic.js +57 -0
  562. package/src/hooks/logic/hook-state.js +127 -0
  563. package/src/hooks/logic/session-end-logic.js +17 -0
  564. package/src/hooks/logic/session-start-logic.js +25 -0
  565. package/src/lib/discovery/index.js +172 -0
  566. package/src/lib/errors/index.js +104 -0
  567. package/src/lib/framework-detection.js +50 -0
  568. package/src/lib/frontmatter/index.js +262 -0
  569. package/src/lib/io/index.js +96 -0
  570. package/src/lib/naming/index.js +94 -0
  571. package/src/lib/validation/index.js +124 -0
  572. package/src/lib/yaml-emit.js +38 -0
  573. package/src/manifest.js +11 -0
  574. package/src/mcp/content/provider.js +68 -0
  575. package/src/mcp/content/runtime-content.js +188 -0
  576. package/src/mcp/contracts/cache-path-rejector.js +39 -0
  577. package/src/mcp/contracts/downstream-context.js +106 -0
  578. package/src/mcp/contracts/plan-schema.js +148 -0
  579. package/src/mcp/contracts/workspace-marker.js +61 -0
  580. package/src/mcp/core/create-server.js +76 -0
  581. package/src/mcp/core/line-reader.js +35 -0
  582. package/src/mcp/core/project-root-cache.js +120 -0
  583. package/src/mcp/core/protocol-dispatcher.js +274 -0
  584. package/src/mcp/core/recovery-hints.js +43 -0
  585. package/src/mcp/core/tool-outcome.js +77 -0
  586. package/src/mcp/core/tool-registry.js +82 -0
  587. package/src/mcp/handlers/assess-task-complexity.js +108 -0
  588. package/src/mcp/handlers/blocker-parser.js +34 -0
  589. package/src/mcp/handlers/design-gate.js +393 -0
  590. package/src/mcp/handlers/get-agent.js +54 -0
  591. package/src/mcp/handlers/get-runtime-context.js +49 -0
  592. package/src/mcp/handlers/get-skill-content.js +51 -0
  593. package/src/mcp/handlers/initialize-workspace.js +45 -0
  594. package/src/mcp/handlers/reconciliation.js +224 -0
  595. package/src/mcp/handlers/resolve-settings.js +39 -0
  596. package/src/mcp/handlers/session-state-core.js +108 -0
  597. package/src/mcp/handlers/session-state-tools.js +562 -0
  598. package/src/mcp/handlers/validate-plan.js +76 -0
  599. package/src/mcp/maestro-server.js +122 -0
  600. package/src/mcp/runtime/runtime-config-map.js +70 -0
  601. package/src/mcp/tool-packs/content/index.js +80 -0
  602. package/src/mcp/tool-packs/contracts.js +30 -0
  603. package/src/mcp/tool-packs/index.js +15 -0
  604. package/src/mcp/tool-packs/session/index.js +243 -0
  605. package/src/mcp/tool-packs/workspace/index.js +98 -0
  606. package/src/mcp/utils/extension-root.js +31 -0
  607. package/src/mcp/validation/agent-checker.js +81 -0
  608. package/src/mcp/validation/dag-checker.js +214 -0
  609. package/src/mcp/validation/file-overlap-checker.js +63 -0
  610. package/src/mcp/validation/schema-checker.js +108 -0
  611. package/src/platforms/claude/metadata.js +96 -0
  612. package/src/platforms/claude/runtime-config.js +60 -0
  613. package/src/platforms/codex/metadata.js +107 -0
  614. package/src/platforms/codex/runtime-config.js +58 -0
  615. package/src/platforms/gemini/metadata.js +27 -0
  616. package/src/platforms/gemini/runtime-config.js +62 -0
  617. package/src/platforms/metadata-shared.js +131 -0
  618. package/src/platforms/metadata.js +29 -0
  619. package/src/platforms/qwen/metadata.js +27 -0
  620. package/src/platforms/qwen/runtime-config.js +62 -0
  621. package/src/platforms/shared/adapters/claude-adapter.js +36 -0
  622. package/src/platforms/shared/adapters/conventions.js +29 -0
  623. package/src/platforms/shared/adapters/exit-codes.js +6 -0
  624. package/src/platforms/shared/adapters/factory.js +40 -0
  625. package/src/platforms/shared/adapters/gemini-adapter.js +34 -0
  626. package/src/platforms/shared/adapters/qwen-adapter.js +93 -0
  627. package/src/platforms/shared/agent-names.js +10 -0
  628. package/src/platforms/shared/hook-runner.js +52 -0
  629. package/src/references/architecture.md +139 -0
  630. package/src/references/orchestration-steps.md +193 -0
  631. package/src/scripts/ensure-workspace.js +14 -0
  632. package/src/scripts/read-active-session.js +26 -0
  633. package/src/scripts/read-setting.js +18 -0
  634. package/src/scripts/read-state.js +17 -0
  635. package/src/scripts/write-state.js +22 -0
  636. package/src/skills/shared/code-review/SKILL.md +145 -0
  637. package/src/skills/shared/delegation/SKILL.md +370 -0
  638. package/src/skills/shared/delegation/protocols/agent-base-protocol.md +145 -0
  639. package/src/skills/shared/delegation/protocols/filesystem-safety-protocol.md +31 -0
  640. package/src/skills/shared/design-dialogue/SKILL.md +284 -0
  641. package/src/skills/shared/execution/SKILL.md +258 -0
  642. package/src/skills/shared/implementation-planning/SKILL.md +303 -0
  643. package/src/skills/shared/session-management/SKILL.md +314 -0
  644. package/src/skills/shared/validation/SKILL.md +204 -0
  645. package/src/state/session-state.js +113 -0
  646. package/src/templates/design-document.md +95 -0
  647. package/src/templates/implementation-plan.md +86 -0
  648. package/src/templates/session-state.md +68 -0
  649. package/src/transforms/agent-stub.js +29 -0
  650. package/src/transforms/extract-examples.js +63 -0
  651. package/src/transforms/index.js +35 -0
  652. package/src/transforms/parse-frontmatter.js +23 -0
  653. package/src/transforms/rebuild-frontmatter.js +147 -0
  654. package/src/transforms/skill-discovery-stub.js +27 -0
  655. package/src/transforms/skill-metadata.js +14 -0
@@ -0,0 +1,107 @@
1
+ 'use strict';
2
+
3
+ const {
4
+ buildAuthor,
5
+ renderJson,
6
+ } = require('../metadata-shared');
7
+
8
+ function buildCodexMarketplace() {
9
+ return {
10
+ name: 'maestro-orchestrator',
11
+ interface: {
12
+ displayName: 'Maestro Orchestrator',
13
+ },
14
+ plugins: [
15
+ {
16
+ name: 'maestro',
17
+ source: {
18
+ source: 'local',
19
+ path: './plugins/maestro',
20
+ },
21
+ policy: {
22
+ installation: 'AVAILABLE',
23
+ authentication: 'ON_INSTALL',
24
+ },
25
+ category: 'Coding',
26
+ },
27
+ ],
28
+ };
29
+ }
30
+
31
+ function buildCodexPluginManifest(context) {
32
+ return {
33
+ name: 'maestro',
34
+ version: context.version,
35
+ description: "Generated Codex runtime for Maestro's multi-agent design, planning, execution, and review workflows.",
36
+ author: buildAuthor(context),
37
+ homepage: context.homepage,
38
+ repository: context.repository,
39
+ license: context.license,
40
+ keywords: [
41
+ 'orchestration',
42
+ 'multi-agent',
43
+ 'planning',
44
+ 'execution',
45
+ 'coding',
46
+ ],
47
+ skills: './skills/',
48
+ mcpServers: './.mcp.json',
49
+ apps: './.app.json',
50
+ interface: {
51
+ displayName: 'Maestro',
52
+ shortDescription: 'Multi-agent coding orchestration for Codex',
53
+ longDescription: 'Generated Codex runtime for Maestro. Shared methodology, templates, references, and agent personas stay aligned with the Gemini CLI and Claude Code runtimes while Codex-specific delegation and state handling stay isolated to this plugin.',
54
+ developerName: context.author.name,
55
+ category: 'Coding',
56
+ capabilities: [
57
+ 'Interactive',
58
+ 'Write',
59
+ ],
60
+ websiteURL: context.homepage,
61
+ defaultPrompt: [
62
+ 'Use Maestro to orchestrate a feature from design through implementation and review.',
63
+ 'Use Maestro to review my changes and block on critical or major findings.',
64
+ 'Use Maestro to debug a failing workflow and route investigation to the right specialist.',
65
+ ],
66
+ brandColor: '#2563EB',
67
+ },
68
+ };
69
+ }
70
+
71
+ function buildCodexMcpConfig(context) {
72
+ return {
73
+ mcpServers: {
74
+ maestro: {
75
+ command: 'npx',
76
+ args: ['-y', '-p', `${context.packageName}@${context.version}`, 'maestro-mcp-server'],
77
+ env: {
78
+ MAESTRO_RUNTIME: 'codex',
79
+ },
80
+ },
81
+ },
82
+ };
83
+ }
84
+
85
+ function buildMetadataOutputs(context) {
86
+ return [
87
+ {
88
+ outputPath: '.agents/plugins/marketplace.json',
89
+ content: renderJson(buildCodexMarketplace(context)),
90
+ },
91
+ {
92
+ outputPath: 'plugins/maestro/.codex-plugin/plugin.json',
93
+ content: renderJson(buildCodexPluginManifest(context)),
94
+ },
95
+ {
96
+ outputPath: 'plugins/maestro/.mcp.json',
97
+ content: renderJson(buildCodexMcpConfig(context)),
98
+ },
99
+ ];
100
+ }
101
+
102
+ module.exports = {
103
+ buildCodexMarketplace,
104
+ buildCodexMcpConfig,
105
+ buildCodexPluginManifest,
106
+ buildMetadataOutputs,
107
+ };
@@ -0,0 +1,58 @@
1
+ module.exports = {
2
+ name: 'codex',
3
+ outputDir: 'plugins/maestro/',
4
+
5
+ agentNaming: 'kebab-case',
6
+
7
+ env: {
8
+ extensionPath: '.',
9
+ workspacePath: 'MAESTRO_WORKSPACE_PATH',
10
+ },
11
+
12
+ relativeExtensionPath: true,
13
+
14
+ content: {
15
+ primary: 'filesystem',
16
+ fallback: 'none',
17
+ },
18
+
19
+ tools: {
20
+ read_file: 'direct file reads',
21
+ list_directory: 'exec_command (`rg --files` or `ls`)',
22
+ glob: 'exec_command (`rg --files` or `find`)',
23
+ grep_search: 'exec_command (`rg`)',
24
+ google_web_search: 'web search',
25
+ web_fetch: 'web fetch',
26
+ write_file: 'apply_patch',
27
+ replace: 'apply_patch',
28
+ run_shell_command: 'exec_command',
29
+ ask_user: 'request_user_input',
30
+ read_many_files: 'direct file reads',
31
+ write_todos: 'update_plan',
32
+ activate_skill: 'open the referenced skill and follow it',
33
+ enter_plan_mode: 'update_plan',
34
+ exit_plan_mode: 'request_user_input approval',
35
+ codebase_investigator: 'local inspection or spawn_agent',
36
+ },
37
+
38
+ delegation: {
39
+ pattern: 'spawn_agent(...)',
40
+ constraints: {
41
+ fork_full_context_incompatible_with: ['agent_type', 'model', 'reasoning_effort'],
42
+ result_surface: 'deferred',
43
+ child_cannot_prompt_user: true,
44
+ },
45
+ },
46
+
47
+ features: {
48
+ exampleBlocks: false,
49
+ claudeStateContract: false,
50
+ scriptBasedStateContract: false,
51
+ codexStateContract: true,
52
+ },
53
+
54
+ paths: {
55
+ skills: './skills/',
56
+ hooks: './scripts/',
57
+ },
58
+ };
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ const {
4
+ buildExtensionManifest,
5
+ renderJson,
6
+ } = require('../metadata-shared');
7
+
8
+ function buildGeminiExtensionManifest(context) {
9
+ return buildExtensionManifest(context, {
10
+ contextFileName: 'GEMINI.md',
11
+ runtime: 'gemini',
12
+ });
13
+ }
14
+
15
+ function buildMetadataOutputs(context) {
16
+ return [
17
+ {
18
+ outputPath: 'gemini-extension.json',
19
+ content: renderJson(buildGeminiExtensionManifest(context)),
20
+ },
21
+ ];
22
+ }
23
+
24
+ module.exports = {
25
+ buildGeminiExtensionManifest,
26
+ buildMetadataOutputs,
27
+ };
@@ -0,0 +1,62 @@
1
+ module.exports = {
2
+ name: 'gemini',
3
+ outputDir: './',
4
+
5
+ agentNaming: 'snake_case',
6
+
7
+ env: {
8
+ extensionPath: 'extensionPath',
9
+ workspacePath: null,
10
+ },
11
+
12
+ content: {
13
+ primary: 'filesystem',
14
+ fallback: 'none',
15
+ },
16
+
17
+ tools: {
18
+ read_file: 'read_file',
19
+ list_directory: 'list_directory',
20
+ glob: 'glob',
21
+ grep_search: 'grep_search',
22
+ google_web_search: 'google_web_search',
23
+ web_fetch: 'web_fetch',
24
+ write_file: 'write_file',
25
+ replace: 'replace',
26
+ run_shell_command: 'run_shell_command',
27
+ ask_user: 'ask_user',
28
+ read_many_files: 'read_file (called per-file)',
29
+ write_todos: 'not available — track progress in model context',
30
+ activate_skill: 'activate_skill',
31
+ enter_plan_mode: 'enter_plan_mode',
32
+ exit_plan_mode: 'exit_plan_mode',
33
+ codebase_investigator: 'codebase_investigator',
34
+ },
35
+
36
+ agentFrontmatter: {
37
+ kind: 'local',
38
+ turnsField: 'max_turns',
39
+ hasTemperature: true,
40
+ hasTimeout: true,
41
+ },
42
+
43
+ delegation: {
44
+ pattern: '{{agent}}(query: "...")',
45
+ constraints: {
46
+ result_surface: 'synchronous',
47
+ child_cannot_prompt_user: false,
48
+ },
49
+ },
50
+
51
+ features: {
52
+ exampleBlocks: false,
53
+ claudeStateContract: false,
54
+ scriptBasedStateContract: true,
55
+ codexStateContract: false,
56
+ },
57
+
58
+ paths: {
59
+ skills: '${extensionPath}/skills/',
60
+ hooks: '${extensionPath}/hooks/',
61
+ },
62
+ };
@@ -0,0 +1,131 @@
1
+ 'use strict';
2
+
3
+ const RUNTIME_DESCRIPTION = 'Multi-agent development orchestration platform — 39 specialists, 4-phase orchestration, native parallel subagents, persistent sessions, and standalone review/debug/security/perf/seo/a11y/compliance commands';
4
+
5
+ function renderJson(value) {
6
+ return `${JSON.stringify(value, null, 2)}\n`;
7
+ }
8
+
9
+ function normalizeRepositoryUrl(repository) {
10
+ if (!repository) {
11
+ return null;
12
+ }
13
+
14
+ const url = typeof repository === 'string' ? repository : repository.url;
15
+ if (typeof url !== 'string' || url.length === 0) {
16
+ return null;
17
+ }
18
+
19
+ return url.replace(/\.git$/, '');
20
+ }
21
+
22
+ function requirePackageField(pkg, field) {
23
+ if (!pkg || typeof pkg[field] !== 'string' || pkg[field].length === 0) {
24
+ throw new Error(`package.json missing ${field}`);
25
+ }
26
+
27
+ return pkg[field];
28
+ }
29
+
30
+ function buildMetadataContext(pkg) {
31
+ const repository = normalizeRepositoryUrl(pkg.repository);
32
+
33
+ if (!repository) {
34
+ throw new Error('package.json missing repository URL');
35
+ }
36
+
37
+ return {
38
+ packageName: requirePackageField(pkg, 'name'),
39
+ version: requirePackageField(pkg, 'version'),
40
+ author: pkg.author || {},
41
+ homepage: requirePackageField(pkg, 'homepage'),
42
+ repository,
43
+ license: requirePackageField(pkg, 'license'),
44
+ };
45
+ }
46
+
47
+ function buildSettings() {
48
+ return [
49
+ {
50
+ name: 'Disabled Agents',
51
+ description: 'Comma-separated list of agent names to exclude from implementation planning.',
52
+ envVar: 'MAESTRO_DISABLED_AGENTS',
53
+ },
54
+ {
55
+ name: 'Max Retries',
56
+ description: 'Maximum retry attempts per phase before escalating to user.',
57
+ envVar: 'MAESTRO_MAX_RETRIES',
58
+ },
59
+ {
60
+ name: 'Auto Archive',
61
+ description: 'Automatically archive session state on successful completion (true/false).',
62
+ envVar: 'MAESTRO_AUTO_ARCHIVE',
63
+ },
64
+ {
65
+ name: 'Validation',
66
+ description: 'Post-phase validation strictness level (strict/normal/lenient).',
67
+ envVar: 'MAESTRO_VALIDATION_STRICTNESS',
68
+ },
69
+ {
70
+ name: 'State Directory',
71
+ description: 'Base directory for session state and plans (default: docs/maestro).',
72
+ envVar: 'MAESTRO_STATE_DIR',
73
+ },
74
+ {
75
+ name: 'Max Concurrent',
76
+ description: 'Maximum subagents emitted in one native parallel batch turn (0 = dispatch the entire ready batch).',
77
+ envVar: 'MAESTRO_MAX_CONCURRENT',
78
+ },
79
+ {
80
+ name: 'Execution Mode',
81
+ description: "Phase 3 execution mode: 'parallel' (native concurrent subagents), 'sequential' (one at a time), or 'ask' (prompt each time). Default: ask.",
82
+ envVar: 'MAESTRO_EXECUTION_MODE',
83
+ },
84
+ ];
85
+ }
86
+
87
+ function buildExtensionMcpServer(runtime) {
88
+ const env = {};
89
+
90
+ if (runtime === 'qwen' || runtime === 'gemini') {
91
+ env.MAESTRO_WORKSPACE_PATH = '${workspacePath}';
92
+ }
93
+
94
+ return {
95
+ command: 'node',
96
+ args: ['${extensionPath}/mcp/maestro-server.js'],
97
+ cwd: '${extensionPath}',
98
+ env,
99
+ };
100
+ }
101
+
102
+ function buildExtensionManifest(context, options) {
103
+ return {
104
+ name: 'maestro',
105
+ version: context.version,
106
+ description: RUNTIME_DESCRIPTION,
107
+ contextFileName: options.contextFileName,
108
+ settings: buildSettings(),
109
+ mcpServers: {
110
+ maestro: buildExtensionMcpServer(options.runtime),
111
+ },
112
+ };
113
+ }
114
+
115
+ function buildAuthor(context) {
116
+ return {
117
+ name: context.author.name,
118
+ email: context.author.email,
119
+ url: context.author.url,
120
+ };
121
+ }
122
+
123
+ module.exports = {
124
+ RUNTIME_DESCRIPTION,
125
+ buildAuthor,
126
+ buildExtensionManifest,
127
+ buildMetadataContext,
128
+ buildSettings,
129
+ normalizeRepositoryUrl,
130
+ renderJson,
131
+ };
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ const path = require('node:path');
4
+ const { buildMetadataContext } = require('./metadata-shared');
5
+
6
+ function loadMetadataBuilder(runtimeName) {
7
+ return require(path.join(__dirname, runtimeName, 'metadata.js'));
8
+ }
9
+
10
+ function buildPlatformMetadataOutputs(runtimes, pkg) {
11
+ const context = buildMetadataContext(pkg);
12
+ const outputs = [];
13
+
14
+ for (const runtimeName of Object.keys(runtimes).sort()) {
15
+ const metadata = loadMetadataBuilder(runtimeName);
16
+ if (typeof metadata.buildMetadataOutputs !== 'function') {
17
+ continue;
18
+ }
19
+
20
+ outputs.push(...metadata.buildMetadataOutputs(context));
21
+ }
22
+
23
+ return outputs;
24
+ }
25
+
26
+ module.exports = {
27
+ buildPlatformMetadataOutputs,
28
+ loadMetadataBuilder,
29
+ };
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ const {
4
+ buildExtensionManifest,
5
+ renderJson,
6
+ } = require('../metadata-shared');
7
+
8
+ function buildQwenExtensionManifest(context) {
9
+ return buildExtensionManifest(context, {
10
+ contextFileName: 'QWEN.md',
11
+ runtime: 'qwen',
12
+ });
13
+ }
14
+
15
+ function buildMetadataOutputs(context) {
16
+ return [
17
+ {
18
+ outputPath: 'qwen-extension.json',
19
+ content: renderJson(buildQwenExtensionManifest(context)),
20
+ },
21
+ ];
22
+ }
23
+
24
+ module.exports = {
25
+ buildMetadataOutputs,
26
+ buildQwenExtensionManifest,
27
+ };
@@ -0,0 +1,62 @@
1
+ module.exports = {
2
+ name: 'qwen',
3
+ outputDir: 'qwen/',
4
+
5
+ agentNaming: 'snake_case',
6
+
7
+ env: {
8
+ extensionPath: 'extensionPath',
9
+ workspacePath: 'workspacePath',
10
+ },
11
+
12
+ content: {
13
+ primary: 'filesystem',
14
+ fallback: 'none',
15
+ },
16
+
17
+ tools: {
18
+ read_file: 'read_file',
19
+ list_directory: 'list_directory',
20
+ glob: 'glob',
21
+ grep_search: 'grep_search',
22
+ google_web_search: 'web_search',
23
+ web_fetch: 'web_fetch',
24
+ write_file: 'write_file',
25
+ replace: 'edit',
26
+ run_shell_command: 'run_shell_command',
27
+ ask_user: 'ask_user_question',
28
+ read_many_files: 'read_many_files',
29
+ write_todos: 'todo_write',
30
+ activate_skill: 'skill',
31
+ enter_plan_mode: 'enter_plan_mode',
32
+ exit_plan_mode: 'exit_plan_mode',
33
+ codebase_investigator: 'codebase_investigator',
34
+ },
35
+
36
+ agentFrontmatter: {
37
+ kind: 'local',
38
+ turnsField: 'max_turns',
39
+ hasTemperature: true,
40
+ hasTimeout: true,
41
+ },
42
+
43
+ delegation: {
44
+ pattern: '{{agent}}(query: "...")',
45
+ constraints: {
46
+ result_surface: 'synchronous',
47
+ child_cannot_prompt_user: false,
48
+ },
49
+ },
50
+
51
+ features: {
52
+ exampleBlocks: false,
53
+ claudeStateContract: false,
54
+ scriptBasedStateContract: true,
55
+ codexStateContract: false,
56
+ },
57
+
58
+ paths: {
59
+ skills: '${extensionPath}/skills/',
60
+ hooks: '${extensionPath}/hooks/',
61
+ },
62
+ };
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ const { defineAdapter } = require('./factory');
4
+
5
+ /**
6
+ * Claude Code hook I/O adapter.
7
+ * Normalizes Claude Code stdin JSON to the internal context contract
8
+ * and formats internal responses for Claude Code stdout.
9
+ */
10
+
11
+ function normalizeInput(raw) {
12
+ return {
13
+ sessionId: raw.session_id || '',
14
+ cwd: raw.cwd || '',
15
+ event: raw.hook_event_name || '',
16
+ agentName: raw.tool_input?.subagent_type || null,
17
+ agentInput: raw.tool_input?.prompt || null,
18
+ agentResult: raw.tool_result || null,
19
+ stopHookActive: false,
20
+ };
21
+ }
22
+
23
+ function formatOutput(result) {
24
+ return {
25
+ continue: result.action !== 'deny',
26
+ systemMessage: result.message || result.reason || undefined,
27
+ decision: result.action === 'deny' ? 'block' : 'approve',
28
+ reason: result.reason || undefined,
29
+ };
30
+ }
31
+
32
+ function errorFallback() {
33
+ return { continue: false, decision: 'block' };
34
+ }
35
+
36
+ module.exports = defineAdapter({ normalizeInput, formatOutput, errorFallback });
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ /** @type {string} */
4
+ const ADAPTER_SUFFIX = '-adapter.js';
5
+
6
+ /**
7
+ * Determine whether a filename follows the adapter naming convention.
8
+ * Accepts bare filenames only — paths with directory separators return false.
9
+ * @param {string} filename - Base filename (no directory components)
10
+ * @returns {boolean} True when filename matches the {runtime}-adapter.js pattern
11
+ */
12
+ function isAdapterFile(filename) {
13
+ return filename.endsWith(ADAPTER_SUFFIX) && !filename.includes('/');
14
+ }
15
+
16
+ /**
17
+ * Extract the runtime name from an adapter filename.
18
+ * @param {string} filename - Base filename matching the adapter convention
19
+ * @returns {string|null} Runtime name (e.g. 'claude'), or null if filename
20
+ * does not match the adapter convention
21
+ */
22
+ function extractRuntime(filename) {
23
+ if (!isAdapterFile(filename)) {
24
+ return null;
25
+ }
26
+ return filename.slice(0, -ADAPTER_SUFFIX.length);
27
+ }
28
+
29
+ module.exports = { ADAPTER_SUFFIX, isAdapterFile, extractRuntime };
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const EXIT_SUCCESS = 0;
4
+ const EXIT_BLOCK = 2;
5
+
6
+ module.exports = { EXIT_SUCCESS, EXIT_BLOCK };
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ const { readBoundedJson } = require('../../../core/stdin-reader');
4
+ const { EXIT_SUCCESS } = require('./exit-codes');
5
+
6
+ /**
7
+ * Adapter contract expected by `hook-runner.js`:
8
+ * normalizeInput(raw) -> ctx (runtime stdin -> internal context)
9
+ * formatOutput(result) -> object (internal result -> runtime stdout)
10
+ * errorFallback() -> object (emitted on uncaught adapter errors)
11
+ * readBoundedStdin() -> Promise (parse stdin as JSON, bounded size)
12
+ * getExitCode(result) -> number (process exit code; defaults to 0)
13
+ *
14
+ * `defineAdapter` is a spec-assembler: it validates a caller-provided
15
+ * spec and fills in shared defaults (stdin reader, success-exit fallback)
16
+ * so each runtime adapter only declares its protocol-specific
17
+ * normalize/format/fallback/exit logic. Registry dispatch by runtime
18
+ * name is done separately by `hook-runner.js`.
19
+ */
20
+ function defineAdapter(spec) {
21
+ if (!spec || typeof spec.normalizeInput !== 'function') {
22
+ throw new TypeError('Adapter spec must provide normalizeInput(raw)');
23
+ }
24
+ if (typeof spec.formatOutput !== 'function') {
25
+ throw new TypeError('Adapter spec must provide formatOutput(result)');
26
+ }
27
+ if (typeof spec.errorFallback !== 'function') {
28
+ throw new TypeError('Adapter spec must provide errorFallback()');
29
+ }
30
+
31
+ return {
32
+ normalizeInput: spec.normalizeInput,
33
+ formatOutput: spec.formatOutput,
34
+ errorFallback: spec.errorFallback,
35
+ readBoundedStdin: spec.readBoundedStdin || readBoundedJson,
36
+ getExitCode: spec.getExitCode || (() => EXIT_SUCCESS),
37
+ };
38
+ }
39
+
40
+ module.exports = { defineAdapter };
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ const { defineAdapter } = require('./factory');
4
+
5
+ /**
6
+ * Gemini hook I/O adapter.
7
+ * Normalizes Gemini stdin JSON to the internal context contract
8
+ * and formats internal responses for Gemini stdout.
9
+ */
10
+
11
+ function normalizeInput(raw) {
12
+ return {
13
+ sessionId: raw.session_id || '',
14
+ cwd: raw.cwd || '',
15
+ event: raw.hook_event_name || '',
16
+ agentName: null,
17
+ agentInput: raw.prompt || '',
18
+ agentResult: raw.prompt_response || '',
19
+ stopHookActive: raw.stop_hook_active === true || raw.stop_hook_active === 'true',
20
+ };
21
+ }
22
+
23
+ function formatOutput(result) {
24
+ return {
25
+ continue: result.action !== 'deny',
26
+ systemMessage: result.message || result.reason || undefined,
27
+ };
28
+ }
29
+
30
+ function errorFallback() {
31
+ return { continue: false };
32
+ }
33
+
34
+ module.exports = defineAdapter({ normalizeInput, formatOutput, errorFallback });