@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
@@ -1,32 +1,64 @@
1
+ import { access } from 'node:fs/promises';
2
+ import path from 'node:path';
1
3
  import { stdin as processInput, stdout as processOutput } from 'node:process';
2
4
  import { createInterface } from 'node:readline/promises';
3
- import { apiStacks, codingAgents, environments, getApiStack, getCodingAgent, getPattern, getProjectType, getProvider, getSpecWorkflow, patterns, providers, resolveRegion, specWorkflows } from './catalogs.js';
5
+ import { apiStacks, codingAgents, environments, getApiStack, getCodingAgent, getFrameworkDefinition, getPattern, getProjectType, getProvider, getSpecWorkflow, patterns, projectTypes, providers, resolveRegion, specWorkflows } from './catalogs.js';
4
6
  import { projectPlanEntries } from './planner.js';
5
7
  import { formatCommand } from './process-runner.js';
6
8
  import { PresentationSession } from './terminal.js';
9
+ export class InteractiveCancelledError extends Error {
10
+ constructor(message = 'Interactive initialization was cancelled.') {
11
+ super(message);
12
+ this.name = 'InteractiveCancelledError';
13
+ }
14
+ }
15
+ function errorCode(error) {
16
+ return typeof error === 'object' && error !== null && 'code' in error &&
17
+ typeof error.code === 'string'
18
+ ? error.code
19
+ : undefined;
20
+ }
21
+ function isPromptCancellation(error) {
22
+ return error instanceof Error && (error.name === 'ExitPromptError' ||
23
+ error.name === 'AbortPromptError' ||
24
+ error.message.includes('User force closed the prompt'));
25
+ }
7
26
  export class InteractivePrompter {
27
+ input;
8
28
  output;
9
29
  presentation;
30
+ cwd;
31
+ configuredRoot;
32
+ runner;
33
+ checkboxPrompt;
10
34
  rl;
11
35
  lines;
36
+ closed = false;
12
37
  constructor(dependencies = {}) {
13
- const input = dependencies.input ?? processInput;
38
+ this.input = dependencies.input ?? processInput;
14
39
  this.output = dependencies.output ?? processOutput;
15
40
  this.presentation = dependencies.presentation ?? new PresentationSession({
16
41
  stdout: this.output,
17
42
  stderr: this.output
18
43
  });
19
- this.rl = createInterface({ input, terminal: false });
20
- this.lines = this.rl[Symbol.asyncIterator]();
44
+ this.cwd = dependencies.cwd ?? process.cwd();
45
+ this.configuredRoot = dependencies.configuredRoot;
46
+ this.runner = dependencies.runner;
47
+ this.checkboxPrompt = dependencies.checkboxPrompt;
21
48
  }
22
49
  close() {
23
- this.rl.close();
50
+ this.closed = true;
51
+ this.releaseLineInput();
24
52
  }
25
53
  async promptForInitOptions(initial) {
26
54
  const projectName = initial.projectName ?? await this.askRequired('Project name');
27
55
  const inferredProjectType = initial.projectType ?? (initial.pattern ? 'genai' : initial.apiStack ? 'standard' : undefined);
28
56
  const projectType = inferredProjectType ??
29
- (await this.confirm('Is this a GenAI project?', true) ? 'genai' : 'standard');
57
+ await this.choose('Select workload', projectTypes.map((workload) => ({
58
+ value: workload.id,
59
+ label: workload.label,
60
+ disabled: false
61
+ })), 'genai');
30
62
  const pattern = projectType === 'genai'
31
63
  ? initial.pattern ?? await this.choose('Select GenAI pattern', patterns.map((pattern) => ({
32
64
  value: pattern.id,
@@ -40,21 +72,28 @@ export class InteractivePrompter {
40
72
  label: `${stack.label} (${stack.databaseTooling})`,
41
73
  disabled: false
42
74
  })), 'python-fastapi')
43
- : initial.apiStack ?? 'python-fastapi';
44
- const cloud = initial.cloud ?? await this.choose('Target cloud', providers.map((provider) => ({
45
- value: provider.id,
46
- label: `${provider.label}${provider.status === 'planned' ? ' - planned' : ''}`,
47
- disabled: provider.status === 'planned'
48
- })));
49
- const region = initial.region ?? await this.promptForRegion(cloud);
50
- const includeFrontend = initial.includeFrontend ??
51
- await this.confirm('Include frontend? (Vue 3 + Tailwind)', false);
75
+ : projectType === 'genai'
76
+ ? initial.apiStack ?? 'python-fastapi'
77
+ : initial.apiStack;
78
+ const cloud = projectType === 'power-apps-code-app'
79
+ ? initial.cloud
80
+ : initial.cloud ?? await this.choose('Target cloud', providers.map((provider) => ({
81
+ value: provider.id,
82
+ label: `${provider.label}${provider.status === 'planned' ? ' - planned' : ''}`,
83
+ disabled: provider.status === 'planned'
84
+ })));
85
+ const region = projectType === 'power-apps-code-app'
86
+ ? initial.region
87
+ : initial.region ?? await this.promptForRegion(cloud);
88
+ const includeFrontend = projectType === 'power-apps-code-app'
89
+ ? initial.includeFrontend
90
+ : initial.includeFrontend ?? await this.confirm('Include frontend? (Vue 3 + Tailwind)', false);
52
91
  const specWorkflow = initial.specWorkflow ?? await this.choose('Select spec-driven workflow', specWorkflows.map((workflow) => ({
53
92
  value: workflow.id,
54
93
  label: workflow.label,
55
94
  disabled: false
56
95
  })), 'openspec');
57
- const selectedAgents = initial.agents ?? await this.askAgents();
96
+ const selectedAgents = initial.agents ?? await this.askAgents(specWorkflow);
58
97
  const normalizedAgents = selectedAgents
59
98
  .map((agent) => getCodingAgent(agent)?.id)
60
99
  .filter((agent) => agent !== undefined);
@@ -65,7 +104,13 @@ export class InteractivePrompter {
65
104
  : specWorkflow === 'spec-kit'
66
105
  ? normalizedAgents[0]
67
106
  : undefined;
68
- const selectedEnvironments = initial.environments ?? await this.askEnvironments();
107
+ const codeAppsPlugin = projectType === 'power-apps-code-app'
108
+ ? initial.codeAppsPlugin ??
109
+ await this.confirm('Include Microsoft Code Apps preview plugin guidance?', false)
110
+ : initial.codeAppsPlugin;
111
+ const selectedEnvironments = projectType === 'power-apps-code-app'
112
+ ? initial.environments
113
+ : initial.environments ?? await this.askEnvironments();
69
114
  return {
70
115
  ...initial,
71
116
  projectName,
@@ -78,7 +123,8 @@ export class InteractivePrompter {
78
123
  specWorkflow,
79
124
  agents: normalizedAgents,
80
125
  ...(defaultAgent ? { defaultAgent } : {}),
81
- environments: selectedEnvironments
126
+ ...(selectedEnvironments ? { environments: selectedEnvironments } : {}),
127
+ ...(codeAppsPlugin !== undefined ? { codeAppsPlugin } : {})
82
128
  };
83
129
  }
84
130
  async confirmPlan(plan, yes, actionLabel = 'Initialize project?') {
@@ -196,14 +242,25 @@ export class InteractivePrompter {
196
242
  }
197
243
  return answer.split(',').map((value) => value.trim()).filter(Boolean);
198
244
  }
199
- async askAgents() {
245
+ async askAgents(specWorkflow) {
246
+ const discovery = await this.discoverAgents(specWorkflow);
247
+ if (this.isRealTty()) {
248
+ return this.askAgentsWithCheckbox(discovery);
249
+ }
250
+ return this.askAgentsWithLines(discovery);
251
+ }
252
+ async askAgentsWithLines(discovery) {
200
253
  while (true) {
201
254
  this.presentation.choices('Select one or more AI coding agents', codingAgents.map((agent) => ({
202
- label: agent.label,
255
+ label: this.agentChoiceLabel(agent.id, discovery),
203
256
  value: agent.id,
204
- default: agent.id === 'github-copilot'
257
+ default: discovery.defaults.includes(agent.id),
258
+ selected: discovery.defaults.includes(agent.id)
205
259
  })));
206
- const answer = (await this.question('Select comma-separated options', '1')).trim() || '1';
260
+ const defaultSelection = discovery.defaults
261
+ .map((agentId) => `${codingAgents.findIndex((agent) => agent.id === agentId) + 1}`)
262
+ .join(',');
263
+ const answer = (await this.question('Select comma-separated options', defaultSelection)).trim() || defaultSelection;
207
264
  const selected = answer.split(',').map((value) => value.trim()).filter(Boolean);
208
265
  const resolved = selected.map((value) => {
209
266
  const byIndex = codingAgents[Number(value) - 1];
@@ -218,14 +275,113 @@ export class InteractivePrompter {
218
275
  .map((agent) => agent.id);
219
276
  }
220
277
  }
278
+ async askAgentsWithCheckbox(discovery) {
279
+ this.releaseLineInput();
280
+ try {
281
+ const checkbox = this.checkboxPrompt ?? (await import('@inquirer/prompts')).checkbox;
282
+ const selected = await checkbox({
283
+ message: 'Select one or more AI coding agents',
284
+ choices: codingAgents.map((agent) => ({
285
+ name: this.agentChoiceLabel(agent.id, discovery),
286
+ value: agent.id,
287
+ checked: discovery.defaults.includes(agent.id)
288
+ })),
289
+ required: true,
290
+ validate: (values) => values.length > 0 || 'Select at least one AI coding agent.'
291
+ }, {
292
+ input: this.input,
293
+ output: this.output
294
+ });
295
+ return codingAgents
296
+ .filter((agent) => selected.includes(agent.id))
297
+ .map((agent) => agent.id);
298
+ }
299
+ catch (error) {
300
+ if (isPromptCancellation(error)) {
301
+ throw new InteractiveCancelledError();
302
+ }
303
+ throw error;
304
+ }
305
+ }
306
+ async discoverAgents(specWorkflow) {
307
+ const configured = new Set();
308
+ const detected = new Set();
309
+ const framework = getFrameworkDefinition(specWorkflow);
310
+ await Promise.all(codingAgents.map(async (agent) => {
311
+ if (this.configuredRoot) {
312
+ const markerStates = await Promise.all(framework.agentMarkers[agent.id].map(async (pathParts) => this.pathExists(path.join(this.configuredRoot, ...pathParts))));
313
+ if (markerStates.some(Boolean)) {
314
+ configured.add(agent.id);
315
+ }
316
+ }
317
+ if (this.runner) {
318
+ const probe = await this.runner.run({ executable: agent.executable, args: ['--version'] }, { cwd: this.cwd, timeoutMs: 10_000 });
319
+ if (probe.status === 0 && !probe.timedOut) {
320
+ detected.add(agent.id);
321
+ }
322
+ }
323
+ }));
324
+ const defaults = codingAgents
325
+ .filter((agent) => configured.size > 0
326
+ ? configured.has(agent.id)
327
+ : detected.size > 0
328
+ ? detected.has(agent.id)
329
+ : agent.id === 'github-copilot')
330
+ .map((agent) => agent.id);
331
+ return { configured, detected, defaults };
332
+ }
333
+ async pathExists(file) {
334
+ try {
335
+ await access(file);
336
+ return true;
337
+ }
338
+ catch (error) {
339
+ if (errorCode(error) === 'ENOENT' || errorCode(error) === 'ENOTDIR') {
340
+ return false;
341
+ }
342
+ throw error;
343
+ }
344
+ }
345
+ agentChoiceLabel(agentId, discovery) {
346
+ const agent = codingAgents.find((candidate) => candidate.id === agentId);
347
+ if (!agent) {
348
+ throw new Error(`Unknown coding agent: ${agentId}`);
349
+ }
350
+ const states = [
351
+ discovery.configured.has(agentId) ? 'configured' : undefined,
352
+ discovery.detected.has(agentId) ? 'detected' : undefined
353
+ ].filter((state) => state !== undefined);
354
+ return `${agent.label} (${states.length > 0 ? states.join(', ') : 'not observable'})`;
355
+ }
356
+ isRealTty() {
357
+ const input = this.input;
358
+ const output = this.output;
359
+ return input.isTTY === true && typeof input.setRawMode === 'function' && output.isTTY === true;
360
+ }
221
361
  async question(label, defaultValue) {
222
362
  this.presentation.prompt(label, defaultValue);
223
- const answer = await this.lines.next();
363
+ const answer = await this.lineIterator().next();
224
364
  if (answer.done) {
225
- throw new Error(`Interactive input closed before answering: ${label}.`);
365
+ throw new InteractiveCancelledError(`Interactive input closed before answering: ${label}.`);
226
366
  }
227
367
  return answer.value;
228
368
  }
369
+ lineIterator() {
370
+ if (this.closed) {
371
+ throw new InteractiveCancelledError();
372
+ }
373
+ if (!this.rl || !this.lines) {
374
+ this.rl = createInterface({ input: this.input, terminal: false });
375
+ this.rl.on('SIGINT', () => this.rl?.close());
376
+ this.lines = this.rl[Symbol.asyncIterator]();
377
+ }
378
+ return this.lines;
379
+ }
380
+ releaseLineInput() {
381
+ this.rl?.close();
382
+ this.rl = undefined;
383
+ this.lines = undefined;
384
+ }
229
385
  }
230
386
  async function withPrompter(dependencies, callback) {
231
387
  const prompter = new InteractivePrompter(dependencies);
@@ -1 +1 @@
1
- {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { LegacyInventory } from './scan.js';
2
- import type { ProjectPlan } from './types.js';
2
+ import type { ApiProjectPlan } from './types.js';
3
3
  export interface SeededGroup {
4
4
  title: string;
5
5
  tasks: string[];
6
6
  }
7
- export declare function seedMigrationGroups(inventory: LegacyInventory, plan: ProjectPlan): SeededGroup[];
7
+ export declare function seedMigrationGroups(inventory: LegacyInventory, plan: ApiProjectPlan): SeededGroup[];
8
8
  export declare function renderMigrationTasks(groups: SeededGroup[]): string;
9
- export declare function renderMigrationProposal(plan: ProjectPlan, inventory: LegacyInventory): string;
10
- export declare function renderMigrationChecklist(plan: ProjectPlan, inventory: LegacyInventory, groups: SeededGroup[]): string;
9
+ export declare function renderMigrationProposal(plan: ApiProjectPlan, inventory: LegacyInventory): string;
10
+ export declare function renderMigrationChecklist(plan: ApiProjectPlan, inventory: LegacyInventory, groups: SeededGroup[]): string;
@@ -79,7 +79,7 @@ export function renderMigrationTasks(groups) {
79
79
  return `${lines.join('\n').trimEnd()}\n`;
80
80
  }
81
81
  export function renderMigrationProposal(plan, inventory) {
82
- const typeSpecific = plan.pattern
82
+ const typeSpecific = plan.workload === 'genai'
83
83
  ? `- Pattern: ${plan.pattern.label}`
84
84
  : `- API stack: ${plan.apiStack.label}`;
85
85
  return `# Proposal: migrate-to-liftoff
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-plan.js","sourceRoot":"","sources":["../src/migrate-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate-plan.js","sourceRoot":"","sources":["../src/migrate-plan.ts"],"names":[],"mappings":"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"}