@jeger-ai/opengantry 3.3.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -2
- package/dist/cli/commands/contract.d.ts +21 -0
- package/dist/cli/commands/contract.d.ts.map +1 -0
- package/dist/cli/commands/contract.js +113 -0
- package/dist/cli/commands/contract.js.map +1 -0
- package/dist/cli/commands/tmvc-guard.d.ts.map +1 -1
- package/dist/cli/commands/tmvc-guard.js +1 -0
- package/dist/cli/commands/tmvc-guard.js.map +1 -1
- package/dist/cli/lib/contract/approve-prompt.d.ts +22 -0
- package/dist/cli/lib/contract/approve-prompt.d.ts.map +1 -0
- package/dist/cli/lib/contract/approve-prompt.js +71 -0
- package/dist/cli/lib/contract/approve-prompt.js.map +1 -0
- package/dist/cli/lib/contract/contract-hash.d.ts +19 -0
- package/dist/cli/lib/contract/contract-hash.d.ts.map +1 -0
- package/dist/cli/lib/contract/contract-hash.js +67 -0
- package/dist/cli/lib/contract/contract-hash.js.map +1 -0
- package/dist/cli/lib/contract/contract-scan.d.ts +27 -0
- package/dist/cli/lib/contract/contract-scan.d.ts.map +1 -0
- package/dist/cli/lib/contract/contract-scan.js +167 -0
- package/dist/cli/lib/contract/contract-scan.js.map +1 -0
- package/dist/cli/lib/contract/contract-types.d.ts +38 -0
- package/dist/cli/lib/contract/contract-types.d.ts.map +1 -0
- package/dist/cli/lib/contract/contract-types.js +11 -0
- package/dist/cli/lib/contract/contract-types.js.map +1 -0
- package/dist/cli/lib/contract/effective-scope.d.ts +21 -0
- package/dist/cli/lib/contract/effective-scope.d.ts.map +1 -0
- package/dist/cli/lib/contract/effective-scope.js +77 -0
- package/dist/cli/lib/contract/effective-scope.js.map +1 -0
- package/dist/cli/lib/contract/format.d.ts +20 -0
- package/dist/cli/lib/contract/format.d.ts.map +1 -0
- package/dist/cli/lib/contract/format.js +48 -0
- package/dist/cli/lib/contract/format.js.map +1 -0
- package/dist/cli/lib/contract/propose-gate.d.ts +21 -0
- package/dist/cli/lib/contract/propose-gate.d.ts.map +1 -0
- package/dist/cli/lib/contract/propose-gate.js +57 -0
- package/dist/cli/lib/contract/propose-gate.js.map +1 -0
- package/dist/cli/lib/contract/propose-imports.d.ts +26 -0
- package/dist/cli/lib/contract/propose-imports.d.ts.map +1 -0
- package/dist/cli/lib/contract/propose-imports.js +128 -0
- package/dist/cli/lib/contract/propose-imports.js.map +1 -0
- package/dist/cli/lib/contract/propose.d.ts +25 -0
- package/dist/cli/lib/contract/propose.d.ts.map +1 -0
- package/dist/cli/lib/contract/propose.js +100 -0
- package/dist/cli/lib/contract/propose.js.map +1 -0
- package/dist/cli/lib/contract/resolve-specifier.d.ts +34 -0
- package/dist/cli/lib/contract/resolve-specifier.d.ts.map +1 -0
- package/dist/cli/lib/contract/resolve-specifier.js +93 -0
- package/dist/cli/lib/contract/resolve-specifier.js.map +1 -0
- package/dist/cli/lib/draft-token.d.ts +5 -2
- package/dist/cli/lib/draft-token.d.ts.map +1 -1
- package/dist/cli/lib/draft-token.js +18 -3
- package/dist/cli/lib/draft-token.js.map +1 -1
- package/dist/cli/lib/errors.d.ts +2 -0
- package/dist/cli/lib/errors.d.ts.map +1 -1
- package/dist/cli/lib/errors.js +15 -2
- package/dist/cli/lib/errors.js.map +1 -1
- package/dist/cli/lib/git.d.ts +6 -0
- package/dist/cli/lib/git.d.ts.map +1 -1
- package/dist/cli/lib/git.js +10 -2
- package/dist/cli/lib/git.js.map +1 -1
- package/dist/cli/lib/gxt-error-codes.d.ts +5 -0
- package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
- package/dist/cli/lib/gxt-error-codes.js +6 -0
- package/dist/cli/lib/gxt-error-codes.js.map +1 -1
- package/dist/cli/lib/import-scanner.d.ts +13 -3
- package/dist/cli/lib/import-scanner.d.ts.map +1 -1
- package/dist/cli/lib/import-scanner.js +185 -23
- package/dist/cli/lib/import-scanner.js.map +1 -1
- package/dist/cli/lib/interrogate/gaps.d.ts +2 -0
- package/dist/cli/lib/interrogate/gaps.d.ts.map +1 -1
- package/dist/cli/lib/interrogate/gaps.js +3 -4
- package/dist/cli/lib/interrogate/gaps.js.map +1 -1
- package/dist/cli/lib/interrogate/run.d.ts +1 -0
- package/dist/cli/lib/interrogate/run.d.ts.map +1 -1
- package/dist/cli/lib/interrogate/run.js +1 -0
- package/dist/cli/lib/interrogate/run.js.map +1 -1
- package/dist/cli/lib/legislate-from-intent.d.ts +9 -0
- package/dist/cli/lib/legislate-from-intent.d.ts.map +1 -0
- package/dist/cli/lib/legislate-from-intent.js +59 -0
- package/dist/cli/lib/legislate-from-intent.js.map +1 -0
- package/dist/cli/lib/legislate.d.ts +3 -1
- package/dist/cli/lib/legislate.d.ts.map +1 -1
- package/dist/cli/lib/legislate.js +24 -0
- package/dist/cli/lib/legislate.js.map +1 -1
- package/dist/cli/lib/mcp-draft-legislation.d.ts.map +1 -1
- package/dist/cli/lib/mcp-draft-legislation.js +28 -10
- package/dist/cli/lib/mcp-draft-legislation.js.map +1 -1
- package/dist/cli/lib/mcp-execute-legislation.d.ts.map +1 -1
- package/dist/cli/lib/mcp-execute-legislation.js +1 -0
- package/dist/cli/lib/mcp-execute-legislation.js.map +1 -1
- package/dist/cli/lib/mcp-governance-shared.d.ts +2 -1
- package/dist/cli/lib/mcp-governance-shared.d.ts.map +1 -1
- package/dist/cli/lib/mcp-governance-shared.js.map +1 -1
- package/dist/cli/lib/mcp-propose-contract.d.ts +22 -0
- package/dist/cli/lib/mcp-propose-contract.d.ts.map +1 -0
- package/dist/cli/lib/mcp-propose-contract.js +51 -0
- package/dist/cli/lib/mcp-propose-contract.js.map +1 -0
- package/dist/cli/lib/mcp-tools-register.d.ts.map +1 -1
- package/dist/cli/lib/mcp-tools-register.js +20 -0
- package/dist/cli/lib/mcp-tools-register.js.map +1 -1
- package/dist/cli/lib/missions/formatter.d.ts.map +1 -1
- package/dist/cli/lib/missions/formatter.js +2 -0
- package/dist/cli/lib/missions/formatter.js.map +1 -1
- package/dist/cli/lib/missions/parser.d.ts.map +1 -1
- package/dist/cli/lib/missions/parser.js +14 -0
- package/dist/cli/lib/missions/parser.js.map +1 -1
- package/dist/cli/lib/runtime-env.d.ts +3 -0
- package/dist/cli/lib/runtime-env.d.ts.map +1 -1
- package/dist/cli/lib/runtime-env.js +12 -2
- package/dist/cli/lib/runtime-env.js.map +1 -1
- package/dist/cli/lib/runtime-exec.d.ts +5 -1
- package/dist/cli/lib/runtime-exec.d.ts.map +1 -1
- package/dist/cli/lib/runtime-exec.js +18 -1
- package/dist/cli/lib/runtime-exec.js.map +1 -1
- package/dist/cli/lib/staged-tmvc-guard.d.ts +3 -0
- package/dist/cli/lib/staged-tmvc-guard.d.ts.map +1 -1
- package/dist/cli/lib/staged-tmvc-guard.js +4 -2
- package/dist/cli/lib/staged-tmvc-guard.js.map +1 -1
- package/dist/cli/lib/types.d.ts +7 -0
- package/dist/cli/lib/types.d.ts.map +1 -1
- package/dist/cli/lib/types.js.map +1 -1
- package/dist/cli/lib/verify-contract.d.ts +22 -0
- package/dist/cli/lib/verify-contract.d.ts.map +1 -0
- package/dist/cli/lib/verify-contract.js +110 -0
- package/dist/cli/lib/verify-contract.js.map +1 -0
- package/dist/cli/lib/verify-engine.d.ts.map +1 -1
- package/dist/cli/lib/verify-engine.js +6 -0
- package/dist/cli/lib/verify-engine.js.map +1 -1
- package/dist/cli/lib/verify-failure-normalize.d.ts.map +1 -1
- package/dist/cli/lib/verify-failure-normalize.js +10 -0
- package/dist/cli/lib/verify-failure-normalize.js.map +1 -1
- package/dist/cli/lib/verify-failure.d.ts +7 -2
- package/dist/cli/lib/verify-failure.d.ts.map +1 -1
- package/dist/cli/lib/verify-finding.d.ts +1 -1
- package/dist/cli/lib/verify-finding.d.ts.map +1 -1
- package/dist/cli/lib/verify-finding.js.map +1 -1
- package/dist/cli/lib/verify-hints.d.ts.map +1 -1
- package/dist/cli/lib/verify-hints.js +13 -0
- package/dist/cli/lib/verify-hints.js.map +1 -1
- package/dist/cli/lib/verify-interrogation.d.ts +2 -0
- package/dist/cli/lib/verify-interrogation.d.ts.map +1 -1
- package/dist/cli/lib/verify-interrogation.js +2 -2
- package/dist/cli/lib/verify-interrogation.js.map +1 -1
- package/dist/cli/lib/verify-payload.d.ts.map +1 -1
- package/dist/cli/lib/verify-payload.js +1 -0
- package/dist/cli/lib/verify-payload.js.map +1 -1
- package/dist/cli/lib/verify-phase-clock.d.ts +1 -1
- package/dist/cli/lib/verify-phase-clock.d.ts.map +1 -1
- package/dist/cli/lib/verify-phase-clock.js +1 -0
- package/dist/cli/lib/verify-phase-clock.js.map +1 -1
- package/dist/cli/lib/version.gen.d.ts +1 -1
- package/dist/cli/lib/version.gen.js +1 -1
- package/dist/cli/program-mission.d.ts.map +1 -1
- package/dist/cli/program-mission.js +38 -0
- package/dist/cli/program-mission.js.map +1 -1
- package/dist/cli/program-workflow.d.ts +4 -1
- package/dist/cli/program-workflow.d.ts.map +1 -1
- package/dist/cli/program-workflow.js +23 -4
- package/dist/cli/program-workflow.js.map +1 -1
- package/package.json +1 -1
- package/templates/.gitagent/foreman/SUBSTRATE.version.json +1 -1
- package/templates/.gitagent/planner/MISSION-ARCHITECT.md +26 -5
- package/templates/.gitagent/planner/MISSION.schema.yaml +52 -0
- package/templates/.gitagent/planner/RULES.md +55 -36
- package/templates/.githooks/pre-commit +12 -0
- package/templates/integrations/compatibility.json +1 -1
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { loadPolicyBundleQuiet } from "./effective-scope.js";
|
|
4
|
+
import { normalizeContract, normalizeContractPath } from "./contract-hash.js";
|
|
5
|
+
import { proposeGate } from "./propose-gate.js";
|
|
6
|
+
import { proposeImports } from "./propose-imports.js";
|
|
7
|
+
import { isPathUnderRoot } from "../tmvc-path.js";
|
|
8
|
+
import { resolveManifestSkillKey } from "../skill-key.js";
|
|
9
|
+
const PATH_TOKEN_RE = /(?:\.{0,2}\/)?[A-Za-z0-9_.@-]+(?:\/[A-Za-z0-9_.@-]+)+\/?/g;
|
|
10
|
+
function existsRepoPath(root, rel) {
|
|
11
|
+
return fs.existsSync(path.join(root, rel));
|
|
12
|
+
}
|
|
13
|
+
function intentPathTokens(intent) {
|
|
14
|
+
const out = [];
|
|
15
|
+
for (const m of intent.matchAll(PATH_TOKEN_RE)) {
|
|
16
|
+
const norm = normalizeContractPath(m[0]);
|
|
17
|
+
if (norm && !norm.includes("://"))
|
|
18
|
+
out.push(norm);
|
|
19
|
+
}
|
|
20
|
+
return out;
|
|
21
|
+
}
|
|
22
|
+
function intersectWithSkillRoots(candidates, skillRoots) {
|
|
23
|
+
if (skillRoots.length === 0)
|
|
24
|
+
return [...candidates];
|
|
25
|
+
return candidates.filter((c) => skillRoots.some((s) => isPathUnderRoot(c, s)));
|
|
26
|
+
}
|
|
27
|
+
function proposeTmvcRoots(input, skillRoots) {
|
|
28
|
+
const hinted = [...intentPathTokens(input.intent), ...(input.paths ?? []).map(normalizeContractPath)];
|
|
29
|
+
const existing = [...new Set(hinted)].filter((p) => existsRepoPath(input.root, p.replace(/\/$/, ""))).sort();
|
|
30
|
+
const narrowed = intersectWithSkillRoots(existing, skillRoots);
|
|
31
|
+
if (narrowed.length > 0) {
|
|
32
|
+
return {
|
|
33
|
+
roots: narrowed,
|
|
34
|
+
rationale: `tmvc_roots from intent/--path that exist on disk (intersect skill roots): ${narrowed.join(", ")}`,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
if (skillRoots.length > 0) {
|
|
38
|
+
return { roots: [...skillRoots].sort(), rationale: `tmvc_roots fallback to skill roots: ${skillRoots.join(", ")}` };
|
|
39
|
+
}
|
|
40
|
+
return { roots: [], rationale: "tmvc_roots empty (substrate skill; Planner must declare roots)" };
|
|
41
|
+
}
|
|
42
|
+
function proposeForbidden(skillForbidden, policy, manifest, proposedRoots) {
|
|
43
|
+
const rationale = [];
|
|
44
|
+
const policyAdd = (policy?.manifest_constraints?.forbidden_zones_add ?? []).map(normalizeContractPath);
|
|
45
|
+
const tier3 = [];
|
|
46
|
+
for (const [prefix, tier] of Object.entries(manifest.path_risks)) {
|
|
47
|
+
if (tier !== "Tier-3")
|
|
48
|
+
continue;
|
|
49
|
+
const norm = normalizeContractPath(prefix);
|
|
50
|
+
const covered = proposedRoots.some((r) => isPathUnderRoot(norm, r) || isPathUnderRoot(r, norm));
|
|
51
|
+
if (!covered)
|
|
52
|
+
tier3.push(norm);
|
|
53
|
+
}
|
|
54
|
+
const zones = [...new Set([...skillForbidden, ...policyAdd, ...tier3])].sort();
|
|
55
|
+
if (skillForbidden.length > 0)
|
|
56
|
+
rationale.push(`forbidden_zones from skill: ${skillForbidden.join(", ")}`);
|
|
57
|
+
if (policyAdd.length > 0)
|
|
58
|
+
rationale.push(`forbidden_zones from policy: ${policyAdd.join(", ")}`);
|
|
59
|
+
if (tier3.length > 0)
|
|
60
|
+
rationale.push(`forbidden_zones from Tier-3 path_risks outside proposed roots: ${tier3.join(", ")}`);
|
|
61
|
+
return { zones, rationale };
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Deterministic contract proposal (ADR-0030: no LLM). Same inputs always yield the same
|
|
65
|
+
* normalized contract, gate, and sorted rationale.
|
|
66
|
+
*/
|
|
67
|
+
export function proposeContract(input) {
|
|
68
|
+
const skillKey = resolveManifestSkillKey(input.manifest, input.skillKey);
|
|
69
|
+
const skill = input.manifest.skills[skillKey];
|
|
70
|
+
const skillRoots = (skill?.tmvc_roots ?? []).map(normalizeContractPath);
|
|
71
|
+
const skillForbidden = (skill?.forbidden_zones ?? []).map(normalizeContractPath);
|
|
72
|
+
const policy = input.policy !== undefined ? input.policy : loadPolicyBundleQuiet(input.root);
|
|
73
|
+
const tmvc = proposeTmvcRoots(input, skillRoots);
|
|
74
|
+
const forbidden = proposeForbidden(skillForbidden, policy, input.manifest, tmvc.roots);
|
|
75
|
+
const imports = proposeImports({
|
|
76
|
+
root: input.root,
|
|
77
|
+
proposedRoots: tmvc.roots,
|
|
78
|
+
forbiddenZones: forbidden.zones,
|
|
79
|
+
policy,
|
|
80
|
+
});
|
|
81
|
+
const gate = proposeGate({
|
|
82
|
+
root: input.root,
|
|
83
|
+
skill,
|
|
84
|
+
proposedRoots: tmvc.roots,
|
|
85
|
+
explicitCommand: input.gateCommand,
|
|
86
|
+
explicitSuccess: input.gateSuccessSubstring,
|
|
87
|
+
});
|
|
88
|
+
const contract = normalizeContract({
|
|
89
|
+
...(tmvc.roots.length > 0 ? { tmvc_roots: tmvc.roots } : {}),
|
|
90
|
+
forbidden_zones: [...forbidden.zones, ...imports.extraForbidden],
|
|
91
|
+
allowed_imports: imports.allowed_imports,
|
|
92
|
+
banned_imports: imports.banned_imports,
|
|
93
|
+
});
|
|
94
|
+
return {
|
|
95
|
+
contract,
|
|
96
|
+
gate: gate.gate,
|
|
97
|
+
rationale: [tmvc.rationale, ...forbidden.rationale, ...imports.rationale, gate.rationale],
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=propose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"propose.js","sourceRoot":"","sources":["../../../../src/cli/lib/contract/propose.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export type SpecifierClass = {
|
|
2
|
+
kind: "builtin";
|
|
3
|
+
specifier: string;
|
|
4
|
+
} | {
|
|
5
|
+
kind: "bare";
|
|
6
|
+
specifier: string;
|
|
7
|
+
packageName: string;
|
|
8
|
+
} | {
|
|
9
|
+
kind: "relative";
|
|
10
|
+
specifier: string;
|
|
11
|
+
resolvedRepoRel: string;
|
|
12
|
+
} | {
|
|
13
|
+
kind: "alias";
|
|
14
|
+
specifier: string;
|
|
15
|
+
resolvedRepoRel: string;
|
|
16
|
+
};
|
|
17
|
+
export interface TsconfigPaths {
|
|
18
|
+
/** Repo-relative directory that `paths` targets resolve against. */
|
|
19
|
+
baseDirRel: string;
|
|
20
|
+
/** Alias pattern → target patterns (tsconfig `compilerOptions.paths`). */
|
|
21
|
+
paths: Record<string, string[]>;
|
|
22
|
+
}
|
|
23
|
+
export declare function isBuiltinSpecifier(spec: string): boolean;
|
|
24
|
+
/** `@scope/name/sub` → `@scope/name`; `name/sub` → `name`. */
|
|
25
|
+
export declare function bareSpecifierPackage(spec: string): string;
|
|
26
|
+
/** Read `compilerOptions.paths` from `<repo>/tsconfig.json` (no `extends` chasing). Null when absent. */
|
|
27
|
+
export declare function loadTsconfigPaths(repoRoot: string, tsconfigRel?: string): TsconfigPaths | null;
|
|
28
|
+
/**
|
|
29
|
+
* Classify a module specifier for contract checks. Relative and alias specifiers resolve to a
|
|
30
|
+
* repo-relative path (extension left as written; directory prefix checks do not need it). Alias
|
|
31
|
+
* specifiers that match no tsconfig path are treated as bare packages.
|
|
32
|
+
*/
|
|
33
|
+
export declare function classifySpecifier(spec: string, importerRepoRel: string, tsconfigPaths: TsconfigPaths | null): SpecifierClass;
|
|
34
|
+
//# sourceMappingURL=resolve-specifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-specifier.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/contract/resolve-specifier.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACjC;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIxD;AAED,8DAA8D;AAC9D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIzD;AAQD,yGAAyG;AACzG,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,SAAkB,GAAG,aAAa,GAAG,IAAI,CAevG;AA6BD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,aAAa,GAAG,IAAI,GAClC,cAAc,CAahB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import { builtinModules } from "node:module";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { normalizeRepoRelativePath } from "../tmvc-path.js";
|
|
5
|
+
const BUILTINS = new Set(builtinModules);
|
|
6
|
+
export function isBuiltinSpecifier(spec) {
|
|
7
|
+
if (spec.startsWith("node:"))
|
|
8
|
+
return true;
|
|
9
|
+
const base = spec.split("/")[0] ?? spec;
|
|
10
|
+
return BUILTINS.has(base);
|
|
11
|
+
}
|
|
12
|
+
/** `@scope/name/sub` → `@scope/name`; `name/sub` → `name`. */
|
|
13
|
+
export function bareSpecifierPackage(spec) {
|
|
14
|
+
const parts = spec.split("/");
|
|
15
|
+
if (spec.startsWith("@") && parts.length >= 2)
|
|
16
|
+
return `${parts[0]}/${parts[1]}`;
|
|
17
|
+
return parts[0] ?? spec;
|
|
18
|
+
}
|
|
19
|
+
function stripJsonComments(raw) {
|
|
20
|
+
const noBlock = raw.replace(/\/\*[\s\S]*?\*\//g, "");
|
|
21
|
+
const noLine = noBlock.replace(/(^|[^:"'\\])\/\/[^\n]*/g, "$1");
|
|
22
|
+
return noLine.replace(/,(\s*[}\]])/g, "$1");
|
|
23
|
+
}
|
|
24
|
+
/** Read `compilerOptions.paths` from `<repo>/tsconfig.json` (no `extends` chasing). Null when absent. */
|
|
25
|
+
export function loadTsconfigPaths(repoRoot, tsconfigRel = "tsconfig.json") {
|
|
26
|
+
const abs = path.join(repoRoot, tsconfigRel);
|
|
27
|
+
if (!fs.existsSync(abs))
|
|
28
|
+
return null;
|
|
29
|
+
let parsed;
|
|
30
|
+
try {
|
|
31
|
+
parsed = JSON.parse(stripJsonComments(fs.readFileSync(abs, "utf8")));
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const paths = parsed.compilerOptions?.paths;
|
|
37
|
+
if (!paths || Object.keys(paths).length === 0)
|
|
38
|
+
return null;
|
|
39
|
+
const tsconfigDir = path.posix.dirname(normalizeRepoRelativePath(tsconfigRel));
|
|
40
|
+
const baseUrl = parsed.compilerOptions?.baseUrl ?? ".";
|
|
41
|
+
const baseDirRel = normalizeRepoRelativePath(path.posix.normalize(path.posix.join(tsconfigDir === "." ? "" : tsconfigDir, baseUrl)));
|
|
42
|
+
return { baseDirRel: baseDirRel === "." ? "" : baseDirRel, paths };
|
|
43
|
+
}
|
|
44
|
+
function matchAliasPattern(spec, pattern) {
|
|
45
|
+
const star = pattern.indexOf("*");
|
|
46
|
+
if (star === -1)
|
|
47
|
+
return spec === pattern ? "" : null;
|
|
48
|
+
const prefix = pattern.slice(0, star);
|
|
49
|
+
const suffix = pattern.slice(star + 1);
|
|
50
|
+
if (!spec.startsWith(prefix) || !spec.endsWith(suffix) || spec.length < prefix.length + suffix.length)
|
|
51
|
+
return null;
|
|
52
|
+
return spec.slice(prefix.length, spec.length - suffix.length);
|
|
53
|
+
}
|
|
54
|
+
function resolveAlias(spec, ts) {
|
|
55
|
+
for (const [pattern, targets] of Object.entries(ts.paths)) {
|
|
56
|
+
const wildcard = matchAliasPattern(spec, pattern);
|
|
57
|
+
if (wildcard === null)
|
|
58
|
+
continue;
|
|
59
|
+
const target = targets[0];
|
|
60
|
+
if (!target)
|
|
61
|
+
continue;
|
|
62
|
+
const substituted = target.replace("*", wildcard);
|
|
63
|
+
const joined = path.posix.join(ts.baseDirRel, substituted);
|
|
64
|
+
return normalizeRepoRelativePath(path.posix.normalize(joined));
|
|
65
|
+
}
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
function resolveRelative(importerRepoRel, spec) {
|
|
69
|
+
const dir = path.posix.dirname(normalizeRepoRelativePath(importerRepoRel));
|
|
70
|
+
return normalizeRepoRelativePath(path.posix.normalize(path.posix.join(dir, spec)));
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Classify a module specifier for contract checks. Relative and alias specifiers resolve to a
|
|
74
|
+
* repo-relative path (extension left as written; directory prefix checks do not need it). Alias
|
|
75
|
+
* specifiers that match no tsconfig path are treated as bare packages.
|
|
76
|
+
*/
|
|
77
|
+
export function classifySpecifier(spec, importerRepoRel, tsconfigPaths) {
|
|
78
|
+
if (spec.startsWith(".")) {
|
|
79
|
+
return { kind: "relative", specifier: spec, resolvedRepoRel: resolveRelative(importerRepoRel, spec) };
|
|
80
|
+
}
|
|
81
|
+
if (spec.startsWith("/")) {
|
|
82
|
+
return { kind: "relative", specifier: spec, resolvedRepoRel: normalizeRepoRelativePath(spec.slice(1)) };
|
|
83
|
+
}
|
|
84
|
+
if (isBuiltinSpecifier(spec))
|
|
85
|
+
return { kind: "builtin", specifier: spec };
|
|
86
|
+
if (tsconfigPaths) {
|
|
87
|
+
const resolved = resolveAlias(spec, tsconfigPaths);
|
|
88
|
+
if (resolved !== null)
|
|
89
|
+
return { kind: "alias", specifier: spec, resolvedRepoRel: resolved };
|
|
90
|
+
}
|
|
91
|
+
return { kind: "bare", specifier: spec, packageName: bareSpecifierPackage(spec) };
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=resolve-specifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-specifier.js","sourceRoot":"","sources":["../../../../src/cli/lib/contract/resolve-specifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type GateAdapterId } from "./types.js";
|
|
1
|
+
import { type GateAdapterId, type MissionContract } from "./types.js";
|
|
2
2
|
export declare const DRAFT_TOKEN_TTL_SECONDS_DEFAULT = 600;
|
|
3
3
|
export declare const DRAFT_TOKEN_TTL_SECONDS_MIN = 120;
|
|
4
4
|
export declare const DRAFT_TOKEN_TTL_SECONDS_MAX = 1800;
|
|
@@ -6,7 +6,7 @@ export declare const DRAFT_TOKEN_KEY_REL = ".gitagent/foreman/DRAFT_TOKEN.key";
|
|
|
6
6
|
export declare const DRAFT_TOKEN_REPLAY_REL = ".gitagent/history/.draft-token-replay.json";
|
|
7
7
|
import type { InterrogationRow } from "./interrogate/findings.js";
|
|
8
8
|
export interface DraftLegislationPayload {
|
|
9
|
-
v: 2;
|
|
9
|
+
v: 2 | 3;
|
|
10
10
|
draft_id: string;
|
|
11
11
|
iat: number;
|
|
12
12
|
exp: number;
|
|
@@ -21,6 +21,9 @@ export interface DraftLegislationPayload {
|
|
|
21
21
|
interrogation: InterrogationRow[];
|
|
22
22
|
interrogation_sha256: string;
|
|
23
23
|
declared_paths: string[];
|
|
24
|
+
/** v3: Planner-sealed cage. */
|
|
25
|
+
contract?: MissionContract;
|
|
26
|
+
contract_sha256?: string;
|
|
24
27
|
}
|
|
25
28
|
export type DraftTokenErrorCode = "TOKEN_MALFORMED" | "TOKEN_SIGNATURE_INVALID" | "TOKEN_EXPIRED" | "TOKEN_REPO_MISMATCH" | "TOKEN_REPLAYED" | "TOKEN_KEY_MISSING";
|
|
26
29
|
export declare class DraftTokenError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft-token.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/draft-token.ts"],"names":[],"mappings":"AAOA,OAAO,EAAyC,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"draft-token.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/draft-token.ts"],"names":[],"mappings":"AAOA,OAAO,EAAyC,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7G,eAAO,MAAM,+BAA+B,MAAM,CAAC;AACnD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAChD,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AACvE,eAAO,MAAM,sBAAsB,+CAA+C,CAAC;AAEnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,WAAW,uBAAuB;IACtC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kDAAkD;IAClD,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,yBAAyB,GACzB,eAAe,GACf,qBAAqB,GACrB,gBAAgB,GAChB,mBAAmB,CAAC;AAExB,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;gBAEhB,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,UAAO;CAKzE;AASD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO3D;AAoDD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,IAAI,CAAC,uBAAuB,EAAE,GAAG,GAAG,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,kBAAkB,CAAC,GAAG;IAC5F,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,uBAAuB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAyC/E;AAwCD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,uBAAuB,CAkE3H"}
|
|
@@ -6,6 +6,7 @@ import { CLI_NAME } from "./constants.js";
|
|
|
6
6
|
import { canonicalJson } from "./canonical-json.js";
|
|
7
7
|
import { gitRun } from "./git.js";
|
|
8
8
|
import { DEFAULT_GATE_ADAPTER, isGateAdapterId } from "./types.js";
|
|
9
|
+
import { contractSha256, normalizeContract } from "./contract/contract-hash.js";
|
|
9
10
|
export const DRAFT_TOKEN_TTL_SECONDS_DEFAULT = 600;
|
|
10
11
|
export const DRAFT_TOKEN_TTL_SECONDS_MIN = 120;
|
|
11
12
|
export const DRAFT_TOKEN_TTL_SECONDS_MAX = 1800;
|
|
@@ -86,8 +87,9 @@ export function createDraftToken(root, input) {
|
|
|
86
87
|
const ttlRaw = input.ttlSeconds ?? DRAFT_TOKEN_TTL_SECONDS_DEFAULT;
|
|
87
88
|
const ttl = Math.min(DRAFT_TOKEN_TTL_SECONDS_MAX, Math.max(DRAFT_TOKEN_TTL_SECONDS_MIN, ttlRaw));
|
|
88
89
|
const now = Math.floor(Date.now() / 1000);
|
|
90
|
+
const contract = input.contract ? normalizeContract(input.contract) : undefined;
|
|
89
91
|
const payload = {
|
|
90
|
-
v:
|
|
92
|
+
v: 3,
|
|
91
93
|
draft_id: crypto.randomUUID(),
|
|
92
94
|
iat: now,
|
|
93
95
|
exp: now + ttl,
|
|
@@ -106,6 +108,10 @@ export function createDraftToken(root, input) {
|
|
|
106
108
|
if (input.gate_adapter !== undefined && input.gate_adapter !== DEFAULT_GATE_ADAPTER) {
|
|
107
109
|
payload.gate_adapter = input.gate_adapter;
|
|
108
110
|
}
|
|
111
|
+
if (contract) {
|
|
112
|
+
payload.contract = contract;
|
|
113
|
+
payload.contract_sha256 = contractSha256(contract);
|
|
114
|
+
}
|
|
109
115
|
const key = ensureDraftTokenKey(root);
|
|
110
116
|
const encoded = base64UrlEncode(Buffer.from(canonicalJson(payload), "utf8"));
|
|
111
117
|
const signature = signPayload(payload, key);
|
|
@@ -129,6 +135,15 @@ function assertDraftPayloadShape(payload) {
|
|
|
129
135
|
if (payload.gate_adapter !== undefined && !isGateAdapterId(payload.gate_adapter)) {
|
|
130
136
|
throw new DraftTokenError("TOKEN_MALFORMED", `${CLI_NAME} draft token gate_adapter must be generic|eslint|tsc`, false);
|
|
131
137
|
}
|
|
138
|
+
if (payload.v === 2 && (payload.contract !== undefined || payload.contract_sha256 !== undefined)) {
|
|
139
|
+
throw new DraftTokenError("TOKEN_MALFORMED", `${CLI_NAME} draft token v2 cannot carry a contract (require v3)`, false);
|
|
140
|
+
}
|
|
141
|
+
if (payload.v === 3 && payload.contract) {
|
|
142
|
+
const expected = contractSha256(normalizeContract(payload.contract));
|
|
143
|
+
if (payload.contract_sha256 !== expected) {
|
|
144
|
+
throw new DraftTokenError("TOKEN_MALFORMED", `${CLI_NAME} draft token contract_sha256 does not match contract`, false);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
132
147
|
}
|
|
133
148
|
export function verifyDraftToken(root, draftToken, options) {
|
|
134
149
|
const parts = draftToken.trim().split(".");
|
|
@@ -149,8 +164,8 @@ export function verifyDraftToken(root, draftToken, options) {
|
|
|
149
164
|
catch {
|
|
150
165
|
throw new DraftTokenError("TOKEN_MALFORMED", `${CLI_NAME} draft token payload JSON invalid`, true);
|
|
151
166
|
}
|
|
152
|
-
if (payload.v !== 2) {
|
|
153
|
-
throw new DraftTokenError("TOKEN_MALFORMED", `${CLI_NAME} draft token version unsupported (require v2)`, false);
|
|
167
|
+
if (payload.v !== 2 && payload.v !== 3) {
|
|
168
|
+
throw new DraftTokenError("TOKEN_MALFORMED", `${CLI_NAME} draft token version unsupported (require v2 or v3)`, false);
|
|
154
169
|
}
|
|
155
170
|
assertDraftPayloadShape(payload);
|
|
156
171
|
const keyPath = draftTokenKeyPath(root);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft-token.js","sourceRoot":"","sources":["../../../src/cli/lib/draft-token.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"draft-token.js","sourceRoot":"","sources":["../../../src/cli/lib/draft-token.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/lib/errors.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ContractImportViolation } from "./contract/contract-types.js";
|
|
1
2
|
import type { ForbiddenViolation } from "./forbidden-scan.js";
|
|
2
3
|
import type { RuntimeExecResult } from "./runtime-exec.js";
|
|
3
4
|
import type { ResolvedRuntimeEnv } from "./runtime-env.js";
|
|
@@ -31,6 +32,7 @@ export interface AgentErrorPayload {
|
|
|
31
32
|
skill_key: string;
|
|
32
33
|
error_file: string;
|
|
33
34
|
violations: ForbiddenViolation[];
|
|
35
|
+
contract_violations?: ContractImportViolation[];
|
|
34
36
|
summary: string;
|
|
35
37
|
remediation: string[];
|
|
36
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/errors.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,sFAAsF;AACtF,qBAAa,eAAgB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACtB,QAAQ,CAAC,QAAQ;gBAHR,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACN,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,QAAQ,SAAI;IAMvB,oDAAoD;IACpD,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAElE;AASD,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAkBtD;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAWrE;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,CAAC,CAAC;IACL,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,wBAAwB,CAAC;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAkBD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAE7E;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/errors.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,sFAAsF;AACtF,qBAAa,eAAgB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACtB,QAAQ,CAAC,QAAQ;gBAHR,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACN,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,QAAQ,SAAI;IAMvB,oDAAoD;IACpD,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAElE;AASD,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAkBtD;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAWrE;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,CAAC,CAAC;IACL,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,wBAAwB,CAAC;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,mBAAmB,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAkBD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAE7E;AAkDD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,iBAAiB,GACxB,iBAAiB,CAanB;AAED,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE;IACL,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,GACA,iBAAiB,CAYnB"}
|
package/dist/cli/lib/errors.js
CHANGED
|
@@ -87,14 +87,20 @@ function buildSummary(result) {
|
|
|
87
87
|
switch (result.status) {
|
|
88
88
|
case "forbidden_zone_violation":
|
|
89
89
|
return `Forbidden-zone violation: ${String(result.violations.length)} path(s) changed outside policy.`;
|
|
90
|
+
case "contract_violation":
|
|
91
|
+
return `Mission contract violation: ${String(result.contractViolations.length)} import site(s) outside the sealed cage.`;
|
|
90
92
|
case "timeout":
|
|
91
93
|
return "Executor exceeded the configured timeout and was terminated.";
|
|
92
94
|
case "worker_failed":
|
|
93
95
|
return `Executor exited with code ${String(result.workerExitCode ?? "unknown")}.`;
|
|
94
96
|
case "runtime_error":
|
|
95
97
|
return "Runtime orchestration failed before or during executor execution.";
|
|
96
|
-
|
|
97
|
-
return
|
|
98
|
+
case "success":
|
|
99
|
+
return "Flight succeeded.";
|
|
100
|
+
default: {
|
|
101
|
+
const _exhaustive = result.status;
|
|
102
|
+
return `Flight ended with status ${_exhaustive}`;
|
|
103
|
+
}
|
|
98
104
|
}
|
|
99
105
|
}
|
|
100
106
|
function buildRemediation(result, resolved) {
|
|
@@ -105,6 +111,12 @@ function buildRemediation(result, resolved) {
|
|
|
105
111
|
}
|
|
106
112
|
steps.push("Confine edits to GXT_TMVC_ROOTS unless a Context Request is approved in EXECUTOR_LOG.md");
|
|
107
113
|
}
|
|
114
|
+
if (result.status === "contract_violation") {
|
|
115
|
+
for (const v of result.contractViolations.slice(0, 5)) {
|
|
116
|
+
steps.push(`${v.file}:${String(v.line)} — ${v.detail}`);
|
|
117
|
+
}
|
|
118
|
+
steps.push("Use only GXT_ALLOWED_IMPORTS / avoid GXT_BANNED_IMPORTS; re-legislate the mission if the contract must widen");
|
|
119
|
+
}
|
|
108
120
|
if (result.status === "timeout") {
|
|
109
121
|
steps.push("Increase --timeout-ms or reduce executor scope; retry with a smaller command");
|
|
110
122
|
}
|
|
@@ -123,6 +135,7 @@ export function writeAgentErrorPayload(repoRoot, resolved, result) {
|
|
|
123
135
|
mission_file: resolved.mission_file,
|
|
124
136
|
skill_key: resolved.skill_key,
|
|
125
137
|
violations: result.violations,
|
|
138
|
+
...(result.contractViolations.length > 0 ? { contract_violations: result.contractViolations } : {}),
|
|
126
139
|
summary: buildSummary(result),
|
|
127
140
|
remediation: buildRemediation(result, resolved),
|
|
128
141
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/cli/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/cli/lib/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/lib/git.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copy of the process env for a git child. `GIT_DIR` / `GIT_WORK_TREE` are removed from the
|
|
3
|
+
* copy only (never from `process.env`) so `git -C <root>` is authoritative and cannot resolve
|
|
4
|
+
* into a parent repository.
|
|
5
|
+
*/
|
|
6
|
+
export declare function gitChildEnv(extra?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
1
7
|
export interface GitRunOptions {
|
|
2
8
|
maxBuffer?: number;
|
|
3
9
|
input?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/git.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAKxE;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,GAAG,SAAgB,GAAG,MAAM,CAavD;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,6FAA6F;AAC7F,wBAAgB,MAAM,CACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,eAAe,GAAE,MAAM,GAAG,aAAgC,GACzD,YAAY,CAgBd;AAED,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,SAAS,SAAmB,GAC3B;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAGjC;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGxE;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGvD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAItF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIzE;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAElF;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAC7B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC,+FAA+F;AAC/F,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,wBAAwB,CAW1B"}
|
package/dist/cli/lib/git.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import { execSync, spawnSync } from "node:child_process";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { CLI_NAME } from "./constants.js";
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Copy of the process env for a git child. `GIT_DIR` / `GIT_WORK_TREE` are removed from the
|
|
6
|
+
* copy only (never from `process.env`) so `git -C <root>` is authoritative and cannot resolve
|
|
7
|
+
* into a parent repository.
|
|
8
|
+
*/
|
|
9
|
+
export function gitChildEnv(extra) {
|
|
10
|
+
const env = { ...process.env, GIT_OPTIONAL_LOCKS: "0", ...extra };
|
|
11
|
+
delete env.GIT_DIR;
|
|
12
|
+
delete env.GIT_WORK_TREE;
|
|
13
|
+
return env;
|
|
6
14
|
}
|
|
7
15
|
export function getRepoRoot(cwd = process.cwd()) {
|
|
8
16
|
try {
|
package/dist/cli/lib/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/cli/lib/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/cli/lib/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,11 @@ export declare const GXT_ERROR: {
|
|
|
42
42
|
readonly DEPENDENCY_UNSIGNED: "GXT_DEPENDENCY_UNSIGNED";
|
|
43
43
|
readonly DEPENDENCY_STALE: "GXT_DEPENDENCY_STALE";
|
|
44
44
|
readonly DEPENDENCY_ORG_MISMATCH: "GXT_DEPENDENCY_ORG_MISMATCH";
|
|
45
|
+
readonly CONTRACT_TAMPERED: "GXT_CONTRACT_TAMPERED";
|
|
46
|
+
readonly CONTRACT_SCOPE_ESCAPE: "GXT_CONTRACT_SCOPE_ESCAPE";
|
|
47
|
+
readonly CONTRACT_IMPORT_BANNED: "GXT_CONTRACT_IMPORT_BANNED";
|
|
48
|
+
readonly CONTRACT_IMPORT_UNLISTED: "GXT_CONTRACT_IMPORT_UNLISTED";
|
|
49
|
+
readonly CONTRACT_IMPORT_DYNAMIC: "GXT_CONTRACT_IMPORT_DYNAMIC";
|
|
45
50
|
};
|
|
46
51
|
export type GxtErrorCode = (typeof GXT_ERROR)[keyof typeof GXT_ERROR];
|
|
47
52
|
/** Map runtime exec / MCP error codes to stable GXT codes. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gxt-error-codes.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"gxt-error-codes.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAiCtE,8DAA8D;AAC9D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAMnE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAE/D;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAMrE;AAED,4GAA4G;AAC5G,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhE"}
|
|
@@ -42,6 +42,11 @@ export const GXT_ERROR = {
|
|
|
42
42
|
DEPENDENCY_UNSIGNED: "GXT_DEPENDENCY_UNSIGNED",
|
|
43
43
|
DEPENDENCY_STALE: "GXT_DEPENDENCY_STALE",
|
|
44
44
|
DEPENDENCY_ORG_MISMATCH: "GXT_DEPENDENCY_ORG_MISMATCH",
|
|
45
|
+
CONTRACT_TAMPERED: "GXT_CONTRACT_TAMPERED",
|
|
46
|
+
CONTRACT_SCOPE_ESCAPE: "GXT_CONTRACT_SCOPE_ESCAPE",
|
|
47
|
+
CONTRACT_IMPORT_BANNED: "GXT_CONTRACT_IMPORT_BANNED",
|
|
48
|
+
CONTRACT_IMPORT_UNLISTED: "GXT_CONTRACT_IMPORT_UNLISTED",
|
|
49
|
+
CONTRACT_IMPORT_DYNAMIC: "GXT_CONTRACT_IMPORT_DYNAMIC",
|
|
45
50
|
};
|
|
46
51
|
const GIT_PROOF_TO_GXT = {
|
|
47
52
|
MISSION_MISSING_MSN: GXT_ERROR.MISSION_UNSTAMPED,
|
|
@@ -70,6 +75,7 @@ const GANTRY_USER_ERROR_TO_GXT = {
|
|
|
70
75
|
RUNTIME_ENV_FAILED: GXT_ERROR.VERIFY_FAILED,
|
|
71
76
|
INVALID_ARGUMENT: GXT_ERROR.INVALID_ARGUMENT,
|
|
72
77
|
MCP_WRITE_DENIED: GXT_ERROR.MCP_WRITE_DENIED,
|
|
78
|
+
CONTRACT_VIOLATION: GXT_ERROR.CONTRACT_IMPORT_BANNED,
|
|
73
79
|
};
|
|
74
80
|
/** Map runtime exec / MCP error codes to stable GXT codes. */
|
|
75
81
|
export function mapRuntimeErrorCodeToGxt(code) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gxt-error-codes.js","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iBAAiB,EAAE,uBAAuB;IAC1C,WAAW,EAAE,iBAAiB;IAC9B,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,qBAAqB;IACtC,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,eAAe,EAAE,qBAAqB;IACtC,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,wBAAwB;IAC5C,gBAAgB,EAAE,sBAAsB;IACxC,sBAAsB,EAAE,4BAA4B;IACpD,sBAAsB,EAAE,4BAA4B;IACpD,uBAAuB,EAAE,6BAA6B;IACtD,mBAAmB,EAAE,yBAAyB;IAC9C,yBAAyB,EAAE,+BAA+B;IAC1D,sBAAsB,EAAE,4BAA4B;IACpD,sBAAsB,EAAE,4BAA4B;IACpD,cAAc,EAAE,oBAAoB;IACpC,mBAAmB,EAAE,yBAAyB;IAC9C,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,gBAAgB,EAAE,sBAAsB;IACxC,gBAAgB,EAAE,sBAAsB;IACxC,sBAAsB,EAAE,4BAA4B;IACpD,kBAAkB,EAAE,wBAAwB;IAC5C,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,8BAA8B;IACxD,sBAAsB,EAAE,4BAA4B;IACpD,6BAA6B,EAAE,mCAAmC;IAClE,iBAAiB,EAAE,uBAAuB;IAC1C,eAAe,EAAE,qBAAqB;IACtC,YAAY,EAAE,kBAAkB;IAChC,wBAAwB,EAAE,8BAA8B;IACxD,sBAAsB,EAAE,4BAA4B;IACpD,oBAAoB,EAAE,0BAA0B;IAChD,mBAAmB,EAAE,yBAAyB;IAC9C,eAAe,EAAE,qBAAqB;IACtC,oBAAoB,EAAE,0BAA0B;IAChD,sBAAsB,EAAE,4BAA4B;IACpD,mBAAmB,EAAE,yBAAyB;IAC9C,gBAAgB,EAAE,sBAAsB;IACxC,uBAAuB,EAAE,6BAA6B;CAC9C,CAAC;AAIX,MAAM,gBAAgB,GAAiC;IACrD,mBAAmB,EAAE,SAAS,CAAC,iBAAiB;IAChD,6BAA6B,EAAE,SAAS,CAAC,iBAAiB;IAC1D,cAAc,EAAE,SAAS,CAAC,iBAAiB;IAC3C,qBAAqB,EAAE,SAAS,CAAC,iBAAiB;IAClD,oCAAoC,EAAE,SAAS,CAAC,iBAAiB;IACjE,4BAA4B,EAAE,SAAS,CAAC,iBAAiB;IACzD,eAAe,EAAE,SAAS,CAAC,iBAAiB;IAC5C,sBAAsB,EAAE,SAAS,CAAC,sBAAsB;CACzD,CAAC;AAEF,gEAAgE;AAChE,MAAM,wBAAwB,GAAiC;IAC7D,uBAAuB,EAAE,SAAS,CAAC,aAAa;IAChD,sBAAsB,EAAE,SAAS,CAAC,aAAa;IAC/C,qBAAqB,EAAE,SAAS,CAAC,aAAa;IAC9C,qBAAqB,EAAE,SAAS,CAAC,aAAa;IAC9C,iBAAiB,EAAE,SAAS,CAAC,WAAW;IACxC,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;IAC5C,sBAAsB,EAAE,SAAS,CAAC,sBAAsB;IACxD,iBAAiB,EAAE,SAAS,CAAC,WAAW;IACxC,wBAAwB,EAAE,SAAS,CAAC,aAAa;IACjD,uBAAuB,EAAE,SAAS,CAAC,aAAa;IAChD,wBAAwB,EAAE,SAAS,CAAC,cAAc;IAClD,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;IAClD,kBAAkB,EAAE,SAAS,CAAC,aAAa;IAC3C,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;IAC5C,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"gxt-error-codes.js","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"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"}
|