@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
@@ -5,7 +5,7 @@
5
5
  Check the canonical release:
6
6
 
7
7
  ```bash
8
- npm view @msn-control/liftoff@latest version --registry=https://registry.npmjs.org
8
+ npm view @msn-control/liftoff@latest version --registry=https://registry.npmjs.org --@msn-control:registry=https://registry.npmjs.org
9
9
  liftoff --version
10
10
  liftoff upgrade --check
11
11
  liftoff upgrade
@@ -21,7 +21,7 @@ that version supported.
21
21
  Versions that predate `liftoff upgrade` require one manual global installation:
22
22
 
23
23
  ```bash
24
- npm install -g @msn-control/liftoff@latest --registry=https://registry.npmjs.org
24
+ npm install -g @msn-control/liftoff@latest
25
25
  ```
26
26
 
27
27
  ## CLI upgrade is blocked by installation origin
@@ -38,6 +38,14 @@ Canonical npm defines the exact stable target, but Liftoff installs through the
38
38
  configured registry. Ask the mirror owner to synchronize or approve that exact
39
39
  version, then rerun `liftoff upgrade --check`. Liftoff does not edit `.npmrc` or
40
40
  bypass the managed registry.
41
+ The package's machine-level `@msn-control:registry` takes precedence over npm's
42
+ default `registry`. A canonical default does not cancel a scoped mirror.
43
+ Liftoff reads this configuration from a neutral directory, not a project's
44
+ `.npmrc`, and never prints credential-bearing registry values.
45
+
46
+ A response-body timeout is a transport failure, not invalid release metadata.
47
+ Retry after connectivity is restored; do not change registry policy or regenerate
48
+ project locks to work around it.
41
49
 
42
50
  ## npm cannot write the global prefix
43
51
 
@@ -168,7 +176,7 @@ unrecorded conflicting file remains user-owned and is not reported as an
168
176
  orphan.
169
177
 
170
178
  If a newer Liftoff release contains different source, dependencies, schemas,
171
- containers, environment files, Power Apps starter files, or infrastructure,
179
+ containers, environment files, or infrastructure,
172
180
  ordinary update intentionally reports nothing for those project-owned
173
181
  differences. Review and migrate them as production changes. The existing
174
182
  `liftoff migrate` command does not perform an in-place Liftoff project upgrade.
@@ -189,8 +197,9 @@ the existing project files and infrastructure are project-owned.
189
197
 
190
198
  That is the expected initial state. The manifest records `handoff-generated`,
191
199
  not active enforcement. Run `/liftoff-setup` from a selected agent. It first
192
- completes, syncs, and archives the generated bootstrap seed with local baseline
193
- checks, then stops at explicit authority gates for commit/push, credentials,
200
+ completes, syncs, and archives the OpenSpec bootstrap, or finalizes Spec Kit's
201
+ real `000-liftoff-bootstrap` bundle locally after baseline checks. It then stops
202
+ at explicit authority gates for commit/push, credentials,
194
203
  billed infrastructure or exceptions, final enforcement, destructive cleanup, or
195
204
  external blockers. Rerun `/liftoff-setup` to resume; verified phases are not
196
205
  repeated. Older generated setup aliases are retired; after review,
@@ -205,14 +214,20 @@ policy's repository-dedicated provisioning exception, but it must stop for
205
214
  explicit approval before creating any Azure or GitHub resource. Do not replace
206
215
  missing capability with duplicate scanners, partial provisioning, or
207
216
  placeholder success.
217
+ These are target-policy requirements; 14 production phases lack executors and
218
+ two ruleset phases require an injected adapter absent from the public CLI.
219
+ Public approval persistence and credential enrollment also remain unavailable.
220
+ An unavailable executor or authority entry point is a blocker, not an instruction
221
+ to run its provider commands directly.
208
222
 
209
223
  If a private ZRS state backend cannot be reached because public network access
210
224
  is disabled and no approved private management path exists, do not enable
211
- public access or upload local state to GitHub. Use the policy's explicitly
212
- approved minimum `bootstrap-local` phase, adopt resources through declarative
225
+ public access or upload local state to GitHub. The target policy requires an
226
+ explicitly approved minimum `bootstrap-local` phase, adoption through declarative
213
227
  imports from the private runner, verify identity parity, locking, versioning,
214
228
  and a clean no-change plan, then retain the frozen local state read-only for 30
215
- days before secure deletion.
229
+ days before secure deletion. That production adapter is not implemented by this
230
+ release; stop at the capability blocker and plan separately reviewed platform work.
216
231
 
217
232
  If an Azure bootstrap fails with a namespace-not-registered error while
218
233
  `resource_provider_registrations = "none"` is configured, do not retry the same
@@ -239,23 +254,23 @@ or allow TCP and UDP 53 to exact custom resolver addresses.
239
254
 
240
255
  | State | Remedy |
241
256
  | --- | --- |
242
- | `seed-incomplete` | Run `/liftoff-setup`; fix failing local baseline checks and rerun until the seed is archived. |
243
- | `phase-blocked` | Read the blocking phase, evidence requirement, and approval gate; satisfy the named prerequisite rather than skipping it. |
244
- | `evidence-stale` | Regenerate evidence from the current baseline, activation identity, graph hash, and phase input digest. |
257
+ | `seed-incomplete` | Repair local checks, then explicitly retry the supported seed phase. OpenSpec archives; Spec Kit finalizes its real bundle locally. |
258
+ | `phase-blocked` | Read the phase, proof, and authority blocker; unavailable production or enrollment capabilities remain blocked. |
259
+ | `evidence-stale` | Obtain fresh proof through supported, authorized execution from current inputs; never edit receipts or reuse stale headers as current inputs. |
245
260
  | `credential-expiring` | Rotate before the recorded lead time using the same App or PAT policy. |
246
- | `reconciliation-required` | Review the policy/contract/schema/graph change and acknowledge the current compatible identity before applying another phase. |
247
- | `identity-incompatible` | Upgrade to the reported minimum Liftoff version or provide an explicit supported migration/import mapping. |
261
+ | `reconciliation-required` | Review the precise identity/input diagnostic. Historical v1 has no public reconciliation workflow; preserve its bytes rather than acknowledging a new identity by editing JSON. |
262
+ | `identity-incompatible` | Upgrade when the supported tuple requires a newer CLI. Unknown or historical tuples cannot be made executable with force or invented mappings. |
248
263
  | `enforcement-incomplete` | Prove exact required contexts green and deliberately red, then approve final enforcement before ruleset mutation. |
249
- | `disposal-pending` | After day 30, approve destructive disposal of retained bootstrap state and rerun setup. |
264
+ | `disposal-pending` | Review retention, exact imported paths, destructive scope, and proof. Execution requires valid authority; there is no public approval-entry shortcut. |
250
265
 
251
266
  Do not hand-edit task checkboxes to clear these states. Tasks are projections of
252
267
  validated phase evidence.
253
268
 
254
269
  ## Runner-preflight credential setup is blocked
255
270
 
256
- Setup first prefers an existing verified selected-repository GitHub App with the
257
- required read permissions. If none is available, create one fine-grained PAT with
258
- exactly these fields: display name `<repo>-runner-preflight-read`, secret
271
+ The policy prefers an existing verified selected-repository GitHub App with the
272
+ required read permissions. Its fallback contract describes a fine-grained PAT
273
+ with these fields: display name `<repo>-runner-preflight-read`, secret
259
274
  `RUNNER_CONFIGURATION_READ_TOKEN`, 30-day lifetime, current repository only,
260
275
  repository metadata read, organization hosted-runner read and
261
276
  network-configuration read, no writes, and the recorded workflow/job allowlist
@@ -264,24 +279,81 @@ network-configuration read, no writes, and the recorded workflow/job allowlist
264
279
  `private-dast-preflight` unless the generated policy records a narrower
265
280
  applicable set).
266
281
 
267
- Enter the value only through the masked input. Never paste or show the value in
268
- chat, argv, command arguments, logs, evidence, files, or screenshots. A leaked value is
269
- compromised; manually revoke it, create a replacement, update the repository
270
- secret through setup, and rerun `liftoff governance verify --json`.
282
+ This release does not expose public credential enrollment or masked input.
283
+ Do not create or submit a credential through an invented setup channel, and do
284
+ not hand-write state or receipts to bypass the capability blocker. Never paste
285
+ or show the value in chat, argv, command arguments, logs, evidence, files, or
286
+ screenshots. Revoke and rotate leaked credentials through their owner-controlled
287
+ system. A payload-free policy file alone is not independent readback evidence.
271
288
 
272
289
  ## Governance identity or manifest migration is blocked
273
290
 
274
291
  Current Liftoff reads manifest v2-v7 and writes v7. It resumes only explicit
275
- compatible tuples: policy version 6, activation contract 1, schema-v1 activation
276
- artifacts, and a recognized phase-graph hash. Future versions, individually
292
+ compatible tuples: policy version 6, activation contract 2, state/evidence-header/
293
+ approval/compatibility metadata versions 2, and a recognized phase-graph hash.
294
+ Phase graph, supersession, and credential-policy schemas stay at 1.
295
+ Future versions, individually
277
296
  known but unsupported combinations, unknown graph hashes, or unversioned ad hoc
278
297
  state block without rewriting files. Use the exact upgrade, import-mapping, or
279
- reconciliation remedy printed by status or update; do not downgrade the
280
- manifest or copy evidence between identities.
298
+ reconciliation diagnostic printed by status or update; do not downgrade the
299
+ manifest or copy evidence between identities. Historical v1 state and evidence
300
+ remain diagnostic-only and byte-preserved. This release has no automatic or
301
+ public historical-state reconciliation workflow; managed-core update does not
302
+ make that history executable.
281
303
 
282
304
  Do not run an older Liftoff release to reverse a completed baseline migration.
283
- Restore the affected generated files and `liftoff.manifest.json` through version
284
- control, then reinstall from the restored locks.
305
+ Restore separately reviewed project changes through version control and reinstall
306
+ from the restored locks; do not alter immutable activation evidence to claim
307
+ compatibility.
308
+
309
+ ## Spec Kit setup reports seed adoption required
310
+
311
+ The real bundle must contain `specs/000-liftoff-bootstrap/spec.md`, `plan.md`,
312
+ and `tasks.md`, its identity markers, and B001–B006 exactly once. Framework
313
+ templates are not a substitute for project artifacts. Existing projects missing
314
+ the bundle need separate reviewed adoption; update, force, assessment, or
315
+ read-only resume will not create it. Never invent an OpenSpec archive or Git
316
+ branch to make Spec Kit setup pass.
317
+
318
+ ## Infrastructure helpers or baseline report migration required
319
+
320
+ Independent roots require exact recorded shared-module/root provenance and safe
321
+ existing module files. Creating folders alone, changing tfvars paths, or updating
322
+ managed governance context does not establish eligibility. Existing flat-root
323
+ provenance remains unchanged after the explicit new-output-only retirement.
324
+ Do not move state or force new roots into place to clear the result; plan a
325
+ separate reviewed migration.
326
+
327
+ ## Native startup rejects configuration or appears to ignore the file
328
+
329
+ Python and Node read root `.env`; Python backend-CWD startup still resolves that
330
+ same file. Go's backend-CWD recipe reads `../runtime.config.json`. Use
331
+ `LIFTOFF_ENV_FILE` for an explicit selection, relative to the startup directory
332
+ unless absolute. Process values override the file, and settings are resolved
333
+ once, so restart after edits.
334
+
335
+ An explicit missing, unreadable, malformed, invalid-UTF-8, or NUL-containing
336
+ dotenv file fails rather than falling back. Fix `KEY=value` syntax and balanced
337
+ quotes; Node rejects escaped quote delimiters, so use the other quote style.
338
+ Go requires valid JSON with string values, not null or numeric values.
339
+ Do not source configuration as shell code. An absent default file is allowed
340
+ only when the required settings come from process configuration.
341
+
342
+ For offline `/health`, `/ready`, and `/openapi.json` probes, provide
343
+ `DATABASE_URL` and `REDIS_URL` but leave `PYDANTIC_AI_MODEL`,
344
+ `LANGFUSE_PUBLIC_KEY`, and `LANGFUSE_SECRET_KEY` blank. These probes do not
345
+ contact a model or prove external-service health. `PYDANTIC_AI_MODEL=test` is
346
+ not a supported model provider; no special test-model flag is needed.
347
+
348
+ See [runtime recipes](configuration-and-manifests.md#application-runtime-configuration).
349
+
350
+ ## A locally prepared container build includes host files
351
+
352
+ Keep the generated root and frontend `.dockerignore` files in their respective
353
+ build contexts. They exclude host `.venv`, `node_modules`, caches, build output,
354
+ VCS metadata, state, and local secrets. Function publication uses its own
355
+ `.funcignore`. If those project-owned files were changed or removed, repair them
356
+ through reviewed project work; update or force cannot restore them.
285
357
 
286
358
  ## A frozen Python install cannot reach the package index
287
359
 
@@ -299,30 +371,16 @@ docker build --build-arg UV_DEFAULT_INDEX=https://packages.example.test/simple/
299
371
  Do not place credentials in build arguments. Configure authenticated registries
300
372
  through an approved secret-aware build mechanism.
301
373
 
302
- ## Power Apps dependencies or CLI are missing
303
-
304
- From the project root:
305
-
306
- ```bash
307
- npm ci
308
- npx --no-install power-apps --version
309
- npm run dev
310
- ```
374
+ ## Power Apps workload or Code Apps options are rejected
311
375
 
312
- The CLI is project-local. Do not replace the locked install with an unrelated
313
- global package.
314
-
315
- ## The Code Apps plugin is missing or not observable
316
-
317
- Plugin state is advisory. In each selected agent session, use:
318
-
319
- ```text
320
- /plugin marketplace add microsoft/power-platform-skills
321
- /plugin install code-apps-preview@power-platform-skills
322
- ```
376
+ Power Apps creation and existing-project support are retired. The workload and
377
+ plugin options now fail explicitly; this is not a missing dependency or an
378
+ installation problem.
323
379
 
324
- Then rerun `liftoff doctor`. Do not run `/create-code-app` in a Liftoff project.
325
- Liftoff does not run Microsoft's broad plugin installer.
380
+ The rejection leaves application files, dependencies, framework files, and
381
+ historical state unchanged. Do not change the manifest's workload identity, hide
382
+ it to trigger another discovery path, or use force to bypass retirement. This
383
+ CLI provides no automatic conversion or continued Power Apps maintenance lane.
326
384
 
327
385
  ## Terminal output is hard to read or being captured
328
386
 
package/docs/workloads.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Workloads
2
2
 
3
+ Liftoff generates starter projects and governance definitions, not a blanket
4
+ production-readiness guarantee. Catalog scaffold labels and complete file
5
+ generation do not prove every GenAI behavior, worker deployment, authentication,
6
+ private-network path, or operational safeguard is implemented. Review the
7
+ [documented capability follow-ups](../DEVELOPER.md#broader-audit-follow-ups)
8
+ before deploying generated applications unchanged.
9
+
3
10
  Liftoff asks for one workload first, then routes only the questions,
4
11
  prerequisites, generated artifacts, and maintenance checks that apply to it.
5
12
 
@@ -7,12 +14,13 @@ prerequisites, generated artifacts, and maintenance checks that apply to it.
7
14
 
8
15
  | Workload | Primary choices | Required runtime | Liftoff-generated platform areas |
9
16
  | --- | --- | --- | --- |
10
- | GenAI application | Pattern, Azure region, environments, optional frontend | Python 3.14, `uv` 0.12.7+, and Node.js 24.20+ | API, orchestration, data, messaging, Docker, Azure OpenTofu |
11
- | API application | Python 3.14, Node.js 24, or Go 1.27 API stack; Azure region; environments; optional frontend | Selected API runtime and Node.js 24.20+ | API, data, Docker, Azure OpenTofu |
12
- | Power Apps code app | Spec workflow, agents, optional Code Apps plugin | Node.js 24.20+ | Official React/Vite starter and project-local Power Apps tooling |
17
+ | GenAI application | Pattern, Azure region, environments, optional frontend | Python 3.14.x, `uv` 0.12.x, and Node.js 24.20+ within 24 LTS | API, orchestration, data, messaging, Docker, Azure OpenTofu |
18
+ | API application | Python 3.14, Node.js 24, or Go 1.27 API stack; Azure region; environments; optional frontend | Selected supported API release line and Node.js 24.20+ within 24 LTS | API, data, Docker, Azure OpenTofu |
13
19
 
14
- All three workloads continue into the common OpenSpec or Spec Kit and coding
20
+ Both workloads continue into the common OpenSpec or Spec Kit and coding
15
21
  agent flow and the default local repository-governance handoff.
22
+ Required package managers are separate prerequisites: npm 12.x at 12.0.2 or
23
+ newer is required for Node.js dependencies, the optional frontend, or OpenSpec.
16
24
 
17
25
  ## GenAI application
18
26
 
@@ -55,6 +63,33 @@ tools, streaming adapters, fine-tuning datasets, or workflow structures.
55
63
  Specializing it later is reviewed project migration work; `liftoff update` and
56
64
  `--force` cannot convert project-owned application files.
57
65
 
66
+ ### Pattern capability limits
67
+
68
+ All nine identifiers remain available and have `foundation` maturity.
69
+ That label describes starter boundaries, not a completed specialized application.
70
+
71
+ | Pattern ID | Existing boundary | Deliberately not implemented |
72
+ | --- | --- | --- |
73
+ | `generic` | Neutral model invocation | Retrieval, pgvector, workers, or other specialization |
74
+ | `rag` | Model-only answers, configured ingestion publication, pgvector/worker extension points | Retrieval, citations, embeddings, indexing, and grounded RAG answers |
75
+ | `chatbot` | Single-turn model invocation | Persisted conversation history and memory |
76
+ | `agent` | Model invocation and worker extension points | Tool execution and task automation |
77
+ | `prompt` | Invocation and prompt artifacts | Loading named prompt files into the model call |
78
+ | `multi-agent` | Single-model invocation and worker extension points | Multi-agent coordination |
79
+ | `fine-tuned` | Configured-model invocation and sample evaluation dataset | Fine-tuning and evaluation execution |
80
+ | `streaming` | One completed model response wrapped as buffered SSE | Incremental token streaming |
81
+ | `workflow` | Invocation and worker extension points | Workflow stages and durable pipeline execution |
82
+
83
+ Generic's default Python `pyproject.toml` and `uv.lock` have no `pgvector`
84
+ dependency. Only RAG requests the pgvector database extension/image; generic
85
+ has no application worker. The optional Langfuse observability-profile worker
86
+ is not application-worker specialization. Generated Function triggers log
87
+ message keys rather than implementing indexing or orchestration.
88
+
89
+ See [runtime configuration](configuration-and-manifests.md#application-runtime-configuration)
90
+ for Python/Node dotenv, Go JSON, explicit-file validation, and native/Compose
91
+ recipes. No API stack inherits GenAI-only model or tracing credentials.
92
+
58
93
  ## API application
59
94
 
60
95
  ### Questions
@@ -81,71 +116,27 @@ Specializing it later is reviewed project migration work; `liftoff update` and
81
116
  Service secrets, cloud authentication, external integrations, and deployment
82
117
  remain explicit developer or delivery-pipeline actions.
83
118
 
84
- ## Power Apps code app
85
-
86
- Power Apps uses an immutable, packaged snapshot of Microsoft's official
87
- [`PowerAppsCodeApps/templates/starter`](https://github.com/microsoft/PowerAppsCodeApps/tree/main/templates/starter).
88
- Initialization and update do not fetch the mutable upstream branch.
89
-
90
- ### Questions
91
-
92
- - Project name.
93
- - OpenSpec or Spec Kit.
94
- - GitHub Copilot, Claude Code, or both.
95
- - Spec Kit default agent when both are selected.
96
- - Whether to request the optional Microsoft Code Apps agent plugin
97
- (Preview).
98
-
99
- Power Apps does not ask for an API stack, GenAI pattern, cloud, region, API
100
- environment, API frontend, Docker, or OpenTofu selection.
101
-
102
- ### Generated output
103
-
104
- - React, Vite, TypeScript, Tailwind, and the Power Apps SDK and Vite plugin.
105
- - Locked root `package.json` and `package-lock.json`.
106
- - Project-local `power-apps` CLI supplied by the generated dependency graph.
107
- - `liftoff.config.json`, manifest-v7 `liftoff.manifest.json`, starter provenance,
108
- and third-party attribution.
109
- - Official OpenSpec or Spec Kit output and every selected agent marker.
110
- - The common local governance policy and selected-agent `/liftoff-setup` integration, with backend,
111
- container, OpenTofu, custom deployment, and API DAST controls marked
112
- inapplicable.
113
-
114
- Liftoff does not create an API backend, `docker-compose.yml`,
115
- `infrastructure/`, API environments, or an environment-bound
116
- `power.config.json` for this workload.
117
-
118
- ### Deferred actions
119
-
120
- After initialization:
121
-
122
- ```bash
123
- npm ci
124
- npm run dev
125
- npx --no-install power-apps --version
126
- ```
127
-
128
- Environment binding, connector creation, authentication, and deployment remain
129
- outside initialization. Follow Microsoft's current Code Apps documentation
130
- before running `power-apps init` or `power-apps push`.
131
-
132
- If the optional Code Apps plugin was requested, install only the targeted
133
- plugin from an agent session:
119
+ ## Retired Power Apps workload
134
120
 
135
- ```text
136
- /plugin marketplace add microsoft/power-platform-skills
137
- /plugin install code-apps-preview@power-platform-skills
138
- ```
121
+ Power Apps code apps and the Code Apps preview-plugin integration are no longer
122
+ supported. The retired `power-apps-code-app` type and plugin options are rejected
123
+ before preparation or generation.
139
124
 
140
- Do not run `/create-code-app` inside the generated project; Liftoff already
141
- created the application.
125
+ Existing Power Apps manifests are also rejected, including by update, force,
126
+ doctor, and governance assessment. Liftoff does not convert the project, delete
127
+ application files, update its dependencies, or fall back to a different workload.
128
+ Existing Power Platform applications and machine-wide tooling remain under
129
+ their owners' control outside Liftoff.
142
130
 
143
131
  ## Change workload later
144
132
 
145
133
  `liftoff update` maintains explicit Liftoff core files and can provision a
146
134
  previously absent frontend or environment once after a corresponding desired
147
- state edit. It does not convert workloads, change API stacks or GenAI patterns,
148
- transition a Power Apps starter, or modernize production project templates.
135
+ state edit. New environments additionally require recorded independent-root
136
+ infrastructure; legacy or unknown shared-state layouts need reviewed migration.
137
+ It does not convert workloads, change API stacks or GenAI patterns,
138
+ or modernize production project templates. Retired workloads have no update or
139
+ automatic migration path.
149
140
 
150
141
  Plain update applies safe core changes immediately. Use `liftoff update
151
142
  --check` for read-only inspection. `--force` applies only to listed
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@msn-control/liftoff",
3
- "version": "0.10.3",
4
- "description": "Interactive CLI for governed GenAI, API, and Power Apps code app projects.",
3
+ "version": "0.11.1",
4
+ "description": "Interactive CLI for governed GenAI applications and APIs.",
5
5
  "type": "module",
6
6
  "license": "GPL-3.0-only",
7
7
  "homepage": "https://github.com/voyager163/liftoff#readme",
@@ -21,7 +21,6 @@
21
21
  "fastify",
22
22
  "golang",
23
23
  "pydanticai",
24
- "power-apps",
25
24
  "opentofu",
26
25
  "openspec",
27
26
  "mission-control"
@@ -33,7 +32,6 @@
33
32
  "dist",
34
33
  "assets/locks",
35
34
  "assets/governance",
36
- "assets/power-apps-code-app",
37
35
  "assets/supported-stack.json",
38
36
  "docs",
39
37
  "README.md",
@@ -45,18 +43,16 @@
45
43
  "provenance": true
46
44
  },
47
45
  "scripts": {
48
- "build": "tsc -p tsconfig.json",
46
+ "build": "node scripts/clean-build.mjs && tsc -p tsconfig.json",
49
47
  "test": "vitest run",
50
48
  "audit:template-dependencies": "node scripts/audit-template-dependencies.mjs",
51
49
  "refresh:supported-stack": "node scripts/refresh-supported-stack-baseline.mjs --write",
52
50
  "check:supported-stack": "node scripts/refresh-supported-stack-baseline.mjs",
53
51
  "check:supported-stack-freshness": "node scripts/check-supported-stack-freshness.mjs",
54
52
  "canonicalize:python-locks": "node scripts/canonicalize-uv-lock.mjs assets/locks/python-standard/uv.lock assets/locks/python-genai/uv.lock",
55
- "refresh:power-apps-starter": "node scripts/refresh-power-apps-starter.mjs",
56
53
  "smoke:package": "npm run build && node scripts/package-smoke-test.mjs",
57
54
  "verify:standard-node-templates": "npm run build && node scripts/verify-standard-node-templates.mjs",
58
55
  "verify:generated-containers": "npm run build && node scripts/verify-generated-containers.mjs",
59
- "verify:power-apps-starter": "npm run build && node scripts/verify-power-apps-starter.mjs",
60
56
  "verify:release-identity": "npm run build && node scripts/verify-release-identity.mjs",
61
57
  "verify:published": "npm run build && node scripts/verify-published-package.mjs",
62
58
  "check": "npm run check:supported-stack && npm run build && npm test"
@@ -74,6 +70,8 @@
74
70
  "dependencies": {
75
71
  "@inquirer/prompts": "^8.6.0",
76
72
  "cross-spawn": "^7.0.6",
77
- "picocolors": "^1.1.1"
73
+ "picocolors": "^1.1.1",
74
+ "smol-toml": "1.8.0",
75
+ "yaml": "^2.9.0"
78
76
  }
79
77
  }
@@ -1,21 +0,0 @@
1
- Copyright (c) Microsoft Corporation.
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.