@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,497 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter - The recommended way to create model adapters
|
|
3
|
+
*
|
|
4
|
+
* This provides a clean API for creating adapters while preserving
|
|
5
|
+
* all framework features (streaming, metadata, model-specific defaults, options merging).
|
|
6
|
+
*
|
|
7
|
+
* ## Why createAdapter?
|
|
8
|
+
*
|
|
9
|
+
* Creating adapters is one of the most common tasks when extending Agentick.
|
|
10
|
+
* This API minimizes boilerplate while maximizing flexibility:
|
|
11
|
+
*
|
|
12
|
+
* - **Minimal API**: Just implement prepareInput, mapChunk, execute, executeStream
|
|
13
|
+
* - **Automatic streaming**: StreamAccumulator handles all lifecycle events
|
|
14
|
+
* - **Options merging**: Built-in merging of providerOptions and libraryOptions
|
|
15
|
+
* - **Model defaults**: Full support for messageTransformation config
|
|
16
|
+
* - **Metadata extraction**: Hook for citations, annotations, grounding
|
|
17
|
+
*
|
|
18
|
+
* ## Quick Start
|
|
19
|
+
*
|
|
20
|
+
* ```typescript
|
|
21
|
+
* import { createAdapter, StopReason } from '@agentick/core/model';
|
|
22
|
+
*
|
|
23
|
+
* const model = createAdapter({
|
|
24
|
+
* metadata: {
|
|
25
|
+
* id: 'my-provider:my-model',
|
|
26
|
+
* provider: 'my-provider',
|
|
27
|
+
* capabilities: [{ stream: true, toolCalls: true }],
|
|
28
|
+
* },
|
|
29
|
+
*
|
|
30
|
+
* prepareInput: (input) => ({
|
|
31
|
+
* model: 'my-model',
|
|
32
|
+
* messages: toProviderMessages(input.messages),
|
|
33
|
+
* tools: input.tools?.map(toProviderTool),
|
|
34
|
+
* }),
|
|
35
|
+
*
|
|
36
|
+
* mapChunk: (chunk) => {
|
|
37
|
+
* if (chunk.type === 'text') return { type: 'text', delta: chunk.text };
|
|
38
|
+
* if (chunk.type === 'tool') return { type: 'tool_call', id: chunk.id, name: chunk.name, input: chunk.args };
|
|
39
|
+
* if (chunk.type === 'done') return { type: 'message_end', stopReason: StopReason.STOP };
|
|
40
|
+
* return null;
|
|
41
|
+
* },
|
|
42
|
+
*
|
|
43
|
+
* execute: (input) => provider.generate(input),
|
|
44
|
+
* executeStream: (input) => provider.stream(input),
|
|
45
|
+
* });
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* @module agentick/model/adapter
|
|
49
|
+
*/
|
|
50
|
+
import React from "react";
|
|
51
|
+
import { Context } from "@agentick/kernel";
|
|
52
|
+
import { createEngineProcedure } from "../procedure";
|
|
53
|
+
import { StreamAccumulator, createChunkMapper, } from "./stream-accumulator";
|
|
54
|
+
import { fromEngineState, toEngineState } from "./utils/language-model";
|
|
55
|
+
import { Model } from "../jsx/components/model";
|
|
56
|
+
// ============================================================================
|
|
57
|
+
// Re-exports for adapter convenience
|
|
58
|
+
// ============================================================================
|
|
59
|
+
export { StopReason } from "@agentick/shared";
|
|
60
|
+
export { createChunkMapper } from "./stream-accumulator";
|
|
61
|
+
// ============================================================================
|
|
62
|
+
// Options Merging Utilities
|
|
63
|
+
// ============================================================================
|
|
64
|
+
/**
|
|
65
|
+
* Deep merge utility for options objects.
|
|
66
|
+
* Handles nested objects and arrays intelligently.
|
|
67
|
+
*/
|
|
68
|
+
function deepMerge(...sources) {
|
|
69
|
+
const result = {};
|
|
70
|
+
for (const source of sources) {
|
|
71
|
+
if (!source)
|
|
72
|
+
continue;
|
|
73
|
+
for (const key of Object.keys(source)) {
|
|
74
|
+
const value = source[key];
|
|
75
|
+
const existing = result[key];
|
|
76
|
+
if (value === undefined)
|
|
77
|
+
continue;
|
|
78
|
+
if (typeof value === "object" &&
|
|
79
|
+
value !== null &&
|
|
80
|
+
!Array.isArray(value) &&
|
|
81
|
+
typeof existing === "object" &&
|
|
82
|
+
existing !== null &&
|
|
83
|
+
!Array.isArray(existing)) {
|
|
84
|
+
// Deep merge nested objects
|
|
85
|
+
result[key] = deepMerge(existing, value);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
// Overwrite primitives, arrays, and null
|
|
89
|
+
result[key] = value;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Merge provider options from multiple sources.
|
|
97
|
+
*
|
|
98
|
+
* Priority (later sources override earlier):
|
|
99
|
+
* 1. Model-level defaults (from adapter config)
|
|
100
|
+
* 2. Input providerOptions (from ModelInput)
|
|
101
|
+
* 3. Library-nested providerOptions (from libraryOptions[adapter].providerOptions)
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* const merged = mergeProviderOptions(
|
|
106
|
+
* 'openai',
|
|
107
|
+
* { temperature: 0.5 }, // adapter defaults
|
|
108
|
+
* input.providerOptions, // input options
|
|
109
|
+
* input.libraryOptions, // may contain nested providerOptions
|
|
110
|
+
* );
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export function mergeProviderOptions(providerKey, adapterDefaults, inputProviderOptions, libraryOptions) {
|
|
114
|
+
// Extract provider-specific options from each source
|
|
115
|
+
const adapterOpts = adapterDefaults || {};
|
|
116
|
+
const inputOpts = inputProviderOptions?.[providerKey] || {};
|
|
117
|
+
// Library options may contain nested providerOptions for this provider.
|
|
118
|
+
// We iterate over all library keys to collect nested providerOptions[providerKey].
|
|
119
|
+
let libraryProviderOpts = {};
|
|
120
|
+
if (libraryOptions) {
|
|
121
|
+
for (const libraryKey of Object.keys(libraryOptions)) {
|
|
122
|
+
const libraryValue = libraryOptions[libraryKey];
|
|
123
|
+
const nestedProviderOpts = libraryValue?.providerOptions?.[providerKey];
|
|
124
|
+
if (nestedProviderOpts) {
|
|
125
|
+
libraryProviderOpts = deepMerge(libraryProviderOpts, nestedProviderOpts);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return deepMerge(adapterOpts, inputOpts, libraryProviderOpts);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Merge library options from multiple sources.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* const merged = mergeLibraryOptions(
|
|
137
|
+
* 'ai-sdk',
|
|
138
|
+
* { maxSteps: 5 }, // adapter defaults
|
|
139
|
+
* input.libraryOptions, // input options
|
|
140
|
+
* );
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
export function mergeLibraryOptions(libraryKey, adapterDefaults, inputLibraryOptions) {
|
|
144
|
+
const adapterOpts = adapterDefaults || {};
|
|
145
|
+
const inputOpts = inputLibraryOptions?.[libraryKey] || {};
|
|
146
|
+
return deepMerge(adapterOpts, inputOpts);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Extract all relevant options for a library adapter.
|
|
150
|
+
*
|
|
151
|
+
* Returns a structured object with:
|
|
152
|
+
* - `library`: Merged library-specific options
|
|
153
|
+
* - `provider`: Merged provider-specific options
|
|
154
|
+
* - `standard`: Standard ModelInput options (temperature, maxTokens, etc.)
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* const opts = extractAdapterOptions('ai-sdk', 'openai', input, {
|
|
159
|
+
* libraryDefaults: { maxSteps: 5 },
|
|
160
|
+
* providerDefaults: { temperature: 0.7 },
|
|
161
|
+
* });
|
|
162
|
+
*
|
|
163
|
+
* return {
|
|
164
|
+
* model,
|
|
165
|
+
* messages,
|
|
166
|
+
* ...opts.library, // AI SDK specific
|
|
167
|
+
* providerOptions: {
|
|
168
|
+
* openai: opts.provider, // OpenAI specific
|
|
169
|
+
* },
|
|
170
|
+
* };
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
export function extractAdapterOptions(libraryKey, providerKey, input, defaults) {
|
|
174
|
+
const library = mergeLibraryOptions(libraryKey, defaults?.libraryDefaults, input.libraryOptions);
|
|
175
|
+
const provider = mergeProviderOptions(providerKey, defaults?.providerDefaults, input.providerOptions, input.libraryOptions);
|
|
176
|
+
return {
|
|
177
|
+
library,
|
|
178
|
+
provider,
|
|
179
|
+
standard: {
|
|
180
|
+
model: input.model,
|
|
181
|
+
temperature: input.temperature,
|
|
182
|
+
maxTokens: input.maxTokens,
|
|
183
|
+
topP: input.topP,
|
|
184
|
+
frequencyPenalty: input.frequencyPenalty,
|
|
185
|
+
presencePenalty: input.presencePenalty,
|
|
186
|
+
stop: input.stop,
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
// ============================================================================
|
|
191
|
+
// Factory Functions
|
|
192
|
+
// ============================================================================
|
|
193
|
+
/**
|
|
194
|
+
* Create an adapter with the simplest possible API.
|
|
195
|
+
*
|
|
196
|
+
* This is the recommended way to create model adapters. It wraps createLanguageModel
|
|
197
|
+
* with sensible defaults:
|
|
198
|
+
* - Uses StreamAccumulator for stream handling (no manual accumulation)
|
|
199
|
+
* - Uses default fromEngineState/toEngineState (standard transformations)
|
|
200
|
+
* - Automatically generates StreamEvents from AdapterDeltas
|
|
201
|
+
* - Supports model-specific messageTransformation config
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```typescript
|
|
205
|
+
* import { createAdapter, StopReason, extractAdapterOptions } from '@agentick/core/model';
|
|
206
|
+
* import { openai } from '@ai-sdk/openai';
|
|
207
|
+
*
|
|
208
|
+
* const model = createAdapter({
|
|
209
|
+
* metadata: {
|
|
210
|
+
* id: 'ai-sdk:gpt-4',
|
|
211
|
+
* provider: 'ai-sdk',
|
|
212
|
+
* capabilities: [
|
|
213
|
+
* { stream: true, toolCalls: true },
|
|
214
|
+
* {
|
|
215
|
+
* // Model-specific transformation config
|
|
216
|
+
* messageTransformation: (modelId, provider) => ({
|
|
217
|
+
* preferredRenderer: 'markdown',
|
|
218
|
+
* roleMapping: {
|
|
219
|
+
* event: modelId.includes('gpt-4') ? 'developer' : 'user',
|
|
220
|
+
* ephemeral: modelId.includes('gpt-4') ? 'developer' : 'user',
|
|
221
|
+
* },
|
|
222
|
+
* }),
|
|
223
|
+
* },
|
|
224
|
+
* ],
|
|
225
|
+
* },
|
|
226
|
+
*
|
|
227
|
+
* prepareInput: (input) => {
|
|
228
|
+
* const opts = extractAdapterOptions('ai-sdk', 'openai', input);
|
|
229
|
+
* return {
|
|
230
|
+
* model: openai('gpt-4'),
|
|
231
|
+
* messages: toAiSdkMessages(input.messages),
|
|
232
|
+
* tools: convertToolsToToolSet(input.tools),
|
|
233
|
+
* ...opts.library,
|
|
234
|
+
* providerOptions: { openai: opts.provider },
|
|
235
|
+
* };
|
|
236
|
+
* },
|
|
237
|
+
*
|
|
238
|
+
* mapChunk: (chunk) => {
|
|
239
|
+
* switch (chunk.type) {
|
|
240
|
+
* case 'text-delta': return { type: 'text', delta: chunk.text };
|
|
241
|
+
* case 'reasoning-delta': return { type: 'reasoning', delta: chunk.text };
|
|
242
|
+
* case 'tool-call': return { type: 'tool_call', id: chunk.toolCallId, name: chunk.toolName, input: chunk.args };
|
|
243
|
+
* case 'finish': return { type: 'message_end', stopReason: StopReason.STOP, usage: chunk.totalUsage };
|
|
244
|
+
* default: return null;
|
|
245
|
+
* }
|
|
246
|
+
* },
|
|
247
|
+
*
|
|
248
|
+
* execute: (input) => generateText(input),
|
|
249
|
+
* executeStream: (input) => streamText(input).fullStream,
|
|
250
|
+
* });
|
|
251
|
+
* ```
|
|
252
|
+
*/
|
|
253
|
+
/**
|
|
254
|
+
* Event ID counter for generating unique event IDs
|
|
255
|
+
*/
|
|
256
|
+
let adapterEventIdCounter = 0;
|
|
257
|
+
function generateAdapterEventId() {
|
|
258
|
+
return `aevt_${Date.now()}_${++adapterEventIdCounter}`;
|
|
259
|
+
}
|
|
260
|
+
function createAdapterEventBase() {
|
|
261
|
+
return {
|
|
262
|
+
id: generateAdapterEventId(),
|
|
263
|
+
sequence: 0, // Placeholder - session.emitEvent assigns actual sequence
|
|
264
|
+
tick: 1,
|
|
265
|
+
timestamp: new Date().toISOString(),
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Create an adapter using StreamAccumulator for clean streaming.
|
|
270
|
+
*
|
|
271
|
+
* This is the recommended way to create model adapters. StreamAccumulator
|
|
272
|
+
* handles all the complexity of converting AdapterDeltas to StreamEvents
|
|
273
|
+
* with proper lifecycle management.
|
|
274
|
+
*
|
|
275
|
+
* Returns a ModelClass that can be used:
|
|
276
|
+
* - As a JSX component: `<model temperature={0.9}><MyAgent /></model>`
|
|
277
|
+
* - With createApp: `createApp(Agent, { model })`
|
|
278
|
+
* - For direct calls: `await model.generate(input)`
|
|
279
|
+
*/
|
|
280
|
+
export function createAdapter(options) {
|
|
281
|
+
const { metadata, prepareInput, mapChunk, execute, executeStream, processOutput, extractMetadata, reconstructRaw, onMount: adapterOnMount, onUnmount: adapterOnUnmount, } = options;
|
|
282
|
+
// Create generate procedure
|
|
283
|
+
const generate = createEngineProcedure({
|
|
284
|
+
name: "model:generate",
|
|
285
|
+
metadata: {
|
|
286
|
+
type: "model",
|
|
287
|
+
id: metadata.id,
|
|
288
|
+
operation: "generate",
|
|
289
|
+
},
|
|
290
|
+
executionBoundary: "child",
|
|
291
|
+
executionType: "model",
|
|
292
|
+
}, async (input) => {
|
|
293
|
+
const providerInput = await prepareInput(input);
|
|
294
|
+
// Emit event with the provider-formatted input (for DevTools debugging)
|
|
295
|
+
Context.emit("model:provider_request", {
|
|
296
|
+
modelId: metadata.id,
|
|
297
|
+
provider: metadata.provider,
|
|
298
|
+
providerInput,
|
|
299
|
+
});
|
|
300
|
+
const providerOutput = await execute(providerInput);
|
|
301
|
+
// Emit event with the raw provider response (for DevTools debugging)
|
|
302
|
+
Context.emit("model:provider_response", {
|
|
303
|
+
modelId: metadata.id,
|
|
304
|
+
provider: metadata.provider,
|
|
305
|
+
providerOutput,
|
|
306
|
+
});
|
|
307
|
+
// Use processOutput if provided, otherwise we need streaming
|
|
308
|
+
if (processOutput) {
|
|
309
|
+
return processOutput(providerOutput);
|
|
310
|
+
}
|
|
311
|
+
// Fallback: convert provider output to ModelOutput
|
|
312
|
+
// This is a simplified fallback - adapters should provide processOutput
|
|
313
|
+
return {
|
|
314
|
+
model: metadata.id,
|
|
315
|
+
createdAt: new Date().toISOString(),
|
|
316
|
+
message: { role: "assistant", content: [] },
|
|
317
|
+
messages: [],
|
|
318
|
+
usage: { inputTokens: 0, outputTokens: 0, totalTokens: 0 },
|
|
319
|
+
stopReason: "unspecified",
|
|
320
|
+
raw: providerOutput,
|
|
321
|
+
};
|
|
322
|
+
});
|
|
323
|
+
// Create stream procedure using StreamAccumulator
|
|
324
|
+
const stream = executeStream
|
|
325
|
+
? createEngineProcedure({
|
|
326
|
+
name: "model:stream",
|
|
327
|
+
metadata: {
|
|
328
|
+
type: "model",
|
|
329
|
+
id: metadata.id,
|
|
330
|
+
operation: "stream",
|
|
331
|
+
},
|
|
332
|
+
handleFactory: false, // Stream procedures return async generators
|
|
333
|
+
executionBoundary: "child",
|
|
334
|
+
executionType: "model",
|
|
335
|
+
}, async function* (input) {
|
|
336
|
+
const providerInput = await prepareInput(input);
|
|
337
|
+
// Emit event with the provider-formatted input (for DevTools debugging)
|
|
338
|
+
Context.emit("model:provider_request", {
|
|
339
|
+
modelId: metadata.id,
|
|
340
|
+
provider: metadata.provider,
|
|
341
|
+
providerInput,
|
|
342
|
+
});
|
|
343
|
+
// Use StreamAccumulator for clean lifecycle management
|
|
344
|
+
const accumulator = new StreamAccumulator({ modelId: metadata.id });
|
|
345
|
+
const rawChunks = [];
|
|
346
|
+
for await (const chunk of executeStream(providerInput)) {
|
|
347
|
+
rawChunks.push(chunk);
|
|
348
|
+
// Extract metadata if hook provided
|
|
349
|
+
if (extractMetadata) {
|
|
350
|
+
const contentMetadata = extractMetadata(chunk, {
|
|
351
|
+
text: accumulator.getText(),
|
|
352
|
+
reasoning: accumulator.getReasoning(),
|
|
353
|
+
});
|
|
354
|
+
if (contentMetadata) {
|
|
355
|
+
const metadataEvents = accumulator.push({
|
|
356
|
+
type: "content_metadata",
|
|
357
|
+
metadata: contentMetadata,
|
|
358
|
+
});
|
|
359
|
+
for (const event of metadataEvents) {
|
|
360
|
+
yield event;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
// Map chunk to AdapterDelta and push to accumulator
|
|
365
|
+
const delta = mapChunk(chunk);
|
|
366
|
+
if (delta) {
|
|
367
|
+
const events = accumulator.push(delta);
|
|
368
|
+
for (const event of events) {
|
|
369
|
+
yield event;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
// Get final accumulated output
|
|
374
|
+
const accumulatedOutput = accumulator.toModelOutput();
|
|
375
|
+
// Reconstruct raw provider response if adapter provides reconstructRaw
|
|
376
|
+
const rawResponse = reconstructRaw
|
|
377
|
+
? reconstructRaw({
|
|
378
|
+
text: accumulatedOutput.raw?.text || "",
|
|
379
|
+
reasoning: accumulatedOutput.raw?.reasoning || "",
|
|
380
|
+
toolCalls: accumulatedOutput.toolCalls || [],
|
|
381
|
+
usage: accumulatedOutput.usage,
|
|
382
|
+
stopReason: accumulatedOutput.stopReason,
|
|
383
|
+
model: accumulatedOutput.model,
|
|
384
|
+
chunks: rawChunks,
|
|
385
|
+
})
|
|
386
|
+
: undefined;
|
|
387
|
+
// Build final message content
|
|
388
|
+
const content = [];
|
|
389
|
+
if (accumulatedOutput.raw?.reasoning) {
|
|
390
|
+
content.push({
|
|
391
|
+
type: "reasoning",
|
|
392
|
+
text: accumulatedOutput.raw.reasoning,
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
if (accumulatedOutput.raw?.text) {
|
|
396
|
+
content.push({ type: "text", text: accumulatedOutput.raw.text });
|
|
397
|
+
}
|
|
398
|
+
if (accumulatedOutput.toolCalls) {
|
|
399
|
+
for (const tc of accumulatedOutput.toolCalls) {
|
|
400
|
+
content.push({
|
|
401
|
+
type: "tool_use",
|
|
402
|
+
toolUseId: tc.id,
|
|
403
|
+
name: tc.name,
|
|
404
|
+
input: tc.input,
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
// Yield final message event with all accumulated data
|
|
409
|
+
const messageEvent = {
|
|
410
|
+
type: "message",
|
|
411
|
+
...createAdapterEventBase(),
|
|
412
|
+
message: {
|
|
413
|
+
role: "assistant",
|
|
414
|
+
content,
|
|
415
|
+
},
|
|
416
|
+
stopReason: accumulatedOutput.stopReason,
|
|
417
|
+
usage: accumulatedOutput.usage,
|
|
418
|
+
model: accumulatedOutput.model,
|
|
419
|
+
startedAt: accumulatedOutput.createdAt,
|
|
420
|
+
completedAt: new Date().toISOString(),
|
|
421
|
+
raw: rawResponse,
|
|
422
|
+
};
|
|
423
|
+
yield messageEvent;
|
|
424
|
+
})
|
|
425
|
+
: undefined;
|
|
426
|
+
// Default fromEngineState using model metadata for transformation config
|
|
427
|
+
const defaultFromEngineState = async (input) => {
|
|
428
|
+
const modelInstance = { metadata };
|
|
429
|
+
return fromEngineState(input, undefined, modelInstance);
|
|
430
|
+
};
|
|
431
|
+
// Build the EngineModel properties
|
|
432
|
+
const engineModel = {
|
|
433
|
+
metadata,
|
|
434
|
+
generate,
|
|
435
|
+
stream,
|
|
436
|
+
fromEngineState: options.fromEngineState
|
|
437
|
+
? async (input) => options.fromEngineState(input)
|
|
438
|
+
: defaultFromEngineState,
|
|
439
|
+
toEngineState: options.toEngineState
|
|
440
|
+
? async (output) => options.toEngineState(output)
|
|
441
|
+
: (output) => toEngineState(output),
|
|
442
|
+
getProviderInput: async (input) => prepareInput(input),
|
|
443
|
+
};
|
|
444
|
+
// Create functional component that wraps <Model>
|
|
445
|
+
const ModelComponent = function ModelComponent(props) {
|
|
446
|
+
const { children, onMount: propsOnMount, onUnmount: propsOnUnmount, ...modelOptions } = props;
|
|
447
|
+
// Merge lifecycle hooks: props override adapter defaults
|
|
448
|
+
const onMount = propsOnMount ?? adapterOnMount;
|
|
449
|
+
const onUnmount = propsOnUnmount ?? adapterOnUnmount;
|
|
450
|
+
return React.createElement(Model, {
|
|
451
|
+
model: engineModel,
|
|
452
|
+
onMount,
|
|
453
|
+
onUnmount,
|
|
454
|
+
...modelOptions,
|
|
455
|
+
}, children);
|
|
456
|
+
};
|
|
457
|
+
// Set display name for React DevTools
|
|
458
|
+
ModelComponent.displayName = `Model(${metadata.id})`;
|
|
459
|
+
// Attach EngineModel properties to make it a valid ModelClass
|
|
460
|
+
ModelComponent.metadata = metadata;
|
|
461
|
+
ModelComponent.generate = generate;
|
|
462
|
+
ModelComponent.stream = stream;
|
|
463
|
+
ModelComponent.fromEngineState = engineModel.fromEngineState;
|
|
464
|
+
ModelComponent.toEngineState = engineModel.toEngineState;
|
|
465
|
+
ModelComponent.getProviderInput = engineModel.getProviderInput;
|
|
466
|
+
return ModelComponent;
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* Create an adapter using declarative chunk mapping.
|
|
470
|
+
*
|
|
471
|
+
* This is even simpler than createAdapter for cases where
|
|
472
|
+
* chunk mapping can be expressed declaratively.
|
|
473
|
+
*
|
|
474
|
+
* @example
|
|
475
|
+
* ```typescript
|
|
476
|
+
* const model = createDeclarativeAdapter({
|
|
477
|
+
* metadata: { id: 'my-model', ... },
|
|
478
|
+
* prepareInput: (input) => ({ ... }),
|
|
479
|
+
* execute: (input) => provider.call(input),
|
|
480
|
+
* executeStream: (input) => provider.stream(input),
|
|
481
|
+
* chunkMapping: {
|
|
482
|
+
* text: { type: 'text-delta', extract: (c) => c.text },
|
|
483
|
+
* toolCall: { type: 'tool-call', extract: (c) => ({ id: c.id, name: c.name, input: c.args }) },
|
|
484
|
+
* messageEnd: { type: 'finish', extract: (c) => ({ stopReason: StopReason.STOP }) },
|
|
485
|
+
* },
|
|
486
|
+
* });
|
|
487
|
+
* ```
|
|
488
|
+
*/
|
|
489
|
+
export function createDeclarativeAdapter(options) {
|
|
490
|
+
const { chunkMapping, ...rest } = options;
|
|
491
|
+
const mapChunk = createChunkMapper(chunkMapping);
|
|
492
|
+
return createAdapter({
|
|
493
|
+
...rest,
|
|
494
|
+
mapChunk,
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/model/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # Agentick Models
|
|
3
|
+
*
|
|
4
|
+
* Model adapters and utilities for connecting to AI providers.
|
|
5
|
+
* Models are the interface between Agentick and AI services.
|
|
6
|
+
*
|
|
7
|
+
* ## Features
|
|
8
|
+
*
|
|
9
|
+
* - **createAdapter** - Factory for creating model adapters (recommended)
|
|
10
|
+
* - **ModelClass** - Unified type for JSX + programmatic use
|
|
11
|
+
* - **EngineModel** - Core interface for all models
|
|
12
|
+
* - **StreamAccumulator** - Built-in streaming support
|
|
13
|
+
*
|
|
14
|
+
* ## Quick Start
|
|
15
|
+
*
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { createAdapter, StopReason } from '@agentick/core/model';
|
|
18
|
+
*
|
|
19
|
+
* const model = createAdapter({
|
|
20
|
+
* metadata: { id: 'my-model', provider: 'my-provider', capabilities: [] },
|
|
21
|
+
* prepareInput: (input) => ({ model: 'gpt-4', messages: input.messages }),
|
|
22
|
+
* mapChunk: (chunk) => ({ type: 'text', delta: chunk.text }),
|
|
23
|
+
* execute: (input) => provider.generate(input),
|
|
24
|
+
* executeStream: (input) => provider.stream(input),
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Use as JSX component
|
|
28
|
+
* <model temperature={0.9}><MyAgent /></model>
|
|
29
|
+
*
|
|
30
|
+
* // Use with createApp
|
|
31
|
+
* const app = createApp(Agent, { model });
|
|
32
|
+
*
|
|
33
|
+
* // Direct execution
|
|
34
|
+
* const output = await model.generate(input);
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* ## Pre-built Adapters
|
|
38
|
+
*
|
|
39
|
+
* - `@agentick/ai-sdk` - Vercel AI SDK (multi-provider)
|
|
40
|
+
* - `@agentick/openai` - OpenAI native
|
|
41
|
+
* - `@agentick/google` - Google AI native
|
|
42
|
+
*
|
|
43
|
+
* @see {@link createAdapter} - Main adapter factory
|
|
44
|
+
* @see {@link ModelClass} - Unified model type
|
|
45
|
+
*
|
|
46
|
+
* @module agentick/model
|
|
47
|
+
*/
|
|
48
|
+
export * from "./model";
|
|
49
|
+
export * from "./model-hooks";
|
|
50
|
+
export * from "./utils";
|
|
51
|
+
export * from "./stream-accumulator";
|
|
52
|
+
export * from "./adapter";
|
|
53
|
+
export * from "./adapter-helpers";
|
|
54
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AAGxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # Agentick Models
|
|
3
|
+
*
|
|
4
|
+
* Model adapters and utilities for connecting to AI providers.
|
|
5
|
+
* Models are the interface between Agentick and AI services.
|
|
6
|
+
*
|
|
7
|
+
* ## Features
|
|
8
|
+
*
|
|
9
|
+
* - **createAdapter** - Factory for creating model adapters (recommended)
|
|
10
|
+
* - **ModelClass** - Unified type for JSX + programmatic use
|
|
11
|
+
* - **EngineModel** - Core interface for all models
|
|
12
|
+
* - **StreamAccumulator** - Built-in streaming support
|
|
13
|
+
*
|
|
14
|
+
* ## Quick Start
|
|
15
|
+
*
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { createAdapter, StopReason } from '@agentick/core/model';
|
|
18
|
+
*
|
|
19
|
+
* const model = createAdapter({
|
|
20
|
+
* metadata: { id: 'my-model', provider: 'my-provider', capabilities: [] },
|
|
21
|
+
* prepareInput: (input) => ({ model: 'gpt-4', messages: input.messages }),
|
|
22
|
+
* mapChunk: (chunk) => ({ type: 'text', delta: chunk.text }),
|
|
23
|
+
* execute: (input) => provider.generate(input),
|
|
24
|
+
* executeStream: (input) => provider.stream(input),
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Use as JSX component
|
|
28
|
+
* <model temperature={0.9}><MyAgent /></model>
|
|
29
|
+
*
|
|
30
|
+
* // Use with createApp
|
|
31
|
+
* const app = createApp(Agent, { model });
|
|
32
|
+
*
|
|
33
|
+
* // Direct execution
|
|
34
|
+
* const output = await model.generate(input);
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* ## Pre-built Adapters
|
|
38
|
+
*
|
|
39
|
+
* - `@agentick/ai-sdk` - Vercel AI SDK (multi-provider)
|
|
40
|
+
* - `@agentick/openai` - OpenAI native
|
|
41
|
+
* - `@agentick/google` - Google AI native
|
|
42
|
+
*
|
|
43
|
+
* @see {@link createAdapter} - Main adapter factory
|
|
44
|
+
* @see {@link ModelClass} - Unified model type
|
|
45
|
+
*
|
|
46
|
+
* @module agentick/model
|
|
47
|
+
*/
|
|
48
|
+
export * from "./model";
|
|
49
|
+
export * from "./model-hooks";
|
|
50
|
+
export * from "./utils";
|
|
51
|
+
// Adapter creation
|
|
52
|
+
export * from "./stream-accumulator"; // AdapterDelta, StreamAccumulator
|
|
53
|
+
export * from "./adapter"; // createAdapter factory
|
|
54
|
+
export * from "./adapter-helpers"; // Composable helpers for adapters
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AAExB,mBAAmB;AACnB,cAAc,sBAAsB,CAAC,CAAC,kCAAkC;AACxE,cAAc,WAAW,CAAC,CAAC,wBAAwB;AACnD,cAAc,mBAAmB,CAAC,CAAC,kCAAkC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Middleware } from "@agentick/kernel";
|
|
2
|
+
import type { COMInput } from "../com/types";
|
|
3
|
+
import type { EngineResponse } from "../engine/engine-response";
|
|
4
|
+
import { BaseHookRegistry } from "../hooks/base-hook-registry";
|
|
5
|
+
/**
|
|
6
|
+
* Model operation names.
|
|
7
|
+
*/
|
|
8
|
+
export type ModelHookName = "fromEngineState" | "generate" | "stream" | "toEngineState";
|
|
9
|
+
/**
|
|
10
|
+
* Model selector for hook registration.
|
|
11
|
+
* For now, we only support global hooks (all models).
|
|
12
|
+
* Future: Could support model-specific hooks by model ID or type.
|
|
13
|
+
*/
|
|
14
|
+
export type ModelSelector = undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Hook middleware type for model operations.
|
|
17
|
+
*/
|
|
18
|
+
export type ModelHookMiddleware<T extends ModelHookName> = Middleware<ModelHookArgs<T>>;
|
|
19
|
+
/**
|
|
20
|
+
* Arguments for each model hook.
|
|
21
|
+
*/
|
|
22
|
+
export type ModelHookArgs<T extends ModelHookName> = T extends "fromEngineState" ? [input: COMInput] : T extends "generate" ? [input: unknown] : T extends "stream" ? [input: unknown] : T extends "toEngineState" ? [output: unknown] : never;
|
|
23
|
+
/**
|
|
24
|
+
* Return type for each model hook.
|
|
25
|
+
*/
|
|
26
|
+
export type ModelHookReturn<T extends ModelHookName> = T extends "fromEngineState" ? Promise<unknown> : T extends "generate" ? Promise<unknown> : T extends "stream" ? AsyncIterable<unknown> | Promise<AsyncIterable<unknown>> : T extends "toEngineState" ? Promise<EngineResponse> : never;
|
|
27
|
+
/**
|
|
28
|
+
* Model-specific hook registry.
|
|
29
|
+
* Uses BaseHookRegistry to reduce code duplication.
|
|
30
|
+
*
|
|
31
|
+
* Note: Global hooks via configureEngine() have been deprecated.
|
|
32
|
+
* Use Agentick.use() for middleware registration instead.
|
|
33
|
+
*/
|
|
34
|
+
export declare class ModelHookRegistry extends BaseHookRegistry<ModelHookName, ModelSelector, ModelHookMiddleware<ModelHookName>> {
|
|
35
|
+
protected getAllHookNames(): readonly ModelHookName[];
|
|
36
|
+
/**
|
|
37
|
+
* Get all middleware for a model hook.
|
|
38
|
+
* Returns instance-specific hooks only.
|
|
39
|
+
*
|
|
40
|
+
* Note: Global hooks via configureEngine() have been deprecated.
|
|
41
|
+
* Use Agentick.use() for middleware registration instead.
|
|
42
|
+
*/
|
|
43
|
+
getMiddleware<T extends ModelHookName>(hookName: T): ModelHookMiddleware<T>[];
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=model-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-hooks.d.ts","sourceRoot":"","sources":["../../src/model/model-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,UAAU,GAAG,QAAQ,GAAG,eAAe,CAAC;AAExF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC;AAEtC;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,aAAa,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAExF;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,iBAAiB,GAC5E,CAAC,KAAK,EAAE,QAAQ,CAAC,GACjB,CAAC,SAAS,UAAU,GAClB,CAAC,KAAK,EAAE,OAAO,CAAC,GAChB,CAAC,SAAS,QAAQ,GAChB,CAAC,KAAK,EAAE,OAAO,CAAC,GAChB,CAAC,SAAS,eAAe,GACvB,CAAC,MAAM,EAAE,OAAO,CAAC,GACjB,KAAK,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,iBAAiB,GAC9E,OAAO,CAAC,OAAO,CAAC,GAChB,CAAC,SAAS,UAAU,GAClB,OAAO,CAAC,OAAO,CAAC,GAChB,CAAC,SAAS,QAAQ,GAChB,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GACxD,CAAC,SAAS,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,GACvB,KAAK,CAAC;AAEhB;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,gBAAgB,CACrD,aAAa,EACb,aAAa,EACb,mBAAmB,CAAC,aAAa,CAAC,CACnC;IACC,SAAS,CAAC,eAAe,IAAI,SAAS,aAAa,EAAE;IAIrD;;;;;;OAMG;IACH,aAAa,CAAC,CAAC,SAAS,aAAa,EAAE,QAAQ,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,EAAE;CAM9E"}
|