@jeger-ai/opengantry 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/NOTICE +1 -0
  2. package/README.md +10 -1
  3. package/dist/cli/commands/arch.d.ts +1 -1
  4. package/dist/cli/commands/arch.d.ts.map +1 -1
  5. package/dist/cli/commands/arch.js +4 -4
  6. package/dist/cli/commands/arch.js.map +1 -1
  7. package/dist/cli/lib/{architecture-drift-doctor.d.ts → arch/cage/architecture-drift-doctor.d.ts} +1 -1
  8. package/dist/cli/lib/arch/cage/architecture-drift-doctor.d.ts.map +1 -0
  9. package/dist/cli/lib/{architecture-drift-doctor.js → arch/cage/architecture-drift-doctor.js} +2 -2
  10. package/dist/cli/lib/arch/cage/architecture-drift-doctor.js.map +1 -0
  11. package/dist/cli/lib/{target-architecture-doctor.d.ts → arch/cage/target-architecture-doctor.d.ts} +1 -1
  12. package/dist/cli/lib/arch/cage/target-architecture-doctor.d.ts.map +1 -0
  13. package/dist/cli/lib/arch/cage/target-architecture-doctor.js.map +1 -0
  14. package/dist/cli/lib/arch/cage/target-architecture.d.ts.map +1 -0
  15. package/dist/cli/lib/{target-architecture.js → arch/cage/target-architecture.js} +19 -21
  16. package/dist/cli/lib/arch/cage/target-architecture.js.map +1 -0
  17. package/dist/cli/lib/arch/external/architecture-credential.d.ts.map +1 -0
  18. package/dist/cli/lib/{architecture-credential.js → arch/external/architecture-credential.js} +2 -2
  19. package/dist/cli/lib/arch/external/architecture-credential.js.map +1 -0
  20. package/dist/cli/lib/arch/external/architecture-fetch.d.ts.map +1 -0
  21. package/dist/cli/lib/{architecture-fetch.js → arch/external/architecture-fetch.js} +1 -1
  22. package/dist/cli/lib/arch/external/architecture-fetch.js.map +1 -0
  23. package/dist/cli/lib/{architecture-pointer.d.ts → arch/external/architecture-pointer.d.ts} +1 -1
  24. package/dist/cli/lib/arch/external/architecture-pointer.d.ts.map +1 -0
  25. package/dist/cli/lib/{architecture-pointer.js → arch/external/architecture-pointer.js} +2 -2
  26. package/dist/cli/lib/arch/external/architecture-pointer.js.map +1 -0
  27. package/dist/cli/lib/blueprint-engine.js +1 -1
  28. package/dist/cli/lib/blueprint-engine.js.map +1 -1
  29. package/dist/cli/lib/break-glass.d.ts +1 -1
  30. package/dist/cli/lib/break-glass.d.ts.map +1 -1
  31. package/dist/cli/lib/constants.d.ts +1 -0
  32. package/dist/cli/lib/constants.d.ts.map +1 -1
  33. package/dist/cli/lib/constants.js +1 -0
  34. package/dist/cli/lib/constants.js.map +1 -1
  35. package/dist/cli/lib/context-feed-remediation.d.ts +2 -2
  36. package/dist/cli/lib/context-feed-remediation.d.ts.map +1 -1
  37. package/dist/cli/lib/discovery-proposal.js +1 -1
  38. package/dist/cli/lib/discovery-proposal.js.map +1 -1
  39. package/dist/cli/lib/discovery-scanner.d.ts +3 -39
  40. package/dist/cli/lib/discovery-scanner.d.ts.map +1 -1
  41. package/dist/cli/lib/discovery-scanner.js +2 -1
  42. package/dist/cli/lib/discovery-scanner.js.map +1 -1
  43. package/dist/cli/lib/discovery-types.d.ts +40 -0
  44. package/dist/cli/lib/discovery-types.d.ts.map +1 -0
  45. package/dist/cli/lib/discovery-types.js +3 -0
  46. package/dist/cli/lib/discovery-types.js.map +1 -0
  47. package/dist/cli/lib/doctor-core.js +3 -3
  48. package/dist/cli/lib/doctor-core.js.map +1 -1
  49. package/dist/cli/lib/domains/domain-adapter.d.ts +4 -2
  50. package/dist/cli/lib/domains/domain-adapter.d.ts.map +1 -1
  51. package/dist/cli/lib/domains/domain-adapter.js.map +1 -1
  52. package/dist/cli/lib/domains/domain-code.d.ts.map +1 -1
  53. package/dist/cli/lib/domains/domain-code.js +1 -2
  54. package/dist/cli/lib/domains/domain-code.js.map +1 -1
  55. package/dist/cli/lib/domains/domain-content.d.ts.map +1 -1
  56. package/dist/cli/lib/domains/domain-content.js +1 -2
  57. package/dist/cli/lib/domains/domain-content.js.map +1 -1
  58. package/dist/cli/lib/domains/index.d.ts +4 -4
  59. package/dist/cli/lib/domains/index.d.ts.map +1 -1
  60. package/dist/cli/lib/domains/index.js +15 -4
  61. package/dist/cli/lib/domains/index.js.map +1 -1
  62. package/dist/cli/lib/init-compose.d.ts +1 -1
  63. package/dist/cli/lib/init-compose.d.ts.map +1 -1
  64. package/dist/cli/lib/kpi-engine.d.ts +2 -2
  65. package/dist/cli/lib/kpi-engine.d.ts.map +1 -1
  66. package/dist/cli/lib/manifest.d.ts +1 -1
  67. package/dist/cli/lib/manifest.d.ts.map +1 -1
  68. package/dist/cli/lib/manifest.js +1 -1
  69. package/dist/cli/lib/manifest.js.map +1 -1
  70. package/dist/cli/lib/mcp-check-signature.d.ts +6 -0
  71. package/dist/cli/lib/mcp-check-signature.d.ts.map +1 -0
  72. package/dist/cli/lib/mcp-check-signature.js +40 -0
  73. package/dist/cli/lib/mcp-check-signature.js.map +1 -0
  74. package/dist/cli/lib/mcp-draft-legislation.d.ts +6 -0
  75. package/dist/cli/lib/mcp-draft-legislation.d.ts.map +1 -0
  76. package/dist/cli/lib/mcp-draft-legislation.js +63 -0
  77. package/dist/cli/lib/mcp-draft-legislation.js.map +1 -0
  78. package/dist/cli/lib/mcp-execute-legislation.d.ts +6 -0
  79. package/dist/cli/lib/mcp-execute-legislation.d.ts.map +1 -0
  80. package/dist/cli/lib/mcp-execute-legislation.js +53 -0
  81. package/dist/cli/lib/mcp-execute-legislation.js.map +1 -0
  82. package/dist/cli/lib/mcp-governance-shared.d.ts +119 -0
  83. package/dist/cli/lib/mcp-governance-shared.d.ts.map +1 -0
  84. package/dist/cli/lib/mcp-governance-shared.js +21 -0
  85. package/dist/cli/lib/mcp-governance-shared.js.map +1 -0
  86. package/dist/cli/lib/mcp-governance.d.ts +9 -121
  87. package/dist/cli/lib/mcp-governance.d.ts.map +1 -1
  88. package/dist/cli/lib/mcp-governance.js +8 -259
  89. package/dist/cli/lib/mcp-governance.js.map +1 -1
  90. package/dist/cli/lib/mcp-last-error.d.ts +3 -0
  91. package/dist/cli/lib/mcp-last-error.d.ts.map +1 -0
  92. package/dist/cli/lib/mcp-last-error.js +18 -0
  93. package/dist/cli/lib/mcp-last-error.js.map +1 -0
  94. package/dist/cli/lib/mcp-pin-mission.d.ts +6 -0
  95. package/dist/cli/lib/mcp-pin-mission.d.ts.map +1 -0
  96. package/dist/cli/lib/mcp-pin-mission.js +21 -0
  97. package/dist/cli/lib/mcp-pin-mission.js.map +1 -0
  98. package/dist/cli/lib/mcp-resolve-mission.d.ts +3 -0
  99. package/dist/cli/lib/mcp-resolve-mission.d.ts.map +1 -0
  100. package/dist/cli/lib/mcp-resolve-mission.js +18 -0
  101. package/dist/cli/lib/mcp-resolve-mission.js.map +1 -0
  102. package/dist/cli/lib/mcp-start-orchestration.d.ts +3 -0
  103. package/dist/cli/lib/mcp-start-orchestration.d.ts.map +1 -0
  104. package/dist/cli/lib/mcp-start-orchestration.js +53 -0
  105. package/dist/cli/lib/mcp-start-orchestration.js.map +1 -0
  106. package/dist/cli/lib/mcp-tools-register.d.ts.map +1 -1
  107. package/dist/cli/lib/mcp-tools-register.js +7 -1
  108. package/dist/cli/lib/mcp-tools-register.js.map +1 -1
  109. package/dist/cli/lib/path-glob.d.ts +8 -0
  110. package/dist/cli/lib/path-glob.d.ts.map +1 -0
  111. package/dist/cli/lib/path-glob.js +40 -0
  112. package/dist/cli/lib/path-glob.js.map +1 -0
  113. package/dist/cli/lib/perimeter.d.ts +1 -2
  114. package/dist/cli/lib/perimeter.d.ts.map +1 -1
  115. package/dist/cli/lib/perimeter.js +2 -10
  116. package/dist/cli/lib/perimeter.js.map +1 -1
  117. package/dist/cli/lib/surgeons/registry.d.ts +1 -1
  118. package/dist/cli/lib/surgeons/registry.d.ts.map +1 -1
  119. package/dist/cli/lib/trace-evidence.d.ts +21 -0
  120. package/dist/cli/lib/trace-evidence.d.ts.map +1 -0
  121. package/dist/cli/lib/trace-evidence.js +113 -0
  122. package/dist/cli/lib/trace-evidence.js.map +1 -0
  123. package/dist/cli/lib/trace-quote.d.ts +37 -0
  124. package/dist/cli/lib/trace-quote.d.ts.map +1 -0
  125. package/dist/cli/lib/trace-quote.js +177 -0
  126. package/dist/cli/lib/trace-quote.js.map +1 -0
  127. package/dist/cli/lib/trace-status.d.ts +7 -0
  128. package/dist/cli/lib/trace-status.d.ts.map +1 -0
  129. package/dist/cli/lib/trace-status.js +20 -0
  130. package/dist/cli/lib/trace-status.js.map +1 -0
  131. package/dist/cli/lib/trace.d.ts +3 -60
  132. package/dist/cli/lib/trace.d.ts.map +1 -1
  133. package/dist/cli/lib/trace.js +3 -304
  134. package/dist/cli/lib/trace.js.map +1 -1
  135. package/dist/cli/lib/upgrade-plan-catalog.d.ts +13 -0
  136. package/dist/cli/lib/upgrade-plan-catalog.d.ts.map +1 -0
  137. package/dist/cli/lib/upgrade-plan-catalog.js +85 -0
  138. package/dist/cli/lib/upgrade-plan-catalog.js.map +1 -0
  139. package/dist/cli/lib/upgrade-plan-payload.d.ts +1 -1
  140. package/dist/cli/lib/upgrade-plan-payload.d.ts.map +1 -1
  141. package/dist/cli/lib/upgrade-plan-scaffold.d.ts +15 -0
  142. package/dist/cli/lib/upgrade-plan-scaffold.d.ts.map +1 -0
  143. package/dist/cli/lib/upgrade-plan-scaffold.js +109 -0
  144. package/dist/cli/lib/upgrade-plan-scaffold.js.map +1 -0
  145. package/dist/cli/lib/upgrade-plan-types.d.ts +43 -0
  146. package/dist/cli/lib/upgrade-plan-types.d.ts.map +1 -0
  147. package/dist/cli/lib/upgrade-plan-types.js +3 -0
  148. package/dist/cli/lib/upgrade-plan-types.js.map +1 -0
  149. package/dist/cli/lib/upgrade-plan.d.ts +4 -62
  150. package/dist/cli/lib/upgrade-plan.d.ts.map +1 -1
  151. package/dist/cli/lib/upgrade-plan.js +7 -181
  152. package/dist/cli/lib/upgrade-plan.js.map +1 -1
  153. package/dist/cli/lib/verify-defensive-phase.d.ts +1 -1
  154. package/dist/cli/lib/verify-defensive-phase.d.ts.map +1 -1
  155. package/dist/cli/lib/verify-engine.d.ts +2 -36
  156. package/dist/cli/lib/verify-engine.d.ts.map +1 -1
  157. package/dist/cli/lib/verify-engine.js.map +1 -1
  158. package/dist/cli/lib/verify-export.d.ts.map +1 -1
  159. package/dist/cli/lib/verify-export.js +3 -2
  160. package/dist/cli/lib/verify-export.js.map +1 -1
  161. package/dist/cli/lib/verify-failure-normalize.d.ts +2 -4
  162. package/dist/cli/lib/verify-failure-normalize.d.ts.map +1 -1
  163. package/dist/cli/lib/verify-failure-normalize.js +0 -50
  164. package/dist/cli/lib/verify-failure-normalize.js.map +1 -1
  165. package/dist/cli/lib/verify-hints.d.ts +1 -1
  166. package/dist/cli/lib/verify-hints.d.ts.map +1 -1
  167. package/dist/cli/lib/verify-options.d.ts +40 -0
  168. package/dist/cli/lib/verify-options.d.ts.map +1 -0
  169. package/dist/cli/lib/verify-options.js +13 -0
  170. package/dist/cli/lib/verify-options.js.map +1 -0
  171. package/dist/cli/lib/verify-payload.d.ts +6 -1
  172. package/dist/cli/lib/verify-payload.d.ts.map +1 -1
  173. package/dist/cli/lib/verify-payload.js +51 -1
  174. package/dist/cli/lib/verify-payload.js.map +1 -1
  175. package/dist/cli/lib/verify-presenters.d.ts +2 -1
  176. package/dist/cli/lib/verify-presenters.d.ts.map +1 -1
  177. package/dist/cli/lib/verify-presenters.js.map +1 -1
  178. package/dist/cli/lib/verify-run.d.ts +2 -2
  179. package/dist/cli/lib/verify-run.d.ts.map +1 -1
  180. package/dist/cli/lib/verify-run.js +33 -19
  181. package/dist/cli/lib/verify-run.js.map +1 -1
  182. package/dist/cli/lib/version.gen.d.ts +1 -1
  183. package/dist/cli/lib/version.gen.js +1 -1
  184. package/dist/cli/program-arch.js +1 -1
  185. package/dist/cli/program-arch.js.map +1 -1
  186. package/dist/cli/program-core.d.ts.map +1 -1
  187. package/dist/cli/program-core.js +2 -22
  188. package/dist/cli/program-core.js.map +1 -1
  189. package/dist/cli/program-init-options.d.ts +4 -0
  190. package/dist/cli/program-init-options.d.ts.map +1 -0
  191. package/dist/cli/program-init-options.js +23 -0
  192. package/dist/cli/program-init-options.js.map +1 -0
  193. package/dist/cli/program-workflow.d.ts.map +1 -1
  194. package/dist/cli/program-workflow.js +0 -1
  195. package/dist/cli/program-workflow.js.map +1 -1
  196. package/dist/cli/program.d.ts.map +1 -1
  197. package/dist/cli/program.js +2 -0
  198. package/dist/cli/program.js.map +1 -1
  199. package/package.json +2 -2
  200. package/templates/.gitagent/foreman/SUBSTRATE.version.json +1 -1
  201. package/templates/integrations/asset-catalog.json +3 -0
  202. package/templates/integrations/compatibility.json +1 -1
  203. package/templates/scripts/gxt-manifest-lib.mjs +12 -493
  204. package/templates/scripts/lib/glob-match.mjs +24 -0
  205. package/templates/scripts/lib/manifest-validate.mjs +126 -0
  206. package/templates/scripts/lib/trusted-automation.mjs +360 -0
  207. package/dist/cli/lib/architecture-credential.d.ts.map +0 -1
  208. package/dist/cli/lib/architecture-credential.js.map +0 -1
  209. package/dist/cli/lib/architecture-drift-doctor.d.ts.map +0 -1
  210. package/dist/cli/lib/architecture-drift-doctor.js.map +0 -1
  211. package/dist/cli/lib/architecture-fetch.d.ts.map +0 -1
  212. package/dist/cli/lib/architecture-fetch.js.map +0 -1
  213. package/dist/cli/lib/architecture-pointer.d.ts.map +0 -1
  214. package/dist/cli/lib/architecture-pointer.js.map +0 -1
  215. package/dist/cli/lib/target-architecture-doctor.d.ts.map +0 -1
  216. package/dist/cli/lib/target-architecture-doctor.js.map +0 -1
  217. package/dist/cli/lib/target-architecture.d.ts.map +0 -1
  218. package/dist/cli/lib/target-architecture.js.map +0 -1
  219. /package/dist/cli/lib/{target-architecture-doctor.js → arch/cage/target-architecture-doctor.js} +0 -0
  220. /package/dist/cli/lib/{target-architecture.d.ts → arch/cage/target-architecture.d.ts} +0 -0
  221. /package/dist/cli/lib/{architecture-credential.d.ts → arch/external/architecture-credential.d.ts} +0 -0
  222. /package/dist/cli/lib/{architecture-fetch.d.ts → arch/external/architecture-fetch.d.ts} +0 -0
@@ -0,0 +1,85 @@
1
+ import crypto from "node:crypto";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { INTEGRATION_IDE_KEYS, loadIntegrationCompat, } from "./integration-compat.js";
5
+ import { loadInitAssetCatalog } from "./init-asset-catalog.js";
6
+ import { defaultInitProfile } from "./init-profile.js";
7
+ import { toPosixRel } from "./cli-io.js";
8
+ /** managed_strict substrate assets eligible for gantry upgrade (excludes user law / missions). */
9
+ export function upgradeEligibleAssets(assets) {
10
+ return assets.filter((a) => a.mode === "managed_strict");
11
+ }
12
+ export function allUpgradeEligibleFromCatalog(templatesRoot) {
13
+ return upgradeEligibleAssets([...loadInitAssetCatalog(templatesRoot)]);
14
+ }
15
+ function pathExists(repoRoot, rel) {
16
+ return fs.existsSync(path.join(repoRoot, rel.split("/").join(path.sep)));
17
+ }
18
+ function detectIntegrationPresent(repoRoot, key, entry) {
19
+ if (key === "codex-cli") {
20
+ return pathExists(repoRoot, ".codex/config.toml");
21
+ }
22
+ return entry.canonical_paths.some((p) => pathExists(repoRoot, p));
23
+ }
24
+ /** Infer init profile from on-disk substrate assets for upgrade planning. */
25
+ export function inferInitProfileFromRepo(repoRoot, templatesRoot) {
26
+ const profile = defaultInitProfile();
27
+ const compat = loadIntegrationCompat(templatesRoot);
28
+ const detected = INTEGRATION_IDE_KEYS.filter((key) => detectIntegrationPresent(repoRoot, key, compat.integrations[key]));
29
+ if (detected.length > 0) {
30
+ profile.ides = detected;
31
+ }
32
+ profile.gitHooks =
33
+ pathExists(repoRoot, ".githooks/pre-push") || pathExists(repoRoot, ".githooks/pre-commit");
34
+ profile.ciWorkflow = pathExists(repoRoot, ".github/workflows/gxt-validate.yml");
35
+ profile.skillsPreset = pathExists(repoRoot, "skills/gantry.md") ? "specimen" : "minimal";
36
+ return profile;
37
+ }
38
+ function sha256Buffer(buf) {
39
+ return crypto.createHash("sha256").update(buf).digest("hex");
40
+ }
41
+ function fileState(absPath) {
42
+ if (!fs.existsSync(absPath))
43
+ return null;
44
+ const buf = fs.readFileSync(absPath);
45
+ return { bytes: buf.length, sha256: sha256Buffer(buf) };
46
+ }
47
+ /** Summarize planned upgrade writes for dry-run / changelog preview. */
48
+ export function buildUpgradeFileChanges(repoRoot, writes) {
49
+ return writes.map((w) => {
50
+ const rel = toPosixRel(repoRoot, w.absoluteTarget);
51
+ const before = fileState(w.absoluteTarget);
52
+ const afterBuf = Buffer.from(w.body, "utf8");
53
+ return {
54
+ path: rel,
55
+ action: before === null ? "add" : "update",
56
+ bytes_before: before?.bytes ?? null,
57
+ bytes_after: afterBuf.length,
58
+ sha256_before: before?.sha256 ?? null,
59
+ sha256_after: sha256Buffer(afterBuf),
60
+ };
61
+ });
62
+ }
63
+ export function groupUpgradeChangesByCategory(changes) {
64
+ const groups = {
65
+ workflows: [],
66
+ scripts: [],
67
+ hooks: [],
68
+ substrate: [],
69
+ other: [],
70
+ };
71
+ for (const c of changes) {
72
+ if (c.path.startsWith(".github/workflows/"))
73
+ groups.workflows.push(c);
74
+ else if (c.path.startsWith("scripts/"))
75
+ groups.scripts.push(c);
76
+ else if (c.path.startsWith(".githooks/") || c.path.startsWith(".cursor/hooks"))
77
+ groups.hooks.push(c);
78
+ else if (c.path.startsWith(".gitagent/"))
79
+ groups.substrate.push(c);
80
+ else
81
+ groups.other.push(c);
82
+ }
83
+ return groups;
84
+ }
85
+ //# sourceMappingURL=upgrade-plan-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-plan-catalog.js","sourceRoot":"","sources":["../../../src/cli/lib/upgrade-plan-catalog.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { UpgradePlanResult } from "./upgrade-plan.js";
1
+ import type { UpgradePlanResult } from "./upgrade-plan-types.js";
2
2
  /** Wire contract version for automation consumers (MCP, CI). Bump only with migration. */
3
3
  export declare const STABLE_UPGRADE_PLAN_PAYLOAD_VERSION: 1;
4
4
  export interface StableUpgradeFileChangeV1 {
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-plan-payload.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/upgrade-plan-payload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE9E,0FAA0F;AAC1F,eAAO,MAAM,mCAAmC,EAAG,CAAU,CAAC;AAE9D,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,OAAO,mCAAmC,CAAC;IAC3D,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;CACnE;AAoCD,kFAAkF;AAClF,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,iBAAiB,GAAG,0BAA0B,CA8BlG;AAED,oFAAoF;AACpF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,0BAA0B,CAgC5G"}
1
+ {"version":3,"file":"upgrade-plan-payload.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/upgrade-plan-payload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEpF,0FAA0F;AAC1F,eAAO,MAAM,mCAAmC,EAAG,CAAU,CAAC;AAE9D,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,OAAO,mCAAmC,CAAC;IAC3D,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;CACnE;AAoCD,kFAAkF;AAClF,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,iBAAiB,GAAG,0BAA0B,CA8BlG;AAED,oFAAoF;AACpF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,0BAA0B,CAgC5G"}
@@ -0,0 +1,15 @@
1
+ import type { PlannedWrite } from "./init-plan.js";
2
+ import { type UpgradePayload } from "./upgrade-plan-types.js";
3
+ declare function semverSlug(version: string): string;
4
+ export declare function pickNextUpgradeMsn(repoRoot: string): string;
5
+ export declare function resolveUpgradeMsn(repoRoot: string, explicit?: string): string;
6
+ export declare function writeStagedFiles(repoRoot: string, writes: PlannedWrite[]): Record<string, string>;
7
+ export declare function buildUpgradeMissionYaml(opts: {
8
+ msnId: string;
9
+ fromVersion: string;
10
+ toVersion: string;
11
+ payload: UpgradePayload;
12
+ }): string;
13
+ export declare function parseUpgradePayloadFromMissionBody(body: string): UpgradePayload;
14
+ export { semverSlug };
15
+ //# sourceMappingURL=upgrade-plan-scaffold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-plan-scaffold.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/upgrade-plan-scaffold.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAM/E,iBAAS,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAS7E;AAUD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAejG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;CACzB,GAAG,MAAM,CAeT;AAED,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAwC/E;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,109 @@
1
+ import crypto from "node:crypto";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import YAML from "yaml";
5
+ import { CLI_NAME } from "./constants.js";
6
+ import { fromPosix, toPosixRel } from "./cli-io.js";
7
+ import { allocateMsn } from "./msn-allocate.js";
8
+ import { buildLegislativeTraceRows, buildMissionYamlScaffold, isValidMsnId, } from "./missions/parser.js";
9
+ import { REL_UPGRADE_TMP } from "./upgrade-plan-types.js";
10
+ function sha256Buffer(buf) {
11
+ return crypto.createHash("sha256").update(buf).digest("hex");
12
+ }
13
+ function semverSlug(version) {
14
+ return version.replace(/[^a-zA-Z0-9._-]+/g, "-");
15
+ }
16
+ export function pickNextUpgradeMsn(repoRoot) {
17
+ return allocateMsn(repoRoot, { band: "upgrade" });
18
+ }
19
+ export function resolveUpgradeMsn(repoRoot, explicit) {
20
+ const msn = explicit?.trim();
21
+ if (msn) {
22
+ if (!isValidMsnId(msn)) {
23
+ throw new Error(`${CLI_NAME} upgrade: invalid --msn (expected MSN-NNNN)`);
24
+ }
25
+ return msn;
26
+ }
27
+ return pickNextUpgradeMsn(repoRoot);
28
+ }
29
+ function upgradeTmpAbs(repoRoot) {
30
+ return path.join(repoRoot, fromPosix(REL_UPGRADE_TMP));
31
+ }
32
+ function stagePathForTarget(repoRoot, targetRel) {
33
+ return path.join(upgradeTmpAbs(repoRoot), fromPosix(targetRel));
34
+ }
35
+ export function writeStagedFiles(repoRoot, writes) {
36
+ const stagedHashes = {};
37
+ const tmpRoot = upgradeTmpAbs(repoRoot);
38
+ if (fs.existsSync(tmpRoot)) {
39
+ fs.rmSync(tmpRoot, { recursive: true, force: true });
40
+ }
41
+ for (const w of writes) {
42
+ const rel = toPosixRel(repoRoot, w.absoluteTarget);
43
+ const stageAbs = stagePathForTarget(repoRoot, rel);
44
+ fs.mkdirSync(path.dirname(stageAbs), { recursive: true });
45
+ fs.writeFileSync(stageAbs, w.body, "utf8");
46
+ if (w.executable)
47
+ fs.chmodSync(stageAbs, 0o755);
48
+ stagedHashes[rel] = sha256Buffer(Buffer.from(w.body, "utf8"));
49
+ }
50
+ return stagedHashes;
51
+ }
52
+ export function buildUpgradeMissionYaml(opts) {
53
+ const doc = {
54
+ msn_id: opts.msnId,
55
+ skill_key: "substrate",
56
+ gate_command: "gantry doctor",
57
+ gate_success_substring: null,
58
+ upgrade_payload: opts.payload,
59
+ trace_rows: buildLegislativeTraceRows(),
60
+ };
61
+ return buildMissionYamlScaffold({
62
+ header: `# OpenGantry substrate upgrade mission (Planner: review staged diff under ${REL_UPGRADE_TMP}/).\n` +
63
+ `# Upgrade ${opts.fromVersion} → ${opts.toVersion}. Commit this file only; staging dir is gitignored.\n`,
64
+ doc,
65
+ });
66
+ }
67
+ export function parseUpgradePayloadFromMissionBody(body) {
68
+ const data = YAML.parse(body);
69
+ const payload = data.upgrade_payload;
70
+ if (typeof payload !== "object" || payload === null) {
71
+ throw new Error(`${CLI_NAME} upgrade: mission missing upgrade_payload`);
72
+ }
73
+ const p = payload;
74
+ const required = ["from_version", "to_version", "staged_hashes", "planned_writes"];
75
+ for (const key of required) {
76
+ if (p[key] === undefined) {
77
+ throw new Error(`${CLI_NAME} upgrade: upgrade_payload missing ${key}`);
78
+ }
79
+ }
80
+ if (typeof p.from_version !== "string" || typeof p.to_version !== "string") {
81
+ throw new Error(`${CLI_NAME} upgrade: upgrade_payload version fields must be strings`);
82
+ }
83
+ if (typeof p.staged_hashes !== "object" || p.staged_hashes === null || Array.isArray(p.staged_hashes)) {
84
+ throw new Error(`${CLI_NAME} upgrade: upgrade_payload.staged_hashes must be an object`);
85
+ }
86
+ if (!Array.isArray(p.planned_writes)) {
87
+ throw new Error(`${CLI_NAME} upgrade: upgrade_payload.planned_writes must be an array`);
88
+ }
89
+ const stagedHashes = {};
90
+ for (const [k, v] of Object.entries(p.staged_hashes)) {
91
+ if (typeof v !== "string") {
92
+ throw new Error(`${CLI_NAME} upgrade: staged_hashes.${k} must be a string`);
93
+ }
94
+ stagedHashes[k] = v;
95
+ }
96
+ return {
97
+ from_version: p.from_version,
98
+ to_version: p.to_version,
99
+ staged_root: REL_UPGRADE_TMP,
100
+ planned_writes: p.planned_writes.map(String),
101
+ skipped_scaffold_only: Array.isArray(p.skipped_scaffold_only)
102
+ ? p.skipped_scaffold_only.map(String)
103
+ : [],
104
+ staged_hashes: stagedHashes,
105
+ created_at: typeof p.created_at === "string" ? p.created_at : new Date().toISOString(),
106
+ };
107
+ }
108
+ export { semverSlug };
109
+ //# sourceMappingURL=upgrade-plan-scaffold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-plan-scaffold.js","sourceRoot":"","sources":["../../../src/cli/lib/upgrade-plan-scaffold.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ export declare const REL_UPGRADE_TMP: ".gitagent/.upgrade-tmp";
2
+ export { UPGRADE_MSN_BAND_MIN, UPGRADE_MSN_BAND_MAX } from "./msn-allocate.js";
3
+ export interface UpgradeFileChange {
4
+ path: string;
5
+ action: "add" | "update";
6
+ bytes_before: number | null;
7
+ bytes_after: number;
8
+ sha256_before: string | null;
9
+ sha256_after: string;
10
+ }
11
+ export interface UpgradePayload {
12
+ from_version: string;
13
+ to_version: string;
14
+ staged_root: typeof REL_UPGRADE_TMP;
15
+ planned_writes: string[];
16
+ skipped_scaffold_only: string[];
17
+ staged_hashes: Record<string, string>;
18
+ created_at: string;
19
+ }
20
+ export interface UpgradePlanResult {
21
+ status: "planned" | "already_current" | "downgrade_blocked" | "no_changes";
22
+ from_version: string;
23
+ to_version: string;
24
+ installed_source?: string;
25
+ message?: string;
26
+ mission_path?: string;
27
+ mission_rel?: string;
28
+ suggested_human_action?: string;
29
+ planned_writes?: string[];
30
+ skipped_scaffold_only?: string[];
31
+ unchanged?: string[];
32
+ legacy_warning?: string | null;
33
+ file_changes?: UpgradeFileChange[];
34
+ changes_by_category?: Record<string, UpgradeFileChange[]>;
35
+ }
36
+ export interface RunUpgradePlanOptions {
37
+ repoRoot: string;
38
+ templatesRoot?: string;
39
+ msn?: string;
40
+ dryRun?: boolean;
41
+ json?: boolean;
42
+ }
43
+ //# sourceMappingURL=upgrade-plan-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-plan-types.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/upgrade-plan-types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,EAAG,wBAAiC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE/E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,eAAe,CAAC;IACpC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,YAAY,CAAC;IAC3E,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB"}
@@ -0,0 +1,3 @@
1
+ export const REL_UPGRADE_TMP = ".gitagent/.upgrade-tmp";
2
+ export { UPGRADE_MSN_BAND_MIN, UPGRADE_MSN_BAND_MAX } from "./msn-allocate.js";
3
+ //# sourceMappingURL=upgrade-plan-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-plan-types.js","sourceRoot":"","sources":["../../../src/cli/lib/upgrade-plan-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAiC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,64 +1,6 @@
1
- import { type PlannedWrite } from "./init-plan.js";
2
- import { type InitAssetSpec } from "./init-asset-catalog.js";
3
- import { type InitProfile } from "./init-profile.js";
4
- export declare const REL_UPGRADE_TMP: ".gitagent/.upgrade-tmp";
5
- export { UPGRADE_MSN_BAND_MIN, UPGRADE_MSN_BAND_MAX } from "./msn-allocate.js";
6
- export interface UpgradeFileChange {
7
- path: string;
8
- action: "add" | "update";
9
- bytes_before: number | null;
10
- bytes_after: number;
11
- sha256_before: string | null;
12
- sha256_after: string;
13
- }
14
- /** managed_strict substrate assets eligible for gantry upgrade (excludes user law / missions). */
15
- export declare function upgradeEligibleAssets(assets: InitAssetSpec[]): InitAssetSpec[];
16
- export declare function allUpgradeEligibleFromCatalog(templatesRoot: string): InitAssetSpec[];
17
- /** Infer init profile from on-disk substrate assets for upgrade planning. */
18
- export declare function inferInitProfileFromRepo(repoRoot: string, templatesRoot?: string): InitProfile;
19
- /** Summarize planned upgrade writes for dry-run / changelog preview. */
20
- export declare function buildUpgradeFileChanges(repoRoot: string, writes: PlannedWrite[]): UpgradeFileChange[];
21
- export declare function groupUpgradeChangesByCategory(changes: UpgradeFileChange[]): Record<string, UpgradeFileChange[]>;
22
- export interface UpgradePayload {
23
- from_version: string;
24
- to_version: string;
25
- staged_root: typeof REL_UPGRADE_TMP;
26
- planned_writes: string[];
27
- skipped_scaffold_only: string[];
28
- staged_hashes: Record<string, string>;
29
- created_at: string;
30
- }
31
- export interface UpgradePlanResult {
32
- status: "planned" | "already_current" | "downgrade_blocked" | "no_changes";
33
- from_version: string;
34
- to_version: string;
35
- installed_source?: string;
36
- message?: string;
37
- mission_path?: string;
38
- mission_rel?: string;
39
- suggested_human_action?: string;
40
- planned_writes?: string[];
41
- skipped_scaffold_only?: string[];
42
- unchanged?: string[];
43
- legacy_warning?: string | null;
44
- file_changes?: UpgradeFileChange[];
45
- changes_by_category?: Record<string, UpgradeFileChange[]>;
46
- }
47
- export declare function pickNextUpgradeMsn(repoRoot: string): string;
48
- export declare function resolveUpgradeMsn(repoRoot: string, explicit?: string): string;
49
- export declare function buildUpgradeMissionYaml(opts: {
50
- msnId: string;
51
- fromVersion: string;
52
- toVersion: string;
53
- payload: UpgradePayload;
54
- }): string;
55
- export declare function parseUpgradePayloadFromMissionBody(body: string): UpgradePayload;
56
- export interface RunUpgradePlanOptions {
57
- repoRoot: string;
58
- templatesRoot?: string;
59
- msn?: string;
60
- dryRun?: boolean;
61
- json?: boolean;
62
- }
1
+ import { type RunUpgradePlanOptions, type UpgradePlanResult } from "./upgrade-plan-types.js";
2
+ export { REL_UPGRADE_TMP, UPGRADE_MSN_BAND_MIN, UPGRADE_MSN_BAND_MAX, type UpgradeFileChange, type UpgradePayload, type UpgradePlanResult, type RunUpgradePlanOptions, } from "./upgrade-plan-types.js";
3
+ export { upgradeEligibleAssets, allUpgradeEligibleFromCatalog, inferInitProfileFromRepo, buildUpgradeFileChanges, groupUpgradeChangesByCategory, } from "./upgrade-plan-catalog.js";
4
+ export { pickNextUpgradeMsn, resolveUpgradeMsn, buildUpgradeMissionYaml, parseUpgradePayloadFromMissionBody, } from "./upgrade-plan-scaffold.js";
63
5
  export declare function runUpgradePlan(options: RunUpgradePlanOptions): UpgradePlanResult;
64
6
  //# sourceMappingURL=upgrade-plan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-plan.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/upgrade-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade-plan.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/upgrade-plan.ts"],"names":[],"mappings":"AA6BA,OAAO,EAEL,KAAK,qBAAqB,EAG1B,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,wBAAwB,EACxB,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,kCAAkC,GACnC,MAAM,4BAA4B,CAAC;AA6DpC,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,iBAAiB,CAqFhF"}
@@ -1,192 +1,18 @@
1
- import crypto from "node:crypto";
2
1
  import fs from "node:fs";
3
2
  import path from "node:path";
4
- import YAML from "yaml";
5
3
  import { CLI_NAME } from "./constants.js";
6
4
  import { fromPosix, logInfo, logWarn, toPosixRel } from "./cli-io.js";
7
5
  import { mergeGitignoreFromTemplate, mergePrettierignoreFromTemplate, } from "./file-merge-gxt.js";
8
- import { INTEGRATION_IDE_KEYS, loadIntegrationCompat, resolveTemplateRootFromModule, } from "./integration-compat.js";
6
+ import { loadIntegrationCompat, resolveTemplateRootFromModule } from "./integration-compat.js";
9
7
  import { resolveAssetsFromProfile } from "./init-asset-catalog.js";
10
8
  import { planInitAssets } from "./init-plan.js";
11
9
  import { alreadyCurrentMessage, compareSemver, legacyVersionWarning, readInstalledSubstrateVersion, } from "./substrate-version.js";
12
- import { allocateMsn } from "./msn-allocate.js";
13
- import { buildLegislativeTraceRows, buildMissionYamlScaffold, isValidMsnId, } from "./missions/parser.js";
14
- import { loadInitAssetCatalog } from "./init-asset-catalog.js";
15
- import { defaultInitProfile } from "./init-profile.js";
16
- export const REL_UPGRADE_TMP = ".gitagent/.upgrade-tmp";
17
- export { UPGRADE_MSN_BAND_MIN, UPGRADE_MSN_BAND_MAX } from "./msn-allocate.js";
18
- /** managed_strict substrate assets eligible for gantry upgrade (excludes user law / missions). */
19
- export function upgradeEligibleAssets(assets) {
20
- return assets.filter((a) => a.mode === "managed_strict");
21
- }
22
- export function allUpgradeEligibleFromCatalog(templatesRoot) {
23
- return upgradeEligibleAssets([...loadInitAssetCatalog(templatesRoot)]);
24
- }
25
- function pathExists(repoRoot, rel) {
26
- return fs.existsSync(path.join(repoRoot, rel.split("/").join(path.sep)));
27
- }
28
- function detectIntegrationPresent(repoRoot, key, entry) {
29
- if (key === "codex-cli") {
30
- return pathExists(repoRoot, ".codex/config.toml");
31
- }
32
- return entry.canonical_paths.some((p) => pathExists(repoRoot, p));
33
- }
34
- /** Infer init profile from on-disk substrate assets for upgrade planning. */
35
- export function inferInitProfileFromRepo(repoRoot, templatesRoot) {
36
- const profile = defaultInitProfile();
37
- const compat = loadIntegrationCompat(templatesRoot);
38
- const detected = INTEGRATION_IDE_KEYS.filter((key) => detectIntegrationPresent(repoRoot, key, compat.integrations[key]));
39
- if (detected.length > 0) {
40
- profile.ides = detected;
41
- }
42
- profile.gitHooks =
43
- pathExists(repoRoot, ".githooks/pre-push") || pathExists(repoRoot, ".githooks/pre-commit");
44
- profile.ciWorkflow = pathExists(repoRoot, ".github/workflows/gxt-validate.yml");
45
- profile.skillsPreset = pathExists(repoRoot, "skills/gantry.md") ? "specimen" : "minimal";
46
- return profile;
47
- }
48
- function fileState(absPath) {
49
- if (!fs.existsSync(absPath))
50
- return null;
51
- const buf = fs.readFileSync(absPath);
52
- return { bytes: buf.length, sha256: sha256Buffer(buf) };
53
- }
54
- /** Summarize planned upgrade writes for dry-run / changelog preview. */
55
- export function buildUpgradeFileChanges(repoRoot, writes) {
56
- return writes.map((w) => {
57
- const rel = toPosixRel(repoRoot, w.absoluteTarget);
58
- const before = fileState(w.absoluteTarget);
59
- const afterBuf = Buffer.from(w.body, "utf8");
60
- return {
61
- path: rel,
62
- action: before === null ? "add" : "update",
63
- bytes_before: before?.bytes ?? null,
64
- bytes_after: afterBuf.length,
65
- sha256_before: before?.sha256 ?? null,
66
- sha256_after: sha256Buffer(afterBuf),
67
- };
68
- });
69
- }
70
- export function groupUpgradeChangesByCategory(changes) {
71
- const groups = {
72
- workflows: [],
73
- scripts: [],
74
- hooks: [],
75
- substrate: [],
76
- other: [],
77
- };
78
- for (const c of changes) {
79
- if (c.path.startsWith(".github/workflows/"))
80
- groups.workflows.push(c);
81
- else if (c.path.startsWith("scripts/"))
82
- groups.scripts.push(c);
83
- else if (c.path.startsWith(".githooks/") || c.path.startsWith(".cursor/hooks"))
84
- groups.hooks.push(c);
85
- else if (c.path.startsWith(".gitagent/"))
86
- groups.substrate.push(c);
87
- else
88
- groups.other.push(c);
89
- }
90
- return groups;
91
- }
92
- function sha256Buffer(buf) {
93
- return crypto.createHash("sha256").update(buf).digest("hex");
94
- }
95
- function semverSlug(version) {
96
- return version.replace(/[^a-zA-Z0-9._-]+/g, "-");
97
- }
98
- export function pickNextUpgradeMsn(repoRoot) {
99
- return allocateMsn(repoRoot, { band: "upgrade" });
100
- }
101
- export function resolveUpgradeMsn(repoRoot, explicit) {
102
- const msn = explicit?.trim();
103
- if (msn) {
104
- if (!isValidMsnId(msn)) {
105
- throw new Error(`${CLI_NAME} upgrade: invalid --msn (expected MSN-NNNN)`);
106
- }
107
- return msn;
108
- }
109
- return pickNextUpgradeMsn(repoRoot);
110
- }
111
- function upgradeTmpAbs(repoRoot) {
112
- return path.join(repoRoot, fromPosix(REL_UPGRADE_TMP));
113
- }
114
- function stagePathForTarget(repoRoot, targetRel) {
115
- return path.join(upgradeTmpAbs(repoRoot), fromPosix(targetRel));
116
- }
117
- function writeStagedFiles(repoRoot, writes) {
118
- const stagedHashes = {};
119
- const tmpRoot = upgradeTmpAbs(repoRoot);
120
- if (fs.existsSync(tmpRoot)) {
121
- fs.rmSync(tmpRoot, { recursive: true, force: true });
122
- }
123
- for (const w of writes) {
124
- const rel = toPosixRel(repoRoot, w.absoluteTarget);
125
- const stageAbs = stagePathForTarget(repoRoot, rel);
126
- fs.mkdirSync(path.dirname(stageAbs), { recursive: true });
127
- fs.writeFileSync(stageAbs, w.body, "utf8");
128
- if (w.executable)
129
- fs.chmodSync(stageAbs, 0o755);
130
- stagedHashes[rel] = sha256Buffer(Buffer.from(w.body, "utf8"));
131
- }
132
- return stagedHashes;
133
- }
134
- export function buildUpgradeMissionYaml(opts) {
135
- const doc = {
136
- msn_id: opts.msnId,
137
- skill_key: "substrate",
138
- gate_command: "gantry doctor",
139
- gate_success_substring: null,
140
- upgrade_payload: opts.payload,
141
- trace_rows: buildLegislativeTraceRows(),
142
- };
143
- return buildMissionYamlScaffold({
144
- header: `# OpenGantry substrate upgrade mission (Planner: review staged diff under ${REL_UPGRADE_TMP}/).\n` +
145
- `# Upgrade ${opts.fromVersion} → ${opts.toVersion}. Commit this file only; staging dir is gitignored.\n`,
146
- doc,
147
- });
148
- }
149
- export function parseUpgradePayloadFromMissionBody(body) {
150
- const data = YAML.parse(body);
151
- const payload = data.upgrade_payload;
152
- if (typeof payload !== "object" || payload === null) {
153
- throw new Error(`${CLI_NAME} upgrade: mission missing upgrade_payload`);
154
- }
155
- const p = payload;
156
- const required = ["from_version", "to_version", "staged_hashes", "planned_writes"];
157
- for (const key of required) {
158
- if (p[key] === undefined) {
159
- throw new Error(`${CLI_NAME} upgrade: upgrade_payload missing ${key}`);
160
- }
161
- }
162
- if (typeof p.from_version !== "string" || typeof p.to_version !== "string") {
163
- throw new Error(`${CLI_NAME} upgrade: upgrade_payload version fields must be strings`);
164
- }
165
- if (typeof p.staged_hashes !== "object" || p.staged_hashes === null || Array.isArray(p.staged_hashes)) {
166
- throw new Error(`${CLI_NAME} upgrade: upgrade_payload.staged_hashes must be an object`);
167
- }
168
- if (!Array.isArray(p.planned_writes)) {
169
- throw new Error(`${CLI_NAME} upgrade: upgrade_payload.planned_writes must be an array`);
170
- }
171
- const stagedHashes = {};
172
- for (const [k, v] of Object.entries(p.staged_hashes)) {
173
- if (typeof v !== "string") {
174
- throw new Error(`${CLI_NAME} upgrade: staged_hashes.${k} must be a string`);
175
- }
176
- stagedHashes[k] = v;
177
- }
178
- return {
179
- from_version: p.from_version,
180
- to_version: p.to_version,
181
- staged_root: REL_UPGRADE_TMP,
182
- planned_writes: p.planned_writes.map(String),
183
- skipped_scaffold_only: Array.isArray(p.skipped_scaffold_only)
184
- ? p.skipped_scaffold_only.map(String)
185
- : [],
186
- staged_hashes: stagedHashes,
187
- created_at: typeof p.created_at === "string" ? p.created_at : new Date().toISOString(),
188
- };
189
- }
10
+ import { buildUpgradeFileChanges, groupUpgradeChangesByCategory, inferInitProfileFromRepo, upgradeEligibleAssets, } from "./upgrade-plan-catalog.js";
11
+ import { buildUpgradeMissionYaml, resolveUpgradeMsn, semverSlug, writeStagedFiles, } from "./upgrade-plan-scaffold.js";
12
+ import { REL_UPGRADE_TMP, } from "./upgrade-plan-types.js";
13
+ export { REL_UPGRADE_TMP, UPGRADE_MSN_BAND_MIN, UPGRADE_MSN_BAND_MAX, } from "./upgrade-plan-types.js";
14
+ export { upgradeEligibleAssets, allUpgradeEligibleFromCatalog, inferInitProfileFromRepo, buildUpgradeFileChanges, groupUpgradeChangesByCategory, } from "./upgrade-plan-catalog.js";
15
+ export { pickNextUpgradeMsn, resolveUpgradeMsn, buildUpgradeMissionYaml, parseUpgradePayloadFromMissionBody, } from "./upgrade-plan-scaffold.js";
190
16
  function resolveUpgradeVersionGate(installed, bundled, legacyWarning) {
191
17
  if (compareSemver(bundled, installed.version) < 0) {
192
18
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-plan.js","sourceRoot":"","sources":["../../../src/cli/lib/upgrade-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade-plan.js","sourceRoot":"","sources":["../../../src/cli/lib/upgrade-plan.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { DefensiveFailure } from "./verify-engine.js";
1
+ import type { DefensiveFailure } from "./verify-failure.js";
2
2
  import type { Manifest } from "./types.js";
3
3
  export interface DefensivePhaseOutcome {
4
4
  failure: DefensiveFailure | null;