@bolt-foundry/gambit-core 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +228 -0
  2. package/cards/context.card.md +9 -0
  3. package/cards/end.card.md +10 -0
  4. package/cards/respond.card.md +10 -0
  5. package/esm/_dnt.polyfills.d.ts +99 -0
  6. package/esm/_dnt.polyfills.d.ts.map +1 -1
  7. package/esm/_dnt.polyfills.js +127 -1
  8. package/esm/deps/jsr.io/@std/path/1.1.4/constants.d.ts +1 -1
  9. package/esm/mod.d.ts +26 -2
  10. package/esm/mod.d.ts.map +1 -1
  11. package/esm/mod.js +0 -2
  12. package/esm/src/builtins.d.ts +3 -0
  13. package/esm/src/builtins.d.ts.map +1 -0
  14. package/esm/src/builtins.js +26 -0
  15. package/esm/src/loader.d.ts.map +1 -1
  16. package/esm/src/loader.js +6 -3
  17. package/esm/src/markdown.d.ts.map +1 -1
  18. package/esm/src/markdown.js +25 -4
  19. package/esm/src/openai_compat.d.ts.map +1 -1
  20. package/esm/src/openai_compat.js +92 -25
  21. package/esm/src/openresponses.d.ts +6 -0
  22. package/esm/src/openresponses.d.ts.map +1 -0
  23. package/esm/src/openresponses.js +75 -0
  24. package/esm/src/runtime.d.ts.map +1 -1
  25. package/esm/src/runtime.js +139 -35
  26. package/esm/src/state.d.ts +4 -3
  27. package/esm/src/state.d.ts.map +1 -1
  28. package/esm/src/types.d.ts +306 -33
  29. package/esm/src/types.d.ts.map +1 -1
  30. package/package.json +1 -2
  31. package/schemas/graders/contexts/conversation.ts +17 -0
  32. package/schemas/graders/contexts/turn.ts +10 -0
  33. package/schemas/graders/respond.ts +9 -0
  34. package/script/_dnt.polyfills.d.ts +99 -0
  35. package/script/_dnt.polyfills.d.ts.map +1 -1
  36. package/script/_dnt.polyfills.js +128 -0
  37. package/script/deps/jsr.io/@std/path/1.1.4/constants.d.ts +1 -1
  38. package/script/mod.d.ts +26 -2
  39. package/script/mod.d.ts.map +1 -1
  40. package/script/mod.js +1 -4
  41. package/script/src/builtins.d.ts +3 -0
  42. package/script/src/builtins.d.ts.map +1 -0
  43. package/script/src/builtins.js +63 -0
  44. package/script/src/loader.d.ts.map +1 -1
  45. package/script/src/loader.js +6 -3
  46. package/script/src/markdown.d.ts.map +1 -1
  47. package/script/src/markdown.js +25 -4
  48. package/script/src/openai_compat.d.ts.map +1 -1
  49. package/script/src/openai_compat.js +92 -25
  50. package/script/src/openresponses.d.ts +6 -0
  51. package/script/src/openresponses.d.ts.map +1 -0
  52. package/script/src/openresponses.js +81 -0
  53. package/script/src/runtime.d.ts.map +1 -1
  54. package/script/src/runtime.js +139 -35
  55. package/script/src/state.d.ts +4 -3
  56. package/script/src/state.d.ts.map +1 -1
  57. package/script/src/types.d.ts +306 -33
  58. package/script/src/types.d.ts.map +1 -1
  59. package/esm/src/providers/openrouter.d.ts +0 -8
  60. package/esm/src/providers/openrouter.d.ts.map +0 -1
  61. package/esm/src/providers/openrouter.js +0 -168
  62. package/script/src/providers/openrouter.d.ts +0 -8
  63. package/script/src/providers/openrouter.d.ts.map +0 -1
  64. package/script/src/providers/openrouter.js +0 -207
@@ -156,7 +156,8 @@ function extractInitInput(state) {
156
156
  return undefined;
157
157
  for (let i = state.messages.length - 1; i >= 0; i--) {
158
158
  const msg = state.messages[i];
159
- if (msg.role === "tool" && msg.name === GAMBIT_TOOL_INIT) {
159
+ if (msg.type === "message" && msg.role === "tool" &&
160
+ msg.name === GAMBIT_TOOL_INIT) {
160
161
  const content = msg.content;
161
162
  if (typeof content !== "string")
162
163
  return undefined;
@@ -280,7 +281,10 @@ async function runLlmDeck(ctx) {
280
281
  const systemPrompt = buildSystemPrompt(deck);
281
282
  const refToolCallId = randomId("call");
282
283
  const messages = ctx.state?.messages
283
- ? ctx.state.messages.map(sanitizeMessage)
284
+ ? ctx.state.messages
285
+ .map(coerceToMessageItem)
286
+ .filter((item) => item !== null)
287
+ .map(sanitizeMessageItem)
284
288
  : [];
285
289
  const resumed = messages.length > 0;
286
290
  const sendInit = Boolean(inputProvided) && input !== undefined && !resumed;
@@ -297,7 +301,7 @@ async function runLlmDeck(ctx) {
297
301
  trace: ctx.trace,
298
302
  stream: ctx.stream,
299
303
  onStreamText: ctx.onStreamText,
300
- pushMessages: (msgs) => messages.push(...msgs.map(sanitizeMessage)),
304
+ pushMessages: (msgs) => messages.push(...msgs.map(sanitizeMessageItem)),
301
305
  });
302
306
  let streamingBuffer = "";
303
307
  let streamingCommitted = false;
@@ -309,7 +313,11 @@ async function runLlmDeck(ctx) {
309
313
  ctx.onStreamText?.(chunk);
310
314
  };
311
315
  if (!resumed) {
312
- messages.push(sanitizeMessage({ role: "system", content: systemPrompt }));
316
+ messages.push(sanitizeMessageItem({
317
+ type: "message",
318
+ role: "system",
319
+ content: systemPrompt,
320
+ }));
313
321
  if (sendInit) {
314
322
  ctx.trace?.({
315
323
  type: "tool.call",
@@ -319,7 +327,8 @@ async function runLlmDeck(ctx) {
319
327
  args: {},
320
328
  parentActionCallId: actionCallId,
321
329
  });
322
- messages.push(sanitizeMessage({
330
+ messages.push(sanitizeMessageItem({
331
+ type: "message",
323
332
  role: "assistant",
324
333
  content: null,
325
334
  tool_calls: [{
@@ -330,7 +339,8 @@ async function runLlmDeck(ctx) {
330
339
  arguments: "{}",
331
340
  },
332
341
  }],
333
- }), sanitizeMessage({
342
+ }), sanitizeMessageItem({
343
+ type: "message",
334
344
  role: "tool",
335
345
  name: GAMBIT_TOOL_INIT,
336
346
  tool_call_id: refToolCallId,
@@ -347,7 +357,8 @@ async function runLlmDeck(ctx) {
347
357
  }
348
358
  }
349
359
  if (initialUserMessage !== undefined) {
350
- const userMessage = sanitizeMessage({
360
+ const userMessage = sanitizeMessageItem({
361
+ type: "message",
351
362
  role: "user",
352
363
  content: formatInputForUser(initialUserMessage),
353
364
  });
@@ -395,44 +406,65 @@ async function runLlmDeck(ctx) {
395
406
  stream: ctx.stream,
396
407
  messageCount: messages.length,
397
408
  toolCount: tools.length,
398
- messages: messages.map(sanitizeMessage),
409
+ messages: messages.map(sanitizeMessageItem),
399
410
  tools,
400
411
  stateMessages,
401
412
  parentActionCallId: ctx.parentActionCallId,
402
413
  });
403
- const result = await modelProvider.chat({
414
+ const result = await modelProvider.responses({
404
415
  model,
405
- messages,
416
+ input: messages,
406
417
  tools,
407
418
  stream: ctx.stream,
408
419
  state: ctx.state,
409
420
  params: toProviderParams(deck.modelParams),
410
- onStreamText: (ctx.onStreamText || deck.handlers?.onIdle)
411
- ? wrappedOnStreamText
421
+ onStreamEvent: (ctx.onStreamText || deck.handlers?.onIdle)
422
+ ? (event) => {
423
+ switch (event.type) {
424
+ case "response.output_text.delta":
425
+ wrappedOnStreamText(event.delta);
426
+ break;
427
+ case "response.refusal.delta":
428
+ if (event.delta)
429
+ wrappedOnStreamText(event.delta);
430
+ break;
431
+ case "response.refusal.done":
432
+ if (event.refusal)
433
+ wrappedOnStreamText(event.refusal);
434
+ break;
435
+ default:
436
+ break;
437
+ }
438
+ }
412
439
  : undefined,
413
440
  });
414
441
  idleController.touch();
415
- const message = result.message;
442
+ const message = messageItemFromResponse(result.output);
443
+ const toolCalls = extractToolCalls(result.output, message);
416
444
  ctx.trace?.({
417
445
  type: "model.result",
418
446
  runId,
419
447
  actionCallId,
420
448
  deckPath: deck.path,
421
449
  model,
422
- finishReason: result.finishReason,
423
- message: sanitizeMessage(message),
424
- toolCalls: result.toolCalls,
450
+ finishReason: result.finishReason ?? "stop",
451
+ message: sanitizeMessageItem(message),
452
+ toolCalls,
425
453
  stateMessages: result.updatedState?.messages?.length,
426
454
  parentActionCallId: ctx.parentActionCallId,
427
455
  });
428
456
  const computeState = (updated) => {
429
457
  const base = updated ??
430
- { runId, messages: messages.map(sanitizeMessage) };
458
+ { runId, messages: messages.map(sanitizeMessageItem) };
431
459
  const mergedMessages = base.messages && base.messages.length > 0
432
- ? base.messages.map(sanitizeMessage)
433
- : messages.map(sanitizeMessage);
460
+ ? sanitizeResponseItems(base.messages)
461
+ : messages.map(sanitizeMessageItem);
434
462
  const priorRefs = updated?.messageRefs ?? ctx.state?.messageRefs ?? [];
435
- const messageRefs = mergedMessages.map((m, idx) => priorRefs[idx] ?? { id: randomId("msg"), role: m.role });
463
+ const messageRefs = mergedMessages.map((m, idx) => priorRefs[idx] ?? {
464
+ id: randomId("msg"),
465
+ type: m.type,
466
+ role: m.type === "message" ? m.role : undefined,
467
+ });
436
468
  const feedback = updated?.feedback ?? ctx.state?.feedback;
437
469
  const traces = updated?.traces ?? ctx.state?.traces;
438
470
  return {
@@ -444,16 +476,20 @@ async function runLlmDeck(ctx) {
444
476
  traces,
445
477
  };
446
478
  };
447
- if (result.toolCalls && result.toolCalls.length > 0) {
479
+ if (toolCalls && toolCalls.length > 0) {
448
480
  let responded = false;
449
481
  let respondValue;
450
482
  let endSignal;
451
483
  const appendedMessages = [];
452
484
  if (!streamingCommitted && streamingBuffer) {
453
- messages.push(sanitizeMessage({ role: "assistant", content: streamingBuffer }));
485
+ messages.push(sanitizeMessageItem({
486
+ type: "message",
487
+ role: "assistant",
488
+ content: streamingBuffer,
489
+ }));
454
490
  streamingCommitted = true;
455
491
  }
456
- for (const call of result.toolCalls) {
492
+ for (const call of toolCalls) {
457
493
  if (respondEnabled && call.name === GAMBIT_TOOL_RESPOND) {
458
494
  const status = typeof call.args?.status === "number"
459
495
  ? call.args.status
@@ -492,6 +528,7 @@ async function runLlmDeck(ctx) {
492
528
  });
493
529
  const toolContent = JSON.stringify(call.args ?? {});
494
530
  appendedMessages.push({
531
+ type: "message",
495
532
  role: "assistant",
496
533
  content: null,
497
534
  tool_calls: [{
@@ -504,6 +541,7 @@ async function runLlmDeck(ctx) {
504
541
  }],
505
542
  });
506
543
  appendedMessages.push({
544
+ type: "message",
507
545
  role: "tool",
508
546
  tool_call_id: call.id,
509
547
  name: call.name,
@@ -547,6 +585,7 @@ async function runLlmDeck(ctx) {
547
585
  });
548
586
  const toolContent = JSON.stringify(call.args ?? {});
549
587
  appendedMessages.push({
588
+ type: "message",
550
589
  role: "assistant",
551
590
  content: null,
552
591
  tool_calls: [{
@@ -559,6 +598,7 @@ async function runLlmDeck(ctx) {
559
598
  }],
560
599
  });
561
600
  appendedMessages.push({
601
+ type: "message",
562
602
  role: "tool",
563
603
  tool_call_id: call.id,
564
604
  name: call.name,
@@ -628,6 +668,7 @@ async function runLlmDeck(ctx) {
628
668
  parentActionCallId: actionCallId,
629
669
  });
630
670
  appendedMessages.push({
671
+ type: "message",
631
672
  role: "assistant",
632
673
  content: null,
633
674
  tool_calls: [{
@@ -640,13 +681,16 @@ async function runLlmDeck(ctx) {
640
681
  }],
641
682
  });
642
683
  appendedMessages.push({
684
+ type: "message",
643
685
  role: "tool",
644
686
  tool_call_id: call.id,
645
687
  name: call.name,
646
688
  content: toolResult.toolContent,
647
689
  });
648
690
  if (toolResult.extraMessages?.length) {
649
- appendedMessages.push(...toolResult.extraMessages);
691
+ appendedMessages.push(...toolResult.extraMessages
692
+ .map(coerceToMessageItem)
693
+ .filter((item) => item !== null));
650
694
  }
651
695
  ctx.trace?.({
652
696
  type: "action.end",
@@ -658,7 +702,7 @@ async function runLlmDeck(ctx) {
658
702
  });
659
703
  }
660
704
  if (appendedMessages.length) {
661
- messages.push(...appendedMessages.map(sanitizeMessage));
705
+ messages.push(...appendedMessages.map(sanitizeMessageItem));
662
706
  idleController.touch();
663
707
  }
664
708
  if (ctx.onStateUpdate) {
@@ -695,13 +739,13 @@ async function runLlmDeck(ctx) {
695
739
  throw new Error("Model stopped early (length) with no content");
696
740
  }
697
741
  if (message.content !== null && message.content !== undefined) {
698
- messages.push(sanitizeMessage(message));
742
+ messages.push(sanitizeMessageItem(message));
699
743
  if (ctx.onStateUpdate) {
700
744
  const state = computeState(result.updatedState);
701
745
  ctx.onStateUpdate(state);
702
746
  }
703
747
  if (ctx.parentActionCallId !== undefined &&
704
- (!result.toolCalls || result.toolCalls.length === 0)) {
748
+ (!toolCalls || toolCalls.length === 0)) {
705
749
  ctx.trace?.({
706
750
  type: "monolog",
707
751
  runId,
@@ -828,7 +872,7 @@ async function handleToolCall(call, ctx) {
828
872
  initialUserMessage: undefined,
829
873
  });
830
874
  if (envelope.length) {
831
- extraMessages.push(...envelope.map(sanitizeMessage));
875
+ extraMessages.push(...envelope.map(sanitizeMessageItem));
832
876
  }
833
877
  ctx.idle?.touch();
834
878
  }
@@ -907,7 +951,7 @@ async function handleToolCall(call, ctx) {
907
951
  initialUserMessage: undefined,
908
952
  });
909
953
  if (envelope.length) {
910
- extraMessages.push(...envelope.map(sanitizeMessage));
954
+ extraMessages.push(...envelope.map(sanitizeMessageItem));
911
955
  }
912
956
  ctx.idle?.touch();
913
957
  }
@@ -918,6 +962,7 @@ async function handleToolCall(call, ctx) {
918
962
  }
919
963
  const completeEventId = randomId("event");
920
964
  extraMessages.push({
965
+ type: "message",
921
966
  role: "assistant",
922
967
  content: null,
923
968
  tool_calls: [{
@@ -929,6 +974,7 @@ async function handleToolCall(call, ctx) {
929
974
  },
930
975
  }],
931
976
  }, {
977
+ type: "message",
932
978
  role: "tool",
933
979
  tool_call_id: completeEventId,
934
980
  name: GAMBIT_TOOL_COMPLETE,
@@ -1003,6 +1049,7 @@ async function runBusyHandler(args) {
1003
1049
  logger.log(message);
1004
1050
  }
1005
1051
  return [{
1052
+ type: "message",
1006
1053
  role: "assistant",
1007
1054
  content: `${message} (elapsed ${elapsedMs}ms)`,
1008
1055
  }];
@@ -1057,8 +1104,9 @@ function createIdleController(args) {
1057
1104
  stream: args.stream,
1058
1105
  onStreamText: args.onStreamText,
1059
1106
  });
1060
- if (envelope.length)
1061
- args.pushMessages(envelope.map(sanitizeMessage));
1107
+ if (envelope.length) {
1108
+ args.pushMessages(envelope.map(sanitizeMessageItem));
1109
+ }
1062
1110
  }
1063
1111
  catch {
1064
1112
  // ignore idle handler errors
@@ -1143,6 +1191,7 @@ async function runIdleHandler(args) {
1143
1191
  logger.log(message);
1144
1192
  }
1145
1193
  return [{
1194
+ type: "message",
1146
1195
  role: "assistant",
1147
1196
  content: `${message} (idle for ${elapsedMs}ms)`,
1148
1197
  }];
@@ -1215,6 +1264,7 @@ async function maybeHandleError(args) {
1215
1264
  const callId = randomId("event");
1216
1265
  const extraMessages = [
1217
1266
  {
1267
+ type: "message",
1218
1268
  role: "assistant",
1219
1269
  content: null,
1220
1270
  tool_calls: [{
@@ -1227,6 +1277,7 @@ async function maybeHandleError(args) {
1227
1277
  }],
1228
1278
  },
1229
1279
  {
1280
+ type: "message",
1230
1281
  role: "tool",
1231
1282
  tool_call_id: callId,
1232
1283
  name: GAMBIT_TOOL_COMPLETE,
@@ -1258,6 +1309,7 @@ async function maybeHandleError(args) {
1258
1309
  const callId = randomId("event");
1259
1310
  const extraMessages = [
1260
1311
  {
1312
+ type: "message",
1261
1313
  role: "assistant",
1262
1314
  content: null,
1263
1315
  tool_calls: [{
@@ -1270,6 +1322,7 @@ async function maybeHandleError(args) {
1270
1322
  }],
1271
1323
  },
1272
1324
  {
1325
+ type: "message",
1273
1326
  role: "tool",
1274
1327
  tool_call_id: callId,
1275
1328
  name: GAMBIT_TOOL_COMPLETE,
@@ -1302,11 +1355,62 @@ function formatInputForUser(input) {
1302
1355
  return String(input);
1303
1356
  }
1304
1357
  }
1305
- function sanitizeMessage(msg) {
1306
- const toolCalls = msg.tool_calls && msg.tool_calls.length > 0
1307
- ? msg.tool_calls
1358
+ function sanitizeMessageItem(item) {
1359
+ const toolCalls = item.tool_calls && item.tool_calls.length > 0
1360
+ ? item.tool_calls
1308
1361
  : undefined;
1309
- return { ...msg, tool_calls: toolCalls };
1362
+ return { ...item, tool_calls: toolCalls };
1363
+ }
1364
+ function sanitizeResponseItems(items) {
1365
+ return items.map((item) => item.type === "message" ? sanitizeMessageItem(item) : item);
1366
+ }
1367
+ function coerceToMessageItem(item) {
1368
+ if (item.type === "message")
1369
+ return item;
1370
+ if (item.type === "output_text") {
1371
+ return { type: "message", role: "assistant", content: item.text };
1372
+ }
1373
+ return null;
1374
+ }
1375
+ function messageItemFromResponse(output) {
1376
+ const messageItem = output.find((item) => item.type === "message");
1377
+ if (messageItem && messageItem.type === "message")
1378
+ return messageItem;
1379
+ const textItem = output.find((item) => item.type === "output_text");
1380
+ if (textItem && textItem.type === "output_text") {
1381
+ return { type: "message", role: "assistant", content: textItem.text };
1382
+ }
1383
+ return { type: "message", role: "assistant", content: null };
1384
+ }
1385
+ function safeJsonArgs(str) {
1386
+ try {
1387
+ const parsed = JSON.parse(str);
1388
+ if (parsed && typeof parsed === "object") {
1389
+ return parsed;
1390
+ }
1391
+ }
1392
+ catch {
1393
+ // ignore bad tool args
1394
+ }
1395
+ return {};
1396
+ }
1397
+ function extractToolCalls(output, message) {
1398
+ const responseCalls = output.filter((item) => item.type === "function_call");
1399
+ if (responseCalls.length > 0) {
1400
+ return responseCalls.map((item) => ({
1401
+ id: item.call_id,
1402
+ name: item.name,
1403
+ args: safeJsonArgs(item.arguments),
1404
+ }));
1405
+ }
1406
+ const messageCalls = message.tool_calls ?? [];
1407
+ if (messageCalls.length === 0)
1408
+ return undefined;
1409
+ return messageCalls.map((call) => ({
1410
+ id: call.id,
1411
+ name: call.function.name,
1412
+ args: safeJsonArgs(call.function.arguments),
1413
+ }));
1310
1414
  }
1311
1415
  async function buildToolDefs(deck) {
1312
1416
  const defs = [];
@@ -1,7 +1,7 @@
1
- import type { ModelMessage, TraceEvent } from "./types.js";
1
+ import type { OpenResponseItem, OpenResponseMessageItem, TraceEvent } from "./types.js";
2
2
  export type SavedState = {
3
3
  runId: string;
4
- messages: Array<ModelMessage>;
4
+ messages: Array<OpenResponseItem>;
5
5
  meta?: Record<string, unknown>;
6
6
  messageRefs?: Array<MessageRef>;
7
7
  feedback?: Array<FeedbackEntry>;
@@ -11,7 +11,8 @@ export type SavedState = {
11
11
  };
12
12
  export type MessageRef = {
13
13
  id: string;
14
- role: ModelMessage["role"];
14
+ type: OpenResponseItem["type"];
15
+ role?: OpenResponseMessageItem["role"];
15
16
  };
16
17
  export type FeedbackEntry = {
17
18
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/src/state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,iBAAiB,CAAC,EAAE,aAAa,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAclE;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,QAK5D"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/src/state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,iBAAiB,CAAC,EAAE,aAAa,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAclE;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,QAK5D"}