oh-my-codex 0.18.12 → 0.18.13

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 (95) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +1 -1
  3. package/README.md +7 -0
  4. package/dist/autopilot/__tests__/ralplan-gate.test.js +621 -0
  5. package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -1
  6. package/dist/autopilot/ralplan-gate.d.ts.map +1 -1
  7. package/dist/autopilot/ralplan-gate.js +32 -18
  8. package/dist/autopilot/ralplan-gate.js.map +1 -1
  9. package/dist/cli/__tests__/doctor-invalid-config.test.js +35 -0
  10. package/dist/cli/__tests__/doctor-invalid-config.test.js.map +1 -1
  11. package/dist/cli/__tests__/index.test.js +54 -1
  12. package/dist/cli/__tests__/index.test.js.map +1 -1
  13. package/dist/cli/__tests__/resume.test.js +217 -1
  14. package/dist/cli/__tests__/resume.test.js.map +1 -1
  15. package/dist/cli/__tests__/session-search-help.test.js +3 -2
  16. package/dist/cli/__tests__/session-search-help.test.js.map +1 -1
  17. package/dist/cli/__tests__/session-search.test.js +64 -2
  18. package/dist/cli/__tests__/session-search.test.js.map +1 -1
  19. package/dist/cli/__tests__/setup-install-mode.test.js +6 -5
  20. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  21. package/dist/cli/__tests__/setup-prompts-overwrite.test.js +74 -0
  22. package/dist/cli/__tests__/setup-prompts-overwrite.test.js.map +1 -1
  23. package/dist/cli/__tests__/setup-scope.test.js +45 -0
  24. package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
  25. package/dist/cli/__tests__/update.test.js +5 -2
  26. package/dist/cli/__tests__/update.test.js.map +1 -1
  27. package/dist/cli/doctor.d.ts.map +1 -1
  28. package/dist/cli/doctor.js +9 -1
  29. package/dist/cli/doctor.js.map +1 -1
  30. package/dist/cli/index.d.ts +9 -1
  31. package/dist/cli/index.d.ts.map +1 -1
  32. package/dist/cli/index.js +209 -7
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/cli/project-runtime-codex-homes.d.ts +6 -0
  35. package/dist/cli/project-runtime-codex-homes.d.ts.map +1 -0
  36. package/dist/cli/project-runtime-codex-homes.js +27 -0
  37. package/dist/cli/project-runtime-codex-homes.js.map +1 -0
  38. package/dist/cli/session-search.d.ts.map +1 -1
  39. package/dist/cli/session-search.js +8 -1
  40. package/dist/cli/session-search.js.map +1 -1
  41. package/dist/cli/setup.d.ts +1 -0
  42. package/dist/cli/setup.d.ts.map +1 -1
  43. package/dist/cli/setup.js +168 -4
  44. package/dist/cli/setup.js.map +1 -1
  45. package/dist/cli/update.d.ts.map +1 -1
  46. package/dist/cli/update.js +2 -0
  47. package/dist/cli/update.js.map +1 -1
  48. package/dist/config/__tests__/codex-hooks.test.js +38 -24
  49. package/dist/config/__tests__/codex-hooks.test.js.map +1 -1
  50. package/dist/config/codex-hooks.d.ts +6 -0
  51. package/dist/config/codex-hooks.d.ts.map +1 -1
  52. package/dist/config/codex-hooks.js +34 -49
  53. package/dist/config/codex-hooks.js.map +1 -1
  54. package/dist/pipeline/__tests__/orchestrator.test.js +125 -0
  55. package/dist/pipeline/__tests__/orchestrator.test.js.map +1 -1
  56. package/dist/pipeline/__tests__/stages.test.js +109 -0
  57. package/dist/pipeline/__tests__/stages.test.js.map +1 -1
  58. package/dist/pipeline/orchestrator.d.ts.map +1 -1
  59. package/dist/pipeline/orchestrator.js +7 -0
  60. package/dist/pipeline/orchestrator.js.map +1 -1
  61. package/dist/ralplan/__tests__/consensus-gate.test.js +440 -1
  62. package/dist/ralplan/__tests__/consensus-gate.test.js.map +1 -1
  63. package/dist/ralplan/consensus-gate.d.ts +2 -0
  64. package/dist/ralplan/consensus-gate.d.ts.map +1 -1
  65. package/dist/ralplan/consensus-gate.js +173 -71
  66. package/dist/ralplan/consensus-gate.js.map +1 -1
  67. package/dist/scripts/__tests__/codex-native-hook.test.js +273 -0
  68. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  69. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  70. package/dist/scripts/codex-native-hook.js +56 -12
  71. package/dist/scripts/codex-native-hook.js.map +1 -1
  72. package/dist/scripts/codex-native-pre-post.d.ts +1 -0
  73. package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
  74. package/dist/scripts/codex-native-pre-post.js +130 -0
  75. package/dist/scripts/codex-native-pre-post.js.map +1 -1
  76. package/dist/session-history/__tests__/search.test.js +166 -0
  77. package/dist/session-history/__tests__/search.test.js.map +1 -1
  78. package/dist/session-history/search.d.ts +7 -0
  79. package/dist/session-history/search.d.ts.map +1 -1
  80. package/dist/session-history/search.js +83 -24
  81. package/dist/session-history/search.js.map +1 -1
  82. package/dist/sidecar/__tests__/collector.test.js +60 -0
  83. package/dist/sidecar/__tests__/collector.test.js.map +1 -1
  84. package/dist/sidecar/collector.d.ts.map +1 -1
  85. package/dist/sidecar/collector.js +3 -6
  86. package/dist/sidecar/collector.js.map +1 -1
  87. package/dist/verification/__tests__/ci-rust-gates.test.js +4 -2
  88. package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
  89. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js +71 -3
  90. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js.map +1 -1
  91. package/package.json +1 -1
  92. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  93. package/src/scripts/__tests__/codex-native-hook.test.ts +363 -0
  94. package/src/scripts/codex-native-hook.ts +68 -18
  95. package/src/scripts/codex-native-pre-post.ts +137 -0
@@ -0,0 +1,6 @@
1
+ export interface ProjectRuntimeCodexHome {
2
+ path: string;
3
+ sessionCountHint: number;
4
+ }
5
+ export declare function discoverProjectRuntimeCodexHomes(cwd: string): Promise<ProjectRuntimeCodexHome[]>;
6
+ //# sourceMappingURL=project-runtime-codex-homes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-runtime-codex-homes.d.ts","sourceRoot":"","sources":["../../src/cli/project-runtime-codex-homes.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,gCAAgC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAiBtG"}
@@ -0,0 +1,27 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { readdir } from 'node:fs/promises';
3
+ import { join } from 'node:path';
4
+ import { omxRoot } from '../utils/paths.js';
5
+ export async function discoverProjectRuntimeCodexHomes(cwd) {
6
+ const root = join(omxRoot(cwd), 'runtime', 'codex-home');
7
+ if (!existsSync(root))
8
+ return [];
9
+ const entries = await readdir(root, { withFileTypes: true }).catch(() => []);
10
+ const homes = [];
11
+ for (const entry of entries) {
12
+ if (!entry.isDirectory() || !entry.name.startsWith('omx-'))
13
+ continue;
14
+ const home = join(root, entry.name);
15
+ const sessions = join(home, 'sessions');
16
+ if (!existsSync(sessions))
17
+ continue;
18
+ const sessionCountHint = await countImmediateSessionEntries(sessions);
19
+ homes.push({ path: home, sessionCountHint });
20
+ }
21
+ return homes.sort((a, b) => b.path.localeCompare(a.path));
22
+ }
23
+ async function countImmediateSessionEntries(sessionsDir) {
24
+ const years = await readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
25
+ return years.filter((entry) => entry.isDirectory()).length;
26
+ }
27
+ //# sourceMappingURL=project-runtime-codex-homes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-runtime-codex-homes.js","sourceRoot":"","sources":["../../src/cli/project-runtime-codex-homes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAO5C,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,GAAW;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAA8B,EAAE,CAAC;IAE5C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS;QACrE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QACpC,MAAM,gBAAgB,GAAG,MAAM,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,4BAA4B,CAAC,WAAmB;IAC7D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-search.d.ts","sourceRoot":"","sources":["../../src/cli/session-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAyBzH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC;CACf;AAUD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,uBAAuB,CA8D9E;AAuBD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBlE"}
1
+ {"version":3,"file":"session-search.d.ts","sourceRoot":"","sources":["../../src/cli/session-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AA0BzH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC;CACf;AAUD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,uBAAuB,CAmE9E;AAuBD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBlE"}
@@ -9,6 +9,7 @@ Options:
9
9
  --session <id> Restrict to a specific session id or id fragment
10
10
  --since <spec> Restrict by recency (examples: 7d, 24h, 2026-03-10)
11
11
  --project <scope> Filter by project context: current | all | <cwd-fragment>
12
+ --codex-home <path> Search only the supplied Codex home (escape hatch)
12
13
  --context <n> Snippet context characters (default: 80)
13
14
  --case-sensitive Match query using exact case
14
15
  --json Emit structured JSON
@@ -43,7 +44,7 @@ export function parseSessionSearchArgs(args) {
43
44
  options.caseSensitive = true;
44
45
  continue;
45
46
  }
46
- if (token === '--limit' || token === '--session' || token === '--since' || token === '--project' || token === '--context') {
47
+ if (token === '--limit' || token === '--session' || token === '--since' || token === '--project' || token === '--context' || token === '--codex-home') {
47
48
  const next = args[index + 1];
48
49
  if (!next || next.startsWith('-')) {
49
50
  throw new Error(`Missing value after ${token}.`);
@@ -58,6 +59,8 @@ export function parseSessionSearchArgs(args) {
58
59
  options.project = next;
59
60
  if (token === '--context')
60
61
  options.context = parsePositiveInteger(next, token);
62
+ if (token === '--codex-home')
63
+ options.codexHomeDir = next;
61
64
  index += 1;
62
65
  continue;
63
66
  }
@@ -81,6 +84,10 @@ export function parseSessionSearchArgs(args) {
81
84
  options.context = parsePositiveInteger(token.slice('--context='.length), '--context');
82
85
  continue;
83
86
  }
87
+ if (token.startsWith('--codex-home=')) {
88
+ options.codexHomeDir = token.slice('--codex-home='.length);
89
+ continue;
90
+ }
84
91
  if (token.startsWith('-')) {
85
92
  throw new Error(`Unknown option: ${token}`);
86
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-search.js","sourceRoot":"","sources":["../../src/cli/session-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-search.js","sourceRoot":"","sources":["../../src/cli/session-search.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ interface SetupOptions {
16
16
  scope?: SetupScope;
17
17
  verbose?: boolean;
18
18
  agentsOverwritePrompt?: (destinationPath: string) => Promise<boolean>;
19
+ skipNativeAgentRefresh?: boolean;
19
20
  setupScopePrompt?: (defaultScope: SetupScope) => Promise<SetupScope>;
20
21
  persistedSetupReviewPrompt?: (preferences: Partial<PersistedSetupScope>) => Promise<PersistedSetupReviewDecision>;
21
22
  installModePrompt?: (defaultMode: SetupInstallMode) => Promise<SetupInstallMode>;
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
package/dist/cli/setup.js CHANGED
@@ -9,9 +9,10 @@ import { spawnSync } from "child_process";
9
9
  import { createInterface } from "readline/promises";
10
10
  import { homedir } from "os";
11
11
  import TOML from "@iarna/toml";
12
+ import { createHash } from "crypto";
12
13
  import { codexHome, codexConfigPath, codexPromptsDir, codexAgentsDir, userSkillsDir, omxStateDir, detectLegacySkillRootOverlap, omxPlansDir, omxLogsDir, } from "../utils/paths.js";
13
14
  import { buildMergedConfig, getRootModelName, getRootTomlArray, hasLegacyOmxTeamRunTable, isOmxManagedNotifyCommand, sanitizePreviousNotifyCommand, stripExistingOmxBlocks, stripExistingSharedMcpRegistryBlock, mergeSharedMcpRegistryBlock, stripOmxEnvSettings, stripOmxFeatureFlags, stripOmxSeededBehavioralDefaults, upsertPluginModeRuntimeFeatureFlags, upsertManagedCodexHookTrustState, stripManagedCodexHookTrustState, OMX_DEVELOPER_INSTRUCTIONS, OMX_PLUGIN_DEVELOPER_INSTRUCTIONS, hasFirstPartyOmxMcpRegistrations, extractFirstPartyOmxMcpSections, stripFirstPartyOmxMcpSections, } from "../config/generator.js";
14
- import { buildManagedCodexHookTrustState, buildManagedCodexNativeHookWindowsShimContent, buildManagedCodexNativeHookWindowsShimPath, mergeManagedCodexHooksConfig, removeManagedCodexHooks, } from "../config/codex-hooks.js";
15
+ import { buildManagedCodexHookTrustState, buildManagedCodexNativeHookWindowsShimContent, buildManagedCodexNativeHookWindowsShimPath, mergeManagedCodexHooksConfig, extractCodexHooksJsonTrustState, removeManagedCodexHooks, } from "../config/codex-hooks.js";
15
16
  import { getLegacyUnifiedMcpRegistryCandidate, getUnifiedMcpRegistryCandidates, loadUnifiedMcpRegistry, planClaudeCodeMcpSettingsSync, } from "../config/mcp-registry.js";
16
17
  import { generateAgentToml } from "../agents/native-config.js";
17
18
  import { AGENT_DEFINITIONS } from "../agents/definitions.js";
@@ -63,6 +64,7 @@ const PROJECT_GITIGNORE_ENTRIES = [
63
64
  const LEGACY_PROJECT_GITIGNORE_ENTRIES = [".codex/"];
64
65
  const SETUP_ONLY_INSTALLABLE_SKILLS = new Set(["wiki"]);
65
66
  const DEFAULT_SETUP_MCP_MODE = "none";
67
+ const SKIP_NATIVE_AGENT_REFRESH_ENV = "OMX_SKIP_NATIVE_AGENT_REFRESH";
66
68
  const HARD_DEPRECATED_SKILL_NAMES = new Set(["web-clone"]);
67
69
  const TEAM_MODE_SKILL_NAMES = new Set(["team", "worker"]);
68
70
  const TEAM_MODE_PROMPT_NAMES = new Set(["team-executor"]);
@@ -193,6 +195,68 @@ function getBackupContext(scope, projectRoot) {
193
195
  baseRoot: homedir(),
194
196
  };
195
197
  }
198
+ function escapeTomlBasicString(value) {
199
+ return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
200
+ }
201
+ function renderHooksJsonTrustStateToml(content) {
202
+ const trustState = extractCodexHooksJsonTrustState(content);
203
+ return Object.entries(trustState)
204
+ .sort(([left], [right]) => left.localeCompare(right))
205
+ .flatMap(([key, state]) => [
206
+ `[hooks.state."${escapeTomlBasicString(key)}"]`,
207
+ `trusted_hash = "${escapeTomlBasicString(state.trusted_hash)}"`,
208
+ ...(typeof state.enabled === "boolean" ? [`enabled = ${state.enabled}`] : []),
209
+ "",
210
+ ])
211
+ .join("\n")
212
+ .trimEnd();
213
+ }
214
+ function existingHooksStateKeys(config) {
215
+ try {
216
+ const parsed = TOML.parse(config);
217
+ return new Set(Object.keys(parsed.hooks?.state ?? {}));
218
+ }
219
+ catch {
220
+ return new Set();
221
+ }
222
+ }
223
+ function appendHooksJsonTrustStateToConfig(config, hooksContent) {
224
+ const existingKeys = existingHooksStateKeys(config);
225
+ const trustState = extractCodexHooksJsonTrustState(hooksContent);
226
+ const migratableContent = JSON.stringify({
227
+ state: Object.fromEntries(Object.entries(trustState).filter(([key]) => !existingKeys.has(key))),
228
+ });
229
+ const trustToml = renderHooksJsonTrustStateToml(migratableContent);
230
+ if (!trustToml)
231
+ return config;
232
+ const base = config.trimEnd();
233
+ return [
234
+ base,
235
+ base ? "" : null,
236
+ "# Migrated from legacy hooks.json state; kept in Codex config.toml because Codex 0.140 rejects top-level hooks.json state.",
237
+ trustToml,
238
+ "",
239
+ ].filter((line) => line !== null).join("\n");
240
+ }
241
+ async function migrateLegacyHooksJsonTrustStateToConfig(configPath, hooksContent, backupContext, summary, options) {
242
+ const existingConfig = existsSync(configPath)
243
+ ? await readFile(configPath, "utf-8")
244
+ : "";
245
+ const nextConfig = appendHooksJsonTrustStateToConfig(existingConfig, hooksContent);
246
+ if (nextConfig === existingConfig)
247
+ return;
248
+ if (await ensureBackup(configPath, existsSync(configPath), backupContext, options)) {
249
+ summary.backedUp += 1;
250
+ }
251
+ if (!options.dryRun) {
252
+ await mkdir(dirname(configPath), { recursive: true });
253
+ await writeFile(configPath, nextConfig);
254
+ }
255
+ summary.updated += 1;
256
+ if (options.verbose) {
257
+ console.log(` ${options.dryRun ? "would migrate" : "migrated"} legacy hooks.json trust state to ${configPath}`);
258
+ }
259
+ }
196
260
  async function ensureBackup(destinationPath, contentChanged, backupContext, options) {
197
261
  if (!contentChanged || !existsSync(destinationPath))
198
262
  return false;
@@ -1193,6 +1257,7 @@ async function applyPluginModeHooksConfig(configPath, hooksPath, pkgRoot, codexH
1193
1257
  const existingHooksContent = existsSync(hooksPath)
1194
1258
  ? await readFile(hooksPath, "utf-8")
1195
1259
  : null;
1260
+ await migrateLegacyHooksJsonTrustStateToConfig(configPath, existingHooksContent, backupContext, summary, options);
1196
1261
  if (options.pluginScopedHooks) {
1197
1262
  await cleanupPluginModeManagedHooksJson(existingHooksContent, hooksPath, backupContext, summary, options);
1198
1263
  }
@@ -1285,7 +1350,7 @@ async function cleanupPluginModeLegacyConfig(configPath, backupContext, options)
1285
1350
  return true;
1286
1351
  }
1287
1352
  export async function setup(options = {}) {
1288
- const { force = false, dryRun = false, installMode: requestedInstallMode, mcpMode: requestedMcpMode, teamMode: requestedTeamMode, scope: requestedScope, verbose = false, setupScopePrompt, persistedSetupReviewPrompt, installModePrompt, modelUpgradePrompt, pluginAgentsMdPrompt, pluginDeveloperInstructionsPrompt, firstPartyMcpRemovalPrompt, } = options;
1353
+ const { force = false, dryRun = false, installMode: requestedInstallMode, mcpMode: requestedMcpMode, teamMode: requestedTeamMode, scope: requestedScope, verbose = false, skipNativeAgentRefresh: requestedSkipNativeAgentRefresh = false, setupScopePrompt, persistedSetupReviewPrompt, installModePrompt, modelUpgradePrompt, pluginAgentsMdPrompt, pluginDeveloperInstructionsPrompt, firstPartyMcpRemovalPrompt, } = options;
1289
1354
  const pkgRoot = getPackageRoot();
1290
1355
  const projectRoot = process.cwd();
1291
1356
  const persistedPreferences = await readPersistedSetupPreferences(projectRoot, { warnOnLegacyScope: true });
@@ -1324,6 +1389,8 @@ export async function setup(options = {}) {
1324
1389
  : undefined)
1325
1390
  ?? "enabled";
1326
1391
  const isTeamModeEnabled = teamModeEnabled(resolvedTeamMode);
1392
+ const skipNativeAgentRefresh = requestedSkipNativeAgentRefresh ||
1393
+ process.env[SKIP_NATIVE_AGENT_REFRESH_ENV] === "1";
1327
1394
  const scopeDirs = resolveScopeDirectories(resolvedScope.scope, projectRoot);
1328
1395
  const existingConfigForMcpMigration = existsSync(scopeDirs.codexConfigFile)
1329
1396
  ? await readFile(scopeDirs.codexConfigFile, "utf-8")
@@ -1529,7 +1596,11 @@ export async function setup(options = {}) {
1529
1596
  }
1530
1597
  // Step 4: Install native agent configs
1531
1598
  console.log("[4/8] Installing native agent configs...");
1532
- if (isPluginInstallMode) {
1599
+ if (skipNativeAgentRefresh) {
1600
+ summary.nativeAgents = createEmptyCategorySummary();
1601
+ console.log(" Native agent refresh skipped for background update-check setup refresh.\n");
1602
+ }
1603
+ else if (isPluginInstallMode) {
1533
1604
  summary.nativeAgents = await refreshNativeAgentConfigs(pkgRoot, scopeDirs.nativeAgentsDir, backupContext, {
1534
1605
  force,
1535
1606
  dryRun,
@@ -1685,6 +1756,7 @@ export async function setup(options = {}) {
1685
1756
  const existingHooksContent = existsSync(scopeDirs.codexHooksFile)
1686
1757
  ? await readFile(scopeDirs.codexHooksFile, "utf-8")
1687
1758
  : null;
1759
+ await migrateLegacyHooksJsonTrustStateToConfig(scopeDirs.codexConfigFile, existingHooksContent, backupContext, summary.config, { dryRun, verbose });
1688
1760
  const hooksConfig = mergeManagedCodexHooksConfig(existingHooksContent, pkgRoot, scopeDirs.codexHooksFile, { platform: process.platform, codexHomeDir: scopeDirs.codexHomeDir });
1689
1761
  await syncManagedContent(hooksConfig, scopeDirs.codexHooksFile, summary.config, backupContext, { dryRun, verbose }, `native hooks ${scopeDirs.codexHooksFile}`);
1690
1762
  await syncManagedWindowsNativeHookShim(scopeDirs.codexHomeDir, pkgRoot, summary.config, backupContext, { dryRun, verbose });
@@ -2067,6 +2139,93 @@ async function syncManagedContent(content, dstPath, summary, backupContext, opti
2067
2139
  console.log(` ${options.dryRun ? "would update" : "updated"} ${verboseLabel}`);
2068
2140
  }
2069
2141
  }
2142
+ function hashContent(content) {
2143
+ return createHash("sha256").update(content).digest("hex");
2144
+ }
2145
+ function nativeAgentInstallManifestPath(agentsDir) {
2146
+ return join(agentsDir, "..", ".omx", "native-agents.json");
2147
+ }
2148
+ async function readNativeAgentInstallManifest(agentsDir) {
2149
+ const manifestPath = nativeAgentInstallManifestPath(agentsDir);
2150
+ if (!existsSync(manifestPath))
2151
+ return { version: 1, files: {} };
2152
+ try {
2153
+ const parsed = JSON.parse(await readFile(manifestPath, "utf-8"));
2154
+ if (parsed.version !== 1 ||
2155
+ !parsed.files ||
2156
+ typeof parsed.files !== "object") {
2157
+ return { version: 1, files: {} };
2158
+ }
2159
+ const files = {};
2160
+ for (const [fileName, entry] of Object.entries(parsed.files)) {
2161
+ if (!fileName.endsWith(".toml"))
2162
+ continue;
2163
+ if (!entry || typeof entry !== "object")
2164
+ continue;
2165
+ const sha256 = entry.sha256;
2166
+ if (typeof sha256 === "string" && /^[0-9a-f]{64}$/i.test(sha256)) {
2167
+ files[fileName] = { sha256: sha256.toLowerCase() };
2168
+ }
2169
+ }
2170
+ return { version: 1, files };
2171
+ }
2172
+ catch {
2173
+ return { version: 1, files: {} };
2174
+ }
2175
+ }
2176
+ async function writeNativeAgentInstallManifest(agentsDir, manifest) {
2177
+ const manifestPath = nativeAgentInstallManifestPath(agentsDir);
2178
+ await mkdir(dirname(manifestPath), { recursive: true });
2179
+ const sortedFiles = Object.fromEntries(Object.entries(manifest.files).sort(([left], [right]) => left.localeCompare(right)));
2180
+ await writeFile(manifestPath, JSON.stringify({ version: 1, files: sortedFiles }, null, 2) + "\n");
2181
+ }
2182
+ async function syncNativeAgentToml(content, dstPath, summary, backupContext, options, verboseLabel, manifest) {
2183
+ const fileName = basename(dstPath);
2184
+ const nextHash = hashContent(content);
2185
+ const destinationExists = existsSync(dstPath);
2186
+ if (!destinationExists) {
2187
+ if (!options.dryRun) {
2188
+ await mkdir(dirname(dstPath), { recursive: true });
2189
+ await writeFile(dstPath, content);
2190
+ manifest.files[fileName] = { sha256: nextHash };
2191
+ }
2192
+ summary.updated += 1;
2193
+ if (options.verbose) {
2194
+ console.log(` ${options.dryRun ? "would update" : "updated"} ${verboseLabel}`);
2195
+ }
2196
+ return;
2197
+ }
2198
+ const existing = await readFile(dstPath, "utf-8");
2199
+ const existingHash = hashContent(existing);
2200
+ if (existing === content) {
2201
+ if (!options.dryRun) {
2202
+ manifest.files[fileName] = { sha256: nextHash };
2203
+ }
2204
+ summary.unchanged += 1;
2205
+ return;
2206
+ }
2207
+ const priorHash = manifest.files[fileName]?.sha256;
2208
+ const safeToOverwrite = options.force || priorHash === existingHash;
2209
+ if (!safeToOverwrite) {
2210
+ summary.skipped += 1;
2211
+ if (options.verbose) {
2212
+ console.log(` skipped ${verboseLabel} (local modifications preserved; use --force to overwrite)`);
2213
+ }
2214
+ return;
2215
+ }
2216
+ if (await ensureBackup(dstPath, true, backupContext, options)) {
2217
+ summary.backedUp += 1;
2218
+ }
2219
+ if (!options.dryRun) {
2220
+ await mkdir(dirname(dstPath), { recursive: true });
2221
+ await writeFile(dstPath, content);
2222
+ manifest.files[fileName] = { sha256: nextHash };
2223
+ }
2224
+ summary.updated += 1;
2225
+ if (options.verbose) {
2226
+ console.log(` ${options.dryRun ? "would update" : "updated"} ${verboseLabel}`);
2227
+ }
2228
+ }
2070
2229
  async function syncManagedWindowsNativeHookShim(codexHomeDir, pkgRoot, summary, backupContext, options) {
2071
2230
  if (process.platform !== "win32")
2072
2231
  return;
@@ -2251,6 +2410,7 @@ async function refreshNativeAgentConfigs(pkgRoot, agentsDir, backupContext, opti
2251
2410
  if (!options.dryRun) {
2252
2411
  await mkdir(agentsDir, { recursive: true });
2253
2412
  }
2413
+ const nativeAgentManifest = await readNativeAgentInstallManifest(agentsDir);
2254
2414
  const manifest = tryReadCatalogManifest();
2255
2415
  const agentStatusByName = manifest
2256
2416
  ? getCatalogAgentStatusByName(manifest)
@@ -2285,7 +2445,7 @@ async function refreshNativeAgentConfigs(pkgRoot, agentsDir, backupContext, opti
2285
2445
  codexHomeOverride: join(agentsDir, ".."),
2286
2446
  });
2287
2447
  const dst = join(agentsDir, `${name}.toml`);
2288
- await syncManagedContent(toml, dst, summary, backupContext, options, `native agent ${name}.toml`);
2448
+ await syncNativeAgentToml(toml, dst, summary, backupContext, options, `native agent ${name}.toml`, nativeAgentManifest);
2289
2449
  }
2290
2450
  summary.removed += await cleanupObsoleteNativeAgents(agentsDir, backupContext, options);
2291
2451
  if (manifest) {
@@ -2316,6 +2476,7 @@ async function refreshNativeAgentConfigs(pkgRoot, agentsDir, backupContext, opti
2316
2476
  }
2317
2477
  if (!options.dryRun) {
2318
2478
  await rm(staleAgentPath, { force: true });
2479
+ delete nativeAgentManifest.files[file];
2319
2480
  }
2320
2481
  summary.removed += 1;
2321
2482
  if (options.verbose) {
@@ -2328,6 +2489,9 @@ async function refreshNativeAgentConfigs(pkgRoot, agentsDir, backupContext, opti
2328
2489
  }
2329
2490
  }
2330
2491
  }
2492
+ if (!options.dryRun) {
2493
+ await writeNativeAgentInstallManifest(agentsDir, nativeAgentManifest);
2494
+ }
2331
2495
  return summary;
2332
2496
  }
2333
2497
  async function cleanupObsoleteNativeAgents(agentsDir, backupContext, options) {