@jeger-ai/opengantry 2.2.5 → 2.3.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.
- package/README.md +61 -59
- package/dist/cli/commands/context-request.d.ts +2 -2
- package/dist/cli/commands/context-request.d.ts.map +1 -1
- package/dist/cli/commands/context-request.js +13 -13
- package/dist/cli/commands/context-request.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +2 -2
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/init.js +2 -2
- package/dist/cli/commands/onboarding.js +4 -4
- package/dist/cli/commands/onboarding.js.map +1 -1
- package/dist/cli/commands/planner.d.ts +11 -0
- package/dist/cli/commands/{teacher.d.ts.map → planner.d.ts.map} +1 -1
- package/dist/cli/commands/{teacher.js → planner.js} +11 -11
- package/dist/cli/commands/{teacher.js.map → planner.js.map} +1 -1
- package/dist/cli/commands/runtime.d.ts +1 -1
- package/dist/cli/commands/runtime.d.ts.map +1 -1
- package/dist/cli/commands/runtime.js +4 -4
- package/dist/cli/commands/runtime.js.map +1 -1
- package/dist/cli/commands/status.js +2 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/lib/audience-output.d.ts +2 -2
- package/dist/cli/lib/audience-output.d.ts.map +1 -1
- package/dist/cli/lib/audience-output.js +27 -38
- package/dist/cli/lib/audience-output.js.map +1 -1
- package/dist/cli/lib/break-glass.js +1 -1
- package/dist/cli/lib/command-reporter.d.ts.map +1 -1
- package/dist/cli/lib/command-reporter.js +9 -4
- package/dist/cli/lib/command-reporter.js.map +1 -1
- package/dist/cli/lib/config-namespace.d.ts +2 -2
- package/dist/cli/lib/config-namespace.js +2 -2
- package/dist/cli/lib/constants.d.ts +8 -8
- package/dist/cli/lib/constants.d.ts.map +1 -1
- package/dist/cli/lib/constants.js +8 -8
- package/dist/cli/lib/constants.js.map +1 -1
- package/dist/cli/lib/context-feed-remediation.d.ts.map +1 -1
- package/dist/cli/lib/context-feed-remediation.js +25 -3
- package/dist/cli/lib/context-feed-remediation.js.map +1 -1
- package/dist/cli/lib/context-request.d.ts +4 -4
- package/dist/cli/lib/context-request.d.ts.map +1 -1
- package/dist/cli/lib/context-request.js +11 -11
- package/dist/cli/lib/context-request.js.map +1 -1
- package/dist/cli/lib/doctor-core.d.ts.map +1 -1
- package/dist/cli/lib/doctor-core.js +49 -20
- package/dist/cli/lib/doctor-core.js.map +1 -1
- package/dist/cli/lib/doctor-types.d.ts +2 -2
- package/dist/cli/lib/errors.js +6 -6
- package/dist/cli/lib/errors.js.map +1 -1
- package/dist/cli/lib/executor-log-integrity.d.ts +4 -0
- package/dist/cli/lib/executor-log-integrity.d.ts.map +1 -0
- package/dist/cli/lib/executor-log-integrity.js +48 -0
- package/dist/cli/lib/executor-log-integrity.js.map +1 -0
- package/dist/cli/lib/{worker-log-line-map.d.ts → executor-log-line-map.d.ts} +4 -4
- package/dist/cli/lib/executor-log-line-map.d.ts.map +1 -0
- package/dist/cli/lib/{worker-log-line-map.js → executor-log-line-map.js} +4 -4
- package/dist/cli/lib/executor-log-line-map.js.map +1 -0
- package/dist/cli/lib/file-merge-gxt.js +1 -1
- package/dist/cli/lib/file-merge-gxt.js.map +1 -1
- package/dist/cli/lib/fix-hints.d.ts +6 -6
- package/dist/cli/lib/fix-hints.d.ts.map +1 -1
- package/dist/cli/lib/fix-hints.js +36 -30
- package/dist/cli/lib/fix-hints.js.map +1 -1
- package/dist/cli/lib/git-metrics.js +10 -10
- package/dist/cli/lib/git-metrics.js.map +1 -1
- package/dist/cli/lib/git-proof.d.ts +7 -5
- package/dist/cli/lib/git-proof.d.ts.map +1 -1
- package/dist/cli/lib/git-proof.js +42 -19
- package/dist/cli/lib/git-proof.js.map +1 -1
- package/dist/cli/lib/gxt-config.d.ts +9 -0
- package/dist/cli/lib/gxt-config.d.ts.map +1 -0
- package/dist/cli/lib/gxt-config.js +20 -0
- package/dist/cli/lib/gxt-config.js.map +1 -0
- package/dist/cli/lib/gxt-error-codes.d.ts +2 -0
- package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
- package/dist/cli/lib/gxt-error-codes.js +7 -3
- package/dist/cli/lib/gxt-error-codes.js.map +1 -1
- package/dist/cli/lib/init-compose.js +1 -1
- package/dist/cli/lib/init-interactive.js +1 -1
- package/dist/cli/lib/init-interactive.js.map +1 -1
- package/dist/cli/lib/init-plan.d.ts.map +1 -1
- package/dist/cli/lib/init-plan.js +6 -18
- package/dist/cli/lib/init-plan.js.map +1 -1
- package/dist/cli/lib/init-tutorial.js +14 -14
- package/dist/cli/lib/init-tutorial.js.map +1 -1
- package/dist/cli/lib/kpi-engine.d.ts +1 -1
- package/dist/cli/lib/kpi-engine.d.ts.map +1 -1
- package/dist/cli/lib/kpi-engine.js +15 -11
- package/dist/cli/lib/kpi-engine.js.map +1 -1
- package/dist/cli/lib/legislate-forbidden-zone.d.ts +7 -0
- package/dist/cli/lib/legislate-forbidden-zone.d.ts.map +1 -0
- package/dist/cli/lib/legislate-forbidden-zone.js +43 -0
- package/dist/cli/lib/legislate-forbidden-zone.js.map +1 -0
- package/dist/cli/lib/legislate.d.ts.map +1 -1
- package/dist/cli/lib/legislate.js +7 -3
- package/dist/cli/lib/legislate.js.map +1 -1
- package/dist/cli/lib/mcp-governance.d.ts +2 -2
- package/dist/cli/lib/mcp-governance.d.ts.map +1 -1
- package/dist/cli/lib/mcp-governance.js +40 -10
- package/dist/cli/lib/mcp-governance.js.map +1 -1
- package/dist/cli/lib/mcp-tools-register.js +3 -3
- package/dist/cli/lib/mcp-tools-register.js.map +1 -1
- package/dist/cli/lib/mcp-upgrade.d.ts.map +1 -1
- package/dist/cli/lib/mcp-upgrade.js +8 -0
- package/dist/cli/lib/mcp-upgrade.js.map +1 -1
- package/dist/cli/lib/mcp-write-guard.d.ts +20 -0
- package/dist/cli/lib/mcp-write-guard.d.ts.map +1 -0
- package/dist/cli/lib/mcp-write-guard.js +82 -0
- package/dist/cli/lib/mcp-write-guard.js.map +1 -0
- package/dist/cli/lib/missions/formatter.d.ts +1 -1
- package/dist/cli/lib/missions/formatter.js +1 -1
- package/dist/cli/lib/onboarding-flow.js +1 -1
- package/dist/cli/lib/out-of-scope-hint.js +1 -1
- package/dist/cli/lib/perimeter.d.ts +1 -1
- package/dist/cli/lib/perimeter.js +10 -10
- package/dist/cli/lib/planner-identity.d.ts +23 -0
- package/dist/cli/lib/{teacher-identity.d.ts.map → planner-identity.d.ts.map} +1 -1
- package/dist/cli/lib/{teacher-identity.js → planner-identity.js} +34 -34
- package/dist/cli/lib/{teacher-identity.js.map → planner-identity.js.map} +1 -1
- package/dist/cli/lib/planner-signature.d.ts +11 -0
- package/dist/cli/lib/planner-signature.d.ts.map +1 -0
- package/dist/cli/lib/planner-signature.js +17 -0
- package/dist/cli/lib/planner-signature.js.map +1 -0
- package/dist/cli/lib/program-audience-hook.js +1 -1
- package/dist/cli/lib/program-audience-hook.js.map +1 -1
- package/dist/cli/lib/register-proposals.js +1 -1
- package/dist/cli/lib/runtime-env.d.ts +3 -3
- package/dist/cli/lib/runtime-env.d.ts.map +1 -1
- package/dist/cli/lib/runtime-env.js +4 -4
- package/dist/cli/lib/runtime-env.js.map +1 -1
- package/dist/cli/lib/runtime-exec.d.ts +4 -4
- package/dist/cli/lib/runtime-exec.d.ts.map +1 -1
- package/dist/cli/lib/runtime-exec.js +14 -14
- package/dist/cli/lib/runtime-exec.js.map +1 -1
- package/dist/cli/lib/staged-tmvc-guard.js +1 -1
- package/dist/cli/lib/staged-tmvc-guard.js.map +1 -1
- package/dist/cli/lib/start-orchestration.d.ts.map +1 -1
- package/dist/cli/lib/start-orchestration.js +28 -13
- package/dist/cli/lib/start-orchestration.js.map +1 -1
- package/dist/cli/lib/status-report.d.ts +1 -1
- package/dist/cli/lib/status-report.js +7 -7
- package/dist/cli/lib/status-report.js.map +1 -1
- package/dist/cli/lib/surgeon.d.ts +3 -3
- package/dist/cli/lib/surgeon.d.ts.map +1 -1
- package/dist/cli/lib/surgeon.js +7 -7
- package/dist/cli/lib/surgeon.js.map +1 -1
- package/dist/cli/lib/surgeons/registry.d.ts +1 -1
- package/dist/cli/lib/surgeons/registry.d.ts.map +1 -1
- package/dist/cli/lib/telemetry-log.d.ts +1 -1
- package/dist/cli/lib/telemetry-log.d.ts.map +1 -1
- package/dist/cli/lib/telemetry-log.js +4 -4
- package/dist/cli/lib/telemetry-log.js.map +1 -1
- package/dist/cli/lib/tmvc-path.d.ts +1 -1
- package/dist/cli/lib/tmvc-path.d.ts.map +1 -1
- package/dist/cli/lib/tmvc-path.js +1 -1
- package/dist/cli/lib/tmvc-path.js.map +1 -1
- package/dist/cli/lib/trace.d.ts +8 -8
- package/dist/cli/lib/trace.d.ts.map +1 -1
- package/dist/cli/lib/trace.js +21 -21
- package/dist/cli/lib/trace.js.map +1 -1
- package/dist/cli/lib/triage-logic.js +1 -1
- package/dist/cli/lib/types.d.ts +1 -1
- package/dist/cli/lib/upgrade-apply.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-apply.js +14 -2
- package/dist/cli/lib/upgrade-apply.js.map +1 -1
- package/dist/cli/lib/upgrade-plan.js +3 -3
- package/dist/cli/lib/verify-engine.d.ts +8 -5
- package/dist/cli/lib/verify-engine.d.ts.map +1 -1
- package/dist/cli/lib/verify-engine.js +40 -30
- package/dist/cli/lib/verify-engine.js.map +1 -1
- package/dist/cli/lib/verify-failure-normalize-phases.d.ts +1 -1
- package/dist/cli/lib/verify-failure-normalize-phases.d.ts.map +1 -1
- package/dist/cli/lib/verify-failure-normalize-phases.js +1 -1
- package/dist/cli/lib/verify-failure-normalize-phases.js.map +1 -1
- package/dist/cli/lib/verify-failure-normalize.d.ts +54 -8
- package/dist/cli/lib/verify-failure-normalize.d.ts.map +1 -1
- package/dist/cli/lib/verify-failure-normalize.js +0 -25
- package/dist/cli/lib/verify-failure-normalize.js.map +1 -1
- package/dist/cli/lib/verify-hints.d.ts +3 -2
- package/dist/cli/lib/verify-hints.d.ts.map +1 -1
- package/dist/cli/lib/verify-hints.js +33 -24
- package/dist/cli/lib/verify-hints.js.map +1 -1
- package/dist/cli/lib/verify-payload-types.d.ts +1 -0
- package/dist/cli/lib/verify-payload-types.d.ts.map +1 -1
- package/dist/cli/lib/verify-payload.d.ts.map +1 -1
- package/dist/cli/lib/verify-payload.js +3 -0
- package/dist/cli/lib/verify-payload.js.map +1 -1
- package/dist/cli/lib/verify-presentation.d.ts +4 -4
- package/dist/cli/lib/verify-presentation.d.ts.map +1 -1
- package/dist/cli/lib/verify-presentation.js +6 -2
- package/dist/cli/lib/verify-presentation.js.map +1 -1
- package/dist/cli/lib/verify-presenters.js +3 -3
- package/dist/cli/lib/verify-presenters.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-core.d.ts.map +1 -1
- package/dist/cli/program-core.js +4 -17
- package/dist/cli/program-core.js.map +1 -1
- package/dist/cli/program-mission.js +15 -15
- package/dist/cli/program-mission.js.map +1 -1
- package/dist/cli/program-planner.d.ts +3 -0
- package/dist/cli/program-planner.d.ts.map +1 -0
- package/dist/cli/program-planner.js +19 -0
- package/dist/cli/{program-teacher.js.map → program-planner.js.map} +1 -1
- package/dist/cli/program-workflow.js +7 -7
- package/dist/cli/program-workflow.js.map +1 -1
- package/dist/cli/program.js +3 -3
- package/dist/cli/program.js.map +1 -1
- package/package.json +3 -2
- package/templates/.cursor/hooks/gxt-before-shell.sh +4 -4
- package/templates/.cursor/hooks/gxt-session-start.sh +2 -2
- package/templates/.cursor/rules/opengantry-gxt-substrate.mdc +4 -4
- package/templates/.gitagent/ARCHITECTURE.pointer.json +2 -2
- package/templates/.gitagent/foreman/MANIFEST.json +3 -3
- package/templates/.gitagent/foreman/PLANNER.allowlist.example +4 -0
- package/templates/.gitagent/missions/README.md +1 -1
- package/templates/.gitagent/{teacher → planner}/ARCHITECTURE-ACCESS.md +3 -3
- package/templates/.gitagent/{teacher → planner}/ARCHITECTURE-DISCOVERY.md +2 -2
- package/templates/.gitagent/{teacher/WORKER_LOG.template.md → planner/EXECUTOR_LOG.template.md} +2 -2
- package/templates/.gitagent/{teacher → planner}/MISSION-ARCHITECT.md +11 -11
- package/templates/.gitagent/{teacher → planner}/RULES.md +4 -4
- package/templates/.githooks/post-checkout +4 -4
- package/templates/.githooks/pre-push +1 -1
- package/templates/.github/workflows/gxt-validate.yml +1 -1
- package/templates/.gitignore.gxt +1 -1
- package/templates/.prettierignore.gxt +1 -1
- package/templates/AGENTS.md +6 -6
- package/templates/docs/ARCHITECTURE.md +2 -2
- package/templates/integrations/aider/.aider.conf.yml +1 -1
- package/templates/integrations/antigravity/.agent/rules/gxt.md +1 -1
- package/templates/integrations/asset-catalog.json +7 -7
- package/templates/integrations/claude-code/CLAUDE.md +1 -1
- package/templates/integrations/cline/.clinerules/gxt.md +1 -1
- package/templates/integrations/compatibility.json +1 -1
- package/templates/integrations/junie/.junie/guidelines.md +1 -1
- package/templates/integrations/opencode/opencode.json +1 -1
- package/templates/integrations/openhands/.openhands/microagents/gxt.md +1 -1
- package/templates/integrations/recipes/_footer.md +7 -7
- package/templates/integrations/recipes/_preamble.md +7 -7
- package/templates/integrations/recipes/claude-code.md +1 -1
- package/templates/integrations/recipes/cursor.md +2 -2
- package/templates/scripts/gxt-manifest-lib.mjs +30 -5
- package/templates/scripts/gxt-runtime-env.sh +1 -1
- package/templates/scripts/validate-gxt.sh +6 -1
- package/templates/skills/gantry.md +1 -1
- package/templates/skills/substrate.md +1 -1
- package/dist/cli/commands/teacher.d.ts +0 -11
- package/dist/cli/lib/teacher-identity.d.ts +0 -23
- package/dist/cli/lib/verify-failure-format.d.ts +0 -4
- package/dist/cli/lib/verify-failure-format.d.ts.map +0 -1
- package/dist/cli/lib/verify-failure-format.js +0 -6
- package/dist/cli/lib/verify-failure-format.js.map +0 -1
- package/dist/cli/lib/verify-failure-normalize-types.d.ts +0 -32
- package/dist/cli/lib/verify-failure-normalize-types.d.ts.map +0 -1
- package/dist/cli/lib/verify-failure-normalize-types.js +0 -2
- package/dist/cli/lib/verify-failure-normalize-types.js.map +0 -1
- package/dist/cli/lib/verify-failure-presentation-types.d.ts +0 -29
- package/dist/cli/lib/verify-failure-presentation-types.d.ts.map +0 -1
- package/dist/cli/lib/verify-failure-presentation-types.js +0 -2
- package/dist/cli/lib/verify-failure-presentation-types.js.map +0 -1
- package/dist/cli/lib/worker-log-line-map.d.ts.map +0 -1
- package/dist/cli/lib/worker-log-line-map.js.map +0 -1
- package/dist/cli/program-teacher.d.ts +0 -3
- package/dist/cli/program-teacher.d.ts.map +0 -1
- package/dist/cli/program-teacher.js +0 -19
- package/templates/.gitagent/foreman/TEACHER.allowlist.example +0 -4
- /package/templates/.gitagent/{teacher → planner}/KPI-REPORT.schema.yaml +0 -0
- /package/templates/.gitagent/{teacher → planner}/MISSION.schema.yaml +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { logInfo } from "./cli-io.js";
|
|
2
|
-
import {
|
|
2
|
+
import { plannerIdentitySetupHint } from "./planner-identity.js";
|
|
3
3
|
const REL_MISSIONS_PREFIX = ".gitagent/missions/";
|
|
4
4
|
/** Human remediation only — never mix with machine JSON streams. */
|
|
5
5
|
export function logFixHint(hint) {
|
|
@@ -37,29 +37,29 @@ export function hintGitProof(code, ctx) {
|
|
|
37
37
|
"see .gitagent/missions/example.verify.yaml",
|
|
38
38
|
verifyCmd,
|
|
39
39
|
].join("; ");
|
|
40
|
-
case "
|
|
40
|
+
case "PLANNER_IDENTITY_UNCONFIGURED":
|
|
41
41
|
return hintTeacherEmails(root);
|
|
42
42
|
case "NO_MSN_COMMITS": {
|
|
43
43
|
const msn = ctx.msnId ?? "MSN-NNNN";
|
|
44
44
|
return [
|
|
45
45
|
`git add ${mission} && git commit -m "[${msn}] legislate mission"`,
|
|
46
|
-
`gantry
|
|
46
|
+
`gantry planner set "$(git config user.email)"`,
|
|
47
47
|
verifyCmd,
|
|
48
48
|
].join("; ");
|
|
49
49
|
}
|
|
50
|
-
case "
|
|
50
|
+
case "NO_PLANNER_MSN_COMMIT": {
|
|
51
51
|
const email = ctx.latestAuthorEmail ?? "$(git log -1 --format=%ae)";
|
|
52
52
|
return [
|
|
53
|
-
`gantry
|
|
54
|
-
"add each
|
|
53
|
+
`gantry planner set "${email}"`,
|
|
54
|
+
"add each Planner email allowed to legislate in this repo",
|
|
55
55
|
verifyCmd,
|
|
56
56
|
].join("; ");
|
|
57
57
|
}
|
|
58
|
-
case "
|
|
58
|
+
case "MISSION_FILE_NOT_MODIFIED_BY_PLANNER": {
|
|
59
59
|
const msn = ctx.msnId ?? "MSN-NNNN";
|
|
60
60
|
const rel = ctx.repoRelMission ?? mission;
|
|
61
61
|
return [
|
|
62
|
-
`git add ${rel} && git commit -m "[${msn}] include mission in
|
|
62
|
+
`git add ${rel} && git commit -m "[${msn}] include mission in Planner stamp"`,
|
|
63
63
|
verifyCmd,
|
|
64
64
|
].join("; ");
|
|
65
65
|
}
|
|
@@ -67,12 +67,18 @@ export function hintGitProof(code, ctx) {
|
|
|
67
67
|
return `move mission under ${REL_MISSIONS_PREFIX} (got path outside missions dir)`;
|
|
68
68
|
case "MISSION_NO_GATE":
|
|
69
69
|
return hintMissionNoGate(mission);
|
|
70
|
+
case "PLANNER_STAMP_UNSIGNED":
|
|
71
|
+
return [
|
|
72
|
+
"enable commit signing for Planner legislation (git config commit.gpgsign true or SSH signing)",
|
|
73
|
+
"or set planner_signature to off or warn in .gitagent/config.json",
|
|
74
|
+
verifyCmd,
|
|
75
|
+
].join("; ");
|
|
70
76
|
default:
|
|
71
77
|
return verifyCmd;
|
|
72
78
|
}
|
|
73
79
|
}
|
|
74
80
|
export function hintTeacherEmails(repoRoot) {
|
|
75
|
-
return
|
|
81
|
+
return plannerIdentitySetupHint(repoRoot);
|
|
76
82
|
}
|
|
77
83
|
export function hintGate(command, missionPath) {
|
|
78
84
|
return `re-run gate: ${command} # then gantry verify --mission ${missionPath}`;
|
|
@@ -80,33 +86,33 @@ export function hintGate(command, missionPath) {
|
|
|
80
86
|
export function hintTraceStrictTrace(missionPath) {
|
|
81
87
|
return `remove --strict-trace to allow auto line-drift resolution: gantry verify --mission ${missionPath}`;
|
|
82
88
|
}
|
|
83
|
-
export function hintTraceAmbiguous(
|
|
89
|
+
export function hintTraceAmbiguous(executorLogPath, missionPath, traceQuote) {
|
|
84
90
|
if (traceQuote !== undefined && traceQuote.trim().length <= 12) {
|
|
85
|
-
return `trace_quote "${traceQuote.trim()}" matches multiple lines in ${
|
|
91
|
+
return `trace_quote "${traceQuote.trim()}" matches multiple lines in ${executorLogPath} — append a unique mission-specific line (e.g. "- DoD 1: MSN-… gate passed") and set trace_quote to that full verbatim line in ${missionPath}`;
|
|
86
92
|
}
|
|
87
|
-
return `disambiguate quotes in ${
|
|
93
|
+
return `disambiguate quotes in ${executorLogPath} or re-run: gantry runtime exec --mission ${missionPath} -- <worker>`;
|
|
88
94
|
}
|
|
89
|
-
export function hintTraceMissing(
|
|
90
|
-
return `append verbatim trace_quote to ${
|
|
95
|
+
export function hintTraceMissing(executorLogPath) {
|
|
96
|
+
return `append verbatim trace_quote to ${executorLogPath} from executor flight evidence`;
|
|
91
97
|
}
|
|
92
|
-
export function hintTraceStaleEvidence(
|
|
98
|
+
export function hintTraceStaleEvidence(executorLogPath, missionPath) {
|
|
93
99
|
return [
|
|
94
|
-
`TMVC drift since
|
|
95
|
-
`append a fresh unique trace line to ${
|
|
100
|
+
`TMVC drift since EXECUTOR_LOG trace attestation — re-run gate (${missionPath})`,
|
|
101
|
+
`append a fresh unique trace line to ${executorLogPath} and set mission trace_quote to that verbatim line`,
|
|
96
102
|
"after interactive rebase/squash, re-run gate + verify (historical attestation may be invalidated)",
|
|
97
103
|
].join("; ");
|
|
98
104
|
}
|
|
99
|
-
export function hintTraceQuoteStillPlaceholder(missionPath,
|
|
100
|
-
return `edit ${missionPath}: replace trace_quote placeholder with a verbatim substring from ${
|
|
105
|
+
export function hintTraceQuoteStillPlaceholder(missionPath, executorLogPath) {
|
|
106
|
+
return `edit ${missionPath}: replace trace_quote placeholder with a verbatim substring from ${executorLogPath} (not the other way around)`;
|
|
101
107
|
}
|
|
102
|
-
export function hintTracePendingSteps(
|
|
108
|
+
export function hintTracePendingSteps(executorLogPath, missionPath, gateCommand) {
|
|
103
109
|
const verifyCmd = `gantry verify --mission ${missionPath}`;
|
|
104
110
|
return [
|
|
105
|
-
`eval "$(gantry runtime env --mission ${missionPath})" then execute
|
|
111
|
+
`eval "$(gantry runtime env --mission ${missionPath})" then execute executor within TMVC`,
|
|
106
112
|
gateCommand
|
|
107
|
-
? `run gate (${gateCommand}); append a unique mission-specific line to ${
|
|
108
|
-
: `append a unique mission-specific evidence line to ${
|
|
109
|
-
`edit ${missionPath}: set trace row status PASS and trace_quote to verbatim substring from ${
|
|
113
|
+
? `run gate (${gateCommand}); append a unique mission-specific line to ${executorLogPath} (not bare gate output if "OK" appears elsewhere)`
|
|
114
|
+
: `append a unique mission-specific evidence line to ${executorLogPath}`,
|
|
115
|
+
`edit ${missionPath}: set trace row status PASS and trace_quote to verbatim substring from ${executorLogPath}`,
|
|
110
116
|
verifyCmd,
|
|
111
117
|
];
|
|
112
118
|
}
|
|
@@ -116,22 +122,22 @@ export function hintForbiddenZone(firstPath, missionPath) {
|
|
|
116
122
|
export function hintRuntimeHumanSummary(summary, errorFile) {
|
|
117
123
|
return `${summary} See ${errorFile} (GXT_LAST_ERROR_FILE).`;
|
|
118
124
|
}
|
|
119
|
-
export function hintForTraceKind(traceKind,
|
|
125
|
+
export function hintForTraceKind(traceKind, executorLog, mission, traceQuote) {
|
|
120
126
|
switch (traceKind) {
|
|
121
127
|
case "ambiguous":
|
|
122
|
-
return hintTraceAmbiguous(
|
|
128
|
+
return hintTraceAmbiguous(executorLog, mission, traceQuote);
|
|
123
129
|
case "placeholder_quote":
|
|
124
|
-
return hintTraceQuoteStillPlaceholder(mission,
|
|
130
|
+
return hintTraceQuoteStillPlaceholder(mission, executorLog);
|
|
125
131
|
case "strict_line_drift":
|
|
126
132
|
return hintTraceStrictTrace(mission);
|
|
127
133
|
case "stale_evidence":
|
|
128
|
-
return hintTraceStaleEvidence(
|
|
134
|
+
return hintTraceStaleEvidence(executorLog, mission);
|
|
129
135
|
case "quote_missing":
|
|
130
|
-
case "
|
|
136
|
+
case "executor_log_missing":
|
|
131
137
|
case "empty_quote":
|
|
132
138
|
case "anchor_mismatch":
|
|
133
139
|
case "other":
|
|
134
|
-
return hintTraceMissing(
|
|
140
|
+
return hintTraceMissing(executorLog);
|
|
135
141
|
}
|
|
136
142
|
}
|
|
137
143
|
//# sourceMappingURL=fix-hints.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-hints.js","sourceRoot":"","sources":["../../../src/cli/lib/fix-hints.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"fix-hints.js","sourceRoot":"","sources":["../../../src/cli/lib/fix-hints.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import YAML from "yaml";
|
|
2
2
|
import { GXT_BYPASS_NOTES_REF } from "./break-glass.js";
|
|
3
|
-
import { MSN_ID_PATTERN,
|
|
4
|
-
import {
|
|
3
|
+
import { MSN_ID_PATTERN, EXECUTOR_LOG_FILENAME } from "./constants.js";
|
|
4
|
+
import { parsePlannerEmailsFromEnv, commitSubjectHasMsnPrefix } from "./git-proof.js";
|
|
5
5
|
import { gitRevParse, gitRunOk } from "./git.js";
|
|
6
6
|
const MISSIONS_PREFIX = ".gitagent/missions/";
|
|
7
7
|
const diffCache = new Map();
|
|
@@ -96,14 +96,14 @@ function commitChangedPaths(root, hash) {
|
|
|
96
96
|
diffCache.set(hash, paths);
|
|
97
97
|
return paths;
|
|
98
98
|
}
|
|
99
|
-
function
|
|
99
|
+
function isPlannerEmail(email) {
|
|
100
100
|
const normalizedAuthor = email.trim().toLowerCase();
|
|
101
101
|
if (!normalizedAuthor)
|
|
102
102
|
return false;
|
|
103
|
-
const allow =
|
|
103
|
+
const allow = parsePlannerEmailsFromEnv();
|
|
104
104
|
if (allow.length === 0)
|
|
105
105
|
return false;
|
|
106
|
-
return allow.some((
|
|
106
|
+
return allow.some((plannerEmail) => plannerEmail.length > 0 && plannerEmail === normalizedAuthor);
|
|
107
107
|
}
|
|
108
108
|
function subjectMsnId(subject) {
|
|
109
109
|
const m = subject.trim().match(/^\[(MSN-\d{4})\]/);
|
|
@@ -146,10 +146,10 @@ export function aggregateFromLogStream(root, records) {
|
|
|
146
146
|
missionIdsFromLog.add(msnFromSubject);
|
|
147
147
|
const paths = commitChangedPaths(root, rec.hash);
|
|
148
148
|
let touchesMission = false;
|
|
149
|
-
let
|
|
149
|
+
let touchesExecutorLog = false;
|
|
150
150
|
for (const p of paths) {
|
|
151
|
-
if (p ===
|
|
152
|
-
|
|
151
|
+
if (p === EXECUTOR_LOG_FILENAME)
|
|
152
|
+
touchesExecutorLog = true;
|
|
153
153
|
const msnFromPath = msnFromMissionPath(p);
|
|
154
154
|
if (msnFromPath) {
|
|
155
155
|
touchesMission = true;
|
|
@@ -160,12 +160,12 @@ export function aggregateFromLogStream(root, records) {
|
|
|
160
160
|
}
|
|
161
161
|
const isLegislative = msnFromSubject !== null &&
|
|
162
162
|
commitSubjectHasMsnPrefix(rec.subject, msnFromSubject) &&
|
|
163
|
-
|
|
163
|
+
isPlannerEmail(rec.email) &&
|
|
164
164
|
touchesMission;
|
|
165
165
|
if (isLegislative) {
|
|
166
166
|
legislative++;
|
|
167
167
|
}
|
|
168
|
-
else if (
|
|
168
|
+
else if (touchesExecutorLog && !touchesMission) {
|
|
169
169
|
worker_trace++;
|
|
170
170
|
}
|
|
171
171
|
if (msnFromSubject)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-metrics.js","sourceRoot":"","sources":["../../../src/cli/lib/git-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"git-metrics.js","sourceRoot":"","sources":["../../../src/cli/lib/git-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;AAS9C,sFAAsF;AACtF,MAAM,CAAC,MAAM,+BAA+B,GAAG,kBAA2B,CAAC;AAC3E,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAU,CAAC;AAuB/D,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,mBAAmB,EAAE,+BAA+B;QACpD,cAAc,EAAE,oCAAoC;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAe;IAC9C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAwC,CAAC;QACxE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC;QACtC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAAE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpF,CAAC;IAAC,MAAM,CAAC;QACP,UAAU;IACZ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,GAAW;IAC9D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IAEzB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,SAAS;QACvB,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,MAAM;YAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,GAAW;IACxD,MAAM,CAAC,GAAG,QAAQ,CAChB,IAAI,EACJ,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,iCAAiC,CAAC,EAClE,EAAE,GAAG,IAAI,GAAG,IAAI,CACjB,CAAC;IACF,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAEzC,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC/B,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;YAAE,SAAS;QACjD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC;IACxC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AACxE,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,IAAY;IACpD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE;QAChB,CAAC,CAAC,CAAC,CAAC,MAAM;aACL,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,EAAE,CAAC;IACP,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpD,IAAI,CAAC,gBAAgB;QAAE,OAAO,KAAK,CAAC;IAEpC,MAAM,KAAK,GAAG,yBAAyB,EAAE,CAAC;IAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAErC,OAAO,KAAK,CAAC,IAAI,CACf,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,KAAK,gBAAgB,CAC/E,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,MAAgB;IACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACpD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,SAAS,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,OAAoB;IASpB,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,SAAS;QAEnC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC;YAC9D,YAAY,EAAE,CAAC;QACjB,CAAC;QAED,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,cAAc;YAAE,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE1D,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAE/B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,qBAAqB;gBAAE,kBAAkB,GAAG,IAAI,CAAC;YAC3D,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,WAAW,EAAE,CAAC;gBAChB,cAAc,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;oBAAE,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAChE,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GACjB,cAAc,KAAK,IAAI;YACvB,yBAAyB,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC;YACtD,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB,cAAc,CAAC;QAEjB,IAAI,aAAa,EAAE,CAAC;YAClB,WAAW,EAAE,CAAC;QAChB,CAAC;aAAM,IAAI,kBAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;YACjD,YAAY,EAAE,CAAC;QACjB,CAAC;QAED,IAAI,cAAc;YAAE,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;QACL,iBAAiB;QACjB,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,SAAS;QACT,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,SAA8B,EAC9B,QAA6B;IAE7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;QACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACzE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACvF,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,OAAe;IAC7D,qBAAqB,EAAE,CAAC;IACxB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEvF,OAAO;QACL,GAAG;QACH,kBAAkB,EAAE,UAAU,CAAC,MAAM;QACrC,YAAY,EAAE,gBAAgB,CAAC,IAAI,CAAC;QACpC,oBAAoB,EAAE,MAAM,CAAC,YAAY;QACzC,mBAAmB,EAAE,MAAM,CAAC,WAAW;QACvC,oBAAoB,EAAE,MAAM,CAAC,YAAY;QACzC,kBAAkB,EAAE,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxE,WAAW,EAAE,UAAU;QACvB,sBAAsB,EAAE,yBAAyB,EAAE;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAwB;IAC5D,MAAM,KAAK,GAAG;QACZ,oBAAoB,MAAM,CAAC,GAAG,GAAG;QACjC,yBAAyB,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE;QAC5D,+BAA+B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;QAC5D,2BAA2B,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;QAChE,0BAA0B,MAAM,CAAC,sBAAsB,CAAC,mBAAmB,EAAE;QAC7E,kCAAkC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE;QACtE,mCAAmC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;QACxE,8BAA8B,MAAM,CAAC,kBAAkB,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC3H,gCAAgC,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACjI,iCAAiC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;KAC7E,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Missions verified by `gantry verify` must live under this repo-relative prefix. */
|
|
2
2
|
export declare const REL_MISSIONS_PREFIX: ".gitagent/missions/";
|
|
3
|
-
export {
|
|
3
|
+
export { ENV_PLANNER_EMAILS, parsePlannerEmailsFromEnv } from "./planner-identity.js";
|
|
4
4
|
export declare const ENV_MSN_SCAN_DEPTH: "GXT_MSN_SCAN_DEPTH";
|
|
5
5
|
export declare const DEFAULT_MSN_SCAN_DEPTH = 200;
|
|
6
6
|
/** Resolve git-proof scan depth: explicit option, then env, then default. */
|
|
@@ -24,18 +24,20 @@ export declare function commitSubjectHasMsnPrefix(subject: string, msnId: string
|
|
|
24
24
|
export declare function listMsnSubjectCommits(root: string, msnId: string, scanDepth?: number): MsnCommitRow[];
|
|
25
25
|
/** Paths changed in commit `hash` (repo-relative forward slashes). */
|
|
26
26
|
export declare function listCommitChangedPaths(root: string, hash: string): string[];
|
|
27
|
-
export interface
|
|
27
|
+
export interface PlannerMissionProofOptions {
|
|
28
28
|
/** Max commits to scan in `git log` (default 200). */
|
|
29
29
|
scanDepth?: number;
|
|
30
30
|
/** When set, must match parser-resolved mission MSN (avoids re-resolving identity from disk). */
|
|
31
31
|
msnId?: string;
|
|
32
|
+
/** Collect non-fatal planner_signature warn-tier messages (verify). */
|
|
33
|
+
warnings?: string[];
|
|
32
34
|
}
|
|
33
35
|
/**
|
|
34
36
|
* Forensic gate (v0.6.2): MSN is read from the mission file; the most recent
|
|
35
|
-
*
|
|
37
|
+
* Planner-authored commit whose subject starts with `[MSN-XXXX]` must modify
|
|
36
38
|
* that mission path. Returns the resolved MSN id.
|
|
37
39
|
*/
|
|
38
|
-
export declare function
|
|
40
|
+
export declare function assertPlannerMissionProof(root: string, missionAbsolutePath: string, options?: PlannerMissionProofOptions): string;
|
|
39
41
|
/** Non-throwing git-proof check for onboarding/tutorial flows. */
|
|
40
|
-
export declare function
|
|
42
|
+
export declare function plannerMissionStamped(root: string, missionAbsolutePath: string, options?: PlannerMissionProofOptions): boolean;
|
|
41
43
|
//# sourceMappingURL=git-proof.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-proof.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/git-proof.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git-proof.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/git-proof.ts"],"names":[],"mappings":"AAyBA,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,EAAG,qBAA8B,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAEtF,eAAO,MAAM,kBAAkB,EAAG,oBAA6B,CAAC;AAChE,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAY7D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAUzF;AAED,wBAAgB,6BAA6B,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAS9E;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKjF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,YAAY,EAAE,CA0BhB;AAMD,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAW3E;AAWD,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AA2BD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,0BAA0B,GACnC,MAAM,CAyER;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAOT"}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import {
|
|
2
|
+
import { GIT_CONFIG_PLANNER_EMAILS } from "./config-namespace.js";
|
|
3
3
|
import { CLI_NAME, MSN_ID_PATTERN } from "./constants.js";
|
|
4
4
|
import { toPosixRel } from "./cli-io.js";
|
|
5
5
|
import { gitRun } from "./git.js";
|
|
6
6
|
import { hintGitProof } from "./fix-hints.js";
|
|
7
7
|
import { GapmanUserError } from "./errors.js";
|
|
8
8
|
import { extractMsnIdFromMissionPath } from "./missions/parser.js";
|
|
9
|
-
import {
|
|
9
|
+
import { resolvePlannerEmails } from "./planner-identity.js";
|
|
10
|
+
import { loadGxtConfig, resolvePlannerSignatureTier } from "./gxt-config.js";
|
|
11
|
+
import { checkPlannerStampSignature } from "./planner-signature.js";
|
|
12
|
+
import { logWarn } from "./cli-io.js";
|
|
10
13
|
function throwGitProofError(code, detail, ctx = {}) {
|
|
11
14
|
throw new GapmanUserError(code, `${CLI_NAME} verify: git-proof: ${code} — ${detail}`, hintGitProof(code, ctx));
|
|
12
15
|
}
|
|
13
16
|
/** Missions verified by `gantry verify` must live under this repo-relative prefix. */
|
|
14
17
|
export const REL_MISSIONS_PREFIX = ".gitagent/missions/";
|
|
15
|
-
export {
|
|
18
|
+
export { ENV_PLANNER_EMAILS, parsePlannerEmailsFromEnv } from "./planner-identity.js";
|
|
16
19
|
export const ENV_MSN_SCAN_DEPTH = "GXT_MSN_SCAN_DEPTH";
|
|
17
20
|
export const DEFAULT_MSN_SCAN_DEPTH = 200;
|
|
18
21
|
/** Resolve git-proof scan depth: explicit option, then env, then default. */
|
|
@@ -102,19 +105,38 @@ export function listCommitChangedPaths(root, hash) {
|
|
|
102
105
|
.map((l) => normalizeChangedPath(l))
|
|
103
106
|
.filter((l) => l.length > 0);
|
|
104
107
|
}
|
|
105
|
-
function
|
|
106
|
-
return
|
|
108
|
+
function isPlannerEmail(authorEmail, plannerEmails) {
|
|
109
|
+
return plannerEmails.includes(authorEmail.trim().toLowerCase());
|
|
107
110
|
}
|
|
108
111
|
function commitTouchesMission(changed, repoRelMission) {
|
|
109
112
|
const normMission = repoRelMission.replace(/\\/g, "/");
|
|
110
113
|
return changed.some((p) => p.replace(/\\/g, "/") === normMission);
|
|
111
114
|
}
|
|
115
|
+
function enforcePlannerStampSignature(root, stamp, ctx, options) {
|
|
116
|
+
const signatureTier = resolvePlannerSignatureTier(loadGxtConfig(root));
|
|
117
|
+
if (signatureTier === "off")
|
|
118
|
+
return;
|
|
119
|
+
const sig = checkPlannerStampSignature(root, stamp.hash);
|
|
120
|
+
if (sig.ok)
|
|
121
|
+
return;
|
|
122
|
+
const detail = `Planner stamp ${stamp.hash} is unsigned (git %G?=${sig.status})`;
|
|
123
|
+
if (signatureTier === "require") {
|
|
124
|
+
throwGitProofError("PLANNER_STAMP_UNSIGNED", detail, {
|
|
125
|
+
...ctx,
|
|
126
|
+
stampHash: stamp.hash,
|
|
127
|
+
stampSubject: stamp.subject.trim(),
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
const warning = `${CLI_NAME} verify: ${detail}`;
|
|
131
|
+
options?.warnings?.push(warning);
|
|
132
|
+
logWarn(warning);
|
|
133
|
+
}
|
|
112
134
|
/**
|
|
113
135
|
* Forensic gate (v0.6.2): MSN is read from the mission file; the most recent
|
|
114
|
-
*
|
|
136
|
+
* Planner-authored commit whose subject starts with `[MSN-XXXX]` must modify
|
|
115
137
|
* that mission path. Returns the resolved MSN id.
|
|
116
138
|
*/
|
|
117
|
-
export function
|
|
139
|
+
export function assertPlannerMissionProof(root, missionAbsolutePath, options) {
|
|
118
140
|
const msnId = options?.msnId && MSN_ID_PATTERN.test(options.msnId)
|
|
119
141
|
? options.msnId
|
|
120
142
|
: extractMsnIdFromMissionPath(missionAbsolutePath);
|
|
@@ -122,10 +144,10 @@ export function assertTeacherMissionProof(root, missionAbsolutePath, options) {
|
|
|
122
144
|
if (!msnId || !MSN_ID_PATTERN.test(msnId)) {
|
|
123
145
|
throwGitProofError("MISSION_MISSING_MSN", "The mission file is missing a valid [MSN-XXXX] identifier (YAML/frontmatter msn_id or msnId, line-start [MSN-NNNN], or # Mission: line).", { root, missionPath });
|
|
124
146
|
}
|
|
125
|
-
const
|
|
126
|
-
const
|
|
127
|
-
if (
|
|
128
|
-
throwGitProofError("
|
|
147
|
+
const plannerIdentity = resolvePlannerEmails(root);
|
|
148
|
+
const plannerEmails = plannerIdentity.emails;
|
|
149
|
+
if (plannerEmails.length === 0) {
|
|
150
|
+
throwGitProofError("PLANNER_IDENTITY_UNCONFIGURED", "No Planner allowlist configured for this repository.", { root, missionPath, msnId });
|
|
129
151
|
}
|
|
130
152
|
const repoRelMission = missionPathRepoRelative(root, missionAbsolutePath);
|
|
131
153
|
assertMissionUnderMissionsDir(repoRelMission);
|
|
@@ -133,17 +155,17 @@ export function assertTeacherMissionProof(root, missionAbsolutePath, options) {
|
|
|
133
155
|
if (rows.length === 0) {
|
|
134
156
|
throwGitProofError("NO_MSN_COMMITS", `No commits found starting with [${msnId}]. Did you commit the mission?`, { root, missionPath, msnId, repoRelMission });
|
|
135
157
|
}
|
|
136
|
-
const stamp = rows.find((r) =>
|
|
158
|
+
const stamp = rows.find((r) => isPlannerEmail(r.authorEmail, plannerEmails));
|
|
137
159
|
if (!stamp) {
|
|
138
160
|
const latest = rows[0];
|
|
139
|
-
throwGitProofError("
|
|
140
|
-
`Add that email to .gitagent/foreman/
|
|
161
|
+
throwGitProofError("NO_PLANNER_MSN_COMMIT", `The legislation was committed by ${JSON.stringify(latest.authorEmail)}, who is not in the Planner allowlist (${plannerIdentity.detail}). ` +
|
|
162
|
+
`Add that email to .gitagent/foreman/PLANNER.allowlist.local, git config ${GIT_CONFIG_PLANNER_EMAILS}, or run ${CLI_NAME} planner set.`, { root, missionPath, msnId, latestAuthorEmail: latest.authorEmail });
|
|
141
163
|
}
|
|
142
164
|
const changed = listCommitChangedPaths(root, stamp.hash);
|
|
143
165
|
if (!commitTouchesMission(changed, repoRelMission)) {
|
|
144
|
-
throwGitProofError("
|
|
145
|
-
`The stamp is the newest (scanning backward) commit authored by a
|
|
146
|
-
`Either add a newer
|
|
166
|
+
throwGitProofError("MISSION_FILE_NOT_MODIFIED_BY_PLANNER", `The Planner stamp for [${msnId}] is commit ${stamp.hash}: ${stamp.subject.trim()}; it did not change this mission file (${repoRelMission}). ` +
|
|
167
|
+
`The stamp is the newest (scanning backward) commit authored by a Planner allowlist email (${plannerIdentity.detail}) whose subject begins with [${msnId}]. ` +
|
|
168
|
+
`Either add a newer Planner commit with that subject that includes ${repoRelMission}, or reuse a distinct MSN whose only qualifying commits touch this file.`, {
|
|
147
169
|
root,
|
|
148
170
|
missionPath,
|
|
149
171
|
msnId,
|
|
@@ -152,12 +174,13 @@ export function assertTeacherMissionProof(root, missionAbsolutePath, options) {
|
|
|
152
174
|
stampSubject: stamp.subject.trim(),
|
|
153
175
|
});
|
|
154
176
|
}
|
|
177
|
+
enforcePlannerStampSignature(root, stamp, { root, missionPath, msnId, repoRelMission }, options);
|
|
155
178
|
return msnId;
|
|
156
179
|
}
|
|
157
180
|
/** Non-throwing git-proof check for onboarding/tutorial flows. */
|
|
158
|
-
export function
|
|
181
|
+
export function plannerMissionStamped(root, missionAbsolutePath, options) {
|
|
159
182
|
try {
|
|
160
|
-
|
|
183
|
+
assertPlannerMissionProof(root, missionAbsolutePath, options);
|
|
161
184
|
return true;
|
|
162
185
|
}
|
|
163
186
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-proof.js","sourceRoot":"","sources":["../../../src/cli/lib/git-proof.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAA4B,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"git-proof.js","sourceRoot":"","sources":["../../../src/cli/lib/git-proof.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type PlannerSignatureTier = "off" | "warn" | "require";
|
|
2
|
+
export declare const PLANNER_SIGNATURE_TIERS: readonly PlannerSignatureTier[];
|
|
3
|
+
export interface GxtConfig {
|
|
4
|
+
planner_signature?: PlannerSignatureTier;
|
|
5
|
+
trusted_automation?: unknown;
|
|
6
|
+
}
|
|
7
|
+
export declare function loadGxtConfig(root: string): GxtConfig;
|
|
8
|
+
export declare function resolvePlannerSignatureTier(config: GxtConfig): PlannerSignatureTier;
|
|
9
|
+
//# sourceMappingURL=gxt-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gxt-config.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gxt-config.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9D,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EAA+B,CAAC;AAEnG,MAAM,WAAW,SAAS;IACxB,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;IACzC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CASrD;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,oBAAoB,CAGnF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
export const PLANNER_SIGNATURE_TIERS = ["off", "warn", "require"];
|
|
4
|
+
export function loadGxtConfig(root) {
|
|
5
|
+
const configPath = path.join(root, ".gitagent", "config.json");
|
|
6
|
+
if (!fs.existsSync(configPath))
|
|
7
|
+
return {};
|
|
8
|
+
try {
|
|
9
|
+
const parsed = JSON.parse(fs.readFileSync(configPath, "utf8"));
|
|
10
|
+
return parsed ?? {};
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return {};
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function resolvePlannerSignatureTier(config) {
|
|
17
|
+
const tier = config.planner_signature ?? "off";
|
|
18
|
+
return PLANNER_SIGNATURE_TIERS.includes(tier) ? tier : "off";
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=gxt-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gxt-config.js","sourceRoot":"","sources":["../../../src/cli/lib/gxt-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,MAAM,CAAC,MAAM,uBAAuB,GAAoC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAOnG,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IAC/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAc,CAAC;QAC5E,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAiB;IAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,IAAI,KAAK,CAAC;IAC/C,OAAO,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/D,CAAC"}
|
|
@@ -20,6 +20,8 @@ export declare const GXT_ERROR: {
|
|
|
20
20
|
readonly VERIFY_FAILED: "GXT_VERIFY_FAILED";
|
|
21
21
|
readonly PARSE_ERROR: "GXT_PARSE_ERROR";
|
|
22
22
|
readonly INVALID_ARGUMENT: "GXT_INVALID_ARGUMENT";
|
|
23
|
+
readonly MCP_WRITE_DENIED: "GXT_MCP_WRITE_DENIED";
|
|
24
|
+
readonly PLANNER_STAMP_UNSIGNED: "GXT_PLANNER_STAMP_UNSIGNED";
|
|
23
25
|
};
|
|
24
26
|
export type GxtErrorCode = (typeof GXT_ERROR)[keyof typeof GXT_ERROR];
|
|
25
27
|
/** 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;;;;;;;;;;;;;;;;;;;;;;;CAuBZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AA6BtE,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"}
|
|
@@ -20,15 +20,18 @@ export const GXT_ERROR = {
|
|
|
20
20
|
VERIFY_FAILED: "GXT_VERIFY_FAILED",
|
|
21
21
|
PARSE_ERROR: "GXT_PARSE_ERROR",
|
|
22
22
|
INVALID_ARGUMENT: "GXT_INVALID_ARGUMENT",
|
|
23
|
+
MCP_WRITE_DENIED: "GXT_MCP_WRITE_DENIED",
|
|
24
|
+
PLANNER_STAMP_UNSIGNED: "GXT_PLANNER_STAMP_UNSIGNED",
|
|
23
25
|
};
|
|
24
26
|
const GIT_PROOF_TO_GXT = {
|
|
25
27
|
MISSION_MISSING_MSN: GXT_ERROR.MISSION_UNSTAMPED,
|
|
26
|
-
|
|
28
|
+
PLANNER_IDENTITY_UNCONFIGURED: GXT_ERROR.MISSION_UNSTAMPED,
|
|
27
29
|
NO_MSN_COMMITS: GXT_ERROR.MISSION_UNSTAMPED,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
NO_PLANNER_MSN_COMMIT: GXT_ERROR.MISSION_UNSTAMPED,
|
|
31
|
+
MISSION_FILE_NOT_MODIFIED_BY_PLANNER: GXT_ERROR.MISSION_UNSTAMPED,
|
|
30
32
|
MISSION_OUTSIDE_MISSIONS_DIR: GXT_ERROR.MISSION_UNSTAMPED,
|
|
31
33
|
MISSION_NO_GATE: GXT_ERROR.MISSION_UNSTAMPED,
|
|
34
|
+
PLANNER_STAMP_UNSIGNED: GXT_ERROR.PLANNER_STAMP_UNSIGNED,
|
|
32
35
|
};
|
|
33
36
|
/** Explicit mapping for non-git-proof GapmanUserError codes. */
|
|
34
37
|
const GAPMAN_USER_ERROR_TO_GXT = {
|
|
@@ -43,6 +46,7 @@ const GAPMAN_USER_ERROR_TO_GXT = {
|
|
|
43
46
|
RUNTIME_EXEC_FAILED: GXT_ERROR.RUNTIME_EXEC_FAILED,
|
|
44
47
|
RUNTIME_ENV_FAILED: GXT_ERROR.VERIFY_FAILED,
|
|
45
48
|
INVALID_ARGUMENT: GXT_ERROR.INVALID_ARGUMENT,
|
|
49
|
+
MCP_WRITE_DENIED: GXT_ERROR.MCP_WRITE_DENIED,
|
|
46
50
|
};
|
|
47
51
|
/** Map runtime exec / MCP error codes to stable GXT codes. */
|
|
48
52
|
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,mBAAmB,EAAE,yBAAyB;IAC9C,yBAAyB,EAAE,+BAA+B;IAC1D,sBAAsB,EAAE,4BAA4B;IACpD,cAAc,EAAE,oBAAoB;IACpC,mBAAmB,EAAE,yBAAyB;IAC9C,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,gBAAgB,EAAE,sBAAsB;
|
|
1
|
+
{"version":3,"file":"gxt-error-codes.js","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ export function composeArchitecturePointer(profile) {
|
|
|
24
24
|
schema_version: "0.1.0",
|
|
25
25
|
kind: "unset",
|
|
26
26
|
location: "",
|
|
27
|
-
read_hint: "Architecture source not selected. Do NOT invent layer layout, module boundaries, or dependency rules. Read .gitagent/
|
|
27
|
+
read_hint: "Architecture source not selected. Do NOT invent layer layout, module boundaries, or dependency rules. Read .gitagent/planner/ARCHITECTURE-DISCOVERY.md and ask the user structured questions before any application code changes.",
|
|
28
28
|
discovery: { skill: REL_ARCHITECTURE_DISCOVERY_SKILL },
|
|
29
29
|
};
|
|
30
30
|
}
|
|
@@ -115,7 +115,7 @@ async function promptInitInfrastructure(partial, base) {
|
|
|
115
115
|
return null;
|
|
116
116
|
}
|
|
117
117
|
const gitHooks = await p.confirm({
|
|
118
|
-
message: "Install .githooks (pre-commit TMVC guard, pre-push verify, post-checkout
|
|
118
|
+
message: "Install .githooks (pre-commit TMVC guard, pre-push verify, post-checkout EXECUTOR_LOG)?",
|
|
119
119
|
initialValue: partial.gitHooks ?? base.gitHooks,
|
|
120
120
|
});
|
|
121
121
|
if (wizardCancelled(gitHooks)) {
|