@jeger-ai/opengantry 2.3.0 → 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.
Files changed (230) hide show
  1. package/README.md +60 -59
  2. package/dist/cli/commands/context-request.d.ts +2 -2
  3. package/dist/cli/commands/context-request.d.ts.map +1 -1
  4. package/dist/cli/commands/context-request.js +13 -13
  5. package/dist/cli/commands/context-request.js.map +1 -1
  6. package/dist/cli/commands/init.js +2 -2
  7. package/dist/cli/commands/onboarding.js +4 -4
  8. package/dist/cli/commands/onboarding.js.map +1 -1
  9. package/dist/cli/commands/planner.d.ts +11 -0
  10. package/dist/cli/commands/{teacher.d.ts.map → planner.d.ts.map} +1 -1
  11. package/dist/cli/commands/{teacher.js → planner.js} +11 -11
  12. package/dist/cli/commands/{teacher.js.map → planner.js.map} +1 -1
  13. package/dist/cli/commands/runtime.d.ts +1 -1
  14. package/dist/cli/commands/runtime.d.ts.map +1 -1
  15. package/dist/cli/commands/runtime.js +4 -4
  16. package/dist/cli/commands/runtime.js.map +1 -1
  17. package/dist/cli/lib/audience-output.d.ts +1 -1
  18. package/dist/cli/lib/audience-output.d.ts.map +1 -1
  19. package/dist/cli/lib/audience-output.js +16 -16
  20. package/dist/cli/lib/audience-output.js.map +1 -1
  21. package/dist/cli/lib/break-glass.js +1 -1
  22. package/dist/cli/lib/command-reporter.d.ts.map +1 -1
  23. package/dist/cli/lib/command-reporter.js +9 -4
  24. package/dist/cli/lib/command-reporter.js.map +1 -1
  25. package/dist/cli/lib/config-namespace.d.ts +2 -2
  26. package/dist/cli/lib/config-namespace.js +2 -2
  27. package/dist/cli/lib/constants.d.ts +8 -8
  28. package/dist/cli/lib/constants.d.ts.map +1 -1
  29. package/dist/cli/lib/constants.js +8 -8
  30. package/dist/cli/lib/constants.js.map +1 -1
  31. package/dist/cli/lib/context-request.d.ts +4 -4
  32. package/dist/cli/lib/context-request.d.ts.map +1 -1
  33. package/dist/cli/lib/context-request.js +11 -11
  34. package/dist/cli/lib/context-request.js.map +1 -1
  35. package/dist/cli/lib/doctor-core.d.ts.map +1 -1
  36. package/dist/cli/lib/doctor-core.js +49 -22
  37. package/dist/cli/lib/doctor-core.js.map +1 -1
  38. package/dist/cli/lib/doctor-types.d.ts +2 -2
  39. package/dist/cli/lib/errors.js +6 -6
  40. package/dist/cli/lib/errors.js.map +1 -1
  41. package/dist/cli/lib/executor-log-integrity.d.ts +4 -0
  42. package/dist/cli/lib/executor-log-integrity.d.ts.map +1 -0
  43. package/dist/cli/lib/{worker-log-integrity.js → executor-log-integrity.js} +8 -8
  44. package/dist/cli/lib/executor-log-integrity.js.map +1 -0
  45. package/dist/cli/lib/{worker-log-line-map.d.ts → executor-log-line-map.d.ts} +4 -4
  46. package/dist/cli/lib/executor-log-line-map.d.ts.map +1 -0
  47. package/dist/cli/lib/{worker-log-line-map.js → executor-log-line-map.js} +4 -4
  48. package/dist/cli/lib/executor-log-line-map.js.map +1 -0
  49. package/dist/cli/lib/file-merge-gxt.js +1 -1
  50. package/dist/cli/lib/file-merge-gxt.js.map +1 -1
  51. package/dist/cli/lib/fix-hints.d.ts +6 -6
  52. package/dist/cli/lib/fix-hints.d.ts.map +1 -1
  53. package/dist/cli/lib/fix-hints.js +36 -30
  54. package/dist/cli/lib/fix-hints.js.map +1 -1
  55. package/dist/cli/lib/git-metrics.js +10 -10
  56. package/dist/cli/lib/git-metrics.js.map +1 -1
  57. package/dist/cli/lib/git-proof.d.ts +7 -5
  58. package/dist/cli/lib/git-proof.d.ts.map +1 -1
  59. package/dist/cli/lib/git-proof.js +42 -19
  60. package/dist/cli/lib/git-proof.js.map +1 -1
  61. package/dist/cli/lib/gxt-config.d.ts +9 -0
  62. package/dist/cli/lib/gxt-config.d.ts.map +1 -0
  63. package/dist/cli/lib/gxt-config.js +20 -0
  64. package/dist/cli/lib/gxt-config.js.map +1 -0
  65. package/dist/cli/lib/gxt-error-codes.d.ts +2 -0
  66. package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
  67. package/dist/cli/lib/gxt-error-codes.js +7 -3
  68. package/dist/cli/lib/gxt-error-codes.js.map +1 -1
  69. package/dist/cli/lib/init-compose.js +1 -1
  70. package/dist/cli/lib/init-interactive.js +1 -1
  71. package/dist/cli/lib/init-interactive.js.map +1 -1
  72. package/dist/cli/lib/init-tutorial.js +14 -14
  73. package/dist/cli/lib/init-tutorial.js.map +1 -1
  74. package/dist/cli/lib/kpi-engine.d.ts +1 -1
  75. package/dist/cli/lib/kpi-engine.d.ts.map +1 -1
  76. package/dist/cli/lib/kpi-engine.js +11 -11
  77. package/dist/cli/lib/kpi-engine.js.map +1 -1
  78. package/dist/cli/lib/legislate-forbidden-zone.d.ts +1 -1
  79. package/dist/cli/lib/legislate-forbidden-zone.js +1 -1
  80. package/dist/cli/lib/legislate.js +4 -4
  81. package/dist/cli/lib/mcp-governance.d.ts +2 -2
  82. package/dist/cli/lib/mcp-governance.d.ts.map +1 -1
  83. package/dist/cli/lib/mcp-governance.js +40 -10
  84. package/dist/cli/lib/mcp-governance.js.map +1 -1
  85. package/dist/cli/lib/mcp-tools-register.js +3 -3
  86. package/dist/cli/lib/mcp-tools-register.js.map +1 -1
  87. package/dist/cli/lib/mcp-upgrade.d.ts.map +1 -1
  88. package/dist/cli/lib/mcp-upgrade.js +8 -0
  89. package/dist/cli/lib/mcp-upgrade.js.map +1 -1
  90. package/dist/cli/lib/mcp-write-guard.d.ts +20 -0
  91. package/dist/cli/lib/mcp-write-guard.d.ts.map +1 -0
  92. package/dist/cli/lib/mcp-write-guard.js +82 -0
  93. package/dist/cli/lib/mcp-write-guard.js.map +1 -0
  94. package/dist/cli/lib/missions/formatter.d.ts +1 -1
  95. package/dist/cli/lib/missions/formatter.js +1 -1
  96. package/dist/cli/lib/onboarding-flow.js +1 -1
  97. package/dist/cli/lib/out-of-scope-hint.js +1 -1
  98. package/dist/cli/lib/perimeter.d.ts +1 -1
  99. package/dist/cli/lib/perimeter.js +10 -10
  100. package/dist/cli/lib/planner-identity.d.ts +23 -0
  101. package/dist/cli/lib/{teacher-identity.d.ts.map → planner-identity.d.ts.map} +1 -1
  102. package/dist/cli/lib/{teacher-identity.js → planner-identity.js} +34 -34
  103. package/dist/cli/lib/{teacher-identity.js.map → planner-identity.js.map} +1 -1
  104. package/dist/cli/lib/planner-signature.d.ts +11 -0
  105. package/dist/cli/lib/planner-signature.d.ts.map +1 -0
  106. package/dist/cli/lib/planner-signature.js +17 -0
  107. package/dist/cli/lib/planner-signature.js.map +1 -0
  108. package/dist/cli/lib/program-audience-hook.js +1 -1
  109. package/dist/cli/lib/program-audience-hook.js.map +1 -1
  110. package/dist/cli/lib/register-proposals.js +1 -1
  111. package/dist/cli/lib/runtime-env.d.ts +3 -3
  112. package/dist/cli/lib/runtime-env.d.ts.map +1 -1
  113. package/dist/cli/lib/runtime-env.js +4 -4
  114. package/dist/cli/lib/runtime-env.js.map +1 -1
  115. package/dist/cli/lib/runtime-exec.d.ts +4 -4
  116. package/dist/cli/lib/runtime-exec.d.ts.map +1 -1
  117. package/dist/cli/lib/runtime-exec.js +14 -14
  118. package/dist/cli/lib/runtime-exec.js.map +1 -1
  119. package/dist/cli/lib/staged-tmvc-guard.js +1 -1
  120. package/dist/cli/lib/staged-tmvc-guard.js.map +1 -1
  121. package/dist/cli/lib/start-orchestration.js +7 -7
  122. package/dist/cli/lib/start-orchestration.js.map +1 -1
  123. package/dist/cli/lib/status-report.d.ts +1 -1
  124. package/dist/cli/lib/status-report.js +7 -7
  125. package/dist/cli/lib/status-report.js.map +1 -1
  126. package/dist/cli/lib/surgeon.d.ts +3 -3
  127. package/dist/cli/lib/surgeon.d.ts.map +1 -1
  128. package/dist/cli/lib/surgeon.js +7 -7
  129. package/dist/cli/lib/surgeon.js.map +1 -1
  130. package/dist/cli/lib/surgeons/registry.d.ts +1 -1
  131. package/dist/cli/lib/surgeons/registry.d.ts.map +1 -1
  132. package/dist/cli/lib/telemetry-log.d.ts +1 -1
  133. package/dist/cli/lib/telemetry-log.d.ts.map +1 -1
  134. package/dist/cli/lib/telemetry-log.js +4 -4
  135. package/dist/cli/lib/telemetry-log.js.map +1 -1
  136. package/dist/cli/lib/tmvc-path.d.ts +1 -1
  137. package/dist/cli/lib/tmvc-path.d.ts.map +1 -1
  138. package/dist/cli/lib/tmvc-path.js +1 -1
  139. package/dist/cli/lib/tmvc-path.js.map +1 -1
  140. package/dist/cli/lib/trace.d.ts +8 -8
  141. package/dist/cli/lib/trace.d.ts.map +1 -1
  142. package/dist/cli/lib/trace.js +21 -21
  143. package/dist/cli/lib/trace.js.map +1 -1
  144. package/dist/cli/lib/triage-logic.js +1 -1
  145. package/dist/cli/lib/types.d.ts +1 -1
  146. package/dist/cli/lib/upgrade-apply.d.ts.map +1 -1
  147. package/dist/cli/lib/upgrade-apply.js +14 -2
  148. package/dist/cli/lib/upgrade-apply.js.map +1 -1
  149. package/dist/cli/lib/upgrade-plan.js +3 -3
  150. package/dist/cli/lib/verify-engine.d.ts +6 -5
  151. package/dist/cli/lib/verify-engine.d.ts.map +1 -1
  152. package/dist/cli/lib/verify-engine.js +40 -30
  153. package/dist/cli/lib/verify-engine.js.map +1 -1
  154. package/dist/cli/lib/verify-failure-normalize-phases.js +1 -1
  155. package/dist/cli/lib/verify-failure-normalize-phases.js.map +1 -1
  156. package/dist/cli/lib/verify-hints.d.ts +1 -1
  157. package/dist/cli/lib/verify-hints.d.ts.map +1 -1
  158. package/dist/cli/lib/verify-hints.js +16 -16
  159. package/dist/cli/lib/verify-hints.js.map +1 -1
  160. package/dist/cli/lib/verify-payload-types.d.ts +1 -0
  161. package/dist/cli/lib/verify-payload-types.d.ts.map +1 -1
  162. package/dist/cli/lib/verify-payload.d.ts.map +1 -1
  163. package/dist/cli/lib/verify-payload.js +3 -0
  164. package/dist/cli/lib/verify-payload.js.map +1 -1
  165. package/dist/cli/lib/verify-presenters.js +3 -3
  166. package/dist/cli/lib/verify-presenters.js.map +1 -1
  167. package/dist/cli/lib/version.gen.d.ts +1 -1
  168. package/dist/cli/lib/version.gen.js +1 -1
  169. package/dist/cli/program-core.js +4 -4
  170. package/dist/cli/program-core.js.map +1 -1
  171. package/dist/cli/program-mission.js +15 -15
  172. package/dist/cli/program-mission.js.map +1 -1
  173. package/dist/cli/program-planner.d.ts +3 -0
  174. package/dist/cli/program-planner.d.ts.map +1 -0
  175. package/dist/cli/program-planner.js +19 -0
  176. package/dist/cli/{program-teacher.js.map → program-planner.js.map} +1 -1
  177. package/dist/cli/program-workflow.js +7 -7
  178. package/dist/cli/program-workflow.js.map +1 -1
  179. package/dist/cli/program.js +3 -3
  180. package/dist/cli/program.js.map +1 -1
  181. package/package.json +1 -1
  182. package/templates/.cursor/hooks/gxt-before-shell.sh +4 -4
  183. package/templates/.cursor/hooks/gxt-session-start.sh +2 -2
  184. package/templates/.cursor/rules/opengantry-gxt-substrate.mdc +4 -4
  185. package/templates/.gitagent/ARCHITECTURE.pointer.json +2 -2
  186. package/templates/.gitagent/foreman/MANIFEST.json +3 -3
  187. package/templates/.gitagent/foreman/PLANNER.allowlist.example +4 -0
  188. package/templates/.gitagent/missions/README.md +1 -1
  189. package/templates/.gitagent/{teacher → planner}/ARCHITECTURE-ACCESS.md +3 -3
  190. package/templates/.gitagent/{teacher → planner}/ARCHITECTURE-DISCOVERY.md +2 -2
  191. package/templates/.gitagent/{teacher/WORKER_LOG.template.md → planner/EXECUTOR_LOG.template.md} +2 -2
  192. package/templates/.gitagent/{teacher → planner}/MISSION-ARCHITECT.md +11 -11
  193. package/templates/.gitagent/{teacher → planner}/RULES.md +4 -4
  194. package/templates/.githooks/post-checkout +4 -4
  195. package/templates/.githooks/pre-push +1 -1
  196. package/templates/.github/workflows/gxt-validate.yml +1 -1
  197. package/templates/.gitignore.gxt +1 -1
  198. package/templates/.prettierignore.gxt +1 -1
  199. package/templates/AGENTS.md +6 -6
  200. package/templates/docs/ARCHITECTURE.md +2 -2
  201. package/templates/integrations/aider/.aider.conf.yml +1 -1
  202. package/templates/integrations/antigravity/.agent/rules/gxt.md +1 -1
  203. package/templates/integrations/asset-catalog.json +7 -7
  204. package/templates/integrations/claude-code/CLAUDE.md +1 -1
  205. package/templates/integrations/cline/.clinerules/gxt.md +1 -1
  206. package/templates/integrations/compatibility.json +1 -1
  207. package/templates/integrations/junie/.junie/guidelines.md +1 -1
  208. package/templates/integrations/opencode/opencode.json +1 -1
  209. package/templates/integrations/openhands/.openhands/microagents/gxt.md +1 -1
  210. package/templates/integrations/recipes/_footer.md +7 -7
  211. package/templates/integrations/recipes/_preamble.md +7 -7
  212. package/templates/integrations/recipes/claude-code.md +1 -1
  213. package/templates/integrations/recipes/cursor.md +2 -2
  214. package/templates/scripts/gxt-manifest-lib.mjs +1 -1
  215. package/templates/scripts/gxt-runtime-env.sh +1 -1
  216. package/templates/skills/gantry.md +1 -1
  217. package/templates/skills/substrate.md +1 -1
  218. package/dist/cli/commands/teacher.d.ts +0 -11
  219. package/dist/cli/lib/teacher-identity.d.ts +0 -23
  220. package/dist/cli/lib/worker-log-integrity.d.ts +0 -4
  221. package/dist/cli/lib/worker-log-integrity.d.ts.map +0 -1
  222. package/dist/cli/lib/worker-log-integrity.js.map +0 -1
  223. package/dist/cli/lib/worker-log-line-map.d.ts.map +0 -1
  224. package/dist/cli/lib/worker-log-line-map.js.map +0 -1
  225. package/dist/cli/program-teacher.d.ts +0 -3
  226. package/dist/cli/program-teacher.d.ts.map +0 -1
  227. package/dist/cli/program-teacher.js +0 -19
  228. package/templates/.gitagent/foreman/TEACHER.allowlist.example +0 -4
  229. /package/templates/.gitagent/{teacher → planner}/KPI-REPORT.schema.yaml +0 -0
  230. /package/templates/.gitagent/{teacher → planner}/MISSION.schema.yaml +0 -0
@@ -30,7 +30,7 @@ export function resolveSkillKeyForLegislation(opts) {
30
30
  return {
31
31
  ok: false,
32
32
  triage,
33
- reason: `triage escalation — ${triage.reason}. Pass --skill-key <manifest skill> after Teacher assigns scope.`,
33
+ reason: `triage escalation — ${triage.reason}. Pass --skill-key <manifest skill> after Planner assigns scope.`,
34
34
  kind: "escalated",
35
35
  };
36
36
  }
@@ -60,7 +60,7 @@ function buildYamlMissionBody(opts) {
60
60
  doc.gate_success_substring = opts.gate_success_substring;
61
61
  }
62
62
  return buildMissionYamlScaffold({
63
- header: `# OpenGantry mission scaffold (Teacher: fill gate, TMVC narrowing, trace rows).\n` +
63
+ header: `# OpenGantry mission scaffold (Planner: fill gate, TMVC narrowing, trace rows).\n` +
64
64
  `# Legislated intent: ${opts.intent.trim().replace(/\n/g, " ")}\n`,
65
65
  doc,
66
66
  });
@@ -150,7 +150,7 @@ export function runLegislate(options) {
150
150
  if (!skill_key)
151
151
  return { ok: false, exitCode: 2 };
152
152
  for (const zone of findForbiddenZoneHits(manifest, skill_key, options.intent)) {
153
- logWarn(`legislate: intent may touch forbidden zone ${zone} for skill ${skill_key} — narrow TMVC in mission or confirm Teacher override`);
153
+ logWarn(`legislate: intent may touch forbidden zone ${zone} for skill ${skill_key} — narrow TMVC in mission or confirm Planner override`);
154
154
  }
155
155
  const absolute = resolveLegislateOutputPath(root, options, msnId);
156
156
  if (!absolute)
@@ -172,7 +172,7 @@ export function runLegislate(options) {
172
172
  const missionRel = formatRepoRelative(root, absolute);
173
173
  if (!options.silent) {
174
174
  logInfo(`${CLI_NAME} legislate: wrote ${missionRel}`);
175
- logInfo(`Teacher: git commit modifying this mission with subject starting [${msnId}] from an allowlisted Teacher email (gantry teacher show).`);
175
+ logInfo(`Planner: git commit modifying this mission with subject starting [${msnId}] from an allowlisted Planner email (gantry planner show).`);
176
176
  }
177
177
  return { ok: true, missionAbs: absolute, missionRel };
178
178
  }
@@ -19,7 +19,7 @@ export interface DraftLegislationResult {
19
19
  draft_token: string;
20
20
  chat_message_to_user: string;
21
21
  expires_at: string;
22
- requires_teacher_commit: true;
22
+ requires_planner_commit: true;
23
23
  }
24
24
  export interface ExecuteLegislationResult {
25
25
  status: "pending_signature";
@@ -28,7 +28,7 @@ export interface ExecuteLegislationResult {
28
28
  suggested_human_action: string;
29
29
  commit_message: string;
30
30
  commit_target: string;
31
- requires_teacher_commit: true;
31
+ requires_planner_commit: true;
32
32
  next_tool: "gxt_check_signature";
33
33
  }
34
34
  export interface CheckSignatureResult {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-governance.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/mcp-governance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-governance.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/mcp-governance.ts"],"names":[],"mappings":"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"}
@@ -3,18 +3,34 @@ import path from "node:path";
3
3
  import { formatRepoRelative } from "./cli-io.js";
4
4
  import { MSN_ID_PATTERN } from "./constants.js";
5
5
  import { createDraftToken, DraftTokenError, verifyDraftToken } from "./draft-token.js";
6
- import { assertTeacherMissionProof } from "./git-proof.js";
6
+ import { assertPlannerMissionProof } from "./git-proof.js";
7
7
  import { runLegislate } from "./legislate.js";
8
8
  import { handleRuntimeEnv } from "./mcp-runtime.js";
9
9
  import { pinMissionFile, resolveMissionFilePath } from "./missions/parser.js";
10
10
  import { resolvePinnedMission } from "./missions/parser.js";
11
11
  import { runStartOrchestration } from "./start-orchestration.js";
12
12
  import { GapmanUserError } from "./errors.js";
13
+ import { GXT_ERROR } from "./gxt-error-codes.js";
13
14
  import { manifestHasSkill, resolveManifestSkillKey } from "./skill-key.js";
14
15
  import { loadWorkspace } from "./workspace.js";
16
+ import { assertMcpMissionWritePath, McpWriteDeniedError } from "./mcp-write-guard.js";
15
17
  export function mcpError(code, message, retryable) {
16
18
  return { status: "error", error: { code, message, retryable } };
17
19
  }
20
+ function mcpWriteDenied(err) {
21
+ return mcpError(GXT_ERROR.MCP_WRITE_DENIED, err.message, false);
22
+ }
23
+ function resolveGuardedMissionAbs(root, missionFilePath) {
24
+ try {
25
+ assertMcpMissionWritePath(missionFilePath);
26
+ }
27
+ catch (err) {
28
+ if (err instanceof McpWriteDeniedError)
29
+ return mcpWriteDenied(err);
30
+ throw err;
31
+ }
32
+ return resolveMissionFilePath(root, missionFilePath);
33
+ }
18
34
  function buildDraftChatMessage(input, manifestSkillDesc) {
19
35
  const lines = [
20
36
  "## Proposed GXT mission (draft — not yet written)",
@@ -69,7 +85,7 @@ export function handleDraftLegislation(input) {
69
85
  draft_token: token.draft_token,
70
86
  chat_message_to_user: buildDraftChatMessage(input, manifest.skills[resolveManifestSkillKey(manifest, skillKey)]?.desc),
71
87
  expires_at: token.expires_at,
72
- requires_teacher_commit: true,
88
+ requires_planner_commit: true,
73
89
  };
74
90
  }
75
91
  export function handleExecuteLegislation(draftToken) {
@@ -96,6 +112,14 @@ export function handleExecuteLegislation(draftToken) {
96
112
  return mcpError("LEGISLATE_FAILED", "gantry legislate failed; check skill_key, msn, or output path", true);
97
113
  }
98
114
  const missionRel = formatRepoRelative(root, result.missionAbs);
115
+ try {
116
+ assertMcpMissionWritePath(missionRel);
117
+ }
118
+ catch (err) {
119
+ if (err instanceof McpWriteDeniedError)
120
+ return mcpWriteDenied(err);
121
+ throw err;
122
+ }
99
123
  const escapedTitle = payload.title.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
100
124
  const commitMessage = `[${payload.msn_id}] Legislate ${escapedTitle}`;
101
125
  const suggestedHumanAction = `git add ${missionRel} && git commit -m "${commitMessage}"`;
@@ -106,24 +130,27 @@ export function handleExecuteLegislation(draftToken) {
106
130
  suggested_human_action: suggestedHumanAction,
107
131
  commit_message: commitMessage,
108
132
  commit_target: missionRel,
109
- requires_teacher_commit: true,
133
+ requires_planner_commit: true,
110
134
  next_tool: "gxt_check_signature",
111
135
  };
112
136
  }
113
137
  export function handleCheckSignature(missionFilePath) {
114
138
  const { root } = loadWorkspace();
115
- const missionAbs = resolveMissionFilePath(root, missionFilePath);
139
+ const missionAbsOrErr = resolveGuardedMissionAbs(root, missionFilePath);
140
+ if (typeof missionAbsOrErr !== "string")
141
+ return missionAbsOrErr;
142
+ const missionAbs = missionAbsOrErr;
116
143
  if (!fs.existsSync(missionAbs)) {
117
144
  return mcpError("MISSION_NOT_FOUND", `mission file not found: ${missionFilePath}`, true);
118
145
  }
119
146
  try {
120
- const msnId = assertTeacherMissionProof(root, missionAbs);
147
+ const msnId = assertPlannerMissionProof(root, missionAbs);
121
148
  const rel = formatRepoRelative(root, missionAbs);
122
149
  return {
123
150
  status: "signature_valid",
124
151
  msn_id: msnId,
125
152
  mission_file_path: rel,
126
- message: `Teacher signature valid for ${msnId}. You may pin the mission and begin worker execution.`,
153
+ message: `Planner signature valid for ${msnId}. You may pin the mission and begin executor execution.`,
127
154
  next_tools: ["gxt_pin_mission", "gxt_runtime_env"],
128
155
  };
129
156
  }
@@ -142,7 +169,10 @@ export function handleCheckSignature(missionFilePath) {
142
169
  }
143
170
  export function handlePinMission(missionFilePath) {
144
171
  const { root } = loadWorkspace();
145
- const missionAbs = resolveMissionFilePath(root, missionFilePath);
172
+ const missionAbsOrErr = resolveGuardedMissionAbs(root, missionFilePath);
173
+ if (typeof missionAbsOrErr !== "string")
174
+ return missionAbsOrErr;
175
+ const missionAbs = missionAbsOrErr;
146
176
  if (!fs.existsSync(missionAbs)) {
147
177
  return mcpError("MISSION_NOT_FOUND", `mission file not found: ${missionFilePath}`, true);
148
178
  }
@@ -217,9 +247,9 @@ export function handleStartOrchestration(input) {
217
247
  };
218
248
  if (input.pin_if_needed === true && result.mission_file_path) {
219
249
  const { root } = loadWorkspace();
220
- const missionAbs = resolveMissionFilePath(root, result.mission_file_path);
221
- if (fs.existsSync(missionAbs)) {
222
- payload.pinned_mission = pinMissionFile(root, missionAbs);
250
+ const missionAbsOrErr = resolveGuardedMissionAbs(root, result.mission_file_path);
251
+ if (typeof missionAbsOrErr === "string" && fs.existsSync(missionAbsOrErr)) {
252
+ payload.pinned_mission = pinMissionFile(root, missionAbsOrErr);
223
253
  }
224
254
  }
225
255
  if (input.emit_runtime_env === true && result.mission_file_path) {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-governance.js","sourceRoot":"","sources":["../../../src/cli/lib/mcp-governance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAyB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAA4B,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAuG/C,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,OAAe,EAAE,SAAkB;IACxE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAA4B,EAAE,iBAA0B;IACrF,MAAM,KAAK,GAAG;QACZ,mDAAmD;QACnD,EAAE;QACF,gBAAgB,KAAK,CAAC,KAAK,EAAE;QAC7B,cAAc,KAAK,CAAC,MAAM,EAAE;QAC5B,gBAAgB,KAAK,CAAC,SAAS,EAAE;QACjC,iBAAiB,KAAK,CAAC,YAAY,IAAI;KACxC,CAAC;IACF,IAAI,KAAK,CAAC,sBAAsB,EAAE,IAAI,EAAE,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,mCAAmC,KAAK,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,iBAAiB,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,sBAAsB,iBAAiB,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,CAAC,IAAI,CACR,EAAE,EACF,+HAA+H,EAC/H,EAAE,EACF,sDAAsD,CACvD,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,kBAAkB,CAAC,KAA4B;IACtD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACrF,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,8BAA8B,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAChG,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACzF,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,0BAA0B,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC5F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAA4B;IAE5B,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,UAAU;QAAE,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAE3F,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC1C,OAAO,QAAQ,CACb,eAAe,EACf,sBAAsB,QAAQ,uBAAuB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC/F,IAAI,CACL,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE;QACnC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;QAC3B,SAAS,EAAE,QAAQ;QACnB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;KACrD,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,yBAAyB;QACjC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,oBAAoB,EAAE,qBAAqB,CACzC,KAAK,EACL,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CACnE;QACD,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,uBAAuB,EAAE,IAAI;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,UAAkB;IAElB,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IAEjC,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;YACnC,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,aAAa,GAAqB;QACtC,MAAM,EAAE,OAAO,CAAC,KAAK;QACrB,GAAG,EAAE,OAAO,CAAC,MAAM;QACnB,QAAQ,EAAE,OAAO,CAAC,SAAS;QAC3B,WAAW,EAAE,OAAO,CAAC,YAAY;QACjC,oBAAoB,EAAE,OAAO,CAAC,sBAAsB;KACrD,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC,kBAAkB,EAAE,+DAA+D,EAAE,IAAI,CAAC,CAAC;IAC7G,CAAC;IAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,MAAM,eAAe,YAAY,EAAE,CAAC;IACtE,MAAM,oBAAoB,GAAG,WAAW,UAAU,sBAAsB,aAAa,GAAG,CAAC;IAEzF,OAAO;QACL,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,iBAAiB,EAAE,UAAU;QAC7B,sBAAsB,EAAE,oBAAoB;QAC5C,cAAc,EAAE,aAAa;QAC7B,aAAa,EAAE,UAAU;QACzB,uBAAuB,EAAE,IAAI;QAC7B,SAAS,EAAE,qBAAqB;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,eAAuB;IAEvB,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAEjE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,mBAAmB,EAAE,2BAA2B,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,yBAAyB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjD,OAAO;YACL,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,KAAK;YACb,iBAAiB,EAAE,GAAG;YACtB,OAAO,EAAE,+BAA+B,KAAK,uDAAuD;YACpG,UAAU,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;SACnD,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;YACnC,OAAO;gBACL,MAAM,EAAE,mBAAmB;gBAC3B,MAAM,EAAE,SAAS;gBACjB,iBAAiB,EAAE,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC;gBACvD,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,UAAU,EAAE,EAAE;aACf,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,eAAuB;IACtD,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAEjE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,mBAAmB,EAAE,2BAA2B,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC7C,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,iBAAiB,EAAE,GAAG;QACtB,OAAO,EAAE,0BAA0B,GAAG,EAAE;KACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAiB;IACpD,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,EAAE;QAC1C,QAAQ;QACR,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IAEH,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,gFAAgF;KAC1F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,0BAA0B,CAAC,CAAC;IACpF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACjE,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAsB,CAAC;QAClF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAA8B;IACrE,MAAM,MAAM,GAAG,qBAAqB,CAAC;QACnC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,EAAE,KAAK,CAAC,MAAM;QACjB,QAAQ,EAAE,KAAK,CAAC,SAAS;QACzB,WAAW,EAAE,KAAK,CAAC,YAAY;QAC/B,oBAAoB,EAAE,KAAK,CAAC,sBAAsB;QAClD,YAAY,EAAE,KAAK,CAAC,aAAa,KAAK,KAAK;QAC3C,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,YAAY,EAAE,MAAM,CAAC,UAAU;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAgC;QAC3C,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,YAAY,EAAE,MAAM,CAAC,UAAU;QAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC,iBAAiB,IAAI,SAAS,CAAC;KACrE,CAAC;IAEF,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC7D,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC1E,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,gBAAgB,KAAK,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAChE,OAAO,CAAC,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"mcp-governance.js","sourceRoot":"","sources":["../../../src/cli/lib/mcp-governance.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ function registerLegislationTools(server) {
18
18
  server.tool("gxt_execute_legislation", "Execute gantry legislate using a valid draft_token after explicit human chat approval.", {
19
19
  draft_token: z.string().describe("Token from gxt_draft_legislation"),
20
20
  }, async (args) => jsonText(handleExecuteLegislation(args.draft_token)));
21
- server.tool("gxt_check_signature", "Check whether Teacher git signature exists for a mission file.", {
21
+ server.tool("gxt_check_signature", "Check whether Planner git signature exists for a mission file.", {
22
22
  mission_file_path: z.string().describe("Repo-relative mission YAML path"),
23
23
  }, async (args) => jsonText(handleCheckSignature(args.mission_file_path)));
24
24
  server.tool("gxt_pin_mission", "Pin active mission for runtime env and Cursor sessionStart hooks.", {
@@ -39,9 +39,9 @@ function registerRuntimeTools(server) {
39
39
  mission_file_path: z.string().describe("Repo-relative mission path"),
40
40
  cwd: z.string().optional().describe("Working directory for verifier commands"),
41
41
  }, async (args) => jsonText(handleScan(args.mission_file_path, args.cwd)));
42
- server.tool("gxt_runtime_exec", "Run worker command with mission env + forbidden-zone enforcement.", {
42
+ server.tool("gxt_runtime_exec", "Run executor command with mission env + forbidden-zone enforcement.", {
43
43
  mission_file_path: z.string().describe("Repo-relative mission path"),
44
- command: z.array(z.string()).describe("Worker argv (after --)"),
44
+ command: z.array(z.string()).describe("Executor argv (after --)"),
45
45
  cwd: z.string().optional(),
46
46
  timeout_ms: z.number().int().positive().optional(),
47
47
  }, async (args) => jsonText(await handleRuntimeExec({
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tools-register.js","sourceRoot":"","sources":["../../../src/cli/lib/mcp-tools-register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-tools-register.js","sourceRoot":"","sources":["../../../src/cli/lib/mcp-tools-register.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/mcp-upgrade.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAC;AAKnC,MAAM,MAAM,oBAAoB,GAC5B,0BAA0B,GAC1B;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC;AAE7C,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC;AAElG,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAeD,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,mBAAwB,GAAG,oBAAoB,CAevF;AAED,wBAAsB,kBAAkB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAWjG"}
1
+ {"version":3,"file":"mcp-upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/mcp-upgrade.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAC;AAKnC,MAAM,MAAM,oBAAoB,GAC5B,0BAA0B,GAC1B;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC;AAE7C,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC;AAElG,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAqBD,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,mBAAwB,GAAG,oBAAoB,CAevF;AAED,wBAAsB,kBAAkB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAWjG"}
@@ -1,10 +1,18 @@
1
1
  import { errorMessage } from "./cli-io.js";
2
2
  import { getRepoRoot } from "./git.js";
3
+ import { GXT_ERROR } from "./gxt-error-codes.js";
4
+ import { McpWriteDeniedError } from "./mcp-write-guard.js";
3
5
  import { assertStableUpgradePlanPayloadV1, toStableUpgradePlanPayloadV1, } from "./upgrade-plan-payload.js";
4
6
  import { runUpgradeApply } from "./upgrade-apply.js";
5
7
  import { runUpgradePlan } from "./upgrade-plan.js";
6
8
  import { GapmanUserError } from "./errors.js";
7
9
  function mcpErrorBody(e) {
10
+ if (e instanceof McpWriteDeniedError) {
11
+ return {
12
+ status: "error",
13
+ error: { code: GXT_ERROR.MCP_WRITE_DENIED, message: e.message, retryable: false },
14
+ };
15
+ }
8
16
  if (e instanceof GapmanUserError) {
9
17
  return {
10
18
  status: "error",
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-upgrade.js","sourceRoot":"","sources":["../../../src/cli/lib/mcp-upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EACL,gCAAgC,EAChC,4BAA4B,GAE7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAa9C,SAAS,YAAY,CAAC,CAAU;IAC9B,IAAI,CAAC,YAAY,eAAe,EAAE,CAAC;QACjC,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;SAC9D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;KAC7E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAA6B,EAAE;IAC/D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,cAAc,CAAC;YAC5B,QAAQ;YACR,GAAG,EAAE,KAAK,CAAC,MAAM;YACjB,MAAM,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI;YAC9B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;QACrD,gCAAgC,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,eAAwB;IAC/D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,OAAO,MAAM,eAAe,CAAC;YAC3B,QAAQ;YACR,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"mcp-upgrade.js","sourceRoot":"","sources":["../../../src/cli/lib/mcp-upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EACL,gCAAgC,EAChC,4BAA4B,GAE7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAa9C,SAAS,YAAY,CAAC,CAAU;IAC9B,IAAI,CAAC,YAAY,mBAAmB,EAAE,CAAC;QACrC,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;SAClF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,YAAY,eAAe,EAAE,CAAC;QACjC,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;SAC9D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;KAC7E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAA6B,EAAE;IAC/D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,cAAc,CAAC;YAC5B,QAAQ;YACR,GAAG,EAAE,KAAK,CAAC,MAAM;YACjB,MAAM,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI;YAC9B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;QACrD,gCAAgC,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,eAAwB;IAC/D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,OAAO,MAAM,eAAe,CAAC;YAC3B,QAAQ;YACR,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { GapmanUserError } from "./errors.js";
2
+ import type { Manifest } from "./types.js";
3
+ export declare const MCP_WRITE_DENIED: "MCP_WRITE_DENIED";
4
+ export declare class McpWriteDeniedError extends GapmanUserError {
5
+ readonly repoRelPath: string;
6
+ constructor(repoRelPath: string, reason: string);
7
+ }
8
+ /** Mission file writes via MCP must stay under `.gitagent/missions/`. */
9
+ export declare function assertMcpMissionWritePath(repoRelPath: string): void;
10
+ /**
11
+ * Validate a repo-relative write target for a skill-scoped MCP mutation.
12
+ * Governance transport paths (EXECUTOR_LOG, active-mission pin) are always allowed.
13
+ */
14
+ export declare function assertMcpSkillWritePath(manifest: Manifest, skillKey: string, repoRelPath: string): void;
15
+ /**
16
+ * Tier-3 substrate upgrade: each `planned_writes` entry is Planner-authorized via signed mission.
17
+ * Deny forbidden-zone targets not explicitly listed in `planned_writes`.
18
+ */
19
+ export declare function assertMcpSubstrateUpgradeWritePaths(manifest: Manifest, plannedWrites: readonly string[]): void;
20
+ //# sourceMappingURL=mcp-write-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-write-guard.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/mcp-write-guard.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,eAAO,MAAM,gBAAgB,EAAG,kBAA2B,CAAC;AAE5D,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAKhD;AASD,yEAAyE;AACzE,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CASnE;AAoBD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,IAAI,CAiBN;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,IAAI,CAYN"}
@@ -0,0 +1,82 @@
1
+ import { REL_MISSIONS_PREFIX } from "./git-proof.js";
2
+ import { classifyRepoRelativePath, forbiddenZonesForSkill, isGovernanceTransportPath, isPathUnderRoot, normalizeRepoRelativePath, tmvcRootsForSkill, } from "./tmvc-path.js";
3
+ import { GapmanUserError } from "./errors.js";
4
+ import { resolveManifestSkillKey } from "./skill-key.js";
5
+ export const MCP_WRITE_DENIED = "MCP_WRITE_DENIED";
6
+ export class McpWriteDeniedError extends GapmanUserError {
7
+ repoRelPath;
8
+ constructor(repoRelPath, reason) {
9
+ const norm = normalizeRepoRelativePath(repoRelPath);
10
+ super(MCP_WRITE_DENIED, `MCP write denied: ${reason} (${norm})`);
11
+ this.repoRelPath = norm;
12
+ }
13
+ }
14
+ function assertNoPathTraversal(repoRel) {
15
+ const norm = normalizeRepoRelativePath(repoRel);
16
+ if (norm.includes("..") || norm.startsWith("/")) {
17
+ throw new McpWriteDeniedError(norm, "path must be repo-relative without traversal");
18
+ }
19
+ }
20
+ /** Mission file writes via MCP must stay under `.gitagent/missions/`. */
21
+ export function assertMcpMissionWritePath(repoRelPath) {
22
+ assertNoPathTraversal(repoRelPath);
23
+ const norm = normalizeRepoRelativePath(repoRelPath);
24
+ if (!norm.startsWith(REL_MISSIONS_PREFIX)) {
25
+ throw new McpWriteDeniedError(norm, `mission writes must stay under ${REL_MISSIONS_PREFIX}`);
26
+ }
27
+ }
28
+ function allManifestForbiddenZones(manifest) {
29
+ const zones = new Set();
30
+ for (const skill of Object.values(manifest.skills)) {
31
+ for (const fz of skill.forbidden_zones ?? []) {
32
+ zones.add(fz);
33
+ }
34
+ }
35
+ return [...zones];
36
+ }
37
+ function pathHitsForbiddenZone(repoRel, forbiddenZones) {
38
+ const norm = normalizeRepoRelativePath(repoRel);
39
+ for (const fz of forbiddenZones) {
40
+ if (isPathUnderRoot(norm, fz))
41
+ return fz;
42
+ }
43
+ return null;
44
+ }
45
+ /**
46
+ * Validate a repo-relative write target for a skill-scoped MCP mutation.
47
+ * Governance transport paths (EXECUTOR_LOG, active-mission pin) are always allowed.
48
+ */
49
+ export function assertMcpSkillWritePath(manifest, skillKey, repoRelPath) {
50
+ assertNoPathTraversal(repoRelPath);
51
+ const norm = normalizeRepoRelativePath(repoRelPath);
52
+ if (isGovernanceTransportPath(norm))
53
+ return;
54
+ const resolvedSkill = resolveManifestSkillKey(manifest, skillKey);
55
+ const forbidden = forbiddenZonesForSkill(manifest, resolvedSkill);
56
+ const hit = pathHitsForbiddenZone(norm, forbidden);
57
+ if (hit) {
58
+ throw new McpWriteDeniedError(norm, `path in forbidden zone ${hit}`);
59
+ }
60
+ const tmvc = tmvcRootsForSkill(manifest, resolvedSkill);
61
+ const classification = classifyRepoRelativePath(norm, tmvc, forbidden);
62
+ if (classification === "inside_tmvc" || classification === "governance_transport")
63
+ return;
64
+ throw new McpWriteDeniedError(norm, `path outside TMVC roots for skill ${resolvedSkill}`);
65
+ }
66
+ /**
67
+ * Tier-3 substrate upgrade: each `planned_writes` entry is Planner-authorized via signed mission.
68
+ * Deny forbidden-zone targets not explicitly listed in `planned_writes`.
69
+ */
70
+ export function assertMcpSubstrateUpgradeWritePaths(manifest, plannedWrites) {
71
+ const authorized = new Set(plannedWrites.map((p) => normalizeRepoRelativePath(p)));
72
+ const allForbidden = allManifestForbiddenZones(manifest);
73
+ for (const relPath of plannedWrites) {
74
+ assertNoPathTraversal(relPath);
75
+ const norm = normalizeRepoRelativePath(relPath);
76
+ const hit = pathHitsForbiddenZone(norm, allForbidden);
77
+ if (hit && !authorized.has(norm)) {
78
+ throw new McpWriteDeniedError(norm, `forbidden zone ${hit} not authorized by upgrade mission`);
79
+ }
80
+ }
81
+ }
82
+ //# sourceMappingURL=mcp-write-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-write-guard.js","sourceRoot":"","sources":["../../../src/cli/lib/mcp-write-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAA2B,CAAC;AAE5D,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAC7C,WAAW,CAAS;IAE7B,YAAY,WAAmB,EAAE,MAAc;QAC7C,MAAM,IAAI,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;QACpD,KAAK,CAAC,gBAAgB,EAAE,qBAAqB,MAAM,KAAK,IAAI,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;CACF;AAED,SAAS,qBAAqB,CAAC,OAAe;IAC5C,MAAM,IAAI,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,mBAAmB,CAAC,IAAI,EAAE,8CAA8C,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,yBAAyB,CAAC,WAAmB;IAC3D,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,mBAAmB,CAC3B,IAAI,EACJ,kCAAkC,mBAAmB,EAAE,CACxD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAkB;IACnD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;YAC7C,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe,EAAE,cAAiC;IAC/E,MAAM,IAAI,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAChD,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;QAChC,IAAI,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;YAAE,OAAO,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAkB,EAClB,QAAgB,EAChB,WAAmB;IAEnB,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,yBAAyB,CAAC,IAAI,CAAC;QAAE,OAAO;IAE5C,MAAM,aAAa,GAAG,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,sBAAsB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACnD,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,IAAI,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,GAAG,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACvE,IAAI,cAAc,KAAK,aAAa,IAAI,cAAc,KAAK,sBAAsB;QAAE,OAAO;IAE1F,MAAM,IAAI,mBAAmB,CAAC,IAAI,EAAE,qCAAqC,aAAa,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mCAAmC,CACjD,QAAkB,EAClB,aAAgC;IAEhC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAEzD,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACpC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACtD,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,GAAG,oCAAoC,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -10,7 +10,7 @@ export interface EmitMissionOptions {
10
10
  }
11
11
  export declare function emitActiveMissionFromTemplate(repoRoot: string, options: EmitMissionOptions): string;
12
12
  /**
13
- * True when the mission file represents Teacher legislation only — no worker
13
+ * True when the mission file represents Planner legislation only — no worker
14
14
  * execution evidence claimed yet. Pre-push may pass after git-proof alone.
15
15
  */
16
16
  export declare function isLegislativeStub(mission: ParsedMission): boolean;
@@ -118,7 +118,7 @@ function isPlaceholderQuote(quote) {
118
118
  return quote.trim() === LEGISLATE_TRACE_PLACEHOLDER;
119
119
  }
120
120
  /**
121
- * True when the mission file represents Teacher legislation only — no worker
121
+ * True when the mission file represents Planner legislation only — no worker
122
122
  * execution evidence claimed yet. Pre-push may pass after git-proof alone.
123
123
  */
124
124
  export function isLegislativeStub(mission) {
@@ -7,7 +7,7 @@ export function tutorialTeacherStampBlock(missionPath, msnId) {
7
7
  return [
8
8
  `git add ${missionPath}`,
9
9
  `git commit -m "[${msnId}] legislate mission"`,
10
- "gantry teacher set \"$(git config user.email)\" # if not already configured",
10
+ "gantry planner set \"$(git config user.email)\" # if not already configured",
11
11
  ].join("\n ");
12
12
  }
13
13
  export function onboardingRuntimeEnvHint(missionPath) {
@@ -71,7 +71,7 @@ export function collectOutOfScopeAdrHints(root, intentNorm) {
71
71
  hints.push({
72
72
  id: meta.id,
73
73
  title: meta.title,
74
- note: `Intent may relate to ADR ${meta.id} (match_terms overlap); Teacher must confirm or reject during legislation.`,
74
+ note: `Intent may relate to ADR ${meta.id} (match_terms overlap); Planner must confirm or reject during legislation.`,
75
75
  });
76
76
  }
77
77
  return hints;
@@ -1,5 +1,5 @@
1
1
  import type { Manifest } from "./types.js";
2
- export declare const DEFAULT_PERIMETER_PROTECTED: readonly ["**/.gxt-skill.yaml", ".gitagent/foreman/MANIFEST.json", ".gitagent/teacher/RULES.md"];
2
+ export declare const DEFAULT_PERIMETER_PROTECTED: readonly ["**/.gxt-skill.yaml", ".gitagent/foreman/MANIFEST.json", ".gitagent/planner/RULES.md"];
3
3
  export interface PerimeterViolation {
4
4
  path: string;
5
5
  commit: string;
@@ -3,11 +3,11 @@ import { GXT_ERROR } from "./gxt-error-codes.js";
3
3
  import { toPosixRel } from "./cli-io.js";
4
4
  import { gitRevParse, gitRun, gitRunOk } from "./git.js";
5
5
  import { commitSubjectHasMsnPrefix, listCommitChangedPaths, listMsnSubjectCommits, } from "./git-proof.js";
6
- import { resolveTeacherEmails } from "./teacher-identity.js";
6
+ import { resolvePlannerEmails } from "./planner-identity.js";
7
7
  export const DEFAULT_PERIMETER_PROTECTED = [
8
8
  "**/.gxt-skill.yaml",
9
9
  ".gitagent/foreman/MANIFEST.json",
10
- ".gitagent/teacher/RULES.md",
10
+ ".gitagent/planner/RULES.md",
11
11
  ];
12
12
  const SHALLOW_HISTORY_HINT = "Configure CI checkout with fetch-depth: 0 or fetch the base ref explicitly before running gantry perimeter --ci.";
13
13
  function perimeterGlobs(manifest) {
@@ -103,10 +103,10 @@ function signatureStatus(repoRoot, hash) {
103
103
  function isGoodSignature(status) {
104
104
  return status === "G" || status === "U";
105
105
  }
106
- function findTeacherStampForPath(repoRoot, msnId, repoRelPath, teacherEmails) {
106
+ function findTeacherStampForPath(repoRoot, msnId, repoRelPath, plannerEmails) {
107
107
  const rows = listMsnSubjectCommits(repoRoot, msnId);
108
108
  for (const row of rows) {
109
- if (!teacherEmails.includes(row.authorEmail.trim().toLowerCase()))
109
+ if (!plannerEmails.includes(row.authorEmail.trim().toLowerCase()))
110
110
  continue;
111
111
  const changed = listCommitChangedPaths(repoRoot, row.hash);
112
112
  if (changed.some((p) => p.replace(/\\/g, "/") === repoRelPath.replace(/\\/g, "/"))) {
@@ -159,7 +159,7 @@ function checkProtectedPathCi(repoRoot, baseRef, filePath, violations, advisorie
159
159
  advisories.push(`perimeter: ${filePath} — all ${String(range.commits.length)} commit(s) in range are signed`);
160
160
  }
161
161
  }
162
- function checkProtectedPathLocal(repoRoot, filePath, teacherEmails, violations, advisories) {
162
+ function checkProtectedPathLocal(repoRoot, filePath, plannerEmails, violations, advisories) {
163
163
  const commit = lastCommitTouchingPath(repoRoot, filePath);
164
164
  if (!commit) {
165
165
  violations.push({
@@ -182,11 +182,11 @@ function checkProtectedPathLocal(repoRoot, filePath, teacherEmails, violations,
182
182
  }
183
183
  const msnId = extractMsnFromRecentCommits(repoRoot, commit);
184
184
  const emailMatch = row.authorEmail.trim().toLowerCase() &&
185
- teacherEmails.includes(row.authorEmail.trim().toLowerCase());
185
+ plannerEmails.includes(row.authorEmail.trim().toLowerCase());
186
186
  const subjectMatch = msnId !== null && commitSubjectHasMsnPrefix(row.subject, msnId);
187
- const stamp = msnId !== null ? findTeacherStampForPath(repoRoot, msnId, filePath, teacherEmails) : null;
187
+ const stamp = msnId !== null ? findTeacherStampForPath(repoRoot, msnId, filePath, plannerEmails) : null;
188
188
  if (stamp) {
189
- advisories.push(`perimeter (advisory): ${filePath} — Teacher email + MSN stamp hint matched ${stamp.hash.slice(0, 7)} (forgeable locally; CI verifies signature)`);
189
+ advisories.push(`perimeter (advisory): ${filePath} — Planner email + MSN stamp hint matched ${stamp.hash.slice(0, 7)} (forgeable locally; CI verifies signature)`);
190
190
  return;
191
191
  }
192
192
  advisories.push(`perimeter (advisory): ${filePath} modified in ${commit.slice(0, 7)} — ` +
@@ -216,7 +216,7 @@ export function checkPerimeter(repoRoot, manifest, options) {
216
216
  if (protectedChanged.length === 0) {
217
217
  return { ok: true, violations: [], advisories: [] };
218
218
  }
219
- const teacherEmails = resolveTeacherEmails(repoRoot).emails;
219
+ const plannerEmails = resolvePlannerEmails(repoRoot).emails;
220
220
  const violations = [];
221
221
  const advisories = [];
222
222
  for (const filePath of protectedChanged) {
@@ -224,7 +224,7 @@ export function checkPerimeter(repoRoot, manifest, options) {
224
224
  checkProtectedPathCi(repoRoot, options.baseRef, filePath, violations, advisories);
225
225
  }
226
226
  else {
227
- checkProtectedPathLocal(repoRoot, filePath, teacherEmails, violations, advisories);
227
+ checkProtectedPathLocal(repoRoot, filePath, plannerEmails, violations, advisories);
228
228
  }
229
229
  }
230
230
  const hardFailures = violations.filter((v) => !v.advisoryOnly);
@@ -0,0 +1,23 @@
1
+ export { ENV_PLANNER_EMAILS } from "./config-namespace.js";
2
+ export declare const REL_PLANNER_ALLOWLIST: ".gitagent/foreman/PLANNER.allowlist";
3
+ export declare const REL_PLANNER_ALLOWLIST_LOCAL: ".gitagent/foreman/PLANNER.allowlist.local";
4
+ export type PlannerIdentitySource = "allowlist_file" | "allowlist_local" | "git_config" | "env" | "git_user_email" | "unset";
5
+ export interface ResolvedPlannerIdentity {
6
+ emails: string[];
7
+ source: PlannerIdentitySource;
8
+ /** Human-readable detail for doctor / errors */
9
+ detail: string;
10
+ }
11
+ /** Legacy env-only parser (tests / explicit CI override). */
12
+ export declare function parsePlannerEmailsFromEnv(): string[];
13
+ /**
14
+ * Resolve Planner legislation allowlist for a repository.
15
+ * Repo-local sources win over shell env so multi-project developers are not cross-contaminated.
16
+ */
17
+ export declare function resolvePlannerEmails(repoRoot: string): ResolvedPlannerIdentity;
18
+ export declare function serializePlannerAllowlist(emails: string[]): string;
19
+ export declare function writePlannerAllowlistLocal(repoRoot: string, emails: string[]): void;
20
+ /** Create gitignored local allowlist from repo git user.email when missing. */
21
+ export declare function ensurePlannerAllowlistOnInit(repoRoot: string): boolean;
22
+ export declare function plannerIdentitySetupHint(_repoRoot: string): string;
23
+ //# sourceMappingURL=planner-identity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"teacher-identity.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/teacher-identity.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,eAAO,MAAM,qBAAqB,EAAG,qCAA8C,CAAC;AACpF,eAAO,MAAM,2BAA2B,EAAG,2CAAoD,CAAC;AAEhG,MAAM,MAAM,qBAAqB,GAC7B,gBAAgB,GAChB,iBAAiB,GACjB,YAAY,GACZ,KAAK,GACL,gBAAgB,GAChB,OAAO,CAAC;AAEZ,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB;AA8BD,6DAA6D;AAC7D,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAIpD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,uBAAuB,CA2C9E;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAGlE;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAInF;AAED,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAStE;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOlE"}
1
+ {"version":3,"file":"planner-identity.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/planner-identity.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,eAAO,MAAM,qBAAqB,EAAG,qCAA8C,CAAC;AACpF,eAAO,MAAM,2BAA2B,EAAG,2CAAoD,CAAC;AAEhG,MAAM,MAAM,qBAAqB,GAC7B,gBAAgB,GAChB,iBAAiB,GACjB,YAAY,GACZ,KAAK,GACL,gBAAgB,GAChB,OAAO,CAAC;AAEZ,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB;AA8BD,6DAA6D;AAC7D,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAIpD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,uBAAuB,CA2C9E;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAGlE;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAInF;AAED,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAStE;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOlE"}