@agentick/core 0.0.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/LICENSE +21 -0
- package/README.md +875 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/.tsbuildinfo.build +1 -0
- package/dist/agent.d.ts +32 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +26 -0
- package/dist/agent.js.map +1 -0
- package/dist/agentick-instance.d.ts +285 -0
- package/dist/agentick-instance.d.ts.map +1 -0
- package/dist/agentick-instance.js +700 -0
- package/dist/agentick-instance.js.map +1 -0
- package/dist/aidk-instance.d.ts +294 -0
- package/dist/aidk-instance.d.ts.map +1 -0
- package/dist/aidk-instance.js +340 -0
- package/dist/aidk-instance.js.map +1 -0
- package/dist/app/session-store.d.ts +57 -0
- package/dist/app/session-store.d.ts.map +1 -0
- package/dist/app/session-store.js +87 -0
- package/dist/app/session-store.js.map +1 -0
- package/dist/app/session.d.ts +209 -0
- package/dist/app/session.d.ts.map +1 -0
- package/dist/app/session.js +2131 -0
- package/dist/app/session.js.map +1 -0
- package/dist/app/sqlite-session-store.d.ts +60 -0
- package/dist/app/sqlite-session-store.d.ts.map +1 -0
- package/dist/app/sqlite-session-store.js +234 -0
- package/dist/app/sqlite-session-store.js.map +1 -0
- package/dist/app/types.d.ts +1461 -0
- package/dist/app/types.d.ts.map +1 -0
- package/dist/app/types.js +14 -0
- package/dist/app/types.js.map +1 -0
- package/dist/app.d.ts +79 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +83 -0
- package/dist/app.js.map +1 -0
- package/dist/channels/adapters/index.d.ts +2 -0
- package/dist/channels/adapters/index.d.ts.map +1 -0
- package/dist/channels/adapters/index.js +2 -0
- package/dist/channels/adapters/index.js.map +1 -0
- package/dist/channels/adapters/redis.d.ts +77 -0
- package/dist/channels/adapters/redis.d.ts.map +1 -0
- package/dist/channels/adapters/redis.js +259 -0
- package/dist/channels/adapters/redis.js.map +1 -0
- package/dist/channels/index.d.ts +38 -0
- package/dist/channels/index.d.ts.map +1 -0
- package/dist/channels/index.js +38 -0
- package/dist/channels/index.js.map +1 -0
- package/dist/channels/service.d.ts +684 -0
- package/dist/channels/service.d.ts.map +1 -0
- package/dist/channels/service.js +870 -0
- package/dist/channels/service.js.map +1 -0
- package/dist/channels/transports/index.d.ts +4 -0
- package/dist/channels/transports/index.d.ts.map +1 -0
- package/dist/channels/transports/index.js +4 -0
- package/dist/channels/transports/index.js.map +1 -0
- package/dist/channels/transports/socketio.d.ts +98 -0
- package/dist/channels/transports/socketio.d.ts.map +1 -0
- package/dist/channels/transports/socketio.js +246 -0
- package/dist/channels/transports/socketio.js.map +1 -0
- package/dist/channels/transports/streamable-http.d.ts +107 -0
- package/dist/channels/transports/streamable-http.d.ts.map +1 -0
- package/dist/channels/transports/streamable-http.js +353 -0
- package/dist/channels/transports/streamable-http.js.map +1 -0
- package/dist/channels/transports/websocket.d.ts +117 -0
- package/dist/channels/transports/websocket.d.ts.map +1 -0
- package/dist/channels/transports/websocket.js +416 -0
- package/dist/channels/transports/websocket.js.map +1 -0
- package/dist/com/index.d.ts +29 -0
- package/dist/com/index.d.ts.map +1 -0
- package/dist/com/index.js +29 -0
- package/dist/com/index.js.map +1 -0
- package/dist/com/object-model.d.ts +634 -0
- package/dist/com/object-model.d.ts.map +1 -0
- package/dist/com/object-model.js +963 -0
- package/dist/com/object-model.js.map +1 -0
- package/dist/com/types.d.ts +192 -0
- package/dist/com/types.d.ts.map +1 -0
- package/dist/com/types.js +1 -0
- package/dist/com/types.js.map +1 -0
- package/dist/compiler/collector.d.ts +16 -0
- package/dist/compiler/collector.d.ts.map +1 -0
- package/dist/compiler/collector.js +388 -0
- package/dist/compiler/collector.js.map +1 -0
- package/dist/compiler/content-block-registry.d.ts +11 -0
- package/dist/compiler/content-block-registry.d.ts.map +1 -0
- package/dist/compiler/content-block-registry.js +312 -0
- package/dist/compiler/content-block-registry.js.map +1 -0
- package/dist/compiler/extractors.d.ts +68 -0
- package/dist/compiler/extractors.d.ts.map +1 -0
- package/dist/compiler/extractors.js +547 -0
- package/dist/compiler/extractors.js.map +1 -0
- package/dist/compiler/fiber-compiler.d.ts +203 -0
- package/dist/compiler/fiber-compiler.d.ts.map +1 -0
- package/dist/compiler/fiber-compiler.js +498 -0
- package/dist/compiler/fiber-compiler.js.map +1 -0
- package/dist/compiler/fiber.d.ts +61 -0
- package/dist/compiler/fiber.d.ts.map +1 -0
- package/dist/compiler/fiber.js +244 -0
- package/dist/compiler/fiber.js.map +1 -0
- package/dist/compiler/index.d.ts +18 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/index.js +38 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/compiler/scheduler.d.ts +95 -0
- package/dist/compiler/scheduler.d.ts.map +1 -0
- package/dist/compiler/scheduler.js +138 -0
- package/dist/compiler/scheduler.js.map +1 -0
- package/dist/compiler/structure-renderer.d.ts +42 -0
- package/dist/compiler/structure-renderer.d.ts.map +1 -0
- package/dist/compiler/structure-renderer.js +189 -0
- package/dist/compiler/structure-renderer.js.map +1 -0
- package/dist/compiler/types.d.ts +96 -0
- package/dist/compiler/types.d.ts.map +1 -0
- package/dist/compiler/types.js +19 -0
- package/dist/compiler/types.js.map +1 -0
- package/dist/component/component-hooks.d.ts +68 -0
- package/dist/component/component-hooks.d.ts.map +1 -0
- package/dist/component/component-hooks.js +112 -0
- package/dist/component/component-hooks.js.map +1 -0
- package/dist/component/component.d.ts +314 -0
- package/dist/component/component.d.ts.map +1 -0
- package/dist/component/component.js +64 -0
- package/dist/component/component.js.map +1 -0
- package/dist/component/index.d.ts +47 -0
- package/dist/component/index.d.ts.map +1 -0
- package/dist/component/index.js +47 -0
- package/dist/component/index.js.map +1 -0
- package/dist/component/tentickle-component.d.ts +185 -0
- package/dist/component/tentickle-component.d.ts.map +1 -0
- package/dist/component/tentickle-component.js +182 -0
- package/dist/component/tentickle-component.js.map +1 -0
- package/dist/content/index.d.ts +12 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +17 -0
- package/dist/content/index.js.map +1 -0
- package/dist/context/index.d.ts +51 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +69 -0
- package/dist/context/index.js.map +1 -0
- package/dist/core/channel-helpers.d.ts +31 -0
- package/dist/core/channel-helpers.d.ts.map +1 -0
- package/dist/core/channel-helpers.js +62 -0
- package/dist/core/channel-helpers.js.map +1 -0
- package/dist/core/channel.d.ts +164 -0
- package/dist/core/channel.d.ts.map +1 -0
- package/dist/core/channel.js +199 -0
- package/dist/core/channel.js.map +1 -0
- package/dist/core/context.d.ts +412 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +290 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/event-buffer.d.ts +212 -0
- package/dist/core/event-buffer.d.ts.map +1 -0
- package/dist/core/event-buffer.js +346 -0
- package/dist/core/event-buffer.js.map +1 -0
- package/dist/core/execution-helpers.d.ts +179 -0
- package/dist/core/execution-helpers.d.ts.map +1 -0
- package/dist/core/execution-helpers.js +212 -0
- package/dist/core/execution-helpers.js.map +1 -0
- package/dist/core/execution-tracker.d.ts +53 -0
- package/dist/core/execution-tracker.d.ts.map +1 -0
- package/dist/core/execution-tracker.js +309 -0
- package/dist/core/execution-tracker.js.map +1 -0
- package/dist/core/index.d.ts +58 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +58 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/logger.d.ts +341 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +346 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/metrics-helpers.d.ts +40 -0
- package/dist/core/metrics-helpers.d.ts.map +1 -0
- package/dist/core/metrics-helpers.js +72 -0
- package/dist/core/metrics-helpers.js.map +1 -0
- package/dist/core/otel-provider.d.ts +54 -0
- package/dist/core/otel-provider.d.ts.map +1 -0
- package/dist/core/otel-provider.js +107 -0
- package/dist/core/otel-provider.js.map +1 -0
- package/dist/core/procedure-graph.d.ts +136 -0
- package/dist/core/procedure-graph.d.ts.map +1 -0
- package/dist/core/procedure-graph.js +272 -0
- package/dist/core/procedure-graph.js.map +1 -0
- package/dist/core/procedure.d.ts +755 -0
- package/dist/core/procedure.d.ts.map +1 -0
- package/dist/core/procedure.js +899 -0
- package/dist/core/procedure.js.map +1 -0
- package/dist/core/stream.d.ts +106 -0
- package/dist/core/stream.d.ts.map +1 -0
- package/dist/core/stream.js +186 -0
- package/dist/core/stream.js.map +1 -0
- package/dist/core/telemetry.d.ts +182 -0
- package/dist/core/telemetry.d.ts.map +1 -0
- package/dist/core/telemetry.js +124 -0
- package/dist/core/telemetry.js.map +1 -0
- package/dist/engine/client-tool-coordinator.d.ts +50 -0
- package/dist/engine/client-tool-coordinator.d.ts.map +1 -0
- package/dist/engine/client-tool-coordinator.js +121 -0
- package/dist/engine/client-tool-coordinator.js.map +1 -0
- package/dist/engine/engine-events.d.ts +117 -0
- package/dist/engine/engine-events.d.ts.map +1 -0
- package/dist/engine/engine-events.js +178 -0
- package/dist/engine/engine-events.js.map +1 -0
- package/dist/engine/engine-response.d.ts +48 -0
- package/dist/engine/engine-response.d.ts.map +1 -0
- package/dist/engine/engine-response.js +2 -0
- package/dist/engine/engine-response.js.map +1 -0
- package/dist/engine/execution-graph.d.ts +104 -0
- package/dist/engine/execution-graph.d.ts.map +1 -0
- package/dist/engine/execution-graph.js +257 -0
- package/dist/engine/execution-graph.js.map +1 -0
- package/dist/engine/execution-handle.d.ts +212 -0
- package/dist/engine/execution-handle.d.ts.map +1 -0
- package/dist/engine/execution-handle.js +602 -0
- package/dist/engine/execution-handle.js.map +1 -0
- package/dist/engine/execution-types.d.ts +248 -0
- package/dist/engine/execution-types.d.ts.map +1 -0
- package/dist/engine/execution-types.js +23 -0
- package/dist/engine/execution-types.js.map +1 -0
- package/dist/engine/index.d.ts +21 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +23 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/tool-confirmation-coordinator.d.ts +74 -0
- package/dist/engine/tool-confirmation-coordinator.d.ts.map +1 -0
- package/dist/engine/tool-confirmation-coordinator.js +137 -0
- package/dist/engine/tool-confirmation-coordinator.js.map +1 -0
- package/dist/engine/tool-executor.d.ts +127 -0
- package/dist/engine/tool-executor.d.ts.map +1 -0
- package/dist/engine/tool-executor.js +363 -0
- package/dist/engine/tool-executor.js.map +1 -0
- package/dist/hibernation/index.d.ts +126 -0
- package/dist/hibernation/index.d.ts.map +1 -0
- package/dist/hibernation/index.js +127 -0
- package/dist/hibernation/index.js.map +1 -0
- package/dist/hooks/base-hook-registry.d.ts +41 -0
- package/dist/hooks/base-hook-registry.d.ts.map +1 -0
- package/dist/hooks/base-hook-registry.js +76 -0
- package/dist/hooks/base-hook-registry.js.map +1 -0
- package/dist/hooks/com-state.d.ts +40 -0
- package/dist/hooks/com-state.d.ts.map +1 -0
- package/dist/hooks/com-state.js +90 -0
- package/dist/hooks/com-state.js.map +1 -0
- package/dist/hooks/context-info.d.ts +139 -0
- package/dist/hooks/context-info.d.ts.map +1 -0
- package/dist/hooks/context-info.js +115 -0
- package/dist/hooks/context-info.js.map +1 -0
- package/dist/hooks/context-internal.d.ts +21 -0
- package/dist/hooks/context-internal.d.ts.map +1 -0
- package/dist/hooks/context-internal.js +20 -0
- package/dist/hooks/context-internal.js.map +1 -0
- package/dist/hooks/context.d.ts +64 -0
- package/dist/hooks/context.d.ts.map +1 -0
- package/dist/hooks/context.js +83 -0
- package/dist/hooks/context.js.map +1 -0
- package/dist/hooks/data.d.ts +33 -0
- package/dist/hooks/data.d.ts.map +1 -0
- package/dist/hooks/data.js +84 -0
- package/dist/hooks/data.js.map +1 -0
- package/dist/hooks/formatter-context.d.ts +34 -0
- package/dist/hooks/formatter-context.d.ts.map +1 -0
- package/dist/hooks/formatter-context.js +34 -0
- package/dist/hooks/formatter-context.js.map +1 -0
- package/dist/hooks/hook-registry.d.ts +45 -0
- package/dist/hooks/hook-registry.d.ts.map +1 -0
- package/dist/hooks/hook-registry.js +109 -0
- package/dist/hooks/hook-registry.js.map +1 -0
- package/dist/hooks/index.d.ts +20 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +47 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/knob.d.ts +87 -0
- package/dist/hooks/knob.d.ts.map +1 -0
- package/dist/hooks/knob.js +129 -0
- package/dist/hooks/knob.js.map +1 -0
- package/dist/hooks/knobs-component.d.ts +70 -0
- package/dist/hooks/knobs-component.d.ts.map +1 -0
- package/dist/hooks/knobs-component.js +300 -0
- package/dist/hooks/knobs-component.js.map +1 -0
- package/dist/hooks/lifecycle.d.ts +158 -0
- package/dist/hooks/lifecycle.d.ts.map +1 -0
- package/dist/hooks/lifecycle.js +217 -0
- package/dist/hooks/lifecycle.js.map +1 -0
- package/dist/hooks/message-context.d.ts +101 -0
- package/dist/hooks/message-context.d.ts.map +1 -0
- package/dist/hooks/message-context.js +145 -0
- package/dist/hooks/message-context.js.map +1 -0
- package/dist/hooks/policy-context.d.ts.map +1 -0
- package/dist/hooks/runtime-context.d.ts +122 -0
- package/dist/hooks/runtime-context.d.ts.map +1 -0
- package/dist/hooks/runtime-context.js +149 -0
- package/dist/hooks/runtime-context.js.map +1 -0
- package/dist/hooks/signal.d.ts +267 -0
- package/dist/hooks/signal.d.ts.map +1 -0
- package/dist/hooks/signal.js +825 -0
- package/dist/hooks/signal.js.map +1 -0
- package/dist/hooks/types.d.ts +179 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +5 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/jsx/components/agent.d.ts +64 -0
- package/dist/jsx/components/agent.d.ts.map +1 -0
- package/dist/jsx/components/agent.js +80 -0
- package/dist/jsx/components/agent.js.map +1 -0
- package/dist/jsx/components/complete.d.ts +65 -0
- package/dist/jsx/components/complete.d.ts.map +1 -0
- package/dist/jsx/components/complete.js +64 -0
- package/dist/jsx/components/complete.js.map +1 -0
- package/dist/jsx/components/content.d.ts +98 -0
- package/dist/jsx/components/content.d.ts.map +1 -0
- package/dist/jsx/components/content.js +51 -0
- package/dist/jsx/components/content.js.map +1 -0
- package/dist/jsx/components/harness.d.ts +118 -0
- package/dist/jsx/components/harness.d.ts.map +1 -0
- package/dist/jsx/components/harness.js +117 -0
- package/dist/jsx/components/harness.js.map +1 -0
- package/dist/jsx/components/index.d.ts +11 -0
- package/dist/jsx/components/index.d.ts.map +1 -0
- package/dist/jsx/components/index.js +11 -0
- package/dist/jsx/components/index.js.map +1 -0
- package/dist/jsx/components/markdown.d.ts +31 -0
- package/dist/jsx/components/markdown.d.ts.map +1 -0
- package/dist/jsx/components/markdown.js +17 -0
- package/dist/jsx/components/markdown.js.map +1 -0
- package/dist/jsx/components/messages.d.ts +283 -0
- package/dist/jsx/components/messages.d.ts.map +1 -0
- package/dist/jsx/components/messages.js +257 -0
- package/dist/jsx/components/messages.js.map +1 -0
- package/dist/jsx/components/model.d.ts +94 -0
- package/dist/jsx/components/model.d.ts.map +1 -0
- package/dist/jsx/components/model.js +96 -0
- package/dist/jsx/components/model.js.map +1 -0
- package/dist/jsx/components/primitives.d.ts +117 -0
- package/dist/jsx/components/primitives.d.ts.map +1 -0
- package/dist/jsx/components/primitives.js +83 -0
- package/dist/jsx/components/primitives.js.map +1 -0
- package/dist/jsx/components/renderer.d.ts +24 -0
- package/dist/jsx/components/renderer.d.ts.map +1 -0
- package/dist/jsx/components/renderer.js +11 -0
- package/dist/jsx/components/renderer.js.map +1 -0
- package/dist/jsx/components/semantic.d.ts +155 -0
- package/dist/jsx/components/semantic.d.ts.map +1 -0
- package/dist/jsx/components/semantic.js +39 -0
- package/dist/jsx/components/semantic.js.map +1 -0
- package/dist/jsx/components/timeline.d.ts +157 -0
- package/dist/jsx/components/timeline.d.ts.map +1 -0
- package/dist/jsx/components/timeline.js +357 -0
- package/dist/jsx/components/timeline.js.map +1 -0
- package/dist/jsx/components/token-budget.d.ts +70 -0
- package/dist/jsx/components/token-budget.d.ts.map +1 -0
- package/dist/jsx/components/token-budget.js +135 -0
- package/dist/jsx/components/token-budget.js.map +1 -0
- package/dist/jsx/components/xml.d.ts +27 -0
- package/dist/jsx/components/xml.d.ts.map +1 -0
- package/dist/jsx/components/xml.js +17 -0
- package/dist/jsx/components/xml.js.map +1 -0
- package/dist/jsx/index.d.ts +58 -0
- package/dist/jsx/index.d.ts.map +1 -0
- package/dist/jsx/index.js +59 -0
- package/dist/jsx/index.js.map +1 -0
- package/dist/jsx/jsx-runtime.d.ts +370 -0
- package/dist/jsx/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx/jsx-runtime.js +79 -0
- package/dist/jsx/jsx-runtime.js.map +1 -0
- package/dist/jsx/jsx-types.d.ts +23 -0
- package/dist/jsx/jsx-types.d.ts.map +1 -0
- package/dist/jsx/jsx-types.js +1 -0
- package/dist/jsx/jsx-types.js.map +1 -0
- package/dist/mcp/client.d.ts +46 -0
- package/dist/mcp/client.d.ts.map +1 -0
- package/dist/mcp/client.js +138 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/component.d.ts +95 -0
- package/dist/mcp/component.d.ts.map +1 -0
- package/dist/mcp/component.js +185 -0
- package/dist/mcp/component.js.map +1 -0
- package/dist/mcp/create-mcp-tool.d.ts +191 -0
- package/dist/mcp/create-mcp-tool.d.ts.map +1 -0
- package/dist/mcp/create-mcp-tool.js +228 -0
- package/dist/mcp/create-mcp-tool.js.map +1 -0
- package/dist/mcp/index.d.ts +49 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +48 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/service.d.ts +39 -0
- package/dist/mcp/service.d.ts.map +1 -0
- package/dist/mcp/service.js +77 -0
- package/dist/mcp/service.js.map +1 -0
- package/dist/mcp/tool.d.ts +55 -0
- package/dist/mcp/tool.d.ts.map +1 -0
- package/dist/mcp/tool.js +119 -0
- package/dist/mcp/tool.js.map +1 -0
- package/dist/mcp/types.d.ts +72 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +6 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/middleware/defaults.d.ts +9 -0
- package/dist/middleware/defaults.d.ts.map +1 -0
- package/dist/middleware/defaults.js +47 -0
- package/dist/middleware/defaults.js.map +1 -0
- package/dist/model/adapter-helpers.d.ts +161 -0
- package/dist/model/adapter-helpers.d.ts.map +1 -0
- package/dist/model/adapter-helpers.js +351 -0
- package/dist/model/adapter-helpers.js.map +1 -0
- package/dist/model/adapter.d.ts +399 -0
- package/dist/model/adapter.d.ts.map +1 -0
- package/dist/model/adapter.js +497 -0
- package/dist/model/adapter.js.map +1 -0
- package/dist/model/index.d.ts +54 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/index.js +55 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model/model-hooks.d.ts +45 -0
- package/dist/model/model-hooks.d.ts.map +1 -0
- package/dist/model/model-hooks.js +24 -0
- package/dist/model/model-hooks.js.map +1 -0
- package/dist/model/model.d.ts +302 -0
- package/dist/model/model.d.ts.map +1 -0
- package/dist/model/model.js +20 -0
- package/dist/model/model.js.map +1 -0
- package/dist/model/simple-adapter.d.ts +176 -0
- package/dist/model/simple-adapter.d.ts.map +1 -0
- package/dist/model/simple-adapter.js +264 -0
- package/dist/model/simple-adapter.js.map +1 -0
- package/dist/model/stream-accumulator.d.ts +284 -0
- package/dist/model/stream-accumulator.d.ts.map +1 -0
- package/dist/model/stream-accumulator.js +532 -0
- package/dist/model/stream-accumulator.js.map +1 -0
- package/dist/model/utils/index.d.ts +2 -0
- package/dist/model/utils/index.d.ts.map +1 -0
- package/dist/model/utils/index.js +2 -0
- package/dist/model/utils/index.js.map +1 -0
- package/dist/model/utils/language-model.d.ts +26 -0
- package/dist/model/utils/language-model.d.ts.map +1 -0
- package/dist/model/utils/language-model.js +706 -0
- package/dist/model/utils/language-model.js.map +1 -0
- package/dist/procedure/index.d.ts +20 -0
- package/dist/procedure/index.d.ts.map +1 -0
- package/dist/procedure/index.js +19 -0
- package/dist/procedure/index.js.map +1 -0
- package/dist/reconciler/devtools-bridge.d.ts +40 -0
- package/dist/reconciler/devtools-bridge.d.ts.map +1 -0
- package/dist/reconciler/devtools-bridge.js +79 -0
- package/dist/reconciler/devtools-bridge.js.map +1 -0
- package/dist/reconciler/host-config.d.ts +39 -0
- package/dist/reconciler/host-config.d.ts.map +1 -0
- package/dist/reconciler/host-config.js +195 -0
- package/dist/reconciler/host-config.js.map +1 -0
- package/dist/reconciler/index.d.ts +7 -0
- package/dist/reconciler/index.d.ts.map +1 -0
- package/dist/reconciler/index.js +7 -0
- package/dist/reconciler/index.js.map +1 -0
- package/dist/reconciler/reconciler.d.ts +47 -0
- package/dist/reconciler/reconciler.d.ts.map +1 -0
- package/dist/reconciler/reconciler.js +89 -0
- package/dist/reconciler/reconciler.js.map +1 -0
- package/dist/reconciler/types.d.ts +86 -0
- package/dist/reconciler/types.d.ts.map +1 -0
- package/dist/reconciler/types.js +37 -0
- package/dist/reconciler/types.js.map +1 -0
- package/dist/renderers/base.d.ts +98 -0
- package/dist/renderers/base.d.ts.map +1 -0
- package/dist/renderers/base.js +82 -0
- package/dist/renderers/base.js.map +1 -0
- package/dist/renderers/index.d.ts +31 -0
- package/dist/renderers/index.d.ts.map +1 -0
- package/dist/renderers/index.js +31 -0
- package/dist/renderers/index.js.map +1 -0
- package/dist/renderers/markdown.d.ts +48 -0
- package/dist/renderers/markdown.d.ts.map +1 -0
- package/dist/renderers/markdown.js +432 -0
- package/dist/renderers/markdown.js.map +1 -0
- package/dist/renderers/types.d.ts +7 -0
- package/dist/renderers/types.d.ts.map +1 -0
- package/dist/renderers/types.js +7 -0
- package/dist/renderers/types.js.map +1 -0
- package/dist/renderers/xml.d.ts +49 -0
- package/dist/renderers/xml.d.ts.map +1 -0
- package/dist/renderers/xml.js +444 -0
- package/dist/renderers/xml.js.map +1 -0
- package/dist/state/boundary.d.ts +347 -0
- package/dist/state/boundary.d.ts.map +1 -0
- package/dist/state/boundary.js +341 -0
- package/dist/state/boundary.js.map +1 -0
- package/dist/state/context.d.ts +138 -0
- package/dist/state/context.d.ts.map +1 -0
- package/dist/state/context.js +139 -0
- package/dist/state/context.js.map +1 -0
- package/dist/state/hooks.d.ts +798 -0
- package/dist/state/hooks.d.ts.map +1 -0
- package/dist/state/hooks.js +1437 -0
- package/dist/state/hooks.js.map +1 -0
- package/dist/state/index.d.ts +72 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +73 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/signal.d.ts +223 -0
- package/dist/state/signal.d.ts.map +1 -0
- package/dist/state/signal.js +699 -0
- package/dist/state/signal.js.map +1 -0
- package/dist/state/use-state.d.ts +210 -0
- package/dist/state/use-state.d.ts.map +1 -0
- package/dist/state/use-state.js +327 -0
- package/dist/state/use-state.js.map +1 -0
- package/dist/tentickle-instance.d.ts +285 -0
- package/dist/tentickle-instance.d.ts.map +1 -0
- package/dist/tentickle-instance.js +700 -0
- package/dist/tentickle-instance.js.map +1 -0
- package/dist/testing/act.d.ts +59 -0
- package/dist/testing/act.d.ts.map +1 -0
- package/dist/testing/act.js +92 -0
- package/dist/testing/act.js.map +1 -0
- package/dist/testing/async-helpers.d.ts +99 -0
- package/dist/testing/async-helpers.d.ts.map +1 -0
- package/dist/testing/async-helpers.js +193 -0
- package/dist/testing/async-helpers.js.map +1 -0
- package/dist/testing/compile-agent.d.ts +101 -0
- package/dist/testing/compile-agent.d.ts.map +1 -0
- package/dist/testing/compile-agent.js +136 -0
- package/dist/testing/compile-agent.js.map +1 -0
- package/dist/testing/index.d.ts +57 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +59 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/mock-app.d.ts +163 -0
- package/dist/testing/mock-app.d.ts.map +1 -0
- package/dist/testing/mock-app.js +393 -0
- package/dist/testing/mock-app.js.map +1 -0
- package/dist/testing/mocks.d.ts +142 -0
- package/dist/testing/mocks.d.ts.map +1 -0
- package/dist/testing/mocks.js +191 -0
- package/dist/testing/mocks.js.map +1 -0
- package/dist/testing/render-agent.d.ts +146 -0
- package/dist/testing/render-agent.d.ts.map +1 -0
- package/dist/testing/render-agent.js +200 -0
- package/dist/testing/render-agent.js.map +1 -0
- package/dist/testing/test-adapter.d.ts +157 -0
- package/dist/testing/test-adapter.d.ts.map +1 -0
- package/dist/testing/test-adapter.js +297 -0
- package/dist/testing/test-adapter.js.map +1 -0
- package/dist/testing/test-model.d.ts +132 -0
- package/dist/testing/test-model.d.ts.map +1 -0
- package/dist/testing/test-model.js +260 -0
- package/dist/testing/test-model.js.map +1 -0
- package/dist/tool/index.d.ts +61 -0
- package/dist/tool/index.d.ts.map +1 -0
- package/dist/tool/index.js +63 -0
- package/dist/tool/index.js.map +1 -0
- package/dist/tool/tool-hooks.d.ts +45 -0
- package/dist/tool/tool-hooks.d.ts.map +1 -0
- package/dist/tool/tool-hooks.js +35 -0
- package/dist/tool/tool-hooks.js.map +1 -0
- package/dist/tool/tool.d.ts +403 -0
- package/dist/tool/tool.d.ts.map +1 -0
- package/dist/tool/tool.js +176 -0
- package/dist/tool/tool.js.map +1 -0
- package/dist/types.d.ts +442 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +97 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/abort-utils.d.ts +5 -0
- package/dist/utils/abort-utils.d.ts.map +1 -0
- package/dist/utils/abort-utils.js +50 -0
- package/dist/utils/abort-utils.js.map +1 -0
- package/dist/utils/classify-error.d.ts +19 -0
- package/dist/utils/classify-error.d.ts.map +1 -0
- package/dist/utils/classify-error.js +77 -0
- package/dist/utils/classify-error.js.map +1 -0
- package/dist/utils/index.d.ts +21 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/normalization.d.ts +6 -0
- package/dist/utils/normalization.d.ts.map +1 -0
- package/dist/utils/normalization.js +103 -0
- package/dist/utils/normalization.js.map +1 -0
- package/dist/utils/registry.d.ts +15 -0
- package/dist/utils/registry.d.ts.map +1 -0
- package/dist/utils/registry.js +28 -0
- package/dist/utils/registry.js.map +1 -0
- package/dist/utils/schema.d.ts +7 -0
- package/dist/utils/schema.d.ts.map +1 -0
- package/dist/utils/schema.js +13 -0
- package/dist/utils/schema.js.map +1 -0
- package/dist/utils/token-estimate.d.ts +87 -0
- package/dist/utils/token-estimate.d.ts.map +1 -0
- package/dist/utils/token-estimate.js +199 -0
- package/dist/utils/token-estimate.js.map +1 -0
- package/dist/v2/reconciler/host-config.d.ts +31 -0
- package/dist/v2/reconciler/host-config.d.ts.map +1 -0
- package/dist/v2/reconciler/host-config.js +197 -0
- package/dist/v2/reconciler/host-config.js.map +1 -0
- package/dist/v2/reconciler/index.d.ts +7 -0
- package/dist/v2/reconciler/index.d.ts.map +1 -0
- package/dist/v2/reconciler/index.js +7 -0
- package/dist/v2/reconciler/index.js.map +1 -0
- package/dist/v2/reconciler/reconciler.d.ts +39 -0
- package/dist/v2/reconciler/reconciler.d.ts.map +1 -0
- package/dist/v2/reconciler/reconciler.js +54 -0
- package/dist/v2/reconciler/reconciler.js.map +1 -0
- package/dist/v2/reconciler/types.d.ts +64 -0
- package/dist/v2/reconciler/types.d.ts.map +1 -0
- package/dist/v2/reconciler/types.js +20 -0
- package/dist/v2/reconciler/types.js.map +1 -0
- package/dist/v2/renderers/index.d.ts +7 -0
- package/dist/v2/renderers/index.d.ts.map +1 -0
- package/dist/v2/renderers/index.js +7 -0
- package/dist/v2/renderers/index.js.map +1 -0
- package/dist/v2/renderers/markdown.d.ts +16 -0
- package/dist/v2/renderers/markdown.d.ts.map +1 -0
- package/dist/v2/renderers/markdown.js +65 -0
- package/dist/v2/renderers/markdown.js.map +1 -0
- package/dist/v2/renderers/types.d.ts +26 -0
- package/dist/v2/renderers/types.d.ts.map +1 -0
- package/dist/v2/renderers/types.js +6 -0
- package/dist/v2/renderers/types.js.map +1 -0
- package/dist/v2/renderers/xml.d.ts +17 -0
- package/dist/v2/renderers/xml.d.ts.map +1 -0
- package/dist/v2/renderers/xml.js +73 -0
- package/dist/v2/renderers/xml.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,684 @@
|
|
|
1
|
+
import type { Channel } from "@agentick/kernel";
|
|
2
|
+
import { ChannelSession, type ChannelEvent, type ChannelServiceInterface } from "@agentick/kernel";
|
|
3
|
+
import type { EngineContext } from "../types";
|
|
4
|
+
export { Channel, ChannelSession, type ChannelEvent, type ChannelServiceInterface, type ChannelTarget, } from "@agentick/kernel";
|
|
5
|
+
/**
|
|
6
|
+
* Connection metadata for routing decisions.
|
|
7
|
+
* Provided when connecting, used by transport for auto-join and routing.
|
|
8
|
+
*/
|
|
9
|
+
export interface ConnectionMetadata {
|
|
10
|
+
/** User ID - for auto-joining user rooms */
|
|
11
|
+
userId?: string;
|
|
12
|
+
/** Tenant ID - for auto-joining tenant rooms */
|
|
13
|
+
tenantId?: string;
|
|
14
|
+
/** Any additional metadata for custom routing */
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Configuration for ChannelTransport.
|
|
19
|
+
*/
|
|
20
|
+
export interface ChannelTransportConfig {
|
|
21
|
+
/**
|
|
22
|
+
* Auto-join rooms based on connection metadata.
|
|
23
|
+
* Called on connect with the connection's metadata.
|
|
24
|
+
* Return array of room names to automatically join.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* autoJoinRooms: (meta) => [
|
|
29
|
+
* meta.userId && `user:${meta.userId}`,
|
|
30
|
+
* meta.tenantId && `tenant:${meta.tenantId}`,
|
|
31
|
+
* ].filter(Boolean)
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
autoJoinRooms?: (metadata: ConnectionMetadata) => string[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Transport adapter for external communication (e.g., SSE, WebSocket).
|
|
38
|
+
* Optional add-on layer - channels work without transport.
|
|
39
|
+
*
|
|
40
|
+
* Supports room-based routing (inspired by Socket.io):
|
|
41
|
+
* - Connections can join/leave rooms
|
|
42
|
+
* - Events can target specific rooms
|
|
43
|
+
* - excludeSender provides "broadcast" semantics (send to others)
|
|
44
|
+
*/
|
|
45
|
+
export interface ChannelTransport {
|
|
46
|
+
/**
|
|
47
|
+
* Transport name (e.g., 'sse', 'websocket')
|
|
48
|
+
*/
|
|
49
|
+
name: string;
|
|
50
|
+
/**
|
|
51
|
+
* Connect a client with optional metadata.
|
|
52
|
+
* Metadata is used for routing (userId, tenantId, etc.) and auto-join.
|
|
53
|
+
*/
|
|
54
|
+
connect(connectionId: string, metadata?: ConnectionMetadata): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Disconnect a client (or all if no connectionId).
|
|
57
|
+
*/
|
|
58
|
+
disconnect(connectionId?: string): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Send an event through the transport.
|
|
61
|
+
* Routing is determined by event.target:
|
|
62
|
+
* - No target: broadcast to all
|
|
63
|
+
* - target.connectionId: send to specific connection
|
|
64
|
+
* - target.rooms: send to connections in rooms
|
|
65
|
+
* - target.excludeSender: exclude source connection (broadcast pattern)
|
|
66
|
+
*/
|
|
67
|
+
send(event: ChannelEvent): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Register handler for events received from transport.
|
|
70
|
+
*/
|
|
71
|
+
onReceive(handler: (event: ChannelEvent) => void): void;
|
|
72
|
+
/**
|
|
73
|
+
* Join a room. Connections in the same room receive room-targeted events.
|
|
74
|
+
*/
|
|
75
|
+
join?(connectionId: string, room: string): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Leave a room.
|
|
78
|
+
*/
|
|
79
|
+
leave?(connectionId: string, room: string): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Get rooms a connection has joined.
|
|
82
|
+
*/
|
|
83
|
+
getConnectionRooms?(connectionId: string): string[];
|
|
84
|
+
/**
|
|
85
|
+
* Get connections in a room.
|
|
86
|
+
*/
|
|
87
|
+
getRoomConnections?(room: string): string[];
|
|
88
|
+
/**
|
|
89
|
+
* Close all connections.
|
|
90
|
+
*/
|
|
91
|
+
closeAll(): void;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Distribution adapter for multi-instance setups (e.g., Redis pub/sub).
|
|
95
|
+
* Optional add-on layer - channels work without distribution.
|
|
96
|
+
*
|
|
97
|
+
* For room-based routing in distributed setups:
|
|
98
|
+
* - Adapter subscribes to room channels (e.g., Redis `room:{roomName}`)
|
|
99
|
+
* - When event.target.rooms is set, adapter publishes to those room channels
|
|
100
|
+
* - Each instance receives and filters to its local connections
|
|
101
|
+
*/
|
|
102
|
+
export interface ChannelAdapter {
|
|
103
|
+
/**
|
|
104
|
+
* Adapter name (e.g., 'redis')
|
|
105
|
+
*/
|
|
106
|
+
name: string;
|
|
107
|
+
/**
|
|
108
|
+
* Publish event to distribution layer.
|
|
109
|
+
* If event.target.rooms is set, publish to room-specific channels.
|
|
110
|
+
*/
|
|
111
|
+
publish(event: ChannelEvent): Promise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Subscribe to events from distribution layer.
|
|
114
|
+
*/
|
|
115
|
+
subscribe(channel: string, handler: (event: ChannelEvent) => void): Promise<() => void>;
|
|
116
|
+
/**
|
|
117
|
+
* Subscribe this instance to a room.
|
|
118
|
+
* Called when a local connection joins a room.
|
|
119
|
+
* Adapter should subscribe to the room's distribution channel (e.g., Redis `room:{room}`).
|
|
120
|
+
*/
|
|
121
|
+
joinRoom?(room: string): Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* Unsubscribe this instance from a room.
|
|
124
|
+
* Called when no local connections remain in the room.
|
|
125
|
+
*/
|
|
126
|
+
leaveRoom?(room: string): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Close the adapter connection (cleanup on shutdown).
|
|
129
|
+
*/
|
|
130
|
+
close?(): Promise<void>;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Channel service configuration.
|
|
134
|
+
*/
|
|
135
|
+
export interface ChannelServiceConfig {
|
|
136
|
+
/**
|
|
137
|
+
* Custom session ID generator.
|
|
138
|
+
* Default: Uses user context + conversation ID or trace ID.
|
|
139
|
+
*/
|
|
140
|
+
sessionIdGenerator?: (ctx: EngineContext) => string;
|
|
141
|
+
/**
|
|
142
|
+
* Optional transport adapter (e.g., Streamable HTTP, WebSocket).
|
|
143
|
+
*/
|
|
144
|
+
transport?: ChannelTransport;
|
|
145
|
+
/**
|
|
146
|
+
* Optional distribution adapter (e.g., Redis pub/sub).
|
|
147
|
+
*/
|
|
148
|
+
adapter?: ChannelAdapter;
|
|
149
|
+
/**
|
|
150
|
+
* Session timeout in milliseconds (default: 1 hour).
|
|
151
|
+
* Sessions are cleaned up after inactivity.
|
|
152
|
+
*/
|
|
153
|
+
sessionTimeout?: number;
|
|
154
|
+
/**
|
|
155
|
+
* Channel routers to register.
|
|
156
|
+
* Enables handleEvent() dispatch by channel name without if-else chains.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```typescript
|
|
160
|
+
* routers: [todoListChannel, scratchpadChannel]
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
routers?: ChannelRouter<any>[];
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Channel Service - Low-level channel infrastructure.
|
|
167
|
+
*
|
|
168
|
+
* ## Architecture
|
|
169
|
+
*
|
|
170
|
+
* ```
|
|
171
|
+
* ┌─────────────────────────────────────────────────────────────────────┐
|
|
172
|
+
* │ Application Layer (recommended) │
|
|
173
|
+
* │ └── ChannelRouter - declarative handlers, context registry, │
|
|
174
|
+
* │ auto-notifications, scoped publishing │
|
|
175
|
+
* ├─────────────────────────────────────────────────────────────────────┤
|
|
176
|
+
* │ Service Layer (escape hatch) │
|
|
177
|
+
* │ └── ChannelService - sessions, direct publish/subscribe, │
|
|
178
|
+
* │ transport & adapter management │
|
|
179
|
+
* ├─────────────────────────────────────────────────────────────────────┤
|
|
180
|
+
* │ Infrastructure Layer │
|
|
181
|
+
* │ ├── Transport - external communication (SSE, WebSocket) │
|
|
182
|
+
* │ └── Adapter - multi-instance distribution (Redis pub/sub) │
|
|
183
|
+
* └─────────────────────────────────────────────────────────────────────┘
|
|
184
|
+
* ```
|
|
185
|
+
*
|
|
186
|
+
* ## Usage
|
|
187
|
+
*
|
|
188
|
+
* **Recommended:** Use `ChannelRouter` for application code.
|
|
189
|
+
* - Register routers with engine: `createEngine({ channels: { routers: [...] } })`
|
|
190
|
+
* - Handle events via `channelService.handleEvent()`
|
|
191
|
+
* - Components register via `router.registerContext()`
|
|
192
|
+
*
|
|
193
|
+
* **Escape hatch:** Direct `ChannelService` methods for advanced cases.
|
|
194
|
+
* - `subscribe()` - low-level channel subscription
|
|
195
|
+
* - `publish()` - low-level event publishing
|
|
196
|
+
*
|
|
197
|
+
* Sessions persist across multiple engine executions.
|
|
198
|
+
*/
|
|
199
|
+
export declare class ChannelService implements ChannelServiceInterface {
|
|
200
|
+
private sessions;
|
|
201
|
+
private sessionIdGenerator;
|
|
202
|
+
private transport?;
|
|
203
|
+
private adapter?;
|
|
204
|
+
private sessionTimeout;
|
|
205
|
+
private cleanupInterval?;
|
|
206
|
+
private adapterSubscriptions;
|
|
207
|
+
private routerRegistry;
|
|
208
|
+
constructor(config?: ChannelServiceConfig);
|
|
209
|
+
/**
|
|
210
|
+
* Get the transport adapter (for external access, e.g., HTTP routes).
|
|
211
|
+
*/
|
|
212
|
+
getTransport(): ChannelTransport | undefined;
|
|
213
|
+
/**
|
|
214
|
+
* Get a registered channel router by name.
|
|
215
|
+
*/
|
|
216
|
+
getRouter<TContext = unknown>(channelName: string): ChannelRouter<TContext> | undefined;
|
|
217
|
+
/**
|
|
218
|
+
* Handle an event by delegating to the appropriate registered router.
|
|
219
|
+
* Eliminates if-else chains in HTTP routes.
|
|
220
|
+
*
|
|
221
|
+
* @param channelName - Name of the channel
|
|
222
|
+
* @param request - Event type and payload
|
|
223
|
+
* @param context - Context passed to the handler
|
|
224
|
+
* @returns Result from the handler (for HTTP response body)
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* ```typescript
|
|
228
|
+
* // In HTTP route - no if-else needed
|
|
229
|
+
* const result = await engine.channels?.handleEvent('todo-list',
|
|
230
|
+
* { type: 'create_task', payload },
|
|
231
|
+
* { userId, broadcast: true }
|
|
232
|
+
* );
|
|
233
|
+
* res.json({ success: true, ...result });
|
|
234
|
+
* ```
|
|
235
|
+
*/
|
|
236
|
+
handleEvent<TContext = unknown, TResult = unknown>(channelName: string, request: {
|
|
237
|
+
type: string;
|
|
238
|
+
payload: unknown;
|
|
239
|
+
}, rawContext: Record<string, unknown>): Promise<TResult | undefined>;
|
|
240
|
+
/**
|
|
241
|
+
* Get or create a session for the current context.
|
|
242
|
+
*/
|
|
243
|
+
getSession(ctx: EngineContext): ChannelSession;
|
|
244
|
+
/**
|
|
245
|
+
* Get or create a channel within the current session.
|
|
246
|
+
*/
|
|
247
|
+
getChannel(ctx: EngineContext, channelName: string): Channel;
|
|
248
|
+
/**
|
|
249
|
+
* Low-level: Publish an event to a channel.
|
|
250
|
+
*
|
|
251
|
+
* **Prefer using ChannelRouter.publisher() for application code.**
|
|
252
|
+
* This is an escape hatch for advanced use cases.
|
|
253
|
+
*/
|
|
254
|
+
publish(ctx: EngineContext, channelName: string, event: Omit<ChannelEvent, "channel">): void;
|
|
255
|
+
/**
|
|
256
|
+
* Low-level: Subscribe to events on a channel with a handler function.
|
|
257
|
+
*
|
|
258
|
+
* **Prefer using ChannelRouter for application code.**
|
|
259
|
+
* This is an escape hatch for advanced use cases.
|
|
260
|
+
*/
|
|
261
|
+
subscribe(ctx: EngineContext, channelName: string, handler: (event: ChannelEvent) => void | Promise<void>): () => void;
|
|
262
|
+
/**
|
|
263
|
+
* Low-level: Subscribe to multiple channels at once.
|
|
264
|
+
*
|
|
265
|
+
* **Prefer using ChannelRouter for application code.**
|
|
266
|
+
* This is an escape hatch for advanced use cases.
|
|
267
|
+
*
|
|
268
|
+
* @param ctx - Engine context
|
|
269
|
+
* @param channelNames - Array of channel names to subscribe to, or '*' for all channels
|
|
270
|
+
* @param handler - Handler function that receives events from any subscribed channel
|
|
271
|
+
* @returns Unsubscribe function
|
|
272
|
+
*/
|
|
273
|
+
subscribeToChannels(ctx: EngineContext, channelNames: string[] | "*", handler: (event: ChannelEvent) => void): () => void;
|
|
274
|
+
/**
|
|
275
|
+
* Low-level: Subscribe to events filtered by session ID.
|
|
276
|
+
*
|
|
277
|
+
* **Prefer using ChannelRouter for application code.**
|
|
278
|
+
* This is an escape hatch for advanced use cases.
|
|
279
|
+
*
|
|
280
|
+
* @param ctx - Engine context
|
|
281
|
+
* @param channelName - Channel name to subscribe to, or '*' for all channels
|
|
282
|
+
* @param handler - Handler function that receives filtered events
|
|
283
|
+
* @param options - Optional filter options
|
|
284
|
+
* @returns Unsubscribe function
|
|
285
|
+
*/
|
|
286
|
+
subscribeFiltered(ctx: EngineContext, channelName: string | "*", handler: (event: ChannelEvent) => void, options?: {
|
|
287
|
+
sessionId?: string;
|
|
288
|
+
channelFilter?: (channelName: string) => boolean;
|
|
289
|
+
}): () => void;
|
|
290
|
+
/**
|
|
291
|
+
* Wait for a response on a channel (for bidirectional communication).
|
|
292
|
+
*/
|
|
293
|
+
waitForResponse(ctx: EngineContext, channelName: string, requestId: string, timeoutMs?: number): Promise<ChannelEvent>;
|
|
294
|
+
/**
|
|
295
|
+
* Setup transport handlers.
|
|
296
|
+
* Forwards events received from transport to local channels.
|
|
297
|
+
*/
|
|
298
|
+
private setupTransport;
|
|
299
|
+
/**
|
|
300
|
+
* Setup adapter handlers.
|
|
301
|
+
* Subscribes to channels via adapter and forwards events to local channels.
|
|
302
|
+
*/
|
|
303
|
+
private setupAdapter;
|
|
304
|
+
/**
|
|
305
|
+
* Start cleanup interval for expired sessions.
|
|
306
|
+
*/
|
|
307
|
+
private startCleanupInterval;
|
|
308
|
+
/**
|
|
309
|
+
* Destroy a session and cleanup resources.
|
|
310
|
+
*/
|
|
311
|
+
destroySession(sessionId: string): void;
|
|
312
|
+
/**
|
|
313
|
+
* Cleanup all sessions and resources.
|
|
314
|
+
*/
|
|
315
|
+
destroy(): void;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Scope definition for room-based routing and context matching.
|
|
319
|
+
*
|
|
320
|
+
* - ScopeMapping: { prefix: fieldName } - derives scope key from context field
|
|
321
|
+
* - ScopeMapping[]: multiple mappings - registers for all, dedupes on notify
|
|
322
|
+
* - function: (ctx) => fully qualified scope key(s) like 'user:alice'
|
|
323
|
+
*
|
|
324
|
+
* @example
|
|
325
|
+
* ```typescript
|
|
326
|
+
* // Mapping - prefix + field name
|
|
327
|
+
* scope: { user: 'userId' } // → 'user:alice' from ctx.userId
|
|
328
|
+
*
|
|
329
|
+
* // Multiple mappings
|
|
330
|
+
* scope: [{ user: 'userId' }, { thread: 'threadId' }]
|
|
331
|
+
*
|
|
332
|
+
* // Function - returns fully qualified key(s)
|
|
333
|
+
* scope: (ctx) => `user:${ctx.userId}`
|
|
334
|
+
* scope: (ctx) => [`user:${ctx.userId}`, `org:${ctx.orgId}`]
|
|
335
|
+
* ```
|
|
336
|
+
*/
|
|
337
|
+
export type ScopeDefinition = ScopeMapping | ScopeMapping[] | ((ctx: any) => string | string[]);
|
|
338
|
+
/**
|
|
339
|
+
* Configuration for ChannelRouter.
|
|
340
|
+
*/
|
|
341
|
+
export interface ChannelRouterConfig {
|
|
342
|
+
/**
|
|
343
|
+
* Transport for sending events (SSE, WebSocket, etc.)
|
|
344
|
+
* Can be a transport instance or a getter function.
|
|
345
|
+
*/
|
|
346
|
+
transport?: ChannelTransport | (() => ChannelTransport);
|
|
347
|
+
/**
|
|
348
|
+
* Channel service for subscribing to events.
|
|
349
|
+
* Typically injected via setChannelService() when router is registered.
|
|
350
|
+
*/
|
|
351
|
+
channelService?: ChannelService | (() => ChannelService);
|
|
352
|
+
/**
|
|
353
|
+
* Scope definition for room-based routing and context matching.
|
|
354
|
+
* Maps scope names to context field names.
|
|
355
|
+
*
|
|
356
|
+
* @example
|
|
357
|
+
* ```typescript
|
|
358
|
+
* // Single scope
|
|
359
|
+
* scope: { user: 'userId' }
|
|
360
|
+
* // → .to(id) broadcasts to 'user:{id}'
|
|
361
|
+
* // → registerContext uses ctx.userId for matching
|
|
362
|
+
*
|
|
363
|
+
* // Multiple scopes
|
|
364
|
+
* scope: { user: 'userId', thread: 'threadId' }
|
|
365
|
+
* // → .scope('user').to(id) broadcasts to 'user:{id}'
|
|
366
|
+
* // → .scope('thread').to(id) broadcasts to 'thread:{id}'
|
|
367
|
+
* // → registerContext uses both for matching
|
|
368
|
+
*
|
|
369
|
+
* // Function (advanced)
|
|
370
|
+
* scope: (ctx) => `user:${ctx.userId}`
|
|
371
|
+
* ```
|
|
372
|
+
*/
|
|
373
|
+
scope?: ScopeDefinition | (() => ScopeDefinition);
|
|
374
|
+
/**
|
|
375
|
+
* Builder function to transform raw context (e.g., from HTTP) into TSubscribeContext.
|
|
376
|
+
*/
|
|
377
|
+
contextBuilder?: (data: any) => any;
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Scope mapping: { prefix: fieldName }
|
|
381
|
+
* Used to derive both room names and scope keys from context.
|
|
382
|
+
*
|
|
383
|
+
* @example
|
|
384
|
+
* ```typescript
|
|
385
|
+
* { user: 'userId' } // → room 'user:alice', scopeKey 'user:alice'
|
|
386
|
+
* ```
|
|
387
|
+
*/
|
|
388
|
+
export type ScopeMapping = {
|
|
389
|
+
[prefix: string]: string;
|
|
390
|
+
};
|
|
391
|
+
/**
|
|
392
|
+
* Value or getter function.
|
|
393
|
+
*/
|
|
394
|
+
export type ValueOrGetter<T> = T | (() => T);
|
|
395
|
+
/**
|
|
396
|
+
* Scoped publisher - has scope set, needs .to(id) to complete.
|
|
397
|
+
*/
|
|
398
|
+
export interface ScopedPublisher {
|
|
399
|
+
/**
|
|
400
|
+
* Set the target ID and get a bound publisher.
|
|
401
|
+
* @param id - Target ID (string or getter function)
|
|
402
|
+
*/
|
|
403
|
+
to(id: ValueOrGetter<string>): BoundPublisher;
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Bound publisher - ready to send/broadcast.
|
|
407
|
+
*/
|
|
408
|
+
export interface BoundPublisher {
|
|
409
|
+
send(event: {
|
|
410
|
+
type: string;
|
|
411
|
+
payload: unknown;
|
|
412
|
+
}): Promise<void>;
|
|
413
|
+
broadcast(event: {
|
|
414
|
+
type: string;
|
|
415
|
+
payload: unknown;
|
|
416
|
+
}, options?: {
|
|
417
|
+
sourceConnectionId?: string;
|
|
418
|
+
}): Promise<void>;
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Publisher interface for sending events to channel rooms.
|
|
422
|
+
*
|
|
423
|
+
* @example
|
|
424
|
+
* ```typescript
|
|
425
|
+
* // Given scope config: { user: 'userId', thread: 'threadId' }
|
|
426
|
+
*
|
|
427
|
+
* // Select scope and target
|
|
428
|
+
* publisher.scope('user').to(userId).broadcast(event); // → room 'user:{userId}'
|
|
429
|
+
* publisher.scope('thread').to(threadId).broadcast(event); // → room 'thread:{threadId}'
|
|
430
|
+
*
|
|
431
|
+
* // Direct .to() uses first scope key from config
|
|
432
|
+
* publisher.to(userId).broadcast(event); // → room 'user:{userId}'
|
|
433
|
+
* ```
|
|
434
|
+
*/
|
|
435
|
+
export interface ChannelPublisher {
|
|
436
|
+
/**
|
|
437
|
+
* Select which scope mapping to use for routing.
|
|
438
|
+
*
|
|
439
|
+
* @param scopeKey - Key from scope config (e.g., 'user', 'thread')
|
|
440
|
+
*/
|
|
441
|
+
scope(scopeKey: string): ScopedPublisher;
|
|
442
|
+
/**
|
|
443
|
+
* Set the target ID directly (uses first scope key from config).
|
|
444
|
+
* Returns a BoundPublisher ready to send/broadcast.
|
|
445
|
+
*
|
|
446
|
+
* @param id - Target ID (string or getter function)
|
|
447
|
+
*/
|
|
448
|
+
to(id: ValueOrGetter<string>): BoundPublisher;
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Event handler type for ChannelRouter.
|
|
452
|
+
* Receives the event and optional subscribe context.
|
|
453
|
+
*
|
|
454
|
+
* @template TContext - Type of the subscribe context
|
|
455
|
+
*/
|
|
456
|
+
export type ChannelEventHandler<TContext = unknown> = (event: ChannelEvent, context: TContext) => any | Promise<any>;
|
|
457
|
+
/**
|
|
458
|
+
* ChannelRouter - Declarative channel event handling and publishing.
|
|
459
|
+
*
|
|
460
|
+
* **This is the recommended way to work with channels in application code.**
|
|
461
|
+
*
|
|
462
|
+
* ## Features
|
|
463
|
+
* - Declarative event handlers via `.on(eventType, handler)`
|
|
464
|
+
* - Scoped publishing via `.publisher().scope('user').to(id).broadcast()`
|
|
465
|
+
* - Execution context registry with auto-notification after handlers return
|
|
466
|
+
* - Auto-cleanup when executions end
|
|
467
|
+
*
|
|
468
|
+
* ## Usage
|
|
469
|
+
*
|
|
470
|
+
* ```typescript
|
|
471
|
+
* // 1. Define router with scope mapping
|
|
472
|
+
* const todoChannel = new ChannelRouter<TodoContext>('todo-list', {
|
|
473
|
+
* scope: { user: 'userId' },
|
|
474
|
+
* })
|
|
475
|
+
* .on('create_task', async (event, ctx) => {
|
|
476
|
+
* return TodoService.createTask(ctx.userId, event.payload);
|
|
477
|
+
* });
|
|
478
|
+
*
|
|
479
|
+
* // 2. Register with engine (injects ChannelService)
|
|
480
|
+
* createEngine({ channels: { routers: [todoChannel] } });
|
|
481
|
+
*
|
|
482
|
+
* // 3. In components - register for auto-notification
|
|
483
|
+
* const publisher = channel.registerContext(ctx, { userId }, (event, result) => {
|
|
484
|
+
* if (result?.success) ctx.setState('tasks', result.tasks);
|
|
485
|
+
* });
|
|
486
|
+
*
|
|
487
|
+
* // 4. Publish events
|
|
488
|
+
* publisher.to(userId).broadcast({ type: 'state_changed', payload });
|
|
489
|
+
*
|
|
490
|
+
* // 5. Cleanup on unmount
|
|
491
|
+
* channel.unregisterContext(ctx);
|
|
492
|
+
* ```
|
|
493
|
+
*
|
|
494
|
+
* @template TSubscribeContext - Type of the context passed to handlers
|
|
495
|
+
*/
|
|
496
|
+
/**
|
|
497
|
+
* Callback invoked when a channel event is handled.
|
|
498
|
+
* Receives the event and the handler's result.
|
|
499
|
+
*/
|
|
500
|
+
export type ContextEventCallback<TResult = unknown> = (event: ChannelEvent, result: TResult) => void;
|
|
501
|
+
export declare class ChannelRouter<TSubscribeContext = unknown> {
|
|
502
|
+
readonly channel: string;
|
|
503
|
+
private config;
|
|
504
|
+
private handlers;
|
|
505
|
+
private defaultHandler?;
|
|
506
|
+
private errorHandler?;
|
|
507
|
+
/**
|
|
508
|
+
* Registry of execution contexts.
|
|
509
|
+
* Key format: `${executionId}:${scopeKey}`
|
|
510
|
+
* Allows multiple executions to register for same scope, each with own callbacks.
|
|
511
|
+
*/
|
|
512
|
+
private contextRegistry;
|
|
513
|
+
constructor(channel: string, config?: ChannelRouterConfig);
|
|
514
|
+
getTransport(): ChannelTransport;
|
|
515
|
+
getChannelService(): ChannelService;
|
|
516
|
+
setChannelService(service: ChannelService): void;
|
|
517
|
+
setTransport(transport: ChannelTransport): void;
|
|
518
|
+
setScope(scope: ScopeDefinition): void;
|
|
519
|
+
setContextBuilder(contextBuilder: (data: any) => any): void;
|
|
520
|
+
/**
|
|
521
|
+
* Register a handler for a specific event type.
|
|
522
|
+
* Handler receives (event, context) where context is built from the request
|
|
523
|
+
* via contextBuilder or passed directly to handle().
|
|
524
|
+
*/
|
|
525
|
+
on(eventType: string, handler: ChannelEventHandler<TSubscribeContext>): this;
|
|
526
|
+
/**
|
|
527
|
+
* Register a default handler for unmatched event types.
|
|
528
|
+
*/
|
|
529
|
+
default(handler: ChannelEventHandler<TSubscribeContext>): this;
|
|
530
|
+
/**
|
|
531
|
+
* Register an error handler.
|
|
532
|
+
*/
|
|
533
|
+
onError(handler: (error: Error, event: ChannelEvent) => void): this;
|
|
534
|
+
/**
|
|
535
|
+
* Handle an incoming event.
|
|
536
|
+
* Called by ChannelService.handleEvent() or directly.
|
|
537
|
+
* Auto-notifies registered execution contexts after handler returns.
|
|
538
|
+
*
|
|
539
|
+
* @param event - The channel event to handle
|
|
540
|
+
* @param context - Context for the handler (required)
|
|
541
|
+
* @returns Result from the handler, or undefined if no handler matched
|
|
542
|
+
*/
|
|
543
|
+
handle<TResult = unknown>(event: ChannelEvent, context: TSubscribeContext): Promise<TResult | undefined>;
|
|
544
|
+
/**
|
|
545
|
+
* Build the context for the handler.
|
|
546
|
+
*/
|
|
547
|
+
buildContext(data: any): TSubscribeContext;
|
|
548
|
+
/**
|
|
549
|
+
* Check if value is a ScopeMapping (object with string values, not an array or function)
|
|
550
|
+
*/
|
|
551
|
+
private isScopeMapping;
|
|
552
|
+
/**
|
|
553
|
+
* Extract scope keys from channel context based on scope config.
|
|
554
|
+
* Returns array of fully qualified keys like 'prefix:value'.
|
|
555
|
+
*
|
|
556
|
+
* @example
|
|
557
|
+
* // scope: { user: 'userId' }, ctx: { userId: 'alice' }
|
|
558
|
+
* // → ['user:alice']
|
|
559
|
+
*
|
|
560
|
+
* // scope: [{ user: 'userId' }, { thread: 'threadId' }], ctx: { userId: 'alice', threadId: '123' }
|
|
561
|
+
* // → ['user:alice', 'thread:123']
|
|
562
|
+
*
|
|
563
|
+
* // scope: (ctx) => `user:${ctx.userId}`, ctx: { userId: 'alice' }
|
|
564
|
+
* // → ['user:alice']
|
|
565
|
+
*/
|
|
566
|
+
private getScopeKeys;
|
|
567
|
+
/**
|
|
568
|
+
* Extract scope keys from a single ScopeMapping.
|
|
569
|
+
*/
|
|
570
|
+
private extractKeysFromMapping;
|
|
571
|
+
/**
|
|
572
|
+
* Register an execution's context with this channel.
|
|
573
|
+
* When channel events are handled, the onEvent callback is automatically invoked
|
|
574
|
+
* with the event and handler result.
|
|
575
|
+
*
|
|
576
|
+
* @param ctx - Engine context (provides executionHandle for auto-cleanup)
|
|
577
|
+
* @param channelContext - The context to register (used for scope matching)
|
|
578
|
+
* @param onEvent - Callback invoked after handler returns (receives event + result)
|
|
579
|
+
* @returns ChannelPublisher for publishing events
|
|
580
|
+
*
|
|
581
|
+
* @example
|
|
582
|
+
* ```typescript
|
|
583
|
+
* // In component onMount
|
|
584
|
+
* const publisher = channel.registerContext(ctx, { userId }, (event, result) => {
|
|
585
|
+
* if (result?.success) ctx.setState('tasks', result.tasks);
|
|
586
|
+
* });
|
|
587
|
+
* publisher.to(userId).broadcast({ type: 'state_changed', payload });
|
|
588
|
+
*
|
|
589
|
+
* // In component onUnmount
|
|
590
|
+
* channel.unregisterContext(ctx);
|
|
591
|
+
* ```
|
|
592
|
+
*/
|
|
593
|
+
registerContext(ctx: EngineContext, channelContext: TSubscribeContext, onEvent?: ContextEventCallback): ChannelPublisher;
|
|
594
|
+
/**
|
|
595
|
+
* Unregister all contexts for an execution.
|
|
596
|
+
* Alternative to storing the returned function from registerContext.
|
|
597
|
+
*
|
|
598
|
+
* @param ctx - Engine context to unregister
|
|
599
|
+
*/
|
|
600
|
+
unregisterContext(ctx: EngineContext): void;
|
|
601
|
+
/**
|
|
602
|
+
* Clean up all contexts for a specific execution ID.
|
|
603
|
+
* Called as a fail-safe when execution ends.
|
|
604
|
+
*
|
|
605
|
+
* @param executionId - The execution ID to clean up
|
|
606
|
+
*/
|
|
607
|
+
cleanupExecution(executionId: string): void;
|
|
608
|
+
/**
|
|
609
|
+
* Extract the scope key from a registry key.
|
|
610
|
+
* Registry keys are formatted as `${executionId}:${scopeKey}`.
|
|
611
|
+
* We find the first colon and take everything after it as the scopeKey.
|
|
612
|
+
*/
|
|
613
|
+
private extractScopeKeyFromRegistryKey;
|
|
614
|
+
/**
|
|
615
|
+
* Execute a callback for each registered context matching scope(s).
|
|
616
|
+
* Scope keys are derived from the provided context (or explicit scopeKey).
|
|
617
|
+
* Deduplicates by executionId - each execution's callback runs at most once.
|
|
618
|
+
*
|
|
619
|
+
* @param scopeKeyOrContext - Either explicit scope key or context to derive scope from
|
|
620
|
+
* @param fn - Callback to execute for each matching context
|
|
621
|
+
*
|
|
622
|
+
* @example
|
|
623
|
+
* ```typescript
|
|
624
|
+
* // Using context (scope derived automatically, supports multiple scopes)
|
|
625
|
+
* channel.forEachContext(ctx, (regCtx) => regCtx.onUpdate?.(result.notes));
|
|
626
|
+
*
|
|
627
|
+
* // Using explicit scope key (single key)
|
|
628
|
+
* channel.forEachContext('user:alice', (regCtx) => regCtx.onUpdate?.(result.notes));
|
|
629
|
+
* ```
|
|
630
|
+
*/
|
|
631
|
+
forEachContext(scopeKeyOrContext: string | TSubscribeContext, fn: (ctx: TSubscribeContext) => void): void;
|
|
632
|
+
/**
|
|
633
|
+
* Notify all registered contexts for matching scopes with an event and result.
|
|
634
|
+
* Called automatically by handle() after handler returns.
|
|
635
|
+
* Deduplicates by executionId - each execution's callback runs at most once.
|
|
636
|
+
*
|
|
637
|
+
* @param context - Context to derive scope from
|
|
638
|
+
* @param event - The channel event
|
|
639
|
+
* @param result - The handler's result
|
|
640
|
+
*/
|
|
641
|
+
private notifyRegisteredContexts;
|
|
642
|
+
/**
|
|
643
|
+
* Get the number of registered contexts (for debugging/monitoring).
|
|
644
|
+
*/
|
|
645
|
+
getRegisteredContextCount(): number;
|
|
646
|
+
/**
|
|
647
|
+
* Resolve a value or getter function.
|
|
648
|
+
*/
|
|
649
|
+
private resolve;
|
|
650
|
+
/**
|
|
651
|
+
* Get the scope prefix for a given scope key.
|
|
652
|
+
* If scopeKey is provided, uses that key from the mapping.
|
|
653
|
+
* Otherwise uses the first key from the mapping.
|
|
654
|
+
*
|
|
655
|
+
* Note: Function scopes are not supported for publishing via .scope()/.to() -
|
|
656
|
+
* use mapping syntax instead: { user: 'userId' }
|
|
657
|
+
*/
|
|
658
|
+
private getScopePrefix;
|
|
659
|
+
/**
|
|
660
|
+
* Create a scoped publisher (has scope prefix set, needs .to(id)).
|
|
661
|
+
*/
|
|
662
|
+
private createScopedPublisherForKey;
|
|
663
|
+
/**
|
|
664
|
+
* Create a bound publisher for a specific scope prefix.
|
|
665
|
+
*/
|
|
666
|
+
private createBoundPublisherForPrefix;
|
|
667
|
+
/**
|
|
668
|
+
* Internal send with explicit scope prefix and id.
|
|
669
|
+
*/
|
|
670
|
+
private sendInternalWithPrefix;
|
|
671
|
+
/**
|
|
672
|
+
* Create a publisher interface for this channel.
|
|
673
|
+
*/
|
|
674
|
+
private createPublisher;
|
|
675
|
+
/**
|
|
676
|
+
* Get a publisher without subscribing (for services that only publish).
|
|
677
|
+
*/
|
|
678
|
+
publisher(): ChannelPublisher;
|
|
679
|
+
}
|
|
680
|
+
/**
|
|
681
|
+
* Factory function to create a ChannelRouter with common defaults.
|
|
682
|
+
*/
|
|
683
|
+
export declare function createChannelRouter(channel: string, config?: ChannelRouterConfig): ChannelRouter;
|
|
684
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/channels/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAI7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI9C,OAAO,EACL,OAAO,EACP,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAE1B;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,MAAM,EAAE,CAAC;CAC5D;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;OAEG;IACH,UAAU,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD;;;;;;;OAOG;IACH,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IAIxD;;OAEG;IACH,IAAI,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;OAEG;IACH,KAAK,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;OAEG;IACH,kBAAkB,CAAC,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEpD;;OAEG;IACH,kBAAkB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE5C;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IAIxF;;;;OAIG;IACH,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC;;;OAGG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;OAEG;IACH,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,MAAM,CAAC;IAEpD;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,cAAe,YAAW,uBAAuB;IAC5D,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,kBAAkB,CAAiC;IAC3D,OAAO,CAAC,SAAS,CAAC,CAAmB;IACrC,OAAO,CAAC,OAAO,CAAC,CAAiB;IACjC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,cAAc,CAAyC;gBAEnD,MAAM,GAAE,oBAAyB;IA+B7C;;OAEG;IACH,YAAY,IAAI,gBAAgB,GAAG,SAAS;IAI5C;;OAEG;IACH,SAAS,CAAC,QAAQ,GAAG,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,SAAS;IAIvF;;;;;;;;;;;;;;;;;;OAkBG;IACG,WAAW,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EACrD,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAC3C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAyB/B;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc;IAoB9C;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAiC5D;;;;;OAKG;IACH,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,IAAI;IAgC5F;;;;;OAKG;IACH,SAAS,CACP,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACrD,MAAM,IAAI;IAKb;;;;;;;;;;OAUG;IACH,mBAAmB,CACjB,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,MAAM,EAAE,GAAG,GAAG,EAC5B,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GACrC,MAAM,IAAI;IA6Bb;;;;;;;;;;;OAWG;IACH,iBAAiB,CACf,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,MAAM,GAAG,GAAG,EACzB,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EACtC,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;KAClD,GACA,MAAM,IAAI;IA6Bb;;OAEG;IACG,eAAe,CACnB,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC;IAKxB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAyBtB;;;OAGG;YACW,YAAY;IAO1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAevC;;OAEG;IACH,OAAO,IAAI,IAAI;CA6BhB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,YAAY,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;AAEhG;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,SAAS,CAAC,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,CAAC,CAAC;IAExD;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,GAAG,CAAC,MAAM,cAAc,CAAC,CAAC;IAEzD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,EAAE,eAAe,GAAG,CAAC,MAAM,eAAe,CAAC,CAAC;IAElD;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,SAAS,CACP,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EACzC,OAAO,CAAC,EAAE;QAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAAC;IAEzC;;;;;OAKG;IACH,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC;CAC/C;AAED;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,CAAC,QAAQ,GAAG,OAAO,IAAI,CACpD,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,QAAQ,KACd,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH;;;GAGG;AACH,MAAM,MAAM,oBAAoB,CAAC,OAAO,GAAG,OAAO,IAAI,CACpD,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,OAAO,KACZ,IAAI,CAAC;AAYV,qBAAa,aAAa,CAAC,iBAAiB,GAAG,OAAO;aAalC,OAAO,EAAE,MAAM;IAC/B,OAAO,CAAC,MAAM;IAbhB,OAAO,CAAC,QAAQ,CAA6D;IAC7E,OAAO,CAAC,cAAc,CAAC,CAAyC;IAChE,OAAO,CAAC,YAAY,CAAC,CAA8C;IAEnE;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAA2D;gBAGhE,OAAO,EAAE,MAAM,EACvB,MAAM,GAAE,mBAAwB;IAO1C,YAAY,IAAI,gBAAgB;IAehC,iBAAiB,IAAI,cAAc;IAQnC,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAWhD,YAAY,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAI/C,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAItC,iBAAiB,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,IAAI;IAQ3D;;;;OAIG;IACH,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAK5E;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAK9D;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAKnE;;;;;;;;OAQG;IACG,MAAM,CAAC,OAAO,GAAG,OAAO,EAC5B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAwB/B;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,iBAAiB;IAQ1C;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,YAAY;IAkCpB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,eAAe,CACb,GAAG,EAAE,aAAa,EAClB,cAAc,EAAE,iBAAiB,EACjC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,gBAAgB;IAqCnB;;;;;OAKG;IACH,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAY3C;;;;;OAKG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAQ3C;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;IAQtC;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CACZ,iBAAiB,EAAE,MAAM,GAAG,iBAAiB,EAC7C,EAAE,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,GACnC,IAAI;IA4BP;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;OAEG;IACH,yBAAyB,IAAI,MAAM;IAQnC;;OAEG;IACH,OAAO,CAAC,OAAO;IAIf;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAwBtB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAQnC;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAmBrC;;OAEG;YACW,sBAAsB;IA+BpC;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACH,SAAS,IAAI,gBAAgB;CAG9B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,mBAAwB,GAC/B,aAAa,CAEf"}
|