@nolag/agents 0.1.0 → 0.2.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.
- package/README.md +355 -0
- package/dist/AgentRoom.d.ts +7 -2
- package/dist/browser.js +1 -1
- package/dist/browser.js.map +1 -1
- package/dist/envelope.d.ts +2 -2
- package/dist/index.cjs +82 -36
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +82 -36
- package/dist/index.mjs.map +1 -1
- package/dist/patterns/handoff.d.ts +11 -4
- package/dist/types.d.ts +4 -0
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -178,13 +178,20 @@ class AgentRoom extends EventEmitter {
|
|
|
178
178
|
}
|
|
179
179
|
this._publish(TOPIC_TASKS, envelope);
|
|
180
180
|
}
|
|
181
|
-
/** Publish to the results topic */
|
|
181
|
+
/** Publish to the results topic — directed to the dispatcher via filter when replyTo is set */
|
|
182
182
|
publishResult(envelope) {
|
|
183
183
|
// Auto-set completedBy if not set
|
|
184
184
|
if (!envelope.completedBy) {
|
|
185
185
|
envelope.completedBy = this.agentId;
|
|
186
186
|
}
|
|
187
|
-
|
|
187
|
+
if (envelope.replyTo) {
|
|
188
|
+
this._publish(TOPIC_RESULTS, envelope, { filter: envelope.replyTo });
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
// Legacy: no reply address — unfiltered publish (only reaches
|
|
192
|
+
// wildcard subscribers, i.e. pre-0.2.0 SDKs)
|
|
193
|
+
this._publish(TOPIC_RESULTS, envelope);
|
|
194
|
+
}
|
|
188
195
|
}
|
|
189
196
|
/** Publish to the state topic (retained) */
|
|
190
197
|
publishState(data) {
|
|
@@ -206,8 +213,17 @@ class AgentRoom extends EventEmitter {
|
|
|
206
213
|
publishInbox(data) {
|
|
207
214
|
this._publish(TOPIC_INBOX, data);
|
|
208
215
|
}
|
|
209
|
-
/**
|
|
216
|
+
/**
|
|
217
|
+
* Publish a tool message.
|
|
218
|
+
* Requests go to the tools topic (load-balanced one-of-N across server
|
|
219
|
+
* replicas). Responses are directed to the requester on the results topic
|
|
220
|
+
* via filter — never load-balanced, never broadcast.
|
|
221
|
+
*/
|
|
210
222
|
publishTools(data) {
|
|
223
|
+
if (data?.type === "tool_response" && typeof data.replyTo === "string" && data.replyTo) {
|
|
224
|
+
this._publish(TOPIC_RESULTS, data, { filter: data.replyTo });
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
211
227
|
this._publish(TOPIC_TOOLS, data);
|
|
212
228
|
}
|
|
213
229
|
/** Publish to the approval topic (retained) */
|
|
@@ -309,23 +325,33 @@ class AgentRoom extends EventEmitter {
|
|
|
309
325
|
});
|
|
310
326
|
}
|
|
311
327
|
_wireTopicListeners() {
|
|
312
|
-
//
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
328
|
+
// Work distribution topics honour the connection-level loadBalance
|
|
329
|
+
// setting, so a pool shares each message one-of-N (no double handling):
|
|
330
|
+
// - tasks: each task goes to exactly one worker in the group
|
|
331
|
+
// - tools: each tool REQUEST goes to exactly one tool-server replica
|
|
332
|
+
this._roomContext.subscribe(TOPIC_TASKS);
|
|
333
|
+
this._roomContext.subscribe(TOPIC_TOOLS);
|
|
334
|
+
// Replies are DIRECTED, not broadcast: the results topic carries task
|
|
335
|
+
// results and tool responses published with `filter: <recipient agentId>`,
|
|
336
|
+
// and each agent subscribes only to its own filter sub-topic. The broker
|
|
337
|
+
// routes each reply straight to the requester — no fan-out waste, and
|
|
338
|
+
// immune to load-balance groups (a broadcast or LB'd reply could land on
|
|
339
|
+
// a group member that doesn't hold the pending correlation, timing out
|
|
340
|
+
// the requester even though the responder did the work).
|
|
341
|
+
this._roomContext.subscribe(TOPIC_RESULTS, {
|
|
342
|
+
loadBalance: false,
|
|
343
|
+
filters: [this.agentId],
|
|
344
|
+
});
|
|
345
|
+
// Broadcast topics must always fan out, even when the connection enables
|
|
346
|
+
// loadBalance for work distribution: state/events are broadcasts by
|
|
347
|
+
// nature; inbox and approval messages are claimed client-side.
|
|
348
|
+
const broadcastTopics = [TOPIC_STATE, TOPIC_EVENTS, TOPIC_INBOX, TOPIC_APPROVAL];
|
|
349
|
+
for (const topic of broadcastTopics) {
|
|
350
|
+
this._roomContext.subscribe(topic, { loadBalance: false });
|
|
324
351
|
}
|
|
325
352
|
// Simple 1:1 mappings
|
|
326
353
|
const simpleMap = [
|
|
327
354
|
{ topic: TOPIC_TASKS, event: "task" },
|
|
328
|
-
{ topic: TOPIC_RESULTS, event: "result" },
|
|
329
355
|
{ topic: TOPIC_STATE, event: "stateChange" },
|
|
330
356
|
{ topic: TOPIC_EVENTS, event: "event" },
|
|
331
357
|
{ topic: TOPIC_INBOX, event: "inbox" },
|
|
@@ -336,6 +362,17 @@ class AgentRoom extends EventEmitter {
|
|
|
336
362
|
this.emit(event, data);
|
|
337
363
|
});
|
|
338
364
|
}
|
|
365
|
+
// Multiplexed: results topic carries task results AND tool responses,
|
|
366
|
+
// both filter-directed to this agent.
|
|
367
|
+
this._roomContext.on(TOPIC_RESULTS, (data) => {
|
|
368
|
+
this._log(`received ${TOPIC_RESULTS} in room ${this.name}`);
|
|
369
|
+
if (data?.type === "tool_response") {
|
|
370
|
+
this.emit("toolResponse", data);
|
|
371
|
+
}
|
|
372
|
+
else {
|
|
373
|
+
this.emit("result", data);
|
|
374
|
+
}
|
|
375
|
+
});
|
|
339
376
|
// Multiplexed: approval topic carries requests + responses
|
|
340
377
|
this._roomContext.on(TOPIC_APPROVAL, (data) => {
|
|
341
378
|
this._log(`received ${TOPIC_APPROVAL} in room ${this.name}`);
|
|
@@ -346,7 +383,9 @@ class AgentRoom extends EventEmitter {
|
|
|
346
383
|
this.emit("approvalRequest", data);
|
|
347
384
|
}
|
|
348
385
|
});
|
|
349
|
-
//
|
|
386
|
+
// Tools topic carries requests; tool_response is still accepted here for
|
|
387
|
+
// backward compatibility with responders on older SDK versions (their
|
|
388
|
+
// responses are only reliable when the requester is not load-balanced).
|
|
350
389
|
this._roomContext.on(TOPIC_TOOLS, (data) => {
|
|
351
390
|
this._log(`received ${TOPIC_TOOLS} in room ${this.name}`);
|
|
352
391
|
if (data?.type === "tool_response") {
|
|
@@ -673,7 +712,7 @@ function createTaskEnvelope(capability, payload, options) {
|
|
|
673
712
|
timeout: options?.timeout,
|
|
674
713
|
};
|
|
675
714
|
}
|
|
676
|
-
function createResultEnvelope(taskId, correlationId, status, payload, error, completedBy) {
|
|
715
|
+
function createResultEnvelope(taskId, correlationId, status, payload, error, completedBy, replyTo) {
|
|
677
716
|
return {
|
|
678
717
|
type: "result",
|
|
679
718
|
correlationId,
|
|
@@ -683,6 +722,7 @@ function createResultEnvelope(taskId, correlationId, status, payload, error, com
|
|
|
683
722
|
error,
|
|
684
723
|
completedAt: createTimestamp(),
|
|
685
724
|
completedBy,
|
|
725
|
+
replyTo,
|
|
686
726
|
};
|
|
687
727
|
}
|
|
688
728
|
function createStateEnvelope(key, value, version, updatedBy) {
|
|
@@ -742,7 +782,7 @@ function createToolRequest(toolName, args, requestedBy, options) {
|
|
|
742
782
|
requestedAt: createTimestamp(),
|
|
743
783
|
};
|
|
744
784
|
}
|
|
745
|
-
function createToolResponse(requestId, correlationId, status, result, error, respondedBy) {
|
|
785
|
+
function createToolResponse(requestId, correlationId, status, result, error, respondedBy, replyTo) {
|
|
746
786
|
return {
|
|
747
787
|
type: "tool_response",
|
|
748
788
|
requestId,
|
|
@@ -752,6 +792,7 @@ function createToolResponse(requestId, correlationId, status, result, error, res
|
|
|
752
792
|
error,
|
|
753
793
|
respondedBy,
|
|
754
794
|
respondedAt: createTimestamp(),
|
|
795
|
+
replyTo,
|
|
755
796
|
};
|
|
756
797
|
}
|
|
757
798
|
|
|
@@ -808,32 +849,29 @@ class Handoff {
|
|
|
808
849
|
}
|
|
809
850
|
const envelope = createTaskEnvelope(capability, payload, {
|
|
810
851
|
...options,
|
|
811
|
-
createdBy: this._room.agentId,
|
|
852
|
+
createdBy: options?.createdBy ?? this._room.agentId,
|
|
853
|
+
// Reply address: workers publish the result filter-directed to this
|
|
854
|
+
// room's results subscription
|
|
855
|
+
replyTo: options?.replyTo ?? this._room.agentId,
|
|
812
856
|
});
|
|
813
857
|
this._room.publishTask(envelope);
|
|
814
858
|
if (options?.waitForResult) {
|
|
815
859
|
return this._correlations.register(envelope.correlationId, options.timeout);
|
|
816
860
|
}
|
|
817
861
|
}
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
* capabilities will be delivered to the handler. Non-matching tasks
|
|
823
|
-
* are silently ignored.
|
|
824
|
-
*
|
|
825
|
-
* @param capabilities - Array of capabilities this worker handles.
|
|
826
|
-
* Pass `'*'` to receive all tasks.
|
|
827
|
-
* @param handler - Async handler called with the task and a respond function.
|
|
828
|
-
*/
|
|
829
|
-
onTask(capabilities, handler) {
|
|
862
|
+
onTask(capabilitiesOrHandler, maybeHandler) {
|
|
863
|
+
// Single-arg form: onTask(handler) receives all tasks
|
|
864
|
+
const capabilities = typeof capabilitiesOrHandler === "function" ? '*' : capabilitiesOrHandler;
|
|
865
|
+
const handler = typeof capabilitiesOrHandler === "function" ? capabilitiesOrHandler : maybeHandler;
|
|
830
866
|
this._room.on("task", (task) => {
|
|
831
867
|
// Filter by capability unless wildcard
|
|
832
868
|
if (capabilities !== '*' && !capabilities.includes(task.capability)) {
|
|
833
869
|
return;
|
|
834
870
|
}
|
|
835
871
|
const respond = (status, payload, error) => {
|
|
836
|
-
const result = createResultEnvelope(task.taskId, task.correlationId, status, payload, error, this._room.agentId
|
|
872
|
+
const result = createResultEnvelope(task.taskId, task.correlationId, status, payload, error, this._room.agentId,
|
|
873
|
+
// Direct the result to the dispatcher's filter sub-topic
|
|
874
|
+
task.replyTo ?? task.createdBy);
|
|
837
875
|
this._room.publishResult(result);
|
|
838
876
|
};
|
|
839
877
|
handler(task, respond);
|
|
@@ -1043,16 +1081,18 @@ class Tools {
|
|
|
1043
1081
|
const handler = this._handlers.get(envelope.toolName);
|
|
1044
1082
|
if (!handler)
|
|
1045
1083
|
return;
|
|
1084
|
+
// Direct the response back to the requester's filter sub-topic
|
|
1085
|
+
const replyTo = envelope.replyTo ?? envelope.requestedBy;
|
|
1046
1086
|
try {
|
|
1047
1087
|
const result = await handler(envelope.arguments);
|
|
1048
|
-
const response = createToolResponse(envelope.requestId, envelope.correlationId, "success", result, undefined, this._agentId);
|
|
1088
|
+
const response = createToolResponse(envelope.requestId, envelope.correlationId, "success", result, undefined, this._agentId, replyTo);
|
|
1049
1089
|
this._room.publishTools(response);
|
|
1050
1090
|
}
|
|
1051
1091
|
catch (err) {
|
|
1052
1092
|
const response = createToolResponse(envelope.requestId, envelope.correlationId, "error", null, {
|
|
1053
1093
|
code: "TOOL_ERROR",
|
|
1054
1094
|
message: err instanceof Error ? err.message : String(err),
|
|
1055
|
-
}, this._agentId);
|
|
1095
|
+
}, this._agentId, replyTo);
|
|
1056
1096
|
this._room.publishTools(response);
|
|
1057
1097
|
}
|
|
1058
1098
|
});
|
|
@@ -1067,7 +1107,13 @@ class Tools {
|
|
|
1067
1107
|
* Invoke a remote tool and wait for the response.
|
|
1068
1108
|
*/
|
|
1069
1109
|
async invoke(toolName, args, options) {
|
|
1070
|
-
|
|
1110
|
+
// replyTo is the room's agentId — the filter sub-topic this room's
|
|
1111
|
+
// results subscription listens on. (this._agentId may differ when a
|
|
1112
|
+
// caller attributes requests to a logical agent; delivery must use the
|
|
1113
|
+
// address that is actually subscribed.)
|
|
1114
|
+
const envelope = createToolRequest(toolName, args, this._agentId, {
|
|
1115
|
+
replyTo: this._room.agentId,
|
|
1116
|
+
});
|
|
1071
1117
|
this._room.publishTools(envelope);
|
|
1072
1118
|
return this._correlations.register(envelope.correlationId, options?.timeout);
|
|
1073
1119
|
}
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/EventEmitter.ts","../src/constants.ts","../src/AgentRoom.ts","../src/utils.ts","../src/NoLagAgents.ts","../src/correlation.ts","../src/envelope.ts","../src/patterns/handoff.ts","../src/patterns/inbox.ts","../src/patterns/blackboard.ts","../src/patterns/observe.ts","../src/patterns/approve.ts","../src/patterns/tools.ts","../src/tags.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["NoLag"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/EventEmitter.ts","../src/constants.ts","../src/AgentRoom.ts","../src/utils.ts","../src/NoLagAgents.ts","../src/correlation.ts","../src/envelope.ts","../src/patterns/handoff.ts","../src/patterns/inbox.ts","../src/patterns/blackboard.ts","../src/patterns/observe.ts","../src/patterns/approve.ts","../src/patterns/tools.ts","../src/tags.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["NoLag"],"mappings":";;;;AAAA;;;;;AAKG;MACU,YAAY,CAAA;AAAzB,IAAA,WAAA,GAAA;AAGU,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAGxB;IAgDL;IA9CE,EAAE,CACA,KAAQ,EACR,OAAuC,EAAA;QAEvC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC;QACtC;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,OAAO,CAAC;AACvC,QAAA,OAAO,IAAI;IACb;IAEA,GAAG,CACD,KAAQ,EACR,OAAwC,EAAA;QAExC,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;QAC5C;aAAO;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9B;AACA,QAAA,OAAO,IAAI;IACb;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACtB,QAAA,OAAO,IAAI;IACb;AAEU,IAAA,IAAI,CACZ,KAAQ,EACR,GAAG,IAAiB,EAAA;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1C,QAAA,IAAI,CAAC,QAAQ;YAAE;AACf,QAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC9B,YAAA,IAAI;AACF,gBAAA,OAAO,CAAC,GAAG,IAAI,CAAC;YAClB;YAAE,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAA,SAAA,EAAY,MAAM,CAAC,KAAK,CAAC,CAAA,SAAA,CAAW,EAAE,CAAC,CAAC;YACxD;QACF;IACF;AAEA,IAAA,aAAa,CAA2B,KAAQ,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC;IAC7C;AACD;;AC5DD;AACO,MAAM,gBAAgB,GAAG,QAAQ;AAExC;AACO,MAAM,WAAW,GAAG,OAAO;AAElC;AACO,MAAM,aAAa,GAAG,SAAS;AAEtC;AACO,MAAM,WAAW,GAAG,OAAO;AAElC;AACO,MAAM,YAAY,GAAG,QAAQ;AAEpC;AACO,MAAM,WAAW,GAAG,OAAO;AAElC;AACO,MAAM,WAAW,GAAG,OAAO;AAElC;AACO,MAAM,cAAc,GAAG,UAAU;AAExC;AACO,MAAM,YAAY,GAAG,kBAAkB;;ACD9C;;;;;;;;;;;;;;;;;AAiBG;AACG,MAAO,SAAU,SAAQ,YAA6B,CAAA;IAW1D,WAAA,CACE,IAAY,EACZ,WAAgB,EAChB,MAAW,EACX,GAAiC,EACjC,OAAe,EACf,QAA4B,EAAA;AAE5B,QAAA,KAAK,EAAE;;AAVD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,GAAG,EAA0B;AAWjD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG;AACf,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;QACzB,IAAI,CAAC,mBAAmB,EAAE;QAC1B,IAAI,CAAC,sBAAsB,EAAE;;QAG7B,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,IAAI,CAAC,CAAA,yBAAA,EAA4B,IAAI,CAAA,CAAA,CAAG,EAAE,QAAQ,CAAC;AACxD,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC;QACzC;;QAGA,IAAI,CAAC,qBAAqB,EAAE;IAC9B;;;;;IAOA,kBAAkB,GAAA;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1C;;AAGA,IAAA,UAAU,CAAC,UAAkB,EAAA;AAC3B,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAC7C,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAC3C;IACH;;AAGA,IAAA,aAAa,CAAC,UAAkB,EAAA;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC;IAC/C;;IAGA,wBAAwB,GAAA;AACtB,QAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU;QAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;AACzC,YAAA,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,YAAY,EAAE;AACpC,gBAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YACf;QACF;AACA,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB;;;;;AAOA,IAAA,WAAW,CAAC,IAAuB,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,IAAI,CAAC,IAAI,CAAC,CAAA,0BAAA,EAA6B,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;AACnD,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC;IACrC;;AAGA,IAAA,MAAM,aAAa,GAAA;AACjB,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;YACtD,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAM,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAClE;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,EAAE;QACX;IACF;AAEA;;AAEG;AACH,IAAA,aAAa,CAAC,KAA0D,EAAE,OAAe,EAAE,IAAwB,EAAA;AACjH,QAAA,IAAI,KAAK,KAAK,eAAe,EAAE;AAC7B,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;QACrC;aAAO;YACL,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,EAAuB,CAAC;QAC5D;IACF;;;;;AAOA,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,YAAY;IAC1B;;AAGA,IAAA,WAAW,CAAC,QAAsB,EAAA;;AAEhC,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AACvB,YAAA,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO;QACnC;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IACtC;;AAGA,IAAA,aAAa,CAAC,QAAwB,EAAA;;AAEpC,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AACzB,YAAA,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO;QACrC;AACA,QAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtE;aAAO;;;AAGL,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;QACxC;IACF;;AAGA,IAAA,YAAY,CAAC,IAA6B,EAAA;;AAExC,QAAA,IAAI,CAAE,IAAY,CAAC,SAAS,EAAE;AAC3B,YAAA,IAAY,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO;QACxC;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACpD;;AAGA,IAAA,YAAY,CAAC,IAA6B,EAAA;;AAExC,QAAA,IAAI,CAAE,IAAY,CAAC,SAAS,EAAE;AAC3B,YAAA,IAAY,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO;QACxC;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IACnC;;AAGA,IAAA,YAAY,CAAC,IAA6B,EAAA;AACxC,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAClC;AAEA;;;;;AAKG;AACH,IAAA,YAAY,CAAC,IAA6B,EAAA;AACxC,QAAA,IAAI,IAAI,EAAE,IAAI,KAAK,eAAe,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AACtF,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5D;QACF;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAClC;;AAGA,IAAA,eAAe,CAAC,IAA6B,EAAA;AAC3C,QAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvD;;;;AAMQ,IAAA,QAAQ,CAAC,KAAa,EAAE,IAAa,EAAE,OAA+C,EAAA;QAC5F,IAAI,CAAC,IAAI,CAAC,CAAA,WAAA,EAAc,KAAK,CAAA,SAAA,EAAY,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;QACrD,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC;QAC9C;aAAO;YACL,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;QACrC;IACF;AAEQ,IAAA,iBAAiB,CAAC,KAAU,EAAA;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE;QACnD,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE;YAClD,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,YAAY,IAAI,EAAE;AAC/C,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,OAAO;AAC9B,YAAA,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,EAAE;YACzC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,WAAW,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE;SAC1C;IACH;AAEQ,IAAA,MAAM,qBAAqB,GAAA;AACjC,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;AACtD,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACzB,gBAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;oBAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC/C,oBAAA,IAAI,SAAS,CAAC,OAAO,EAAE;wBACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC;oBAChD;gBACF;AACA,gBAAA,IAAI,CAAC,IAAI,CAAC,CAAA,WAAA,EAAc,IAAI,CAAC,OAAO,CAAC,IAAI,mBAAmB,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;YAC1E;QACF;AAAE,QAAA,MAAM;;QAER;IACF;IAEQ,sBAAsB,GAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;QAE3B,MAAM,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC,GAAQ,KAAI;AACxC,YAAA,IAAI,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE;gBAC7C,MAAM,EAAE,GAAG,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,YAAY;gBAC5C,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,QAAQ,IAAI,EAAE;gBAC7C,IAAI,EAAE,EAAE;AACN,oBAAA,MAAM,KAAK,GAAmB;AAC5B,wBAAA,OAAO,EAAE,EAAE;AACX,wBAAA,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACrB,wBAAA,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO;AAC1B,wBAAA,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;wBACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,wBAAA,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;qBACxB;oBACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC;AAC3B,oBAAA,IAAI,CAAC,IAAI,CAAC,CAAA,kBAAA,EAAqB,IAAI,CAAC,IAAI,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC;oBAC5E,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC;gBACrC;YACF;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,GAAG,gBAAgB,EAAE,CAAC,GAAQ,KAAI;AACzC,YAAA,IAAI,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE;gBAC7C,MAAM,EAAE,GAAG,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,YAAY;gBAC5C,IAAI,EAAE,EAAE;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAClC,oBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AACvB,oBAAA,IAAI,CAAC,IAAI,CAAC,CAAA,gBAAA,EAAmB,IAAI,CAAC,IAAI,CAAA,CAAA,CAAG,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;AAC7D,oBAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;gBAChC;YACF;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,GAAG,iBAAiB,EAAE,CAAC,GAAQ,KAAI;AAC1C,YAAA,IAAI,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE;gBAC7C,MAAM,EAAE,GAAG,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,YAAY;gBAC5C,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,QAAQ,IAAI,EAAE;gBAC7C,IAAI,EAAE,EAAE;oBACN,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AACrC,oBAAA,MAAM,KAAK,GAAmB;AAC5B,wBAAA,OAAO,EAAE,EAAE;wBACX,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,IAAI,EAAE;wBACvC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,IAAI,OAAO;wBAC5C,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,QAAQ,EAAE,YAAY,IAAI,EAAE;AAC/D,wBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE,QAAQ;wBAC7C,WAAW,EAAE,QAAQ,EAAE,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE;qBACjD;oBACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC;oBAC3B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,CAAC;gBACvC;YACF;AACF,QAAA,CAAC,CAAC;IACJ;IAEQ,mBAAmB,GAAA;;;;;AAKzB,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC;AACxC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC;;;;;;;;AASxC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,aAAa,EAAE;AACzC,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;AACxB,SAAA,CAAC;;;;QAKF,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,CAAC;AAChF,QAAA,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE;AACnC,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QAC5D;;AAGA,QAAA,MAAM,SAAS,GAA2D;AACxE,YAAA,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;AACrC,YAAA,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE;AAC5C,YAAA,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE;AACvC,YAAA,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE;SACvC;QACD,KAAK,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,SAAS,EAAE;YACxC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,IAAS,KAAI;gBACxC,IAAI,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,KAAK,CAAA,SAAA,EAAY,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;AACnD,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;AACxB,YAAA,CAAC,CAAC;QACJ;;;QAIA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,IAAS,KAAI;YAChD,IAAI,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,aAAa,CAAA,SAAA,EAAY,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;AAC3D,YAAA,IAAI,IAAI,EAAE,IAAI,KAAK,eAAe,EAAE;AAClC,gBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC;YACjC;iBAAO;AACL,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC3B;AACF,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,IAAS,KAAI;YACjD,IAAI,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,cAAc,CAAA,SAAA,EAAY,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;AAC5D,YAAA,IAAI,IAAI,EAAE,IAAI,KAAK,mBAAmB,EAAE;AACtC,gBAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC;YACrC;iBAAO;AACL,gBAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;YACpC;AACF,QAAA,CAAC,CAAC;;;;QAKF,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAS,KAAI;YAC9C,IAAI,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,WAAW,CAAA,SAAA,EAAY,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;AACzD,YAAA,IAAI,IAAI,EAAE,IAAI,KAAK,eAAe,EAAE;AAClC,gBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC;YACjC;iBAAO;AACL,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;YAChC;AACF,QAAA,CAAC,CAAC;IACJ;AACD;;AC1YD;;;AAGG;SACa,UAAU,GAAA;IACxB,IACE,OAAO,MAAM,KAAK,WAAW;AAC7B,QAAA,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EACvC;AACA,QAAA,OAAO,MAAM,CAAC,UAAU,EAAE;IAC5B;IACA,OAAO,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,MACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAC5C;AACH;AAEA;;AAEG;AACG,SAAU,YAAY,CAAC,MAAc,EAAE,OAAgB,EAAA;IAC3D,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,OAAO,CAAC,GAAG,KAAgB,KAAI,EAAE,CAAC;IACpC;AACA,IAAA,OAAO,CAAC,GAAG,IAAe,KAAI;QAC5B,OAAO,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC;AACrC,IAAA,CAAC;AACH;AAEA;;AAEG;SACa,eAAe,GAAA;AAC7B,IAAA,OAAO,IAAI,CAAC,GAAG,EAAE;AACnB;;ACnBA;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACG,MAAO,WAAY,SAAQ,YAA+B,CAAA;IAS9D,WAAA,CAAY,KAAa,EAAE,OAAA,GAA8B,EAAE,EAAA;AACzD,QAAA,KAAK,EAAE;QAPD,IAAA,CAAA,OAAO,GAAuB,IAAI;QAClC,IAAA,CAAA,WAAW,GAAQ,IAAI;AACvB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,GAAG,EAAqB;QAErC,IAAA,CAAA,UAAU,GAAG,KAAK;AAIxB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,CAAC,QAAQ,GAAG;AACd,YAAA,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,gBAAgB;AAC5C,YAAA,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,UAAU,EAAE;AACxC,YAAA,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;AAC7B,YAAA,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC;YACtC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC;AACD,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC9D;;AAGA,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO;IAC9B;;AAGA,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU;IACxB;;AAGA,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;IACpB;;AAGA,IAAA,MAAM,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;QAE1B,IAAI,CAAC,OAAO,GAAGA,WAAK,CAAC,IAAI,CAAC,MAAM,EAAE;AAChC,YAAA,GAAI,IAAI,CAAC,QAAgB,CAAC,aAAa;AACxC,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAE9D,IAAI,CAAC,OAAQ,CAAC,EAAE,CAAC,WAAkB,EAAE,MAAK;AACxC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AACxB,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,OAAQ,CAAC,EAAE,CAAC,cAAqB,EAAE,CAAC,MAAc,KAAI;AACzD,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;AAClC,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;AACnC,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,OAAQ,CAAC,EAAE,CAAC,aAAoB,EAAE,MAAK;AAC1C,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1B,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,OAAQ,CAAC,EAAE,CAAC,OAAc,EAAE,CAAC,GAAU,KAAI;YAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;AACzB,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,IAAI,CAAC,OAAQ,CAAC,OAAO,EAAE;;QAG7B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC1C,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACrB;;AAGA,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChD;IACF;AAEA;;;;;AAKG;IACH,MAAM,cAAc,CAAC,SAAiB,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC;QACjF;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,yBAAyB,SAAS,CAAA,CAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;;;QAIlD,IAAI,CAAC,OAAQ,CAAC,EAAE,CAAC,oBAA2B,EAAE,CAAC,GAAQ,KAAI;AACzD,YAAA,MAAM,EAAE,GAAG,GAAG,EAAE,OAAO;AACvB,YAAA,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE;YAC5B,IAAI,EAAE,EAAE;gBACN,IAAI,CAAC,IAAI,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA,CAAE,CAAC;gBACrD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;AACvC,oBAAA,MAAM,MAAM,GAAI,IAAY,CAAC,OAA2B;oBACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACnB,wBAAA,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AACb,4BAAA,OAAO,EAAE,EAAE;AACX,4BAAA,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACrB,4BAAA,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO;AAC1B,4BAAA,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;4BACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,4BAAA,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;AACxB,yBAAA,CAAC;oBACJ;oBACA,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC;gBAC9C;YACF;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,OAAQ,CAAC,EAAE,CAAC,qBAA4B,EAAE,CAAC,GAAQ,KAAI;AAC1D,YAAA,MAAM,EAAE,GAAG,GAAG,EAAE,OAAO;YACvB,IAAI,EAAE,EAAE;AACN,gBAAA,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAA,CAAE,CAAC;gBACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;AACvC,oBAAA,MAAM,MAAM,GAAI,IAAY,CAAC,OAA2B;AACxD,oBAAA,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AACjB,oBAAA,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,CAAC;gBACzC;YACF;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,OAAQ,CAAC,EAAE,CAAC,sBAA6B,EAAE,CAAC,GAAQ,KAAI;AAC3D,YAAA,MAAM,EAAE,GAAG,GAAG,EAAE,OAAO;AACvB,YAAA,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE;YAC5B,IAAI,EAAE,EAAE;gBACN,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;AACvC,oBAAA,MAAM,MAAM,GAAI,IAAY,CAAC,OAA2B;oBACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/B,IAAI,QAAQ,EAAE;wBACZ,IAAI,IAAI,CAAC,IAAI;AAAE,4BAAA,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;wBACxC,IAAI,IAAI,CAAC,IAAI;AAAE,4BAAA,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;wBACxC,IAAI,IAAI,CAAC,YAAY;AAAE,4BAAA,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;wBAChE,IAAI,IAAI,CAAC,QAAQ;AAAE,4BAAA,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;oBACtD;oBACA,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,CAAC;gBAChD;YACF;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;AAC5C,YAAA,IAAI,CAAC,IAAI,CAAC,CAAA,gCAAA,CAAkC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;YAC9E,OAAO,YAAY,IAAI,EAAE;QAC3B;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,CAAC;AAC5C,YAAA,OAAO,EAAE;QACX;IACF;;IAGA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAC7B,QAAA,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;IACzB;AAEA;;;AAGG;AACH,IAAA,IAAI,CAAC,IAAY,EAAA;QACf,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACrC,QAAA,IAAI,SAAS;AAAE,YAAA,OAAO,SAAS;AAE/B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,MAAM,IAAI,KAAK,CACb,uDAAuD,CACxD;QACH;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAA,CAAE,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;AAClD,QAAA,SAAS,GAAG,IAAI,SAAS,CACvB,IAAI,EACJ,WAAW,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,CAAC,OAAO,EACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CACvB;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;AAChC,QAAA,OAAO,SAAS;IAClB;AACD;;AC9OD;;;AAGG;MACU,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;AACU,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,GAAG,EAOvB;IAyEL;AAvEE;;;AAGG;IACH,QAAQ,CAAC,aAAqB,EAAE,SAAkB,EAAA;QAChD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,KAAI;YACxC,IAAI,KAAK,GAAyC,IAAI;AAEtD,YAAA,IAAI,SAAS,IAAI,SAAS,GAAG,CAAC,EAAE;AAC9B,gBAAA,KAAK,GAAG,UAAU,CAAC,MAAK;AACtB,oBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;oBACnC,MAAM,CACJ,IAAI,KAAK,CACP,CAAA,YAAA,EAAe,aAAa,CAAA,iBAAA,EAAoB,SAAS,CAAA,EAAA,CAAI,CAC9D,CACF;gBACH,CAAC,EAAE,SAAS,CAAC;YACf;AAEA,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC9D,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;IACH,OAAO,CAAC,aAAqB,EAAE,KAAQ,EAAA;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;AAC9C,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,KAAK;QAExB,IAAI,KAAK,CAAC,KAAK;AAAE,YAAA,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;AACnC,QAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACpB,QAAA,OAAO,IAAI;IACb;AAEA;;AAEG;IACH,MAAM,CAAC,aAAqB,EAAE,KAAY,EAAA;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;AAC9C,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,KAAK;QAExB,IAAI,KAAK,CAAC,KAAK;AAAE,YAAA,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;AACnC,QAAA,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACnB,QAAA,OAAO,IAAI;IACb;AAEA;;AAEG;AACH,IAAA,GAAG,CAAC,aAAqB,EAAA;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;IACzC;AAEA;;AAEG;IACH,KAAK,GAAA;QACH,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACvC,IAAI,KAAK,CAAC,KAAK;AAAE,gBAAA,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1C,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAA,YAAA,EAAe,EAAE,CAAA,UAAA,CAAY,CAAC,CAAC;QACxD;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;IACvB;AAEA,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI;IAC3B;AACD;;SCzEe,kBAAkB,CAChC,UAAkB,EAClB,OAAgC,EAChC,OAOC,EAAA;IAED,OAAO;AACL,QAAA,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,UAAU,EAAE;QACpB,aAAa,EAAE,UAAU,EAAE;QAC3B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,UAAU;QACV,OAAO;QACP,IAAI,EAAE,OAAO,EAAE,IAAI;AACnB,QAAA,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,QAAQ;QACvC,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,SAAS,EAAE,eAAe,EAAE;QAC5B,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,OAAO,EAAE,OAAO,EAAE,OAAO;KAC1B;AACH;AAEM,SAAU,oBAAoB,CAClC,MAAc,EACd,aAAqB,EACrB,MAAgC,EAChC,OAAgC,EAChC,KAAyC,EACzC,WAAoB,EACpB,OAAgB,EAAA;IAEhB,OAAO;AACL,QAAA,IAAI,EAAE,QAAQ;QACd,aAAa;QACb,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,WAAW,EAAE,eAAe,EAAE;QAC9B,WAAW;QACX,OAAO;KACR;AACH;AAEM,SAAU,mBAAmB,CACjC,GAAW,EACX,KAAc,EACd,OAAe,EACf,SAAiB,EAAA;IAEjB,OAAO;AACL,QAAA,IAAI,EAAE,OAAO;QACb,GAAG;QACH,KAAK;QACL,OAAO;QACP,SAAS;QACT,SAAS,EAAE,eAAe,EAAE;KAC7B;AACH;AAEM,SAAU,mBAAmB,CACjC,QAAgB,EAChB,SAAiB,EACjB,OAAgC,EAChC,QAAA,GAAsC,MAAM,EAAA;IAE5C,OAAO;AACL,QAAA,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,UAAU,EAAE;QACrB,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,OAAO;QACP,SAAS,EAAE,eAAe,EAAE;KAC7B;AACH;AAEM,SAAU,qBAAqB,CACnC,MAAc,EACd,OAAgB,EAChB,WAAmB,EACnB,OAGC,EAAA;IAED,OAAO;AACL,QAAA,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,UAAU,EAAE;QACvB,aAAa,EAAE,UAAU,EAAE;QAC3B,MAAM;QACN,OAAO;AACP,QAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,QAAQ;QACrC,WAAW;QACX,WAAW,EAAE,eAAe,EAAE;QAC9B,SAAS,EAAE,OAAO,EAAE,SAAS;KAC9B;AACH;AAEM,SAAU,sBAAsB,CACpC,SAAiB,EACjB,aAAqB,EACrB,QAA8C,EAC9C,WAAmB,EACnB,MAAe,EAAA;IAEf,OAAO;AACL,QAAA,IAAI,EAAE,mBAAmB;QACzB,SAAS;QACT,aAAa;QACb,QAAQ;QACR,WAAW;QACX,MAAM;QACN,WAAW,EAAE,eAAe,EAAE;KAC/B;AACH;AAEM,SAAU,iBAAiB,CAC/B,QAAgB,EAChB,IAA6B,EAC7B,WAAmB,EACnB,OAA8B,EAAA;IAE9B,OAAO;AACL,QAAA,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,UAAU,EAAE;QACvB,aAAa,EAAE,UAAU,EAAE;QAC3B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,QAAQ;AACR,QAAA,SAAS,EAAE,IAAI;QACf,WAAW;QACX,WAAW,EAAE,eAAe,EAAE;KAC/B;AACH;AAEM,SAAU,kBAAkB,CAChC,SAAiB,EACjB,aAAqB,EACrB,MAAsC,EACtC,MAAe,EACf,KAAyC,EACzC,WAAoB,EACpB,OAAgB,EAAA;IAEhB,OAAO;AACL,QAAA,IAAI,EAAE,eAAe;QACrB,SAAS;QACT,aAAa;QACb,MAAM;QACN,MAAM;QACN,KAAK;QACL,WAAW;QACX,WAAW,EAAE,eAAe,EAAE;QAC9B,OAAO;KACR;AACH;;AC/JA;;;;;;;;;;;;;;;;;;;;;;;AAuBG;MACU,OAAO,CAAA;AAIlB,IAAA,WAAA,CAAY,IAAe,EAAA;AAFnB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,kBAAkB,EAAkB;AAG9D,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;;QAGjB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,KAAI;YACnC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC9D,QAAA,CAAC,CAAC;IACJ;AAEA;;;;;;AAMG;AACH,IAAA,MAAM,QAAQ,CACZ,UAAkB,EAClB,OAAgC,EAChC,OAYC,EAAA;;AAGD,QAAA,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;AACjD,YAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACxB,gBAAA,MAAM,IAAI,KAAK,CACb,CAAA,0BAAA,EAA6B,UAAU,CAAA,gBAAA,CAAkB;oBACzD,CAAA,yBAAA,EAA4B,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,GAAA,CAAK;oBACjF,CAAA,kBAAA,EAAqB,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAA,EAAA,CAAI;AAC/D,oBAAA,CAAA,gDAAA,CAAkD,CACnD;YACH;QACF;AAEA,QAAA,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE;AACvD,YAAA,GAAG,OAAO;YACV,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;;;YAGnD,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;AAChD,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC;AAEhC,QAAA,IAAI,OAAO,EAAE,aAAa,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAChC,QAAQ,CAAC,aAAa,EACtB,OAAO,CAAC,OAAO,CAChB;QACH;IACF;IAeA,MAAM,CACJ,qBAAmD,EACnD,YAA0B,EAAA;;AAG1B,QAAA,MAAM,YAAY,GAChB,OAAO,qBAAqB,KAAK,UAAU,GAAG,GAAG,GAAG,qBAAqB;AAC3E,QAAA,MAAM,OAAO,GACX,OAAO,qBAAqB,KAAK,UAAU,GAAG,qBAAqB,GAAG,YAAa;QAErF,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,KAAI;;AAE7B,YAAA,IAAI,YAAY,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBACnE;YACF;YAEA,MAAM,OAAO,GAAG,CACd,MAAgC,EAChC,OAAgC,EAChC,KAAyC,KACvC;gBACF,MAAM,MAAM,GAAG,oBAAoB,CACjC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAClB,MAAM,EACN,OAAO,EACP,KAAK,EACL,IAAI,CAAC,KAAK,CAAC,OAAO;;AAElB,gBAAA,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAC/B;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;AAClC,YAAA,CAAC;AACD,YAAA,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;AACxB,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;AACH,IAAA,gBAAgB,CAAC,UAAkB,EAAA;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;IAC1C;;IAGA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;IAC5B;AACD;;AC5JD;;;;;AAKG;MACU,KAAK,CAAA;IAIhB,WAAA,CAAY,IAAe,EAAE,OAAe,EAAA;AAC1C,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;IACzB;AAEA;;AAEG;IACH,IAAI,CACF,EAAU,EACV,OAAgC,EAAA;AAEhC,QAAA,MAAM,OAAO,GAAiB;YAC5B,SAAS,EAAE,UAAU,EAAE;YACvB,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,EAAE;YACF,OAAO;YACP,SAAS,EAAE,eAAe,EAAE;SAC7B;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAA6C,CAAC;IACxE;AAEA;;AAEG;AACH,IAAA,SAAS,CACP,OAAwC,EAAA;QAExC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,KAAI;YAClC,MAAM,GAAG,GAAG,QAAmC;YAC/C,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE;gBAC5B,OAAO,CAAC,GAAG,CAAC;YACd;AACF,QAAA,CAAC,CAAC;IACJ;AACD;;ACpDD;;;;;AAKG;MACU,UAAU,CAAA;IAKrB,WAAA,CAAY,IAAe,EAAE,OAAe,EAAA;AAFpC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,GAAG,EAAyB;AAG/C,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;QAEvB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,QAAQ,KAAI;YACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;AACzC,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;IACH,GAAG,CAAC,GAAW,EAAE,KAAc,EAAA;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AACrC,QAAA,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC;AACnD,QAAA,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC9B,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAA8C,CAAC;IACzE;AAEA;;AAEG;AACH,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK;IACpC;AAEA;;AAEG;AACH,IAAA,WAAW,CAAC,GAAW,EAAA;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;IAC7B;AAEA;;AAEG;IACH,MAAM,GAAA;QACJ,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA;;AAEG;IACH,QAAQ,CACN,GAAW,EACX,OAA0C,EAAA;QAE1C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,QAAQ,KAAI;AACxC,YAAA,IAAI,QAAQ,CAAC,GAAG,KAAK,GAAG,EAAE;gBACxB,OAAO,CAAC,QAAQ,CAAC;YACnB;AACF,QAAA,CAAC,CAAC;IACJ;AACD;;ACjED;;;;;AAKG;MACU,OAAO,CAAA;IAIlB,WAAA,CAAY,IAAe,EAAE,SAAiB,EAAA;AAC5C,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;IAC7B;AAEA;;AAEG;AACH,IAAA,IAAI,CACF,QAAgB,EAChB,OAAgC,EAChC,WAAsC,MAAM,EAAA;AAE5C,QAAA,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;AAClF,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAA8C,CAAC;IACzE;AAEA;;AAEG;IACH,EAAE,CACA,OAA0C,EAC1C,MAAoE,EAAA;QAEpE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,KAAI;YAClC,IAAI,MAAM,EAAE,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ;gBAAE;YAC/D,IAAI,MAAM,EAAE,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ;gBAAE;YAC/D,OAAO,CAAC,QAAQ,CAAC;AACnB,QAAA,CAAC,CAAC;IACJ;AACD;;ACpCD;;;;;AAKG;MACU,OAAO,CAAA;IAMlB,WAAA,CAAY,IAAe,EAAE,OAAe,EAAA;AAHpC,QAAA,IAAA,CAAA,aAAa,GACnB,IAAI,kBAAkB,EAA4B;AAGlD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;;QAGvB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,QAAQ,KAAI;YAC7C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC9D,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;AACH,IAAA,MAAM,OAAO,CACX,MAAc,EACd,OAAgB,EAChB,OAIC,EAAA;QAED,MAAM,QAAQ,GAAG,qBAAqB,CACpC,MAAM,EACN,OAAO,EACP,IAAI,CAAC,QAAQ,EACb;YACE,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,SAAS,EAAE,OAAO,EAAE,SAAS;AAC9B,SAAA,CACF;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CACxB,QAA8C,CAC/C;AAED,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAChC,QAAQ,CAAC,aAAa,EACtB,OAAO,EAAE,OAAO,CACjB;IACH;AAEA;;;AAGG;AACH,IAAA,SAAS,CACP,OAMS,EAAA;QAET,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,OAAO,KAAI;AAC3C,YAAA,MAAM,OAAO,GAAG,CACd,QAA8C,EAC9C,MAAe,KACb;gBACF,MAAM,QAAQ,GAAG,sBAAsB,CACrC,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,aAAa,EACrB,QAAQ,EACR,IAAI,CAAC,QAAQ,EACb,MAAM,CACP;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CACxB,QAA8C,CAC/C;AACH,YAAA,CAAC;AACD,YAAA,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;AAC3B,QAAA,CAAC,CAAC;IACJ;;IAGA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;IAC5B;AACD;;ACzFD;;;;;AAKG;MACU,KAAK,CAAA;IAMhB,WAAA,CAAY,IAAe,EAAE,OAAe,EAAA;AAHpC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,kBAAkB,EAAwB;AAC9D,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAAuB;AAGhD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;;QAGvB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,QAAQ,KAAI;YACzC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC9D,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,QAAQ,KAAI;AAC9C,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACrD,YAAA,IAAI,CAAC,OAAO;gBAAE;;YAGd,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,WAAW;AAExD,YAAA,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAChD,MAAM,QAAQ,GAAG,kBAAkB,CACjC,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,aAAa,EACtB,SAAS,EACT,MAAM,EACN,SAAS,EACT,IAAI,CAAC,QAAQ,EACb,OAAO,CACR;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CACrB,QAA8C,CAC/C;YACH;YAAE,OAAO,GAAG,EAAE;AACZ,gBAAA,MAAM,QAAQ,GAAG,kBAAkB,CACjC,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,aAAa,EACtB,OAAO,EACP,IAAI,EACJ;AACE,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,OAAO,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AAC1D,iBAAA,EACD,IAAI,CAAC,QAAQ,EACb,OAAO,CACR;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CACrB,QAA8C,CAC/C;YACH;AACF,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;IACH,QAAQ,CAAC,QAAgB,EAAE,OAAoB,EAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;IACvC;AAEA;;AAEG;AACH,IAAA,MAAM,MAAM,CACV,QAAgB,EAChB,IAA6B,EAC7B,OAA8B,EAAA;;;;;QAM9B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;AAChE,YAAA,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;AAC5B,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CACrB,QAA8C,CAC/C;AAED,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAChC,QAAQ,CAAC,aAAa,EACtB,OAAO,EAAE,OAAO,CACjB;IACH;;IAGA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;IACxB;AACD;;AC7GD;AACO,MAAM,UAAU,GAAG;AACxB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,MAAM,EAAE,QAAQ;;AAGlB;AACO,MAAM,SAAS,GAAG;AACvB,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,cAAc,EAAE,gBAAgB;;AAGlC;AACM,SAAU,GAAG,CAAC,MAAc,EAAE,KAAa,EAAA;AAC/C,IAAA,OAAO,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,KAAK,EAAE;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.mjs
CHANGED
|
@@ -176,13 +176,20 @@ class AgentRoom extends EventEmitter {
|
|
|
176
176
|
}
|
|
177
177
|
this._publish(TOPIC_TASKS, envelope);
|
|
178
178
|
}
|
|
179
|
-
/** Publish to the results topic */
|
|
179
|
+
/** Publish to the results topic — directed to the dispatcher via filter when replyTo is set */
|
|
180
180
|
publishResult(envelope) {
|
|
181
181
|
// Auto-set completedBy if not set
|
|
182
182
|
if (!envelope.completedBy) {
|
|
183
183
|
envelope.completedBy = this.agentId;
|
|
184
184
|
}
|
|
185
|
-
|
|
185
|
+
if (envelope.replyTo) {
|
|
186
|
+
this._publish(TOPIC_RESULTS, envelope, { filter: envelope.replyTo });
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
// Legacy: no reply address — unfiltered publish (only reaches
|
|
190
|
+
// wildcard subscribers, i.e. pre-0.2.0 SDKs)
|
|
191
|
+
this._publish(TOPIC_RESULTS, envelope);
|
|
192
|
+
}
|
|
186
193
|
}
|
|
187
194
|
/** Publish to the state topic (retained) */
|
|
188
195
|
publishState(data) {
|
|
@@ -204,8 +211,17 @@ class AgentRoom extends EventEmitter {
|
|
|
204
211
|
publishInbox(data) {
|
|
205
212
|
this._publish(TOPIC_INBOX, data);
|
|
206
213
|
}
|
|
207
|
-
/**
|
|
214
|
+
/**
|
|
215
|
+
* Publish a tool message.
|
|
216
|
+
* Requests go to the tools topic (load-balanced one-of-N across server
|
|
217
|
+
* replicas). Responses are directed to the requester on the results topic
|
|
218
|
+
* via filter — never load-balanced, never broadcast.
|
|
219
|
+
*/
|
|
208
220
|
publishTools(data) {
|
|
221
|
+
if (data?.type === "tool_response" && typeof data.replyTo === "string" && data.replyTo) {
|
|
222
|
+
this._publish(TOPIC_RESULTS, data, { filter: data.replyTo });
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
209
225
|
this._publish(TOPIC_TOOLS, data);
|
|
210
226
|
}
|
|
211
227
|
/** Publish to the approval topic (retained) */
|
|
@@ -307,23 +323,33 @@ class AgentRoom extends EventEmitter {
|
|
|
307
323
|
});
|
|
308
324
|
}
|
|
309
325
|
_wireTopicListeners() {
|
|
310
|
-
//
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
326
|
+
// Work distribution topics honour the connection-level loadBalance
|
|
327
|
+
// setting, so a pool shares each message one-of-N (no double handling):
|
|
328
|
+
// - tasks: each task goes to exactly one worker in the group
|
|
329
|
+
// - tools: each tool REQUEST goes to exactly one tool-server replica
|
|
330
|
+
this._roomContext.subscribe(TOPIC_TASKS);
|
|
331
|
+
this._roomContext.subscribe(TOPIC_TOOLS);
|
|
332
|
+
// Replies are DIRECTED, not broadcast: the results topic carries task
|
|
333
|
+
// results and tool responses published with `filter: <recipient agentId>`,
|
|
334
|
+
// and each agent subscribes only to its own filter sub-topic. The broker
|
|
335
|
+
// routes each reply straight to the requester — no fan-out waste, and
|
|
336
|
+
// immune to load-balance groups (a broadcast or LB'd reply could land on
|
|
337
|
+
// a group member that doesn't hold the pending correlation, timing out
|
|
338
|
+
// the requester even though the responder did the work).
|
|
339
|
+
this._roomContext.subscribe(TOPIC_RESULTS, {
|
|
340
|
+
loadBalance: false,
|
|
341
|
+
filters: [this.agentId],
|
|
342
|
+
});
|
|
343
|
+
// Broadcast topics must always fan out, even when the connection enables
|
|
344
|
+
// loadBalance for work distribution: state/events are broadcasts by
|
|
345
|
+
// nature; inbox and approval messages are claimed client-side.
|
|
346
|
+
const broadcastTopics = [TOPIC_STATE, TOPIC_EVENTS, TOPIC_INBOX, TOPIC_APPROVAL];
|
|
347
|
+
for (const topic of broadcastTopics) {
|
|
348
|
+
this._roomContext.subscribe(topic, { loadBalance: false });
|
|
322
349
|
}
|
|
323
350
|
// Simple 1:1 mappings
|
|
324
351
|
const simpleMap = [
|
|
325
352
|
{ topic: TOPIC_TASKS, event: "task" },
|
|
326
|
-
{ topic: TOPIC_RESULTS, event: "result" },
|
|
327
353
|
{ topic: TOPIC_STATE, event: "stateChange" },
|
|
328
354
|
{ topic: TOPIC_EVENTS, event: "event" },
|
|
329
355
|
{ topic: TOPIC_INBOX, event: "inbox" },
|
|
@@ -334,6 +360,17 @@ class AgentRoom extends EventEmitter {
|
|
|
334
360
|
this.emit(event, data);
|
|
335
361
|
});
|
|
336
362
|
}
|
|
363
|
+
// Multiplexed: results topic carries task results AND tool responses,
|
|
364
|
+
// both filter-directed to this agent.
|
|
365
|
+
this._roomContext.on(TOPIC_RESULTS, (data) => {
|
|
366
|
+
this._log(`received ${TOPIC_RESULTS} in room ${this.name}`);
|
|
367
|
+
if (data?.type === "tool_response") {
|
|
368
|
+
this.emit("toolResponse", data);
|
|
369
|
+
}
|
|
370
|
+
else {
|
|
371
|
+
this.emit("result", data);
|
|
372
|
+
}
|
|
373
|
+
});
|
|
337
374
|
// Multiplexed: approval topic carries requests + responses
|
|
338
375
|
this._roomContext.on(TOPIC_APPROVAL, (data) => {
|
|
339
376
|
this._log(`received ${TOPIC_APPROVAL} in room ${this.name}`);
|
|
@@ -344,7 +381,9 @@ class AgentRoom extends EventEmitter {
|
|
|
344
381
|
this.emit("approvalRequest", data);
|
|
345
382
|
}
|
|
346
383
|
});
|
|
347
|
-
//
|
|
384
|
+
// Tools topic carries requests; tool_response is still accepted here for
|
|
385
|
+
// backward compatibility with responders on older SDK versions (their
|
|
386
|
+
// responses are only reliable when the requester is not load-balanced).
|
|
348
387
|
this._roomContext.on(TOPIC_TOOLS, (data) => {
|
|
349
388
|
this._log(`received ${TOPIC_TOOLS} in room ${this.name}`);
|
|
350
389
|
if (data?.type === "tool_response") {
|
|
@@ -671,7 +710,7 @@ function createTaskEnvelope(capability, payload, options) {
|
|
|
671
710
|
timeout: options?.timeout,
|
|
672
711
|
};
|
|
673
712
|
}
|
|
674
|
-
function createResultEnvelope(taskId, correlationId, status, payload, error, completedBy) {
|
|
713
|
+
function createResultEnvelope(taskId, correlationId, status, payload, error, completedBy, replyTo) {
|
|
675
714
|
return {
|
|
676
715
|
type: "result",
|
|
677
716
|
correlationId,
|
|
@@ -681,6 +720,7 @@ function createResultEnvelope(taskId, correlationId, status, payload, error, com
|
|
|
681
720
|
error,
|
|
682
721
|
completedAt: createTimestamp(),
|
|
683
722
|
completedBy,
|
|
723
|
+
replyTo,
|
|
684
724
|
};
|
|
685
725
|
}
|
|
686
726
|
function createStateEnvelope(key, value, version, updatedBy) {
|
|
@@ -740,7 +780,7 @@ function createToolRequest(toolName, args, requestedBy, options) {
|
|
|
740
780
|
requestedAt: createTimestamp(),
|
|
741
781
|
};
|
|
742
782
|
}
|
|
743
|
-
function createToolResponse(requestId, correlationId, status, result, error, respondedBy) {
|
|
783
|
+
function createToolResponse(requestId, correlationId, status, result, error, respondedBy, replyTo) {
|
|
744
784
|
return {
|
|
745
785
|
type: "tool_response",
|
|
746
786
|
requestId,
|
|
@@ -750,6 +790,7 @@ function createToolResponse(requestId, correlationId, status, result, error, res
|
|
|
750
790
|
error,
|
|
751
791
|
respondedBy,
|
|
752
792
|
respondedAt: createTimestamp(),
|
|
793
|
+
replyTo,
|
|
753
794
|
};
|
|
754
795
|
}
|
|
755
796
|
|
|
@@ -806,32 +847,29 @@ class Handoff {
|
|
|
806
847
|
}
|
|
807
848
|
const envelope = createTaskEnvelope(capability, payload, {
|
|
808
849
|
...options,
|
|
809
|
-
createdBy: this._room.agentId,
|
|
850
|
+
createdBy: options?.createdBy ?? this._room.agentId,
|
|
851
|
+
// Reply address: workers publish the result filter-directed to this
|
|
852
|
+
// room's results subscription
|
|
853
|
+
replyTo: options?.replyTo ?? this._room.agentId,
|
|
810
854
|
});
|
|
811
855
|
this._room.publishTask(envelope);
|
|
812
856
|
if (options?.waitForResult) {
|
|
813
857
|
return this._correlations.register(envelope.correlationId, options.timeout);
|
|
814
858
|
}
|
|
815
859
|
}
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
* capabilities will be delivered to the handler. Non-matching tasks
|
|
821
|
-
* are silently ignored.
|
|
822
|
-
*
|
|
823
|
-
* @param capabilities - Array of capabilities this worker handles.
|
|
824
|
-
* Pass `'*'` to receive all tasks.
|
|
825
|
-
* @param handler - Async handler called with the task and a respond function.
|
|
826
|
-
*/
|
|
827
|
-
onTask(capabilities, handler) {
|
|
860
|
+
onTask(capabilitiesOrHandler, maybeHandler) {
|
|
861
|
+
// Single-arg form: onTask(handler) receives all tasks
|
|
862
|
+
const capabilities = typeof capabilitiesOrHandler === "function" ? '*' : capabilitiesOrHandler;
|
|
863
|
+
const handler = typeof capabilitiesOrHandler === "function" ? capabilitiesOrHandler : maybeHandler;
|
|
828
864
|
this._room.on("task", (task) => {
|
|
829
865
|
// Filter by capability unless wildcard
|
|
830
866
|
if (capabilities !== '*' && !capabilities.includes(task.capability)) {
|
|
831
867
|
return;
|
|
832
868
|
}
|
|
833
869
|
const respond = (status, payload, error) => {
|
|
834
|
-
const result = createResultEnvelope(task.taskId, task.correlationId, status, payload, error, this._room.agentId
|
|
870
|
+
const result = createResultEnvelope(task.taskId, task.correlationId, status, payload, error, this._room.agentId,
|
|
871
|
+
// Direct the result to the dispatcher's filter sub-topic
|
|
872
|
+
task.replyTo ?? task.createdBy);
|
|
835
873
|
this._room.publishResult(result);
|
|
836
874
|
};
|
|
837
875
|
handler(task, respond);
|
|
@@ -1041,16 +1079,18 @@ class Tools {
|
|
|
1041
1079
|
const handler = this._handlers.get(envelope.toolName);
|
|
1042
1080
|
if (!handler)
|
|
1043
1081
|
return;
|
|
1082
|
+
// Direct the response back to the requester's filter sub-topic
|
|
1083
|
+
const replyTo = envelope.replyTo ?? envelope.requestedBy;
|
|
1044
1084
|
try {
|
|
1045
1085
|
const result = await handler(envelope.arguments);
|
|
1046
|
-
const response = createToolResponse(envelope.requestId, envelope.correlationId, "success", result, undefined, this._agentId);
|
|
1086
|
+
const response = createToolResponse(envelope.requestId, envelope.correlationId, "success", result, undefined, this._agentId, replyTo);
|
|
1047
1087
|
this._room.publishTools(response);
|
|
1048
1088
|
}
|
|
1049
1089
|
catch (err) {
|
|
1050
1090
|
const response = createToolResponse(envelope.requestId, envelope.correlationId, "error", null, {
|
|
1051
1091
|
code: "TOOL_ERROR",
|
|
1052
1092
|
message: err instanceof Error ? err.message : String(err),
|
|
1053
|
-
}, this._agentId);
|
|
1093
|
+
}, this._agentId, replyTo);
|
|
1054
1094
|
this._room.publishTools(response);
|
|
1055
1095
|
}
|
|
1056
1096
|
});
|
|
@@ -1065,7 +1105,13 @@ class Tools {
|
|
|
1065
1105
|
* Invoke a remote tool and wait for the response.
|
|
1066
1106
|
*/
|
|
1067
1107
|
async invoke(toolName, args, options) {
|
|
1068
|
-
|
|
1108
|
+
// replyTo is the room's agentId — the filter sub-topic this room's
|
|
1109
|
+
// results subscription listens on. (this._agentId may differ when a
|
|
1110
|
+
// caller attributes requests to a logical agent; delivery must use the
|
|
1111
|
+
// address that is actually subscribed.)
|
|
1112
|
+
const envelope = createToolRequest(toolName, args, this._agentId, {
|
|
1113
|
+
replyTo: this._room.agentId,
|
|
1114
|
+
});
|
|
1069
1115
|
this._room.publishTools(envelope);
|
|
1070
1116
|
return this._correlations.register(envelope.correlationId, options?.timeout);
|
|
1071
1117
|
}
|