@codyswann/lisa 2.277.3 → 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.
Files changed (127) hide show
  1. package/dist/cli/index.d.ts.map +1 -1
  2. package/dist/cli/index.js +5 -2
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/cli/setup-project.d.ts.map +1 -1
  5. package/dist/cli/setup-project.js +12 -0
  6. package/dist/cli/setup-project.js.map +1 -1
  7. package/dist/cli/ui-automations-adapters.d.ts +22 -0
  8. package/dist/cli/ui-automations-adapters.d.ts.map +1 -1
  9. package/dist/cli/ui-automations-adapters.js +24 -12
  10. package/dist/cli/ui-automations-adapters.js.map +1 -1
  11. package/dist/cli/ui-automations.d.ts +1 -0
  12. package/dist/cli/ui-automations.d.ts.map +1 -1
  13. package/dist/cli/ui-automations.js +1 -0
  14. package/dist/cli/ui-automations.js.map +1 -1
  15. package/dist/cli/ui-cmd.d.ts +4 -1
  16. package/dist/cli/ui-cmd.d.ts.map +1 -1
  17. package/dist/cli/ui-cmd.js +72 -17
  18. package/dist/cli/ui-cmd.js.map +1 -1
  19. package/dist/cli/ui-confined-project-read.d.ts +22 -0
  20. package/dist/cli/ui-confined-project-read.d.ts.map +1 -0
  21. package/dist/cli/ui-confined-project-read.js +38 -0
  22. package/dist/cli/ui-confined-project-read.js.map +1 -0
  23. package/dist/cli/ui-deploy-pipeline.d.ts.map +1 -1
  24. package/dist/cli/ui-deploy-pipeline.js +4 -15
  25. package/dist/cli/ui-deploy-pipeline.js.map +1 -1
  26. package/dist/cli/ui-detected-stacks.d.ts +9 -8
  27. package/dist/cli/ui-detected-stacks.d.ts.map +1 -1
  28. package/dist/cli/ui-detected-stacks.js +111 -0
  29. package/dist/cli/ui-detected-stacks.js.map +1 -1
  30. package/dist/cli/ui-github-repo-gh.d.ts +6 -0
  31. package/dist/cli/ui-github-repo-gh.d.ts.map +1 -1
  32. package/dist/cli/ui-github-repo-gh.js.map +1 -1
  33. package/dist/cli/ui-github-repo-map.d.ts.map +1 -1
  34. package/dist/cli/ui-github-repo-map.js +26 -1
  35. package/dist/cli/ui-github-repo-map.js.map +1 -1
  36. package/dist/cli/ui-setup-readiness-config.d.ts +28 -0
  37. package/dist/cli/ui-setup-readiness-config.d.ts.map +1 -0
  38. package/dist/cli/ui-setup-readiness-config.js +116 -0
  39. package/dist/cli/ui-setup-readiness-config.js.map +1 -0
  40. package/dist/cli/ui-setup-readiness-contract.d.ts +32 -0
  41. package/dist/cli/ui-setup-readiness-contract.d.ts.map +1 -0
  42. package/dist/cli/ui-setup-readiness-contract.js +61 -0
  43. package/dist/cli/ui-setup-readiness-contract.js.map +1 -0
  44. package/dist/cli/ui-setup-readiness-install.d.ts +24 -0
  45. package/dist/cli/ui-setup-readiness-install.d.ts.map +1 -0
  46. package/dist/cli/ui-setup-readiness-install.js +207 -0
  47. package/dist/cli/ui-setup-readiness-install.js.map +1 -0
  48. package/dist/cli/ui-setup-readiness-local.d.ts +40 -0
  49. package/dist/cli/ui-setup-readiness-local.d.ts.map +1 -0
  50. package/dist/cli/ui-setup-readiness-local.js +235 -0
  51. package/dist/cli/ui-setup-readiness-local.js.map +1 -0
  52. package/dist/cli/ui-setup-readiness-remote.d.ts +30 -0
  53. package/dist/cli/ui-setup-readiness-remote.d.ts.map +1 -0
  54. package/dist/cli/ui-setup-readiness-remote.js +108 -0
  55. package/dist/cli/ui-setup-readiness-remote.js.map +1 -0
  56. package/dist/cli/ui-setup-readiness.d.ts +52 -0
  57. package/dist/cli/ui-setup-readiness.d.ts.map +1 -0
  58. package/dist/cli/ui-setup-readiness.js +125 -0
  59. package/dist/cli/ui-setup-readiness.js.map +1 -0
  60. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  61. package/dist/core/upstream-evidence-manifest.js +14 -2
  62. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  63. package/dist/health/read-only-fs.d.ts +7 -0
  64. package/dist/health/read-only-fs.d.ts.map +1 -1
  65. package/dist/health/read-only-fs.js +40 -1
  66. package/dist/health/read-only-fs.js.map +1 -1
  67. package/dist/sync/registry.d.ts +14 -0
  68. package/dist/sync/registry.d.ts.map +1 -1
  69. package/dist/sync/registry.js +54 -15
  70. package/dist/sync/registry.js.map +1 -1
  71. package/package.json +1 -1
  72. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  73. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  74. package/plugins/lisa/scripts/automation-status-codex-adapter.mjs +270 -23
  75. package/plugins/lisa-agy/plugin.json +1 -1
  76. package/plugins/lisa-agy/scripts/automation-status-codex-adapter.mjs +270 -23
  77. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  78. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  79. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  80. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  81. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  82. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  83. package/plugins/lisa-copilot/scripts/automation-status-codex-adapter.mjs +270 -23
  84. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  85. package/plugins/lisa-cursor/scripts/automation-status-codex-adapter.mjs +270 -23
  86. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  87. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  88. package/plugins/lisa-expo-agy/plugin.json +1 -1
  89. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  90. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  91. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  92. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  93. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  94. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  95. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  96. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  97. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  98. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  99. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  100. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  101. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  102. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  103. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  104. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  105. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  106. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  107. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  108. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  109. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  110. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  111. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  112. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  113. package/plugins/lisa-rails-agy/plugin.json +1 -1
  114. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  115. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  116. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  117. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  118. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  119. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  120. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  121. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  122. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  123. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  124. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  125. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  126. package/plugins/src/base/scripts/automation-status-codex-adapter.mjs +270 -23
  127. package/ui/index.html +1 -1
@@ -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":"AAaA,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;AAkJF;;;;;;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"}
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 { deepMerge, readJsonOrNull } from "../utils/index.js";
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 = path.join(".github", "workflows", "deploy.yml");
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
- const filePath = path.join(cwd, DEPLOY_YML_RELATIVE);
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 committed = await readJsonOrNull(path.join(cwd, ".lisa.config.json"));
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":"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"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"ui-detected-stacks.d.ts","sourceRoot":"","sources":["../../src/cli/ui-detected-stacks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,0DAA0D;AAC1D,eAAO,MAAM,wBAAwB,oBAAoB,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,gBAA2C,GACpD,WAAW,CAAC,MAAM,EAAE,CAAC,CAWvB"}
1
+ {"version":3,"file":"ui-detected-stacks.d.ts","sourceRoot":"","sources":["../../src/cli/ui-detected-stacks.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,0DAA0D;AAC1D,eAAO,MAAM,wBAAwB,oBAAoB,CAAC;AA4G1D;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAuBjC;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,gBAA2C,GACpD,WAAW,CAAC,MAAM,EAAE,CAAC,CAWvB"}
@@ -6,9 +6,120 @@
6
6
  * unknown; the runner maps a thrown detector error to unknown.
7
7
  * @module cli/ui-detected-stacks
8
8
  */
9
+ import { realpath } from "node:fs/promises";
9
10
  import { createDetectorRegistry, } from "../detection/index.js";
11
+ import { projectPathKind, readProjectText } from "../health/read-only-fs.js";
12
+ import { isJsonObject } from "../sync/json-path.js";
10
13
  /** Probe id for the detected-stacks live-status entry. */
11
14
  export const DETECTED_STACKS_PROBE_ID = "detected-stacks";
15
+ const PACKAGE_JSON_RELATIVE = "package.json";
16
+ const HARPER_CONFIG_RELATIVE = "harper-app/config.yaml";
17
+ const MARKER_NAMES = [
18
+ "tsconfig.json",
19
+ "app.json",
20
+ "eas.json",
21
+ "nest-cli.json",
22
+ "cdk.json",
23
+ HARPER_CONFIG_RELATIVE,
24
+ "harper-app/schema.graphql",
25
+ "bin/rails",
26
+ "config/application.rb",
27
+ ];
28
+ /**
29
+ * Return whether a confined regular marker file exists.
30
+ * @param root - Canonical project root
31
+ * @param relativePath - Project-relative marker path
32
+ * @returns Whether the marker is a regular no-follow file
33
+ */
34
+ async function confinedMarkerExists(root, relativePath) {
35
+ return (await projectPathKind(root, relativePath)) === "file";
36
+ }
37
+ /**
38
+ * Return package dependency names from a validated object.
39
+ * @param packageJson - Parsed package manifest
40
+ * @returns Production and development dependency names
41
+ */
42
+ function dependencyNames(packageJson) {
43
+ if (!isJsonObject(packageJson))
44
+ return [];
45
+ return [packageJson.dependencies, packageJson.devDependencies].flatMap(dependencies => isJsonObject(dependencies) ? Object.keys(dependencies) : []);
46
+ }
47
+ /**
48
+ * Return whether a parsed package manifest describes a publishable package.
49
+ * @param packageJson - Parsed package manifest
50
+ * @returns Whether the npm-package detector signal is present
51
+ */
52
+ function isPublishablePackage(packageJson) {
53
+ return (isJsonObject(packageJson) &&
54
+ packageJson.private !== true &&
55
+ (packageJson.main !== undefined ||
56
+ packageJson.bin !== undefined ||
57
+ packageJson.exports !== undefined ||
58
+ (Array.isArray(packageJson.files) && packageJson.files.length > 0)));
59
+ }
60
+ /**
61
+ * Return detector results from confined filesystem signals.
62
+ * @param signals - Bounded package, marker, and Harper evidence
63
+ * @returns Direct detector matches before parent expansion
64
+ */
65
+ function classifyDetectedTypes(signals) {
66
+ const hasMarker = (name) => signals.markers.has(name);
67
+ const hasDependency = (name) => signals.dependencies.includes(name);
68
+ const hasDependencyPrefix = (prefix) => signals.dependencies.some(name => name.startsWith(prefix));
69
+ const harperConfigMatches = signals.harperConfig?.includes("graphqlSchema:") === true &&
70
+ signals.harperConfig.includes("jsResource:") &&
71
+ signals.harperConfig.includes("static:");
72
+ return [
73
+ hasMarker("tsconfig.json") || hasDependency("typescript")
74
+ ? ["typescript"]
75
+ : [],
76
+ isPublishablePackage(signals.packageJson) ? ["npm-package"] : [],
77
+ hasMarker(HARPER_CONFIG_RELATIVE) &&
78
+ hasMarker("harper-app/schema.graphql") &&
79
+ (harperConfigMatches || hasDependency("harperdb"))
80
+ ? ["harper-fabric"]
81
+ : [],
82
+ hasDependency("phaser") ? ["phaser"] : [],
83
+ hasMarker("app.json") || hasMarker("eas.json") || hasDependency("expo")
84
+ ? ["expo"]
85
+ : [],
86
+ hasMarker("nest-cli.json") || hasDependencyPrefix("@nestjs")
87
+ ? ["nestjs"]
88
+ : [],
89
+ hasMarker("cdk.json") || hasDependencyPrefix("aws-cdk")
90
+ ? ["cdk"]
91
+ : [],
92
+ hasMarker("bin/rails") || hasMarker("config/application.rb")
93
+ ? ["rails"]
94
+ : [],
95
+ ].flat();
96
+ }
97
+ /**
98
+ * Detect setup-automation stacks using only bounded, no-follow project reads.
99
+ * This mirrors the authoritative detector signals without invoking their
100
+ * legacy unbounded readers on the setup-readiness request path.
101
+ * @param destDir - Project root
102
+ * @returns Expanded types in canonical detector-registry order
103
+ */
104
+ export async function readConfinedDetectedStacks(destDir) {
105
+ const root = await realpath(destDir);
106
+ const packageText = await readProjectText(root, PACKAGE_JSON_RELATIVE);
107
+ const packageJson = packageText === undefined
108
+ ? undefined
109
+ : JSON.parse(packageText);
110
+ const markerValues = await Promise.all(MARKER_NAMES.map(name => confinedMarkerExists(root, name)));
111
+ const markers = new Set(MARKER_NAMES.filter((_name, index) => markerValues[index]));
112
+ const harperConfig = markers.has(HARPER_CONFIG_RELATIVE)
113
+ ? await readProjectText(root, HARPER_CONFIG_RELATIVE)
114
+ : undefined;
115
+ const detected = classifyDetectedTypes({
116
+ packageJson,
117
+ dependencies: dependencyNames(packageJson),
118
+ markers,
119
+ harperConfig,
120
+ });
121
+ return createDetectorRegistry().expandAndOrderTypes([...detected]);
122
+ }
12
123
  /**
13
124
  * Create the probe that reports the project's detected stacks.
14
125
  * @param destDir - Project root scanned by the detector registry
@@ -1 +1 @@
1
- {"version":3,"file":"ui-detected-stacks.js","sourceRoot":"","sources":["../../src/cli/ui-detected-stacks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,sBAAsB,GAEvB,MAAM,uBAAuB,CAAC;AAG/B,0DAA0D;AAC1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,WAA6B,sBAAsB,EAAE;IAErD,OAAO;QACL,EAAE,EAAE,wBAAwB;QAC5B,SAAS,EAAE,KAAK;QAChB,GAAG,EAAE,KAAK,IAAI,EAAE;YACd,MAAM,KAAK,GAAG,QAAQ,CAAC,mBAAmB,CACxC,MAAM,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAClC,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QAC/C,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ui-detected-stacks.js","sourceRoot":"","sources":["../../src/cli/ui-detected-stacks.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,12 @@ export interface GithubRulesetRow {
18
18
  readonly appliesTo: string;
19
19
  readonly enforces: string;
20
20
  readonly active: boolean;
21
+ /** Structured default-branch targeting retained beside display text. */
22
+ readonly targetsDefaultBranch?: boolean;
23
+ /** Structured pull-request enforcement retained beside display text. */
24
+ readonly requiresPullRequest?: boolean;
25
+ /** At least one required status-check context is configured. */
26
+ readonly requiresStatusChecks?: boolean;
21
27
  }
22
28
  /** One label present on the remote repository. */
23
29
  export interface GithubRemoteLabel {
@@ -1 +1 @@
1
- {"version":3,"file":"ui-github-repo-gh.d.ts","sourceRoot":"","sources":["../../src/cli/ui-github-repo-gh.ts"],"names":[],"mappings":"AAWA,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,8DAA8D;AAC9D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,EAAE,CACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,CACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,CACnB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,CACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;CACjC;AAoFD,sDAAsD;AACtD,eAAO,MAAM,wBAAwB,EAAE,iBA0EtC,CAAC"}
1
+ {"version":3,"file":"ui-github-repo-gh.d.ts","sourceRoot":"","sources":["../../src/cli/ui-github-repo-gh.ts"],"names":[],"mappings":"AAWA,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,wEAAwE;IACxE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,wEAAwE;IACxE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,gEAAgE;IAChE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,8DAA8D;AAC9D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,EAAE,CACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,CACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,CACnB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,CACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;CACjC;AAoFD,sDAAsD;AACtD,eAAO,MAAM,wBAAwB,EAAE,iBA0EtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui-github-repo-gh.js","sourceRoot":"","sources":["../../src/cli/ui-github-repo-gh.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,aAAa,EACb,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AA+DjC;;;;;;;GAOG;AACH,SAAS,KAAK,CACZ,IAAuB,EACvB,GAAW,EACX,SAAiB,EACjB,MAAmB;IAEnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC;QAC1B,QAAQ;QACN,iGAAiG;QACjG,YAAY,EACZ,CAAC,GAAG,IAAI,CAAC,EACT,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EACrD,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAChB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAY,CAAC;AACvC,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,kBAAkB,CAC/B,KAAa,EACb,IAAY,EACZ,MAAe,EACf,GAAW,EACX,SAAiB,EACjB,MAAmB;IAEnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;QACvB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,KAAK,CAC9B,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,IAAI,aAAa,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EACxD,GAAG,EACH,SAAS,EACT,MAAM,CACP,CAAC;QACF,OAAO,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,sDAAsD;AACtD,MAAM,CAAC,MAAM,wBAAwB,GAAsB;IACzD,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,KAAK,CACxB,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,IAAI,EAAE,CAAC,EACjC,GAAG,EACH,SAAS,EACT,MAAM,CACP,CAAC;QACF,OAAO,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;QAC1D,MAAM,UAAU,GAAG,MAAM,KAAK,CAC5B,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,IAAI,WAAW,CAAC,EAC1C,GAAG,EACH,SAAS,EACT,MAAM,CACP,CAAC;QACF,OAAO,kBAAkB,CACvB,KAAK,EACL,IAAI,EACJ,SAAS,CAAC,UAAU,CAAC,EACrB,GAAG,EACH,SAAS,EACT,MAAM,CACP,CAAC;IACJ,CAAC;IACD,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,KAAK,CACxB;YACE,OAAO;YACP,MAAM;YACN,QAAQ;YACR,GAAG,KAAK,IAAI,IAAI,EAAE;YAClB,SAAS;YACT,KAAK;YACL,QAAQ;YACR,YAAY;SACb,EACD,GAAG,EACH,SAAS,EACT,MAAM,CACP,CAAC;QACF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAChD,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;YACvD,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;gBACvC,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC;aAC1C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IACD,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;QAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CACxB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAClE,GAAG,EACH,SAAS,EACT,MAAM,CACP,CAAC;QACF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAChD,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"ui-github-repo-gh.js","sourceRoot":"","sources":["../../src/cli/ui-github-repo-gh.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui-github-repo-map.d.ts","sourceRoot":"","sources":["../../src/cli/ui-github-repo-map.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AA+ChC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,CAiBhE;AAqED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAW5D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtE"}
1
+ {"version":3,"file":"ui-github-repo-map.d.ts","sourceRoot":"","sources":["../../src/cli/ui-github-repo-map.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AA+ChC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,CAiBhE;AA2FD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAe5D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtE"}
@@ -121,6 +121,27 @@ function rulesetRuleTypes(rules) {
121
121
  })
122
122
  .filter((type) => type !== undefined);
123
123
  }
124
+ /**
125
+ * Whether a required-status-check rule contains at least one context.
126
+ * @param rules - Raw ruleset rules
127
+ * @returns Whether at least one required check context is configured
128
+ */
129
+ function hasRequiredStatusChecks(rules) {
130
+ if (!Array.isArray(rules))
131
+ return false;
132
+ return rules.some(rule => {
133
+ if (rule === null ||
134
+ typeof rule !== "object" ||
135
+ Reflect.get(rule, "type") !== "required_status_checks") {
136
+ return false;
137
+ }
138
+ const parameters = Reflect.get(rule, "parameters");
139
+ if (parameters === null || typeof parameters !== "object")
140
+ return false;
141
+ const checks = Reflect.get(parameters, "required_status_checks");
142
+ return Array.isArray(checks) && checks.length > 0;
143
+ });
144
+ }
124
145
  /**
125
146
  * Map a detailed ruleset payload into a panel row.
126
147
  * @param raw - One ruleset object from gh api
@@ -131,11 +152,15 @@ export function mapRulesetRow(raw) {
131
152
  throw new TypeError("Ruleset entry was not an object");
132
153
  }
133
154
  const ruleTypes = rulesetRuleTypes(Reflect.get(raw, "rules"));
155
+ const includes = rulesetIncludes(Reflect.get(raw, "conditions"));
134
156
  return {
135
157
  name: requireString(raw, "name"),
136
- appliesTo: formatAppliesTo(rulesetIncludes(Reflect.get(raw, "conditions"))),
158
+ appliesTo: formatAppliesTo(includes),
137
159
  enforces: ruleTypes.length > 0 ? ruleTypes.join(", ") : "—",
138
160
  active: Reflect.get(raw, "enforcement") === "active",
161
+ targetsDefaultBranch: includes.includes("~DEFAULT_BRANCH"),
162
+ requiresPullRequest: ruleTypes.includes("pull_request"),
163
+ requiresStatusChecks: hasRequiredStatusChecks(Reflect.get(raw, "rules")),
139
164
  };
140
165
  }
141
166
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ui-github-repo-map.js","sourceRoot":"","sources":["../../src/cli/ui-github-repo-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-github-repo-map.js","sourceRoot":"","sources":["../../src/cli/ui-github-repo-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /** Config-backed Setup readiness findings with independent provider lanes. */
2
+ import { type JsonObject } from "../sync/json-path.js";
3
+ import { type SetupReadinessFinding } from "./ui-setup-readiness-contract.js";
4
+ /**
5
+ * Read tracker readiness independently from the PRD source.
6
+ * @param config - Merged Lisa project configuration
7
+ * @returns Work-tracker readiness finding
8
+ */
9
+ export declare function trackerFinding(config: JsonObject): SetupReadinessFinding;
10
+ /**
11
+ * Read PRD-source readiness independently from the work tracker.
12
+ * @param config - Merged Lisa project configuration
13
+ * @returns PRD-source readiness finding
14
+ */
15
+ export declare function prdSourceFinding(config: JsonObject): SetupReadinessFinding;
16
+ /**
17
+ * Require an explicit exploration environment, policy, and test identity.
18
+ * @param config - Merged Lisa project configuration
19
+ * @returns Exploration-environment readiness finding
20
+ */
21
+ export declare function explorationFinding(config: JsonObject): SetupReadinessFinding;
22
+ /**
23
+ * Require at least one bounded starter template provenance record.
24
+ * @param config - Merged Lisa project configuration
25
+ * @returns Starter-provenance readiness finding
26
+ */
27
+ export declare function starterProvenanceFinding(config: JsonObject): SetupReadinessFinding;
28
+ //# sourceMappingURL=ui-setup-readiness-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-setup-readiness-config.d.ts","sourceRoot":"","sources":["../../src/cli/ui-setup-readiness-config.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,kCAAkC,CAAC;AAkE1C;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,qBAAqB,CAOxE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,qBAAqB,CAO1E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,qBAAqB,CAyD5E;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,GACjB,qBAAqB,CA6BvB"}
@@ -0,0 +1,116 @@
1
+ /** Config-backed Setup readiness findings with independent provider lanes. */
2
+ import { isJsonObject } from "../sync/json-path.js";
3
+ import { SETUP_PROVIDER_REQUIREMENTS } from "../sync/registry.js";
4
+ import { resolveMutationPolicy } from "./doctor-readiness-journey-freshness.js";
5
+ import { setupFinding, } from "./ui-setup-readiness-contract.js";
6
+ const EXPLORATION_CHECK = "setup.exploration";
7
+ const STARTER_PROVENANCE_CHECK = "setup.starter-provenance";
8
+ /**
9
+ * Return whether a dot path resolves to a non-empty string.
10
+ * @param config - Merged Lisa project configuration
11
+ * @param dotPath - Dot-delimited property path to inspect
12
+ * @returns Whether the property contains non-empty text
13
+ */
14
+ function hasString(config, dotPath) {
15
+ const value = dotPath.split(".").reduce((current, segment) => {
16
+ if (!isJsonObject(current))
17
+ return undefined;
18
+ return current[segment];
19
+ }, config);
20
+ return typeof value === "string" && value.trim().length > 0;
21
+ }
22
+ /**
23
+ * Evaluate one provider lane from the shared sync-registry requirements.
24
+ * @param config - Merged Lisa project configuration
25
+ * @param lane - Provider lane to validate
26
+ * @param check - Setup finding identifier for the lane
27
+ * @param selectionHint - Operator-facing setup commands for invalid providers
28
+ * @returns Deterministic readiness finding for the provider lane
29
+ */
30
+ function providerLaneFinding(config, lane, check, selectionHint) {
31
+ const provider = config[lane];
32
+ const providers = SETUP_PROVIDER_REQUIREMENTS[lane];
33
+ if (typeof provider !== "string" || !Object.hasOwn(providers, provider)) {
34
+ return setupFinding(check, "fail", `${lane === "tracker" ? "Work tracker" : "PRD source"} is missing or unsupported. Run ${selectionHint}.`);
35
+ }
36
+ const requirement = providers[provider];
37
+ const missingAll = requirement.allOf.filter(key => !hasString(config, key));
38
+ const missingAny = requirement.anyOf !== undefined &&
39
+ !requirement.anyOf.some(key => hasString(config, key))
40
+ ? [requirement.anyOf.join(" or ")]
41
+ : [];
42
+ const missing = [...missingAll, ...missingAny];
43
+ return missing.length === 0
44
+ ? setupFinding(check, "pass", `${lane === "tracker" ? "Tracker" : "PRD source"} provider and required scope identifiers are configured.`)
45
+ : setupFinding(check, "fail", `Missing required configuration: ${missing.join(", ")}. Run ${requirement.setupHint}.`);
46
+ }
47
+ /**
48
+ * Read tracker readiness independently from the PRD source.
49
+ * @param config - Merged Lisa project configuration
50
+ * @returns Work-tracker readiness finding
51
+ */
52
+ export function trackerFinding(config) {
53
+ return providerLaneFinding(config, "tracker", "setup.tracker", "/lisa:setup:jira, /lisa:setup:github, or /lisa:setup:linear");
54
+ }
55
+ /**
56
+ * Read PRD-source readiness independently from the work tracker.
57
+ * @param config - Merged Lisa project configuration
58
+ * @returns PRD-source readiness finding
59
+ */
60
+ export function prdSourceFinding(config) {
61
+ return providerLaneFinding(config, "source", "setup.prd-source", "/lisa:setup:notion, /lisa:setup:confluence, /lisa:setup:linear, or /lisa:setup:github");
62
+ }
63
+ /**
64
+ * Require an explicit exploration environment, policy, and test identity.
65
+ * @param config - Merged Lisa project configuration
66
+ * @returns Exploration-environment readiness finding
67
+ */
68
+ export function explorationFinding(config) {
69
+ const exploration = config.exploration;
70
+ if (!isJsonObject(exploration)) {
71
+ return setupFinding(EXPLORATION_CHECK, "warn", "Exploration environments are not configured in .lisa.config.json.");
72
+ }
73
+ const environmentName = exploration.default;
74
+ const environments = exploration.environments;
75
+ if (typeof environmentName !== "string" ||
76
+ environmentName.trim().length === 0 ||
77
+ !isJsonObject(environments) ||
78
+ !isJsonObject(environments[environmentName])) {
79
+ return setupFinding(EXPLORATION_CHECK, "warn", "Exploration requires a default environment with a matching environments entry.");
80
+ }
81
+ const environment = environments[environmentName];
82
+ const mutation = environment.mutation;
83
+ if (typeof mutation !== "string" ||
84
+ !["forbidden", "read-only", "full"].includes(mutation)) {
85
+ return setupFinding(EXPLORATION_CHECK, "warn", "The default exploration environment needs an explicit mutation policy.");
86
+ }
87
+ if (typeof environment.identity !== "string" ||
88
+ environment.identity.trim().length === 0) {
89
+ return setupFinding(EXPLORATION_CHECK, "warn", "The default exploration environment needs a dedicated test identity reference.");
90
+ }
91
+ const effective = resolveMutationPolicy(config);
92
+ return effective === mutation
93
+ ? setupFinding(EXPLORATION_CHECK, "pass", `The default exploration environment has an explicit ${effective} policy and test identity reference.`)
94
+ : setupFinding(EXPLORATION_CHECK, "warn", `The configured mutation policy is unsafe for the selected environment and resolves to ${effective}.`);
95
+ }
96
+ /**
97
+ * Require at least one bounded starter template provenance record.
98
+ * @param config - Merged Lisa project configuration
99
+ * @returns Starter-provenance readiness finding
100
+ */
101
+ export function starterProvenanceFinding(config) {
102
+ const starter = config.starter;
103
+ const templates = isJsonObject(starter) ? starter.templates : undefined;
104
+ if (!Array.isArray(templates) || templates.length === 0) {
105
+ return setupFinding(STARTER_PROVENANCE_CHECK, "warn", "Optional starter provenance is not recorded in starter.templates.");
106
+ }
107
+ const invalid = templates.some(template => !isJsonObject(template) ||
108
+ typeof template.repo !== "string" ||
109
+ template.repo.trim().length === 0 ||
110
+ typeof template.ref !== "string" ||
111
+ template.ref.trim().length === 0);
112
+ return invalid
113
+ ? setupFinding(STARTER_PROVENANCE_CHECK, "warn", "Starter provenance contains a template without both repo and ref.")
114
+ : setupFinding(STARTER_PROVENANCE_CHECK, "pass", `${templates.length} starter template provenance record${templates.length === 1 ? " is" : "s are"} configured.`);
115
+ }
116
+ //# sourceMappingURL=ui-setup-readiness-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-setup-readiness-config.js","sourceRoot":"","sources":["../../src/cli/ui-setup-readiness-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /** Strict transport contract for the console Setup readiness projection. */
2
+ import { type HealthFinding, type HealthStatus } from "../health/contract.js";
3
+ /** Stable finding identifiers, in the existing checklist render order. */
4
+ export declare const SETUP_READINESS_CHECKS: readonly ["setup.install", "setup.sync", "setup.agent-ready", "setup.standards", "setup.tracker", "setup.prd-source", "setup.github-governance", "setup.secrets", "setup.automations", "setup.exploration", "setup.wiki", "setup.starter-provenance"];
5
+ /** One of the closed Setup checklist identifiers. */
6
+ export type SetupReadinessCheck = (typeof SETUP_READINESS_CHECKS)[number];
7
+ /** Setup finding reuses the closed Health finding shape without joining Health. */
8
+ export type SetupReadinessFinding = HealthFinding & {
9
+ readonly check: SetupReadinessCheck;
10
+ readonly layer: "deterministic";
11
+ };
12
+ /** Current, non-persisted Setup readiness response. */
13
+ export interface SetupReadinessResult {
14
+ readonly schemaVersion: 1;
15
+ readonly observedAt: string;
16
+ readonly findings: readonly SetupReadinessFinding[];
17
+ }
18
+ /**
19
+ * Create one operator-readable deterministic Setup finding.
20
+ * @param check - Closed Setup checklist identifier
21
+ * @param status - Deterministic readiness status
22
+ * @param reason - Operator-readable evidence or remediation summary
23
+ * @returns Deterministic Setup readiness finding
24
+ */
25
+ export declare function setupFinding(check: SetupReadinessCheck, status: HealthStatus, reason: string): SetupReadinessFinding;
26
+ /**
27
+ * Validate, detach, and freeze a Setup readiness projection.
28
+ * @param candidate - Untrusted projection
29
+ * @returns Strict schema-v1 result with exactly the twelve checklist findings
30
+ */
31
+ export declare function validateSetupReadinessResult(candidate: unknown): SetupReadinessResult;
32
+ //# sourceMappingURL=ui-setup-readiness-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-setup-readiness-contract.d.ts","sourceRoot":"","sources":["../../src/cli/ui-setup-readiness-contract.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAQ/B,0EAA0E;AAC1E,eAAO,MAAM,sBAAsB,uPAazB,CAAC;AAEX,qDAAqD;AACrD,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,mFAAmF;AACnF,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG;IAClD,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;CACjC,CAAC;AAEF,uDAAuD;AACvD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACrD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GACb,qBAAqB,CAEvB;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,OAAO,GACjB,oBAAoB,CAwCtB"}