@framers/agentos 0.12.5 → 0.12.7
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/dist/cognition/emergent/ComposableToolBuilder.d.ts +3 -1
- package/dist/cognition/emergent/ComposableToolBuilder.d.ts.map +1 -1
- package/dist/cognition/emergent/ComposableToolBuilder.js +9 -5
- package/dist/cognition/emergent/ComposableToolBuilder.js.map +1 -1
- package/dist/cognition/emergent/EmergentCapabilityEngine.d.ts +33 -4
- package/dist/cognition/emergent/EmergentCapabilityEngine.d.ts.map +1 -1
- package/dist/cognition/emergent/EmergentCapabilityEngine.js +190 -48
- package/dist/cognition/emergent/EmergentCapabilityEngine.js.map +1 -1
- package/dist/cognition/emergent/EmergentToolRegistry.d.ts +107 -20
- package/dist/cognition/emergent/EmergentToolRegistry.d.ts.map +1 -1
- package/dist/cognition/emergent/EmergentToolRegistry.js +252 -37
- package/dist/cognition/emergent/EmergentToolRegistry.js.map +1 -1
- package/dist/cognition/emergent/StepGate.d.ts +10 -3
- package/dist/cognition/emergent/StepGate.d.ts.map +1 -1
- package/dist/cognition/emergent/StepGate.js +13 -2
- package/dist/cognition/emergent/StepGate.js.map +1 -1
- package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts.map +1 -1
- package/dist/core/llm/providers/implementations/OpenRouterProvider.js +41 -5
- package/dist/core/llm/providers/implementations/OpenRouterProvider.js.map +1 -1
- package/dist/core/tools/ITool.d.ts +7 -0
- package/dist/core/tools/ITool.d.ts.map +1 -1
- package/dist/core/tools/ToolExecutor.d.ts +3 -1
- package/dist/core/tools/ToolExecutor.d.ts.map +1 -1
- package/dist/core/tools/ToolExecutor.js +3 -1
- package/dist/core/tools/ToolExecutor.js.map +1 -1
- package/dist/core/tools/ToolOrchestrator.d.ts.map +1 -1
- package/dist/core/tools/ToolOrchestrator.js +14 -6
- package/dist/core/tools/ToolOrchestrator.js.map +1 -1
- package/dist/io/media/images/imageToBuffer.d.ts.map +1 -1
- package/dist/io/media/images/imageToBuffer.js +6 -4
- package/dist/io/media/images/imageToBuffer.js.map +1 -1
- package/package.json +1 -1
|
@@ -68,19 +68,29 @@ export class EmergentToolRegistry {
|
|
|
68
68
|
* deletes land, or when a new row is written for the id.
|
|
69
69
|
*/
|
|
70
70
|
/**
|
|
71
|
-
* Change points. `epoch` advances on every registration, adoption,
|
|
72
|
-
* write and removal of any tool in this process, and once
|
|
73
|
-
* removal's row deletes
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
71
|
+
* Change points. `epoch` advances on every registration, adoption,
|
|
72
|
+
* promotion, row write and removal of any tool in this process, and once
|
|
73
|
+
* more when a removal's row deletes or a rewrite of the tool row from
|
|
74
|
+
* memory (a promotion, an `upsert`) land; `changedAt` holds, per tool, the
|
|
75
|
+
* epoch of its last change. A read of stored rows notes the epoch it
|
|
76
|
+
* started at ({@link beginRead}), and an admission adopts what it read only
|
|
77
|
+
* while the tool has not changed since and no removal or rewrite of its
|
|
78
|
+
* rows is still pending ({@link adopt}), so a row read before a removal or
|
|
79
|
+
* a promotion, or during one, is never put back, with or without storage.
|
|
79
80
|
*/
|
|
80
81
|
this.epoch = 0;
|
|
81
82
|
this.changedAt = new Map();
|
|
82
83
|
/** Removals whose row deletes have not landed yet, counted per tool. */
|
|
83
84
|
this.removing = new Map();
|
|
85
|
+
/** Rewrites of the tool row from memory that have not landed yet, counted per tool. */
|
|
86
|
+
this.rewriting = new Map();
|
|
87
|
+
/**
|
|
88
|
+
* Restrictions this process requested, per tool: how many of their writes
|
|
89
|
+
* are queued or running, and the read point at which the tool's last state
|
|
90
|
+
* write settled (`Infinity` while a host's restriction whose write failed
|
|
91
|
+
* is in force here). See {@link restrictionUnread}.
|
|
92
|
+
*/
|
|
93
|
+
this.restrictionWrites = new Map();
|
|
84
94
|
/** Reads in flight; change points are forgotten only when none is. */
|
|
85
95
|
this.openReads = 0;
|
|
86
96
|
/**
|
|
@@ -352,6 +362,12 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
352
362
|
* another process stored meanwhile is what is returned and held, and a tool
|
|
353
363
|
* another process removed reads as `demoted` with the reason `removed`.
|
|
354
364
|
*
|
|
365
|
+
* `options.yieldToHost` makes the write give way to the host's word: a row
|
|
366
|
+
* that holds a host's suspension, or a demotion, is not changed, and its
|
|
367
|
+
* record is returned and held instead. The library's suspensions from a run
|
|
368
|
+
* or a promotion check use it, so they never replace a restriction a host
|
|
369
|
+
* set, in this process or in another.
|
|
370
|
+
*
|
|
355
371
|
* @returns the record now in force for the tool.
|
|
356
372
|
* @throws If the storage adapter rejects.
|
|
357
373
|
*/
|
|
@@ -375,13 +391,28 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
375
391
|
}
|
|
376
392
|
this.logAudit(toolId, 'state', { state, reason, setBy });
|
|
377
393
|
};
|
|
378
|
-
|
|
394
|
+
const restriction = state !== 'active';
|
|
395
|
+
if (restriction) {
|
|
379
396
|
hold();
|
|
397
|
+
const entry = this.restrictionWrites.get(toolId);
|
|
398
|
+
if (entry) {
|
|
399
|
+
entry.pending += 1;
|
|
400
|
+
}
|
|
401
|
+
else {
|
|
402
|
+
this.restrictionWrites.set(toolId, { pending: 1, settledAt: 0 });
|
|
403
|
+
}
|
|
380
404
|
}
|
|
381
405
|
let inForce = record;
|
|
382
|
-
|
|
383
|
-
|
|
406
|
+
try {
|
|
407
|
+
if (this.db) {
|
|
408
|
+
inForce = await this.queueStateWrite(toolId, () => this.writeStateRow(toolId, record, named, options.ifRow, options.yieldToHost === true));
|
|
409
|
+
}
|
|
384
410
|
}
|
|
411
|
+
catch (error) {
|
|
412
|
+
this.noteStateWriteSettled(toolId, restriction, false, setBy);
|
|
413
|
+
throw error;
|
|
414
|
+
}
|
|
415
|
+
this.noteStateWriteSettled(toolId, restriction, true, setBy);
|
|
385
416
|
if (inForce !== record) {
|
|
386
417
|
// The row changed under the condition: the write was refused, and the
|
|
387
418
|
// row's own state is what holds. A restriction read that way is held here.
|
|
@@ -410,6 +441,42 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
410
441
|
}
|
|
411
442
|
return record;
|
|
412
443
|
}
|
|
444
|
+
/**
|
|
445
|
+
* Book a settled state write of a tool requested here: a restriction's
|
|
446
|
+
* write is no longer pending; a write that landed (applied, or refused by
|
|
447
|
+
* the row, whose word is then held) moves the tool's settle point to a new
|
|
448
|
+
* read point; a host's restriction whose write failed stays in force here
|
|
449
|
+
* until a later write of the tool lands. A library restriction whose write
|
|
450
|
+
* failed leaves the settle point where it was, so the row decides.
|
|
451
|
+
*/
|
|
452
|
+
noteStateWriteSettled(toolId, restriction, landed, setBy) {
|
|
453
|
+
const entry = this.restrictionWrites.get(toolId);
|
|
454
|
+
if (!entry) {
|
|
455
|
+
return;
|
|
456
|
+
}
|
|
457
|
+
if (restriction) {
|
|
458
|
+
entry.pending = Math.max(0, entry.pending - 1);
|
|
459
|
+
}
|
|
460
|
+
if (landed) {
|
|
461
|
+
this.epoch += 1;
|
|
462
|
+
entry.settledAt = this.epoch;
|
|
463
|
+
}
|
|
464
|
+
else if (restriction && setBy === 'host') {
|
|
465
|
+
entry.settledAt = Number.POSITIVE_INFINITY;
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* Whether a restriction this process requested for a tool may be missing
|
|
470
|
+
* from a row read that began at `readAt` (a {@link beginRead} point): its
|
|
471
|
+
* write is still queued or running, or settled after the read began, or it
|
|
472
|
+
* is a host's restriction whose write failed. A held restriction for which
|
|
473
|
+
* none of these is true is older than the row the read saw, whatever the
|
|
474
|
+
* clocks of the processes that wrote them say: the row decides.
|
|
475
|
+
*/
|
|
476
|
+
restrictionUnread(toolId, readAt) {
|
|
477
|
+
const entry = this.restrictionWrites.get(toolId);
|
|
478
|
+
return entry !== undefined && (entry.pending > 0 || entry.settledAt > readAt);
|
|
479
|
+
}
|
|
413
480
|
/** Runs `write` after every earlier state write of the same tool has settled. */
|
|
414
481
|
queueStateWrite(toolId, write) {
|
|
415
482
|
const prior = this.stateWrites.get(toolId) ?? Promise.resolve();
|
|
@@ -432,11 +499,12 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
432
499
|
* pending, and the next state write or load finishes the flag write, so a
|
|
433
500
|
* crash or a failed write between the two never leaves the pair apart
|
|
434
501
|
* beyond the next load. With `ifRow`, an existing row is changed only while
|
|
435
|
-
* its state, setter and time are the ones given (`'absent'`: never);
|
|
502
|
+
* its state, setter and time are the ones given (`'absent'`: never); with
|
|
503
|
+
* `yieldToHost`, only while it is active or the library's suspension. A
|
|
436
504
|
* refused write changes nothing, flag included, and the row as it stands
|
|
437
505
|
* afterwards is returned, so it shows as a record other than the one given.
|
|
438
506
|
*/
|
|
439
|
-
async writeStateRow(toolId, record, named, ifRow) {
|
|
507
|
+
async writeStateRow(toolId, record, named, ifRow, yieldToHost = false) {
|
|
440
508
|
const db = this.db;
|
|
441
509
|
if (!db) {
|
|
442
510
|
return record;
|
|
@@ -457,25 +525,33 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
457
525
|
state_at = excluded.state_at,
|
|
458
526
|
updated_at = excluded.updated_at,
|
|
459
527
|
write_id = excluded.write_id`;
|
|
460
|
-
let guard = '';
|
|
461
528
|
// state_at is the call's time; updated_at the write's own.
|
|
462
529
|
// Every write has an id of its own: the row read back tells this write
|
|
463
530
|
// from another of the same content in the same millisecond.
|
|
464
531
|
const writeId = randomUUID();
|
|
465
532
|
record.writeId = writeId;
|
|
466
533
|
const values = [toolId, record.state, record.reason, record.setBy, record.at, requestJson, Date.now(), writeId];
|
|
534
|
+
const conditions = [];
|
|
467
535
|
const guardParams = [];
|
|
468
536
|
if (ifRow === 'absent') {
|
|
469
|
-
|
|
470
|
-
WHERE 0 = 1`;
|
|
537
|
+
conditions.push('0 = 1');
|
|
471
538
|
}
|
|
472
539
|
else if (ifRow !== undefined) {
|
|
473
|
-
|
|
474
|
-
WHERE agentos_emergent_tool_state.state = ?
|
|
540
|
+
conditions.push(`agentos_emergent_tool_state.state = ?
|
|
475
541
|
AND agentos_emergent_tool_state.set_by = ?
|
|
476
|
-
AND agentos_emergent_tool_state.state_at =
|
|
542
|
+
AND agentos_emergent_tool_state.state_at = ?`);
|
|
477
543
|
guardParams.push(ifRow.state, ifRow.setBy, ifRow.at);
|
|
478
544
|
}
|
|
545
|
+
if (yieldToHost) {
|
|
546
|
+
// A host's suspension and a demotion stay; only an active row or the
|
|
547
|
+
// library's own suspension is changed.
|
|
548
|
+
conditions.push(`(agentos_emergent_tool_state.state = 'active'
|
|
549
|
+
OR (agentos_emergent_tool_state.state = 'suspended' AND agentos_emergent_tool_state.set_by = 'library'))`);
|
|
550
|
+
}
|
|
551
|
+
const guard = conditions.length > 0
|
|
552
|
+
? `
|
|
553
|
+
WHERE ${conditions.join('\n AND ')}`
|
|
554
|
+
: '';
|
|
479
555
|
const readRow = async () => (await db.get(`SELECT s.state, s.state_reason, s.set_by, s.state_at, s.request_json, s.write_id,
|
|
480
556
|
EXISTS (SELECT 1 FROM agentos_emergent_tools t WHERE t.id = s.tool_id) AS tool_exists
|
|
481
557
|
FROM agentos_emergent_tool_state s
|
|
@@ -544,8 +620,16 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
544
620
|
// stored meanwhile, or a removal, is what holds, not the record written
|
|
545
621
|
// here. Read for every write, conditional or not, so a host's reactivation
|
|
546
622
|
// overtaken by another process's suspension yields to it in memory too.
|
|
547
|
-
|
|
623
|
+
let after = await readRow();
|
|
548
624
|
if (!matches(after)) {
|
|
625
|
+
if (after?.state && after.tool_exists) {
|
|
626
|
+
// Overtaken after this write's upsert: this write's flag statement
|
|
627
|
+
// may have landed after the newer write's own, with this write's
|
|
628
|
+
// state (see flagAfterOvertaking), so the flag is written again from
|
|
629
|
+
// the newer state.
|
|
630
|
+
await this.flagAfterOvertaking(toolId, after.state, writeId);
|
|
631
|
+
after = await readRow();
|
|
632
|
+
}
|
|
549
633
|
return after?.state && after.tool_exists ? rowRecord(after) : removed();
|
|
550
634
|
}
|
|
551
635
|
return record;
|
|
@@ -557,6 +641,36 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
557
641
|
FROM agentos_emergent_tool_state WHERE tool_id = ?), ?)
|
|
558
642
|
WHERE id = ?`, [toolId, state === 'active' ? 1 : 0, toolId]);
|
|
559
643
|
}
|
|
644
|
+
/** The id of the state row's last write, or null when the row has none (or there is no row). */
|
|
645
|
+
async readStateWriteId(toolId) {
|
|
646
|
+
const row = (await this.db.get(`SELECT write_id FROM agentos_emergent_tool_state WHERE tool_id = ?`, [
|
|
647
|
+
toolId,
|
|
648
|
+
]));
|
|
649
|
+
return row?.write_id ?? null;
|
|
650
|
+
}
|
|
651
|
+
/**
|
|
652
|
+
* After a statement that set the legacy flag from the state row read inside
|
|
653
|
+
* it: when another state write landed since `seen` (the state row's write
|
|
654
|
+
* id when the statement was sent), the flag is written again from the state
|
|
655
|
+
* row, until a flag write is not overtaken (three rounds at most). On
|
|
656
|
+
* PostgreSQL under READ COMMITTED a statement reads the state row from its
|
|
657
|
+
* own snapshot and applies its update to the newest row version, so a flag
|
|
658
|
+
* statement that started before another write's upsert can land after that
|
|
659
|
+
* write's own flag statement, with the older state; a new statement reads
|
|
660
|
+
* the newer one. On SQLite every statement reads the newest row, and a
|
|
661
|
+
* round here only writes the flag the state row already gives.
|
|
662
|
+
*/
|
|
663
|
+
async flagAfterOvertaking(toolId, fallback, seen) {
|
|
664
|
+
let last = seen;
|
|
665
|
+
for (let round = 0; round < 3; round += 1) {
|
|
666
|
+
const now = await this.readStateWriteId(toolId);
|
|
667
|
+
if (now === last) {
|
|
668
|
+
return;
|
|
669
|
+
}
|
|
670
|
+
last = now;
|
|
671
|
+
await this.writeLegacyFlag(toolId, fallback);
|
|
672
|
+
}
|
|
673
|
+
}
|
|
560
674
|
/**
|
|
561
675
|
* Finish a state write whose flag write did not: the legacy flag from the
|
|
562
676
|
* state row, then the row's mark cleared, under the record the row holds so
|
|
@@ -595,12 +709,14 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
595
709
|
/**
|
|
596
710
|
* Drop a tool from memory without touching its rows: for a load whose
|
|
597
711
|
* registration with the host failed, so the row is there for the next load
|
|
598
|
-
* and nothing here claims a tool the executor does not run
|
|
712
|
+
* and nothing here claims a tool the executor does not run; and for a state
|
|
713
|
+
* held for a tool that has neither a row nor an object here any more.
|
|
599
714
|
*/
|
|
600
715
|
forget(toolId) {
|
|
601
716
|
this.sessionTools.delete(toolId);
|
|
602
717
|
this.persistedTools.delete(toolId);
|
|
603
718
|
this.states.delete(toolId);
|
|
719
|
+
this.restrictionWrites.delete(toolId);
|
|
604
720
|
this.bump(toolId);
|
|
605
721
|
}
|
|
606
722
|
/**
|
|
@@ -631,15 +747,22 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
631
747
|
return;
|
|
632
748
|
}
|
|
633
749
|
// No read in flight can hold a stale row: forget the change points of
|
|
634
|
-
// tools this process neither holds nor is removing.
|
|
750
|
+
// tools this process neither holds nor is removing or rewriting.
|
|
635
751
|
for (const toolId of [...this.changedAt.keys()]) {
|
|
636
752
|
if (!this.sessionTools.has(toolId) &&
|
|
637
753
|
!this.persistedTools.has(toolId) &&
|
|
638
754
|
!this.states.has(toolId) &&
|
|
639
|
-
!this.removing.has(toolId)
|
|
755
|
+
!this.removing.has(toolId) &&
|
|
756
|
+
!this.rewriting.has(toolId)) {
|
|
640
757
|
this.changedAt.delete(toolId);
|
|
641
758
|
}
|
|
642
759
|
}
|
|
760
|
+
// A settle point matters only to a read that began before it.
|
|
761
|
+
for (const [toolId, entry] of [...this.restrictionWrites]) {
|
|
762
|
+
if (entry.pending === 0 && Number.isFinite(entry.settledAt)) {
|
|
763
|
+
this.restrictionWrites.delete(toolId);
|
|
764
|
+
}
|
|
765
|
+
}
|
|
643
766
|
}
|
|
644
767
|
/** Whether a storage adapter is configured. */
|
|
645
768
|
hasStorage() {
|
|
@@ -697,19 +820,49 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
697
820
|
this.bump(toolId);
|
|
698
821
|
});
|
|
699
822
|
}
|
|
823
|
+
/**
|
|
824
|
+
* A rewrite of the tool row from the object held in memory (a promotion,
|
|
825
|
+
* an `upsert`), in the tool's write queue: after the tool's earlier state
|
|
826
|
+
* writes, and before the deletes of a removal that comes after it, so a
|
|
827
|
+
* removal is never undone by a row write that lands late. The write is
|
|
828
|
+
* skipped when the registry no longer holds that object by the time it
|
|
829
|
+
* runs (the tool was removed, or replaced under its id). Until it lands an
|
|
830
|
+
* admission does not adopt the tool, and when it lands the tool counts as
|
|
831
|
+
* changed, so a row read before it is read again.
|
|
832
|
+
*/
|
|
833
|
+
queueToolRowWrite(tool, approvedBy) {
|
|
834
|
+
this.rewriting.set(tool.id, (this.rewriting.get(tool.id) ?? 0) + 1);
|
|
835
|
+
return this.queueStateWrite(tool.id, async () => {
|
|
836
|
+
try {
|
|
837
|
+
if (this.get(tool.id) === tool) {
|
|
838
|
+
await this.persistToolToDb(tool, approvedBy);
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
finally {
|
|
842
|
+
const left = (this.rewriting.get(tool.id) ?? 1) - 1;
|
|
843
|
+
if (left > 0) {
|
|
844
|
+
this.rewriting.set(tool.id, left);
|
|
845
|
+
}
|
|
846
|
+
else {
|
|
847
|
+
this.rewriting.delete(tool.id);
|
|
848
|
+
}
|
|
849
|
+
this.bump(tool.id);
|
|
850
|
+
}
|
|
851
|
+
});
|
|
852
|
+
}
|
|
700
853
|
/**
|
|
701
854
|
* Take a tool read from storage into memory without rewriting its row.
|
|
702
855
|
* `upsert` re-serialises the source; a loaded tool must keep the row it has.
|
|
703
856
|
*
|
|
704
857
|
* @param ifUnchangedSince - The point the caller's read started at
|
|
705
858
|
* ({@link beginRead}), or a {@link generation} reading. The adoption is
|
|
706
|
-
* refused when the tool changed in this process after it, or a removal
|
|
707
|
-
* the tool is still
|
|
708
|
-
* be one that is gone.
|
|
859
|
+
* refused when the tool changed in this process after it, or a removal or
|
|
860
|
+
* a rewrite of the tool's rows is still pending: the row the caller holds
|
|
861
|
+
* may then be one that is gone or about to change.
|
|
709
862
|
*/
|
|
710
863
|
adopt(tool, record, ifUnchangedSince) {
|
|
711
864
|
if (ifUnchangedSince !== undefined &&
|
|
712
|
-
(this.generation(tool.id) > ifUnchangedSince || this.removing.has(tool.id))) {
|
|
865
|
+
(this.generation(tool.id) > ifUnchangedSince || this.removing.has(tool.id) || this.rewriting.has(tool.id))) {
|
|
713
866
|
return false;
|
|
714
867
|
}
|
|
715
868
|
this.sessionTools.delete(tool.id);
|
|
@@ -775,6 +928,16 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
775
928
|
}
|
|
776
929
|
return this.readStoredState(toolId);
|
|
777
930
|
}
|
|
931
|
+
/**
|
|
932
|
+
* Hold a stored state for a tool this process holds no object for: a load
|
|
933
|
+
* that finds a restriction already stored on a row it does not activate
|
|
934
|
+
* takes it in here, so {@link listStates} carries it (a registration of a
|
|
935
|
+
* composition's missing step tool re-checks the composition from it).
|
|
936
|
+
* Nothing is written.
|
|
937
|
+
*/
|
|
938
|
+
holdState(record) {
|
|
939
|
+
this.states.set(record.toolId, record);
|
|
940
|
+
}
|
|
778
941
|
/** Every state held in memory: the tools this process forged, loaded or suspended. */
|
|
779
942
|
listStates() {
|
|
780
943
|
return [...this.states.values()];
|
|
@@ -811,10 +974,11 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
811
974
|
/**
|
|
812
975
|
* Replace the in-memory copy of a tool and mirror it to storage.
|
|
813
976
|
*
|
|
814
|
-
* The row is rewritten from the object given
|
|
815
|
-
* after a restart, call the engine's
|
|
816
|
-
* row, checks it and never rewrites
|
|
817
|
-
* not hold keeps the `is_active`
|
|
977
|
+
* The row is rewritten from the object given, in the tool's write queue.
|
|
978
|
+
* To bring stored tools back after a restart, call the engine's
|
|
979
|
+
* `loadPersistedTools`, which reads each row, checks it and never rewrites
|
|
980
|
+
* it. A tool whose state this process does not hold keeps the `is_active`
|
|
981
|
+
* its row has.
|
|
818
982
|
*/
|
|
819
983
|
upsert(tool) {
|
|
820
984
|
this.sessionTools.delete(tool.id);
|
|
@@ -830,7 +994,7 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
830
994
|
this.persistedTools.set(normalized.id, normalized);
|
|
831
995
|
}
|
|
832
996
|
if (this.db && this.schemaReady) {
|
|
833
|
-
this.
|
|
997
|
+
this.queueToolRowWrite(normalized).catch(() => {
|
|
834
998
|
// Best-effort persistence mirror only.
|
|
835
999
|
});
|
|
836
1000
|
}
|
|
@@ -844,6 +1008,7 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
844
1008
|
remove(toolId) {
|
|
845
1009
|
const removed = this.sessionTools.delete(toolId) || this.persistedTools.delete(toolId);
|
|
846
1010
|
this.states.delete(toolId);
|
|
1011
|
+
this.restrictionWrites.delete(toolId);
|
|
847
1012
|
// The rows go whether or not this process held the tool, so a host can
|
|
848
1013
|
// remove a stored tool it never loaded; the generation moves, so an
|
|
849
1014
|
// admission that read the tool before this does not put it back.
|
|
@@ -979,7 +1144,10 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
979
1144
|
* Moves the tool from its current tier to `targetTier`. If the tool was at
|
|
980
1145
|
* session tier, it is removed from the session map and added to the persisted
|
|
981
1146
|
* map. If a storage adapter is available and the target tier is agent or
|
|
982
|
-
* shared, the tool is persisted to the database.
|
|
1147
|
+
* shared, the tool is persisted to the database. The promotion is a change
|
|
1148
|
+
* point, and its row write runs in the tool's write queue: an admission that
|
|
1149
|
+
* read the row before it reads the row again, and a removal that comes
|
|
1150
|
+
* after it deletes the promoted row.
|
|
983
1151
|
*
|
|
984
1152
|
* @param toolId - The ID of the tool to promote.
|
|
985
1153
|
* @param targetTier - The target tier to promote to. Must be strictly higher
|
|
@@ -1017,9 +1185,10 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
1017
1185
|
else {
|
|
1018
1186
|
tool.tier = targetTier;
|
|
1019
1187
|
}
|
|
1188
|
+
this.bump(toolId);
|
|
1020
1189
|
// Persist to DB if adapter is available and target is a persisted tier.
|
|
1021
1190
|
if (this.db && this.schemaReady) {
|
|
1022
|
-
await this.
|
|
1191
|
+
await this.queueToolRowWrite(tool, approvedBy);
|
|
1023
1192
|
}
|
|
1024
1193
|
this.logAudit(toolId, 'promote', {
|
|
1025
1194
|
from: previousTier,
|
|
@@ -1074,11 +1243,14 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
1074
1243
|
*
|
|
1075
1244
|
* Iterates the session map and deletes every tool whose `source` names the
|
|
1076
1245
|
* given session; the rows go after the tool's queued writes. Logs a cleanup
|
|
1077
|
-
* audit event for each removed tool.
|
|
1246
|
+
* audit event for each removed tool. The session's rows that a load in this
|
|
1247
|
+
* process admitted without activating (suspended or demoted: their state is
|
|
1248
|
+
* held here, the tool is not) go too, with the state held for them; that
|
|
1249
|
+
* part reads the rows first, so it completes after this returns.
|
|
1078
1250
|
*
|
|
1079
1251
|
* @param sessionId - The session identifier to match against tool `source`
|
|
1080
1252
|
* strings.
|
|
1081
|
-
* @returns The number of tools removed.
|
|
1253
|
+
* @returns The number of live tools removed.
|
|
1082
1254
|
*/
|
|
1083
1255
|
cleanupSession(sessionId) {
|
|
1084
1256
|
let removedCount = 0;
|
|
@@ -1087,14 +1259,49 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
1087
1259
|
if (sessionFromSource(tool.source) === sessionId) {
|
|
1088
1260
|
this.sessionTools.delete(id);
|
|
1089
1261
|
this.states.delete(id);
|
|
1262
|
+
this.restrictionWrites.delete(id);
|
|
1090
1263
|
this.bump(id);
|
|
1091
1264
|
this.queueRowDeletes(id);
|
|
1092
1265
|
this.logAudit(id, 'cleanup', { sessionId });
|
|
1093
1266
|
removedCount += 1;
|
|
1094
1267
|
}
|
|
1095
1268
|
}
|
|
1269
|
+
if (this.db && [...this.states.keys()].some((id) => !this.sessionTools.has(id) && !this.persistedTools.has(id))) {
|
|
1270
|
+
void this.cleanupHeldSessionRows(sessionId);
|
|
1271
|
+
}
|
|
1096
1272
|
return removedCount;
|
|
1097
1273
|
}
|
|
1274
|
+
/**
|
|
1275
|
+
* The rows of the session whose tool this process holds a state for but
|
|
1276
|
+
* not the tool itself (a load admitted them suspended or demoted): deleted
|
|
1277
|
+
* after their queued writes, with the held state, so they neither stay in
|
|
1278
|
+
* storage after the session nor bring the tool back when a step tool it
|
|
1279
|
+
* names registers. Rows this process never loaded are left to the process
|
|
1280
|
+
* that holds them. Best-effort, as the live tools' row deletes are.
|
|
1281
|
+
*/
|
|
1282
|
+
async cleanupHeldSessionRows(sessionId) {
|
|
1283
|
+
const db = this.db;
|
|
1284
|
+
if (!db) {
|
|
1285
|
+
return;
|
|
1286
|
+
}
|
|
1287
|
+
try {
|
|
1288
|
+
await this.ensureSchemaReady();
|
|
1289
|
+
const rows = (await db.all(`SELECT id FROM agentos_emergent_tools WHERE tier = 'session' AND created_by_session = ?`, [sessionId]));
|
|
1290
|
+
for (const { id } of rows) {
|
|
1291
|
+
if (!this.states.has(id) || this.sessionTools.has(id) || this.persistedTools.has(id)) {
|
|
1292
|
+
continue;
|
|
1293
|
+
}
|
|
1294
|
+
this.states.delete(id);
|
|
1295
|
+
this.restrictionWrites.delete(id);
|
|
1296
|
+
this.bump(id);
|
|
1297
|
+
this.queueRowDeletes(id);
|
|
1298
|
+
this.logAudit(id, 'cleanup', { sessionId });
|
|
1299
|
+
}
|
|
1300
|
+
}
|
|
1301
|
+
catch {
|
|
1302
|
+
// Best-effort cleanup only.
|
|
1303
|
+
}
|
|
1304
|
+
}
|
|
1098
1305
|
// --------------------------------------------------------------------------
|
|
1099
1306
|
// AUDIT LOG ACCESSORS
|
|
1100
1307
|
// --------------------------------------------------------------------------
|
|
@@ -1205,7 +1412,12 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
1205
1412
|
// reactivates the tool. A process that holds no state writes 1 for a new
|
|
1206
1413
|
// row and leaves an existing row's flag as it stands at write time, not
|
|
1207
1414
|
// as it read it earlier: a whole-row write is never a reactivation, and
|
|
1208
|
-
// never a disable either.
|
|
1415
|
+
// never a disable either. A state write another process lands while the
|
|
1416
|
+
// statement runs can leave it with the older state (PostgreSQL, READ
|
|
1417
|
+
// COMMITTED): the state row's write id is read before it, and when it has
|
|
1418
|
+
// moved the flag is written again from the state row, as that state
|
|
1419
|
+
// write's own flag write does.
|
|
1420
|
+
const stateWriteBefore = this.states.has(tool.id) ? await this.readStateWriteId(tool.id) : null;
|
|
1209
1421
|
const heldNow = this.states.get(tool.id);
|
|
1210
1422
|
const flagExpr = heldNow
|
|
1211
1423
|
? `COALESCE((SELECT CASE WHEN state = 'active' THEN 1 ELSE 0 END
|
|
@@ -1252,6 +1464,9 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
|
|
|
1252
1464
|
// The flag of a new row; on conflict, see flagOnConflict above.
|
|
1253
1465
|
...flagParams,
|
|
1254
1466
|
]);
|
|
1467
|
+
if (heldNow) {
|
|
1468
|
+
await this.flagAfterOvertaking(tool.id, heldNow.state, stateWriteBefore);
|
|
1469
|
+
}
|
|
1255
1470
|
}
|
|
1256
1471
|
/**
|
|
1257
1472
|
* The `implementation_source` to write for a tool. With source persistence
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmergentToolRegistry.js","sourceRoot":"","sources":["../../../src/cognition/emergent/EmergentToolRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAazC,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AA8F3H,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,GAAwB,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AA0CvE,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,MAAM,OAAO,oBAAoB;IA0D/B;;;;;;;;OAQG;IACH,YAAY,SAAkC,EAAE,EAAE,EAAoB;QAlEtE,gEAAgE;QAC/C,iBAAY,GAAG,IAAI,GAAG,EAAwB,CAAC;QAEhE,2EAA2E;QAC1D,mBAAc,GAAG,IAAI,GAAG,EAAwB,CAAC;QAElE,kIAAkI;QACjH,aAAQ,GAAiB,EAAE,CAAC;QAE7C,kEAAkE;QACjD,WAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;QAE7D;;;;WAIG;QACc,gBAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;QAQnE,8DAA8D;QACtD,gBAAW,GAAG,KAAK,CAAC;QAC5B;;;;WAIG;QACH;;;;;;;;;WASG;QACK,UAAK,GAAG,CAAC,CAAC;QACD,cAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QACvD,wEAAwE;QACvD,aAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtD,sEAAsE;QAC9D,cAAS,GAAG,CAAC,CAAC;QAEtB;;;;;WAKG;QACK,uBAAkB,GAAyB,IAAI,CAAC;QAYtD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,uBAAuB,EAAE,GAAG,MAAM,EAAE,CAAC;QACxD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,6EAA6E;IAC7E,SAAS;IACT,6EAA6E;IAE7E;;;;;;;;OAQG;IACH,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;GAuBpB,CAAC;QAEA,MAAM,cAAc,GAAG,gGAAgG,CAAC;QACxH,MAAM,eAAe,GAAG,wGAAwG,CAAC;QAEjI,MAAM,UAAU,GAAG;;;;;;;GAOpB,CAAC;QAEA,MAAM,UAAU,GAAG,uGAAuG,CAAC;QAE3H,wEAAwE;QACxE,4EAA4E;QAC5E,wDAAwD;QACxD,MAAM,UAAU,GAAG;;;;;;;;;;;GAWpB,CAAC;QAEA,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;GAiBtB,CAAC;QACA,MAAM,gBAAgB,GAAG,uGAAuG,CAAC;QACjI,MAAM,gBAAgB,GAAG,4FAA4F,CAAC;QAEtH,sEAAsE;QACtE,oEAAoE;QACpE,4EAA4E;QAC5E,uDAAuD;QACvD,MAAM,UAAU,GAAG;YACjB,UAAU;YACV,cAAc;YACd,eAAe;YACf,UAAU;YACV,UAAU;YACV,UAAU;YACV,YAAY;YACZ,gBAAgB;YAChB,gBAAgB;SACjB,CAAC;QACF,8EAA8E;QAC9E,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,6EAA6E;IAC7E,WAAW;IACX,6EAA6E;IAE7E;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,IAAkB,EAAE,IAAc;QACzC,0CAA0C;QAC1C,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAC9D,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YAC5C,IAAI,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK;oBAC/D,+DAA+D,CAChE,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAClD,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CACb,6BAA6B,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK;oBAC3D,+DAA+D,CAChE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,4EAA4E;QAC5E,iEAAiE;QACjE,MAAM,UAAU,GAAiB,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;QAClD,UAAoD,CAAC,QAAQ,GAAG,IAAI,CAAC;QAEtE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE;YAC7B,MAAM,EAAE,UAAU,CAAC,EAAE;YACrB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,SAAS;YAChB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,uEAAuE;YACvE,sEAAsE;YACtE,sEAAsE;YACtE,+BAA+B;YAC/B,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBACrF,kCAAkC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,6EAA6E;IAC7E,MAAM;IACN,6EAA6E;IAE7E;;;;;;;OAOG;IACH,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,6EAA6E;IAC7E,QAAQ;IACR,6EAA6E;IAE7E,4EAA4E;IAC5E,QAAQ,CAAC,MAAc;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,uEAAuE;IACvE,QAAQ,CAAC,MAAc;QACrB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,QAAQ,CAAC,KAAK,QAAQ,CAAC;IACnE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,KAAK,CAAC,QAAQ,CACZ,MAAc,EACd,KAAgB,EAChB,MAAqB,EACrB,UAII,EAAE;QAEN,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,KAAK,GAAgB,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC;QAC5C,MAAM,MAAM,GAAoB;YAC9B,MAAM;YACN,KAAK;YACL,MAAM;YACN,KAAK;YACL,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC;SACzE,CAAC;QACF,MAAM,IAAI,GAAG,GAAS,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,IAAI,EAAE,CAAC;gBACR,IAA8C,CAAC,QAAQ,GAAG,KAAK,KAAK,QAAQ,CAAC;YAChF,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC;QACF,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,IAAI,EAAE,CAAC;QACT,CAAC;QAED,IAAI,OAAO,GAAoB,MAAM,CAAC;QACtC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAChD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CACzD,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,sEAAsE;YACtE,2EAA2E;YAC3E,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YACpF,uEAAuE;YACvE,oBAAoB;YACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,IAAI,EAAE,CAAC;gBACR,IAA8C,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC;YACxF,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,KAAK,QAAQ,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1F,kEAAkE;gBAClE,sEAAsE;gBACtE,iEAAiE;gBACjE,oEAAoE;gBACpE,mEAAmE;gBACnE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;gBAChG,OAAO,OAAO,IAAI,MAAM,CAAC;YAC3B,CAAC;YACD,IAAI,EAAE,CAAC;QACT,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,iFAAiF;IACzE,eAAe,CAAI,MAAc,EAAE,KAAuB;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAChE,MAAM,IAAI,GAAe,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC1C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;OAWG;IACK,KAAK,CAAC,aAAa,CACzB,MAAc,EACd,MAAuB,EACvB,KAAc,EACd,KAAuE;QAEvE,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,MAAM,OAAO,GAAG,KAAK;YACnB,CAAC,CAAC;;;;;;0CAMkC;YACpC,CAAC,CAAC;;;;;0CAKkC,CAAC;QACvC,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,2DAA2D;QAC3D,uEAAuE;QACvE,4DAA4D;QAC5D,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,MAAM,MAAM,GAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3H,MAAM,WAAW,GAAc,EAAE,CAAC;QAClC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,KAAK,GAAG;uBACS,CAAC;QACpB,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,KAAK,GAAG;;;0DAG4C,CAAC;YACrD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,IAAuC,EAAE,CAC5D,CAAC,MAAM,EAAE,CAAC,GAAG,CACX;;;8BAGsB,EACtB,CAAC,MAAM,CAAC,CACT,CAA6B,CAAC;QACjC,MAAM,SAAS,GAAG,CAAC,GAAiB,EAAmB,EAAE,CAAC,CAAC;YACzD,MAAM;YACN,KAAK,EAAE,GAAG,CAAC,KAAkB;YAC7B,MAAM,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;YAChC,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC;YACxC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;YAC7B,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC;YAC7C,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnD,CAAC,CAAC;QACH,yEAAyE;QACzE,2EAA2E;QAC3E,wEAAwE;QACxE,2CAA2C;QAC3C,MAAM,OAAO,GAAG,CAAC,GAA6B,EAAW,EAAE,CACzD,CAAC,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;QAChE,wEAAwE;QACxE,mDAAmD;QACnD,MAAM,OAAO,GAAG,GAAoB,EAAE,CAAC,CAAC;YACtC,MAAM;YACN,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,MAAM;YACb,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC;QAC/B,IAAI,KAAK,KAAK,QAAQ,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;YACxC,sEAAsE;YACtE,uEAAuE;YACvE,8BAA8B;YAC9B,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5D,CAAC;QACD,uEAAuE;QACvE,0EAA0E;QAC1E,wEAAwE;QACxE,kEAAkE;QAClE,MAAM,EAAE,CAAC,GAAG,CACV;;;;;;WAMK,OAAO;0BACQ,KAAK,EAAE,EAC3B,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,CAC5C,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,oEAAoE;YACpE,qBAAqB;YACrB,OAAO,GAAG,EAAE,KAAK,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,uEAAuE;YACvE,4DAA4D;YAC5D,MAAM,CAAC,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC;QACD,qEAAqE;QACrE,mEAAmE;QACnE,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,EAAE,CAAC,GAAG,CACV;;gCAE0B,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,2CAA2C,EAAE,EACvH,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAC1G,CAAC;QACF,qEAAqE;QACrE,wEAAwE;QACxE,2EAA2E;QAC3E,wEAAwE;QACxE,MAAM,KAAK,GAAG,MAAM,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1E,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,iFAAiF;IACzE,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,KAAgB;QAC5D,MAAM,IAAI,CAAC,EAAG,CAAC,GAAG,CAChB;;;qBAGe,EACf,CAAC,MAAM,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAC7C,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,MAAmE;QACtG,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,EAAE,CAAC,GAAG,CACV;;gCAE0B,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,2CAA2C,EAAE,EACvH,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAC1G,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,MAAc;QAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,cAAc,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACnF,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAEO,IAAI,CAAC,MAAc;QACzB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,iDAAiD;IACjD,OAAO;QACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QACD,sEAAsE;QACtE,oDAAoD;QACpD,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAChD,IACE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC9B,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;gBAChC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBACxB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAC1B,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,UAAU;QACR,OAAO,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,OAA4D;QACvE,OAAO,IAAI,CAAC,EAAE;YACZ,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACzF,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,IAAkB;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,0EAA0E;QAC1E,mDAAmD;QACnD,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;OAMG;IACK,eAAe,CAAC,MAAc;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,EAAE,CAAC,GAAG,CAAC,iDAAiD,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1E,MAAM,EAAE,CAAC,GAAG,CAAC,2DAA2D,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC;aACC,KAAK,CAAC,GAAG,EAAE;YACV,4BAA4B;QAC9B,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAkB,EAAE,MAAuB,EAAE,gBAAyB;QAC1E,IACE,gBAAgB,KAAK,SAAS;YAC9B,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAC3E,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QACA,IAA8C,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC;QACrF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAcD;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CACZ,KAA0B,EAC1B,QAAkD,EAAE;QAEpD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAC5B,UAAU,oBAAoB,CAAC,WAAW;gBAChC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;kCACF,EAC5B,MAAM,CACP,CAAC;QACF,OAAO,IAA0B,CAAC;IACpC,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAC3B,UAAU,oBAAoB,CAAC,WAAW;uBACzB,EACjB,CAAC,MAAM,CAAC,CACT,CAAC;QACF,OAAQ,GAAoC,IAAI,SAAS,CAAC;IAC5D,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,sFAAsF;IACtF,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAC5B;;;4BAGsB,EACtB,CAAC,MAAM,CAAC,CACT,CAA6B,CAAC;QAC/B,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACpC,oEAAoE;YACpE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO;YACL,MAAM;YACN,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;YAChC,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC;YACxC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;YAC7B,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC;YAC7C,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnD,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,IAAkB;QACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEpC,MAAM,UAAU,GAAiB,EAAE,GAAG,IAAI,EAAE,CAAC;QAC7C,wEAAwE;QACvE,UAAoD,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9F,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC1C,uCAAuC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAc;QACnB,MAAM,OAAO,GACX,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3B,uEAAuE;QACvE,oEAAoE;QACpE,iEAAiE;QACjE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,6EAA6E;IAC7E,cAAc;IACd,6EAA6E;IAE7E;;;;;;;;OAQG;IACH,SAAS,CACP,IAAc,EACd,KAAgD;QAEhD,IAAI,KAAqB,CAAC;QAE1B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CACvB,CAAC;QACJ,CAAC;QAED,gCAAgC;QAChC,IAAI,KAAK,EAAE,SAAS,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;YAC5B,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,KAAK,EAAE,OAAO,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;YAC1B,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6EAA6E;IAC7E,aAAa;IACb,6EAA6E;IAE7E;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CACP,MAAc,EACd,MAAe,EACf,OAAgB,EAChB,OAAgB,EAChB,eAAuB;QAEvB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,cAAc,CAAC,CAAC;QACpE,CAAC;QAED,uEAAuE;QACvE,0EAA0E;QAC1E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAElC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;QAErB,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,uEAAuE;QACvE,KAAK,CAAC,kBAAkB;YACtB,CAAC,KAAK,CAAC,kBAAkB,GAAG,SAAS,GAAG,eAAe,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;QAE7E,8BAA8B;QAC9B,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC;QAE7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,KAAK,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAEpD,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAChC,wEAAwE;YACxE,mEAAmE;YACnE,gCAAgC;YAChC,IAAI,CAAC,EAAE;iBACJ,GAAG,CACF;;;yBAGe,EACf;gBACE,KAAK,CAAC,eAAe;gBACrB,KAAK,CAAC,SAAS;gBACf,KAAK,CAAC,YAAY;gBAClB,KAAK,CAAC,YAAY;gBAClB,KAAK,CAAC,kBAAkB;gBACxB,QAAQ;gBACR,MAAM;aACP,CACF;iBACA,KAAK,CAAC,GAAG,EAAE;gBACV,oEAAoE;YACtE,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6EAA6E;IAC7E,kBAAkB;IAClB,6EAA6E;IAE7E;;;;;;OAMG;IACH,aAAa,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IACtC,CAAC;IAED,6EAA6E;IAC7E,UAAU;IACV,6EAA6E;IAE7E;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,OAAO,CACX,MAAc,EACd,UAAoB,EACpB,UAAmB;QAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,cAAc,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEnD,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,6BAA6B,IAAI,CAAC,IAAI,SAAS,UAAU,KAAK;gBAC9D,wDAAwD,CACzD,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAChF,oEAAoE;YACpE,6CAA6C;YAC7C,MAAM,IAAI,KAAK,CACb,wBAAwB,MAAM,4BAA4B,IAAI,CAAC,SAAS,6BAA6B;gBACnG,WAAW,sBAAsB,uDAAuD,CAC3F,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QAE/B,oEAAoE;QACpE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACzB,CAAC;QAED,wEAAwE;QACxE,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE;YAC/B,IAAI,EAAE,YAAY;YAClB,EAAE,EAAE,UAAU;YACd,UAAU,EAAE,UAAU,IAAI,IAAI;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,SAAS;IACT,6EAA6E;IAE7E;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,MAAc,EAAE,MAAc;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,cAAc,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,CAAC,CAAC;QAEpC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,yEAAyE;QACzE,qEAAqE;QACrE,wCAAwC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAChG,mEAAmE;QACnE,kEAAkE;QAClE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6EAA6E;IAC7E,kBAAkB;IAClB,6EAA6E;IAE7E;;;;;;;;;;OAUG;IACH,cAAc,CAAC,SAAiB;QAC9B,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,kEAAkE;YAClE,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACd,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBACzB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC5C,YAAY,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,6EAA6E;IAC7E,sBAAsB;IACtB,6EAA6E;IAE7E;;;;;OAKG;IACH,WAAW,CAAC,MAAe;QACzB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,6EAA6E;IAC7E,oBAAoB;IACpB,6EAA6E;IAE7E;;;;;;OAMG;IACK,QAAQ,CAAC,MAAc,EAAE,SAAiB,EAAE,IAAc;QAChE,MAAM,KAAK,GAAe;YACxB,EAAE,EAAE,UAAU,EAAE;YAChB,MAAM;YACN,SAAS;YACT,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;QAClE,CAAC;QAED,4DAA4D;QAC5D,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,EAAE;iBACJ,GAAG,CACF;kCACwB,EACxB;gBACE,KAAK,CAAC,EAAE;gBACR,KAAK,CAAC,MAAM;gBACZ,KAAK,CAAC,SAAS;gBACf,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC1C,KAAK,CAAC,SAAS;aAChB,CACF;iBACA,KAAK,CAAC,GAAG,EAAE;gBACV,gEAAgE;gBAChE,iEAAiE;YACnE,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,2BAA2B;IAC3B,6EAA6E;IAE7E;;;;;;;;OAQG;IACK,KAAK,CAAC,eAAe,CAC3B,IAAkB,EAClB,UAAmB;QAEnB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,6DAA6D;QAC7D,mEAAmE;QACnE,wEAAwE;QACxE,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;QAE9D,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,IAAI,UAAU,GAAkB,UAAU,IAAI,IAAI,CAAC;QAEnD,uEAAuE;QACvE,yEAAyE;QACzE,wCAAwC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,QAES,CAAC;QACd,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;YACrC,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAC3B;;;kBAGU,EACV,CAAC,IAAI,CAAC,EAAE,CAAC,CACV,CAAoB,CAAC;QACxB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,QAAQ,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YACjE,UAAU;gBACR,UAAU,IAAI,IAAI;oBAChB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBACZ,CAAC,CAAC,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;wBACnC,CAAC,CAAC,GAAG,CAAC,WAAW;wBACjB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACnB,UAAU;gBACR,UAAU;oBACV,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEnE,uEAAuE;QACvE,wEAAwE;QACxE,2EAA2E;QAC3E,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,0BAA0B;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO;YACtB,CAAC,CAAC;6EACqE;YACvE,CAAC,CAAC,GAAG,CAAC;QACR,MAAM,UAAU,GAAc,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,MAAM,cAAc,GAAG,OAAO;YAC5B,CAAC,CAAC,mFAAmF;YACrF,CAAC,CAAC,kCAAkC,CAAC;QACvC,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB;YACnF,uBAAuB,EAAE,MAAM,EAAE,kBAAkB,EAAE,oBAAoB;YACzE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB;YAChF,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc;SACnF,CAAC;QAEF,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CACf;UACI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;6EACiD,QAAQ;;WAE1E,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,eAAe,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;uBAC3E,cAAc,EAAE,EACjC;YACE,IAAI,CAAC,EAAE;YACP,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,IAAI;YACxB,oBAAoB;YACpB,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,SAAS;YACd,SAAS;YACT,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;YAClC,UAAU;YACV,UAAU;YACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,IAAI,CAAC,UAAU,CAAC,eAAe;YAC/B,IAAI,CAAC,UAAU,CAAC,SAAS;YACzB,IAAI,CAAC,UAAU,CAAC,YAAY;YAC5B,IAAI,CAAC,UAAU,CAAC,YAAY;YAC5B,IAAI,CAAC,UAAU,CAAC,kBAAkB;YAClC,IAAI,CAAC,UAAU,CAAC,UAAU;gBACxB,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;gBAChD,CAAC,CAAC,IAAI;YACR,gEAAgE;YAChE,GAAG,UAAU;SACd,CACF,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,oBAAoB,CAAC,IAAkB;QACnD,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CACjC;;;gBAGU,EACV,CAAC,IAAI,CAAC,EAAE,CAAC,CACV,CAA0D,CAAC;QAC5D,MAAM,MAAM,GAAG,QAAQ,EAAE,qBAAqB,CAAC;QAC/C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAChG,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAEO,8BAA8B,CAAC,IAAkB;QACvD,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAClC,CAAC;QAED,MAAM,QAAQ,GAA6B;YACzC,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,8BAA8B;YACtC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;YAC7C,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;SAC/D,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;;AAprBuB,gCAAW,GAAG;;;;;;;;;;+DAUuB,AAV1B,CAU2B"}
|
|
1
|
+
{"version":3,"file":"EmergentToolRegistry.js","sourceRoot":"","sources":["../../../src/cognition/emergent/EmergentToolRegistry.ts"],"names":[],"mappings":"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"}
|