@animalabs/agent-framework 0.26.2 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +99 -8
- package/dist/src/agent.d.ts +291 -23
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +596 -61
- package/dist/src/agent.js.map +1 -1
- package/dist/src/api/server.d.ts.map +1 -1
- package/dist/src/api/server.js +5 -4
- package/dist/src/api/server.js.map +1 -1
- package/dist/src/auto-continue.d.ts +34 -0
- package/dist/src/auto-continue.d.ts.map +1 -0
- package/dist/src/auto-continue.js +36 -0
- package/dist/src/auto-continue.js.map +1 -0
- package/dist/src/code-execution/isolate/scripts.d.ts +11 -0
- package/dist/src/code-execution/isolate/scripts.d.ts.map +1 -1
- package/dist/src/code-execution/isolate/scripts.js +5 -1
- package/dist/src/code-execution/isolate/scripts.js.map +1 -1
- package/dist/src/cut-off-round.d.ts +24 -0
- package/dist/src/cut-off-round.d.ts.map +1 -0
- package/dist/src/cut-off-round.js +87 -0
- package/dist/src/cut-off-round.js.map +1 -0
- package/dist/src/framework.d.ts +1038 -193
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +5967 -1514
- package/dist/src/framework.js.map +1 -1
- package/dist/src/gate/event-gate.d.ts +405 -46
- package/dist/src/gate/event-gate.d.ts.map +1 -1
- package/dist/src/gate/event-gate.js +2646 -399
- package/dist/src/gate/event-gate.js.map +1 -1
- package/dist/src/gate/index.d.ts +3 -2
- package/dist/src/gate/index.d.ts.map +1 -1
- package/dist/src/gate/index.js +2 -1
- package/dist/src/gate/index.js.map +1 -1
- package/dist/src/gate/recipe-reconcile.d.ts +103 -0
- package/dist/src/gate/recipe-reconcile.d.ts.map +1 -0
- package/dist/src/gate/recipe-reconcile.js +325 -0
- package/dist/src/gate/recipe-reconcile.js.map +1 -0
- package/dist/src/gate/reply-judge.d.ts +116 -0
- package/dist/src/gate/reply-judge.d.ts.map +1 -0
- package/dist/src/gate/reply-judge.js +467 -0
- package/dist/src/gate/reply-judge.js.map +1 -0
- package/dist/src/gate/types.d.ts +229 -8
- package/dist/src/gate/types.d.ts.map +1 -1
- package/dist/src/heartbeat/heartbeat.d.ts +184 -0
- package/dist/src/heartbeat/heartbeat.d.ts.map +1 -0
- package/dist/src/heartbeat/heartbeat.js +752 -0
- package/dist/src/heartbeat/heartbeat.js.map +1 -0
- package/dist/src/heartbeat/reminder-time.d.ts +5 -0
- package/dist/src/heartbeat/reminder-time.d.ts.map +1 -0
- package/dist/src/heartbeat/reminder-time.js +107 -0
- package/dist/src/heartbeat/reminder-time.js.map +1 -0
- package/dist/src/index.d.ts +10 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcpl/capability-mask.d.ts.map +1 -1
- package/dist/src/mcpl/capability-mask.js +3 -2
- package/dist/src/mcpl/capability-mask.js.map +1 -1
- package/dist/src/mcpl/channel-registry.d.ts +433 -113
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.js +1154 -435
- package/dist/src/mcpl/channel-registry.js.map +1 -1
- package/dist/src/mcpl/conversation-router.d.ts +16 -8
- package/dist/src/mcpl/conversation-router.d.ts.map +1 -1
- package/dist/src/mcpl/conversation-router.js +29 -15
- package/dist/src/mcpl/conversation-router.js.map +1 -1
- package/dist/src/mcpl/convert-block.d.ts.map +1 -1
- package/dist/src/mcpl/convert-block.js +14 -2
- package/dist/src/mcpl/convert-block.js.map +1 -1
- package/dist/src/mcpl/hook-orchestrator.d.ts +7 -1
- package/dist/src/mcpl/hook-orchestrator.d.ts.map +1 -1
- package/dist/src/mcpl/hook-orchestrator.js +32 -7
- package/dist/src/mcpl/hook-orchestrator.js.map +1 -1
- package/dist/src/mcpl/inbound-source.d.ts +26 -10
- package/dist/src/mcpl/inbound-source.d.ts.map +1 -1
- package/dist/src/mcpl/inbound-source.js +40 -69
- package/dist/src/mcpl/inbound-source.js.map +1 -1
- package/dist/src/mcpl/index.d.ts +5 -1
- package/dist/src/mcpl/index.d.ts.map +1 -1
- package/dist/src/mcpl/index.js +4 -0
- package/dist/src/mcpl/index.js.map +1 -1
- package/dist/src/mcpl/inference-router.d.ts +14 -2
- package/dist/src/mcpl/inference-router.d.ts.map +1 -1
- package/dist/src/mcpl/inference-router.js +73 -28
- package/dist/src/mcpl/inference-router.js.map +1 -1
- package/dist/src/mcpl/prose-grammar.d.ts +4 -0
- package/dist/src/mcpl/prose-grammar.d.ts.map +1 -1
- package/dist/src/mcpl/prose-grammar.js +6 -0
- package/dist/src/mcpl/prose-grammar.js.map +1 -1
- package/dist/src/mcpl/protocol-family.d.ts.map +1 -1
- package/dist/src/mcpl/protocol-family.js +3 -0
- package/dist/src/mcpl/protocol-family.js.map +1 -1
- package/dist/src/mcpl/push-coalescer.d.ts +20 -2
- package/dist/src/mcpl/push-coalescer.d.ts.map +1 -1
- package/dist/src/mcpl/push-coalescer.js +33 -11
- package/dist/src/mcpl/push-coalescer.js.map +1 -1
- package/dist/src/mcpl/reference-fetcher.d.ts +63 -42
- package/dist/src/mcpl/reference-fetcher.d.ts.map +1 -1
- package/dist/src/mcpl/reference-fetcher.js +177 -145
- package/dist/src/mcpl/reference-fetcher.js.map +1 -1
- package/dist/src/mcpl/references.d.ts +380 -46
- package/dist/src/mcpl/references.d.ts.map +1 -1
- package/dist/src/mcpl/references.js +736 -77
- package/dist/src/mcpl/references.js.map +1 -1
- package/dist/src/mcpl/server-connection.d.ts +93 -4
- package/dist/src/mcpl/server-connection.d.ts.map +1 -1
- package/dist/src/mcpl/server-connection.js +176 -11
- package/dist/src/mcpl/server-connection.js.map +1 -1
- package/dist/src/mcpl/tags.d.ts +9 -2
- package/dist/src/mcpl/tags.d.ts.map +1 -1
- package/dist/src/mcpl/tags.js +12 -2
- package/dist/src/mcpl/tags.js.map +1 -1
- package/dist/src/mcpl/tool-lifecycle.d.ts +11 -0
- package/dist/src/mcpl/tool-lifecycle.d.ts.map +1 -1
- package/dist/src/mcpl/tool-lifecycle.js +21 -0
- package/dist/src/mcpl/tool-lifecycle.js.map +1 -1
- package/dist/src/mcpl/tool-presence.d.ts +311 -0
- package/dist/src/mcpl/tool-presence.d.ts.map +1 -0
- package/dist/src/mcpl/tool-presence.js +697 -0
- package/dist/src/mcpl/tool-presence.js.map +1 -0
- package/dist/src/mcpl/tool-result-normalize.d.ts +9 -3
- package/dist/src/mcpl/tool-result-normalize.d.ts.map +1 -1
- package/dist/src/mcpl/tool-result-normalize.js +14 -6
- package/dist/src/mcpl/tool-result-normalize.js.map +1 -1
- package/dist/src/mcpl/tool-signature.d.ts +46 -0
- package/dist/src/mcpl/tool-signature.d.ts.map +1 -0
- package/dist/src/mcpl/tool-signature.js +321 -0
- package/dist/src/mcpl/tool-signature.js.map +1 -0
- package/dist/src/mcpl/toolset-host.d.ts +251 -0
- package/dist/src/mcpl/toolset-host.d.ts.map +1 -0
- package/dist/src/mcpl/toolset-host.js +720 -0
- package/dist/src/mcpl/toolset-host.js.map +1 -0
- package/dist/src/mcpl/toolsets-module.d.ts +83 -0
- package/dist/src/mcpl/toolsets-module.d.ts.map +1 -0
- package/dist/src/mcpl/toolsets-module.js +523 -0
- package/dist/src/mcpl/toolsets-module.js.map +1 -0
- package/dist/src/mcpl/transport.d.ts +2 -2
- package/dist/src/mcpl/transport.d.ts.map +1 -1
- package/dist/src/mcpl/transport.js +3 -2
- package/dist/src/mcpl/transport.js.map +1 -1
- package/dist/src/mcpl/types.d.ts +24 -2
- package/dist/src/mcpl/types.d.ts.map +1 -1
- package/dist/src/mcpl/types.js.map +1 -1
- package/dist/src/mcpl/visible-content.d.ts +7 -9
- package/dist/src/mcpl/visible-content.d.ts.map +1 -1
- package/dist/src/mcpl/visible-content.js +21 -9
- package/dist/src/mcpl/visible-content.js.map +1 -1
- package/dist/src/module-registry.d.ts +27 -9
- package/dist/src/module-registry.d.ts.map +1 -1
- package/dist/src/module-registry.js +77 -17
- package/dist/src/module-registry.js.map +1 -1
- package/dist/src/modules/discord/index.js +1 -1
- package/dist/src/modules/discord/index.js.map +1 -1
- package/dist/src/modules/history/index.d.ts +2 -1
- package/dist/src/modules/history/index.d.ts.map +1 -1
- package/dist/src/modules/history/index.js +73 -28
- package/dist/src/modules/history/index.js.map +1 -1
- package/dist/src/modules/history/semantic.d.ts +108 -6
- package/dist/src/modules/history/semantic.d.ts.map +1 -1
- package/dist/src/modules/history/semantic.js +273 -57
- package/dist/src/modules/history/semantic.js.map +1 -1
- package/dist/src/modules/workspace/answers.d.ts +22 -0
- package/dist/src/modules/workspace/answers.d.ts.map +1 -0
- package/dist/src/modules/workspace/answers.js +123 -0
- package/dist/src/modules/workspace/answers.js.map +1 -0
- package/dist/src/modules/workspace/branch-intent.d.ts +5 -3
- package/dist/src/modules/workspace/branch-intent.d.ts.map +1 -1
- package/dist/src/modules/workspace/branch-intent.js +6 -2
- package/dist/src/modules/workspace/branch-intent.js.map +1 -1
- package/dist/src/modules/workspace/direct-write.d.ts +184 -0
- package/dist/src/modules/workspace/direct-write.d.ts.map +1 -0
- package/dist/src/modules/workspace/direct-write.js +417 -0
- package/dist/src/modules/workspace/direct-write.js.map +1 -0
- package/dist/src/modules/workspace/disk-agreement.d.ts +33 -11
- package/dist/src/modules/workspace/disk-agreement.d.ts.map +1 -1
- package/dist/src/modules/workspace/disk-agreement.js +48 -17
- package/dist/src/modules/workspace/disk-agreement.js.map +1 -1
- package/dist/src/modules/workspace/edit-text.d.ts +27 -12
- package/dist/src/modules/workspace/edit-text.d.ts.map +1 -1
- package/dist/src/modules/workspace/edit-text.js +61 -29
- package/dist/src/modules/workspace/edit-text.js.map +1 -1
- package/dist/src/modules/workspace/effects.d.ts +10 -0
- package/dist/src/modules/workspace/effects.d.ts.map +1 -1
- package/dist/src/modules/workspace/effects.js +21 -14
- package/dist/src/modules/workspace/effects.js.map +1 -1
- package/dist/src/modules/workspace/index.d.ts +308 -78
- package/dist/src/modules/workspace/index.d.ts.map +1 -1
- package/dist/src/modules/workspace/index.js +2103 -720
- package/dist/src/modules/workspace/index.js.map +1 -1
- package/dist/src/modules/workspace/observe.d.ts +75 -63
- package/dist/src/modules/workspace/observe.d.ts.map +1 -1
- package/dist/src/modules/workspace/observe.js +366 -180
- package/dist/src/modules/workspace/observe.js.map +1 -1
- package/dist/src/modules/workspace/read-page.d.ts +41 -0
- package/dist/src/modules/workspace/read-page.d.ts.map +1 -0
- package/dist/src/modules/workspace/read-page.js +219 -0
- package/dist/src/modules/workspace/read-page.js.map +1 -0
- package/dist/src/modules/workspace/reconcile.d.ts.map +1 -1
- package/dist/src/modules/workspace/reconcile.js +26 -16
- package/dist/src/modules/workspace/reconcile.js.map +1 -1
- package/dist/src/modules/workspace/result-text.d.ts +68 -0
- package/dist/src/modules/workspace/result-text.d.ts.map +1 -0
- package/dist/src/modules/workspace/result-text.js +94 -0
- package/dist/src/modules/workspace/result-text.js.map +1 -0
- package/dist/src/modules/workspace/sync.d.ts +9 -0
- package/dist/src/modules/workspace/sync.d.ts.map +1 -1
- package/dist/src/modules/workspace/sync.js +14 -0
- package/dist/src/modules/workspace/sync.js.map +1 -1
- package/dist/src/modules/workspace/text.d.ts +29 -12
- package/dist/src/modules/workspace/text.d.ts.map +1 -1
- package/dist/src/modules/workspace/text.js +35 -33
- package/dist/src/modules/workspace/text.js.map +1 -1
- package/dist/src/modules/workspace/types.d.ts +137 -60
- package/dist/src/modules/workspace/types.d.ts.map +1 -1
- package/dist/src/modules/workspace/types.js.map +1 -1
- package/dist/src/modules/workspace/watcher.d.ts.map +1 -1
- package/dist/src/modules/workspace/watcher.js +8 -3
- package/dist/src/modules/workspace/watcher.js.map +1 -1
- package/dist/src/prose-drafts.d.ts +4 -3
- package/dist/src/prose-drafts.d.ts.map +1 -1
- package/dist/src/prose-drafts.js +3 -2
- package/dist/src/prose-drafts.js.map +1 -1
- package/dist/src/reasoning-loss-notice.d.ts +23 -0
- package/dist/src/reasoning-loss-notice.d.ts.map +1 -0
- package/dist/src/reasoning-loss-notice.js +50 -0
- package/dist/src/reasoning-loss-notice.js.map +1 -0
- package/dist/src/reasoning-loss.d.ts +24 -0
- package/dist/src/reasoning-loss.d.ts.map +1 -0
- package/dist/src/reasoning-loss.js +102 -0
- package/dist/src/reasoning-loss.js.map +1 -0
- package/dist/src/send-tools.d.ts +3 -2
- package/dist/src/send-tools.d.ts.map +1 -1
- package/dist/src/send-tools.js +3 -2
- package/dist/src/send-tools.js.map +1 -1
- package/dist/src/sent-rows.d.ts +59 -0
- package/dist/src/sent-rows.d.ts.map +1 -0
- package/dist/src/sent-rows.js +145 -0
- package/dist/src/sent-rows.js.map +1 -0
- package/dist/src/silent-heartbeat.d.ts +17 -10
- package/dist/src/silent-heartbeat.d.ts.map +1 -1
- package/dist/src/silent-heartbeat.js.map +1 -1
- package/dist/src/stable-hash.d.ts +3 -0
- package/dist/src/stable-hash.d.ts.map +1 -0
- package/dist/src/stable-hash.js +15 -0
- package/dist/src/stable-hash.js.map +1 -0
- package/dist/src/stored-injections.d.ts +99 -0
- package/dist/src/stored-injections.d.ts.map +1 -0
- package/dist/src/stored-injections.js +106 -0
- package/dist/src/stored-injections.js.map +1 -0
- package/dist/src/text-as-stored.d.ts +4 -3
- package/dist/src/text-as-stored.d.ts.map +1 -1
- package/dist/src/text-as-stored.js +4 -3
- package/dist/src/text-as-stored.js.map +1 -1
- package/dist/src/thinking-drops.d.ts +74 -0
- package/dist/src/thinking-drops.d.ts.map +1 -0
- package/dist/src/thinking-drops.js +96 -0
- package/dist/src/thinking-drops.js.map +1 -0
- package/dist/src/tool-args.d.ts +12 -0
- package/dist/src/tool-args.d.ts.map +1 -1
- package/dist/src/tool-args.js +35 -1
- package/dist/src/tool-args.js.map +1 -1
- package/dist/src/tool-image-ledger.d.ts +9 -8
- package/dist/src/tool-image-ledger.d.ts.map +1 -1
- package/dist/src/tool-image-ledger.js +9 -8
- package/dist/src/tool-image-ledger.js.map +1 -1
- package/dist/src/tool-presentation.d.ts.map +1 -1
- package/dist/src/tool-presentation.js +3 -1
- package/dist/src/tool-presentation.js.map +1 -1
- package/dist/src/tool-result-guard.d.ts +12 -6
- package/dist/src/tool-result-guard.d.ts.map +1 -1
- package/dist/src/tool-result-guard.js +44 -17
- package/dist/src/tool-result-guard.js.map +1 -1
- package/dist/src/tool-result-history.d.ts +176 -24
- package/dist/src/tool-result-history.d.ts.map +1 -1
- package/dist/src/tool-result-history.js +411 -91
- package/dist/src/tool-result-history.js.map +1 -1
- package/dist/src/tune-out/coordinator.d.ts +17 -9
- package/dist/src/tune-out/coordinator.d.ts.map +1 -1
- package/dist/src/tune-out/coordinator.js +84 -37
- package/dist/src/tune-out/coordinator.js.map +1 -1
- package/dist/src/tune-out/tools.d.ts +4 -1
- package/dist/src/tune-out/tools.d.ts.map +1 -1
- package/dist/src/types/agent.d.ts +217 -7
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/events.d.ts +33 -9
- package/dist/src/types/events.d.ts.map +1 -1
- package/dist/src/types/framework.d.ts +39 -3
- package/dist/src/types/framework.d.ts.map +1 -1
- package/dist/src/types/module.d.ts +95 -9
- package/dist/src/types/module.d.ts.map +1 -1
- package/dist/src/types/trace.d.ts +91 -3
- package/dist/src/types/trace.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/agent.ts +661 -67
- package/src/api/server.ts +5 -4
- package/src/auto-continue.ts +43 -0
- package/src/code-execution/isolate/scripts.ts +11 -3
- package/src/cut-off-round.ts +98 -0
- package/src/framework.ts +6168 -1540
- package/src/gate/event-gate.ts +2895 -405
- package/src/gate/index.ts +10 -1
- package/src/gate/recipe-reconcile.ts +355 -0
- package/src/gate/reply-judge.ts +512 -0
- package/src/gate/types.ts +234 -9
- package/src/heartbeat/heartbeat.ts +804 -0
- package/src/heartbeat/reminder-time.ts +107 -0
- package/src/index.ts +11 -4
- package/src/mcpl/capability-mask.ts +3 -2
- package/src/mcpl/channel-registry.ts +1222 -468
- package/src/mcpl/conversation-router.ts +34 -16
- package/src/mcpl/convert-block.ts +14 -1
- package/src/mcpl/hook-orchestrator.ts +33 -6
- package/src/mcpl/inbound-source.ts +42 -69
- package/src/mcpl/index.ts +6 -1
- package/src/mcpl/inference-router.ts +79 -34
- package/src/mcpl/prose-grammar.ts +7 -0
- package/src/mcpl/protocol-family.ts +2 -0
- package/src/mcpl/push-coalescer.ts +51 -13
- package/src/mcpl/reference-fetcher.ts +201 -162
- package/src/mcpl/references.ts +851 -77
- package/src/mcpl/server-connection.ts +189 -11
- package/src/mcpl/tags.ts +13 -2
- package/src/mcpl/tool-lifecycle.ts +21 -0
- package/src/mcpl/tool-presence.ts +716 -0
- package/src/mcpl/tool-result-normalize.ts +18 -6
- package/src/mcpl/tool-signature.ts +316 -0
- package/src/mcpl/toolset-host.ts +727 -0
- package/src/mcpl/toolsets-module.ts +545 -0
- package/src/mcpl/transport.ts +3 -2
- package/src/mcpl/types.ts +25 -2
- package/src/mcpl/visible-content.ts +22 -9
- package/src/module-registry.ts +85 -26
- package/src/modules/discord/index.ts +1 -1
- package/src/modules/history/index.ts +70 -30
- package/src/modules/history/semantic.ts +308 -54
- package/src/modules/workspace/answers.ts +133 -0
- package/src/modules/workspace/branch-intent.ts +10 -5
- package/src/modules/workspace/direct-write.ts +460 -0
- package/src/modules/workspace/disk-agreement.ts +52 -21
- package/src/modules/workspace/edit-text.ts +84 -35
- package/src/modules/workspace/effects.ts +22 -13
- package/src/modules/workspace/index.ts +2142 -723
- package/src/modules/workspace/observe.ts +381 -177
- package/src/modules/workspace/read-page.ts +228 -0
- package/src/modules/workspace/reconcile.ts +27 -15
- package/src/modules/workspace/result-text.ts +121 -0
- package/src/modules/workspace/sync.ts +16 -0
- package/src/modules/workspace/text.ts +58 -32
- package/src/modules/workspace/types.ts +137 -60
- package/src/modules/workspace/watcher.ts +8 -3
- package/src/prose-drafts.ts +4 -3
- package/src/reasoning-loss-notice.ts +62 -0
- package/src/reasoning-loss.ts +120 -0
- package/src/send-tools.ts +3 -2
- package/src/sent-rows.ts +162 -0
- package/src/silent-heartbeat.ts +17 -10
- package/src/stable-hash.ts +14 -0
- package/src/stored-injections.ts +131 -0
- package/src/text-as-stored.ts +4 -3
- package/src/thinking-drops.ts +135 -0
- package/src/tool-args.ts +34 -1
- package/src/tool-image-ledger.ts +9 -8
- package/src/tool-presentation.ts +3 -1
- package/src/tool-result-guard.ts +45 -17
- package/src/tool-result-history.ts +471 -90
- package/src/tune-out/coordinator.ts +80 -37
- package/src/tune-out/tools.ts +4 -1
- package/src/types/agent.ts +220 -7
- package/src/types/events.ts +33 -9
- package/src/types/framework.ts +36 -3
- package/src/types/module.ts +91 -9
- package/src/types/trace.ts +94 -3
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCPL RFC-014 (tool presence, toolsets and surfaces): one server's tool
|
|
3
|
+
* presence as the host keeps it.
|
|
4
|
+
*
|
|
5
|
+
* The server's tool list stays its whole truth (RFC §2 principle 1); hints say
|
|
6
|
+
* which tools are static (the API tool list, as before) and which are dynamic
|
|
7
|
+
* (announced in the conversation as they come and go, and called through the
|
|
8
|
+
* host's `act`). Per server this keeps:
|
|
9
|
+
*
|
|
10
|
+
* - the tool definitions (tools/list) and the toolset declarations (manifest);
|
|
11
|
+
* - which declared toolsets and instances are open (toolsets/open results,
|
|
12
|
+
* toolsets/list, hint `toolsets` entries), and which undeclared groups the
|
|
13
|
+
* host opened itself (RFC §5.4: the server is never told);
|
|
14
|
+
* - the server's visibility statements per instance, and definition
|
|
15
|
+
* overrides, from hint changes applied in `rev` order, each at most once.
|
|
16
|
+
* One apply path serves every carrier: a call's, an open's or a close's
|
|
17
|
+
* result, a push's `hints`, a standalone `tools/hints`. `tools/list`
|
|
18
|
+
* (`mcpl/rev`) and `toolsets/list` are statements later changes build on;
|
|
19
|
+
* - which definitions the model has been shown, so a tool's first sentence
|
|
20
|
+
* is said once.
|
|
21
|
+
*
|
|
22
|
+
* Every mutation is bracketed by view() snapshots, and diff() turns the
|
|
23
|
+
* difference into what the model reads. Nothing here does I/O: the
|
|
24
|
+
* controller (toolset-host.ts) feeds it what the connection read.
|
|
25
|
+
*
|
|
26
|
+
* Ported from mcpl-cc-bridge's presence.ts, the reference host.
|
|
27
|
+
*/
|
|
28
|
+
import { type HintedTool, type Shown } from './tool-signature.js';
|
|
29
|
+
export interface ToolsetDecl {
|
|
30
|
+
title?: string;
|
|
31
|
+
summary?: string;
|
|
32
|
+
default?: 'open' | 'closed';
|
|
33
|
+
instances?: boolean;
|
|
34
|
+
options?: unknown;
|
|
35
|
+
}
|
|
36
|
+
export interface Suggestion {
|
|
37
|
+
toolset: string;
|
|
38
|
+
instance?: string;
|
|
39
|
+
action: 'open' | 'close';
|
|
40
|
+
reason: string;
|
|
41
|
+
}
|
|
42
|
+
export interface OpenRecord {
|
|
43
|
+
toolset: string;
|
|
44
|
+
instance?: string;
|
|
45
|
+
title?: string;
|
|
46
|
+
}
|
|
47
|
+
/** RFC-014 §5.3: an instance that ended other than by a toolsets/close. */
|
|
48
|
+
export interface Ended {
|
|
49
|
+
id?: string;
|
|
50
|
+
toolset: string;
|
|
51
|
+
instance?: string;
|
|
52
|
+
reason: string;
|
|
53
|
+
}
|
|
54
|
+
export type Presence = 'static' | 'dynamic';
|
|
55
|
+
/** The names of the host's meta-tools, as the model calls them. */
|
|
56
|
+
export interface MetaToolNames {
|
|
57
|
+
open: string;
|
|
58
|
+
act: string;
|
|
59
|
+
look: string;
|
|
60
|
+
close: string;
|
|
61
|
+
}
|
|
62
|
+
/** Toolset-less dynamic tools live under this key: always "open", visible per the server. */
|
|
63
|
+
export declare const NO_TOOLSET = "";
|
|
64
|
+
export declare const keyOf: (toolset: string, instance?: string) => string;
|
|
65
|
+
export declare const splitKey: (key: string) => {
|
|
66
|
+
toolset: string;
|
|
67
|
+
instance?: string;
|
|
68
|
+
};
|
|
69
|
+
interface Entry {
|
|
70
|
+
title?: string;
|
|
71
|
+
tools: Map<string, HintedTool>;
|
|
72
|
+
}
|
|
73
|
+
/** What the model may use right now: per key, the visible tools. Open-but-empty keys are present with no tools. */
|
|
74
|
+
export type View = Map<string, Entry>;
|
|
75
|
+
export interface Change {
|
|
76
|
+
key: string;
|
|
77
|
+
toolset: string;
|
|
78
|
+
instance?: string;
|
|
79
|
+
title?: string;
|
|
80
|
+
opened: boolean;
|
|
81
|
+
closed: boolean;
|
|
82
|
+
retitled: boolean;
|
|
83
|
+
appeared: HintedTool[];
|
|
84
|
+
gone: string[];
|
|
85
|
+
redefined: HintedTool[];
|
|
86
|
+
/** The visible tools after the change. */
|
|
87
|
+
now: HintedTool[];
|
|
88
|
+
}
|
|
89
|
+
export interface ChangeSet {
|
|
90
|
+
changes: Change[];
|
|
91
|
+
suggest: Suggestion[];
|
|
92
|
+
notes: string[];
|
|
93
|
+
/** Ended records' notes, by id: rendered while the id is untold, told once the set reaches an agent (markTold). */
|
|
94
|
+
ended?: Array<{
|
|
95
|
+
id: string;
|
|
96
|
+
note: string;
|
|
97
|
+
}>;
|
|
98
|
+
/** false when its taker showed the change without its blocks (a look that restates the present shows the live catalog instead): told() then counts none of its definitions shown, while a notice that tells it still shows them. */
|
|
99
|
+
blocksShown?: false;
|
|
100
|
+
}
|
|
101
|
+
export declare const emptyChange: () => ChangeSet;
|
|
102
|
+
export declare const isEmptyChange: (c: ChangeSet) => boolean;
|
|
103
|
+
/**
|
|
104
|
+
* RFC-014 §6.1: revs on a connection are consecutive (1, 2, 3 …), and changes
|
|
105
|
+
* apply in rev order, which on stdio and WebSocket is arrival order.
|
|
106
|
+
* applied: a rev above the last, applied; `skipped` when it isn't exactly
|
|
107
|
+
* the last + 1 (a message was lost unread): recover.
|
|
108
|
+
* behind: at or below the last, not applied: recover.
|
|
109
|
+
*/
|
|
110
|
+
export interface ApplyOutcome {
|
|
111
|
+
applied: boolean;
|
|
112
|
+
skipped: boolean;
|
|
113
|
+
behind: boolean;
|
|
114
|
+
suggest: Suggestion[];
|
|
115
|
+
unlisted: boolean;
|
|
116
|
+
}
|
|
117
|
+
/** What a hint `definition` may change (RFC §6.1): everything else stays the listed tool's. */
|
|
118
|
+
interface DefOverride {
|
|
119
|
+
description?: string;
|
|
120
|
+
inputSchema?: Record<string, unknown>;
|
|
121
|
+
annotations?: Record<string, unknown>;
|
|
122
|
+
}
|
|
123
|
+
/** The fields a hint definition may change (RFC §6.1); `name` and all of `_meta` are ignored. */
|
|
124
|
+
export declare function overrideOf(d: Record<string, unknown>): DefOverride;
|
|
125
|
+
export declare class ToolPresence {
|
|
126
|
+
readonly server: string;
|
|
127
|
+
/** The meta-tools' names, for the hints rendered text gives. */
|
|
128
|
+
readonly names: MetaToolNames;
|
|
129
|
+
/** The host's tool policy (enabledTools/disabledTools): a tool it refuses is as if unlisted. */
|
|
130
|
+
private readonly allowed;
|
|
131
|
+
/** How a static tool is named in the API tool list, for `look`. */
|
|
132
|
+
private readonly listedName;
|
|
133
|
+
/** Where the model's published tool list last put a tool, if it's there (shownAs). */
|
|
134
|
+
private readonly published;
|
|
135
|
+
/** Hints are in effect on the current connection: the host advertised toolHints and the server did too. */
|
|
136
|
+
active: boolean;
|
|
137
|
+
declared: Record<string, ToolsetDecl>;
|
|
138
|
+
surface: {
|
|
139
|
+
title?: string;
|
|
140
|
+
summary?: string;
|
|
141
|
+
} | null;
|
|
142
|
+
/** The last rev read on this connection (RFC §6.1); 0 at each connect. */
|
|
143
|
+
rev: number;
|
|
144
|
+
private tools;
|
|
145
|
+
private open;
|
|
146
|
+
private groups;
|
|
147
|
+
private visible;
|
|
148
|
+
/** Definition overrides from hints: per key (an instance's own, or a toolset's), per tool. */
|
|
149
|
+
private defs;
|
|
150
|
+
/** `ended` ids told to the agent, kept while the server still reports them (RFC §5.3). */
|
|
151
|
+
private toldEnded;
|
|
152
|
+
/** Moves a tools/list made that the model's tool list doesn't show yet: told once a rebuild has published them. */
|
|
153
|
+
private pendingMoves;
|
|
154
|
+
/** Digests of definitions the model has been shown with their first sentence. */
|
|
155
|
+
readonly shown: Set<string>;
|
|
156
|
+
constructor(server: string,
|
|
157
|
+
/** The meta-tools' names, for the hints rendered text gives. */
|
|
158
|
+
names: MetaToolNames,
|
|
159
|
+
/** The host's tool policy (enabledTools/disabledTools): a tool it refuses is as if unlisted. */
|
|
160
|
+
allowed?: (tool: string) => boolean,
|
|
161
|
+
/** How a static tool is named in the API tool list, for `look`. */
|
|
162
|
+
listedName?: (tool: string) => string,
|
|
163
|
+
/** Where the model's published tool list last put a tool, if it's there (shownAs). */
|
|
164
|
+
published?: (tool: string) => Presence | undefined);
|
|
165
|
+
/** A new connection: revs start over; hints count only when both sides advertised toolHints. */
|
|
166
|
+
beginConnection(mcpl: Record<string, unknown> | null | undefined, hostHints: boolean): void;
|
|
167
|
+
/** Toolset declarations and the surface hint, from initialize or a manifest re-fetch. */
|
|
168
|
+
setManifest(mcpl: Record<string, unknown> | null | undefined): void;
|
|
169
|
+
/** RFC §5.1: a server that withdraws toolHints is hint-less from then on: every tool static, nothing dynamic presented. */
|
|
170
|
+
deactivate(): void;
|
|
171
|
+
/** tools/list: every definition, visible or not (RFC §4.1). A tool the host's policy refuses is left out. */
|
|
172
|
+
setTools(list: HintedTool[]): void;
|
|
173
|
+
/** Whether the meta-tools speak for this server: hints in effect and something dynamic. */
|
|
174
|
+
get presents(): boolean;
|
|
175
|
+
get allTools(): HintedTool[];
|
|
176
|
+
tool(name: string): HintedTool | undefined;
|
|
177
|
+
toolsetOf(name: string): string | undefined;
|
|
178
|
+
/** As the list states it: a toolset's tool is dynamic whatever a hint says (RFC §4.1). */
|
|
179
|
+
presenceOf(name: string): Presence;
|
|
180
|
+
/** RFC §4.2: "Until it applies the move, the tool keeps working where it
|
|
181
|
+
* is." Whether a tool is at `place` in the tool list last published, or
|
|
182
|
+
* in the server's latest tools/list (its presence). Until a rebuild
|
|
183
|
+
* applies a move the two differ, and a call is taken at either. */
|
|
184
|
+
shownAs(name: string, place: Presence): boolean;
|
|
185
|
+
private listedPresence;
|
|
186
|
+
isDeclared(toolset: string): boolean;
|
|
187
|
+
/** Undeclared toolset names the server's tools are tagged with (RFC §5.4). */
|
|
188
|
+
get undeclaredGroups(): string[];
|
|
189
|
+
openRecords(toolset?: string): OpenRecord[];
|
|
190
|
+
isOpen(toolset: string, instance?: string): boolean;
|
|
191
|
+
get openGroups(): string[];
|
|
192
|
+
/**
|
|
193
|
+
* The definition the model sees, and the host checks arguments against, for
|
|
194
|
+
* `name` in `key`: the instance's own (a hint definition with `instance`),
|
|
195
|
+
* else the toolset's (one without), else the listed one (RFC §6.1).
|
|
196
|
+
*/
|
|
197
|
+
defOf(key: string, name: string): HintedTool;
|
|
198
|
+
view(): View;
|
|
199
|
+
diff(before: View, after: View): ChangeSet;
|
|
200
|
+
/** Apply a HintChanges (RFC §6.1) from any of its carriers, as it is read (see ApplyOutcome). */
|
|
201
|
+
apply(h: unknown): ApplyOutcome;
|
|
202
|
+
/**
|
|
203
|
+
* tools/list's `_meta["mcpl/rev"]` (RFC §4.1): the last rev the server had
|
|
204
|
+
* sent when it wrote the list, which takes none itself. Read in order it
|
|
205
|
+
* equals the last rev read; a higher one means a message was lost (true).
|
|
206
|
+
*/
|
|
207
|
+
noteListRev(rev: unknown): boolean;
|
|
208
|
+
private applyBody;
|
|
209
|
+
/**
|
|
210
|
+
* Where a definition lands (RFC §6.1): with `instance`, that instance's own;
|
|
211
|
+
* without, the toolset's (for a toolset without instances, its only one's).
|
|
212
|
+
*/
|
|
213
|
+
private defKeyFor;
|
|
214
|
+
/** Where a visibility statement lands. For a toolset with instances, `instance` is required; a statement without one is ignored. */
|
|
215
|
+
private keysFor;
|
|
216
|
+
private setVisible;
|
|
217
|
+
private dropKey;
|
|
218
|
+
/** The result of a toolsets/open: the instance is open whatever its hints say. */
|
|
219
|
+
noteOpened(toolset: string, instance: string | undefined, title: string | undefined): void;
|
|
220
|
+
/** toolsets/close succeeded: closed, whatever the hints said. */
|
|
221
|
+
noteClosed(toolset: string, instance: string | undefined): void;
|
|
222
|
+
/**
|
|
223
|
+
* toolsets/list (RFC §5.3): what the principal has open, with the full hint
|
|
224
|
+
* state of its dynamic tools, the truth for declared toolsets and dynamic
|
|
225
|
+
* tools outside them. Anything the host believed open and the server doesn't
|
|
226
|
+
* report is closed, never re-opened here: opening can start a new game.
|
|
227
|
+
* Returns what was lost, what the server says ended while no connection was
|
|
228
|
+
* told, its suggestions, and whether its rev skipped one.
|
|
229
|
+
*/
|
|
230
|
+
adopt(result: unknown): {
|
|
231
|
+
lost: OpenRecord[];
|
|
232
|
+
ended: Ended[];
|
|
233
|
+
suggest: Suggestion[];
|
|
234
|
+
skipped: boolean;
|
|
235
|
+
unlisted: boolean;
|
|
236
|
+
};
|
|
237
|
+
/**
|
|
238
|
+
* What the agent should hear about an adoption: what ended while it was
|
|
239
|
+
* away, each `ended` id until it has been told (RFC §5.3; markTold), and
|
|
240
|
+
* what is closed now. An ended record with an id is in `ended`, rendered
|
|
241
|
+
* while its id is untold.
|
|
242
|
+
*/
|
|
243
|
+
adoptionNotes(lost: OpenRecord[], ended: Ended[]): {
|
|
244
|
+
notes: string[];
|
|
245
|
+
ended: Array<{
|
|
246
|
+
id: string;
|
|
247
|
+
note: string;
|
|
248
|
+
}>;
|
|
249
|
+
};
|
|
250
|
+
/** The agent has been told these ended records (a notice written, a result it reads); the next statement forgets any it no longer reports. */
|
|
251
|
+
markTold(ended: ChangeSet['ended']): void;
|
|
252
|
+
/** The definitions a change set's tool blocks describe have reached the model. */
|
|
253
|
+
markShown(cs: ChangeSet): void;
|
|
254
|
+
/** A set's ended notes whose ids are still untold, each once. */
|
|
255
|
+
untoldNotes(cs: ChangeSet): string[];
|
|
256
|
+
openGroup(g: string): void;
|
|
257
|
+
closeGroup(g: string): void;
|
|
258
|
+
/** The static↔dynamic moves the lists made since the last rebuild, still to be shown. */
|
|
259
|
+
moves(): Array<{
|
|
260
|
+
name: string;
|
|
261
|
+
to: Presence;
|
|
262
|
+
}>;
|
|
263
|
+
/** At a rebuild of the model's tool list (RFC §4.2): those of `moves` still pending, now shown. */
|
|
264
|
+
applyMoves(moves?: {
|
|
265
|
+
name: string;
|
|
266
|
+
to: Presence;
|
|
267
|
+
}[]): Array<{
|
|
268
|
+
name: string;
|
|
269
|
+
to: Presence;
|
|
270
|
+
}>;
|
|
271
|
+
/** The marker a key's announcements begin with, `[server/toolset:instance]`, which a reminder looks for. */
|
|
272
|
+
label(key: string): string;
|
|
273
|
+
callHint(key: string): string;
|
|
274
|
+
closeHint(key: string): string | null;
|
|
275
|
+
openHint(toolset: string, instance?: string): string;
|
|
276
|
+
/** The tool block for one key: its label, how to call, and the visible tools (new or changed ones described). */
|
|
277
|
+
toolBlock(key: string, tools: HintedTool[], opts?: {
|
|
278
|
+
describeAll?: boolean;
|
|
279
|
+
headed?: boolean;
|
|
280
|
+
title?: string;
|
|
281
|
+
seen?: Shown;
|
|
282
|
+
}): string[];
|
|
283
|
+
/**
|
|
284
|
+
* What the model reads for a change set. `bare`: a key whose header the
|
|
285
|
+
* caller already printed. `mark: false` renders without counting the
|
|
286
|
+
* definitions it describes as shown, for text that may not reach the model
|
|
287
|
+
* (markShown counts them once it has). `describeAll`: every tool with its
|
|
288
|
+
* first sentence, as for a result that may reach no agent.
|
|
289
|
+
*/
|
|
290
|
+
render(cs: ChangeSet, opts?: {
|
|
291
|
+
bare?: string;
|
|
292
|
+
mark?: boolean;
|
|
293
|
+
describeAll?: boolean;
|
|
294
|
+
}): string;
|
|
295
|
+
/** RFC §6.2: a suggestion is shown, never acted on. */
|
|
296
|
+
renderSuggestion(s: Suggestion): string;
|
|
297
|
+
/** The keys a reminder restates: every open key of this server's view. */
|
|
298
|
+
openKeys(): string[];
|
|
299
|
+
/** RFC §8.3 reminder: what is open, its current tools (described), how to call and close it. Null when nothing is open. */
|
|
300
|
+
reminder(): string | null;
|
|
301
|
+
/** look naming this server: what is open (with tools) and what can be
|
|
302
|
+
* opened. `mark: false`, as for render, for a look whose result may
|
|
303
|
+
* reach no agent. */
|
|
304
|
+
catalog(opts?: {
|
|
305
|
+
mark?: boolean;
|
|
306
|
+
}): string;
|
|
307
|
+
/** Where a tool can be called from now, for `look` naming it. */
|
|
308
|
+
toolStatus(tool: string): string;
|
|
309
|
+
}
|
|
310
|
+
export {};
|
|
311
|
+
//# sourceMappingURL=tool-presence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-presence.d.ts","sourceRoot":"","sources":["../../../src/mcpl/tool-presence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAgD,KAAK,UAAU,EAAE,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEhH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AACD,MAAM,WAAW,UAAU;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAC5G,MAAM,WAAW,UAAU;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;AAClF,2EAA2E;AAC3E,MAAM,WAAW,KAAK;IAAG,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAC1F,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5C,mEAAmE;AACnE,MAAM,WAAW,aAAa;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAEzF,6FAA6F;AAC7F,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,KAAK,YAAa,MAAM,aAAa,MAAM,KAAG,MAA6C,CAAC;AACzG,eAAO,MAAM,QAAQ,QAAS,MAAM,KAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAG1E,CAAC;AAEF,UAAU,KAAK;IAAG,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE;AAClE,mHAAmH;AACnH,MAAM,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEtC,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,0CAA0C;IAC1C,GAAG,EAAE,UAAU,EAAE,CAAC;CACnB;AACD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mHAAmH;IACnH,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,oOAAoO;IACpO,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,QAAO,SAAsD,CAAC;AACtF,eAAO,MAAM,aAAa,MAAO,SAAS,KAAG,OAAwF,CAAC;AAQtI;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAAG,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AAE/H,+FAA+F;AAC/F,UAAU,WAAW;IAAG,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE;AAE5H,iGAAiG;AACjG,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAMlE;AAED,qBAAa,YAAY;IAqBrB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,aAAa;IAC7B,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,sFAAsF;IACtF,OAAO,CAAC,QAAQ,CAAC,SAAS;IA5B5B,2GAA2G;IAC3G,MAAM,UAAS;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAM;IAC3C,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAQ;IAC5D,0EAA0E;IAC1E,GAAG,SAAK;IACR,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,IAAI,CAAiC;IAC7C,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAAkC;IACjD,8FAA8F;IAC9F,OAAO,CAAC,IAAI,CAA+C;IAC3D,0FAA0F;IAC1F,OAAO,CAAC,SAAS,CAAqB;IACtC,mHAAmH;IACnH,OAAO,CAAC,YAAY,CAA+B;IACnD,iFAAiF;IACjF,QAAQ,CAAC,KAAK,cAAqB;IAEnC,YACW,MAAM,EAAE,MAAM;IACvB,gEAAgE;IACvD,KAAK,EAAE,aAAa;IAC7B,gGAAgG;IAC/E,OAAO,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAoB;IAChE,mEAAmE;IAClD,UAAU,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAuB;IACtE,sFAAsF;IACrE,SAAS,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,GAAG,SAA2B,EAClF;IAIJ,gGAAgG;IAChG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAU1F;IAED,yFAAyF;IACzF,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CA6BlE;IAED,2HAA2H;IAC3H,UAAU,IAAI,IAAI,CASjB;IAED,6GAA6G;IAC7G,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CA8BjC;IAID,2FAA2F;IAC3F,IAAI,QAAQ,IAAI,OAAO,CAKtB;IAED,IAAI,QAAQ,IAAI,UAAU,EAAE,CAE3B;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAEzC;IAED,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG1C;IAED,0FAA0F;IAC1F,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAGjC;IAED;;;wEAGoE;IACpE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAG9C;IAED,OAAO,CAAC,cAAc;IAKtB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEnC;IAED,8EAA8E;IAC9E,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAO/B;IAED,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAE1C;IAED,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAElD;IAED,IAAI,UAAU,IAAI,MAAM,EAAE,CAEzB;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAK3C;IAED,IAAI,IAAI,IAAI,CAsBX;IAED,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,SAAS,CAqBzC;IAID,iGAAiG;IACjG,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,CAO9B;IAED;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAKjC;IAED,OAAO,CAAC,SAAS;IAwCjB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAMjB,oIAAoI;IACpI,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,OAAO;IAMf,kFAAkF;IAClF,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAMzF;IAED,iEAAiE;IACjE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAE9D;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAAC,KAAK,EAAE,KAAK,EAAE,CAAC;QAAC,OAAO,EAAE,UAAU,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAsCzH;IAED;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAgBjH;IAED,8IAA8I;IAC9I,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAExC;IAED,kFAAkF;IAClF,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAE7B;IAED,iEAAiE;IACjE,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,EAAE,CAGnC;IAID,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAEzB;IAED,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAE1B;IAID,yFAAyF;IACzF,KAAK,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,QAAQ,CAAA;KAAE,CAAC,CAE7C;IAED,mGAAmG;IACnG,UAAU,CAAC,KAAK;cALO,MAAM;YAAM,QAAQ;OAKZ,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,QAAQ,CAAA;KAAE,CAAC,CAItE;IAID,4GAA4G;IAC5G,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGzB;IAED,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG5B;IAED,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIpC;IAED,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;IAED,iHAAiH;IACjH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAA;KAAO,GAAG,MAAM,EAAE,CAI1I;IAED;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,MAAM,CAsBjG;IAED,uDAAuD;IACvD,gBAAgB,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAItC;IAED,0EAA0E;IAC1E,QAAQ,IAAI,MAAM,EAAE,CAEnB;IAED,2HAA2H;IAC3H,QAAQ,IAAI,MAAM,GAAG,IAAI,CAUxB;IAED;;0BAEsB;IACtB,OAAO,CAAC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,MAAM,CA6B7C;IAED,iEAAiE;IACjE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO/B;CAEF"}
|