@mirnoorata/codexa 0.2.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -31
- package/dist/cli/hooks.js +11 -6
- package/dist/cli/hooks.js.map +1 -1
- package/dist/cli.js +13 -4
- package/dist/cli.js.map +1 -1
- package/dist/eval/scoring.js +17 -0
- package/dist/eval/scoring.js.map +1 -1
- package/dist/implicit-baseline.d.ts +8 -0
- package/dist/implicit-baseline.js +94 -0
- package/dist/implicit-baseline.js.map +1 -0
- package/dist/init.d.ts +3 -0
- package/dist/init.js +129 -15
- package/dist/init.js.map +1 -1
- package/dist/mcp/compaction.d.ts +1 -0
- package/dist/mcp/compaction.js +24 -0
- package/dist/mcp/compaction.js.map +1 -1
- package/dist/mcp/envelope.d.ts +4 -1
- package/dist/mcp/envelope.js +45 -5
- package/dist/mcp/envelope.js.map +1 -1
- package/dist/mcp/prompts.d.ts +1 -1
- package/dist/mcp/prompts.js +5 -2
- package/dist/mcp/prompts.js.map +1 -1
- package/dist/mcp/tool-registry.d.ts +20 -19
- package/dist/mcp/tool-registry.js +24 -19
- package/dist/mcp/tool-registry.js.map +1 -1
- package/dist/mcp/tools.d.ts +1 -0
- package/dist/mcp/tools.js +11 -2
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp-tool-catalog.d.ts +1 -1
- package/dist/mcp-tool-catalog.js +1 -1
- package/dist/mcp-tool-catalog.js.map +1 -1
- package/dist/mcp.js +10 -5
- package/dist/mcp.js.map +1 -1
- package/dist/query/post-edit/decision.d.ts +1 -0
- package/dist/query/post-edit/decision.js +13 -4
- package/dist/query/post-edit/decision.js.map +1 -1
- package/dist/query/post-edit.js +46 -16
- package/dist/query/post-edit.js.map +1 -1
- package/dist/task-snapshots.js +29 -0
- package/dist/task-snapshots.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.js.map +1 -1
- package/integrations/.claude-plugin/marketplace.json +23 -0
- package/integrations/claude-code/.claude-plugin/plugin.json +16 -0
- package/integrations/claude-code/.mcp.json +8 -0
- package/integrations/claude-code/README.md +177 -0
- package/integrations/claude-code/commands/codexa-brief.md +14 -0
- package/integrations/claude-code/commands/codexa-impact.md +14 -0
- package/integrations/claude-code/commands/codexa-plan.md +20 -0
- package/integrations/claude-code/commands/codexa-review.md +23 -0
- package/integrations/claude-code/commands/codexa-status.md +10 -0
- package/integrations/claude-code/hooks/hooks.json +39 -0
- package/integrations/claude-code/scripts/cmd/brief.sh +18 -0
- package/integrations/claude-code/scripts/cmd/impact.sh +35 -0
- package/integrations/claude-code/scripts/cmd/lib.sh +136 -0
- package/integrations/claude-code/scripts/cmd/plan.sh +52 -0
- package/integrations/claude-code/scripts/cmd/review.sh +66 -0
- package/integrations/claude-code/scripts/cmd/status.sh +52 -0
- package/integrations/claude-code/scripts/codexa-mcp.js +111 -0
- package/integrations/claude-code/scripts/lib/codexa-repo.sh +773 -0
- package/integrations/claude-code/scripts/pre-edit.sh +116 -0
- package/integrations/claude-code/scripts/session-start.sh +201 -0
- package/integrations/claude-code/scripts/stop.sh +443 -0
- package/integrations/claude-code/tests/cmd-smoke.sh +310 -0
- package/integrations/claude-code/tests/hook-smoke.sh +1412 -0
- package/package.json +6 -3
- package/plugins/codexa/.codex-plugin/plugin.json +1 -1
package/dist/eval/scoring.js
CHANGED
|
@@ -68,8 +68,15 @@ export function scoreScenario(scenario, result, baseline, failOnRefresh, redactS
|
|
|
68
68
|
if (precisionAtK !== null && precisionAtK < minPrecision) {
|
|
69
69
|
failures.push(`precision@${precisionK} ${precisionAtK.toFixed(2)} < ${minPrecision.toFixed(2)}`);
|
|
70
70
|
}
|
|
71
|
+
// The compactness ratio is meaningless against a tiny baseline: a 1-2
|
|
72
|
+
// line `git status` makes ANY useful packet look bloated (ratio 5.00 for
|
|
73
|
+
// ten context files against two dirty ones). Enforce only when the
|
|
74
|
+
// baseline is substantial enough for the comparison to mean something.
|
|
75
|
+
const MIN_BASELINE_LINES_FOR_RATIO = 5;
|
|
71
76
|
if (scenario.oracle.maxSelectedToBaselineRatio !== undefined &&
|
|
72
77
|
selectedToBaselineRatio !== null &&
|
|
78
|
+
baselineLines !== null &&
|
|
79
|
+
baselineLines >= MIN_BASELINE_LINES_FOR_RATIO &&
|
|
73
80
|
selectedToBaselineRatio > scenario.oracle.maxSelectedToBaselineRatio) {
|
|
74
81
|
failures.push(`selected/baseline ratio ${selectedToBaselineRatio.toFixed(2)} > ${scenario.oracle.maxSelectedToBaselineRatio.toFixed(2)}`);
|
|
75
82
|
}
|
|
@@ -100,6 +107,16 @@ export function scoreScenario(scenario, result, baseline, failOnRefresh, redactS
|
|
|
100
107
|
if (failOnRefresh && refreshed) {
|
|
101
108
|
failures.push(`query auto-refreshed from ${result.refresh?.reason ?? "unknown"}`);
|
|
102
109
|
}
|
|
110
|
+
// The headline gate conditions, enforced — not just recorded as
|
|
111
|
+
// calibration data. Without these, a ranking regression could sit at the
|
|
112
|
+
// per-scenario minimum thresholds while raw grep strictly wins, and the
|
|
113
|
+
// build would stay green under a step named "fails if raw grep wins".
|
|
114
|
+
if (rawRgBetter) {
|
|
115
|
+
failures.push(`raw baseline beat Codexa: ${rawRgBetterReason ?? "baseline metrics higher"}`);
|
|
116
|
+
}
|
|
117
|
+
if (heuristicHeavy) {
|
|
118
|
+
failures.push("heuristic-heavy packet: heuristic evidence outweighs authoritative+derived");
|
|
119
|
+
}
|
|
103
120
|
const measured = [fileRecall, changedFileRecall, testRecall, precisionAtK].filter((value) => value !== null);
|
|
104
121
|
const baseScore = measured.length > 0 ? measured.reduce((sum, value) => sum + value, 0) / measured.length : failures.length === 0 ? 1 : 0;
|
|
105
122
|
const score = scored ? Math.max(0, baseScore - Math.min(0.5, failures.length * 0.1)) : 0;
|
package/dist/eval/scoring.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../src/eval/scoring.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../src/eval/scoring.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const IMPLICIT_BASELINE_TASK = "Implicit pre-edit baseline";
|
|
2
|
+
export interface ImplicitBaselineResult {
|
|
3
|
+
status: "saved" | "existing-snapshot" | "skipped";
|
|
4
|
+
taskId?: string;
|
|
5
|
+
latestTaskId?: string;
|
|
6
|
+
reason?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function saveImplicitBaselineSnapshot(repoRoot: string): Promise<ImplicitBaselineResult>;
|
|
@@ -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,66 @@ 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 {
|
|
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
|
-
|
|
11
|
+
// An ephemeral runner cache path (npm's ~/.npm/_npx/<hash>/…, pnpm's
|
|
12
|
+
// …/pnpm/dlx/<hash>/…, yarn's $TMP/xfs-<hash>/dlx-<pid>/…) is evicted on
|
|
13
|
+
// cache prune or reboot; baking it into MCP config breaks server startup
|
|
14
|
+
// weeks later with no visible cause. Pin the published package version
|
|
15
|
+
// instead so the config stays launchable.
|
|
16
|
+
function resolveLaunchSpec(cliPath) {
|
|
17
|
+
// The yarn shape requires BOTH segments (xfs-<hex>/dlx-<id>): matching
|
|
18
|
+
// a bare "dlx-" directory would mis-pin ordinary local installs that
|
|
19
|
+
// happen to live under a dlx-named folder.
|
|
20
|
+
const ephemeral = /[\\/]_npx[\\/]/u.test(cliPath) || /[\\/]pnpm[\\/]dlx[\\/]/u.test(cliPath) || /[\\/]xfs-[0-9a-f]+[\\/]dlx-[^\\/]+[\\/]/u.test(cliPath);
|
|
21
|
+
if (ephemeral) {
|
|
22
|
+
return { command: "npx", args: ["-y", `@mirnoorata/codexa@${CODEXA_VERSION}`], pinnedNpx: true };
|
|
23
|
+
}
|
|
24
|
+
return { command: "node", args: [cliPath], pinnedNpx: false };
|
|
25
|
+
}
|
|
26
|
+
// Re-running plain `codexa init` must not silently change an existing
|
|
27
|
+
// install's tool exposure (the rendered managed block historically told
|
|
28
|
+
// full-profile users to refresh with exactly `codexa init`). When --tools is
|
|
29
|
+
// not passed, the previously rendered profile wins; "core" only applies to
|
|
30
|
+
// fresh installs.
|
|
31
|
+
function detectExistingToolProfile(existingConfig) {
|
|
32
|
+
if (!existingConfig.includes("# >>> codexa managed")) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
const lines = existingConfig.split(/\r?\n/);
|
|
36
|
+
let inManaged = false;
|
|
37
|
+
let sawManaged = false;
|
|
38
|
+
for (const line of lines) {
|
|
39
|
+
const trimmed = line.trim();
|
|
40
|
+
if (trimmed === "# >>> codexa managed") {
|
|
41
|
+
inManaged = true;
|
|
42
|
+
sawManaged = true;
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (trimmed === "# <<< codexa managed") {
|
|
46
|
+
inManaged = false;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (inManaged && /^enabled_tools\s*=/u.test(trimmed)) {
|
|
50
|
+
return "core";
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return sawManaged ? "full" : undefined;
|
|
54
|
+
}
|
|
11
55
|
export async function initializeProject(repoInput, options) {
|
|
12
56
|
const repoRoot = resolveInitRepo(repoInput);
|
|
13
57
|
const codexDir = path.join(repoRoot, ".codex");
|
|
14
58
|
const serverName = validateServerName(options.serverName ?? `codexa-${slugify(path.basename(repoRoot))}`);
|
|
15
59
|
const cliPath = path.resolve(options.cliPath);
|
|
60
|
+
const launch = resolveLaunchSpec(cliPath);
|
|
16
61
|
const configPath = path.join(codexDir, "config.toml");
|
|
17
62
|
const hooksPath = path.join(codexDir, "hooks.json");
|
|
18
63
|
const writeHooks = options.hooks ?? true;
|
|
64
|
+
const toolProfile = options.toolProfile ?? detectExistingToolProfile(await readTextIfExists(configPath)) ?? "core";
|
|
65
|
+
const autoRefresh = options.autoRefresh ?? true;
|
|
19
66
|
await mkdir(codexDir, { recursive: true });
|
|
20
67
|
const keepHooksFeature = writeHooks
|
|
21
68
|
? true
|
|
@@ -24,21 +71,27 @@ export async function initializeProject(repoInput, options) {
|
|
|
24
71
|
repoRoot
|
|
25
72
|
});
|
|
26
73
|
await upsertCodexConfig(configPath, {
|
|
27
|
-
autoRefresh
|
|
74
|
+
autoRefresh,
|
|
28
75
|
cliPath,
|
|
76
|
+
launch,
|
|
29
77
|
repoRoot,
|
|
30
78
|
serverName,
|
|
31
79
|
hooks: keepHooksFeature,
|
|
32
|
-
toolProfile
|
|
80
|
+
toolProfile
|
|
33
81
|
});
|
|
34
82
|
if (writeHooks) {
|
|
35
83
|
await upsertHooksConfig(hooksPath, {
|
|
36
84
|
cliPath,
|
|
85
|
+
launch,
|
|
37
86
|
repoRoot
|
|
38
87
|
});
|
|
39
88
|
}
|
|
40
89
|
const agentsMdPath = options.agentsMd ? await upsertManagedDoc(repoRoot, "AGENTS.md", serverName) : null;
|
|
41
90
|
const claudeMdPath = options.claudeMd ? await upsertManagedDoc(repoRoot, "CLAUDE.md", serverName) : null;
|
|
91
|
+
const claudeMcpPath = options.claude ? path.join(repoRoot, ".mcp.json") : null;
|
|
92
|
+
if (claudeMcpPath) {
|
|
93
|
+
await upsertClaudeMcpConfig(claudeMcpPath, { autoRefresh, launch, repoRoot, serverName, toolProfile });
|
|
94
|
+
}
|
|
42
95
|
const indexed = options.index === false
|
|
43
96
|
? null
|
|
44
97
|
: summarizeIndex(await buildIndexLocked({ repoRoot, writeArtifacts: true }));
|
|
@@ -48,7 +101,11 @@ export async function initializeProject(repoInput, options) {
|
|
|
48
101
|
hooksPath: writeHooks ? hooksPath : null,
|
|
49
102
|
agentsMdPath,
|
|
50
103
|
claudeMdPath,
|
|
104
|
+
claudeMcpPath,
|
|
51
105
|
serverName,
|
|
106
|
+
launchNote: launch.pinnedNpx
|
|
107
|
+
? `Codexa CLI resolved inside the evictable npx cache; generated configs pin "npx -y @mirnoorata/codexa@${CODEXA_VERSION}" instead of the cache path.`
|
|
108
|
+
: null,
|
|
52
109
|
indexed
|
|
53
110
|
};
|
|
54
111
|
}
|
|
@@ -125,7 +182,9 @@ function runGit(cwd, args) {
|
|
|
125
182
|
async function upsertCodexConfig(configPath, options) {
|
|
126
183
|
const existing = await readTextIfExists(configPath);
|
|
127
184
|
let next = stripManagedBlocks(existing);
|
|
128
|
-
|
|
185
|
+
// Legacy detection keys on the real CLI path, never on launch args like
|
|
186
|
+
// "-y", which would also match unrelated npx-launched server blocks.
|
|
187
|
+
next = removeCodexaMcpServerBlocks(next, { cliPath: options.cliPath, repoRoot: options.repoRoot });
|
|
129
188
|
next = removeMcpServerBlock(next, options.serverName);
|
|
130
189
|
if (options.hooks) {
|
|
131
190
|
next = ensureHooksFeature(next);
|
|
@@ -141,21 +200,21 @@ async function upsertCodexConfig(configPath, options) {
|
|
|
141
200
|
await writeFile(configPath, `${next}\n`, "utf8");
|
|
142
201
|
}
|
|
143
202
|
function renderMcpServerBlock(options) {
|
|
144
|
-
const args = [options.
|
|
203
|
+
const args = [...options.launch.args, "serve", options.repoRoot];
|
|
145
204
|
args.push(options.autoRefresh ? "--auto-refresh" : "--no-auto-refresh");
|
|
146
205
|
const toolProfileLines = options.toolProfile === "core"
|
|
147
206
|
? [
|
|
148
|
-
"# Core profile: fewer exposed tools means less per-turn schema cost and better routing.",
|
|
207
|
+
"# Core profile (default): fewer exposed tools means less per-turn schema cost and better routing.",
|
|
149
208
|
`# Re-run \`codexa init --tools full\` to expose every tool.`,
|
|
150
209
|
`enabled_tools = [${CORE_PROFILE_TOOL_NAMES.map(tomlString).join(", ")}]`
|
|
151
210
|
]
|
|
152
|
-
: [`#
|
|
153
|
-
const refreshCommand = options.toolProfile === "core" ? "codexa init
|
|
211
|
+
: [`# Full profile: every tool is exposed. \`codexa init\` (core default) exposes only ${CORE_PROFILE_TOOL_NAMES.join(", ")} to cut per-turn token cost.`];
|
|
212
|
+
const refreshCommand = options.toolProfile === "core" ? "codexa init" : "codexa init --tools full";
|
|
154
213
|
return [
|
|
155
214
|
"# >>> codexa managed",
|
|
156
215
|
`# Re-run \`${refreshCommand}\` from this repository to refresh this block.`,
|
|
157
216
|
`[mcp_servers.${options.serverName}]`,
|
|
158
|
-
`command =
|
|
217
|
+
`command = ${tomlString(options.launch.command)}`,
|
|
159
218
|
`args = [${args.map(tomlString).join(", ")}]`,
|
|
160
219
|
"startup_timeout_sec = 20",
|
|
161
220
|
"tool_timeout_sec = 60",
|
|
@@ -163,6 +222,56 @@ function renderMcpServerBlock(options) {
|
|
|
163
222
|
"# <<< codexa managed"
|
|
164
223
|
].join("\n");
|
|
165
224
|
}
|
|
225
|
+
// Repo-root .mcp.json is Claude Code's project-scope MCP config and is a
|
|
226
|
+
// shared, often-committed file: only the codexa entry is managed; every
|
|
227
|
+
// other server entry and unknown top-level key is preserved verbatim.
|
|
228
|
+
// Malformed JSON aborts instead of being silently replaced.
|
|
229
|
+
async function upsertClaudeMcpConfig(mcpPath, options) {
|
|
230
|
+
const existing = await readTextIfExists(mcpPath);
|
|
231
|
+
const parsed = existing.trim() ? parseHooksJson(existing, mcpPath) : {};
|
|
232
|
+
const servers = isPlainObject(parsed.mcpServers) ? { ...parsed.mcpServers } : {};
|
|
233
|
+
for (const [name, entry] of Object.entries(servers)) {
|
|
234
|
+
if (name === options.serverName || isCodexaMcpJsonEntry(entry)) {
|
|
235
|
+
delete servers[name];
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
const args = [...options.launch.args, "serve", options.repoRoot];
|
|
239
|
+
args.push(options.autoRefresh ? "--auto-refresh" : "--no-auto-refresh");
|
|
240
|
+
if (options.toolProfile === "core") {
|
|
241
|
+
args.push("--tools", "core");
|
|
242
|
+
}
|
|
243
|
+
servers[options.serverName] = {
|
|
244
|
+
command: options.launch.command,
|
|
245
|
+
args
|
|
246
|
+
};
|
|
247
|
+
await writeFile(mcpPath, `${JSON.stringify({ ...parsed, mcpServers: servers }, null, 2)}\n`, "utf8");
|
|
248
|
+
}
|
|
249
|
+
// Only delete entries that are recognizably a codexa launch: the token
|
|
250
|
+
// immediately before the standalone "serve" arg must be the codexa binary,
|
|
251
|
+
// package, or CLI bundle. A loose substring match would also delete user
|
|
252
|
+
// servers that merely mention "codexa" somewhere in a path plus a serve.js.
|
|
253
|
+
function isCodexaMcpJsonEntry(entry) {
|
|
254
|
+
if (!isPlainObject(entry)) {
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
const command = typeof entry.command === "string" ? entry.command : "";
|
|
258
|
+
const args = Array.isArray(entry.args) ? entry.args.filter((value) => typeof value === "string") : [];
|
|
259
|
+
const serveIndex = args.indexOf("serve");
|
|
260
|
+
if (serveIndex === -1) {
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
const launcherToken = serveIndex === 0 ? command : args[serveIndex - 1];
|
|
264
|
+
return isCodexaLauncherToken(launcherToken);
|
|
265
|
+
}
|
|
266
|
+
function isCodexaLauncherToken(token) {
|
|
267
|
+
if (!token) {
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
270
|
+
return (token === "codexa" ||
|
|
271
|
+
/^@mirnoorata\/codexa(?:@[^\s]*)?$/u.test(token) ||
|
|
272
|
+
/[\\/]codexa[\\/]dist[\\/]cli\.js$/u.test(token) ||
|
|
273
|
+
/[\\/]@mirnoorata[\\/]codexa[\\/]dist[\\/]cli\.js$/u.test(token));
|
|
274
|
+
}
|
|
166
275
|
const MANAGED_DOC_START = "<!-- >>> codexa managed -->";
|
|
167
276
|
const MANAGED_DOC_END = "<!-- <<< codexa managed -->";
|
|
168
277
|
// AGENTS.md (Codex) and CLAUDE.md (Claude Code) are different agent-instruction
|
|
@@ -239,6 +348,7 @@ async function upsertHooksConfig(hooksPath, options) {
|
|
|
239
348
|
const cleanedSessionStart = cleanHookList(hooks.SessionStart, options);
|
|
240
349
|
const cleanedPreToolUse = cleanHookList(hooks.PreToolUse, options);
|
|
241
350
|
const cleanedPostToolUse = cleanHookList(hooks.PostToolUse, options);
|
|
351
|
+
const launchShell = [options.launch.command, ...options.launch.args.map(shellQuote)].join(" ");
|
|
242
352
|
cleanedSessionStart.push({
|
|
243
353
|
codexaManaged: true,
|
|
244
354
|
matcher: "startup|resume",
|
|
@@ -246,7 +356,7 @@ async function upsertHooksConfig(hooksPath, options) {
|
|
|
246
356
|
{
|
|
247
357
|
codexaManaged: true,
|
|
248
358
|
type: "command",
|
|
249
|
-
command:
|
|
359
|
+
command: `${launchShell} session-start ${shellQuote(options.repoRoot)}`,
|
|
250
360
|
statusMessage: "Loading Codexa context",
|
|
251
361
|
timeout: 5
|
|
252
362
|
}
|
|
@@ -259,9 +369,9 @@ async function upsertHooksConfig(hooksPath, options) {
|
|
|
259
369
|
{
|
|
260
370
|
codexaManaged: true,
|
|
261
371
|
type: "command",
|
|
262
|
-
command:
|
|
263
|
-
statusMessage: "
|
|
264
|
-
timeout:
|
|
372
|
+
command: `${launchShell} hook-pre-edit ${shellQuote(options.repoRoot)}`,
|
|
373
|
+
statusMessage: "Saving Codexa pre-edit baseline",
|
|
374
|
+
timeout: 10
|
|
265
375
|
}
|
|
266
376
|
]
|
|
267
377
|
});
|
|
@@ -272,7 +382,7 @@ async function upsertHooksConfig(hooksPath, options) {
|
|
|
272
382
|
{
|
|
273
383
|
codexaManaged: true,
|
|
274
384
|
type: "command",
|
|
275
|
-
command:
|
|
385
|
+
command: `${launchShell} hook-post-edit ${shellQuote(options.repoRoot)}`,
|
|
276
386
|
statusMessage: "Running Codexa post-edit review",
|
|
277
387
|
timeout: 90
|
|
278
388
|
}
|
|
@@ -352,6 +462,10 @@ function isCodexaHookCommand(command, options) {
|
|
|
352
462
|
if (/^codexa-sessionstart(?:\s|$)/u.test(trimmed) || /(?:^|\/)codexa-sessionstart-[^/\s]+\.sh(?:\s|$)/u.test(trimmed)) {
|
|
353
463
|
return true;
|
|
354
464
|
}
|
|
465
|
+
// Pinned-npx form written when init ran from an evictable npx cache.
|
|
466
|
+
if (/^npx\s+(?:'-y'|-y)\s+'?@mirnoorata\/codexa(?:@[^\s']*)?'?\s+(?:session-start|hook-pre-edit|hook-post-edit)(?:\s|$)/u.test(trimmed)) {
|
|
467
|
+
return true;
|
|
468
|
+
}
|
|
355
469
|
for (const action of ["session-start", "hook-pre-edit", "hook-post-edit"]) {
|
|
356
470
|
const generated = `node ${shellQuote(options.cliPath)} ${action} ${shellQuote(options.repoRoot)}`;
|
|
357
471
|
const generatedUnquoted = `node ${options.cliPath} ${action} ${options.repoRoot}`;
|