@beeos-ai/device-agent 0.8.0 → 0.9.1

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 (77) hide show
  1. package/dist/app/fixed-session-id.d.ts +19 -0
  2. package/dist/app/fixed-session-id.js +26 -0
  3. package/dist/app/fixed-session-id.js.map +1 -0
  4. package/dist/app/jsonl-session-sweeper.d.ts +90 -0
  5. package/dist/app/jsonl-session-sweeper.js +162 -0
  6. package/dist/app/jsonl-session-sweeper.js.map +1 -0
  7. package/dist/app/jsonl-store.d.ts +10 -0
  8. package/dist/app/jsonl-store.js +10 -4
  9. package/dist/app/jsonl-store.js.map +1 -1
  10. package/dist/app/session-manager.d.ts +135 -1
  11. package/dist/app/session-manager.js +195 -12
  12. package/dist/app/session-manager.js.map +1 -1
  13. package/dist/bootstrap.js +146 -2
  14. package/dist/bootstrap.js.map +1 -1
  15. package/dist/config/loader.js +2 -0
  16. package/dist/config/loader.js.map +1 -1
  17. package/dist/config/schema.d.ts +2 -0
  18. package/dist/config/schema.js +41 -1
  19. package/dist/config/schema.js.map +1 -1
  20. package/dist/fleet/domain/device.d.ts +17 -0
  21. package/dist/fleet/domain/device.js +1 -0
  22. package/dist/fleet/domain/device.js.map +1 -1
  23. package/dist/fleet/domain/fsm.d.ts +30 -1
  24. package/dist/fleet/domain/fsm.js +100 -4
  25. package/dist/fleet/domain/fsm.js.map +1 -1
  26. package/dist/fleet/supervisor.js +38 -18
  27. package/dist/fleet/supervisor.js.map +1 -1
  28. package/dist/plugins/acp/index.d.ts +27 -30
  29. package/dist/plugins/acp/index.js +44 -137
  30. package/dist/plugins/acp/index.js.map +1 -1
  31. package/dist/plugins/message-bus/cancel.d.ts +48 -0
  32. package/dist/plugins/message-bus/cancel.js +66 -0
  33. package/dist/plugins/message-bus/cancel.js.map +1 -0
  34. package/dist/plugins/message-bus/inbound.d.ts +38 -22
  35. package/dist/plugins/message-bus/inbound.js +107 -50
  36. package/dist/plugins/message-bus/inbound.js.map +1 -1
  37. package/dist/plugins/message-bus/index.d.ts +1 -2
  38. package/dist/plugins/message-bus/index.js +25 -35
  39. package/dist/plugins/message-bus/index.js.map +1 -1
  40. package/dist/plugins/message-bus/ms-channel-notifier.d.ts +101 -0
  41. package/dist/plugins/message-bus/ms-channel-notifier.js +181 -0
  42. package/dist/plugins/message-bus/ms-channel-notifier.js.map +1 -0
  43. package/dist/plugins/message-bus/ms-inflight-tracker.d.ts +36 -0
  44. package/dist/plugins/message-bus/ms-inflight-tracker.js +42 -0
  45. package/dist/plugins/message-bus/ms-inflight-tracker.js.map +1 -0
  46. package/dist/ports/plugin.d.ts +12 -0
  47. package/package.json +1 -1
  48. package/dist/agent-runtime/skills/sqlite-store.d.ts +0 -60
  49. package/dist/agent-runtime/skills/sqlite-store.js +0 -234
  50. package/dist/agent-runtime/skills/sqlite-store.js.map +0 -1
  51. package/dist/plugins/message-bus/outbound.d.ts +0 -43
  52. package/dist/plugins/message-bus/outbound.js +0 -149
  53. package/dist/plugins/message-bus/outbound.js.map +0 -1
  54. package/dist/plugins/message-bus/turn-context.d.ts +0 -57
  55. package/dist/plugins/message-bus/turn-context.js +0 -53
  56. package/dist/plugins/message-bus/turn-context.js.map +0 -1
  57. package/dist/test-lan-autoglm.d.ts +0 -7
  58. package/dist/test-lan-autoglm.js +0 -46
  59. package/dist/test-lan-autoglm.js.map +0 -1
  60. package/dist/test-mem-breakdown.d.ts +0 -1
  61. package/dist/test-mem-breakdown.js +0 -103
  62. package/dist/test-mem-breakdown.js.map +0 -1
  63. package/dist/test-mem.d.ts +0 -1
  64. package/dist/test-mem.js +0 -60
  65. package/dist/test-mem.js.map +0 -1
  66. package/dist/test-mobile-use.d.ts +0 -1
  67. package/dist/test-mobile-use.js +0 -18
  68. package/dist/test-mobile-use.js.map +0 -1
  69. package/dist/test-screenshot-loop.d.ts +0 -1
  70. package/dist/test-screenshot-loop.js +0 -43
  71. package/dist/test-screenshot-loop.js.map +0 -1
  72. package/dist/test-screenshot.d.ts +0 -1
  73. package/dist/test-screenshot.js +0 -10
  74. package/dist/test-screenshot.js.map +0 -1
  75. package/dist/test-ui-xml-dump.d.ts +0 -15
  76. package/dist/test-ui-xml-dump.js +0 -49
  77. package/dist/test-ui-xml-dump.js.map +0 -1
@@ -46,13 +46,24 @@ import { InFlightTurnAggregator, } from "./in-flight-turn.js";
46
46
  export class SessionManager {
47
47
  host;
48
48
  store;
49
- notifier;
49
+ /**
50
+ * Default notifier — called when no per-session notifier is bound
51
+ * via `bindNotifier`. AcpPlugin in v0.9.0+ does NOT pass this; it
52
+ * binds its TransportSessionNotifier per-fixedSessionId instead.
53
+ * Kept for back-compat with single-notifier callers.
54
+ */
55
+ fallbackNotifier;
56
+ /** sid → notifier overrides for routing per-session updates. */
57
+ notifiers = new Map();
50
58
  onSetModel;
51
59
  fixedSessionId;
52
60
  maxSessions;
53
61
  sessionTtlMs;
54
62
  pluginCommands;
55
63
  onPluginCommandEvent;
64
+ historyEnabled;
65
+ historyMaxTurns;
66
+ historyMaxBytes;
56
67
  sessions = new Map();
57
68
  /** taskId → sessionId for routing host events to the right ACP session. */
58
69
  taskToSession = new Map();
@@ -64,7 +75,7 @@ export class SessionManager {
64
75
  constructor(opts) {
65
76
  this.host = opts.host;
66
77
  this.store = opts.messageStore ?? new MessageStore();
67
- this.notifier = opts.notifier;
78
+ this.fallbackNotifier = opts.notifier;
68
79
  this.onSetModel = opts.onSetModel;
69
80
  if (opts.fixedSessionId)
70
81
  this.fixedSessionId = opts.fixedSessionId;
@@ -72,6 +83,9 @@ export class SessionManager {
72
83
  this.sessionTtlMs = opts.sessionTtlMs ?? 60 * 60 * 1000;
73
84
  this.pluginCommands = opts.pluginCommands;
74
85
  this.onPluginCommandEvent = opts.onPluginCommandEvent;
86
+ this.historyEnabled = opts.historyEnabled ?? false;
87
+ this.historyMaxTurns = opts.historyMaxTurns ?? 5;
88
+ this.historyMaxBytes = opts.historyMaxBytes ?? 8192;
75
89
  this.unsubscribe = this.host.on((ev) => this.handleHostEvent(ev));
76
90
  // In single-session mode, eagerly materialise the fixed session so
77
91
  // listSessions / load behave deterministically even before the
@@ -80,6 +94,71 @@ export class SessionManager {
80
94
  this.ensureFixedSession();
81
95
  }
82
96
  }
97
+ // ── v0.9.0 multi-transport / multi-session API ──────────────────────────
98
+ /** True iff a turn is in flight (any session). Used by MS busy-reject. */
99
+ isTurnInFlight() {
100
+ return this.currentTask !== null;
101
+ }
102
+ /**
103
+ * Read-only access to the plugin command registry passed at
104
+ * construction. Plugins (e.g. AcpSkillsHandlers) consume this to
105
+ * surface registered commands without re-injecting the registry
106
+ * separately. Returns `undefined` when no registry was provided.
107
+ */
108
+ get pluginCommandRegistry() {
109
+ return this.pluginCommands;
110
+ }
111
+ /**
112
+ * Look up a session by exact sid, bypassing `fixedSessionId`. Creates
113
+ * an in-memory entry on first call (rehydrating from store if a
114
+ * previous instance wrote a JSONL with that sid). Used by the
115
+ * MessageBus path so per-channel sessions coexist with the
116
+ * operator's fixed ACP session.
117
+ *
118
+ * Opportunistically runs `evictExpired` before allocating so MS-only
119
+ * deployments (which never call `listSessions` / `newSession`) don't
120
+ * accumulate stale in-memory entries indefinitely. The eviction
121
+ * deliberately preserves `fixedSessionId`.
122
+ */
123
+ findOrCreateSession(sessionId) {
124
+ this.evictExpired();
125
+ if (this.sessions.has(sessionId)) {
126
+ const existing = this.sessions.get(sessionId);
127
+ existing.lastActive = Date.now();
128
+ return existing;
129
+ }
130
+ if (this.store.sessionExists(sessionId)) {
131
+ this.sessions.set(sessionId, newSession(sessionId));
132
+ return this.sessions.get(sessionId);
133
+ }
134
+ this.sessions.set(sessionId, newSession(sessionId));
135
+ this.store.upsertSession(sessionId);
136
+ return this.sessions.get(sessionId);
137
+ }
138
+ /**
139
+ * Run a prompt against a specific session id, bypassing the
140
+ * `fixedSessionId` ACP single-session aliasing. When `historyEnabled`
141
+ * is on, prepends a `[Conversation history ...]` preamble built from
142
+ * the prior `user_message` + `assistant_turn` records on the same
143
+ * sid so the LLM has multi-turn memory.
144
+ *
145
+ * Throws `Error("agent_busy")` if a turn is already running on any
146
+ * session — caller (MessageBus inbound) translates to a busy-reply.
147
+ */
148
+ async promptForSession(sessionId, prompt) {
149
+ if (!prompt)
150
+ throw new Error("prompt is required");
151
+ const session = this.findOrCreateSession(sessionId);
152
+ return this._executePrompt(session, prompt, { injectHistory: true });
153
+ }
154
+ /** Bind a notifier to a specific session id. Replaces any existing binding. */
155
+ bindNotifier(sessionId, notifier) {
156
+ this.notifiers.set(sessionId, notifier);
157
+ }
158
+ /** Remove the per-session notifier (subsequent updates fall back to the default). */
159
+ unbindNotifier(sessionId) {
160
+ this.notifiers.delete(sessionId);
161
+ }
83
162
  /** Detach from the host bus (used when shutting down the ACP plugin). */
84
163
  detach() {
85
164
  if (this.unsubscribe) {
@@ -87,6 +166,35 @@ export class SessionManager {
87
166
  this.unsubscribe = null;
88
167
  }
89
168
  }
169
+ /**
170
+ * Drop a session from in-memory state without touching the store.
171
+ * Used by `JsonlSessionSweeper` after it has already decided the
172
+ * session's JSONL on disk is stale — calling this keeps
173
+ * `this.sessions` from holding a phantom in-memory entry that
174
+ * would re-create the file on the next prompt.
175
+ *
176
+ * Returns:
177
+ * - `"dropped"` — the entry existed and was removed; caller is
178
+ * free to delete the JSONL on disk.
179
+ * - `"absent"` — no in-memory entry for this sid; caller is
180
+ * free to delete the JSONL on disk (a rehydrate
181
+ * would have re-loaded it).
182
+ * - `"in-flight"` — an in-flight task is using this sid; caller
183
+ * MUST skip the disk delete and try again on
184
+ * the next sweep pass.
185
+ */
186
+ dropFromMemory(sessionId) {
187
+ const s = this.sessions.get(sessionId);
188
+ if (!s)
189
+ return "absent";
190
+ if (s.currentTaskId)
191
+ return "in-flight";
192
+ this.sessions.delete(sessionId);
193
+ if (this.activeSessionId === sessionId)
194
+ this.activeSessionId = null;
195
+ this.notifiers.delete(sessionId);
196
+ return "dropped";
197
+ }
90
198
  // ── ACP semantics — name mirrors Python SessionHandler ───────────────────
91
199
  newSession() {
92
200
  if (this.fixedSessionId) {
@@ -208,9 +316,7 @@ export class SessionManager {
208
316
  if (!prompt)
209
317
  throw new Error("prompt is required");
210
318
  const session = this.resolveSession(sessionIdHint);
211
- session.lastActive = Date.now();
212
- session.history.push({ role: "user", content: prompt, createdAt: session.lastActive });
213
- this.activeSessionId = session.id;
319
+ session.history.push({ role: "user", content: prompt, createdAt: Date.now() });
214
320
  // Plugin command short-circuit: if the prompt is a /command match,
215
321
  // dispatch straight to the registered handler and skip the
216
322
  // AgentRunner entirely. Mirrors OpenClaw `matchPluginCommand` —
@@ -223,16 +329,44 @@ export class SessionManager {
223
329
  return this.handlePluginCommand(prompt, session.id, matched.command, matched.args);
224
330
  }
225
331
  }
332
+ // ACP path intentionally does NOT inject history — keeps v0.8.0
333
+ // operator-dashboard behaviour exactly. MS path uses
334
+ // promptForSession() which sets injectHistory: true.
335
+ return this._executePrompt(session, prompt, { injectHistory: false });
336
+ }
337
+ /**
338
+ * Shared turn dispatch. Both `prompt()` (ACP) and `promptForSession()`
339
+ * (MessageBus) funnel through here so the in-flight gate, persistence,
340
+ * notify-status, and submit-task paths can't drift between callers.
341
+ *
342
+ * - Throws `Error("agent_busy")` if another turn is in-flight (any
343
+ * session). Layer 3 device-physical-serial constraint.
344
+ * - When `injectHistory` is true, prepends a `[Conversation history ...]`
345
+ * preamble built from store records to the prompt. JSONL persists
346
+ * the ORIGINAL prompt — preamble is for the LLM only, never written
347
+ * to disk (otherwise next turn would re-include the preamble and
348
+ * recursively bloat).
349
+ */
350
+ async _executePrompt(session, originalPrompt, opts) {
351
+ if (this.currentTask !== null)
352
+ throw new Error("agent_busy");
353
+ session.lastActive = Date.now();
354
+ this.activeSessionId = session.id;
355
+ const augmentedPrompt = opts.injectHistory
356
+ ? this.buildHistoryPreamble(session.id) + originalPrompt
357
+ : originalPrompt;
226
358
  this.notify(session.id, { sessionUpdate: "agent_status", status: "running" });
227
- const submitted = this.host.submitTask(prompt, { correlationTag: session.id });
359
+ const submitted = this.host.submitTask(augmentedPrompt, {
360
+ correlationTag: session.id,
361
+ });
228
362
  this.taskToSession.set(submitted.taskId, session.id);
229
363
  this.currentTask = submitted;
230
364
  session.currentTaskId = submitted.taskId;
231
- // Persist the user message AFTER taskToSession is wired so a
232
- // concurrent loadSession from another connection can see this row
233
- // alongside the upcoming in-flight assistant snapshot.
365
+ // Persist the ORIGINAL user message (not augmented) AFTER
366
+ // taskToSession is wired so a concurrent loadSession can see the
367
+ // row alongside the upcoming in-flight assistant snapshot.
234
368
  // turnId mirrors agent-host's convention (turnId === taskId).
235
- this.store.appendUserMessage(session.id, prompt, {
369
+ this.store.appendUserMessage(session.id, originalPrompt, {
236
370
  turnId: submitted.taskId,
237
371
  });
238
372
  let result;
@@ -251,6 +385,54 @@ export class SessionManager {
251
385
  }
252
386
  return { stopReason: result.cancelled ? "cancelled" : "end_turn" };
253
387
  }
388
+ /**
389
+ * Build a `[Conversation history ...]` preamble from prior store
390
+ * records on `sessionId`. Returns "" when:
391
+ * - history injection is disabled
392
+ * - no prior records exist
393
+ * - all records are empty after filtering
394
+ *
395
+ * Truncates from the OLDEST end when the body would exceed
396
+ * `historyMaxBytes`. Caps at `historyMaxTurns * 2` lines (each
397
+ * "turn" ≈ one user line + one assistant line).
398
+ *
399
+ * Returns the formatted string ending with two newlines so the new
400
+ * user prompt naturally appears after a blank line.
401
+ */
402
+ buildHistoryPreamble(sessionId) {
403
+ if (!this.historyEnabled)
404
+ return "";
405
+ const records = this.store.getTurns(sessionId);
406
+ if (records.length === 0)
407
+ return "";
408
+ const lines = [];
409
+ for (const rec of records) {
410
+ if (rec.type === "user_message" && rec.content) {
411
+ lines.push(`User: ${rec.content}`);
412
+ }
413
+ else if (rec.type === "assistant_turn" && rec.text) {
414
+ lines.push(`Assistant: ${rec.text}`);
415
+ }
416
+ }
417
+ if (lines.length === 0)
418
+ return "";
419
+ // Each turn ≈ 1 user line + 1 assistant line, so 2x the cap.
420
+ const wanted = lines.slice(-this.historyMaxTurns * 2);
421
+ let body = wanted.join("\n");
422
+ while (body.length > this.historyMaxBytes && wanted.length > 0) {
423
+ wanted.shift();
424
+ body = wanted.join("\n");
425
+ }
426
+ if (!body)
427
+ return "";
428
+ return [
429
+ "[Conversation history for this thread — read for context, do NOT re-execute]",
430
+ body,
431
+ "[End of history]",
432
+ "",
433
+ "",
434
+ ].join("\n");
435
+ }
254
436
  /** Cancel the in-flight task for the active session, if any. */
255
437
  async cancel() {
256
438
  if (!this.currentTask)
@@ -747,9 +929,10 @@ export class SessionManager {
747
929
  // signal the client uses to recognise a still-generating turn.
748
930
  }
749
931
  notify(sessionId, update) {
750
- if (!this.notifier)
932
+ const target = this.notifiers.get(sessionId) ?? this.fallbackNotifier;
933
+ if (!target)
751
934
  return;
752
- this.notifier.send(sessionId, update);
935
+ target.send(sessionId, update);
753
936
  }
754
937
  evictExpired() {
755
938
  if (this.fixedSessionId)
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/app/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/app/session-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAgB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,sBAAsB,GAIvB,MAAM,qBAAqB,CAAC;AAsG7B,MAAM,OAAO,cAAc;IACR,IAAI,CAAY;IAChB,KAAK,CAAe;IACrC;;;;;OAKG;IACc,gBAAgB,CAAoC;IACrE,gEAAgE;IAC/C,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IACrD,UAAU,CAAsC;IAChD,cAAc,CAAqB;IACnC,WAAW,CAAS;IACpB,YAAY,CAAS;IACrB,cAAc,CAAoC;IAClD,oBAAoB,CAAgD;IACpE,cAAc,CAAU;IACxB,eAAe,CAAS;IACxB,eAAe,CAAS;IAExB,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IACvD,2EAA2E;IAC1D,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3D,uDAAuD;IACtC,cAAc,GAAG,IAAI,GAAG,EAAkC,CAAC;IACpE,eAAe,GAAkB,IAAI,CAAC;IACtC,WAAW,GAAyB,IAAI,CAAC;IACzC,WAAW,GAAwB,IAAI,CAAC;IAEhD,YAAY,IAA2B;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,YAAY,EAAE,CAAC;QACrD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,IAAI,CAAC,cAAc;YAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACnE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACxD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;QAEpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;QAElE,mEAAmE;QACnE,+DAA+D;QAC/D,gBAAgB;QAChB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,2EAA2E;IAE3E,0EAA0E;IAC1E,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,IAAI,qBAAqB;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,SAAiB;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;YAC/C,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACjC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;IACvC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,gBAAgB,CACpB,SAAiB,EACjB,MAAc;QAEd,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,+EAA+E;IAC/E,YAAY,CAAC,SAAiB,EAAE,QAA+B;QAC7D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,qFAAqF;IACrF,cAAc,CAAC,SAAiB;QAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,yEAAyE;IACzE,MAAM;QACJ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,SAAiB;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC;YAAE,OAAO,QAAQ,CAAC;QACxB,IAAI,CAAC,CAAC,aAAa;YAAE,OAAO,WAAW,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;YAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QACpE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,4EAA4E;IAE5E,UAAU;QACR,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC7B,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,SAAiB;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QACjC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAE7B,mCAAmC;QACnC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,sEAAsE;QACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,QAAQ;YAAE,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEtD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC3B,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;IACnD,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,KAAa;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,CAAC;YACN,CAAC,CAAC,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;YAC3B,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,SAAiB;QAC7B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;YAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QACpE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,CAAC;YACN,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;YACf,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC5B,kEAAkE;QAClE,+DAA+D;QAC/D,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/C,IAAI,GAAG,KAAK,EAAE;gBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,SAAiB,EAAE,IAAY;QACrC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,KAAa,EAAE,WAAmB,EAAE;QACpE,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACxE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CACV,SAAwC,EACxC,aAAsB;QAEtB,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACnD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAE/E,mEAAmE;QACnE,2DAA2D;QAC3D,gEAAgE;QAChE,mEAAmE;QACnE,0DAA0D;QAC1D,sCAAsC;QACtC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,qDAAqD;QACrD,qDAAqD;QACrD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,cAAc,CAC1B,OAAgB,EAChB,cAAsB,EACtB,IAAgC;QAEhC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAE7D,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,EAAE,CAAC;QAElC,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa;YACxC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,cAAc;YACxD,CAAC,CAAC,cAAc,CAAC;QAEnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAE9E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE;YACtD,cAAc,EAAE,OAAO,CAAC,EAAE;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC;QAEzC,0DAA0D;QAC1D,iEAAiE;QACjE,2DAA2D;QAC3D,8DAA8D;QAC9D,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,cAAc,EAAE;YACvD,MAAM,EAAE,SAAS,CAAC,MAAM;SACzB,CAAC,CAAC;QAEH,IAAI,MAAsC,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC;QAChC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC5C,yDAAyD;YACzD,8DAA8D;YAC9D,oCAAoC;YACpC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,oBAAoB,CAAC,SAAiB;QAC5C,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC/C,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACrD,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,6DAA6D;QAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QAEtD,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,OAAO;YACL,8EAA8E;YAC9E,IAAI;YACJ,kBAAkB;YAClB,EAAE;YACF,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACK,KAAK,CAAC,mBAAmB,CAC/B,MAAc,EACd,SAAiB,EACjB,OAAsB,EACtB,IAAa;QAEb,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,4EAA4E;QAC5E,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAE7E,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS;YACT,MAAM;YACN,IAAI;SACL,CAAC,CAAC;QAEH,IAAI,UAAU,GAAe,UAAU,CAAC;QACxC,IAAI,KAAwB,CAAC;QAC7B,IAAI,MAAM,GAAwB,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEnD,4DAA4D;YAC5D,2DAA2D;YAC3D,6DAA6D;YAC7D,kEAAkE;YAClE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;oBACrB,aAAa,EAAE,qBAAqB;oBACpC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;oBAC5C,OAAO,EAAE,MAAM;oBACf,SAAS;iBACV,CAAC,CAAC;YACL,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;gBAC3C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;oBACrB,aAAa,EAAE,qBAAqB;oBACpC,OAAO,EAAE;wBACP,IAAI,EAAE,eAAe;wBACrB,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrD,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAClE;oBACD,OAAO,EAAE,MAAM;oBACf,SAAS;iBACV,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,UAAU,GAAG,OAAO,CAAC;YACrB,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACrB,aAAa,EAAE,sBAAsB;gBACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE;gBACpE,QAAQ,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE;gBAClD,OAAO,EAAE,MAAM;aAChB,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,iEAAiE;YACjE,kEAAkE;YAClE,6CAA6C;YAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,oBAAoB,GAA0B,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzF,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjD,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9D,CAAC,CAAC,CAAC;gBACJ,MAAM,MAAM,GAAwB;oBAClC,SAAS;oBACT,MAAM;oBACN,SAAS;oBACT,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;oBACvB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;oBACvB,SAAS,EAAE,EAAE;oBACb,UAAU;oBACV,MAAM,EAAE,gBAAgB;oBACxB,GAAG,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC;wBACjC,CAAC,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE;wBACvC,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,cAAc,GAA4B;gBAC9C,aAAa,EAAE,iBAAiB;gBAChC,UAAU;gBACV,OAAO,EAAE,MAAM;aAChB,CAAC;YACF,IAAI,KAAK;gBAAE,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAE1E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC1C,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC1B,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,SAAS;oBACT,MAAM;oBACN,UAAU;oBACV,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC1B,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,SAAS;oBACT,MAAM;oBACN,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,EAAE,UAAU,EAAE,CAAC;IACxB,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACK,eAAe,CAAC,EAAc;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC;gBAC5C,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,4DAA4D;gBAC5D,6CAA6C;gBAC7C,SAAS,EAAE,EAAE,CAAC,MAAM;gBACpB,GAAG,EAAE,EAAE,CAAC,SAAS;aAClB,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,EAAE,CAAC,IAAI;gBAAE,OAAO;YACrB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACrB,aAAa,EAAE,qBAAqB;gBACpC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;gBACxC,OAAO,EAAE,EAAE,CAAC,MAAM;gBAClB,SAAS,EAAE,EAAE,CAAC,SAAS;aACxB,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;YACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACjC,oEAAoE;YACpE,kEAAkE;YAClE,kEAAkE;YAClE,kEAAkE;YAClE,iEAAiE;YACjE,wDAAwD;YACxD,IAAI,CAAC,EAAE,CAAC,IAAI;gBAAE,OAAO;YACrB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACrB,aAAa,EAAE,qBAAqB;gBACpC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;gBACxC,OAAO,EAAE,EAAE,CAAC,MAAM;gBAClB,SAAS,EAAE,EAAE,CAAC,SAAS;aACxB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;YACzE,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;oBACrB,aAAa,EAAE,WAAW;oBAC1B,UAAU,EAAE,CAAC,CAAC,EAAE;oBAChB,KAAK,EAAE,CAAC,CAAC,IAAI;oBACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;oBACjC,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,EAAE,CAAC,MAAM;oBAClB,SAAS,EAAE,EAAE,CAAC,SAAS;iBACxB,CAAC,CAAC;gBACH,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACnE,CAAC;iBAAM,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,MAAM,GACV,CAAC,CAAC,MAAM,KAAK,SAAS;oBACpB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;wBAC5B,CAAC,CAAC,CAAC,CAAC,MAAM;wBACV,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACvC,MAAM,MAAM,GAA4B;oBACtC,aAAa,EAAE,kBAAkB;oBACjC,UAAU,EAAE,CAAC,CAAC,EAAE;oBAChB,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,EAAE,CAAC,MAAM;oBAClB,SAAS,EAAE,EAAE,CAAC,SAAS;iBACxB,CAAC;gBACF,IAAI,MAAM,KAAK,SAAS;oBAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;gBACjD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;iBAAM,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAA2B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;gBAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACxF,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;oBACrB,aAAa,EAAE,kBAAkB;oBACjC,UAAU,EAAE,CAAC,CAAC,EAAE;oBAChB,MAAM;oBACN,MAAM,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,EAAE;oBACvC,OAAO,EAAE,EAAE,CAAC,MAAM;oBAClB,SAAS,EAAE,EAAE,CAAC,SAAS;iBACxB,CAAC,CAAC;gBACH,QAAQ,CAAC,WAAW,CAAC;oBACnB,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,MAAM,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,EAAE;oBACvC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO;iBACrB,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC9B,2CAA2C;YAC3C,4DAA4D;YAC5D,6DAA6D;YAC7D,2DAA2D;YAC3D,gEAAgE;YAChE,8DAA8D;YAC9D,+DAA+D;YAC/D,4DAA4D;YAC5D,2DAA2D;YAC3D,mDAAmD;YACnD,kEAAkE;YAClE,wDAAwD;YACxD,2DAA2D;YAC3D,8DAA8D;YAC9D,0CAA0C;YAC1C,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM;gBAAE,OAAO;YAChC,IAAI,CAAC,EAAE,CAAC,IAAI;gBAAE,OAAO;YACrB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACrB,aAAa,EAAE,sBAAsB;gBACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;gBACxC,OAAO,EAAE,EAAE,CAAC,MAAM;gBAClB,QAAQ,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE;aACpD,CAAC,CAAC;YACH,8DAA8D;YAC9D,+DAA+D;YAC/D,iCAAiC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,QAAQ;gBAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC5B,8DAA8D;YAC9D,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAe,EAAE,CAAC,KAAK;gBACrC,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS;oBACnB,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,UAAU,CAAC;YAEjB,6DAA6D;YAC7D,gEAAgE;YAChE,8DAA8D;YAC9D,0DAA0D;YAC1D,2BAA2B;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;gBAC7D,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAClD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,cAAc,GAA4B;gBAC9C,aAAa,EAAE,iBAAiB;gBAChC,UAAU;gBACV,OAAO,EAAE,EAAE,CAAC,MAAM;aACnB,CAAC;YACF,IAAI,EAAE,CAAC,KAAK;gBAAE,cAAc,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,MAAe;QACpC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC;QACjD,CAAC;QACD,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAC3E,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YACpE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAE,CAAC;QAClD,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;IACvC,CAAC;IAED,0EAA0E;IAClE,cAAc,CAAC,GAAW;QAChC,OAAO,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC;IACpC,CAAC;IAED,yEAAyE;IACjE,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACK,cAAc,CACpB,MAAc,EACd,MAAc,EACd,SAAiB;QAEjB,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,sBAAsB,CAAC,SAAiB;QAC9C,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/C,IAAI,GAAG,KAAK,SAAS;gBAAE,SAAS;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACK,eAAe,CAAC,SAAiB,EAAE,GAAoB;QAC7D,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAChC,MAAM,MAAM,GAA4B;gBACtC,aAAa,EAAE,cAAc;gBAC7B,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;aAC1C,CAAC;YACF,IAAI,GAAG,CAAC,SAAS;gBAAE,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;YACpD,IAAI,GAAG,CAAC,MAAM;gBAAE,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,iBAAiB;QACjB,MAAM,IAAI,GAAG,GAA6B,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,SAAS,EAAE,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;YAChF,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,GAAG,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,OAAO,EAAE,EAAE,CAAC,MAAM,KAAK,QAAQ;SAChC,CAAC,CAAC,CAAC;QACJ,MAAM,MAAM,GAA4B;YACtC,aAAa,EAAE,cAAc;YAC7B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;YAC1C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,MAAM;SACrB,CAAC;QACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QACvD,IAAI,IAAI,CAAC,KAAK;YAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACxD,gEAAgE;QAChE,+DAA+D;QAC/D,oEAAoE;QACpE,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACK,oBAAoB,CAAC,SAAiB,EAAE,QAAgC;QAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACrB,aAAa,EAAE,qBAAqB;gBACpC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM;gBACxB,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACrB,aAAa,EAAE,WAAW;gBAC1B,UAAU,EAAE,EAAE,CAAC,EAAE;gBACjB,KAAK,EAAE,EAAE,CAAC,IAAI;gBACd,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC;gBAClC,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,QAAQ,CAAC,MAAM;gBACxB,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B,CAAC,CAAC;YACH,IAAI,EAAE,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gBAChC,MAAM,MAAM,GAA4B;oBACtC,aAAa,EAAE,kBAAkB;oBACjC,UAAU,EAAE,EAAE,CAAC,EAAE;oBACjB,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,OAAO,EAAE,QAAQ,CAAC,MAAM;oBACxB,SAAS,EAAE,QAAQ,CAAC,SAAS;iBAC9B,CAAC;gBACF,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS;oBAAE,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBACvD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,kEAAkE;QAClE,+DAA+D;IACjE,CAAC;IAEO,MAAM,CAAC,SAAiB,EAAE,MAA+B;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC;QACtE,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,GAAG,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC3C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAC7B,IAAI,IAAI,CAAC,eAAe,KAAK,EAAE;oBAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC/D,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACrG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAC7B,IAAI,IAAI,CAAC,eAAe,KAAK,EAAE;oBAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA2BD;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,GAAkC;IACzD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QAC1C,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,OAAQ,CAAuB,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtG,IAAI,GAAG;gBAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,OAAQ,CAAwB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtG,SAAS,CAAC,IAAI,CAAE,CAAsB,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACjE,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/bootstrap.js CHANGED
@@ -45,6 +45,15 @@ import { fetchBridgeConfig, } from "./adapters/agent-gateway-client.js";
45
45
  import { AgentGatewayFileClient, DataUrlTransport, FallbackTransport, HttpUrlTransport, } from "./model/image/transport.js";
46
46
  import { DeviceManager } from "./app/device-manager.js";
47
47
  import { AgentHostImpl } from "./app/agent-host.js";
48
+ import { JsonlMessageStore, safeFilename } from "./app/jsonl-store.js";
49
+ import { JsonlSessionSweeper } from "./app/jsonl-session-sweeper.js";
50
+ import { SessionManager } from "./app/session-manager.js";
51
+ import { deriveFixedSessionId } from "./app/fixed-session-id.js";
52
+ import { PluginCommandRegistry } from "./app/plugin-commands/registry.js";
53
+ import { ScreenshotCommandHandler } from "./app/plugin-commands/screenshot-command.js";
54
+ import { ScreenshotService } from "./app/screenshot-service.js";
55
+ import { AgentGatewayUserFileUploader } from "./adapters/user-file-uploader.js";
56
+ import { getDeviceAgentSessionsDir } from "./config/paths.js";
48
57
  import { ResourceResolutionCache, ResourceResolverRegistry, UrlResolver, BeeosFileResolver, defaultParsers, FsDiskPressureGuard, FsResourceLifecycleManager, FsResourceLifecycleSweeper, } from "./resources/index.js";
49
58
  import { ShortcutRegistry, ShortcutRouter, registerBuiltinShortcuts, } from "./shortcuts/index.js";
50
59
  import { BootstrapShortcutResourceFacade } from "./resources/shortcut-facade.js";
@@ -344,6 +353,120 @@ export async function bootstrap(opts = {}) {
344
353
  lifecycle: lifecycleManager,
345
354
  diskPressure: diskPressureGuard,
346
355
  });
356
+ // ── Session persistence + manager (shared by ACP + MessageBus plugins) ──
357
+ // v0.9.0 — bootstrap owns the SessionManager / JsonlMessageStore /
358
+ // JsonlSessionSweeper / PluginCommandRegistry lifecycles. Plugins
359
+ // attach to the SessionManager via `ctx.sessionManager` and bind
360
+ // their per-sid notifiers via `bindNotifier(sid, notifier)` — they
361
+ // MUST NOT construct their own SessionManager (the in-flight gate
362
+ // / Layer 3 device-physical-serial constraint depends on a single
363
+ // instance per process).
364
+ const fixedSessionId = deriveFixedSessionId(kp?.publicKey);
365
+ const sessionsDir = getDeviceAgentSessionsDir();
366
+ const messageStore = await JsonlMessageStore.open({
367
+ sessionsDir,
368
+ preloadSids: [fixedSessionId],
369
+ logger: { warn: (...args) => log.warn(...args) },
370
+ });
371
+ log.info({ fixedSessionId, sessionsDir }, "session store: jsonl ready");
372
+ // PluginCommandRegistry — `/screenshot` etc. Only registered when
373
+ // both the agent gateway URL AND a keypair are available (need to
374
+ // sign presign requests). Standalone / lab mode boots without it
375
+ // and `skills/list` returns an empty list — graceful degradation.
376
+ const pluginCommands = new PluginCommandRegistry();
377
+ if (kp && config.agentGatewayUrl && !config.standalone) {
378
+ const uploader = new AgentGatewayUserFileUploader({
379
+ agentGatewayUrl: config.agentGatewayUrl,
380
+ identity: { publicKey: kp.publicKey, privateKey: kp.privateKey },
381
+ });
382
+ const lazyMcp = {
383
+ screenshot: () => mcpProvider().screenshot(),
384
+ uiDump: (o) => mcpProvider().uiDump(o),
385
+ act: (a) => mcpProvider().act(a),
386
+ };
387
+ const screenshotService = new ScreenshotService(lazyMcp, uploader);
388
+ pluginCommands.register(new ScreenshotCommandHandler(screenshotService));
389
+ log.info({ commands: pluginCommands.list().map((c) => c.name) }, "plugin commands registered");
390
+ }
391
+ else {
392
+ log.info("plugin commands: skipping `/screenshot` etc. (no agentGatewayUrl / keypair / standalone mode)");
393
+ }
394
+ // History injection is opt-in via messageBus.historyEnabled. Forced
395
+ // OFF for `pi=true` because the PiOrchestratorAgent's outer prompt
396
+ // is treated as a brand-new task spec and would mis-read prior
397
+ // turns as new instructions. ACP path is unaffected — only MS-path
398
+ // `promptForSession` consults `historyEnabled`.
399
+ const historyEnabled = !!(config.messageBus?.historyEnabled ?? true) && !config.pi;
400
+ const sessionManager = new SessionManager({
401
+ host,
402
+ messageStore,
403
+ fixedSessionId,
404
+ pluginCommands,
405
+ sessionTtlMs: config.sessionTimeoutMs > 0 ? config.sessionTimeoutMs : undefined,
406
+ historyEnabled,
407
+ onSetModel: async (provider, model) => {
408
+ try {
409
+ await host.agent.setModel(provider, model);
410
+ log.info({ provider, model }, "agent model switched");
411
+ }
412
+ catch (e) {
413
+ log.warn({ err: e.message, provider, model }, "setModel failed");
414
+ }
415
+ },
416
+ onPluginCommandEvent: (ev) => {
417
+ if (ev.kind === "begin") {
418
+ log.info({
419
+ command: ev.name,
420
+ sessionId: ev.sessionId,
421
+ turnId: ev.turnId,
422
+ args: ev.args,
423
+ }, "plugin command begin");
424
+ }
425
+ else if (ev.kind === "end") {
426
+ log.info({
427
+ command: ev.name,
428
+ sessionId: ev.sessionId,
429
+ turnId: ev.turnId,
430
+ durationMs: ev.durationMs,
431
+ }, "plugin command end");
432
+ }
433
+ else {
434
+ log.warn({
435
+ command: ev.name,
436
+ sessionId: ev.sessionId,
437
+ turnId: ev.turnId,
438
+ durationMs: ev.durationMs,
439
+ err: ev.error.message,
440
+ stack: ev.error.stack,
441
+ }, "plugin command failed");
442
+ }
443
+ },
444
+ });
445
+ // Background sweeper for per-channel JSONL session files. The fixed
446
+ // sid (operator dashboard chat) is filtered out — it must never be
447
+ // reaped. `sessionTtlHours = 0` disables sweeping entirely (kiosk
448
+ // deployments that want forever-persisted history).
449
+ const sessionTtlHours = config.messageBus?.sessionTtlHours ?? 24;
450
+ const sweeper = sessionTtlHours > 0
451
+ ? new JsonlSessionSweeper({
452
+ sessionsDir,
453
+ ttlMs: sessionTtlHours * 60 * 60 * 1000,
454
+ intervalMs: 60 * 60 * 1000,
455
+ fixedSessionFilename: safeFilename(fixedSessionId),
456
+ logger: log,
457
+ })
458
+ : null;
459
+ if (sweeper) {
460
+ sweeper.start();
461
+ log.info({
462
+ sessionsDir,
463
+ ttlHours: sessionTtlHours,
464
+ fixedSessionFilename: safeFilename(fixedSessionId),
465
+ }, "session sweeper started");
466
+ }
467
+ else {
468
+ log.info("session sweeper disabled (sessionTtlHours=0)");
469
+ }
347
470
  // ── Plugins ──────────────────────────────────────────────────────────────
348
471
  const plugins = opts.pluginsOverride ??
349
472
  buildDefaultPlugins({
@@ -355,7 +478,7 @@ export async function bootstrap(opts = {}) {
355
478
  buildDeclarations: opts.buildDeclarations,
356
479
  mcpProvider,
357
480
  });
358
- const ctx = { host, config, log };
481
+ const ctx = { host, config, log, sessionManager };
359
482
  for (const p of plugins) {
360
483
  if (p.init)
361
484
  await p.init(ctx);
@@ -380,6 +503,28 @@ export async function bootstrap(opts = {}) {
380
503
  log.warn({ err: e.message, plugin: p.name }, "plugin stop failed");
381
504
  }
382
505
  }
506
+ // Detach SessionManager from the host event bus before we tear
507
+ // down the host below. Order matters: detach() unsubscribes the
508
+ // event listener, so subsequent host.cancelAll → task:end fan-out
509
+ // won't try to notify a half-disposed manager.
510
+ try {
511
+ sessionManager.detach();
512
+ }
513
+ catch {
514
+ /* ignore */
515
+ }
516
+ try {
517
+ sweeper?.stop();
518
+ }
519
+ catch {
520
+ /* ignore */
521
+ }
522
+ try {
523
+ await messageStore.close();
524
+ }
525
+ catch (e) {
526
+ log.warn({ err: e.message }, "session store: close failed");
527
+ }
383
528
  try {
384
529
  await host.cancelAll();
385
530
  }
@@ -455,7 +600,6 @@ function buildDefaultPlugins(opts) {
455
600
  plugins.push(new AcpPlugin({
456
601
  mcpProvider: opts.mcpProvider,
457
602
  keypair: opts.keypair,
458
- agentGatewayUrl: opts.config.agentGatewayUrl,
459
603
  }));
460
604
  }
461
605
  return plugins;