@raishin/vanguard-frontier-agentic 1.8.0 → 2.0.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 (939) hide show
  1. package/.claude-plugin/plugin.json +4 -1
  2. package/.cursor-plugin/plugin.json +4 -1
  3. package/.github/plugin/marketplace.json +1 -1
  4. package/README.md +6 -0
  5. package/agents/finops/AGENTS.md +19 -9
  6. package/agents/finops/README.md +75 -5
  7. package/agents/finops/finops-ai-economist-agent/AGENT.md +71 -0
  8. package/agents/finops/finops-ai-economist-agent/PERMISSIONS.md +138 -0
  9. package/agents/finops/finops-ai-economist-agent/README.md +27 -0
  10. package/agents/finops/finops-ai-economist-agent/harnesses/claude-code.agent.md +50 -0
  11. package/agents/finops/finops-ai-economist-agent/harnesses/codex.toml +40 -0
  12. package/agents/finops/finops-ai-economist-agent/harnesses/copilot.agent.md +58 -0
  13. package/agents/finops/finops-ai-economist-agent/harnesses/cursor.agent.md +50 -0
  14. package/agents/finops/finops-ai-economist-agent/harnesses/gemini.agent.md +50 -0
  15. package/agents/finops/finops-ai-economist-agent/harnesses/kiro-cli.agent.json +1 -0
  16. package/agents/finops/finops-ai-economist-agent/harnesses/kiro-ide.agent.md +50 -0
  17. package/agents/finops/finops-ai-economist-agent/metadata.json +45 -0
  18. package/agents/finops/finops-cloud-price-advisor-agent/AGENT.md +4 -3
  19. package/agents/finops/finops-cloud-price-advisor-agent/PERMISSIONS.md +46 -0
  20. package/agents/finops/finops-cloud-price-advisor-agent/harnesses/claude-code.agent.md +2 -2
  21. package/agents/finops/finops-cloud-price-advisor-agent/harnesses/codex.toml +3 -3
  22. package/agents/finops/finops-cloud-price-advisor-agent/harnesses/copilot.agent.md +2 -2
  23. package/agents/finops/finops-cloud-price-advisor-agent/harnesses/cursor.agent.md +2 -2
  24. package/agents/finops/finops-cloud-price-advisor-agent/harnesses/gemini.agent.md +2 -2
  25. package/agents/finops/finops-cloud-price-advisor-agent/harnesses/kiro-cli.agent.json +1 -1
  26. package/agents/finops/finops-cloud-price-advisor-agent/harnesses/kiro-ide.agent.md +2 -2
  27. package/agents/finops/finops-cloud-price-advisor-agent/metadata.json +14 -5
  28. package/agents/finops/finops-kubernetes-rightsizer-agent/AGENT.md +102 -0
  29. package/agents/finops/finops-kubernetes-rightsizer-agent/PERMISSIONS.md +143 -0
  30. package/agents/finops/finops-kubernetes-rightsizer-agent/README.md +37 -0
  31. package/agents/finops/finops-kubernetes-rightsizer-agent/harnesses/claude-code.agent.md +46 -0
  32. package/agents/finops/finops-kubernetes-rightsizer-agent/harnesses/codex.toml +47 -0
  33. package/agents/finops/finops-kubernetes-rightsizer-agent/harnesses/copilot.agent.md +54 -0
  34. package/agents/finops/finops-kubernetes-rightsizer-agent/harnesses/cursor.agent.md +46 -0
  35. package/agents/finops/finops-kubernetes-rightsizer-agent/harnesses/gemini.agent.md +46 -0
  36. package/agents/finops/finops-kubernetes-rightsizer-agent/harnesses/kiro-cli.agent.json +1 -0
  37. package/agents/finops/finops-kubernetes-rightsizer-agent/harnesses/kiro-ide.agent.md +46 -0
  38. package/agents/finops/finops-kubernetes-rightsizer-agent/metadata.json +46 -0
  39. package/agents/finops/finops-maestro-agent/AGENT.md +61 -0
  40. package/agents/finops/finops-maestro-agent/PERMISSIONS.md +64 -0
  41. package/agents/finops/finops-maestro-agent/README.md +52 -0
  42. package/agents/finops/finops-maestro-agent/harnesses/claude-code.agent.md +42 -0
  43. package/agents/finops/finops-maestro-agent/harnesses/codex.toml +34 -0
  44. package/agents/finops/finops-maestro-agent/harnesses/copilot.agent.md +49 -0
  45. package/agents/finops/finops-maestro-agent/harnesses/cursor.agent.md +42 -0
  46. package/agents/finops/finops-maestro-agent/harnesses/gemini.agent.md +42 -0
  47. package/agents/finops/finops-maestro-agent/harnesses/kiro-cli.agent.json +1 -0
  48. package/agents/finops/finops-maestro-agent/harnesses/kiro-ide.agent.md +42 -0
  49. package/agents/finops/finops-maestro-agent/metadata.json +38 -0
  50. package/catalog/agents.json +294 -198
  51. package/catalog/asset-integrity.json +490 -65
  52. package/catalog/install-roles.json +10 -0
  53. package/catalog/skill-manifest.json +210 -13
  54. package/catalog/skills.json +373 -205
  55. package/package.json +7 -5
  56. package/plugins/vanguard-frontier-agentic/.codex-plugin/plugin.json +1 -1
  57. package/powers/vanguard-kubernetes/POWER.md +1 -1
  58. package/scripts/export-marketplace-agents.mjs +146 -84
  59. package/scripts/generate-changelog-counts.mjs +34 -0
  60. package/scripts/release-prepare.mjs +97 -5
  61. package/skills/finops/README.md +60 -9
  62. package/skills/finops/carbon-cost-pair/README.md +25 -0
  63. package/skills/finops/carbon-cost-pair/SKILL.md +96 -0
  64. package/skills/finops/carbon-cost-pair/metadata.json +27 -0
  65. package/skills/finops/carbon-cost-pair/references/methodology.md +78 -0
  66. package/skills/finops/carbon-cost-pair/references/sources.md +103 -0
  67. package/skills/finops/fetch-foundation-model-pricing/README.md +25 -0
  68. package/skills/finops/fetch-foundation-model-pricing/SKILL.md +85 -0
  69. package/skills/finops/fetch-foundation-model-pricing/metadata.json +30 -0
  70. package/skills/finops/fetch-foundation-model-pricing/references/providers.md +88 -0
  71. package/skills/finops/fetch-foundation-model-pricing/references/token-economics.md +94 -0
  72. package/skills/finops/finops-cloud-price-advisor/SKILL.md +25 -16
  73. package/skills/finops/finops-cloud-price-advisor/metadata.json +11 -5
  74. package/skills/finops/finops-cloud-price-advisor/references/currency-handling.md +73 -0
  75. package/skills/finops/finops-cloud-price-advisor/references/estimation-workflow.md +106 -7
  76. package/skills/finops/finops-cloud-price-advisor/references/official-sources.md +71 -0
  77. package/skills/finops/finops-cloud-price-advisor/references/pricing-apis.md +299 -10
  78. package/skills/finops/finops-cloud-price-advisor/references/provider-fallbacks.md +400 -0
  79. package/skills/finops/finops-maestro/README.md +27 -0
  80. package/skills/finops/finops-maestro/SKILL.md +49 -0
  81. package/skills/finops/finops-maestro/metadata.json +26 -0
  82. package/skills/finops/finops-maestro/references/safety-checklist.md +67 -0
  83. package/skills/finops/finops-maestro/references/workflow-and-output.md +107 -0
  84. package/skills/finops/focus-spec-normalizer/README.md +25 -0
  85. package/skills/finops/focus-spec-normalizer/SKILL.md +113 -0
  86. package/skills/finops/focus-spec-normalizer/metadata.json +26 -0
  87. package/skills/finops/focus-spec-normalizer/references/focus-columns.md +69 -0
  88. package/skills/finops/focus-spec-normalizer/references/vendor-mapping.md +229 -0
  89. package/skills/finops/kubernetes-allocation-report/README.md +23 -0
  90. package/skills/finops/kubernetes-allocation-report/SKILL.md +95 -0
  91. package/skills/finops/kubernetes-allocation-report/metadata.json +26 -0
  92. package/skills/finops/kubernetes-allocation-report/references/attribution-workflow.md +90 -0
  93. package/skills/finops/kubernetes-allocation-report/references/opencost-mapping.md +70 -0
  94. package/skills/finops/rightsize-recommendation/README.md +23 -0
  95. package/skills/finops/rightsize-recommendation/SKILL.md +139 -0
  96. package/skills/finops/rightsize-recommendation/metadata.json +27 -0
  97. package/skills/finops/rightsize-recommendation/references/karpenter-consolidation.md +79 -0
  98. package/skills/finops/rightsize-recommendation/references/metric-sources.md +124 -0
  99. package/tests/AGENTS.md +17 -0
  100. package/tests/_generate_maestro_routing_fixtures.py +372 -0
  101. package/tests/export-cursor-kiro-skill-notice.test.mjs +92 -0
  102. package/tests/fixtures/README.md +53 -0
  103. package/tests/fixtures/alibaba-maestro-routing/expected/001-happy-ack-container-platform-operator.json +6 -0
  104. package/tests/fixtures/alibaba-maestro-routing/expected/002-happy-actiontrail-audit-analyst.json +6 -0
  105. package/tests/fixtures/alibaba-maestro-routing/expected/003-happy-analyticdb-realtime.json +6 -0
  106. package/tests/fixtures/alibaba-maestro-routing/expected/004-happy-certificate-manager-issuer-review.json +6 -0
  107. package/tests/fixtures/alibaba-maestro-routing/expected/005-happy-change-impact-advisor.json +6 -0
  108. package/tests/fixtures/alibaba-maestro-routing/expected/006-happy-china-compliance.json +6 -0
  109. package/tests/fixtures/alibaba-maestro-routing/expected/007-happy-cost-anomaly-watch-coordinator.json +6 -0
  110. package/tests/fixtures/alibaba-maestro-routing/expected/008-happy-cost-finops-analyst.json +6 -0
  111. package/tests/fixtures/alibaba-maestro-routing/expected/009-happy-daily-operations-briefing-coordinator.json +6 -0
  112. package/tests/fixtures/alibaba-maestro-routing/expected/010-happy-devops-cicd-operator.json +6 -0
  113. package/tests/fixtures/alibaba-maestro-routing/expected/011-happy-ecs-compute-operator.json +6 -0
  114. package/tests/fixtures/alibaba-maestro-routing/expected/012-happy-event-driven-architecture-review.json +6 -0
  115. package/tests/fixtures/alibaba-maestro-routing/expected/013-happy-function-serverless-operator.json +6 -0
  116. package/tests/fixtures/alibaba-maestro-routing/expected/014-happy-iac-change-safety-review.json +6 -0
  117. package/tests/fixtures/alibaba-maestro-routing/expected/015-happy-kms-secret-lifecycle-steward.json +6 -0
  118. package/tests/fixtures/alibaba-maestro-routing/expected/016-happy-landing-zone-architect.json +6 -0
  119. package/tests/fixtures/alibaba-maestro-routing/expected/017-happy-load-balancer-traffic-engineer.json +6 -0
  120. package/tests/fixtures/alibaba-maestro-routing/expected/018-happy-maxcompute-dataworks-analyst.json +6 -0
  121. package/tests/fixtures/alibaba-maestro-routing/expected/019-happy-migration-architect.json +6 -0
  122. package/tests/fixtures/alibaba-maestro-routing/expected/020-happy-mse-microservice-engine.json +6 -0
  123. package/tests/fixtures/alibaba-maestro-routing/expected/021-happy-network-architect.json +6 -0
  124. package/tests/fixtures/alibaba-maestro-routing/expected/022-happy-observability-incident-responder.json +6 -0
  125. package/tests/fixtures/alibaba-maestro-routing/expected/023-happy-oss-data-perimeter-governor.json +6 -0
  126. package/tests/fixtures/alibaba-maestro-routing/expected/024-happy-oss-storage-steward.json +6 -0
  127. package/tests/fixtures/alibaba-maestro-routing/expected/025-happy-polardb-rds-dba.json +6 -0
  128. package/tests/fixtures/alibaba-maestro-routing/expected/026-happy-ram-iam-review.json +6 -0
  129. package/tests/fixtures/alibaba-maestro-routing/expected/027-happy-registry-artifact-governor.json +6 -0
  130. package/tests/fixtures/alibaba-maestro-routing/expected/028-happy-resilience-bcdr-review.json +6 -0
  131. package/tests/fixtures/alibaba-maestro-routing/expected/029-happy-security-center-hardening.json +6 -0
  132. package/tests/fixtures/alibaba-maestro-routing/expected/030-happy-serverless-production-readiness.json +6 -0
  133. package/tests/fixtures/alibaba-maestro-routing/expected/031-happy-solution-architect.json +6 -0
  134. package/tests/fixtures/alibaba-maestro-routing/expected/032-happy-support-incident-coordinator.json +6 -0
  135. package/tests/fixtures/alibaba-maestro-routing/expected/033-happy-ticket-triage-escalation-coordinator.json +6 -0
  136. package/tests/fixtures/alibaba-maestro-routing/expected/034-happy-waf-cost-optimization-review.json +6 -0
  137. package/tests/fixtures/alibaba-maestro-routing/expected/035-happy-waf-reliability-review.json +6 -0
  138. package/tests/fixtures/alibaba-maestro-routing/expected/036-happy-waf-security-review.json +6 -0
  139. package/tests/fixtures/alibaba-maestro-routing/expected/adv-ambiguous.json +4 -0
  140. package/tests/fixtures/alibaba-maestro-routing/expected/adv-instruction-injection.json +6 -0
  141. package/tests/fixtures/alibaba-maestro-routing/expected/adv-liveguard-01-live-ack-rollout-guard.json +6 -0
  142. package/tests/fixtures/alibaba-maestro-routing/expected/adv-liveguard-02-live-cost-budget-action-guard.json +6 -0
  143. package/tests/fixtures/alibaba-maestro-routing/expected/adv-liveguard-03-live-kms-key-mutation-guard.json +6 -0
  144. package/tests/fixtures/alibaba-maestro-routing/expected/adv-liveguard-04-live-oss-bucket-policy-guard.json +6 -0
  145. package/tests/fixtures/alibaba-maestro-routing/expected/adv-liveguard-05-live-ram-policy-change-guard.json +6 -0
  146. package/tests/fixtures/alibaba-maestro-routing/expected/adv-liveguard-06-live-rds-polardb-mutation-guard.json +6 -0
  147. package/tests/fixtures/alibaba-maestro-routing/expected/adv-persona-replacement.json +6 -0
  148. package/tests/fixtures/alibaba-maestro-routing/expected/adv-secrets-bait.json +8 -0
  149. package/tests/fixtures/alibaba-maestro-routing/inputs/001-happy-ack-container-platform-operator.json +7 -0
  150. package/tests/fixtures/alibaba-maestro-routing/inputs/002-happy-actiontrail-audit-analyst.json +7 -0
  151. package/tests/fixtures/alibaba-maestro-routing/inputs/003-happy-analyticdb-realtime.json +7 -0
  152. package/tests/fixtures/alibaba-maestro-routing/inputs/004-happy-certificate-manager-issuer-review.json +7 -0
  153. package/tests/fixtures/alibaba-maestro-routing/inputs/005-happy-change-impact-advisor.json +7 -0
  154. package/tests/fixtures/alibaba-maestro-routing/inputs/006-happy-china-compliance.json +7 -0
  155. package/tests/fixtures/alibaba-maestro-routing/inputs/007-happy-cost-anomaly-watch-coordinator.json +7 -0
  156. package/tests/fixtures/alibaba-maestro-routing/inputs/008-happy-cost-finops-analyst.json +7 -0
  157. package/tests/fixtures/alibaba-maestro-routing/inputs/009-happy-daily-operations-briefing-coordinator.json +7 -0
  158. package/tests/fixtures/alibaba-maestro-routing/inputs/010-happy-devops-cicd-operator.json +7 -0
  159. package/tests/fixtures/alibaba-maestro-routing/inputs/011-happy-ecs-compute-operator.json +7 -0
  160. package/tests/fixtures/alibaba-maestro-routing/inputs/012-happy-event-driven-architecture-review.json +7 -0
  161. package/tests/fixtures/alibaba-maestro-routing/inputs/013-happy-function-serverless-operator.json +7 -0
  162. package/tests/fixtures/alibaba-maestro-routing/inputs/014-happy-iac-change-safety-review.json +7 -0
  163. package/tests/fixtures/alibaba-maestro-routing/inputs/015-happy-kms-secret-lifecycle-steward.json +7 -0
  164. package/tests/fixtures/alibaba-maestro-routing/inputs/016-happy-landing-zone-architect.json +7 -0
  165. package/tests/fixtures/alibaba-maestro-routing/inputs/017-happy-load-balancer-traffic-engineer.json +7 -0
  166. package/tests/fixtures/alibaba-maestro-routing/inputs/018-happy-maxcompute-dataworks-analyst.json +7 -0
  167. package/tests/fixtures/alibaba-maestro-routing/inputs/019-happy-migration-architect.json +7 -0
  168. package/tests/fixtures/alibaba-maestro-routing/inputs/020-happy-mse-microservice-engine.json +7 -0
  169. package/tests/fixtures/alibaba-maestro-routing/inputs/021-happy-network-architect.json +7 -0
  170. package/tests/fixtures/alibaba-maestro-routing/inputs/022-happy-observability-incident-responder.json +7 -0
  171. package/tests/fixtures/alibaba-maestro-routing/inputs/023-happy-oss-data-perimeter-governor.json +7 -0
  172. package/tests/fixtures/alibaba-maestro-routing/inputs/024-happy-oss-storage-steward.json +7 -0
  173. package/tests/fixtures/alibaba-maestro-routing/inputs/025-happy-polardb-rds-dba.json +7 -0
  174. package/tests/fixtures/alibaba-maestro-routing/inputs/026-happy-ram-iam-review.json +7 -0
  175. package/tests/fixtures/alibaba-maestro-routing/inputs/027-happy-registry-artifact-governor.json +7 -0
  176. package/tests/fixtures/alibaba-maestro-routing/inputs/028-happy-resilience-bcdr-review.json +7 -0
  177. package/tests/fixtures/alibaba-maestro-routing/inputs/029-happy-security-center-hardening.json +7 -0
  178. package/tests/fixtures/alibaba-maestro-routing/inputs/030-happy-serverless-production-readiness.json +7 -0
  179. package/tests/fixtures/alibaba-maestro-routing/inputs/031-happy-solution-architect.json +7 -0
  180. package/tests/fixtures/alibaba-maestro-routing/inputs/032-happy-support-incident-coordinator.json +7 -0
  181. package/tests/fixtures/alibaba-maestro-routing/inputs/033-happy-ticket-triage-escalation-coordinator.json +7 -0
  182. package/tests/fixtures/alibaba-maestro-routing/inputs/034-happy-waf-cost-optimization-review.json +7 -0
  183. package/tests/fixtures/alibaba-maestro-routing/inputs/035-happy-waf-reliability-review.json +7 -0
  184. package/tests/fixtures/alibaba-maestro-routing/inputs/036-happy-waf-security-review.json +7 -0
  185. package/tests/fixtures/alibaba-maestro-routing/inputs/adv-ambiguous.json +7 -0
  186. package/tests/fixtures/alibaba-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  187. package/tests/fixtures/alibaba-maestro-routing/inputs/adv-liveguard-01-live-ack-rollout-guard.json +7 -0
  188. package/tests/fixtures/alibaba-maestro-routing/inputs/adv-liveguard-02-live-cost-budget-action-guard.json +7 -0
  189. package/tests/fixtures/alibaba-maestro-routing/inputs/adv-liveguard-03-live-kms-key-mutation-guard.json +7 -0
  190. package/tests/fixtures/alibaba-maestro-routing/inputs/adv-liveguard-04-live-oss-bucket-policy-guard.json +7 -0
  191. package/tests/fixtures/alibaba-maestro-routing/inputs/adv-liveguard-05-live-ram-policy-change-guard.json +7 -0
  192. package/tests/fixtures/alibaba-maestro-routing/inputs/adv-liveguard-06-live-rds-polardb-mutation-guard.json +7 -0
  193. package/tests/fixtures/alibaba-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  194. package/tests/fixtures/alibaba-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  195. package/tests/fixtures/alibaba-maestro-routing/taxonomy.json +480 -0
  196. package/tests/fixtures/aws-maestro-routing/expected/001-happy-agentcore.json +6 -0
  197. package/tests/fixtures/aws-maestro-routing/expected/002-happy-api-edge-delivery-review.json +6 -0
  198. package/tests/fixtures/aws-maestro-routing/expected/003-happy-bedrock-agent-security-governor.json +6 -0
  199. package/tests/fixtures/aws-maestro-routing/expected/004-happy-change-impact-advisor.json +6 -0
  200. package/tests/fixtures/aws-maestro-routing/expected/005-happy-ci-cd-release-engineer.json +6 -0
  201. package/tests/fixtures/aws-maestro-routing/expected/006-happy-compliance-evidence-mapper.json +6 -0
  202. package/tests/fixtures/aws-maestro-routing/expected/007-happy-cost-anomaly-watch-coordinator.json +6 -0
  203. package/tests/fixtures/aws-maestro-routing/expected/008-happy-cost-optimization-governor.json +6 -0
  204. package/tests/fixtures/aws-maestro-routing/expected/009-happy-daily-operations-briefing-coordinator.json +6 -0
  205. package/tests/fixtures/aws-maestro-routing/expected/010-happy-data-protection-backup-steward.json +6 -0
  206. package/tests/fixtures/aws-maestro-routing/expected/011-happy-deployment-hotfix-operator.json +6 -0
  207. package/tests/fixtures/aws-maestro-routing/expected/012-happy-devops-agent-skill-designer.json +6 -0
  208. package/tests/fixtures/aws-maestro-routing/expected/013-happy-dynamodb-data-modeling-performance-review.json +6 -0
  209. package/tests/fixtures/aws-maestro-routing/expected/014-happy-ec2-compute-operations-steward.json +6 -0
  210. package/tests/fixtures/aws-maestro-routing/expected/015-happy-ecs-fargate-platform-operator.json +6 -0
  211. package/tests/fixtures/aws-maestro-routing/expected/016-happy-ecs-service-remediation-operator.json +6 -0
  212. package/tests/fixtures/aws-maestro-routing/expected/017-happy-eks-platform-operator.json +6 -0
  213. package/tests/fixtures/aws-maestro-routing/expected/018-happy-event-driven-architecture-review.json +6 -0
  214. package/tests/fixtures/aws-maestro-routing/expected/019-happy-generative-ai-developer.json +6 -0
  215. package/tests/fixtures/aws-maestro-routing/expected/020-happy-iac-change-safety-review.json +6 -0
  216. package/tests/fixtures/aws-maestro-routing/expected/021-happy-iac-patch-executor.json +6 -0
  217. package/tests/fixtures/aws-maestro-routing/expected/022-happy-iam-least-privilege-review.json +6 -0
  218. package/tests/fixtures/aws-maestro-routing/expected/023-happy-kms-secrets-lifecycle-steward.json +6 -0
  219. package/tests/fixtures/aws-maestro-routing/expected/024-happy-landing-zone-governor.json +6 -0
  220. package/tests/fixtures/aws-maestro-routing/expected/025-happy-migration-cutover-architect.json +6 -0
  221. package/tests/fixtures/aws-maestro-routing/expected/026-happy-network-architect.json +6 -0
  222. package/tests/fixtures/aws-maestro-routing/expected/027-happy-non-destructive-task-automation-advisor.json +6 -0
  223. package/tests/fixtures/aws-maestro-routing/expected/028-happy-observability-incident-responder.json +6 -0
  224. package/tests/fixtures/aws-maestro-routing/expected/029-happy-pipeline-fix-operator.json +6 -0
  225. package/tests/fixtures/aws-maestro-routing/expected/030-happy-private-ca-issuer-review.json +6 -0
  226. package/tests/fixtures/aws-maestro-routing/expected/031-happy-rds-aurora-performance-investigator.json +6 -0
  227. package/tests/fixtures/aws-maestro-routing/expected/032-happy-resilience-bcdr-review.json +6 -0
  228. package/tests/fixtures/aws-maestro-routing/expected/033-happy-s3-data-perimeter-governor.json +6 -0
  229. package/tests/fixtures/aws-maestro-routing/expected/034-happy-security-posture-hardening.json +6 -0
  230. package/tests/fixtures/aws-maestro-routing/expected/035-happy-serverless-production-readiness.json +6 -0
  231. package/tests/fixtures/aws-maestro-routing/expected/036-happy-serverless-rollout-corrector.json +6 -0
  232. package/tests/fixtures/aws-maestro-routing/expected/037-happy-solution-architect.json +6 -0
  233. package/tests/fixtures/aws-maestro-routing/expected/038-happy-ticket-triage-escalation-coordinator.json +6 -0
  234. package/tests/fixtures/aws-maestro-routing/expected/039-happy-waf-cost-optimization-review.json +6 -0
  235. package/tests/fixtures/aws-maestro-routing/expected/040-happy-waf-reliability-review.json +6 -0
  236. package/tests/fixtures/aws-maestro-routing/expected/041-happy-waf-security-review.json +6 -0
  237. package/tests/fixtures/aws-maestro-routing/expected/adv-ambiguous.json +4 -0
  238. package/tests/fixtures/aws-maestro-routing/expected/adv-instruction-injection.json +6 -0
  239. package/tests/fixtures/aws-maestro-routing/expected/adv-liveguard-01-live-deployment-guarded-operator.json +6 -0
  240. package/tests/fixtures/aws-maestro-routing/expected/adv-liveguard-02-live-ecs-rollout-guard.json +6 -0
  241. package/tests/fixtures/aws-maestro-routing/expected/adv-liveguard-03-live-iac-change-guard.json +6 -0
  242. package/tests/fixtures/aws-maestro-routing/expected/adv-liveguard-04-live-pipeline-approval-operator.json +6 -0
  243. package/tests/fixtures/aws-maestro-routing/expected/adv-liveguard-05-live-serverless-release-guard.json +6 -0
  244. package/tests/fixtures/aws-maestro-routing/expected/adv-persona-replacement.json +6 -0
  245. package/tests/fixtures/aws-maestro-routing/expected/adv-secrets-bait.json +6 -0
  246. package/tests/fixtures/aws-maestro-routing/inputs/001-happy-agentcore.json +7 -0
  247. package/tests/fixtures/aws-maestro-routing/inputs/002-happy-api-edge-delivery-review.json +7 -0
  248. package/tests/fixtures/aws-maestro-routing/inputs/003-happy-bedrock-agent-security-governor.json +7 -0
  249. package/tests/fixtures/aws-maestro-routing/inputs/004-happy-change-impact-advisor.json +7 -0
  250. package/tests/fixtures/aws-maestro-routing/inputs/005-happy-ci-cd-release-engineer.json +7 -0
  251. package/tests/fixtures/aws-maestro-routing/inputs/006-happy-compliance-evidence-mapper.json +7 -0
  252. package/tests/fixtures/aws-maestro-routing/inputs/007-happy-cost-anomaly-watch-coordinator.json +7 -0
  253. package/tests/fixtures/aws-maestro-routing/inputs/008-happy-cost-optimization-governor.json +7 -0
  254. package/tests/fixtures/aws-maestro-routing/inputs/009-happy-daily-operations-briefing-coordinator.json +7 -0
  255. package/tests/fixtures/aws-maestro-routing/inputs/010-happy-data-protection-backup-steward.json +7 -0
  256. package/tests/fixtures/aws-maestro-routing/inputs/011-happy-deployment-hotfix-operator.json +7 -0
  257. package/tests/fixtures/aws-maestro-routing/inputs/012-happy-devops-agent-skill-designer.json +7 -0
  258. package/tests/fixtures/aws-maestro-routing/inputs/013-happy-dynamodb-data-modeling-performance-review.json +7 -0
  259. package/tests/fixtures/aws-maestro-routing/inputs/014-happy-ec2-compute-operations-steward.json +7 -0
  260. package/tests/fixtures/aws-maestro-routing/inputs/015-happy-ecs-fargate-platform-operator.json +7 -0
  261. package/tests/fixtures/aws-maestro-routing/inputs/016-happy-ecs-service-remediation-operator.json +7 -0
  262. package/tests/fixtures/aws-maestro-routing/inputs/017-happy-eks-platform-operator.json +7 -0
  263. package/tests/fixtures/aws-maestro-routing/inputs/018-happy-event-driven-architecture-review.json +7 -0
  264. package/tests/fixtures/aws-maestro-routing/inputs/019-happy-generative-ai-developer.json +7 -0
  265. package/tests/fixtures/aws-maestro-routing/inputs/020-happy-iac-change-safety-review.json +7 -0
  266. package/tests/fixtures/aws-maestro-routing/inputs/021-happy-iac-patch-executor.json +7 -0
  267. package/tests/fixtures/aws-maestro-routing/inputs/022-happy-iam-least-privilege-review.json +7 -0
  268. package/tests/fixtures/aws-maestro-routing/inputs/023-happy-kms-secrets-lifecycle-steward.json +7 -0
  269. package/tests/fixtures/aws-maestro-routing/inputs/024-happy-landing-zone-governor.json +7 -0
  270. package/tests/fixtures/aws-maestro-routing/inputs/025-happy-migration-cutover-architect.json +7 -0
  271. package/tests/fixtures/aws-maestro-routing/inputs/026-happy-network-architect.json +7 -0
  272. package/tests/fixtures/aws-maestro-routing/inputs/027-happy-non-destructive-task-automation-advisor.json +7 -0
  273. package/tests/fixtures/aws-maestro-routing/inputs/028-happy-observability-incident-responder.json +7 -0
  274. package/tests/fixtures/aws-maestro-routing/inputs/029-happy-pipeline-fix-operator.json +7 -0
  275. package/tests/fixtures/aws-maestro-routing/inputs/030-happy-private-ca-issuer-review.json +7 -0
  276. package/tests/fixtures/aws-maestro-routing/inputs/031-happy-rds-aurora-performance-investigator.json +7 -0
  277. package/tests/fixtures/aws-maestro-routing/inputs/032-happy-resilience-bcdr-review.json +7 -0
  278. package/tests/fixtures/aws-maestro-routing/inputs/033-happy-s3-data-perimeter-governor.json +7 -0
  279. package/tests/fixtures/aws-maestro-routing/inputs/034-happy-security-posture-hardening.json +7 -0
  280. package/tests/fixtures/aws-maestro-routing/inputs/035-happy-serverless-production-readiness.json +7 -0
  281. package/tests/fixtures/aws-maestro-routing/inputs/036-happy-serverless-rollout-corrector.json +7 -0
  282. package/tests/fixtures/aws-maestro-routing/inputs/037-happy-solution-architect.json +7 -0
  283. package/tests/fixtures/aws-maestro-routing/inputs/038-happy-ticket-triage-escalation-coordinator.json +7 -0
  284. package/tests/fixtures/aws-maestro-routing/inputs/039-happy-waf-cost-optimization-review.json +7 -0
  285. package/tests/fixtures/aws-maestro-routing/inputs/040-happy-waf-reliability-review.json +7 -0
  286. package/tests/fixtures/aws-maestro-routing/inputs/041-happy-waf-security-review.json +7 -0
  287. package/tests/fixtures/aws-maestro-routing/inputs/adv-ambiguous.json +7 -0
  288. package/tests/fixtures/aws-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  289. package/tests/fixtures/aws-maestro-routing/inputs/adv-liveguard-01-live-deployment-guarded-operator.json +7 -0
  290. package/tests/fixtures/aws-maestro-routing/inputs/adv-liveguard-02-live-ecs-rollout-guard.json +7 -0
  291. package/tests/fixtures/aws-maestro-routing/inputs/adv-liveguard-03-live-iac-change-guard.json +7 -0
  292. package/tests/fixtures/aws-maestro-routing/inputs/adv-liveguard-04-live-pipeline-approval-operator.json +7 -0
  293. package/tests/fixtures/aws-maestro-routing/inputs/adv-liveguard-05-live-serverless-release-guard.json +7 -0
  294. package/tests/fixtures/aws-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  295. package/tests/fixtures/aws-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  296. package/tests/fixtures/aws-maestro-routing/taxonomy.json +537 -0
  297. package/tests/fixtures/azure-maestro-routing/expected/001-happy-ai-foundry-ops-governor.json +6 -0
  298. package/tests/fixtures/azure-maestro-routing/expected/002-happy-aks-platform-operator.json +6 -0
  299. package/tests/fixtures/azure-maestro-routing/expected/003-happy-app-service-production-readiness.json +6 -0
  300. package/tests/fixtures/azure-maestro-routing/expected/004-happy-cosmosdb-application-developer.json +6 -0
  301. package/tests/fixtures/azure-maestro-routing/expected/005-happy-cosmosdb-performance-investigator.json +6 -0
  302. package/tests/fixtures/azure-maestro-routing/expected/006-happy-cosmosdb-platform-operator.json +6 -0
  303. package/tests/fixtures/azure-maestro-routing/expected/007-happy-cost-estimation-review.json +6 -0
  304. package/tests/fixtures/azure-maestro-routing/expected/008-happy-cost-optimization-governor.json +6 -0
  305. package/tests/fixtures/azure-maestro-routing/expected/009-happy-entra-id-specialist.json +6 -0
  306. package/tests/fixtures/azure-maestro-routing/expected/010-happy-identity-governance-review.json +6 -0
  307. package/tests/fixtures/azure-maestro-routing/expected/011-happy-key-vault-secret-lifecycle-auditor.json +6 -0
  308. package/tests/fixtures/azure-maestro-routing/expected/012-happy-keyvault-certificate-issuer-review.json +6 -0
  309. package/tests/fixtures/azure-maestro-routing/expected/013-happy-landing-zone-architect.json +6 -0
  310. package/tests/fixtures/azure-maestro-routing/expected/014-happy-migrate-landing-zone-cutover.json +6 -0
  311. package/tests/fixtures/azure-maestro-routing/expected/015-happy-network-topology-review.json +6 -0
  312. package/tests/fixtures/azure-maestro-routing/expected/016-happy-observability-investigator.json +6 -0
  313. package/tests/fixtures/azure-maestro-routing/expected/017-happy-platform-automation-devops.json +6 -0
  314. package/tests/fixtures/azure-maestro-routing/expected/018-happy-private-endpoint-adoption-planner.json +6 -0
  315. package/tests/fixtures/azure-maestro-routing/expected/019-happy-rbac-review.json +6 -0
  316. package/tests/fixtures/azure-maestro-routing/expected/020-happy-resilience-bcdr-review.json +6 -0
  317. package/tests/fixtures/azure-maestro-routing/expected/021-happy-resource-health-incident-triage.json +6 -0
  318. package/tests/fixtures/azure-maestro-routing/expected/022-happy-role-selector.json +6 -0
  319. package/tests/fixtures/azure-maestro-routing/expected/023-happy-security-posture-hardening.json +6 -0
  320. package/tests/fixtures/azure-maestro-routing/expected/024-happy-subscription-resource-organization.json +6 -0
  321. package/tests/fixtures/azure-maestro-routing/expected/025-happy-waf-cost-optimization-review.json +6 -0
  322. package/tests/fixtures/azure-maestro-routing/expected/026-happy-waf-reliability-review.json +6 -0
  323. package/tests/fixtures/azure-maestro-routing/expected/027-happy-waf-security-review.json +6 -0
  324. package/tests/fixtures/azure-maestro-routing/expected/adv-ambiguous.json +4 -0
  325. package/tests/fixtures/azure-maestro-routing/expected/adv-instruction-injection.json +6 -0
  326. package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-01-governance-policy-guardrails.json +6 -0
  327. package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-02-live-aks-rollout-guard.json +6 -0
  328. package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-03-live-app-service-slot-swap-guard.json +6 -0
  329. package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-04-live-arm-deployment-stack-guard.json +6 -0
  330. package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-05-live-cost-budget-action-guard.json +6 -0
  331. package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-06-live-entra-role-assignment-guard.json +6 -0
  332. package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-07-live-keyvault-rotation-purge-guard.json +6 -0
  333. package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-08-live-pim-jit-activation-guard.json +6 -0
  334. package/tests/fixtures/azure-maestro-routing/expected/adv-persona-replacement.json +6 -0
  335. package/tests/fixtures/azure-maestro-routing/expected/adv-secrets-bait.json +8 -0
  336. package/tests/fixtures/azure-maestro-routing/inputs/001-happy-ai-foundry-ops-governor.json +7 -0
  337. package/tests/fixtures/azure-maestro-routing/inputs/002-happy-aks-platform-operator.json +7 -0
  338. package/tests/fixtures/azure-maestro-routing/inputs/003-happy-app-service-production-readiness.json +7 -0
  339. package/tests/fixtures/azure-maestro-routing/inputs/004-happy-cosmosdb-application-developer.json +7 -0
  340. package/tests/fixtures/azure-maestro-routing/inputs/005-happy-cosmosdb-performance-investigator.json +7 -0
  341. package/tests/fixtures/azure-maestro-routing/inputs/006-happy-cosmosdb-platform-operator.json +7 -0
  342. package/tests/fixtures/azure-maestro-routing/inputs/007-happy-cost-estimation-review.json +7 -0
  343. package/tests/fixtures/azure-maestro-routing/inputs/008-happy-cost-optimization-governor.json +7 -0
  344. package/tests/fixtures/azure-maestro-routing/inputs/009-happy-entra-id-specialist.json +7 -0
  345. package/tests/fixtures/azure-maestro-routing/inputs/010-happy-identity-governance-review.json +7 -0
  346. package/tests/fixtures/azure-maestro-routing/inputs/011-happy-key-vault-secret-lifecycle-auditor.json +7 -0
  347. package/tests/fixtures/azure-maestro-routing/inputs/012-happy-keyvault-certificate-issuer-review.json +7 -0
  348. package/tests/fixtures/azure-maestro-routing/inputs/013-happy-landing-zone-architect.json +7 -0
  349. package/tests/fixtures/azure-maestro-routing/inputs/014-happy-migrate-landing-zone-cutover.json +7 -0
  350. package/tests/fixtures/azure-maestro-routing/inputs/015-happy-network-topology-review.json +7 -0
  351. package/tests/fixtures/azure-maestro-routing/inputs/016-happy-observability-investigator.json +7 -0
  352. package/tests/fixtures/azure-maestro-routing/inputs/017-happy-platform-automation-devops.json +7 -0
  353. package/tests/fixtures/azure-maestro-routing/inputs/018-happy-private-endpoint-adoption-planner.json +7 -0
  354. package/tests/fixtures/azure-maestro-routing/inputs/019-happy-rbac-review.json +7 -0
  355. package/tests/fixtures/azure-maestro-routing/inputs/020-happy-resilience-bcdr-review.json +7 -0
  356. package/tests/fixtures/azure-maestro-routing/inputs/021-happy-resource-health-incident-triage.json +7 -0
  357. package/tests/fixtures/azure-maestro-routing/inputs/022-happy-role-selector.json +7 -0
  358. package/tests/fixtures/azure-maestro-routing/inputs/023-happy-security-posture-hardening.json +7 -0
  359. package/tests/fixtures/azure-maestro-routing/inputs/024-happy-subscription-resource-organization.json +7 -0
  360. package/tests/fixtures/azure-maestro-routing/inputs/025-happy-waf-cost-optimization-review.json +7 -0
  361. package/tests/fixtures/azure-maestro-routing/inputs/026-happy-waf-reliability-review.json +7 -0
  362. package/tests/fixtures/azure-maestro-routing/inputs/027-happy-waf-security-review.json +7 -0
  363. package/tests/fixtures/azure-maestro-routing/inputs/adv-ambiguous.json +7 -0
  364. package/tests/fixtures/azure-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  365. package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-01-governance-policy-guardrails.json +7 -0
  366. package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-02-live-aks-rollout-guard.json +7 -0
  367. package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-03-live-app-service-slot-swap-guard.json +7 -0
  368. package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-04-live-arm-deployment-stack-guard.json +7 -0
  369. package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-05-live-cost-budget-action-guard.json +7 -0
  370. package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-06-live-entra-role-assignment-guard.json +7 -0
  371. package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-07-live-keyvault-rotation-purge-guard.json +7 -0
  372. package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-08-live-pim-jit-activation-guard.json +7 -0
  373. package/tests/fixtures/azure-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  374. package/tests/fixtures/azure-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  375. package/tests/fixtures/azure-maestro-routing/taxonomy.json +351 -0
  376. package/tests/fixtures/contabo-maestro-routing/expected/001-happy-capacity-planner.json +6 -0
  377. package/tests/fixtures/contabo-maestro-routing/expected/002-happy-cost-optimization-analyst.json +6 -0
  378. package/tests/fixtures/contabo-maestro-routing/expected/003-happy-security-hardening.json +6 -0
  379. package/tests/fixtures/contabo-maestro-routing/expected/adv-ambiguous.json +4 -0
  380. package/tests/fixtures/contabo-maestro-routing/expected/adv-instruction-injection.json +6 -0
  381. package/tests/fixtures/contabo-maestro-routing/expected/adv-liveguard-01-live-instance-lifecycle-guard.json +6 -0
  382. package/tests/fixtures/contabo-maestro-routing/expected/adv-liveguard-02-live-storage-operations-guard.json +6 -0
  383. package/tests/fixtures/contabo-maestro-routing/expected/adv-persona-replacement.json +6 -0
  384. package/tests/fixtures/contabo-maestro-routing/expected/adv-secrets-bait.json +6 -0
  385. package/tests/fixtures/contabo-maestro-routing/inputs/001-happy-capacity-planner.json +7 -0
  386. package/tests/fixtures/contabo-maestro-routing/inputs/002-happy-cost-optimization-analyst.json +7 -0
  387. package/tests/fixtures/contabo-maestro-routing/inputs/003-happy-security-hardening.json +7 -0
  388. package/tests/fixtures/contabo-maestro-routing/inputs/adv-ambiguous.json +7 -0
  389. package/tests/fixtures/contabo-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  390. package/tests/fixtures/contabo-maestro-routing/inputs/adv-liveguard-01-live-instance-lifecycle-guard.json +7 -0
  391. package/tests/fixtures/contabo-maestro-routing/inputs/adv-liveguard-02-live-storage-operations-guard.json +7 -0
  392. package/tests/fixtures/contabo-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  393. package/tests/fixtures/contabo-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  394. package/tests/fixtures/contabo-maestro-routing/taxonomy.json +40 -0
  395. package/tests/fixtures/finops-cloud-price-advisor/expected/001-scaleway-instance-eu-fr.json +14 -0
  396. package/tests/fixtures/finops-cloud-price-advisor/expected/002-scaleway-storage-eu-nl.json +14 -0
  397. package/tests/fixtures/finops-cloud-price-advisor/expected/003-gandi-vps-no-key.json +16 -0
  398. package/tests/fixtures/finops-cloud-price-advisor/expected/004-gandi-cdn-with-key.json +17 -0
  399. package/tests/fixtures/finops-cloud-price-advisor/expected/005-alibaba-ecs-cny.json +16 -0
  400. package/tests/fixtures/finops-cloud-price-advisor/expected/006-alibaba-rds-ap-southeast.json +14 -0
  401. package/tests/fixtures/finops-cloud-price-advisor/expected/007-tencent-cvm-cny.json +16 -0
  402. package/tests/fixtures/finops-cloud-price-advisor/expected/008-tencent-db-ap-singapore.json +14 -0
  403. package/tests/fixtures/finops-cloud-price-advisor/expected/009-comparative-aws-vs-scaleway.json +14 -0
  404. package/tests/fixtures/finops-cloud-price-advisor/expected/010-comparative-azure-vs-alibaba.json +14 -0
  405. package/tests/fixtures/finops-cloud-price-advisor/expected/adv-001-gandi-key-storage-bait.json +14 -0
  406. package/tests/fixtures/finops-cloud-price-advisor/expected/adv-002-alibaba-credential-bait.json +15 -0
  407. package/tests/fixtures/finops-cloud-price-advisor/expected/adv-003-tencent-secretid-bait.json +14 -0
  408. package/tests/fixtures/finops-cloud-price-advisor/expected/adv-004-scrape-url-injection.json +15 -0
  409. package/tests/fixtures/finops-cloud-price-advisor/expected/adv-005-persona-replacement.json +15 -0
  410. package/tests/fixtures/finops-cloud-price-advisor/inputs/001-scaleway-instance-eu-fr.json +9 -0
  411. package/tests/fixtures/finops-cloud-price-advisor/inputs/002-scaleway-storage-eu-nl.json +9 -0
  412. package/tests/fixtures/finops-cloud-price-advisor/inputs/003-gandi-vps-no-key.json +10 -0
  413. package/tests/fixtures/finops-cloud-price-advisor/inputs/004-gandi-cdn-with-key.json +11 -0
  414. package/tests/fixtures/finops-cloud-price-advisor/inputs/005-alibaba-ecs-cny.json +9 -0
  415. package/tests/fixtures/finops-cloud-price-advisor/inputs/006-alibaba-rds-ap-southeast.json +9 -0
  416. package/tests/fixtures/finops-cloud-price-advisor/inputs/007-tencent-cvm-cny.json +9 -0
  417. package/tests/fixtures/finops-cloud-price-advisor/inputs/008-tencent-db-ap-singapore.json +9 -0
  418. package/tests/fixtures/finops-cloud-price-advisor/inputs/009-comparative-aws-vs-scaleway.json +10 -0
  419. package/tests/fixtures/finops-cloud-price-advisor/inputs/010-comparative-azure-vs-alibaba.json +10 -0
  420. package/tests/fixtures/finops-cloud-price-advisor/inputs/adv-001-gandi-key-storage-bait.json +12 -0
  421. package/tests/fixtures/finops-cloud-price-advisor/inputs/adv-002-alibaba-credential-bait.json +11 -0
  422. package/tests/fixtures/finops-cloud-price-advisor/inputs/adv-003-tencent-secretid-bait.json +11 -0
  423. package/tests/fixtures/finops-cloud-price-advisor/inputs/adv-004-scrape-url-injection.json +11 -0
  424. package/tests/fixtures/finops-cloud-price-advisor/inputs/adv-005-persona-replacement.json +11 -0
  425. package/tests/fixtures/finops-cloud-price-advisor/taxonomy.json +10 -0
  426. package/tests/fixtures/finops-maestro-routing/expected/001-happy-ai-economist.json +4 -0
  427. package/tests/fixtures/finops-maestro-routing/expected/002-happy-kubernetes-rightsizer.json +4 -0
  428. package/tests/fixtures/finops-maestro-routing/expected/003-happy-cloud-price-advisor.json +4 -0
  429. package/tests/fixtures/finops-maestro-routing/expected/004-parallel-ai-and-k8s.json +4 -0
  430. package/tests/fixtures/finops-maestro-routing/expected/005-parallel-k8s-and-price.json +4 -0
  431. package/tests/fixtures/finops-maestro-routing/expected/006-adversarial-instruction-injection.json +4 -0
  432. package/tests/fixtures/finops-maestro-routing/expected/007-adversarial-persona-replacement.json +4 -0
  433. package/tests/fixtures/finops-maestro-routing/expected/008-adversarial-secrets-bait.json +4 -0
  434. package/tests/fixtures/finops-maestro-routing/expected/009-ambiguous.json +4 -0
  435. package/tests/fixtures/finops-maestro-routing/inputs/001-happy-ai-economist.json +5 -0
  436. package/tests/fixtures/finops-maestro-routing/inputs/002-happy-kubernetes-rightsizer.json +5 -0
  437. package/tests/fixtures/finops-maestro-routing/inputs/003-happy-cloud-price-advisor.json +5 -0
  438. package/tests/fixtures/finops-maestro-routing/inputs/004-parallel-ai-and-k8s.json +5 -0
  439. package/tests/fixtures/finops-maestro-routing/inputs/005-parallel-k8s-and-price.json +5 -0
  440. package/tests/fixtures/finops-maestro-routing/inputs/006-adversarial-instruction-injection.json +5 -0
  441. package/tests/fixtures/finops-maestro-routing/inputs/007-adversarial-persona-replacement.json +5 -0
  442. package/tests/fixtures/finops-maestro-routing/inputs/008-adversarial-secrets-bait.json +5 -0
  443. package/tests/fixtures/finops-maestro-routing/inputs/009-ambiguous.json +5 -0
  444. package/tests/fixtures/finops-maestro-routing/taxonomy.json +144 -0
  445. package/tests/fixtures/gcp-maestro-routing/expected/001-happy-alloydb-ai-developer.json +6 -0
  446. package/tests/fixtures/gcp-maestro-routing/expected/002-happy-alloydb-cloudsql-dba.json +6 -0
  447. package/tests/fixtures/gcp-maestro-routing/expected/003-happy-anthos-multicloud-architect.json +6 -0
  448. package/tests/fixtures/gcp-maestro-routing/expected/004-happy-apigee-api-platform-operator.json +6 -0
  449. package/tests/fixtures/gcp-maestro-routing/expected/005-happy-bigquery-cost-performance-analyst.json +6 -0
  450. package/tests/fixtures/gcp-maestro-routing/expected/006-happy-certificate-manager-issuer-review.json +6 -0
  451. package/tests/fixtures/gcp-maestro-routing/expected/007-happy-change-impact-advisor.json +6 -0
  452. package/tests/fixtures/gcp-maestro-routing/expected/008-happy-cloud-auth-advisor.json +6 -0
  453. package/tests/fixtures/gcp-maestro-routing/expected/009-happy-cloud-run-functions-operator.json +6 -0
  454. package/tests/fixtures/gcp-maestro-routing/expected/010-happy-cloudbuild-deploy-cicd-operator.json +6 -0
  455. package/tests/fixtures/gcp-maestro-routing/expected/011-happy-compliance-assured-workloads.json +6 -0
  456. package/tests/fixtures/gcp-maestro-routing/expected/012-happy-compute-engine-operator.json +6 -0
  457. package/tests/fixtures/gcp-maestro-routing/expected/013-happy-cost-anomaly-watch-coordinator.json +6 -0
  458. package/tests/fixtures/gcp-maestro-routing/expected/014-happy-cost-finops-analyst.json +6 -0
  459. package/tests/fixtures/gcp-maestro-routing/expected/015-happy-daily-operations-briefing-coordinator.json +6 -0
  460. package/tests/fixtures/gcp-maestro-routing/expected/016-happy-data-pipeline-engineer.json +6 -0
  461. package/tests/fixtures/gcp-maestro-routing/expected/017-happy-event-driven-architecture-review.json +6 -0
  462. package/tests/fixtures/gcp-maestro-routing/expected/018-happy-firebase-developer.json +6 -0
  463. package/tests/fixtures/gcp-maestro-routing/expected/019-happy-gcs-data-perimeter-governor.json +6 -0
  464. package/tests/fixtures/gcp-maestro-routing/expected/020-happy-gemini-api-developer.json +6 -0
  465. package/tests/fixtures/gcp-maestro-routing/expected/021-happy-gke-platform-operator.json +6 -0
  466. package/tests/fixtures/gcp-maestro-routing/expected/022-happy-iac-change-safety-review.json +6 -0
  467. package/tests/fixtures/gcp-maestro-routing/expected/023-happy-iam-least-privilege-review.json +6 -0
  468. package/tests/fixtures/gcp-maestro-routing/expected/024-happy-landing-zone-architect.json +6 -0
  469. package/tests/fixtures/gcp-maestro-routing/expected/025-happy-load-balancer-traffic-engineer.json +6 -0
  470. package/tests/fixtures/gcp-maestro-routing/expected/026-happy-migration-cutover-architect.json +6 -0
  471. package/tests/fixtures/gcp-maestro-routing/expected/027-happy-network-architect.json +6 -0
  472. package/tests/fixtures/gcp-maestro-routing/expected/028-happy-networking-observability.json +6 -0
  473. package/tests/fixtures/gcp-maestro-routing/expected/029-happy-observability-incident-responder.json +6 -0
  474. package/tests/fixtures/gcp-maestro-routing/expected/030-happy-registry-artifact-governor.json +6 -0
  475. package/tests/fixtures/gcp-maestro-routing/expected/031-happy-resilience-bcdr-review.json +6 -0
  476. package/tests/fixtures/gcp-maestro-routing/expected/032-happy-resource-inventory-analyst.json +6 -0
  477. package/tests/fixtures/gcp-maestro-routing/expected/033-happy-secret-kms-lifecycle-steward.json +6 -0
  478. package/tests/fixtures/gcp-maestro-routing/expected/034-happy-security-posture-hardening.json +6 -0
  479. package/tests/fixtures/gcp-maestro-routing/expected/035-happy-serverless-production-readiness.json +6 -0
  480. package/tests/fixtures/gcp-maestro-routing/expected/036-happy-solution-architect.json +6 -0
  481. package/tests/fixtures/gcp-maestro-routing/expected/037-happy-spanner-architect.json +6 -0
  482. package/tests/fixtures/gcp-maestro-routing/expected/038-happy-support-incident-coordinator.json +6 -0
  483. package/tests/fixtures/gcp-maestro-routing/expected/039-happy-ticket-triage-escalation-coordinator.json +6 -0
  484. package/tests/fixtures/gcp-maestro-routing/expected/040-happy-vertex-ai-mlops-engineer.json +6 -0
  485. package/tests/fixtures/gcp-maestro-routing/expected/041-happy-vpc-service-controls-architect.json +6 -0
  486. package/tests/fixtures/gcp-maestro-routing/expected/042-happy-waf-cost-optimization-review.json +6 -0
  487. package/tests/fixtures/gcp-maestro-routing/expected/043-happy-waf-reliability-review.json +6 -0
  488. package/tests/fixtures/gcp-maestro-routing/expected/044-happy-waf-security-review.json +6 -0
  489. package/tests/fixtures/gcp-maestro-routing/expected/adv-ambiguous.json +4 -0
  490. package/tests/fixtures/gcp-maestro-routing/expected/adv-instruction-injection.json +6 -0
  491. package/tests/fixtures/gcp-maestro-routing/expected/adv-liveguard-01-live-bigquery-dataset-deletion-guard.json +6 -0
  492. package/tests/fixtures/gcp-maestro-routing/expected/adv-liveguard-02-live-cloud-run-traffic-migration-guard.json +6 -0
  493. package/tests/fixtures/gcp-maestro-routing/expected/adv-liveguard-03-live-cost-budget-action-guard.json +6 -0
  494. package/tests/fixtures/gcp-maestro-routing/expected/adv-liveguard-04-live-gke-rollout-guard.json +6 -0
  495. package/tests/fixtures/gcp-maestro-routing/expected/adv-liveguard-05-live-iam-policy-change-guard.json +6 -0
  496. package/tests/fixtures/gcp-maestro-routing/expected/adv-liveguard-06-live-kms-key-destruction-guard.json +6 -0
  497. package/tests/fixtures/gcp-maestro-routing/expected/adv-persona-replacement.json +6 -0
  498. package/tests/fixtures/gcp-maestro-routing/expected/adv-secrets-bait.json +8 -0
  499. package/tests/fixtures/gcp-maestro-routing/inputs/001-happy-alloydb-ai-developer.json +7 -0
  500. package/tests/fixtures/gcp-maestro-routing/inputs/002-happy-alloydb-cloudsql-dba.json +7 -0
  501. package/tests/fixtures/gcp-maestro-routing/inputs/003-happy-anthos-multicloud-architect.json +7 -0
  502. package/tests/fixtures/gcp-maestro-routing/inputs/004-happy-apigee-api-platform-operator.json +7 -0
  503. package/tests/fixtures/gcp-maestro-routing/inputs/005-happy-bigquery-cost-performance-analyst.json +7 -0
  504. package/tests/fixtures/gcp-maestro-routing/inputs/006-happy-certificate-manager-issuer-review.json +7 -0
  505. package/tests/fixtures/gcp-maestro-routing/inputs/007-happy-change-impact-advisor.json +7 -0
  506. package/tests/fixtures/gcp-maestro-routing/inputs/008-happy-cloud-auth-advisor.json +7 -0
  507. package/tests/fixtures/gcp-maestro-routing/inputs/009-happy-cloud-run-functions-operator.json +7 -0
  508. package/tests/fixtures/gcp-maestro-routing/inputs/010-happy-cloudbuild-deploy-cicd-operator.json +7 -0
  509. package/tests/fixtures/gcp-maestro-routing/inputs/011-happy-compliance-assured-workloads.json +7 -0
  510. package/tests/fixtures/gcp-maestro-routing/inputs/012-happy-compute-engine-operator.json +7 -0
  511. package/tests/fixtures/gcp-maestro-routing/inputs/013-happy-cost-anomaly-watch-coordinator.json +7 -0
  512. package/tests/fixtures/gcp-maestro-routing/inputs/014-happy-cost-finops-analyst.json +7 -0
  513. package/tests/fixtures/gcp-maestro-routing/inputs/015-happy-daily-operations-briefing-coordinator.json +7 -0
  514. package/tests/fixtures/gcp-maestro-routing/inputs/016-happy-data-pipeline-engineer.json +7 -0
  515. package/tests/fixtures/gcp-maestro-routing/inputs/017-happy-event-driven-architecture-review.json +7 -0
  516. package/tests/fixtures/gcp-maestro-routing/inputs/018-happy-firebase-developer.json +7 -0
  517. package/tests/fixtures/gcp-maestro-routing/inputs/019-happy-gcs-data-perimeter-governor.json +7 -0
  518. package/tests/fixtures/gcp-maestro-routing/inputs/020-happy-gemini-api-developer.json +7 -0
  519. package/tests/fixtures/gcp-maestro-routing/inputs/021-happy-gke-platform-operator.json +7 -0
  520. package/tests/fixtures/gcp-maestro-routing/inputs/022-happy-iac-change-safety-review.json +7 -0
  521. package/tests/fixtures/gcp-maestro-routing/inputs/023-happy-iam-least-privilege-review.json +7 -0
  522. package/tests/fixtures/gcp-maestro-routing/inputs/024-happy-landing-zone-architect.json +7 -0
  523. package/tests/fixtures/gcp-maestro-routing/inputs/025-happy-load-balancer-traffic-engineer.json +7 -0
  524. package/tests/fixtures/gcp-maestro-routing/inputs/026-happy-migration-cutover-architect.json +7 -0
  525. package/tests/fixtures/gcp-maestro-routing/inputs/027-happy-network-architect.json +7 -0
  526. package/tests/fixtures/gcp-maestro-routing/inputs/028-happy-networking-observability.json +7 -0
  527. package/tests/fixtures/gcp-maestro-routing/inputs/029-happy-observability-incident-responder.json +7 -0
  528. package/tests/fixtures/gcp-maestro-routing/inputs/030-happy-registry-artifact-governor.json +7 -0
  529. package/tests/fixtures/gcp-maestro-routing/inputs/031-happy-resilience-bcdr-review.json +7 -0
  530. package/tests/fixtures/gcp-maestro-routing/inputs/032-happy-resource-inventory-analyst.json +7 -0
  531. package/tests/fixtures/gcp-maestro-routing/inputs/033-happy-secret-kms-lifecycle-steward.json +7 -0
  532. package/tests/fixtures/gcp-maestro-routing/inputs/034-happy-security-posture-hardening.json +7 -0
  533. package/tests/fixtures/gcp-maestro-routing/inputs/035-happy-serverless-production-readiness.json +7 -0
  534. package/tests/fixtures/gcp-maestro-routing/inputs/036-happy-solution-architect.json +7 -0
  535. package/tests/fixtures/gcp-maestro-routing/inputs/037-happy-spanner-architect.json +7 -0
  536. package/tests/fixtures/gcp-maestro-routing/inputs/038-happy-support-incident-coordinator.json +7 -0
  537. package/tests/fixtures/gcp-maestro-routing/inputs/039-happy-ticket-triage-escalation-coordinator.json +7 -0
  538. package/tests/fixtures/gcp-maestro-routing/inputs/040-happy-vertex-ai-mlops-engineer.json +7 -0
  539. package/tests/fixtures/gcp-maestro-routing/inputs/041-happy-vpc-service-controls-architect.json +7 -0
  540. package/tests/fixtures/gcp-maestro-routing/inputs/042-happy-waf-cost-optimization-review.json +7 -0
  541. package/tests/fixtures/gcp-maestro-routing/inputs/043-happy-waf-reliability-review.json +7 -0
  542. package/tests/fixtures/gcp-maestro-routing/inputs/044-happy-waf-security-review.json +7 -0
  543. package/tests/fixtures/gcp-maestro-routing/inputs/adv-ambiguous.json +7 -0
  544. package/tests/fixtures/gcp-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  545. package/tests/fixtures/gcp-maestro-routing/inputs/adv-liveguard-01-live-bigquery-dataset-deletion-guard.json +7 -0
  546. package/tests/fixtures/gcp-maestro-routing/inputs/adv-liveguard-02-live-cloud-run-traffic-migration-guard.json +7 -0
  547. package/tests/fixtures/gcp-maestro-routing/inputs/adv-liveguard-03-live-cost-budget-action-guard.json +7 -0
  548. package/tests/fixtures/gcp-maestro-routing/inputs/adv-liveguard-04-live-gke-rollout-guard.json +7 -0
  549. package/tests/fixtures/gcp-maestro-routing/inputs/adv-liveguard-05-live-iam-policy-change-guard.json +7 -0
  550. package/tests/fixtures/gcp-maestro-routing/inputs/adv-liveguard-06-live-kms-key-destruction-guard.json +7 -0
  551. package/tests/fixtures/gcp-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  552. package/tests/fixtures/gcp-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  553. package/tests/fixtures/gcp-maestro-routing/taxonomy.json +562 -0
  554. package/tests/fixtures/hetzner-maestro-routing/expected/001-happy-capacity-planner.json +6 -0
  555. package/tests/fixtures/hetzner-maestro-routing/expected/002-happy-cost-optimization-analyst.json +6 -0
  556. package/tests/fixtures/hetzner-maestro-routing/expected/003-happy-infrastructure-reviewer.json +6 -0
  557. package/tests/fixtures/hetzner-maestro-routing/expected/adv-ambiguous.json +4 -0
  558. package/tests/fixtures/hetzner-maestro-routing/expected/adv-instruction-injection.json +6 -0
  559. package/tests/fixtures/hetzner-maestro-routing/expected/adv-liveguard-01-live-firewall-rule-guard.json +6 -0
  560. package/tests/fixtures/hetzner-maestro-routing/expected/adv-liveguard-02-live-server-lifecycle-guard.json +6 -0
  561. package/tests/fixtures/hetzner-maestro-routing/expected/adv-persona-replacement.json +6 -0
  562. package/tests/fixtures/hetzner-maestro-routing/expected/adv-secrets-bait.json +6 -0
  563. package/tests/fixtures/hetzner-maestro-routing/inputs/001-happy-capacity-planner.json +7 -0
  564. package/tests/fixtures/hetzner-maestro-routing/inputs/002-happy-cost-optimization-analyst.json +7 -0
  565. package/tests/fixtures/hetzner-maestro-routing/inputs/003-happy-infrastructure-reviewer.json +7 -0
  566. package/tests/fixtures/hetzner-maestro-routing/inputs/adv-ambiguous.json +7 -0
  567. package/tests/fixtures/hetzner-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  568. package/tests/fixtures/hetzner-maestro-routing/inputs/adv-liveguard-01-live-firewall-rule-guard.json +7 -0
  569. package/tests/fixtures/hetzner-maestro-routing/inputs/adv-liveguard-02-live-server-lifecycle-guard.json +7 -0
  570. package/tests/fixtures/hetzner-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  571. package/tests/fixtures/hetzner-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  572. package/tests/fixtures/hetzner-maestro-routing/taxonomy.json +40 -0
  573. package/tests/fixtures/huawei-maestro-routing/expected/001-happy-cce-container-platform-operator.json +6 -0
  574. package/tests/fixtures/huawei-maestro-routing/expected/002-happy-certificate-manager-issuer-review.json +6 -0
  575. package/tests/fixtures/huawei-maestro-routing/expected/003-happy-change-impact-advisor.json +6 -0
  576. package/tests/fixtures/huawei-maestro-routing/expected/004-happy-codearts-devops-operator.json +6 -0
  577. package/tests/fixtures/huawei-maestro-routing/expected/005-happy-compliance-sovereignty.json +6 -0
  578. package/tests/fixtures/huawei-maestro-routing/expected/006-happy-cost-anomaly-watch-coordinator.json +6 -0
  579. package/tests/fixtures/huawei-maestro-routing/expected/007-happy-cost-finops-analyst.json +6 -0
  580. package/tests/fixtures/huawei-maestro-routing/expected/008-happy-daily-operations-briefing-coordinator.json +6 -0
  581. package/tests/fixtures/huawei-maestro-routing/expected/009-happy-dew-kms-lifecycle-steward.json +6 -0
  582. package/tests/fixtures/huawei-maestro-routing/expected/010-happy-drs-data-replication-operator.json +6 -0
  583. package/tests/fixtures/huawei-maestro-routing/expected/011-happy-dws-dli-data-analyst.json +6 -0
  584. package/tests/fixtures/huawei-maestro-routing/expected/012-happy-ecs-compute-operator.json +6 -0
  585. package/tests/fixtures/huawei-maestro-routing/expected/013-happy-event-driven-architecture-review.json +6 -0
  586. package/tests/fixtures/huawei-maestro-routing/expected/014-happy-functiongraph-serverless-operator.json +6 -0
  587. package/tests/fixtures/huawei-maestro-routing/expected/015-happy-gaussdb-rds-dba.json +6 -0
  588. package/tests/fixtures/huawei-maestro-routing/expected/016-happy-iac-change-safety-review.json +6 -0
  589. package/tests/fixtures/huawei-maestro-routing/expected/017-happy-iam-least-privilege-review.json +6 -0
  590. package/tests/fixtures/huawei-maestro-routing/expected/018-happy-ief-edge-computing-operator.json +6 -0
  591. package/tests/fixtures/huawei-maestro-routing/expected/019-happy-landing-zone-architect.json +6 -0
  592. package/tests/fixtures/huawei-maestro-routing/expected/020-happy-load-balancer-traffic-engineer.json +6 -0
  593. package/tests/fixtures/huawei-maestro-routing/expected/021-happy-migration-architect.json +6 -0
  594. package/tests/fixtures/huawei-maestro-routing/expected/022-happy-modelarts-mlops-engineer.json +6 -0
  595. package/tests/fixtures/huawei-maestro-routing/expected/023-happy-network-architect.json +6 -0
  596. package/tests/fixtures/huawei-maestro-routing/expected/024-happy-obs-data-perimeter-governor.json +6 -0
  597. package/tests/fixtures/huawei-maestro-routing/expected/025-happy-obs-storage-steward.json +6 -0
  598. package/tests/fixtures/huawei-maestro-routing/expected/026-happy-observability-incident-responder.json +6 -0
  599. package/tests/fixtures/huawei-maestro-routing/expected/027-happy-registry-artifact-governor.json +6 -0
  600. package/tests/fixtures/huawei-maestro-routing/expected/028-happy-resilience-bcdr-review.json +6 -0
  601. package/tests/fixtures/huawei-maestro-routing/expected/029-happy-secmaster-security-operations.json +6 -0
  602. package/tests/fixtures/huawei-maestro-routing/expected/030-happy-serverless-production-readiness.json +6 -0
  603. package/tests/fixtures/huawei-maestro-routing/expected/031-happy-solution-architect.json +6 -0
  604. package/tests/fixtures/huawei-maestro-routing/expected/032-happy-support-incident-coordinator.json +6 -0
  605. package/tests/fixtures/huawei-maestro-routing/expected/033-happy-ticket-triage-escalation-coordinator.json +6 -0
  606. package/tests/fixtures/huawei-maestro-routing/expected/034-happy-waf-cost-optimization-review.json +6 -0
  607. package/tests/fixtures/huawei-maestro-routing/expected/035-happy-waf-reliability-review.json +6 -0
  608. package/tests/fixtures/huawei-maestro-routing/expected/036-happy-waf-security-review.json +8 -0
  609. package/tests/fixtures/huawei-maestro-routing/expected/adv-ambiguous.json +4 -0
  610. package/tests/fixtures/huawei-maestro-routing/expected/adv-instruction-injection.json +6 -0
  611. package/tests/fixtures/huawei-maestro-routing/expected/adv-liveguard-01-live-cce-rollout-guard.json +6 -0
  612. package/tests/fixtures/huawei-maestro-routing/expected/adv-liveguard-02-live-cost-budget-action-guard.json +6 -0
  613. package/tests/fixtures/huawei-maestro-routing/expected/adv-liveguard-03-live-gaussdb-mutation-guard.json +6 -0
  614. package/tests/fixtures/huawei-maestro-routing/expected/adv-liveguard-04-live-iam-policy-change-guard.json +6 -0
  615. package/tests/fixtures/huawei-maestro-routing/expected/adv-liveguard-05-live-kms-key-destruction-guard.json +6 -0
  616. package/tests/fixtures/huawei-maestro-routing/expected/adv-liveguard-06-live-obs-bucket-policy-guard.json +6 -0
  617. package/tests/fixtures/huawei-maestro-routing/expected/adv-persona-replacement.json +6 -0
  618. package/tests/fixtures/huawei-maestro-routing/expected/adv-secrets-bait.json +6 -0
  619. package/tests/fixtures/huawei-maestro-routing/inputs/001-happy-cce-container-platform-operator.json +7 -0
  620. package/tests/fixtures/huawei-maestro-routing/inputs/002-happy-certificate-manager-issuer-review.json +7 -0
  621. package/tests/fixtures/huawei-maestro-routing/inputs/003-happy-change-impact-advisor.json +7 -0
  622. package/tests/fixtures/huawei-maestro-routing/inputs/004-happy-codearts-devops-operator.json +7 -0
  623. package/tests/fixtures/huawei-maestro-routing/inputs/005-happy-compliance-sovereignty.json +7 -0
  624. package/tests/fixtures/huawei-maestro-routing/inputs/006-happy-cost-anomaly-watch-coordinator.json +7 -0
  625. package/tests/fixtures/huawei-maestro-routing/inputs/007-happy-cost-finops-analyst.json +7 -0
  626. package/tests/fixtures/huawei-maestro-routing/inputs/008-happy-daily-operations-briefing-coordinator.json +7 -0
  627. package/tests/fixtures/huawei-maestro-routing/inputs/009-happy-dew-kms-lifecycle-steward.json +7 -0
  628. package/tests/fixtures/huawei-maestro-routing/inputs/010-happy-drs-data-replication-operator.json +7 -0
  629. package/tests/fixtures/huawei-maestro-routing/inputs/011-happy-dws-dli-data-analyst.json +7 -0
  630. package/tests/fixtures/huawei-maestro-routing/inputs/012-happy-ecs-compute-operator.json +7 -0
  631. package/tests/fixtures/huawei-maestro-routing/inputs/013-happy-event-driven-architecture-review.json +7 -0
  632. package/tests/fixtures/huawei-maestro-routing/inputs/014-happy-functiongraph-serverless-operator.json +7 -0
  633. package/tests/fixtures/huawei-maestro-routing/inputs/015-happy-gaussdb-rds-dba.json +7 -0
  634. package/tests/fixtures/huawei-maestro-routing/inputs/016-happy-iac-change-safety-review.json +7 -0
  635. package/tests/fixtures/huawei-maestro-routing/inputs/017-happy-iam-least-privilege-review.json +7 -0
  636. package/tests/fixtures/huawei-maestro-routing/inputs/018-happy-ief-edge-computing-operator.json +7 -0
  637. package/tests/fixtures/huawei-maestro-routing/inputs/019-happy-landing-zone-architect.json +7 -0
  638. package/tests/fixtures/huawei-maestro-routing/inputs/020-happy-load-balancer-traffic-engineer.json +7 -0
  639. package/tests/fixtures/huawei-maestro-routing/inputs/021-happy-migration-architect.json +7 -0
  640. package/tests/fixtures/huawei-maestro-routing/inputs/022-happy-modelarts-mlops-engineer.json +7 -0
  641. package/tests/fixtures/huawei-maestro-routing/inputs/023-happy-network-architect.json +7 -0
  642. package/tests/fixtures/huawei-maestro-routing/inputs/024-happy-obs-data-perimeter-governor.json +7 -0
  643. package/tests/fixtures/huawei-maestro-routing/inputs/025-happy-obs-storage-steward.json +7 -0
  644. package/tests/fixtures/huawei-maestro-routing/inputs/026-happy-observability-incident-responder.json +7 -0
  645. package/tests/fixtures/huawei-maestro-routing/inputs/027-happy-registry-artifact-governor.json +7 -0
  646. package/tests/fixtures/huawei-maestro-routing/inputs/028-happy-resilience-bcdr-review.json +7 -0
  647. package/tests/fixtures/huawei-maestro-routing/inputs/029-happy-secmaster-security-operations.json +7 -0
  648. package/tests/fixtures/huawei-maestro-routing/inputs/030-happy-serverless-production-readiness.json +7 -0
  649. package/tests/fixtures/huawei-maestro-routing/inputs/031-happy-solution-architect.json +7 -0
  650. package/tests/fixtures/huawei-maestro-routing/inputs/032-happy-support-incident-coordinator.json +7 -0
  651. package/tests/fixtures/huawei-maestro-routing/inputs/033-happy-ticket-triage-escalation-coordinator.json +7 -0
  652. package/tests/fixtures/huawei-maestro-routing/inputs/034-happy-waf-cost-optimization-review.json +7 -0
  653. package/tests/fixtures/huawei-maestro-routing/inputs/035-happy-waf-reliability-review.json +7 -0
  654. package/tests/fixtures/huawei-maestro-routing/inputs/036-happy-waf-security-review.json +7 -0
  655. package/tests/fixtures/huawei-maestro-routing/inputs/adv-ambiguous.json +7 -0
  656. package/tests/fixtures/huawei-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  657. package/tests/fixtures/huawei-maestro-routing/inputs/adv-liveguard-01-live-cce-rollout-guard.json +7 -0
  658. package/tests/fixtures/huawei-maestro-routing/inputs/adv-liveguard-02-live-cost-budget-action-guard.json +7 -0
  659. package/tests/fixtures/huawei-maestro-routing/inputs/adv-liveguard-03-live-gaussdb-mutation-guard.json +7 -0
  660. package/tests/fixtures/huawei-maestro-routing/inputs/adv-liveguard-04-live-iam-policy-change-guard.json +7 -0
  661. package/tests/fixtures/huawei-maestro-routing/inputs/adv-liveguard-05-live-kms-key-destruction-guard.json +7 -0
  662. package/tests/fixtures/huawei-maestro-routing/inputs/adv-liveguard-06-live-obs-bucket-policy-guard.json +7 -0
  663. package/tests/fixtures/huawei-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  664. package/tests/fixtures/huawei-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  665. package/tests/fixtures/huawei-maestro-routing/taxonomy.json +472 -0
  666. package/tests/fixtures/ionos-maestro-routing/expected/001-happy-cost-optimization-analyst.json +6 -0
  667. package/tests/fixtures/ionos-maestro-routing/expected/002-happy-datacenter-designer-reviewer.json +6 -0
  668. package/tests/fixtures/ionos-maestro-routing/expected/003-happy-kubernetes-platform-operator.json +6 -0
  669. package/tests/fixtures/ionos-maestro-routing/expected/004-happy-security-compliance-reviewer.json +6 -0
  670. package/tests/fixtures/ionos-maestro-routing/expected/adv-ambiguous.json +4 -0
  671. package/tests/fixtures/ionos-maestro-routing/expected/adv-instruction-injection.json +6 -0
  672. package/tests/fixtures/ionos-maestro-routing/expected/adv-liveguard-01-live-database-lifecycle-guard.json +6 -0
  673. package/tests/fixtures/ionos-maestro-routing/expected/adv-persona-replacement.json +6 -0
  674. package/tests/fixtures/ionos-maestro-routing/expected/adv-secrets-bait.json +6 -0
  675. package/tests/fixtures/ionos-maestro-routing/inputs/001-happy-cost-optimization-analyst.json +7 -0
  676. package/tests/fixtures/ionos-maestro-routing/inputs/002-happy-datacenter-designer-reviewer.json +7 -0
  677. package/tests/fixtures/ionos-maestro-routing/inputs/003-happy-kubernetes-platform-operator.json +7 -0
  678. package/tests/fixtures/ionos-maestro-routing/inputs/004-happy-security-compliance-reviewer.json +7 -0
  679. package/tests/fixtures/ionos-maestro-routing/inputs/adv-ambiguous.json +7 -0
  680. package/tests/fixtures/ionos-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  681. package/tests/fixtures/ionos-maestro-routing/inputs/adv-liveguard-01-live-database-lifecycle-guard.json +7 -0
  682. package/tests/fixtures/ionos-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  683. package/tests/fixtures/ionos-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  684. package/tests/fixtures/ionos-maestro-routing/taxonomy.json +48 -0
  685. package/tests/fixtures/kubernetes-maestro-routing/expected/001-happy-external-secrets-operator-review.json +6 -0
  686. package/tests/fixtures/kubernetes-maestro-routing/expected/002-happy-kubecost-chargeback-allocation-review.json +6 -0
  687. package/tests/fixtures/kubernetes-maestro-routing/expected/003-happy-network-architecture-review.json +6 -0
  688. package/tests/fixtures/kubernetes-maestro-routing/expected/004-happy-pod-spec-review.json +6 -0
  689. package/tests/fixtures/kubernetes-maestro-routing/expected/005-happy-psa-review.json +6 -0
  690. package/tests/fixtures/kubernetes-maestro-routing/expected/006-happy-rbac-review.json +6 -0
  691. package/tests/fixtures/kubernetes-maestro-routing/expected/007-happy-workload-identity-review.json +6 -0
  692. package/tests/fixtures/kubernetes-maestro-routing/expected/adv-ambiguous.json +4 -0
  693. package/tests/fixtures/kubernetes-maestro-routing/expected/adv-instruction-injection.json +6 -0
  694. package/tests/fixtures/kubernetes-maestro-routing/expected/adv-liveguard-01-live-admission-policy-guard.json +6 -0
  695. package/tests/fixtures/kubernetes-maestro-routing/expected/adv-liveguard-02-live-argocd-sync-guard.json +6 -0
  696. package/tests/fixtures/kubernetes-maestro-routing/expected/adv-liveguard-03-live-mesh-policy-guard.json +6 -0
  697. package/tests/fixtures/kubernetes-maestro-routing/expected/adv-liveguard-04-live-network-architecture-mutation-guard.json +6 -0
  698. package/tests/fixtures/kubernetes-maestro-routing/expected/adv-liveguard-05-live-network-policy-guard.json +6 -0
  699. package/tests/fixtures/kubernetes-maestro-routing/expected/adv-liveguard-06-live-rbac-mutation-guard.json +6 -0
  700. package/tests/fixtures/kubernetes-maestro-routing/expected/adv-liveguard-07-live-velero-restore-guard.json +6 -0
  701. package/tests/fixtures/kubernetes-maestro-routing/expected/adv-persona-replacement.json +6 -0
  702. package/tests/fixtures/kubernetes-maestro-routing/expected/adv-secrets-bait.json +6 -0
  703. package/tests/fixtures/kubernetes-maestro-routing/inputs/001-happy-external-secrets-operator-review.json +7 -0
  704. package/tests/fixtures/kubernetes-maestro-routing/inputs/002-happy-kubecost-chargeback-allocation-review.json +7 -0
  705. package/tests/fixtures/kubernetes-maestro-routing/inputs/003-happy-network-architecture-review.json +7 -0
  706. package/tests/fixtures/kubernetes-maestro-routing/inputs/004-happy-pod-spec-review.json +7 -0
  707. package/tests/fixtures/kubernetes-maestro-routing/inputs/005-happy-psa-review.json +7 -0
  708. package/tests/fixtures/kubernetes-maestro-routing/inputs/006-happy-rbac-review.json +7 -0
  709. package/tests/fixtures/kubernetes-maestro-routing/inputs/007-happy-workload-identity-review.json +7 -0
  710. package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-ambiguous.json +7 -0
  711. package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  712. package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-liveguard-01-live-admission-policy-guard.json +7 -0
  713. package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-liveguard-02-live-argocd-sync-guard.json +7 -0
  714. package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-liveguard-03-live-mesh-policy-guard.json +7 -0
  715. package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-liveguard-04-live-network-architecture-mutation-guard.json +7 -0
  716. package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-liveguard-05-live-network-policy-guard.json +7 -0
  717. package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-liveguard-06-live-rbac-mutation-guard.json +7 -0
  718. package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-liveguard-07-live-velero-restore-guard.json +7 -0
  719. package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  720. package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  721. package/tests/fixtures/kubernetes-maestro-routing/taxonomy.json +98 -0
  722. package/tests/fixtures/nvidia-maestro-routing/README.md +24 -0
  723. package/tests/fixtures/nvidia-maestro-routing/expected/01-cuda-coalescing.json +6 -0
  724. package/tests/fixtures/nvidia-maestro-routing/expected/02-dcgm-coverage.json +6 -0
  725. package/tests/fixtures/nvidia-maestro-routing/expected/03-ngc-cosign-policy.json +6 -0
  726. package/tests/fixtures/nvidia-maestro-routing/expected/04-triton-batching.json +6 -0
  727. package/tests/fixtures/nvidia-maestro-routing/expected/05-trt-int8-calibration.json +6 -0
  728. package/tests/fixtures/nvidia-maestro-routing/expected/06-gpu-operator-securitycontext.json +6 -0
  729. package/tests/fixtures/nvidia-maestro-routing/expected/07-spectrumx-nccl.json +6 -0
  730. package/tests/fixtures/nvidia-maestro-routing/expected/08-dgx-bmc.json +6 -0
  731. package/tests/fixtures/nvidia-maestro-routing/expected/09-nemo-agent-toolkit.json +6 -0
  732. package/tests/fixtures/nvidia-maestro-routing/expected/10-nemo-genai.json +6 -0
  733. package/tests/fixtures/nvidia-maestro-routing/expected/11-multi-domain-dgx-bringup.json +8 -0
  734. package/tests/fixtures/nvidia-maestro-routing/expected/12-promote-nim-to-prod.json +6 -0
  735. package/tests/fixtures/nvidia-maestro-routing/inputs/01-cuda-coalescing.json +4 -0
  736. package/tests/fixtures/nvidia-maestro-routing/inputs/02-dcgm-coverage.json +4 -0
  737. package/tests/fixtures/nvidia-maestro-routing/inputs/03-ngc-cosign-policy.json +4 -0
  738. package/tests/fixtures/nvidia-maestro-routing/inputs/04-triton-batching.json +4 -0
  739. package/tests/fixtures/nvidia-maestro-routing/inputs/05-trt-int8-calibration.json +4 -0
  740. package/tests/fixtures/nvidia-maestro-routing/inputs/06-gpu-operator-securitycontext.json +4 -0
  741. package/tests/fixtures/nvidia-maestro-routing/inputs/07-spectrumx-nccl.json +4 -0
  742. package/tests/fixtures/nvidia-maestro-routing/inputs/08-dgx-bmc.json +4 -0
  743. package/tests/fixtures/nvidia-maestro-routing/inputs/09-nemo-agent-toolkit.json +4 -0
  744. package/tests/fixtures/nvidia-maestro-routing/inputs/10-nemo-genai.json +4 -0
  745. package/tests/fixtures/nvidia-maestro-routing/inputs/11-multi-domain-dgx-bringup.json +4 -0
  746. package/tests/fixtures/nvidia-maestro-routing/inputs/12-promote-nim-to-prod.json +4 -0
  747. package/tests/fixtures/nvidia-maestro-routing/taxonomy.json +49 -0
  748. package/tests/fixtures/nvidia-model-promotion-gatekeeper/README.md +34 -0
  749. package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/01-clean.json +7 -0
  750. package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/02-unsigned.json +7 -0
  751. package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/03-digest-drift.json +7 -0
  752. package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/04-missing-sbom.json +7 -0
  753. package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/05-missing-model-card.json +7 -0
  754. package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/06-cve-regression.json +7 -0
  755. package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/07-expired-cert.json +7 -0
  756. package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/08-wrong-issuer.json +7 -0
  757. package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/09-unknown-registry.json +7 -0
  758. package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/10-replay-stale-attestation.json +7 -0
  759. package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/11-label-only-model-card.json +7 -0
  760. package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/01-clean.json +45 -0
  761. package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/02-unsigned.json +42 -0
  762. package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/03-digest-drift.json +45 -0
  763. package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/04-missing-sbom.json +44 -0
  764. package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/05-missing-model-card.json +44 -0
  765. package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/06-cve-regression.json +45 -0
  766. package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/07-expired-cert.json +45 -0
  767. package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/08-wrong-issuer.json +45 -0
  768. package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/09-unknown-registry.json +45 -0
  769. package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/10-replay-stale-attestation.json +45 -0
  770. package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/11-label-only-model-card.json +45 -0
  771. package/tests/fixtures/oci-maestro-routing/expected/001-happy-autonomous-database-architect.json +6 -0
  772. package/tests/fixtures/oci-maestro-routing/expected/002-happy-certificates-issuer-review.json +6 -0
  773. package/tests/fixtures/oci-maestro-routing/expected/003-happy-compute-instance-agent-operator.json +6 -0
  774. package/tests/fixtures/oci-maestro-routing/expected/004-happy-compute-platform-operator.json +6 -0
  775. package/tests/fixtures/oci-maestro-routing/expected/005-happy-cost-finops-analyst.json +6 -0
  776. package/tests/fixtures/oci-maestro-routing/expected/006-happy-database-platform-dba.json +6 -0
  777. package/tests/fixtures/oci-maestro-routing/expected/007-happy-dbtools-sql-analyst.json +6 -0
  778. package/tests/fixtures/oci-maestro-routing/expected/008-happy-devops-container-platform-engineer.json +6 -0
  779. package/tests/fixtures/oci-maestro-routing/expected/009-happy-exadata-platform-architect.json +6 -0
  780. package/tests/fixtures/oci-maestro-routing/expected/010-happy-fusion-apps-environment-operator.json +6 -0
  781. package/tests/fixtures/oci-maestro-routing/expected/011-happy-goldengate-replication-operator.json +6 -0
  782. package/tests/fixtures/oci-maestro-routing/expected/012-happy-identity-access-governor.json +6 -0
  783. package/tests/fixtures/oci-maestro-routing/expected/013-happy-iot-digital-twin-engineer.json +6 -0
  784. package/tests/fixtures/oci-maestro-routing/expected/014-happy-limits-capacity-planner.json +6 -0
  785. package/tests/fixtures/oci-maestro-routing/expected/015-happy-load-balancer-traffic-engineer.json +6 -0
  786. package/tests/fixtures/oci-maestro-routing/expected/016-happy-migration-cutover-architect.json +6 -0
  787. package/tests/fixtures/oci-maestro-routing/expected/017-happy-multi-cloud-architect.json +6 -0
  788. package/tests/fixtures/oci-maestro-routing/expected/018-happy-mysql-heatwave-ai-specialist.json +6 -0
  789. package/tests/fixtures/oci-maestro-routing/expected/019-happy-network-architect.json +6 -0
  790. package/tests/fixtures/oci-maestro-routing/expected/020-happy-observability-incident-responder.json +6 -0
  791. package/tests/fixtures/oci-maestro-routing/expected/021-happy-recovery-service-operator.json +6 -0
  792. package/tests/fixtures/oci-maestro-routing/expected/022-happy-registry-artifact-governor.json +6 -0
  793. package/tests/fixtures/oci-maestro-routing/expected/023-happy-resource-search-inventory-analyst.json +6 -0
  794. package/tests/fixtures/oci-maestro-routing/expected/024-happy-security-compliance-reviewer.json +6 -0
  795. package/tests/fixtures/oci-maestro-routing/expected/025-happy-solution-architect.json +6 -0
  796. package/tests/fixtures/oci-maestro-routing/expected/026-happy-storage-backup-steward.json +6 -0
  797. package/tests/fixtures/oci-maestro-routing/expected/027-happy-support-incident-coordinator.json +6 -0
  798. package/tests/fixtures/oci-maestro-routing/expected/028-happy-waf-cost-optimization-review.json +6 -0
  799. package/tests/fixtures/oci-maestro-routing/expected/029-happy-waf-reliability-review.json +6 -0
  800. package/tests/fixtures/oci-maestro-routing/expected/030-happy-waf-security-review.json +6 -0
  801. package/tests/fixtures/oci-maestro-routing/expected/adv-ambiguous.json +4 -0
  802. package/tests/fixtures/oci-maestro-routing/expected/adv-instruction-injection.json +6 -0
  803. package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-01-cloud-guard-responder.json +6 -0
  804. package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-02-live-autonomous-db-lifecycle-guard.json +6 -0
  805. package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-03-live-cost-budget-runaway-guard.json +6 -0
  806. package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-04-live-iam-policy-compartment-guard.json +6 -0
  807. package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-05-live-network-security-rule-guard.json +6 -0
  808. package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-06-live-oke-rollout-guard.json +6 -0
  809. package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-07-live-resource-manager-stack-guard.json +6 -0
  810. package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-08-live-vault-key-destruction-guard.json +6 -0
  811. package/tests/fixtures/oci-maestro-routing/expected/adv-persona-replacement.json +6 -0
  812. package/tests/fixtures/oci-maestro-routing/expected/adv-secrets-bait.json +7 -0
  813. package/tests/fixtures/oci-maestro-routing/inputs/001-happy-autonomous-database-architect.json +7 -0
  814. package/tests/fixtures/oci-maestro-routing/inputs/002-happy-certificates-issuer-review.json +7 -0
  815. package/tests/fixtures/oci-maestro-routing/inputs/003-happy-compute-instance-agent-operator.json +7 -0
  816. package/tests/fixtures/oci-maestro-routing/inputs/004-happy-compute-platform-operator.json +7 -0
  817. package/tests/fixtures/oci-maestro-routing/inputs/005-happy-cost-finops-analyst.json +7 -0
  818. package/tests/fixtures/oci-maestro-routing/inputs/006-happy-database-platform-dba.json +7 -0
  819. package/tests/fixtures/oci-maestro-routing/inputs/007-happy-dbtools-sql-analyst.json +7 -0
  820. package/tests/fixtures/oci-maestro-routing/inputs/008-happy-devops-container-platform-engineer.json +7 -0
  821. package/tests/fixtures/oci-maestro-routing/inputs/009-happy-exadata-platform-architect.json +7 -0
  822. package/tests/fixtures/oci-maestro-routing/inputs/010-happy-fusion-apps-environment-operator.json +7 -0
  823. package/tests/fixtures/oci-maestro-routing/inputs/011-happy-goldengate-replication-operator.json +7 -0
  824. package/tests/fixtures/oci-maestro-routing/inputs/012-happy-identity-access-governor.json +7 -0
  825. package/tests/fixtures/oci-maestro-routing/inputs/013-happy-iot-digital-twin-engineer.json +7 -0
  826. package/tests/fixtures/oci-maestro-routing/inputs/014-happy-limits-capacity-planner.json +7 -0
  827. package/tests/fixtures/oci-maestro-routing/inputs/015-happy-load-balancer-traffic-engineer.json +7 -0
  828. package/tests/fixtures/oci-maestro-routing/inputs/016-happy-migration-cutover-architect.json +7 -0
  829. package/tests/fixtures/oci-maestro-routing/inputs/017-happy-multi-cloud-architect.json +7 -0
  830. package/tests/fixtures/oci-maestro-routing/inputs/018-happy-mysql-heatwave-ai-specialist.json +7 -0
  831. package/tests/fixtures/oci-maestro-routing/inputs/019-happy-network-architect.json +7 -0
  832. package/tests/fixtures/oci-maestro-routing/inputs/020-happy-observability-incident-responder.json +7 -0
  833. package/tests/fixtures/oci-maestro-routing/inputs/021-happy-recovery-service-operator.json +7 -0
  834. package/tests/fixtures/oci-maestro-routing/inputs/022-happy-registry-artifact-governor.json +7 -0
  835. package/tests/fixtures/oci-maestro-routing/inputs/023-happy-resource-search-inventory-analyst.json +7 -0
  836. package/tests/fixtures/oci-maestro-routing/inputs/024-happy-security-compliance-reviewer.json +7 -0
  837. package/tests/fixtures/oci-maestro-routing/inputs/025-happy-solution-architect.json +7 -0
  838. package/tests/fixtures/oci-maestro-routing/inputs/026-happy-storage-backup-steward.json +7 -0
  839. package/tests/fixtures/oci-maestro-routing/inputs/027-happy-support-incident-coordinator.json +7 -0
  840. package/tests/fixtures/oci-maestro-routing/inputs/028-happy-waf-cost-optimization-review.json +7 -0
  841. package/tests/fixtures/oci-maestro-routing/inputs/029-happy-waf-reliability-review.json +7 -0
  842. package/tests/fixtures/oci-maestro-routing/inputs/030-happy-waf-security-review.json +7 -0
  843. package/tests/fixtures/oci-maestro-routing/inputs/adv-ambiguous.json +7 -0
  844. package/tests/fixtures/oci-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  845. package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-01-cloud-guard-responder.json +7 -0
  846. package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-02-live-autonomous-db-lifecycle-guard.json +7 -0
  847. package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-03-live-cost-budget-runaway-guard.json +7 -0
  848. package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-04-live-iam-policy-compartment-guard.json +7 -0
  849. package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-05-live-network-security-rule-guard.json +7 -0
  850. package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-06-live-oke-rollout-guard.json +7 -0
  851. package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-07-live-resource-manager-stack-guard.json +7 -0
  852. package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-08-live-vault-key-destruction-guard.json +7 -0
  853. package/tests/fixtures/oci-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  854. package/tests/fixtures/oci-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  855. package/tests/fixtures/oci-maestro-routing/taxonomy.json +381 -0
  856. package/tests/fixtures/ovhcloud-maestro-routing/expected/001-happy-cost-finops-analyst.json +6 -0
  857. package/tests/fixtures/ovhcloud-maestro-routing/expected/002-happy-iam-policy-review.json +6 -0
  858. package/tests/fixtures/ovhcloud-maestro-routing/expected/003-happy-kubernetes-platform-operator.json +6 -0
  859. package/tests/fixtures/ovhcloud-maestro-routing/expected/004-happy-network-architect.json +6 -0
  860. package/tests/fixtures/ovhcloud-maestro-routing/expected/adv-ambiguous.json +4 -0
  861. package/tests/fixtures/ovhcloud-maestro-routing/expected/adv-instruction-injection.json +6 -0
  862. package/tests/fixtures/ovhcloud-maestro-routing/expected/adv-liveguard-01-live-kms-key-destruction-guard.json +6 -0
  863. package/tests/fixtures/ovhcloud-maestro-routing/expected/adv-persona-replacement.json +6 -0
  864. package/tests/fixtures/ovhcloud-maestro-routing/expected/adv-secrets-bait.json +6 -0
  865. package/tests/fixtures/ovhcloud-maestro-routing/inputs/001-happy-cost-finops-analyst.json +7 -0
  866. package/tests/fixtures/ovhcloud-maestro-routing/inputs/002-happy-iam-policy-review.json +7 -0
  867. package/tests/fixtures/ovhcloud-maestro-routing/inputs/003-happy-kubernetes-platform-operator.json +7 -0
  868. package/tests/fixtures/ovhcloud-maestro-routing/inputs/004-happy-network-architect.json +7 -0
  869. package/tests/fixtures/ovhcloud-maestro-routing/inputs/adv-ambiguous.json +7 -0
  870. package/tests/fixtures/ovhcloud-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  871. package/tests/fixtures/ovhcloud-maestro-routing/inputs/adv-liveguard-01-live-kms-key-destruction-guard.json +7 -0
  872. package/tests/fixtures/ovhcloud-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  873. package/tests/fixtures/ovhcloud-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  874. package/tests/fixtures/ovhcloud-maestro-routing/taxonomy.json +46 -0
  875. package/tests/fixtures/scaleway-maestro-routing/expected/001-happy-cost-optimizer.json +6 -0
  876. package/tests/fixtures/scaleway-maestro-routing/expected/002-happy-iam-policy-review.json +6 -0
  877. package/tests/fixtures/scaleway-maestro-routing/expected/003-happy-kapsule-platform-operator.json +6 -0
  878. package/tests/fixtures/scaleway-maestro-routing/expected/004-happy-network-architect.json +6 -0
  879. package/tests/fixtures/scaleway-maestro-routing/expected/adv-ambiguous.json +4 -0
  880. package/tests/fixtures/scaleway-maestro-routing/expected/adv-instruction-injection.json +6 -0
  881. package/tests/fixtures/scaleway-maestro-routing/expected/adv-liveguard-01-live-kapsule-rollout-guard.json +6 -0
  882. package/tests/fixtures/scaleway-maestro-routing/expected/adv-persona-replacement.json +6 -0
  883. package/tests/fixtures/scaleway-maestro-routing/expected/adv-secrets-bait.json +6 -0
  884. package/tests/fixtures/scaleway-maestro-routing/inputs/001-happy-cost-optimizer.json +7 -0
  885. package/tests/fixtures/scaleway-maestro-routing/inputs/002-happy-iam-policy-review.json +7 -0
  886. package/tests/fixtures/scaleway-maestro-routing/inputs/003-happy-kapsule-platform-operator.json +7 -0
  887. package/tests/fixtures/scaleway-maestro-routing/inputs/004-happy-network-architect.json +7 -0
  888. package/tests/fixtures/scaleway-maestro-routing/inputs/adv-ambiguous.json +7 -0
  889. package/tests/fixtures/scaleway-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  890. package/tests/fixtures/scaleway-maestro-routing/inputs/adv-liveguard-01-live-kapsule-rollout-guard.json +7 -0
  891. package/tests/fixtures/scaleway-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  892. package/tests/fixtures/scaleway-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  893. package/tests/fixtures/scaleway-maestro-routing/taxonomy.json +54 -0
  894. package/tests/fixtures/terraform-maestro-routing/expected/001-happy-reviewer.json +6 -0
  895. package/tests/fixtures/terraform-maestro-routing/expected/adv-ambiguous.json +4 -0
  896. package/tests/fixtures/terraform-maestro-routing/expected/adv-instruction-injection.json +6 -0
  897. package/tests/fixtures/terraform-maestro-routing/expected/adv-persona-replacement.json +6 -0
  898. package/tests/fixtures/terraform-maestro-routing/expected/adv-secrets-bait.json +6 -0
  899. package/tests/fixtures/terraform-maestro-routing/inputs/001-happy-reviewer.json +7 -0
  900. package/tests/fixtures/terraform-maestro-routing/inputs/adv-ambiguous.json +7 -0
  901. package/tests/fixtures/terraform-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  902. package/tests/fixtures/terraform-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  903. package/tests/fixtures/terraform-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  904. package/tests/fixtures/terraform-maestro-routing/taxonomy.json +107 -0
  905. package/tests/fuzz-properties.test.mjs +211 -0
  906. package/tests/integration/rbac-pre-flight/README.md +160 -0
  907. package/tests/integration/rbac-pre-flight/ci/kind-rbac-preflight.yaml +49 -0
  908. package/tests/integration/rbac-pre-flight/guards/admission-policy.sh +53 -0
  909. package/tests/integration/rbac-pre-flight/guards/argocd-sync.sh +50 -0
  910. package/tests/integration/rbac-pre-flight/guards/mesh-policy.sh +48 -0
  911. package/tests/integration/rbac-pre-flight/guards/network-arch.sh +119 -0
  912. package/tests/integration/rbac-pre-flight/guards/network-policy.sh +49 -0
  913. package/tests/integration/rbac-pre-flight/guards/rbac-mutation.sh +56 -0
  914. package/tests/integration/rbac-pre-flight/guards/velero-restore.sh +52 -0
  915. package/tests/integration/rbac-pre-flight/lib/common.sh +252 -0
  916. package/tests/integration/rbac-pre-flight/run-all.sh +229 -0
  917. package/tests/test-copilot-skill-bundling.py +129 -0
  918. package/tests/test-gemini-skill-bundling.py +102 -0
  919. package/tests/test-marketplace-validators.py +685 -0
  920. package/tests/test-vfa-export-coverage.test.mjs +717 -0
  921. package/tests/validate-agent-frontmatter-schema.py +256 -0
  922. package/tests/validate-asset-integrity.py +234 -0
  923. package/tests/validate-aws-progressive-disclosure.py +72 -0
  924. package/tests/validate-aws-skill-quality.py +171 -0
  925. package/tests/validate-azure-oci-live-guards.sh +157 -0
  926. package/tests/validate-catalog.py +361 -0
  927. package/tests/validate-codex-marketplace.py +152 -0
  928. package/tests/validate-finops-price-fixtures.py +200 -0
  929. package/tests/validate-kiro-powers.py +243 -0
  930. package/tests/validate-links.py +94 -0
  931. package/tests/validate-maestro-routing.py +220 -0
  932. package/tests/validate-mcp-trust-matrix.py +91 -0
  933. package/tests/validate-multi-harness-marketplace.py +188 -0
  934. package/tests/validate-no-lifecycle-scripts.py +86 -0
  935. package/tests/validate-nvidia-promotion-gatekeeper.py +299 -0
  936. package/tests/validate-plugin-manifest.py +147 -0
  937. package/tests/validate-skill-allowed-tools.py +138 -0
  938. package/tests/validate-skill-frontmatter-schema.py +286 -0
  939. package/tests/validate-skill-manifest.py +116 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raishin/vanguard-frontier-agentic",
3
- "version": "1.8.0",
3
+ "version": "2.0.0",
4
4
  "description": "Cloud and zero-trust agentic workflow marketplace for skills, agents, rules, MCP references, and compliance-aware architecture.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -32,7 +32,8 @@
32
32
  "rules/",
33
33
  "mcp/",
34
34
  "templates/",
35
- "assets/"
35
+ "assets/",
36
+ "tests/"
36
37
  ],
37
38
  "scripts": {
38
39
  "agents:export": "node scripts/export-marketplace-agents.mjs",
@@ -54,6 +55,7 @@
54
55
  "validate:kiro-powers": "python3 tests/validate-kiro-powers.py",
55
56
  "validate:multi-harness-marketplace": "python3 tests/validate-multi-harness-marketplace.py",
56
57
  "validate:codex-marketplace": "python3 tests/validate-codex-marketplace.py",
58
+ "validate:finops-fixtures": "python3 tests/validate-finops-price-fixtures.py",
57
59
  "test:marketplace-validators": "python3 tests/test-marketplace-validators.py",
58
60
  "maestro-routing:write": "python3 tests/_generate_maestro_routing_fixtures.py",
59
61
  "plugin-manifest:write": "node scripts/generate-plugin-manifest.mjs",
@@ -64,7 +66,7 @@
64
66
  "test:gemini-bundling": "python3 tests/test-gemini-skill-bundling.py",
65
67
  "test:cursor-kiro-notices": "node tests/export-cursor-kiro-skill-notice.test.mjs",
66
68
  "test:fuzz": "node tests/fuzz-properties.test.mjs",
67
- "validate": "npm run validate:catalog && npm run validate:aws && npm run manifest:check && npm run validate:allowed-tools && npm run validate:skill-schema && npm run validate:agent-schema && npm run validate:links && npm run validate:asset-integrity && npm run validate:mcp-trust-matrix && npm run validate:no-lifecycle-scripts && npm run validate:promotion-gatekeeper && npm run validate:install-coverage && npm run validate:maestro-routing && npm run validate:plugin-manifest && npm run validate:kiro-powers && npm run validate:multi-harness-marketplace && npm run validate:codex-marketplace",
69
+ "validate": "npm run validate:catalog && npm run validate:aws && npm run manifest:check && npm run validate:allowed-tools && npm run validate:skill-schema && npm run validate:agent-schema && npm run validate:links && npm run validate:asset-integrity && npm run validate:mcp-trust-matrix && npm run validate:no-lifecycle-scripts && npm run validate:promotion-gatekeeper && npm run validate:install-coverage && npm run validate:maestro-routing && npm run validate:plugin-manifest && npm run validate:kiro-powers && npm run validate:multi-harness-marketplace && npm run validate:codex-marketplace && npm run validate:finops-fixtures",
68
70
  "release:sbom": "command -v syft >/dev/null 2>&1 && syft scan dir:. -o spdx-json=sbom.spdx.json || echo 'syft not installed; SBOM is generated in CI by anchore/sbom-action'",
69
71
  "lint:md": "npx --yes markdownlint-cli2 \"**/*.md\" \"#node_modules\" \"#.git\" \"#.code-review-graph\" \"#CHANGELOG.md\"",
70
72
  "lint:spell": "codespell",
@@ -75,9 +77,9 @@
75
77
  "@semantic-release/commit-analyzer": "13.0.1",
76
78
  "@semantic-release/exec": "7.1.0",
77
79
  "@semantic-release/git": "10.0.1",
78
- "@semantic-release/github": "12.0.6",
80
+ "@semantic-release/github": "12.0.8",
79
81
  "@semantic-release/npm": "13.1.5",
80
- "@semantic-release/release-notes-generator": "14.1.0",
82
+ "@semantic-release/release-notes-generator": "14.1.1",
81
83
  "conventional-changelog-conventionalcommits": "9.3.1",
82
84
  "fast-check": "^4.7.0",
83
85
  "semantic-release": "25.0.3"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vanguard-frontier-agentic",
3
- "version": "1.8.0",
3
+ "version": "2.0.0",
4
4
  "description": "Curated marketplace for cloud and zero-trust AI workflows. 331 agents, 286 skills, and rules across AWS, Azure, OCI, GCP, Alibaba Cloud, Huawei Cloud, Kubernetes, and Terraform.",
5
5
  "author": {
6
6
  "name": "Raishin",
@@ -40,7 +40,7 @@ Live-guard agents enforce approval, target confirmation, evidence capture, and r
40
40
 
41
41
  ## Where the agents live
42
42
 
43
- Agent specs and adapters are part of the [Vanguard Frontier Agentic](https://github.com/Raishin/vanguard-frontier-agentic) marketplace. For this provider, see `agents/kubernetes/` in that repository. All 15 agents in this provider ship a Kiro adapter (`harnesses/kiro-ide.agent.md`, `kiro-cli.agent.json`).
43
+ Agent specs and adapters are part of the [Vanguard Frontier Agentic](https://github.com/Raishin/vanguard-frontier-agentic) marketplace. For this provider, see `agents/kubernetes/` in that repository. All 16 agents in this provider ship a Kiro adapter (`harnesses/kiro-ide.agent.md`, `kiro-cli.agent.json`).
44
44
 
45
45
  ## Companion install paths
46
46
 
@@ -4,6 +4,7 @@ import fs from "node:fs";
4
4
  import path from "node:path";
5
5
  import process from "node:process";
6
6
  import { fileURLToPath } from "node:url";
7
+ import { parseArgs as utilParseArgs } from "node:util";
7
8
 
8
9
  const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
9
10
 
@@ -119,8 +120,13 @@ Selectors (mutually exclusive):
119
120
 
120
121
  --provider <p> --role <r> → narrow the role to agents whose provider == p.
121
122
  --provider <p> → standalone; equivalent to --all filtered to p.
122
- --dry-run Print the export plan as "export agent: <id> [provider=<p>]"
123
- lines without copying any files. Exit 0 on success.
123
+
124
+ Options:
125
+ --repo <path> Target repository path (default: cwd).
126
+ --force Overwrite existing files without prompting.
127
+ --list-providers List all providers with agent counts; then exit.
128
+ --dry-run Print the export plan without writing files.
129
+ --no-skills Skip companion skill bundling.
124
130
 
125
131
  Companion skills:
126
132
  By default, when --platform supports skill bundling (claude-code, copilot, gemini),
@@ -137,8 +143,8 @@ Examples:
137
143
  vfa-export-agents --platform claude-code --agents azure-cosmosdb-platform-operator-agent
138
144
  vfa-export-agents --platform claude-code --role cloud-security-engineer
139
145
  vfa-export-agents --platform claude-code --role cloud-security-engineer --provider azure
140
- vfa-export-agents --platform claude-code --provider nvidia
141
- vfa-export-agents --platform claude-code --provider nvidia --dry-run
146
+ vfa-export-agents --platform claude-code --provider aws
147
+ vfa-export-agents --platform claude-code --provider azure --dry-run
142
148
  vfa-export-agents --platform claude-code --all --no-skills --repo /path/to/project
143
149
  vfa-export-agents --platform kiro --agents azure-cosmosdb-platform-operator-agent --repo ../consumer-repo
144
150
  vfa-export-agents --platform copilot --all --repo /path/to/project --force
@@ -148,79 +154,71 @@ Examples:
148
154
  }
149
155
 
150
156
  function parseArgs(argv) {
151
- const args = {
152
- repo: process.cwd(),
153
- force: false,
154
- list: false,
155
- listRoles: false,
156
- listProviders: false,
157
- all: false,
158
- dryRun: false,
159
- agents: [],
160
- platform: null,
161
- role: null,
162
- provider: null,
163
- noSkills: false,
164
- };
157
+ // Use Node.js built-in util.parseArgs (stable since v18.3, available in v22):
158
+ // - handles --key=value inline form natively
159
+ // - returns null-prototype values object (prototype pollution safe)
160
+ // - strict mode throws a real Error for unknown flags (not a silent usage() exit)
161
+ let parsed;
162
+ try {
163
+ parsed = utilParseArgs({
164
+ args: argv,
165
+ strict: true,
166
+ allowPositionals: false,
167
+ options: {
168
+ help: { type: "boolean", short: "h", default: false },
169
+ list: { type: "boolean", default: false },
170
+ "list-roles": { type: "boolean", default: false },
171
+ "list-providers": { type: "boolean", default: false },
172
+ force: { type: "boolean", default: false },
173
+ all: { type: "boolean", default: false },
174
+ "dry-run": { type: "boolean", default: false },
175
+ "no-skills": { type: "boolean", default: false },
176
+ platform: { type: "string" },
177
+ role: { type: "string" },
178
+ provider: { type: "string" },
179
+ repo: { type: "string" },
180
+ agents: { type: "string" },
181
+ },
182
+ });
183
+ } catch (err) {
184
+ // Unknown or mistyped flags surface here with a clear message.
185
+ console.error(err.message);
186
+ usage(1);
187
+ }
165
188
 
166
- for (let i = 0; i < argv.length; i += 1) {
167
- const arg = argv[i];
168
- if (arg === "--help" || arg === "-h") usage(0);
169
- if (arg === "--list") {
170
- args.list = true;
171
- continue;
172
- }
173
- if (arg === "--list-roles") {
174
- args.listRoles = true;
175
- continue;
176
- }
177
- if (arg === "--list-providers") {
178
- args.listProviders = true;
179
- continue;
180
- }
181
- if (arg === "--force") {
182
- args.force = true;
183
- continue;
184
- }
185
- if (arg === "--all") {
186
- args.all = true;
187
- continue;
188
- }
189
- if (arg === "--dry-run") {
190
- args.dryRun = true;
191
- continue;
192
- }
193
- if (arg === "--no-skills") {
194
- args.noSkills = true;
195
- continue;
196
- }
197
- if (arg === "--repo") {
198
- args.repo = path.resolve(argv[++i] ?? "");
199
- continue;
200
- }
201
- if (arg === "--platform") {
202
- args.platform = argv[++i] ?? "";
203
- continue;
204
- }
205
- if (arg === "--agents") {
206
- args.agents = (argv[++i] ?? "")
207
- .split(",")
208
- .map((value) => value.trim())
209
- .filter(Boolean);
210
- continue;
211
- }
212
- if (arg === "--role") {
213
- args.role = argv[++i] ?? "";
214
- continue;
215
- }
216
- if (arg === "--provider") {
217
- args.provider = argv[++i] ?? "";
218
- continue;
189
+ const v = parsed.values;
190
+ if (v.help) usage(0);
191
+
192
+ // Validate --provider: empty string and whitespace-only are rejected.
193
+ // unicode zero-width chars (e.g. U+200B) pass trim() in some engines so
194
+ // the downstream format regex /^[a-z0-9][a-z0-9-]*$/ acts as a second gate.
195
+ const providerRaw = v.provider ?? null;
196
+ if (providerRaw !== null) {
197
+ const provVal = providerRaw.trim();
198
+ if (!provVal) {
199
+ throw new Error(
200
+ "--provider requires a non-empty value. " +
201
+ "Run 'vfa-export-agents --list-providers' for valid options."
202
+ );
219
203
  }
220
- usage(1);
221
204
  }
222
205
 
223
- return args;
206
+ return {
207
+ repo: v.repo ? path.resolve(v.repo) : process.cwd(),
208
+ force: v.force ?? false,
209
+ list: v.list ?? false,
210
+ listRoles: v["list-roles"] ?? false,
211
+ listProviders: v["list-providers"] ?? false,
212
+ all: v.all ?? false,
213
+ dryRun: v["dry-run"] ?? false,
214
+ noSkills: v["no-skills"] ?? false,
215
+ platform: v.platform ?? null,
216
+ role: v.role ?? null,
217
+ provider: providerRaw !== null ? providerRaw.trim() : null,
218
+ agents: v.agents
219
+ ? v.agents.split(",").map((s) => s.trim()).filter(Boolean)
220
+ : [],
221
+ };
224
222
  }
225
223
 
226
224
  function walk(dir, matcher, results = []) {
@@ -274,6 +272,16 @@ function ensurePlatform(platform) {
274
272
  }
275
273
 
276
274
  function assertWithin(parent, child, label) {
275
+ // Lexical containment check — path.resolve() is purely string-based and does
276
+ // NOT follow symlinks. This guards against traversal strings (../../) and
277
+ // metadata.json with absolute paths outside the repo.
278
+ //
279
+ // Residual TOCTOU: if an adversary races to create a symlink at `child`
280
+ // AFTER this check but BEFORE the actual write, the symlink target would be
281
+ // written to. copyFile()/copySkillTree() use lstatSync on source AND
282
+ // destination to detect pre-existing symlinks, which closes the window for
283
+ // the common case. A fully TOCTOU-proof solution requires O_NOFOLLOW at the
284
+ // kernel level, which is not exposed by Node.js fs APIs.
277
285
  const resolvedParent = path.resolve(parent);
278
286
  const resolvedChild = path.resolve(child);
279
287
  const sep = path.sep;
@@ -297,7 +305,7 @@ function loadSkills() {
297
305
  if (!skill.isDirectory()) continue;
298
306
  const skillDir = path.join(providerDir, skill.name);
299
307
  if (fs.existsSync(path.join(skillDir, "SKILL.md"))) {
300
- byName.set(skill.name, skillDir);
308
+ byName.set(skill.name, { dir: skillDir, provider: provider.name });
301
309
  }
302
310
  }
303
311
  }
@@ -325,20 +333,38 @@ function copySkillTree(sourceDir, destDir, force) {
325
333
  }
326
334
  }
327
335
 
328
- function resolveCompanionSkills(selectedAgents, skillsByName, role, includeAll) {
336
+ function resolveCompanionSkills(selectedAgents, skillsByName, role, includeAll, selectedProvider) {
329
337
  const skillNames = new Set();
330
338
  if (includeAll) {
331
- for (const name of skillsByName.keys()) skillNames.add(name);
339
+ for (const [name, meta] of skillsByName.entries()) {
340
+ if (!selectedProvider || meta.provider === selectedProvider || meta.provider === "shared") {
341
+ skillNames.add(name);
342
+ }
343
+ }
332
344
  }
333
345
  if (role && Array.isArray(role.skills)) {
334
- for (const id of role.skills) skillNames.add(id);
346
+ for (const id of role.skills) {
347
+ const meta = skillsByName.get(id);
348
+ // Exclude skills not found on disk — do not promote undefined through the
349
+ // provider gate (the old `!meta` branch made dry-run output lie about what
350
+ // would actually be written, masking catalog rot).
351
+ if (!meta) continue;
352
+ if (!selectedProvider || meta.provider === selectedProvider || meta.provider === "shared") {
353
+ skillNames.add(id);
354
+ }
355
+ }
335
356
  }
336
357
  const orphans = [];
337
358
  for (const agent of selectedAgents) {
338
359
  // Prefer explicit companion_skills if declared (even if empty — that means intentional no-pair)
339
360
  if (Array.isArray(agent.companion_skills)) {
340
361
  for (const skillId of agent.companion_skills) {
341
- if (skillsByName.has(skillId)) skillNames.add(skillId);
362
+ const meta = skillsByName.get(skillId);
363
+ // Apply the same provider scope gate used for role.skills — prevents a
364
+ // cross-provider companion_skills declaration from leaking rival skills.
365
+ if (meta && (!selectedProvider || meta.provider === selectedProvider || meta.provider === "shared")) {
366
+ skillNames.add(skillId);
367
+ }
342
368
  }
343
369
  // companion_skills: [] is intentional no-pair — do NOT count as orphan
344
370
  continue;
@@ -347,7 +373,8 @@ function resolveCompanionSkills(selectedAgents, skillsByName, role, includeAll)
347
373
  const skillName = agent.id.endsWith("-agent")
348
374
  ? agent.id.slice(0, -"-agent".length)
349
375
  : agent.id;
350
- if (skillsByName.has(skillName)) {
376
+ const meta = skillsByName.get(skillName);
377
+ if (meta && (!selectedProvider || meta.provider === selectedProvider || meta.provider === "shared")) {
351
378
  skillNames.add(skillName);
352
379
  } else if (!role) {
353
380
  orphans.push(agent.id);
@@ -361,8 +388,21 @@ function copyFile(source, destination, force) {
361
388
  if (sourceStat.isSymbolicLink()) {
362
389
  throw new Error(`Refusing to copy symbolic link as harness source: ${source}`);
363
390
  }
364
- if (!force && fs.existsSync(destination)) {
365
- throw new Error(`Refusing to overwrite existing file without --force: ${destination}`);
391
+ if (fs.existsSync(destination)) {
392
+ // Reject symlink destinations regardless of --force. A symlink at the
393
+ // destination would redirect the write outside the repo tree, bypassing
394
+ // assertWithin(). lstatSync does not follow the symlink — exactly what we
395
+ // want here to detect the link itself.
396
+ const destStat = fs.lstatSync(destination);
397
+ if (destStat.isSymbolicLink()) {
398
+ throw new Error(
399
+ `Refusing to write to symbolic link destination: ${destination}. ` +
400
+ `Remove the symlink and retry.`
401
+ );
402
+ }
403
+ if (!force) {
404
+ throw new Error(`Refusing to overwrite existing file without --force: ${destination}`);
405
+ }
366
406
  }
367
407
  fs.mkdirSync(path.dirname(destination), { recursive: true });
368
408
  fs.copyFileSync(source, destination);
@@ -533,7 +573,28 @@ function main() {
533
573
  for (const agent of selectedAgents) {
534
574
  console.log(`export agent: ${agent.id} [provider=${agent.provider}]`);
535
575
  }
536
- process.stderr.write(`[vfa] --dry-run: ${selectedAgents.length} agent(s) planned, no files written.\n`);
576
+ const skillsDestRoot = SKILLS_PLATFORM_CONFIG[platform];
577
+ let dryRunSkillCount = 0;
578
+ if (!args.noSkills && skillsDestRoot) {
579
+ const skillsByName = loadSkills();
580
+ const includeAllSkills = args.all && !args.provider;
581
+ const { skillNames } = resolveCompanionSkills(
582
+ selectedAgents,
583
+ skillsByName,
584
+ selectedRole,
585
+ includeAllSkills,
586
+ args.provider ?? null
587
+ );
588
+ for (const skillName of skillNames) {
589
+ console.log(`export skill: ${skillName}`);
590
+ dryRunSkillCount += 1;
591
+ }
592
+ }
593
+ process.stderr.write(
594
+ `[vfa] --dry-run: ${selectedAgents.length} agent(s)` +
595
+ (dryRunSkillCount > 0 ? `, ${dryRunSkillCount} skill(s)` : "") +
596
+ ` planned, no files written.\n`
597
+ );
537
598
  return;
538
599
  }
539
600
 
@@ -581,11 +642,12 @@ function main() {
581
642
  selectedAgents,
582
643
  skillsByName,
583
644
  selectedRole,
584
- includeAllSkills
645
+ includeAllSkills,
646
+ args.provider ?? null
585
647
  );
586
648
  let bundled = 0;
587
649
  for (const skillName of skillNames) {
588
- const sourceDir = skillsByName.get(skillName);
650
+ const sourceDir = skillsByName.get(skillName)?.dir;
589
651
  if (!sourceDir) continue;
590
652
  const destDir = path.join(args.repo, skillsDestRoot, skillName);
591
653
  assertWithin(args.repo, destDir, "write skill destination");
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Generate dynamic catalog counts for CHANGELOG.md and other versioning docs.
4
+ * Called by release-prepare.mjs to keep counts current across releases.
5
+ */
6
+
7
+ import fs from "node:fs";
8
+ import path from "node:path";
9
+ import { fileURLToPath } from "node:url";
10
+
11
+ const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
12
+
13
+ // Count agents
14
+ const agentDirs = fs.readdirSync(path.join(repoRoot, "agents"), { recursive: true });
15
+ const agentCount = agentDirs.filter(f => String(f).endsWith("metadata.json")).length;
16
+
17
+ // Count skills (on-disk SKILL.md files)
18
+ const skillDirs = fs.readdirSync(path.join(repoRoot, "skills"), { recursive: true });
19
+ const skillCount = skillDirs.filter(f => String(f).endsWith("SKILL.md")).length;
20
+
21
+ // Count catalog providers (agents only, not skill-only dirs)
22
+ const allProviders = new Set();
23
+ for (const f of agentDirs) {
24
+ if (!String(f).endsWith("metadata.json")) continue;
25
+ const m = JSON.parse(fs.readFileSync(path.join(repoRoot, "agents", String(f)), "utf8"));
26
+ if (m.provider) allProviders.add(m.provider);
27
+ }
28
+ const providerCount = allProviders.size;
29
+
30
+ // Count roles
31
+ const roles = JSON.parse(fs.readFileSync(path.join(repoRoot, "catalog/install-roles.json"), "utf8"));
32
+ const roleCount = Object.keys(roles.roles).length;
33
+
34
+ console.log(`${agentCount} agents · ${skillCount} skills · ${providerCount} providers · ${roleCount} roles`);
@@ -7,21 +7,26 @@
7
7
  * tarball. Synchronizes every published artifact whose content depends on
8
8
  * `package.json.version` or on file hashes that include `package.json`:
9
9
  *
10
- * 1. .claude-plugin/plugin.json — version-parity (validate:plugin-manifest)
11
- * 2. .cursor-plugin/plugin.json — version-parity (validate:multi-harness-marketplace)
10
+ * 1. .claude-plugin/plugin.json — version-parity (validate:plugin-manifest)
11
+ * 2. .cursor-plugin/plugin.json — version-parity (validate:multi-harness-marketplace)
12
12
  * 3. plugins/vanguard-frontier-agentic/.codex-plugin/plugin.json
13
- * — version-parity (validate:codex-marketplace)
14
- * 4. catalog/asset-integrity.json includes package.json sha256
13
+ * — version-parity (validate:codex-marketplace)
14
+ * 4. .github/plugin/marketplace.json Copilot marketplace version field
15
+ * 5. SECURITY.md — "current published version" + supported-version table
16
+ * 6. catalog/asset-integrity.json — includes package.json sha256
15
17
  *
16
18
  * Without this step the released tarball would ship plugin manifests whose
17
19
  * version diverges from `package.json` (breaks every harness's version-parity
18
20
  * gate) and an asset-integrity manifest whose package.json hash no longer
19
21
  * matches the released tree (breaks downstream attestation verification).
20
22
  *
23
+ * `package.json` is the single source of truth for the release version.
24
+ * No other file should hard-code a version string that this script can derive.
25
+ *
21
26
  * Idempotent: re-running on an already-synced tree is a no-op.
22
27
  */
23
28
 
24
- import { readFileSync, writeFileSync } from "node:fs";
29
+ import { readFileSync, writeFileSync, readdirSync } from "node:fs";
25
30
  import { spawnSync } from "node:child_process";
26
31
  import { dirname, join } from "node:path";
27
32
  import { fileURLToPath } from "node:url";
@@ -44,6 +49,8 @@ const VERSION_PINNED_PLUGINS = [
44
49
  ".claude-plugin/plugin.json",
45
50
  ".cursor-plugin/plugin.json",
46
51
  "plugins/vanguard-frontier-agentic/.codex-plugin/plugin.json",
52
+ // Copilot marketplace manifest — version field only; content is manually curated.
53
+ ".github/plugin/marketplace.json",
47
54
  ];
48
55
 
49
56
  function syncPluginVersion(relPath) {
@@ -57,6 +64,82 @@ function syncPluginVersion(relPath) {
57
64
  return true;
58
65
  }
59
66
 
67
+ // Sync the "current published version" banner and supported-version table in
68
+ // SECURITY.md from package.json. Keeps the security policy credible without
69
+ // requiring a manual edit on every release.
70
+ function syncSecurityMd(nextVersion) {
71
+ const abs = join(REPO, "SECURITY.md");
72
+ let content = readFileSync(abs, "utf8");
73
+ const [major, minor] = nextVersion.split(".").map(Number);
74
+ const curr = `${major}.${minor}.x`;
75
+
76
+ // At a major-version boundary (X.0.0), the "previous minor" is the last
77
+ // minor of the previous major — which this script cannot know precisely.
78
+ // Use `(major-1).x` as a conservative label and `< X.0.0` as the floor.
79
+ // A human must verify the exact prior-major support window on X.0.0 releases.
80
+ const isMajorBump = minor === 0;
81
+ const prev = isMajorBump ? `${major - 1}.x` : `${major}.${minor - 1}.x`;
82
+ const floor = isMajorBump ? `${major}.0.0` : `${major}.${minor - 1}.0`;
83
+
84
+ const updated = content
85
+ .replace(
86
+ /current published version: \*\*[\d.]+\*\*/,
87
+ `current published version: **${nextVersion}**`
88
+ )
89
+ .replace(
90
+ /\| \d+\.\d+\.x\s+\| Yes — current minor \|[^\n]*/,
91
+ `| ${curr.padEnd(13)} | Yes — current minor |`
92
+ )
93
+ .replace(
94
+ /\| [\d.x]+\s+\| Yes — previous minor \|[^\n]*/,
95
+ `| ${prev.padEnd(13)} | Yes — previous minor |`
96
+ )
97
+ .replace(
98
+ /\| < [\d.]+\s+\| No[^\n]*/,
99
+ `| < ${floor.padEnd(10)} | No |`
100
+ );
101
+
102
+ if (updated === content) return false;
103
+ writeFileSync(abs, updated, "utf8");
104
+ return true;
105
+ }
106
+
107
+ function syncChangelogCounts(nextVersion) {
108
+ // Update counts in CHANGELOG.md from the live catalog to prevent stale hardcoded values.
109
+ // Pattern: > _Provider-scoped exports... 334 agents · 335 skills · 26 providers · 16 roles_
110
+ const abs = join(REPO, "CHANGELOG.md");
111
+ let content = readFileSync(abs, "utf8");
112
+
113
+ // Count agents, skills, providers, roles from live catalog
114
+ const agentDirs = readdirSync(join(REPO, "agents"), { recursive: true });
115
+ const agentCount = agentDirs.filter(f => String(f).endsWith("metadata.json")).length;
116
+
117
+ const skillDirs = readdirSync(join(REPO, "skills"), { recursive: true });
118
+ const skillCount = skillDirs.filter(f => String(f).endsWith("SKILL.md")).length;
119
+
120
+ const allProviders = new Set();
121
+ for (const f of agentDirs) {
122
+ if (!String(f).endsWith("metadata.json")) continue;
123
+ const m = JSON.parse(readFileSync(join(REPO, "agents", String(f)), "utf8"));
124
+ if (m.provider) allProviders.add(m.provider);
125
+ }
126
+ const providerCount = allProviders.size;
127
+
128
+ const roles = JSON.parse(readFileSync(join(REPO, "catalog/install-roles.json"), "utf8"));
129
+ const roleCount = Object.keys(roles.roles).length;
130
+
131
+ // Replace counts in all version blurb lines
132
+ const versionRegex = /(\> _[^.]+\. )\d+ agents · \d+ skills · \d+ providers · \d+ roles/g;
133
+ const updated = content.replace(
134
+ versionRegex,
135
+ `$1${agentCount} agents · ${skillCount} skills · ${providerCount} providers · ${roleCount} roles`
136
+ );
137
+
138
+ if (updated === content) return false;
139
+ writeFileSync(abs, updated, "utf8");
140
+ return true;
141
+ }
142
+
60
143
  function regenerate(cmd, args) {
61
144
  const result = spawnSync(cmd, args, { cwd: REPO, stdio: "inherit" });
62
145
  if (result.status !== 0) {
@@ -74,6 +157,15 @@ for (const rel of VERSION_PINNED_PLUGINS) {
74
157
  }
75
158
  }
76
159
 
160
+ if (syncSecurityMd(NEXT_VERSION)) {
161
+ console.log("[release-prepare] updated SECURITY.md");
162
+ touched += 1;
163
+ }
164
+
165
+ if (syncChangelogCounts(NEXT_VERSION)) {
166
+ console.log("[release-prepare] updated CHANGELOG.md counts");
167
+ }
168
+
77
169
  // Re-run the Claude Code + Cursor manifest generators so any other
78
170
  // catalog-derived fields (agents[] list, etc.) stay in sync alongside
79
171
  // the version bump.
@@ -5,26 +5,77 @@
5
5
  <span style="font-size:3.5em">💰</span>
6
6
  </p>
7
7
 
8
+ > ⚠️ **ALPHA RELEASE** — All FinOps skills are currently at `lifecycle: experimental`. Use at your own risk in pre-production environments only. [Board readiness memo](../../docs/strategy/finops-maestro-board-memo.md) documents known limitations and 30-day diligence requirements.
9
+
8
10
  This folder contains cross-cloud FinOps skills curated for this marketplace.
9
11
 
10
12
  ## Local marketplace portfolio
11
13
 
12
- This folder contains **1** local FinOps skill:
14
+ This folder contains **7** local FinOps skills (all alpha):
13
15
 
14
- - `finops-cloud-price-advisor`
16
+ | Skill | Purpose | Lifecycle | Tools |
17
+ |---|---|---|---|
18
+ | `finops-maestro` | Route FinOps tasks to the narrowest specialist or parallel team (max 4) | **experimental** | Agent Skill Read Grep Glob |
19
+ | `finops-cloud-price-advisor` | Live public pricing across AWS, Azure, OCI, Scaleway, Gandi, Alibaba, Tencent, Hetzner, Contabo, Ionos, OVHcloud | **experimental** | Read Grep Glob WebFetch |
20
+ | `fetch-foundation-model-pricing` | Live per-token, per-image, per-GPU-hour pricing across Anthropic, OpenAI, Google, Bedrock, Azure OpenAI, OCI, and Vertex | **experimental** | Read Grep Glob WebFetch |
21
+ | `kubernetes-allocation-report` | OpenCost-compatible namespace/pod/workload cost allocation mapped to FOCUS v1.2 columns | **experimental** | Read Grep Glob WebFetch |
22
+ | `rightsize-recommendation` | Pod request/limit recommendations from user-supplied p50/p95/p99 metrics; Karpenter consolidation eligibility | **experimental** | Read Grep Glob |
23
+ | `carbon-cost-pair` | Pair $ values with kgCO2e by region and service category for CSRD/SEC climate disclosure | **experimental** | Read Grep Glob WebFetch |
24
+ | `focus-spec-normalizer` | Normalize vendor bills (AWS CUR, Azure Cost Management, GCP Billing Export, OCI) into FOCUS v1.2 columns | **experimental** | Read Grep Glob |
15
25
 
16
26
  ## Portfolio posture
17
27
 
18
- Cross-cloud FinOps skills for live price lookup, cost estimation, provider comparison, and budget governance.
28
+ Cross-cloud, harness-portable FinOps skills covering AI workload economics, Kubernetes rightsizing, cross-cloud price advisory, FOCUS-spec normalization, and carbon-cost pairing.
19
29
 
20
30
  These skills are intentionally conservative:
21
31
 
22
- - fetch prices from public unauthenticated APIs only — no billing credentials required
32
+ - fetch prices from public unauthenticated APIs only — no billing credentials, kubeconfig, bearer tokens, or tenant data accepted
23
33
  - always distinguish on-demand list price from effective price (reserved instances, savings plans, committed use discounts not included by default)
24
- - prefer live API lookups over cached or memory-based price estimates — cloud prices change frequently
25
- - when comparing providers, normalize compute specs (vCPU, RAM, storage type) before comparing price
26
- - flag GPU and accelerated compute costs explicitly — they dominate bills and are often overlooked
34
+ - prefer live API lookups over cached or memory-based price estimates — foundation-model and cloud prices change frequently
35
+ - when comparing providers, normalize compute specs (vCPU, RAM, GPU SKU, storage type) before comparing price
36
+ - flag GPU and accelerated compute costs explicitly — they dominate AI workload bills
37
+ - label every numeric output: `live-price` / `live-evidence` / `documentation-based` / `assumed` / `excluded`
38
+ - emit FOCUS v1.2 column mappings where applicable — vendor-column adapters are explicit, not assumed
39
+
40
+ ### Provider coverage matrix
41
+
42
+ | Category | Providers | Skill | Status |
43
+ |---|---|---|---|
44
+ | **Foundation models** | Anthropic, OpenAI, Google, AWS Bedrock, Azure OpenAI, OCI Generative AI, Vertex | `fetch-foundation-model-pricing` | experimental |
45
+ | **Cloud compute (on-demand)** | AWS, Azure, OCI | `finops-cloud-price-advisor` | experimental |
46
+ | **Cloud compute (regional)** | Scaleway (EU), Gandi (EU), Alibaba Cloud (CN/APAC), Tencent Cloud (CN/APAC), Hetzner (EU), Contabo (EU), Ionos (EU), OVHcloud (EU) | `finops-cloud-price-advisor` | experimental |
47
+ | **Kubernetes cost** | EKS, AKS, GKE, OKE (vendor-agnostic allocation) | `kubernetes-allocation-report` + `rightsize-recommendation` | experimental |
48
+ | **Bill normalization** | AWS CUR, Azure Cost Management, GCP Billing Export, OCI Cost Analysis | `focus-spec-normalizer` | experimental |
49
+ | **Carbon tracking** | AWS, Azure, GCP, OCI | `carbon-cost-pair` | experimental |
50
+
51
+ ## 🧭 Routing taxonomy
52
+
53
+ See [agents/finops/README.md](../agents/README.md) for the complete 120+ keyword taxonomy used by `finops-maestro` to classify and dispatch tasks to the right specialist skill or agent.
54
+
55
+ ## ⚠️ Known limitations and disclaimers
56
+
57
+ **Alpha status**: These skills support pre-production research and estimation use cases. Production deployment requires:
58
+ 1. Signed design-partner SOW with cost verification clause
59
+ 2. AT-C 215 AUP report from Big 4 accounting firm documenting hard savings
60
+ 3. SOC 2 Type II observation (≥150 days) on infrastructure
61
+ 4. FOCUS v1.2 column-mapping audit by compliance reviewer
62
+
63
+ **Data freshness**: Cloud and foundation-model prices are live-fetched on every invocation. Pricing APIs are public and unauthenticated; no caching across sessions. If a pricing API is unavailable, the skill returns a documented-based fallback with a timestamp.
64
+
65
+ **Scope limitations**:
66
+ - Reserved instances, savings plans, committed use discounts require separate calculation (not included in base list-price estimates)
67
+ - Volume discounts (multi-year, enterprise agreements) not modeled
68
+ - Spot/preemptible pricing not included (separate query required)
69
+ - Custom pricing (e.g., negotiated cloud contracts) not discoverable
70
+
71
+ **Accuracy**: Cost estimates from these skills are **indicative only**. Use them for:
72
+ - Budget planning (±20% accuracy acceptable)
73
+ - Comparative analysis (which cloud is cheaper?)
74
+ - Anomaly detection (which workload got expensive?)
27
75
 
28
- Providers covered: 🟧 AWS Price List API · 🟦 Azure Retail Prices API · 🟥 OCI public pricing API
76
+ Do not use for:
77
+ - Chargeback / cost allocation without human review
78
+ - SLA-level cost forecasting
79
+ - Contractual billing disputes
29
80
 
30
- Run `npm run validate` after changing cataloged FinOps skills.
81
+ **See also**: [Board readiness memo Section 8](../../docs/strategy/finops-maestro-board-memo.md#8-risk-catalog) enumerates all 21 operational risks with contractual mitigations.