cawdex 1.35.69 → 1.35.74

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 (45) hide show
  1. package/README.md +188 -188
  2. package/dist/command-palette.js +5 -4
  3. package/dist/command-palette.js.map +1 -1
  4. package/dist/config.d.ts +1 -1
  5. package/dist/config.js +20 -13
  6. package/dist/config.js.map +1 -1
  7. package/dist/curator.d.ts +2 -2
  8. package/dist/curator.js +2 -2
  9. package/dist/fixed-footer.d.ts +29 -0
  10. package/dist/fixed-footer.js +383 -0
  11. package/dist/fixed-footer.js.map +1 -0
  12. package/dist/hooks.d.ts +1 -1
  13. package/dist/hooks.js +7 -7
  14. package/dist/hooks.js.map +1 -1
  15. package/dist/index.js +352 -57
  16. package/dist/index.js.map +1 -1
  17. package/dist/instant-answer.d.ts +6 -1
  18. package/dist/instant-answer.js +32 -1
  19. package/dist/instant-answer.js.map +1 -1
  20. package/dist/live-queue.d.ts +0 -32
  21. package/dist/live-queue.js +15 -0
  22. package/dist/live-queue.js.map +1 -1
  23. package/dist/modes.d.ts +2 -1
  24. package/dist/modes.js +368 -361
  25. package/dist/modes.js.map +1 -1
  26. package/dist/query.d.ts +1 -0
  27. package/dist/query.js +163 -44
  28. package/dist/query.js.map +1 -1
  29. package/dist/swarm.d.ts +8 -3
  30. package/dist/swarm.js +39 -14
  31. package/dist/swarm.js.map +1 -1
  32. package/dist/system-prompt.js +14 -14
  33. package/dist/system-prompt.js.map +1 -1
  34. package/dist/theme.d.ts +4 -0
  35. package/dist/theme.js +22 -0
  36. package/dist/theme.js.map +1 -1
  37. package/dist/tools/skill.d.ts +2 -2
  38. package/dist/tools/skill.js +2 -2
  39. package/dist/types.d.ts +15 -0
  40. package/dist/types.js.map +1 -1
  41. package/dist/updater.d.ts +16 -0
  42. package/dist/updater.js +157 -0
  43. package/dist/updater.js.map +1 -0
  44. package/dist/walkthrough.js +7 -7
  45. package/package.json +1 -2
@@ -0,0 +1,383 @@
1
+ import chalk from 'chalk';
2
+ import { getUsageSummary } from './cost-tracker.js';
3
+ import { formatDuration, formatTranscriptUserLine, theme } from './theme.js';
4
+ import { getCurrentVersion } from './updater.js';
5
+ const ANSI = {
6
+ saveCursor: '\x1B7',
7
+ restoreCursor: '\x1B8',
8
+ scrollRegion: (top, bottom) => `\x1B[${top};${bottom}r`,
9
+ resetScrollRegion: '\x1B[r',
10
+ moveTo: (row, col) => `\x1B[${row};${col}H`,
11
+ clearLine: '\x1B[2K',
12
+ };
13
+ const FOOTER_ROWS = 5;
14
+ const PROMPT_PREFIX = '> ';
15
+ const TEMPLATE_KEYS = [
16
+ 'provider',
17
+ 'model',
18
+ 'permissions',
19
+ 'session',
20
+ 'cwd',
21
+ 'workspace',
22
+ 'sandbox',
23
+ 'mode',
24
+ 'cost',
25
+ 'tokens',
26
+ 'budget',
27
+ 'activity',
28
+ 'version',
29
+ ];
30
+ let active = null;
31
+ let state = {
32
+ provider: '',
33
+ model: '',
34
+ permissionMode: '',
35
+ mode: 'dev',
36
+ sessionId: '',
37
+ sessionName: '',
38
+ cwd: process.cwd(),
39
+ sandbox: 'off',
40
+ version: getCurrentVersion(),
41
+ activity: 'Ready',
42
+ activityStartedAtMs: null,
43
+ activityFrame: 0,
44
+ turn: 0,
45
+ draft: '',
46
+ lastCost: '$0.0000',
47
+ lastTokens: '0 tokens',
48
+ budget: '',
49
+ acceptingPrompt: false,
50
+ };
51
+ let activityTicker = null;
52
+ export function shouldUseFixedFooter(config, env = process.env) {
53
+ const raw = (env.CAWDEX_FIXED_FOOTER || env.CAWDEX_FOOTER || '').trim().toLowerCase();
54
+ if (raw === '0' || raw === 'false' || raw === 'off' || raw === 'no')
55
+ return false;
56
+ if (env.CAWDEX_NON_INTERACTIVE === '1')
57
+ return false;
58
+ if (config.footer?.enabled === false)
59
+ return false;
60
+ if (config.voice?.accessibility?.screenReader === true)
61
+ return false;
62
+ return true;
63
+ }
64
+ export function buildFooterSnapshot(config, mode, session, cwd) {
65
+ return {
66
+ provider: config.provider,
67
+ model: config.model,
68
+ permissionMode: config.permissionMode,
69
+ mode,
70
+ sessionId: session.id,
71
+ sessionName: session.name,
72
+ cwd,
73
+ sandbox: config.sandbox?.level || 'off',
74
+ template: config.footer?.template,
75
+ version: getCurrentVersion(),
76
+ };
77
+ }
78
+ export function activateFooter(snapshot) {
79
+ Object.assign(state, snapshot);
80
+ if (active) {
81
+ resizeIfNeeded();
82
+ syncActivityTicker();
83
+ redraw();
84
+ return true;
85
+ }
86
+ if (!process.stdout.isTTY)
87
+ return false;
88
+ const rows = process.stdout.rows || 0;
89
+ const cols = process.stdout.columns || 0;
90
+ if (rows < FOOTER_ROWS + 6 || cols < 40)
91
+ return false;
92
+ active = {
93
+ rows,
94
+ cols,
95
+ scrollBottom: rows - FOOTER_ROWS,
96
+ footerTop: rows - FOOTER_ROWS + 1,
97
+ };
98
+ process.stdout.write('\n');
99
+ process.stdout.write(ANSI.scrollRegion(1, active.scrollBottom));
100
+ process.stdout.write(ANSI.moveTo(active.scrollBottom, 1));
101
+ syncActivityTicker();
102
+ redraw();
103
+ return true;
104
+ }
105
+ export function deactivateFooter() {
106
+ if (!active)
107
+ return;
108
+ const current = active;
109
+ process.stdout.write(ANSI.saveCursor);
110
+ process.stdout.write(ANSI.resetScrollRegion);
111
+ for (let row = current.footerTop; row <= current.rows; row++) {
112
+ process.stdout.write(ANSI.moveTo(row, 1));
113
+ process.stdout.write(ANSI.clearLine);
114
+ }
115
+ process.stdout.write(ANSI.restoreCursor);
116
+ active = null;
117
+ syncActivityTicker();
118
+ }
119
+ export function isFooterActive() {
120
+ return active !== null;
121
+ }
122
+ export function updateFooter(snapshot) {
123
+ Object.assign(state, snapshot);
124
+ if (!active)
125
+ return;
126
+ resizeIfNeeded();
127
+ syncActivityTicker();
128
+ redraw();
129
+ }
130
+ export function setFooterActivity(activity, turn = state.turn, startedAtMs = state.activityStartedAtMs) {
131
+ state.activity = activity || 'Ready';
132
+ state.turn = turn;
133
+ state.activityStartedAtMs = startedAtMs;
134
+ state.activityFrame++;
135
+ syncActivityTicker();
136
+ if (active)
137
+ redraw();
138
+ }
139
+ export function setFooterDraft(draft) {
140
+ state.draft = draft;
141
+ if (active && !state.acceptingPrompt)
142
+ redraw();
143
+ }
144
+ export function setFooterCost(cost, promptTokens, completionTokens) {
145
+ const fmt = (n) => (n > 999 ? `${(n / 1000).toFixed(1)}K` : String(n));
146
+ state.lastCost = `$${cost.toFixed(4)}`;
147
+ state.lastTokens = `${fmt(promptTokens)}->${fmt(completionTokens)} tokens`;
148
+ state.budget = formatBudget();
149
+ if (active)
150
+ redraw();
151
+ }
152
+ export function prepareFooterPrompt() {
153
+ if (!active)
154
+ return false;
155
+ state.acceptingPrompt = true;
156
+ state.draft = '';
157
+ resizeIfNeeded();
158
+ redraw(false);
159
+ process.stdout.write(ANSI.moveTo(active.footerTop + 2, 1));
160
+ process.stdout.write(ANSI.clearLine);
161
+ return true;
162
+ }
163
+ export async function askWithFooterPrompt(rl, prefill = '') {
164
+ if (!prepareFooterPrompt()) {
165
+ return rl.question(theme.prompt(PROMPT_PREFIX));
166
+ }
167
+ const answerPromise = rl.question(theme.prompt(PROMPT_PREFIX));
168
+ if (prefill) {
169
+ setImmediate(() => {
170
+ const line = prefill.replace(/\r?\n/g, ' ');
171
+ try {
172
+ const rlAny = rl;
173
+ if (typeof rlAny.write === 'function')
174
+ rlAny.write(line);
175
+ }
176
+ catch {
177
+ process.stdout.write(line);
178
+ }
179
+ });
180
+ }
181
+ const answer = await answerPromise;
182
+ finishFooterPrompt(answer);
183
+ return answer;
184
+ }
185
+ function finishFooterPrompt(answer) {
186
+ state.acceptingPrompt = false;
187
+ state.draft = '';
188
+ if (!active)
189
+ return;
190
+ const trimmed = answer.replace(/\r?\n/g, ' ');
191
+ if (trimmed.trim()) {
192
+ writeScrollableLine(formatTranscriptUserLine(trimmed, active.cols));
193
+ }
194
+ else {
195
+ process.stdout.write(ANSI.moveTo(active.scrollBottom, 1));
196
+ }
197
+ redraw();
198
+ }
199
+ export function writeScrollableLine(line) {
200
+ if (!active) {
201
+ process.stdout.write(line + '\n');
202
+ return;
203
+ }
204
+ process.stdout.write(ANSI.moveTo(active.scrollBottom, 1));
205
+ process.stdout.write(ANSI.clearLine);
206
+ process.stdout.write(line + '\n');
207
+ }
208
+ function resizeIfNeeded() {
209
+ if (!active || !process.stdout.isTTY)
210
+ return;
211
+ const rows = process.stdout.rows || active.rows;
212
+ const cols = process.stdout.columns || active.cols;
213
+ if (rows === active.rows && cols === active.cols)
214
+ return;
215
+ if (rows < FOOTER_ROWS + 6 || cols < 40) {
216
+ deactivateFooter();
217
+ return;
218
+ }
219
+ active = {
220
+ rows,
221
+ cols,
222
+ scrollBottom: rows - FOOTER_ROWS,
223
+ footerTop: rows - FOOTER_ROWS + 1,
224
+ };
225
+ process.stdout.write(ANSI.scrollRegion(1, active.scrollBottom));
226
+ }
227
+ function syncActivityTicker() {
228
+ const shouldTick = active !== null && state.activityStartedAtMs !== null;
229
+ if (shouldTick && !activityTicker) {
230
+ activityTicker = setInterval(() => {
231
+ if (!active || state.activityStartedAtMs === null) {
232
+ syncActivityTicker();
233
+ return;
234
+ }
235
+ state.activityFrame++;
236
+ redraw();
237
+ }, 500);
238
+ if (typeof activityTicker.unref === 'function')
239
+ activityTicker.unref();
240
+ }
241
+ else if (!shouldTick && activityTicker) {
242
+ clearInterval(activityTicker);
243
+ activityTicker = null;
244
+ }
245
+ }
246
+ function redraw(restoreCursor = true) {
247
+ if (!active)
248
+ return;
249
+ const lines = footerLines(active.cols);
250
+ if (restoreCursor)
251
+ process.stdout.write(ANSI.saveCursor);
252
+ for (let i = 0; i < FOOTER_ROWS; i++) {
253
+ process.stdout.write(ANSI.moveTo(active.footerTop + i, 1));
254
+ process.stdout.write(ANSI.clearLine);
255
+ process.stdout.write(lines[i] || '');
256
+ }
257
+ if (restoreCursor)
258
+ process.stdout.write(ANSI.restoreCursor);
259
+ }
260
+ function footerLines(cols) {
261
+ const status = state.template?.trim()
262
+ ? renderTemplate(state.template)
263
+ : `Provider ${state.provider} | Model ${state.model} | Permissions ${state.permissionMode} | Session ${state.sessionName || state.sessionId} | v${state.version || getCurrentVersion()}`;
264
+ const activity = renderActivity();
265
+ const draft = state.draft.replace(/[\r\n]+/g, ' ');
266
+ const prompt = state.acceptingPrompt
267
+ ? ''
268
+ : draft
269
+ ? theme.prompt(PROMPT_PREFIX) + theme.command(clipAnsi(draft, Math.max(10, cols - PROMPT_PREFIX.length - 2))) + theme.prompt(' \u258a')
270
+ : theme.prompt(PROMPT_PREFIX) + theme.prompt('\u258a ') + theme.dim('Type your message or @path/to/file');
271
+ const columnWidth = Math.max(14, Math.floor(cols / 4) - 2);
272
+ const workspace = compactCwd(state.cwd);
273
+ const sandbox = state.sandbox === 'off' ? 'no sandbox' : state.sandbox || 'no sandbox';
274
+ const cost = state.lastCost || '$0.0000';
275
+ const tokens = state.lastTokens || '0 tokens';
276
+ const budget = state.budget || formatBudget();
277
+ const usage = budget ? `${cost} | ${tokens} | budget ${budget}` : `${cost} | ${tokens}`;
278
+ const labels = [
279
+ 'workspace',
280
+ 'sandbox',
281
+ 'mode',
282
+ 'cost/tokens',
283
+ ];
284
+ const values = [
285
+ workspace.value,
286
+ sandbox,
287
+ state.mode,
288
+ usage,
289
+ ];
290
+ return [
291
+ theme.command(padLine(status, cols)),
292
+ theme.command(padLine(`${activityGlyph()} ${activity}`, cols)),
293
+ padLine(prompt, cols),
294
+ theme.dim(joinColumns(labels, columnWidth, cols)),
295
+ joinColumns([
296
+ theme.primary(values[0]),
297
+ state.sandbox === 'off' ? theme.warning(values[1]) : theme.success(values[1]),
298
+ theme.command(values[2]),
299
+ theme.cost(values[3]),
300
+ ], columnWidth, cols),
301
+ ];
302
+ }
303
+ function renderActivity() {
304
+ if (state.activityStartedAtMs) {
305
+ const elapsed = formatDuration(Date.now() - state.activityStartedAtMs);
306
+ const turn = state.turn > 0 ? ` - turn ${state.turn}` : '';
307
+ return `${state.activity} (${elapsed} - Esc/F5 to interrupt${turn})`;
308
+ }
309
+ return state.activity || 'Ready';
310
+ }
311
+ function activityGlyph() {
312
+ const frames = ['\u25e6', '\u25c7', '\u25c6', '\u25c7'];
313
+ return state.activityStartedAtMs ? frames[state.activityFrame % frames.length] : '\u25b6';
314
+ }
315
+ function renderTemplate(template) {
316
+ const usage = getUsageSummary();
317
+ const values = {
318
+ provider: state.provider,
319
+ model: state.model,
320
+ permissions: state.permissionMode,
321
+ session: state.sessionName || state.sessionId,
322
+ cwd: state.cwd,
323
+ workspace: compactCwd(state.cwd).value,
324
+ sandbox: state.sandbox === 'off' ? 'no sandbox' : state.sandbox || 'no sandbox',
325
+ mode: state.mode,
326
+ cost: state.lastCost,
327
+ tokens: state.lastTokens,
328
+ budget: usage.budget.monthlyLimit > 0 ? `$${usage.budget.monthlyLimit}` : '',
329
+ activity: renderActivity(),
330
+ version: state.version || getCurrentVersion(),
331
+ };
332
+ return template.replace(/\{([a-z]+)\}/gi, (_match, key) => {
333
+ const normalized = key.toLowerCase();
334
+ return normalized in values ? values[normalized] : `{${key}}`;
335
+ });
336
+ }
337
+ function formatBudget() {
338
+ try {
339
+ const usage = getUsageSummary();
340
+ if (usage.budget.monthlyLimit > 0)
341
+ return `$${usage.budget.monthlyLimit}`;
342
+ if (usage.budget.dailyLimit > 0)
343
+ return `$${usage.budget.dailyLimit}/day`;
344
+ }
345
+ catch {
346
+ // best effort only
347
+ }
348
+ return '';
349
+ }
350
+ function compactCwd(cwd) {
351
+ const home = process.env.USERPROFILE || process.env.HOME || '';
352
+ const normalized = home && cwd.toLowerCase().startsWith(home.toLowerCase())
353
+ ? '~' + cwd.slice(home.length)
354
+ : cwd;
355
+ const parts = normalized.split(/[\\/]+/).filter(Boolean);
356
+ const value = normalized === '~' ? '~' : parts.length > 0 ? parts.slice(-2).join('/') : normalized;
357
+ return {
358
+ label: value.length > 20 ? value.slice(0, 19) + '\u2026' : value,
359
+ value: value || '~',
360
+ };
361
+ }
362
+ function joinColumns(values, columnWidth, cols) {
363
+ return padLine(values.map((value) => visiblePad(clipAnsi(value, columnWidth), columnWidth)).join(''), cols);
364
+ }
365
+ function padLine(value, cols) {
366
+ const plainLength = visibleLength(value);
367
+ const clipped = plainLength > cols ? clipAnsi(value, cols) : value;
368
+ return clipped + ' '.repeat(Math.max(0, cols - visibleLength(clipped)));
369
+ }
370
+ function visiblePad(value, width) {
371
+ return value + ' '.repeat(Math.max(0, width - visibleLength(value)));
372
+ }
373
+ function visibleLength(value) {
374
+ return value.replace(/\x1b\[[0-9;]*m/g, '').length;
375
+ }
376
+ function clipAnsi(value, width) {
377
+ const plain = value.replace(/\x1b\[[0-9;]*m/g, '');
378
+ if (plain.length <= width)
379
+ return value;
380
+ const clipped = plain.slice(0, Math.max(0, width - 1)) + '\u2026';
381
+ return chalk.reset(clipped);
382
+ }
383
+ //# sourceMappingURL=fixed-footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixed-footer.js","sourceRoot":"","sources":["../src/fixed-footer.ts"],"names":[],"mappings":"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"}
package/dist/hooks.d.ts CHANGED
@@ -33,7 +33,7 @@ export interface HookResult {
33
33
  export declare function initHooksDir(): void;
34
34
  export declare function runHooks(ctx: HookContext): Promise<HookResult>;
35
35
  /**
36
- * Reset the quarantine list — used by /reset-config when the user has
36
+ * Reset the quarantine list used by /reset-config when the user has
37
37
  * fixed their hooks.json and wants to re-enable hooks without restarting.
38
38
  */
39
39
  export declare function clearQuarantinedHooks(): void;
package/dist/hooks.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Hook system — configurable pre/post tool execution hooks.
2
+ * Hook system configurable pre/post tool execution hooks.
3
3
  * Hooks are scripts in ~/.cawdex/hooks/ that fire on events:
4
4
  * - PreToolUse: before a tool runs (can block)
5
5
  * - PostToolUse: after a tool runs (can log/alert)
@@ -60,7 +60,7 @@ function matchesTool(pattern, toolName) {
60
60
  return true;
61
61
  return false;
62
62
  }
63
- // ── Broken-hook quarantine ───────────────────────────────
63
+ // ── Broken-hook quarantine ───────────────────────────────
64
64
  // When a hook's command can't be found or crashes due to a system error
65
65
  // (ENOENT, ETIMEDOUT, MODULE_NOT_FOUND, etc.) we add it to this set and
66
66
  // skip it for the rest of the session. Otherwise a single bad hook will
@@ -70,7 +70,7 @@ const quarantinedHooks = new Set();
70
70
  function hookSignature(h) {
71
71
  return `${h.event}::${h.match}::${h.command}`;
72
72
  }
73
- // System-level error codes from execSync — these mean the hook's command
73
+ // System-level error codes from execSync these mean the hook's command
74
74
  // couldn't run at all (file missing, shell missing, timed out). They are
75
75
  // NOT "the hook intentionally returned non-zero to block the tool". When
76
76
  // we see one, the hook is broken and we should never block on it.
@@ -123,7 +123,7 @@ export async function runHooks(ctx) {
123
123
  // - Windows: omit the `shell` option so execSync uses cmd.exe
124
124
  // (the documented default on win32). Previously we passed
125
125
  // 'bash', which routed through Git Bash / WSL bash and mangled
126
- // Windows absolute paths like C:\… into /mnt/c/…/C:\….
126
+ // Windows absolute paths like C:\… into /mnt/c/…/C:\….
127
127
  // - Other platforms: keep /bin/bash because hook commands typically
128
128
  // rely on POSIX shell features.
129
129
  const execOpts = {
@@ -143,7 +143,7 @@ export async function runHooks(ctx) {
143
143
  }
144
144
  catch (err) {
145
145
  // A SYSTEM-level error (file missing, timeout, MODULE_NOT_FOUND)
146
- // means the hook is broken — quarantine it and DO NOT block the
146
+ // means the hook is broken quarantine it and DO NOT block the
147
147
  // tool call. Stale hooks shouldn't be able to brick the agent.
148
148
  if (isSystemError(err)) {
149
149
  const sig = hookSignature(hook);
@@ -158,7 +158,7 @@ export async function runHooks(ctx) {
158
158
  continue; // do NOT block on a broken hook
159
159
  }
160
160
  // A non-system error (the hook ran but exited non-zero) is treated
161
- // per the hook's blocking flag — that's the intentional "block this
161
+ // per the hook's blocking flag that's the intentional "block this
162
162
  // tool call" path.
163
163
  if (isBlocking) {
164
164
  const msg = err instanceof Error ? err.message : String(err);
@@ -172,7 +172,7 @@ export async function runHooks(ctx) {
172
172
  return { allowed: true };
173
173
  }
174
174
  /**
175
- * Reset the quarantine list — used by /reset-config when the user has
175
+ * Reset the quarantine list used by /reset-config when the user has
176
176
  * fixed their hooks.json and wants to re-enable hooks without restarting.
177
177
  */
178
178
  export function clearQuarantinedHooks() {
package/dist/hooks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;AAChD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,YAAY,CAAC,CAAC;AAuCxD,SAAS,eAAe;IACtB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACvB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAgB;YACjC,KAAK,EAAE;gBACL;oBACE,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,GAAG;oBACV,OAAO,EAAE,+BAA+B;oBACxC,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,KAAK;iBACf;aACF;SACF,CAAC;QACF,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,QAAgB;IACpD,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACtC,mDAAmD;IACnD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8HAA8H;AAC9H,wEAAwE;AACxE,wEAAwE;AACxE,wEAAwE;AACxE,qEAAqE;AACrE,0CAA0C;AAC1C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE3C,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AAChD,CAAC;AAED,2EAA2E;AAC3E,yEAAyE;AACzE,yEAAyE;AACzE,kEAAkE;AAClE,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;CACvE,CAAC,CAAC;AAEH,SAAS,aAAa,CAAC,GAAY;IACjC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,CAAC,GAAG,GAA4C,CAAC;IACvD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,uEAAuE;IACvE,uEAAuE;IACvE,sCAAsC;IACtC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,qCAAqC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACxG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAgB;IAC7C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK;QACrB,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC;QACrB,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrD,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAC1C,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,iDAAiD;QACjD,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QAED,yEAAyE;QACzE,kEAAkE;QAClE,8CAA8C;QAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG;YACV,GAAG,OAAO,CAAC,GAAG;YACd,YAAY,EAAE,GAAG,CAAC,KAAK;YACvB,WAAW,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE;YAC/B,iBAAiB,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;YACrE,kBAAkB,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;YACxC,iBAAiB,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE;YACtC,UAAU,EAAE,GAAG,CAAC,GAAG;YACnB,sBAAsB,EAAE,IAAI;SAC7B,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC;QAEvC,IAAI,CAAC;YACH,gBAAgB;YAChB,gEAAgE;YAChE,8DAA8D;YAC9D,mEAAmE;YACnE,iEAAiE;YACjE,sEAAsE;YACtE,oCAAoC;YACpC,MAAM,QAAQ,GAAmC;gBAC/C,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,GAAG;gBACH,OAAO;gBACP,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAChC,CAAC;YACF,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACjC,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC;YAC/B,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAEhD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,iEAAiE;YACjE,kEAAkE;YAClE,+DAA+D;YAC/D,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/B,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC1B,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CACtB,WAAW,GAAG,CAAC,KAAK,+CAA+C,IAAI,CAAC,KAAK,IAAI;wBACjF,gBAAgB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI;wBAC9C,gBAAgB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI;wBACpD,qBAAqB,YAAY,iDAAiD,CACnF,CAAC,CAAC;gBACL,CAAC;gBACD,SAAS,CAAE,gCAAgC;YAC7C,CAAC;YACD,mEAAmE;YACnE,sEAAsE;YACtE,mBAAmB;YACnB,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,KAAK,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC;gBACnE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAC1C,CAAC;YACD,qCAAqC;YACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,KAAK,2BAA2B,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,eAAe,EAAE,CAAC,KAAK,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAa;IACnC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,eAAe,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9B,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}