@msn-control/liftoff 0.10.3 → 0.11.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 (656) hide show
  1. package/DEVELOPER.md +364 -20
  2. package/README.md +29 -29
  3. package/assets/governance/single-maintainer-gitflow/assessment-controls.json +39 -0
  4. package/assets/supported-stack.json +7 -138
  5. package/dist/adapters/azure/governance-assessment.d.ts +2 -0
  6. package/dist/adapters/azure/governance-assessment.js +21 -0
  7. package/dist/adapters/azure/governance-assessment.js.map +1 -0
  8. package/dist/adapters/filesystem/atomic-write.d.ts +2 -0
  9. package/dist/adapters/filesystem/atomic-write.js +74 -0
  10. package/dist/adapters/filesystem/atomic-write.js.map +1 -0
  11. package/dist/adapters/filesystem/errors.d.ts +2 -0
  12. package/dist/adapters/filesystem/errors.js +8 -0
  13. package/dist/adapters/filesystem/errors.js.map +1 -0
  14. package/dist/adapters/filesystem/manifest-file.d.ts +1 -0
  15. package/dist/adapters/filesystem/manifest-file.js +21 -0
  16. package/dist/adapters/filesystem/manifest-file.js.map +1 -0
  17. package/dist/adapters/filesystem/project-config.d.ts +4 -0
  18. package/dist/adapters/filesystem/project-config.js +157 -0
  19. package/dist/adapters/filesystem/project-config.js.map +1 -0
  20. package/dist/adapters/filesystem/project-discovery.d.ts +2 -0
  21. package/dist/adapters/filesystem/project-discovery.js +30 -0
  22. package/dist/adapters/filesystem/project-discovery.js.map +1 -0
  23. package/dist/adapters/filesystem/project-files.d.ts +6 -0
  24. package/dist/adapters/filesystem/project-files.js +68 -0
  25. package/dist/adapters/filesystem/project-files.js.map +1 -0
  26. package/dist/adapters/filesystem/project-lock.d.ts +8 -0
  27. package/dist/adapters/filesystem/project-lock.js +164 -0
  28. package/dist/adapters/filesystem/project-lock.js.map +1 -0
  29. package/dist/adapters/filesystem/project-paths.d.ts +2 -0
  30. package/dist/adapters/filesystem/project-paths.js +60 -0
  31. package/dist/adapters/filesystem/project-paths.js.map +1 -0
  32. package/dist/adapters/filesystem/project-transaction.d.ts +23 -0
  33. package/dist/adapters/filesystem/project-transaction.js +158 -0
  34. package/dist/adapters/filesystem/project-transaction.js.map +1 -0
  35. package/dist/adapters/git/governance-assessment.d.ts +22 -0
  36. package/dist/adapters/git/governance-assessment.js +161 -0
  37. package/dist/adapters/git/governance-assessment.js.map +1 -0
  38. package/dist/adapters/github/governance-assessment.d.ts +2 -0
  39. package/dist/adapters/github/governance-assessment.js +18 -0
  40. package/dist/adapters/github/governance-assessment.js.map +1 -0
  41. package/dist/adapters/packaged-assets/package-root.d.ts +3 -0
  42. package/dist/adapters/packaged-assets/package-root.js +21 -0
  43. package/dist/adapters/packaged-assets/package-root.js.map +1 -0
  44. package/dist/adapters/packaged-assets/supported-stack.d.ts +4 -0
  45. package/dist/adapters/packaged-assets/supported-stack.js +18 -0
  46. package/dist/adapters/packaged-assets/supported-stack.js.map +1 -0
  47. package/dist/adapters/packaged-assets/template-assets.d.ts +23 -0
  48. package/dist/adapters/packaged-assets/template-assets.js +36 -0
  49. package/dist/adapters/packaged-assets/template-assets.js.map +1 -0
  50. package/dist/adapters/process/shell-command.d.ts +5 -0
  51. package/dist/adapters/process/shell-command.js +21 -0
  52. package/dist/adapters/process/shell-command.js.map +1 -0
  53. package/dist/application/context.d.ts +20 -0
  54. package/dist/application/context.js +2 -0
  55. package/dist/application/context.js.map +1 -0
  56. package/dist/application/diagnose/doctor.d.ts +21 -0
  57. package/dist/application/diagnose/doctor.js +586 -0
  58. package/dist/application/diagnose/doctor.js.map +1 -0
  59. package/dist/application/diagnose/generated-project.d.ts +1 -0
  60. package/dist/application/diagnose/generated-project.js +105 -0
  61. package/dist/application/diagnose/generated-project.js.map +1 -0
  62. package/dist/application/diagnose/validate.d.ts +6 -0
  63. package/dist/application/diagnose/validate.js +27 -0
  64. package/dist/application/diagnose/validate.js.map +1 -0
  65. package/dist/application/initialize/fixture.d.ts +2 -0
  66. package/dist/application/initialize/fixture.js +39 -0
  67. package/dist/application/initialize/fixture.js.map +1 -0
  68. package/dist/application/initialize/inputs.d.ts +3 -0
  69. package/dist/application/initialize/inputs.js +35 -0
  70. package/dist/application/initialize/inputs.js.map +1 -0
  71. package/dist/application/initialize/use-case.d.ts +23 -0
  72. package/dist/application/initialize/use-case.js +360 -0
  73. package/dist/application/initialize/use-case.js.map +1 -0
  74. package/dist/application/migrate/use-case.d.ts +7 -0
  75. package/dist/application/migrate/use-case.js +378 -0
  76. package/dist/application/migrate/use-case.js.map +1 -0
  77. package/dist/application/project/catalog.d.ts +46 -0
  78. package/dist/application/project/catalog.js +12 -0
  79. package/dist/application/project/catalog.js.map +1 -0
  80. package/dist/application/project/manifest.d.ts +2 -0
  81. package/dist/application/project/manifest.js +29 -0
  82. package/dist/application/project/manifest.js.map +1 -0
  83. package/dist/application/project/planning.d.ts +6 -0
  84. package/dist/application/project/planning.js +12 -0
  85. package/dist/application/project/planning.js.map +1 -0
  86. package/dist/application/update/planning.d.ts +40 -0
  87. package/dist/application/update/planning.js +293 -0
  88. package/dist/application/update/planning.js.map +1 -0
  89. package/dist/application/update/reporting.d.ts +42 -0
  90. package/dist/application/update/reporting.js +325 -0
  91. package/dist/application/update/reporting.js.map +1 -0
  92. package/dist/application/update/use-case.d.ts +8 -0
  93. package/dist/application/update/use-case.js +600 -0
  94. package/dist/application/update/use-case.js.map +1 -0
  95. package/dist/application/upgrade/use-case.d.ts +6 -0
  96. package/dist/application/upgrade/use-case.js +82 -0
  97. package/dist/application/upgrade/use-case.js.map +1 -0
  98. package/dist/args.d.ts +5 -65
  99. package/dist/args.js +4 -441
  100. package/dist/args.js.map +1 -1
  101. package/dist/artifact-lifecycle.d.ts +1 -21
  102. package/dist/artifact-lifecycle.js +1 -73
  103. package/dist/artifact-lifecycle.js.map +1 -1
  104. package/dist/catalogs.d.ts +1 -50
  105. package/dist/catalogs.js +1 -472
  106. package/dist/catalogs.js.map +1 -1
  107. package/dist/cli/args/contracts.d.ts +51 -0
  108. package/dist/cli/args/contracts.js +2 -0
  109. package/dist/cli/args/contracts.js.map +1 -0
  110. package/dist/cli/args/definitions.d.ts +6 -0
  111. package/dist/cli/args/definitions.js +187 -0
  112. package/dist/cli/args/definitions.js.map +1 -0
  113. package/dist/cli/args/help.d.ts +5 -0
  114. package/dist/cli/args/help.js +130 -0
  115. package/dist/cli/args/help.js.map +1 -0
  116. package/dist/cli/args/parser.d.ts +5 -0
  117. package/dist/cli/args/parser.js +145 -0
  118. package/dist/cli/args/parser.js.map +1 -0
  119. package/dist/cli/args/readers.d.ts +4 -0
  120. package/dist/cli/args/readers.js +19 -0
  121. package/dist/cli/args/readers.js.map +1 -0
  122. package/dist/cli/commands/diagnose.d.ts +4 -0
  123. package/dist/cli/commands/diagnose.js +12 -0
  124. package/dist/cli/commands/diagnose.js.map +1 -0
  125. package/dist/cli/commands/dispatch.d.ts +3 -0
  126. package/dist/cli/commands/dispatch.js +94 -0
  127. package/dist/cli/commands/dispatch.js.map +1 -0
  128. package/dist/cli/commands/help.d.ts +3 -0
  129. package/dist/cli/commands/help.js +32 -0
  130. package/dist/cli/commands/help.js.map +1 -0
  131. package/dist/cli/commands/helpers.d.ts +8 -0
  132. package/dist/cli/commands/helpers.js +97 -0
  133. package/dist/cli/commands/helpers.js.map +1 -0
  134. package/dist/cli/commands/initialize.d.ts +3 -0
  135. package/dist/cli/commands/initialize.js +7 -0
  136. package/dist/cli/commands/initialize.js.map +1 -0
  137. package/dist/cli/commands/migrate.d.ts +3 -0
  138. package/dist/cli/commands/migrate.js +8 -0
  139. package/dist/cli/commands/migrate.js.map +1 -0
  140. package/dist/cli/commands/plan.d.ts +3 -0
  141. package/dist/cli/commands/plan.js +34 -0
  142. package/dist/cli/commands/plan.js.map +1 -0
  143. package/dist/cli/commands/reference.d.ts +5 -0
  144. package/dist/cli/commands/reference.js +43 -0
  145. package/dist/cli/commands/reference.js.map +1 -0
  146. package/dist/cli/commands/update.d.ts +3 -0
  147. package/dist/cli/commands/update.js +9 -0
  148. package/dist/cli/commands/update.js.map +1 -0
  149. package/dist/cli/commands/upgrade.d.ts +3 -0
  150. package/dist/cli/commands/upgrade.js +7 -0
  151. package/dist/cli/commands/upgrade.js.map +1 -0
  152. package/dist/cli/context.d.ts +1 -0
  153. package/dist/cli/context.js +2 -0
  154. package/dist/cli/context.js.map +1 -0
  155. package/dist/cli/project-options.d.ts +3 -0
  156. package/dist/cli/project-options.js +41 -0
  157. package/dist/cli/project-options.js.map +1 -0
  158. package/dist/cli.d.ts +3 -3
  159. package/dist/cli.js +4 -3
  160. package/dist/cli.js.map +1 -1
  161. package/dist/commands.d.ts +4 -35
  162. package/dist/commands.js +3 -2812
  163. package/dist/commands.js.map +1 -1
  164. package/dist/container-validation.d.ts +1 -1
  165. package/dist/domain/governance/activation/approvals.d.ts +351 -0
  166. package/dist/domain/governance/activation/approvals.js +528 -0
  167. package/dist/domain/governance/activation/approvals.js.map +1 -0
  168. package/dist/domain/governance/activation/canonical-json.d.ts +4 -0
  169. package/dist/domain/governance/activation/canonical-json.js +39 -0
  170. package/dist/domain/governance/activation/canonical-json.js.map +1 -0
  171. package/dist/domain/governance/activation/capabilities.d.ts +7 -0
  172. package/dist/domain/governance/activation/capabilities.js +33 -0
  173. package/dist/domain/governance/activation/capabilities.js.map +1 -0
  174. package/dist/domain/governance/activation/evidence.d.ts +63 -0
  175. package/dist/domain/governance/activation/evidence.js +444 -0
  176. package/dist/domain/governance/activation/evidence.js.map +1 -0
  177. package/dist/domain/governance/activation/graph.d.ts +397 -0
  178. package/dist/domain/governance/activation/graph.js +441 -0
  179. package/dist/domain/governance/activation/graph.js.map +1 -0
  180. package/dist/domain/governance/activation/inputs.d.ts +25 -0
  181. package/dist/domain/governance/activation/inputs.js +63 -0
  182. package/dist/domain/governance/activation/inputs.js.map +1 -0
  183. package/dist/domain/governance/activation/operations.d.ts +19 -0
  184. package/dist/domain/governance/activation/operations.js +181 -0
  185. package/dist/domain/governance/activation/operations.js.map +1 -0
  186. package/dist/domain/governance/activation/readiness.d.ts +27 -0
  187. package/dist/domain/governance/activation/readiness.js +269 -0
  188. package/dist/domain/governance/activation/readiness.js.map +1 -0
  189. package/dist/domain/governance/activation/types.d.ts +399 -0
  190. package/dist/domain/governance/activation/types.js +109 -0
  191. package/dist/domain/governance/activation/types.js.map +1 -0
  192. package/dist/domain/governance/activation/validators.d.ts +22 -0
  193. package/dist/domain/governance/activation/validators.js +1347 -0
  194. package/dist/domain/governance/activation/validators.js.map +1 -0
  195. package/dist/domain/governance/assessment/catalog.d.ts +14 -0
  196. package/dist/domain/governance/assessment/catalog.js +105 -0
  197. package/dist/domain/governance/assessment/catalog.js.map +1 -0
  198. package/dist/domain/governance/assessment/errors.d.ts +10 -0
  199. package/dist/domain/governance/assessment/errors.js +22 -0
  200. package/dist/domain/governance/assessment/errors.js.map +1 -0
  201. package/dist/domain/governance/assessment/index.d.ts +8 -0
  202. package/dist/domain/governance/assessment/index.js +9 -0
  203. package/dist/domain/governance/assessment/index.js.map +1 -0
  204. package/dist/domain/governance/assessment/live-normalize.d.ts +19 -0
  205. package/dist/domain/governance/assessment/live-normalize.js +403 -0
  206. package/dist/domain/governance/assessment/live-normalize.js.map +1 -0
  207. package/dist/domain/governance/assessment/predicates.d.ts +36 -0
  208. package/dist/domain/governance/assessment/predicates.js +545 -0
  209. package/dist/domain/governance/assessment/predicates.js.map +1 -0
  210. package/dist/domain/governance/assessment/report.d.ts +23 -0
  211. package/dist/domain/governance/assessment/report.js +266 -0
  212. package/dist/domain/governance/assessment/report.js.map +1 -0
  213. package/dist/domain/governance/assessment/sanitize.d.ts +8 -0
  214. package/dist/domain/governance/assessment/sanitize.js +60 -0
  215. package/dist/domain/governance/assessment/sanitize.js.map +1 -0
  216. package/dist/domain/governance/assessment/types.d.ts +174 -0
  217. package/dist/domain/governance/assessment/types.js +13 -0
  218. package/dist/domain/governance/assessment/types.js.map +1 -0
  219. package/dist/domain/governance/assessment/yaml.d.ts +6 -0
  220. package/dist/domain/governance/assessment/yaml.js +30 -0
  221. package/dist/domain/governance/assessment/yaml.js.map +1 -0
  222. package/dist/domain/governance/policy/identity.d.ts +64 -0
  223. package/dist/domain/governance/policy/identity.js +112 -0
  224. package/dist/domain/governance/policy/identity.js.map +1 -0
  225. package/dist/domain/migration/dependencies.d.ts +7 -0
  226. package/dist/domain/migration/dependencies.js +221 -0
  227. package/dist/domain/migration/dependencies.js.map +1 -0
  228. package/dist/domain/migration/inventory.d.ts +3 -0
  229. package/dist/domain/migration/inventory.js +15 -0
  230. package/dist/domain/migration/inventory.js.map +1 -0
  231. package/dist/domain/project/artifact-lifecycle.d.ts +69 -0
  232. package/dist/domain/project/artifact-lifecycle.js +137 -0
  233. package/dist/domain/project/artifact-lifecycle.js.map +1 -0
  234. package/dist/domain/project/catalog.d.ts +48 -0
  235. package/dist/domain/project/catalog.js +507 -0
  236. package/dist/domain/project/catalog.js.map +1 -0
  237. package/dist/domain/project/contracts.d.ts +247 -0
  238. package/dist/domain/project/contracts.js +2 -0
  239. package/dist/domain/project/contracts.js.map +1 -0
  240. package/dist/domain/project/errors.d.ts +3 -0
  241. package/dist/domain/project/errors.js +7 -0
  242. package/dist/domain/project/errors.js.map +1 -0
  243. package/dist/domain/project/infrastructure-layout.d.ts +26 -0
  244. package/dist/domain/project/infrastructure-layout.js +124 -0
  245. package/dist/domain/project/infrastructure-layout.js.map +1 -0
  246. package/dist/domain/project/inputs.d.ts +21 -0
  247. package/dist/domain/project/inputs.js +41 -0
  248. package/dist/domain/project/inputs.js.map +1 -0
  249. package/dist/domain/project/manifest/artifacts.d.ts +8 -0
  250. package/dist/domain/project/manifest/artifacts.js +150 -0
  251. package/dist/domain/project/manifest/artifacts.js.map +1 -0
  252. package/dist/domain/project/manifest/context.d.ts +13 -0
  253. package/dist/domain/project/manifest/context.js +2 -0
  254. package/dist/domain/project/manifest/context.js.map +1 -0
  255. package/dist/domain/project/manifest/fields.d.ts +6 -0
  256. package/dist/domain/project/manifest/fields.js +36 -0
  257. package/dist/domain/project/manifest/fields.js.map +1 -0
  258. package/dist/domain/project/manifest/governance.d.ts +8 -0
  259. package/dist/domain/project/manifest/governance.js +161 -0
  260. package/dist/domain/project/manifest/governance.js.map +1 -0
  261. package/dist/domain/project/manifest/project-identity.d.ts +6 -0
  262. package/dist/domain/project/manifest/project-identity.js +273 -0
  263. package/dist/domain/project/manifest/project-identity.js.map +1 -0
  264. package/dist/domain/project/manifest/reader.d.ts +9 -0
  265. package/dist/domain/project/manifest/reader.js +141 -0
  266. package/dist/domain/project/manifest/reader.js.map +1 -0
  267. package/dist/domain/project/paths.d.ts +2 -0
  268. package/dist/domain/project/paths.js +29 -0
  269. package/dist/domain/project/paths.js.map +1 -0
  270. package/dist/domain/project/planning.d.ts +19 -0
  271. package/dist/domain/project/planning.js +329 -0
  272. package/dist/domain/project/planning.js.map +1 -0
  273. package/dist/domain/project/retired-workload.d.ts +4 -0
  274. package/dist/domain/project/retired-workload.js +18 -0
  275. package/dist/domain/project/retired-workload.js.map +1 -0
  276. package/dist/domain/project/supported-stack.d.ts +113 -0
  277. package/dist/domain/project/supported-stack.js +426 -0
  278. package/dist/domain/project/supported-stack.js.map +1 -0
  279. package/dist/domain/workstation/constraints.d.ts +6 -0
  280. package/dist/domain/workstation/constraints.js +8 -0
  281. package/dist/domain/workstation/constraints.js.map +1 -0
  282. package/dist/file-system.d.ts +10 -41
  283. package/dist/file-system.js +9 -1204
  284. package/dist/file-system.js.map +1 -1
  285. package/dist/framework-adapters.d.ts +1 -1
  286. package/dist/framework-validation.d.ts +1 -1
  287. package/dist/framework-validation.js +1 -1
  288. package/dist/framework-validation.js.map +1 -1
  289. package/dist/genai-templates.d.ts +2 -9
  290. package/dist/genai-templates.js +4 -5
  291. package/dist/genai-templates.js.map +1 -1
  292. package/dist/generators/common/artifacts.d.ts +6 -0
  293. package/dist/generators/common/artifacts.js +30 -0
  294. package/dist/generators/common/artifacts.js.map +1 -0
  295. package/dist/generators/common/base.d.ts +17 -0
  296. package/dist/generators/common/base.js +421 -0
  297. package/dist/generators/common/base.js.map +1 -0
  298. package/dist/generators/common/dotenv-validation.d.ts +2 -0
  299. package/dist/generators/common/dotenv-validation.js +80 -0
  300. package/dist/generators/common/dotenv-validation.js.map +1 -0
  301. package/dist/generators/common/environments.d.ts +3 -0
  302. package/dist/generators/common/environments.js +15 -0
  303. package/dist/generators/common/environments.js.map +1 -0
  304. package/dist/generators/common/frontend.d.ts +15 -0
  305. package/dist/generators/common/frontend.js +166 -0
  306. package/dist/generators/common/frontend.js.map +1 -0
  307. package/dist/generators/common/python-settings.d.ts +2 -0
  308. package/dist/generators/common/python-settings.js +70 -0
  309. package/dist/generators/common/python-settings.js.map +1 -0
  310. package/dist/generators/common/spec-workflow.d.ts +28 -0
  311. package/dist/generators/common/spec-workflow.js +567 -0
  312. package/dist/generators/common/spec-workflow.js.map +1 -0
  313. package/dist/generators/common/values.d.ts +13 -0
  314. package/dist/generators/common/values.js +16 -0
  315. package/dist/generators/common/values.js.map +1 -0
  316. package/dist/generators/containers/compose.d.ts +7 -0
  317. package/dist/generators/containers/compose.js +196 -0
  318. package/dist/generators/containers/compose.js.map +1 -0
  319. package/dist/generators/containers/context.d.ts +1 -0
  320. package/dist/generators/containers/context.js +43 -0
  321. package/dist/generators/containers/context.js.map +1 -0
  322. package/dist/generators/containers/images.d.ts +7 -0
  323. package/dist/generators/containers/images.js +119 -0
  324. package/dist/generators/containers/images.js.map +1 -0
  325. package/dist/generators/context.d.ts +42 -0
  326. package/dist/generators/context.js +38 -0
  327. package/dist/generators/context.js.map +1 -0
  328. package/dist/generators/genai/backend.d.ts +20 -0
  329. package/dist/generators/genai/backend.js +667 -0
  330. package/dist/generators/genai/backend.js.map +1 -0
  331. package/dist/generators/genai/configuration.d.ts +3 -0
  332. package/dist/generators/genai/configuration.js +43 -0
  333. package/dist/generators/genai/configuration.js.map +1 -0
  334. package/dist/generators/genai/database.d.ts +7 -0
  335. package/dist/generators/genai/database.js +71 -0
  336. package/dist/generators/genai/database.js.map +1 -0
  337. package/dist/generators/genai/functions.d.ts +15 -0
  338. package/dist/generators/genai/functions.js +156 -0
  339. package/dist/generators/genai/functions.js.map +1 -0
  340. package/dist/generators/genai/index.d.ts +8 -0
  341. package/dist/generators/genai/index.js +11 -0
  342. package/dist/generators/genai/index.js.map +1 -0
  343. package/dist/generators/genai/patterns.d.ts +9 -0
  344. package/dist/generators/genai/patterns.js +309 -0
  345. package/dist/generators/genai/patterns.js.map +1 -0
  346. package/dist/generators/infrastructure/azure.d.ts +18 -0
  347. package/dist/generators/infrastructure/azure.js +655 -0
  348. package/dist/generators/infrastructure/azure.js.map +1 -0
  349. package/dist/generators/infrastructure/names.d.ts +23 -0
  350. package/dist/generators/infrastructure/names.js +51 -0
  351. package/dist/generators/infrastructure/names.js.map +1 -0
  352. package/dist/generators/standard/configuration.d.ts +3 -0
  353. package/dist/generators/standard/configuration.js +26 -0
  354. package/dist/generators/standard/configuration.js.map +1 -0
  355. package/dist/generators/standard/go.d.ts +17 -0
  356. package/dist/generators/standard/go.js +338 -0
  357. package/dist/generators/standard/go.js.map +1 -0
  358. package/dist/generators/standard/index.d.ts +12 -0
  359. package/dist/generators/standard/index.js +12 -0
  360. package/dist/generators/standard/index.js.map +1 -0
  361. package/dist/generators/standard/node.d.ts +20 -0
  362. package/dist/generators/standard/node.js +314 -0
  363. package/dist/generators/standard/node.js.map +1 -0
  364. package/dist/generators/standard/python.d.ts +18 -0
  365. package/dist/generators/standard/python.js +191 -0
  366. package/dist/generators/standard/python.js.map +1 -0
  367. package/dist/go-template-assets.js +3 -3
  368. package/dist/go-template-assets.js.map +1 -1
  369. package/dist/governance-activation/activation-state.d.ts +1 -1
  370. package/dist/governance-activation/activation-state.js +46 -9
  371. package/dist/governance-activation/activation-state.js.map +1 -1
  372. package/dist/governance-activation/approvals.d.ts +1 -188
  373. package/dist/governance-activation/approvals.js +1 -507
  374. package/dist/governance-activation/approvals.js.map +1 -1
  375. package/dist/governance-activation/canonical-json.d.ts +1 -3
  376. package/dist/governance-activation/canonical-json.js +1 -35
  377. package/dist/governance-activation/canonical-json.js.map +1 -1
  378. package/dist/governance-activation/commands.d.ts +1 -1
  379. package/dist/governance-activation/commands.js +107 -103
  380. package/dist/governance-activation/commands.js.map +1 -1
  381. package/dist/governance-activation/compatibility.d.ts +11 -3
  382. package/dist/governance-activation/compatibility.js +31 -4
  383. package/dist/governance-activation/compatibility.js.map +1 -1
  384. package/dist/governance-activation/credentials.d.ts +3 -3
  385. package/dist/governance-activation/credentials.js +5 -5
  386. package/dist/governance-activation/credentials.js.map +1 -1
  387. package/dist/governance-activation/doctor.d.ts +1 -1
  388. package/dist/governance-activation/doctor.js +28 -96
  389. package/dist/governance-activation/doctor.js.map +1 -1
  390. package/dist/governance-activation/evidence.d.ts +1 -49
  391. package/dist/governance-activation/evidence.js +1 -245
  392. package/dist/governance-activation/evidence.js.map +1 -1
  393. package/dist/governance-activation/git-ignore.d.ts +9 -0
  394. package/dist/governance-activation/git-ignore.js +76 -0
  395. package/dist/governance-activation/git-ignore.js.map +1 -0
  396. package/dist/governance-activation/graph.d.ts +1 -397
  397. package/dist/governance-activation/graph.js +1 -440
  398. package/dist/governance-activation/graph.js.map +1 -1
  399. package/dist/governance-activation/identity.d.ts +1 -35
  400. package/dist/governance-activation/identity.js +1 -88
  401. package/dist/governance-activation/identity.js.map +1 -1
  402. package/dist/governance-activation/index.d.ts +3 -0
  403. package/dist/governance-activation/index.js +3 -0
  404. package/dist/governance-activation/index.js.map +1 -1
  405. package/dist/governance-activation/inputs.d.ts +8 -0
  406. package/dist/governance-activation/inputs.js +146 -0
  407. package/dist/governance-activation/inputs.js.map +1 -0
  408. package/dist/governance-activation/migration.d.ts +4 -3
  409. package/dist/governance-activation/migration.js +14 -6
  410. package/dist/governance-activation/migration.js.map +1 -1
  411. package/dist/governance-activation/phase-bootstrap-state.d.ts +3 -0
  412. package/dist/governance-activation/phase-bootstrap-state.js +128 -0
  413. package/dist/governance-activation/phase-bootstrap-state.js.map +1 -0
  414. package/dist/governance-activation/phase-discovery.d.ts +2 -0
  415. package/dist/governance-activation/phase-discovery.js +88 -0
  416. package/dist/governance-activation/phase-discovery.js.map +1 -0
  417. package/dist/governance-activation/phase-governance.d.ts +4 -0
  418. package/dist/governance-activation/phase-governance.js +141 -0
  419. package/dist/governance-activation/phase-governance.js.map +1 -0
  420. package/dist/governance-activation/phase-publication.d.ts +8 -0
  421. package/dist/governance-activation/phase-publication.js +318 -0
  422. package/dist/governance-activation/phase-publication.js.map +1 -0
  423. package/dist/governance-activation/read-only.d.ts +30 -0
  424. package/dist/governance-activation/read-only.js +93 -0
  425. package/dist/governance-activation/read-only.js.map +1 -0
  426. package/dist/governance-activation/readiness.d.ts +1 -24
  427. package/dist/governance-activation/readiness.js +1 -220
  428. package/dist/governance-activation/readiness.js.map +1 -1
  429. package/dist/governance-activation/reconciliation.d.ts +1 -1
  430. package/dist/governance-activation/reconciliation.js +3 -3
  431. package/dist/governance-activation/reconciliation.js.map +1 -1
  432. package/dist/governance-activation/release-integrity.d.ts +1 -1
  433. package/dist/governance-activation/release-integrity.js +2 -2
  434. package/dist/governance-activation/release-integrity.js.map +1 -1
  435. package/dist/governance-activation/seed-lifecycle.d.ts +10 -2
  436. package/dist/governance-activation/seed-lifecycle.js +244 -66
  437. package/dist/governance-activation/seed-lifecycle.js.map +1 -1
  438. package/dist/governance-activation/source-of-truth.d.ts +5 -3
  439. package/dist/governance-activation/source-of-truth.js +32 -52
  440. package/dist/governance-activation/source-of-truth.js.map +1 -1
  441. package/dist/governance-activation/spec-kit-seed.d.ts +9 -0
  442. package/dist/governance-activation/spec-kit-seed.js +43 -0
  443. package/dist/governance-activation/spec-kit-seed.js.map +1 -0
  444. package/dist/governance-activation/task-projection.d.ts +1 -1
  445. package/dist/governance-activation/transition-planning.d.ts +15 -0
  446. package/dist/governance-activation/transition-planning.js +250 -0
  447. package/dist/governance-activation/transition-planning.js.map +1 -0
  448. package/dist/governance-activation/transition-ports.d.ts +150 -0
  449. package/dist/governance-activation/transition-ports.js +2 -0
  450. package/dist/governance-activation/transition-ports.js.map +1 -0
  451. package/dist/governance-activation/transition-process.d.ts +7 -0
  452. package/dist/governance-activation/transition-process.js +21 -0
  453. package/dist/governance-activation/transition-process.js.map +1 -0
  454. package/dist/governance-activation/transition-records.d.ts +56 -0
  455. package/dist/governance-activation/transition-records.js +208 -0
  456. package/dist/governance-activation/transition-records.js.map +1 -0
  457. package/dist/governance-activation/transitions.d.ts +6 -157
  458. package/dist/governance-activation/transitions.js +143 -2045
  459. package/dist/governance-activation/transitions.js.map +1 -1
  460. package/dist/governance-activation/types.d.ts +1 -390
  461. package/dist/governance-activation/types.js +1 -107
  462. package/dist/governance-activation/types.js.map +1 -1
  463. package/dist/governance-activation/validators.d.ts +1 -17
  464. package/dist/governance-activation/validators.js +1 -1304
  465. package/dist/governance-activation/validators.js.map +1 -1
  466. package/dist/governance-assessment/catalog.d.ts +7 -0
  467. package/dist/governance-assessment/catalog.js +31 -0
  468. package/dist/governance-assessment/catalog.js.map +1 -0
  469. package/dist/governance-assessment/command.d.ts +10 -0
  470. package/dist/governance-assessment/command.js +77 -0
  471. package/dist/governance-assessment/command.js.map +1 -0
  472. package/dist/governance-assessment/engine.d.ts +14 -0
  473. package/dist/governance-assessment/engine.js +935 -0
  474. package/dist/governance-assessment/engine.js.map +1 -0
  475. package/dist/governance-assessment/index.d.ts +5 -0
  476. package/dist/governance-assessment/index.js +6 -0
  477. package/dist/governance-assessment/index.js.map +1 -0
  478. package/dist/governance-assessment/live-normalize.d.ts +1 -0
  479. package/dist/governance-assessment/live-normalize.js +2 -0
  480. package/dist/governance-assessment/live-normalize.js.map +1 -0
  481. package/dist/governance-assessment/live-transport.d.ts +34 -0
  482. package/dist/governance-assessment/live-transport.js +455 -0
  483. package/dist/governance-assessment/live-transport.js.map +1 -0
  484. package/dist/governance-assessment/live.d.ts +2 -0
  485. package/dist/governance-assessment/live.js +689 -0
  486. package/dist/governance-assessment/live.js.map +1 -0
  487. package/dist/governance-assessment/predicates.d.ts +1 -0
  488. package/dist/governance-assessment/predicates.js +2 -0
  489. package/dist/governance-assessment/predicates.js.map +1 -0
  490. package/dist/governance-assessment/project.d.ts +33 -0
  491. package/dist/governance-assessment/project.js +178 -0
  492. package/dist/governance-assessment/project.js.map +1 -0
  493. package/dist/governance-assessment/readers.d.ts +14 -0
  494. package/dist/governance-assessment/readers.js +122 -0
  495. package/dist/governance-assessment/readers.js.map +1 -0
  496. package/dist/governance-assessment/report.d.ts +1 -0
  497. package/dist/governance-assessment/report.js +2 -0
  498. package/dist/governance-assessment/report.js.map +1 -0
  499. package/dist/governance-assessment/sanitize.d.ts +1 -0
  500. package/dist/governance-assessment/sanitize.js +2 -0
  501. package/dist/governance-assessment/sanitize.js.map +1 -0
  502. package/dist/governance-assessment/types.d.ts +6 -0
  503. package/dist/governance-assessment/types.js +2 -0
  504. package/dist/governance-assessment/types.js.map +1 -0
  505. package/dist/governance-assessment/yaml.d.ts +1 -0
  506. package/dist/governance-assessment/yaml.js +2 -0
  507. package/dist/governance-assessment/yaml.js.map +1 -0
  508. package/dist/init-filesystem.d.ts +1 -1
  509. package/dist/init-filesystem.js +126 -174
  510. package/dist/init-filesystem.js.map +1 -1
  511. package/dist/interactive.d.ts +2 -2
  512. package/dist/interactive.js +42 -41
  513. package/dist/interactive.js.map +1 -1
  514. package/dist/migrate-plan.d.ts +5 -1
  515. package/dist/migrate-plan.js +87 -10
  516. package/dist/migrate-plan.js.map +1 -1
  517. package/dist/npm-template-assets.js +5 -4
  518. package/dist/npm-template-assets.js.map +1 -1
  519. package/dist/openspec-profile.d.ts +1 -1
  520. package/dist/opentofu-template-assets.js +3 -3
  521. package/dist/opentofu-template-assets.js.map +1 -1
  522. package/dist/package-identity.d.ts +3 -0
  523. package/dist/package-identity.js +13 -2
  524. package/dist/package-identity.js.map +1 -1
  525. package/dist/planner.d.ts +1 -19
  526. package/dist/planner.js +1 -565
  527. package/dist/planner.js.map +1 -1
  528. package/dist/process-runner.d.ts +5 -1
  529. package/dist/process-runner.js +164 -8
  530. package/dist/process-runner.js.map +1 -1
  531. package/dist/project-dependencies.d.ts +5 -3
  532. package/dist/project-dependencies.js +74 -63
  533. package/dist/project-dependencies.js.map +1 -1
  534. package/dist/published-verifier.js +67 -30
  535. package/dist/published-verifier.js.map +1 -1
  536. package/dist/python-template-assets.js +6 -9
  537. package/dist/python-template-assets.js.map +1 -1
  538. package/dist/reconcile.d.ts +1 -1
  539. package/dist/reconcile.js +2 -2
  540. package/dist/reconcile.js.map +1 -1
  541. package/dist/release-identity.js +19 -0
  542. package/dist/release-identity.js.map +1 -1
  543. package/dist/repository-governance.d.ts +10 -2
  544. package/dist/repository-governance.js +240 -99
  545. package/dist/repository-governance.js.map +1 -1
  546. package/dist/runtime.js +1 -1
  547. package/dist/runtime.js.map +1 -1
  548. package/dist/scan.d.ts +6 -2
  549. package/dist/scan.js +78 -30
  550. package/dist/scan.js.map +1 -1
  551. package/dist/self-upgrade.d.ts +1 -1
  552. package/dist/self-upgrade.js +20 -7
  553. package/dist/self-upgrade.js.map +1 -1
  554. package/dist/stable-release.js +7 -1
  555. package/dist/stable-release.js.map +1 -1
  556. package/dist/standard-templates.d.ts +2 -2
  557. package/dist/standard-templates.js +6 -841
  558. package/dist/standard-templates.js.map +1 -1
  559. package/dist/supported-stack.d.ts +3 -115
  560. package/dist/supported-stack.js +4 -438
  561. package/dist/supported-stack.js.map +1 -1
  562. package/dist/telemetry/contract.d.ts +2 -0
  563. package/dist/telemetry/contract.js +7 -0
  564. package/dist/telemetry/contract.js.map +1 -1
  565. package/dist/telemetry/index.d.ts +1 -1
  566. package/dist/templates.d.ts +10 -20
  567. package/dist/templates.js +52 -3238
  568. package/dist/templates.js.map +1 -1
  569. package/dist/types.d.ts +1 -263
  570. package/dist/types.js +1 -1
  571. package/dist/types.js.map +1 -1
  572. package/dist/version.js +2 -6
  573. package/dist/version.js.map +1 -1
  574. package/dist/workstation-catalog.d.ts +5 -2
  575. package/dist/workstation-catalog.js +33 -2
  576. package/dist/workstation-catalog.js.map +1 -1
  577. package/dist/workstation.d.ts +4 -3
  578. package/dist/workstation.js +86 -32
  579. package/dist/workstation.js.map +1 -1
  580. package/docs/assets/liftoff-terminal.svg +3 -3
  581. package/docs/azure-deployment.md +107 -10
  582. package/docs/cli-reference.md +127 -11
  583. package/docs/configuration-and-manifests.md +150 -35
  584. package/docs/existing-repositories.md +33 -6
  585. package/docs/getting-started.md +44 -31
  586. package/docs/prerequisites.md +34 -35
  587. package/docs/project-structure.md +45 -47
  588. package/docs/repository-governance.md +207 -24
  589. package/docs/safety-and-consent.md +65 -12
  590. package/docs/spec-workflows-and-agents.md +31 -28
  591. package/docs/supported-stack.md +11 -9
  592. package/docs/telemetry.md +9 -3
  593. package/docs/troubleshooting.md +107 -49
  594. package/docs/workloads.md +53 -62
  595. package/package.json +6 -8
  596. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/UPSTREAM_LICENSE.txt +0 -21
  597. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/catalog.json +0 -520
  598. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/packaged/gitignore +0 -27
  599. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/README.md +0 -25
  600. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/components.json +0 -22
  601. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/eslint.config.js +0 -23
  602. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/index.html +0 -13
  603. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package-lock.json +0 -6156
  604. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package.json +0 -60
  605. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/public/power-apps.svg +0 -55
  606. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/App.tsx +0 -17
  607. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/assets/react.svg +0 -1
  608. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/mode-toggle.tsx +0 -37
  609. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/badge.tsx +0 -46
  610. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/button.tsx +0 -60
  611. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/calendar.tsx +0 -211
  612. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/card.tsx +0 -92
  613. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/chart.tsx +0 -355
  614. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/checkbox.tsx +0 -32
  615. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/command.tsx +0 -184
  616. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/dialog.tsx +0 -141
  617. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/dropdown-menu.tsx +0 -257
  618. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/input.tsx +0 -21
  619. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/label.tsx +0 -22
  620. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/popover.tsx +0 -46
  621. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/progress.tsx +0 -29
  622. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/select.tsx +0 -185
  623. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/separator.tsx +0 -26
  624. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/skeleton.tsx +0 -13
  625. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/table.tsx +0 -114
  626. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/tabs.tsx +0 -66
  627. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/textarea.tsx +0 -18
  628. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/tooltip.tsx +0 -61
  629. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/hooks/use-theme.ts +0 -11
  630. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/index.css +0 -131
  631. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/lib/utils.ts +0 -6
  632. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/main.tsx +0 -10
  633. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/_layout.tsx +0 -31
  634. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/home.tsx +0 -59
  635. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/not-found.tsx +0 -14
  636. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/query-provider.tsx +0 -26
  637. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/sonner-provider.tsx +0 -23
  638. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/theme-provider.tsx +0 -64
  639. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/router.tsx +0 -24
  640. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.app.json +0 -34
  641. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.json +0 -13
  642. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.node.json +0 -26
  643. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/vite.config.ts +0 -19
  644. package/assets/power-apps-code-app/README.md +0 -27
  645. package/dist/code-apps-plugin.d.ts +0 -13
  646. package/dist/code-apps-plugin.js +0 -69
  647. package/dist/code-apps-plugin.js.map +0 -1
  648. package/dist/power-apps-assets.d.ts +0 -30
  649. package/dist/power-apps-assets.js +0 -131
  650. package/dist/power-apps-assets.js.map +0 -1
  651. package/dist/power-apps-templates.d.ts +0 -3
  652. package/dist/power-apps-templates.js +0 -173
  653. package/dist/power-apps-templates.js.map +0 -1
  654. package/dist/power-apps-validation.d.ts +0 -1
  655. package/dist/power-apps-validation.js +0 -79
  656. package/dist/power-apps-validation.js.map +0 -1
@@ -1,34 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
4
- "target": "ES2022",
5
- "useDefineForClassFields": true,
6
- "lib": ["ES2022", "DOM", "DOM.Iterable"],
7
- "module": "ESNext",
8
- "types": ["vite/client"],
9
- "skipLibCheck": true,
10
-
11
- /* Bundler mode */
12
- "moduleResolution": "bundler",
13
- "allowImportingTsExtensions": true,
14
- "verbatimModuleSyntax": true,
15
- "moduleDetection": "force",
16
- "noEmit": true,
17
- "jsx": "react-jsx",
18
-
19
- /* Linting */
20
- "strict": true,
21
- "noUnusedLocals": true,
22
- "noUnusedParameters": true,
23
- "erasableSyntaxOnly": true,
24
- "noFallthroughCasesInSwitch": true,
25
- "noUncheckedSideEffectImports": true,
26
-
27
- /* Paths */
28
- "baseUrl": ".",
29
- "paths": {
30
- "@/*": ["src/*"]
31
- }
32
- },
33
- "include": ["src"]
34
- }
@@ -1,13 +0,0 @@
1
- {
2
- "files": [],
3
- "references": [
4
- { "path": "./tsconfig.app.json" },
5
- { "path": "./tsconfig.node.json" }
6
- ],
7
- "compilerOptions": {
8
- "baseUrl": ".",
9
- "paths": {
10
- "@/*": ["src/*"]
11
- }
12
- }
13
- }
@@ -1,26 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4
- "target": "ES2023",
5
- "lib": ["ES2023"],
6
- "module": "ESNext",
7
- "types": ["node"],
8
- "skipLibCheck": true,
9
-
10
- /* Bundler mode */
11
- "moduleResolution": "bundler",
12
- "allowImportingTsExtensions": true,
13
- "verbatimModuleSyntax": true,
14
- "moduleDetection": "force",
15
- "noEmit": true,
16
-
17
- /* Linting */
18
- "strict": true,
19
- "noUnusedLocals": true,
20
- "noUnusedParameters": true,
21
- "erasableSyntaxOnly": true,
22
- "noFallthroughCasesInSwitch": true,
23
- "noUncheckedSideEffectImports": true
24
- },
25
- "include": ["vite.config.ts"]
26
- }
@@ -1,19 +0,0 @@
1
- import { defineConfig } from 'vite'
2
- import path from 'path'
3
- import react from '@vitejs/plugin-react'
4
- import tailwindcss from '@tailwindcss/vite'
5
- import { powerApps } from '@microsoft/power-apps-vite';
6
-
7
- // https://vite.dev/config/
8
- export default defineConfig({
9
- plugins: [
10
- react(),
11
- tailwindcss(),
12
- powerApps()
13
- ],
14
- resolve: {
15
- alias: {
16
- "@": path.resolve(__dirname, "./src"),
17
- },
18
- }
19
- })
@@ -1,27 +0,0 @@
1
- # Power Apps code-app starter asset
2
-
3
- Liftoff packages the official Microsoft starter from:
4
-
5
- - Repository: `https://github.com/microsoft/PowerAppsCodeApps`
6
- - Path: `templates/starter`
7
- - Commit: `3438c352483e40982f6c5c0fc36fd71f8e7adbbb`
8
- - License: MIT
9
-
10
- The versioned directory contains the copied source, generated lockfile, upstream license, and a
11
- catalog of portable paths, logical names, provenance, and SHA-256 hashes. Runtime generation reads
12
- only this checked-in catalog. The upstream `.gitignore` is also copied to the package-safe
13
- `packaged/gitignore` path because npm excludes nested `.gitignore` files from tarballs.
14
-
15
- ## Refresh procedure
16
-
17
- 1. Use Node 22 and run
18
- `npm run refresh:power-apps-starter -- <40-character-immutable-commit>`.
19
- 2. Review the displayed source diff, regenerated lock/catalog, upstream MIT license, package-root
20
- identity, hashes, and pinned metadata change. The command rejects symlinks, generated bindings,
21
- caches, dependencies, and build output.
22
- 3. Update commit-specific expectations, then run `npm run verify:power-apps-starter`, the package
23
- smoke test, and the full Liftoff test suite.
24
- 4. Review `THIRD_PARTY_NOTICES.md` output and packed-package size before release.
25
-
26
- This maintainer-only command downloads the requested immutable archive and never runs during
27
- `liftoff init`, planning, validation, updates, or doctor checks.
@@ -1,13 +0,0 @@
1
- import type { CommandRunner } from './process-runner.js';
2
- import type { CodingAgentDefinition, CodingAgentId } from './types.js';
3
- export type CodeAppsPluginState = 'ready' | 'missing' | 'not-observable';
4
- export interface CodeAppsPluginProbe {
5
- agent: CodingAgentDefinition;
6
- id: `code-apps-plugin:${CodingAgentId}`;
7
- state: CodeAppsPluginState;
8
- detail: string;
9
- remedy?: string;
10
- }
11
- export declare function codeAppsPluginIdentity(): string;
12
- export declare function codeAppsPluginGuidance(agent: CodingAgentDefinition): string;
13
- export declare function probeCodeAppsPlugin(agents: CodingAgentDefinition[], runner: CommandRunner, cwd?: string): Promise<CodeAppsPluginProbe[]>;
@@ -1,69 +0,0 @@
1
- import { codeAppsPlugin } from './catalogs.js';
2
- export function codeAppsPluginIdentity() {
3
- return `${codeAppsPlugin.id}@${codeAppsPlugin.marketplace}`;
4
- }
5
- export function codeAppsPluginGuidance(agent) {
6
- return [
7
- `Open ${agent.label} and add the marketplace with`,
8
- '`/plugin marketplace add microsoft/power-platform-skills`, then install',
9
- `\`/plugin install ${codeAppsPluginIdentity()}\`.`,
10
- 'Do not run `/create-code-app` in this project; use the connector and deployment skills',
11
- 'after Liftoff creates the application.'
12
- ].join(' ');
13
- }
14
- export async function probeCodeAppsPlugin(agents, runner, cwd) {
15
- return Promise.all(agents.map(async (agent) => {
16
- const id = `code-apps-plugin:${agent.id}`;
17
- const command = codeAppsPlugin.probes[agent.id];
18
- if (!command) {
19
- return {
20
- agent,
21
- id,
22
- state: 'not-observable',
23
- detail: `${agent.label} has no allowlisted plugin-list probe.`,
24
- remedy: codeAppsPluginGuidance(agent)
25
- };
26
- }
27
- const result = await runner.run(command, { cwd, timeoutMs: 15_000 });
28
- if (result.errorCode === 'ENOENT' || result.errorCode === 'UNKNOWN') {
29
- return {
30
- agent,
31
- id,
32
- state: 'not-observable',
33
- detail: `${agent.label} is unavailable, so plugin state cannot be observed.`,
34
- remedy: codeAppsPluginGuidance(agent)
35
- };
36
- }
37
- if (result.status !== 0 || result.timedOut) {
38
- return {
39
- agent,
40
- id,
41
- state: 'not-observable',
42
- detail: result.timedOut
43
- ? `${agent.label} plugin-list probe timed out.`
44
- : (result.stderr || result.errorMessage || `${agent.label} does not expose plugin state through this command.`)
45
- .trim()
46
- .split(/\r?\n/)[0],
47
- remedy: codeAppsPluginGuidance(agent)
48
- };
49
- }
50
- const installed = `${result.stdout}\n${result.stderr}`
51
- .toLowerCase()
52
- .includes(codeAppsPlugin.id);
53
- return installed
54
- ? {
55
- agent,
56
- id,
57
- state: 'ready',
58
- detail: `${codeAppsPluginIdentity()} ${codeAppsPlugin.version} is reported by ${agent.label}.`
59
- }
60
- : {
61
- agent,
62
- id,
63
- state: 'missing',
64
- detail: `${codeAppsPluginIdentity()} is not listed by ${agent.label}.`,
65
- remedy: codeAppsPluginGuidance(agent)
66
- };
67
- }));
68
- }
69
- //# sourceMappingURL=code-apps-plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-apps-plugin.js","sourceRoot":"","sources":["../src/code-apps-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- export interface PowerAppsStarterAsset {
2
- logicalName: string;
3
- pathParts: string[];
4
- assetPath: string;
5
- sha256: string;
6
- provenance: 'upstream' | 'generated-lockfile';
7
- }
8
- export interface PowerAppsStarterCatalog {
9
- schemaVersion: 1;
10
- source: {
11
- repository: string;
12
- path: string;
13
- commit: string;
14
- archiveSha256: string;
15
- };
16
- license: {
17
- spdx: 'MIT';
18
- assetPath: string;
19
- sha256: string;
20
- };
21
- lockfile: {
22
- nodeBaseline: string;
23
- npmVersion: string;
24
- sha256: string;
25
- };
26
- files: PowerAppsStarterAsset[];
27
- }
28
- export declare const powerAppsStarterCatalog: PowerAppsStarterCatalog;
29
- export declare function readPowerAppsStarterAsset(asset: PowerAppsStarterAsset): string;
30
- export declare function readPowerAppsStarterLicense(): string;
@@ -1,131 +0,0 @@
1
- import { createHash } from 'node:crypto';
2
- import { readFileSync } from 'node:fs';
3
- import { fileURLToPath } from 'node:url';
4
- import { powerAppsCodeAppStarter } from './catalogs.js';
5
- const HASH_PATTERN = /^sha256:[0-9a-f]{64}$/;
6
- const ASSET_ROOT = `../assets/power-apps-code-app/${powerAppsCodeAppStarter.commit}/`;
7
- const catalogUrl = new URL(`${ASSET_ROOT}catalog.json`, import.meta.url);
8
- function hash(content) {
9
- return `sha256:${createHash('sha256').update(content).digest('hex')}`;
10
- }
11
- function isRecord(value) {
12
- return typeof value === 'object' && value !== null && !Array.isArray(value);
13
- }
14
- function validatePathParts(value, label) {
15
- if (!Array.isArray(value) || value.length === 0) {
16
- throw new Error(`${label} must be a non-empty path-part array.`);
17
- }
18
- return value.map((part, index) => {
19
- if (typeof part !== 'string' ||
20
- part.length === 0 ||
21
- part === '.' ||
22
- part === '..' ||
23
- part.includes('/') ||
24
- part.includes('\\') ||
25
- part.includes('\0')) {
26
- throw new Error(`${label}[${index}] is not a portable path part.`);
27
- }
28
- return part;
29
- });
30
- }
31
- function requiredString(record, field, label) {
32
- const value = record[field];
33
- if (typeof value !== 'string' || value.length === 0) {
34
- throw new Error(`${label}.${field} must be a non-empty string.`);
35
- }
36
- return value;
37
- }
38
- function parseCatalog() {
39
- const parsed = JSON.parse(readFileSync(fileURLToPath(catalogUrl), 'utf8'));
40
- if (!isRecord(parsed) || parsed.schemaVersion !== 1) {
41
- throw new Error('Power Apps starter catalog must use schema version 1.');
42
- }
43
- if (!isRecord(parsed.source) || !isRecord(parsed.license) || !isRecord(parsed.lockfile)) {
44
- throw new Error('Power Apps starter catalog metadata is incomplete.');
45
- }
46
- const source = {
47
- repository: requiredString(parsed.source, 'repository', 'catalog.source'),
48
- path: requiredString(parsed.source, 'path', 'catalog.source'),
49
- commit: requiredString(parsed.source, 'commit', 'catalog.source'),
50
- archiveSha256: requiredString(parsed.source, 'archiveSha256', 'catalog.source')
51
- };
52
- if (source.repository !== powerAppsCodeAppStarter.repository ||
53
- source.path !== powerAppsCodeAppStarter.path ||
54
- source.commit !== powerAppsCodeAppStarter.commit) {
55
- throw new Error('Power Apps starter catalog identity does not match the pinned workload catalog.');
56
- }
57
- if (!HASH_PATTERN.test(source.archiveSha256)) {
58
- throw new Error('Power Apps starter archive hash is invalid.');
59
- }
60
- const license = {
61
- spdx: requiredString(parsed.license, 'spdx', 'catalog.license'),
62
- assetPath: requiredString(parsed.license, 'assetPath', 'catalog.license'),
63
- sha256: requiredString(parsed.license, 'sha256', 'catalog.license')
64
- };
65
- if (license.spdx !== 'MIT' || !HASH_PATTERN.test(license.sha256)) {
66
- throw new Error('Power Apps starter license metadata is invalid.');
67
- }
68
- const lockfile = {
69
- nodeBaseline: requiredString(parsed.lockfile, 'nodeBaseline', 'catalog.lockfile'),
70
- npmVersion: requiredString(parsed.lockfile, 'npmVersion', 'catalog.lockfile'),
71
- sha256: requiredString(parsed.lockfile, 'sha256', 'catalog.lockfile')
72
- };
73
- if (!HASH_PATTERN.test(lockfile.sha256)) {
74
- throw new Error('Power Apps starter lockfile hash is invalid.');
75
- }
76
- if (!Array.isArray(parsed.files) || parsed.files.length === 0) {
77
- throw new Error('Power Apps starter catalog files must be a non-empty array.');
78
- }
79
- const logicalNames = new Set();
80
- const paths = new Set();
81
- const files = parsed.files.map((value, index) => {
82
- if (!isRecord(value)) {
83
- throw new Error(`catalog.files[${index}] must be an object.`);
84
- }
85
- const logicalName = requiredString(value, 'logicalName', `catalog.files[${index}]`);
86
- const pathParts = validatePathParts(value.pathParts, `catalog.files[${index}].pathParts`);
87
- const assetPath = requiredString(value, 'assetPath', `catalog.files[${index}]`);
88
- const sha256 = requiredString(value, 'sha256', `catalog.files[${index}]`);
89
- const provenance = requiredString(value, 'provenance', `catalog.files[${index}]`);
90
- if (provenance !== 'upstream' && provenance !== 'generated-lockfile') {
91
- throw new Error(`catalog.files[${index}].provenance is invalid.`);
92
- }
93
- const isGitignore = pathParts.length === 1 && pathParts[0] === '.gitignore';
94
- const expectedAssetPath = isGitignore
95
- ? assetPath === 'packaged/gitignore'
96
- : assetPath.startsWith('starter/');
97
- if (!expectedAssetPath || assetPath.includes('..') || !HASH_PATTERN.test(sha256)) {
98
- throw new Error(`catalog.files[${index}] contains unsafe asset metadata.`);
99
- }
100
- const pathKey = pathParts.join('\0');
101
- if (logicalNames.has(logicalName) || paths.has(pathKey)) {
102
- throw new Error(`Power Apps starter catalog contains duplicate entry ${logicalName}.`);
103
- }
104
- logicalNames.add(logicalName);
105
- paths.add(pathKey);
106
- return { logicalName, pathParts, assetPath, sha256, provenance };
107
- });
108
- return {
109
- schemaVersion: 1,
110
- source,
111
- license: { spdx: 'MIT', assetPath: license.assetPath, sha256: license.sha256 },
112
- lockfile,
113
- files
114
- };
115
- }
116
- export const powerAppsStarterCatalog = parseCatalog();
117
- function readVerifiedAsset(assetPath, expectedHash) {
118
- const bytes = readFileSync(fileURLToPath(new URL(`${ASSET_ROOT}${assetPath}`, import.meta.url)));
119
- const actualHash = hash(bytes);
120
- if (actualHash !== expectedHash) {
121
- throw new Error(`Packaged Power Apps asset ${assetPath} failed integrity validation.`);
122
- }
123
- return bytes.toString('utf8');
124
- }
125
- export function readPowerAppsStarterAsset(asset) {
126
- return readVerifiedAsset(asset.assetPath, asset.sha256);
127
- }
128
- export function readPowerAppsStarterLicense() {
129
- return readVerifiedAsset(powerAppsStarterCatalog.license.assetPath, powerAppsStarterCatalog.license.sha256);
130
- }
131
- //# sourceMappingURL=power-apps-assets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"power-apps-assets.js","sourceRoot":"","sources":["../src/power-apps-assets.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { AddArtifact } from './template-types.js';
2
- import type { PowerAppsCodeAppProjectPlan } from './types.js';
3
- export declare function addPowerAppsCodeAppArtifacts(add: AddArtifact, plan: PowerAppsCodeAppProjectPlan): void;
@@ -1,173 +0,0 @@
1
- import { codeAppsPlugin } from './catalogs.js';
2
- import { powerAppsStarterCatalog, readPowerAppsStarterAsset, readPowerAppsStarterLicense } from './power-apps-assets.js';
3
- import { OPEN_SPEC_DELIVERY, OPEN_SPEC_PROFILE, OPEN_SPEC_WORKFLOW_IDS } from './openspec-profile.js';
4
- function isRecord(value) {
5
- return typeof value === 'object' && value !== null && !Array.isArray(value);
6
- }
7
- function renderPackageJson(content, packageName) {
8
- const parsed = JSON.parse(content);
9
- if (!isRecord(parsed)) {
10
- throw new Error('Packaged Power Apps package.json must be an object.');
11
- }
12
- if (!isRecord(parsed.scripts)) {
13
- throw new Error('Packaged Power Apps package.json scripts must be an object.');
14
- }
15
- return JSON.stringify({
16
- ...parsed,
17
- name: packageName,
18
- scripts: {
19
- ...parsed.scripts,
20
- lint: 'eslint . --rule "react-refresh/only-export-components: off"'
21
- }
22
- }, null, 2);
23
- }
24
- function renderPackageLock(content, packageName) {
25
- const parsed = JSON.parse(content);
26
- if (!isRecord(parsed) || !isRecord(parsed.packages) || !isRecord(parsed.packages[''])) {
27
- throw new Error('Packaged Power Apps package-lock.json has an unsupported shape.');
28
- }
29
- return JSON.stringify({
30
- ...parsed,
31
- name: packageName,
32
- packages: {
33
- ...parsed.packages,
34
- '': {
35
- ...parsed.packages[''],
36
- name: packageName
37
- }
38
- }
39
- }, null, 2);
40
- }
41
- function renderReadme(plan) {
42
- const agents = plan.agents
43
- .map((agent) => `${agent.label}${agent.id === plan.defaultAgent?.id ? ' (default)' : ''}`)
44
- .join(', ');
45
- const pluginGuidance = plan.codeAppsPlugin
46
- ? `
47
- ## Optional Code Apps agent plugin
48
-
49
- This project requests the ${codeAppsPlugin.label}. In a selected agent session, add and install
50
- only the targeted plugin:
51
-
52
- \`\`\`text
53
- /plugin marketplace add microsoft/power-platform-skills
54
- /plugin install ${codeAppsPlugin.id}@${codeAppsPlugin.marketplace}
55
- \`\`\`
56
-
57
- Do not run \`/create-code-app\` here; Liftoff already created the application. Use the plugin's
58
- connector and deployment skills for post-creation work.
59
- `
60
- : '';
61
- const openSpecGuidance = plan.specWorkflow.id === 'openspec'
62
- ? [
63
- `- OpenSpec profile: ${OPEN_SPEC_PROFILE}; delivery: ${OPEN_SPEC_DELIVERY}; workflows: ${OPEN_SPEC_WORKFLOW_IDS.join(', ')}`,
64
- ...(plan.agents.some((agent) => agent.id === 'github-copilot')
65
- ? ['- GitHub Copilot cloud agent: controlled by `githubCopilot.cloudAgent` in `openspec/config.yaml`']
66
- : [])
67
- ].join('\n')
68
- : '';
69
- const governanceGuidance = plan.governanceProfile.id === 'none'
70
- ? 'Repository governance is disabled, so this project has no `/liftoff-setup` integration, managed phase graph, or credential-policy schema.'
71
- : 'When repository governance is enabled, `.liftoff/governance/README.md` explains deterministic setup. Run `/liftoff-setup` next from a selected agent; it completes, syncs, and archives the generated bootstrap seed, then stops at explicit authority gates. Rerun it to resume idempotently. Power Apps context does not invent a Liftoff backend, container, OpenTofu deployment, or API DAST lane.';
72
- return `# ${plan.projectName}
73
-
74
- Power Apps code app generated by Mission Control Liftoff from Microsoft's official starter.
75
-
76
- ## Start locally
77
-
78
- \`\`\`bash
79
- npm ci
80
- npm run dev
81
- \`\`\`
82
-
83
- ## Bind to Power Apps
84
-
85
- After dependencies are installed, initialize the local project with the packaged CLI:
86
-
87
- \`\`\`bash
88
- npx --no-install power-apps init
89
- \`\`\`
90
-
91
- Authentication, environment selection, connections, solutions, and deployment remain explicit
92
- Microsoft Power Platform actions. Liftoff does not generate \`power.config.json\`, tenant data,
93
- credentials, tokens, or connection identities.
94
-
95
- ## AI workflow
96
-
97
- - Spec workflow: ${plan.specWorkflow.label} ${plan.framework.version}
98
- - AI coding agents: ${agents}
99
- ${openSpecGuidance ? `${openSpecGuidance}\n` : ''}
100
- - Microsoft Code Apps preview plugin: ${plan.codeAppsPlugin ? 'requested' : 'not requested'}
101
-
102
- ## Quality checks
103
-
104
- The setup baseline is local only:
105
-
106
- \`\`\`bash
107
- npm run lint
108
- npm run build
109
- liftoff validate
110
- liftoff doctor
111
- \`\`\`
112
-
113
- Backend tests, frontend subproject builds, Docker Compose validation, OpenTofu
114
- format/init/validate, and API DAST are inapplicable because this generated
115
- workload has no Liftoff backend, \`frontend/\`, \`docker-compose.yml\`, or
116
- \`infrastructure/opentofu/azure\`. Setup does not run a live plan or apply, start
117
- containers, deploy, mutate GitHub, or ask for cloud credentials. Commit/push and
118
- Power Platform binding remain explicit; normal OpenSpec or Spec Kit feature and
119
- release work follows after the seed is archived.
120
-
121
- ## Liftoff maintenance
122
-
123
- \`liftoff upgrade --check\` and \`liftoff upgrade\` replace only a supported global Liftoff CLI installation. They do not modify this project. \`liftoff update --check\` and \`liftoff update\` maintain only explicit Liftoff core files.
124
-
125
- The Power Apps starter, package metadata, lockfile, source, assets, and this README are project-owned after generation. No update mode, including \`--force\`, replaces them. Adopting a newer packaged starter is a separately reviewed project migration; the existing non-Liftoff \`migrate\` command does not perform an in-place upgrade.
126
-
127
- For an existing OpenSpec project, change workflow delivery with \`openspec config profile\` and refresh framework-owned files with \`openspec update\`. Plain \`liftoff update\` does not regenerate OpenSpec integrations.
128
-
129
- ${governanceGuidance}
130
- ${pluginGuidance}
131
- ## Source
132
-
133
- - Repository: ${plan.starter.repository}
134
- - Template: \`${plan.starter.path}\`
135
- - Commit: \`${plan.starter.commit}\`
136
- - License: MIT; see \`THIRD_PARTY_NOTICES.md\`
137
- `;
138
- }
139
- function renderAttribution(plan) {
140
- return `# Third-party notices
141
-
142
- ## Microsoft PowerAppsCodeApps starter
143
-
144
- This project includes files derived from:
145
-
146
- - Repository: ${plan.starter.repository}
147
- - Path: \`${plan.starter.path}\`
148
- - Commit: \`${plan.starter.commit}\`
149
- - License: MIT
150
-
151
- Liftoff replaces the starter package name, supplies a deterministic generated lockfile, adjusts
152
- the lint command for starter modules that intentionally export shared variants or context, and
153
- replaces the starter README with workload and environment-binding guidance. Other starter files
154
- are packaged byte-for-byte from the recorded commit.
155
-
156
- ${readPowerAppsStarterLicense().trimEnd()}
157
- `;
158
- }
159
- export function addPowerAppsCodeAppArtifacts(add, plan) {
160
- for (const asset of powerAppsStarterCatalog.files) {
161
- const source = readPowerAppsStarterAsset(asset);
162
- const content = asset.logicalName === 'power-apps-package'
163
- ? renderPackageJson(source, plan.packageName)
164
- : asset.logicalName === 'power-apps-lock'
165
- ? renderPackageLock(source, plan.packageName)
166
- : asset.logicalName === 'power-apps-readme'
167
- ? renderReadme(plan)
168
- : source;
169
- add(asset.logicalName, 'power-apps-starter', asset.pathParts, content);
170
- }
171
- add('power-apps-attribution', 'documentation', ['THIRD_PARTY_NOTICES.md'], renderAttribution(plan));
172
- }
173
- //# sourceMappingURL=power-apps-templates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"power-apps-templates.js","sourceRoot":"","sources":["../src/power-apps-templates.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare function verifyPowerAppsPackageMetadata(projectRoot: string): Promise<string[]>;