imcodes 2026.3.64 → 2026.3.73

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.
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.getP2pRun = getP2pRun;
14
14
  exports.listP2pRuns = listP2pRuns;
15
15
  exports._setIdlePollMs = _setIdlePollMs;
16
+ exports._setGracePeriodMs = _setGracePeriodMs;
16
17
  exports.notifySessionIdle = notifySessionIdle;
17
18
  exports.startP2pRun = startP2pRun;
18
19
  exports.cancelP2pRun = cancelP2pRun;
@@ -22,10 +23,10 @@ const node_path_1 = require("node:path");
22
23
  const node_crypto_1 = require("node:crypto");
23
24
  const tmux_js_1 = require("../agent/tmux.js");
24
25
  const detect_js_1 = require("../agent/detect.js");
25
- const tmux_js_2 = require("../agent/tmux.js");
26
26
  const session_store_js_1 = require("../store/session-store.js");
27
27
  const p2p_modes_js_1 = require("../shared/p2p-modes.js");
28
28
  const logger_js_1 = __importDefault(require("../util/logger.js"));
29
+ const timeline_emitter_js_1 = require("./timeline-emitter.js");
29
30
  // ── In-memory store ───────────────────────────────────────────────────────
30
31
  const activeRuns = new Map();
31
32
  function getP2pRun(id) { return activeRuns.get(id); }
@@ -34,8 +35,11 @@ function listP2pRuns() { return [...activeRuns.values()]; }
34
35
  const node_os_1 = require("node:os");
35
36
  const P2P_DIR = (0, node_path_1.join)((0, node_os_1.homedir)(), '.imcodes', 'discussions');
36
37
  let IDLE_POLL_MS = 3_000;
38
+ let GRACE_PERIOD_DEFAULT_MS = 30_000;
37
39
  /** Override poll interval for tests. */
38
40
  function _setIdlePollMs(ms) { IDLE_POLL_MS = ms; }
41
+ /** Override grace period for tests. */
42
+ function _setGracePeriodMs(ms) { GRACE_PERIOD_DEFAULT_MS = ms; }
39
43
  const idleWaiters = new Map();
40
44
  /**
41
45
  * Called by lifecycle hook when a session becomes idle.
@@ -121,6 +125,7 @@ async function startP2pRun(initiatorSession, targets, userText, fileContents, se
121
125
  mode,
122
126
  status: 'queued',
123
127
  contextFilePath,
128
+ userText,
124
129
  timeoutMs: modeConfig?.defaultTimeoutMs ?? 300_000,
125
130
  resultSummary: null,
126
131
  error: null,
@@ -203,129 +208,190 @@ async function executeChain(run, modeConfig, serverLink) {
203
208
  const target = targets[i];
204
209
  const hopLabel = `${shortName(target.session)} — ${capitalize(target.mode)} (hop ${i + 1}/${totalHops})`;
205
210
  const hopModeConfig = (0, p2p_modes_js_1.getP2pMode)(target.mode) ?? modeConfig;
211
+ // For sandboxed agents: copy discussion file into project dir
212
+ const sandboxed = isSandboxedSession(target.session);
213
+ let sandboxLocalPath = null;
214
+ if (sandboxed) {
215
+ sandboxLocalPath = await copyToSandbox(run, target.session);
216
+ logger_js_1.default.info({ runId: run.id, target: target.session, sandboxLocalPath }, 'P2P: sandboxed agent — using project-local temp file');
217
+ }
206
218
  const hopPrompt = buildHopPrompt(run, hopModeConfig, {
207
219
  session: target.session,
208
220
  sectionHeader: hopLabel,
209
221
  instruction: `Read the full context file and provide your ${target.mode} analysis. Append your output to the file.`,
210
222
  isInitial: false,
223
+ filePath: sandboxLocalPath ?? undefined,
211
224
  });
212
- // Wait for target to be idle
213
- logger_js_1.default.info({ runId: run.id, target: target.session, mode: target.mode, hop: i + 1, totalHops }, 'P2P: Phase 2 — waiting for target idle before dispatch');
214
- await waitForIdle(run, target.session, serverLink);
215
- if (run._cancelled)
216
- return;
217
- logger_js_1.default.info({ runId: run.id, target: target.session, status: run.status }, 'P2P: Phase 2 — target idle, dispatching hop');
218
- await dispatchHop(run, target.session, hopPrompt, serverLink);
225
+ // Dispatch immediately agent will queue the message and process after current task
226
+ logger_js_1.default.info({ runId: run.id, target: target.session, mode: target.mode, hop: i + 1, totalHops }, 'P2P: Phase 2 — dispatching hop');
227
+ await dispatchHop(run, target.session, hopPrompt, serverLink, sandboxLocalPath);
219
228
  logger_js_1.default.info({ runId: run.id, target: target.session, status: run.status }, 'P2P: Phase 2 — hop dispatch returned');
220
229
  if (run._cancelled || isTerminal(run.status))
221
230
  return;
222
231
  }
223
- // ── Phase 3: Initiator summary ──
232
+ // ── Phase 3: Initiator summary + execute user instructions ──
224
233
  logger_js_1.default.info({ runId: run.id, status: run.status }, 'P2P: Phase 3 — initiator summary');
225
234
  if (run._cancelled)
226
235
  return;
236
+ const summaryInstruction = [
237
+ 'Read the complete context file with all participants\' contributions. Synthesize a final summary. Append it to the file.',
238
+ '',
239
+ 'After writing the summary, execute the user\'s original request based on the discussion results.',
240
+ `Original user request: "${run.userText}"`,
241
+ 'If the user requested output to a specific file (e.g. a plan document), generate that file now using the discussion consensus.',
242
+ ].join('\n');
227
243
  const summaryPrompt = buildHopPrompt(run, modeConfig, {
228
244
  session: run.initiatorSession,
229
245
  sectionHeader: `${shortName(run.initiatorSession)} — Summary`,
230
- instruction: 'Read the complete context file with all participants\' contributions. Synthesize a final summary. Append it to the file.',
246
+ instruction: summaryInstruction,
231
247
  isInitial: false,
232
248
  });
233
249
  await dispatchHop(run, run.initiatorSession, summaryPrompt, serverLink);
234
250
  if (run._cancelled || isTerminal(run.status))
235
251
  return;
236
252
  // ── Done ──
253
+ let fullContent = '';
237
254
  try {
238
- const content = await (0, promises_1.readFile)(run.contextFilePath, 'utf8');
239
- run.resultSummary = content.slice(-2000); // last 2000 chars as summary
255
+ fullContent = await (0, promises_1.readFile)(run.contextFilePath, 'utf8');
256
+ run.resultSummary = fullContent.slice(-2000); // last 2000 chars as summary
240
257
  }
241
258
  catch { /* ignore */ }
242
259
  run.completedAt = new Date().toISOString();
243
260
  transition(run, 'completed', serverLink);
261
+ // Emit discussion result to initiator session timeline (summary only, not full content)
262
+ timeline_emitter_js_1.timelineEmitter.emit(run.initiatorSession, 'assistant.text', {
263
+ text: `**P2P Discussion Complete** (${run.id})\n\nFile: \`${run.contextFilePath}\`\n\n${run.resultSummary ?? '(no summary)'}`,
264
+ p2pRunId: run.id,
265
+ p2pDiscussionId: run.discussionId,
266
+ }, { source: 'daemon' });
244
267
  // Keep in memory for a bit so status queries work, then clean up
245
268
  setTimeout(() => activeRuns.delete(run.id), 60_000);
246
269
  }
247
270
  // ── Single hop dispatch + wait ────────────────────────────────────────────
248
- async function dispatchHop(run, session, prompt, serverLink) {
271
+ async function dispatchHop(run, session, prompt, serverLink, sandboxLocalPath) {
249
272
  run.currentTargetSession = session;
250
273
  run.remainingTargets = run.remainingTargets.filter((t) => t.session !== session);
251
274
  transition(run, 'dispatched', serverLink);
252
- // Record file size before dispatch
253
- let sizeBefore = 0;
254
- try {
255
- sizeBefore = (await (0, promises_1.stat)(run.contextFilePath)).size;
256
- }
257
- catch { /* file should exist */ }
258
- // Send the prompt to the agent
259
- try {
260
- await (0, tmux_js_1.sendKeysDelayedEnter)(session, prompt);
261
- }
262
- catch (err) {
263
- failRun(run, 'dispatch_failed', `sendKeys failed: ${err}`, serverLink);
264
- return;
265
- }
266
- // Wait for: file grows + agent idle
267
- // Uses dual strategy: poll for file growth + idle, AND listen for idle hook event.
268
- // Whichever fires first wins.
269
- const deadline = Date.now() + run.timeoutMs;
270
- let fileGrew = false;
271
- let idleEventReceived = false;
272
- // Start listening for idle event immediately
273
- const idlePromise = waitForIdleEvent(session, run.timeoutMs).then((ok) => {
274
- idleEventReceived = ok;
275
- });
276
- while (Date.now() < deadline) {
277
- if (run._cancelled)
278
- return;
279
- await sleep(IDLE_POLL_MS);
275
+ const watchPath = sandboxLocalPath ?? run.contextFilePath;
276
+ const MAX_RETRIES = 1;
277
+ for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
280
278
  if (run._cancelled)
281
279
  return;
282
- // Check file growth
283
- if (!fileGrew) {
284
- try {
285
- const currentSize = (await (0, promises_1.stat)(run.contextFilePath)).size;
286
- if (currentSize > sizeBefore) {
287
- fileGrew = true;
288
- if (run.status === 'dispatched') {
289
- transition(run, 'running', serverLink);
280
+ // Record file size before dispatch
281
+ let sizeBefore = 0;
282
+ try {
283
+ sizeBefore = (await (0, promises_1.stat)(watchPath)).size;
284
+ }
285
+ catch { /* file should exist */ }
286
+ // Send the prompt (sendKeys auto-handles long text; pass cwd for sandboxed agents)
287
+ const sessionRecord = (0, session_store_js_1.getSession)(session);
288
+ const sendOpts = isSandboxedSession(session) ? { cwd: sessionRecord?.projectDir } : undefined;
289
+ try {
290
+ await (0, tmux_js_1.sendKeysDelayedEnter)(session, prompt, sendOpts);
291
+ }
292
+ catch (err) {
293
+ if (attempt < MAX_RETRIES) {
294
+ logger_js_1.default.warn({ runId: run.id, session, attempt }, 'P2P: sendKeys failed, will retry');
295
+ await sleep(2_000);
296
+ continue;
297
+ }
298
+ logger_js_1.default.warn({ runId: run.id, session, err }, 'P2P: hop dispatch failed after retry, skipping');
299
+ return; // skip this hop, don't fail the whole run
300
+ }
301
+ // Wait for completion: file growth + idle
302
+ // Grace period: agent needs time to receive prompt, parse it, and start working.
303
+ // Don't check idle-without-growth until after this period.
304
+ const GRACE_PERIOD_MS = GRACE_PERIOD_DEFAULT_MS;
305
+ const dispatchTime = Date.now();
306
+ const deadline = dispatchTime + run.timeoutMs;
307
+ let fileGrew = false;
308
+ let idleDetected = false;
309
+ let idleEventReceived = false;
310
+ const idlePromise = waitForIdleEvent(session, run.timeoutMs).then((ok) => { idleEventReceived = ok; });
311
+ while (Date.now() < deadline) {
312
+ if (run._cancelled)
313
+ return;
314
+ await sleep(IDLE_POLL_MS);
315
+ if (run._cancelled)
316
+ return;
317
+ // Check file growth
318
+ if (!fileGrew) {
319
+ try {
320
+ const currentSize = (await (0, promises_1.stat)(watchPath)).size;
321
+ if (currentSize > sizeBefore) {
322
+ fileGrew = true;
323
+ if (run.status === 'dispatched')
324
+ transition(run, 'running', serverLink);
290
325
  }
291
326
  }
327
+ catch { /* ignore */ }
292
328
  }
293
- catch { /* ignore */ }
294
- }
295
- // Check idle either via hook event or poll
296
- if (fileGrew) {
297
- if (idleEventReceived) {
329
+ // Check idle (via event or poll) — but only after grace period or if file already grew
330
+ const pastGrace = (Date.now() - dispatchTime) > GRACE_PERIOD_MS;
331
+ if (!idleDetected && (pastGrace || fileGrew)) {
332
+ if (idleEventReceived) {
333
+ idleDetected = true;
334
+ }
335
+ else {
336
+ try {
337
+ const record = (0, session_store_js_1.getSession)(session);
338
+ const agentType = (record?.agentType ?? 'claude-code');
339
+ if (await (0, detect_js_1.detectStatusAsync)(session, agentType) === 'idle')
340
+ idleDetected = true;
341
+ }
342
+ catch { /* ignore */ }
343
+ }
344
+ }
345
+ // Success: file grew AND agent is idle
346
+ if (fileGrew && idleDetected) {
347
+ if (sandboxLocalPath)
348
+ await copyBackFromSandbox(run, sandboxLocalPath);
298
349
  if (run.remainingTargets.length > 0 || session !== run.initiatorSession) {
299
350
  transition(run, 'awaiting_next_hop', serverLink);
300
351
  }
301
352
  return;
302
353
  }
303
- // Fallback: poll detectStatus
304
- try {
305
- const lines = await (0, tmux_js_2.capturePane)(session);
306
- const record = (0, session_store_js_1.getSession)(session);
307
- const agentType = (record?.agentType ?? 'claude-code');
308
- if ((0, detect_js_1.detectStatus)(lines, agentType) === 'idle') {
309
- if (run.remainingTargets.length > 0 || session !== run.initiatorSession) {
310
- transition(run, 'awaiting_next_hop', serverLink);
311
- }
312
- return;
354
+ // Idle but file didn't grow (only check after grace period) → agent ignored the prompt
355
+ if (idleDetected && !fileGrew && pastGrace) {
356
+ if (attempt < MAX_RETRIES) {
357
+ logger_js_1.default.warn({ runId: run.id, session, attempt }, 'P2P: agent went idle without writing to file, retrying');
358
+ break; // break inner loop to retry outer loop
359
+ }
360
+ // Max retries exhausted skip this hop
361
+ logger_js_1.default.warn({ runId: run.id, session }, 'P2P: agent idle without file change after retry, skipping hop');
362
+ if (sandboxLocalPath)
363
+ await copyBackFromSandbox(run, sandboxLocalPath).catch(() => { });
364
+ if (run.remainingTargets.length > 0 || session !== run.initiatorSession) {
365
+ transition(run, 'awaiting_next_hop', serverLink);
313
366
  }
367
+ return;
314
368
  }
315
- catch { /* ignore */ }
316
369
  }
317
- }
318
- // Cleanup: the idle event listener will auto-timeout
319
- void idlePromise;
320
- // Timeout
321
- if (!run._cancelled) {
322
- failRun(run, 'timed_out', `Hop timed out after ${run.timeoutMs}ms`, serverLink);
370
+ void idlePromise;
371
+ // If we got here from break (retry), continue to next attempt
372
+ if (idleDetected && !fileGrew && attempt < MAX_RETRIES)
373
+ continue;
374
+ // Timeout — copy back whatever we got and skip (don't fail the whole run)
375
+ if (sandboxLocalPath)
376
+ await copyBackFromSandbox(run, sandboxLocalPath).catch(() => { });
377
+ logger_js_1.default.warn({ runId: run.id, session }, 'P2P: hop timed out, skipping to next');
378
+ if (run.remainingTargets.length > 0 || session !== run.initiatorSession) {
379
+ transition(run, 'awaiting_next_hop', serverLink);
380
+ }
381
+ return;
323
382
  }
324
383
  }
325
384
  // ── Wait for target session to be idle ────────────────────────────────────
326
385
  async function waitForIdle(run, session, serverLink) {
327
386
  logger_js_1.default.info({ runId: run.id, session }, 'P2P: waiting for target session to become idle');
328
- // Dual strategy: hook event (instant for CC) + polling fallback (for codex/gemini/shell)
387
+ // 1. Check store state first if already idle, proceed immediately
388
+ const record = (0, session_store_js_1.getSession)(session);
389
+ if (record?.state === 'idle') {
390
+ logger_js_1.default.info({ runId: run.id, session }, 'P2P: target already idle (store), proceeding');
391
+ return;
392
+ }
393
+ // 2. Wait for idle event (timeline listener fires notifySessionIdle on any state change to idle)
394
+ // with polling fallback via detectStatusAsync (cursor-based for codex)
329
395
  let idleEventFired = false;
330
396
  const idlePromise = waitForIdleEvent(session, run.timeoutMs).then((ok) => { idleEventFired = ok; });
331
397
  const deadline = Date.now() + run.timeoutMs;
@@ -333,16 +399,19 @@ async function waitForIdle(run, session, serverLink) {
333
399
  if (run._cancelled)
334
400
  return;
335
401
  if (idleEventFired) {
336
- logger_js_1.default.info({ runId: run.id, session }, 'P2P: target idle (via hook event), proceeding');
402
+ logger_js_1.default.info({ runId: run.id, session }, 'P2P: target idle (via event), proceeding');
337
403
  return;
338
404
  }
339
405
  // Poll fallback
340
406
  try {
341
- const lines = await (0, tmux_js_2.capturePane)(session);
342
- const record = (0, session_store_js_1.getSession)(session);
343
- const agentType = (record?.agentType ?? 'claude-code');
344
- if ((0, detect_js_1.detectStatus)(lines, agentType) === 'idle') {
345
- logger_js_1.default.info({ runId: run.id, session }, 'P2P: target idle (via poll), proceeding');
407
+ const r = (0, session_store_js_1.getSession)(session);
408
+ if (r?.state === 'idle') {
409
+ logger_js_1.default.info({ runId: run.id, session }, 'P2P: target idle (store poll), proceeding');
410
+ return;
411
+ }
412
+ const agentType = (r?.agentType ?? 'claude-code');
413
+ if (await (0, detect_js_1.detectStatusAsync)(session, agentType) === 'idle') {
414
+ logger_js_1.default.info({ runId: run.id, session }, 'P2P: target idle (detectStatusAsync), proceeding');
346
415
  return;
347
416
  }
348
417
  }
@@ -354,22 +423,51 @@ async function waitForIdle(run, session, serverLink) {
354
423
  failRun(run, 'timed_out', `Target ${session} never became idle after ${run.timeoutMs}ms`, serverLink);
355
424
  }
356
425
  }
426
+ // ── Sandbox detection ─────────────────────────────────────────────────────
427
+ /** Agents that can only read/write files within their project directory. */
428
+ const SANDBOXED_AGENTS = new Set(['gemini']);
429
+ function isSandboxedSession(session) {
430
+ const record = (0, session_store_js_1.getSession)(session);
431
+ return SANDBOXED_AGENTS.has(record?.agentType ?? '');
432
+ }
433
+ /**
434
+ * For sandboxed agents: copy the discussion file into the project dir,
435
+ * return the local temp path. After the hop, copyBackFromSandbox() merges it back.
436
+ */
437
+ async function copyToSandbox(run, session) {
438
+ const record = (0, session_store_js_1.getSession)(session);
439
+ if (!record?.projectDir)
440
+ return null;
441
+ const localPath = (0, node_path_1.join)(record.projectDir, `.p2p-${run.id}.md`);
442
+ await (0, promises_1.copyFile)(run.contextFilePath, localPath);
443
+ return localPath;
444
+ }
445
+ async function copyBackFromSandbox(run, localPath) {
446
+ try {
447
+ await (0, promises_1.copyFile)(localPath, run.contextFilePath);
448
+ await (0, promises_1.unlink)(localPath);
449
+ }
450
+ catch (err) {
451
+ logger_js_1.default.warn({ err, localPath }, 'P2P: failed to copy back from sandbox temp file');
452
+ }
453
+ }
357
454
  function buildHopPrompt(run, mode, opts) {
358
455
  const parts = [];
456
+ const filePath = opts.filePath ?? run.contextFilePath;
359
457
  // Mode role prompt
360
458
  if (mode?.prompt) {
361
459
  parts.push(mode.prompt);
362
460
  }
363
461
  // System instructions for P2P collaboration — must be extremely clear and actionable
364
462
  parts.push(`\n[P2P TASK — YOU MUST ACT ON THIS IMMEDIATELY]`);
365
- parts.push(`This is an automated P2P Quick Discussion task (run: ${run.id}). Do NOT reply conversationally. Execute the steps below NOW.`);
463
+ parts.push(`This is a P2P Quick Discussion task (run: ${run.id}). Do NOT reply conversationally. Execute the steps below NOW.`);
366
464
  parts.push(``);
367
- parts.push(`Step 1: Read the context file: ${run.contextFilePath}`);
465
+ parts.push(`Step 1: Read the context file: ${filePath}`);
368
466
  parts.push(`Step 2: ${opts.instruction}`);
369
467
  parts.push(`Step 3: Append your analysis to the SAME file under the heading "## ${opts.sectionHeader}"`);
370
468
  parts.push(``);
371
469
  parts.push(`CRITICAL RULES:`);
372
- parts.push(`- Write output to the FILE at ${run.contextFilePath}, NOT to the chat/screen.`);
470
+ parts.push(`- Write output to the FILE at ${filePath}, NOT to the chat/screen.`);
373
471
  parts.push(`- Use your file editing tools (Edit/Write/Bash) to append to the file.`);
374
472
  parts.push(`- Do NOT ask the user for confirmation. Just do it.`);
375
473
  parts.push(`- After writing, say "Done" and nothing else.`);
@@ -1 +1 @@
1
- {"version":3,"file":"p2p-orchestrator.js","sourceRoot":"","sources":["../../src/daemon/p2p-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p2p-orchestrator.js","sourceRoot":"","sources":["../../src/daemon/p2p-orchestrator.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AA4DH,8BAAwF;AACxF,kCAA4E;AAU5E,wCAAuE;AAEvE,8CAAqF;AAWrF,8CAOC;AAgCD,kCAkEC;AAID,oCA4BC;AAID,kEAUC;AAzOD,+CAAsF;AACtF,yCAA2C;AAC3C,6CAAyC;AACzC,8CAAwD;AACxD,kDAAqE;AAErE,gEAA2E;AAC3E,yDAAkE;AAClE,kEAAuC;AAEvC,+DAAwD;AA4CxD,6EAA6E;AAE7E,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE7C,SAAgB,SAAS,CAAC,EAAU,IAAwB,OAAO,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxF,SAAgB,WAAW,KAAe,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAE5E,6EAA6E;AAE7E,qCAAkC;AAClC,MAAM,OAAO,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAC3D,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,IAAI,uBAAuB,GAAG,MAAM,CAAC;AAErC,wCAAwC;AACxC,SAAgB,cAAc,CAAC,EAAU,IAAU,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC;AACvE,uCAAuC;AACvC,SAAgB,iBAAiB,CAAC,EAAU,IAAU,uBAAuB,GAAG,EAAE,CAAC,CAAC,CAAC;AAKrF,MAAM,WAAW,GAAG,IAAI,GAAG,EAA6B,CAAC;AAEzD;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,WAAmB;IACnD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAChC,mBAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,6CAA6C,CAAC,CAAC;QAC5G,KAAK,MAAM,OAAO,IAAI,OAAO;YAAE,OAAO,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe,EAAE,SAAiB;IAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAAC,QAAQ,GAAG,IAAI,CAAC;gBAAC,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;QAChE,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,MAAM,QAAQ,GAAiB,GAAG,EAAE;YAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAAC,QAAQ,GAAG,IAAI,CAAC;gBAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAAC,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;QACpF,CAAC,CAAC;QAEF,SAAS,OAAO;YACd,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,GAAG,EAAE,CAAC;gBACR,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACrB,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;oBAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,IAAI,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6EAA6E;AAEtE,KAAK,UAAU,WAAW,CAC/B,gBAAwB,EACxB,OAAoB,EACpB,QAAgB,EAChB,YAAsD,EACtD,UAA6B;IAE7B,uBAAuB;IACvB,MAAM,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,WAAW,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,OAAO,cAAc,WAAW,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,SAAS,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAA,yBAAU,EAAC,IAAI,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,IAAA,wBAAU,GAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,OAAO,IAAA,wBAAU,GAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,2BAA2B;IAC3B,MAAM,IAAA,gBAAK,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,eAAe,GAAG,IAAA,gBAAI,EAAC,OAAO,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC;IAErD,IAAI,IAAI,GAAG,qBAAqB,KAAK,MAAM,CAAC;IAC5C,IAAI,IAAI,sBAAsB,QAAQ,MAAM,CAAC;IAC7C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,IAAI,yBAAyB,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,OAAO,cAAc,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,MAAM,IAAA,oBAAS,EAAC,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAW;QAClB,EAAE,EAAE,KAAK;QACT,YAAY;QACZ,WAAW;QACX,gBAAgB;QAChB,oBAAoB,EAAE,IAAI;QAC1B,kBAAkB,EAAE,gBAAgB;QACpC,gBAAgB,EAAE,OAAO;QACzB,IAAI;QACJ,MAAM,EAAE,QAAQ;QAChB,eAAe;QACf,QAAQ;QACR,SAAS,EAAE,UAAU,EAAE,gBAAgB,IAAI,OAAO;QAClD,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,KAAK;KAClB,CAAC;IAEF,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3B,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAE3B,wCAAwC;IACxC,KAAK,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3D,mBAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,4BAA4B,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,6EAA6E;AAEtE,KAAK,UAAU,YAAY,CAAC,KAAa,EAAE,UAA6B;IAC7E,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;IAEtB,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC5B,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACzC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACxE,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;QAC3C,2CAA2C;QAC3C,IAAI,GAAG,CAAC,oBAAoB,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBACrD,MAAM,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1B,CAAC;QACD,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QAC1C,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACzC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6EAA6E;AAEtE,KAAK,UAAU,2BAA2B,CAAC,UAA6B;IAC7E,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,IAAI,CAAC;QACH,iFAAiF;QACjF,wEAAwE;QACxE,mBAAM,CAAC,IAAI,CAAC,EAAE,EAAE,oDAAoD,CAAC,CAAC;QACtE,2DAA2D;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mBAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,8CAA8C,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,6EAA6E;AAE7E,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,UAA+B,EAAE,UAA6B;IACrG,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjC,4CAA4C;IAC5C,IAAI,GAAG,CAAC,UAAU;QAAE,OAAO;IAC3B,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE;QACpD,OAAO,EAAE,GAAG,CAAC,gBAAgB;QAC7B,aAAa,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,qBAAqB;QACtE,WAAW,EAAE,gGAAgG;QAC7G,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,MAAM,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,gBAAgB,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IACxE,IAAI,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO;IAErD,kCAAkC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC;QACzG,MAAM,aAAa,GAAG,IAAA,yBAAU,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC;QAE5D,8DAA8D;QAC9D,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,gBAAgB,GAAkB,IAAI,CAAC;QAC3C,IAAI,SAAS,EAAE,CAAC;YACd,gBAAgB,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5D,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,sDAAsD,CAAC,CAAC;QACnI,CAAC;QAED,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE;YACnD,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,aAAa,EAAE,QAAQ;YACvB,WAAW,EAAE,+CAA+C,MAAM,CAAC,IAAI,4CAA4C;YACnH,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,gBAAgB,IAAI,SAAS;SACxC,CAAC,CAAC;QAEH,qFAAqF;QACrF,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,gCAAgC,CAAC,CAAC;QACnI,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAChF,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,sCAAsC,CAAC,CAAC;QACnH,IAAI,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;IACvD,CAAC;IAED,+DAA+D;IAC/D,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,kCAAkC,CAAC,CAAC;IACvF,IAAI,GAAG,CAAC,UAAU;QAAE,OAAO;IAC3B,MAAM,kBAAkB,GAAG;QACzB,0HAA0H;QAC1H,EAAE;QACF,kGAAkG;QAClG,2BAA2B,GAAG,CAAC,QAAQ,GAAG;QAC1C,gIAAgI;KACjI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE;QACpD,OAAO,EAAE,GAAG,CAAC,gBAAgB;QAC7B,aAAa,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY;QAC7D,WAAW,EAAE,kBAAkB;QAC/B,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,MAAM,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,gBAAgB,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IACxE,IAAI,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO;IAErD,aAAa;IACb,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,IAAA,mBAAQ,EAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC1D,GAAG,CAAC,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B;IAC7E,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAExB,GAAG,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAEzC,wFAAwF;IACxF,qCAAe,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,EAAE;QAC3D,IAAI,EAAE,gCAAgC,GAAG,CAAC,EAAE,gBAAgB,GAAG,CAAC,eAAe,SAAS,GAAG,CAAC,aAAa,IAAI,cAAc,EAAE;QAC7H,QAAQ,EAAE,GAAG,CAAC,EAAE;QAChB,eAAe,EAAE,GAAG,CAAC,YAAY;KAClC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEzB,iEAAiE;IACjE,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,6EAA6E;AAE7E,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,OAAe,EAAE,MAAc,EAAE,UAA6B,EAAE,gBAAgC;IACtI,GAAG,CAAC,oBAAoB,GAAG,OAAO,CAAC;IACnC,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IACjF,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAE1C,MAAM,SAAS,GAAG,gBAAgB,IAAI,GAAG,CAAC,eAAe,CAAC;IAC1D,MAAM,WAAW,GAAG,CAAC,CAAC;IAEtB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO;QAE3B,mCAAmC;QACnC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC;YAAC,UAAU,GAAG,CAAC,MAAM,IAAA,eAAI,EAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAEpF,mFAAmF;QACnF,MAAM,aAAa,GAAG,IAAA,6BAAU,EAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,IAAI,CAAC;YACH,MAAM,IAAA,8BAAoB,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;gBAC1B,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,kCAAkC,CAAC,CAAC;gBACrF,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;gBACnB,SAAS;YACX,CAAC;YACD,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,gDAAgD,CAAC,CAAC;YAC/F,OAAO,CAAC,0CAA0C;QACpD,CAAC;QAED,0CAA0C;QAC1C,iFAAiF;QACjF,2DAA2D;QAC3D,MAAM,eAAe,GAAG,uBAAuB,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC;QAC9C,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAE9B,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvG,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,IAAI,GAAG,CAAC,UAAU;gBAAE,OAAO;YAC3B,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,UAAU;gBAAE,OAAO;YAE3B,oBAAoB;YACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,CAAC,MAAM,IAAA,eAAI,EAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;oBACjD,IAAI,WAAW,GAAG,UAAU,EAAE,CAAC;wBAC7B,QAAQ,GAAG,IAAI,CAAC;wBAChB,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY;4BAAE,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC1B,CAAC;YAED,uFAAuF;YACvF,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,eAAe,CAAC;YAChE,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,EAAE,CAAC;gBAC7C,IAAI,iBAAiB,EAAE,CAAC;oBACtB,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAA,6BAAU,EAAC,OAAO,CAAC,CAAC;wBACnC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,SAAS,IAAI,aAAa,CAA2C,CAAC;wBACjG,IAAI,MAAM,IAAA,6BAAiB,EAAC,OAAO,EAAE,SAAS,CAAC,KAAK,MAAM;4BAAE,YAAY,GAAG,IAAI,CAAC;oBAClF,CAAC;oBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAED,uCAAuC;YACvC,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;gBAC7B,IAAI,gBAAgB;oBAAE,MAAM,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;gBACvE,IAAI,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,GAAG,CAAC,gBAAgB,EAAE,CAAC;oBACxE,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC;gBACnD,CAAC;gBACD,OAAO;YACT,CAAC;YAED,uFAAuF;YACvF,IAAI,YAAY,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAC3C,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;oBAC1B,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,wDAAwD,CAAC,CAAC;oBAC3G,MAAM,CAAC,uCAAuC;gBAChD,CAAC;gBACD,wCAAwC;gBACxC,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,+DAA+D,CAAC,CAAC;gBACzG,IAAI,gBAAgB;oBAAE,MAAM,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACvF,IAAI,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,GAAG,CAAC,gBAAgB,EAAE,CAAC;oBACxE,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC;gBACnD,CAAC;gBACD,OAAO;YACT,CAAC;QACH,CAAC;QAED,KAAK,WAAW,CAAC;QAEjB,8DAA8D;QAC9D,IAAI,YAAY,IAAI,CAAC,QAAQ,IAAI,OAAO,GAAG,WAAW;YAAE,SAAS;QAEjE,0EAA0E;QAC1E,IAAI,gBAAgB;YAAE,MAAM,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvF,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,sCAAsC,CAAC,CAAC;QAChF,IAAI,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACxE,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;QACD,OAAO;IACT,CAAC;AACH,CAAC;AAED,6EAA6E;AAE7E,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,OAAe,EAAE,UAA6B;IACpF,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,gDAAgD,CAAC,CAAC;IAE1F,oEAAoE;IACpE,MAAM,MAAM,GAAG,IAAA,6BAAU,EAAC,OAAO,CAAC,CAAC;IACnC,IAAI,MAAM,EAAE,KAAK,KAAK,MAAM,EAAE,CAAC;QAC7B,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,8CAA8C,CAAC,CAAC;QACxF,OAAO;IACT,CAAC;IAED,iGAAiG;IACjG,0EAA0E;IAC1E,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpG,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;IAC5C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO;QAC3B,IAAI,cAAc,EAAE,CAAC;YACnB,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,0CAA0C,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QACD,gBAAgB;QAChB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAA,6BAAU,EAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,EAAE,KAAK,KAAK,MAAM,EAAE,CAAC;gBACxB,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,2CAA2C,CAAC,CAAC;gBACrF,OAAO;YACT,CAAC;YACD,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,SAAS,IAAI,aAAa,CAA2C,CAAC;YAC5F,IAAI,MAAM,IAAA,6BAAiB,EAAC,OAAO,EAAE,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC3D,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,kDAAkD,CAAC,CAAC;gBAC5F,OAAO;YACT,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACxB,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,WAAW,CAAC;IACjB,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,OAAO,4BAA4B,GAAG,CAAC,SAAS,IAAI,EAAE,UAAU,CAAC,CAAC;IACxG,CAAC;AACH,CAAC;AAED,6EAA6E;AAE7E,4EAA4E;AAC5E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE7C,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,MAAM,GAAG,IAAA,6BAAU,EAAC,OAAO,CAAC,CAAC;IACnC,OAAO,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,OAAe;IACvD,MAAM,MAAM,GAAG,IAAA,6BAAU,EAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,UAAU;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/D,MAAM,IAAA,mBAAQ,EAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC/C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,GAAW,EAAE,SAAiB;IAC/D,IAAI,CAAC;QACH,MAAM,IAAA,mBAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,IAAA,iBAAM,EAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mBAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,iDAAiD,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAaD,SAAS,cAAc,CAAC,GAAW,EAAE,IAAyB,EAAE,IAAa;IAC3E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,eAAe,CAAC;IAEtD,mBAAmB;IACnB,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,qFAAqF;IACrF,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,6CAA6C,GAAG,CAAC,EAAE,gEAAgE,CAAC,CAAC;IAChI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,uEAAuE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACzG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,iCAAiC,QAAQ,2BAA2B,CAAC,CAAC;IACjF,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;IACrF,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE7B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,6EAA6E;AAE7E,SAAS,UAAU,CAAC,GAAW,EAAE,MAAoB,EAAE,UAA6B;IAClF,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACpB,GAAG,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC;IACnE,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,OAAO,CAAC,GAAW,EAAE,SAAiB,EAAE,OAAe,EAAE,UAA6B;IAC7F,GAAG,CAAC,KAAK,GAAG,GAAG,SAAS,KAAK,OAAO,EAAE,CAAC;IACvC,GAAG,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,MAAM,GAAiB,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChF,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACpB,mBAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACrE,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,UAA6B;IAC3D,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAgB,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB;QACjD,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe;YAC5E,CAAC,CAAC,cAAc,CAAC;IACrB,IAAI,CAAC;QACH,UAAU,CAAC,IAAI,CAAC;YACd,IAAI;YACJ,GAAG,EAAE;gBACH,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,aAAa,EAAE,GAAG,CAAC,YAAY;gBAC/B,SAAS,EAAE,EAAE,EAAE,qCAAqC;gBACpD,YAAY,EAAE,GAAG,CAAC,WAAW;gBAC7B,iBAAiB,EAAE,GAAG,CAAC,gBAAgB;gBACvC,sBAAsB,EAAE,GAAG,CAAC,oBAAoB;gBAChD,oBAAoB,EAAE,GAAG,CAAC,kBAAkB;gBAC5C,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC;gBACvD,QAAQ,EAAE,GAAG,CAAC,IAAI;gBAClB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,kBAAkB,EAAE,IAAI;gBACxB,mBAAmB,EAAE,IAAI;gBACzB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC;gBACxE,UAAU,EAAE,GAAG,CAAC,SAAS;gBACzB,cAAc,EAAE,GAAG,CAAC,aAAa;gBACjC,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,UAAU,EAAE,GAAG,CAAC,SAAS;gBACzB,UAAU,EAAE,GAAG,CAAC,SAAS;gBACzB,YAAY,EAAE,GAAG,CAAC,WAAW;aAC9B;SACF,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CAAC,MAAoB;IACtC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,WAAW,CAAC;AAC3G,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,4EAA4E;IAC5E,2EAA2E;IAC3E,IAAI,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,IAAA,6BAAU,EAAC,WAAW,CAAC,CAAC;QACvC,IAAI,MAAM,EAAE,aAAa,EAAE,CAAC;YAC1B,OAAO,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;QACD,0DAA0D;IAC5D,CAAC;IACD,gCAAgC;IAChC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC;AAC5C,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-emitter.d.ts","sourceRoot":"","sources":["../../src/daemon/timeline-emitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAKhH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,QAAQ,CAAyC;IACzD,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB,CAA6B;IACrD,8EAA8E;IAC9E,OAAO,CAAC,aAAa,CAAmD;IACxE,yFAAyF;IACzF,QAAQ,CAAC,KAAK,SAAc;IAE5B,IAAI,CACF,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAC;QAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GACjG,aAAa,GAAG,IAAI;IA6DvB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;CAc7F;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
1
+ {"version":3,"file":"timeline-emitter.d.ts","sourceRoot":"","sources":["../../src/daemon/timeline-emitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAQhH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,QAAQ,CAAyC;IACzD,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB,CAA6B;IACrD,8EAA8E;IAC9E,OAAO,CAAC,aAAa,CAAmD;IACxE,yFAAyF;IACzF,QAAQ,CAAC,KAAK,SAAc;IAE5B,IAAI,CACF,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAC;QAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GACjG,aAAa,GAAG,IAAI;IA4EvB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;CAc7F;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -6,7 +6,10 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.timelineEmitter = exports.TimelineEmitter = void 0;
8
8
  const crypto_1 = require("crypto");
9
+ const fs_1 = require("fs");
9
10
  const timeline_store_js_1 = require("./timeline-store.js");
11
+ /** Pattern matching temp file instruction: "Read and execute all instructions in @<path>" */
12
+ const TEMP_FILE_RE = /^Read and execute all instructions in @(.+\.imcodes-prompt-[0-9a-f]+\.md)$/;
10
13
  const MAX_BUFFER = 500;
11
14
  class TimelineEmitter {
12
15
  seqMap = new Map();
@@ -19,22 +22,35 @@ class TimelineEmitter {
19
22
  /** Daemon startup timestamp — changes on restart, used for epoch-based seq continuity */
20
23
  epoch = Date.now();
21
24
  emit(sessionId, type, payload, opts) {
22
- // Deduplicate session.state — skip if state unchanged
25
+ // Deduplicate session.state — skip repeated same-state events to avoid UI flicker,
26
+ // but still return a synthetic event so callers (store updates, idle callbacks) proceed.
23
27
  if (type === 'session.state') {
24
28
  const state = String(payload.state ?? '');
25
- if (this.lastSessionState.get(sessionId) === state)
26
- return null;
29
+ if (this.lastSessionState.get(sessionId) === state) {
30
+ // State unchanged — don't emit to handlers/UI, but return event for caller
31
+ return { eventId: '', sessionId, ts: Date.now(), seq: 0, epoch: this.epoch, source: opts?.source ?? 'daemon', confidence: opts?.confidence ?? 'high', type, payload };
32
+ }
27
33
  this.lastSessionState.set(sessionId, state);
28
34
  }
29
35
  // Deduplicate user.message — skip if same session + same text within 5s
30
36
  if (type === 'user.message') {
31
37
  const text = String(payload.text ?? '');
38
+ // Resolve temp file references: replace instruction with actual file content
39
+ const tempMatch = text.match(TEMP_FILE_RE);
40
+ if (tempMatch) {
41
+ try {
42
+ const content = (0, fs_1.readFileSync)(tempMatch[1], 'utf-8');
43
+ payload = { ...payload, text: content, tempFile: tempMatch[1] };
44
+ }
45
+ catch { /* file already cleaned up or unreadable — keep original text */ }
46
+ }
32
47
  const key = sessionId;
48
+ const resolvedText = String(payload.text ?? '');
33
49
  const prev = this.recentUserMsg.get(key);
34
50
  const now = Date.now();
35
- if (prev && prev.text === text && now - prev.ts < 5_000)
51
+ if (prev && prev.text === resolvedText && now - prev.ts < 5_000)
36
52
  return null;
37
- this.recentUserMsg.set(key, { text, ts: now });
53
+ this.recentUserMsg.set(key, { text: resolvedText, ts: now });
38
54
  }
39
55
  const seq = (this.seqMap.get(sessionId) ?? 0) + 1;
40
56
  this.seqMap.set(sessionId, seq);
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-emitter.js","sourceRoot":"","sources":["../../src/daemon/timeline-emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timeline-emitter.js","sourceRoot":"","sources":["../../src/daemon/timeline-emitter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imcodes",
3
- "version": "2026.3.64",
3
+ "version": "2026.3.73",
4
4
  "description": "A chat interface for AI coding agents — control Claude Code, Codex, Gemini CLI, OpenCode from browser and mobile",
5
5
  "license": "MIT",
6
6
  "repository": {