@apexops/cli 0.10.0-next.5 → 0.11.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/assets/capability-packs/registry.v1.json +1 -62
  2. package/assets/client-projection-metadata/copilot-cli-agent-tools.json +12 -0
  3. package/assets/client-projections/github-copilot-cli/.github/copilot/settings.json +13 -0
  4. package/assets/client-projections/github-copilot-cli/.github/instructions/apex-prompt-authoring.instructions.md +1 -1
  5. package/assets/client-projections/github-copilot-cli/.github/workflows/governance-policy-baseline.yml +101 -0
  6. package/assets/client-projections/github-copilot-cli/tools/schemas/governance-baseline.schema.json +118 -0
  7. package/assets/client-projections/github-copilot-cli/tools/scripts/collect-governance-baseline.ps1 +817 -0
  8. package/assets/config/capability-packs.v1.json +1 -32
  9. package/assets/config/governance-reference.v1.json +26379 -0
  10. package/assets/config/recipe-packs.v1.json +1 -26
  11. package/assets/config/runtime-bundle.v1.json +7 -7
  12. package/assets/config/toolchain.v1.json +35 -33
  13. package/assets/config/workflow.v1.json +103 -72
  14. package/assets/customizations/.github/agents/apex-codegen.agent.md +8 -22
  15. package/assets/customizations/.github/agents/apex-validator.agent.md +14 -20
  16. package/assets/customizations/.github/agents/apex.agent.md +108 -75
  17. package/assets/customizations/.github/copilot/settings.json +13 -0
  18. package/assets/customizations/.github/instructions/apex-prompt-authoring.instructions.md +1 -1
  19. package/assets/customizations/.github/skills/apex-architecture/SKILL.md +62 -18
  20. package/assets/customizations/.github/skills/apex-artifacts/SKILL.md +28 -6
  21. package/assets/customizations/.github/skills/apex-azure-adr/SKILL.md +3 -0
  22. package/assets/customizations/.github/skills/apex-azure-cloud-migrate/SKILL.md +3 -0
  23. package/assets/customizations/.github/skills/apex-azure-compliance/SKILL.md +3 -0
  24. package/assets/customizations/.github/skills/apex-azure-compute/SKILL.md +3 -0
  25. package/assets/customizations/.github/skills/apex-azure-cost-optimization/SKILL.md +3 -0
  26. package/assets/customizations/.github/skills/apex-azure-defaults/SKILL.md +3 -0
  27. package/assets/customizations/.github/skills/apex-azure-defaults/references/governance-effects.md +5 -3
  28. package/assets/customizations/.github/skills/apex-azure-deploy/SKILL.md +3 -0
  29. package/assets/customizations/.github/skills/apex-azure-diagnostics/SKILL.md +3 -0
  30. package/assets/customizations/.github/skills/apex-azure-governance/SKILL.md +19 -3
  31. package/assets/customizations/.github/skills/apex-azure-governance/references/evidence-interpretation.md +38 -3
  32. package/assets/customizations/.github/skills/apex-azure-kusto/SKILL.md +3 -0
  33. package/assets/customizations/.github/skills/apex-azure-prepare/SKILL.md +5 -3
  34. package/assets/customizations/.github/skills/apex-azure-quotas/SKILL.md +6 -2
  35. package/assets/customizations/.github/skills/apex-azure-quotas/references/capacity-decision-rules.md +4 -3
  36. package/assets/customizations/.github/skills/apex-azure-quotas/references/operational-checklist.md +3 -2
  37. package/assets/customizations/.github/skills/apex-azure-rbac/SKILL.md +3 -0
  38. package/assets/customizations/.github/skills/apex-azure-resources/SKILL.md +3 -0
  39. package/assets/customizations/.github/skills/apex-azure-storage/SKILL.md +3 -0
  40. package/assets/customizations/.github/skills/apex-azure-validate/SKILL.md +3 -0
  41. package/assets/customizations/.github/skills/apex-bicep-patterns/SKILL.md +3 -0
  42. package/assets/customizations/.github/skills/apex-codegen/SKILL.md +6 -2
  43. package/assets/customizations/.github/skills/apex-entra-app-registration/SKILL.md +3 -0
  44. package/assets/customizations/.github/skills/apex-mermaid/SKILL.md +3 -0
  45. package/assets/customizations/.github/skills/apex-microsoft-docs/SKILL.md +3 -0
  46. package/assets/customizations/.github/skills/apex-next/SKILL.md +99 -0
  47. package/assets/customizations/.github/skills/apex-operations/SKILL.md +46 -16
  48. package/assets/customizations/.github/skills/apex-planning/SKILL.md +48 -19
  49. package/assets/customizations/.github/skills/apex-requirements/SKILL.md +61 -26
  50. package/assets/customizations/.github/skills/apex-terraform-import/SKILL.md +3 -0
  51. package/assets/customizations/.github/skills/apex-terraform-patterns/SKILL.md +3 -0
  52. package/assets/customizations/.github/skills/apex-terraform-test/SKILL.md +3 -0
  53. package/assets/customizations/.github/skills/apex-unslop/LICENSE.txt +21 -0
  54. package/assets/customizations/.github/skills/apex-unslop/SKILL.md +94 -0
  55. package/assets/customizations/.github/skills/apex-workflow/SKILL.md +15 -5
  56. package/assets/customizations/.github/workflows/governance-policy-baseline.yml +101 -0
  57. package/assets/customizations/README.md +8 -9
  58. package/assets/customizations/manifest.json +167 -209
  59. package/assets/customizations/tools/schemas/governance-baseline.schema.json +118 -0
  60. package/assets/customizations/tools/scripts/collect-governance-baseline.ps1 +817 -0
  61. package/assets/manifest.json +423 -4241
  62. package/assets/schemas/governance-baseline.schema.json +118 -0
  63. package/dist/assets.d.ts +18 -2
  64. package/dist/assets.js +115 -35
  65. package/dist/bootstrap-wizard.d.ts +37 -0
  66. package/dist/bootstrap-wizard.js +259 -0
  67. package/dist/cli.d.ts +17 -2
  68. package/dist/cli.js +180 -63
  69. package/dist/dependency-revision.js +8 -0
  70. package/dist/errors.d.ts +6 -1
  71. package/dist/errors.js +55 -0
  72. package/dist/host-profile.d.ts +47 -0
  73. package/dist/host-profile.js +269 -0
  74. package/dist/mcp-output-schemas.d.ts +43 -0
  75. package/dist/mcp-output-schemas.js +279 -0
  76. package/dist/mcp-tool-effects.d.ts +101 -0
  77. package/dist/mcp-tool-effects.js +66 -0
  78. package/dist/mcp.d.ts +50 -3
  79. package/dist/mcp.js +800 -87
  80. package/dist/runtime-binding.d.ts +37 -0
  81. package/dist/runtime-binding.js +131 -0
  82. package/dist/service.d.ts +643 -38
  83. package/dist/service.js +4937 -662
  84. package/dist/state-transfer.js +21 -1
  85. package/dist/target-scope.d.ts +4 -0
  86. package/dist/target-scope.js +9 -0
  87. package/dist/version.d.ts +3 -1
  88. package/dist/version.js +19 -1
  89. package/dist/workflow-validators.d.ts +20 -3
  90. package/dist/workflow-validators.js +408 -67
  91. package/dist/workspace-root.d.ts +7 -0
  92. package/dist/workspace-root.js +67 -0
  93. package/package.json +11 -12
  94. package/assets/capability-packs/azure-governance-discovery/source/scripts/discover.py +0 -1189
  95. package/assets/capability-packs/azure-governance-discovery/source/scripts/render_governance.py +0 -676
  96. package/assets/client-projections/github-copilot-cli/.github/agents/apex-architect.agent.md +0 -91
  97. package/assets/client-projections/github-copilot-cli/.github/agents/apex-operator.agent.md +0 -75
  98. package/assets/client-projections/github-copilot-cli/.github/agents/apex-planner.agent.md +0 -88
  99. package/assets/client-projections/github-copilot-cli/.github/agents/apex-requirements.agent.md +0 -99
  100. package/assets/client-projections/github-copilot-cli/.github/agents/apex.agent.md +0 -88
  101. package/assets/client-projections/github-copilot-cli/.github/mcp.json +0 -65
  102. package/assets/client-projections/github-copilot-cli/.github/skills/apex-architecture/SKILL.md +0 -36
  103. package/assets/client-projections/github-copilot-cli/.github/skills/apex-artifacts/SKILL.md +0 -65
  104. package/assets/client-projections/github-copilot-cli/.github/skills/apex-artifacts/references/presentation-conventions.md +0 -52
  105. package/assets/client-projections/github-copilot-cli/.github/skills/apex-artifacts/references/reference-only-outlines.md +0 -78
  106. package/assets/client-projections/github-copilot-cli/.github/skills/apex-artifacts/templates/architecture-assessment.md +0 -35
  107. package/assets/client-projections/github-copilot-cli/.github/skills/apex-artifacts/templates/cost-estimate.md +0 -47
  108. package/assets/client-projections/github-copilot-cli/.github/skills/apex-artifacts/templates/deployment-summary.md +0 -35
  109. package/assets/client-projections/github-copilot-cli/.github/skills/apex-artifacts/templates/governance-constraints.md +0 -35
  110. package/assets/client-projections/github-copilot-cli/.github/skills/apex-artifacts/templates/implementation-plan.md +0 -43
  111. package/assets/client-projections/github-copilot-cli/.github/skills/apex-artifacts/templates/operations-runbook.md +0 -35
  112. package/assets/client-projections/github-copilot-cli/.github/skills/apex-artifacts/templates/requirements.md +0 -42
  113. package/assets/client-projections/github-copilot-cli/.github/skills/apex-artifacts/templates/resource-inventory.md +0 -29
  114. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-adr/SKILL.md +0 -52
  115. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-adr/references/decision-examples.md +0 -38
  116. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-adr/references/decision-guardrails.md +0 -36
  117. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-adr/references/decision-quality.md +0 -21
  118. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-adr/references/decision-record-fields.md +0 -57
  119. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-cloud-migrate/SKILL.md +0 -55
  120. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-cloud-migrate/references/lambda-to-functions-assessment.md +0 -29
  121. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-cloud-migrate/references/migration-readiness.md +0 -27
  122. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-cloud-migrate/references/staged-validation-handoff.md +0 -26
  123. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-cloud-migrate/references/workload-mapping.md +0 -27
  124. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-compliance/SKILL.md +0 -58
  125. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-compliance/references/compliance-finding-criteria.md +0 -63
  126. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-compliance/references/operational-checklist.md +0 -24
  127. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-compute/SKILL.md +0 -36
  128. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-compute/references/compute-selection.md +0 -26
  129. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-compute/references/pricing-evidence.md +0 -11
  130. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-compute/references/recommendation-and-scale-rules.md +0 -44
  131. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-cost-optimization/SKILL.md +0 -61
  132. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-cost-optimization/references/cost-assessment-criteria.md +0 -61
  133. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-cost-optimization/references/operational-checklist.md +0 -24
  134. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-defaults/SKILL.md +0 -59
  135. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-defaults/references/avm-binding-guidance.md +0 -29
  136. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-defaults/references/baseline-fallbacks.md +0 -53
  137. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-defaults/references/cost-monitoring.md +0 -47
  138. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-defaults/references/decision-boundaries.md +0 -19
  139. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-defaults/references/governance-effects.md +0 -28
  140. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-defaults/references/naming.md +0 -47
  141. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-defaults/references/network-planning.md +0 -47
  142. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-defaults/references/security-baseline.md +0 -40
  143. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-defaults/references/service-selection.md +0 -51
  144. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-defaults/references/tag-precedence.md +0 -31
  145. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-deploy/SKILL.md +0 -50
  146. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-deploy/references/operational-checklist.md +0 -26
  147. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-deploy/references/preview-recovery-verification.md +0 -48
  148. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-diagnostics/SKILL.md +0 -60
  149. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-diagnostics/references/diagnostic-interpretation.md +0 -42
  150. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-diagnostics/references/operational-checklist.md +0 -24
  151. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-governance/SKILL.md +0 -52
  152. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-governance/references/evidence-interpretation.md +0 -58
  153. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-governance/references/operational-checklist.md +0 -25
  154. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-kusto/SKILL.md +0 -58
  155. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-kusto/references/kql-evidence-interpretation.md +0 -41
  156. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-kusto/references/operational-checklist.md +0 -25
  157. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-prepare/SKILL.md +0 -52
  158. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-prepare/references/functions-recipe-pack.md +0 -27
  159. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-prepare/references/preparation-lineage.md +0 -36
  160. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-quotas/SKILL.md +0 -53
  161. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-quotas/references/capacity-decision-rules.md +0 -48
  162. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-quotas/references/operational-checklist.md +0 -23
  163. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-rbac/SKILL.md +0 -45
  164. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-rbac/references/assignment-intent.md +0 -39
  165. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-rbac/references/least-privilege-selection.md +0 -50
  166. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-resources/SKILL.md +0 -54
  167. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-resources/references/inventory-query-patterns.md +0 -49
  168. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-resources/references/operational-checklist.md +0 -24
  169. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-storage/SKILL.md +0 -35
  170. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-storage/references/security-and-governance.md +0 -12
  171. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-storage/references/service-auth-and-sdk-boundary.md +0 -33
  172. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-storage/references/storage-selection.md +0 -12
  173. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-validate/SKILL.md +0 -49
  174. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-validate/references/operational-checklist.md +0 -24
  175. package/assets/client-projections/github-copilot-cli/.github/skills/apex-azure-validate/references/preflight-evidence.md +0 -43
  176. package/assets/client-projections/github-copilot-cli/.github/skills/apex-bicep-patterns/SKILL.md +0 -41
  177. package/assets/client-projections/github-copilot-cli/.github/skills/apex-bicep-patterns/references/avm-and-codegen-acceptance.md +0 -11
  178. package/assets/client-projections/github-copilot-cli/.github/skills/apex-bicep-patterns/references/codegen-acceptance-checklist.md +0 -46
  179. package/assets/client-projections/github-copilot-cli/.github/skills/apex-bicep-patterns/references/compiler-and-provider-gotchas.md +0 -74
  180. package/assets/client-projections/github-copilot-cli/.github/skills/apex-bicep-patterns/references/module-interfaces-and-parameters.md +0 -56
  181. package/assets/client-projections/github-copilot-cli/.github/skills/apex-bicep-patterns/references/network-and-observability.md +0 -52
  182. package/assets/client-projections/github-copilot-cli/.github/skills/apex-codegen/SKILL.md +0 -32
  183. package/assets/client-projections/github-copilot-cli/.github/skills/apex-entra-app-registration/SKILL.md +0 -53
  184. package/assets/client-projections/github-copilot-cli/.github/skills/apex-entra-app-registration/references/capability-receipts.md +0 -21
  185. package/assets/client-projections/github-copilot-cli/.github/skills/apex-entra-app-registration/references/design-and-diagnostics.md +0 -36
  186. package/assets/client-projections/github-copilot-cli/.github/skills/apex-entra-app-registration/references/oauth-registration-model.md +0 -26
  187. package/assets/client-projections/github-copilot-cli/.github/skills/apex-entra-app-registration/references/permissions-and-credentials.md +0 -27
  188. package/assets/client-projections/github-copilot-cli/.github/skills/apex-mermaid/SKILL.md +0 -44
  189. package/assets/client-projections/github-copilot-cli/.github/skills/apex-mermaid/references/styling.md +0 -33
  190. package/assets/client-projections/github-copilot-cli/.github/skills/apex-mermaid/references/syntax.md +0 -99
  191. package/assets/client-projections/github-copilot-cli/.github/skills/apex-microsoft-docs/SKILL.md +0 -53
  192. package/assets/client-projections/github-copilot-cli/.github/skills/apex-microsoft-docs/references/research-method.md +0 -91
  193. package/assets/client-projections/github-copilot-cli/.github/skills/apex-operations/SKILL.md +0 -34
  194. package/assets/client-projections/github-copilot-cli/.github/skills/apex-planning/SKILL.md +0 -36
  195. package/assets/client-projections/github-copilot-cli/.github/skills/apex-requirements/SKILL.md +0 -46
  196. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-import/SKILL.md +0 -47
  197. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-import/references/adoption-attestation.md +0 -10
  198. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-import/references/import-assessment.md +0 -14
  199. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-import/references/import-mapping.md +0 -27
  200. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-import/references/mapping-and-adoption-attestation.md +0 -12
  201. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-patterns/SKILL.md +0 -49
  202. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-patterns/references/module-composition-and-refactor.md +0 -20
  203. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-patterns/references/module-composition-and-state-boundaries.md +0 -11
  204. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-patterns/references/module-locks-and-codegen-acceptance.md +0 -14
  205. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-patterns/references/network-and-observability.md +0 -12
  206. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-patterns/references/plan-and-change-assessment.md +0 -24
  207. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-test/SKILL.md +0 -45
  208. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-test/references/evidence-acceptance.md +0 -10
  209. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-test/references/plan-mode-and-mock-design.md +0 -12
  210. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-test/references/plan-mode-test-design.md +0 -23
  211. package/assets/client-projections/github-copilot-cli/.github/skills/apex-terraform-test/references/test-design.md +0 -13
  212. package/assets/client-projections/github-copilot-cli/.github/skills/apex-workflow/SKILL.md +0 -37
  213. package/assets/client-projections/github-copilot-vscode/.github/agents/apex-architect.agent.md +0 -100
  214. package/assets/client-projections/github-copilot-vscode/.github/agents/apex-codegen.agent.md +0 -62
  215. package/assets/client-projections/github-copilot-vscode/.github/agents/apex-operator.agent.md +0 -79
  216. package/assets/client-projections/github-copilot-vscode/.github/agents/apex-planner.agent.md +0 -98
  217. package/assets/client-projections/github-copilot-vscode/.github/agents/apex-requirements.agent.md +0 -108
  218. package/assets/client-projections/github-copilot-vscode/.github/agents/apex-reviewer.agent.md +0 -63
  219. package/assets/client-projections/github-copilot-vscode/.github/agents/apex-validator.agent.md +0 -61
  220. package/assets/client-projections/github-copilot-vscode/.github/agents/apex.agent.md +0 -107
  221. package/assets/client-projections/github-copilot-vscode/.github/copilot-instructions.md +0 -13
  222. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-agent-authoring.instructions.md +0 -14
  223. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-artifact-contracts.instructions.md +0 -12
  224. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-automation.instructions.md +0 -12
  225. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-azure-yaml.instructions.md +0 -12
  226. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-bicep.instructions.md +0 -12
  227. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-code-quality.instructions.md +0 -12
  228. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-context.instructions.md +0 -12
  229. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-documentation.instructions.md +0 -12
  230. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-governance.instructions.md +0 -12
  231. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-instruction-authoring.instructions.md +0 -12
  232. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-javascript.instructions.md +0 -11
  233. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-json.instructions.md +0 -11
  234. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-markdown.instructions.md +0 -13
  235. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-powershell.instructions.md +0 -11
  236. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-prompt-authoring.instructions.md +0 -12
  237. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-python.instructions.md +0 -11
  238. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-safe-file-edits.instructions.md +0 -11
  239. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-safe-shell.instructions.md +0 -11
  240. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-shell.instructions.md +0 -11
  241. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-skill-authoring.instructions.md +0 -13
  242. package/assets/client-projections/github-copilot-vscode/.github/instructions/apex-terraform.instructions.md +0 -12
  243. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-architecture/SKILL.md +0 -36
  244. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-artifacts/SKILL.md +0 -65
  245. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-artifacts/references/presentation-conventions.md +0 -52
  246. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-artifacts/references/reference-only-outlines.md +0 -78
  247. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-artifacts/templates/architecture-assessment.md +0 -35
  248. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-artifacts/templates/cost-estimate.md +0 -47
  249. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-artifacts/templates/deployment-summary.md +0 -35
  250. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-artifacts/templates/governance-constraints.md +0 -35
  251. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-artifacts/templates/implementation-plan.md +0 -43
  252. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-artifacts/templates/operations-runbook.md +0 -35
  253. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-artifacts/templates/requirements.md +0 -42
  254. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-artifacts/templates/resource-inventory.md +0 -29
  255. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-adr/SKILL.md +0 -52
  256. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-adr/references/decision-examples.md +0 -38
  257. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-adr/references/decision-guardrails.md +0 -36
  258. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-adr/references/decision-quality.md +0 -21
  259. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-adr/references/decision-record-fields.md +0 -57
  260. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-cloud-migrate/SKILL.md +0 -55
  261. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-cloud-migrate/references/lambda-to-functions-assessment.md +0 -29
  262. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-cloud-migrate/references/migration-readiness.md +0 -27
  263. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-cloud-migrate/references/staged-validation-handoff.md +0 -26
  264. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-cloud-migrate/references/workload-mapping.md +0 -27
  265. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-compliance/SKILL.md +0 -58
  266. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-compliance/references/compliance-finding-criteria.md +0 -63
  267. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-compliance/references/operational-checklist.md +0 -24
  268. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-compute/SKILL.md +0 -36
  269. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-compute/references/compute-selection.md +0 -26
  270. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-compute/references/pricing-evidence.md +0 -11
  271. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-compute/references/recommendation-and-scale-rules.md +0 -44
  272. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-cost-optimization/SKILL.md +0 -61
  273. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-cost-optimization/references/cost-assessment-criteria.md +0 -61
  274. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-cost-optimization/references/operational-checklist.md +0 -24
  275. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-defaults/SKILL.md +0 -59
  276. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-defaults/references/avm-binding-guidance.md +0 -29
  277. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-defaults/references/baseline-fallbacks.md +0 -53
  278. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-defaults/references/cost-monitoring.md +0 -47
  279. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-defaults/references/decision-boundaries.md +0 -19
  280. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-defaults/references/governance-effects.md +0 -28
  281. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-defaults/references/naming.md +0 -47
  282. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-defaults/references/network-planning.md +0 -47
  283. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-defaults/references/security-baseline.md +0 -40
  284. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-defaults/references/service-selection.md +0 -51
  285. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-defaults/references/tag-precedence.md +0 -31
  286. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-deploy/SKILL.md +0 -50
  287. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-deploy/references/operational-checklist.md +0 -26
  288. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-deploy/references/preview-recovery-verification.md +0 -48
  289. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-diagnostics/SKILL.md +0 -60
  290. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-diagnostics/references/diagnostic-interpretation.md +0 -42
  291. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-diagnostics/references/operational-checklist.md +0 -24
  292. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-governance/SKILL.md +0 -52
  293. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-governance/references/evidence-interpretation.md +0 -58
  294. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-governance/references/operational-checklist.md +0 -25
  295. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-kusto/SKILL.md +0 -58
  296. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-kusto/references/kql-evidence-interpretation.md +0 -41
  297. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-kusto/references/operational-checklist.md +0 -25
  298. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-prepare/SKILL.md +0 -52
  299. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-prepare/references/functions-recipe-pack.md +0 -27
  300. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-prepare/references/preparation-lineage.md +0 -36
  301. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-quotas/SKILL.md +0 -53
  302. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-quotas/references/capacity-decision-rules.md +0 -48
  303. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-quotas/references/operational-checklist.md +0 -23
  304. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-rbac/SKILL.md +0 -45
  305. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-rbac/references/assignment-intent.md +0 -39
  306. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-rbac/references/least-privilege-selection.md +0 -50
  307. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-resources/SKILL.md +0 -54
  308. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-resources/references/inventory-query-patterns.md +0 -49
  309. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-resources/references/operational-checklist.md +0 -24
  310. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-storage/SKILL.md +0 -35
  311. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-storage/references/security-and-governance.md +0 -12
  312. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-storage/references/service-auth-and-sdk-boundary.md +0 -33
  313. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-storage/references/storage-selection.md +0 -12
  314. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-validate/SKILL.md +0 -49
  315. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-validate/references/operational-checklist.md +0 -24
  316. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-azure-validate/references/preflight-evidence.md +0 -43
  317. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-bicep-patterns/SKILL.md +0 -41
  318. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-bicep-patterns/references/avm-and-codegen-acceptance.md +0 -11
  319. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-bicep-patterns/references/codegen-acceptance-checklist.md +0 -46
  320. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-bicep-patterns/references/compiler-and-provider-gotchas.md +0 -74
  321. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-bicep-patterns/references/module-interfaces-and-parameters.md +0 -56
  322. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-bicep-patterns/references/network-and-observability.md +0 -52
  323. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-codegen/SKILL.md +0 -32
  324. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-entra-app-registration/SKILL.md +0 -53
  325. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-entra-app-registration/references/capability-receipts.md +0 -21
  326. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-entra-app-registration/references/design-and-diagnostics.md +0 -36
  327. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-entra-app-registration/references/oauth-registration-model.md +0 -26
  328. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-entra-app-registration/references/permissions-and-credentials.md +0 -27
  329. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-mermaid/SKILL.md +0 -44
  330. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-mermaid/references/styling.md +0 -33
  331. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-mermaid/references/syntax.md +0 -99
  332. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-microsoft-docs/SKILL.md +0 -53
  333. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-microsoft-docs/references/research-method.md +0 -91
  334. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-operations/SKILL.md +0 -34
  335. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-planning/SKILL.md +0 -36
  336. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-requirements/SKILL.md +0 -46
  337. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-import/SKILL.md +0 -47
  338. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-import/references/adoption-attestation.md +0 -10
  339. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-import/references/import-assessment.md +0 -14
  340. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-import/references/import-mapping.md +0 -27
  341. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-import/references/mapping-and-adoption-attestation.md +0 -12
  342. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-patterns/SKILL.md +0 -49
  343. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-patterns/references/module-composition-and-refactor.md +0 -20
  344. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-patterns/references/module-composition-and-state-boundaries.md +0 -11
  345. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-patterns/references/module-locks-and-codegen-acceptance.md +0 -14
  346. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-patterns/references/network-and-observability.md +0 -12
  347. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-patterns/references/plan-and-change-assessment.md +0 -24
  348. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-test/SKILL.md +0 -45
  349. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-test/references/evidence-acceptance.md +0 -10
  350. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-test/references/plan-mode-and-mock-design.md +0 -12
  351. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-test/references/plan-mode-test-design.md +0 -23
  352. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-terraform-test/references/test-design.md +0 -13
  353. package/assets/client-projections/github-copilot-vscode/.github/skills/apex-workflow/SKILL.md +0 -37
  354. package/assets/client-projections/github-copilot-vscode/.vscode/mcp.json +0 -29
  355. package/assets/customizations/.github/agents/apex-architect.agent.md +0 -93
  356. package/assets/customizations/.github/agents/apex-operator.agent.md +0 -72
  357. package/assets/customizations/.github/agents/apex-planner.agent.md +0 -91
  358. package/assets/customizations/.github/agents/apex-requirements.agent.md +0 -101
  359. package/assets/customizations/.github/agents/apex-reviewer.agent.md +0 -60
  360. package/assets/customizations/.github/mcp.json +0 -65
  361. package/assets/customizations/.github/skills/apex-azure-prepare/references/functions-recipe-pack.md +0 -27
  362. package/assets/customizations/.vscode/mcp.json +0 -29
  363. package/dist/azure-mcp-environment.d.ts +0 -2
  364. package/dist/azure-mcp-environment.js +0 -7
  365. package/dist/azure-mcp.d.ts +0 -2
  366. package/dist/azure-mcp.js +0 -21
@@ -0,0 +1,118 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/jonathan-vella/apex-vnext/schemas/governance-baseline.schema.json",
4
+ "title": "APEX Governance Baseline",
5
+ "description": "Shape of .github/data/governance-policy-baseline.json produced by the governance-policy-baseline workflow. Wraps per-subscription governance-constraints-v1 envelopes.",
6
+ "type": "object",
7
+ "required": [
8
+ "schema_version",
9
+ "coverage_status",
10
+ "subscriptions_discovered",
11
+ "subscriptions_processed",
12
+ "subscriptions_skipped",
13
+ "subscriptions_excluded",
14
+ "summary",
15
+ "subscriptions"
16
+ ],
17
+ "additionalProperties": false,
18
+ "oneOf": [
19
+ {
20
+ "required": ["management_group_id"],
21
+ "not": { "required": ["subscription_id"] }
22
+ },
23
+ {
24
+ "required": ["subscription_id"],
25
+ "not": { "required": ["management_group_id"] }
26
+ }
27
+ ],
28
+ "properties": {
29
+ "schema_version": {
30
+ "type": "string",
31
+ "const": "governance-baseline-v2"
32
+ },
33
+ "management_group_id": {
34
+ "type": "string",
35
+ "minLength": 1
36
+ },
37
+ "subscription_id": {
38
+ "description": "Standalone collection root; mutually exclusive with management_group_id.",
39
+ "type": "string",
40
+ "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
41
+ },
42
+ "coverage_status": {
43
+ "type": "string",
44
+ "enum": ["COMPLETE", "PARTIAL"]
45
+ },
46
+ "subscriptions_discovered": {
47
+ "type": "integer",
48
+ "minimum": 0
49
+ },
50
+ "subscriptions_processed": {
51
+ "type": "integer",
52
+ "minimum": 0
53
+ },
54
+ "subscriptions_skipped": {
55
+ "type": "array",
56
+ "items": { "type": "string" }
57
+ },
58
+ "subscriptions_excluded": {
59
+ "type": "array",
60
+ "items": {
61
+ "type": "object",
62
+ "required": ["subscription_id", "reason"],
63
+ "additionalProperties": true,
64
+ "properties": {
65
+ "subscription_id": { "type": "string" },
66
+ "reason": {
67
+ "type": "string",
68
+ "enum": ["disabled", "AAD_quota", "unreadable", "processing_error"]
69
+ },
70
+ "detail": { "type": "string" },
71
+ "quota_id": { "type": "string" }
72
+ }
73
+ }
74
+ },
75
+ "summary": {
76
+ "type": "object",
77
+ "required": ["total_findings", "total_blockers", "total_auto_remediate", "subscriptions_complete"],
78
+ "additionalProperties": true,
79
+ "properties": {
80
+ "total_findings": { "type": "integer", "minimum": 0 },
81
+ "total_blockers": { "type": "integer", "minimum": 0 },
82
+ "total_auto_remediate": { "type": "integer", "minimum": 0 },
83
+ "subscriptions_complete": { "type": "integer", "minimum": 0 }
84
+ }
85
+ },
86
+ "subscriptions": {
87
+ "type": "object",
88
+ "description": "Map of subscription ID to governance-constraints-v1 envelope. Each value must be a valid governance-constraints-v1 envelope.",
89
+ "additionalProperties": {
90
+ "type": "object",
91
+ "required": ["schema_version", "subscription_id", "discovered_at", "findings"],
92
+ "additionalProperties": true,
93
+ "properties": {
94
+ "schema_version": { "type": "string", "const": "governance-constraints-v1" },
95
+ "subscription_id": { "type": "string" },
96
+ "discovered_at": { "type": "string" },
97
+ "source": { "type": "string" },
98
+ "discovery_status": { "type": "string" },
99
+ "discovery_metadata": {
100
+ "type": "object",
101
+ "properties": {
102
+ "scope": {
103
+ "type": "object",
104
+ "properties": {
105
+ "coverage": { "const": "subscription-and-descendants-v1" }
106
+ }
107
+ }
108
+ }
109
+ },
110
+ "findings": { "type": "array" },
111
+ "policies": false,
112
+ "tags_required": { "type": "array" },
113
+ "allowed_locations": { "type": "array" }
114
+ }
115
+ }
116
+ }
117
+ }
118
+ }
package/dist/assets.d.ts CHANGED
@@ -4,13 +4,16 @@ export interface BundledAssetMapping {
4
4
  sourceRoot?: string;
5
5
  generatedRoot?: string;
6
6
  generatedPath?: string;
7
+ entries?: Array<{
8
+ source: string;
9
+ target: string;
10
+ }>;
7
11
  }
8
12
  export interface BundledAssetSource {
9
13
  kind: "repository-file" | "generated";
10
14
  path?: string;
11
15
  mapping?: string;
12
16
  composition?: string;
13
- roleId?: string;
14
17
  sourcePath?: string;
15
18
  sourceHash?: string;
16
19
  clientId?: string;
@@ -24,7 +27,7 @@ export interface BundledAssetFile {
24
27
  bytes: number;
25
28
  }
26
29
  export interface BundledClientProjection {
27
- id: "github-copilot-cli" | "github-copilot-vscode";
30
+ id: "github-copilot-cli";
28
31
  files: string[];
29
32
  digest: string;
30
33
  }
@@ -48,9 +51,18 @@ export interface BundledAssetManifest {
48
51
  digest: string;
49
52
  };
50
53
  }
54
+ /** The apex Agent Plugin; files it owns are never copied into or checked in a consumer workspace. */
55
+ export interface BundledPluginDeclaration {
56
+ name: "apex";
57
+ marketplace: "apex-plugins";
58
+ marketplaceRepository: "jonathan-vella/apex-plugins";
59
+ ownedFiles: string[];
60
+ ownedDirectories: string[];
61
+ }
51
62
  export interface BundledAssets {
52
63
  root: string;
53
64
  customizations: string;
65
+ plugin: BundledPluginDeclaration;
54
66
  clientProjections: Readonly<Record<BundledClientProjection["id"], string>>;
55
67
  config: string;
56
68
  capabilityPacks: string;
@@ -65,5 +77,9 @@ export declare function verifyBundleDeclarations(manifest: BundledAssetManifest,
65
77
  export declare function clientProjectionDigest(projection: Pick<BundledClientProjection, "id" | "files">, files: BundledAssetFile[]): string;
66
78
  export declare function bundleLockDigest(input: Pick<BundledAssetManifest, "sources" | "composition" | "projections" | "files">): string;
67
79
  export declare function verifyBundledAssetManifest(root: string, manifest: BundledAssetManifest): Promise<void>;
80
+ /** True when the apex plugin, not the workspace projection, owns this workspace-relative path. */
81
+ export declare function pluginOwnsPath(plugin: BundledPluginDeclaration, path: string): boolean;
82
+ /** Reads only the plugin declaration from the bundled manifest; full asset verification stays in resolveBundledAssets. */
83
+ export declare function readBundledPluginDeclaration(): Promise<BundledPluginDeclaration>;
68
84
  export declare function resolveBundledAssets(): Promise<BundledAssets>;
69
85
  //# sourceMappingURL=assets.d.ts.map
package/dist/assets.js CHANGED
@@ -7,7 +7,6 @@ const LOCK_DOMAIN = "apex-bundled-assets-v1\0";
7
7
  const PROJECTION_DOMAIN = "apex-client-projection-v1\0";
8
8
  const PROJECTION_TARGETS = {
9
9
  "github-copilot-cli": "github-copilot",
10
- "github-copilot-vscode": "vscode",
11
10
  };
12
11
  const SHA256 = /^[a-f0-9]{64}$/u;
13
12
  function projectionTarget(clientId) {
@@ -19,6 +18,13 @@ function projectionTarget(clientId) {
19
18
  function portablePath(path) {
20
19
  return path.split(sep).join("/");
21
20
  }
21
+ function comparablePath(path) {
22
+ const resolved = resolve(path);
23
+ return process.platform === "win32" ? resolved.toLowerCase() : resolved;
24
+ }
25
+ function samePath(left, right) {
26
+ return comparablePath(left) === comparablePath(right);
27
+ }
22
28
  function safeRelativePath(path) {
23
29
  return (path.length > 0 &&
24
30
  !path.includes("\\") &&
@@ -34,10 +40,12 @@ function assertContained(root, path) {
34
40
  }
35
41
  }
36
42
  export async function readBundledFile(root, relativePath, beforeOpen = async () => { }, expectedIdentity) {
37
- const path = resolve(root, relativePath);
38
- assertContained(root, path);
43
+ const absoluteRoot = resolve(root);
44
+ const path = resolve(absoluteRoot, relativePath);
45
+ assertContained(absoluteRoot, path);
46
+ const canonicalRoot = await realpath(absoluteRoot);
39
47
  const resolved = await realpath(path);
40
- assertContained(root, resolved);
48
+ assertContained(canonicalRoot, resolved);
41
49
  const initialMetadata = await lstat(path, { bigint: true });
42
50
  const identity = expectedIdentity ?? { dev: initialMetadata.dev, ino: initialMetadata.ino };
43
51
  if (initialMetadata.isSymbolicLink() || !initialMetadata.isFile()) {
@@ -59,8 +67,8 @@ export async function readBundledFile(root, relativePath, beforeOpen = async ()
59
67
  }
60
68
  const descriptorPath = process.platform === "linux" ? `/proc/self/fd/${handle.fd}` : path;
61
69
  const openedPath = await realpath(descriptorPath);
62
- assertContained(root, openedPath);
63
- if (openedPath !== resolved) {
70
+ assertContained(canonicalRoot, openedPath);
71
+ if (!samePath(openedPath, resolved)) {
64
72
  throw new Error(`Bundled asset path changed during verification: ${relativePath}`);
65
73
  }
66
74
  return await handle.readFile();
@@ -164,6 +172,7 @@ export async function verifyBundledAssetManifest(root, manifest) {
164
172
  if (mappings.size !== manifest.composition.mappings.length)
165
173
  throw new Error("Duplicate bundled asset mapping ID");
166
174
  const generatedDestinations = [];
175
+ const explicitTargets = new Map();
167
176
  for (const mapping of mappings.values()) {
168
177
  if (!["copy-tree", "copy-entries", "compose-json", "render-client-projections"].includes(mapping.mode)) {
169
178
  throw new Error(`Invalid bundled asset mapping: ${mapping.id}`);
@@ -173,19 +182,50 @@ export async function verifyBundledAssetManifest(root, manifest) {
173
182
  mapping.sourceRoot !== undefined ||
174
183
  mapping.generatedRoot !== undefined)
175
184
  throw new Error(`Invalid bundled asset mapping: ${mapping.id}`);
176
- generatedDestinations.push(mapping.generatedPath);
185
+ generatedDestinations.push({ path: mapping.generatedPath, mapping });
177
186
  }
178
187
  else if (!safeRelativePath(mapping.sourceRoot ?? "") ||
179
188
  !safeRelativePath(mapping.generatedRoot ?? "") ||
180
189
  mapping.generatedPath !== undefined) {
181
190
  throw new Error(`Invalid bundled asset mapping: ${mapping.id}`);
182
191
  }
183
- else
184
- generatedDestinations.push(`${mapping.generatedRoot}/`);
192
+ else if (mapping.entries === undefined) {
193
+ generatedDestinations.push({ path: `${mapping.generatedRoot}/`, mapping });
194
+ }
195
+ if (mapping.entries !== undefined) {
196
+ if (mapping.mode !== "copy-entries" ||
197
+ !Array.isArray(mapping.entries) ||
198
+ mapping.entries.length === 0 ||
199
+ mapping.entries.some((entry) => entry === null ||
200
+ typeof entry !== "object" ||
201
+ typeof entry.source !== "string" ||
202
+ typeof entry.target !== "string" ||
203
+ !safeRelativePath(entry.source) ||
204
+ !safeRelativePath(entry.target) ||
205
+ !entry.source.startsWith(`${mapping.sourceRoot}/`) ||
206
+ !entry.target.startsWith(`${mapping.generatedRoot}/`)) ||
207
+ new Set(mapping.entries.map(({ source }) => source)).size !== mapping.entries.length)
208
+ throw new Error(`Invalid bundled asset copy entries: ${mapping.id}`);
209
+ for (const entry of mapping.entries) {
210
+ if (explicitTargets.has(entry.target))
211
+ throw new Error(`Overlapping bundled asset mapping destination: ${entry.target}`);
212
+ explicitTargets.set(entry.target, mapping.id);
213
+ generatedDestinations.push({ path: entry.target, mapping });
214
+ }
215
+ }
185
216
  }
186
217
  for (const [index, destination] of generatedDestinations.entries()) {
187
- if (generatedDestinations.some((candidate, candidateIndex) => candidateIndex !== index && (destination.startsWith(candidate) || candidate.startsWith(destination))))
188
- throw new Error(`Overlapping bundled asset mapping destination: ${destination}`);
218
+ if (generatedDestinations.some((candidate, candidateIndex) => candidateIndex !== index &&
219
+ (destination.path.startsWith(candidate.path) || candidate.path.startsWith(destination.path)) &&
220
+ !(destination.mapping.entries !== undefined &&
221
+ candidate.mapping.mode === "copy-tree" &&
222
+ destination.path.startsWith(candidate.path) &&
223
+ destination.mapping.entries.every(({ source }) => !source.startsWith(`${candidate.mapping.sourceRoot}/`))) &&
224
+ !(candidate.mapping.entries !== undefined &&
225
+ destination.mapping.mode === "copy-tree" &&
226
+ candidate.path.startsWith(destination.path) &&
227
+ candidate.mapping.entries.every(({ source }) => !source.startsWith(`${destination.mapping.sourceRoot}/`)))))
228
+ throw new Error(`Overlapping bundled asset mapping destination: ${destination.path}`);
189
229
  }
190
230
  const paths = new Set();
191
231
  for (const file of manifest.files) {
@@ -201,15 +241,20 @@ export async function verifyBundledAssetManifest(root, manifest) {
201
241
  const mapping = mappings.get(file.source.mapping ?? "");
202
242
  if (!safeRelativePath(file.source.path ?? "") ||
203
243
  mapping === undefined ||
204
- mapping.mode === "compose-json" ||
244
+ !["copy-tree", "copy-entries"].includes(mapping.mode) ||
245
+ (explicitTargets.has(file.path) && explicitTargets.get(file.path) !== mapping.id) ||
205
246
  !file.source.path.startsWith(`${mapping.sourceRoot}/`) ||
206
247
  !file.path.startsWith(`${mapping.generatedRoot}/`) ||
207
- relative(mapping.sourceRoot, file.source.path).split(sep).join("/") !==
208
- relative(mapping.generatedRoot, file.path).split(sep).join("/")) {
248
+ (mapping.entries !== undefined
249
+ ? !mapping.entries.some(({ source, target }) => source === file.source.path && target === file.path)
250
+ : relative(mapping.sourceRoot, file.source.path).split(sep).join("/") !==
251
+ relative(mapping.generatedRoot, file.path).split(sep).join("/"))) {
209
252
  throw new Error(`Invalid bundled asset source: ${file.path}`);
210
253
  }
211
254
  }
212
255
  else if (file.source.kind === "generated") {
256
+ if (explicitTargets.has(file.path))
257
+ throw new Error(`Invalid bundled asset source: ${file.path}`);
213
258
  const mapping = mappings.get(file.source.composition ?? "");
214
259
  if (mapping === undefined ||
215
260
  (mapping.mode === "compose-json"
@@ -219,8 +264,9 @@ export async function verifyBundledAssetManifest(root, manifest) {
219
264
  }
220
265
  if (mapping.mode === "render-client-projections") {
221
266
  const expectedPrefix = `${mapping.generatedRoot}/${file.source.clientId}/`;
222
- if (!["github-copilot-cli", "github-copilot-vscode"].includes(file.source.clientId ?? "") ||
223
- file.source.adapterVersion !== "1.1.0" ||
267
+ if (file.source.clientId !== "github-copilot-cli" ||
268
+ file.source.adapterVersion !== "1.12.0" ||
269
+ "roleId" in file.source ||
224
270
  !safeRelativePath(file.source.target ?? "") ||
225
271
  !file.path.startsWith(expectedPrefix) ||
226
272
  file.path !== `${expectedPrefix}${file.source.target}` ||
@@ -233,9 +279,13 @@ export async function verifyBundledAssetManifest(root, manifest) {
233
279
  else
234
280
  throw new Error(`Invalid bundled asset source: ${file.path}`);
235
281
  }
282
+ for (const target of explicitTargets.keys()) {
283
+ if (!paths.has(target))
284
+ throw new Error(`Missing bundled asset copy entry: ${target}`);
285
+ }
236
286
  const projectionIds = new Set();
237
287
  for (const projection of manifest.projections) {
238
- if (!["github-copilot-cli", "github-copilot-vscode"].includes(projection.id) ||
288
+ if (projection.id !== "github-copilot-cli" ||
239
289
  projectionIds.has(projection.id) ||
240
290
  !Array.isArray(projection.files) ||
241
291
  projection.files.length !== new Set(projection.files).size ||
@@ -246,7 +296,7 @@ export async function verifyBundledAssetManifest(root, manifest) {
246
296
  }
247
297
  projectionIds.add(projection.id);
248
298
  }
249
- if (projectionIds.size !== 2)
299
+ if (projectionIds.size !== 1)
250
300
  throw new Error("Bundled client projections are incomplete");
251
301
  const actualFiles = (await bundledPayloadFiles(root)).sort((left, right) => left.path < right.path ? -1 : left.path > right.path ? 1 : 0);
252
302
  if (JSON.stringify(actualFiles.map(({ path }) => path)) !== JSON.stringify(manifest.files.map(({ path }) => path))) {
@@ -264,7 +314,7 @@ export async function verifyBundledAssetManifest(root, manifest) {
264
314
  verifyBundleDeclarations(manifest, customizationManifest, runtimeBundle);
265
315
  const sharedFiles = customizationManifest.sharedFiles;
266
316
  const sharedDirectories = (customizationManifest.sharedDirectories ?? []);
267
- const roles = customizationManifest.roles;
317
+ const plugin = pluginDeclaration(customizationManifest.plugin);
268
318
  const declarations = customizationManifest.clientProjections;
269
319
  if (!Array.isArray(sharedFiles) ||
270
320
  sharedFiles.length !== new Set(sharedFiles).size ||
@@ -272,20 +322,17 @@ export async function verifyBundledAssetManifest(root, manifest) {
272
322
  sharedDirectories.length !== new Set(sharedDirectories).size ||
273
323
  sharedDirectories.some((path) => typeof path !== "string" || !safeRelativePath(path)) ||
274
324
  !Array.isArray(declarations) ||
275
- !Array.isArray(roles) ||
276
325
  declarations.length !== manifest.projections.length ||
277
326
  declarations.length !== new Set(declarations.map(({ id }) => id)).size) {
278
327
  throw new Error("Client projection declarations are missing");
279
328
  }
280
329
  const sourceMetadata = new Map(manifest.files.map((file) => [file.path, file]));
281
330
  for (const file of manifest.files.filter(({ source }) => source.kind === "generated" && source.composition === "client-projections")) {
282
- const target = projectionTarget(file.source.clientId);
283
- const role = file.source.roleId === undefined ? undefined : roles.find(({ id }) => id === file.source.roleId);
331
+ projectionTarget(file.source.clientId);
284
332
  const canonical = sourceMetadata.get(`customizations/${file.source.sourcePath}`);
285
- if ((file.source.roleId !== undefined &&
286
- (role === undefined || role.source !== file.source.sourcePath || !role.supportedTargets.includes(target))) ||
287
- canonical?.source.kind !== "repository-file" ||
288
- canonical.sha256 !== file.source.sourceHash) {
333
+ if (canonical?.source.kind !== "repository-file" ||
334
+ canonical.sha256 !== file.source.sourceHash ||
335
+ canonical.sha256 !== file.sha256) {
289
336
  throw new Error(`Generated client projection source binding mismatch: ${file.path}`);
290
337
  }
291
338
  }
@@ -294,18 +341,17 @@ export async function verifyBundledAssetManifest(root, manifest) {
294
341
  sharedDirectories.some((directory) => path.startsWith(`customizations/${directory}/`)))
295
342
  .map(({ path }) => path.slice("customizations/".length));
296
343
  for (const declaration of declarations) {
297
- const target = projectionTarget(declaration.id);
344
+ projectionTarget(declaration.id);
298
345
  const projection = manifest.projections.find(({ id }) => id === declaration.id);
299
346
  if (!Array.isArray(declaration.files) || declaration.files.length !== new Set(declaration.files).size) {
300
347
  throw new Error(`Bundled client projection disagrees with its declaration: ${declaration.id}`);
301
348
  }
302
- const expectedTargets = [
303
- ...sharedFiles,
304
- ...sharedDirectoryFiles,
305
- ...declaration.files,
306
- ...roles.filter(({ supportedTargets }) => supportedTargets.includes(target)).map(({ source }) => source),
307
- ];
308
- const expected = [...new Set(expectedTargets)].map((path) => `${declaration.generatedRoot}/${path}`).sort();
349
+ const expectedTargets = [...new Set([...sharedFiles, ...sharedDirectoryFiles, ...declaration.files])];
350
+ const reintroduced = expectedTargets.find((path) => pluginOwnsPath(plugin, path));
351
+ if (reintroduced !== undefined) {
352
+ throw new Error(`Bundled client projection carries a plugin-owned file: ${reintroduced}`);
353
+ }
354
+ const expected = expectedTargets.map((path) => `${declaration.generatedRoot}/${path}`).sort();
309
355
  if (!safeRelativePath(declaration.generatedRoot) ||
310
356
  projection === undefined ||
311
357
  JSON.stringify(projection.files) !== JSON.stringify(expected)) {
@@ -316,16 +362,50 @@ export async function verifyBundledAssetManifest(root, manifest) {
316
362
  throw new Error("Bundled asset lock mismatch");
317
363
  }
318
364
  }
365
+ function pluginDeclaration(value) {
366
+ const plugin = value;
367
+ const paths = (entries) => Array.isArray(entries) &&
368
+ entries.length === new Set(entries).size &&
369
+ entries.every((entry) => typeof entry === "string" && safeRelativePath(entry));
370
+ if (plugin === null ||
371
+ typeof plugin !== "object" ||
372
+ plugin.name !== "apex" ||
373
+ plugin.marketplace !== "apex-plugins" ||
374
+ plugin.marketplaceRepository !== "jonathan-vella/apex-plugins" ||
375
+ !paths(plugin.ownedFiles) ||
376
+ !paths(plugin.ownedDirectories) ||
377
+ plugin.ownedDirectories.length === 0) {
378
+ throw new Error("Bundled plugin declaration is invalid");
379
+ }
380
+ return {
381
+ name: plugin.name,
382
+ marketplace: plugin.marketplace,
383
+ marketplaceRepository: plugin.marketplaceRepository,
384
+ ownedFiles: [...plugin.ownedFiles],
385
+ ownedDirectories: [...plugin.ownedDirectories],
386
+ };
387
+ }
388
+ /** True when the apex plugin, not the workspace projection, owns this workspace-relative path. */
389
+ export function pluginOwnsPath(plugin, path) {
390
+ return (plugin.ownedFiles.includes(path) ||
391
+ plugin.ownedDirectories.some((directory) => path === directory || path.startsWith(`${directory}/`)));
392
+ }
393
+ /** Reads only the plugin declaration from the bundled manifest; full asset verification stays in resolveBundledAssets. */
394
+ export async function readBundledPluginDeclaration() {
395
+ const root = fileURLToPath(new URL("../assets/", import.meta.url));
396
+ return pluginDeclaration(JSON.parse((await readBundledFile(root, "customizations/manifest.json")).toString("utf8")).plugin);
397
+ }
319
398
  export async function resolveBundledAssets() {
320
399
  const root = fileURLToPath(new URL("../assets/", import.meta.url));
321
400
  const manifest = JSON.parse(await readFile(join(root, "manifest.json"), "utf8"));
322
401
  await verifyBundledAssetManifest(root, manifest);
402
+ const customizationManifest = JSON.parse((await readBundledFile(root, "customizations/manifest.json")).toString("utf8"));
323
403
  return {
324
404
  root: dirname(join(root, "manifest.json")),
325
405
  customizations: join(root, "customizations"),
406
+ plugin: pluginDeclaration(customizationManifest.plugin),
326
407
  clientProjections: {
327
408
  "github-copilot-cli": join(root, "client-projections", "github-copilot-cli"),
328
- "github-copilot-vscode": join(root, "client-projections", "github-copilot-vscode"),
329
409
  },
330
410
  config: join(root, "config"),
331
411
  capabilityPacks: join(root, "capability-packs"),
@@ -0,0 +1,37 @@
1
+ import { ApexService } from "./service.js";
2
+ export interface BootstrapInteraction {
3
+ ask(question: string): Promise<string>;
4
+ show(value: unknown): void;
5
+ }
6
+ type SetupService = Pick<ApexService, "listArchetypes" | "planArchetypeBatch" | "importArchetypeBatch" | "planBootstrap" | "bootstrap" | "planRepositoryPublish" | "publishRepository" | "planGovernanceSetup" | "planGovernanceProvision" | "provisionGovernance" | "inspectGovernanceBaselineReadiness">;
7
+ /** Runs one workspace's setup steps, for example while holding that workspace's lock. */
8
+ export type BootstrapWorkspaceScope = <T>(directory: string, body: () => Promise<T>) => Promise<T>;
9
+ export declare function runBootstrapWizard(root: string, interaction: BootstrapInteraction, serviceAt?: (directory: string) => SetupService, scope?: BootstrapWorkspaceScope): Promise<{
10
+ status: string;
11
+ progress: {
12
+ directory: string;
13
+ step: string;
14
+ outcome: unknown;
15
+ }[];
16
+ nextAction: string;
17
+ }>;
18
+ /**
19
+ * Runs the wizard on the terminal, or on `options.interaction` when given, while the command holds the workspace lock
20
+ * of `root` through `service`. Each copied workspace's steps also hold that workspace's own lock. Every question is
21
+ * asked without any of these locks, so MCP calls are not blocked while the wizard waits; if a workspace changed during
22
+ * the wait, the wizard fails with `APEX_STALE` instead of applying the answer.
23
+ */
24
+ export declare function interactiveBootstrap(root: string, service: Pick<ApexService, "waitOutsideWorkspaceLock">, options?: {
25
+ interaction?: BootstrapInteraction | undefined;
26
+ serviceAt?: (directory: string) => ApexService;
27
+ }): Promise<{
28
+ status: string;
29
+ progress: {
30
+ directory: string;
31
+ step: string;
32
+ outcome: unknown;
33
+ }[];
34
+ nextAction: string;
35
+ }>;
36
+ export {};
37
+ //# sourceMappingURL=bootstrap-wizard.d.ts.map