@oni.bot/core 1.0.2 → 1.0.3

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 (186) hide show
  1. package/CHANGELOG.md +146 -146
  2. package/dist/agents/define-agent.d.ts.map +1 -1
  3. package/dist/agents/define-agent.js +7 -2
  4. package/dist/agents/define-agent.js.map +1 -1
  5. package/dist/checkpoint.d.ts.map +1 -1
  6. package/dist/checkpoint.js +7 -2
  7. package/dist/checkpoint.js.map +1 -1
  8. package/dist/checkpointers/postgres.d.ts.map +1 -1
  9. package/dist/checkpointers/postgres.js +43 -27
  10. package/dist/checkpointers/postgres.js.map +1 -1
  11. package/dist/circuit-breaker.d.ts +1 -0
  12. package/dist/circuit-breaker.d.ts.map +1 -1
  13. package/dist/circuit-breaker.js +13 -0
  14. package/dist/circuit-breaker.js.map +1 -1
  15. package/dist/cli/dev.d.ts.map +1 -1
  16. package/dist/cli/dev.js +0 -1
  17. package/dist/cli/dev.js.map +1 -1
  18. package/dist/cli/run.d.ts.map +1 -1
  19. package/dist/cli/run.js +0 -1
  20. package/dist/cli/run.js.map +1 -1
  21. package/dist/config/loader.d.ts +1 -1
  22. package/dist/config/loader.js +12 -4
  23. package/dist/config/loader.js.map +1 -1
  24. package/dist/coordination/pubsub.d.ts +1 -0
  25. package/dist/coordination/pubsub.d.ts.map +1 -1
  26. package/dist/coordination/pubsub.js +31 -16
  27. package/dist/coordination/pubsub.js.map +1 -1
  28. package/dist/coordination/request-reply.d.ts +6 -0
  29. package/dist/coordination/request-reply.d.ts.map +1 -1
  30. package/dist/coordination/request-reply.js +56 -14
  31. package/dist/coordination/request-reply.js.map +1 -1
  32. package/dist/events/bus.d.ts +1 -0
  33. package/dist/events/bus.d.ts.map +1 -1
  34. package/dist/events/bus.js +16 -10
  35. package/dist/events/bus.js.map +1 -1
  36. package/dist/functional.d.ts.map +1 -1
  37. package/dist/functional.js +3 -0
  38. package/dist/functional.js.map +1 -1
  39. package/dist/graph.d.ts.map +1 -1
  40. package/dist/graph.js +5 -2
  41. package/dist/graph.js.map +1 -1
  42. package/dist/guardrails/audit.d.ts +4 -1
  43. package/dist/guardrails/audit.d.ts.map +1 -1
  44. package/dist/guardrails/audit.js +18 -1
  45. package/dist/guardrails/audit.js.map +1 -1
  46. package/dist/harness/agent-loop.d.ts.map +1 -1
  47. package/dist/harness/agent-loop.js +471 -352
  48. package/dist/harness/agent-loop.js.map +1 -1
  49. package/dist/harness/context-compactor.d.ts +1 -0
  50. package/dist/harness/context-compactor.d.ts.map +1 -1
  51. package/dist/harness/context-compactor.js +43 -1
  52. package/dist/harness/context-compactor.js.map +1 -1
  53. package/dist/harness/harness.d.ts +6 -0
  54. package/dist/harness/harness.d.ts.map +1 -1
  55. package/dist/harness/harness.js +32 -5
  56. package/dist/harness/harness.js.map +1 -1
  57. package/dist/harness/hooks-engine.d.ts.map +1 -1
  58. package/dist/harness/hooks-engine.js +12 -10
  59. package/dist/harness/hooks-engine.js.map +1 -1
  60. package/dist/harness/index.d.ts +3 -1
  61. package/dist/harness/index.d.ts.map +1 -1
  62. package/dist/harness/index.js +2 -0
  63. package/dist/harness/index.js.map +1 -1
  64. package/dist/harness/memory-loader.d.ts +150 -0
  65. package/dist/harness/memory-loader.d.ts.map +1 -0
  66. package/dist/harness/memory-loader.js +714 -0
  67. package/dist/harness/memory-loader.js.map +1 -0
  68. package/dist/harness/safety-gate.d.ts.map +1 -1
  69. package/dist/harness/safety-gate.js +47 -26
  70. package/dist/harness/safety-gate.js.map +1 -1
  71. package/dist/harness/skill-loader.d.ts +7 -0
  72. package/dist/harness/skill-loader.d.ts.map +1 -1
  73. package/dist/harness/skill-loader.js +24 -8
  74. package/dist/harness/skill-loader.js.map +1 -1
  75. package/dist/harness/todo-module.d.ts.map +1 -1
  76. package/dist/harness/todo-module.js +13 -6
  77. package/dist/harness/todo-module.js.map +1 -1
  78. package/dist/harness/types.d.ts +7 -0
  79. package/dist/harness/types.d.ts.map +1 -1
  80. package/dist/harness/types.js.map +1 -1
  81. package/dist/harness/validate-args.js +18 -3
  82. package/dist/harness/validate-args.js.map +1 -1
  83. package/dist/hitl/interrupt.d.ts +2 -2
  84. package/dist/hitl/interrupt.d.ts.map +1 -1
  85. package/dist/hitl/interrupt.js +6 -4
  86. package/dist/hitl/interrupt.js.map +1 -1
  87. package/dist/hitl/resume.d.ts +10 -0
  88. package/dist/hitl/resume.d.ts.map +1 -1
  89. package/dist/hitl/resume.js +31 -0
  90. package/dist/hitl/resume.js.map +1 -1
  91. package/dist/injected.d.ts.map +1 -1
  92. package/dist/injected.js.map +1 -1
  93. package/dist/inspect.d.ts.map +1 -1
  94. package/dist/inspect.js +28 -8
  95. package/dist/inspect.js.map +1 -1
  96. package/dist/lsp/client.d.ts +2 -0
  97. package/dist/lsp/client.d.ts.map +1 -1
  98. package/dist/lsp/client.js +62 -17
  99. package/dist/lsp/client.js.map +1 -1
  100. package/dist/lsp/index.d.ts.map +1 -1
  101. package/dist/lsp/index.js.map +1 -1
  102. package/dist/mcp/client.d.ts +2 -0
  103. package/dist/mcp/client.d.ts.map +1 -1
  104. package/dist/mcp/client.js +44 -13
  105. package/dist/mcp/client.js.map +1 -1
  106. package/dist/mcp/convert.js +1 -1
  107. package/dist/mcp/convert.js.map +1 -1
  108. package/dist/mcp/transport.d.ts +2 -0
  109. package/dist/mcp/transport.d.ts.map +1 -1
  110. package/dist/mcp/transport.js +33 -8
  111. package/dist/mcp/transport.js.map +1 -1
  112. package/dist/messages/index.d.ts.map +1 -1
  113. package/dist/messages/index.js +7 -1
  114. package/dist/messages/index.js.map +1 -1
  115. package/dist/models/anthropic.d.ts.map +1 -1
  116. package/dist/models/anthropic.js +25 -15
  117. package/dist/models/anthropic.js.map +1 -1
  118. package/dist/models/google.d.ts.map +1 -1
  119. package/dist/models/google.js +23 -7
  120. package/dist/models/google.js.map +1 -1
  121. package/dist/models/ollama.d.ts.map +1 -1
  122. package/dist/models/ollama.js +11 -1
  123. package/dist/models/ollama.js.map +1 -1
  124. package/dist/models/openai.d.ts.map +1 -1
  125. package/dist/models/openai.js +15 -3
  126. package/dist/models/openai.js.map +1 -1
  127. package/dist/models/openrouter.d.ts.map +1 -1
  128. package/dist/models/openrouter.js +14 -3
  129. package/dist/models/openrouter.js.map +1 -1
  130. package/dist/prebuilt/react-agent.d.ts.map +1 -1
  131. package/dist/prebuilt/react-agent.js +1 -0
  132. package/dist/prebuilt/react-agent.js.map +1 -1
  133. package/dist/pregel.d.ts +9 -6
  134. package/dist/pregel.d.ts.map +1 -1
  135. package/dist/pregel.js +89 -39
  136. package/dist/pregel.js.map +1 -1
  137. package/dist/retry.d.ts.map +1 -1
  138. package/dist/retry.js +7 -6
  139. package/dist/retry.js.map +1 -1
  140. package/dist/store/index.d.ts.map +1 -1
  141. package/dist/store/index.js +36 -9
  142. package/dist/store/index.js.map +1 -1
  143. package/dist/stream-events.d.ts.map +1 -1
  144. package/dist/stream-events.js +3 -9
  145. package/dist/stream-events.js.map +1 -1
  146. package/dist/swarm/graph.d.ts +15 -2
  147. package/dist/swarm/graph.d.ts.map +1 -1
  148. package/dist/swarm/graph.js +43 -14
  149. package/dist/swarm/graph.js.map +1 -1
  150. package/dist/swarm/index.d.ts +2 -1
  151. package/dist/swarm/index.d.ts.map +1 -1
  152. package/dist/swarm/index.js.map +1 -1
  153. package/dist/swarm/mailbox.d.ts.map +1 -1
  154. package/dist/swarm/mailbox.js +3 -1
  155. package/dist/swarm/mailbox.js.map +1 -1
  156. package/dist/swarm/mermaid.d.ts +2 -1
  157. package/dist/swarm/mermaid.d.ts.map +1 -1
  158. package/dist/swarm/mermaid.js +6 -3
  159. package/dist/swarm/mermaid.js.map +1 -1
  160. package/dist/swarm/pool.d.ts.map +1 -1
  161. package/dist/swarm/pool.js +18 -1
  162. package/dist/swarm/pool.js.map +1 -1
  163. package/dist/swarm/registry.d.ts.map +1 -1
  164. package/dist/swarm/registry.js +7 -0
  165. package/dist/swarm/registry.js.map +1 -1
  166. package/dist/swarm/scaling.d.ts +10 -1
  167. package/dist/swarm/scaling.d.ts.map +1 -1
  168. package/dist/swarm/scaling.js +85 -14
  169. package/dist/swarm/scaling.js.map +1 -1
  170. package/dist/swarm/snapshot.d.ts.map +1 -1
  171. package/dist/swarm/snapshot.js +10 -1
  172. package/dist/swarm/snapshot.js.map +1 -1
  173. package/dist/swarm/supervisor.js +20 -12
  174. package/dist/swarm/supervisor.js.map +1 -1
  175. package/dist/swarm/tracer.d.ts +3 -1
  176. package/dist/swarm/tracer.d.ts.map +1 -1
  177. package/dist/swarm/tracer.js +66 -15
  178. package/dist/swarm/tracer.js.map +1 -1
  179. package/dist/swarm/types.d.ts +1 -6
  180. package/dist/swarm/types.d.ts.map +1 -1
  181. package/dist/testing/index.d.ts +2 -2
  182. package/dist/testing/index.d.ts.map +1 -1
  183. package/dist/testing/index.js.map +1 -1
  184. package/dist/types.d.ts +3 -1
  185. package/dist/types.d.ts.map +1 -1
  186. package/package.json +1 -1
@@ -1,6 +1,9 @@
1
1
  import type { AuditEntry } from "./types.js";
2
2
  export declare class AuditLog {
3
- private logs;
3
+ private readonly logs;
4
+ /** Maximum number of thread IDs retained before the oldest is evicted. */
5
+ private readonly maxThreadIds;
6
+ constructor(maxThreadIds?: number);
4
7
  record(threadId: string, entry: AuditEntry): void;
5
8
  getLog(threadId: string): AuditEntry[];
6
9
  getByAgent(threadId: string, agent: string): AuditEntry[];
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/guardrails/audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,qBAAa,QAAQ;IACnB,OAAO,CAAC,IAAI,CAAwC;IAEpD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAMjD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IAItC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE;IAIzD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,UAAU,EAAE;IAIzE,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI7B,QAAQ,IAAI,IAAI;IAIhB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIhC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAI/C"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/guardrails/audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwC;IAC7D,0EAA0E;IAC1E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,YAAY,SAAQ;IAIhC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAYjD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IAItC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE;IAIzD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,UAAU,EAAE;IAIzE,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI7B,QAAQ,IAAI,IAAI;IAIhB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIhC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAW/C"}
@@ -1,9 +1,20 @@
1
1
  export class AuditLog {
2
2
  logs = new Map();
3
+ /** Maximum number of thread IDs retained before the oldest is evicted. */
4
+ maxThreadIds;
5
+ constructor(maxThreadIds = 1_000) {
6
+ this.maxThreadIds = maxThreadIds;
7
+ }
3
8
  record(threadId, entry) {
4
9
  const existing = this.logs.get(threadId) ?? [];
5
10
  existing.push(entry);
6
11
  this.logs.set(threadId, existing);
12
+ // Evict the oldest thread entry once the cap is exceeded.
13
+ // Map preserves insertion order, so the first key is the oldest.
14
+ if (this.logs.size > this.maxThreadIds) {
15
+ const oldest = this.logs.keys().next().value;
16
+ this.logs.delete(oldest);
17
+ }
7
18
  }
8
19
  getLog(threadId) {
9
20
  return this.logs.get(threadId) ?? [];
@@ -24,7 +35,13 @@ export class AuditLog {
24
35
  return JSON.stringify(this.getLog(threadId));
25
36
  }
26
37
  fromJSON(threadId, json) {
27
- const entries = JSON.parse(json);
38
+ let entries;
39
+ try {
40
+ entries = JSON.parse(json);
41
+ }
42
+ catch (err) {
43
+ throw new Error(`AuditLog.fromJSON: failed to parse log for threadId "${threadId}": ${err instanceof Error ? err.message : String(err)}`);
44
+ }
28
45
  this.logs.set(threadId, entries);
29
46
  }
30
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/guardrails/audit.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,QAAQ;IACX,IAAI,GAA8B,IAAI,GAAG,EAAE,CAAC;IAEpD,MAAM,CAAC,QAAgB,EAAE,KAAiB;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,QAAgB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,QAAgB,EAAE,KAAa;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,WAAW,CAAC,QAAgB,EAAE,MAA4B;QACxD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,QAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,QAAgB;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,QAAQ,CAAC,QAAgB,EAAE,IAAY;QACrC,MAAM,OAAO,GAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/guardrails/audit.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,QAAQ;IACF,IAAI,GAA8B,IAAI,GAAG,EAAE,CAAC;IAC7D,0EAA0E;IACzD,YAAY,CAAS;IAEtC,YAAY,YAAY,GAAG,KAAK;QAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,QAAgB,EAAE,KAAiB;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClC,0DAA0D;QAC1D,iEAAiE;QACjE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAe,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,QAAgB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,QAAgB,EAAE,KAAa;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,WAAW,CAAC,QAAgB,EAAE,MAA4B;QACxD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,QAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,QAAgB;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,QAAQ,CAAC,QAAgB,EAAE,IAAY;QACrC,IAAI,OAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,wDAAwD,QAAQ,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACzH,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/harness/agent-loop.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EAIZ,MAAM,YAAY,CAAC;AAMpB,wBAAuB,SAAS,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,GACtB,cAAc,CAAC,WAAW,CAAC,CAse7B;AAID,wBAAgB,iBAAiB,CAC/B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,EACD,MAAM,EAAE,eAAe,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAsB5D"}
1
+ {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/harness/agent-loop.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EAIZ,MAAM,YAAY,CAAC;AAQpB,wBAAuB,SAAS,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,GACtB,cAAc,CAAC,WAAW,CAAC,CA+jB7B;AAID,wBAAgB,iBAAiB,CAC/B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,EACD,MAAM,EAAE,eAAe,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAsB5D"}