oh-my-codex 0.16.2 → 0.16.3

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 (149) hide show
  1. package/Cargo.lock +5 -5
  2. package/Cargo.toml +1 -1
  3. package/dist/cli/__tests__/doctor-warning-copy.test.js +36 -0
  4. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  5. package/dist/cli/__tests__/index.test.js +173 -3
  6. package/dist/cli/__tests__/index.test.js.map +1 -1
  7. package/dist/cli/__tests__/launch-fallback.test.js +58 -0
  8. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  9. package/dist/cli/__tests__/ralph.test.js +1 -0
  10. package/dist/cli/__tests__/ralph.test.js.map +1 -1
  11. package/dist/cli/__tests__/setup-hooks-shared-ownership.test.js +8 -0
  12. package/dist/cli/__tests__/setup-hooks-shared-ownership.test.js.map +1 -1
  13. package/dist/cli/__tests__/setup-install-mode.test.js +79 -2
  14. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  15. package/dist/cli/__tests__/team.test.js +161 -0
  16. package/dist/cli/__tests__/team.test.js.map +1 -1
  17. package/dist/cli/__tests__/uninstall.test.js +39 -1
  18. package/dist/cli/__tests__/uninstall.test.js.map +1 -1
  19. package/dist/cli/__tests__/update.test.js +109 -19
  20. package/dist/cli/__tests__/update.test.js.map +1 -1
  21. package/dist/cli/doctor.d.ts.map +1 -1
  22. package/dist/cli/doctor.js +17 -0
  23. package/dist/cli/doctor.js.map +1 -1
  24. package/dist/cli/index.d.ts.map +1 -1
  25. package/dist/cli/index.js +34 -4
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/cli/setup.d.ts.map +1 -1
  28. package/dist/cli/setup.js +68 -4
  29. package/dist/cli/setup.js.map +1 -1
  30. package/dist/cli/team.d.ts.map +1 -1
  31. package/dist/cli/team.js +54 -15
  32. package/dist/cli/team.js.map +1 -1
  33. package/dist/cli/uninstall.d.ts.map +1 -1
  34. package/dist/cli/uninstall.js +67 -5
  35. package/dist/cli/uninstall.js.map +1 -1
  36. package/dist/cli/update.d.ts +10 -2
  37. package/dist/cli/update.d.ts.map +1 -1
  38. package/dist/cli/update.js +99 -5
  39. package/dist/cli/update.js.map +1 -1
  40. package/dist/config/__tests__/codex-hooks.test.js +181 -4
  41. package/dist/config/__tests__/codex-hooks.test.js.map +1 -1
  42. package/dist/config/__tests__/generator-idempotent.test.js +59 -1
  43. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  44. package/dist/config/__tests__/generator-notify.test.js +39 -3
  45. package/dist/config/__tests__/generator-notify.test.js.map +1 -1
  46. package/dist/config/codex-hooks.d.ts +38 -4
  47. package/dist/config/codex-hooks.d.ts.map +1 -1
  48. package/dist/config/codex-hooks.js +181 -17
  49. package/dist/config/codex-hooks.js.map +1 -1
  50. package/dist/config/generator.d.ts +9 -0
  51. package/dist/config/generator.d.ts.map +1 -1
  52. package/dist/config/generator.js +176 -38
  53. package/dist/config/generator.js.map +1 -1
  54. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +29 -1
  55. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  56. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +10 -0
  57. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
  58. package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js +1 -0
  59. package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js.map +1 -1
  60. package/dist/hooks/__tests__/notify-hook-non-omx-guard.test.d.ts +2 -0
  61. package/dist/hooks/__tests__/notify-hook-non-omx-guard.test.d.ts.map +1 -0
  62. package/dist/hooks/__tests__/notify-hook-non-omx-guard.test.js +52 -0
  63. package/dist/hooks/__tests__/notify-hook-non-omx-guard.test.js.map +1 -0
  64. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js +148 -0
  65. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js.map +1 -1
  66. package/dist/hooks/__tests__/notify-hook-session-scope.test.js +3 -0
  67. package/dist/hooks/__tests__/notify-hook-session-scope.test.js.map +1 -1
  68. package/dist/hooks/__tests__/wiki-docs-contract.test.js +1 -2
  69. package/dist/hooks/__tests__/wiki-docs-contract.test.js.map +1 -1
  70. package/dist/planning/__tests__/artifacts.test.js +64 -0
  71. package/dist/planning/__tests__/artifacts.test.js.map +1 -1
  72. package/dist/planning/__tests__/ready-context-pack-role-refs.test.d.ts +2 -0
  73. package/dist/planning/__tests__/ready-context-pack-role-refs.test.d.ts.map +1 -0
  74. package/dist/planning/__tests__/ready-context-pack-role-refs.test.js +90 -0
  75. package/dist/planning/__tests__/ready-context-pack-role-refs.test.js.map +1 -0
  76. package/dist/planning/artifacts.d.ts +7 -2
  77. package/dist/planning/artifacts.d.ts.map +1 -1
  78. package/dist/planning/artifacts.js +62 -8
  79. package/dist/planning/artifacts.js.map +1 -1
  80. package/dist/planning/context-pack-status.d.ts +6 -0
  81. package/dist/planning/context-pack-status.d.ts.map +1 -1
  82. package/dist/planning/context-pack-status.js +25 -0
  83. package/dist/planning/context-pack-status.js.map +1 -1
  84. package/dist/ralph/persistence.d.ts +1 -1
  85. package/dist/ralph/persistence.d.ts.map +1 -1
  86. package/dist/ralph/persistence.js +8 -2
  87. package/dist/ralph/persistence.js.map +1 -1
  88. package/dist/scripts/__tests__/codex-native-hook.test.js +139 -11
  89. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  90. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  91. package/dist/scripts/codex-native-hook.js +9 -22
  92. package/dist/scripts/codex-native-hook.js.map +1 -1
  93. package/dist/scripts/notify-dispatcher.d.ts +7 -0
  94. package/dist/scripts/notify-dispatcher.d.ts.map +1 -0
  95. package/dist/scripts/notify-dispatcher.js +58 -0
  96. package/dist/scripts/notify-dispatcher.js.map +1 -0
  97. package/dist/scripts/notify-fallback-watcher.js +4 -0
  98. package/dist/scripts/notify-fallback-watcher.js.map +1 -1
  99. package/dist/scripts/notify-hook/ralph-session-resume.d.ts.map +1 -1
  100. package/dist/scripts/notify-hook/ralph-session-resume.js +96 -8
  101. package/dist/scripts/notify-hook/ralph-session-resume.js.map +1 -1
  102. package/dist/scripts/notify-hook/state-io.d.ts.map +1 -1
  103. package/dist/scripts/notify-hook/state-io.js +6 -2
  104. package/dist/scripts/notify-hook/state-io.js.map +1 -1
  105. package/dist/scripts/notify-hook/visual-verdict.js +3 -3
  106. package/dist/scripts/notify-hook/visual-verdict.js.map +1 -1
  107. package/dist/scripts/notify-hook.js +124 -0
  108. package/dist/scripts/notify-hook.js.map +1 -1
  109. package/dist/team/__tests__/approved-execution.test.js +45 -1
  110. package/dist/team/__tests__/approved-execution.test.js.map +1 -1
  111. package/dist/team/__tests__/runtime.test.js +173 -19
  112. package/dist/team/__tests__/runtime.test.js.map +1 -1
  113. package/dist/team/__tests__/worker-bootstrap.test.js +37 -0
  114. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  115. package/dist/team/approved-execution.d.ts +1 -0
  116. package/dist/team/approved-execution.d.ts.map +1 -1
  117. package/dist/team/approved-execution.js +50 -0
  118. package/dist/team/approved-execution.js.map +1 -1
  119. package/dist/team/delivery-log.d.ts.map +1 -1
  120. package/dist/team/delivery-log.js +8 -1
  121. package/dist/team/delivery-log.js.map +1 -1
  122. package/dist/team/runtime.d.ts.map +1 -1
  123. package/dist/team/runtime.js +104 -18
  124. package/dist/team/runtime.js.map +1 -1
  125. package/dist/team/state/mailbox.d.ts +1 -0
  126. package/dist/team/state/mailbox.d.ts.map +1 -1
  127. package/dist/team/state/mailbox.js +10 -1
  128. package/dist/team/state/mailbox.js.map +1 -1
  129. package/dist/team/state-root.js +1 -1
  130. package/dist/team/state-root.js.map +1 -1
  131. package/dist/team/state.d.ts.map +1 -1
  132. package/dist/team/state.js +2 -2
  133. package/dist/team/state.js.map +1 -1
  134. package/dist/team/worker-bootstrap.d.ts +7 -2
  135. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  136. package/dist/team/worker-bootstrap.js +17 -4
  137. package/dist/team/worker-bootstrap.js.map +1 -1
  138. package/package.json +1 -1
  139. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  140. package/plugins/oh-my-codex/skills/omx-setup/SKILL.md +1 -1
  141. package/skills/omx-setup/SKILL.md +1 -1
  142. package/src/scripts/__tests__/codex-native-hook.test.ts +158 -11
  143. package/src/scripts/codex-native-hook.ts +8 -21
  144. package/src/scripts/notify-dispatcher.ts +74 -0
  145. package/src/scripts/notify-fallback-watcher.ts +6 -2
  146. package/src/scripts/notify-hook/ralph-session-resume.ts +117 -8
  147. package/src/scripts/notify-hook/state-io.ts +4 -2
  148. package/src/scripts/notify-hook/visual-verdict.ts +3 -3
  149. package/src/scripts/notify-hook.ts +116 -0
@@ -5,7 +5,7 @@
5
5
  * The explicit `omx update` command uses the same executor but bypasses the
6
6
  * launch-time cadence so a user request always checks npm immediately.
7
7
  */
8
- import { spawnSync } from 'child_process';
8
+ import { spawn, spawnSync } from 'child_process';
9
9
  export interface UpdateState {
10
10
  last_checked_at: string;
11
11
  last_seen_latest?: string;
@@ -16,7 +16,7 @@ export interface UserInstallStamp {
16
16
  updated_at: string;
17
17
  }
18
18
  export interface UpdateExecutionResult {
19
- status: 'updated' | 'up-to-date' | 'declined' | 'failed' | 'unavailable';
19
+ status: 'updated' | 'scheduled' | 'up-to-date' | 'declined' | 'failed' | 'unavailable';
20
20
  currentVersion: string | null;
21
21
  latestVersion: string | null;
22
22
  }
@@ -28,13 +28,20 @@ type RunSetupRefreshResult = {
28
28
  ok: boolean;
29
29
  stderr: string;
30
30
  };
31
+ type RunDeferredUpdateResult = {
32
+ ok: boolean;
33
+ stderr: string;
34
+ logPath?: string;
35
+ };
31
36
  type SpawnSyncLike = typeof spawnSync;
37
+ type SpawnLike = typeof spawn;
32
38
  export declare function isNewerVersion(current: string, latest: string): boolean;
33
39
  export declare function shouldCheckForUpdates(nowMs: number, state: UpdateState | null, intervalMs?: number): boolean;
34
40
  declare function writeUpdateState(cwd: string, state: UpdateState): Promise<void>;
35
41
  declare function fetchLatestVersion(timeoutMs?: number): Promise<string | null>;
36
42
  declare function getCurrentVersion(): Promise<string | null>;
37
43
  declare function runGlobalUpdate(): RunGlobalUpdateResult;
44
+ export declare function runDeferredGlobalUpdate(cwd: string, spawnProcess?: SpawnLike, platform?: NodeJS.Platform, parentPid?: number): RunDeferredUpdateResult;
38
45
  declare function askYesNo(question: string): Promise<boolean>;
39
46
  interface UpdateDependencies {
40
47
  askYesNo: typeof askYesNo;
@@ -42,6 +49,7 @@ interface UpdateDependencies {
42
49
  getCurrentVersion: typeof getCurrentVersion;
43
50
  readUserInstallStamp: typeof readUserInstallStamp;
44
51
  runGlobalUpdate: typeof runGlobalUpdate;
52
+ runDeferredGlobalUpdate: typeof runDeferredGlobalUpdate;
45
53
  runSetupRefresh: (cwd: string) => Promise<RunSetupRefreshResult>;
46
54
  writeUpdateState: typeof writeUpdateState;
47
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,9 @@
6
6
  * launch-time cadence so a user request always checks npm immediately.
7
7
  */
8
8
  import { readFile, writeFile, mkdir } from 'fs/promises';
9
- import { existsSync } from 'fs';
9
+ import { appendFileSync, existsSync, mkdirSync } from 'fs';
10
10
  import { dirname, join } from 'path';
11
- import { spawnSync } from 'child_process';
11
+ import { spawn, spawnSync } from 'child_process';
12
12
  import { createInterface } from 'readline/promises';
13
13
  import { getPackageRoot } from '../utils/package.js';
14
14
  import { omxUserInstallStampPath } from '../utils/paths.js';
@@ -91,7 +91,7 @@ async function getCurrentVersion() {
91
91
  function runGlobalUpdate() {
92
92
  const result = spawnSync('npm', ['install', '-g', `${PACKAGE_NAME}@latest`], {
93
93
  encoding: 'utf-8',
94
- stdio: ['ignore', 'ignore', 'pipe'],
94
+ stdio: ['ignore', 'pipe', 'pipe'],
95
95
  timeout: 120000,
96
96
  windowsHide: true,
97
97
  });
@@ -103,6 +103,85 @@ function runGlobalUpdate() {
103
103
  }
104
104
  return { ok: true, stderr: '' };
105
105
  }
106
+ function formatUpdateLogPath(date = new Date()) {
107
+ return `update-${date.toISOString().replace(/[:.]/g, '-')}.log`;
108
+ }
109
+ export function runDeferredGlobalUpdate(cwd, spawnProcess = spawn, platform = process.platform, parentPid = process.pid) {
110
+ const logPath = join(cwd, '.omx', 'logs', formatUpdateLogPath());
111
+ try {
112
+ mkdirSync(dirname(logPath), { recursive: true });
113
+ const env = {
114
+ ...process.env,
115
+ OMX_DEFERRED_UPDATE_LOG: logPath,
116
+ OMX_DEFERRED_UPDATE_PARENT_PID: String(parentPid),
117
+ };
118
+ const command = platform === 'win32' ? 'powershell.exe' : 'sh';
119
+ const args = platform === 'win32'
120
+ ? [
121
+ '-NoProfile',
122
+ '-ExecutionPolicy',
123
+ 'Bypass',
124
+ '-Command',
125
+ [
126
+ '$ErrorActionPreference = "Continue"',
127
+ '$log = $env:OMX_DEFERRED_UPDATE_LOG',
128
+ '$parentPid = [int]$env:OMX_DEFERRED_UPDATE_PARENT_PID',
129
+ 'while (Get-Process -Id $parentPid -ErrorAction SilentlyContinue) { Start-Sleep -Seconds 1 }',
130
+ 'npm install -g oh-my-codex@latest *>> $log',
131
+ 'if ($LASTEXITCODE -eq 0) { omx setup *>> $log }',
132
+ ].join('; '),
133
+ ]
134
+ : [
135
+ '-c',
136
+ [
137
+ 'while kill -0 "$OMX_DEFERRED_UPDATE_PARENT_PID" 2>/dev/null; do sleep 1; done',
138
+ 'npm install -g oh-my-codex@latest >> "$OMX_DEFERRED_UPDATE_LOG" 2>&1',
139
+ 'if [ "$?" -eq 0 ]; then omx setup >> "$OMX_DEFERRED_UPDATE_LOG" 2>&1; fi',
140
+ ].join('; '),
141
+ ];
142
+ const child = spawnProcess(command, args, {
143
+ cwd,
144
+ detached: true,
145
+ env,
146
+ stdio: 'ignore',
147
+ windowsHide: true,
148
+ });
149
+ child.once('error', (error) => {
150
+ try {
151
+ appendFileSync(logPath, `[omx] Deferred update launcher failed: ${error.message}\n`, 'utf-8');
152
+ }
153
+ catch {
154
+ // The startup path must remain non-fatal even when diagnostics cannot be persisted.
155
+ }
156
+ });
157
+ child.unref();
158
+ return { ok: true, stderr: '', logPath };
159
+ }
160
+ catch (error) {
161
+ return {
162
+ ok: false,
163
+ stderr: error instanceof Error ? error.message : String(error),
164
+ logPath,
165
+ };
166
+ }
167
+ }
168
+ function formatDeferredUpdateFailure(stderr, logPath) {
169
+ return [
170
+ '[omx] Failed to schedule the deferred update.',
171
+ stderr.trim() ? `[omx] scheduler error: ${stderr.trim()}` : undefined,
172
+ logPath ? `[omx] Intended log: ${logPath}` : undefined,
173
+ '[omx] You can retry manually with: npm install -g oh-my-codex@latest && omx setup',
174
+ ].filter((line) => typeof line === 'string').join('\n');
175
+ }
176
+ function summarizeUpdateFailure(stderr, logPath) {
177
+ const details = stderr.trim().split(/\r?\n/).filter(Boolean).slice(0, 3).join(' | ');
178
+ return [
179
+ '[omx] Update failed while running npm install -g oh-my-codex@latest.',
180
+ details ? `[omx] npm stderr: ${details}` : undefined,
181
+ logPath ? `[omx] Full log: ${logPath}` : undefined,
182
+ '[omx] You can retry manually with: npm install -g oh-my-codex@latest && omx setup',
183
+ ].filter((line) => typeof line === 'string').join('\n');
184
+ }
106
185
  async function askYesNo(question) {
107
186
  if (!process.stdin.isTTY || !process.stdout.isTTY)
108
187
  return false;
@@ -121,6 +200,7 @@ const defaultUpdateDependencies = {
121
200
  getCurrentVersion,
122
201
  readUserInstallStamp,
123
202
  runGlobalUpdate,
203
+ runDeferredGlobalUpdate,
124
204
  runSetupRefresh,
125
205
  writeUpdateState,
126
206
  };
@@ -283,15 +363,29 @@ async function executeUpdate(options) {
283
363
  return { status: 'up-to-date', currentVersion: current, latestVersion: latest };
284
364
  }
285
365
  if (prompt) {
286
- const approved = await dependencies.askYesNo(`[omx] Update available: v${current} → v${latest}. Update now? [Y/n] `);
366
+ const approved = await dependencies.askYesNo(immediate
367
+ ? `[omx] Update available: v${current} → v${latest}. Update now? [Y/n] `
368
+ : `[omx] Update available: v${current} → v${latest}. Update after this session exits? [Y/n] `);
287
369
  if (!approved) {
288
370
  return { status: 'declined', currentVersion: current, latestVersion: latest };
289
371
  }
290
372
  }
373
+ if (!immediate) {
374
+ const deferredResult = dependencies.runDeferredGlobalUpdate(cwd);
375
+ if (!deferredResult.ok) {
376
+ console.log(formatDeferredUpdateFailure(deferredResult.stderr, deferredResult.logPath));
377
+ return { status: 'failed', currentVersion: current, latestVersion: latest };
378
+ }
379
+ console.log('[omx] Update scheduled after this session exits.');
380
+ if (deferredResult.logPath) {
381
+ console.log(`[omx] Log: ${deferredResult.logPath}`);
382
+ }
383
+ return { status: 'scheduled', currentVersion: current, latestVersion: latest };
384
+ }
291
385
  console.log(`[omx] Running: npm install -g ${PACKAGE_NAME}@latest`);
292
386
  const result = dependencies.runGlobalUpdate();
293
387
  if (!result.ok) {
294
- console.log('[omx] Update failed. Run manually: npm install -g oh-my-codex@latest');
388
+ console.log(summarizeUpdateFailure(result.stderr));
295
389
  return { status: 'failed', currentVersion: current, latestVersion: latest };
296
390
  }
297
391
  const setupRefreshResult = await dependencies.runSetupRefresh(cwd);
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,39 @@
1
1
  import { describe, it } from "node:test";
2
2
  import assert from "node:assert/strict";
3
- import { buildManagedCodexHookTrustState, buildManagedCodexHookTrustToml, buildManagedCodexHooksConfig, getMissingManagedCodexHookEvents, mergeManagedCodexHooksConfig, removeManagedCodexHooks, } from "../codex-hooks.js";
3
+ import { mkdir, mkdtemp, rm, symlink, writeFile } from "node:fs/promises";
4
+ import { tmpdir } from "node:os";
5
+ import { join } from "node:path";
6
+ import { buildManagedCodexHookTrustState, buildManagedCodexHookTrustToml, buildManagedCodexHooksConfig, discoverCodexHookConfigPaths, dedupeCodexHookConfigPaths, getMissingManagedCodexHookEvents, hasUserCodexHooksAfterManagedRemoval, isRuntimeCodexHomeMirrorPath, mergeManagedCodexHooksConfig, removeManagedCodexHooks, } from "../codex-hooks.js";
4
7
  describe("codex hooks helpers", () => {
5
8
  it("uses the current JavaScript runtime for managed hook commands", () => {
6
9
  const config = buildManagedCodexHooksConfig("/repo");
7
10
  const command = config.hooks.SessionStart[0]?.hooks?.[0]?.command;
8
11
  assert.equal(command, `"${process.execPath.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}" "/repo/dist/scripts/codex-native-hook.js"`);
9
12
  });
13
+ it("uses portable node invocation for Windows managed hook commands", () => {
14
+ const config = buildManagedCodexHooksConfig("D:\\Program Files\\nvm\\v24.12.0\\node_modules\\oh-my-codex", { platform: "win32" });
15
+ const command = config.hooks.SessionStart[0]?.hooks?.[0]?.command;
16
+ assert.equal(command, 'node "D:\\Program Files\\nvm\\v24.12.0\\node_modules\\oh-my-codex\\dist\\scripts\\codex-native-hook.js"');
17
+ assert.doesNotMatch(command ?? "", /^"/, "the node launcher must not be a quoted absolute node.exe path");
18
+ assert.match(command ?? "", /^node "[^"]*Program Files[^"]*codex-native-hook\.js"$/);
19
+ });
20
+ it("keeps Windows hook script paths quoted when they contain spaces", () => {
21
+ const merged = JSON.parse(mergeManagedCodexHooksConfig(JSON.stringify({
22
+ hooks: {
23
+ PreToolUse: [
24
+ {
25
+ matcher: "Bash",
26
+ hooks: [{ type: "command", command: "echo keep-me" }],
27
+ },
28
+ ],
29
+ },
30
+ }), "D:\\Program Files\\nvm\\v24.12.0\\node_modules\\oh-my-codex", { platform: "win32" }));
31
+ const commands = merged.hooks.PreToolUse
32
+ .flatMap((entry) => entry.hooks ?? [])
33
+ .map((hook) => hook.command);
34
+ assert.ok(commands.includes("echo keep-me"));
35
+ assert.ok(commands.includes('node "D:\\Program Files\\nvm\\v24.12.0\\node_modules\\oh-my-codex\\dist\\scripts\\codex-native-hook.js"'));
36
+ });
10
37
  it("merges managed wrappers without dropping user hooks", () => {
11
38
  const merged = JSON.parse(mergeManagedCodexHooksConfig(JSON.stringify({
12
39
  hooks: {
@@ -80,8 +107,14 @@ describe("codex hooks helpers", () => {
80
107
  assert.match(toml, /^trusted_hash = "sha256:[a-f0-9]{64}"$/m);
81
108
  assert.doesNotMatch(toml, /echo keep-me/);
82
109
  });
83
- it("can preserve existing hook state when explicitly merging trust into hooks.json", () => {
110
+ it("keeps hooks.json trust state outside the hook event map", () => {
84
111
  const merged = JSON.parse(mergeManagedCodexHooksConfig(JSON.stringify({
112
+ state: {
113
+ "custom:/hooks.json:prompt:0:0": {
114
+ trusted_hash: "sha256:top-level-user",
115
+ enabled: true,
116
+ },
117
+ },
85
118
  hooks: {
86
119
  state: {
87
120
  "custom:/hooks.json:stop:0:0": {
@@ -96,13 +129,57 @@ describe("codex hooks helpers", () => {
96
129
  ],
97
130
  },
98
131
  }), "/repo", "/hooks.json"));
99
- assert.deepEqual(merged.hooks.state["custom:/hooks.json:stop:0:0"], {
132
+ assert.equal(Object.hasOwn(merged.hooks, "state"), false);
133
+ assert.ok(Object.values(merged.hooks).every(Array.isArray), "Codex Rust hook discovery expects hooks.hooks values to be event arrays");
134
+ assert.deepEqual(merged.state["custom:/hooks.json:stop:0:0"], {
100
135
  trusted_hash: "sha256:user",
101
136
  enabled: false,
102
137
  });
103
- assert.match(merged.hooks.state["/hooks.json:stop:0:0"]?.trusted_hash ?? "", /^sha256:[a-f0-9]{64}$/);
138
+ assert.deepEqual(merged.state["custom:/hooks.json:prompt:0:0"], {
139
+ trusted_hash: "sha256:top-level-user",
140
+ enabled: true,
141
+ });
142
+ assert.match(merged.state["/hooks.json:stop:0:0"]?.trusted_hash ?? "", /^sha256:[a-f0-9]{64}$/);
104
143
  assert.match(JSON.stringify(merged.hooks.Stop), /echo user-stop/);
105
144
  });
145
+ it("preserves top-level managed hook state metadata while updating trusted_hash", () => {
146
+ const managedState = buildManagedCodexHookTrustState("/hooks.json", "/repo");
147
+ const managedKey = Object.keys(managedState).find((key) => key.includes(":stop:")) ?? Object.keys(managedState)[0];
148
+ assert.ok(managedKey);
149
+ const merged = JSON.parse(mergeManagedCodexHooksConfig(JSON.stringify({
150
+ state: {
151
+ [managedKey]: {
152
+ trusted_hash: "sha256:old",
153
+ enabled: false,
154
+ },
155
+ },
156
+ }), "/repo", "/hooks.json"));
157
+ assert.equal(Object.hasOwn(merged.hooks, "state"), false);
158
+ assert.deepEqual(merged.state[managedKey], {
159
+ trusted_hash: managedState[managedKey]?.trusted_hash,
160
+ enabled: false,
161
+ });
162
+ });
163
+ it("migrates misplaced managed hook state metadata while updating trusted_hash", () => {
164
+ const managedState = buildManagedCodexHookTrustState("/hooks.json", "/repo");
165
+ const managedKey = Object.keys(managedState).find((key) => key.includes(":stop:")) ?? Object.keys(managedState)[0];
166
+ assert.ok(managedKey);
167
+ const merged = JSON.parse(mergeManagedCodexHooksConfig(JSON.stringify({
168
+ hooks: {
169
+ state: {
170
+ [managedKey]: {
171
+ trusted_hash: "sha256:old",
172
+ enabled: false,
173
+ },
174
+ },
175
+ },
176
+ }), "/repo", "/hooks.json"));
177
+ assert.equal(Object.hasOwn(merged.hooks, "state"), false);
178
+ assert.deepEqual(merged.state[managedKey], {
179
+ trusted_hash: managedState[managedKey]?.trusted_hash,
180
+ enabled: false,
181
+ });
182
+ });
106
183
  it("keeps managed hook merge idempotent", () => {
107
184
  const first = mergeManagedCodexHooksConfig(null, "/repo", "/hooks.json");
108
185
  const second = mergeManagedCodexHooksConfig(first, "/repo", "/hooks.json");
@@ -112,6 +189,11 @@ describe("codex hooks helpers", () => {
112
189
  const managedOnly = JSON.stringify(buildManagedCodexHooksConfig("/repo"));
113
190
  const preserved = JSON.stringify({
114
191
  hooks: {
192
+ state: {
193
+ "custom:/hooks.json:session_start:0:0": {
194
+ trusted_hash: "sha256:user",
195
+ },
196
+ },
115
197
  SessionStart: [
116
198
  {
117
199
  hooks: [
@@ -126,12 +208,53 @@ describe("codex hooks helpers", () => {
126
208
  const removedManagedOnly = removeManagedCodexHooks(managedOnly);
127
209
  assert.equal(removedManagedOnly.removedCount > 0, true);
128
210
  assert.equal(removedManagedOnly.nextContent, null);
211
+ const generatedWithTrustState = mergeManagedCodexHooksConfig(null, "/repo", "/hooks.json");
212
+ const removedGeneratedWithTrustState = removeManagedCodexHooks(generatedWithTrustState);
213
+ assert.equal(removedGeneratedWithTrustState.removedCount > 0, true);
214
+ assert.equal(removedGeneratedWithTrustState.nextContent, null);
129
215
  const removedMixed = removeManagedCodexHooks(preserved);
130
216
  assert.equal(removedMixed.removedCount, 1);
131
217
  assert.ok(removedMixed.nextContent);
132
218
  assert.match(removedMixed.nextContent, /echo keep-me/);
133
219
  assert.doesNotMatch(removedMixed.nextContent, /codex-native-hook\.js/);
134
220
  assert.match(removedMixed.nextContent, /"version": 1/);
221
+ const cleaned = JSON.parse(removedMixed.nextContent);
222
+ assert.equal(Object.hasOwn(cleaned.hooks ?? {}, "state"), false);
223
+ assert.deepEqual(cleaned.state?.["custom:/hooks.json:session_start:0:0"], {
224
+ trusted_hash: "sha256:user",
225
+ });
226
+ });
227
+ it("detects user hooks that remain after managed wrapper removal", () => {
228
+ const managedOnly = JSON.stringify(buildManagedCodexHooksConfig("/repo"));
229
+ const mixed = JSON.stringify({
230
+ hooks: {
231
+ state: {
232
+ "custom:/hooks.json:stop:0:0": {
233
+ trusted_hash: "sha256:user",
234
+ },
235
+ },
236
+ SessionStart: [
237
+ {
238
+ hooks: [
239
+ { type: "command", command: 'node "/repo/dist/scripts/codex-native-hook.js"' },
240
+ { type: "command", command: "echo keep-me" },
241
+ ],
242
+ },
243
+ ],
244
+ },
245
+ });
246
+ const stateOnly = JSON.stringify({
247
+ hooks: {
248
+ state: {
249
+ "custom:/hooks.json:stop:0:0": {
250
+ trusted_hash: "sha256:user",
251
+ },
252
+ },
253
+ },
254
+ });
255
+ assert.equal(hasUserCodexHooksAfterManagedRemoval(managedOnly), false);
256
+ assert.equal(hasUserCodexHooksAfterManagedRemoval(mixed), true);
257
+ assert.equal(hasUserCodexHooksAfterManagedRemoval(stateOnly), false);
135
258
  });
136
259
  it("registers managed compact hook wrappers", () => {
137
260
  const config = buildManagedCodexHooksConfig("/repo");
@@ -143,6 +266,8 @@ describe("codex hooks helpers", () => {
143
266
  const postCommand = postCompact[0]?.hooks?.[0]?.command;
144
267
  assert.match(String(preCommand), /codex-native-hook\.js/);
145
268
  assert.match(String(postCommand), /codex-native-hook\.js/);
269
+ assert.equal(postCommand, preCommand);
270
+ assert.doesNotMatch(String(postCommand), /PostCompact Nudge|additionalContext|printf/);
146
271
  });
147
272
  it("reports missing managed hook coverage by event", () => {
148
273
  const missing = getMissingManagedCodexHookEvents(JSON.stringify({
@@ -168,5 +293,57 @@ describe("codex hooks helpers", () => {
168
293
  it("returns null for invalid hooks.json content", () => {
169
294
  assert.equal(getMissingManagedCodexHookEvents("{ invalid json"), null);
170
295
  });
296
+ it("ignores runtime codex-home hook mirrors before hook loading", async () => {
297
+ const cwd = await mkdtemp(join(tmpdir(), "omx-hook-dedupe-"));
298
+ try {
299
+ const canonicalPath = join(cwd, ".codex", "hooks.json");
300
+ const mirrorPath = join(cwd, ".omx", "runtime", "codex-home", "session-1", "hooks.json");
301
+ await mkdir(join(cwd, ".codex"), { recursive: true });
302
+ await mkdir(join(cwd, ".omx", "runtime", "codex-home", "session-1"), { recursive: true });
303
+ await writeFile(canonicalPath, JSON.stringify(buildManagedCodexHooksConfig("/repo")));
304
+ await symlink(canonicalPath, mirrorPath);
305
+ assert.equal(isRuntimeCodexHomeMirrorPath(mirrorPath, cwd), true);
306
+ const result = await dedupeCodexHookConfigPaths([canonicalPath, mirrorPath], cwd);
307
+ assert.deepEqual(result.paths.map((entry) => entry.path), [canonicalPath]);
308
+ assert.deepEqual(result.skipped.map((entry) => entry.reason), ["runtime_codex_home_mirror"]);
309
+ }
310
+ finally {
311
+ await rm(cwd, { recursive: true, force: true });
312
+ }
313
+ });
314
+ it("de-dupes hook config paths by realpath outside runtime mirrors", async () => {
315
+ const cwd = await mkdtemp(join(tmpdir(), "omx-hook-realpath-dedupe-"));
316
+ try {
317
+ const canonicalPath = join(cwd, ".codex", "hooks.json");
318
+ const aliasPath = join(cwd, "alias-hooks.json");
319
+ await mkdir(join(cwd, ".codex"), { recursive: true });
320
+ await writeFile(canonicalPath, JSON.stringify(buildManagedCodexHooksConfig("/repo")));
321
+ await symlink(canonicalPath, aliasPath);
322
+ const result = await dedupeCodexHookConfigPaths([canonicalPath, aliasPath], cwd);
323
+ assert.deepEqual(result.paths.map((entry) => entry.path), [canonicalPath]);
324
+ assert.deepEqual(result.skipped.map((entry) => entry.reason), ["duplicate_realpath"]);
325
+ }
326
+ finally {
327
+ await rm(cwd, { recursive: true, force: true });
328
+ }
329
+ });
330
+ it("discovers canonical hook configs while skipping runtime codex-home mirrors", async () => {
331
+ const cwd = await mkdtemp(join(tmpdir(), "omx-hook-discover-"));
332
+ try {
333
+ const canonicalPath = join(cwd, ".codex", "hooks.json");
334
+ const mirrorPath = join(cwd, ".omx", "runtime", "codex-home", "session-1", "hooks.json");
335
+ await mkdir(join(cwd, ".codex"), { recursive: true });
336
+ await mkdir(join(cwd, ".omx", "runtime", "codex-home", "session-1"), { recursive: true });
337
+ await writeFile(canonicalPath, JSON.stringify(buildManagedCodexHooksConfig("/repo")));
338
+ await writeFile(mirrorPath, JSON.stringify(buildManagedCodexHooksConfig("/repo")));
339
+ const result = await discoverCodexHookConfigPaths(cwd);
340
+ assert.deepEqual(result.paths.map((entry) => entry.path), [canonicalPath]);
341
+ assert.deepEqual(result.skipped.map((entry) => entry.path), [mirrorPath]);
342
+ assert.deepEqual(result.skipped.map((entry) => entry.reason), ["runtime_codex_home_mirror"]);
343
+ }
344
+ finally {
345
+ await rm(cwd, { recursive: true, force: true });
346
+ }
347
+ });
171
348
  });
172
349
  //# sourceMappingURL=codex-hooks.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-hooks.test.js","sourceRoot":"","sources":["../../../src/config/__tests__/codex-hooks.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-hooks.test.js","sourceRoot":"","sources":["../../../src/config/__tests__/codex-hooks.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,+BAA+B,EAC/B,8BAA8B,EAC9B,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,EAC1B,gCAAgC,EAChC,oCAAoC,EACpC,4BAA4B,EAC5B,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IAEnC,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,MAAM,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,OAAO,GAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAyD,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QAE3H,MAAM,CAAC,KAAK,CACV,OAAO,EACP,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,6CAA6C,CAC9G,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,MAAM,GAAG,4BAA4B,CACzC,6DAA6D,EAC7D,EAAE,QAAQ,EAAE,OAAO,EAAE,CACtB,CAAC;QACF,MAAM,OAAO,GAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAE9B,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QAEpC,MAAM,CAAC,KAAK,CACV,OAAO,EACP,yGAAyG,CAC1G,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,+DAA+D,CAAC,CAAC;QAC1G,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,uDAAuD,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,4BAA4B,CAC1B,IAAI,CAAC,SAAS,CAAC;YACb,KAAK,EAAE;gBACL,UAAU,EAAE;oBACV;wBACE,OAAO,EAAE,MAAM;wBACf,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;qBACtD;iBACF;aACF;SACF,CAAC,EACF,6DAA6D,EAC7D,EAAE,QAAQ,EAAE,OAAO,EAAE,CACtB,CAC2E,CAAC;QAE/E,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU;aACrC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;aACrC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE/B,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CACzB,yGAAyG,CAC1G,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,4BAA4B,CAC1B,IAAI,CAAC,SAAS,CAAC;YACb,KAAK,EAAE;gBACL,YAAY,EAAE;oBACZ;wBACE,KAAK,EAAE;4BACL,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,+CAA+C,EAAE;4BAC7E,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE;yBAC7C;qBACF;oBACD;wBACE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;qBAC9D;iBACF;aACF;SACF,CAAC,EACF,OAAO,CACR,CAC2E,CAAC;QAE/E,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;QAC/C,MAAM,CAAC,KAAK,CACV,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACjE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAC5D,CAAC,MAAM,EACR,CAAC,CACF,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC,CAAC;QACnE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,6BAA6B,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,KAAK,GAAG,+BAA+B,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;YACrB,6CAA6C;YAC7C,8CAA8C;YAC9C,4CAA4C;YAC5C,6CAA6C;YAC7C,8CAA8C;YAC9C,qCAAqC;YACrC,mDAAmD;SACpD,CAAC,CAAC;QACH,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,KAAK,GAAG,+BAA+B,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACtE,MAAM,OAAO,GACX,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,6CAA6C,CAAC;QAChH,MAAM,gBAAgB,GAAG;YACvB,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE;gBACL;oBACE,KAAK,EAAE,KAAK;oBACZ,OAAO;oBACP,OAAO,EAAE,GAAG;oBACZ,IAAI,EAAE,SAAS;iBAChB;aACF;YACD,OAAO,EAAE,MAAM;SAChB,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAC;YACH,OAAO,EAAE,gBAAgB,CAAC,OAAO;SAClC,CAAC,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAEtF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,IAAI,GAAG,8BAA8B,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAEpE,MAAM,CAAC,EAAE,CACP,IAAI,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAC9D,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,yCAAyC,CAAC,CAAC;QAC9D,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,4BAA4B,CAC1B,IAAI,CAAC,SAAS,CAAC;YACb,KAAK,EAAE;gBACL,+BAA+B,EAAE;oBAC/B,YAAY,EAAE,uBAAuB;oBACrC,OAAO,EAAE,IAAI;iBACd;aACF;YACD,KAAK,EAAE;gBACL,KAAK,EAAE;oBACL,6BAA6B,EAAE;wBAC7B,YAAY,EAAE,aAAa;wBAC3B,OAAO,EAAE,KAAK;qBACf;iBACF;gBACD,IAAI,EAAE;oBACJ;wBACE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;qBACxD;iBACF;aACF;SACF,CAAC,EACF,OAAO,EACP,aAAa,CACd,CAIF,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAChD,yEAAyE,CAC1E,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,EAAE;YAC5D,YAAY,EAAE,aAAa;YAC3B,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,EAAE;YAC9D,YAAY,EAAE,uBAAuB;YACrC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,YAAY,IAAI,EAAE,EACxD,uBAAuB,CACxB,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,YAAY,GAAG,+BAA+B,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACxD,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACvB,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,4BAA4B,CAC1B,IAAI,CAAC,SAAS,CAAC;YACb,KAAK,EAAE;gBACL,CAAC,UAAU,CAAC,EAAE;oBACZ,YAAY,EAAE,YAAY;oBAC1B,OAAO,EAAE,KAAK;iBACf;aACF;SACF,CAAC,EACF,OAAO,EACP,aAAa,CACd,CAIF,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YACzC,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,YAAY;YACpD,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,YAAY,GAAG,+BAA+B,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACxD,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACvB,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,4BAA4B,CAC1B,IAAI,CAAC,SAAS,CAAC;YACb,KAAK,EAAE;gBACL,KAAK,EAAE;oBACL,CAAC,UAAU,CAAC,EAAE;wBACZ,YAAY,EAAE,YAAY;wBAC1B,OAAO,EAAE,KAAK;qBACf;iBACF;aACF;SACF,CAAC,EACF,OAAO,EACP,aAAa,CACd,CAIF,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YACzC,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,YAAY;YACpD,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,KAAK,GAAG,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAE3E,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,KAAK,EAAE;gBACL,KAAK,EAAE;oBACL,sCAAsC,EAAE;wBACtC,YAAY,EAAE,aAAa;qBAC5B;iBACF;gBACD,YAAY,EAAE;oBACZ;wBACE,KAAK,EAAE;4BACL,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gDAAgD,EAAE;4BAC9E,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE;yBAC7C;qBACF;iBACF;aACF;YACD,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,YAAY,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAEnD,MAAM,uBAAuB,GAAG,4BAA4B,CAC1D,IAAI,EACJ,OAAO,EACP,aAAa,CACd,CAAC;QACF,MAAM,8BAA8B,GAAG,uBAAuB,CAC5D,uBAAuB,CACxB,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,YAAY,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACpE,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACvD,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;QACvE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAGlD,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,sCAAsC,CAAC,EAAE;YACxE,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3B,KAAK,EAAE;gBACL,KAAK,EAAE;oBACL,6BAA6B,EAAE;wBAC7B,YAAY,EAAE,aAAa;qBAC5B;iBACF;gBACD,YAAY,EAAE;oBACZ;wBACE,KAAK,EAAE;4BACL,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gDAAgD,EAAE;4BAC9E,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE;yBAC7C;qBACF;iBACF;aACF;SACF,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,KAAK,EAAE;gBACL,KAAK,EAAE;oBACL,6BAA6B,EAAE;wBAC7B,YAAY,EAAE,aAAa;qBAC5B;iBACF;aACF;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;QACvE,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAA4D,CAAC;QAC7F,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAA6D,CAAC;QAC/F,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QACtD,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,uBAAuB,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,uBAAuB,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACtC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,4CAA4C,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,OAAO,GAAG,gCAAgC,CAC9C,IAAI,CAAC,SAAS,CAAC;YACb,KAAK,EAAE;gBACL,YAAY,EAAE;oBACZ;wBACE,KAAK,EAAE;4BACL,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gDAAgD,EAAE;yBAC/E;qBACF;iBACF;gBACD,gBAAgB,EAAE;oBAChB;wBACE,KAAK,EAAE;4BACL,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE;yBACjD;qBACF;iBACF;aACF;SACF,CAAC,CACH,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IACpH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YACxD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YACzF,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1F,MAAM,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtF,MAAM,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAEzC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAElE,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;YAClF,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;YAC3E,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAC/F,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;YAChD,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,MAAM,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtF,MAAM,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAExC,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;YACjF,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;YAC3E,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACxF,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YACxD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YACzF,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1F,MAAM,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtF,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAEnF,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC,GAAG,CAAC,CAAC;YAEvD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;YAC3E,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1E,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAC/F,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}