@msn-control/liftoff 0.4.1 → 0.5.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 (112) hide show
  1. package/README.md +65 -256
  2. package/assets/locks/frontend/package-lock.json +224 -168
  3. package/assets/locks/frontend/package.json +1 -1
  4. package/assets/locks/node-backend/package-lock.json +85 -31
  5. package/assets/locks/node-backend/package.json +1 -1
  6. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/UPSTREAM_LICENSE.txt +21 -0
  7. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/catalog.json +520 -0
  8. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/packaged/gitignore +27 -0
  9. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/README.md +25 -0
  10. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/components.json +22 -0
  11. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/eslint.config.js +23 -0
  12. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/index.html +13 -0
  13. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package-lock.json +6597 -0
  14. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package.json +60 -0
  15. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/public/power-apps.svg +55 -0
  16. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/App.tsx +17 -0
  17. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/assets/react.svg +1 -0
  18. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/mode-toggle.tsx +37 -0
  19. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/badge.tsx +46 -0
  20. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/button.tsx +60 -0
  21. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/calendar.tsx +211 -0
  22. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/card.tsx +92 -0
  23. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/chart.tsx +355 -0
  24. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/checkbox.tsx +32 -0
  25. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/command.tsx +184 -0
  26. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/dialog.tsx +141 -0
  27. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/dropdown-menu.tsx +257 -0
  28. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/input.tsx +21 -0
  29. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/label.tsx +22 -0
  30. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/popover.tsx +46 -0
  31. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/progress.tsx +29 -0
  32. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/select.tsx +185 -0
  33. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/separator.tsx +26 -0
  34. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/skeleton.tsx +13 -0
  35. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/table.tsx +114 -0
  36. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/tabs.tsx +66 -0
  37. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/textarea.tsx +18 -0
  38. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/tooltip.tsx +61 -0
  39. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/hooks/use-theme.ts +11 -0
  40. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/index.css +131 -0
  41. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/lib/utils.ts +6 -0
  42. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/main.tsx +10 -0
  43. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/_layout.tsx +31 -0
  44. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/home.tsx +59 -0
  45. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/not-found.tsx +14 -0
  46. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/query-provider.tsx +26 -0
  47. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/sonner-provider.tsx +23 -0
  48. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/theme-provider.tsx +64 -0
  49. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/router.tsx +24 -0
  50. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.app.json +34 -0
  51. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.json +13 -0
  52. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.node.json +26 -0
  53. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/vite.config.ts +19 -0
  54. package/assets/power-apps-code-app/README.md +27 -0
  55. package/dist/args.js +7 -1
  56. package/dist/args.js.map +1 -1
  57. package/dist/catalogs.d.ts +3 -1
  58. package/dist/catalogs.js +23 -0
  59. package/dist/catalogs.js.map +1 -1
  60. package/dist/code-apps-plugin.d.ts +13 -0
  61. package/dist/code-apps-plugin.js +69 -0
  62. package/dist/code-apps-plugin.js.map +1 -0
  63. package/dist/commands.js +282 -55
  64. package/dist/commands.js.map +1 -1
  65. package/dist/file-system.d.ts +16 -1
  66. package/dist/file-system.js +320 -10
  67. package/dist/file-system.js.map +1 -1
  68. package/dist/genai-templates.d.ts +6 -6
  69. package/dist/genai-templates.js +0 -3
  70. package/dist/genai-templates.js.map +1 -1
  71. package/dist/interactive.d.ts +40 -3
  72. package/dist/interactive.js +180 -24
  73. package/dist/interactive.js.map +1 -1
  74. package/dist/migrate-plan.d.ts +4 -4
  75. package/dist/migrate-plan.js +1 -1
  76. package/dist/migrate-plan.js.map +1 -1
  77. package/dist/planner.js +177 -40
  78. package/dist/planner.js.map +1 -1
  79. package/dist/power-apps-assets.d.ts +30 -0
  80. package/dist/power-apps-assets.js +131 -0
  81. package/dist/power-apps-assets.js.map +1 -0
  82. package/dist/power-apps-templates.d.ts +3 -0
  83. package/dist/power-apps-templates.js +140 -0
  84. package/dist/power-apps-templates.js.map +1 -0
  85. package/dist/power-apps-validation.d.ts +1 -0
  86. package/dist/power-apps-validation.js +79 -0
  87. package/dist/power-apps-validation.js.map +1 -0
  88. package/dist/project-dependencies.d.ts +1 -0
  89. package/dist/project-dependencies.js +12 -1
  90. package/dist/project-dependencies.js.map +1 -1
  91. package/dist/standard-templates.d.ts +4 -4
  92. package/dist/standard-templates.js.map +1 -1
  93. package/dist/templates.d.ts +2 -2
  94. package/dist/templates.js +196 -50
  95. package/dist/templates.js.map +1 -1
  96. package/dist/types.d.ts +73 -15
  97. package/dist/workstation.d.ts +10 -5
  98. package/dist/workstation.js +25 -10
  99. package/dist/workstation.js.map +1 -1
  100. package/docs/assets/liftoff-terminal.svg +33 -0
  101. package/docs/azure-deployment.md +66 -0
  102. package/docs/cli-reference.md +128 -0
  103. package/docs/configuration-and-manifests.md +102 -0
  104. package/docs/existing-repositories.md +87 -0
  105. package/docs/getting-started.md +114 -0
  106. package/docs/prerequisites.md +99 -0
  107. package/docs/project-structure.md +119 -0
  108. package/docs/safety-and-consent.md +98 -0
  109. package/docs/spec-workflows-and-agents.md +92 -0
  110. package/docs/troubleshooting.md +133 -0
  111. package/docs/workloads.md +128 -0
  112. package/package.json +10 -2
package/dist/types.d.ts CHANGED
@@ -5,7 +5,7 @@ export type SpecWorkflowId = 'openspec' | 'spec-kit';
5
5
  export type CodingAgentId = 'github-copilot' | 'claude';
6
6
  export type EnvironmentId = 'dev' | 'test' | 'prod';
7
7
  export type ScaffoldStatus = 'full' | 'foundation' | 'integration-shell';
8
- export type ProjectTypeId = 'genai' | 'standard';
8
+ export type ProjectTypeId = 'genai' | 'standard' | 'power-apps-code-app';
9
9
  export type ApiStackId = 'python-fastapi' | 'node-fastify' | 'go-huma';
10
10
  export interface ProjectTypeDefinition {
11
11
  id: ProjectTypeId;
@@ -77,9 +77,25 @@ export interface FrameworkDefinition {
77
77
  baseMarkers: string[][];
78
78
  agentMarkers: Record<CodingAgentId, string[][]>;
79
79
  }
80
+ export interface PowerAppsStarterSource {
81
+ repository: string;
82
+ path: string;
83
+ commit: string;
84
+ }
85
+ export interface CodeAppsPluginDefinition {
86
+ id: 'code-apps-preview';
87
+ label: string;
88
+ version: string;
89
+ marketplace: 'power-platform-skills';
90
+ repository: string;
91
+ path: string;
92
+ preview: true;
93
+ probes: Partial<Record<CodingAgentId, ExternalCommand>>;
94
+ }
80
95
  export interface ProjectOptions {
81
96
  projectName?: string;
82
97
  projectType?: string;
98
+ genai?: boolean;
83
99
  apiStack?: string;
84
100
  pattern?: string;
85
101
  cloud?: string;
@@ -89,30 +105,55 @@ export interface ProjectOptions {
89
105
  specWorkflow?: string;
90
106
  agents?: string[];
91
107
  defaultAgent?: string;
108
+ codeAppsPlugin?: boolean;
92
109
  configPath?: string;
93
110
  yes?: boolean;
94
111
  force?: boolean;
95
112
  installTools?: boolean;
96
113
  installDependencies?: boolean;
97
114
  }
98
- export interface ProjectPlan {
99
- projectName: string;
100
- safeProjectName: string;
101
- packageName: string;
102
- projectType: ProjectTypeDefinition;
115
+ export interface GenAiWorkloadPlan {
116
+ workload: 'genai';
103
117
  apiStack: ApiStackDefinition;
104
- pattern?: PatternDefinition;
118
+ pattern: PatternDefinition;
105
119
  provider: ProviderDefinition;
106
120
  region: RegionDefinition;
107
121
  includeFrontend: boolean;
108
122
  frontendStarter: string;
109
123
  environments: EnvironmentDefinition[];
124
+ }
125
+ export interface StandardApiWorkloadPlan {
126
+ workload: 'standard';
127
+ apiStack: ApiStackDefinition;
128
+ provider: ProviderDefinition;
129
+ region: RegionDefinition;
130
+ includeFrontend: boolean;
131
+ frontendStarter: string;
132
+ environments: EnvironmentDefinition[];
133
+ }
134
+ export interface PowerAppsCodeAppWorkloadPlan {
135
+ workload: 'power-apps-code-app';
136
+ starter: PowerAppsStarterSource;
137
+ codeAppsPlugin: boolean;
138
+ }
139
+ export type ApiWorkloadPlan = GenAiWorkloadPlan | StandardApiWorkloadPlan;
140
+ export type WorkloadPlan = ApiWorkloadPlan | PowerAppsCodeAppWorkloadPlan;
141
+ export interface ProjectPlanBase {
142
+ projectName: string;
143
+ safeProjectName: string;
144
+ packageName: string;
145
+ projectType: ProjectTypeDefinition;
110
146
  specWorkflow: SpecWorkflowDefinition;
111
147
  agents: CodingAgentDefinition[];
112
148
  defaultAgent?: CodingAgentDefinition;
113
149
  framework: FrameworkDefinition;
114
150
  approvedStack: string[];
115
151
  }
152
+ export type ProjectPlan = ProjectPlanBase & WorkloadPlan;
153
+ export type GenAiProjectPlan = ProjectPlanBase & GenAiWorkloadPlan;
154
+ export type StandardApiProjectPlan = ProjectPlanBase & StandardApiWorkloadPlan;
155
+ export type ApiProjectPlan = GenAiProjectPlan | StandardApiProjectPlan;
156
+ export type PowerAppsCodeAppProjectPlan = ProjectPlanBase & PowerAppsCodeAppWorkloadPlan;
116
157
  export interface GeneratedArtifact {
117
158
  logicalName: string;
118
159
  category: string;
@@ -125,22 +166,39 @@ export interface ManifestArtifact {
125
166
  pathParts: string[];
126
167
  contentHash: string;
127
168
  }
169
+ export interface ManifestGenAiWorkload {
170
+ kind: 'genai';
171
+ apiStack: ApiStackId;
172
+ pattern: PatternId;
173
+ cloud: ProviderId;
174
+ region: string;
175
+ frontend: boolean;
176
+ environments: EnvironmentId[];
177
+ }
178
+ export interface ManifestStandardApiWorkload {
179
+ kind: 'standard';
180
+ apiStack: ApiStackId;
181
+ cloud: ProviderId;
182
+ region: string;
183
+ frontend: boolean;
184
+ environments: EnvironmentId[];
185
+ }
186
+ export interface ManifestPowerAppsCodeAppWorkload {
187
+ kind: 'power-apps-code-app';
188
+ starter: PowerAppsStarterSource;
189
+ codeAppsPlugin: boolean;
190
+ }
191
+ export type ManifestWorkload = ManifestGenAiWorkload | ManifestStandardApiWorkload | ManifestPowerAppsCodeAppWorkload;
128
192
  export interface LiftoffManifest {
129
- artifactVersion: 2 | 3;
193
+ artifactVersion: 2 | 3 | 4;
130
194
  generatedBy: 'Mission Control Liftoff';
131
195
  liftoffVersion: string;
132
196
  project: {
133
197
  name: string;
134
- projectType: ProjectTypeId;
135
- apiStack: ApiStackId;
136
- pattern?: PatternId;
137
- cloud: ProviderId;
138
- region: string;
139
- frontend: boolean;
198
+ workload: ManifestWorkload;
140
199
  specWorkflow: SpecWorkflowId;
141
200
  agents: CodingAgentId[];
142
201
  defaultAgent?: CodingAgentId;
143
- environments: EnvironmentId[];
144
202
  };
145
203
  framework: {
146
204
  state: 'initialized' | 'legacy';
@@ -26,8 +26,16 @@ export interface RequirementProbeResult {
26
26
  notices: ReadinessNotice[];
27
27
  }
28
28
  export interface WorkstationRequirementSelection {
29
- apiStack: {
30
- id: ApiStackId;
29
+ workload: {
30
+ kind: 'genai' | 'standard';
31
+ apiStack: {
32
+ id: ApiStackId;
33
+ };
34
+ provider: {
35
+ id: ProviderId;
36
+ };
37
+ } | {
38
+ kind: 'power-apps-code-app';
31
39
  };
32
40
  specWorkflow: {
33
41
  id: SpecWorkflowId;
@@ -35,9 +43,6 @@ export interface WorkstationRequirementSelection {
35
43
  framework: {
36
44
  version: string;
37
45
  };
38
- provider: {
39
- id: ProviderId;
40
- };
41
46
  agents: Array<{
42
47
  id: CodingAgentId;
43
48
  label: string;
@@ -62,12 +62,25 @@ export function selectWorkstationRequirements(plan, options = {}) {
62
62
  ...(exactVersion ? { exactVersion } : {})
63
63
  });
64
64
  };
65
- add('node', 'Liftoff runtime', { minimumVersion: '20.19.0' });
66
- if (plan.apiStack.id === 'python-fastapi') {
67
- add('python', 'selected Python API stack', { minimumVersion: '3.12.0' });
68
- }
69
- else if (plan.apiStack.id === 'go-huma') {
70
- add('go', 'selected Go API stack', { minimumVersion: '1.23.0' });
65
+ const workload = typeof plan.workload === 'string'
66
+ ? plan.workload === 'power-apps-code-app'
67
+ ? { kind: plan.workload }
68
+ : {
69
+ kind: plan.workload,
70
+ apiStack: { id: plan.apiStack.id },
71
+ provider: { id: plan.provider.id }
72
+ }
73
+ : plan.workload;
74
+ add('node', 'Liftoff runtime', {
75
+ minimumVersion: workload.kind === 'power-apps-code-app' ? '22.12.0' : '20.19.0'
76
+ });
77
+ if (workload.kind !== 'power-apps-code-app') {
78
+ if (workload.apiStack.id === 'python-fastapi') {
79
+ add('python', 'selected Python API stack', { minimumVersion: '3.12.0' });
80
+ }
81
+ else if (workload.apiStack.id === 'go-huma') {
82
+ add('go', 'selected Go API stack', { minimumVersion: '1.23.0' });
83
+ }
71
84
  }
72
85
  if (plan.specWorkflow.id === 'openspec') {
73
86
  add('node', 'OpenSpec runtime', { minimumVersion: '20.19.0' });
@@ -82,10 +95,12 @@ export function selectWorkstationRequirements(plan, options = {}) {
82
95
  add('spec-kit', 'selected spec-driven framework', { exactVersion: plan.framework.version });
83
96
  }
84
97
  }
85
- add('docker', 'generated local development stack');
86
- add('opentofu', 'generated infrastructure');
87
- if (plan.provider.id === 'azure') {
88
- add('azure-cli', 'selected Azure cloud');
98
+ if (workload.kind !== 'power-apps-code-app') {
99
+ add('docker', 'generated local development stack');
100
+ add('opentofu', 'generated infrastructure');
101
+ if (workload.provider.id === 'azure') {
102
+ add('azure-cli', 'selected Azure cloud');
103
+ }
89
104
  }
90
105
  for (const agent of plan.agents) {
91
106
  add(agent.id, `selected ${agent.label} coding agent`);
@@ -1 +1 @@
1
- {"version":3,"file":"workstation.js","sourceRoot":"","sources":["../src/workstation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workstation.js","sourceRoot":"","sources":["../src/workstation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1000" height="560" viewBox="0 0 1000 560" role="img" aria-labelledby="title description">
2
+ <title id="title">Liftoff interactive initialization</title>
3
+ <desc id="description">A terminal preview showing workload, spec workflow, coding agent, readiness, and safe completion choices in Liftoff.</desc>
4
+ <rect width="1000" height="560" rx="18" fill="#0d1117"/>
5
+ <rect x="1" y="1" width="998" height="558" rx="17" fill="none" stroke="#6e7681" stroke-width="2"/>
6
+ <circle cx="32" cy="30" r="7" fill="#ff7b72"/>
7
+ <circle cx="56" cy="30" r="7" fill="#d29922"/>
8
+ <circle cx="80" cy="30" r="7" fill="#3fb950"/>
9
+ <text x="116" y="38" fill="#b1bac4" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="17">liftoff init</text>
10
+
11
+ <text x="42" y="94" fill="#58a6ff" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="32" font-weight="700" letter-spacing="5">LIFTOFF</text>
12
+ <text x="42" y="122" fill="#b1bac4" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="16">Project workstation and scaffold initializer</text>
13
+
14
+ <rect x="32" y="146" width="936" height="92" rx="8" fill="#161b22" stroke="#30363d"/>
15
+ <text x="52" y="176" fill="#f0f6fc" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="17" font-weight="700">Choose workload</text>
16
+ <text x="52" y="207" fill="#8c959f" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="16">[ ] GenAI application [ ] API application</text>
17
+ <text x="520" y="207" fill="#3fb950" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="16">[x] Power Apps code app</text>
18
+
19
+ <rect x="32" y="250" width="936" height="92" rx="8" fill="#161b22" stroke="#30363d"/>
20
+ <text x="52" y="280" fill="#f0f6fc" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="17" font-weight="700">Choose spec workflow</text>
21
+ <text x="52" y="311" fill="#3fb950" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="16">(*) OpenSpec</text>
22
+ <text x="235" y="311" fill="#8c959f" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="16">( ) Spec Kit</text>
23
+
24
+ <rect x="32" y="354" width="936" height="92" rx="8" fill="#161b22" stroke="#30363d"/>
25
+ <text x="52" y="384" fill="#f0f6fc" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="17" font-weight="700">Select coding agents</text>
26
+ <text x="273" y="384" fill="#b1bac4" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="14">Space toggles, Enter confirms</text>
27
+ <text x="52" y="415" fill="#3fb950" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="16">[x] GitHub Copilot</text>
28
+ <text x="322" y="415" fill="#3fb950" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="16">[x] Claude Code</text>
29
+
30
+ <text x="42" y="486" fill="#3fb950" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="17">PASS Workstation and framework ready</text>
31
+ <text x="42" y="516" fill="#3fb950" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="17">DONE Initialized the current Git root safely</text>
32
+ <text x="42" y="544" fill="#b1bac4" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="15">Next: liftoff validate &amp;&amp; liftoff doctor</text>
33
+ </svg>
@@ -0,0 +1,66 @@
1
+ # Azure deployment
2
+
3
+ Azure infrastructure is generated for GenAI and API workloads that select the
4
+ available Azure provider. Power Apps code apps use Power Platform hosting and
5
+ do not receive Liftoff-owned OpenTofu.
6
+
7
+ Liftoff generates infrastructure code but does not authenticate, plan, or apply
8
+ it. Review all files and use your organization's delivery controls.
9
+
10
+ ## OpenTofu layout
11
+
12
+ Generated API projects place Azure modules and environment tfvars under:
13
+
14
+ ```text
15
+ infrastructure/opentofu/azure/
16
+ ```
17
+
18
+ `liftoff infra` prints the applicable OpenTofu commands; it does not execute
19
+ them.
20
+
21
+ ## Globally scoped names
22
+
23
+ Each environment tfvars file has a deterministic 12-character lowercase
24
+ alphanumeric `resource_suffix` for globally scoped Azure names.
25
+
26
+ If Azure reports a collision, replace that environment's suffix with another
27
+ unique value matching:
28
+
29
+ ```text
30
+ ^[a-z0-9]{12}$
31
+ ```
32
+
33
+ Generated validation rejects an invalid override.
34
+
35
+ ## Worker-enabled projects
36
+
37
+ Worker-enabled GenAI projects:
38
+
39
+ - Configure `ServiceBusConnection__fullyQualifiedNamespace`.
40
+ - Configure `ServiceBusConnection__clientId` for the attached user-assigned
41
+ managed identity.
42
+ - Grant that identity's principal the Azure Service Bus Data Receiver role.
43
+ - Use `function_worker_queue_name` for the provisioned queue, Function setting,
44
+ and output.
45
+
46
+ Function host storage uses one complete key-backed `AzureWebJobsStorage`
47
+ configuration rather than mixed partial identity settings.
48
+
49
+ ## Frontend origins
50
+
51
+ Generated backends allow their local frontend origin by default. When
52
+ `VITE_API_BASE_URL` points to a frontend on another origin, set the
53
+ comma-separated `CORS_ALLOWED_ORIGINS` value. Generated Azure infrastructure
54
+ sets it to the deployed frontend URL.
55
+
56
+ ## Deployment boundary
57
+
58
+ Before applying infrastructure:
59
+
60
+ 1. Run `liftoff validate` and `liftoff doctor`.
61
+ 2. Install and verify OpenTofu separately.
62
+ 3. Authenticate with Azure under the intended tenant and subscription.
63
+ 4. Review tfvars, names, role assignments, networking, and state storage.
64
+ 5. Run plan through your normal review process.
65
+
66
+ Liftoff never stores Azure credentials or signs in on your behalf.
@@ -0,0 +1,128 @@
1
+ # CLI reference
2
+
3
+ Run `liftoff help` or command-specific help for the authoritative syntax:
4
+
5
+ ```bash
6
+ liftoff init --help
7
+ liftoff migrate --help
8
+ liftoff update --help
9
+ ```
10
+
11
+ Unknown flags or commands, missing values, invalid booleans, incompatible
12
+ duplicates, and extra positional arguments fail before generation.
13
+
14
+ ## Lifecycle
15
+
16
+ ```text
17
+ plan -> init or migrate -> validate and doctor -> update -> dev and infra helpers
18
+ ```
19
+
20
+ | Command | Behavior |
21
+ | --- | --- |
22
+ | `liftoff plan` | Resolves decisions and previews artifacts and requirements without side effects |
23
+ | `liftoff init [project-name]` | Initializes a named child or the exact current Git root through staged readiness and framework setup |
24
+ | `liftoff migrate <source>` | Creates a new sibling scaffold and filtered source copy without changing the source |
25
+ | `liftoff validate [project]` | Validates manifest identity, durable files, workload metadata, and framework markers |
26
+ | `liftoff doctor [project]` | Runs read-only workload-derived project and workstation diagnostics |
27
+ | `liftoff update [project]` | Reports template and configuration drift without writing |
28
+ | `liftoff update --apply` | Applies safe changes, preserves unforced conflicts, and records the resulting manifest |
29
+ | `liftoff dev` | Prints workload-appropriate local development commands; it does not execute them |
30
+ | `liftoff infra` | Prints OpenTofu guidance for API workloads and reports infrastructure as not applicable for Power Apps |
31
+ | `liftoff patterns` | Lists GenAI patterns |
32
+ | `liftoff providers` | Lists provider availability |
33
+ | `liftoff regions` | Lists available regions |
34
+ | `liftoff regions search <query>` | Searches region names and slugs |
35
+ | `liftoff --version` | Prints exactly one version line |
36
+
37
+ The former `liftoff create` command is intentionally rejected with guidance to
38
+ use `liftoff init`; there is no compatibility alias.
39
+
40
+ ## Planning and initialization options
41
+
42
+ Common noninteractive inputs include:
43
+
44
+ ```text
45
+ --type genai|standard|power-apps-code-app
46
+ --pattern <genai-pattern>
47
+ --api python|node|go
48
+ --cloud azure
49
+ --region <slug>
50
+ --frontend | --no-frontend
51
+ --environments dev,test,prod
52
+ --spec openspec|spec-kit
53
+ --agents copilot,claude
54
+ --default-agent copilot|claude
55
+ --code-apps-plugin | --no-code-apps-plugin
56
+ ```
57
+
58
+ Power Apps rejects API, pattern, cloud, region, frontend, and API environment
59
+ options rather than ignoring them.
60
+
61
+ Consent options are documented in [safety and consent](safety-and-consent.md).
62
+
63
+ ## Update modes
64
+
65
+ ```bash
66
+ liftoff update
67
+ liftoff update --json
68
+ liftoff update --apply
69
+ liftoff update --apply --force
70
+ ```
71
+
72
+ `--force` is valid only with `--apply`. It overwrites reported file conflicts;
73
+ it does not permit workload, API stack, GenAI pattern, framework, selected
74
+ agent, or user-supplied Power Apps starter identity changes.
75
+
76
+ ## JSON and exit codes
77
+
78
+ Machine-readable maintenance contracts bypass decorative presentation:
79
+
80
+ ```bash
81
+ liftoff validate --json
82
+ liftoff doctor --json
83
+ liftoff update --json
84
+ ```
85
+
86
+ Each JSON object has a top-level numeric `schemaVersion`.
87
+
88
+ Exit codes:
89
+
90
+ - `0`: success or a clean check.
91
+ - `1`: invalid input, unsafe state, or command failure.
92
+ - `2`: a read-only check found drift.
93
+
94
+ Raw installer, framework, and dependency child stdout and stderr are forwarded
95
+ unchanged.
96
+
97
+ ## Terminal layouts
98
+
99
+ Interactive `init`, `migrate`, and `plan` display the Liftoff identity before
100
+ the first question.
101
+
102
+ - TTYs at least 96 columns use the rich wordmark, Unicode sections, aligned
103
+ tables, and semantic color.
104
+ - Widths from 64 through 95 columns use a compact identity and wrapped
105
+ sections.
106
+ - Narrow or redirected output is deterministic plain text without ANSI
107
+ sequences or decorative borders.
108
+
109
+ Set `NO_COLOR=1` to keep the selected layout without ANSI color:
110
+
111
+ ```bash
112
+ NO_COLOR=1 liftoff init
113
+ liftoff doctor > readiness.txt
114
+ ```
115
+
116
+ JSON and version output never include banners or decorative layout.
117
+
118
+ ## Catalog examples
119
+
120
+ ```bash
121
+ liftoff patterns
122
+ liftoff providers
123
+ liftoff regions
124
+ liftoff regions search korea --cloud azure
125
+ ```
126
+
127
+ Azure is the available provider. AWS and GCP are listed as planned and rejected
128
+ before generation.
@@ -0,0 +1,102 @@
1
+ # Configuration and manifests
2
+
3
+ Generated projects have two Liftoff root files with different ownership.
4
+
5
+ ## `liftoff.config.json`: developer-owned desired state
6
+
7
+ Liftoff writes configuration once during initialization and does not
8
+ machine-rewrite it afterward.
9
+
10
+ Supported edits are reconciled by `liftoff update`:
11
+
12
+ - API workloads can add or remove environments and enable applicable generated
13
+ areas such as the frontend.
14
+ - Power Apps can change the optional Code Apps plugin preference.
15
+
16
+ Workload kind, API stack, GenAI pattern, spec workflow, selected agents, and a
17
+ user-supplied Power Apps starter source change are not ordinary updates.
18
+
19
+ A Power Apps configuration contains only applicable fields:
20
+
21
+ ```json
22
+ {
23
+ "projectName": "sales-hub",
24
+ "projectType": "power-apps-code-app",
25
+ "specWorkflow": "openspec",
26
+ "agents": ["github-copilot"],
27
+ "codeAppsPlugin": false
28
+ }
29
+ ```
30
+
31
+ API, cloud, region, frontend, and environment fields are rejected for this
32
+ workload rather than silently ignored.
33
+
34
+ ## `liftoff.manifest.json`: CLI-owned compatibility record
35
+
36
+ New projects use manifest schema v4. Its common project identity includes the
37
+ name, spec workflow, selected agents, and applicable Spec Kit default. A
38
+ discriminated `project.workload` object contains only fields valid for one
39
+ workload:
40
+
41
+ - `genai`: API stack, pattern, cloud, region, frontend, and environments.
42
+ - `standard`: API stack, cloud, region, frontend, and environments.
43
+ - `power-apps-code-app`: immutable starter repository, template path, commit,
44
+ and Code Apps plugin preference.
45
+
46
+ The manifest also records:
47
+
48
+ - Generating Liftoff version.
49
+ - Official framework adapter, state, and tested contract version when known.
50
+ - Durable artifact logical names.
51
+ - OS-neutral path-part arrays.
52
+ - `sha256:` content hashes.
53
+
54
+ Power Apps source identity uses explicit repository, path, and 40-character
55
+ commit fields. It is not inferred from mutable URLs or generated file paths.
56
+
57
+ Treat the manifest as CLI-owned. Restore it from version control or regenerate
58
+ with the matching Liftoff version when validation reports malformed identity,
59
+ paths, or hashes.
60
+
61
+ ## Compatibility
62
+
63
+ Readers support schemas v2, v3, and v4:
64
+
65
+ - V2 normalizes the legacy flat API identity and records framework state as
66
+ uncertain without inventing agents.
67
+ - V3 normalizes flat GenAI or API identity plus framework and agent metadata.
68
+ - V4 represents the discriminated workload model, including Power Apps.
69
+
70
+ A read-only `liftoff update` leaves an old manifest byte-for-byte unchanged. A
71
+ successful apply writes v4 only after the file transaction succeeds. Skipped
72
+ conflicts retain their recorded hashes.
73
+
74
+ ## Artifact ownership
75
+
76
+ Durable Liftoff artifacts carry logical names and hashes. That lets validate,
77
+ doctor, and update distinguish:
78
+
79
+ - Current template bytes.
80
+ - An untouched file with a template upgrade.
81
+ - A developer edit that conflicts with a template change.
82
+ - A named artifact moved by the template.
83
+ - Missing, new, and orphaned artifacts.
84
+
85
+ Framework-owned OpenSpec and Spec Kit files are validated separately and are
86
+ not claimed in durable hashes. One-time seed files are also excluded so they
87
+ can follow their own lifecycle.
88
+
89
+ ## Contract conventions
90
+
91
+ - Writers use `artifactVersion` 4; readers support v2, v3, and v4.
92
+ - Artifact logical names and catalog identifiers are append-only.
93
+ - Rendering is deterministic and does not depend on timestamps, host versions,
94
+ or network state.
95
+ - `.liftoff/` is reserved for future CLI-managed state.
96
+ - Machine-readable paths are path-part arrays, never platform-joined strings.
97
+ - Exit codes are 0 for success or clean, 1 for failure, and 2 for detected
98
+ drift in check mode.
99
+ - JSON outputs carry a numeric top-level `schemaVersion`.
100
+
101
+ See [safety and consent](safety-and-consent.md) for reconciliation and rollback
102
+ behavior.