@jeger-ai/opengantry 2.1.0 → 2.2.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 (157) hide show
  1. package/README.md +24 -7
  2. package/dist/cli/commands/audit-rigor.d.ts +8 -0
  3. package/dist/cli/commands/audit-rigor.d.ts.map +1 -0
  4. package/dist/cli/commands/audit-rigor.js +24 -0
  5. package/dist/cli/commands/audit-rigor.js.map +1 -0
  6. package/dist/cli/commands/context-feed.d.ts +6 -0
  7. package/dist/cli/commands/context-feed.d.ts.map +1 -0
  8. package/dist/cli/commands/context-feed.js +48 -0
  9. package/dist/cli/commands/context-feed.js.map +1 -0
  10. package/dist/cli/commands/mission.js +1 -1
  11. package/dist/cli/commands/mission.js.map +1 -1
  12. package/dist/cli/commands/onboarding.d.ts.map +1 -1
  13. package/dist/cli/commands/onboarding.js +9 -4
  14. package/dist/cli/commands/onboarding.js.map +1 -1
  15. package/dist/cli/commands/upgrade.d.ts.map +1 -1
  16. package/dist/cli/commands/upgrade.js +2 -1
  17. package/dist/cli/commands/upgrade.js.map +1 -1
  18. package/dist/cli/lib/architecture-pointer.d.ts +1 -1
  19. package/dist/cli/lib/architecture-pointer.d.ts.map +1 -1
  20. package/dist/cli/lib/audit-rigor.d.ts +18 -0
  21. package/dist/cli/lib/audit-rigor.d.ts.map +1 -0
  22. package/dist/cli/lib/audit-rigor.js +189 -0
  23. package/dist/cli/lib/audit-rigor.js.map +1 -0
  24. package/dist/cli/lib/constants.d.ts +4 -0
  25. package/dist/cli/lib/constants.d.ts.map +1 -1
  26. package/dist/cli/lib/constants.js +4 -0
  27. package/dist/cli/lib/constants.js.map +1 -1
  28. package/dist/cli/lib/context-feed-remediation.d.ts +12 -0
  29. package/dist/cli/lib/context-feed-remediation.d.ts.map +1 -0
  30. package/dist/cli/lib/context-feed-remediation.js +88 -0
  31. package/dist/cli/lib/context-feed-remediation.js.map +1 -0
  32. package/dist/cli/lib/context-feed-store.d.ts +33 -0
  33. package/dist/cli/lib/context-feed-store.d.ts.map +1 -0
  34. package/dist/cli/lib/context-feed-store.js +110 -0
  35. package/dist/cli/lib/context-feed-store.js.map +1 -0
  36. package/dist/cli/lib/doctor-core.d.ts +5 -0
  37. package/dist/cli/lib/doctor-core.d.ts.map +1 -0
  38. package/dist/cli/lib/doctor-core.js +163 -0
  39. package/dist/cli/lib/doctor-core.js.map +1 -0
  40. package/dist/cli/lib/doctor-integration.d.ts +13 -0
  41. package/dist/cli/lib/doctor-integration.d.ts.map +1 -0
  42. package/dist/cli/lib/doctor-integration.js +120 -0
  43. package/dist/cli/lib/doctor-integration.js.map +1 -0
  44. package/dist/cli/lib/doctor-substrate.d.ts +3 -0
  45. package/dist/cli/lib/doctor-substrate.d.ts.map +1 -0
  46. package/dist/cli/lib/doctor-substrate.js +35 -0
  47. package/dist/cli/lib/doctor-substrate.js.map +1 -0
  48. package/dist/cli/lib/doctor-types.d.ts +24 -0
  49. package/dist/cli/lib/doctor-types.d.ts.map +1 -0
  50. package/dist/cli/lib/doctor-types.js +7 -0
  51. package/dist/cli/lib/doctor-types.js.map +1 -0
  52. package/dist/cli/lib/doctor.d.ts +4 -30
  53. package/dist/cli/lib/doctor.d.ts.map +1 -1
  54. package/dist/cli/lib/doctor.js +4 -281
  55. package/dist/cli/lib/doctor.js.map +1 -1
  56. package/dist/cli/lib/integration-compat.d.ts +7 -0
  57. package/dist/cli/lib/integration-compat.d.ts.map +1 -1
  58. package/dist/cli/lib/integration-compat.js +14 -0
  59. package/dist/cli/lib/integration-compat.js.map +1 -1
  60. package/dist/cli/lib/kpi-engine.d.ts +0 -2
  61. package/dist/cli/lib/kpi-engine.d.ts.map +1 -1
  62. package/dist/cli/lib/kpi-engine.js +11 -13
  63. package/dist/cli/lib/kpi-engine.js.map +1 -1
  64. package/dist/cli/lib/mcp-tools-register.js +1 -1
  65. package/dist/cli/lib/mcp-tools-register.js.map +1 -1
  66. package/dist/cli/lib/mcp-upgrade.d.ts +2 -2
  67. package/dist/cli/lib/mcp-upgrade.d.ts.map +1 -1
  68. package/dist/cli/lib/mcp-upgrade.js +5 -1
  69. package/dist/cli/lib/mcp-upgrade.js.map +1 -1
  70. package/dist/cli/lib/missions/formatter.d.ts.map +1 -1
  71. package/dist/cli/lib/missions/formatter.js +1 -0
  72. package/dist/cli/lib/missions/formatter.js.map +1 -1
  73. package/dist/cli/lib/missions/parser.d.ts.map +1 -1
  74. package/dist/cli/lib/missions/parser.js +1 -0
  75. package/dist/cli/lib/missions/parser.js.map +1 -1
  76. package/dist/cli/lib/start-orchestration.d.ts +1 -11
  77. package/dist/cli/lib/start-orchestration.d.ts.map +1 -1
  78. package/dist/cli/lib/start-orchestration.js +1 -85
  79. package/dist/cli/lib/start-orchestration.js.map +1 -1
  80. package/dist/cli/lib/start-snapshot.d.ts +12 -0
  81. package/dist/cli/lib/start-snapshot.d.ts.map +1 -0
  82. package/dist/cli/lib/start-snapshot.js +81 -0
  83. package/dist/cli/lib/start-snapshot.js.map +1 -0
  84. package/dist/cli/lib/trace.d.ts.map +1 -1
  85. package/dist/cli/lib/trace.js +1 -6
  86. package/dist/cli/lib/trace.js.map +1 -1
  87. package/dist/cli/lib/types.d.ts +3 -0
  88. package/dist/cli/lib/types.d.ts.map +1 -1
  89. package/dist/cli/lib/upgrade-plan-payload.d.ts +31 -0
  90. package/dist/cli/lib/upgrade-plan-payload.d.ts.map +1 -0
  91. package/dist/cli/lib/upgrade-plan-payload.js +109 -0
  92. package/dist/cli/lib/upgrade-plan-payload.js.map +1 -0
  93. package/dist/cli/lib/verify-engine.d.ts.map +1 -1
  94. package/dist/cli/lib/verify-engine.js +39 -13
  95. package/dist/cli/lib/verify-engine.js.map +1 -1
  96. package/dist/cli/lib/verify-failure-format.d.ts +29 -0
  97. package/dist/cli/lib/verify-failure-format.d.ts.map +1 -0
  98. package/dist/cli/lib/verify-failure-format.js +68 -0
  99. package/dist/cli/lib/verify-failure-format.js.map +1 -0
  100. package/dist/cli/lib/verify-hints.d.ts +32 -0
  101. package/dist/cli/lib/verify-hints.d.ts.map +1 -0
  102. package/dist/cli/lib/verify-hints.js +161 -0
  103. package/dist/cli/lib/verify-hints.js.map +1 -0
  104. package/dist/cli/lib/verify-payload.d.ts +0 -1
  105. package/dist/cli/lib/verify-payload.d.ts.map +1 -1
  106. package/dist/cli/lib/verify-payload.js +6 -19
  107. package/dist/cli/lib/verify-payload.js.map +1 -1
  108. package/dist/cli/lib/verify-present.d.ts +6 -23
  109. package/dist/cli/lib/verify-present.d.ts.map +1 -1
  110. package/dist/cli/lib/verify-present.js +3 -215
  111. package/dist/cli/lib/verify-present.js.map +1 -1
  112. package/dist/cli/lib/verify-presentation.d.ts +2 -1
  113. package/dist/cli/lib/verify-presentation.d.ts.map +1 -1
  114. package/dist/cli/lib/verify-presentation.js +2 -1
  115. package/dist/cli/lib/verify-presentation.js.map +1 -1
  116. package/dist/cli/lib/verify-presenters.d.ts +19 -0
  117. package/dist/cli/lib/verify-presenters.d.ts.map +1 -0
  118. package/dist/cli/lib/verify-presenters.js +173 -0
  119. package/dist/cli/lib/verify-presenters.js.map +1 -0
  120. package/dist/cli/lib/verify-remediation.d.ts +4 -56
  121. package/dist/cli/lib/verify-remediation.d.ts.map +1 -1
  122. package/dist/cli/lib/verify-remediation.js +2 -226
  123. package/dist/cli/lib/verify-remediation.js.map +1 -1
  124. package/dist/cli/lib/verify-run.d.ts +12 -0
  125. package/dist/cli/lib/verify-run.d.ts.map +1 -0
  126. package/dist/cli/lib/verify-run.js +70 -0
  127. package/dist/cli/lib/verify-run.js.map +1 -0
  128. package/dist/cli/lib/verify-sinks.d.ts +4 -0
  129. package/dist/cli/lib/verify-sinks.d.ts.map +1 -0
  130. package/dist/cli/lib/verify-sinks.js +12 -0
  131. package/dist/cli/lib/verify-sinks.js.map +1 -0
  132. package/dist/cli/lib/version.gen.d.ts +1 -1
  133. package/dist/cli/lib/version.gen.js +1 -1
  134. package/dist/cli/lib/virtual-scratch-store.d.ts +37 -0
  135. package/dist/cli/lib/virtual-scratch-store.d.ts.map +1 -0
  136. package/dist/cli/lib/virtual-scratch-store.js +132 -0
  137. package/dist/cli/lib/virtual-scratch-store.js.map +1 -0
  138. package/dist/cli/program-core.d.ts.map +1 -1
  139. package/dist/cli/program-core.js +43 -3
  140. package/dist/cli/program-core.js.map +1 -1
  141. package/package.json +1 -1
  142. package/templates/.gitagent/teacher/MISSION.schema.yaml +6 -0
  143. package/templates/.gitignore.gxt +2 -0
  144. package/templates/integrations/asset-catalog.json +1 -0
  145. package/templates/integrations/compatibility.json +10 -1
  146. package/templates/integrations/recipes/claude-code.md +6 -4
  147. package/templates/integrations/recipes/codex-cli.md +6 -4
  148. package/templates/integrations/recipes/opencode.md +8 -2
  149. package/templates/scripts/gxt-shell-agent.sh +62 -0
  150. package/dist/cli/lib/kpi-report-stale.d.ts +0 -18
  151. package/dist/cli/lib/kpi-report-stale.d.ts.map +0 -1
  152. package/dist/cli/lib/kpi-report-stale.js +0 -91
  153. package/dist/cli/lib/kpi-report-stale.js.map +0 -1
  154. package/dist/cli/lib/trace-evidence.d.ts +0 -23
  155. package/dist/cli/lib/trace-evidence.d.ts.map +0 -1
  156. package/dist/cli/lib/trace-evidence.js +0 -118
  157. package/dist/cli/lib/trace-evidence.js.map +0 -1
@@ -0,0 +1,35 @@
1
+ import { NPM_PACKAGE_NAME } from "./constants.js";
2
+ import { loadIntegrationCompat } from "./integration-compat.js";
3
+ import { compareSemver, legacyVersionWarning, readInstalledSubstrateVersion, } from "./substrate-version.js";
4
+ export function runSubstrateDriftDoctorChecks(repoRoot, templatesRoot) {
5
+ const installed = readInstalledSubstrateVersion(repoRoot);
6
+ const bundled = loadIntegrationCompat(templatesRoot).opengantry_version;
7
+ const lines = [];
8
+ let nextStep = null;
9
+ const legacyWarn = legacyVersionWarning(installed.source);
10
+ if (legacyWarn) {
11
+ lines.push({ level: "warn", message: legacyWarn });
12
+ }
13
+ const cmp = compareSemver(installed.version, bundled);
14
+ if (cmp === 0) {
15
+ lines.push({
16
+ level: "ok",
17
+ message: `substrate version: ${installed.version} (matches bundled gapman)`,
18
+ });
19
+ }
20
+ else if (cmp < 0) {
21
+ lines.push({
22
+ level: "warn",
23
+ message: `substrate version ${installed.version} is behind bundled gapman ${bundled} — run gapman upgrade after updating ${NPM_PACKAGE_NAME}`,
24
+ });
25
+ nextStep = "gapman upgrade";
26
+ }
27
+ else {
28
+ lines.push({
29
+ level: "warn",
30
+ message: `substrate version ${installed.version} is ahead of bundled gapman ${bundled} — update ${NPM_PACKAGE_NAME} (e.g. npm install ${NPM_PACKAGE_NAME}@latest), then re-run gapman doctor`,
31
+ });
32
+ }
33
+ return { lines, nextStep };
34
+ }
35
+ //# sourceMappingURL=doctor-substrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-substrate.js","sourceRoot":"","sources":["../../../src/cli/lib/doctor-substrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAGhC,MAAM,UAAU,6BAA6B,CAC3C,QAAgB,EAChB,aAAqB;IAErB,MAAM,SAAS,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC,kBAAkB,CAAC;IACxE,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,IAAI,QAAQ,GAAkB,IAAI,CAAC;IAEnC,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,sBAAsB,SAAS,CAAC,OAAO,2BAA2B;SAC5E,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,qBAAqB,SAAS,CAAC,OAAO,6BAA6B,OAAO,wCAAwC,gBAAgB,EAAE;SAC9I,CAAC,CAAC;QACH,QAAQ,GAAG,gBAAgB,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,qBAAqB,SAAS,CAAC,OAAO,+BAA+B,OAAO,aAAa,gBAAgB,sBAAsB,gBAAgB,qCAAqC;SAC9L,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,24 @@
1
+ export type DoctorLevel = "ok" | "warn" | "fail";
2
+ export interface DoctorLine {
3
+ level: DoctorLevel;
4
+ message: string;
5
+ }
6
+ export interface DoctorCheckResult {
7
+ lines: DoctorLine[];
8
+ hasFail: boolean;
9
+ nextStep: string | null;
10
+ teacherAllowlistUnset: boolean;
11
+ }
12
+ export interface DoctorReport {
13
+ lines: DoctorLine[];
14
+ hasFail: boolean;
15
+ nextStep: string | null;
16
+ teacherAllowlistUnset: boolean;
17
+ }
18
+ export interface SubstrateDriftDoctorResult {
19
+ lines: DoctorLine[];
20
+ nextStep: string | null;
21
+ }
22
+ export declare function pickNextStep(current: string | null, candidate: string): string | null;
23
+ export declare function doctorLinesHasFail(lines: DoctorLine[]): boolean;
24
+ //# sourceMappingURL=doctor-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-types.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/doctor-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAE/D"}
@@ -0,0 +1,7 @@
1
+ export function pickNextStep(current, candidate) {
2
+ return current ?? candidate;
3
+ }
4
+ export function doctorLinesHasFail(lines) {
5
+ return lines.some((line) => line.level === "fail");
6
+ }
7
+ //# sourceMappingURL=doctor-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-types.js","sourceRoot":"","sources":["../../../src/cli/lib/doctor-types.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,YAAY,CAAC,OAAsB,EAAE,SAAiB;IACpE,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAmB;IACpD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;AACrD,CAAC"}
@@ -1,31 +1,5 @@
1
- import { INTEGRATION_IDE_KEYS, loadIntegrationCompat, integrationWizardLabel } from "./integration-compat.js";
2
- import type { Manifest } from "./types.js";
3
- export type DoctorLevel = "ok" | "warn" | "fail";
4
- export interface DoctorLine {
5
- level: DoctorLevel;
6
- message: string;
7
- }
8
- export interface DoctorCheckResult {
9
- lines: DoctorLine[];
10
- hasFail: boolean;
11
- nextStep: string | null;
12
- teacherAllowlistUnset: boolean;
13
- }
14
- export interface DoctorReport {
15
- lines: DoctorLine[];
16
- hasFail: boolean;
17
- nextStep: string | null;
18
- teacherAllowlistUnset: boolean;
19
- }
20
- export interface SubstrateDriftDoctorResult {
21
- lines: DoctorLine[];
22
- nextStep: string | null;
23
- }
24
- export declare function pickNextStep(current: string | null, candidate: string): string | null;
25
- export declare function doctorLinesHasFail(lines: DoctorLine[]): boolean;
26
- export declare function runDoctorChecks(root: string, manifest: Manifest): DoctorCheckResult;
27
- export declare function runIntegrationDoctorChecks(repoRoot: string, templatesRoot: string): DoctorLine[];
28
- export { integrationWizardLabel, INTEGRATION_IDE_KEYS, loadIntegrationCompat };
29
- export declare function runSubstrateDriftDoctorChecks(repoRoot: string, templatesRoot: string): SubstrateDriftDoctorResult;
30
- export declare function collectDoctorReport(root: string, manifest: Manifest, templatesRoot?: string): DoctorReport;
1
+ export * from "./doctor-types.js";
2
+ export * from "./doctor-core.js";
3
+ export * from "./doctor-integration.js";
4
+ export * from "./doctor-substrate.js";
31
5
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/doctor.ts"],"names":[],"mappings":"AASA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EAGvB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAcD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAE/D;AA2FD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,CA6BnF;AAoCD,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,UAAU,EAAE,CAsDhG;AAED,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC;AAE/E,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,0BAA0B,CA+B5B;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,YAAY,CAwBd"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/doctor.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
@@ -1,282 +1,5 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import { spawnSync } from "node:child_process";
4
- import { runArchitecturePointerDoctorChecks } from "./architecture-pointer.js";
5
- import { ENV_BYPASS_SECRET, isBypassSecretAuthorized, REL_BYPASS_SHA256 } from "./break-glass.js";
6
- import { errorMessage } from "./cli-io.js";
7
- import { REL_AGENT_ERROR_FILE, REL_MANIFEST, NPM_PACKAGE_NAME } from "./constants.js";
8
- import { agentErrorAbsolutePath } from "./errors.js";
9
- import { gitConfigGet } from "./git.js";
10
- import { INTEGRATION_IDE_KEYS, loadIntegrationCompat, integrationWizardLabel, resolveTemplateRootFromModule, } from "./integration-compat.js";
11
- import { resolveTeacherEmails } from "./teacher-identity.js";
12
- import { checkSkillManifestSync } from "./skill-sync.js";
13
- import { compareSemver, legacyVersionWarning, readInstalledSubstrateVersion, } from "./substrate-version.js";
14
- function readBypassAnchorState(repoRoot) {
15
- const p = path.join(repoRoot, REL_BYPASS_SHA256);
16
- if (!fs.existsSync(p))
17
- return "missing";
18
- const raw = fs.readFileSync(p, "utf8");
19
- if (/^[a-f0-9]{64}$/im.test(raw))
20
- return "configured";
21
- return "placeholder";
22
- }
23
- function readHooksPath(repoRoot) {
24
- return gitConfigGet(repoRoot, "core.hooksPath");
25
- }
26
- export function pickNextStep(current, candidate) {
27
- return current ?? candidate;
28
- }
29
- export function doctorLinesHasFail(lines) {
30
- return lines.some((line) => line.level === "fail");
31
- }
32
- function appendTeacherAllowlistChecks(root, lines, nextStep) {
33
- const teacherIdentity = resolveTeacherEmails(root);
34
- if (teacherIdentity.emails.length > 0) {
35
- lines.push({
36
- level: "ok",
37
- message: `Teacher allowlist (${teacherIdentity.source}): ${teacherIdentity.emails.join(", ")}`,
38
- });
39
- if (teacherIdentity.source === "env") {
40
- lines.push({
41
- level: "warn",
42
- message: "Teacher identity from GAPMAN_TEACHER_EMAILS env — prefer repo-local .gitagent/foreman/TEACHER.allowlist.local when working across projects",
43
- });
44
- }
45
- return { nextStep, teacherAllowlistUnset: false };
46
- }
47
- lines.push({ level: "warn", message: "Teacher allowlist unset — verify git-proof will fail" });
48
- nextStep = pickNextStep(nextStep, 'gapman teacher set "$(git config user.email)"');
49
- return { nextStep, teacherAllowlistUnset: true };
50
- }
51
- function appendBypassChecks(root, lines) {
52
- const bypassState = readBypassAnchorState(root);
53
- if (bypassState === "configured") {
54
- lines.push({ level: "ok", message: "BYPASS.sha256 anchor present" });
55
- const secret = process.env[ENV_BYPASS_SECRET];
56
- if (secret?.length) {
57
- const authorized = isBypassSecretAuthorized(root);
58
- lines.push({
59
- level: authorized ? "ok" : "warn",
60
- message: authorized
61
- ? "bypass: GXT_BYPASS_SECRET matches anchor"
62
- : "bypass: GXT_BYPASS_SECRET does NOT match anchor",
63
- });
64
- }
65
- else {
66
- lines.push({ level: "warn", message: "bypass: GXT_BYPASS_SECRET unset (expected unless in emergency)" });
67
- }
68
- }
69
- else if (bypassState === "placeholder") {
70
- lines.push({ level: "warn", message: "BYPASS.sha256 has no hash line — break-glass not provisioned" });
71
- }
72
- else {
73
- lines.push({ level: "warn", message: `${REL_BYPASS_SHA256} missing` });
74
- }
75
- }
76
- function appendHooksAndExampleMissionChecks(root, lines, nextStep) {
77
- const hooks = readHooksPath(root);
78
- if (hooks === ".githooks") {
79
- lines.push({ level: "ok", message: "core.hooksPath=.githooks" });
80
- }
81
- else if (hooks) {
82
- lines.push({ level: "warn", message: `core.hooksPath=${hooks} (expected .githooks for GXT hooks)` });
83
- }
84
- else {
85
- lines.push({ level: "warn", message: "core.hooksPath unset — run: git config core.hooksPath .githooks" });
86
- }
87
- const exampleMission = ".gitagent/missions/example.verify.yaml";
88
- const teacherIdentity = resolveTeacherEmails(root);
89
- if (fs.existsSync(path.join(root, exampleMission))) {
90
- lines.push({ level: "ok", message: `example mission: ${exampleMission}` });
91
- if (teacherIdentity.emails.length > 0) {
92
- nextStep = pickNextStep(nextStep, `gapman verify --mission ${exampleMission}`);
93
- }
94
- }
95
- else {
96
- lines.push({ level: "warn", message: "no example.verify.yaml — legislate a mission first" });
97
- nextStep = pickNextStep(nextStep, 'gapman legislate "<intent>" --msn MSN-0001 --skill-key <key>');
98
- }
99
- return nextStep;
100
- }
101
- function appendAgentErrorCheck(root, lines) {
102
- const errPath = agentErrorAbsolutePath(root);
103
- if (!fs.existsSync(errPath))
104
- return;
105
- try {
106
- const payload = JSON.parse(fs.readFileSync(errPath, "utf8"));
107
- const summary = typeof payload.summary === "string" ? payload.summary : "(no summary)";
108
- lines.push({ level: "warn", message: `last agent error: ${summary}` });
109
- lines.push({ level: "warn", message: ` file: ${REL_AGENT_ERROR_FILE}` });
110
- }
111
- catch {
112
- lines.push({ level: "warn", message: `stale ${REL_AGENT_ERROR_FILE} (unreadable)` });
113
- }
114
- }
115
- export function runDoctorChecks(root, manifest) {
116
- const lines = [{ level: "ok", message: `repo: ${root}` }];
117
- let hasFail = false;
118
- let nextStep = null;
119
- let teacherAllowlistUnset = false;
120
- const skillSync = checkSkillManifestSync(root, manifest);
121
- if (skillSync.ok) {
122
- lines.push({ level: "ok", message: "manifest + skills/ Rule 4.4 sync" });
123
- }
124
- else {
125
- for (const err of skillSync.errors)
126
- lines.push({ level: "fail", message: err });
127
- hasFail = true;
128
- nextStep = pickNextStep(nextStep, "gapman check");
129
- }
130
- const teacherResult = appendTeacherAllowlistChecks(root, lines, nextStep);
131
- nextStep = teacherResult.nextStep;
132
- teacherAllowlistUnset = teacherResult.teacherAllowlistUnset;
133
- appendBypassChecks(root, lines);
134
- nextStep = appendHooksAndExampleMissionChecks(root, lines, nextStep);
135
- appendAgentErrorCheck(root, lines);
136
- if (!fs.existsSync(path.join(root, REL_MANIFEST))) {
137
- lines.push({ level: "fail", message: `${REL_MANIFEST} missing` });
138
- hasFail = true;
139
- nextStep = pickNextStep(nextStep, "gapman init");
140
- }
141
- return { lines, hasFail, nextStep, teacherAllowlistUnset };
142
- }
143
- function pathExists(repoRoot, rel) {
144
- const normalized = rel.endsWith("/") ? rel.slice(0, -1) : rel;
145
- return fs.existsSync(path.join(repoRoot, normalized));
146
- }
147
- function readCursorHooksVersion(repoRoot) {
148
- const p = path.join(repoRoot, ".cursor/hooks.json");
149
- if (!fs.existsSync(p))
150
- return null;
151
- try {
152
- const j = JSON.parse(fs.readFileSync(p, "utf8"));
153
- return typeof j.version === "number" ? j.version : null;
154
- }
155
- catch {
156
- return null;
157
- }
158
- }
159
- function probeCliVersion(cmd, args) {
160
- const r = spawnSync(cmd, args, { encoding: "utf8", timeout: 5000 });
161
- if (r.status !== 0)
162
- return null;
163
- const out = `${r.stdout ?? ""}${r.stderr ?? ""}`.trim();
164
- return out.length > 0 ? out.split("\n")[0].trim() : null;
165
- }
166
- function detectIntegrationPresent(repoRoot, key, entry) {
167
- if (key === "codex-cli") {
168
- return pathExists(repoRoot, ".codex/config.toml");
169
- }
170
- return entry.canonical_paths.some((p) => pathExists(repoRoot, p));
171
- }
172
- export function runIntegrationDoctorChecks(repoRoot, templatesRoot) {
173
- const lines = [];
174
- let compat;
175
- try {
176
- compat = loadIntegrationCompat(templatesRoot);
177
- }
178
- catch (e) {
179
- lines.push({
180
- level: "warn",
181
- message: `integration compat manifest unavailable: ${errorMessage(e)}`,
182
- });
183
- return lines;
184
- }
185
- const detected = [];
186
- for (const key of INTEGRATION_IDE_KEYS) {
187
- const entry = compat.integrations[key];
188
- for (const dep of entry.deprecated_paths) {
189
- if (pathExists(repoRoot, dep)) {
190
- const canonical = entry.canonical_paths[0] ?? "(see .gitagent/ARCHITECTURE.pointer.json)";
191
- lines.push({
192
- level: "warn",
193
- message: `deprecated path ${dep} — migrate to ${canonical} (${entry.display_name})`,
194
- });
195
- }
196
- }
197
- if (!detectIntegrationPresent(repoRoot, key, entry))
198
- continue;
199
- let label = key;
200
- if (entry.cli_probe && entry.cli_probe.length >= 2) {
201
- const ver = probeCliVersion(entry.cli_probe[0], entry.cli_probe.slice(1));
202
- if (ver)
203
- label = `${key} (${ver})`;
204
- }
205
- detected.push(label);
206
- if (key === "cursor" && entry.hooks_schema_version != null) {
207
- const hv = readCursorHooksVersion(repoRoot);
208
- if (hv != null && hv !== entry.hooks_schema_version) {
209
- lines.push({
210
- level: "warn",
211
- message: `.cursor/hooks.json version ${hv} — expected ${entry.hooks_schema_version} per integration compat`,
212
- });
213
- }
214
- }
215
- }
216
- if (detected.length > 0) {
217
- lines.push({ level: "ok", message: `detected agent wiring: ${detected.join(", ")}` });
218
- }
219
- else {
220
- lines.push({ level: "warn", message: "no agent integration files detected — run gapman init" });
221
- }
222
- return lines;
223
- }
224
- export { integrationWizardLabel, INTEGRATION_IDE_KEYS, loadIntegrationCompat };
225
- export function runSubstrateDriftDoctorChecks(repoRoot, templatesRoot) {
226
- const installed = readInstalledSubstrateVersion(repoRoot);
227
- const bundled = loadIntegrationCompat(templatesRoot).opengantry_version;
228
- const lines = [];
229
- let nextStep = null;
230
- const legacyWarn = legacyVersionWarning(installed.source);
231
- if (legacyWarn) {
232
- lines.push({ level: "warn", message: legacyWarn });
233
- }
234
- const cmp = compareSemver(installed.version, bundled);
235
- if (cmp === 0) {
236
- lines.push({
237
- level: "ok",
238
- message: `substrate version: ${installed.version} (matches bundled gapman)`,
239
- });
240
- }
241
- else if (cmp < 0) {
242
- lines.push({
243
- level: "warn",
244
- message: `substrate version ${installed.version} is behind bundled gapman ${bundled} — run gapman upgrade after updating ${NPM_PACKAGE_NAME}`,
245
- });
246
- nextStep = "gapman upgrade";
247
- }
248
- else {
249
- lines.push({
250
- level: "warn",
251
- message: `substrate version ${installed.version} is ahead of bundled gapman ${bundled} — update ${NPM_PACKAGE_NAME} (e.g. npm install ${NPM_PACKAGE_NAME}@latest), then re-run gapman doctor`,
252
- });
253
- }
254
- return { lines, nextStep };
255
- }
256
- export function collectDoctorReport(root, manifest, templatesRoot) {
257
- const result = runDoctorChecks(root, manifest);
258
- let lines = [...result.lines, ...runArchitecturePointerDoctorChecks(root)];
259
- let nextStep = result.nextStep;
260
- try {
261
- const tpl = templatesRoot ?? resolveTemplateRootFromModule();
262
- lines = [...lines, ...runIntegrationDoctorChecks(root, tpl)];
263
- const drift = runSubstrateDriftDoctorChecks(root, tpl);
264
- lines = [...lines, ...drift.lines];
265
- if (drift.nextStep) {
266
- nextStep = pickNextStep(nextStep, drift.nextStep);
267
- }
268
- }
269
- catch {
270
- lines = [
271
- ...lines,
272
- { level: "warn", message: "integration compat checks skipped (templates not found)" },
273
- ];
274
- }
275
- return {
276
- lines,
277
- hasFail: doctorLinesHasFail(lines) || result.hasFail,
278
- nextStep,
279
- teacherAllowlistUnset: result.teacherAllowlistUnset,
280
- };
281
- }
1
+ export * from "./doctor-types.js";
2
+ export * from "./doctor-core.js";
3
+ export * from "./doctor-integration.js";
4
+ export * from "./doctor-substrate.js";
282
5
  //# sourceMappingURL=doctor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/lib/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/lib/doctor.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
@@ -1,5 +1,8 @@
1
1
  export declare const INTEGRATION_IDE_KEYS: readonly ["cursor", "claude-code", "codex-cli", "opencode", "junie", "antigravity", "cline", "aider", "openhands"];
2
2
  export type IntegrationIdeKey = (typeof INTEGRATION_IDE_KEYS)[number];
3
+ /** How session bootstrap is invoked for this integration (not all tools run project hooks). */
4
+ export declare const BOOTSTRAP_MODES: readonly ["hook", "shell_wrapper", "manual_recipe"];
5
+ export type BootstrapMode = (typeof BOOTSTRAP_MODES)[number];
3
6
  export interface IntegrationCompatEntry {
4
7
  display_name: string;
5
8
  verified_date: string;
@@ -7,6 +10,8 @@ export interface IntegrationCompatEntry {
7
10
  recipe_file: string;
8
11
  canonical_paths: string[];
9
12
  deprecated_paths: string[];
13
+ /** hook = IDE sessionStart; shell_wrapper = gxt-shell-agent.sh; manual_recipe = documented only */
14
+ bootstrap_mode: BootstrapMode;
10
15
  hooks_schema_version?: number;
11
16
  cli_probe?: string[] | null;
12
17
  disambiguation?: string;
@@ -22,5 +27,7 @@ export declare function isIntegrationIdeKey(key: string): key is IntegrationIdeK
22
27
  export declare function resolveTemplateRootFromModule(): string;
23
28
  export declare function loadIntegrationCompat(templatesRoot?: string): IntegrationCompatManifest;
24
29
  export declare function validateIntegrationCompat(manifest: IntegrationCompatManifest): void;
30
+ export declare function isBootstrapHookMode(entry: IntegrationCompatEntry): boolean;
31
+ export declare function isBootstrapShellWrapperMode(entry: IntegrationCompatEntry): boolean;
25
32
  export declare function integrationWizardLabel(entry: IntegrationCompatEntry): string;
26
33
  //# sourceMappingURL=integration-compat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"integration-compat.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/integration-compat.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB,oHAUvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;CACjE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAEzE;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAOtD;AAED,wBAAgB,qBAAqB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAMvF;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI,CAUnF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAE5E"}
1
+ {"version":3,"file":"integration-compat.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/integration-compat.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB,oHAUvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,+FAA+F;AAC/F,eAAO,MAAM,eAAe,qDAAsD,CAAC;AACnF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,mGAAmG;IACnG,cAAc,EAAE,aAAa,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;CACjE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAEzE;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAOtD;AAED,wBAAgB,qBAAqB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAMvF;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI,CAgBnF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAE1E;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAElF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAE5E"}
@@ -12,6 +12,8 @@ export const INTEGRATION_IDE_KEYS = [
12
12
  "aider",
13
13
  "openhands",
14
14
  ];
15
+ /** How session bootstrap is invoked for this integration (not all tools run project hooks). */
16
+ export const BOOTSTRAP_MODES = ["hook", "shell_wrapper", "manual_recipe"];
15
17
  export function isIntegrationIdeKey(key) {
16
18
  return INTEGRATION_IDE_KEYS.includes(key);
17
19
  }
@@ -42,8 +44,20 @@ export function validateIntegrationCompat(manifest) {
42
44
  throw new Error(`integration compat: ${key} missing recipe_file`);
43
45
  if (!entry.display_name)
44
46
  throw new Error(`integration compat: ${key} missing display_name`);
47
+ if (!entry.bootstrap_mode || !BOOTSTRAP_MODES.includes(entry.bootstrap_mode)) {
48
+ throw new Error(`integration compat: ${key} missing or invalid bootstrap_mode`);
49
+ }
50
+ if (entry.bootstrap_mode === "hook" && entry.hooks_schema_version == null) {
51
+ throw new Error(`integration compat: ${key} hook mode requires hooks_schema_version`);
52
+ }
45
53
  }
46
54
  }
55
+ export function isBootstrapHookMode(entry) {
56
+ return entry.bootstrap_mode === "hook";
57
+ }
58
+ export function isBootstrapShellWrapperMode(entry) {
59
+ return entry.bootstrap_mode === "shell_wrapper";
60
+ }
47
61
  export function integrationWizardLabel(entry) {
48
62
  return `${entry.display_name} (verified ${entry.verified_date})`;
49
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"integration-compat.js","sourceRoot":"","sources":["../../../src/cli/lib/integration-compat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,QAAQ;IACR,aAAa;IACb,WAAW;IACX,UAAU;IACV,OAAO;IACP,aAAa;IACb,OAAO;IACP,OAAO;IACP,WAAW;CACH,CAAC;AAwBX,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,OAAQ,oBAA0C,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,aAAsB;IAC1D,MAAM,IAAI,GAAG,aAAa,IAAI,6BAA6B,EAAE,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iCAAiC,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAA8B,CAAC;IACzF,yBAAyB,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,QAAmC;IAC3E,IAAI,QAAQ,CAAC,cAAc,KAAK,GAAG,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,kDAAkD,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,sBAAsB,CAAC,CAAC;QAC1F,IAAI,CAAC,KAAK,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,uBAAuB,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAA6B;IAClE,OAAO,GAAG,KAAK,CAAC,YAAY,cAAc,KAAK,CAAC,aAAa,GAAG,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"integration-compat.js","sourceRoot":"","sources":["../../../src/cli/lib/integration-compat.ts"],"names":[],"mappings":"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"}
@@ -26,8 +26,6 @@ export interface KpiReportStaleResult {
26
26
  }
27
27
  /** Bind KPI report attestation to TMVC drift (mirrors trace-evidence committed/uncommitted split). */
28
28
  export declare function verifyKpiReportFreshness(repoRoot: string, manifest: Manifest, skillKey: string | null, reportPath: string, options?: KpiReportStaleOptions): KpiReportStaleResult;
29
- /** True when report file is tracked in git. */
30
- export declare function isKpiReportCommitted(repoRoot: string, reportPath: string): boolean;
31
29
  export declare function evaluateKpiPhase(root: string, manifest: Manifest, skillKey: string | null, kpiGate: KpiGateSpec, options: VerifyOptions, workerLogPath: string): VerifyPhaseFailure | {
32
30
  warnings: string[];
33
31
  } | null;
@@ -1 +1 @@
1
- {"version":3,"file":"kpi-engine.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/kpi-engine.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAgC7D,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAK9F;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,cAAc,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AA0CD,wEAAwE;AACxE,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,SAAS,YAAY,EAAE,GAClC,mBAAmB,EAAE,CA8BvB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS,CAU5E;AAID,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4BD,sGAAsG;AACtG,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CAoEtB;AAED,+CAA+C;AAC/C,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAIlF;AA6DD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,MAAM,GACpB,kBAAkB,GAAG;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAiCpD"}
1
+ {"version":3,"file":"kpi-engine.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/kpi-engine.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAgC7D,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAK9F;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,cAAc,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AA0CD,wEAAwE;AACxE,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,SAAS,YAAY,EAAE,GAClC,mBAAmB,EAAE,CA8BvB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS,CAU5E;AAID,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAsBD,sGAAsG;AACtG,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CA6EtB;AA6DD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,MAAM,GACpB,kBAAkB,GAAG;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAiCpD"}
@@ -7,6 +7,8 @@ import { REL_KPI_REPORT_SCHEMA } from "./constants.js";
7
7
  import { toPosixRel } from "./cli-io.js";
8
8
  import { gitDiffNameOnlySinceCommit, gitRunOk } from "./git.js";
9
9
  import { readBlamePorcelainByLine, UNCOMMITTED_BLAME_COMMIT } from "./trace.js";
10
+ import { tmvcRootsForSkill } from "./tmvc-path.js";
11
+ import { isVirtualScratchPath } from "./virtual-scratch-store.js";
10
12
  const Ajv2020 = Ajv2020Import;
11
13
  const addFormats = addFormatsImport;
12
14
  let compiledValidator = null;
@@ -115,12 +117,6 @@ export function loadKpiReport(root, reportRelPath) {
115
117
  assertKpiReportSchemaValid(root, raw, reportRelPath);
116
118
  return raw;
117
119
  }
118
- function tmvcRootsForSkill(manifest, skillKey) {
119
- if (!skillKey?.trim())
120
- return [];
121
- const skill = manifest.skills[skillKey];
122
- return skill ? [...skill.tmvc_roots] : [];
123
- }
124
120
  function reportRelPath(reportPath, repoRoot) {
125
121
  const abs = path.isAbsolute(reportPath) ? reportPath : path.join(repoRoot, reportPath);
126
122
  return toPosixRel(repoRoot, abs);
@@ -140,11 +136,19 @@ export function verifyKpiReportFreshness(repoRoot, manifest, skillKey, reportPat
140
136
  if (options.skipStaleEvidence === true) {
141
137
  return { stale: false, advisoryOnly: false, stalePaths: [] };
142
138
  }
139
+ const reportRel = reportRelPath(reportPath, repoRoot);
140
+ if (isVirtualScratchPath(reportRel)) {
141
+ return {
142
+ stale: false,
143
+ advisoryOnly: false,
144
+ stalePaths: [],
145
+ reason: "virtual scratch KPI report — stale-evidence binding skipped",
146
+ };
147
+ }
143
148
  const tmvcRoots = tmvcRootsForSkill(manifest, skillKey);
144
149
  if (tmvcRoots.length === 0) {
145
150
  return { stale: false, advisoryOnly: false, stalePaths: [] };
146
151
  }
147
- const reportRel = reportRelPath(reportPath, repoRoot);
148
152
  const blameByLine = readBlamePorcelainByLine(repoRoot, reportRel);
149
153
  const attestationCommit = resolveKpiAttestationCommit(repoRoot, reportRel, blameByLine);
150
154
  if (!attestationCommit) {
@@ -195,12 +199,6 @@ export function verifyKpiReportFreshness(repoRoot, manifest, skillKey, reportPat
195
199
  reason,
196
200
  };
197
201
  }
198
- /** True when report file is tracked in git. */
199
- export function isKpiReportCommitted(repoRoot, reportPath) {
200
- const reportRel = reportRelPath(reportPath, repoRoot);
201
- const r = gitRunOk(repoRoot, ["ls-files", "--error-unmatch", reportRel]);
202
- return r.ok;
203
- }
204
202
  function loadReportOrFail(root, reportRel, workerLogPath) {
205
203
  try {
206
204
  return { report: loadKpiReport(root, reportRel) };
@@ -1 +1 @@
1
- {"version":3,"file":"kpi-engine.js","sourceRoot":"","sources":["../../../src/cli/lib/kpi-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kpi-engine.js","sourceRoot":"","sources":["../../../src/cli/lib/kpi-engine.ts"],"names":[],"mappings":"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"}