@cogitator-ai/swarms 0.4.19 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +245 -897
- package/dist/agents.d.ts +13 -0
- package/dist/agents.d.ts.map +1 -0
- package/dist/agents.js +70 -0
- package/dist/agents.js.map +1 -0
- package/dist/assessor/assessor.d.ts +9 -2
- package/dist/assessor/assessor.d.ts.map +1 -1
- package/dist/assessor/assessor.js +89 -61
- package/dist/assessor/assessor.js.map +1 -1
- package/dist/assessor/role-matcher.d.ts +6 -24
- package/dist/assessor/role-matcher.d.ts.map +1 -1
- package/dist/assessor/role-matcher.js +9 -37
- package/dist/assessor/role-matcher.js.map +1 -1
- package/dist/assessor/scoring.js +1 -1
- package/dist/assessor/scoring.js.map +1 -1
- package/dist/assessor/task-analyzer.d.ts.map +1 -1
- package/dist/assessor/task-analyzer.js +4 -19
- package/dist/assessor/task-analyzer.js.map +1 -1
- package/dist/base-coordinator.d.ts +117 -0
- package/dist/base-coordinator.d.ts.map +1 -0
- package/dist/base-coordinator.js +455 -0
- package/dist/base-coordinator.js.map +1 -0
- package/dist/communication/blackboard.d.ts +34 -4
- package/dist/communication/blackboard.d.ts.map +1 -1
- package/dist/communication/blackboard.js +80 -41
- package/dist/communication/blackboard.js.map +1 -1
- package/dist/communication/event-emitter.d.ts +1 -1
- package/dist/communication/event-emitter.d.ts.map +1 -1
- package/dist/communication/event-emitter.js +6 -17
- package/dist/communication/event-emitter.js.map +1 -1
- package/dist/communication/index.d.ts +2 -2
- package/dist/communication/index.d.ts.map +1 -1
- package/dist/communication/index.js +2 -2
- package/dist/communication/index.js.map +1 -1
- package/dist/communication/message-bus.d.ts +48 -5
- package/dist/communication/message-bus.d.ts.map +1 -1
- package/dist/communication/message-bus.js +135 -50
- package/dist/communication/message-bus.js.map +1 -1
- package/dist/communication/redis-blackboard.d.ts +12 -5
- package/dist/communication/redis-blackboard.d.ts.map +1 -1
- package/dist/communication/redis-blackboard.js +214 -94
- package/dist/communication/redis-blackboard.js.map +1 -1
- package/dist/communication/redis-event-emitter.d.ts +14 -1
- package/dist/communication/redis-event-emitter.d.ts.map +1 -1
- package/dist/communication/redis-event-emitter.js +107 -47
- package/dist/communication/redis-event-emitter.js.map +1 -1
- package/dist/communication/redis-message-bus.d.ts +13 -6
- package/dist/communication/redis-message-bus.d.ts.map +1 -1
- package/dist/communication/redis-message-bus.js +93 -66
- package/dist/communication/redis-message-bus.js.map +1 -1
- package/dist/coordinator.d.ts +7 -41
- package/dist/coordinator.d.ts.map +1 -1
- package/dist/coordinator.js +17 -336
- package/dist/coordinator.js.map +1 -1
- package/dist/distributed/distributed-coordinator.d.ts +55 -49
- package/dist/distributed/distributed-coordinator.d.ts.map +1 -1
- package/dist/distributed/distributed-coordinator.js +166 -253
- package/dist/distributed/distributed-coordinator.js.map +1 -1
- package/dist/distributed/index.d.ts +1 -1
- package/dist/distributed/index.d.ts.map +1 -1
- package/dist/distributed/index.js +1 -1
- package/dist/distributed/index.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/resources/circuit-breaker.d.ts +1 -6
- package/dist/resources/circuit-breaker.d.ts.map +1 -1
- package/dist/resources/circuit-breaker.js +14 -17
- package/dist/resources/circuit-breaker.js.map +1 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/tracker.d.ts.map +1 -1
- package/dist/resources/tracker.js +8 -5
- package/dist/resources/tracker.js.map +1 -1
- package/dist/shared/hierarchy.d.ts +21 -0
- package/dist/shared/hierarchy.d.ts.map +1 -0
- package/dist/shared/hierarchy.js +27 -0
- package/dist/shared/hierarchy.js.map +1 -0
- package/dist/shared/negotiation.d.ts +27 -0
- package/dist/shared/negotiation.d.ts.map +1 -0
- package/dist/shared/negotiation.js +55 -0
- package/dist/shared/negotiation.js.map +1 -0
- package/dist/shared/voting.d.ts +6 -0
- package/dist/shared/voting.d.ts.map +1 -0
- package/dist/shared/voting.js +13 -0
- package/dist/shared/voting.js.map +1 -0
- package/dist/strategies/auction.js +2 -3
- package/dist/strategies/auction.js.map +1 -1
- package/dist/strategies/consensus.d.ts +12 -0
- package/dist/strategies/consensus.d.ts.map +1 -1
- package/dist/strategies/consensus.js +81 -40
- package/dist/strategies/consensus.js.map +1 -1
- package/dist/strategies/debate.d.ts.map +1 -1
- package/dist/strategies/debate.js +19 -9
- package/dist/strategies/debate.js.map +1 -1
- package/dist/strategies/hierarchical.d.ts.map +1 -1
- package/dist/strategies/hierarchical.js +29 -12
- package/dist/strategies/hierarchical.js.map +1 -1
- package/dist/strategies/index.d.ts +8 -7
- package/dist/strategies/index.d.ts.map +1 -1
- package/dist/strategies/index.js +1 -7
- package/dist/strategies/index.js.map +1 -1
- package/dist/strategies/negotiation/approval.d.ts.map +1 -1
- package/dist/strategies/negotiation/approval.js +47 -21
- package/dist/strategies/negotiation/approval.js.map +1 -1
- package/dist/strategies/negotiation/convergence.js +1 -1
- package/dist/strategies/negotiation-strategy.d.ts +24 -2
- package/dist/strategies/negotiation-strategy.d.ts.map +1 -1
- package/dist/strategies/negotiation-strategy.js +281 -158
- package/dist/strategies/negotiation-strategy.js.map +1 -1
- package/dist/strategies/pipeline.d.ts.map +1 -1
- package/dist/strategies/pipeline.js +19 -11
- package/dist/strategies/pipeline.js.map +1 -1
- package/dist/swarm.d.ts +24 -15
- package/dist/swarm.d.ts.map +1 -1
- package/dist/swarm.js +193 -116
- package/dist/swarm.js.map +1 -1
- package/dist/tools/blackboard.d.ts +1 -1
- package/dist/tools/blackboard.d.ts.map +1 -1
- package/dist/tools/blackboard.js +26 -6
- package/dist/tools/blackboard.js.map +1 -1
- package/dist/tools/delegation.d.ts +23 -4
- package/dist/tools/delegation.d.ts.map +1 -1
- package/dist/tools/delegation.js +116 -85
- package/dist/tools/delegation.js.map +1 -1
- package/dist/tools/index.d.ts +3 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +19 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/messaging.d.ts +36 -7
- package/dist/tools/messaging.d.ts.map +1 -1
- package/dist/tools/messaging.js +122 -46
- package/dist/tools/messaging.js.map +1 -1
- package/dist/tools/negotiation.d.ts +8 -4
- package/dist/tools/negotiation.d.ts.map +1 -1
- package/dist/tools/negotiation.js +135 -85
- package/dist/tools/negotiation.js.map +1 -1
- package/dist/tools/voting.d.ts +3 -0
- package/dist/tools/voting.d.ts.map +1 -1
- package/dist/tools/voting.js +13 -12
- package/dist/tools/voting.js.map +1 -1
- package/dist/utils/concurrency.d.ts +10 -0
- package/dist/utils/concurrency.d.ts.map +1 -0
- package/dist/utils/concurrency.js +28 -0
- package/dist/utils/concurrency.js.map +1 -0
- package/dist/utils/invoke.d.ts +2 -0
- package/dist/utils/invoke.d.ts.map +1 -0
- package/dist/utils/invoke.js +19 -0
- package/dist/utils/invoke.js.map +1 -0
- package/dist/workflow/swarm-node.d.ts.map +1 -1
- package/dist/workflow/swarm-node.js +56 -71
- package/dist/workflow/swarm-node.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-coordinator.js","sourceRoot":"","sources":["../src/base-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAoB/C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAqC7D;;;;GAIG;AACH,MAAM,OAAgB,oBAAoB;IAKrB,MAAM,CAAc;IACpB,OAAO,CAAS;IAChB,MAAM,CAA0B;IAChC,aAAa,CAAyC;IAC/D,eAAe,CAAkB;IACjC,WAAW,GAAG,IAAI,CAAC;IACrB,cAAc,CAAkB;IAChC,aAAa,GAAG,IAAI,GAAG,EAAiB,CAAC;IACzC,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IACxC,QAAQ,GAAkB,EAAE,CAAC;IAC7B,MAAM,GAAG,KAAK,CAAC;IAEvB,YACE,MAAmB,EACnB,OAAe,EACf,aAAqD;QAErD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAEnE,IAAI,MAAM,CAAC,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;YAClD,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;gBACvC,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;gBACxD,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY;aAC/D,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAOD;;OAEG;IACO,KAAK,CAAC,OAAO,KAAmB,CAAC;IAE3C,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,cAAc,CAAC,KAAc;QAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS;QACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,IAAgC;QAC9C,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAuB,EAAE;QAChC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC;QAE7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;YACrB,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;YAC7B,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;YACvB,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,SAAiB,EACjB,KAAa,EACb,OAAiC,EACjC,OAA8B;QAE9B,OAAO,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,MAA4E,EAC5E,cAAuB;QAEvB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,IAAI,CAAC,CAAC,CAAC;QAC9F,MAAM,gBAAgB,GACpB,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,KAAK,MAAM;YACpD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,KAAK,IAAI,CAAC;QAErD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CACvC,MAAM,EACN,WAAW,EACX,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EACjE,EAAE,aAAa,EAAE,CAAC,gBAAgB,EAAE,CACrC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC7C,IAAI,UAAmB,CAAC;QACxB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAClC,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,QAAQ,EAAE,CAAC;gBACX,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,UAAU,CAAC;QACnB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,SAAiB,EACjB,KAAa,EACb,OAA4C,EAC5C,OAA6B,EAC7B,aAA0B;QAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC,gBAAgB,CAC1B,UAAU,EACV,KAAK,EACL,OAAO,EACP,OAAO,EACP,OAAO,CAAC,KAAK,CAAC,EACd,aAAa,CACd,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,SAAiB;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,sBAAsB,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAES,WAAW;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACvF,CAAC;IAEO,aAAa;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvC,OAAO,SAAS;YACd,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC3D,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,UAAsB,EACtB,KAAa,EACb,OAA4C,EAC5C,OAA6B;QAE7B,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QAExC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAEjE,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACjE,MAAM,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YAEnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;gBACnC,UAAU;gBACV,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC;gBAC3D,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE;gBAC5B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;gBACvF,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;gBAC9E,OAAO,EAAE;oBACP,GAAG,OAAO;oBACV,YAAY,EAAE;wBACZ,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;wBAC3B,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI;wBACnC,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;qBAC/E;oBACD,GAAG,CAAC,gBAAgB,IAAI,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;oBAChE,GAAG,CAAC,kBAAkB,IAAI,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;iBAChE;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAC3C,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC;YAC/B,UAAU,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;YAClD,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACtD,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,CAAC;YAErC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC;YAErE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;YACjE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACO,aAAa,CAAC,UAAsB;QAC5C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QACnC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QAEtC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7B,KAAK,cAAc;gBACjB,OAAO,IAAI,KAAK,YAAY;oBAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBACnE,CAAC,CAAC,EAAE,CAAC;YACT,KAAK,aAAa;gBAChB,OAAO,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,WAAW;oBAClD,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,MAAM,CAAC,MAAM,CACX,sBAAsB,CACpB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,MAAM,EACX,IAAI,EACJ,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5E,CACF,CAAC;YACR;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,UAAsB;QACjD,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACpE,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,UAAsB,EAAE,aAAsB;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC;QACjD,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;QAE7D,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAyB,EAAE,CAAC;QAC3C,IAAI,cAAc,KAAK,aAAa;YAAE,SAAS,CAAC,aAAa,GAAG,cAAc,CAAC;QAC/E,IAAI,UAAU,KAAK,SAAS;YAAE,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC;QAC/D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS,CAAC,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;QACxF,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC,KAAK,CAAC;QAEjE,MAAM,QAAQ,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,cAAc,IAAI,EAAE,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;QACxF,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,UAAsB,EACtB,KAAa,EACb,OAA4C,EAC5C,OAA6B,EAC7B,KAAY,EACZ,aAA0B;QAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,aAAc,CAAC;QAC/C,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QAExC,QAAQ,WAAW,CAAC,cAAc,EAAE,CAAC;YACnC,KAAK,OAAO;gBACV,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;oBAC1D,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC3F,CAAC;gBACD,MAAM,KAAK,CAAC;YAEd,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC7B,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC1D,IAAI,eAAe,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;oBAC3D,OAAO,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;gBAC5F,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YAED,KAAK,MAAM;gBACT,OAAO;oBACL,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,eAAe,MAAM,CAAC,CAAC,CAAC,EAAE;oBACjC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE;oBAC5B,QAAQ,EAAE,EAAE;oBACZ,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;oBAChF,SAAS,EAAE,EAAE;oBACb,QAAQ,EAAE,EAAE;oBACZ,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;iBACrD,CAAC;YAEJ,KAAK,OAAO,CAAC;YACb;gBACE,MAAM,KAAK,CAAC;QAChB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,UAAsB,EACtB,KAAa,EACb,OAA4C,EAC5C,OAA6B,EAC7B,WAAwB,EACxB,YAAmB;QAEnB,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,WAAW,CAAC;QACnF,IAAI,SAAS,GAAG,YAAY,CAAC;QAE7B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,MAAM,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC3E,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACtE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,IAAI,CAAC,WAAW,EAAE;oBAAE,MAAM,SAAS,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CACb,UAAU,UAAU,CAAC,KAAK,CAAC,IAAI,kBAAkB,UAAU,aAAa,SAAS,CAAC,OAAO,EAAE,EAC3F,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,SAAiB,EAAE,KAAsB;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,iBAAiB;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,MAAM;gBAAE,MAAM,CAAC,YAAY,EAAE,CAAC;YAElC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,cAAc,EACd;gBACE,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,EACD,OAAO,CAAC,IAAI,CACb,CAAC;YAEF,IAAI,aAAa,EAAE,cAAc,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBAC7B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;oBACvB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,kBAAkB,EAClB;gBACE,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK;aAChC,EACD,KAAK,CAAC,SAAS,CAChB,CAAC;YAEF,IAAI,aAAa,EAAE,iBAAiB,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;oBACtC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;oBACvB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK;iBAChC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,uBAAuB,CAAC,SAAiB;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAErC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,kBAAkB,EAClB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EACpD,SAAS,CACV,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAe,EAAE,EAAE;YAC/C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YACtD,OAAO,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,OAAO,gCAAgC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACrE,CAAC;IAEO,uBAAuB,CAAC,SAAiB;QAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC;YAAE,OAAO,IAAI,CAAC;QAErD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAmB,aAAa,CAAC,CAAC;QAEpE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAC3F,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAmB,EAAE,EAAE;YAC9D,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvD,OAAO,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAErF,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI;YACvE,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,wBAAwB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC;gBACjE,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,KAAK,EAAE,CAAC,CAAC,KAAK;aACf,CAAC,CAAC;YACH,eAAe,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC;gBACtD,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC;YACH,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;YACvC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAC/D;YACD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS;SAChC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CACjC,OAA+B,EAC/B,OAAe,EACf,YAAoB,EACpB,QAAgB;IAEhB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACrE,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpD;YACE,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAG,MAA8B;IACnD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACnE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC"}
|
|
@@ -2,10 +2,35 @@
|
|
|
2
2
|
* Blackboard for shared state between agents
|
|
3
3
|
*/
|
|
4
4
|
import type { Blackboard, BlackboardConfig, BlackboardSection, BlackboardHistoryEntry } from '@cogitator-ai/types';
|
|
5
|
-
export
|
|
5
|
+
export type BlackboardSectionHandler = (data: unknown, agentName: string) => void;
|
|
6
|
+
export interface BlackboardWrite {
|
|
7
|
+
section: string;
|
|
8
|
+
data: unknown;
|
|
9
|
+
agentName: string;
|
|
10
|
+
version: number;
|
|
11
|
+
deleted?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export type BlackboardWriteListener = (write: BlackboardWrite) => void;
|
|
14
|
+
/**
|
|
15
|
+
* Blackboard that exposes a bus-wide write listener (used for swarm observability).
|
|
16
|
+
*/
|
|
17
|
+
export interface ObservableBlackboard extends Blackboard {
|
|
18
|
+
onWrite(listener: BlackboardWriteListener): () => void;
|
|
19
|
+
}
|
|
20
|
+
export declare function isObservableBlackboard(blackboard: Blackboard): blackboard is ObservableBlackboard;
|
|
21
|
+
export declare class BlackboardListeners {
|
|
22
|
+
private readonly label;
|
|
23
|
+
private sectionHandlers;
|
|
24
|
+
private writeListeners;
|
|
25
|
+
constructor(label: string);
|
|
26
|
+
subscribe(section: string, handler: BlackboardSectionHandler): () => void;
|
|
27
|
+
onWrite(listener: BlackboardWriteListener): () => void;
|
|
28
|
+
notify(write: BlackboardWrite): void;
|
|
29
|
+
}
|
|
30
|
+
export declare class InMemoryBlackboard implements ObservableBlackboard {
|
|
6
31
|
private sections;
|
|
7
32
|
private history;
|
|
8
|
-
private
|
|
33
|
+
private listeners;
|
|
9
34
|
private config;
|
|
10
35
|
constructor(config: BlackboardConfig);
|
|
11
36
|
read<T = unknown>(section: string): T;
|
|
@@ -13,12 +38,17 @@ export declare class InMemoryBlackboard implements Blackboard {
|
|
|
13
38
|
append<T>(section: string, item: T, agentName: string): void;
|
|
14
39
|
has(section: string): boolean;
|
|
15
40
|
delete(section: string): void;
|
|
16
|
-
subscribe(section: string, handler:
|
|
41
|
+
subscribe(section: string, handler: BlackboardSectionHandler): () => void;
|
|
42
|
+
onWrite(listener: BlackboardWriteListener): () => void;
|
|
17
43
|
getSections(): string[];
|
|
18
44
|
getSection<T = unknown>(section: string): BlackboardSection<T> | undefined;
|
|
19
45
|
getHistory(section: string): BlackboardHistoryEntry[];
|
|
46
|
+
/**
|
|
47
|
+
* Remove all sections and history. Subscriptions are preserved so listeners
|
|
48
|
+
* keep working across swarm resets.
|
|
49
|
+
*/
|
|
20
50
|
clear(): void;
|
|
21
|
-
private
|
|
51
|
+
private assertEnabled;
|
|
22
52
|
}
|
|
23
53
|
export declare function createBlackboard(config?: Partial<BlackboardConfig>): Blackboard;
|
|
24
54
|
//# sourceMappingURL=blackboard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blackboard.d.ts","sourceRoot":"","sources":["../../src/communication/blackboard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"blackboard.d.ts","sourceRoot":"","sources":["../../src/communication/blackboard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,MAAM,wBAAwB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,uBAAuB,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,UAAU;IACtD,OAAO,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,IAAI,CAAC;CACxD;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,IAAI,oBAAoB,CAEjG;AAED,qBAAa,mBAAmB;IAIlB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC,OAAO,CAAC,eAAe,CAAoD;IAC3E,OAAO,CAAC,cAAc,CAAsC;gBAE/B,KAAK,EAAE,MAAM;IAE1C,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAkBzE,OAAO,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,IAAI;IAOtD,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;CAUrC;AAED,qBAAa,kBAAmB,YAAW,oBAAoB;IAC7D,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,EAAE,gBAAgB;IAyBpC,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;IASrC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IA2B3D,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAgB5D,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI7B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAe7B,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAIzE,OAAO,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,IAAI;IAItD,WAAW,IAAI,MAAM,EAAE;IAIvB,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,SAAS;IAI1E,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE;IAIrD;;;OAGG;IACH,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,aAAa;CAKtB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,UAAU,CAO/E"}
|
|
@@ -1,10 +1,55 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Blackboard for shared state between agents
|
|
3
3
|
*/
|
|
4
|
+
import { invokeSafely } from '../utils/invoke.js';
|
|
5
|
+
export function isObservableBlackboard(blackboard) {
|
|
6
|
+
return typeof blackboard.onWrite === 'function';
|
|
7
|
+
}
|
|
8
|
+
export class BlackboardListeners {
|
|
9
|
+
label;
|
|
10
|
+
sectionHandlers = new Map();
|
|
11
|
+
writeListeners = new Set();
|
|
12
|
+
constructor(label) {
|
|
13
|
+
this.label = label;
|
|
14
|
+
}
|
|
15
|
+
subscribe(section, handler) {
|
|
16
|
+
let handlers = this.sectionHandlers.get(section);
|
|
17
|
+
if (!handlers) {
|
|
18
|
+
handlers = new Set();
|
|
19
|
+
this.sectionHandlers.set(section, handlers);
|
|
20
|
+
}
|
|
21
|
+
handlers.add(handler);
|
|
22
|
+
return () => {
|
|
23
|
+
const current = this.sectionHandlers.get(section);
|
|
24
|
+
if (!current)
|
|
25
|
+
return;
|
|
26
|
+
current.delete(handler);
|
|
27
|
+
if (current.size === 0) {
|
|
28
|
+
this.sectionHandlers.delete(section);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
onWrite(listener) {
|
|
33
|
+
this.writeListeners.add(listener);
|
|
34
|
+
return () => {
|
|
35
|
+
this.writeListeners.delete(listener);
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
notify(write) {
|
|
39
|
+
if (!write.deleted) {
|
|
40
|
+
for (const handler of [...(this.sectionHandlers.get(write.section) ?? [])]) {
|
|
41
|
+
invokeSafely(handler, [write.data, write.agentName], `${this.label} Handler error`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
for (const listener of [...this.writeListeners]) {
|
|
45
|
+
invokeSafely(listener, [write], `${this.label} Write listener error`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
4
49
|
export class InMemoryBlackboard {
|
|
5
50
|
sections = new Map();
|
|
6
51
|
history = new Map();
|
|
7
|
-
|
|
52
|
+
listeners = new BlackboardListeners('[Blackboard]');
|
|
8
53
|
config;
|
|
9
54
|
constructor(config) {
|
|
10
55
|
this.config = config;
|
|
@@ -29,6 +74,7 @@ export class InMemoryBlackboard {
|
|
|
29
74
|
}
|
|
30
75
|
}
|
|
31
76
|
read(section) {
|
|
77
|
+
this.assertEnabled();
|
|
32
78
|
const sec = this.sections.get(section);
|
|
33
79
|
if (!sec) {
|
|
34
80
|
throw new Error(`Blackboard section '${section}' not found`);
|
|
@@ -36,34 +82,29 @@ export class InMemoryBlackboard {
|
|
|
36
82
|
return sec.data;
|
|
37
83
|
}
|
|
38
84
|
write(section, data, agentName) {
|
|
39
|
-
|
|
40
|
-
throw new Error('Blackboard is not enabled');
|
|
41
|
-
}
|
|
85
|
+
this.assertEnabled();
|
|
42
86
|
const existing = this.sections.get(section);
|
|
43
87
|
const version = existing ? existing.version + 1 : 1;
|
|
44
88
|
const timestamp = Date.now();
|
|
45
|
-
|
|
89
|
+
this.sections.set(section, {
|
|
46
90
|
name: section,
|
|
47
91
|
data,
|
|
48
92
|
lastModified: timestamp,
|
|
49
93
|
modifiedBy: agentName,
|
|
50
94
|
version,
|
|
51
|
-
};
|
|
52
|
-
this.sections.set(section, newSection);
|
|
95
|
+
});
|
|
53
96
|
if (this.config.trackHistory) {
|
|
54
|
-
|
|
55
|
-
|
|
97
|
+
let entries = this.history.get(section);
|
|
98
|
+
if (!entries) {
|
|
99
|
+
entries = [];
|
|
100
|
+
this.history.set(section, entries);
|
|
56
101
|
}
|
|
57
|
-
|
|
58
|
-
value: data,
|
|
59
|
-
writtenBy: agentName,
|
|
60
|
-
timestamp,
|
|
61
|
-
version,
|
|
62
|
-
});
|
|
102
|
+
entries.push({ value: data, writtenBy: agentName, timestamp, version });
|
|
63
103
|
}
|
|
64
|
-
this.
|
|
104
|
+
this.listeners.notify({ section, data, agentName, version });
|
|
65
105
|
}
|
|
66
106
|
append(section, item, agentName) {
|
|
107
|
+
this.assertEnabled();
|
|
67
108
|
const current = this.sections.get(section);
|
|
68
109
|
if (!current) {
|
|
69
110
|
this.write(section, [item], agentName);
|
|
@@ -72,31 +113,30 @@ export class InMemoryBlackboard {
|
|
|
72
113
|
if (!Array.isArray(current.data)) {
|
|
73
114
|
throw new Error(`Section '${section}' is not an array, cannot append`);
|
|
74
115
|
}
|
|
75
|
-
|
|
76
|
-
this.write(section, newData, agentName);
|
|
116
|
+
this.write(section, [...current.data, item], agentName);
|
|
77
117
|
}
|
|
78
118
|
has(section) {
|
|
79
119
|
return this.sections.has(section);
|
|
80
120
|
}
|
|
81
121
|
delete(section) {
|
|
122
|
+
const existing = this.sections.get(section);
|
|
82
123
|
this.sections.delete(section);
|
|
83
124
|
this.history.delete(section);
|
|
84
|
-
|
|
125
|
+
if (existing) {
|
|
126
|
+
this.listeners.notify({
|
|
127
|
+
section,
|
|
128
|
+
data: undefined,
|
|
129
|
+
agentName: 'system',
|
|
130
|
+
version: existing.version,
|
|
131
|
+
deleted: true,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
85
134
|
}
|
|
86
135
|
subscribe(section, handler) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
this.
|
|
91
|
-
return () => {
|
|
92
|
-
const handlers = this.subscriptions.get(section);
|
|
93
|
-
if (handlers) {
|
|
94
|
-
handlers.delete(handler);
|
|
95
|
-
if (handlers.size === 0) {
|
|
96
|
-
this.subscriptions.delete(section);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
};
|
|
136
|
+
return this.listeners.subscribe(section, handler);
|
|
137
|
+
}
|
|
138
|
+
onWrite(listener) {
|
|
139
|
+
return this.listeners.onWrite(listener);
|
|
100
140
|
}
|
|
101
141
|
getSections() {
|
|
102
142
|
return Array.from(this.sections.keys());
|
|
@@ -105,20 +145,19 @@ export class InMemoryBlackboard {
|
|
|
105
145
|
return this.sections.get(section);
|
|
106
146
|
}
|
|
107
147
|
getHistory(section) {
|
|
108
|
-
return this.history.get(section) ?? [];
|
|
148
|
+
return [...(this.history.get(section) ?? [])];
|
|
109
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Remove all sections and history. Subscriptions are preserved so listeners
|
|
152
|
+
* keep working across swarm resets.
|
|
153
|
+
*/
|
|
110
154
|
clear() {
|
|
111
155
|
this.sections.clear();
|
|
112
156
|
this.history.clear();
|
|
113
157
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
for (const handler of handlers) {
|
|
118
|
-
void Promise.resolve(handler(data, agentName)).catch((error) => {
|
|
119
|
-
console.warn('[Blackboard] Handler error:', error);
|
|
120
|
-
});
|
|
121
|
-
}
|
|
158
|
+
assertEnabled() {
|
|
159
|
+
if (!this.config.enabled) {
|
|
160
|
+
throw new Error('Blackboard is not enabled');
|
|
122
161
|
}
|
|
123
162
|
}
|
|
124
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blackboard.js","sourceRoot":"","sources":["../../src/communication/blackboard.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"blackboard.js","sourceRoot":"","sources":["../../src/communication/blackboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export declare class SwarmEventEmitterImpl implements SwarmEventEmitter {
|
|
|
8
8
|
private maxEvents;
|
|
9
9
|
constructor(maxEvents?: number);
|
|
10
10
|
on(event: SwarmEventType | '*', handler: SwarmEventHandler): () => void;
|
|
11
|
-
once(event: SwarmEventType, handler: SwarmEventHandler): () => void;
|
|
11
|
+
once(event: SwarmEventType | '*', handler: SwarmEventHandler): () => void;
|
|
12
12
|
emit(event: SwarmEventType, data?: unknown, agentName?: string): void;
|
|
13
13
|
off(event: SwarmEventType | '*', handler: SwarmEventHandler): void;
|
|
14
14
|
removeAllListeners(event?: SwarmEventType): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../src/communication/event-emitter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../src/communication/event-emitter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAG7B,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,OAAO,CAAC,QAAQ,CAA2D;IAC3E,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,SAAO;IAI5B,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,IAAI;IASvE,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAQzE,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAuBrE,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAUlE,kBAAkB,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI;IAQhD,SAAS,IAAI,UAAU,EAAE;IAIzB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,UAAU,EAAE;IAInD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAIjD,WAAW,IAAI,IAAI;CAGpB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Event emitter for swarm coordination
|
|
3
3
|
*/
|
|
4
|
+
import { invokeSafely } from '../utils/invoke.js';
|
|
4
5
|
export class SwarmEventEmitterImpl {
|
|
5
6
|
handlers = new Map();
|
|
6
7
|
events = [];
|
|
@@ -18,9 +19,7 @@ export class SwarmEventEmitterImpl {
|
|
|
18
19
|
once(event, handler) {
|
|
19
20
|
const wrapper = (e) => {
|
|
20
21
|
this.off(event, wrapper);
|
|
21
|
-
|
|
22
|
-
console.warn('[SwarmEventEmitter] Once handler error:', error);
|
|
23
|
-
});
|
|
22
|
+
invokeSafely(handler, [e], '[SwarmEventEmitter] Once handler error');
|
|
24
23
|
};
|
|
25
24
|
return this.on(event, wrapper);
|
|
26
25
|
}
|
|
@@ -35,21 +34,11 @@ export class SwarmEventEmitterImpl {
|
|
|
35
34
|
if (this.events.length > this.maxEvents) {
|
|
36
35
|
this.events = this.events.slice(-this.maxEvents);
|
|
37
36
|
}
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
for (const handler of handlers) {
|
|
41
|
-
void Promise.resolve(handler(swarmEvent)).catch((error) => {
|
|
42
|
-
console.warn('[SwarmEventEmitter] Handler error:', error);
|
|
43
|
-
});
|
|
44
|
-
}
|
|
37
|
+
for (const handler of [...(this.handlers.get(event) ?? [])]) {
|
|
38
|
+
invokeSafely(handler, [swarmEvent], '[SwarmEventEmitter] Handler error');
|
|
45
39
|
}
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
for (const handler of wildcardHandlers) {
|
|
49
|
-
void Promise.resolve(handler(swarmEvent)).catch((error) => {
|
|
50
|
-
console.warn('[SwarmEventEmitter] Wildcard handler error:', error);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
40
|
+
for (const handler of [...(this.handlers.get('*') ?? [])]) {
|
|
41
|
+
invokeSafely(handler, [swarmEvent], '[SwarmEventEmitter] Wildcard handler error');
|
|
53
42
|
}
|
|
54
43
|
}
|
|
55
44
|
off(event, handler) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../../src/communication/event-emitter.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../../src/communication/event-emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Communication primitives for swarm coordination
|
|
3
3
|
*/
|
|
4
4
|
export { SwarmEventEmitterImpl } from './event-emitter.js';
|
|
5
|
-
export { InMemoryMessageBus, createMessageBus } from './message-bus.js';
|
|
6
|
-
export { InMemoryBlackboard, createBlackboard } from './blackboard.js';
|
|
5
|
+
export { InMemoryMessageBus, createMessageBus, isReadTrackingMessageBus, type ReadTrackingMessageBus, type MessageListener, } from './message-bus.js';
|
|
6
|
+
export { InMemoryBlackboard, createBlackboard, isObservableBlackboard, type ObservableBlackboard, type BlackboardWrite, type BlackboardWriteListener, type BlackboardSectionHandler, } from './blackboard.js';
|
|
7
7
|
export { RedisMessageBus, type RedisMessageBusOptions } from './redis-message-bus.js';
|
|
8
8
|
export { RedisBlackboard, type RedisBlackboardOptions } from './redis-blackboard.js';
|
|
9
9
|
export { RedisSwarmEventEmitter, type RedisEventEmitterOptions } from './redis-event-emitter.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/communication/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/communication/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,GAC9B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,KAAK,wBAAwB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Communication primitives for swarm coordination
|
|
3
3
|
*/
|
|
4
4
|
export { SwarmEventEmitterImpl } from './event-emitter.js';
|
|
5
|
-
export { InMemoryMessageBus, createMessageBus } from './message-bus.js';
|
|
6
|
-
export { InMemoryBlackboard, createBlackboard } from './blackboard.js';
|
|
5
|
+
export { InMemoryMessageBus, createMessageBus, isReadTrackingMessageBus, } from './message-bus.js';
|
|
6
|
+
export { InMemoryBlackboard, createBlackboard, isObservableBlackboard, } from './blackboard.js';
|
|
7
7
|
export { RedisMessageBus } from './redis-message-bus.js';
|
|
8
8
|
export { RedisBlackboard } from './redis-blackboard.js';
|
|
9
9
|
export { RedisSwarmEventEmitter } from './redis-event-emitter.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/communication/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/communication/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,GAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,GAKvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,eAAe,EAA+B,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,eAAe,EAA+B,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAiC,MAAM,0BAA0B,CAAC"}
|
|
@@ -2,22 +2,65 @@
|
|
|
2
2
|
* Message bus for agent-to-agent communication
|
|
3
3
|
*/
|
|
4
4
|
import type { MessageBus, MessageBusConfig, SwarmMessage } from '@cogitator-ai/types';
|
|
5
|
-
export
|
|
5
|
+
export type MessageListener = (msg: SwarmMessage) => void;
|
|
6
|
+
/**
|
|
7
|
+
* Message bus that remembers which messages each agent has already consumed.
|
|
8
|
+
*/
|
|
9
|
+
export interface ReadTrackingMessageBus extends MessageBus {
|
|
10
|
+
markAsRead(agentName: string, messageIds: readonly string[]): void;
|
|
11
|
+
resetTurnCounts(agentName?: string): void;
|
|
12
|
+
onMessage(listener: MessageListener): () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function isReadTrackingMessageBus(bus: MessageBus): bus is ReadTrackingMessageBus;
|
|
15
|
+
export declare function isMessageForAgent(message: SwarmMessage, agentName: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Shared bookkeeping for message bus implementations: per-turn quotas,
|
|
18
|
+
* per-agent read receipts and bus-wide listeners.
|
|
19
|
+
*/
|
|
20
|
+
export declare class MessageBusState {
|
|
21
|
+
private readonly label;
|
|
22
|
+
private turnCounts;
|
|
23
|
+
private readReceipts;
|
|
24
|
+
private listeners;
|
|
25
|
+
constructor(label: string);
|
|
26
|
+
consumeTurnQuota(config: MessageBusConfig, from: string): void;
|
|
27
|
+
resetTurnCounts(agentName?: string): void;
|
|
28
|
+
markAsRead(agentName: string, messageIds: readonly string[]): void;
|
|
29
|
+
isRead(agentName: string, messageId: string): boolean;
|
|
30
|
+
forgetMessages(messageIds: readonly string[]): void;
|
|
31
|
+
onMessage(listener: MessageListener): () => void;
|
|
32
|
+
notifyListeners(message: SwarmMessage): void;
|
|
33
|
+
clear(): void;
|
|
34
|
+
}
|
|
35
|
+
export declare function notifyMessageSubscribers(subscriptions: Map<string, Set<MessageListener>>, message: SwarmMessage, label: string): void;
|
|
36
|
+
export declare function addSubscription(subscriptions: Map<string, Set<MessageListener>>, agentName: string, handler: MessageListener): () => void;
|
|
37
|
+
export declare class InMemoryMessageBus implements ReadTrackingMessageBus {
|
|
6
38
|
private messages;
|
|
7
39
|
private subscriptions;
|
|
8
40
|
private config;
|
|
9
|
-
private
|
|
41
|
+
private state;
|
|
10
42
|
constructor(config: MessageBusConfig);
|
|
11
43
|
send(message: Omit<SwarmMessage, 'id' | 'timestamp'>): Promise<SwarmMessage>;
|
|
12
44
|
broadcast(from: string, content: string, channel?: string): Promise<void>;
|
|
13
|
-
subscribe(agentName: string, handler:
|
|
45
|
+
subscribe(agentName: string, handler: MessageListener): () => void;
|
|
46
|
+
/**
|
|
47
|
+
* Listen to every message sent through the bus, regardless of recipient.
|
|
48
|
+
*/
|
|
49
|
+
onMessage(listener: MessageListener): () => void;
|
|
14
50
|
getMessages(agentName: string, limit?: number): SwarmMessage[];
|
|
15
51
|
getConversation(agent1: string, agent2: string): SwarmMessage[];
|
|
16
52
|
getAllMessages(): SwarmMessage[];
|
|
53
|
+
/**
|
|
54
|
+
* Messages addressed to the agent (directly or via broadcast) that it has not read yet.
|
|
55
|
+
* Use {@link markAsRead} once the messages have been delivered to the agent.
|
|
56
|
+
*/
|
|
17
57
|
getUnreadMessages(agentName: string): SwarmMessage[];
|
|
58
|
+
markAsRead(agentName: string, messageIds: readonly string[]): void;
|
|
18
59
|
clear(): void;
|
|
19
|
-
|
|
20
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Reset per-turn message quotas for one agent, or for all agents when omitted.
|
|
62
|
+
*/
|
|
63
|
+
resetTurnCounts(agentName?: string): void;
|
|
21
64
|
}
|
|
22
65
|
export declare function createMessageBus(config?: Partial<MessageBusConfig>): MessageBus;
|
|
23
66
|
//# sourceMappingURL=message-bus.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-bus.d.ts","sourceRoot":"","sources":["../../src/communication/message-bus.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"message-bus.d.ts","sourceRoot":"","sources":["../../src/communication/message-bus.ts"],"names":[],"mappings":"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"}
|