@excitedjs/agent-runtime-claude-code 0.6.0-beta.179 → 0.6.0-beta.183

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 (102) hide show
  1. package/dist/activity/budget.d.ts +8 -0
  2. package/dist/activity/budget.d.ts.map +1 -0
  3. package/dist/activity/budget.js +9 -0
  4. package/dist/activity/budget.js.map +1 -0
  5. package/dist/{transcript → activity}/cursor.d.ts +2 -2
  6. package/dist/activity/cursor.d.ts.map +1 -0
  7. package/dist/{transcript → activity}/cursor.js +11 -11
  8. package/dist/activity/cursor.js.map +1 -0
  9. package/dist/activity/error.d.ts +16 -0
  10. package/dist/activity/error.d.ts.map +1 -0
  11. package/dist/activity/error.js +22 -0
  12. package/dist/activity/error.js.map +1 -0
  13. package/dist/activity/native-hash.d.ts.map +1 -0
  14. package/dist/activity/native-hash.js.map +1 -0
  15. package/dist/{transcript → activity}/opened-file.d.ts +3 -3
  16. package/dist/activity/opened-file.d.ts.map +1 -0
  17. package/dist/{transcript → activity}/opened-file.js +16 -16
  18. package/dist/activity/opened-file.js.map +1 -0
  19. package/dist/activity/parallel-tools.d.ts +6 -0
  20. package/dist/activity/parallel-tools.d.ts.map +1 -0
  21. package/dist/activity/parallel-tools.js.map +1 -0
  22. package/dist/activity/path.d.ts +25 -0
  23. package/dist/activity/path.d.ts.map +1 -0
  24. package/dist/{transcript → activity}/path.js +32 -32
  25. package/dist/activity/path.js.map +1 -0
  26. package/dist/activity/reader.d.ts +16 -0
  27. package/dist/activity/reader.d.ts.map +1 -0
  28. package/dist/{transcript → activity}/reader.js +120 -161
  29. package/dist/activity/reader.js.map +1 -0
  30. package/dist/activity/rewrites.d.ts.map +1 -0
  31. package/dist/activity/rewrites.js.map +1 -0
  32. package/dist/admission-classify.d.ts +7 -0
  33. package/dist/admission-classify.d.ts.map +1 -0
  34. package/dist/admission-classify.js +17 -0
  35. package/dist/admission-classify.js.map +1 -0
  36. package/dist/diagnostic.d.ts +2 -2
  37. package/dist/diagnostic.d.ts.map +1 -1
  38. package/dist/index.d.ts +1 -2
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +0 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/mcp-config.d.ts +1 -0
  43. package/dist/mcp-config.d.ts.map +1 -1
  44. package/dist/mcp-config.js +5 -0
  45. package/dist/mcp-config.js.map +1 -1
  46. package/dist/provider.d.ts +28 -40
  47. package/dist/provider.d.ts.map +1 -1
  48. package/dist/provider.js +32 -61
  49. package/dist/provider.js.map +1 -1
  50. package/dist/runtime-deps.d.ts +7 -11
  51. package/dist/runtime-deps.d.ts.map +1 -1
  52. package/dist/runtime-session.d.ts +0 -9
  53. package/dist/runtime-session.d.ts.map +1 -1
  54. package/dist/runtime-session.js +0 -14
  55. package/dist/runtime-session.js.map +1 -1
  56. package/dist/runtime-submissions.d.ts +3 -4
  57. package/dist/runtime-submissions.d.ts.map +1 -1
  58. package/dist/runtime-submissions.js +0 -3
  59. package/dist/runtime-submissions.js.map +1 -1
  60. package/dist/runtime.d.ts +67 -34
  61. package/dist/runtime.d.ts.map +1 -1
  62. package/dist/runtime.js +175 -166
  63. package/dist/runtime.js.map +1 -1
  64. package/package.json +3 -3
  65. package/dist/source-reservation.d.ts +0 -6
  66. package/dist/source-reservation.d.ts.map +0 -1
  67. package/dist/source-reservation.js +0 -48
  68. package/dist/source-reservation.js.map +0 -1
  69. package/dist/transcript/budget.d.ts +0 -8
  70. package/dist/transcript/budget.d.ts.map +0 -1
  71. package/dist/transcript/budget.js +0 -9
  72. package/dist/transcript/budget.js.map +0 -1
  73. package/dist/transcript/completion.d.ts +0 -8
  74. package/dist/transcript/completion.d.ts.map +0 -1
  75. package/dist/transcript/completion.js +0 -57
  76. package/dist/transcript/completion.js.map +0 -1
  77. package/dist/transcript/cursor.d.ts.map +0 -1
  78. package/dist/transcript/cursor.js.map +0 -1
  79. package/dist/transcript/error.d.ts +0 -9
  80. package/dist/transcript/error.d.ts.map +0 -1
  81. package/dist/transcript/error.js +0 -9
  82. package/dist/transcript/error.js.map +0 -1
  83. package/dist/transcript/native-hash.d.ts.map +0 -1
  84. package/dist/transcript/native-hash.js.map +0 -1
  85. package/dist/transcript/opened-file.d.ts.map +0 -1
  86. package/dist/transcript/opened-file.js.map +0 -1
  87. package/dist/transcript/parallel-tools.d.ts +0 -6
  88. package/dist/transcript/parallel-tools.d.ts.map +0 -1
  89. package/dist/transcript/parallel-tools.js.map +0 -1
  90. package/dist/transcript/path.d.ts +0 -25
  91. package/dist/transcript/path.d.ts.map +0 -1
  92. package/dist/transcript/path.js.map +0 -1
  93. package/dist/transcript/reader.d.ts +0 -7
  94. package/dist/transcript/reader.d.ts.map +0 -1
  95. package/dist/transcript/reader.js.map +0 -1
  96. package/dist/transcript/rewrites.d.ts.map +0 -1
  97. package/dist/transcript/rewrites.js.map +0 -1
  98. /package/dist/{transcript → activity}/native-hash.d.ts +0 -0
  99. /package/dist/{transcript → activity}/native-hash.js +0 -0
  100. /package/dist/{transcript → activity}/parallel-tools.js +0 -0
  101. /package/dist/{transcript → activity}/rewrites.d.ts +0 -0
  102. /package/dist/{transcript → activity}/rewrites.js +0 -0
@@ -1,38 +1,45 @@
1
- import { budgetTranscriptTurns, isTranscriptTurnCount, readTranscriptBytesAt, renderTranscriptValue, } from '@excitedjs/dreamux-utils';
2
- import { hasAssistantWithoutHumanBoundary, hasCompletionEvidence, hasOpenTail, isHumanPrompt, } from './completion.js';
1
+ import { readBytesAt } from '@excitedjs/dreamux-utils';
3
2
  import { claudeQueryFingerprint, decodeClaudeCursor, digest, encodeClaudeCursor, } from './cursor.js';
4
- import { ClaudeTranscriptError } from './error.js';
5
- import { openClaudeTranscript, validateClaudeSessionEvidence, } from './opened-file.js';
3
+ import { ClaudeActivityError } from './error.js';
4
+ import { openClaudeRollout, validateClaudeSessionEvidence, } from './opened-file.js';
6
5
  import { recoverParallelToolBranches } from './parallel-tools.js';
7
- import { locateClaudeTranscript, } from './path.js';
6
+ import { locateClaudeHistory } from './path.js';
8
7
  import { applyNativeRewrites } from './rewrites.js';
8
+ /** Native read bounds. The provider enforces these and reports truncation. */
9
9
  const MAX_DECODED_BYTES = 8_388_608;
10
10
  const MAX_NATIVE_RECORDS = 20_000;
11
11
  const MAX_ELAPSED_MS = 2_000;
12
- export async function readClaudeTranscript(query, context, testHooks = {}) {
13
- if (!isTranscriptTurnCount(query.turns)) {
14
- throw new ClaudeTranscriptError('invalid', 'Claude Code transcript query turns must be an integer in 1..50');
15
- }
16
- const checkpoint = context.checkpoint;
17
- if (checkpoint === null) {
18
- throw new ClaudeTranscriptError('checkpoint_missing', 'Claude Code transcript is unavailable before a session is established');
19
- }
12
+ /** Page-size bounds. Core validates the returned page independently. */
13
+ const DEFAULT_RECORD_LIMIT = 50;
14
+ const MAX_RECORD_LIMIT = 200;
15
+ /**
16
+ * Read the recent tail of one Claude Code session's activity.
17
+ *
18
+ * The read works against an actively growing session and against the same
19
+ * session after its live runtime has closed: it discovers the native history
20
+ * from the session id and cwd alone, and never depends on a persisted native
21
+ * path. Projection is flat, so records appear without waiting for a turn to
22
+ * complete.
23
+ */
24
+ export async function readClaudeRecentActivity(query, context, testHooks = {}) {
25
+ const limit = resolveLimit(query.limit);
26
+ const sessionId = query.session.id;
20
27
  const includeTools = query.includeTools ?? true;
21
28
  const env = effectiveEnvironment(context);
22
- const located = await locateClaudeTranscript({
23
- sessionId: checkpoint.id,
29
+ const located = await locateClaudeHistory({
30
+ sessionId,
24
31
  cwd: context.cwd,
25
- locator: checkpoint.transcript_locator,
32
+ locator: null,
26
33
  env,
27
34
  });
28
35
  await testHooks.afterLocate?.();
29
- const opened = await openClaudeTranscript(located.path, located.root);
36
+ const opened = await openClaudeRollout(located.path, located.root);
30
37
  if (opened.dev !== located.dev || opened.ino !== located.ino) {
31
38
  await opened.handle.close();
32
- throw new ClaudeTranscriptError('unreadable', 'Claude Code transcript changed after validation');
39
+ throw new ClaudeActivityError('unreadable', 'Claude Code activity source changed after validation');
33
40
  }
34
41
  try {
35
- await validateClaudeSessionEvidence(opened, checkpoint.id, {
42
+ await validateClaudeSessionEvidence(opened, sessionId, {
36
43
  ...(testHooks.maxReadChunkBytes !== undefined
37
44
  ? { maxReadChunkBytes: testHooks.maxReadChunkBytes }
38
45
  : {}),
@@ -47,32 +54,17 @@ export async function readClaudeTranscript(query, context, testHooks = {}) {
47
54
  await verifyCursorBoundaryDigest(opened, cursor.pos, cursor.bd, testHooks.maxReadChunkBytes);
48
55
  }
49
56
  const window = await readWindow(opened, endOffset, testHooks.maxReadChunkBytes);
50
- const parsed = parseEntries(window.bytes, window.startOffset, checkpoint.id);
57
+ const parsed = parseEntries(window.bytes, window.startOffset, sessionId);
51
58
  const logical = applyNativeRewrites(parsed.entries);
52
59
  const chain = recoverParallelToolBranches(logical, buildSelectedChain(logical));
53
- const nativeTurns = groupTurns(chain, includeTools);
54
- const candidates = nativeTurns.slice(-query.turns).reverse();
55
- const openTailOnly = cursor === null &&
56
- candidates.length === 0 &&
57
- (!hasCompletionEvidence(chain) || hasOpenTail(chain));
58
- if (candidates.length === 0 &&
59
- !openTailOnly &&
60
- parsed.boundReached &&
61
- hasCompletionEvidence(chain) &&
62
- hasAssistantWithoutHumanBoundary(chain)) {
63
- throw new ClaudeTranscriptError('scan_unsupported', 'Claude Code completed turn exceeds the bounded scan limit');
64
- }
65
- const budgeted = budgetTranscriptTurns(candidates.map((candidate) => candidate.turn), context.outputBudgetBytes);
66
- const consumed = candidates.slice(0, budgeted.consumed);
67
- const hasOlder = !openTailOnly &&
68
- (consumed.at(-1)?.start ?? endOffset) > 0 &&
69
- (nativeTurns.length > consumed.length || parsed.boundReached);
70
- const boundary = consumed.at(-1) ??
71
- (hasOlder && candidates.length === 0 ? parsed.oldestProcessed : null);
72
- if (boundary !== null &&
73
- cursor !== null &&
74
- boundary.start >= cursor.pos) {
75
- throw new ClaudeTranscriptError('scan_unsupported', 'Claude Code transcript pagination cannot make safe progress');
60
+ const projected = projectActivity(chain, includeTools);
61
+ const consumed = projected.slice(-limit);
62
+ const anchor = consumed.at(0) ?? null;
63
+ const hasOlder = (anchor?.start ?? endOffset) > 0 &&
64
+ (projected.length > consumed.length || parsed.boundReached);
65
+ const boundary = anchor ?? (hasOlder ? parsed.oldestProcessed : null);
66
+ if (boundary !== null && cursor !== null && boundary.start >= cursor.pos) {
67
+ throw new ClaudeActivityError('scan_unsupported', 'Claude Code activity pagination cannot make safe progress');
76
68
  }
77
69
  const nextCursor = boundary !== null && hasOlder
78
70
  ? encodeClaudeCursor({
@@ -86,21 +78,29 @@ export async function readClaudeTranscript(query, context, testHooks = {}) {
86
78
  rewritePosition: rewriteEvidence.position,
87
79
  rewriteDigest: rewriteEvidence.digest,
88
80
  })
89
- : null;
81
+ : undefined;
90
82
  return {
91
- turns: [...budgeted.turnsNewestFirst].reverse(),
92
- nextCursor,
93
- truncated: budgeted.truncated,
83
+ records: consumed.map((entry) => entry.record),
84
+ ...(nextCursor !== undefined ? { nextCursor } : {}),
85
+ truncated: parsed.boundReached && projected.length < limit,
94
86
  };
95
87
  }
96
88
  finally {
97
89
  await opened.handle.close();
98
90
  }
99
91
  }
92
+ function resolveLimit(limit) {
93
+ if (limit === undefined)
94
+ return DEFAULT_RECORD_LIMIT;
95
+ if (!Number.isInteger(limit) || limit < 1 || limit > MAX_RECORD_LIMIT) {
96
+ throw new ClaudeActivityError('invalid', `Claude Code activity limit must be an integer in 1..${MAX_RECORD_LIMIT}`);
97
+ }
98
+ return limit;
99
+ }
100
100
  async function readWindow(opened, endOffset, maxReadChunkBytes) {
101
101
  const startOffset = Math.max(0, endOffset - MAX_DECODED_BYTES);
102
102
  const length = endOffset - startOffset;
103
- const bytes = await readTranscriptBytesAt(opened.handle, startOffset, length, {
103
+ const bytes = await readBytesAt(opened.handle, startOffset, length, {
104
104
  ...(maxReadChunkBytes !== undefined
105
105
  ? { maxChunkBytes: maxReadChunkBytes }
106
106
  : {}),
@@ -125,17 +125,17 @@ function parseEntries(bytes, baseOffset, sessionId) {
125
125
  const raw = bytes.subarray(lineStart, rawEnd).toString('utf8');
126
126
  const value = parseRecord(raw);
127
127
  if (value === null && raw.trim() !== '') {
128
- throw new ClaudeTranscriptError('invalid', 'Claude Code transcript contains an invalid native record');
128
+ throw new ClaudeActivityError('invalid', 'Claude Code activity contains an unreadable record');
129
129
  }
130
130
  if (value !== null) {
131
131
  const nativeSessionId = stringValue(value['sessionId']);
132
132
  if (nativeSessionId !== null) {
133
133
  if (sessionId !== null && nativeSessionId !== sessionId) {
134
- throw new ClaudeTranscriptError('session_mismatch', 'Claude Code transcript does not belong to the selected session');
134
+ throw new ClaudeActivityError('session_mismatch', 'Claude Code activity does not belong to the selected session');
135
135
  }
136
136
  }
137
137
  if (isProjectableRecord(value) && nativeSessionId === null) {
138
- throw new ClaudeTranscriptError('invalid', 'Claude Code conversation record has no native session id');
138
+ throw new ClaudeActivityError('invalid', 'Claude Code activity record has no native session id');
139
139
  }
140
140
  entriesNewestFirst.push({
141
141
  start: baseOffset + lineStart,
@@ -194,60 +194,35 @@ function buildSelectedChain(entries) {
194
194
  }
195
195
  return chain.reverse();
196
196
  }
197
- function groupTurns(chain, includeTools) {
198
- const turns = [];
199
- let current = [];
200
- for (const entry of chain) {
201
- if (isHumanPrompt(entry.value)) {
202
- commitCurrentTurn(turns, current, includeTools);
203
- current = [entry];
204
- }
205
- else if (current.length > 0) {
206
- current.push(entry);
207
- }
208
- }
209
- commitCurrentTurn(turns, current, includeTools);
210
- return turns;
211
- }
212
- function commitCurrentTurn(turns, entries, includeTools) {
213
- if (entries.length === 0 ||
214
- !hasCompletionEvidence(entries)) {
215
- return;
216
- }
217
- const blocks = [];
197
+ /**
198
+ * Project the selected native chain into chronological neutral records.
199
+ *
200
+ * Deliberately flat: no turn grouping and no completion-marker gate, so an
201
+ * in-progress turn yields records immediately. Only assistant text and tool
202
+ * name/status cross the seam — never tool inputs, tool results, or human
203
+ * prompts.
204
+ */
205
+ function projectActivity(chain, includeTools) {
206
+ const records = [];
218
207
  const tools = new Map();
219
- let startedAt = null;
220
- let endedAt = null;
221
- for (const entry of entries) {
222
- const timestamp = timestampMs(entry.value['timestamp']);
223
- startedAt ??= timestamp;
224
- endedAt = timestamp ?? endedAt;
208
+ for (const entry of chain) {
209
+ const occurredAt = timestampIso(entry.value['timestamp']);
225
210
  const type = entry.value['type'];
226
211
  const message = recordValue(entry.value['message']);
227
212
  const content = message?.['content'];
228
- if (type === 'user' && isHumanPrompt(entry.value)) {
229
- const text = visibleText(content, 'text');
230
- if (text !== '') {
231
- blocks.push({
232
- kind: 'message',
233
- role: 'user',
234
- text,
235
- truncated: false,
236
- });
237
- }
238
- }
239
- else if (type === 'assistant') {
213
+ if (type === 'assistant') {
240
214
  if (!Array.isArray(content))
241
215
  continue;
242
216
  const text = visibleText(content, 'text');
243
217
  if (text !== '') {
244
- blocks.push({
245
- kind: 'message',
246
- role: 'assistant',
218
+ records.push(positioned(entry, {
219
+ kind: 'assistant_message',
247
220
  text,
248
- truncated: false,
249
- });
221
+ ...(occurredAt !== null ? { occurredAt } : {}),
222
+ }));
250
223
  }
224
+ if (!includeTools)
225
+ continue;
251
226
  for (const nativeBlock of content) {
252
227
  const block = recordValue(nativeBlock);
253
228
  if (block?.['type'] !== 'tool_use')
@@ -256,73 +231,67 @@ function commitCurrentTurn(turns, entries, includeTools) {
256
231
  const name = stringValue(block['name']);
257
232
  if (id === null || name === null)
258
233
  continue;
259
- const publicIndex = includeTools ? blocks.length : -1;
260
- tools.set(id, {
261
- index: publicIndex,
234
+ const record = positioned(entry, {
235
+ kind: 'tool',
262
236
  name,
263
- input: renderTranscriptValue(block['input']),
264
- output: null,
265
- status: 'error',
237
+ status: 'started',
238
+ ...(occurredAt !== null ? { occurredAt } : {}),
266
239
  });
267
- if (includeTools) {
268
- blocks.push({
269
- kind: 'tool',
270
- name,
271
- input: renderTranscriptValue(block['input']),
272
- output: null,
273
- status: 'error',
274
- inputTruncated: false,
275
- outputTruncated: false,
276
- });
277
- }
240
+ tools.set(id, record);
241
+ records.push(record);
278
242
  }
243
+ continue;
279
244
  }
280
- else if (type === 'user' && Array.isArray(content)) {
281
- for (const nativeBlock of content) {
282
- const block = recordValue(nativeBlock);
283
- if (block?.['type'] !== 'tool_result')
284
- continue;
285
- const toolUseId = stringValue(block['tool_use_id']);
286
- if (toolUseId === null)
287
- continue;
288
- const tool = tools.get(toolUseId);
289
- if (tool === undefined)
290
- continue;
291
- tool.output = renderToolResult(block['content']);
292
- tool.status = block['is_error'] === true ? 'error' : 'ok';
293
- if (includeTools) {
294
- const publicBlock = blocks[tool.index];
295
- if (publicBlock?.kind === 'tool') {
296
- publicBlock.output = tool.output;
297
- publicBlock.status = tool.status;
298
- }
299
- }
300
- }
245
+ if (type !== 'user' || !Array.isArray(content) || !includeTools)
246
+ continue;
247
+ for (const nativeBlock of content) {
248
+ const block = recordValue(nativeBlock);
249
+ if (block?.['type'] !== 'tool_result')
250
+ continue;
251
+ const toolUseId = stringValue(block['tool_use_id']);
252
+ if (toolUseId === null)
253
+ continue;
254
+ const tool = tools.get(toolUseId);
255
+ // A result whose call fell outside this window has no record to settle;
256
+ // the call keeps its own 'started' record on the page that holds it.
257
+ if (tool === undefined || tool.record.kind !== 'tool')
258
+ continue;
259
+ tool.record = {
260
+ kind: 'tool',
261
+ name: tool.record.name,
262
+ status: block['is_error'] === true ? 'failed' : 'completed',
263
+ ...(tool.record.occurredAt !== undefined
264
+ ? { occurredAt: tool.record.occurredAt }
265
+ : {}),
266
+ };
301
267
  }
302
268
  }
303
- turns.push({
304
- start: entries[0].start,
305
- boundaryDigest: digest(entries[0].boundaryBytes),
306
- turn: { startedAt, endedAt, blocks },
307
- });
269
+ return records;
270
+ }
271
+ function positioned(entry, record) {
272
+ return {
273
+ start: entry.start,
274
+ boundaryDigest: digest(entry.boundaryBytes),
275
+ record,
276
+ };
308
277
  }
309
278
  async function verifyCursorBoundaryDigest(opened, position, expected, maxReadChunkBytes) {
310
279
  const length = Math.min(MAX_DECODED_BYTES, Math.max(0, opened.size - position));
311
- const bytes = await readTranscriptBytesAt(opened.handle, position, length, {
280
+ const bytes = await readBytesAt(opened.handle, position, length, {
312
281
  ...(maxReadChunkBytes !== undefined
313
282
  ? { maxChunkBytes: maxReadChunkBytes }
314
283
  : {}),
315
284
  });
316
285
  const newline = bytes.indexOf(0x0a, 0);
317
286
  if (bytes.length === 0) {
318
- throw new ClaudeTranscriptError('cursor_stale', 'Claude Code transcript cursor is stale');
287
+ throw new ClaudeActivityError('cursor_stale', 'Claude Code activity cursor is no longer valid');
319
288
  }
320
289
  if (newline < 0) {
321
- throw new ClaudeTranscriptError('scan_unsupported', 'Claude Code cursor boundary record exceeds the bounded scan limit');
290
+ throw new ClaudeActivityError('scan_unsupported', 'Claude Code activity cursor boundary exceeds the bounded limit');
322
291
  }
323
292
  const boundaryBytes = bytes.subarray(0, newline + 1);
324
293
  if (digest(boundaryBytes) !== expected) {
325
- throw new ClaudeTranscriptError('cursor_stale', 'Claude Code transcript cursor is stale');
294
+ throw new ClaudeActivityError('cursor_stale', 'Claude Code activity cursor is no longer valid');
326
295
  }
327
296
  }
328
297
  function isConversationParticipant(value) {
@@ -350,17 +319,17 @@ async function verifyRewriteEvidence(opened, cursor, maxReadChunkBytes) {
350
319
  position: cursor.rp,
351
320
  digest: cursor.rd,
352
321
  })) {
353
- throw new ClaudeTranscriptError('cursor_stale', 'Claude Code transcript cursor is stale');
322
+ throw new ClaudeActivityError('cursor_stale', 'Claude Code activity cursor is no longer valid');
354
323
  }
355
324
  if (cursor.rw > opened.size) {
356
- throw new ClaudeTranscriptError('cursor_stale', 'Claude Code transcript cursor is stale');
325
+ throw new ClaudeActivityError('cursor_stale', 'Claude Code activity cursor is no longer valid');
357
326
  }
358
327
  if (cursor.rp !== null && cursor.rd !== null) {
359
328
  await verifyCursorBoundaryDigest(opened, cursor.rp, cursor.rd, maxReadChunkBytes);
360
329
  }
361
330
  const appended = await scanRewriteEvidence(opened, cursor.rw, opened.size, true, maxReadChunkBytes);
362
331
  if (appended.position !== null) {
363
- throw new ClaudeTranscriptError('cursor_stale', 'Claude Code transcript cursor is stale');
332
+ throw new ClaudeActivityError('cursor_stale', 'Claude Code activity cursor is no longer valid');
364
333
  }
365
334
  return {
366
335
  watermark: appended.watermark,
@@ -371,9 +340,9 @@ async function verifyRewriteEvidence(opened, cursor, maxReadChunkBytes) {
371
340
  async function scanRewriteEvidence(opened, start, end, startsAtBoundary, maxReadChunkBytes) {
372
341
  const length = end - start;
373
342
  if (length > MAX_DECODED_BYTES) {
374
- throw new ClaudeTranscriptError('scan_unsupported', 'Claude Code rewrite interval exceeds the bounded scan limit');
343
+ throw new ClaudeActivityError('scan_unsupported', 'Claude Code activity interval exceeds the bounded limit');
375
344
  }
376
- const data = await readTranscriptBytesAt(opened.handle, start, length, {
345
+ const data = await readBytesAt(opened.handle, start, length, {
377
346
  ...(maxReadChunkBytes !== undefined
378
347
  ? { maxChunkBytes: maxReadChunkBytes }
379
348
  : {}),
@@ -384,7 +353,7 @@ async function scanRewriteEvidence(opened, start, end, startsAtBoundary, maxRead
384
353
  ? 0
385
354
  : data.indexOf(0x0a) + 1;
386
355
  if (cursor === 0 && !startsAtBoundary && data.length > 0) {
387
- throw new ClaudeTranscriptError('scan_unsupported', 'Claude Code rewrite scan cannot find a bounded record boundary');
356
+ throw new ClaudeActivityError('scan_unsupported', 'Claude Code activity cannot find a bounded record boundary');
388
357
  }
389
358
  while (cursor < data.length) {
390
359
  const newline = data.indexOf(0x0a, cursor);
@@ -393,7 +362,7 @@ async function scanRewriteEvidence(opened, start, end, startsAtBoundary, maxRead
393
362
  const raw = data.subarray(cursor, newline).toString('utf8');
394
363
  const value = parseRecord(raw);
395
364
  if (value === null && raw.trim() !== '') {
396
- throw new ClaudeTranscriptError('invalid', 'Claude Code transcript contains an invalid native record');
365
+ throw new ClaudeActivityError('invalid', 'Claude Code activity contains an unreadable record');
397
366
  }
398
367
  if (value !== null && isRewriteRecord(value)) {
399
368
  position = start + cursor;
@@ -434,16 +403,6 @@ function visibleText(value, type) {
434
403
  })
435
404
  .join('');
436
405
  }
437
- function renderToolResult(value) {
438
- if (typeof value === 'string')
439
- return value;
440
- if (Array.isArray(value)) {
441
- const text = visibleText(value, 'text');
442
- if (text !== '')
443
- return text;
444
- }
445
- return renderTranscriptValue(value);
446
- }
447
406
  function parseRecord(raw) {
448
407
  try {
449
408
  return recordValue(JSON.parse(raw));
@@ -459,11 +418,11 @@ function effectiveEnvironment(context) {
459
418
  ...context.config.extra_env,
460
419
  };
461
420
  }
462
- function timestampMs(value) {
421
+ function timestampIso(value) {
463
422
  if (typeof value !== 'string')
464
423
  return null;
465
424
  const parsed = Date.parse(value);
466
- return Number.isNaN(parsed) ? null : parsed;
425
+ return Number.isNaN(parsed) ? null : new Date(parsed).toISOString();
467
426
  }
468
427
  function recordValue(value) {
469
428
  return value !== null && typeof value === 'object' && !Array.isArray(value)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/activity/reader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rewrites.d.ts","sourceRoot":"","sources":["../../src/activity/rewrites.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,SAAS,kBAAkB,EACnE,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,MAAM,EAAE,CAqDV"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rewrites.js","sourceRoot":"","sources":["../../src/activity/rewrites.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Native admission classification for the Claude Code stream-json child.
3
+ */
4
+ import type { RuntimeAdmission } from '@excitedjs/dreamux-types';
5
+ export declare function asError(error: unknown): Error;
6
+ export declare function classifySteerFailure(error: unknown, stopped: boolean): RuntimeAdmission;
7
+ //# sourceMappingURL=admission-classify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admission-classify.d.ts","sourceRoot":"","sources":["../src/admission-classify.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAE7C;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,GACf,gBAAgB,CASlB"}
@@ -0,0 +1,17 @@
1
+ import { ClaudeSteerAdmissionError } from './rpc.js';
2
+ export function asError(error) {
3
+ return error instanceof Error ? error : new Error(String(error));
4
+ }
5
+ export function classifySteerFailure(error, stopped) {
6
+ if (error instanceof ClaudeSteerAdmissionError) {
7
+ if (error.admission === 'ambiguous') {
8
+ return { status: 'ambiguous', error };
9
+ }
10
+ if (!stopped)
11
+ return { status: 'failed', error };
12
+ }
13
+ if (stopped)
14
+ return { status: 'stopped' };
15
+ return { status: 'ambiguous', error: asError(error) };
16
+ }
17
+ //# sourceMappingURL=admission-classify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admission-classify.js","sourceRoot":"","sources":["../src/admission-classify.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAErD,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAAc,EACd,OAAgB;IAEhB,IAAI,KAAK,YAAY,yBAAyB,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,OAAO;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC1C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AACxD,CAAC"}
@@ -6,7 +6,7 @@
6
6
  * only declares its bin check; the internal diagnostic is a neutral pass. Runs
7
7
  * entirely against the neutral `@excitedjs/dreamux-types` diagnostic context.
8
8
  */
9
- import type { AgentRuntimeDiagnostic } from '@excitedjs/dreamux-types';
9
+ import type { AgentRuntimeDiagnosticCapability } from '@excitedjs/dreamux-types';
10
10
  import { type DispatcherClaudeCodeConfig } from './config.js';
11
- export declare const claudeCodeAgentRuntimeDiagnostic: AgentRuntimeDiagnostic<DispatcherClaudeCodeConfig>;
11
+ export declare const claudeCodeAgentRuntimeDiagnostic: AgentRuntimeDiagnosticCapability<DispatcherClaudeCodeConfig>;
12
12
  //# sourceMappingURL=diagnostic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAEV,sBAAsB,EAGvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,KAAK,0BAA0B,EAEhC,MAAM,aAAa,CAAC;AAWrB,eAAO,MAAM,gCAAgC,EAAE,sBAAsB,CAAC,0BAA0B,CAkB7F,CAAC"}
1
+ {"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAEV,gCAAgC,EAGjC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,KAAK,0BAA0B,EAEhC,MAAM,aAAa,CAAC;AAWrB,eAAO,MAAM,gCAAgC,EAAE,gCAAgC,CAAC,0BAA0B,CAkBvG,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,8 +4,7 @@
4
4
  * `@excitedjs/dreamux-types` `AgentRuntimeProvider` contract; never imports
5
5
  * `@excitedjs/dreamux` core.
6
6
  */
7
- export { default, createClaudeCodeAgentRuntimeProvider, dispatcherClaudeCodeConfig, CLAUDE_CODE_AGENT_RUNTIME_CAPABILITIES, type ClaudeCodeAgentRuntimeProviderOptions, type ClaudeCodeProviderFactoryContext, } from './provider.js';
8
- export { ClaudeCodeRuntime, } from './runtime.js';
7
+ export { default, createClaudeCodeAgentRuntimeProvider, dispatcherClaudeCodeConfig, CLAUDE_CODE_AGENT_RUNTIME_CAPABILITIES, type ClaudeCodeAgentRuntimeProviderOptions, } from './provider.js';
9
8
  export type { ClaudeCodeRuntimeDeps } from './runtime-deps.js';
10
9
  export { createDefaultClaudeCodeSession, type ClaudeCodeSession, type ClaudeCodeSessionFactory, type ClaudeCodeSessionSpec, type TurnOutcome, type TurnSubmitOptions, } from './supervisor.js';
11
10
  export { ClaudeCodeStreamRpc, type ClaudeCodeStreamRpcOptions, } from './rpc.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,OAAO,EACP,oCAAoC,EACpC,0BAA0B,EAC1B,sCAAsC,EACtC,KAAK,qCAAqC,EAC1C,KAAK,gCAAgC,GACtC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EACL,8BAA8B,EAC9B,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,UAAU,EACV,UAAU,EACV,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,2BAA2B,GACjC,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,KAAK,0BAA0B,EAC/B,8BAA8B,EAC9B,iCAAiC,EACjC,uBAAuB,EACvB,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,OAAO,EACP,oCAAoC,EACpC,0BAA0B,EAC1B,sCAAsC,EACtC,KAAK,qCAAqC,GAC3C,MAAM,eAAe,CAAC;AAMvB,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EACL,8BAA8B,EAC9B,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,UAAU,EACV,UAAU,EACV,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,2BAA2B,GACjC,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,KAAK,0BAA0B,EAC/B,8BAA8B,EAC9B,iCAAiC,EACjC,uBAAuB,EACvB,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -5,7 +5,6 @@
5
5
  * `@excitedjs/dreamux` core.
6
6
  */
7
7
  export { default, createClaudeCodeAgentRuntimeProvider, dispatcherClaudeCodeConfig, CLAUDE_CODE_AGENT_RUNTIME_CAPABILITIES, } from './provider.js';
8
- export { ClaudeCodeRuntime, } from './runtime.js';
9
8
  export { createDefaultClaudeCodeSession, } from './supervisor.js';
10
9
  export { ClaudeCodeStreamRpc, } from './rpc.js';
11
10
  export { LineBuffer, TurnAggregator, assistantText, parseLine, buildUserMessage, buildRemoteControlEnable, buildCanUseToolAllow, buildControlAck, } from './stream.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,OAAO,EACP,oCAAoC,EACpC,0BAA0B,EAC1B,sCAAsC,GAGvC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,8BAA8B,GAM/B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,GAEpB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,GAChB,MAAM,aAAa,CAAC;AAQrB,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAE7B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAE1B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAEL,8BAA8B,EAC9B,iCAAiC,EACjC,uBAAuB,EACvB,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AAErE,qFAAqF;AACrF,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,OAAO,EACP,oCAAoC,EACpC,0BAA0B,EAC1B,sCAAsC,GAEvC,MAAM,eAAe,CAAC;AAQvB,OAAO,EACL,8BAA8B,GAM/B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,GAEpB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,GAChB,MAAM,aAAa,CAAC;AAQrB,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAE7B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAE1B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAEL,8BAA8B,EAC9B,iCAAiC,EACjC,uBAAuB,EACvB,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AAErE,qFAAqF;AACrF,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC"}
@@ -10,6 +10,7 @@ export interface ClaudeCodeMcpConfig {
10
10
  mcpServers: Record<string, {
11
11
  command: string;
12
12
  args: string[];
13
+ env?: Record<string, string>;
13
14
  }>;
14
15
  }
15
16
  /** Translate Dreamux MCP descriptors into Claude Code's MCP config document. */
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../src/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACjE;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,qBAAqB,EAAE,GACxC,mBAAmB,CASrB;AAED,+DAA+D;AAC/D,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,SAAS,qBAAqB,EAAE,GACxC,MAAM,CAER"}
1
+ {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../src/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAChB,MAAM,EACN;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAClE,CAAC;CACH;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,qBAAqB,EAAE,GACxC,mBAAmB,CAcrB;AAED,+DAA+D;AAC/D,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,SAAS,qBAAqB,EAAE,GACxC,MAAM,CAER"}
@@ -11,6 +11,11 @@ export function claudeCodeMcpConfig(servers) {
11
11
  mcpServers[server.name] = {
12
12
  command: server.command,
13
13
  args: [...server.args],
14
+ // Carried, never dropped: a descriptor's `env` holds what its server needs
15
+ // to start. It is not kept secret by being here — this document is passed
16
+ // inline on Claude Code's own command line — so the host does not treat
17
+ // `env` as a secrecy boundary.
18
+ ...(server.env !== undefined ? { env: { ...server.env } } : {}),
14
19
  };
15
20
  }
16
21
  return { mcpServers };
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../src/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,gFAAgF;AAChF,MAAM,UAAU,mBAAmB,CACjC,OAAyC;IAEzC,MAAM,UAAU,GAAsC,EAAE,CAAC;IACzD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;YACxB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;SACvB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,4BAA4B,CAC1C,OAAyC;IAEzC,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../src/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,gFAAgF;AAChF,MAAM,UAAU,mBAAmB,CACjC,OAAyC;IAEzC,MAAM,UAAU,GAAsC,EAAE,CAAC;IACzD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;YACxB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACtB,2EAA2E;YAC3E,0EAA0E;YAC1E,wEAAwE;YACxE,+BAA+B;YAC/B,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,4BAA4B,CAC1C,OAAyC;IAEzC,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,CAAC"}