oh-my-codex 0.18.16 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cargo.lock +6 -6
- package/Cargo.toml +1 -1
- package/crates/omx-sparkshell/tests/execution.rs +8 -1
- package/dist/agents/__tests__/definitions.test.js +5 -5
- package/dist/agents/__tests__/definitions.test.js.map +1 -1
- package/dist/agents/__tests__/native-config.test.js +18 -14
- package/dist/agents/__tests__/native-config.test.js.map +1 -1
- package/dist/agents/definitions.d.ts +2 -2
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +4 -4
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/native-config.d.ts +1 -0
- package/dist/agents/native-config.d.ts.map +1 -1
- package/dist/agents/native-config.js +18 -16
- package/dist/agents/native-config.js.map +1 -1
- package/dist/auth/hotswap.d.ts.map +1 -1
- package/dist/auth/hotswap.js +17 -4
- package/dist/auth/hotswap.js.map +1 -1
- package/dist/autopilot/__tests__/planner-routing.test.js +2 -2
- package/dist/autopilot/__tests__/planner-routing.test.js.map +1 -1
- package/dist/autopilot/fsm.d.ts +1 -1
- package/dist/autopilot/fsm.d.ts.map +1 -1
- package/dist/autopilot/fsm.js +1 -1
- package/dist/autopilot/fsm.js.map +1 -1
- package/dist/cli/__tests__/auth.test.js +78 -3
- package/dist/cli/__tests__/auth.test.js.map +1 -1
- package/dist/cli/__tests__/codex-plugin-layout.test.js +30 -5
- package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-warning-copy.test.js +2 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +96 -8
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/launch-fallback.test.js +135 -1
- package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
- package/dist/cli/__tests__/mcp-parity.test.js +2 -4
- package/dist/cli/__tests__/mcp-parity.test.js.map +1 -1
- package/dist/cli/__tests__/plugin-marketplace-idempotent.test.js +14 -0
- package/dist/cli/__tests__/plugin-marketplace-idempotent.test.js.map +1 -1
- package/dist/cli/__tests__/ralph-goal-mode-contract.test.js +8 -0
- package/dist/cli/__tests__/ralph-goal-mode-contract.test.js.map +1 -1
- package/dist/cli/__tests__/resume.test.js +229 -1
- package/dist/cli/__tests__/resume.test.js.map +1 -1
- package/dist/cli/__tests__/session-scoped-runtime.test.js +46 -0
- package/dist/cli/__tests__/session-scoped-runtime.test.js.map +1 -1
- package/dist/cli/__tests__/setup-install-mode.test.js +37 -0
- package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
- package/dist/cli/__tests__/ultragoal.test.js +21 -0
- package/dist/cli/__tests__/ultragoal.test.js.map +1 -1
- package/dist/cli/__tests__/version.test.js +13 -1
- package/dist/cli/__tests__/version.test.js.map +1 -1
- package/dist/cli/auth.d.ts +1 -1
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +49 -9
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/index.d.ts +25 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +233 -32
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/plugin-marketplace.d.ts.map +1 -1
- package/dist/cli/plugin-marketplace.js +22 -1
- package/dist/cli/plugin-marketplace.js.map +1 -1
- package/dist/cli/ralph.d.ts.map +1 -1
- package/dist/cli/ralph.js +4 -0
- package/dist/cli/ralph.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +3 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js +7 -0
- package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js.map +1 -1
- package/dist/goal-workflows/codex-goal-snapshot.js +1 -1
- package/dist/goal-workflows/codex-goal-snapshot.js.map +1 -1
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js +12 -0
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/keyword-detector.test.js +267 -7
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +143 -30
- package/dist/hooks/keyword-detector.js.map +1 -1
- package/dist/hud/__tests__/reconcile.test.js +121 -0
- package/dist/hud/__tests__/reconcile.test.js.map +1 -1
- package/dist/hud/__tests__/state.test.js +110 -0
- package/dist/hud/__tests__/state.test.js.map +1 -1
- package/dist/hud/__tests__/tmux.test.js +1 -1
- package/dist/hud/__tests__/tmux.test.js.map +1 -1
- package/dist/hud/reconcile.d.ts +3 -1
- package/dist/hud/reconcile.d.ts.map +1 -1
- package/dist/hud/reconcile.js +281 -151
- package/dist/hud/reconcile.js.map +1 -1
- package/dist/hud/render.d.ts.map +1 -1
- package/dist/hud/render.js +4 -2
- package/dist/hud/render.js.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +44 -12
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/tmux.d.ts.map +1 -1
- package/dist/hud/tmux.js +1 -4
- package/dist/hud/tmux.js.map +1 -1
- package/dist/hud/types.d.ts +5 -0
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js.map +1 -1
- package/dist/leader/__tests__/contract.test.d.ts +2 -0
- package/dist/leader/__tests__/contract.test.d.ts.map +1 -0
- package/dist/leader/__tests__/contract.test.js +75 -0
- package/dist/leader/__tests__/contract.test.js.map +1 -0
- package/dist/leader/contract.d.ts +26 -0
- package/dist/leader/contract.d.ts.map +1 -0
- package/dist/leader/contract.js +97 -0
- package/dist/leader/contract.js.map +1 -0
- package/dist/modes/base.d.ts.map +1 -1
- package/dist/modes/base.js +22 -7
- package/dist/modes/base.js.map +1 -1
- package/dist/notifications/__tests__/dispatcher.test.js +16 -0
- package/dist/notifications/__tests__/dispatcher.test.js.map +1 -1
- package/dist/notifications/__tests__/profiles.test.js +87 -0
- package/dist/notifications/__tests__/profiles.test.js.map +1 -1
- package/dist/notifications/config.d.ts +1 -0
- package/dist/notifications/config.d.ts.map +1 -1
- package/dist/notifications/config.js +60 -22
- package/dist/notifications/config.js.map +1 -1
- package/dist/notifications/dispatcher.d.ts.map +1 -1
- package/dist/notifications/dispatcher.js +6 -16
- package/dist/notifications/dispatcher.js.map +1 -1
- package/dist/pipeline/__tests__/stages.test.js +2 -0
- package/dist/pipeline/__tests__/stages.test.js.map +1 -1
- package/dist/pipeline/stages/ultragoal.d.ts.map +1 -1
- package/dist/pipeline/stages/ultragoal.js +6 -1
- package/dist/pipeline/stages/ultragoal.js.map +1 -1
- package/dist/question/__tests__/renderer.test.js +58 -4
- package/dist/question/__tests__/renderer.test.js.map +1 -1
- package/dist/question/renderer.d.ts +1 -1
- package/dist/question/renderer.d.ts.map +1 -1
- package/dist/question/renderer.js +73 -5
- package/dist/question/renderer.js.map +1 -1
- package/dist/ralplan/__tests__/runtime.test.js +202 -0
- package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
- package/dist/ralplan/runtime.d.ts +7 -0
- package/dist/ralplan/runtime.d.ts.map +1 -1
- package/dist/ralplan/runtime.js +63 -4
- package/dist/ralplan/runtime.js.map +1 -1
- package/dist/scripts/__tests__/codex-native-hook.test.js +8484 -4560
- package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
- package/dist/scripts/codex-native-hook.d.ts +1 -0
- package/dist/scripts/codex-native-hook.d.ts.map +1 -1
- package/dist/scripts/codex-native-hook.js +4387 -190
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/state/__tests__/operations.test.js +1137 -0
- package/dist/state/__tests__/operations.test.js.map +1 -1
- package/dist/state/__tests__/planning-gate.test.js +410 -0
- package/dist/state/__tests__/planning-gate.test.js.map +1 -1
- package/dist/state/operations.d.ts +10 -0
- package/dist/state/operations.d.ts.map +1 -1
- package/dist/state/operations.js +242 -8
- package/dist/state/operations.js.map +1 -1
- package/dist/state/skill-active.d.ts +4 -1
- package/dist/state/skill-active.d.ts.map +1 -1
- package/dist/state/skill-active.js +5 -3
- package/dist/state/skill-active.js.map +1 -1
- package/dist/state/workflow-transition.d.ts.map +1 -1
- package/dist/state/workflow-transition.js +642 -1
- package/dist/state/workflow-transition.js.map +1 -1
- package/dist/subagents/__tests__/tracker.test.js +248 -1
- package/dist/subagents/__tests__/tracker.test.js.map +1 -1
- package/dist/subagents/tracker.d.ts +60 -0
- package/dist/subagents/tracker.d.ts.map +1 -1
- package/dist/subagents/tracker.js +225 -1
- package/dist/subagents/tracker.js.map +1 -1
- package/dist/team/__tests__/model-contract.test.js +72 -4
- package/dist/team/__tests__/model-contract.test.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +44 -2
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +127 -8
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/worker-runtime-identity.test.js +89 -0
- package/dist/team/__tests__/worker-runtime-identity.test.js.map +1 -1
- package/dist/team/model-contract.d.ts +3 -0
- package/dist/team/model-contract.d.ts.map +1 -1
- package/dist/team/model-contract.js +42 -5
- package/dist/team/model-contract.js.map +1 -1
- package/dist/team/runtime.d.ts +2 -1
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +21 -11
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/scaling.d.ts.map +1 -1
- package/dist/team/scaling.js +13 -11
- package/dist/team/scaling.js.map +1 -1
- package/dist/team/tmux-session.d.ts +1 -0
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +63 -13
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/ultragoal/__tests__/artifacts.test.js +7 -0
- package/dist/ultragoal/__tests__/artifacts.test.js.map +1 -1
- package/dist/ultragoal/artifacts.d.ts.map +1 -1
- package/dist/ultragoal/artifacts.js +5 -0
- package/dist/ultragoal/artifacts.js.map +1 -1
- package/dist/utils/__tests__/agents-model-table.test.js +2 -2
- package/dist/utils/__tests__/agents-model-table.test.js.map +1 -1
- package/package.json +1 -1
- package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/oh-my-codex/hooks/codex-native-hook.mjs +19 -7
- package/plugins/oh-my-codex/skills/code-review/SKILL.md +16 -0
- package/plugins/oh-my-codex/skills/ultragoal/SKILL.md +23 -0
- package/plugins/oh-my-codex/skills/ultrawork/references/agent-tiers.md +3 -2
- package/skills/code-review/SKILL.md +16 -0
- package/skills/ecomode/references/agent-tiers.md +1 -1
- package/skills/ultragoal/SKILL.md +23 -0
- package/skills/ultrawork/references/agent-tiers.md +3 -2
- package/src/scripts/__tests__/codex-native-hook.test.ts +14014 -9097
- package/src/scripts/codex-native-hook.ts +4459 -199
package/dist/hud/reconcile.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { mkdir, readFile, rename, rm, stat, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
1
4
|
import { readAllState, readHudConfig } from './state.js';
|
|
2
5
|
import { getHudRenderMaxLines } from './render.js';
|
|
3
6
|
import { HUD_TMUX_HEIGHT_LINES, isTmuxWindowTooCrampedForHudSplit } from './constants.js';
|
|
@@ -131,6 +134,114 @@ function planOwnedHudPaneDedupe(panes, currentPaneId, owner, preferredPaneId) {
|
|
|
131
134
|
duplicatePaneIds: ownedPaneIds.filter((paneId) => paneId !== keeperPaneId),
|
|
132
135
|
};
|
|
133
136
|
}
|
|
137
|
+
const HUD_RECONCILE_LOCK_STALE_MS = 10_000;
|
|
138
|
+
function parseIsoMs(value) {
|
|
139
|
+
if (typeof value !== 'string' || !value.trim())
|
|
140
|
+
return null;
|
|
141
|
+
const parsed = Date.parse(value);
|
|
142
|
+
return Number.isFinite(parsed) ? parsed : null;
|
|
143
|
+
}
|
|
144
|
+
function defaultIsProcessLive(pid) {
|
|
145
|
+
try {
|
|
146
|
+
process.kill(pid, 0);
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
const code = error?.code;
|
|
151
|
+
if (code === 'ESRCH')
|
|
152
|
+
return false;
|
|
153
|
+
if (code === 'EPERM')
|
|
154
|
+
return true;
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
async function readHudReconcileLockOwner(lockPath) {
|
|
159
|
+
return readFile(join(lockPath, 'owner.json'), 'utf-8')
|
|
160
|
+
.then((content) => JSON.parse(content))
|
|
161
|
+
.catch(() => null);
|
|
162
|
+
}
|
|
163
|
+
async function tryCreateHudReconcileLock(lockPath, nowMs) {
|
|
164
|
+
const token = randomUUID();
|
|
165
|
+
let createdDir = false;
|
|
166
|
+
try {
|
|
167
|
+
await mkdir(lockPath, { recursive: false });
|
|
168
|
+
createdDir = true;
|
|
169
|
+
await writeFile(join(lockPath, 'owner.json'), JSON.stringify({
|
|
170
|
+
token,
|
|
171
|
+
pid: process.pid,
|
|
172
|
+
acquired_at: new Date(nowMs).toISOString(),
|
|
173
|
+
}, null, 2));
|
|
174
|
+
return { path: lockPath, token };
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
if (createdDir)
|
|
178
|
+
await rm(lockPath, { recursive: true, force: true }).catch(() => { });
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
async function restoreMovedLock(fromPath, toPath) {
|
|
183
|
+
const restored = await rename(fromPath, toPath).then(() => true).catch(() => false);
|
|
184
|
+
if (!restored)
|
|
185
|
+
await rm(fromPath, { recursive: true, force: true }).catch(() => { });
|
|
186
|
+
}
|
|
187
|
+
async function acquireHudReconcileLock(lockPath, nowMs, staleMs, isProcessLive) {
|
|
188
|
+
const created = await tryCreateHudReconcileLock(lockPath, nowMs);
|
|
189
|
+
if (created)
|
|
190
|
+
return created;
|
|
191
|
+
const observedOwner = await readHudReconcileLockOwner(lockPath);
|
|
192
|
+
const lockStat = await stat(lockPath).catch(() => null);
|
|
193
|
+
if (!lockStat)
|
|
194
|
+
return null;
|
|
195
|
+
const ownerPid = typeof observedOwner?.pid === 'number' && Number.isInteger(observedOwner.pid) && observedOwner.pid > 0
|
|
196
|
+
? observedOwner.pid
|
|
197
|
+
: null;
|
|
198
|
+
const ownerAcquiredMs = parseIsoMs(observedOwner?.acquired_at);
|
|
199
|
+
const lockAgeMs = ownerAcquiredMs === null ? nowMs - lockStat.mtimeMs : nowMs - ownerAcquiredMs;
|
|
200
|
+
if (lockAgeMs <= staleMs)
|
|
201
|
+
return null;
|
|
202
|
+
if (ownerPid !== null) {
|
|
203
|
+
const liveness = isProcessLive(ownerPid);
|
|
204
|
+
if (liveness !== false)
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
const reapPath = `${lockPath}.stale.${process.pid}.${nowMs}.${randomUUID()}`;
|
|
208
|
+
try {
|
|
209
|
+
await rename(lockPath, reapPath);
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
return null;
|
|
213
|
+
}
|
|
214
|
+
const reapedOwner = await readHudReconcileLockOwner(reapPath);
|
|
215
|
+
const reapedStat = await stat(reapPath).catch(() => null);
|
|
216
|
+
const reapedOwnerAcquiredMs = parseIsoMs(reapedOwner?.acquired_at);
|
|
217
|
+
const reapedAgeMs = reapedOwnerAcquiredMs === null && reapedStat
|
|
218
|
+
? nowMs - reapedStat.mtimeMs
|
|
219
|
+
: reapedOwnerAcquiredMs === null ? 0 : nowMs - reapedOwnerAcquiredMs;
|
|
220
|
+
const reapedObservedLock = observedOwner?.token === reapedOwner?.token
|
|
221
|
+
&& reapedStat?.mtimeMs === lockStat.mtimeMs
|
|
222
|
+
&& reapedAgeMs > staleMs;
|
|
223
|
+
if (!reapedObservedLock) {
|
|
224
|
+
await restoreMovedLock(reapPath, lockPath);
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
await rm(reapPath, { recursive: true, force: true }).catch(() => { });
|
|
228
|
+
return tryCreateHudReconcileLock(lockPath, nowMs);
|
|
229
|
+
}
|
|
230
|
+
async function releaseHudReconcileLock(lock) {
|
|
231
|
+
const releasePath = `${lock.path}.release.${process.pid}.${Date.now()}.${lock.token}`;
|
|
232
|
+
try {
|
|
233
|
+
await rename(lock.path, releasePath);
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
const releaseOwner = await readHudReconcileLockOwner(releasePath);
|
|
239
|
+
if (releaseOwner?.token === lock.token) {
|
|
240
|
+
await rm(releasePath, { recursive: true, force: true }).catch(() => { });
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
await restoreMovedLock(releasePath, lock.path);
|
|
244
|
+
}
|
|
134
245
|
export async function reconcileHudForPromptSubmit(cwd, deps = {}) {
|
|
135
246
|
const env = deps.env ?? process.env;
|
|
136
247
|
if (!env.TMUX) {
|
|
@@ -163,178 +274,197 @@ export async function reconcileHudForPromptSubmit(cwd, deps = {}) {
|
|
|
163
274
|
const createPane = deps.createHudWatchPane ?? ((hudCwd, hudCmd, options) => createHudWatchPane(hudCwd, hudCmd, options));
|
|
164
275
|
const killPane = deps.killTmuxPane ?? ((paneId) => killTmuxPane(paneId));
|
|
165
276
|
const resizePane = deps.resizeTmuxPane ?? ((paneId, lines) => resizeTmuxPane(paneId, lines));
|
|
166
|
-
const
|
|
167
|
-
const
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
]
|
|
173
|
-
.map((sessionId) => sessionId?.trim() ?? '')
|
|
174
|
-
.filter((sessionId, index, sessionIds) => sessionId !== '' && sessionIds.indexOf(sessionId) === index);
|
|
175
|
-
let panes = listPanes(currentPaneId);
|
|
176
|
-
// Reclaim orphaned HUD panes left behind by a destroyed leader before deciding
|
|
177
|
-
// whether a HUD already exists; otherwise dead-leader HUDs accumulate one per
|
|
178
|
-
// prompt submit and the window fills with stacked HUD strips.
|
|
179
|
-
const reapedOrphanPaneIds = reapOrphanedSessionHudPanes(panes, {
|
|
180
|
-
sessionId: resolvedSessionId,
|
|
181
|
-
sessionIds: equivalentSessionIds,
|
|
182
|
-
currentPaneId,
|
|
183
|
-
killPane,
|
|
184
|
-
});
|
|
185
|
-
if (reapedOrphanPaneIds.length > 0) {
|
|
186
|
-
const reapedPaneIdSet = new Set(reapedOrphanPaneIds);
|
|
187
|
-
panes = panes.filter((pane) => !reapedPaneIdSet.has(pane.paneId));
|
|
188
|
-
}
|
|
189
|
-
// A Codex self-update can restart/resume the leader in the same tmux pane with
|
|
190
|
-
// a new OMX session id while the old HUD watcher stays alive. That stale HUD
|
|
191
|
-
// still names the current leader pane, but with the previous session id, so it
|
|
192
|
-
// does not match same-owner dedupe and the next launch would create a second HUD
|
|
193
|
-
// beside it. Reap only HUDs tied to this exact leader pane; neighboring panes'
|
|
194
|
-
// HUDs remain isolated by leaderPaneId.
|
|
195
|
-
const reapedStaleLeaderPaneIds = reapStaleCurrentLeaderHudPanes(panes, {
|
|
196
|
-
sessionIds: equivalentSessionIds,
|
|
197
|
-
currentPaneId,
|
|
198
|
-
killPane,
|
|
199
|
-
});
|
|
200
|
-
if (reapedStaleLeaderPaneIds.length > 0) {
|
|
201
|
-
const reapedPaneIdSet = new Set(reapedStaleLeaderPaneIds);
|
|
202
|
-
panes = panes.filter((pane) => !reapedPaneIdSet.has(pane.paneId));
|
|
203
|
-
}
|
|
204
|
-
const owner = {
|
|
205
|
-
sessionId: resolvedSessionId,
|
|
206
|
-
sessionIds: equivalentSessionIds,
|
|
207
|
-
leaderPaneId: currentPaneId,
|
|
208
|
-
};
|
|
209
|
-
const hudPaneIds = [
|
|
210
|
-
...findHudWatchPaneIds(panes, currentPaneId, owner),
|
|
211
|
-
...findLegacyFocusedHudWatchPaneIds(panes, currentPaneId),
|
|
212
|
-
].filter((paneId, index, paneIds) => paneIds.indexOf(paneId) === index);
|
|
213
|
-
const duplicateCount = Math.max(0, hudPaneIds.length - 1);
|
|
214
|
-
const readHudConfigFn = deps.readHudConfig ?? readHudConfig;
|
|
215
|
-
const hudConfig = await readHudConfigFn(cwd).catch(() => null);
|
|
216
|
-
const readAllStateFn = deps.readAllState ?? readAllState;
|
|
217
|
-
const hudState = hudConfig ? await readAllStateFn(cwd, hudConfig).catch(() => null) : null;
|
|
218
|
-
const desiredHeight = hudState ? getHudRenderMaxLines(hudState) : HUD_TMUX_HEIGHT_LINES;
|
|
219
|
-
const preset = hudConfig?.preset;
|
|
220
|
-
const hudCmd = buildHudWatchCommand(omxBin, preset, resolvedSessionId, env.OMX_ROOT, currentPaneId, {
|
|
221
|
-
omxStateRoot: env.OMX_STATE_ROOT,
|
|
222
|
-
omxTeamStateRoot: env.OMX_TEAM_STATE_ROOT,
|
|
223
|
-
rootSource: env.OMX_TEAM_STATE_ROOT ? 'team-env' : env.OMX_ROOT ? 'omx-root-env' : env.OMX_STATE_ROOT ? 'omx-state-root-env' : 'cwd-default',
|
|
224
|
-
});
|
|
225
|
-
const leaderPane = currentPaneId
|
|
226
|
-
? panes.find((pane) => pane.paneId === currentPaneId && !isHudWatchPane(pane))
|
|
227
|
-
: undefined;
|
|
228
|
-
const singleHudPane = hudPaneIds.length === 1
|
|
229
|
-
? panes.find((pane) => pane.paneId === hudPaneIds[0])
|
|
230
|
-
: undefined;
|
|
231
|
-
if (singleHudPane && !needsHudTopologyRecreate(singleHudPane, leaderPane)) {
|
|
232
|
-
const shouldResize = needsHudHeightResize(singleHudPane, desiredHeight);
|
|
233
|
-
const resized = shouldResize ? resizePane(singleHudPane.paneId, desiredHeight) : true;
|
|
234
|
-
if (resized)
|
|
235
|
-
ensureHudResizeHook(singleHudPane.paneId, currentPaneId, desiredHeight, cwd, deps);
|
|
277
|
+
const lockPath = join(cwd, '.omx', 'state', 'hud-reconcile.lock');
|
|
278
|
+
const lockDirReady = await mkdir(dirname(lockPath), { recursive: true }).then(() => true).catch(() => false);
|
|
279
|
+
const lock = lockDirReady
|
|
280
|
+
? await acquireHudReconcileLock(lockPath, deps.nowMs?.() ?? Date.now(), HUD_RECONCILE_LOCK_STALE_MS, deps.isProcessLive ?? defaultIsProcessLive)
|
|
281
|
+
: null;
|
|
282
|
+
if (lockDirReady && !lock) {
|
|
236
283
|
return {
|
|
237
|
-
status:
|
|
238
|
-
paneId:
|
|
239
|
-
desiredHeight,
|
|
240
|
-
duplicateCount,
|
|
284
|
+
status: 'skipped_concurrent',
|
|
285
|
+
paneId: null,
|
|
286
|
+
desiredHeight: null,
|
|
287
|
+
duplicateCount: 0,
|
|
241
288
|
};
|
|
242
289
|
}
|
|
243
|
-
|
|
244
|
-
const
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
290
|
+
try {
|
|
291
|
+
const currentPaneId = env.TMUX_PANE?.trim();
|
|
292
|
+
const resolvedSessionId = deps.sessionId?.trim() || env.OMX_SESSION_ID?.trim() || undefined;
|
|
293
|
+
const equivalentSessionIds = [
|
|
294
|
+
resolvedSessionId,
|
|
295
|
+
env.OMX_SESSION_ID?.trim(),
|
|
296
|
+
...(deps.sessionIds ?? []),
|
|
297
|
+
]
|
|
298
|
+
.map((sessionId) => sessionId?.trim() ?? '')
|
|
299
|
+
.filter((sessionId, index, sessionIds) => sessionId !== '' && sessionIds.indexOf(sessionId) === index);
|
|
300
|
+
let panes = listPanes(currentPaneId);
|
|
301
|
+
// Reclaim orphaned HUD panes left behind by a destroyed leader before deciding
|
|
302
|
+
// whether a HUD already exists; otherwise dead-leader HUDs accumulate one per
|
|
303
|
+
// prompt submit and the window fills with stacked HUD strips.
|
|
304
|
+
const reapedOrphanPaneIds = reapOrphanedSessionHudPanes(panes, {
|
|
305
|
+
sessionId: resolvedSessionId,
|
|
306
|
+
sessionIds: equivalentSessionIds,
|
|
307
|
+
currentPaneId,
|
|
308
|
+
killPane,
|
|
309
|
+
});
|
|
310
|
+
if (reapedOrphanPaneIds.length > 0) {
|
|
311
|
+
const reapedPaneIdSet = new Set(reapedOrphanPaneIds);
|
|
312
|
+
panes = panes.filter((pane) => !reapedPaneIdSet.has(pane.paneId));
|
|
313
|
+
}
|
|
314
|
+
// A Codex self-update can restart/resume the leader in the same tmux pane with
|
|
315
|
+
// a new OMX session id while the old HUD watcher stays alive. That stale HUD
|
|
316
|
+
// still names the current leader pane, but with the previous session id, so it
|
|
317
|
+
// does not match same-owner dedupe and the next launch would create a second HUD
|
|
318
|
+
// beside it. Reap only HUDs tied to this exact leader pane; neighboring panes'
|
|
319
|
+
// HUDs remain isolated by leaderPaneId.
|
|
320
|
+
const reapedStaleLeaderPaneIds = reapStaleCurrentLeaderHudPanes(panes, {
|
|
321
|
+
sessionIds: equivalentSessionIds,
|
|
322
|
+
currentPaneId,
|
|
323
|
+
killPane,
|
|
324
|
+
});
|
|
325
|
+
if (reapedStaleLeaderPaneIds.length > 0) {
|
|
326
|
+
const reapedPaneIdSet = new Set(reapedStaleLeaderPaneIds);
|
|
327
|
+
panes = panes.filter((pane) => !reapedPaneIdSet.has(pane.paneId));
|
|
328
|
+
}
|
|
329
|
+
const owner = {
|
|
330
|
+
sessionId: resolvedSessionId,
|
|
331
|
+
sessionIds: equivalentSessionIds,
|
|
332
|
+
leaderPaneId: currentPaneId,
|
|
333
|
+
};
|
|
334
|
+
const hudPaneIds = [
|
|
335
|
+
...findHudWatchPaneIds(panes, currentPaneId, owner),
|
|
336
|
+
...findLegacyFocusedHudWatchPaneIds(panes, currentPaneId),
|
|
337
|
+
].filter((paneId, index, paneIds) => paneIds.indexOf(paneId) === index);
|
|
338
|
+
const duplicateCount = Math.max(0, hudPaneIds.length - 1);
|
|
339
|
+
const readHudConfigFn = deps.readHudConfig ?? readHudConfig;
|
|
340
|
+
const hudConfig = await readHudConfigFn(cwd).catch(() => null);
|
|
341
|
+
const readAllStateFn = deps.readAllState ?? readAllState;
|
|
342
|
+
const hudState = hudConfig ? await readAllStateFn(cwd, hudConfig).catch(() => null) : null;
|
|
343
|
+
const desiredHeight = hudState ? getHudRenderMaxLines(hudState) : HUD_TMUX_HEIGHT_LINES;
|
|
344
|
+
const preset = hudConfig?.preset;
|
|
345
|
+
const hudCmd = buildHudWatchCommand(omxBin, preset, resolvedSessionId, env.OMX_ROOT, currentPaneId, {
|
|
346
|
+
omxStateRoot: env.OMX_STATE_ROOT,
|
|
347
|
+
omxTeamStateRoot: env.OMX_TEAM_STATE_ROOT,
|
|
348
|
+
rootSource: env.OMX_TEAM_STATE_ROOT ? 'team-env' : env.OMX_ROOT ? 'omx-root-env' : env.OMX_STATE_ROOT ? 'omx-state-root-env' : 'cwd-default',
|
|
349
|
+
});
|
|
350
|
+
const leaderPane = currentPaneId
|
|
351
|
+
? panes.find((pane) => pane.paneId === currentPaneId && !isHudWatchPane(pane))
|
|
352
|
+
: undefined;
|
|
353
|
+
const singleHudPane = hudPaneIds.length === 1
|
|
354
|
+
? panes.find((pane) => pane.paneId === hudPaneIds[0])
|
|
355
|
+
: undefined;
|
|
356
|
+
if (singleHudPane && !needsHudTopologyRecreate(singleHudPane, leaderPane)) {
|
|
357
|
+
const shouldResize = needsHudHeightResize(singleHudPane, desiredHeight);
|
|
358
|
+
const resized = shouldResize ? resizePane(singleHudPane.paneId, desiredHeight) : true;
|
|
253
359
|
if (resized)
|
|
254
|
-
ensureHudResizeHook(
|
|
360
|
+
ensureHudResizeHook(singleHudPane.paneId, currentPaneId, desiredHeight, cwd, deps);
|
|
255
361
|
return {
|
|
256
|
-
status: resized ? '
|
|
257
|
-
paneId:
|
|
362
|
+
status: resized ? (shouldResize ? 'resized' : 'unchanged') : 'failed',
|
|
363
|
+
paneId: singleHudPane.paneId,
|
|
258
364
|
desiredHeight,
|
|
259
365
|
duplicateCount,
|
|
260
366
|
};
|
|
261
367
|
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
const
|
|
283
|
-
|
|
284
|
-
|
|
368
|
+
if (hudPaneIds.length > 1) {
|
|
369
|
+
const hudPanes = hudPaneIds
|
|
370
|
+
.map((paneId) => panes.find((pane) => pane.paneId === paneId))
|
|
371
|
+
.filter((pane) => Boolean(pane));
|
|
372
|
+
const keeperPane = hudPanes.find((pane) => !needsHudTopologyRecreate(pane, leaderPane));
|
|
373
|
+
if (keeperPane) {
|
|
374
|
+
for (const paneId of hudPaneIds.filter((paneId) => paneId !== keeperPane.paneId)) {
|
|
375
|
+
killPane(paneId);
|
|
376
|
+
}
|
|
377
|
+
const resized = resizePane(keeperPane.paneId, desiredHeight);
|
|
378
|
+
if (resized)
|
|
379
|
+
ensureHudResizeHook(keeperPane.paneId, currentPaneId, desiredHeight, cwd, deps);
|
|
380
|
+
return {
|
|
381
|
+
status: resized ? 'replaced_duplicates' : 'failed',
|
|
382
|
+
paneId: keeperPane.paneId,
|
|
383
|
+
desiredHeight,
|
|
384
|
+
duplicateCount,
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
const createFullWidth = hudPaneIds
|
|
389
|
+
.map((paneId) => panes.find((pane) => pane.paneId === paneId))
|
|
390
|
+
.some((pane) => Boolean(pane && needsHudTopologyRecreate(pane, leaderPane)))
|
|
391
|
+
&& (!leaderPane || shouldCreateFullWidthHud(leaderPane));
|
|
392
|
+
if (!resolvedSessionId) {
|
|
285
393
|
return {
|
|
286
|
-
status: '
|
|
394
|
+
status: 'skipped_no_session_id',
|
|
287
395
|
paneId: null,
|
|
288
396
|
desiredHeight,
|
|
289
397
|
duplicateCount,
|
|
290
398
|
};
|
|
291
399
|
}
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
400
|
+
// When there is no existing HUD pane to keep/recreate, this reconcile would
|
|
401
|
+
// create a fresh HUD split. Mirror the launch-time guard: if the current tmux
|
|
402
|
+
// window is too short, skip the split so the first prompt submit cannot
|
|
403
|
+
// recreate the cramped, unreadable 2-line HUD the launch path already
|
|
404
|
+
// declined to add. Default behavior is preserved for normal/unknown heights.
|
|
405
|
+
// (closes #2754)
|
|
406
|
+
if (hudPaneIds.length === 0 && (deps.readCurrentWindowSize || !deps.listCurrentWindowPanes)) {
|
|
407
|
+
const readWindowSize = deps.readCurrentWindowSize ?? ((paneId) => readCurrentWindowSize(undefined, paneId));
|
|
408
|
+
const windowHeight = readWindowSize(currentPaneId).height;
|
|
409
|
+
if (isTmuxWindowTooCrampedForHudSplit(windowHeight)) {
|
|
410
|
+
return {
|
|
411
|
+
status: 'skipped_window_too_cramped',
|
|
412
|
+
paneId: null,
|
|
413
|
+
desiredHeight,
|
|
414
|
+
duplicateCount,
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
const unregisterHook = deps.unregisterHudResizeHook ?? unregisterHudResizeHook;
|
|
419
|
+
unregisterHook(currentPaneId);
|
|
420
|
+
const removedHudPaneIds = new Set();
|
|
421
|
+
for (const paneId of hudPaneIds) {
|
|
422
|
+
if (killPane(paneId))
|
|
423
|
+
removedHudPaneIds.add(paneId);
|
|
424
|
+
}
|
|
425
|
+
const createOptions = {
|
|
426
|
+
heightLines: desiredHeight,
|
|
427
|
+
targetPaneId: currentPaneId,
|
|
313
428
|
};
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
429
|
+
if (createFullWidth)
|
|
430
|
+
createOptions.fullWidth = true;
|
|
431
|
+
const paneId = createPane(cwd, hudCmd, createOptions);
|
|
432
|
+
if (!paneId) {
|
|
433
|
+
return {
|
|
434
|
+
status: 'failed',
|
|
435
|
+
paneId: null,
|
|
436
|
+
desiredHeight,
|
|
437
|
+
duplicateCount,
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
// A launch-path restore and prompt-submit reconciliation can both observe
|
|
441
|
+
// "no HUD" before either split-window has materialized. Re-scan after create
|
|
442
|
+
// and collapse same-owner panes so the second creator cleans up the race
|
|
443
|
+
// instead of leaving a duplicate HUD in the user window.
|
|
444
|
+
const postCreate = planOwnedHudPaneDedupe(listPanes(currentPaneId).filter((pane) => !removedHudPaneIds.has(pane.paneId)), currentPaneId, owner, paneId);
|
|
445
|
+
for (const duplicatePaneId of postCreate.duplicatePaneIds) {
|
|
446
|
+
killPane(duplicatePaneId);
|
|
447
|
+
}
|
|
448
|
+
const resized = resizePane(postCreate.paneId, desiredHeight);
|
|
449
|
+
if (!resized) {
|
|
450
|
+
return {
|
|
451
|
+
status: 'failed',
|
|
452
|
+
paneId: postCreate.paneId,
|
|
453
|
+
desiredHeight,
|
|
454
|
+
duplicateCount: postCreate.duplicatePaneIds.length,
|
|
455
|
+
};
|
|
456
|
+
}
|
|
457
|
+
ensureHudResizeHook(postCreate.paneId, currentPaneId, desiredHeight, cwd, deps);
|
|
325
458
|
return {
|
|
326
|
-
status: '
|
|
459
|
+
status: postCreate.duplicatePaneIds.length > 0 || hudPaneIds.length > 1 ? 'replaced_duplicates' : 'recreated',
|
|
327
460
|
paneId: postCreate.paneId,
|
|
328
461
|
desiredHeight,
|
|
329
462
|
duplicateCount: postCreate.duplicatePaneIds.length,
|
|
330
463
|
};
|
|
331
464
|
}
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
desiredHeight,
|
|
337
|
-
duplicateCount: postCreate.duplicatePaneIds.length,
|
|
338
|
-
};
|
|
465
|
+
finally {
|
|
466
|
+
if (lock)
|
|
467
|
+
await releaseHudReconcileLock(lock);
|
|
468
|
+
}
|
|
339
469
|
}
|
|
340
470
|
//# sourceMappingURL=reconcile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../src/hud/reconcile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../src/hud/reconcile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,gCAAgC,EAChC,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,GAGf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAE3D,SAAS,yBAAyB,CAAC,GAAsB;IACvD,OAAO,GAAG,CAAC,sBAAsB,CAAC,KAAK,GAAG,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,2BAA2B,CAClC,KAAyB,EACzB,IAKC;IAED,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACpD,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAC3C,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,CAC3C,CAAC;IACF,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACzC,iFAAiF;IACjF,mFAAmF;IACnF,8EAA8E;IAC9E,kFAAkF;IAClF,gFAAgF;IAChF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CACzE,CAAC;IACF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAAE,SAAS;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACrC,8EAA8E;QAC9E,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY;YAAE,SAAS;QAC9F,kFAAkF;QAClF,IAAI,KAAK,CAAC,YAAY,KAAK,aAAa,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;YAAE,SAAS;QAChG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAsB;IACvD,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;IAC9D,OAAO,IAAI,MAAM,CAAC,YAAY,sBAAsB,qBAAqB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,8BAA8B,CACrC,KAAyB,EACzB,IAIC;IAED,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACzC,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACxG,IAAI,iBAAiB,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE5C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAAE,SAAS;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,YAAY,KAAK,aAAa;YAAE,SAAS;QACnD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC;YAAE,SAAS;QAC/C,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;YAAE,SAAS;QACzE,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AA+CD,SAAS,mBAAmB,CAC1B,SAAiB,EACjB,YAAgC,EAChC,aAAqB,EACrB,GAAW,EACX,IAAqC;IAErC,IAAI,CAAC;QACH,CAAC,IAAI,CAAC,qBAAqB,IAAI,qBAAqB,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE;YAC5F,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG;SAC7B,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAsB;IACjD,OAAO,CACL,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;WAC9B,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;WAClC,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;WACnC,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;WACpC,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,CACzC,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAsB,EAAE,UAA6B;IACrF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,YAAY,GAAG,OAAO,UAAU,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,aAAa,GAAG,OAAO,UAAU,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC1G,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,KAAK,YAAY,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC;IAC9F,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7E,OAAO,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,CAAC;AACrD,CAAC;AAED,SAAS,wBAAwB,CAAC,UAA6B;IAC7D,OAAO,OAAO,CACZ,UAAU;WACP,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ;WACvC,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ;WACxC,OAAO,UAAU,CAAC,WAAW,KAAK,QAAQ;WAC1C,UAAU,CAAC,QAAQ,KAAK,CAAC;WACzB,UAAU,CAAC,SAAS,KAAK,UAAU,CAAC,WAAW,CACnD,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAsB,EAAE,aAAqB;IACzE,OAAO,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,aAAa,CAAC;AAClF,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAyB,EACzB,aAAiC,EACjC,KAAmB,EACnB,eAAuB;IAEvB,MAAM,YAAY,GAAG;QACnB,GAAG,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC;QACnD,GAAG,gCAAgC,CAAC,KAAK,EAAE,aAAa,CAAC;KAC1D,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;QACzD,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC;IAEzC,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,gBAAgB,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,YAAY,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAa3C,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAI,KAAsC,EAAE,IAAI,CAAC;QAC3D,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QACnC,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,QAAgB;IACvD,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC;SACnD,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAA0B,CAAC;SAC/D,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,QAAgB,EAAE,KAAa;IACtE,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;YAC3D,KAAK;YACL,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,WAAW,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;SAC3C,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,UAAU;YAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,MAAc;IAC9D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACpF,IAAI,CAAC,QAAQ;QAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,QAAgB,EAChB,KAAa,EACb,OAAe,EACf,aAA8C;IAE9C,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjE,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,QAAQ,GAAG,OAAO,aAAa,EAAE,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,GAAG,GAAG,CAAC;QACrH,CAAC,CAAC,aAAa,CAAC,GAAG;QACnB,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,eAAe,CAAC;IAChG,IAAI,SAAS,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAEtC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,QAAQ,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;IACtC,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,QAAQ,UAAU,OAAO,CAAC,GAAG,IAAI,KAAK,IAAI,UAAU,EAAE,EAAE,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,qBAAqB,GAAG,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,qBAAqB,KAAK,IAAI,IAAI,UAAU;QAC9D,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,OAAO;QAC5B,CAAC,CAAC,qBAAqB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,qBAAqB,CAAC;IACvE,MAAM,kBAAkB,GAAG,aAAa,EAAE,KAAK,KAAK,WAAW,EAAE,KAAK;WACjE,UAAU,EAAE,OAAO,KAAK,QAAQ,CAAC,OAAO;WACxC,WAAW,GAAG,OAAO,CAAC;IAE3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrE,OAAO,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,IAAsB;IAC3D,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,IAAI,YAAY,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;IACtF,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAClE,IAAI,YAAY,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACvC,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,MAAM,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,GAAW,EACX,OAAwC,EAAE;IAE1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,MAAM,EAAE,4BAA4B;YACpC,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IAED,MAAM,wBAAwB,GAAG,IAAI,CAAC,sBAAsB,IAAI,sBAAsB,CAAC;IACvF,MAAM,MAAM,GAAG,wBAAwB,EAAE,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACzG,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzH,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAE7F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IAC7G,MAAM,IAAI,GAAG,YAAY;QACvB,CAAC,CAAC,MAAM,uBAAuB,CAC7B,QAAQ,EACR,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAC5B,2BAA2B,EAC3B,IAAI,CAAC,aAAa,IAAI,oBAAoB,CAC3C;QACD,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,OAAO;YACL,MAAM,EAAE,oBAAoB;YAC5B,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QAEL,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;QAC5C,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;QAC5F,MAAM,oBAAoB,GAAG;YAC3B,iBAAiB;YACjB,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE;YAC1B,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;SAC3B;aACE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;aAC3C,MAAM,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,CAAC;QACzG,IAAI,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;QAErC,+EAA+E;QAC/E,8EAA8E;QAC9E,8DAA8D;QAC9D,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,KAAK,EAAE;YAC7D,SAAS,EAAE,iBAAiB;YAC5B,UAAU,EAAE,oBAAoB;YAChC,aAAa;YACb,QAAQ;SACT,CAAC,CAAC;QACH,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACrD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,+EAA+E;QAC/E,6EAA6E;QAC7E,+EAA+E;QAC/E,iFAAiF;QACjF,+EAA+E;QAC/E,wCAAwC;QACxC,MAAM,wBAAwB,GAAG,8BAA8B,CAAC,KAAK,EAAE;YACrE,UAAU,EAAE,oBAAoB;YAChC,aAAa;YACb,QAAQ;SACT,CAAC,CAAC;QACH,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,wBAAwB,CAAC,CAAC;YAC1D,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,KAAK,GAAG;YACZ,SAAS,EAAE,iBAAiB;YAC5B,UAAU,EAAE,oBAAoB;YAChC,YAAY,EAAE,aAAa;SAC5B,CAAC;QACF,MAAM,UAAU,GAAG;YACjB,GAAG,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC;YACnD,GAAG,gCAAgC,CAAC,KAAK,EAAE,aAAa,CAAC;SAC1D,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC;QACxE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;QAC5D,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC;QACzD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3F,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;QACxF,MAAM,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC;QACjC,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE;YAClG,YAAY,EAAE,GAAG,CAAC,cAAc;YAChC,gBAAgB,EAAE,GAAG,CAAC,mBAAmB;YACzC,UAAU,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAAa;SAC7I,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,aAAa;YAC9B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC9E,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC;YAC3C,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;YACrD,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,aAAa,IAAI,CAAC,wBAAwB,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC;YAC1E,MAAM,YAAY,GAAG,oBAAoB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACtF,IAAI,OAAO;gBAAE,mBAAmB,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAChG,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ;gBACrE,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,aAAa;gBACb,cAAc;aACf,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,UAAU;iBACxB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;iBAC7D,MAAM,CAAC,CAAC,IAAI,EAA4B,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;YAExF,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBACjF,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC;gBACD,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;gBAC7D,IAAI,OAAO;oBAAE,mBAAmB,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC7F,OAAO;oBACL,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ;oBAClD,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,aAAa;oBACb,cAAc;iBACf,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,eAAe,GAAG,UAAU;aAC/B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;aAC7D,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;eACzE,CAAC,CAAC,UAAU,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;QAE3D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO;gBACL,MAAM,EAAE,uBAAuB;gBAC/B,MAAM,EAAE,IAAI;gBACZ,aAAa;gBACb,cAAc;aACf,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,8EAA8E;QAC9E,wEAAwE;QACxE,sEAAsE;QACtE,6EAA6E;QAC7E,iBAAiB;QACjB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAC5F,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5G,MAAM,YAAY,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;YAC1D,IAAI,iCAAiC,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpD,OAAO;oBACL,MAAM,EAAE,4BAA4B;oBACpC,MAAM,EAAE,IAAI;oBACZ,aAAa;oBACb,cAAc;iBACf,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,IAAI,uBAAuB,CAAC;QAC/E,cAAc,CAAC,aAAa,CAAC,CAAC;QAE9B,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC5C,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,IAAI,QAAQ,CAAC,MAAM,CAAC;gBAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,aAAa,GAAwE;YACzF,WAAW,EAAE,aAAa;YAC1B,YAAY,EAAE,aAAa;SAC5B,CAAC;QACF,IAAI,eAAe;YAAE,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC;QACpD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,IAAI;gBACZ,aAAa;gBACb,cAAc;aACf,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,6EAA6E;QAC7E,yEAAyE;QACzE,yDAAyD;QACzD,MAAM,UAAU,GAAG,sBAAsB,CACvC,SAAS,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAC9E,aAAa,EACb,KAAK,EACL,MAAM,CACP,CAAC;QACF,KAAK,MAAM,eAAe,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAC1D,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,aAAa;gBACb,cAAc,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM;aACnD,CAAC;QACJ,CAAC;QACD,mBAAmB,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAEhF,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW;YAC7G,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,aAAa;YACb,cAAc,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM;SACnD,CAAC;IACF,CAAC;YAAS,CAAC;QACT,IAAI,IAAI;YAAE,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
|
package/dist/hud/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/hud/render.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ9D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAyKD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,GAAG,MAAM,CAErF;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/hud/render.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ9D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAyKD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,GAAG,MAAM,CAErF;AAkSD,wDAAwD;AACxD,wBAAgB,SAAS,CACvB,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAkBR;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D"}
|
package/dist/hud/render.js
CHANGED
|
@@ -185,8 +185,10 @@ function renderUltragoal(ctx) {
|
|
|
185
185
|
return null;
|
|
186
186
|
const total = ctx.ultragoal.progressTotal;
|
|
187
187
|
const complete = ctx.ultragoal.complete;
|
|
188
|
-
if (!Number.isFinite(total) || total <= 0 || !Number.isFinite(complete))
|
|
189
|
-
|
|
188
|
+
if (!Number.isFinite(total) || total <= 0 || !Number.isFinite(complete)) {
|
|
189
|
+
const phase = sanitizeDynamicText(ctx.ultragoal.current_phase || ctx.ultragoal.status || 'active') || 'active';
|
|
190
|
+
return cyan(`ultragoal:${phase}`);
|
|
191
|
+
}
|
|
190
192
|
const teamSummary = formatTeamSummary(ctx);
|
|
191
193
|
const progress = cyan(`ultragoal ${complete}/${total}${teamSummary ? ` + ${teamSummary}` : ''}`);
|
|
192
194
|
const activeGoal = ctx.ultragoal.activeGoal ?? ctx.ultragoal.ongoingGoals?.[0];
|