@msn-control/liftoff 0.10.4 → 0.11.2

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 (700) hide show
  1. package/DEVELOPER.md +238 -77
  2. package/README.md +38 -33
  3. package/assets/supported-stack.json +3 -136
  4. package/dist/adapters/azure/governance-assessment.d.ts +2 -0
  5. package/dist/adapters/azure/governance-assessment.js +21 -0
  6. package/dist/adapters/azure/governance-assessment.js.map +1 -0
  7. package/dist/adapters/filesystem/atomic-write.d.ts +2 -0
  8. package/dist/adapters/filesystem/atomic-write.js +74 -0
  9. package/dist/adapters/filesystem/atomic-write.js.map +1 -0
  10. package/dist/adapters/filesystem/errors.d.ts +2 -0
  11. package/dist/adapters/filesystem/errors.js +8 -0
  12. package/dist/adapters/filesystem/errors.js.map +1 -0
  13. package/dist/adapters/filesystem/manifest-file.d.ts +1 -0
  14. package/dist/adapters/filesystem/manifest-file.js +21 -0
  15. package/dist/adapters/filesystem/manifest-file.js.map +1 -0
  16. package/dist/adapters/filesystem/project-config.d.ts +4 -0
  17. package/dist/adapters/filesystem/project-config.js +157 -0
  18. package/dist/adapters/filesystem/project-config.js.map +1 -0
  19. package/dist/adapters/filesystem/project-discovery.d.ts +2 -0
  20. package/dist/adapters/filesystem/project-discovery.js +30 -0
  21. package/dist/adapters/filesystem/project-discovery.js.map +1 -0
  22. package/dist/adapters/filesystem/project-files.d.ts +6 -0
  23. package/dist/adapters/filesystem/project-files.js +68 -0
  24. package/dist/adapters/filesystem/project-files.js.map +1 -0
  25. package/dist/adapters/filesystem/project-lock.d.ts +8 -0
  26. package/dist/adapters/filesystem/project-lock.js +164 -0
  27. package/dist/adapters/filesystem/project-lock.js.map +1 -0
  28. package/dist/adapters/filesystem/project-paths.d.ts +2 -0
  29. package/dist/adapters/filesystem/project-paths.js +60 -0
  30. package/dist/adapters/filesystem/project-paths.js.map +1 -0
  31. package/dist/adapters/filesystem/project-transaction.d.ts +24 -0
  32. package/dist/adapters/filesystem/project-transaction.js +177 -0
  33. package/dist/adapters/filesystem/project-transaction.js.map +1 -0
  34. package/dist/adapters/filesystem/reviewed-update-transaction.d.ts +53 -0
  35. package/dist/adapters/filesystem/reviewed-update-transaction.js +864 -0
  36. package/dist/adapters/filesystem/reviewed-update-transaction.js.map +1 -0
  37. package/dist/adapters/filesystem/update-previews.d.ts +50 -0
  38. package/dist/adapters/filesystem/update-previews.js +613 -0
  39. package/dist/adapters/filesystem/update-previews.js.map +1 -0
  40. package/dist/adapters/git/governance-assessment.d.ts +22 -0
  41. package/dist/adapters/git/governance-assessment.js +161 -0
  42. package/dist/adapters/git/governance-assessment.js.map +1 -0
  43. package/dist/adapters/github/governance-assessment.d.ts +2 -0
  44. package/dist/adapters/github/governance-assessment.js +18 -0
  45. package/dist/adapters/github/governance-assessment.js.map +1 -0
  46. package/dist/adapters/packaged-assets/package-root.d.ts +3 -0
  47. package/dist/adapters/packaged-assets/package-root.js +21 -0
  48. package/dist/adapters/packaged-assets/package-root.js.map +1 -0
  49. package/dist/adapters/packaged-assets/supported-stack.d.ts +4 -0
  50. package/dist/adapters/packaged-assets/supported-stack.js +18 -0
  51. package/dist/adapters/packaged-assets/supported-stack.js.map +1 -0
  52. package/dist/adapters/packaged-assets/template-assets.d.ts +23 -0
  53. package/dist/adapters/packaged-assets/template-assets.js +36 -0
  54. package/dist/adapters/packaged-assets/template-assets.js.map +1 -0
  55. package/dist/adapters/process/shell-command.d.ts +6 -0
  56. package/dist/adapters/process/shell-command.js +27 -0
  57. package/dist/adapters/process/shell-command.js.map +1 -0
  58. package/dist/application/context.d.ts +25 -0
  59. package/dist/application/context.js +2 -0
  60. package/dist/application/context.js.map +1 -0
  61. package/dist/application/diagnose/doctor.d.ts +21 -0
  62. package/dist/application/diagnose/doctor.js +580 -0
  63. package/dist/application/diagnose/doctor.js.map +1 -0
  64. package/dist/application/diagnose/generated-project.d.ts +1 -0
  65. package/dist/application/diagnose/generated-project.js +105 -0
  66. package/dist/application/diagnose/generated-project.js.map +1 -0
  67. package/dist/application/diagnose/validate.d.ts +6 -0
  68. package/dist/application/diagnose/validate.js +27 -0
  69. package/dist/application/diagnose/validate.js.map +1 -0
  70. package/dist/application/initialize/fixture.d.ts +2 -0
  71. package/dist/application/initialize/fixture.js +39 -0
  72. package/dist/application/initialize/fixture.js.map +1 -0
  73. package/dist/application/initialize/inputs.d.ts +3 -0
  74. package/dist/application/initialize/inputs.js +35 -0
  75. package/dist/application/initialize/inputs.js.map +1 -0
  76. package/dist/application/initialize/use-case.d.ts +23 -0
  77. package/dist/application/initialize/use-case.js +360 -0
  78. package/dist/application/initialize/use-case.js.map +1 -0
  79. package/dist/application/migrate/use-case.d.ts +7 -0
  80. package/dist/application/migrate/use-case.js +378 -0
  81. package/dist/application/migrate/use-case.js.map +1 -0
  82. package/dist/application/project/catalog.d.ts +46 -0
  83. package/dist/application/project/catalog.js +12 -0
  84. package/dist/application/project/catalog.js.map +1 -0
  85. package/dist/application/project/manifest.d.ts +2 -0
  86. package/dist/application/project/manifest.js +29 -0
  87. package/dist/application/project/manifest.js.map +1 -0
  88. package/dist/application/project/planning.d.ts +6 -0
  89. package/dist/application/project/planning.js +12 -0
  90. package/dist/application/project/planning.js.map +1 -0
  91. package/dist/application/update/approval.d.ts +39 -0
  92. package/dist/application/update/approval.js +54 -0
  93. package/dist/application/update/approval.js.map +1 -0
  94. package/dist/application/update/command-guidance.d.ts +2 -0
  95. package/dist/application/update/command-guidance.js +14 -0
  96. package/dist/application/update/command-guidance.js.map +1 -0
  97. package/dist/application/update/inspection.d.ts +37 -0
  98. package/dist/application/update/inspection.js +235 -0
  99. package/dist/application/update/inspection.js.map +1 -0
  100. package/dist/application/update/migration-runtime.d.ts +14 -0
  101. package/dist/application/update/migration-runtime.js +178 -0
  102. package/dist/application/update/migration-runtime.js.map +1 -0
  103. package/dist/application/update/output.d.ts +134 -0
  104. package/dist/application/update/output.js +182 -0
  105. package/dist/application/update/output.js.map +1 -0
  106. package/dist/application/update/planning.d.ts +40 -0
  107. package/dist/application/update/planning.js +293 -0
  108. package/dist/application/update/planning.js.map +1 -0
  109. package/dist/application/update/preview.d.ts +49 -0
  110. package/dist/application/update/preview.js +220 -0
  111. package/dist/application/update/preview.js.map +1 -0
  112. package/dist/application/update/protected-source.d.ts +25 -0
  113. package/dist/application/update/protected-source.js +81 -0
  114. package/dist/application/update/protected-source.js.map +1 -0
  115. package/dist/application/update/reporting.d.ts +42 -0
  116. package/dist/application/update/reporting.js +326 -0
  117. package/dist/application/update/reporting.js.map +1 -0
  118. package/dist/application/update/revalidation-plan.d.ts +22 -0
  119. package/dist/application/update/revalidation-plan.js +108 -0
  120. package/dist/application/update/revalidation-plan.js.map +1 -0
  121. package/dist/application/update/revalidation.d.ts +70 -0
  122. package/dist/application/update/revalidation.js +337 -0
  123. package/dist/application/update/revalidation.js.map +1 -0
  124. package/dist/application/update/review-plan.d.ts +25 -0
  125. package/dist/application/update/review-plan.js +89 -0
  126. package/dist/application/update/review-plan.js.map +1 -0
  127. package/dist/application/update/transaction-approval.d.ts +29 -0
  128. package/dist/application/update/transaction-approval.js +82 -0
  129. package/dist/application/update/transaction-approval.js.map +1 -0
  130. package/dist/application/update/use-case.d.ts +9 -0
  131. package/dist/application/update/use-case.js +271 -0
  132. package/dist/application/update/use-case.js.map +1 -0
  133. package/dist/application/update/write-plan.d.ts +15 -0
  134. package/dist/application/update/write-plan.js +115 -0
  135. package/dist/application/update/write-plan.js.map +1 -0
  136. package/dist/application/upgrade/use-case.d.ts +6 -0
  137. package/dist/application/upgrade/use-case.js +82 -0
  138. package/dist/application/upgrade/use-case.js.map +1 -0
  139. package/dist/args.d.ts +5 -65
  140. package/dist/args.js +4 -472
  141. package/dist/args.js.map +1 -1
  142. package/dist/artifact-lifecycle.d.ts +1 -21
  143. package/dist/artifact-lifecycle.js +1 -75
  144. package/dist/artifact-lifecycle.js.map +1 -1
  145. package/dist/catalogs.d.ts +1 -50
  146. package/dist/catalogs.js +1 -472
  147. package/dist/catalogs.js.map +1 -1
  148. package/dist/cli/args/contracts.d.ts +51 -0
  149. package/dist/cli/args/contracts.js +2 -0
  150. package/dist/cli/args/contracts.js.map +1 -0
  151. package/dist/cli/args/definitions.d.ts +6 -0
  152. package/dist/cli/args/definitions.js +188 -0
  153. package/dist/cli/args/definitions.js.map +1 -0
  154. package/dist/cli/args/help.d.ts +5 -0
  155. package/dist/cli/args/help.js +142 -0
  156. package/dist/cli/args/help.js.map +1 -0
  157. package/dist/cli/args/parser.d.ts +5 -0
  158. package/dist/cli/args/parser.js +160 -0
  159. package/dist/cli/args/parser.js.map +1 -0
  160. package/dist/cli/args/readers.d.ts +4 -0
  161. package/dist/cli/args/readers.js +19 -0
  162. package/dist/cli/args/readers.js.map +1 -0
  163. package/dist/cli/commands/diagnose.d.ts +4 -0
  164. package/dist/cli/commands/diagnose.js +12 -0
  165. package/dist/cli/commands/diagnose.js.map +1 -0
  166. package/dist/cli/commands/dispatch.d.ts +3 -0
  167. package/dist/cli/commands/dispatch.js +94 -0
  168. package/dist/cli/commands/dispatch.js.map +1 -0
  169. package/dist/cli/commands/help.d.ts +3 -0
  170. package/dist/cli/commands/help.js +32 -0
  171. package/dist/cli/commands/help.js.map +1 -0
  172. package/dist/cli/commands/helpers.d.ts +8 -0
  173. package/dist/cli/commands/helpers.js +97 -0
  174. package/dist/cli/commands/helpers.js.map +1 -0
  175. package/dist/cli/commands/initialize.d.ts +3 -0
  176. package/dist/cli/commands/initialize.js +7 -0
  177. package/dist/cli/commands/initialize.js.map +1 -0
  178. package/dist/cli/commands/migrate.d.ts +3 -0
  179. package/dist/cli/commands/migrate.js +8 -0
  180. package/dist/cli/commands/migrate.js.map +1 -0
  181. package/dist/cli/commands/plan.d.ts +3 -0
  182. package/dist/cli/commands/plan.js +34 -0
  183. package/dist/cli/commands/plan.js.map +1 -0
  184. package/dist/cli/commands/reference.d.ts +5 -0
  185. package/dist/cli/commands/reference.js +43 -0
  186. package/dist/cli/commands/reference.js.map +1 -0
  187. package/dist/cli/commands/update.d.ts +3 -0
  188. package/dist/cli/commands/update.js +10 -0
  189. package/dist/cli/commands/update.js.map +1 -0
  190. package/dist/cli/commands/upgrade.d.ts +3 -0
  191. package/dist/cli/commands/upgrade.js +7 -0
  192. package/dist/cli/commands/upgrade.js.map +1 -0
  193. package/dist/cli/context.d.ts +1 -0
  194. package/dist/cli/context.js +2 -0
  195. package/dist/cli/context.js.map +1 -0
  196. package/dist/cli/project-options.d.ts +3 -0
  197. package/dist/cli/project-options.js +41 -0
  198. package/dist/cli/project-options.js.map +1 -0
  199. package/dist/cli.d.ts +3 -3
  200. package/dist/cli.js +2 -2
  201. package/dist/cli.js.map +1 -1
  202. package/dist/commands.d.ts +4 -35
  203. package/dist/commands.js +3 -2969
  204. package/dist/commands.js.map +1 -1
  205. package/dist/container-validation.d.ts +1 -1
  206. package/dist/domain/governance/activation/approvals.d.ts +351 -0
  207. package/dist/domain/governance/activation/approvals.js +528 -0
  208. package/dist/domain/governance/activation/approvals.js.map +1 -0
  209. package/dist/domain/governance/activation/canonical-json.d.ts +4 -0
  210. package/dist/domain/governance/activation/canonical-json.js +39 -0
  211. package/dist/domain/governance/activation/canonical-json.js.map +1 -0
  212. package/dist/domain/governance/activation/capabilities.d.ts +7 -0
  213. package/dist/domain/governance/activation/capabilities.js +33 -0
  214. package/dist/domain/governance/activation/capabilities.js.map +1 -0
  215. package/dist/domain/governance/activation/evidence.d.ts +63 -0
  216. package/dist/domain/governance/activation/evidence.js +444 -0
  217. package/dist/domain/governance/activation/evidence.js.map +1 -0
  218. package/dist/domain/governance/activation/graph.d.ts +397 -0
  219. package/dist/domain/governance/activation/graph.js +441 -0
  220. package/dist/domain/governance/activation/graph.js.map +1 -0
  221. package/dist/domain/governance/activation/inputs.d.ts +25 -0
  222. package/dist/domain/governance/activation/inputs.js +63 -0
  223. package/dist/domain/governance/activation/inputs.js.map +1 -0
  224. package/dist/domain/governance/activation/operations.d.ts +19 -0
  225. package/dist/domain/governance/activation/operations.js +181 -0
  226. package/dist/domain/governance/activation/operations.js.map +1 -0
  227. package/dist/domain/governance/activation/readiness.d.ts +27 -0
  228. package/dist/domain/governance/activation/readiness.js +269 -0
  229. package/dist/domain/governance/activation/readiness.js.map +1 -0
  230. package/dist/domain/governance/activation/types.d.ts +399 -0
  231. package/dist/domain/governance/activation/types.js +109 -0
  232. package/dist/domain/governance/activation/types.js.map +1 -0
  233. package/dist/domain/governance/activation/validators.d.ts +22 -0
  234. package/dist/domain/governance/activation/validators.js +1347 -0
  235. package/dist/domain/governance/activation/validators.js.map +1 -0
  236. package/dist/domain/governance/assessment/catalog.d.ts +14 -0
  237. package/dist/domain/governance/assessment/catalog.js +105 -0
  238. package/dist/domain/governance/assessment/catalog.js.map +1 -0
  239. package/dist/domain/governance/assessment/errors.d.ts +10 -0
  240. package/dist/domain/governance/assessment/errors.js +22 -0
  241. package/dist/domain/governance/assessment/errors.js.map +1 -0
  242. package/dist/domain/governance/assessment/index.d.ts +8 -0
  243. package/dist/domain/governance/assessment/index.js +9 -0
  244. package/dist/domain/governance/assessment/index.js.map +1 -0
  245. package/dist/domain/governance/assessment/live-normalize.d.ts +19 -0
  246. package/dist/domain/governance/assessment/live-normalize.js +403 -0
  247. package/dist/domain/governance/assessment/live-normalize.js.map +1 -0
  248. package/dist/domain/governance/assessment/predicates.d.ts +36 -0
  249. package/dist/domain/governance/assessment/predicates.js +545 -0
  250. package/dist/domain/governance/assessment/predicates.js.map +1 -0
  251. package/dist/domain/governance/assessment/report.d.ts +23 -0
  252. package/dist/domain/governance/assessment/report.js +266 -0
  253. package/dist/domain/governance/assessment/report.js.map +1 -0
  254. package/dist/domain/governance/assessment/sanitize.d.ts +8 -0
  255. package/dist/domain/governance/assessment/sanitize.js +60 -0
  256. package/dist/domain/governance/assessment/sanitize.js.map +1 -0
  257. package/dist/domain/governance/assessment/types.d.ts +174 -0
  258. package/dist/domain/governance/assessment/types.js +13 -0
  259. package/dist/domain/governance/assessment/types.js.map +1 -0
  260. package/dist/domain/governance/assessment/yaml.d.ts +6 -0
  261. package/dist/domain/governance/assessment/yaml.js +30 -0
  262. package/dist/domain/governance/assessment/yaml.js.map +1 -0
  263. package/dist/domain/governance/policy/identity.d.ts +64 -0
  264. package/dist/domain/governance/policy/identity.js +112 -0
  265. package/dist/domain/governance/policy/identity.js.map +1 -0
  266. package/dist/domain/migration/dependencies.d.ts +7 -0
  267. package/dist/domain/migration/dependencies.js +221 -0
  268. package/dist/domain/migration/dependencies.js.map +1 -0
  269. package/dist/domain/migration/inventory.d.ts +3 -0
  270. package/dist/domain/migration/inventory.js +15 -0
  271. package/dist/domain/migration/inventory.js.map +1 -0
  272. package/dist/domain/project/artifact-lifecycle.d.ts +69 -0
  273. package/dist/domain/project/artifact-lifecycle.js +137 -0
  274. package/dist/domain/project/artifact-lifecycle.js.map +1 -0
  275. package/dist/domain/project/catalog.d.ts +48 -0
  276. package/dist/domain/project/catalog.js +507 -0
  277. package/dist/domain/project/catalog.js.map +1 -0
  278. package/dist/domain/project/contracts.d.ts +247 -0
  279. package/dist/domain/project/contracts.js +2 -0
  280. package/dist/domain/project/contracts.js.map +1 -0
  281. package/dist/domain/project/errors.d.ts +3 -0
  282. package/dist/domain/project/errors.js +7 -0
  283. package/dist/domain/project/errors.js.map +1 -0
  284. package/dist/domain/project/infrastructure-layout.d.ts +26 -0
  285. package/dist/domain/project/infrastructure-layout.js +125 -0
  286. package/dist/domain/project/infrastructure-layout.js.map +1 -0
  287. package/dist/domain/project/inputs.d.ts +21 -0
  288. package/dist/domain/project/inputs.js +41 -0
  289. package/dist/domain/project/inputs.js.map +1 -0
  290. package/dist/domain/project/manifest/artifacts.d.ts +8 -0
  291. package/dist/domain/project/manifest/artifacts.js +150 -0
  292. package/dist/domain/project/manifest/artifacts.js.map +1 -0
  293. package/dist/domain/project/manifest/context.d.ts +13 -0
  294. package/dist/domain/project/manifest/context.js +2 -0
  295. package/dist/domain/project/manifest/context.js.map +1 -0
  296. package/dist/domain/project/manifest/fields.d.ts +6 -0
  297. package/dist/domain/project/manifest/fields.js +36 -0
  298. package/dist/domain/project/manifest/fields.js.map +1 -0
  299. package/dist/domain/project/manifest/governance.d.ts +8 -0
  300. package/dist/domain/project/manifest/governance.js +161 -0
  301. package/dist/domain/project/manifest/governance.js.map +1 -0
  302. package/dist/domain/project/manifest/project-identity.d.ts +6 -0
  303. package/dist/domain/project/manifest/project-identity.js +273 -0
  304. package/dist/domain/project/manifest/project-identity.js.map +1 -0
  305. package/dist/domain/project/manifest/reader.d.ts +9 -0
  306. package/dist/domain/project/manifest/reader.js +141 -0
  307. package/dist/domain/project/manifest/reader.js.map +1 -0
  308. package/dist/domain/project/paths.d.ts +2 -0
  309. package/dist/domain/project/paths.js +29 -0
  310. package/dist/domain/project/paths.js.map +1 -0
  311. package/dist/domain/project/planning.d.ts +19 -0
  312. package/dist/domain/project/planning.js +329 -0
  313. package/dist/domain/project/planning.js.map +1 -0
  314. package/dist/domain/project/retired-workload.d.ts +4 -0
  315. package/dist/domain/project/retired-workload.js +18 -0
  316. package/dist/domain/project/retired-workload.js.map +1 -0
  317. package/dist/domain/project/reviewed-update-artifacts.d.ts +2 -0
  318. package/dist/domain/project/reviewed-update-artifacts.js +3 -0
  319. package/dist/domain/project/reviewed-update-artifacts.js.map +1 -0
  320. package/dist/domain/project/supported-stack.d.ts +113 -0
  321. package/dist/domain/project/supported-stack.js +426 -0
  322. package/dist/domain/project/supported-stack.js.map +1 -0
  323. package/dist/domain/workstation/constraints.d.ts +6 -0
  324. package/dist/domain/workstation/constraints.js +8 -0
  325. package/dist/domain/workstation/constraints.js.map +1 -0
  326. package/dist/file-system.d.ts +10 -44
  327. package/dist/file-system.js +9 -1245
  328. package/dist/file-system.js.map +1 -1
  329. package/dist/framework-adapters.d.ts +1 -1
  330. package/dist/framework-validation.d.ts +1 -1
  331. package/dist/framework-validation.js +1 -1
  332. package/dist/framework-validation.js.map +1 -1
  333. package/dist/genai-templates.d.ts +2 -9
  334. package/dist/genai-templates.js +4 -5
  335. package/dist/genai-templates.js.map +1 -1
  336. package/dist/generators/common/artifacts.d.ts +6 -0
  337. package/dist/generators/common/artifacts.js +30 -0
  338. package/dist/generators/common/artifacts.js.map +1 -0
  339. package/dist/generators/common/base.d.ts +17 -0
  340. package/dist/generators/common/base.js +425 -0
  341. package/dist/generators/common/base.js.map +1 -0
  342. package/dist/generators/common/dotenv-validation.d.ts +2 -0
  343. package/dist/generators/common/dotenv-validation.js +80 -0
  344. package/dist/generators/common/dotenv-validation.js.map +1 -0
  345. package/dist/generators/common/environments.d.ts +3 -0
  346. package/dist/generators/common/environments.js +15 -0
  347. package/dist/generators/common/environments.js.map +1 -0
  348. package/dist/generators/common/frontend.d.ts +15 -0
  349. package/dist/generators/common/frontend.js +166 -0
  350. package/dist/generators/common/frontend.js.map +1 -0
  351. package/dist/generators/common/python-settings.d.ts +2 -0
  352. package/dist/generators/common/python-settings.js +70 -0
  353. package/dist/generators/common/python-settings.js.map +1 -0
  354. package/dist/generators/common/spec-workflow.d.ts +28 -0
  355. package/dist/generators/common/spec-workflow.js +567 -0
  356. package/dist/generators/common/spec-workflow.js.map +1 -0
  357. package/dist/generators/common/values.d.ts +13 -0
  358. package/dist/generators/common/values.js +16 -0
  359. package/dist/generators/common/values.js.map +1 -0
  360. package/dist/generators/containers/compose.d.ts +7 -0
  361. package/dist/generators/containers/compose.js +196 -0
  362. package/dist/generators/containers/compose.js.map +1 -0
  363. package/dist/generators/containers/context.d.ts +1 -0
  364. package/dist/generators/containers/context.js +43 -0
  365. package/dist/generators/containers/context.js.map +1 -0
  366. package/dist/generators/containers/images.d.ts +7 -0
  367. package/dist/generators/containers/images.js +119 -0
  368. package/dist/generators/containers/images.js.map +1 -0
  369. package/dist/generators/context.d.ts +42 -0
  370. package/dist/generators/context.js +38 -0
  371. package/dist/generators/context.js.map +1 -0
  372. package/dist/generators/genai/backend.d.ts +20 -0
  373. package/dist/generators/genai/backend.js +667 -0
  374. package/dist/generators/genai/backend.js.map +1 -0
  375. package/dist/generators/genai/configuration.d.ts +3 -0
  376. package/dist/generators/genai/configuration.js +43 -0
  377. package/dist/generators/genai/configuration.js.map +1 -0
  378. package/dist/generators/genai/database.d.ts +7 -0
  379. package/dist/generators/genai/database.js +71 -0
  380. package/dist/generators/genai/database.js.map +1 -0
  381. package/dist/generators/genai/functions.d.ts +15 -0
  382. package/dist/generators/genai/functions.js +156 -0
  383. package/dist/generators/genai/functions.js.map +1 -0
  384. package/dist/generators/genai/index.d.ts +8 -0
  385. package/dist/generators/genai/index.js +11 -0
  386. package/dist/generators/genai/index.js.map +1 -0
  387. package/dist/generators/genai/patterns.d.ts +9 -0
  388. package/dist/generators/genai/patterns.js +309 -0
  389. package/dist/generators/genai/patterns.js.map +1 -0
  390. package/dist/generators/infrastructure/azure.d.ts +18 -0
  391. package/dist/generators/infrastructure/azure.js +655 -0
  392. package/dist/generators/infrastructure/azure.js.map +1 -0
  393. package/dist/generators/infrastructure/names.d.ts +23 -0
  394. package/dist/generators/infrastructure/names.js +51 -0
  395. package/dist/generators/infrastructure/names.js.map +1 -0
  396. package/dist/generators/standard/configuration.d.ts +3 -0
  397. package/dist/generators/standard/configuration.js +26 -0
  398. package/dist/generators/standard/configuration.js.map +1 -0
  399. package/dist/generators/standard/go.d.ts +17 -0
  400. package/dist/generators/standard/go.js +338 -0
  401. package/dist/generators/standard/go.js.map +1 -0
  402. package/dist/generators/standard/index.d.ts +12 -0
  403. package/dist/generators/standard/index.js +12 -0
  404. package/dist/generators/standard/index.js.map +1 -0
  405. package/dist/generators/standard/node.d.ts +20 -0
  406. package/dist/generators/standard/node.js +314 -0
  407. package/dist/generators/standard/node.js.map +1 -0
  408. package/dist/generators/standard/python.d.ts +18 -0
  409. package/dist/generators/standard/python.js +191 -0
  410. package/dist/generators/standard/python.js.map +1 -0
  411. package/dist/go-template-assets.js +3 -3
  412. package/dist/go-template-assets.js.map +1 -1
  413. package/dist/governance-activation/activation-state.d.ts +1 -1
  414. package/dist/governance-activation/activation-state.js +49 -9
  415. package/dist/governance-activation/activation-state.js.map +1 -1
  416. package/dist/governance-activation/approvals.d.ts +1 -188
  417. package/dist/governance-activation/approvals.js +1 -507
  418. package/dist/governance-activation/approvals.js.map +1 -1
  419. package/dist/governance-activation/canonical-json.d.ts +1 -3
  420. package/dist/governance-activation/canonical-json.js +1 -35
  421. package/dist/governance-activation/canonical-json.js.map +1 -1
  422. package/dist/governance-activation/commands.d.ts +6 -1
  423. package/dist/governance-activation/commands.js +135 -107
  424. package/dist/governance-activation/commands.js.map +1 -1
  425. package/dist/governance-activation/compatibility.d.ts +30 -5
  426. package/dist/governance-activation/compatibility.js +74 -8
  427. package/dist/governance-activation/compatibility.js.map +1 -1
  428. package/dist/governance-activation/credentials.d.ts +3 -3
  429. package/dist/governance-activation/credentials.js +5 -5
  430. package/dist/governance-activation/credentials.js.map +1 -1
  431. package/dist/governance-activation/doctor.d.ts +1 -1
  432. package/dist/governance-activation/doctor.js +59 -100
  433. package/dist/governance-activation/doctor.js.map +1 -1
  434. package/dist/governance-activation/evidence.d.ts +1 -49
  435. package/dist/governance-activation/evidence.js +1 -245
  436. package/dist/governance-activation/evidence.js.map +1 -1
  437. package/dist/governance-activation/git-ignore.d.ts +9 -0
  438. package/dist/governance-activation/git-ignore.js +76 -0
  439. package/dist/governance-activation/git-ignore.js.map +1 -0
  440. package/dist/governance-activation/graph.d.ts +1 -397
  441. package/dist/governance-activation/graph.js +1 -440
  442. package/dist/governance-activation/graph.js.map +1 -1
  443. package/dist/governance-activation/historical-state.d.ts +81 -0
  444. package/dist/governance-activation/historical-state.js +817 -0
  445. package/dist/governance-activation/historical-state.js.map +1 -0
  446. package/dist/governance-activation/history-contracts.d.ts +109 -0
  447. package/dist/governance-activation/history-contracts.js +303 -0
  448. package/dist/governance-activation/history-contracts.js.map +1 -0
  449. package/dist/governance-activation/identity.d.ts +1 -35
  450. package/dist/governance-activation/identity.js +1 -88
  451. package/dist/governance-activation/identity.js.map +1 -1
  452. package/dist/governance-activation/index.d.ts +3 -0
  453. package/dist/governance-activation/index.js +3 -0
  454. package/dist/governance-activation/index.js.map +1 -1
  455. package/dist/governance-activation/inputs.d.ts +10 -0
  456. package/dist/governance-activation/inputs.js +158 -0
  457. package/dist/governance-activation/inputs.js.map +1 -0
  458. package/dist/governance-activation/migration-history.d.ts +97 -0
  459. package/dist/governance-activation/migration-history.js +388 -0
  460. package/dist/governance-activation/migration-history.js.map +1 -0
  461. package/dist/governance-activation/migration.d.ts +4 -3
  462. package/dist/governance-activation/migration.js +14 -6
  463. package/dist/governance-activation/migration.js.map +1 -1
  464. package/dist/governance-activation/phase-bootstrap-state.d.ts +3 -0
  465. package/dist/governance-activation/phase-bootstrap-state.js +128 -0
  466. package/dist/governance-activation/phase-bootstrap-state.js.map +1 -0
  467. package/dist/governance-activation/phase-discovery.d.ts +2 -0
  468. package/dist/governance-activation/phase-discovery.js +88 -0
  469. package/dist/governance-activation/phase-discovery.js.map +1 -0
  470. package/dist/governance-activation/phase-governance.d.ts +4 -0
  471. package/dist/governance-activation/phase-governance.js +141 -0
  472. package/dist/governance-activation/phase-governance.js.map +1 -0
  473. package/dist/governance-activation/phase-publication.d.ts +8 -0
  474. package/dist/governance-activation/phase-publication.js +318 -0
  475. package/dist/governance-activation/phase-publication.js.map +1 -0
  476. package/dist/governance-activation/proof-records.d.ts +3 -0
  477. package/dist/governance-activation/proof-records.js +78 -0
  478. package/dist/governance-activation/proof-records.js.map +1 -0
  479. package/dist/governance-activation/read-only.d.ts +30 -0
  480. package/dist/governance-activation/read-only.js +33 -0
  481. package/dist/governance-activation/read-only.js.map +1 -0
  482. package/dist/governance-activation/readiness.d.ts +1 -25
  483. package/dist/governance-activation/readiness.js +1 -222
  484. package/dist/governance-activation/readiness.js.map +1 -1
  485. package/dist/governance-activation/reconciliation.d.ts +1 -1
  486. package/dist/governance-activation/reconciliation.js +3 -3
  487. package/dist/governance-activation/reconciliation.js.map +1 -1
  488. package/dist/governance-activation/release-integrity.d.ts +1 -1
  489. package/dist/governance-activation/release-integrity.js +2 -2
  490. package/dist/governance-activation/release-integrity.js.map +1 -1
  491. package/dist/governance-activation/seed-lifecycle.d.ts +36 -6
  492. package/dist/governance-activation/seed-lifecycle.js +444 -77
  493. package/dist/governance-activation/seed-lifecycle.js.map +1 -1
  494. package/dist/governance-activation/source-of-truth.d.ts +5 -3
  495. package/dist/governance-activation/source-of-truth.js +32 -52
  496. package/dist/governance-activation/source-of-truth.js.map +1 -1
  497. package/dist/governance-activation/spec-kit-seed.d.ts +9 -0
  498. package/dist/governance-activation/spec-kit-seed.js +43 -0
  499. package/dist/governance-activation/spec-kit-seed.js.map +1 -0
  500. package/dist/governance-activation/task-projection.d.ts +1 -1
  501. package/dist/governance-activation/transition-planning.d.ts +17 -0
  502. package/dist/governance-activation/transition-planning.js +259 -0
  503. package/dist/governance-activation/transition-planning.js.map +1 -0
  504. package/dist/governance-activation/transition-ports.d.ts +150 -0
  505. package/dist/governance-activation/transition-ports.js +2 -0
  506. package/dist/governance-activation/transition-ports.js.map +1 -0
  507. package/dist/governance-activation/transition-process.d.ts +7 -0
  508. package/dist/governance-activation/transition-process.js +21 -0
  509. package/dist/governance-activation/transition-process.js.map +1 -0
  510. package/dist/governance-activation/transition-records.d.ts +56 -0
  511. package/dist/governance-activation/transition-records.js +208 -0
  512. package/dist/governance-activation/transition-records.js.map +1 -0
  513. package/dist/governance-activation/transitions.d.ts +14 -167
  514. package/dist/governance-activation/transitions.js +173 -2061
  515. package/dist/governance-activation/transitions.js.map +1 -1
  516. package/dist/governance-activation/types.d.ts +1 -390
  517. package/dist/governance-activation/types.js +1 -107
  518. package/dist/governance-activation/types.js.map +1 -1
  519. package/dist/governance-activation/validators.d.ts +1 -17
  520. package/dist/governance-activation/validators.js +1 -1304
  521. package/dist/governance-activation/validators.js.map +1 -1
  522. package/dist/governance-assessment/catalog.d.ts +1 -2
  523. package/dist/governance-assessment/catalog.js +18 -85
  524. package/dist/governance-assessment/catalog.js.map +1 -1
  525. package/dist/governance-assessment/command.d.ts +1 -1
  526. package/dist/governance-assessment/command.js +8 -12
  527. package/dist/governance-assessment/command.js.map +1 -1
  528. package/dist/governance-assessment/engine.d.ts +6 -11
  529. package/dist/governance-assessment/engine.js +490 -114
  530. package/dist/governance-assessment/engine.js.map +1 -1
  531. package/dist/governance-assessment/live-normalize.d.ts +1 -19
  532. package/dist/governance-assessment/live-normalize.js +1 -402
  533. package/dist/governance-assessment/live-normalize.js.map +1 -1
  534. package/dist/governance-assessment/live-transport.d.ts +2 -6
  535. package/dist/governance-assessment/live-transport.js +10 -22
  536. package/dist/governance-assessment/live-transport.js.map +1 -1
  537. package/dist/governance-assessment/live.js +55 -5
  538. package/dist/governance-assessment/live.js.map +1 -1
  539. package/dist/governance-assessment/predicates.d.ts +1 -27
  540. package/dist/governance-assessment/predicates.js +1 -329
  541. package/dist/governance-assessment/predicates.js.map +1 -1
  542. package/dist/governance-assessment/project.d.ts +20 -17
  543. package/dist/governance-assessment/project.js +101 -151
  544. package/dist/governance-assessment/project.js.map +1 -1
  545. package/dist/governance-assessment/readers.d.ts +1 -5
  546. package/dist/governance-assessment/readers.js +5 -13
  547. package/dist/governance-assessment/readers.js.map +1 -1
  548. package/dist/governance-assessment/report.d.ts +1 -23
  549. package/dist/governance-assessment/report.js +1 -265
  550. package/dist/governance-assessment/report.js.map +1 -1
  551. package/dist/governance-assessment/sanitize.d.ts +1 -8
  552. package/dist/governance-assessment/sanitize.js +1 -56
  553. package/dist/governance-assessment/sanitize.js.map +1 -1
  554. package/dist/governance-assessment/types.d.ts +1 -173
  555. package/dist/governance-assessment/types.js +1 -12
  556. package/dist/governance-assessment/types.js.map +1 -1
  557. package/dist/governance-assessment/yaml.d.ts +1 -6
  558. package/dist/governance-assessment/yaml.js +1 -29
  559. package/dist/governance-assessment/yaml.js.map +1 -1
  560. package/dist/init-filesystem.d.ts +1 -1
  561. package/dist/init-filesystem.js +126 -174
  562. package/dist/init-filesystem.js.map +1 -1
  563. package/dist/interactive.d.ts +2 -2
  564. package/dist/interactive.js +42 -41
  565. package/dist/interactive.js.map +1 -1
  566. package/dist/migrate-plan.d.ts +1 -1
  567. package/dist/migrate-plan.js +14 -8
  568. package/dist/migrate-plan.js.map +1 -1
  569. package/dist/npm-template-assets.js +5 -4
  570. package/dist/npm-template-assets.js.map +1 -1
  571. package/dist/openspec-profile.d.ts +1 -1
  572. package/dist/opentofu-template-assets.js +3 -3
  573. package/dist/opentofu-template-assets.js.map +1 -1
  574. package/dist/package-identity.d.ts +3 -0
  575. package/dist/package-identity.js +13 -2
  576. package/dist/package-identity.js.map +1 -1
  577. package/dist/planner.d.ts +1 -19
  578. package/dist/planner.js +1 -565
  579. package/dist/planner.js.map +1 -1
  580. package/dist/process-runner.d.ts +1 -1
  581. package/dist/project-dependencies.d.ts +5 -3
  582. package/dist/project-dependencies.js +74 -63
  583. package/dist/project-dependencies.js.map +1 -1
  584. package/dist/published-verifier.js +61 -30
  585. package/dist/published-verifier.js.map +1 -1
  586. package/dist/python-template-assets.js +6 -9
  587. package/dist/python-template-assets.js.map +1 -1
  588. package/dist/reconcile.d.ts +1 -1
  589. package/dist/reconcile.js +2 -2
  590. package/dist/reconcile.js.map +1 -1
  591. package/dist/repository-governance.d.ts +5 -2
  592. package/dist/repository-governance.js +140 -113
  593. package/dist/repository-governance.js.map +1 -1
  594. package/dist/runtime.js +1 -1
  595. package/dist/runtime.js.map +1 -1
  596. package/dist/scan.d.ts +6 -2
  597. package/dist/scan.js +78 -30
  598. package/dist/scan.js.map +1 -1
  599. package/dist/self-upgrade.d.ts +1 -1
  600. package/dist/self-upgrade.js +20 -7
  601. package/dist/self-upgrade.js.map +1 -1
  602. package/dist/stable-release.js +7 -1
  603. package/dist/stable-release.js.map +1 -1
  604. package/dist/standard-templates.d.ts +2 -2
  605. package/dist/standard-templates.js +6 -841
  606. package/dist/standard-templates.js.map +1 -1
  607. package/dist/supported-stack.d.ts +3 -115
  608. package/dist/supported-stack.js +4 -438
  609. package/dist/supported-stack.js.map +1 -1
  610. package/dist/telemetry/index.d.ts +1 -1
  611. package/dist/templates.d.ts +10 -20
  612. package/dist/templates.js +52 -3261
  613. package/dist/templates.js.map +1 -1
  614. package/dist/types.d.ts +1 -263
  615. package/dist/types.js +1 -1
  616. package/dist/types.js.map +1 -1
  617. package/dist/version.js +2 -6
  618. package/dist/version.js.map +1 -1
  619. package/dist/workstation-catalog.d.ts +5 -2
  620. package/dist/workstation-catalog.js +33 -2
  621. package/dist/workstation-catalog.js.map +1 -1
  622. package/dist/workstation.d.ts +4 -3
  623. package/dist/workstation.js +86 -32
  624. package/dist/workstation.js.map +1 -1
  625. package/docs/assets/liftoff-terminal.svg +3 -3
  626. package/docs/azure-deployment.md +107 -10
  627. package/docs/cli-reference.md +144 -35
  628. package/docs/configuration-and-manifests.md +152 -35
  629. package/docs/existing-repositories.md +48 -12
  630. package/docs/getting-started.md +44 -31
  631. package/docs/prerequisites.md +34 -35
  632. package/docs/project-structure.md +39 -46
  633. package/docs/repository-governance.md +96 -26
  634. package/docs/safety-and-consent.md +90 -28
  635. package/docs/spec-workflows-and-agents.md +31 -28
  636. package/docs/supported-stack.md +11 -9
  637. package/docs/troubleshooting.md +114 -54
  638. package/docs/workloads.md +52 -67
  639. package/package.json +4 -7
  640. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/UPSTREAM_LICENSE.txt +0 -21
  641. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/catalog.json +0 -520
  642. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/packaged/gitignore +0 -27
  643. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/README.md +0 -25
  644. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/components.json +0 -22
  645. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/eslint.config.js +0 -23
  646. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/index.html +0 -13
  647. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package-lock.json +0 -6156
  648. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package.json +0 -60
  649. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/public/power-apps.svg +0 -55
  650. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/App.tsx +0 -17
  651. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/assets/react.svg +0 -1
  652. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/mode-toggle.tsx +0 -37
  653. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/badge.tsx +0 -46
  654. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/button.tsx +0 -60
  655. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/calendar.tsx +0 -211
  656. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/card.tsx +0 -92
  657. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/chart.tsx +0 -355
  658. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/checkbox.tsx +0 -32
  659. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/command.tsx +0 -184
  660. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/dialog.tsx +0 -141
  661. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/dropdown-menu.tsx +0 -257
  662. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/input.tsx +0 -21
  663. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/label.tsx +0 -22
  664. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/popover.tsx +0 -46
  665. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/progress.tsx +0 -29
  666. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/select.tsx +0 -185
  667. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/separator.tsx +0 -26
  668. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/skeleton.tsx +0 -13
  669. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/table.tsx +0 -114
  670. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/tabs.tsx +0 -66
  671. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/textarea.tsx +0 -18
  672. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/tooltip.tsx +0 -61
  673. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/hooks/use-theme.ts +0 -11
  674. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/index.css +0 -131
  675. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/lib/utils.ts +0 -6
  676. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/main.tsx +0 -10
  677. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/_layout.tsx +0 -31
  678. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/home.tsx +0 -59
  679. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/not-found.tsx +0 -14
  680. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/query-provider.tsx +0 -26
  681. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/sonner-provider.tsx +0 -23
  682. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/theme-provider.tsx +0 -64
  683. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/router.tsx +0 -24
  684. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.app.json +0 -34
  685. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.json +0 -13
  686. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.node.json +0 -26
  687. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/vite.config.ts +0 -19
  688. package/assets/power-apps-code-app/README.md +0 -27
  689. package/dist/code-apps-plugin.d.ts +0 -13
  690. package/dist/code-apps-plugin.js +0 -69
  691. package/dist/code-apps-plugin.js.map +0 -1
  692. package/dist/power-apps-assets.d.ts +0 -30
  693. package/dist/power-apps-assets.js +0 -131
  694. package/dist/power-apps-assets.js.map +0 -1
  695. package/dist/power-apps-templates.d.ts +0 -3
  696. package/dist/power-apps-templates.js +0 -177
  697. package/dist/power-apps-templates.js.map +0 -1
  698. package/dist/power-apps-validation.d.ts +0 -1
  699. package/dist/power-apps-validation.js +0 -79
  700. package/dist/power-apps-validation.js.map +0 -1
@@ -0,0 +1,567 @@
1
+ import { formatCommand } from '../../process-runner.js';
2
+ import { functionWorkerName } from './values.js';
3
+ import { genAiPattern } from './values.js';
4
+ import { hasFunctionWorker } from './values.js';
5
+ export function addSpecWorkflowArtifacts(addSeed, addFramework, plan) {
6
+ if (plan.specWorkflow.id === 'openspec') {
7
+ const changeName = `bootstrap-${plan.safeProjectName}`;
8
+ addSeed('openspec-config', 'seed', ['openspec', 'config.yaml'], renderOpenSpecConfig(plan));
9
+ addSeed('openspec-seed-change-metadata', 'seed', ['openspec', 'changes', changeName, '.openspec.yaml'], 'schema: spec-driven');
10
+ addSeed('openspec-seed-proposal', 'seed', ['openspec', 'changes', changeName, 'proposal.md'], renderSeedProposal(plan));
11
+ addSeed('openspec-seed-design', 'seed', ['openspec', 'changes', changeName, 'design.md'], renderSeedDesign(plan));
12
+ addSeed('openspec-seed-tasks', 'seed', ['openspec', 'changes', changeName, 'tasks.md'], renderSeedTasks(plan));
13
+ addSeed('openspec-seed-spec', 'seed', ['openspec', 'changes', changeName, 'specs', seedCapabilityId(plan), 'spec.md'], renderSeedSpec(plan));
14
+ addSeed('openspec-spec-placeholder', 'seed', ['openspec', 'specs', '.gitkeep'], '');
15
+ }
16
+ else {
17
+ addSeed('spec-kit-constitution', 'seed', ['.specify', 'memory', 'constitution.md'], renderSpecKitConstitution(plan));
18
+ addFramework('spec-kit-spec-template', 'framework', ['.specify', 'templates', 'spec-template.md'], renderSpecKitSpecTemplate());
19
+ addFramework('spec-kit-plan-template', 'framework', ['.specify', 'templates', 'plan-template.md'], renderSpecKitPlanTemplate());
20
+ addSeed('specs-placeholder', 'seed', ['specs', '.gitkeep'], '');
21
+ const bootstrap = ['specs', '000-liftoff-bootstrap'];
22
+ addSeed('spec-kit-bootstrap-spec', 'seed', [...bootstrap, 'spec.md'], renderSpecKitBootstrapSpec(plan));
23
+ addSeed('spec-kit-bootstrap-plan', 'seed', [...bootstrap, 'plan.md'], renderSpecKitBootstrapPlan(plan));
24
+ addSeed('spec-kit-bootstrap-tasks', 'seed', [...bootstrap, 'tasks.md'], renderSpecKitBootstrapTasks(plan));
25
+ }
26
+ }
27
+ export function renderOpenSpecCopilotConfig(plan) {
28
+ return plan.agents.some((agent) => agent.id === 'github-copilot')
29
+ ? `
30
+ githubCopilot:
31
+ cloudAgent: ${plan.copilotCloud}
32
+ `
33
+ : '\n';
34
+ }
35
+ export function renderOpenSpecConfig(plan) {
36
+ const frontendRule = plan.includeFrontend ? '\n - Keep frontend code under frontend.' : '';
37
+ if (plan.workload === 'standard') {
38
+ const backendRule = plan.apiStack.id === 'python-fastapi'
39
+ ? 'Keep backend API code under backend/apis.'
40
+ : plan.apiStack.id === 'node-fastify'
41
+ ? 'Keep backend API code under backend/src.'
42
+ : 'Keep the Go entrypoint under backend/cmd/api and reusable code under backend/internal.';
43
+ return `schema: spec-driven${renderOpenSpecCopilotConfig(plan)}
44
+
45
+ context: |
46
+ Project generated by Mission Control Liftoff.
47
+ Project type: Standard application.
48
+ API stack: ${plan.apiStack.label}.
49
+ Database tooling: ${plan.apiStack.databaseTooling}.
50
+ API developer portal: Scalar.
51
+ Infrastructure: OpenTofu.
52
+ Primary cloud: Azure (${plan.region.slug}).
53
+ Local development: Docker Compose.
54
+ Database: PostgreSQL.
55
+ Cache and local messaging: Redis.
56
+ Environments: ${plan.environments.map((environment) => environment.id).join(', ')}.
57
+
58
+ rules:
59
+ specs:
60
+ - Requirements must describe observable product behavior.
61
+ - Cloud behavior must identify environment differences for generated environments.
62
+ design:
63
+ - Use ${plan.apiStack.framework} for backend APIs.
64
+ - Use ${plan.apiStack.databaseTooling} for database access and migrations.
65
+ - Use OpenTofu for infrastructure changes.${frontendRule}
66
+ - ${backendRule}
67
+ - Keep database artifacts under database.
68
+ tasks:
69
+ - Include local Docker Compose verification.
70
+ - Include OpenTofu validation for generated infrastructure.
71
+ `;
72
+ }
73
+ const pattern = genAiPattern(plan);
74
+ const functionsContext = hasFunctionWorker(plan) ? `
75
+ Azure Functions worker: functions/${functionWorkerName(plan)}.` : '';
76
+ const functionsRule = hasFunctionWorker(plan) ? `
77
+ - Keep Azure Functions trigger adapters under functions/${functionWorkerName(plan)}.
78
+ - Keep reusable GenAI orchestration under backend/orchestration.` : '';
79
+ return `schema: spec-driven${renderOpenSpecCopilotConfig(plan)}
80
+
81
+ context: |
82
+ Project generated by Mission Control Liftoff.
83
+ GenAI pattern: ${pattern.label}
84
+ Application framework: FastAPI + PydanticAI.
85
+ API developer portal: Scalar.
86
+ Infrastructure: OpenTofu.
87
+ Primary cloud: Azure (${plan.region.slug}).
88
+ Local development: Docker Compose.
89
+ Database: PostgreSQL with Alembic migrations.
90
+ Cache and local messaging: Redis.
91
+ Observability: Langfuse.
92
+ Environments: ${plan.environments.map((environment) => environment.id).join(', ')}.
93
+ ${functionsContext}
94
+
95
+ rules:
96
+ specs:
97
+ - Requirements must describe observable product behavior.
98
+ - Cloud behavior must identify environment differences for generated environments.
99
+ design:
100
+ - Use PydanticAI for orchestration logic.
101
+ - Use Pydantic settings models for runtime configuration.
102
+ - Use OpenTofu for infrastructure changes.${frontendRule}
103
+ - Keep backend API code under backend/apis.
104
+ ${functionsRule}
105
+ - Keep database artifacts under database.
106
+ tasks:
107
+ - Include local Docker Compose verification.
108
+ - Include OpenTofu validation for generated infrastructure.
109
+ `;
110
+ }
111
+ export function renderSeedProposal(plan) {
112
+ const capability = seedCapabilityId(plan);
113
+ if (plan.workload === 'standard') {
114
+ return `## Why
115
+
116
+ Bootstrap the generated ${plan.apiStack.label} standard application baseline created by Mission Control Liftoff.
117
+
118
+ ## What Changes
119
+
120
+ - Establish the approved backend, infrastructure, local development, and governance baseline.
121
+ - Confirm that domain-specific product behavior is deferred to follow-up spec-driven changes.
122
+
123
+ ## Capabilities
124
+
125
+ ### New Capabilities
126
+
127
+ - \`${capability}\`: Generated standard application baseline for this Liftoff project.
128
+
129
+ ### Modified Capabilities
130
+
131
+ - None.
132
+
133
+ ## Impact
134
+
135
+ - Generated ${plan.apiStack.label} backend, OpenTofu infrastructure, Docker Compose local development, and governance files.
136
+ `;
137
+ }
138
+ const pattern = genAiPattern(plan);
139
+ const functionsChange = hasFunctionWorker(plan) ? '\n- Establish Azure Functions worker trigger adapters for event-driven processing.' : '';
140
+ return `## Why
141
+
142
+ Bootstrap the generated ${pattern.label} application baseline created by Mission Control Liftoff.
143
+
144
+ ## What Changes
145
+
146
+ - Establish the approved backend, infrastructure, local development, and governance baseline.
147
+ - Confirm that domain-specific product behavior is deferred to follow-up spec-driven changes.
148
+ ${functionsChange}
149
+
150
+ ## Capabilities
151
+
152
+ ### New Capabilities
153
+
154
+ - \`${capability}\`: Generated application baseline for this Liftoff project.
155
+
156
+ ### Modified Capabilities
157
+
158
+ - None.
159
+
160
+ ## Impact
161
+
162
+ - Generated FastAPI/PydanticAI backend, OpenTofu infrastructure, Docker Compose local development, and governance files.
163
+ `;
164
+ }
165
+ export function renderSeedDesign(plan) {
166
+ if (plan.workload === 'standard') {
167
+ return `## Context
168
+
169
+ This standard project was generated with Liftoff using ${plan.apiStack.label}, Azure, OpenTofu, and ${plan.specWorkflow.label}.
170
+
171
+ ## Goals / Non-Goals
172
+
173
+ **Goals:**
174
+
175
+ - Keep the generated baseline aligned to the approved Mission Control stack.
176
+ - Verify only deterministic local scaffold checks before archiving this bootstrap change.
177
+
178
+ **Non-Goals:**
179
+
180
+ - Define domain-specific product behavior in the bootstrap change.
181
+ - Deploy infrastructure, start containers, mutate GitHub, or perform cloud plan/apply operations.
182
+
183
+ ## Decisions
184
+
185
+ - Use ${plan.apiStack.framework} for backend APIs.
186
+ - Use ${plan.apiStack.databaseTooling} for PostgreSQL integration.
187
+ - Use OpenTofu for Azure infrastructure.
188
+ - Use Docker Compose for local development.
189
+
190
+ ## Risks / Trade-offs
191
+
192
+ - Follow-up product changes own real business behavior; this seed only proves the generated local baseline is coherent.
193
+ `;
194
+ }
195
+ const pattern = genAiPattern(plan);
196
+ const functionsDecision = hasFunctionWorker(plan) ? '\n- Keep Azure Functions trigger adapters under functions/' + functionWorkerName(plan) + ' and shared GenAI logic under backend/orchestration.' : '';
197
+ return `## Context
198
+
199
+ This project was generated with Liftoff using ${pattern.label}, Azure, OpenTofu, and ${plan.specWorkflow.label}.
200
+
201
+ ## Goals / Non-Goals
202
+
203
+ **Goals:**
204
+
205
+ - Keep the generated baseline aligned to the approved Mission Control stack.
206
+ - Verify only deterministic local scaffold checks before archiving this bootstrap change.
207
+
208
+ **Non-Goals:**
209
+
210
+ - Define domain-specific product behavior in the bootstrap change.
211
+ - Deploy infrastructure, start containers, mutate GitHub, or perform cloud plan/apply operations.
212
+
213
+ ## Decisions
214
+
215
+ - Use FastAPI and PydanticAI for backend APIs and orchestration.
216
+ - Use OpenTofu for Azure infrastructure.
217
+ - Use Docker Compose for local development.
218
+ ${functionsDecision}
219
+
220
+ ## Risks / Trade-offs
221
+
222
+ - Follow-up product changes own real business behavior; this seed only proves the generated local baseline is coherent.
223
+ `;
224
+ }
225
+ export function seedCapabilityId(plan) {
226
+ if (plan.workload === 'standard') {
227
+ return `${plan.apiStack.id}-application-baseline`;
228
+ }
229
+ return `${genAiPattern(plan).id}-application-baseline`;
230
+ }
231
+ export function seedCapabilityPurpose(plan) {
232
+ if (plan.workload === 'standard') {
233
+ return `Define the generated ${plan.apiStack.label} application baseline that setup verifies and archives before domain-specific implementation or deployment begins.`;
234
+ }
235
+ return `Define the generated ${genAiPattern(plan).label} application baseline that setup verifies and archives before domain-specific implementation or deployment begins.`;
236
+ }
237
+ export function renderSeedSpec(plan) {
238
+ const capability = seedCapabilityId(plan);
239
+ const purpose = seedCapabilityPurpose(plan);
240
+ if (plan.workload === 'standard') {
241
+ return `## Purpose
242
+
243
+ ${purpose}
244
+
245
+ ## ADDED Requirements
246
+
247
+ ### Requirement: Generated ${plan.apiStack.label} baseline is locally verifiable
248
+ The bootstrap seed SHALL describe only the generated ${plan.apiStack.label} backend, optional frontend, Docker Compose, OpenTofu, workflow configuration, and governance baseline. Domain-specific product behavior SHALL be deferred to later changes.
249
+
250
+ #### Scenario: Generated baseline is present
251
+ - **WHEN** the \`bootstrap-${plan.safeProjectName}\` change is generated
252
+ - **THEN** it declares the \`${capability}\` capability
253
+ - **AND** the generated backend, database, Docker Compose, OpenTofu, workflow, and governance files are in scope
254
+
255
+ #### Scenario: Product behavior is deferred
256
+ - **WHEN** the bootstrap change is completed
257
+ - **THEN** no domain-specific API, data model, UI, deployment, GitHub, or cloud mutation is introduced
258
+
259
+ #### Scenario: Local baseline checks pass
260
+ - **WHEN** deterministic setup verifies the seed
261
+ - **THEN** \`liftoff validate\`, backend tests, Docker Compose configuration validation, OpenTofu formatting, backend-disabled initialization, OpenTofu validation, and strict OpenSpec validation have passed
262
+ - **AND** frontend checks are run only when a frontend was generated
263
+ `;
264
+ }
265
+ const pattern = genAiPattern(plan);
266
+ const worker = hasFunctionWorker(plan)
267
+ ? 'Azure Functions worker, '
268
+ : '';
269
+ return `## Purpose
270
+
271
+ ${purpose}
272
+
273
+ ## ADDED Requirements
274
+
275
+ ### Requirement: Generated ${pattern.label} baseline is locally verifiable
276
+ The bootstrap seed SHALL describe only the generated FastAPI/PydanticAI backend, ${worker}optional frontend, Docker Compose, OpenTofu, workflow configuration, and governance baseline. Domain-specific product behavior SHALL be deferred to later changes.
277
+
278
+ #### Scenario: Generated baseline is present
279
+ - **WHEN** the \`bootstrap-${plan.safeProjectName}\` change is generated
280
+ - **THEN** it declares the \`${capability}\` capability
281
+ - **AND** the generated GenAI backend, database, Docker Compose, OpenTofu, workflow, governance${hasFunctionWorker(plan) ? ', and worker' : ''} files are in scope
282
+
283
+ #### Scenario: Product behavior is deferred
284
+ - **WHEN** the bootstrap change is completed
285
+ - **THEN** no domain-specific prompts, tools, retrieval corpus, agent policy, UI, deployment, GitHub, or cloud mutation is introduced
286
+
287
+ #### Scenario: Local baseline checks pass
288
+ - **WHEN** deterministic setup verifies the seed
289
+ - **THEN** \`liftoff validate\`, backend tests,${hasFunctionWorker(plan) ? ' worker tests,' : ''} Docker Compose configuration validation, OpenTofu formatting, backend-disabled initialization, OpenTofu validation, and strict OpenSpec validation have passed
290
+ - **AND** frontend checks are run only when a frontend was generated
291
+ `;
292
+ }
293
+ export function seedTaskChecks(plan) {
294
+ const checks = [
295
+ {
296
+ id: '2.1',
297
+ label: 'Run Liftoff manifest validation',
298
+ command: { executable: 'liftoff', args: ['validate'] }
299
+ }
300
+ ];
301
+ if (plan.workload === 'genai' || plan.apiStack.id === 'python-fastapi') {
302
+ checks.push({
303
+ id: '2.2',
304
+ label: 'Run backend tests',
305
+ command: { executable: 'uv', args: ['run', '--project', 'backend', 'python', '-m', 'pytest', '-q', 'backend/tests'] }
306
+ });
307
+ }
308
+ else if (plan.apiStack.id === 'node-fastify') {
309
+ checks.push({
310
+ id: '2.2',
311
+ label: 'Run backend tests',
312
+ command: { executable: 'npm', args: ['test'] },
313
+ cwd: ['backend']
314
+ });
315
+ }
316
+ else {
317
+ checks.push({
318
+ id: '2.2',
319
+ label: 'Run backend tests',
320
+ command: { executable: 'go', args: ['test', './...'] },
321
+ cwd: ['backend']
322
+ });
323
+ }
324
+ if (plan.workload === 'genai' && hasFunctionWorker(plan)) {
325
+ checks.push({
326
+ id: '2.3',
327
+ label: 'Run generated worker tests',
328
+ command: { executable: 'uv', args: ['run', '--project', '../../backend', '--directory', '.', 'python', '-m', 'pytest', '-q'] },
329
+ cwd: ['functions', functionWorkerName(plan)]
330
+ });
331
+ }
332
+ else {
333
+ checks.push({
334
+ id: '2.3',
335
+ label: 'Record worker tests as inapplicable',
336
+ inapplicable: 'no generated worker boundary is present'
337
+ });
338
+ }
339
+ if (plan.includeFrontend) {
340
+ checks.push({
341
+ id: '2.4',
342
+ label: 'Run frontend build',
343
+ command: { executable: 'npm', args: ['run', 'build'] },
344
+ cwd: ['frontend']
345
+ });
346
+ }
347
+ else {
348
+ checks.push({
349
+ id: '2.4',
350
+ label: 'Record frontend build as inapplicable',
351
+ inapplicable: 'no generated frontend is present'
352
+ });
353
+ }
354
+ {
355
+ checks.push({
356
+ id: '2.5',
357
+ label: 'Validate Docker Compose configuration without startup',
358
+ command: { executable: 'docker', args: ['compose', 'config', '-q'] }
359
+ });
360
+ checks.push({
361
+ id: '2.6',
362
+ label: 'Check OpenTofu formatting',
363
+ command: { executable: 'tofu', args: ['fmt', '-check', '-recursive'] },
364
+ cwd: ['infrastructure', 'opentofu', 'azure']
365
+ });
366
+ for (const [index, environment] of plan.environments.entries()) {
367
+ const cwd = ['infrastructure', 'opentofu', 'azure', 'environments', environment.id];
368
+ checks.push({
369
+ id: `2.7.${index + 1}`,
370
+ label: `Initialize ${environment.id} OpenTofu without a backend`,
371
+ command: { executable: 'tofu', args: ['init', '-backend=false'] },
372
+ cwd
373
+ });
374
+ checks.push({
375
+ id: `2.8.${index + 1}`,
376
+ label: `Validate ${environment.id} OpenTofu without plan or apply`,
377
+ command: { executable: 'tofu', args: ['validate'] },
378
+ cwd
379
+ });
380
+ }
381
+ }
382
+ checks.push({
383
+ id: '2.9',
384
+ label: 'Run strict OpenSpec validation',
385
+ command: { executable: 'openspec', args: ['validate', `bootstrap-${plan.safeProjectName}`, '--strict'] }
386
+ });
387
+ return checks;
388
+ }
389
+ export function renderSpecKitBootstrapSpec(plan) {
390
+ return `# Generated-project baseline: ${plan.projectName}
391
+
392
+ Bootstrap identity: \`000-liftoff-bootstrap\`.
393
+
394
+ ## Scope
395
+
396
+ Verify the generated ${plan.apiStack.label} backend, ${plan.includeFrontend ? 'Vue frontend, ' : ''}database metadata,
397
+ container configuration, independent OpenTofu environment roots, and local workflow files.
398
+ This one-time project-owned seed is not a product feature or an active governance change.
399
+
400
+ ## Requirements
401
+
402
+ - Read this real spec, its sibling \`plan.md\`, and \`tasks.md\`; framework templates are not project proof.
403
+ - Validate official Spec Kit initialization markers separately; this bundle does not replace them.
404
+ - Use already-installed locked dependencies, or install applicable dependencies with explicit consent, and run the local baseline.
405
+ - Check every selected environment: ${plan.environments.map(({ id }) => id).join(', ')}.
406
+ - Preserve project-owned files. Do not create a Git branch, OpenSpec tree, or external archive.
407
+ - Do not claim retrieval, history, tools, prompt loading, coordination, fine-tuning, workflow stages,
408
+ incremental streaming, live deployment, or production governance completion.
409
+
410
+ ## Success criteria
411
+
412
+ All applicable local checks have passed on the current inputs, absent components are explicitly
413
+ inapplicable, and only then is the local bootstrap task projection finalized with a bound receipt.
414
+ Unchecked tasks, generated files, and framework plan templates are not completion evidence.
415
+ `.replace(/^ {2}/gm, '');
416
+ }
417
+ export function renderSpecKitBootstrapPlan(plan) {
418
+ const backend = plan.workload === 'genai' || plan.apiStack.id === 'python-fastapi'
419
+ ? `uv sync --frozen --project backend --extra test${hasFunctionWorker(plan) ? ' --extra functions' : ''}`
420
+ : plan.apiStack.id === 'node-fastify'
421
+ ? 'npm ci && npm run build (from backend/)'
422
+ : 'go mod download (from backend/)';
423
+ return `# Local bootstrap implementation plan
424
+
425
+ Bootstrap identity: \`000-liftoff-bootstrap\`.
426
+ Source specification: \`specs/000-liftoff-bootstrap/spec.md\`.
427
+
428
+ ## Preparation
429
+
430
+ Review the generated files and official Spec Kit markers. Copy \`.env.example\` to \`.env\`
431
+ for the documented local settings; do not commit local configuration or credentials.
432
+ ${plan.workload === 'standard' && plan.apiStack.id === 'go-huma' ? 'For native Go startup, also copy `runtime.config.example.json` to root `runtime.config.json`.\n' : ''}
433
+ Dependency installation requires its own consent: \`${backend}\`.
434
+ ${plan.includeFrontend ? 'Install frontend dependencies with `npm ci` from `frontend/`.\n' : ''}
435
+ ## Verification
436
+
437
+ Run Liftoff validation, backend${hasFunctionWorker(plan) ? ' and worker' : ''} tests,
438
+ ${plan.includeFrontend ? 'the frontend build, ' : ''}Docker Compose configuration validation,
439
+ OpenTofu formatting, and backend-disabled initialization plus validation of every selected root:
440
+ ${plan.environments.map(({ id }) => `- \`infrastructure/opentofu/azure/environments/${id}/\``).join('\n')}
441
+
442
+ These checks do not start containers, invoke a model, provision resources, or mutate GitHub.
443
+ Operational OpenTofu initialization must use the configured backend; only this local baseline
444
+ uses \`-backend=false\`.
445
+
446
+ ## Local handoff
447
+
448
+ After all applicable checks succeed, explicitly finalize the task projection and record the local
449
+ baseline receipt. The setup phase named \`seed-archived\` denotes this local handoff, not an archive
450
+ command. Missing older bundles require separate reviewed adoption, never implicit update.
451
+ `.replace(/^ {2}/gm, '');
452
+ }
453
+ export function renderSpecKitBootstrapTasks(plan) {
454
+ const checks = seedTaskChecks(plan).filter(({ id }) => id !== '2.9');
455
+ return `# Local bootstrap tasks
456
+
457
+ Bootstrap identity: \`000-liftoff-bootstrap\`.
458
+ Read \`spec.md\` and \`plan.md\` in this directory before running checks.
459
+
460
+ - [ ] B001 Review the real bootstrap spec, plan, generated files, runtime configuration, and separately validated official Spec Kit markers.
461
+ - [ ] B002 Use already-installed locked dependencies, or install them with explicit consent, using the preparation commands in plan.md.
462
+ - [ ] B003 Run Liftoff validation and backend${hasFunctionWorker(plan) ? ' plus worker' : ''} tests without external services.
463
+ - [ ] B004 ${plan.includeFrontend ? 'Build the generated frontend.' : 'Record frontend build as inapplicable because no frontend was generated.'}
464
+ - [ ] B005 Validate Docker Compose configuration and every selected independent OpenTofu root without starting containers or using live providers.
465
+ - [ ] B006 Only after every applicable check passes, explicitly finalize this local task projection and record the current-input-bound baseline receipt; no Git branch or external archive is created.
466
+
467
+ ## Required local checks
468
+
469
+ ${checks.map((check) => {
470
+ if (!check.command)
471
+ return `- ${check.label}: inapplicable because ${check.inapplicable}.`;
472
+ return `- ${check.label}${check.cwd ? ` from \`${check.cwd.join('/')}\`` : ''}: \`${formatCommand(check.command)}\`.`;
473
+ }).join('\n')}
474
+
475
+ Task checkboxes are a projection after successful verification, not an input proving success.
476
+ Read-only status, resume, assessment, and verification do not mark tasks complete.
477
+ `.replace(/^ {2}/gm, '');
478
+ }
479
+ export function renderSeedTaskCheck(check) {
480
+ if (!check.command) {
481
+ return `- [ ] ${check.id} ${check.label}: inapplicable because ${check.inapplicable}.`;
482
+ }
483
+ const cwd = check.cwd && check.cwd.length > 0 ? ` from \`${check.cwd.join('/')}\`` : '';
484
+ return `- [ ] ${check.id} ${check.label}${cwd}: \`${formatCommand(check.command)}\`.`;
485
+ }
486
+ export function renderSeedTasks(plan) {
487
+ return `## 1. Bootstrap Scope
488
+
489
+ - [ ] 1.1 Confirm generated baseline files, \`liftoff.manifest.json\`, OpenSpec configuration, and the \`${seedCapabilityId(plan)}\` delta spec are present.
490
+ - [ ] 1.2 Confirm domain-specific product behavior is deferred to follow-up OpenSpec changes; do not replace generated placeholders in this bootstrap change.
491
+
492
+ ## 2. Local Baseline Checks
493
+
494
+ ${seedTaskChecks(plan).map(renderSeedTaskCheck).join('\n')}
495
+
496
+ ## 3. Completion
497
+
498
+ - [ ] 3.1 After every applicable local check succeeds and every absent component is recorded inapplicable, archive with \`openspec archive bootstrap-${plan.safeProjectName} --yes\`, then require \`openspec validate --all --strict\` to pass. OpenSpec archive updates the main specs as part of archive; do not pass \`--skip-specs\`.
499
+
500
+ No task in this bootstrap seed starts containers, runs cloud plan/apply, mutates GitHub, or implements domain-specific product behavior.
501
+ `;
502
+ }
503
+ export function renderSpecKitConstitution(plan) {
504
+ if (plan.workload === 'standard') {
505
+ const backendLayout = plan.apiStack.id === 'python-fastapi'
506
+ ? 'backend/apis'
507
+ : plan.apiStack.id === 'node-fastify' ? 'backend/src' : 'backend/cmd/api and backend/internal';
508
+ return `# Mission Control Liftoff Constitution
509
+
510
+ ## Principle 1: Approved Application Stack
511
+ Generated backend services MUST use ${plan.apiStack.framework}, ${plan.apiStack.databaseTooling}, and Scalar for API documentation.
512
+
513
+ ## Principle 2: Standard Project Layout
514
+ Backend APIs live under ${backendLayout}. Database artifacts live under database.${plan.includeFrontend ? ' Frontend code lives under frontend.' : ''}
515
+
516
+ ## Principle 3: Infrastructure As Code
517
+ Cloud infrastructure MUST be defined with OpenTofu. Azure is the supported V1 provider.
518
+
519
+ ## Principle 4: Local Development Parity
520
+ Projects MUST include Docker Compose for local development with PostgreSQL, Redis, local blob storage, and local messaging behavior.
521
+
522
+ ## Principle 5: Observability And Operations
523
+ Services MUST use structured logging and environment-specific configuration for ${plan.environments.map((environment) => environment.id).join(', ')}.
524
+ `;
525
+ }
526
+ const functionsLayout = plan.workload === 'genai' && hasFunctionWorker(plan)
527
+ ? ` Azure Functions trigger adapters live under functions/${functionWorkerName(plan)} and call shared orchestration from backend/orchestration.`
528
+ : '';
529
+ return `# Mission Control Liftoff Constitution
530
+
531
+ ## Principle 1: Approved Application Stack
532
+ Generated backend services MUST use FastAPI, PydanticAI, Pydantic configuration models, and Scalar for API documentation.
533
+
534
+ ## Principle 2: Standard Project Layout
535
+ Backend APIs live under backend/apis. Database artifacts live under database.${plan.includeFrontend ? ' Frontend code lives under frontend.' : ''}${functionsLayout}
536
+
537
+ ## Principle 3: Infrastructure As Code
538
+ Cloud infrastructure MUST be defined with OpenTofu. Azure is the supported V1 provider.
539
+
540
+ ## Principle 4: Local Development Parity
541
+ Projects MUST include Docker Compose for local development with PostgreSQL, Redis, local blob storage, and local messaging behavior.
542
+
543
+ ## Principle 5: Observability And Operations
544
+ LLM workflows MUST include Langfuse tracing hooks and environment-specific configuration for ${plan.environments.map((environment) => environment.id).join(', ')}.
545
+ `;
546
+ }
547
+ export function renderSpecKitSpecTemplate() {
548
+ return `# Feature Specification
549
+
550
+ ## User Scenarios
551
+
552
+ ## Requirements
553
+
554
+ ## Success Criteria
555
+ `;
556
+ }
557
+ export function renderSpecKitPlanTemplate() {
558
+ return `# Implementation Plan
559
+
560
+ ## Technical Context
561
+
562
+ ## Constitution Check
563
+
564
+ ## Tasks
565
+ `;
566
+ }
567
+ //# sourceMappingURL=spec-workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-workflow.js","sourceRoot":"","sources":["../../../src/generators/common/spec-workflow.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,UAAU,wBAAwB,CACtC,OAAoB,EACpB,YAAyB,EACzB,IAAiB;IAEjB,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,aAAa,IAAI,CAAC,eAAe,EAAE,CAAC;QACvD,OAAO,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5F,OAAO,CAAC,+BAA+B,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAC/H,OAAO,CAAC,wBAAwB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QACxH,OAAO,CAAC,sBAAsB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QAClH,OAAO,CAAC,qBAAqB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/G,OAAO,CAAC,oBAAoB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7I,OAAO,CAAC,2BAA2B,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IACtF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,uBAAuB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;QACrH,YAAY,CAAC,wBAAwB,EAAE,WAAW,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,EAAE,yBAAyB,EAAE,CAAC,CAAC;QAChI,YAAY,CAAC,wBAAwB,EAAE,WAAW,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,EAAE,yBAAyB,EAAE,CAAC,CAAC;QAChI,OAAO,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QACrD,OAAO,CAAC,yBAAyB,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;QACxG,OAAO,CAAC,yBAAyB,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;QACxG,OAAO,CAAC,0BAA0B,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,EAAE,UAAU,CAAC,EAAE,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7G,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAiB;IAC3D,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,gBAAgB,CAAC;QAC/D,CAAC,CAAC;;gBAEU,IAAI,CAAC,YAAY;CAChC;QACG,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAoB;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB;YACvD,CAAC,CAAC,2CAA2C;YAC7C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,cAAc;gBACnC,CAAC,CAAC,0CAA0C;gBAC5C,CAAC,CAAC,wFAAwF,CAAC;QAC/F,OAAO,sBAAsB,2BAA2B,CAAC,IAAI,CAAC;;;;;eAKnD,IAAI,CAAC,QAAQ,CAAC,KAAK;sBACZ,IAAI,CAAC,QAAQ,CAAC,eAAe;;;0BAGzB,IAAI,CAAC,MAAM,CAAC,IAAI;;;;kBAIxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;YAOvE,IAAI,CAAC,QAAQ,CAAC,SAAS;YACvB,IAAI,CAAC,QAAQ,CAAC,eAAe;gDACO,YAAY;QACpD,WAAW;;;;;CAKlB,CAAC;IACA,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;sCACf,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;8DACY,kBAAkB,CAAC,IAAI,CAAC;qEACjB,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,OAAO,sBAAsB,2BAA2B,CAAC,IAAI,CAAC;;;;mBAI7C,OAAO,CAAC,KAAK;;;;0BAIN,IAAI,CAAC,MAAM,CAAC,IAAI;;;;;kBAKxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;EACjF,gBAAgB;;;;;;;;;gDAS8B,YAAY;;EAE1D,aAAa;;;;;CAKd,CAAC;AACF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAoB;IACrD,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO;;0BAEe,IAAI,CAAC,QAAQ,CAAC,KAAK;;;;;;;;;;;MAWvC,UAAU;;;;;;;;cAQF,IAAI,CAAC,QAAQ,CAAC,KAAK;CAChC,CAAC;IACA,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oFAAoF,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5I,OAAO;;0BAEiB,OAAO,CAAC,KAAK;;;;;;EAMrC,eAAe;;;;;;MAMX,UAAU;;;;;;;;;CASf,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO;;yDAE8C,IAAI,CAAC,QAAQ,CAAC,KAAK,0BAA0B,IAAI,CAAC,YAAY,CAAC,KAAK;;;;;;;;;;;;;;;;QAgBrH,IAAI,CAAC,QAAQ,CAAC,SAAS;QACvB,IAAI,CAAC,QAAQ,CAAC,eAAe;;;;;;;CAOpC,CAAC;IACA,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,4DAA4D,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,sDAAsD,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1M,OAAO;;gDAEuC,OAAO,CAAC,KAAK,0BAA0B,IAAI,CAAC,YAAY,CAAC,KAAK;;;;;;;;;;;;;;;;;;;EAmB5G,iBAAiB;;;;;CAKlB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IAChD,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,uBAAuB,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAiB;IACrD,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,wBAAwB,IAAI,CAAC,QAAQ,CAAC,KAAK,oHAAoH,CAAC;IACzK,CAAC;IACD,OAAO,wBAAwB,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,oHAAoH,CAAC;AAC9K,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAiB;IAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO;;EAET,OAAO;;;;6BAIoB,IAAI,CAAC,QAAQ,CAAC,KAAK;uDACO,IAAI,CAAC,QAAQ,CAAC,KAAK;;;6BAG7C,IAAI,CAAC,eAAe;+BAClB,UAAU;;;;;;;;;;;CAWxC,CAAC;IACA,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC;QACpC,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;;EAEP,OAAO;;;;6BAIoB,OAAO,CAAC,KAAK;mFACyC,MAAM;;;6BAG5D,IAAI,CAAC,eAAe;+BAClB,UAAU;iGACwD,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;;;;;;;;iDAQ7F,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;;CAE/F,CAAC;AACF,CAAC;AAUD,MAAM,UAAU,cAAc,CAAC,IAAiB;IAC9C,MAAM,MAAM,GAAoB;QAC9B;YACE,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,iCAAiC;YACxC,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE;SACvD;KACF,CAAC;IACF,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB,EAAE,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,EAAE;SACtH,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,cAAc,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;YAC9C,GAAG,EAAE,CAAC,SAAS,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YACtD,GAAG,EAAE,CAAC,SAAS,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,4BAA4B;YACnC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE;YAC9H,GAAG,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,qCAAqC;YAC5C,YAAY,EAAE,yCAAyC;SACxD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YACtD,GAAG,EAAE,CAAC,UAAU,CAAC;SAClB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,uCAAuC;YAC9C,YAAY,EAAE,kCAAkC;SACjD,CAAC,CAAC;IACL,CAAC;IAED,CAAC;QACC,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,uDAAuD;YAC9D,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE;SACrE,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,2BAA2B;YAClC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE;YACtE,GAAG,EAAE,CAAC,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC;SAC7C,CAAC,CAAC;QACH,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/D,MAAM,GAAG,GAAG,CAAC,gBAAgB,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;YACpF,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,OAAO,KAAK,GAAG,CAAC,EAAE;gBACtB,KAAK,EAAE,cAAc,WAAW,CAAC,EAAE,6BAA6B;gBAChE,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE;gBACjE,GAAG;aACJ,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,OAAO,KAAK,GAAG,CAAC,EAAE;gBACtB,KAAK,EAAE,YAAY,WAAW,CAAC,EAAE,iCAAiC;gBAClE,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE;gBACnD,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC;QACV,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,gCAAgC;QACvC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,aAAa,IAAI,CAAC,eAAe,EAAE,EAAE,UAAU,CAAC,EAAE;KACzG,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAoB;IAC3D,OAAO,iCAAiC,IAAI,CAAC,WAAW;;;;;;yBAMnC,IAAI,CAAC,QAAQ,CAAC,KAAK,aAAa,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;;;;;;;;;wCAS7D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;GAUrF,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAoB;IAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB;QAChF,CAAC,CAAC,kDAAkD,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE;QACzG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,cAAc;YACnC,CAAC,CAAC,yCAAyC;YAC3C,CAAC,CAAC,iCAAiC,CAAC;IACxC,OAAO;;;;;;;;;IASP,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,iGAAiG,CAAC,CAAC,CAAC,EAAE;wDACnH,OAAO;IAC3D,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,iEAAiE,CAAC,CAAC,CAAC,EAAE;;;mCAG9D,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;IAC3E,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;;IAElD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,kDAAkD,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;GAWxG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAoB;IAC9D,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;IACrE,OAAO;;;;;;;iDAOsC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;eAC/E,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,0EAA0E;;;;;;IAM9I,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,OAAO,KAAK,KAAK,CAAC,KAAK,0BAA0B,KAAK,CAAC,YAAY,GAAG,CAAC;QAC3F,OAAO,KAAK,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IACxH,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;GAIZ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC;AAEH,MAAM,UAAU,mBAAmB,CAAC,KAAoB;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,SAAS,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,0BAA0B,KAAK,CAAC,YAAY,GAAG,CAAC;IACzF,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,OAAO,SAAS,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,GAAG,GAAG,OAAO,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAiB;IAC/C,OAAO;;2GAEkG,gBAAgB,CAAC,IAAI,CAAC;;;;;EAK/H,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;uJAI6F,IAAI,CAAC,eAAe;;;CAG1K,CAAC;AACF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAoB;IAC5D,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB;YACzD,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,sCAAsC,CAAC;QACjG,OAAO;;;sCAG2B,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,eAAe;;;0BAGrE,aAAa,4CAA4C,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;kFASnE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CAClJ,CAAC;IACA,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC;QAC1E,CAAC,CAAC,0DAA0D,kBAAkB,CAAC,IAAI,CAAC,4DAA4D;QAChJ,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;;;;;;+EAMsE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,EAAE,GAAG,eAAe;;;;;;;;;+FASpE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CAC/J,CAAC;AACF,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO;;;;;;;CAOR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO;;;;;;;CAOR,CAAC;AACF,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ApiProjectPlan } from '../../domain/project/contracts.js';
2
+ import type { GenAiProjectPlan } from '../../domain/project/contracts.js';
3
+ export declare const DEFAULT_FUNCTION_WORKER_QUEUE_NAME = "events";
4
+ export declare const pyModule: (value: string) => string;
5
+ export declare const titleCase: (value: string) => string;
6
+ export declare const sourceString: (value: string) => string;
7
+ export declare const scriptSourceString: (value: string) => string;
8
+ export declare const escapeHtml: (value: string) => string;
9
+ export declare const genAiPattern: (plan: GenAiProjectPlan) => import("../../domain/project/contracts.js").PatternDefinition;
10
+ export declare const hasFunctionWorker: (plan: ApiProjectPlan) => boolean;
11
+ export declare const functionWorkerName: (plan: GenAiProjectPlan) => string;
12
+ export declare function selectedEnvironmentId(plan: ApiProjectPlan): string;
13
+ export declare const localPostgresUrl: (host: string, database: string) => string;
@@ -0,0 +1,16 @@
1
+ export const DEFAULT_FUNCTION_WORKER_QUEUE_NAME = 'events';
2
+ export const pyModule = (value) => value.replace(/-/g, '_');
3
+ export const titleCase = (value) => value.replace(/(^|[-_\s])([a-z])/g, (_match, prefix, letter) => `${prefix ? ' ' : ''}${letter.toUpperCase()}`).trim();
4
+ export const sourceString = (value) => JSON.stringify(value);
5
+ export const scriptSourceString = (value) => sourceString(value).replaceAll('<', '\\u003c');
6
+ export const escapeHtml = (value) => value.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;').replaceAll('"', '&quot;');
7
+ export const genAiPattern = (plan) => {
8
+ return plan.pattern;
9
+ };
10
+ export const hasFunctionWorker = (plan) => plan.workload === 'genai' && plan.provider.id === 'azure' && plan.pattern.worker;
11
+ export const functionWorkerName = (plan) => `${plan.pattern.id}-worker`;
12
+ export function selectedEnvironmentId(plan) {
13
+ return plan.environments[0]?.id ?? 'dev';
14
+ }
15
+ export const localPostgresUrl = (host, database) => `postgresql:${'//'}postgres:postgres@${host}:5432/${database}`;
16
+ //# sourceMappingURL=values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.js","sourceRoot":"","sources":["../../../src/generators/common/values.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,kCAAkC,GAAG,QAAQ,CAAC;AAE3D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAc,EAAE,MAAc,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAElL,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAEpG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CAC1C,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAE3G,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAsB,EAAE,EAAE;IACrD,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAoB,EAAE,EAAE,CACxD,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAEnF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAsB,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;AAE1F,MAAM,UAAU,qBAAqB,CAAC,IAAoB;IACxD,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,KAAK,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE,CACjE,cAAc,IAAI,qBAAqB,IAAI,SAAS,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { GeneratorContext as ResolvedGeneratorContext } from '../context.js';
2
+ import type { AddArtifact } from '../../template-types.js';
3
+ import type { ApiProjectPlan } from '../../domain/project/contracts.js';
4
+ type GeneratorContext = Pick<ResolvedGeneratorContext, 'stack'>;
5
+ export declare function addDockerArtifacts(add: AddArtifact, plan: ApiProjectPlan, context: GeneratorContext): void;
6
+ export declare function renderDockerCompose(plan: ApiProjectPlan, context: GeneratorContext): string;
7
+ export {};