@codyswann/lisa 2.277.4 → 2.278.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/dist/cli/ui-automations-adapters.d.ts +22 -0
- package/dist/cli/ui-automations-adapters.d.ts.map +1 -1
- package/dist/cli/ui-automations-adapters.js +24 -12
- package/dist/cli/ui-automations-adapters.js.map +1 -1
- package/dist/cli/ui-automations.d.ts +1 -0
- package/dist/cli/ui-automations.d.ts.map +1 -1
- package/dist/cli/ui-automations.js +1 -0
- package/dist/cli/ui-automations.js.map +1 -1
- package/dist/cli/ui-cmd.d.ts +4 -1
- package/dist/cli/ui-cmd.d.ts.map +1 -1
- package/dist/cli/ui-cmd.js +72 -17
- package/dist/cli/ui-cmd.js.map +1 -1
- package/dist/cli/ui-confined-project-read.d.ts +22 -0
- package/dist/cli/ui-confined-project-read.d.ts.map +1 -0
- package/dist/cli/ui-confined-project-read.js +38 -0
- package/dist/cli/ui-confined-project-read.js.map +1 -0
- package/dist/cli/ui-deploy-pipeline.d.ts.map +1 -1
- package/dist/cli/ui-deploy-pipeline.js +4 -15
- package/dist/cli/ui-deploy-pipeline.js.map +1 -1
- package/dist/cli/ui-detected-stacks.d.ts +9 -8
- package/dist/cli/ui-detected-stacks.d.ts.map +1 -1
- package/dist/cli/ui-detected-stacks.js +111 -0
- package/dist/cli/ui-detected-stacks.js.map +1 -1
- package/dist/cli/ui-github-repo-gh.d.ts +6 -0
- package/dist/cli/ui-github-repo-gh.d.ts.map +1 -1
- package/dist/cli/ui-github-repo-gh.js.map +1 -1
- package/dist/cli/ui-github-repo-map.d.ts.map +1 -1
- package/dist/cli/ui-github-repo-map.js +26 -1
- package/dist/cli/ui-github-repo-map.js.map +1 -1
- package/dist/cli/ui-setup-readiness-config.d.ts +28 -0
- package/dist/cli/ui-setup-readiness-config.d.ts.map +1 -0
- package/dist/cli/ui-setup-readiness-config.js +116 -0
- package/dist/cli/ui-setup-readiness-config.js.map +1 -0
- package/dist/cli/ui-setup-readiness-contract.d.ts +32 -0
- package/dist/cli/ui-setup-readiness-contract.d.ts.map +1 -0
- package/dist/cli/ui-setup-readiness-contract.js +61 -0
- package/dist/cli/ui-setup-readiness-contract.js.map +1 -0
- package/dist/cli/ui-setup-readiness-install.d.ts +24 -0
- package/dist/cli/ui-setup-readiness-install.d.ts.map +1 -0
- package/dist/cli/ui-setup-readiness-install.js +207 -0
- package/dist/cli/ui-setup-readiness-install.js.map +1 -0
- package/dist/cli/ui-setup-readiness-local.d.ts +40 -0
- package/dist/cli/ui-setup-readiness-local.d.ts.map +1 -0
- package/dist/cli/ui-setup-readiness-local.js +235 -0
- package/dist/cli/ui-setup-readiness-local.js.map +1 -0
- package/dist/cli/ui-setup-readiness-remote.d.ts +30 -0
- package/dist/cli/ui-setup-readiness-remote.d.ts.map +1 -0
- package/dist/cli/ui-setup-readiness-remote.js +108 -0
- package/dist/cli/ui-setup-readiness-remote.js.map +1 -0
- package/dist/cli/ui-setup-readiness.d.ts +52 -0
- package/dist/cli/ui-setup-readiness.d.ts.map +1 -0
- package/dist/cli/ui-setup-readiness.js +125 -0
- package/dist/cli/ui-setup-readiness.js.map +1 -0
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +14 -2
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/health/read-only-fs.d.ts +7 -0
- package/dist/health/read-only-fs.d.ts.map +1 -1
- package/dist/health/read-only-fs.js +40 -1
- package/dist/health/read-only-fs.js.map +1 -1
- package/dist/sync/registry.d.ts +14 -0
- package/dist/sync/registry.d.ts.map +1 -1
- package/dist/sync/registry.js +54 -15
- package/dist/sync/registry.js.map +1 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/scripts/automation-status-codex-adapter.mjs +270 -23
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/scripts/automation-status-codex-adapter.mjs +270 -23
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/scripts/automation-status-codex-adapter.mjs +270 -23
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/scripts/automation-status-codex-adapter.mjs +270 -23
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/scripts/automation-status-codex-adapter.mjs +270 -23
- package/ui/index.html +1 -1
|
@@ -1,9 +1,30 @@
|
|
|
1
|
+
import type { JsonObject } from "../sync/json-path.js";
|
|
1
2
|
import type { ClaudeAutomationLister, ClaudeScheduleListingReader, CodexAutomationLister, CodexDirReadableCheck, HarnessAutomationObservation, ProjectIdentityResolver } from "./ui-automations.js";
|
|
2
3
|
/**
|
|
3
4
|
* Default Codex automations directory (`$CODEX_HOME/automations` or `~/.codex/automations`).
|
|
4
5
|
* @returns Absolute directory path
|
|
5
6
|
*/
|
|
6
7
|
export declare function resolveDefaultCodexAutomationsDir(): string;
|
|
8
|
+
/** Minimal expected-fleet entry consumed by setup readiness. */
|
|
9
|
+
export interface ExpectedAutomationEntry {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
readonly automationId: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Resolve applicable automations through setup-automations' shared contract.
|
|
15
|
+
* @param config - Current merged Lisa config
|
|
16
|
+
* @param detectedTypes - Authoritatively detected project types
|
|
17
|
+
* @param gitRemoteUrl - Optional origin fallback for repository identity
|
|
18
|
+
* @returns Applicable expected entries; unsupported loops are excluded
|
|
19
|
+
*/
|
|
20
|
+
export declare function resolveExpectedAutomationEntries(config: JsonObject, detectedTypes: readonly string[], gitRemoteUrl?: string): Promise<readonly ExpectedAutomationEntry[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Read the origin remote URL via git without a shell.
|
|
23
|
+
* @param cwd - Project root
|
|
24
|
+
* @param signal - Abort signal
|
|
25
|
+
* @returns Origin URL, or undefined when unavailable
|
|
26
|
+
*/
|
|
27
|
+
export declare function readOriginRemote(cwd: string, signal: AbortSignal): Promise<string | undefined>;
|
|
7
28
|
/** Raw adapter fields normalized by {@link toObservation}. */
|
|
8
29
|
export interface AdapterObservationInput {
|
|
9
30
|
readonly automationId: string;
|
|
@@ -27,6 +48,7 @@ export declare const defaultResolveIdentity: ProjectIdentityResolver;
|
|
|
27
48
|
/**
|
|
28
49
|
* Default Codex directory readability check.
|
|
29
50
|
* @param automationsDir - Directory to probe
|
|
51
|
+
* @param signal - Probe cancellation signal
|
|
30
52
|
* @returns Whether the directory is readable
|
|
31
53
|
*/
|
|
32
54
|
export declare const defaultCodexDirReadable: CodexDirReadableCheck;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-automations-adapters.d.ts","sourceRoot":"","sources":["../../src/cli/ui-automations-adapters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ui-automations-adapters.d.ts","sourceRoot":"","sources":["../../src/cli/ui-automations-adapters.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,KAAK,EAEV,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAqC7B;;;GAGG;AACH,wBAAgB,iCAAiC,IAAI,MAAM,CAO1D;AAYD,gEAAgE;AAChE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,SAAS,uBAAuB,EAAE,CAAC,CAa7C;AAWD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAY7B;AAED,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,uBAAuB,GAC7B,4BAA4B,CAS9B;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,uBAepC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,qBAarC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,EAAE,2BAC7B,CAAC;AAEnB;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE,qBAOvC,CAAC;AAEJ;;;GAGG;AACH,wBAAsB,gCAAgC,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAQxF"}
|
|
@@ -12,8 +12,7 @@ import * as os from "node:os";
|
|
|
12
12
|
import * as path from "node:path";
|
|
13
13
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
14
14
|
import { promisify } from "node:util";
|
|
15
|
-
import {
|
|
16
|
-
import { deepMerge, readJsonOrNull } from "../utils/index.js";
|
|
15
|
+
import { readConfinedMergedConfig } from "./ui-confined-project-read.js";
|
|
17
16
|
const execFileAsync = promisify(execFile);
|
|
18
17
|
/**
|
|
19
18
|
* Walk parents until a package-root-relative file exists.
|
|
@@ -64,17 +63,28 @@ async function loadAdapterModule(scriptName) {
|
|
|
64
63
|
const scriptPath = resolveAutomationStatusScript(scriptName);
|
|
65
64
|
return import(pathToFileURL(scriptPath).href);
|
|
66
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Resolve applicable automations through setup-automations' shared contract.
|
|
68
|
+
* @param config - Current merged Lisa config
|
|
69
|
+
* @param detectedTypes - Authoritatively detected project types
|
|
70
|
+
* @param gitRemoteUrl - Optional origin fallback for repository identity
|
|
71
|
+
* @returns Applicable expected entries; unsupported loops are excluded
|
|
72
|
+
*/
|
|
73
|
+
export async function resolveExpectedAutomationEntries(config, detectedTypes, gitRemoteUrl) {
|
|
74
|
+
const { resolveExpectedAutomationFleet } = await loadAdapterModule("automation-status-expected-fleet.mjs");
|
|
75
|
+
return resolveExpectedAutomationFleet({
|
|
76
|
+
config,
|
|
77
|
+
detectedTypes,
|
|
78
|
+
...(gitRemoteUrl === undefined ? {} : { gitRemoteUrl }),
|
|
79
|
+
}).expected;
|
|
80
|
+
}
|
|
67
81
|
/**
|
|
68
82
|
* Read merged Lisa config for identity resolution.
|
|
69
83
|
* @param cwd - Project root
|
|
70
84
|
* @returns Merged config object
|
|
71
85
|
*/
|
|
72
86
|
async function readMergedConfig(cwd) {
|
|
73
|
-
|
|
74
|
-
const local = await readJsonOrNull(path.join(cwd, ".lisa.config.local.json"));
|
|
75
|
-
const committedObject = isJsonObject(committed) ? committed : {};
|
|
76
|
-
const localObject = isJsonObject(local) ? local : {};
|
|
77
|
-
return deepMerge(committedObject, localObject);
|
|
87
|
+
return await readConfinedMergedConfig(cwd);
|
|
78
88
|
}
|
|
79
89
|
/**
|
|
80
90
|
* Read the origin remote URL via git without a shell.
|
|
@@ -82,11 +92,9 @@ async function readMergedConfig(cwd) {
|
|
|
82
92
|
* @param signal - Abort signal
|
|
83
93
|
* @returns Origin URL, or undefined when unavailable
|
|
84
94
|
*/
|
|
85
|
-
async function readOriginRemote(cwd, signal) {
|
|
95
|
+
export async function readOriginRemote(cwd, signal) {
|
|
86
96
|
try {
|
|
87
|
-
const { stdout } = await execFileAsync(
|
|
88
|
-
// eslint-disable-next-line sonarjs/no-os-command-from-path -- fixed user-installed git executable
|
|
89
|
-
"git", ["-C", cwd, "remote", "get-url", "origin"], { cwd, signal, timeout: 2_500, encoding: "utf8" });
|
|
97
|
+
const { stdout } = await execFileAsync("git", ["-C", cwd, "remote", "get-url", "origin"], { cwd, signal, timeout: 2_500, encoding: "utf8" });
|
|
90
98
|
const remote = stdout.trim();
|
|
91
99
|
return remote.length > 0 ? remote : undefined;
|
|
92
100
|
}
|
|
@@ -124,14 +132,18 @@ export const defaultResolveIdentity = async (cwd, signal) => {
|
|
|
124
132
|
/**
|
|
125
133
|
* Default Codex directory readability check.
|
|
126
134
|
* @param automationsDir - Directory to probe
|
|
135
|
+
* @param signal - Probe cancellation signal
|
|
127
136
|
* @returns Whether the directory is readable
|
|
128
137
|
*/
|
|
129
|
-
export const defaultCodexDirReadable = async (automationsDir) => {
|
|
138
|
+
export const defaultCodexDirReadable = async (automationsDir, signal) => {
|
|
139
|
+
signal.throwIfAborted();
|
|
130
140
|
try {
|
|
131
141
|
await access(automationsDir, fsConstants.R_OK);
|
|
142
|
+
signal.throwIfAborted();
|
|
132
143
|
return true;
|
|
133
144
|
}
|
|
134
145
|
catch {
|
|
146
|
+
signal.throwIfAborted();
|
|
135
147
|
return false;
|
|
136
148
|
}
|
|
137
149
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-automations-adapters.js","sourceRoot":"","sources":["../../src/cli/ui-automations-adapters.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ui-automations-adapters.js","sourceRoot":"","sources":["../../src/cli/ui-automations-adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,7 @@ export type ProjectIdentityResolver = (cwd: string, signal: AbortSignal) => Prom
|
|
|
48
48
|
export type CodexAutomationLister = (input: {
|
|
49
49
|
readonly automationsDir?: string;
|
|
50
50
|
readonly automationPrefix: string;
|
|
51
|
+
readonly signal?: AbortSignal;
|
|
51
52
|
}) => Promise<readonly HarnessAutomationObservation[]>;
|
|
52
53
|
/** List Claude `/schedule` automations matching a prefix (adapter seam). */
|
|
53
54
|
export type ClaudeAutomationLister = (input: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-automations.d.ts","sourceRoot":"","sources":["../../src/cli/ui-automations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAU/D,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AASlD,gEAAgE;AAChE,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,+DAA+D;AAC/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;IACrC,iFAAiF;IACjF,QAAQ,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC;CACnC,CAAC;AAEF,wEAAwE;AACxE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,kEAAkE;AAClE,MAAM,MAAM,uBAAuB,GAAG,CACpC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAExC,+DAA+D;AAC/D,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-automations.d.ts","sourceRoot":"","sources":["../../src/cli/ui-automations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-automations.js","sourceRoot":"","sources":["../../src/cli/ui-automations.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,gCAAgC,EAChC,sBAAsB,EACtB,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,8BAA8B,CAAC;AAEtC,6EAA6E;AAC7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAElD,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAC/B,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AACpD,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AACtD,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AACpD,MAAM,6BAA6B,GACjC,kHAAkH,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-automations.js","sourceRoot":"","sources":["../../src/cli/ui-automations.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/ui-cmd.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as http from "node:http";
|
|
2
|
-
import {
|
|
2
|
+
import type { JsonObject } from "../sync/json-path.js";
|
|
3
3
|
import { type RemoteEnvironmentStatus } from "./remote-environment.js";
|
|
4
4
|
import { type StatusProbe } from "./ui-status.js";
|
|
5
5
|
import { type UiHealthDependencies } from "./ui-health.js";
|
|
6
|
+
import { type SetupReadinessDependencies } from "./ui-setup-readiness.js";
|
|
6
7
|
export { createGithubAuthProbe, runProbe, type GitRemoteReader, type GithubAuthCheck, type ProbeResult, type StatusProbe, } from "./ui-status.js";
|
|
7
8
|
export { createGithubRepoProbe } from "./ui-github-repo.js";
|
|
8
9
|
export { createEnabledPluginsProbe, buildEnabledPluginsValue, listMarketplacePluginsFromDisk, type EnabledPluginRow, type EnabledPluginsValue, type MarketplacePlugin, } from "./ui-enabled-plugins.js";
|
|
@@ -27,6 +28,8 @@ export interface UiRuntimeDependencies {
|
|
|
27
28
|
readonly probes?: readonly StatusProbe[];
|
|
28
29
|
/** Health storage and execution boundaries exposed by /api/health. */
|
|
29
30
|
readonly health?: Partial<UiHealthDependencies>;
|
|
31
|
+
/** Read-only setup-readiness boundaries exposed by /api/setup-readiness. */
|
|
32
|
+
readonly setupReadiness?: SetupReadinessDependencies;
|
|
30
33
|
}
|
|
31
34
|
/**
|
|
32
35
|
* Locate the packaged `ui/index.html` by walking up from this module until a
|
package/dist/cli/ui-cmd.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/ui-cmd.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAIlC,OAAO,
|
|
1
|
+
{"version":3,"file":"ui-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/ui-cmd.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAIlC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGL,KAAK,0BAA0B,EAEhC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,QAAQ,EACR,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,8BAA8B,EAC9B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iCAAiC,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,6CAA6C;AAC7C,eAAO,MAAM,eAAe,OAAO,CAAC;AAKpC,iCAAiC;AACjC,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,sDAAsD;AACtD,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChD,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,0BAA0B,CAAC;CACtD;AAYD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUnD;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EAClB,iBAAiB,GAAE,uBAIlB,GACA,MAAM,CAQR;AAuPD;;;;;;GAMG;AACH,wBAAsB,KAAK,CACzB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,GAAE,YAAiB,EAC1B,YAAY,GAAE,qBAA0B,GACvC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAqDtB"}
|
package/dist/cli/ui-cmd.js
CHANGED
|
@@ -14,8 +14,6 @@ import * as http from "node:http";
|
|
|
14
14
|
import * as path from "node:path";
|
|
15
15
|
import { fileURLToPath } from "node:url";
|
|
16
16
|
import { runConfigSync } from "../sync/config-sync.js";
|
|
17
|
-
import { isJsonObject } from "../sync/json-path.js";
|
|
18
|
-
import { deepMerge, readJsonOrNull } from "../utils/index.js";
|
|
19
17
|
import { printSyncReport } from "./sync-cmd.js";
|
|
20
18
|
import { inspectRemoteEnvironment, } from "./remote-environment.js";
|
|
21
19
|
import { createCiQualityJobsProbe } from "./ui-ci-quality-jobs.js";
|
|
@@ -29,6 +27,7 @@ import { createAutomationsProbe } from "./ui-automations.js";
|
|
|
29
27
|
import { createObservabilityProviderProbes } from "./ui-observability-providers.js";
|
|
30
28
|
import { serveConfigWrite } from "./ui-config-write.js";
|
|
31
29
|
import { createUiHealthHandler, } from "./ui-health.js";
|
|
30
|
+
import { createSetupReadinessReader, readMergedUiConfig, } from "./ui-setup-readiness.js";
|
|
32
31
|
export { createGithubAuthProbe, runProbe, } from "./ui-status.js";
|
|
33
32
|
export { createGithubRepoProbe } from "./ui-github-repo.js";
|
|
34
33
|
export { createEnabledPluginsProbe, buildEnabledPluginsValue, listMarketplacePluginsFromDisk, } from "./ui-enabled-plugins.js";
|
|
@@ -70,18 +69,6 @@ export function findUiHtml(startDir) {
|
|
|
70
69
|
}
|
|
71
70
|
return findUiHtml(parent);
|
|
72
71
|
}
|
|
73
|
-
/**
|
|
74
|
-
* Read the project's merged config view (local overlay wins per key).
|
|
75
|
-
* @param destDir - Project root
|
|
76
|
-
* @returns Merged config object
|
|
77
|
-
*/
|
|
78
|
-
async function readMergedConfig(destDir) {
|
|
79
|
-
const committed = await readJsonOrNull(path.join(destDir, ".lisa.config.json"));
|
|
80
|
-
const local = await readJsonOrNull(path.join(destDir, ".lisa.config.local.json"));
|
|
81
|
-
const committedObject = isJsonObject(committed) ? committed : {};
|
|
82
|
-
const localObject = isJsonObject(local) ? local : {};
|
|
83
|
-
return deepMerge(committedObject, localObject);
|
|
84
|
-
}
|
|
85
72
|
/**
|
|
86
73
|
* Inject the live config into the console HTML as a script tag. The JSON is
|
|
87
74
|
* escaped so a value containing `</script>` cannot break out of the tag.
|
|
@@ -122,6 +109,27 @@ function createStatusSnapshotReader(probes) {
|
|
|
122
109
|
return inFlight;
|
|
123
110
|
};
|
|
124
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Coalesce concurrent first-open setup reads without caching later requests.
|
|
114
|
+
* @param readCurrent - Current projection reader
|
|
115
|
+
* @returns Single-flight reader that clears after settlement
|
|
116
|
+
*/
|
|
117
|
+
function createSetupReadinessSnapshotReader(readCurrent) {
|
|
118
|
+
// eslint-disable-next-line functional/no-let -- single-flight state clears after settlement
|
|
119
|
+
let inFlight;
|
|
120
|
+
return () => {
|
|
121
|
+
if (inFlight === undefined) {
|
|
122
|
+
const pending = readCurrent();
|
|
123
|
+
inFlight = pending;
|
|
124
|
+
const clear = () => {
|
|
125
|
+
if (inFlight === pending)
|
|
126
|
+
inFlight = undefined;
|
|
127
|
+
};
|
|
128
|
+
void pending.then(clear, clear);
|
|
129
|
+
}
|
|
130
|
+
return inFlight;
|
|
131
|
+
};
|
|
132
|
+
}
|
|
125
133
|
/**
|
|
126
134
|
* Serve the same-origin live-status endpoint.
|
|
127
135
|
* @param request - Incoming loopback request
|
|
@@ -164,6 +172,44 @@ function serveStatus(request, response, readSnapshot) {
|
|
|
164
172
|
}));
|
|
165
173
|
});
|
|
166
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Serve a current, non-persisted Setup readiness projection.
|
|
177
|
+
* @param request - Incoming loopback request
|
|
178
|
+
* @param response - Response associated with the request
|
|
179
|
+
* @param readCurrent - Current projection reader
|
|
180
|
+
*/
|
|
181
|
+
function serveSetupReadiness(request, response, readCurrent) {
|
|
182
|
+
if (request.method === "HEAD") {
|
|
183
|
+
response.writeHead(200, {
|
|
184
|
+
"cache-control": NO_STORE,
|
|
185
|
+
"content-type": JSON_CONTENT_TYPE,
|
|
186
|
+
});
|
|
187
|
+
response.end();
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
if (request.method !== "GET") {
|
|
191
|
+
response.writeHead(405, {
|
|
192
|
+
allow: "GET, HEAD",
|
|
193
|
+
"cache-control": NO_STORE,
|
|
194
|
+
"content-type": TEXT_CONTENT_TYPE,
|
|
195
|
+
});
|
|
196
|
+
response.end("Method not allowed");
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
void readCurrent().then(result => {
|
|
200
|
+
response.writeHead(200, {
|
|
201
|
+
"cache-control": NO_STORE,
|
|
202
|
+
"content-type": JSON_CONTENT_TYPE,
|
|
203
|
+
});
|
|
204
|
+
response.end(JSON.stringify(result));
|
|
205
|
+
}, () => {
|
|
206
|
+
response.writeHead(500, {
|
|
207
|
+
"cache-control": NO_STORE,
|
|
208
|
+
"content-type": JSON_CONTENT_TYPE,
|
|
209
|
+
});
|
|
210
|
+
response.end(JSON.stringify({ error: "Unable to observe setup readiness" }));
|
|
211
|
+
});
|
|
212
|
+
}
|
|
167
213
|
/**
|
|
168
214
|
* Parse an HTTP request target without allowing malformed input to escape.
|
|
169
215
|
* @param requestUrl - Raw request target supplied by Node HTTP
|
|
@@ -205,11 +251,13 @@ function isLoopbackHost(host) {
|
|
|
205
251
|
* @param probes - Live-status probes registered for this server
|
|
206
252
|
* @param destDir - Project root served by this UI process
|
|
207
253
|
* @param healthDependencies - Injectable Health v1 storage/run boundaries
|
|
254
|
+
* @param setupReadinessDependencies - Injectable read-only Setup boundaries
|
|
208
255
|
* @returns Loopback HTTP request handler
|
|
209
256
|
*/
|
|
210
|
-
function createUiRequestHandler(page, probes, destDir, healthDependencies = {}) {
|
|
257
|
+
function createUiRequestHandler(page, probes, destDir, healthDependencies = {}, setupReadinessDependencies = {}) {
|
|
211
258
|
const readSnapshot = createStatusSnapshotReader(probes);
|
|
212
259
|
const serveHealth = createUiHealthHandler(destDir, healthDependencies);
|
|
260
|
+
const readCurrentSetup = createSetupReadinessSnapshotReader(createSetupReadinessReader(destDir, setupReadinessDependencies));
|
|
213
261
|
validateStatusProbes(probes);
|
|
214
262
|
return (request, response) => {
|
|
215
263
|
if (!isLoopbackHost(request.headers.host)) {
|
|
@@ -235,6 +283,10 @@ function createUiRequestHandler(page, probes, destDir, healthDependencies = {})
|
|
|
235
283
|
serveHealth(request, response);
|
|
236
284
|
return;
|
|
237
285
|
}
|
|
286
|
+
if (pathname === "/api/setup-readiness") {
|
|
287
|
+
serveSetupReadiness(request, response, readCurrentSetup);
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
238
290
|
if (pathname === "/" || pathname === "/index.html") {
|
|
239
291
|
response.writeHead(200, { "content-type": "text/html; charset=utf-8" });
|
|
240
292
|
response.end(page);
|
|
@@ -264,7 +316,10 @@ export async function runUi(targetPath, options = {}, dependencies = {}) {
|
|
|
264
316
|
const moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
265
317
|
const htmlPath = findUiHtml(moduleDir);
|
|
266
318
|
const html = await readFile(htmlPath, "utf8");
|
|
267
|
-
|
|
319
|
+
// Keep the read-only console available when config is malformed or unsafe;
|
|
320
|
+
// probes receive no claims instead of importing untrusted evidence. The
|
|
321
|
+
// config write endpoint still reads the originals strictly and fails closed.
|
|
322
|
+
const config = await readMergedUiConfig(destDir).catch(() => ({}));
|
|
268
323
|
const remoteEnvironment = await inspectRemoteEnvironment(destDir, config, getProcessEnvironment());
|
|
269
324
|
const page = injectLiveConfig(html, config, remoteEnvironment);
|
|
270
325
|
const probes = dependencies.probes ?? [
|
|
@@ -278,7 +333,7 @@ export async function runUi(targetPath, options = {}, dependencies = {}) {
|
|
|
278
333
|
...createObservabilityProviderProbes(),
|
|
279
334
|
createAutomationsProbe({ cwd: destDir }),
|
|
280
335
|
];
|
|
281
|
-
const server = http.createServer(createUiRequestHandler(page, probes, destDir, dependencies.health));
|
|
336
|
+
const server = http.createServer(createUiRequestHandler(page, probes, destDir, dependencies.health, dependencies.setupReadiness));
|
|
282
337
|
await new Promise(resolve => {
|
|
283
338
|
server.listen(port, "127.0.0.1", resolve);
|
|
284
339
|
});
|
package/dist/cli/ui-cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-cmd.js","sourceRoot":"","sources":["../../src/cli/ui-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,6FAA6F;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-cmd.js","sourceRoot":"","sources":["../../src/cli/ui-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type JsonObject } from "../sync/json-path.js";
|
|
2
|
+
/**
|
|
3
|
+
* Read one project-relative text file through deterministic Health confinement.
|
|
4
|
+
* @param projectRoot - Project root, canonicalized before the read
|
|
5
|
+
* @param relativePath - Strict project-relative path
|
|
6
|
+
* @returns Bounded UTF-8 text, or undefined when absent
|
|
7
|
+
*/
|
|
8
|
+
export declare function readConfinedProjectText(projectRoot: string, relativePath: string): Promise<string | undefined>;
|
|
9
|
+
/**
|
|
10
|
+
* Read and parse one confined JSON file.
|
|
11
|
+
* @param projectRoot - Project root
|
|
12
|
+
* @param relativePath - Strict project-relative JSON path
|
|
13
|
+
* @returns Parsed JSON, or undefined when absent
|
|
14
|
+
*/
|
|
15
|
+
export declare function readConfinedProjectJson(projectRoot: string, relativePath: string): Promise<unknown | undefined>;
|
|
16
|
+
/**
|
|
17
|
+
* Read committed-plus-local Lisa config without following unsafe files.
|
|
18
|
+
* @param projectRoot - Project root
|
|
19
|
+
* @returns Merged config with the local overlay winning per key
|
|
20
|
+
*/
|
|
21
|
+
export declare function readConfinedMergedConfig(projectRoot: string): Promise<JsonObject>;
|
|
22
|
+
//# sourceMappingURL=ui-confined-project-read.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-confined-project-read.d.ts","sourceRoot":"","sources":["../../src/cli/ui-confined-project-read.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGrE;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAG7B;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAG9B;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,CAAC,CASrB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/** Bounded, no-follow local project reads shared by localhost UI probes. */
|
|
2
|
+
import { realpath } from "node:fs/promises";
|
|
3
|
+
import { readProjectText } from "../health/read-only-fs.js";
|
|
4
|
+
import { isJsonObject } from "../sync/json-path.js";
|
|
5
|
+
import { deepMerge } from "../utils/index.js";
|
|
6
|
+
/**
|
|
7
|
+
* Read one project-relative text file through deterministic Health confinement.
|
|
8
|
+
* @param projectRoot - Project root, canonicalized before the read
|
|
9
|
+
* @param relativePath - Strict project-relative path
|
|
10
|
+
* @returns Bounded UTF-8 text, or undefined when absent
|
|
11
|
+
*/
|
|
12
|
+
export async function readConfinedProjectText(projectRoot, relativePath) {
|
|
13
|
+
const root = await realpath(projectRoot);
|
|
14
|
+
return await readProjectText(root, relativePath);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Read and parse one confined JSON file.
|
|
18
|
+
* @param projectRoot - Project root
|
|
19
|
+
* @param relativePath - Strict project-relative JSON path
|
|
20
|
+
* @returns Parsed JSON, or undefined when absent
|
|
21
|
+
*/
|
|
22
|
+
export async function readConfinedProjectJson(projectRoot, relativePath) {
|
|
23
|
+
const text = await readConfinedProjectText(projectRoot, relativePath);
|
|
24
|
+
return text === undefined ? undefined : JSON.parse(text);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Read committed-plus-local Lisa config without following unsafe files.
|
|
28
|
+
* @param projectRoot - Project root
|
|
29
|
+
* @returns Merged config with the local overlay winning per key
|
|
30
|
+
*/
|
|
31
|
+
export async function readConfinedMergedConfig(projectRoot) {
|
|
32
|
+
const [committed, local] = await Promise.all([
|
|
33
|
+
readConfinedProjectJson(projectRoot, ".lisa.config.json"),
|
|
34
|
+
readConfinedProjectJson(projectRoot, ".lisa.config.local.json"),
|
|
35
|
+
]);
|
|
36
|
+
return deepMerge(isJsonObject(committed) ? committed : {}, isJsonObject(local) ? local : {});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=ui-confined-project-read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-confined-project-read.js","sourceRoot":"","sources":["../../src/cli/ui-confined-project-read.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAmB,EACnB,YAAoB;IAEpB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;IACzC,OAAO,MAAM,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAmB,EACnB,YAAoB;IAEpB,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACtE,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAmB;IAEnB,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3C,uBAAuB,CAAC,WAAW,EAAE,mBAAmB,CAAC;QACzD,uBAAuB,CAAC,WAAW,EAAE,yBAAyB,CAAC;KAChE,CAAC,CAAC;IACH,OAAO,SAAS,CACd,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EACxC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CACnB,CAAC;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-deploy-pipeline.d.ts","sourceRoot":"","sources":["../../src/cli/ui-deploy-pipeline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ui-deploy-pipeline.d.ts","sourceRoot":"","sources":["../../src/cli/ui-deploy-pipeline.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAGL,KAAK,mBAAmB,EAExB,KAAK,wBAAwB,EAC9B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,GAC9B,MAAM,+BAA+B,CAAC;AAKvC,uDAAuD;AACvD,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtE,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CACpC,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAChC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACxC,CAAC;AAmIF;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,wBAAwB,CAAC,CAuBnC;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,YAAY,GAAE,0BAA+B,GAC5C,WAAW,CAAC,mBAAmB,CAAC,CA2BlC"}
|
|
@@ -7,13 +7,11 @@
|
|
|
7
7
|
* @module cli/ui-deploy-pipeline
|
|
8
8
|
*/
|
|
9
9
|
import { execFile } from "node:child_process";
|
|
10
|
-
import { access, readFile } from "node:fs/promises";
|
|
11
|
-
import * as path from "node:path";
|
|
12
10
|
import { isJsonObject } from "../sync/json-path.js";
|
|
13
|
-
import {
|
|
11
|
+
import { readConfinedMergedConfig, readConfinedProjectText, } from "./ui-confined-project-read.js";
|
|
14
12
|
import { buildDeployPipelineResult, DEPLOY_PIPELINE_PROBE_ID, } from "./ui-deploy-pipeline-model.js";
|
|
15
13
|
export { assembleDeployPipelineStages, buildDeployPipelineResult, DEPLOY_PIPELINE_PROBE_ID, mapEnvironmentHoldStage, parseDeployWorkflowStages, } from "./ui-deploy-pipeline-model.js";
|
|
16
|
-
const DEPLOY_YML_RELATIVE =
|
|
14
|
+
const DEPLOY_YML_RELATIVE = ".github/workflows/deploy.yml";
|
|
17
15
|
const DEFAULT_TIMEOUT_MS = 8_000;
|
|
18
16
|
/**
|
|
19
17
|
* Read deploy.yml when present; null when the project has no deploy workflow.
|
|
@@ -21,14 +19,7 @@ const DEFAULT_TIMEOUT_MS = 8_000;
|
|
|
21
19
|
* @returns File contents or null
|
|
22
20
|
*/
|
|
23
21
|
async function readDeployWorkflowDefault(cwd) {
|
|
24
|
-
|
|
25
|
-
try {
|
|
26
|
-
await access(filePath);
|
|
27
|
-
}
|
|
28
|
-
catch {
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
return await readFile(filePath, "utf8");
|
|
22
|
+
return (await readConfinedProjectText(cwd, DEPLOY_YML_RELATIVE)) ?? null;
|
|
32
23
|
}
|
|
33
24
|
/**
|
|
34
25
|
* Read configured environment names from merged Lisa config.
|
|
@@ -36,9 +27,7 @@ async function readDeployWorkflowDefault(cwd) {
|
|
|
36
27
|
* @returns Stable key order from the merged `github.environments` map
|
|
37
28
|
*/
|
|
38
29
|
async function readConfiguredEnvironmentsDefault(cwd) {
|
|
39
|
-
const
|
|
40
|
-
const local = await readJsonOrNull(path.join(cwd, ".lisa.config.local.json"));
|
|
41
|
-
const merged = deepMerge(isJsonObject(committed) ? committed : {}, isJsonObject(local) ? local : {});
|
|
30
|
+
const merged = await readConfinedMergedConfig(cwd);
|
|
42
31
|
const github = merged.github;
|
|
43
32
|
if (!isJsonObject(github)) {
|
|
44
33
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-deploy-pipeline.js","sourceRoot":"","sources":["../../src/cli/ui-deploy-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ui-deploy-pipeline.js","sourceRoot":"","sources":["../../src/cli/ui-deploy-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Live-status probe for the console Stacks section.
|
|
3
|
-
*
|
|
4
|
-
* Mirrors doctor's detection chain exactly so the console and `lisa doctor`
|
|
5
|
-
* can never disagree. An empty match is the honest empty value (`[]`), never
|
|
6
|
-
* unknown; the runner maps a thrown detector error to unknown.
|
|
7
|
-
* @module cli/ui-detected-stacks
|
|
8
|
-
*/
|
|
9
1
|
import { type DetectorRegistry } from "../detection/index.js";
|
|
2
|
+
import type { ProjectType } from "../core/config.js";
|
|
10
3
|
import type { StatusProbe } from "./ui-status.js";
|
|
11
4
|
/** Probe id for the detected-stacks live-status entry. */
|
|
12
5
|
export declare const DETECTED_STACKS_PROBE_ID = "detected-stacks";
|
|
6
|
+
/**
|
|
7
|
+
* Detect setup-automation stacks using only bounded, no-follow project reads.
|
|
8
|
+
* This mirrors the authoritative detector signals without invoking their
|
|
9
|
+
* legacy unbounded readers on the setup-readiness request path.
|
|
10
|
+
* @param destDir - Project root
|
|
11
|
+
* @returns Expanded types in canonical detector-registry order
|
|
12
|
+
*/
|
|
13
|
+
export declare function readConfinedDetectedStacks(destDir: string): Promise<readonly ProjectType[]>;
|
|
13
14
|
/**
|
|
14
15
|
* Create the probe that reports the project's detected stacks.
|
|
15
16
|
* @param destDir - Project root scanned by the detector registry
|