oh-my-codex 0.18.8 → 0.18.10

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 (221) hide show
  1. package/Cargo.lock +12 -12
  2. package/Cargo.toml +1 -1
  3. package/README.md +4 -0
  4. package/dist/autopilot/__tests__/deep-interview-gate.test.d.ts +2 -0
  5. package/dist/autopilot/__tests__/deep-interview-gate.test.d.ts.map +1 -0
  6. package/dist/autopilot/__tests__/deep-interview-gate.test.js +215 -0
  7. package/dist/autopilot/__tests__/deep-interview-gate.test.js.map +1 -0
  8. package/dist/autopilot/__tests__/fsm.test.js +3 -0
  9. package/dist/autopilot/__tests__/fsm.test.js.map +1 -1
  10. package/dist/autopilot/__tests__/ralplan-gate.test.js +148 -0
  11. package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -1
  12. package/dist/autopilot/deep-interview-gate.d.ts.map +1 -1
  13. package/dist/autopilot/deep-interview-gate.js +140 -0
  14. package/dist/autopilot/deep-interview-gate.js.map +1 -1
  15. package/dist/autopilot/fsm.js +2 -2
  16. package/dist/autopilot/fsm.js.map +1 -1
  17. package/dist/cli/__tests__/auth.test.js +37 -2
  18. package/dist/cli/__tests__/auth.test.js.map +1 -1
  19. package/dist/cli/__tests__/codex-feature-probe.test.d.ts +2 -0
  20. package/dist/cli/__tests__/codex-feature-probe.test.d.ts.map +1 -0
  21. package/dist/cli/__tests__/codex-feature-probe.test.js +46 -0
  22. package/dist/cli/__tests__/codex-feature-probe.test.js.map +1 -0
  23. package/dist/cli/__tests__/codex-plugin-layout.test.js +1 -1
  24. package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
  25. package/dist/cli/__tests__/doctor-warning-copy.test.js +2 -0
  26. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  27. package/dist/cli/__tests__/index.test.js +288 -6
  28. package/dist/cli/__tests__/index.test.js.map +1 -1
  29. package/dist/cli/__tests__/launch-fallback.test.js +19 -5
  30. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  31. package/dist/cli/__tests__/package-bin-contract.test.js +39 -10
  32. package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
  33. package/dist/cli/__tests__/question.test.js +26 -9
  34. package/dist/cli/__tests__/question.test.js.map +1 -1
  35. package/dist/cli/__tests__/resume.test.js +50 -1
  36. package/dist/cli/__tests__/resume.test.js.map +1 -1
  37. package/dist/cli/__tests__/setup-refresh.test.js +6 -2
  38. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  39. package/dist/cli/__tests__/sparkshell-packaging.test.js +45 -2
  40. package/dist/cli/__tests__/sparkshell-packaging.test.js.map +1 -1
  41. package/dist/cli/__tests__/team-decompose.test.js +10 -5
  42. package/dist/cli/__tests__/team-decompose.test.js.map +1 -1
  43. package/dist/cli/__tests__/team.test.js +45 -1
  44. package/dist/cli/__tests__/team.test.js.map +1 -1
  45. package/dist/cli/__tests__/ultragoal.test.js +75 -0
  46. package/dist/cli/__tests__/ultragoal.test.js.map +1 -1
  47. package/dist/cli/__tests__/update.test.js +214 -17
  48. package/dist/cli/__tests__/update.test.js.map +1 -1
  49. package/dist/cli/__tests__/windows-popup-loop-contract.test.js +1 -1
  50. package/dist/cli/auth.d.ts.map +1 -1
  51. package/dist/cli/auth.js +25 -1
  52. package/dist/cli/auth.js.map +1 -1
  53. package/dist/cli/codex-feature-probe.d.ts +5 -2
  54. package/dist/cli/codex-feature-probe.d.ts.map +1 -1
  55. package/dist/cli/codex-feature-probe.js +25 -9
  56. package/dist/cli/codex-feature-probe.js.map +1 -1
  57. package/dist/cli/index.d.ts +39 -5
  58. package/dist/cli/index.d.ts.map +1 -1
  59. package/dist/cli/index.js +184 -101
  60. package/dist/cli/index.js.map +1 -1
  61. package/dist/cli/setup.d.ts.map +1 -1
  62. package/dist/cli/setup.js +9 -1
  63. package/dist/cli/setup.js.map +1 -1
  64. package/dist/cli/team.d.ts +4 -0
  65. package/dist/cli/team.d.ts.map +1 -1
  66. package/dist/cli/team.js +43 -4
  67. package/dist/cli/team.js.map +1 -1
  68. package/dist/cli/ultragoal.d.ts.map +1 -1
  69. package/dist/cli/ultragoal.js +29 -0
  70. package/dist/cli/ultragoal.js.map +1 -1
  71. package/dist/cli/update.d.ts +20 -3
  72. package/dist/cli/update.d.ts.map +1 -1
  73. package/dist/cli/update.js +265 -23
  74. package/dist/cli/update.js.map +1 -1
  75. package/dist/cli/version.d.ts.map +1 -1
  76. package/dist/cli/version.js +5 -9
  77. package/dist/cli/version.js.map +1 -1
  78. package/dist/compat/__tests__/doctor-contract.test.js +12 -1
  79. package/dist/compat/__tests__/doctor-contract.test.js.map +1 -1
  80. package/dist/hooks/__tests__/agents-overlay.test.js +1 -0
  81. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  82. package/dist/hooks/__tests__/autopilot-skill-contract.test.js +15 -0
  83. package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
  84. package/dist/hooks/__tests__/code-review-skill-contract.test.js +7 -3
  85. package/dist/hooks/__tests__/code-review-skill-contract.test.js.map +1 -1
  86. package/dist/hooks/__tests__/deep-interview-contract.test.js +46 -1
  87. package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
  88. package/dist/hooks/__tests__/skill-guidance-contract.test.js +14 -5
  89. package/dist/hooks/__tests__/skill-guidance-contract.test.js.map +1 -1
  90. package/dist/hooks/agents-overlay.d.ts.map +1 -1
  91. package/dist/hooks/agents-overlay.js +2 -1
  92. package/dist/hooks/agents-overlay.js.map +1 -1
  93. package/dist/hooks/extensibility/__tests__/plugin-runner.test.js +112 -1
  94. package/dist/hooks/extensibility/__tests__/plugin-runner.test.js.map +1 -1
  95. package/dist/hooks/extensibility/plugin-runner-stdin.d.ts +2 -0
  96. package/dist/hooks/extensibility/plugin-runner-stdin.d.ts.map +1 -0
  97. package/dist/hooks/extensibility/plugin-runner-stdin.js +16 -0
  98. package/dist/hooks/extensibility/plugin-runner-stdin.js.map +1 -0
  99. package/dist/hooks/extensibility/plugin-runner.js +2 -4
  100. package/dist/hooks/extensibility/plugin-runner.js.map +1 -1
  101. package/dist/hud/__tests__/index.test.js +23 -2
  102. package/dist/hud/__tests__/index.test.js.map +1 -1
  103. package/dist/hud/__tests__/reconcile.test.js +387 -0
  104. package/dist/hud/__tests__/reconcile.test.js.map +1 -1
  105. package/dist/hud/__tests__/state.test.js +28 -0
  106. package/dist/hud/__tests__/state.test.js.map +1 -1
  107. package/dist/hud/__tests__/tmux.test.js +118 -7
  108. package/dist/hud/__tests__/tmux.test.js.map +1 -1
  109. package/dist/hud/index.d.ts +6 -1
  110. package/dist/hud/index.d.ts.map +1 -1
  111. package/dist/hud/index.js +12 -3
  112. package/dist/hud/index.js.map +1 -1
  113. package/dist/hud/reconcile.d.ts +6 -2
  114. package/dist/hud/reconcile.d.ts.map +1 -1
  115. package/dist/hud/reconcile.js +58 -28
  116. package/dist/hud/reconcile.js.map +1 -1
  117. package/dist/hud/state.d.ts.map +1 -1
  118. package/dist/hud/state.js +4 -18
  119. package/dist/hud/state.js.map +1 -1
  120. package/dist/hud/tmux.d.ts +14 -1
  121. package/dist/hud/tmux.d.ts.map +1 -1
  122. package/dist/hud/tmux.js +129 -15
  123. package/dist/hud/tmux.js.map +1 -1
  124. package/dist/question/__tests__/renderer.test.js +566 -1
  125. package/dist/question/__tests__/renderer.test.js.map +1 -1
  126. package/dist/question/renderer.d.ts +9 -1
  127. package/dist/question/renderer.d.ts.map +1 -1
  128. package/dist/question/renderer.js +246 -70
  129. package/dist/question/renderer.js.map +1 -1
  130. package/dist/ralplan/consensus-gate.js +9 -1
  131. package/dist/ralplan/consensus-gate.js.map +1 -1
  132. package/dist/scripts/__tests__/codex-native-hook.test.js +322 -15
  133. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  134. package/dist/scripts/__tests__/run-test-files.test.js +115 -1
  135. package/dist/scripts/__tests__/run-test-files.test.js.map +1 -1
  136. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  137. package/dist/scripts/codex-native-hook.js +94 -20
  138. package/dist/scripts/codex-native-hook.js.map +1 -1
  139. package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -1
  140. package/dist/scripts/notify-hook/team-worker-stop.js +54 -21
  141. package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -1
  142. package/dist/scripts/run-test-files.js +218 -160
  143. package/dist/scripts/run-test-files.js.map +1 -1
  144. package/dist/state/__tests__/operations.test.js +463 -0
  145. package/dist/state/__tests__/operations.test.js.map +1 -1
  146. package/dist/team/__tests__/delivery-log.test.js +18 -0
  147. package/dist/team/__tests__/delivery-log.test.js.map +1 -1
  148. package/dist/team/__tests__/runtime.test.js +48 -0
  149. package/dist/team/__tests__/runtime.test.js.map +1 -1
  150. package/dist/team/__tests__/tmux-session.test.js +107 -0
  151. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  152. package/dist/team/__tests__/tmux-test-fixture.d.ts.map +1 -1
  153. package/dist/team/__tests__/tmux-test-fixture.js +14 -2
  154. package/dist/team/__tests__/tmux-test-fixture.js.map +1 -1
  155. package/dist/team/__tests__/tmux-test-fixture.test.js +1 -0
  156. package/dist/team/__tests__/tmux-test-fixture.test.js.map +1 -1
  157. package/dist/team/__tests__/worker-bootstrap.test.js +54 -1
  158. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  159. package/dist/team/delivery-log.d.ts +1 -1
  160. package/dist/team/delivery-log.d.ts.map +1 -1
  161. package/dist/team/delivery-log.js.map +1 -1
  162. package/dist/team/repo-aware-decomposition.d.ts +4 -0
  163. package/dist/team/repo-aware-decomposition.d.ts.map +1 -1
  164. package/dist/team/repo-aware-decomposition.js.map +1 -1
  165. package/dist/team/runtime.d.ts.map +1 -1
  166. package/dist/team/runtime.js +78 -9
  167. package/dist/team/runtime.js.map +1 -1
  168. package/dist/team/tmux-session.d.ts +1 -0
  169. package/dist/team/tmux-session.d.ts.map +1 -1
  170. package/dist/team/tmux-session.js +16 -5
  171. package/dist/team/tmux-session.js.map +1 -1
  172. package/dist/team/ultragoal-context.d.ts +12 -0
  173. package/dist/team/ultragoal-context.d.ts.map +1 -1
  174. package/dist/team/ultragoal-context.js +32 -8
  175. package/dist/team/ultragoal-context.js.map +1 -1
  176. package/dist/utils/__tests__/paths.test.js +23 -0
  177. package/dist/utils/__tests__/paths.test.js.map +1 -1
  178. package/dist/utils/__tests__/platform-command.test.js +16 -1
  179. package/dist/utils/__tests__/platform-command.test.js.map +1 -1
  180. package/dist/utils/__tests__/version.test.d.ts +2 -0
  181. package/dist/utils/__tests__/version.test.d.ts.map +1 -0
  182. package/dist/utils/__tests__/version.test.js +51 -0
  183. package/dist/utils/__tests__/version.test.js.map +1 -0
  184. package/dist/utils/paths.d.ts +8 -1
  185. package/dist/utils/paths.d.ts.map +1 -1
  186. package/dist/utils/paths.js +20 -6
  187. package/dist/utils/paths.js.map +1 -1
  188. package/dist/utils/platform-command.d.ts +9 -0
  189. package/dist/utils/platform-command.d.ts.map +1 -1
  190. package/dist/utils/platform-command.js +15 -0
  191. package/dist/utils/platform-command.js.map +1 -1
  192. package/dist/utils/toml.d.ts +4 -0
  193. package/dist/utils/toml.d.ts.map +1 -0
  194. package/dist/utils/toml.js +75 -0
  195. package/dist/utils/toml.js.map +1 -0
  196. package/dist/utils/version.d.ts +7 -0
  197. package/dist/utils/version.d.ts.map +1 -0
  198. package/dist/utils/version.js +67 -0
  199. package/dist/utils/version.js.map +1 -0
  200. package/dist/verification/__tests__/ci-rust-gates.test.js +8 -0
  201. package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
  202. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js +16 -2
  203. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js.map +1 -1
  204. package/package.json +4 -3
  205. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  206. package/plugins/oh-my-codex/skills/autopilot/SKILL.md +3 -0
  207. package/plugins/oh-my-codex/skills/code-review/SKILL.md +2 -2
  208. package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +85 -11
  209. package/plugins/oh-my-codex/skills/ultrawork/SKILL.md +32 -17
  210. package/skills/autopilot/SKILL.md +3 -0
  211. package/skills/code-review/SKILL.md +2 -2
  212. package/skills/deep-interview/SKILL.md +85 -11
  213. package/skills/ultrawork/SKILL.md +32 -17
  214. package/src/scripts/__tests__/codex-native-hook.test.ts +391 -26
  215. package/src/scripts/__tests__/run-test-files.test.ts +138 -2
  216. package/src/scripts/codex-native-hook.ts +99 -17
  217. package/src/scripts/notify-hook/team-worker-stop.ts +58 -18
  218. package/src/scripts/prepare-build.js +83 -0
  219. package/src/scripts/run-test-files.ts +229 -150
  220. package/templates/AGENTS.md +40 -199
  221. package/src/scripts/postinstall-bootstrap.js +0 -23
@@ -1,5 +1,6 @@
1
1
  import { describe, it, mock } from 'node:test';
2
2
  import assert from 'node:assert/strict';
3
+ import { existsSync } from 'node:fs';
3
4
  import { mkdtemp, readFile, rm } from 'node:fs/promises';
4
5
  import { join } from 'node:path';
5
6
  import { tmpdir } from 'node:os';
@@ -49,6 +50,80 @@ async function capture(run) {
49
50
  }
50
51
  }
51
52
  describe('cli/ultragoal', () => {
53
+ it('refuses mutating ultragoal commands from Team worker environments', async () => {
54
+ const mutators = [
55
+ ['create-goals', '--brief', 'worker must not create'],
56
+ ['create', '--brief', 'worker must not create'],
57
+ ['add-goal', '--title', 'Worker goal', '--objective', 'Do not add'],
58
+ ['steer', '--kind', 'add_subgoal', '--title', 'Worker steer', '--objective', 'Do not steer', '--evidence', 'worker evidence', '--rationale', 'worker rationale'],
59
+ ['record-review-blockers', '--goal-id', 'G001-first', '--title', 'Blocker', '--objective', 'Do not record', '--evidence', 'worker evidence', '--codex-goal-json', JSON.stringify({ goal: { objective: 'x', status: 'active' } })],
60
+ ['complete-goals'],
61
+ ['complete'],
62
+ ['next'],
63
+ ['start-next'],
64
+ ['checkpoint', '--goal-id', 'G001-first', '--status', 'complete', '--evidence', 'worker evidence'],
65
+ ];
66
+ const envCases = [
67
+ ['OMX_TEAM_WORKER', 'display-team/worker-1'],
68
+ ['OMX_TEAM_INTERNAL_WORKER', 'internal-team/worker-1'],
69
+ ];
70
+ for (const [envName, envValue] of envCases) {
71
+ for (const args of mutators) {
72
+ await withCwd(async (cwd) => {
73
+ const previousPublic = process.env.OMX_TEAM_WORKER;
74
+ const previousInternal = process.env.OMX_TEAM_INTERNAL_WORKER;
75
+ delete process.env.OMX_TEAM_WORKER;
76
+ delete process.env.OMX_TEAM_INTERNAL_WORKER;
77
+ process.env[envName] = envValue;
78
+ try {
79
+ const result = await capture(() => ultragoalCommand(args));
80
+ assert.equal(result.exitCode, 1, `${envName} should block ${args[0]}`);
81
+ assert.match(result.stderr.join('\n'), /leader-owned/i);
82
+ assert.match(result.stderr.join('\n'), /report checkpoint evidence upward/i);
83
+ assert.equal(existsSync(join(cwd, '.omx/ultragoal/goals.json')), false);
84
+ assert.equal(existsSync(join(cwd, '.omx/ultragoal/ledger.jsonl')), false);
85
+ }
86
+ finally {
87
+ if (typeof previousPublic === 'string')
88
+ process.env.OMX_TEAM_WORKER = previousPublic;
89
+ else
90
+ delete process.env.OMX_TEAM_WORKER;
91
+ if (typeof previousInternal === 'string')
92
+ process.env.OMX_TEAM_INTERNAL_WORKER = previousInternal;
93
+ else
94
+ delete process.env.OMX_TEAM_INTERNAL_WORKER;
95
+ }
96
+ });
97
+ }
98
+ }
99
+ });
100
+ it('allows ultragoal help and status from Team worker environments', async () => {
101
+ await withCwd(async () => {
102
+ await capture(() => ultragoalCommand(['create-goals', '--brief', '- First milestone']));
103
+ const previousPublic = process.env.OMX_TEAM_WORKER;
104
+ const previousInternal = process.env.OMX_TEAM_INTERNAL_WORKER;
105
+ process.env.OMX_TEAM_WORKER = 'display-team/worker-1';
106
+ process.env.OMX_TEAM_INTERNAL_WORKER = 'internal-team/worker-1';
107
+ try {
108
+ const help = await capture(() => ultragoalCommand(['help']));
109
+ assert.equal(help.exitCode, undefined);
110
+ assert.match(help.stdout.join('\n'), /omx ultragoal/);
111
+ const status = await capture(() => ultragoalCommand(['status']));
112
+ assert.equal(status.exitCode, undefined);
113
+ assert.match(status.stdout.join('\n'), /ultragoal:/);
114
+ }
115
+ finally {
116
+ if (typeof previousPublic === 'string')
117
+ process.env.OMX_TEAM_WORKER = previousPublic;
118
+ else
119
+ delete process.env.OMX_TEAM_WORKER;
120
+ if (typeof previousInternal === 'string')
121
+ process.env.OMX_TEAM_INTERNAL_WORKER = previousInternal;
122
+ else
123
+ delete process.env.OMX_TEAM_INTERNAL_WORKER;
124
+ }
125
+ });
126
+ });
52
127
  it('prints help with artifact and goal-mode constraints', async () => {
53
128
  assert.match(ULTRAGOAL_HELP, /create-goals/);
54
129
  assert.match(ULTRAGOAL_HELP, /complete-goals/);
@@ -1 +1 @@
1
- {"version":3,"file":"ultragoal.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/ultragoal.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ultragoal.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/ultragoal.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEnE,KAAK,UAAU,OAAO,CAAI,GAAgC;IACxD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,aAAa,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,wBAAwB,EAAE;QACvE,YAAY,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,4BAA4B,EAAE;QAClG,UAAU,EAAE;YACV,cAAc,EAAE,SAAS;YACzB,eAAe,EAAE,OAAO;YACxB,QAAQ,EAAE,8BAA8B;YACxC,iBAAiB,EAAE;gBACjB,YAAY,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,yCAAyC,EAAE;gBACjG,SAAS,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,mCAAmC,EAAE;aACrF;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAwB;IAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC1C,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7G,IAAI,CAAC;QACH,MAAM,GAAG,EAAE,CAAC;QACZ,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;IACxD,CAAC;YAAS,CAAC;QACT,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,QAAQ,GAAG,gBAAgB,CAAC;IACtC,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,QAAQ,GAAe;YAC3B,CAAC,cAAc,EAAE,SAAS,EAAE,wBAAwB,CAAC;YACrD,CAAC,QAAQ,EAAE,SAAS,EAAE,wBAAwB,CAAC;YAC/C,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,CAAC;YACnE,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,CAAC;YAChK,CAAC,wBAAwB,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACjO,CAAC,gBAAgB,CAAC;YAClB,CAAC,UAAU,CAAC;YACZ,CAAC,MAAM,CAAC;YACR,CAAC,YAAY,CAAC;YACd,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,CAAC;SACnG,CAAC;QACF,MAAM,QAAQ,GAA4B;YACxC,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;YAC5C,CAAC,0BAA0B,EAAE,wBAAwB,CAAC;SACvD,CAAC;QAEF,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC3C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBAC1B,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;oBACnD,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;oBAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;oBACnC,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;oBAC5C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;oBAChC,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC3D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,iBAAiB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACvE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;wBACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,oCAAoC,CAAC,CAAC;wBAC7E,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;wBACxE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBAC5E,CAAC;4BAAS,CAAC;wBACT,IAAI,OAAO,cAAc,KAAK,QAAQ;4BAAE,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,cAAc,CAAC;;4BAChF,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;wBACxC,IAAI,OAAO,gBAAgB,KAAK,QAAQ;4BAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,gBAAgB,CAAC;;4BAC7F,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;oBACnD,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACxF,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YACnD,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,uBAAuB,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;YAChE,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC7D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;gBAEtD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACjE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YACvD,CAAC;oBAAS,CAAC;gBACT,IAAI,OAAO,cAAc,KAAK,QAAQ;oBAAE,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,cAAc,CAAC;;oBAChF,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;gBACxC,IAAI,OAAO,gBAAgB,KAAK,QAAQ;oBAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,gBAAgB,CAAC;;oBAC7F,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACxC,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,wCAAwC,CAAC,CAAC;QAC9E,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,oCAAoC,CAAC,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,4BAA4B,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,oCAAoC,CAAC,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,uCAAuC,CAAC,CAAC,CAAC,CAAC;YAC5H,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,gCAAgC,CAAC,CAAC;YAE1E,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;YACzD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,2EAA2E,CAAC,CAAC;YAElG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,EAAE,OAAO,CAAC,CAA+E,CAAC;YACxK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;YACzD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,EAAE,qCAAqC,CAAC,CAAC;YAChF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,EAAE,4CAA4C,CAAC,CAAC;YACvF,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,EAAE,sBAAsB,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACxF,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,EAAE,OAAO,CAAC,CAA+B,CAAC;YACxH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACtD,YAAY;gBACZ,WAAW,EAAE,sBAAsB;gBACnC,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,cAAc;gBAC5B,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;gBACtG,qBAAqB,EAAE,gBAAgB,EAAE;gBACzC,QAAQ;aACT,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAsC,CAAC;YAC7F,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACxF,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,EAAE,OAAO,CAAC,CAA+B,CAAC;YAExH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACtD,YAAY;gBACZ,WAAW,EAAE,sBAAsB;gBACnC,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,cAAc;gBAC5B,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;gBACtG,qBAAqB,EAAE,gBAAgB,EAAE;aAC1C,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAE7C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBAClD,QAAQ;gBACR,mBAAmB;gBACnB,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAC;gBACrE,QAAQ;aACT,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAIjD,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,EAAE,uCAAuC,CAAC,CAAC;YACxF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,EAAE,yBAAyB,CAAC,CAAC;YAC1E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,IAAI,EAAE,EAAE,oDAAoD,CAAC,CAAC;YAC5G,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;YAE3F,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACjD,QAAQ;gBACR,mBAAmB;gBACnB,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,wCAAwC,EAAE,CAAC;aACpE,CAAC,CAAC,CAAC;YACJ,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,oEAAoE,CAAC,CAAC;YAC3F,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,mDAAmD,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,MAAM,aAAa,GAAG,gDAAgD,CAAC;YACvE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,2BAA2B,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC,CAAC,CAAC;YACjK,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAE1D,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACtD,YAAY;gBACZ,WAAW,EAAE,YAAY;gBACzB,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,wGAAwG;gBACtH,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;gBAC/F,qBAAqB,EAAE,gBAAgB,EAAE;aAC1C,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAE7C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,uCAAuC,CAAC,CAAC;YAC9D,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,yFAAyF,CAAC,CAAC;QAClH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;YACnF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACnD,OAAO;gBACP,QAAQ,EAAE,aAAa;gBACvB,SAAS,EAAE,sBAAsB;gBACjC,aAAa,EAAE,kDAAkD;gBACjE,YAAY,EAAE,oGAAoG;gBAClH,aAAa,EAAE,wGAAwG;gBACvH,mBAAmB,EAAE,sBAAsB;gBAC3C,QAAQ;aACT,CAAC,CAAC,CAAC;YAEJ,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAKlD,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAExC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,6BAA6B,CAAC,EAAE,OAAO,CAAC,CAAC;YACjF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;YACnF,MAAM,IAAI,GAAG;gBACX,OAAO;gBACP,QAAQ,EAAE,aAAa;gBACvB,SAAS,EAAE,sBAAsB;gBACjC,aAAa,EAAE,kDAAkD;gBACjE,YAAY,EAAE,4DAA4D;gBAC1E,aAAa,EAAE,oDAAoD;gBACnE,mBAAmB,EAAE,gBAAgB;gBACrC,QAAQ;aACT,CAAC;YAEF,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAA0E,CAAC;YAC7H,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;YACnF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,yCAAyC,CAAC,CAAC,CAAC,CAAC;YAE7G,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,kDAAkD,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;YACnF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACpD,OAAO;gBACP,YAAY;gBACZ,IAAI,CAAC,SAAS,CAAC;oBACb,IAAI,EAAE,kBAAkB;oBACxB,MAAM,EAAE,KAAK;oBACb,QAAQ,EAAE,kDAAkD;oBAC5D,SAAS,EAAE,kEAAkE;iBAC9E,CAAC;gBACF,QAAQ;aACT,CAAC,CAAC,CAAC;YAEJ,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;YACnF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACnD,OAAO;gBACP,QAAQ,EAAE,iBAAiB;gBAC3B,UAAU,EAAE,QAAQ;gBACpB,YAAY,EAAE,8CAA8C;gBAC5D,aAAa,EAAE,oDAAoD;gBACnE,QAAQ;aACT,CAAC,CAAC,CAAC;YAEJ,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,0BAA0B,CAAC,CAAC;YAEpE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACpD,OAAO;gBACP,QAAQ,EAAE,iBAAiB;gBAC3B,UAAU,EAAE,SAAS;gBACrB,YAAY,EAAE,gDAAgD;gBAC9D,aAAa,EAAE,yDAAyD;gBACxE,QAAQ;aACT,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAkC,CAAC;YACvF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;YACnF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACpD,OAAO;gBACP,QAAQ,EAAE,wBAAwB;gBAClC,kBAAkB,EAAE,cAAc;gBAClC,YAAY,EAAE,2EAA2E;gBACzF,aAAa,EAAE,yEAAyE;gBACxF,SAAS,EAAE,WAAW;gBACtB,QAAQ;aACT,CAAC,CAAC,CAAC;YAEJ,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAInD,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;YAC1D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACxF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACjD,UAAU;gBACV,SAAS,EAAE,oCAAoC;gBAC/C,aAAa,EAAE,+BAA+B;gBAC9C,YAAY,EAAE,iBAAiB;gBAC/B,QAAQ;aACT,CAAC,CAAC,CAAC;YAEJ,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAgF,CAAC;YAClI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,yCAAyC,CAAC,CAAC;YAC7E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBAClD,OAAO;gBACP,QAAQ,EAAE,aAAa;gBACvB,SAAS,EAAE,wBAAwB;gBACnC,aAAa,EAAE,+DAA+D;gBAC9E,YAAY,EAAE,uBAAuB;gBACrC,aAAa,EAAE,iDAAiD;gBAChE,mBAAmB,EAAE,eAAe;gBACpC,QAAQ;aACT,CAAC,CAAC,CAAC;YAEJ,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAA8E,CAAC;YACjI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAE5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBAClD,OAAO;gBACP,QAAQ,EAAE,aAAa;gBACvB,SAAS,EAAE,wBAAwB;gBACnC,aAAa,EAAE,+DAA+D;gBAC9E,YAAY,EAAE,uBAAuB;gBACrC,aAAa,EAAE,iDAAiD;gBAChE,mBAAmB,EAAE,eAAe;gBACpC,QAAQ;aACT,CAAC,CAAC,CAAC;YACJ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAA2D,CAAC;YAC/G,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBAClD,OAAO;gBACP,QAAQ,EAAE,aAAa;gBACvB,SAAS,EAAE,aAAa;gBACxB,aAAa,EAAE,6CAA6C;aAC7D,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACxF,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,EAAE,OAAO,CAAC,CAA+B,CAAC;YAExH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACnD,wBAAwB;gBACxB,WAAW,EAAE,sBAAsB;gBACnC,SAAS,EAAE,oCAAoC;gBAC/C,aAAa,EAAE,qCAAqC;gBACpD,YAAY,EAAE,6BAA6B;gBAC3C,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;gBACpG,QAAQ;aACT,CAAC,CAAC,CAAC;YAEJ,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAA4H,CAAC;YAChL,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAC1D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACxF,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,EAAE,OAAO,CAAC,CAA+B,CAAC;YAExH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACnD,YAAY;gBACZ,WAAW,EAAE,sBAAsB;gBACnC,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,cAAc;aAC7B,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;YAEzD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACtD,YAAY;gBACZ,WAAW,EAAE,sBAAsB;gBACnC,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,cAAc;gBAC5B,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;aACrG,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;YAE3D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACpD,YAAY;gBACZ,WAAW,EAAE,sBAAsB;gBACnC,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,cAAc;gBAC5B,mBAAmB,EAAE,wDAAwD;aAC9E,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAC;YAC/D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAC;YAC/D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,wCAAwC,CAAC,CAAC;YAE1F,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACvD,YAAY;gBACZ,WAAW,EAAE,sBAAsB;gBACnC,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,cAAc;gBAC5B,mBAAmB,EAAE,sDAAsD;aAC5E,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,2BAA2B,CAAC,CAAC;YACzE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,gDAAgD,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACxF,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,EAAE,OAAO,CAAC,CAA+B,CAAC;YAExH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACrD,YAAY;gBACZ,WAAW,EAAE,sBAAsB;gBACnC,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,cAAc;gBAC5B,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;gBACtG,qBAAqB,EAAE,WAAW;aACnC,CAAC,CAAC,CAAC;YAEJ,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1H,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAE1D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACnD,YAAY;gBACZ,WAAW,EAAE,sBAAsB;gBACnC,UAAU,EAAE,SAAS;gBACrB,YAAY,EAAE,mDAAmD;gBACjE,mBAAmB,EAAE,8FAA8F;gBACnH,QAAQ;aACT,CAAC,CAAC,CAAC;YAEJ,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAyF,CAAC;YAC7I,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;YAE/D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,6BAA6B,CAAC,EAAE,OAAO,CAAC,CAAC;YACjF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAClG,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,MAAM,WAAW,GAAG;gBAClB,wDAAwD;gBACxD,oCAAoC;gBACpC,uDAAuD;gBACvD,oEAAoE;aACrE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEZ,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,4BAA4B,CAAC,CAAC,CAAC,CAAC;YACjG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAE1D,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;gBACjD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;oBACtD,YAAY;oBACZ,WAAW,EAAE,+BAA+B;oBAC5C,UAAU,EAAE,QAAQ;oBACpB,YAAY,EAAE,WAAW;oBACzB,QAAQ;iBACT,CAAC,CAAC,CAAC;gBACJ,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAGrD,CAAC;gBACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;oBAChB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;oBACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACvC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;oBAClD,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;oBACjD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;oBAC7C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;oBACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,IAAI,EAAE,EAAE,8BAA8B,CAAC,CAAC;oBAClF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACvC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC1F,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;YAChE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC;YACnE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,0DAA0D,CAAC,CAAC;YACjF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gDAAgD,CAAC,CAAC;YAEvE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,EAAE,OAAO,CAAC,CAAwF,CAAC;YAChL,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;YAC1D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAE/C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,6BAA6B,CAAC,EAAE,OAAO,CAAC,CAAC;YACjF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1H,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAE1D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACnD,YAAY;gBACZ,WAAW,EAAE,sBAAsB;gBACnC,UAAU,EAAE,SAAS;gBACrB,YAAY,EAAE,mBAAmB;gBACjC,mBAAmB,EAAE,kEAAkE;aACxF,CAAC,CAAC,CAAC;YAEJ,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,uDAAuD,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { describe, it } from 'node:test';
2
2
  import assert from 'node:assert/strict';
3
+ import { mkdirSync, writeFileSync } from 'node:fs';
3
4
  import { mkdir, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
4
5
  import { dirname, join } from 'node:path';
5
6
  import { tmpdir } from 'node:os';
6
- import { isInstallVersionBump, isNewerVersion, maybeCheckAndPromptUpdate, readUserInstallStamp, resolveAutoUpdateMode, resolveInstalledCliEntry, formatDeferredSetupCommand, resolveSetupRefreshArgs, runDeferredGlobalUpdate, runImmediateUpdate, shouldCheckForUpdates, spawnInstalledSetupRefresh, writeUserInstallStamp, } from '../update.js';
7
+ import { isInstallVersionBump, isNewerVersion, maybeCheckAndPromptUpdate, readUserInstallStamp, resolveAutoUpdateMode, resolveGlobalInstallRoot, resolveInstalledCliEntry, formatDeferredSetupCommand, resolveSetupRefreshArgs, runDeferredGlobalUpdate, runGlobalUpdate, runImmediateUpdate, shouldCheckForUpdates, spawnInstalledSetupRefresh, writeUserInstallStamp, } from '../update.js';
7
8
  const PACKAGE_NAME = 'oh-my-codex';
8
9
  describe('isNewerVersion', () => {
9
10
  it('returns true when latest has higher major', () => {
@@ -151,6 +152,7 @@ describe('maybeCheckAndPromptUpdate', () => {
151
152
  }
152
153
  it('schedules a deferred update after a successful startup prompt', async () => {
153
154
  const cwd = await mkdtemp(join(tmpdir(), 'omx-update-'));
155
+ const originalMode = process.env.OMX_AUTO_UPDATE;
154
156
  const originalLog = console.log;
155
157
  const logs = [];
156
158
  let inlineUpdateCalls = 0;
@@ -159,6 +161,7 @@ describe('maybeCheckAndPromptUpdate', () => {
159
161
  console.log = (...args) => {
160
162
  logs.push(args.map((arg) => String(arg)).join(' '));
161
163
  };
164
+ delete process.env.OMX_AUTO_UPDATE;
162
165
  try {
163
166
  await withInteractiveTty(async () => {
164
167
  await maybeCheckAndPromptUpdate(cwd, {
@@ -189,15 +192,23 @@ describe('maybeCheckAndPromptUpdate', () => {
189
192
  assert.match(logs.join('\n'), /Log: .*update-test\.log/);
190
193
  }
191
194
  finally {
195
+ if (typeof originalMode === 'string') {
196
+ process.env.OMX_AUTO_UPDATE = originalMode;
197
+ }
198
+ else {
199
+ delete process.env.OMX_AUTO_UPDATE;
200
+ }
192
201
  console.log = originalLog;
193
202
  await rm(cwd, { recursive: true, force: true });
194
203
  }
195
204
  });
196
205
  it('keeps startup update deferred so local setup is not refreshed inline', async () => {
197
206
  const cwd = await mkdtemp(join(tmpdir(), 'omx-update-'));
207
+ const originalMode = process.env.OMX_AUTO_UPDATE;
198
208
  const originalLog = console.log;
199
209
  const receivedCwds = [];
200
210
  console.log = () => undefined;
211
+ delete process.env.OMX_AUTO_UPDATE;
201
212
  try {
202
213
  await withInteractiveTty(async () => {
203
214
  await maybeCheckAndPromptUpdate(cwd, {
@@ -216,6 +227,12 @@ describe('maybeCheckAndPromptUpdate', () => {
216
227
  assert.deepEqual(receivedCwds, [cwd]);
217
228
  }
218
229
  finally {
230
+ if (typeof originalMode === 'string') {
231
+ process.env.OMX_AUTO_UPDATE = originalMode;
232
+ }
233
+ else {
234
+ delete process.env.OMX_AUTO_UPDATE;
235
+ }
219
236
  console.log = originalLog;
220
237
  await rm(cwd, { recursive: true, force: true });
221
238
  }
@@ -296,12 +313,14 @@ describe('maybeCheckAndPromptUpdate', () => {
296
313
  });
297
314
  it('reports scheduler diagnostics when startup deferral cannot be launched', async () => {
298
315
  const cwd = await mkdtemp(join(tmpdir(), 'omx-update-'));
316
+ const originalMode = process.env.OMX_AUTO_UPDATE;
299
317
  const originalLog = console.log;
300
318
  const logs = [];
301
319
  let setupRefreshCalls = 0;
302
320
  console.log = (...args) => {
303
321
  logs.push(args.map((arg) => String(arg)).join(' '));
304
322
  };
323
+ delete process.env.OMX_AUTO_UPDATE;
305
324
  try {
306
325
  await withInteractiveTty(async () => {
307
326
  await maybeCheckAndPromptUpdate(cwd, {
@@ -321,6 +340,12 @@ describe('maybeCheckAndPromptUpdate', () => {
321
340
  assert.match(logs.join('\n'), /update-test\.log/);
322
341
  }
323
342
  finally {
343
+ if (typeof originalMode === 'string') {
344
+ process.env.OMX_AUTO_UPDATE = originalMode;
345
+ }
346
+ else {
347
+ delete process.env.OMX_AUTO_UPDATE;
348
+ }
324
349
  console.log = originalLog;
325
350
  await rm(cwd, { recursive: true, force: true });
326
351
  }
@@ -380,6 +405,89 @@ describe('maybeCheckAndPromptUpdate', () => {
380
405
  }
381
406
  });
382
407
  });
408
+ describe('direct npm spawn fallback', () => {
409
+ function enoentResult() {
410
+ const error = Object.assign(new Error('spawnSync npm ENOENT'), { code: 'ENOENT' });
411
+ return { status: null, signal: null, error, stdout: '', stderr: '', output: [null, '', ''], pid: 0 };
412
+ }
413
+ function okResult(stdout = '') {
414
+ return { status: 0, signal: null, error: undefined, stdout, stderr: '', output: [null, stdout, ''], pid: 0 };
415
+ }
416
+ it('falls back to npm.cmd for win32 global installs when direct npm spawn returns ENOENT', () => {
417
+ const calls = [];
418
+ const result = runGlobalUpdate(((command, args) => {
419
+ calls.push({ command, args: args });
420
+ return command === 'npm' ? enoentResult() : okResult();
421
+ }), 'win32');
422
+ assert.equal(result.ok, true);
423
+ assert.deepEqual(calls.map((call) => call.command), ['npm', 'npm.cmd']);
424
+ assert.deepEqual(calls[0].args, ['install', '-g', 'oh-my-codex@latest']);
425
+ assert.deepEqual(calls[1].args, ['install', '-g', 'oh-my-codex@latest']);
426
+ });
427
+ it('does not fall back to npm.cmd for non-Windows ENOENT failures', () => {
428
+ const calls = [];
429
+ const result = runGlobalUpdate(((command) => {
430
+ calls.push(command);
431
+ return enoentResult();
432
+ }), 'linux');
433
+ assert.equal(result.ok, false);
434
+ assert.match(result.stderr, /ENOENT/);
435
+ assert.deepEqual(calls, ['npm']);
436
+ });
437
+ it('packs the dev branch from a local checkout instead of globally installing the git dependency spec', () => {
438
+ const originalNpmLocation = process.env.npm_config_location;
439
+ const calls = [];
440
+ process.env.npm_config_location = 'global';
441
+ try {
442
+ const result = runGlobalUpdate('github:Yeachan-Heo/oh-my-codex#dev', ((command, args, options) => {
443
+ calls.push({ command, args: args, cwd: options?.cwd, env: options?.env });
444
+ if (command === 'git' && args[0] === 'clone') {
445
+ mkdirSync(String(args[args.length - 1]), { recursive: true });
446
+ }
447
+ if (command === 'git' && args[0] === 'rev-parse') {
448
+ return okResult('1234567890abcdef\n');
449
+ }
450
+ if (command === 'npm' && args[0] === 'pack') {
451
+ writeFileSync(join(options?.cwd ?? process.cwd(), 'oh-my-codex-0.18.9.tgz'), 'packed');
452
+ return okResult(JSON.stringify([{ filename: 'oh-my-codex-0.18.9.tgz' }]));
453
+ }
454
+ return okResult();
455
+ }), 'linux');
456
+ assert.equal(result.ok, true);
457
+ assert.deepEqual(calls.map((call) => [call.command, ...call.args.slice(0, 3)]), [
458
+ ['git', 'clone', '--depth', '1'],
459
+ ['git', 'rev-parse', 'HEAD'],
460
+ ['npm', 'install', '--global=false', '--location=project'],
461
+ ['npm', 'run', 'prepack'],
462
+ ['npm', 'pack', '--ignore-scripts', '--json'],
463
+ ['npm', 'install', '-g', join(calls[2].cwd ?? '', 'oh-my-codex-0.18.9.tgz')],
464
+ ]);
465
+ const dependencyInstall = calls.find((call) => call.command === 'npm' && call.args[0] === 'install' && call.args.includes('--include=dev'));
466
+ assert.equal(dependencyInstall?.env?.npm_config_global, 'false');
467
+ assert.equal(dependencyInstall?.env?.npm_config_location, 'project');
468
+ assert.equal(calls.some((call) => call.args.includes('github:Yeachan-Heo/oh-my-codex#dev')), false);
469
+ }
470
+ finally {
471
+ if (typeof originalNpmLocation === 'string') {
472
+ process.env.npm_config_location = originalNpmLocation;
473
+ }
474
+ else {
475
+ delete process.env.npm_config_location;
476
+ }
477
+ }
478
+ });
479
+ it('falls back to npm.cmd for win32 global-root lookup when direct npm spawn returns ENOENT', () => {
480
+ const calls = [];
481
+ const root = resolveGlobalInstallRoot(((command, args) => {
482
+ calls.push({ command, args: args });
483
+ return command === 'npm' ? enoentResult() : okResult('C:\\Users\\alice\\AppData\\Roaming\\npm\\node_modules\r\n');
484
+ }), 'win32');
485
+ assert.equal(root, 'C:\\Users\\alice\\AppData\\Roaming\\npm\\node_modules');
486
+ assert.deepEqual(calls.map((call) => call.command), ['npm', 'npm.cmd']);
487
+ assert.deepEqual(calls[0].args, ['root', '-g']);
488
+ assert.deepEqual(calls[1].args, ['root', '-g']);
489
+ });
490
+ });
383
491
  describe('runImmediateUpdate', () => {
384
492
  it('bypasses the passive cadence and updates immediately on explicit request', async () => {
385
493
  const cwd = await mkdtemp(join(tmpdir(), 'omx-update-now-'));
@@ -390,6 +498,7 @@ describe('runImmediateUpdate', () => {
390
498
  const logs = [];
391
499
  let setupCalls = 0;
392
500
  const refreshCwds = [];
501
+ const installSources = [];
393
502
  let updateCalls = 0;
394
503
  let latestCalls = 0;
395
504
  console.log = (...args) => {
@@ -408,8 +517,9 @@ describe('runImmediateUpdate', () => {
408
517
  latestCalls += 1;
409
518
  return '0.14.1';
410
519
  },
411
- runGlobalUpdate: () => {
520
+ runGlobalUpdate: (installSource) => {
412
521
  updateCalls += 1;
522
+ installSources.push(installSource);
413
523
  return { ok: true, stderr: '' };
414
524
  },
415
525
  runSetupRefresh: async (refreshCwd) => {
@@ -421,10 +531,13 @@ describe('runImmediateUpdate', () => {
421
531
  assert.equal(result.status, 'updated');
422
532
  assert.equal(latestCalls, 1);
423
533
  assert.equal(updateCalls, 1);
534
+ assert.deepEqual(installSources, [`${PACKAGE_NAME}@latest`]);
424
535
  assert.equal(setupCalls, 1);
425
536
  assert.deepEqual(refreshCwds, [cwd]);
537
+ assert.match(logs.join('\n'), /Selected update channel: stable/);
538
+ assert.match(logs.join('\n'), /Install source: oh-my-codex@latest/);
426
539
  assert.match(logs.join('\n'), /Running: npm install -g oh-my-codex@latest/);
427
- assert.match(logs.join('\n'), /Updated to v0\.14\.1/);
540
+ assert.match(logs.join('\n'), /Updated stable channel to v0\.14\.1/);
428
541
  const stamp = JSON.parse(await readFile(stampPath, 'utf-8'));
429
542
  assert.equal(stamp.installed_version, '0.14.1');
430
543
  assert.equal(stamp.setup_completed_version, '0.14.1');
@@ -440,12 +553,13 @@ describe('runImmediateUpdate', () => {
440
553
  await rm(cwd, { recursive: true, force: true });
441
554
  }
442
555
  });
443
- it('reports up-to-date status for explicit update when npm is already current', async () => {
556
+ it('force-installs stable for explicit update even when npm is already current', async () => {
444
557
  const cwd = await mkdtemp(join(tmpdir(), 'omx-update-now-'));
445
558
  const stampPath = join(cwd, '.codex', '.omx', 'install-state.json');
446
559
  const originalCodexHome = process.env.CODEX_HOME;
447
560
  const originalLog = console.log;
448
561
  const logs = [];
562
+ const installSources = [];
449
563
  let updateCalls = 0;
450
564
  let refreshCalls = 0;
451
565
  console.log = (...args) => {
@@ -461,8 +575,9 @@ describe('runImmediateUpdate', () => {
461
575
  const result = await runImmediateUpdate(cwd, {
462
576
  getCurrentVersion: async () => '0.14.0',
463
577
  fetchLatestVersion: async () => '0.14.0',
464
- runGlobalUpdate: () => {
578
+ runGlobalUpdate: (installSource) => {
465
579
  updateCalls += 1;
580
+ installSources.push(installSource);
466
581
  return { ok: true, stderr: '' };
467
582
  },
468
583
  runSetupRefresh: async () => {
@@ -470,10 +585,12 @@ describe('runImmediateUpdate', () => {
470
585
  return { ok: true, stderr: '' };
471
586
  },
472
587
  });
473
- assert.equal(result.status, 'up-to-date');
474
- assert.equal(updateCalls, 0);
475
- assert.equal(refreshCalls, 0);
476
- assert.match(logs.join('\n'), /already up to date \(v0\.14\.0\)/);
588
+ assert.equal(result.status, 'updated');
589
+ assert.equal(updateCalls, 1);
590
+ assert.equal(refreshCalls, 1);
591
+ assert.deepEqual(installSources, [`${PACKAGE_NAME}@latest`]);
592
+ assert.match(logs.join('\n'), /Selected update channel: stable/);
593
+ assert.match(logs.join('\n'), /Running: npm install -g oh-my-codex@latest/);
477
594
  }
478
595
  finally {
479
596
  console.log = originalLog;
@@ -486,12 +603,14 @@ describe('runImmediateUpdate', () => {
486
603
  await rm(cwd, { recursive: true, force: true });
487
604
  }
488
605
  });
489
- it('runs setup refresh for explicit update when current version matches but setup stamp is stale', async () => {
606
+ it('uses stable as a rollback path while preserving persisted setup preferences', async () => {
490
607
  const cwd = await mkdtemp(join(tmpdir(), 'omx-update-now-'));
491
608
  const stampPath = join(cwd, '.codex', '.omx', 'install-state.json');
492
609
  const originalCodexHome = process.env.CODEX_HOME;
493
610
  const originalLog = console.log;
494
611
  const logs = [];
612
+ const installSources = [];
613
+ const setupArgs = resolveSetupRefreshArgs;
495
614
  let refreshCalls = 0;
496
615
  console.log = (...args) => {
497
616
  logs.push(args.map((arg) => String(arg)).join(' '));
@@ -503,21 +622,34 @@ describe('runImmediateUpdate', () => {
503
622
  setup_completed_version: '0.13.9',
504
623
  updated_at: '2026-04-20T00:00:00.000Z',
505
624
  }, stampPath);
625
+ await mkdir(join(cwd, '.omx'), { recursive: true });
626
+ await writeFile(join(cwd, '.omx', 'setup-scope.json'), JSON.stringify({ scope: 'user', installMode: 'plugin', mcpMode: 'none', teamMode: 'disabled' }, null, 2));
506
627
  const result = await runImmediateUpdate(cwd, {
507
628
  getCurrentVersion: async () => '0.14.0',
508
629
  fetchLatestVersion: async () => '0.14.0',
509
- runGlobalUpdate: () => {
510
- throw new Error('global update should not run when already current');
630
+ runGlobalUpdate: (installSource) => {
631
+ installSources.push(installSource);
632
+ return { ok: true, stderr: '', revision: '1234567890ab' };
511
633
  },
512
634
  runSetupRefresh: async () => {
513
635
  refreshCalls += 1;
636
+ assert.deepEqual(setupArgs(cwd), [
637
+ 'setup',
638
+ '--scope',
639
+ 'user',
640
+ '--plugin',
641
+ '--mcp',
642
+ 'none',
643
+ '--disable-team',
644
+ ]);
514
645
  return { ok: true, stderr: '' };
515
646
  },
516
- });
517
- assert.equal(result.status, 'up-to-date');
647
+ }, { channel: 'stable' });
648
+ assert.equal(result.status, 'updated');
649
+ assert.deepEqual(installSources, [`${PACKAGE_NAME}@latest`]);
518
650
  assert.equal(refreshCalls, 1);
519
- assert.match(logs.join('\n'), /Running setup refresh/);
520
- assert.match(logs.join('\n'), /Setup refresh completed for v0\.14\.0/);
651
+ assert.match(logs.join('\n'), /Selected update channel: stable/);
652
+ assert.match(logs.join('\n'), /Install source: oh-my-codex@latest/);
521
653
  const stamp = JSON.parse(await readFile(stampPath, 'utf-8'));
522
654
  assert.equal(stamp.installed_version, '0.14.0');
523
655
  assert.equal(stamp.setup_completed_version, '0.14.0');
@@ -533,8 +665,66 @@ describe('runImmediateUpdate', () => {
533
665
  await rm(cwd, { recursive: true, force: true });
534
666
  }
535
667
  });
668
+ it('installs the upstream dev branch without implying npm latest', async () => {
669
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-update-now-dev-'));
670
+ const stampPath = join(cwd, '.codex', '.omx', 'install-state.json');
671
+ const originalCodexHome = process.env.CODEX_HOME;
672
+ const originalLog = console.log;
673
+ const logs = [];
674
+ const installSources = [];
675
+ let latestCalls = 0;
676
+ let refreshCalls = 0;
677
+ console.log = (...args) => {
678
+ logs.push(args.map((arg) => String(arg)).join(' '));
679
+ };
680
+ process.env.CODEX_HOME = join(cwd, '.codex');
681
+ try {
682
+ const result = await runImmediateUpdate(cwd, {
683
+ getCurrentVersion: async () => '0.14.0',
684
+ fetchLatestVersion: async () => {
685
+ latestCalls += 1;
686
+ return '0.14.0';
687
+ },
688
+ runGlobalUpdate: (installSource) => {
689
+ installSources.push(installSource);
690
+ return { ok: true, stderr: '', revision: '1234567890ab' };
691
+ },
692
+ runSetupRefresh: async () => {
693
+ refreshCalls += 1;
694
+ return { ok: true, stderr: '' };
695
+ },
696
+ getInstalledVersionAfterUpdate: async () => '0.15.0',
697
+ getInstalledRevisionAfterUpdate: async () => null,
698
+ }, { channel: 'dev' });
699
+ assert.equal(result.status, 'updated');
700
+ assert.equal(latestCalls, 0);
701
+ assert.equal(refreshCalls, 1);
702
+ assert.deepEqual(installSources, ['github:Yeachan-Heo/oh-my-codex#dev']);
703
+ assert.match(logs.join('\n'), /Selected update channel: dev/);
704
+ assert.match(logs.join('\n'), /Install source: github:Yeachan-Heo\/oh-my-codex#dev/);
705
+ assert.match(logs.join('\n'), /Running: clone dev branch, run prepack, then npm install -g the packed tarball/);
706
+ assert.doesNotMatch(logs.join('\n'), /dev.*oh-my-codex@latest/i);
707
+ const stamp = JSON.parse(await readFile(stampPath, 'utf-8'));
708
+ assert.equal(stamp.installed_version, '0.15.0');
709
+ assert.equal(stamp.setup_completed_version, '0.15.0');
710
+ assert.equal(stamp.install_channel, 'dev');
711
+ assert.equal(stamp.install_source, 'github:Yeachan-Heo/oh-my-codex#dev');
712
+ assert.equal(stamp.install_revision, '1234567890ab');
713
+ }
714
+ finally {
715
+ console.log = originalLog;
716
+ if (typeof originalCodexHome === 'string') {
717
+ process.env.CODEX_HOME = originalCodexHome;
718
+ }
719
+ else {
720
+ delete process.env.CODEX_HOME;
721
+ }
722
+ await rm(cwd, { recursive: true, force: true });
723
+ }
724
+ });
536
725
  it('continues explicit update when update-check state cannot be written', async () => {
537
726
  const cwd = await mkdtemp(join(tmpdir(), 'omx-update-now-'));
727
+ const originalCodexHome = process.env.CODEX_HOME;
538
728
  const originalLog = console.log;
539
729
  const logs = [];
540
730
  let updateCalls = 0;
@@ -542,6 +732,7 @@ describe('runImmediateUpdate', () => {
542
732
  console.log = (...args) => {
543
733
  logs.push(args.map((arg) => String(arg)).join(' '));
544
734
  };
735
+ process.env.CODEX_HOME = join(cwd, '.codex');
545
736
  try {
546
737
  const result = await runImmediateUpdate(cwd, {
547
738
  getCurrentVersion: async () => '0.14.0',
@@ -561,10 +752,16 @@ describe('runImmediateUpdate', () => {
561
752
  assert.equal(result.status, 'updated');
562
753
  assert.equal(updateCalls, 1);
563
754
  assert.equal(refreshCalls, 1);
564
- assert.match(logs.join('\n'), /Updated to v0\.14\.1/);
755
+ assert.match(logs.join('\n'), /Updated stable channel to v0\.14\.1/);
565
756
  }
566
757
  finally {
567
758
  console.log = originalLog;
759
+ if (typeof originalCodexHome === 'string') {
760
+ process.env.CODEX_HOME = originalCodexHome;
761
+ }
762
+ else {
763
+ delete process.env.CODEX_HOME;
764
+ }
568
765
  await rm(cwd, { recursive: true, force: true });
569
766
  }
570
767
  });