@msn-control/liftoff 0.4.0 → 0.5.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 +65 -224
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/UPSTREAM_LICENSE.txt +21 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/catalog.json +520 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/packaged/gitignore +27 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/README.md +25 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/components.json +22 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/eslint.config.js +23 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/index.html +13 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package-lock.json +6597 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package.json +60 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/public/power-apps.svg +55 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/App.tsx +17 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/assets/react.svg +1 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/mode-toggle.tsx +37 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/badge.tsx +46 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/button.tsx +60 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/calendar.tsx +211 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/card.tsx +92 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/chart.tsx +355 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/checkbox.tsx +32 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/command.tsx +184 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/dialog.tsx +141 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/dropdown-menu.tsx +257 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/input.tsx +21 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/label.tsx +22 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/popover.tsx +46 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/progress.tsx +29 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/select.tsx +185 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/separator.tsx +26 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/skeleton.tsx +13 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/table.tsx +114 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/tabs.tsx +66 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/textarea.tsx +18 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/tooltip.tsx +61 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/hooks/use-theme.ts +11 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/index.css +131 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/lib/utils.ts +6 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/main.tsx +10 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/_layout.tsx +31 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/home.tsx +59 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/not-found.tsx +14 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/query-provider.tsx +26 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/sonner-provider.tsx +23 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/theme-provider.tsx +64 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/router.tsx +24 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.app.json +34 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.json +13 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.node.json +26 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/vite.config.ts +19 -0
- package/assets/power-apps-code-app/README.md +27 -0
- package/dist/args.d.ts +33 -0
- package/dist/args.js +100 -38
- package/dist/args.js.map +1 -1
- package/dist/catalogs.d.ts +3 -1
- package/dist/catalogs.js +23 -0
- package/dist/catalogs.js.map +1 -1
- package/dist/cli.js +6 -1
- package/dist/cli.js.map +1 -1
- package/dist/code-apps-plugin.d.ts +13 -0
- package/dist/code-apps-plugin.js +69 -0
- package/dist/code-apps-plugin.js.map +1 -0
- package/dist/commands.d.ts +4 -0
- package/dist/commands.js +669 -321
- package/dist/commands.js.map +1 -1
- package/dist/file-system.d.ts +16 -1
- package/dist/file-system.js +320 -10
- package/dist/file-system.js.map +1 -1
- package/dist/framework-adapters.d.ts +5 -2
- package/dist/framework-adapters.js +5 -2
- package/dist/framework-adapters.js.map +1 -1
- package/dist/genai-templates.d.ts +6 -6
- package/dist/genai-templates.js +0 -3
- package/dist/genai-templates.js.map +1 -1
- package/dist/interactive.d.ts +80 -6
- package/dist/interactive.js +338 -142
- package/dist/interactive.js.map +1 -1
- package/dist/migrate-plan.d.ts +4 -4
- package/dist/migrate-plan.js +1 -1
- package/dist/migrate-plan.js.map +1 -1
- package/dist/planner.d.ts +5 -0
- package/dist/planner.js +197 -53
- package/dist/planner.js.map +1 -1
- package/dist/power-apps-assets.d.ts +30 -0
- package/dist/power-apps-assets.js +131 -0
- package/dist/power-apps-assets.js.map +1 -0
- package/dist/power-apps-templates.d.ts +3 -0
- package/dist/power-apps-templates.js +140 -0
- package/dist/power-apps-templates.js.map +1 -0
- package/dist/power-apps-validation.d.ts +1 -0
- package/dist/power-apps-validation.js +79 -0
- package/dist/power-apps-validation.js.map +1 -0
- package/dist/process-runner.js +9 -6
- package/dist/process-runner.js.map +1 -1
- package/dist/project-dependencies.d.ts +7 -4
- package/dist/project-dependencies.js +16 -4
- package/dist/project-dependencies.js.map +1 -1
- package/dist/published-verifier.js +1 -1
- package/dist/published-verifier.js.map +1 -1
- package/dist/standard-templates.d.ts +4 -4
- package/dist/standard-templates.js.map +1 -1
- package/dist/templates.d.ts +2 -2
- package/dist/templates.js +196 -50
- package/dist/templates.js.map +1 -1
- package/dist/terminal.d.ts +99 -3
- package/dist/terminal.js +482 -66
- package/dist/terminal.js.map +1 -1
- package/dist/types.d.ts +73 -15
- package/dist/workstation.d.ts +10 -5
- package/dist/workstation.js +25 -10
- package/dist/workstation.js.map +1 -1
- package/docs/assets/liftoff-terminal.svg +33 -0
- package/docs/azure-deployment.md +66 -0
- package/docs/cli-reference.md +128 -0
- package/docs/configuration-and-manifests.md +102 -0
- package/docs/existing-repositories.md +87 -0
- package/docs/getting-started.md +114 -0
- package/docs/prerequisites.md +99 -0
- package/docs/project-structure.md +119 -0
- package/docs/safety-and-consent.md +98 -0
- package/docs/spec-workflows-and-agents.md +92 -0
- package/docs/troubleshooting.md +133 -0
- package/docs/workloads.md +128 -0
- package/package.json +8 -2
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { codeAppsPlugin } from './catalogs.js';
|
|
2
|
+
export function codeAppsPluginIdentity() {
|
|
3
|
+
return `${codeAppsPlugin.id}@${codeAppsPlugin.marketplace}`;
|
|
4
|
+
}
|
|
5
|
+
export function codeAppsPluginGuidance(agent) {
|
|
6
|
+
return [
|
|
7
|
+
`Open ${agent.label} and add the marketplace with`,
|
|
8
|
+
'`/plugin marketplace add microsoft/power-platform-skills`, then install',
|
|
9
|
+
`\`/plugin install ${codeAppsPluginIdentity()}\`.`,
|
|
10
|
+
'Do not run `/create-code-app` in this project; use the connector and deployment skills',
|
|
11
|
+
'after Liftoff creates the application.'
|
|
12
|
+
].join(' ');
|
|
13
|
+
}
|
|
14
|
+
export async function probeCodeAppsPlugin(agents, runner, cwd) {
|
|
15
|
+
return Promise.all(agents.map(async (agent) => {
|
|
16
|
+
const id = `code-apps-plugin:${agent.id}`;
|
|
17
|
+
const command = codeAppsPlugin.probes[agent.id];
|
|
18
|
+
if (!command) {
|
|
19
|
+
return {
|
|
20
|
+
agent,
|
|
21
|
+
id,
|
|
22
|
+
state: 'not-observable',
|
|
23
|
+
detail: `${agent.label} has no allowlisted plugin-list probe.`,
|
|
24
|
+
remedy: codeAppsPluginGuidance(agent)
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const result = await runner.run(command, { cwd, timeoutMs: 15_000 });
|
|
28
|
+
if (result.errorCode === 'ENOENT' || result.errorCode === 'UNKNOWN') {
|
|
29
|
+
return {
|
|
30
|
+
agent,
|
|
31
|
+
id,
|
|
32
|
+
state: 'not-observable',
|
|
33
|
+
detail: `${agent.label} is unavailable, so plugin state cannot be observed.`,
|
|
34
|
+
remedy: codeAppsPluginGuidance(agent)
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
if (result.status !== 0 || result.timedOut) {
|
|
38
|
+
return {
|
|
39
|
+
agent,
|
|
40
|
+
id,
|
|
41
|
+
state: 'not-observable',
|
|
42
|
+
detail: result.timedOut
|
|
43
|
+
? `${agent.label} plugin-list probe timed out.`
|
|
44
|
+
: (result.stderr || result.errorMessage || `${agent.label} does not expose plugin state through this command.`)
|
|
45
|
+
.trim()
|
|
46
|
+
.split(/\r?\n/)[0],
|
|
47
|
+
remedy: codeAppsPluginGuidance(agent)
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const installed = `${result.stdout}\n${result.stderr}`
|
|
51
|
+
.toLowerCase()
|
|
52
|
+
.includes(codeAppsPlugin.id);
|
|
53
|
+
return installed
|
|
54
|
+
? {
|
|
55
|
+
agent,
|
|
56
|
+
id,
|
|
57
|
+
state: 'ready',
|
|
58
|
+
detail: `${codeAppsPluginIdentity()} ${codeAppsPlugin.version} is reported by ${agent.label}.`
|
|
59
|
+
}
|
|
60
|
+
: {
|
|
61
|
+
agent,
|
|
62
|
+
id,
|
|
63
|
+
state: 'missing',
|
|
64
|
+
detail: `${codeAppsPluginIdentity()} is not listed by ${agent.label}.`,
|
|
65
|
+
remedy: codeAppsPluginGuidance(agent)
|
|
66
|
+
};
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=code-apps-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-apps-plugin.js","sourceRoot":"","sources":["../src/code-apps-plugin.ts"],"names":[],"mappings":"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"}
|
package/dist/commands.d.ts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
import type { Readable } from 'node:stream';
|
|
1
2
|
import { type CommandRunner } from './process-runner.js';
|
|
3
|
+
import { type PresentationSessionOptions } from './terminal.js';
|
|
2
4
|
import type { ParsedArgs, ProjectOptions } from './types.js';
|
|
3
5
|
export interface CommandContext {
|
|
4
6
|
cwd: string;
|
|
5
7
|
stdout: NodeJS.WritableStream;
|
|
6
8
|
stderr: NodeJS.WritableStream;
|
|
9
|
+
stdin?: Readable;
|
|
7
10
|
runner?: CommandRunner;
|
|
11
|
+
terminal?: Pick<PresentationSessionOptions, 'columns' | 'color' | 'snapshot' | 'env' | 'layout' | 'normalize'>;
|
|
8
12
|
}
|
|
9
13
|
export declare function runCommand(parsed: ParsedArgs, context: CommandContext): Promise<number>;
|
|
10
14
|
interface DoctorCheck {
|