@msn-control/liftoff 0.3.4 → 0.4.0
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.
- package/README.md +55 -37
- package/assets/locks/frontend/package-lock.json +2217 -0
- package/assets/locks/frontend/package.json +19 -0
- package/assets/locks/node-backend/package-lock.json +4352 -0
- package/assets/locks/node-backend/package.json +32 -0
- package/dist/args.d.ts +9 -1
- package/dist/args.js +110 -33
- package/dist/args.js.map +1 -1
- package/dist/catalogs.d.ts +10 -1
- package/dist/catalogs.js +89 -0
- package/dist/catalogs.js.map +1 -1
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +5 -0
- package/dist/commands.js +599 -115
- package/dist/commands.js.map +1 -1
- package/dist/file-system.js +89 -5
- package/dist/file-system.js.map +1 -1
- package/dist/framework-adapters.d.ts +15 -0
- package/dist/framework-adapters.js +112 -0
- package/dist/framework-adapters.js.map +1 -0
- package/dist/framework-validation.d.ts +8 -0
- package/dist/framework-validation.js +83 -0
- package/dist/framework-validation.js.map +1 -0
- package/dist/init-filesystem.d.ts +102 -0
- package/dist/init-filesystem.js +762 -0
- package/dist/init-filesystem.js.map +1 -0
- package/dist/interactive.d.ts +5 -1
- package/dist/interactive.js +75 -4
- package/dist/interactive.js.map +1 -1
- package/dist/npm-template-assets.d.ts +3 -0
- package/dist/npm-template-assets.js +32 -0
- package/dist/npm-template-assets.js.map +1 -0
- package/dist/planner.js +62 -3
- package/dist/planner.js.map +1 -1
- package/dist/process-runner.d.ts +28 -0
- package/dist/process-runner.js +80 -0
- package/dist/process-runner.js.map +1 -0
- package/dist/project-dependencies.d.ts +28 -0
- package/dist/project-dependencies.js +163 -0
- package/dist/project-dependencies.js.map +1 -0
- package/dist/reconcile.js +4 -1
- package/dist/reconcile.js.map +1 -1
- package/dist/runtime.d.ts +2 -0
- package/dist/runtime.js +9 -0
- package/dist/runtime.js.map +1 -0
- package/dist/standard-templates.js +3 -30
- package/dist/standard-templates.js.map +1 -1
- package/dist/templates.d.ts +9 -1
- package/dist/templates.js +110 -46
- package/dist/templates.js.map +1 -1
- package/dist/terminal.d.ts +32 -0
- package/dist/terminal.js +182 -0
- package/dist/terminal.js.map +1 -0
- package/dist/types.d.ts +38 -1
- package/dist/workstation-catalog.d.ts +20 -0
- package/dist/workstation-catalog.js +122 -0
- package/dist/workstation-catalog.js.map +1 -0
- package/dist/workstation.d.ts +76 -0
- package/dist/workstation.js +461 -0
- package/dist/workstation.js.map +1 -0
- package/package.json +8 -2
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { formatCommand } from './process-runner.js';
|
|
5
|
+
import { readProjectFile, writeProjectFile } from './file-system.js';
|
|
6
|
+
function npmExecutable(platform) {
|
|
7
|
+
return platform === 'win32' ? 'npm.cmd' : 'npm';
|
|
8
|
+
}
|
|
9
|
+
function pythonCommand(probes) {
|
|
10
|
+
const python = probes.find((probe) => probe.requirement.id === 'python' && probe.state === 'ready');
|
|
11
|
+
const executable = python?.detectedBy ?? (process.platform === 'win32' ? 'py' : 'python3');
|
|
12
|
+
return {
|
|
13
|
+
executable,
|
|
14
|
+
prefixArgs: executable === 'py' ? ['-3'] : []
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function buildDependencySetupPlan(plan, projectRoot, probes, platform = process.platform) {
|
|
18
|
+
const commands = [];
|
|
19
|
+
const protectedPaths = [];
|
|
20
|
+
if (plan.apiStack.id === 'python-fastapi') {
|
|
21
|
+
const python = pythonCommand(probes);
|
|
22
|
+
const virtualPython = platform === 'win32'
|
|
23
|
+
? path.join(projectRoot, '.venv', 'Scripts', 'python.exe')
|
|
24
|
+
: path.join(projectRoot, '.venv', 'bin', 'python');
|
|
25
|
+
commands.push({
|
|
26
|
+
id: 'python-venv',
|
|
27
|
+
label: 'Create project Python virtual environment',
|
|
28
|
+
command: {
|
|
29
|
+
executable: python.executable,
|
|
30
|
+
args: [...python.prefixArgs, '-m', 'venv', '.venv']
|
|
31
|
+
},
|
|
32
|
+
cwd: projectRoot
|
|
33
|
+
}, {
|
|
34
|
+
id: 'python-backend',
|
|
35
|
+
label: 'Install backend Python dependencies',
|
|
36
|
+
command: {
|
|
37
|
+
executable: virtualPython,
|
|
38
|
+
args: ['-m', 'pip', 'install', '-e', './backend[test]']
|
|
39
|
+
},
|
|
40
|
+
cwd: projectRoot
|
|
41
|
+
});
|
|
42
|
+
protectedPaths.push(['backend', 'pyproject.toml']);
|
|
43
|
+
if (plan.projectType.id === 'genai' && plan.pattern?.worker) {
|
|
44
|
+
const requirements = ['functions', `${plan.pattern.id}-worker`, 'requirements.txt'];
|
|
45
|
+
commands.push({
|
|
46
|
+
id: 'python-function-worker',
|
|
47
|
+
label: 'Install Function worker Python dependencies',
|
|
48
|
+
command: {
|
|
49
|
+
executable: virtualPython,
|
|
50
|
+
args: ['-m', 'pip', 'install', '-r', requirements.join('/')]
|
|
51
|
+
},
|
|
52
|
+
cwd: projectRoot
|
|
53
|
+
});
|
|
54
|
+
protectedPaths.push(requirements);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if (plan.apiStack.id === 'node-fastify') {
|
|
58
|
+
commands.push({
|
|
59
|
+
id: 'node-backend',
|
|
60
|
+
label: 'Install backend Node.js dependencies',
|
|
61
|
+
command: { executable: npmExecutable(platform), args: ['ci'] },
|
|
62
|
+
cwd: path.join(projectRoot, 'backend')
|
|
63
|
+
});
|
|
64
|
+
protectedPaths.push(['backend', 'package.json'], ['backend', 'package-lock.json']);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
commands.push({
|
|
68
|
+
id: 'go-backend',
|
|
69
|
+
label: 'Download backend Go modules',
|
|
70
|
+
command: { executable: 'go', args: ['mod', 'download'] },
|
|
71
|
+
cwd: path.join(projectRoot, 'backend')
|
|
72
|
+
});
|
|
73
|
+
protectedPaths.push(['backend', 'go.mod'], ['backend', 'go.sum']);
|
|
74
|
+
}
|
|
75
|
+
if (plan.includeFrontend) {
|
|
76
|
+
commands.push({
|
|
77
|
+
id: 'node-frontend',
|
|
78
|
+
label: 'Install frontend Node.js dependencies',
|
|
79
|
+
command: { executable: npmExecutable(platform), args: ['ci'] },
|
|
80
|
+
cwd: path.join(projectRoot, 'frontend')
|
|
81
|
+
});
|
|
82
|
+
protectedPaths.push(['frontend', 'package.json'], ['frontend', 'package-lock.json']);
|
|
83
|
+
}
|
|
84
|
+
return { commands, protectedPaths };
|
|
85
|
+
}
|
|
86
|
+
function contentHash(content) {
|
|
87
|
+
return createHash('sha256').update(content).digest('hex');
|
|
88
|
+
}
|
|
89
|
+
async function captureProtectedFiles(projectRoot, protectedPaths) {
|
|
90
|
+
const snapshots = [];
|
|
91
|
+
for (const pathParts of protectedPaths) {
|
|
92
|
+
const content = await readProjectFile(projectRoot, pathParts);
|
|
93
|
+
if (!content) {
|
|
94
|
+
throw new Error(`Dependency setup cannot protect missing file ${pathParts.join('/')}.`);
|
|
95
|
+
}
|
|
96
|
+
snapshots.push({ pathParts, content, hash: contentHash(content) });
|
|
97
|
+
}
|
|
98
|
+
return snapshots;
|
|
99
|
+
}
|
|
100
|
+
async function restoreMutations(projectRoot, snapshots) {
|
|
101
|
+
const restored = [];
|
|
102
|
+
for (const snapshot of snapshots) {
|
|
103
|
+
const current = await readProjectFile(projectRoot, snapshot.pathParts);
|
|
104
|
+
if (!current || contentHash(current) !== snapshot.hash) {
|
|
105
|
+
await writeProjectFile(projectRoot, snapshot.pathParts, snapshot.content.toString('utf8'));
|
|
106
|
+
restored.push(snapshot.pathParts.join('/'));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return restored;
|
|
110
|
+
}
|
|
111
|
+
export function dependencyResumeCommand(command, platform = process.platform) {
|
|
112
|
+
const changeDirectory = platform === 'win32'
|
|
113
|
+
? `cd /d ${JSON.stringify(command.cwd)}`
|
|
114
|
+
: `cd ${JSON.stringify(command.cwd)}`;
|
|
115
|
+
return `${changeDirectory} && ${formatCommand(command.command)}`;
|
|
116
|
+
}
|
|
117
|
+
export async function runDependencySetup(setup, projectRoot, runner, streams) {
|
|
118
|
+
const snapshots = await captureProtectedFiles(projectRoot, setup.protectedPaths);
|
|
119
|
+
const completed = [];
|
|
120
|
+
for (const command of setup.commands) {
|
|
121
|
+
const result = await runner.run(command.command, {
|
|
122
|
+
cwd: command.cwd,
|
|
123
|
+
timeoutMs: 15 * 60_000,
|
|
124
|
+
stream: true,
|
|
125
|
+
stdout: streams.stdout,
|
|
126
|
+
stderr: streams.stderr
|
|
127
|
+
});
|
|
128
|
+
if (result.status !== 0 || result.timedOut) {
|
|
129
|
+
const restoredMutations = await restoreMutations(projectRoot, snapshots);
|
|
130
|
+
return {
|
|
131
|
+
success: false,
|
|
132
|
+
completed,
|
|
133
|
+
failed: command,
|
|
134
|
+
detail: result.timedOut
|
|
135
|
+
? 'dependency command timed out'
|
|
136
|
+
: result.stderr.trim().split(/\r?\n/)[0] || `exit status ${result.status}`,
|
|
137
|
+
restoredMutations,
|
|
138
|
+
resumeCommand: dependencyResumeCommand(command)
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
completed.push(command);
|
|
142
|
+
const restoredMutations = await restoreMutations(projectRoot, snapshots);
|
|
143
|
+
if (restoredMutations.length > 0) {
|
|
144
|
+
return {
|
|
145
|
+
success: false,
|
|
146
|
+
completed,
|
|
147
|
+
failed: command,
|
|
148
|
+
detail: `dependency command modified protected files: ${restoredMutations.join(', ')}`,
|
|
149
|
+
restoredMutations,
|
|
150
|
+
resumeCommand: dependencyResumeCommand(command)
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return { success: true, completed, restoredMutations: [] };
|
|
155
|
+
}
|
|
156
|
+
export async function verifyDependencyLockPair(packagePath, lockPath) {
|
|
157
|
+
const [packageJson, lockJson] = await Promise.all([
|
|
158
|
+
readFile(packagePath, 'utf8').then((value) => JSON.parse(value)),
|
|
159
|
+
readFile(lockPath, 'utf8').then((value) => JSON.parse(value))
|
|
160
|
+
]);
|
|
161
|
+
return packageJson.name === lockJson.name && packageJson.name === lockJson.packages?.['']?.name;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=project-dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-dependencies.js","sourceRoot":"","sources":["../src/project-dependencies.ts"],"names":[],"mappings":"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"}
|
package/dist/reconcile.js
CHANGED
|
@@ -13,7 +13,10 @@ export async function reconcileProject(manifest, render, projectRoot) {
|
|
|
13
13
|
// the manifest is rewritten wholesale on apply; liftoff.config.json is user-owned
|
|
14
14
|
// desired state; seed content is gifted once and follows its own lifecycle -
|
|
15
15
|
// none of them are reconciled
|
|
16
|
-
if (artifact.logicalName === 'manifest' ||
|
|
16
|
+
if (artifact.logicalName === 'manifest' ||
|
|
17
|
+
artifact.logicalName === 'liftoff-config' ||
|
|
18
|
+
artifact.category === 'seed' ||
|
|
19
|
+
artifact.category === 'framework') {
|
|
17
20
|
continue;
|
|
18
21
|
}
|
|
19
22
|
const renderHash = hashBytes(artifact.content);
|
package/dist/reconcile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../src/reconcile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAiBnD,MAAM,SAAS,GAAG,CAAC,OAAwB,EAAE,EAAE,CAAC,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAE/G,KAAK,UAAU,QAAQ,CAAC,WAAmB,EAAE,SAAmB;IAC9D,OAAO,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAyB,EACzB,MAA2B,EAC3B,WAAmB;IAEnB,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvG,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC1D,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC5C,kFAAkF;QAClF,6EAA6E;QAC7E,8BAA8B;QAC9B,
|
|
1
|
+
{"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../src/reconcile.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { compareSemver } from './semver.js';
|
|
2
|
+
export const minimumNodeVersion = '20.19.0';
|
|
3
|
+
export function nodeRuntimeError(observedVersion = process.versions.node) {
|
|
4
|
+
if (compareSemver(observedVersion, minimumNodeVersion) >= 0) {
|
|
5
|
+
return undefined;
|
|
6
|
+
}
|
|
7
|
+
return `Liftoff requires Node.js ${minimumNodeVersion} or newer; found ${observedVersion}. Upgrade Node.js before retrying.`;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C,MAAM,UAAU,gBAAgB,CAAC,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI;IACtE,IAAI,aAAa,CAAC,eAAe,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,4BAA4B,kBAAkB,oBAAoB,eAAe,oCAAoC,CAAC;AAC/H,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { renderNpmLock, renderNpmPackage } from './npm-template-assets.js';
|
|
1
2
|
const stackBuilders = {
|
|
2
3
|
'python-fastapi': addPythonArtifacts,
|
|
3
4
|
'node-fastify': addNodeArtifacts,
|
|
@@ -328,6 +329,7 @@ def downgrade():
|
|
|
328
329
|
}
|
|
329
330
|
function addNodeArtifacts(add, plan) {
|
|
330
331
|
add('node-backend-package', 'backend', ['backend', 'package.json'], renderNodePackage(plan));
|
|
332
|
+
add('node-backend-lock', 'backend', ['backend', 'package-lock.json'], renderNpmLock('node-backend', `${plan.safeProjectName}-backend`));
|
|
331
333
|
add('node-backend-tsconfig', 'backend', ['backend', 'tsconfig.json'], renderNodeTsconfig());
|
|
332
334
|
add('node-backend-drizzle-config', 'backend', ['backend', 'drizzle.config.ts'], renderNodeDrizzleConfig());
|
|
333
335
|
add('node-backend-config', 'backend', ['backend', 'src', 'config.ts'], renderNodeConfig(plan));
|
|
@@ -342,36 +344,7 @@ function addNodeArtifacts(add, plan) {
|
|
|
342
344
|
add('database-schema', 'database', ['database', 'models', 'schema.sql'], renderStandardSchema(plan));
|
|
343
345
|
}
|
|
344
346
|
function renderNodePackage(plan) {
|
|
345
|
-
return
|
|
346
|
-
name: `${plan.safeProjectName}-backend`,
|
|
347
|
-
version: '0.1.0',
|
|
348
|
-
private: true,
|
|
349
|
-
type: 'module',
|
|
350
|
-
engines: { node: '>=20' },
|
|
351
|
-
scripts: {
|
|
352
|
-
dev: 'tsx watch src/server.ts',
|
|
353
|
-
build: 'tsc -p tsconfig.json',
|
|
354
|
-
start: 'node dist/server.js',
|
|
355
|
-
test: 'vitest run',
|
|
356
|
-
'db:generate': 'drizzle-kit generate',
|
|
357
|
-
'db:migrate': 'drizzle-kit migrate'
|
|
358
|
-
},
|
|
359
|
-
dependencies: {
|
|
360
|
-
'@fastify/cors': '^10.0.1',
|
|
361
|
-
'@fastify/swagger': '^9.4.0',
|
|
362
|
-
'drizzle-orm': '^0.44.0',
|
|
363
|
-
fastify: '^5.4.0',
|
|
364
|
-
pg: '^8.16.0'
|
|
365
|
-
},
|
|
366
|
-
devDependencies: {
|
|
367
|
-
'@types/node': '^20.14.10',
|
|
368
|
-
'@types/pg': '^8.15.0',
|
|
369
|
-
'drizzle-kit': '^0.31.0',
|
|
370
|
-
tsx: '^4.20.0',
|
|
371
|
-
typescript: '^5.5.4',
|
|
372
|
-
vitest: '^4.1.9'
|
|
373
|
-
}
|
|
374
|
-
}, null, 2);
|
|
347
|
+
return renderNpmPackage('node-backend', `${plan.safeProjectName}-backend`);
|
|
375
348
|
}
|
|
376
349
|
function renderNodeTsconfig() {
|
|
377
350
|
return JSON.stringify({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard-templates.js","sourceRoot":"","sources":["../src/standard-templates.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standard-templates.js","sourceRoot":"","sources":["../src/standard-templates.ts"],"names":[],"mappings":"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"}
|
package/dist/templates.d.ts
CHANGED
|
@@ -18,4 +18,12 @@ export declare const AZURE_NAME_LIMITS: {
|
|
|
18
18
|
export type AzureResourceNames = Record<keyof typeof AZURE_NAME_LIMITS, string>;
|
|
19
19
|
export declare function buildAzureResourceNames(plan: ProjectPlan, environment: string, resourceSuffix: string): AzureResourceNames;
|
|
20
20
|
export declare function buildArtifacts(plan: ProjectPlan): GeneratedArtifact[];
|
|
21
|
-
export declare function
|
|
21
|
+
export declare function partitionGeneratedArtifacts(artifacts: GeneratedArtifact[]): {
|
|
22
|
+
durable: GeneratedArtifact[];
|
|
23
|
+
framework: GeneratedArtifact[];
|
|
24
|
+
seed: GeneratedArtifact[];
|
|
25
|
+
manifest: GeneratedArtifact;
|
|
26
|
+
};
|
|
27
|
+
export declare function buildManifest(plan: ProjectPlan, artifacts: GeneratedArtifact[], options?: {
|
|
28
|
+
frameworkState?: 'initialized' | 'legacy';
|
|
29
|
+
}): LiftoffManifest;
|
package/dist/templates.js
CHANGED
|
@@ -2,6 +2,9 @@ import { createHash } from 'node:crypto';
|
|
|
2
2
|
import { addGenAiExtensionArtifacts } from './genai-templates.js';
|
|
3
3
|
import { addStandardStackArtifacts, renderStandardDockerfile, renderStandardEnv } from './standard-templates.js';
|
|
4
4
|
import { liftoffVersion } from './version.js';
|
|
5
|
+
import { renderNpmLock, renderNpmPackage } from './npm-template-assets.js';
|
|
6
|
+
import { formatCommand } from './process-runner.js';
|
|
7
|
+
import { workstationRequirementCatalog } from './workstation-catalog.js';
|
|
5
8
|
const contentHash = (content) => `sha256:${createHash('sha256').update(content, 'utf8').digest('hex')}`;
|
|
6
9
|
const DEFAULT_FUNCTION_WORKER_QUEUE_NAME = 'events';
|
|
7
10
|
export const AZURE_NAME_LIMITS = {
|
|
@@ -93,9 +96,23 @@ export function buildArtifacts(plan) {
|
|
|
93
96
|
});
|
|
94
97
|
return artifacts;
|
|
95
98
|
}
|
|
96
|
-
export function
|
|
99
|
+
export function partitionGeneratedArtifacts(artifacts) {
|
|
100
|
+
const manifest = artifacts.find((artifact) => artifact.logicalName === 'manifest');
|
|
101
|
+
if (!manifest) {
|
|
102
|
+
throw new Error('Generated artifacts are missing the Liftoff manifest.');
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
durable: artifacts.filter((artifact) => artifact.logicalName !== 'manifest' && artifact.category !== 'seed' && artifact.category !== 'framework'),
|
|
106
|
+
framework: artifacts.filter((artifact) => artifact.category === 'framework'),
|
|
107
|
+
seed: artifacts.filter((artifact) => artifact.category === 'seed'),
|
|
108
|
+
manifest
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
export function buildManifest(plan, artifacts, options = {}) {
|
|
112
|
+
const frameworkState = options.frameworkState ?? 'initialized';
|
|
113
|
+
const agents = frameworkState === 'initialized' ? plan.agents.map((agent) => agent.id) : [];
|
|
97
114
|
return {
|
|
98
|
-
artifactVersion:
|
|
115
|
+
artifactVersion: 3,
|
|
99
116
|
generatedBy: 'Mission Control Liftoff',
|
|
100
117
|
liftoffVersion,
|
|
101
118
|
project: {
|
|
@@ -107,10 +124,17 @@ export function buildManifest(plan, artifacts) {
|
|
|
107
124
|
region: plan.region.slug,
|
|
108
125
|
frontend: plan.includeFrontend,
|
|
109
126
|
specWorkflow: plan.specWorkflow.id,
|
|
127
|
+
agents,
|
|
128
|
+
...(frameworkState === 'initialized' && plan.defaultAgent ? { defaultAgent: plan.defaultAgent.id } : {}),
|
|
110
129
|
environments: plan.environments.map((environment) => environment.id)
|
|
111
130
|
},
|
|
131
|
+
framework: {
|
|
132
|
+
state: frameworkState,
|
|
133
|
+
adapter: plan.framework.id,
|
|
134
|
+
...(frameworkState === 'initialized' ? { contractVersion: plan.framework.version } : {})
|
|
135
|
+
},
|
|
112
136
|
artifacts: artifacts
|
|
113
|
-
.filter((artifact) => artifact.category !== 'seed'
|
|
137
|
+
.filter((artifact) => artifact.category !== 'seed' && artifact.category !== 'framework')
|
|
114
138
|
.map((artifact) => ({
|
|
115
139
|
logicalName: artifact.logicalName,
|
|
116
140
|
category: artifact.category,
|
|
@@ -131,7 +155,9 @@ function addBaseArtifacts(add, plan) {
|
|
|
131
155
|
region: plan.region.slug,
|
|
132
156
|
includeFrontend: plan.includeFrontend,
|
|
133
157
|
environments: plan.environments.map((environment) => environment.id),
|
|
134
|
-
specWorkflow: plan.specWorkflow.id
|
|
158
|
+
specWorkflow: plan.specWorkflow.id,
|
|
159
|
+
agents: plan.agents.map((agent) => agent.id),
|
|
160
|
+
...(plan.defaultAgent ? { defaultAgent: plan.defaultAgent.id } : {})
|
|
135
161
|
}, null, 2));
|
|
136
162
|
add('env-example', 'configuration', ['.env.example'], renderEnvExample(plan));
|
|
137
163
|
add('backend-dockerfile', 'runtime', ['Dockerfile'], plan.projectType.id === 'genai' ? renderBackendDockerfile() : renderStandardDockerfile(plan));
|
|
@@ -228,22 +254,23 @@ function addInfrastructureArtifacts(add, plan) {
|
|
|
228
254
|
function addGovernanceArtifacts(add, plan) {
|
|
229
255
|
if (plan.specWorkflow.id === 'openspec') {
|
|
230
256
|
const changeName = `bootstrap-${plan.safeProjectName}`;
|
|
231
|
-
add('openspec-config', '
|
|
257
|
+
add('openspec-config', 'seed', ['openspec', 'config.yaml'], renderOpenSpecConfig(plan));
|
|
232
258
|
add('openspec-seed-change-metadata', 'seed', ['openspec', 'changes', changeName, '.openspec.yaml'], 'schema: spec-driven');
|
|
233
259
|
add('openspec-seed-proposal', 'seed', ['openspec', 'changes', changeName, 'proposal.md'], renderSeedProposal(plan));
|
|
234
260
|
add('openspec-seed-design', 'seed', ['openspec', 'changes', changeName, 'design.md'], renderSeedDesign(plan));
|
|
235
261
|
add('openspec-seed-tasks', 'seed', ['openspec', 'changes', changeName, 'tasks.md'], renderSeedTasks());
|
|
236
|
-
add('openspec-spec-placeholder', '
|
|
262
|
+
add('openspec-spec-placeholder', 'seed', ['openspec', 'specs', '.gitkeep'], '');
|
|
237
263
|
}
|
|
238
264
|
else {
|
|
239
|
-
add('spec-kit-constitution', '
|
|
240
|
-
add('spec-kit-spec-template', '
|
|
241
|
-
add('spec-kit-plan-template', '
|
|
242
|
-
add('specs-placeholder', '
|
|
265
|
+
add('spec-kit-constitution', 'seed', ['.specify', 'memory', 'constitution.md'], renderSpecKitConstitution(plan));
|
|
266
|
+
add('spec-kit-spec-template', 'framework', ['.specify', 'templates', 'spec-template.md'], renderSpecKitSpecTemplate());
|
|
267
|
+
add('spec-kit-plan-template', 'framework', ['.specify', 'templates', 'plan-template.md'], renderSpecKitPlanTemplate());
|
|
268
|
+
add('specs-placeholder', 'seed', ['specs', '.gitkeep'], '');
|
|
243
269
|
}
|
|
244
270
|
}
|
|
245
271
|
function addFrontendArtifacts(add, plan) {
|
|
246
272
|
add('frontend-package', 'frontend', ['frontend', 'package.json'], renderFrontendPackage(plan));
|
|
273
|
+
add('frontend-lock', 'frontend', ['frontend', 'package-lock.json'], renderNpmLock('frontend', `${plan.safeProjectName}-frontend`));
|
|
247
274
|
add('frontend-index', 'frontend', ['frontend', 'index.html'], renderFrontendIndex(plan));
|
|
248
275
|
add('frontend-main', 'frontend', ['frontend', 'src', 'main.ts'], renderFrontendMain());
|
|
249
276
|
add('frontend-app', 'frontend', ['frontend', 'src', 'App.vue'], renderFrontendApp(plan));
|
|
@@ -256,19 +283,20 @@ function addFrontendArtifacts(add, plan) {
|
|
|
256
283
|
function renderDirectBuildAndTestGuide(plan) {
|
|
257
284
|
let backendCommands;
|
|
258
285
|
if (plan.projectType.id === 'genai' || plan.apiStack.id === 'python-fastapi') {
|
|
259
|
-
backendCommands =
|
|
260
|
-
|
|
261
|
-
python -m pip install -e "./backend[test]"
|
|
286
|
+
backendCommands = `# macOS and Linux
|
|
287
|
+
python3 -m venv .venv
|
|
288
|
+
.venv/bin/python -m pip install -e "./backend[test]"
|
|
262
289
|
(cd backend && python -m pytest -q)`;
|
|
263
290
|
}
|
|
264
291
|
else if (plan.apiStack.id === 'node-fastify') {
|
|
265
292
|
backendCommands = `cd backend
|
|
266
|
-
npm
|
|
293
|
+
npm ci
|
|
267
294
|
npm run build
|
|
268
295
|
npm test`;
|
|
269
296
|
}
|
|
270
297
|
else {
|
|
271
298
|
backendCommands = `cd backend
|
|
299
|
+
go mod download
|
|
272
300
|
go test ./...`;
|
|
273
301
|
}
|
|
274
302
|
const frontendCommands = plan.includeFrontend ? `
|
|
@@ -278,28 +306,86 @@ Build the frontend without a running backend:
|
|
|
278
306
|
\`\`\`bash
|
|
279
307
|
cp frontend/.env.example frontend/.env
|
|
280
308
|
cd frontend
|
|
281
|
-
npm
|
|
309
|
+
npm ci
|
|
282
310
|
npm run build
|
|
283
311
|
\`\`\`
|
|
284
312
|
` : '';
|
|
313
|
+
const windowsPythonCommands = plan.projectType.id === 'genai' || plan.apiStack.id === 'python-fastapi'
|
|
314
|
+
? `
|
|
315
|
+
|
|
316
|
+
Equivalent Windows dependency commands:
|
|
317
|
+
|
|
318
|
+
\`\`\`powershell
|
|
319
|
+
py -3 -m venv .venv
|
|
320
|
+
.venv\\Scripts\\python.exe -m pip install -e "./backend[test]"
|
|
321
|
+
\`\`\`
|
|
322
|
+
`
|
|
323
|
+
: '';
|
|
285
324
|
const functionCommands = hasFunctionWorker(plan) ? `
|
|
286
325
|
|
|
287
326
|
Run the Function worker unit tests from the same Python virtual environment:
|
|
288
327
|
|
|
289
328
|
\`\`\`bash
|
|
290
|
-
|
|
291
|
-
python -m
|
|
292
|
-
python -m pytest -q
|
|
329
|
+
.venv/bin/python -m pip install -r functions/${functionWorkerName(plan)}/requirements.txt
|
|
330
|
+
(cd functions/${functionWorkerName(plan)} && ../../.venv/bin/python -m pytest -q)
|
|
293
331
|
\`\`\`
|
|
294
332
|
` : '';
|
|
295
|
-
return `##
|
|
333
|
+
return `## Project Dependencies, Build, And Test
|
|
334
|
+
|
|
335
|
+
\`liftoff init --install-dependencies\` runs the selected stack's locked project-local dependency commands. To run or resume them manually:
|
|
296
336
|
|
|
297
337
|
\`\`\`bash
|
|
298
338
|
${backendCommands}
|
|
299
339
|
\`\`\`
|
|
300
340
|
|
|
301
|
-
|
|
302
|
-
|
|
341
|
+
${windowsPythonCommands}${frontendCommands}${functionCommands}`;
|
|
342
|
+
}
|
|
343
|
+
function renderAdvisoryReadinessGuide(plan) {
|
|
344
|
+
const selected = [
|
|
345
|
+
'docker',
|
|
346
|
+
'opentofu',
|
|
347
|
+
...(plan.provider.id === 'azure' ? ['azure-cli'] : [])
|
|
348
|
+
];
|
|
349
|
+
return selected.map((id) => {
|
|
350
|
+
const requirement = workstationRequirementCatalog[id];
|
|
351
|
+
const mac = requirement.install.darwin;
|
|
352
|
+
const windows = requirement.install.win32;
|
|
353
|
+
const commands = [
|
|
354
|
+
...(mac ? [`macOS: \`${formatCommand(mac.command)}\``] : []),
|
|
355
|
+
...(windows ? [`Windows: \`${formatCommand(windows.command)}\``] : []),
|
|
356
|
+
`Linux: ${requirement.linuxRemedies.unknown}`
|
|
357
|
+
].join('; ');
|
|
358
|
+
const health = id === 'docker'
|
|
359
|
+
? ' After installation, start Docker Desktop or the Docker daemon.'
|
|
360
|
+
: id === 'azure-cli'
|
|
361
|
+
? ' After installation, run `az login` if authentication is not ready.'
|
|
362
|
+
: '';
|
|
363
|
+
return `- ${requirement.label}: ${commands}.${health}`;
|
|
364
|
+
}).join('\n');
|
|
365
|
+
}
|
|
366
|
+
function renderSpecWorkflowGuide(plan) {
|
|
367
|
+
const agents = plan.agents.map((agent) => `${agent.label}${plan.defaultAgent?.id === agent.id ? ' (default integration)' : ''}`).join(', ');
|
|
368
|
+
const ownership = plan.specWorkflow.id === 'openspec'
|
|
369
|
+
? 'OpenSpec core files and the selected Copilot or Claude skill integrations'
|
|
370
|
+
: 'Spec Kit core files, integration state, and the selected Copilot or Claude skill integrations';
|
|
371
|
+
return `## Spec-Driven Workflow And Validation
|
|
372
|
+
|
|
373
|
+
- Workflow: ${plan.specWorkflow.label} ${plan.framework.version}
|
|
374
|
+
- AI coding agents: ${agents}
|
|
375
|
+
- Framework ownership: the official initializer owns ${ownership}. Liftoff validates these files but excludes framework-owned output and one-time seed content from durable manifest hashes.
|
|
376
|
+
- Deferred tools: advisory workstation checks may be deferred. Liftoff never claims they are installed and never installs them without \`--install-tools\`.
|
|
377
|
+
|
|
378
|
+
If \`liftoff doctor\` reports a selected advisory tool as missing, use its registered readiness remedy:
|
|
379
|
+
|
|
380
|
+
${renderAdvisoryReadinessGuide(plan)}
|
|
381
|
+
|
|
382
|
+
Validate the scaffold and workstation after setup:
|
|
383
|
+
|
|
384
|
+
\`\`\`bash
|
|
385
|
+
liftoff validate
|
|
386
|
+
liftoff doctor
|
|
387
|
+
\`\`\`
|
|
388
|
+
`;
|
|
303
389
|
}
|
|
304
390
|
function renderGeneratedConfigurationGuide(plan) {
|
|
305
391
|
const frontendConfiguration = plan.includeFrontend
|
|
@@ -370,9 +456,7 @@ tofu apply -var-file=environments/dev.tfvars
|
|
|
370
456
|
|
|
371
457
|
The first apply uses a public bootstrap image. Follow \`infrastructure/opentofu/azure/README.md\` to build the generated backend in ACR and apply its image.
|
|
372
458
|
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
Selected workflow: ${plan.specWorkflow.label}.
|
|
459
|
+
${renderSpecWorkflowGuide(plan)}
|
|
376
460
|
`;
|
|
377
461
|
}
|
|
378
462
|
const pattern = genAiPattern(plan);
|
|
@@ -422,9 +506,7 @@ tofu apply -var-file=environments/dev.tfvars
|
|
|
422
506
|
|
|
423
507
|
The first apply uses a public bootstrap image. Follow \`infrastructure/opentofu/azure/README.md\` to build the generated backend in ACR and apply its image.
|
|
424
508
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
Selected workflow: ${plan.specWorkflow.label}.
|
|
509
|
+
${renderSpecWorkflowGuide(plan)}
|
|
428
510
|
${functionsSection}
|
|
429
511
|
`;
|
|
430
512
|
}
|
|
@@ -2455,25 +2537,7 @@ function renderSpecKitPlanTemplate() {
|
|
|
2455
2537
|
`;
|
|
2456
2538
|
}
|
|
2457
2539
|
function renderFrontendPackage(plan) {
|
|
2458
|
-
return
|
|
2459
|
-
name: `${plan.safeProjectName}-frontend`,
|
|
2460
|
-
version: '0.1.0',
|
|
2461
|
-
private: true,
|
|
2462
|
-
type: 'module',
|
|
2463
|
-
scripts: {
|
|
2464
|
-
dev: 'vite',
|
|
2465
|
-
build: 'vite build',
|
|
2466
|
-
preview: 'vite preview'
|
|
2467
|
-
},
|
|
2468
|
-
dependencies: {
|
|
2469
|
-
'@vitejs/plugin-vue': '^5.0.5',
|
|
2470
|
-
vite: '^5.3.1',
|
|
2471
|
-
vue: '^3.4.29',
|
|
2472
|
-
tailwindcss: '^3.4.4',
|
|
2473
|
-
autoprefixer: '^10.4.19',
|
|
2474
|
-
postcss: '^8.4.38'
|
|
2475
|
-
}
|
|
2476
|
-
}, null, 2);
|
|
2540
|
+
return renderNpmPackage('frontend', `${plan.safeProjectName}-frontend`);
|
|
2477
2541
|
}
|
|
2478
2542
|
function renderFrontendIndex(plan) {
|
|
2479
2543
|
return `<div id="app"></div><script type="module" src="/src/main.ts"></script><title>${escapeHtml(plan.projectName)}</title>`;
|