@mirnoorata/codexa 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +93 -29
  2. package/dist/cli/hooks.js +11 -6
  3. package/dist/cli/hooks.js.map +1 -1
  4. package/dist/cli.js +13 -4
  5. package/dist/cli.js.map +1 -1
  6. package/dist/implicit-baseline.d.ts +8 -0
  7. package/dist/implicit-baseline.js +94 -0
  8. package/dist/implicit-baseline.js.map +1 -0
  9. package/dist/init.d.ts +3 -0
  10. package/dist/init.js +124 -15
  11. package/dist/init.js.map +1 -1
  12. package/dist/mcp/compaction.d.ts +1 -0
  13. package/dist/mcp/compaction.js +24 -0
  14. package/dist/mcp/compaction.js.map +1 -1
  15. package/dist/mcp/envelope.d.ts +4 -1
  16. package/dist/mcp/envelope.js +45 -5
  17. package/dist/mcp/envelope.js.map +1 -1
  18. package/dist/mcp/prompts.d.ts +1 -1
  19. package/dist/mcp/prompts.js +5 -2
  20. package/dist/mcp/prompts.js.map +1 -1
  21. package/dist/mcp/tool-registry.d.ts +1 -0
  22. package/dist/mcp/tool-registry.js +5 -0
  23. package/dist/mcp/tool-registry.js.map +1 -1
  24. package/dist/mcp/tools.d.ts +1 -0
  25. package/dist/mcp/tools.js +6 -0
  26. package/dist/mcp/tools.js.map +1 -1
  27. package/dist/mcp-tool-catalog.d.ts +1 -1
  28. package/dist/mcp-tool-catalog.js +1 -1
  29. package/dist/mcp-tool-catalog.js.map +1 -1
  30. package/dist/mcp.js +10 -5
  31. package/dist/mcp.js.map +1 -1
  32. package/dist/query/post-edit/decision.d.ts +1 -0
  33. package/dist/query/post-edit/decision.js +13 -4
  34. package/dist/query/post-edit/decision.js.map +1 -1
  35. package/dist/query/post-edit.js +10 -2
  36. package/dist/query/post-edit.js.map +1 -1
  37. package/dist/task-snapshots.js +29 -0
  38. package/dist/task-snapshots.js.map +1 -1
  39. package/dist/types.d.ts +2 -0
  40. package/dist/types.js.map +1 -1
  41. package/integrations/.claude-plugin/marketplace.json +23 -0
  42. package/integrations/claude-code/.claude-plugin/plugin.json +16 -0
  43. package/integrations/claude-code/.mcp.json +8 -0
  44. package/integrations/claude-code/README.md +177 -0
  45. package/integrations/claude-code/commands/codexa-brief.md +14 -0
  46. package/integrations/claude-code/commands/codexa-impact.md +14 -0
  47. package/integrations/claude-code/commands/codexa-plan.md +20 -0
  48. package/integrations/claude-code/commands/codexa-review.md +23 -0
  49. package/integrations/claude-code/commands/codexa-status.md +10 -0
  50. package/integrations/claude-code/hooks/hooks.json +39 -0
  51. package/integrations/claude-code/scripts/cmd/brief.sh +18 -0
  52. package/integrations/claude-code/scripts/cmd/impact.sh +35 -0
  53. package/integrations/claude-code/scripts/cmd/lib.sh +136 -0
  54. package/integrations/claude-code/scripts/cmd/plan.sh +52 -0
  55. package/integrations/claude-code/scripts/cmd/review.sh +66 -0
  56. package/integrations/claude-code/scripts/cmd/status.sh +52 -0
  57. package/integrations/claude-code/scripts/codexa-mcp.js +111 -0
  58. package/integrations/claude-code/scripts/lib/codexa-repo.sh +773 -0
  59. package/integrations/claude-code/scripts/pre-edit.sh +116 -0
  60. package/integrations/claude-code/scripts/session-start.sh +201 -0
  61. package/integrations/claude-code/scripts/stop.sh +443 -0
  62. package/integrations/claude-code/tests/cmd-smoke.sh +310 -0
  63. package/integrations/claude-code/tests/hook-smoke.sh +1412 -0
  64. package/package.json +4 -2
  65. package/plugins/codexa/.codex-plugin/plugin.json +1 -1
@@ -0,0 +1,94 @@
1
+ import { acquireCacheLock } from "./cache-lock.js";
2
+ import { runCommand } from "./command.js";
3
+ import { getFreshness } from "./indexer.js";
4
+ import { getChangedFileEntries } from "./query/worktree.js";
5
+ import { loadTaskSnapshot, saveTaskSnapshot } from "./task-snapshots.js";
6
+ export const IMPLICIT_BASELINE_TASK = "Implicit pre-edit baseline";
7
+ // Saves a plan-less dirty-tree baseline so post_edit_review always has a
8
+ // pre-edit reference, even when the agent never called change_plan. The
9
+ // snapshot deliberately declares no planned scope: post-edit review only
10
+ // computes unplanned-edit drift against a non-empty planned scope, and the
11
+ // decision layer treats head drift on an implicit baseline as informational,
12
+ // so an implicit baseline contributes changed-since-baseline, symbol, and
13
+ // verification accounting without manufacturing drift verdicts. An explicit
14
+ // change_plan(saveSnapshot=true) later replaces it as latest.
15
+ export async function saveImplicitBaselineSnapshot(repoRoot) {
16
+ const release = await tryAcquireBaselineLock(repoRoot);
17
+ if (!release) {
18
+ return { status: "skipped", reason: "another Codexa snapshot writer is active" };
19
+ }
20
+ try {
21
+ const loaded = await loadTaskSnapshot(repoRoot);
22
+ if (loaded.snapshot) {
23
+ return { status: "existing-snapshot", taskId: loaded.snapshot.taskId };
24
+ }
25
+ if (loaded.missingReason === "blocked-plan" || loaded.missingReason === "invalid-json") {
26
+ return {
27
+ status: "skipped",
28
+ latestTaskId: loaded.latestTaskId,
29
+ reason: `latest snapshot state is ${loaded.missingReason}; not replacing it with an implicit baseline`
30
+ };
31
+ }
32
+ const changed = await getChangedFileEntries(repoRoot);
33
+ if (changed.degradedReason) {
34
+ return { status: "skipped", reason: `worktree state degraded (${changed.degradedReason}); an implicit baseline would be unreliable` };
35
+ }
36
+ const freshness = await getFreshness(repoRoot, undefined, { recover: false });
37
+ const { snapshot } = await saveTaskSnapshot({
38
+ repoRoot,
39
+ input: { task: IMPLICIT_BASELINE_TASK, changeType: "unknown", saveSnapshot: true },
40
+ snapshot: {
41
+ task: IMPLICIT_BASELINE_TASK,
42
+ changeType: "unknown",
43
+ origin: "hook-implicit",
44
+ snapshotFreshness: freshness,
45
+ plannedEditTargets: [],
46
+ plannedFiles: [],
47
+ focusFiles: [],
48
+ plannedTests: [],
49
+ requiredWorkflowChecks: [],
50
+ requiredDependencyChecks: [],
51
+ recipes: [],
52
+ dirtyBaseline: {
53
+ changedEntries: changed.entries,
54
+ dirtyFiles: changed.entries.map((entry) => entry.path),
55
+ dirtyFileHashes: freshness.dirtyFileHashes,
56
+ // freshnessFromStored carries the INDEXED head commit when a stored
57
+ // bundle exists; the baseline must record the head at save time or
58
+ // every later review reports phantom head drift.
59
+ headCommit: await currentHeadCommit(repoRoot),
60
+ indexedAt: freshness.indexedAt
61
+ },
62
+ gaps: ["implicit pre-edit baseline saved by the pre-edit hook; no planned scope or tests are declared"],
63
+ warnings: []
64
+ }
65
+ });
66
+ return { status: "saved", taskId: snapshot.taskId };
67
+ }
68
+ finally {
69
+ await release();
70
+ }
71
+ }
72
+ async function currentHeadCommit(repoRoot) {
73
+ const result = await runCommand("git", ["-C", repoRoot, "rev-parse", "HEAD"], { timeoutMs: 2_000, maxBufferBytes: 4_096 });
74
+ if (!result.ok) {
75
+ return null;
76
+ }
77
+ const head = result.stdout.trim();
78
+ return /^[0-9a-f]{7,40}$/u.test(head) ? head : null;
79
+ }
80
+ async function tryAcquireBaselineLock(repoRoot) {
81
+ try {
82
+ return await acquireCacheLock({
83
+ repoRoot,
84
+ lockDir: ".codex/cache/codexa-implicit-baseline.lock",
85
+ staleMs: 60_000,
86
+ timeoutMs: 5_000,
87
+ label: "Codexa implicit baseline"
88
+ });
89
+ }
90
+ catch {
91
+ return null;
92
+ }
93
+ }
94
+ //# sourceMappingURL=implicit-baseline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implicit-baseline.js","sourceRoot":"","sources":["../src/implicit-baseline.ts"],"names":[],"mappings":"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"}
package/dist/init.d.ts CHANGED
@@ -8,6 +8,7 @@ export interface InitOptions {
8
8
  toolProfile?: InitToolProfile;
9
9
  agentsMd?: boolean;
10
10
  claudeMd?: boolean;
11
+ claude?: boolean;
11
12
  }
12
13
  export interface InitResult {
13
14
  repoRoot: string;
@@ -15,7 +16,9 @@ export interface InitResult {
15
16
  hooksPath: string | null;
16
17
  agentsMdPath: string | null;
17
18
  claudeMdPath: string | null;
19
+ claudeMcpPath: string | null;
18
20
  serverName: string;
21
+ launchNote: string | null;
19
22
  indexed: {
20
23
  files: number;
21
24
  symbols: number;
package/dist/init.js CHANGED
@@ -3,19 +3,61 @@ import path from "node:path";
3
3
  import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
4
4
  import { renderCodexUseContract } from "./codex-contract.js";
5
5
  import { buildIndexLocked } from "./indexer.js";
6
- import { PRIMARY_CODEX_LOOP, PRIMARY_MCP_TOOL_NAMES } from "./mcp-tool-catalog.js";
6
+ import { CORE_PROFILE_TOOL_NAMES, PRIMARY_CODEX_LOOP } from "./mcp-tool-catalog.js";
7
7
  import { resolveMcpRepoRoot } from "./mcp-repo-root.js";
8
8
  import { statusQuery } from "./queries.js";
9
+ import { CODEXA_VERSION } from "./version.js";
9
10
  const EDIT_HOOK_MATCHER = "Edit|MultiEdit|Write|NotebookEdit|apply_patch";
10
- const CORE_PROFILE_TOOL_NAMES = [...PRIMARY_MCP_TOOL_NAMES, "impact", "freshness"];
11
+ // An ephemeral runner cache path (npm's ~/.npm/_npx/<hash>/…, pnpm's
12
+ // …/pnpm/dlx/<hash>/…) is evicted on cache prune; baking it into MCP config
13
+ // breaks server startup weeks later with no visible cause. Pin the published
14
+ // package version instead so the config stays launchable.
15
+ function resolveLaunchSpec(cliPath) {
16
+ if (/[\\/]_npx[\\/]/u.test(cliPath) || /[\\/]pnpm[\\/]dlx[\\/]/u.test(cliPath)) {
17
+ return { command: "npx", args: ["-y", `@mirnoorata/codexa@${CODEXA_VERSION}`], pinnedNpx: true };
18
+ }
19
+ return { command: "node", args: [cliPath], pinnedNpx: false };
20
+ }
21
+ // Re-running plain `codexa init` must not silently change an existing
22
+ // install's tool exposure (the rendered managed block historically told
23
+ // full-profile users to refresh with exactly `codexa init`). When --tools is
24
+ // not passed, the previously rendered profile wins; "core" only applies to
25
+ // fresh installs.
26
+ function detectExistingToolProfile(existingConfig) {
27
+ if (!existingConfig.includes("# >>> codexa managed")) {
28
+ return undefined;
29
+ }
30
+ const lines = existingConfig.split(/\r?\n/);
31
+ let inManaged = false;
32
+ let sawManaged = false;
33
+ for (const line of lines) {
34
+ const trimmed = line.trim();
35
+ if (trimmed === "# >>> codexa managed") {
36
+ inManaged = true;
37
+ sawManaged = true;
38
+ continue;
39
+ }
40
+ if (trimmed === "# <<< codexa managed") {
41
+ inManaged = false;
42
+ continue;
43
+ }
44
+ if (inManaged && /^enabled_tools\s*=/u.test(trimmed)) {
45
+ return "core";
46
+ }
47
+ }
48
+ return sawManaged ? "full" : undefined;
49
+ }
11
50
  export async function initializeProject(repoInput, options) {
12
51
  const repoRoot = resolveInitRepo(repoInput);
13
52
  const codexDir = path.join(repoRoot, ".codex");
14
53
  const serverName = validateServerName(options.serverName ?? `codexa-${slugify(path.basename(repoRoot))}`);
15
54
  const cliPath = path.resolve(options.cliPath);
55
+ const launch = resolveLaunchSpec(cliPath);
16
56
  const configPath = path.join(codexDir, "config.toml");
17
57
  const hooksPath = path.join(codexDir, "hooks.json");
18
58
  const writeHooks = options.hooks ?? true;
59
+ const toolProfile = options.toolProfile ?? detectExistingToolProfile(await readTextIfExists(configPath)) ?? "core";
60
+ const autoRefresh = options.autoRefresh ?? true;
19
61
  await mkdir(codexDir, { recursive: true });
20
62
  const keepHooksFeature = writeHooks
21
63
  ? true
@@ -24,21 +66,27 @@ export async function initializeProject(repoInput, options) {
24
66
  repoRoot
25
67
  });
26
68
  await upsertCodexConfig(configPath, {
27
- autoRefresh: options.autoRefresh ?? true,
69
+ autoRefresh,
28
70
  cliPath,
71
+ launch,
29
72
  repoRoot,
30
73
  serverName,
31
74
  hooks: keepHooksFeature,
32
- toolProfile: options.toolProfile ?? "full"
75
+ toolProfile
33
76
  });
34
77
  if (writeHooks) {
35
78
  await upsertHooksConfig(hooksPath, {
36
79
  cliPath,
80
+ launch,
37
81
  repoRoot
38
82
  });
39
83
  }
40
84
  const agentsMdPath = options.agentsMd ? await upsertManagedDoc(repoRoot, "AGENTS.md", serverName) : null;
41
85
  const claudeMdPath = options.claudeMd ? await upsertManagedDoc(repoRoot, "CLAUDE.md", serverName) : null;
86
+ const claudeMcpPath = options.claude ? path.join(repoRoot, ".mcp.json") : null;
87
+ if (claudeMcpPath) {
88
+ await upsertClaudeMcpConfig(claudeMcpPath, { autoRefresh, launch, repoRoot, serverName, toolProfile });
89
+ }
42
90
  const indexed = options.index === false
43
91
  ? null
44
92
  : summarizeIndex(await buildIndexLocked({ repoRoot, writeArtifacts: true }));
@@ -48,7 +96,11 @@ export async function initializeProject(repoInput, options) {
48
96
  hooksPath: writeHooks ? hooksPath : null,
49
97
  agentsMdPath,
50
98
  claudeMdPath,
99
+ claudeMcpPath,
51
100
  serverName,
101
+ launchNote: launch.pinnedNpx
102
+ ? `Codexa CLI resolved inside the evictable npx cache; generated configs pin "npx -y @mirnoorata/codexa@${CODEXA_VERSION}" instead of the cache path.`
103
+ : null,
52
104
  indexed
53
105
  };
54
106
  }
@@ -125,7 +177,9 @@ function runGit(cwd, args) {
125
177
  async function upsertCodexConfig(configPath, options) {
126
178
  const existing = await readTextIfExists(configPath);
127
179
  let next = stripManagedBlocks(existing);
128
- next = removeCodexaMcpServerBlocks(next, options);
180
+ // Legacy detection keys on the real CLI path, never on launch args like
181
+ // "-y", which would also match unrelated npx-launched server blocks.
182
+ next = removeCodexaMcpServerBlocks(next, { cliPath: options.cliPath, repoRoot: options.repoRoot });
129
183
  next = removeMcpServerBlock(next, options.serverName);
130
184
  if (options.hooks) {
131
185
  next = ensureHooksFeature(next);
@@ -141,21 +195,21 @@ async function upsertCodexConfig(configPath, options) {
141
195
  await writeFile(configPath, `${next}\n`, "utf8");
142
196
  }
143
197
  function renderMcpServerBlock(options) {
144
- const args = [options.cliPath, "serve", options.repoRoot];
198
+ const args = [...options.launch.args, "serve", options.repoRoot];
145
199
  args.push(options.autoRefresh ? "--auto-refresh" : "--no-auto-refresh");
146
200
  const toolProfileLines = options.toolProfile === "core"
147
201
  ? [
148
- "# Core profile: fewer exposed tools means less per-turn schema cost and better routing.",
202
+ "# Core profile (default): fewer exposed tools means less per-turn schema cost and better routing.",
149
203
  `# Re-run \`codexa init --tools full\` to expose every tool.`,
150
204
  `enabled_tools = [${CORE_PROFILE_TOOL_NAMES.map(tomlString).join(", ")}]`
151
205
  ]
152
- : [`# Tip: \`codexa init --tools core\` exposes only the primary loop tools (${CORE_PROFILE_TOOL_NAMES.join(", ")}) to cut per-turn token cost.`];
153
- const refreshCommand = options.toolProfile === "core" ? "codexa init --tools core" : "codexa init";
206
+ : [`# Full profile: every tool is exposed. \`codexa init\` (core default) exposes only ${CORE_PROFILE_TOOL_NAMES.join(", ")} to cut per-turn token cost.`];
207
+ const refreshCommand = options.toolProfile === "core" ? "codexa init" : "codexa init --tools full";
154
208
  return [
155
209
  "# >>> codexa managed",
156
210
  `# Re-run \`${refreshCommand}\` from this repository to refresh this block.`,
157
211
  `[mcp_servers.${options.serverName}]`,
158
- `command = "node"`,
212
+ `command = ${tomlString(options.launch.command)}`,
159
213
  `args = [${args.map(tomlString).join(", ")}]`,
160
214
  "startup_timeout_sec = 20",
161
215
  "tool_timeout_sec = 60",
@@ -163,6 +217,56 @@ function renderMcpServerBlock(options) {
163
217
  "# <<< codexa managed"
164
218
  ].join("\n");
165
219
  }
220
+ // Repo-root .mcp.json is Claude Code's project-scope MCP config and is a
221
+ // shared, often-committed file: only the codexa entry is managed; every
222
+ // other server entry and unknown top-level key is preserved verbatim.
223
+ // Malformed JSON aborts instead of being silently replaced.
224
+ async function upsertClaudeMcpConfig(mcpPath, options) {
225
+ const existing = await readTextIfExists(mcpPath);
226
+ const parsed = existing.trim() ? parseHooksJson(existing, mcpPath) : {};
227
+ const servers = isPlainObject(parsed.mcpServers) ? { ...parsed.mcpServers } : {};
228
+ for (const [name, entry] of Object.entries(servers)) {
229
+ if (name === options.serverName || isCodexaMcpJsonEntry(entry)) {
230
+ delete servers[name];
231
+ }
232
+ }
233
+ const args = [...options.launch.args, "serve", options.repoRoot];
234
+ args.push(options.autoRefresh ? "--auto-refresh" : "--no-auto-refresh");
235
+ if (options.toolProfile === "core") {
236
+ args.push("--tools", "core");
237
+ }
238
+ servers[options.serverName] = {
239
+ command: options.launch.command,
240
+ args
241
+ };
242
+ await writeFile(mcpPath, `${JSON.stringify({ ...parsed, mcpServers: servers }, null, 2)}\n`, "utf8");
243
+ }
244
+ // Only delete entries that are recognizably a codexa launch: the token
245
+ // immediately before the standalone "serve" arg must be the codexa binary,
246
+ // package, or CLI bundle. A loose substring match would also delete user
247
+ // servers that merely mention "codexa" somewhere in a path plus a serve.js.
248
+ function isCodexaMcpJsonEntry(entry) {
249
+ if (!isPlainObject(entry)) {
250
+ return false;
251
+ }
252
+ const command = typeof entry.command === "string" ? entry.command : "";
253
+ const args = Array.isArray(entry.args) ? entry.args.filter((value) => typeof value === "string") : [];
254
+ const serveIndex = args.indexOf("serve");
255
+ if (serveIndex === -1) {
256
+ return false;
257
+ }
258
+ const launcherToken = serveIndex === 0 ? command : args[serveIndex - 1];
259
+ return isCodexaLauncherToken(launcherToken);
260
+ }
261
+ function isCodexaLauncherToken(token) {
262
+ if (!token) {
263
+ return false;
264
+ }
265
+ return (token === "codexa" ||
266
+ /^@mirnoorata\/codexa(?:@[^\s]*)?$/u.test(token) ||
267
+ /[\\/]codexa[\\/]dist[\\/]cli\.js$/u.test(token) ||
268
+ /[\\/]@mirnoorata[\\/]codexa[\\/]dist[\\/]cli\.js$/u.test(token));
269
+ }
166
270
  const MANAGED_DOC_START = "<!-- >>> codexa managed -->";
167
271
  const MANAGED_DOC_END = "<!-- <<< codexa managed -->";
168
272
  // AGENTS.md (Codex) and CLAUDE.md (Claude Code) are different agent-instruction
@@ -239,6 +343,7 @@ async function upsertHooksConfig(hooksPath, options) {
239
343
  const cleanedSessionStart = cleanHookList(hooks.SessionStart, options);
240
344
  const cleanedPreToolUse = cleanHookList(hooks.PreToolUse, options);
241
345
  const cleanedPostToolUse = cleanHookList(hooks.PostToolUse, options);
346
+ const launchShell = [options.launch.command, ...options.launch.args.map(shellQuote)].join(" ");
242
347
  cleanedSessionStart.push({
243
348
  codexaManaged: true,
244
349
  matcher: "startup|resume",
@@ -246,7 +351,7 @@ async function upsertHooksConfig(hooksPath, options) {
246
351
  {
247
352
  codexaManaged: true,
248
353
  type: "command",
249
- command: `node ${shellQuote(options.cliPath)} session-start ${shellQuote(options.repoRoot)}`,
354
+ command: `${launchShell} session-start ${shellQuote(options.repoRoot)}`,
250
355
  statusMessage: "Loading Codexa context",
251
356
  timeout: 5
252
357
  }
@@ -259,9 +364,9 @@ async function upsertHooksConfig(hooksPath, options) {
259
364
  {
260
365
  codexaManaged: true,
261
366
  type: "command",
262
- command: `node ${shellQuote(options.cliPath)} hook-pre-edit ${shellQuote(options.repoRoot)}`,
263
- statusMessage: "Checking Codexa change-plan snapshot",
264
- timeout: 5
367
+ command: `${launchShell} hook-pre-edit ${shellQuote(options.repoRoot)}`,
368
+ statusMessage: "Saving Codexa pre-edit baseline",
369
+ timeout: 10
265
370
  }
266
371
  ]
267
372
  });
@@ -272,7 +377,7 @@ async function upsertHooksConfig(hooksPath, options) {
272
377
  {
273
378
  codexaManaged: true,
274
379
  type: "command",
275
- command: `node ${shellQuote(options.cliPath)} hook-post-edit ${shellQuote(options.repoRoot)}`,
380
+ command: `${launchShell} hook-post-edit ${shellQuote(options.repoRoot)}`,
276
381
  statusMessage: "Running Codexa post-edit review",
277
382
  timeout: 90
278
383
  }
@@ -352,6 +457,10 @@ function isCodexaHookCommand(command, options) {
352
457
  if (/^codexa-sessionstart(?:\s|$)/u.test(trimmed) || /(?:^|\/)codexa-sessionstart-[^/\s]+\.sh(?:\s|$)/u.test(trimmed)) {
353
458
  return true;
354
459
  }
460
+ // Pinned-npx form written when init ran from an evictable npx cache.
461
+ if (/^npx\s+(?:'-y'|-y)\s+'?@mirnoorata\/codexa(?:@[^\s']*)?'?\s+(?:session-start|hook-pre-edit|hook-post-edit)(?:\s|$)/u.test(trimmed)) {
462
+ return true;
463
+ }
355
464
  for (const action of ["session-start", "hook-pre-edit", "hook-post-edit"]) {
356
465
  const generated = `node ${shellQuote(options.cliPath)} ${action} ${shellQuote(options.repoRoot)}`;
357
466
  const generatedUnquoted = `node ${options.cliPath} ${action} ${options.repoRoot}`;
package/dist/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ type McpTruncation = Record<string, {
7
7
  export interface McpCompactionOptions {
8
8
  format?: "concise" | "detailed";
9
9
  }
10
+ export declare function conciseText(text: string): string;
10
11
  export declare function compactMcpResult(result: QueryResult, options?: McpCompactionOptions): QueryResult;
11
12
  export declare function compactNonPostEditMcpResult(result: QueryResult, options?: McpCompactionOptions): QueryResult;
12
13
  export declare function inferMcpDataMode(data: Record<string, unknown>): string | undefined;
@@ -15,6 +15,28 @@ export function mcpStructuredDataTargetBytes() {
15
15
  return Math.min(MAX_MCP_STRUCTURED_DATA_TARGET_BYTES, Math.max(MIN_MCP_STRUCTURED_DATA_TARGET_BYTES, parsed));
16
16
  }
17
17
  const CONCISE_RESPONSE_TARGET_BYTES = 12_000;
18
+ const CONCISE_TEXT_MAX_LINES = 30;
19
+ const CONCISE_TEXT_MAX_CHARS = 2_400;
20
+ // The text content block mirrors structuredContent for hosts that render
21
+ // text; responseFormat "concise" must shrink it too, not only the structured
22
+ // payload. Codexa packets front-load the banner, verdict, and key sections,
23
+ // so a head slice keeps the actionable part.
24
+ export function conciseText(text) {
25
+ const lines = text.split(/\r?\n/);
26
+ // Short texts pass through byte-identical — no footer, no CRLF rewrite.
27
+ if (lines.length <= CONCISE_TEXT_MAX_LINES && text.length <= CONCISE_TEXT_MAX_CHARS) {
28
+ return text;
29
+ }
30
+ let kept = lines.slice(0, CONCISE_TEXT_MAX_LINES).join("\n");
31
+ if (kept.length > CONCISE_TEXT_MAX_CHARS) {
32
+ const clipped = kept.slice(0, CONCISE_TEXT_MAX_CHARS);
33
+ const lastNewline = clipped.lastIndexOf("\n");
34
+ kept = lastNewline > 0 ? clipped.slice(0, lastNewline) : clipped;
35
+ }
36
+ const omittedLines = Math.max(0, lines.length - kept.split(/\r?\n/).length);
37
+ const omittedNote = omittedLines > 0 ? `${omittedLines} more line(s) omitted; ` : "";
38
+ return `${kept}\n[concise] ${omittedNote}call with responseFormat "detailed" for the full packet.`;
39
+ }
18
40
  export function compactMcpResult(result, options) {
19
41
  if (!result.data || typeof result.data !== "object" || Array.isArray(result.data)) {
20
42
  return result;
@@ -389,6 +411,7 @@ export function compactPostEditMcpResult(result) {
389
411
  ? {
390
412
  taskId: snapshot.taskId,
391
413
  createdAt: snapshot.createdAt,
414
+ origin: snapshot.origin,
392
415
  changeType: snapshot.changeType,
393
416
  plannedEditTargets: limitArray(snapshot.plannedEditTargets, 30),
394
417
  plannedFiles: limitArray(snapshot.plannedFiles, 40),
@@ -564,6 +587,7 @@ function compactChangePlanData(data) {
564
587
  ? {
565
588
  taskId: snapshot.taskId,
566
589
  createdAt: snapshot.createdAt,
590
+ origin: snapshot.origin,
567
591
  changeType: snapshot.changeType,
568
592
  task: snapshot.task,
569
593
  plannedEditTargets: snapshotLimit("plannedEditTargets", snapshot.plannedEditTargets, 30),