veryfront 0.1.1239 → 0.1.1241
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/esm/cli/commands/build/command-help.d.ts.map +1 -1
- package/esm/cli/commands/build/command-help.js +4 -0
- package/esm/cli/commands/build/command.d.ts +3 -1
- package/esm/cli/commands/build/command.d.ts.map +1 -1
- package/esm/cli/commands/build/command.js +13 -5
- package/esm/cli/commands/build/handler.d.ts +17 -0
- package/esm/cli/commands/build/handler.d.ts.map +1 -1
- package/esm/cli/commands/build/handler.js +188 -9
- package/esm/cli/commands/generate/command.d.ts.map +1 -1
- package/esm/cli/commands/generate/command.js +40 -0
- package/esm/cli/commands/push/command.d.ts.map +1 -1
- package/esm/cli/commands/push/command.js +24 -16
- package/esm/cli/shared/ensure-content-processor.d.ts +16 -1
- package/esm/cli/shared/ensure-content-processor.d.ts.map +1 -1
- package/esm/cli/shared/ensure-content-processor.js +39 -5
- package/esm/cli/shared/project-creation.d.ts.map +1 -1
- package/esm/cli/shared/project-creation.js +29 -1
- package/esm/deno.d.ts +14 -5
- package/esm/deno.js +23 -7
- package/esm/extensions/ext-llm-openai/src/openai-chat-stream.d.ts.map +1 -1
- package/esm/extensions/ext-llm-openai/src/openai-chat-stream.js +16 -6
- package/esm/extensions/ext-llm-openai/src/openai-provider.d.ts.map +1 -1
- package/esm/extensions/ext-llm-openai/src/openai-provider.js +11 -2
- package/esm/extensions/ext-llm-openai/src/openai-reasoning-models.d.ts +2 -14
- package/esm/extensions/ext-llm-openai/src/openai-reasoning-models.d.ts.map +1 -1
- package/esm/extensions/ext-llm-openai/src/openai-reasoning-models.js +1 -72
- package/esm/extensions/ext-schema-zod/src/adapter.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/browser-aliases.d.ts +164 -0
- package/esm/src/agent/ag-ui/browser-aliases.d.ts.map +1 -0
- package/esm/src/agent/ag-ui/browser-aliases.js +68 -0
- package/esm/src/agent/ag-ui/chat-ui-chunk-encoder.d.ts +35 -0
- package/esm/src/agent/ag-ui/chat-ui-chunk-encoder.d.ts.map +1 -0
- package/esm/src/agent/ag-ui/{chat-ui-chunk-browser-encoder.js → chat-ui-chunk-encoder.js} +11 -11
- package/esm/src/agent/ag-ui/chunk-encoder-bridge.d.ts +8 -6
- package/esm/src/agent/ag-ui/chunk-encoder-bridge.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/chunk-encoder-bridge.js +5 -4
- package/esm/src/agent/ag-ui/chunk-encoder.d.ts +26 -0
- package/esm/src/agent/ag-ui/chunk-encoder.d.ts.map +1 -0
- package/esm/src/agent/ag-ui/{browser-chunk-encoder.js → chunk-encoder.js} +3 -2
- package/esm/src/agent/ag-ui/{browser-encoder.d.ts → encoder.d.ts} +33 -19
- package/esm/src/agent/ag-ui/encoder.d.ts.map +1 -0
- package/esm/src/agent/ag-ui/{browser-encoder.js → encoder.js} +81 -27
- package/esm/src/agent/ag-ui/finalize-tracker.d.ts +15 -0
- package/esm/src/agent/ag-ui/finalize-tracker.d.ts.map +1 -0
- package/esm/src/agent/ag-ui/{browser-finalize-tracker.js → finalize-tracker.js} +4 -4
- package/esm/src/agent/ag-ui/response-stream.d.ts +36 -0
- package/esm/src/agent/ag-ui/response-stream.d.ts.map +1 -0
- package/esm/src/agent/ag-ui/{browser-response-stream.js → response-stream.js} +6 -3
- package/esm/src/agent/ag-ui/runtime-chat-stream-encoder.d.ts +1 -1
- package/esm/src/agent/ag-ui/runtime-chat-stream-encoder.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/runtime-event-encoder.d.ts +7 -7
- package/esm/src/agent/ag-ui/runtime-event-encoder.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/runtime-event-encoder.js +4 -4
- package/esm/src/agent/ag-ui/runtime-response.d.ts +20 -0
- package/esm/src/agent/ag-ui/runtime-response.d.ts.map +1 -0
- package/esm/src/agent/ag-ui/runtime-response.js +16 -0
- package/esm/src/agent/ag-ui/sse-parser.d.ts +1 -1
- package/esm/src/agent/ag-ui/sse-parser.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/sse-parser.js +3 -3
- package/esm/src/agent/ag-ui/tracked-response.d.ts +11 -0
- package/esm/src/agent/ag-ui/tracked-response.d.ts.map +1 -0
- package/esm/src/agent/ag-ui/{tracked-browser-response.js → tracked-response.js} +6 -4
- package/esm/src/agent/conversation/hosted-lifecycle.d.ts.map +1 -1
- package/esm/src/agent/conversation/hosted-lifecycle.js +2 -1
- package/esm/src/agent/conversation/lifecycle-run-event-adapter.d.ts.map +1 -1
- package/esm/src/agent/conversation/lifecycle-run-event-adapter.js +2 -0
- package/esm/src/agent/conversation/private-run-event.d.ts.map +1 -1
- package/esm/src/agent/conversation/private-run-event.js +174 -3
- package/esm/src/agent/conversation/run-chunk-mirror.d.ts +2 -0
- package/esm/src/agent/conversation/run-chunk-mirror.d.ts.map +1 -1
- package/esm/src/agent/conversation/run-chunk-mirror.js +13 -6
- package/esm/src/agent/conversation/run-events.d.ts +8 -0
- package/esm/src/agent/conversation/run-events.d.ts.map +1 -1
- package/esm/src/agent/conversation/run-events.js +54 -4
- package/esm/src/agent/conversation/run-stream-mirror.d.ts.map +1 -1
- package/esm/src/agent/conversation/run-stream-mirror.js +5 -2
- package/esm/src/agent/hosted/durable-run-event-sink.d.ts +2 -1
- package/esm/src/agent/hosted/durable-run-event-sink.d.ts.map +1 -1
- package/esm/src/agent/hosted/durable-run-event-sink.js +9 -7
- package/esm/src/agent/hosted/prepared-chat-execution.js +2 -2
- package/esm/src/agent/index.d.ts +9 -8
- package/esm/src/agent/index.d.ts.map +1 -1
- package/esm/src/agent/index.js +9 -8
- package/esm/src/agent/memory/memory.d.ts.map +1 -1
- package/esm/src/agent/memory/memory.js +7 -6
- package/esm/src/agent/react/use-chat/types.d.ts +2 -0
- package/esm/src/agent/react/use-chat/types.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/use-chat.js +3 -2
- package/esm/src/agent/runtime/ag-ui-contract.d.ts +2 -2
- package/esm/src/agent/runtime/ag-ui-contract.d.ts.map +1 -1
- package/esm/src/agent/runtime/ag-ui-contract.js +2 -2
- package/esm/src/agent/runtime/chat-stream-handler.d.ts.map +1 -1
- package/esm/src/agent/runtime/chat-stream-handler.js +34 -4
- package/esm/src/agent/runtime/index.d.ts.map +1 -1
- package/esm/src/agent/runtime/index.js +15 -6
- package/esm/src/agent/streaming/data-stream.d.ts +1 -1
- package/esm/src/agent/streaming/data-stream.d.ts.map +1 -1
- package/esm/src/agent/streaming/fork-runtime-part-mapper.d.ts +1 -1
- package/esm/src/agent/streaming/fork-runtime-part-mapper.d.ts.map +1 -1
- package/esm/src/agent/streaming/lifecycle/live-adapter.d.ts.map +1 -1
- package/esm/src/agent/streaming/lifecycle/live-adapter.js +2 -0
- package/esm/src/agent/streaming/lifecycle/reducer.d.ts.map +1 -1
- package/esm/src/agent/streaming/lifecycle/reducer.js +7 -0
- package/esm/src/agent/streaming/lifecycle/runtime-provider-adapter.js +4 -0
- package/esm/src/build/production-build/templates.d.ts.map +1 -1
- package/esm/src/build/production-build/templates.js +1 -1
- package/esm/src/cache/request-cache-batcher.d.ts +1 -0
- package/esm/src/cache/request-cache-batcher.d.ts.map +1 -1
- package/esm/src/cache/request-cache-batcher.js +21 -7
- package/esm/src/chat/ag-ui.d.ts +1 -1
- package/esm/src/chat/index.d.ts +2 -2
- package/esm/src/chat/index.d.ts.map +1 -1
- package/esm/src/chat/index.js +1 -1
- package/esm/src/config/config-shim.d.ts +1 -1
- package/esm/src/config/config-shim.d.ts.map +1 -1
- package/esm/src/config/config-shim.js +1 -1
- package/esm/src/config/declarative-evaluator-worker-protocol.d.ts.map +1 -1
- package/esm/src/config/env.js +1 -1
- package/esm/src/config/environment-config.js +1 -1
- package/esm/src/config/loader.d.ts.map +1 -1
- package/esm/src/config/loader.js +4 -4
- package/esm/src/config/schemas/config.schema.d.ts +20 -0
- package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
- package/esm/src/config/schemas/config.schema.js +27 -0
- package/esm/src/config/server-external-packages.d.ts +11 -0
- package/esm/src/config/server-external-packages.d.ts.map +1 -0
- package/esm/src/config/server-external-packages.js +53 -0
- package/esm/src/data/data-fetcher.d.ts.map +1 -1
- package/esm/src/data/data-fetcher.js +9 -4
- package/esm/src/data/data-result-validation.d.ts +5 -0
- package/esm/src/data/data-result-validation.d.ts.map +1 -0
- package/esm/src/data/data-result-validation.js +56 -0
- package/esm/src/data/helpers.d.ts +5 -5
- package/esm/src/data/helpers.d.ts.map +1 -1
- package/esm/src/data/helpers.js +22 -68
- package/esm/src/data/index.d.ts +1 -1
- package/esm/src/data/index.d.ts.map +1 -1
- package/esm/src/data/response-metadata.d.ts +23 -0
- package/esm/src/data/response-metadata.d.ts.map +1 -0
- package/esm/src/data/response-metadata.js +311 -0
- package/esm/src/data/schemas/data.schema.d.ts +95 -6
- package/esm/src/data/schemas/data.schema.d.ts.map +1 -1
- package/esm/src/data/schemas/data.schema.js +57 -3
- package/esm/src/data/schemas/index.d.ts +1 -1
- package/esm/src/data/schemas/index.d.ts.map +1 -1
- package/esm/src/data/schemas/index.js +1 -1
- package/esm/src/data/server-data-fetcher.d.ts.map +1 -1
- package/esm/src/data/server-data-fetcher.js +5 -5
- package/esm/src/data/static-data-fetcher.d.ts +2 -2
- package/esm/src/data/static-data-fetcher.d.ts.map +1 -1
- package/esm/src/data/static-data-fetcher.js +6 -3
- package/esm/src/data/types.d.ts +1 -1
- package/esm/src/data/types.d.ts.map +1 -1
- package/esm/src/discovery/discovery-engine.d.ts.map +1 -1
- package/esm/src/discovery/discovery-engine.js +81 -26
- package/esm/src/discovery/handlers/task-handler.d.ts +1 -1
- package/esm/src/discovery/handlers/task-handler.d.ts.map +1 -1
- package/esm/src/discovery/handlers/task-handler.js +6 -3
- package/esm/src/discovery/types.d.ts +6 -4
- package/esm/src/discovery/types.d.ts.map +1 -1
- package/esm/src/errors/error-registry/runtime.d.ts +2 -0
- package/esm/src/errors/error-registry/runtime.d.ts.map +1 -1
- package/esm/src/errors/error-registry/runtime.js +8 -0
- package/esm/src/errors/error-registry.d.ts +1 -0
- package/esm/src/errors/error-registry.d.ts.map +1 -1
- package/esm/src/errors/index.d.ts +1 -1
- package/esm/src/errors/index.d.ts.map +1 -1
- package/esm/src/errors/index.js +1 -1
- package/esm/src/errors/user-friendly/error-wrapper.js +1 -1
- package/esm/src/errors/veryfront-error.d.ts.map +1 -1
- package/esm/src/extensions/index.d.ts +2 -0
- package/esm/src/extensions/index.d.ts.map +1 -1
- package/esm/src/extensions/index.js +1 -0
- package/esm/src/extensions/parser/code-parser.d.ts +9 -0
- package/esm/src/extensions/parser/code-parser.d.ts.map +1 -1
- package/esm/src/extensions/parser/defaults.d.ts +5 -0
- package/esm/src/extensions/parser/defaults.d.ts.map +1 -1
- package/esm/src/extensions/parser/defaults.js +23 -11
- package/esm/src/fs/index.d.ts +50 -1
- package/esm/src/fs/index.d.ts.map +1 -1
- package/esm/src/fs/index.js +50 -1
- package/esm/src/html/html-injection.d.ts +2 -0
- package/esm/src/html/html-injection.d.ts.map +1 -1
- package/esm/src/html/html-injection.js +4 -1
- package/esm/src/html/html-shell-generator.d.ts.map +1 -1
- package/esm/src/html/html-shell-generator.js +11 -3
- package/esm/src/html/hydration-script-builder/hydration-runtime.generated.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/hydration-runtime.generated.js +1 -1
- package/esm/src/html/hydration-script-builder/prod-runtime-selection.d.ts +23 -0
- package/esm/src/html/hydration-script-builder/prod-runtime-selection.d.ts.map +1 -0
- package/esm/src/html/hydration-script-builder/prod-runtime-selection.js +55 -0
- package/esm/src/html/hydration-script-builder/prod-scripts.d.ts +2 -0
- package/esm/src/html/hydration-script-builder/prod-scripts.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/prod-scripts.js +12 -3
- package/esm/src/html/schemas/html.schema.d.ts +2 -0
- package/esm/src/html/schemas/html.schema.d.ts.map +1 -1
- package/esm/src/html/schemas/html.schema.js +2 -0
- package/esm/src/html/styles-builder/css-hash-cache.d.ts +1 -1
- package/esm/src/html/styles-builder/css-hash-cache.d.ts.map +1 -1
- package/esm/src/html/styles-builder/css-hash-cache.js +1 -1
- package/esm/src/index.client.d.ts +2 -2
- package/esm/src/index.client.d.ts.map +1 -1
- package/esm/src/index.client.js +3 -1
- package/esm/src/index.d.ts +1 -1
- package/esm/src/index.d.ts.map +1 -1
- package/esm/src/internal-agents/ag-ui-sse.d.ts +7 -7
- package/esm/src/internal-agents/ag-ui-sse.d.ts.map +1 -1
- package/esm/src/internal-agents/ag-ui-sse.js +17 -9
- package/esm/src/internal-agents/control-plane-auth.js +1 -1
- package/esm/src/internal-agents/run-stream.d.ts.map +1 -1
- package/esm/src/internal-agents/run-stream.js +15 -9
- package/esm/src/modules/import-map/loader.d.ts.map +1 -1
- package/esm/src/modules/import-map/loader.js +2 -2
- package/esm/src/modules/import-map/merger.js +2 -2
- package/esm/src/modules/import-map/preloader.js +2 -2
- package/esm/src/modules/react-loader/component-loader.d.ts.map +1 -1
- package/esm/src/modules/react-loader/component-loader.js +2 -0
- package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts +1 -1
- package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts.map +1 -1
- package/esm/src/modules/react-loader/ssr-module-loader/loader.js +3 -2
- package/esm/src/modules/react-loader/ssr-module-loader/ssr-cache-manager.d.ts.map +1 -1
- package/esm/src/modules/react-loader/ssr-module-loader/ssr-cache-manager.js +7 -1
- package/esm/src/modules/react-loader/ssr-module-loader/types.d.ts +2 -0
- package/esm/src/modules/react-loader/ssr-module-loader/types.d.ts.map +1 -1
- package/esm/src/modules/react-loader/transformed-module-coordinator.d.ts.map +1 -1
- package/esm/src/modules/react-loader/transformed-module-coordinator.js +2 -1
- package/esm/src/modules/react-loader/types.d.ts +2 -0
- package/esm/src/modules/react-loader/types.d.ts.map +1 -1
- package/esm/src/modules/server/module-response-cache.d.ts +1 -0
- package/esm/src/modules/server/module-response-cache.d.ts.map +1 -1
- package/esm/src/modules/server/module-response-cache.js +5 -0
- package/esm/src/modules/server/module-server.d.ts.map +1 -1
- package/esm/src/modules/server/module-server.js +4 -0
- package/esm/src/modules/server/module-transform.d.ts.map +1 -1
- package/esm/src/modules/server/module-transform.js +2 -0
- package/esm/src/observability/metrics/config.js +1 -1
- package/esm/src/observability/request-profiler.js +1 -1
- package/esm/src/observability/telemetry-error.js +2 -2
- package/esm/src/observability/tracing/telemetry-env.js +1 -1
- package/esm/src/platform/adapters/fs/cache/file-cache.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/cache/file-cache.js +5 -0
- package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts +39 -0
- package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/adapter.js +209 -40
- package/esm/src/platform/adapters/fs/veryfront/file-list-index.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/file-list-index.js +0 -14
- package/esm/src/platform/adapters/fs/veryfront/read-operations-helpers.d.ts +0 -1
- package/esm/src/platform/adapters/fs/veryfront/read-operations-helpers.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/read-operations-helpers.js +0 -3
- package/esm/src/platform/adapters/fs/veryfront/read-operations.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/read-operations.js +1 -4
- package/esm/src/platform/adapters/fs/veryfront/request-context.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/request-context.js +4 -0
- package/esm/src/platform/adapters/fs/veryfront/stat-operations.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/stat-operations.js +9 -1
- package/esm/src/platform/adapters/fs/veryfront/websocket-manager-helpers.js +1 -1
- package/esm/src/platform/adapters/fs/veryfront/websocket-manager.d.ts +2 -1
- package/esm/src/platform/adapters/fs/veryfront/websocket-manager.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/websocket-manager.js +97 -66
- package/esm/src/platform/compat/dns.d.ts +10 -0
- package/esm/src/platform/compat/dns.d.ts.map +1 -1
- package/esm/src/platform/compat/dns.js +50 -0
- package/esm/src/platform/compat/http/pinned-fetch.d.ts +1 -1
- package/esm/src/platform/compat/process/lifecycle.d.ts +10 -0
- package/esm/src/platform/compat/process/lifecycle.d.ts.map +1 -1
- package/esm/src/platform/compat/process/lifecycle.js +23 -0
- package/esm/src/platform/compat/process.d.ts +1 -1
- package/esm/src/platform/compat/process.d.ts.map +1 -1
- package/esm/src/platform/compat/process.js +1 -1
- package/esm/src/platform/compat/proxy-topology.js +1 -1
- package/esm/src/platform/request-context-access.d.ts +24 -0
- package/esm/src/platform/request-context-access.d.ts.map +1 -0
- package/esm/src/platform/request-context-access.js +26 -0
- package/esm/src/provider/shared/openai-reasoning.d.ts +16 -0
- package/esm/src/provider/shared/openai-reasoning.d.ts.map +1 -0
- package/esm/src/provider/shared/openai-reasoning.js +73 -0
- package/esm/src/provider/types.d.ts +2 -0
- package/esm/src/provider/types.d.ts.map +1 -1
- package/esm/src/provider/veryfront-cloud/provider.d.ts.map +1 -1
- package/esm/src/provider/veryfront-cloud/provider.js +45 -18
- package/esm/src/proxy/handler.d.ts +1 -0
- package/esm/src/proxy/handler.d.ts.map +1 -1
- package/esm/src/proxy/handler.js +17 -4
- package/esm/src/proxy/proxy-error-context.d.ts +1 -0
- package/esm/src/proxy/proxy-error-context.d.ts.map +1 -1
- package/esm/src/proxy/proxy-error-context.js +1 -0
- package/esm/src/proxy/request-host.d.ts +3 -0
- package/esm/src/proxy/request-host.d.ts.map +1 -1
- package/esm/src/proxy/request-host.js +28 -8
- package/esm/src/proxy/routing-invalidation-redis.d.ts.map +1 -1
- package/esm/src/proxy/routing-invalidation-redis.js +38 -4
- package/esm/src/react/components/chat/chat/components/attachments-panel.d.ts +27 -3
- package/esm/src/react/components/chat/chat/components/attachments-panel.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/attachments-panel.js +29 -7
- package/esm/src/react/components/chat/chat/components/sidebar.d.ts +15 -6
- package/esm/src/react/components/chat/chat/components/sidebar.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/sidebar.js +37 -4
- package/esm/src/react/components/chat/chat/components/sidebar.types.d.ts +12 -1
- package/esm/src/react/components/chat/chat/components/sidebar.types.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/chat-composer.d.ts +3 -1
- package/esm/src/react/components/chat/chat/composition/chat-composer.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/chat-composer.js +17 -6
- package/esm/src/react/components/chat/chat/composition/chat-composer.types.d.ts +12 -5
- package/esm/src/react/components/chat/chat/composition/chat-composer.types.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/chat-root.d.ts +18 -5
- package/esm/src/react/components/chat/chat/composition/chat-root.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/chat-root.js +65 -1
- package/esm/src/react/components/chat/chat/composition/use-composer-value.d.ts +6 -3
- package/esm/src/react/components/chat/chat/composition/use-composer-value.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/use-composer-value.js +56 -5
- package/esm/src/react/components/chat/chat/contexts/chat-context.d.ts +7 -1
- package/esm/src/react/components/chat/chat/contexts/chat-context.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/contexts/conversations-context.d.ts +14 -4
- package/esm/src/react/components/chat/chat/contexts/conversations-context.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/contexts/conversations-context.js +10 -1
- package/esm/src/react/components/chat/chat/index.d.ts +1 -1
- package/esm/src/react/components/chat/chat/index.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/persistence/conversation-codec.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat.d.ts +1 -1
- package/esm/src/react/components/chat/chat.d.ts.map +1 -1
- package/esm/src/react/server-render-context.d.ts.map +1 -1
- package/esm/src/release-assets/dependency-artifact-builder.d.ts.map +1 -1
- package/esm/src/rendering/app-reserved.d.ts +2 -2
- package/esm/src/rendering/app-reserved.d.ts.map +1 -1
- package/esm/src/rendering/app-reserved.js +4 -3
- package/esm/src/rendering/cache/cache-coordinator.d.ts.map +1 -1
- package/esm/src/rendering/cache/cache-coordinator.js +1 -0
- package/esm/src/rendering/cache/cache-payload.d.ts.map +1 -1
- package/esm/src/rendering/cache/cache-payload.js +44 -0
- package/esm/src/rendering/component-handling.d.ts +4 -1
- package/esm/src/rendering/component-handling.d.ts.map +1 -1
- package/esm/src/rendering/component-handling.js +13 -6
- package/esm/src/rendering/layouts/layout-applicator.d.ts.map +1 -1
- package/esm/src/rendering/layouts/layout-applicator.js +3 -1
- package/esm/src/rendering/layouts/layout-collector.d.ts +1 -0
- package/esm/src/rendering/layouts/layout-collector.d.ts.map +1 -1
- package/esm/src/rendering/layouts/layout-collector.js +201 -4
- package/esm/src/rendering/layouts/utils/applicator.d.ts +1 -1
- package/esm/src/rendering/layouts/utils/applicator.d.ts.map +1 -1
- package/esm/src/rendering/layouts/utils/applicator.js +3 -3
- package/esm/src/rendering/layouts/utils/component-loader.d.ts +2 -2
- package/esm/src/rendering/layouts/utils/component-loader.d.ts.map +1 -1
- package/esm/src/rendering/layouts/utils/component-loader.js +12 -4
- package/esm/src/rendering/orchestrator/file-resolver/index.d.ts +3 -1
- package/esm/src/rendering/orchestrator/file-resolver/index.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/file-resolver/index.js +13 -5
- package/esm/src/rendering/orchestrator/html.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/html.js +26 -10
- package/esm/src/rendering/orchestrator/layout.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/layout.js +2 -2
- package/esm/src/rendering/orchestrator/module-loader/dependency-resolver.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/module-loader/dependency-resolver.js +20 -2
- package/esm/src/rendering/orchestrator/module-loader/index.d.ts +2 -0
- package/esm/src/rendering/orchestrator/module-loader/index.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/module-loader/index.js +6 -3
- package/esm/src/rendering/orchestrator/module-loader/module-cache-lookup.d.ts +3 -2
- package/esm/src/rendering/orchestrator/module-loader/module-cache-lookup.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/module-loader/module-cache-lookup.js +6 -6
- package/esm/src/rendering/orchestrator/module-loader/module-persistence.d.ts +1 -0
- package/esm/src/rendering/orchestrator/module-loader/module-persistence.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/module-loader/module-persistence.js +2 -2
- package/esm/src/rendering/orchestrator/module-loader/module-transform-cache.d.ts +2 -0
- package/esm/src/rendering/orchestrator/module-loader/module-transform-cache.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/module-loader/module-transform-cache.js +7 -1
- package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/pipeline.js +58 -10
- package/esm/src/rendering/orchestrator/render-result-assembly.d.ts +3 -0
- package/esm/src/rendering/orchestrator/render-result-assembly.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/render-result-assembly.js +3 -1
- package/esm/src/rendering/page-renderer.d.ts +2 -0
- package/esm/src/rendering/page-renderer.d.ts.map +1 -1
- package/esm/src/rendering/page-renderer.js +4 -1
- package/esm/src/rendering/page-rendering.d.ts +2 -0
- package/esm/src/rendering/page-rendering.d.ts.map +1 -1
- package/esm/src/rendering/page-rendering.js +1 -0
- package/esm/src/rendering/renderer.d.ts.map +1 -1
- package/esm/src/rendering/renderer.js +31 -1
- package/esm/src/rendering/script-page-handling.d.ts +2 -0
- package/esm/src/rendering/script-page-handling.d.ts.map +1 -1
- package/esm/src/rendering/script-page-handling.js +17 -1
- package/esm/src/rendering/shared/context-aware-cache.d.ts.map +1 -1
- package/esm/src/rendering/shared/context-aware-cache.js +3 -0
- package/esm/src/rendering/snippet-renderer.d.ts +10 -0
- package/esm/src/rendering/snippet-renderer.d.ts.map +1 -1
- package/esm/src/rendering/snippet-renderer.js +40 -18
- package/esm/src/rendering/ssr/component-registry.d.ts +1 -1
- package/esm/src/rendering/ssr/component-registry.d.ts.map +1 -1
- package/esm/src/rendering/ssr/component-registry.js +13 -6
- package/esm/src/rendering/ssr-outcome.d.ts +4 -3
- package/esm/src/rendering/ssr-outcome.d.ts.map +1 -1
- package/esm/src/rendering/ssr-outcome.js +25 -8
- package/esm/src/routing/api/handler.d.ts +1 -1
- package/esm/src/routing/api/handler.d.ts.map +1 -1
- package/esm/src/routing/api/handler.js +6 -1
- package/esm/src/runtime/model-call-context.d.ts +37 -2
- package/esm/src/runtime/model-call-context.d.ts.map +1 -1
- package/esm/src/runtime/model-call-context.js +42 -1
- package/esm/src/runtime/runtime-bridge.d.ts.map +1 -1
- package/esm/src/runtime/runtime-bridge.js +108 -8
- package/esm/src/sandbox/shell-tools.d.ts.map +1 -1
- package/esm/src/sandbox/shell-tools.js +16 -6
- package/esm/src/schedule/validation.d.ts +9 -1
- package/esm/src/schedule/validation.d.ts.map +1 -1
- package/esm/src/schedule/validation.js +167 -80
- package/esm/src/schemas/json-value.d.ts.map +1 -1
- package/esm/src/schemas/json-value.js +81 -37
- package/esm/src/security/http/base-handler.js +1 -1
- package/esm/src/security/sandbox/project-worker.d.ts +1 -0
- package/esm/src/security/sandbox/project-worker.d.ts.map +1 -1
- package/esm/src/security/sandbox/project-worker.js +6 -0
- package/esm/src/security/sandbox/worker-read-scope.d.ts +20 -0
- package/esm/src/security/sandbox/worker-read-scope.d.ts.map +1 -0
- package/esm/src/security/sandbox/worker-read-scope.js +127 -0
- package/esm/src/security/sandbox/worker-types.d.ts +12 -0
- package/esm/src/security/sandbox/worker-types.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/dashboard/api.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/dashboard/api.js +70 -3
- package/esm/src/server/handlers/dev/files/esbuild-plugins.d.ts +5 -0
- package/esm/src/server/handlers/dev/files/esbuild-plugins.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/files/esbuild-plugins.js +61 -3
- package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/framework-candidates.generated.js +227 -29
- package/esm/src/server/handlers/request/api/pages-api-handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/api/pages-api-handler.js +20 -2
- package/esm/src/server/handlers/request/module/page-data-endpoint-handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/module/page-data-endpoint-handler.js +32 -15
- package/esm/src/server/handlers/request/prod-hydration-module.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/prod-hydration-module.handler.js +10 -3
- package/esm/src/server/handlers/request/project-run-execute.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/project-run-execute.handler.js +1 -0
- package/esm/src/server/handlers/request/snippet.handler.d.ts +6 -0
- package/esm/src/server/handlers/request/snippet.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/snippet.handler.js +8 -1
- package/esm/src/server/handlers/request/ssr/error-page-fallback.js +1 -0
- package/esm/src/server/handlers/request/ssr/ssr-response-builder.d.ts.map +1 -1
- package/esm/src/server/handlers/request/ssr/ssr-response-builder.js +10 -6
- package/esm/src/server/handlers/request/ssr/ssr.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/ssr/ssr.handler.js +22 -10
- package/esm/src/server/handlers/request/static.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/static.handler.js +1 -0
- package/esm/src/server/runtime-handler/handler-context-builder.d.ts +2 -0
- package/esm/src/server/runtime-handler/handler-context-builder.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/handler-context-builder.js +1 -0
- package/esm/src/server/runtime-handler/project-runtime-context.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/project-runtime-context.js +6 -2
- package/esm/src/server/runtime-handler/request-tracker.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/request-tracker.js +10 -3
- package/esm/src/server/services/rendering/ssr.service.d.ts +5 -0
- package/esm/src/server/services/rendering/ssr.service.d.ts.map +1 -1
- package/esm/src/server/services/rendering/ssr.service.js +71 -16
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.d.ts.map +1 -1
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +2 -2
- package/esm/src/server/services/rsc/orchestrators/handler.d.ts.map +1 -1
- package/esm/src/server/services/rsc/orchestrators/handler.js +1 -0
- package/esm/src/server/services/rsc/orchestrators/render-handler.d.ts +1 -0
- package/esm/src/server/services/rsc/orchestrators/render-handler.d.ts.map +1 -1
- package/esm/src/server/services/rsc/orchestrators/render-handler.js +2 -0
- package/esm/src/server/services/static/static-file.service.d.ts +4 -1
- package/esm/src/server/services/static/static-file.service.d.ts.map +1 -1
- package/esm/src/server/services/static/static-file.service.js +48 -22
- package/esm/src/server/shared/browser-module-bundler.d.ts.map +1 -1
- package/esm/src/server/shared/browser-module-bundler.js +10 -0
- package/esm/src/server/utils/request-host.d.ts +6 -0
- package/esm/src/server/utils/request-host.d.ts.map +1 -1
- package/esm/src/server/utils/request-host.js +42 -1
- package/esm/src/skill/tools.d.ts.map +1 -1
- package/esm/src/task/definition-snapshot.d.ts +8 -0
- package/esm/src/task/definition-snapshot.d.ts.map +1 -0
- package/esm/src/task/definition-snapshot.js +154 -0
- package/esm/src/task/discovery.d.ts.map +1 -1
- package/esm/src/task/discovery.js +47 -21
- package/esm/src/task/types.d.ts +3 -0
- package/esm/src/task/types.d.ts.map +1 -1
- package/esm/src/task/types.js +7 -16
- package/esm/src/tool/remote-mcp.d.ts.map +1 -1
- package/esm/src/tool/remote-mcp.js +86 -5
- package/esm/src/transforms/esm/bundle-recovery.d.ts.map +1 -1
- package/esm/src/transforms/esm/bundle-recovery.js +1 -0
- package/esm/src/transforms/esm/http-cache-helpers.d.ts +3 -1
- package/esm/src/transforms/esm/http-cache-helpers.d.ts.map +1 -1
- package/esm/src/transforms/esm/http-cache-helpers.js +18 -2
- package/esm/src/transforms/esm/http-cache-wrapper.d.ts.map +1 -1
- package/esm/src/transforms/esm/http-cache-wrapper.js +23 -0
- package/esm/src/transforms/esm/specifier-resolver.d.ts.map +1 -1
- package/esm/src/transforms/esm/specifier-resolver.js +2 -1
- package/esm/src/transforms/esm/types.d.ts +2 -0
- package/esm/src/transforms/esm/types.d.ts.map +1 -1
- package/esm/src/transforms/import-rewriter/commonjs-policy.d.ts +22 -0
- package/esm/src/transforms/import-rewriter/commonjs-policy.d.ts.map +1 -0
- package/esm/src/transforms/import-rewriter/commonjs-policy.js +75 -0
- package/esm/src/transforms/import-rewriter/core.d.ts.map +1 -1
- package/esm/src/transforms/import-rewriter/core.js +29 -1
- package/esm/src/transforms/import-rewriter/ssr-adapter.d.ts +2 -0
- package/esm/src/transforms/import-rewriter/ssr-adapter.d.ts.map +1 -1
- package/esm/src/transforms/import-rewriter/ssr-adapter.js +79 -10
- package/esm/src/transforms/import-rewriter/strategies/bare-strategy.d.ts.map +1 -1
- package/esm/src/transforms/import-rewriter/strategies/bare-strategy.js +14 -4
- package/esm/src/transforms/import-rewriter/types.d.ts +2 -0
- package/esm/src/transforms/import-rewriter/types.d.ts.map +1 -1
- package/esm/src/transforms/import-rewriter/url-builder.d.ts +2 -19
- package/esm/src/transforms/import-rewriter/url-builder.d.ts.map +1 -1
- package/esm/src/transforms/import-rewriter/url-builder.js +2 -67
- package/esm/src/transforms/mdx/esm-module-loader/import-transformer.d.ts +3 -2
- package/esm/src/transforms/mdx/esm-module-loader/import-transformer.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/import-transformer.js +39 -8
- package/esm/src/transforms/mdx/esm-module-loader/jsx/runtime-loader.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/jsx/runtime-loader.js +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/loader-helpers.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/loader-helpers.js +1 -0
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/cache-keys.d.ts +3 -3
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/cache-keys.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/cache-keys.js +14 -6
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/distributed-cache.d.ts +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/distributed-cache.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/distributed-cache.js +2 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.d.ts +1 -0
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.js +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts +1 -0
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.js +6 -3
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/module-cache.d.ts +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/module-cache.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/module-cache.js +2 -2
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/persistence.d.ts +1 -0
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/persistence.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/persistence.js +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/source-transform.d.ts +1 -0
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/source-transform.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/source-transform.js +2 -0
- package/esm/src/transforms/mdx/esm-module-loader/module-writer.d.ts +2 -2
- package/esm/src/transforms/mdx/esm-module-loader/module-writer.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-writer.js +15 -7
- package/esm/src/transforms/mdx/esm-module-loader/types.d.ts +4 -0
- package/esm/src/transforms/mdx/esm-module-loader/types.d.ts.map +1 -1
- package/esm/src/transforms/mdx/index.d.ts +1 -0
- package/esm/src/transforms/mdx/index.d.ts.map +1 -1
- package/esm/src/transforms/mdx/index.js +2 -1
- package/esm/src/transforms/pipeline/cache-identity.d.ts +1 -0
- package/esm/src/transforms/pipeline/cache-identity.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/cache-identity.js +15 -0
- package/esm/src/transforms/pipeline/context.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/context.js +2 -0
- package/esm/src/transforms/pipeline/index.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/index.js +1 -0
- package/esm/src/transforms/pipeline/stages/resolve-imports.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/stages/resolve-imports.js +1 -0
- package/esm/src/transforms/pipeline/stages/ssr-http-cache.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/stages/ssr-http-cache.js +1 -0
- package/esm/src/transforms/pipeline/types.d.ts +4 -0
- package/esm/src/transforms/pipeline/types.d.ts.map +1 -1
- package/esm/src/transforms/shared/esm-sh-specifier.d.ts +18 -0
- package/esm/src/transforms/shared/esm-sh-specifier.d.ts.map +1 -0
- package/esm/src/transforms/shared/esm-sh-specifier.js +253 -0
- package/esm/src/transforms/shared/package-specifier.d.ts.map +1 -1
- package/esm/src/transforms/shared/package-specifier.js +9 -2
- package/esm/src/transforms/shared/server-only-packages.d.ts +25 -1
- package/esm/src/transforms/shared/server-only-packages.d.ts.map +1 -1
- package/esm/src/transforms/shared/server-only-packages.js +176 -4
- package/esm/src/types/entities/getEntityInfo.d.ts.map +1 -1
- package/esm/src/types/index.d.ts +5 -0
- package/esm/src/types/index.d.ts.map +1 -1
- package/esm/src/types/server.d.ts +6 -0
- package/esm/src/types/server.d.ts.map +1 -1
- package/esm/src/utils/env-loader.d.ts.map +1 -1
- package/esm/src/utils/env-loader.js +2 -1
- package/esm/src/utils/feature-flags.js +1 -1
- package/esm/src/utils/lru-wrapper.js +2 -2
- package/esm/src/utils/memory/profiler.d.ts +20 -0
- package/esm/src/utils/memory/profiler.d.ts.map +1 -1
- package/esm/src/utils/memory/profiler.js +43 -5
- package/esm/src/utils/perf-timer.js +1 -1
- package/esm/src/utils/redirect-policy.d.ts +18 -0
- package/esm/src/utils/redirect-policy.d.ts.map +1 -0
- package/esm/src/utils/redirect-policy.js +92 -0
- package/esm/src/utils/redis-client.d.ts.map +1 -1
- package/esm/src/utils/redis-client.js +6 -3
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/esm/src/workflow/claude-code/tool.d.ts +27 -27
- package/esm/src/workflow/claude-code/tool.d.ts.map +1 -1
- package/esm/src/workflow/claude-code/wire-protocol.d.ts.map +1 -1
- package/esm/src/workflow/dsl/workflow.d.ts +3 -0
- package/esm/src/workflow/dsl/workflow.d.ts.map +1 -1
- package/esm/src/workflow/dsl/workflow.js +2 -1
- package/esm/src/workflow/executor/workflow-definition-snapshot.d.ts.map +1 -1
- package/esm/src/workflow/executor/workflow-definition-snapshot.js +88 -39
- package/esm/src/workflow/registry.d.ts +4 -1
- package/esm/src/workflow/registry.d.ts.map +1 -1
- package/esm/src/workflow/registry.js +10 -8
- package/esm/src/workflow/types.d.ts +3 -0
- package/esm/src/workflow/types.d.ts.map +1 -1
- package/esm/templates/index.d.ts.map +1 -1
- package/esm/templates/index.js +7 -0
- package/esm/templates/manifest.generated.d.ts.map +1 -1
- package/esm/templates/manifest.generated.js +1 -1
- package/package.json +16 -9
- package/esm/src/agent/ag-ui/browser-chunk-encoder.d.ts +0 -24
- package/esm/src/agent/ag-ui/browser-chunk-encoder.d.ts.map +0 -1
- package/esm/src/agent/ag-ui/browser-encoder.d.ts.map +0 -1
- package/esm/src/agent/ag-ui/browser-finalize-tracker.d.ts +0 -15
- package/esm/src/agent/ag-ui/browser-finalize-tracker.d.ts.map +0 -1
- package/esm/src/agent/ag-ui/browser-response-stream.d.ts +0 -33
- package/esm/src/agent/ag-ui/browser-response-stream.d.ts.map +0 -1
- package/esm/src/agent/ag-ui/chat-ui-chunk-browser-encoder.d.ts +0 -35
- package/esm/src/agent/ag-ui/chat-ui-chunk-browser-encoder.d.ts.map +0 -1
- package/esm/src/agent/ag-ui/runtime-browser-response.d.ts +0 -20
- package/esm/src/agent/ag-ui/runtime-browser-response.d.ts.map +0 -1
- package/esm/src/agent/ag-ui/runtime-browser-response.js +0 -16
- package/esm/src/agent/ag-ui/tracked-browser-response.d.ts +0 -11
- package/esm/src/agent/ag-ui/tracked-browser-response.d.ts.map +0 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ChatMessageMetadata, ChatUiMessageChunk } from "../../chat/protocol.js";
|
|
2
|
+
import type { AgUiChunkEncoder } from "./chunk-encoder.js";
|
|
3
|
+
import { type AgUiEncoderStateOptions, type AgUiRunFinishedMetadata, type AgUiRuntimeStreamEvent } from "./encoder.js";
|
|
4
|
+
import { type CreateAgUiTrackedResponseInput } from "./tracked-response.js";
|
|
5
|
+
/** Public API contract for AG-UI chat UI chunk encoder. */
|
|
6
|
+
export type AgUiChatUiChunkEncoder = Pick<AgUiChunkEncoder<ChatUiMessageChunk<ChatMessageMetadata>>, "encode" | "finalize" | "timingState">;
|
|
7
|
+
/** Options accepted by create AG-UI chat UI chunk encoder. */
|
|
8
|
+
export interface CreateAgUiChatUiChunkEncoderOptions {
|
|
9
|
+
/**
|
|
10
|
+
* Timing clocks forwarded verbatim to the encoder state. A single object so
|
|
11
|
+
* that adding a clock is one edit in `AgUiEncoderStateOptions`, not a
|
|
12
|
+
* sweep through every wrapper that happens to sit in between.
|
|
13
|
+
*/
|
|
14
|
+
timing?: AgUiEncoderStateOptions;
|
|
15
|
+
modelId?: string;
|
|
16
|
+
resolveProvider?: (modelId: string) => string | undefined;
|
|
17
|
+
}
|
|
18
|
+
/** Input payload for create AG-UI chat UI tracked response. */
|
|
19
|
+
export interface CreateAgUiChatUiTrackedResponseInput extends Omit<CreateAgUiTrackedResponseInput<ChatUiMessageChunk<ChatMessageMetadata>>, "chunkEncoder" | "finalizeTracker"> {
|
|
20
|
+
modelId: string;
|
|
21
|
+
resolveProvider?: CreateAgUiChatUiChunkEncoderOptions["resolveProvider"];
|
|
22
|
+
}
|
|
23
|
+
/** Return AG-UI chat UI message metadata from chunk. */
|
|
24
|
+
export declare function getAgUiChatUiMessageMetadataFromChunk(chunk: ChatUiMessageChunk<ChatMessageMetadata>): ChatMessageMetadata | undefined;
|
|
25
|
+
/** Return AG-UI chat UI message usage metadata. */
|
|
26
|
+
export declare function getAgUiChatUiMessageUsageMetadata(messageMetadata: ChatMessageMetadata | undefined): Pick<AgUiRunFinishedMetadata, "inputTokens" | "outputTokens" | "totalTokens" | "cachedInputTokens" | "cacheCreationInputTokens" | "cacheReadInputTokens" | "reasoningTokens">;
|
|
27
|
+
/** Return AG-UI chat UI message chunk metadata. */
|
|
28
|
+
export declare function getAgUiChatUiMessageChunkMetadata(chunk: ChatUiMessageChunk<ChatMessageMetadata>, options?: Pick<CreateAgUiChatUiChunkEncoderOptions, "resolveProvider">): Partial<AgUiRunFinishedMetadata> | null;
|
|
29
|
+
/** Event emitted for normalize chat UI message chunk to AG-UI runtime. */
|
|
30
|
+
export declare function normalizeChatUiMessageChunkToAgUiRuntimeEvent(chunk: ChatUiMessageChunk<ChatMessageMetadata>): AgUiRuntimeStreamEvent;
|
|
31
|
+
/** Create AG-UI chat UI chunk encoder. */
|
|
32
|
+
export declare function createAgUiChatUiChunkEncoder(options?: CreateAgUiChatUiChunkEncoderOptions): AgUiChatUiChunkEncoder;
|
|
33
|
+
/** Response payload for create AG-UI chat UI tracked response. */
|
|
34
|
+
export declare function createAgUiChatUiTrackedResponse(input: CreateAgUiChatUiTrackedResponseInput): Response;
|
|
35
|
+
//# sourceMappingURL=chat-ui-chunk-encoder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-ui-chunk-encoder.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/chat-ui-chunk-encoder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,uBAAuB,CAAC;AAE/B,2DAA2D;AAC3D,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,gBAAgB,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,EACzD,QAAQ,GAAG,UAAU,GAAG,aAAa,CACtC,CAAC;AAEF,8DAA8D;AAC9D,MAAM,WAAW,mCAAmC;IAClD;;;;OAIG;IACH,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC3D;AAED,+DAA+D;AAC/D,MAAM,WAAW,oCAAqC,SACpD,IAAI,CACF,8BAA8B,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,EACvE,cAAc,GAAG,iBAAiB,CACnC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,mCAAmC,CAAC,iBAAiB,CAAC,CAAC;CAC1E;AAED,wDAAwD;AACxD,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,GAC7C,mBAAmB,GAAG,SAAS,CAUjC;AAED,mDAAmD;AACnD,wBAAgB,iCAAiC,CAC/C,eAAe,EAAE,mBAAmB,GAAG,SAAS,GAC/C,IAAI,CACL,uBAAuB,EACrB,aAAa,GACb,cAAc,GACd,aAAa,GACb,mBAAmB,GACnB,0BAA0B,GAC1B,sBAAsB,GACtB,iBAAiB,CACpB,CAmBA;AA6CD,mDAAmD;AACnD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,OAAO,GAAE,IAAI,CAAC,mCAAmC,EAAE,iBAAiB,CAAM,GACzE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAkFzC;AAED,0EAA0E;AAC1E,wBAAgB,6CAA6C,CAC3D,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,GAC7C,sBAAsB,CA+BxB;AAED,0CAA0C;AAC1C,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,mCAAwC,GAChD,sBAAsB,CAcxB;AAED,kEAAkE;AAClE,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,oCAAoC,GAC1C,QAAQ,CAkBV"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { tryGetVeryfrontCloudProviderFromModelId } from "../../provider/veryfront-cloud/model-catalog.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { createAgUiFinalizeTracker } from "./finalize-tracker.js";
|
|
3
|
+
import { createAgUiChunkEncoder } from "./chunk-encoder.js";
|
|
4
|
+
import { createAgUiTrackedResponse, } from "./tracked-response.js";
|
|
5
5
|
/** Return AG-UI chat UI message metadata from chunk. */
|
|
6
6
|
export function getAgUiChatUiMessageMetadataFromChunk(chunk) {
|
|
7
7
|
if (chunk.type === "start" || chunk.type === "finish") {
|
|
@@ -161,12 +161,12 @@ export function normalizeChatUiMessageChunkToAgUiRuntimeEvent(chunk) {
|
|
|
161
161
|
};
|
|
162
162
|
}
|
|
163
163
|
}
|
|
164
|
-
/** Create AG-UI chat UI chunk
|
|
165
|
-
export function
|
|
164
|
+
/** Create AG-UI chat UI chunk encoder. */
|
|
165
|
+
export function createAgUiChatUiChunkEncoder(options = {}) {
|
|
166
166
|
const provider = options.modelId
|
|
167
167
|
? (options.resolveProvider ?? tryGetVeryfrontCloudProviderFromModelId)(options.modelId)
|
|
168
168
|
: undefined;
|
|
169
|
-
return
|
|
169
|
+
return createAgUiChunkEncoder({
|
|
170
170
|
initialMetadata: {
|
|
171
171
|
...(provider ? { provider } : {}),
|
|
172
172
|
...(options.modelId ? { model: options.modelId } : {}),
|
|
@@ -176,16 +176,16 @@ export function createAgUiChatUiChunkBrowserEncoder(options = {}) {
|
|
|
176
176
|
...(options.timing === undefined ? {} : { timing: options.timing }),
|
|
177
177
|
});
|
|
178
178
|
}
|
|
179
|
-
/** Response payload for create AG-UI chat UI tracked
|
|
180
|
-
export function
|
|
181
|
-
const finalizeTracker =
|
|
179
|
+
/** Response payload for create AG-UI chat UI tracked response. */
|
|
180
|
+
export function createAgUiChatUiTrackedResponse(input) {
|
|
181
|
+
const finalizeTracker = createAgUiFinalizeTracker({
|
|
182
182
|
getMetadataFromChunk: (chunk) => getAgUiChatUiMessageChunkMetadata(chunk, {
|
|
183
183
|
resolveProvider: input.resolveProvider,
|
|
184
184
|
}),
|
|
185
185
|
});
|
|
186
|
-
return
|
|
186
|
+
return createAgUiTrackedResponse({
|
|
187
187
|
...input,
|
|
188
|
-
chunkEncoder:
|
|
188
|
+
chunkEncoder: createAgUiChatUiChunkEncoder({
|
|
189
189
|
modelId: input.modelId,
|
|
190
190
|
resolveProvider: input.resolveProvider,
|
|
191
191
|
}),
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type AgUiEncodedEvent, type AgUiEncoderState, type AgUiEncoderStateOptions, type AgUiRuntimeStreamEvent } from "./encoder.js";
|
|
2
2
|
import type { AgentResponse } from "../types.js";
|
|
3
3
|
/** Public API contract for AG-UI chunk encoder bridge. */
|
|
4
4
|
export interface AgUiChunkEncoderBridge<TChunk> {
|
|
5
|
-
encode: (chunk: TChunk) =>
|
|
6
|
-
finalize: (response: AgentResponse | null) =>
|
|
7
|
-
state:
|
|
5
|
+
encode: (chunk: TChunk) => AgUiEncodedEvent[];
|
|
6
|
+
finalize: (response: AgentResponse | null) => AgUiEncodedEvent[];
|
|
7
|
+
state: AgUiEncoderState;
|
|
8
|
+
/** Timing anchor consumed by the response composition root. */
|
|
9
|
+
timingState: AgUiEncoderState;
|
|
8
10
|
}
|
|
9
11
|
/** Options accepted by create AG-UI chunk encoder bridge. */
|
|
10
12
|
export interface CreateAgUiChunkEncoderBridgeOptions<TChunk> {
|
|
11
13
|
getRuntimeEvents: (chunk: TChunk) => readonly AgUiRuntimeStreamEvent[];
|
|
12
14
|
/**
|
|
13
15
|
* Timing clocks forwarded verbatim to the encoder state. A single object so
|
|
14
|
-
* that adding a clock is one edit in `
|
|
16
|
+
* that adding a clock is one edit in `AgUiEncoderStateOptions`, not a
|
|
15
17
|
* sweep through every wrapper that happens to sit in between.
|
|
16
18
|
*/
|
|
17
|
-
timing?:
|
|
19
|
+
timing?: AgUiEncoderStateOptions;
|
|
18
20
|
}
|
|
19
21
|
/** Create AG-UI chunk encoder bridge. */
|
|
20
22
|
export declare function createAgUiChunkEncoderBridge<TChunk>(options: CreateAgUiChunkEncoderBridgeOptions<TChunk>): AgUiChunkEncoderBridge<TChunk>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-encoder-bridge.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/chunk-encoder-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"chunk-encoder-bridge.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/chunk-encoder-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAI5B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,0DAA0D;AAC1D,MAAM,WAAW,sBAAsB,CAAC,MAAM;IAC5C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,KAAK,gBAAgB,EAAE,CAAC;IACjE,KAAK,EAAE,gBAAgB,CAAC;IACxB,+DAA+D;IAC/D,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAED,6DAA6D;AAC7D,MAAM,WAAW,mCAAmC,CAAC,MAAM;IACzD,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,sBAAsB,EAAE,CAAC;IACvE;;;;OAIG;IACH,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC;AAED,yCAAyC;AACzC,wBAAgB,4BAA4B,CAAC,MAAM,EACjD,OAAO,EAAE,mCAAmC,CAAC,MAAM,CAAC,GACnD,sBAAsB,CAAC,MAAM,CAAC,CAYhC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createAgUiEncoderState, finalizeAgUiEvents, mapRuntimeStreamEventToAgUiEvents, } from "./encoder.js";
|
|
2
2
|
/** Create AG-UI chunk encoder bridge. */
|
|
3
3
|
export function createAgUiChunkEncoderBridge(options) {
|
|
4
|
-
const state =
|
|
4
|
+
const state = createAgUiEncoderState(options.timing ?? {});
|
|
5
5
|
return {
|
|
6
6
|
state,
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
timingState: state,
|
|
8
|
+
encode: (chunk) => options.getRuntimeEvents(chunk).flatMap((event) => mapRuntimeStreamEventToAgUiEvents(state, event)),
|
|
9
|
+
finalize: (response) => finalizeAgUiEvents(state, response),
|
|
9
10
|
};
|
|
10
11
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type AgUiEncoderStateOptions } from "./encoder.js";
|
|
2
|
+
import type { AgUiEncodedEvent, AgUiEncoderState, AgUiRunFinishedMetadata, AgUiRuntimeStreamEvent } from "./encoder.js";
|
|
3
|
+
import type { AgentResponse } from "../types.js";
|
|
4
|
+
/** Public API contract for AG-UI chunk encoder. */
|
|
5
|
+
export interface AgUiChunkEncoder<TChunk> {
|
|
6
|
+
state: AgUiEncoderState;
|
|
7
|
+
/** Optional timing anchor consumed by the response composition root. */
|
|
8
|
+
timingState?: AgUiEncoderState;
|
|
9
|
+
encode: (chunk: TChunk) => AgUiEncodedEvent[];
|
|
10
|
+
finalize: (response: AgentResponse | null) => AgUiEncodedEvent[];
|
|
11
|
+
}
|
|
12
|
+
/** Options accepted by create AG-UI chunk encoder. */
|
|
13
|
+
export interface CreateAgUiChunkEncoderOptions<TChunk> {
|
|
14
|
+
/**
|
|
15
|
+
* Timing clocks forwarded verbatim to the encoder state. A single object so
|
|
16
|
+
* that adding a clock is one edit in `AgUiEncoderStateOptions`, not a
|
|
17
|
+
* sweep through every wrapper that happens to sit in between.
|
|
18
|
+
*/
|
|
19
|
+
timing?: AgUiEncoderStateOptions;
|
|
20
|
+
getRuntimeEvents: (chunk: TChunk) => readonly AgUiRuntimeStreamEvent[];
|
|
21
|
+
getMetadataFromChunk?: (chunk: TChunk) => Partial<AgUiRunFinishedMetadata> | null | undefined;
|
|
22
|
+
initialMetadata?: Partial<AgUiRunFinishedMetadata>;
|
|
23
|
+
}
|
|
24
|
+
/** Create AG-UI chunk encoder. */
|
|
25
|
+
export declare function createAgUiChunkEncoder<TChunk>(options: CreateAgUiChunkEncoderOptions<TChunk>): AgUiChunkEncoder<TChunk>;
|
|
26
|
+
//# sourceMappingURL=chunk-encoder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-encoder.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/chunk-encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAKtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,mDAAmD;AACnD,MAAM,WAAW,gBAAgB,CAAC,MAAM;IACtC,KAAK,EAAE,gBAAgB,CAAC;IACxB,wEAAwE;IACxE,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,KAAK,gBAAgB,EAAE,CAAC;CAClE;AAED,sDAAsD;AACtD,MAAM,WAAW,6BAA6B,CAAC,MAAM;IACnD;;;;OAIG;IACH,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,sBAAsB,EAAE,CAAC;IACvE,oBAAoB,CAAC,EAAE,CACrB,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACzD,eAAe,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACpD;AAkED,kCAAkC;AAClC,wBAAgB,sBAAsB,CAAC,MAAM,EAC3C,OAAO,EAAE,6BAA6B,CAAC,MAAM,CAAC,GAC7C,gBAAgB,CAAC,MAAM,CAAC,CAe1B"}
|
|
@@ -68,14 +68,15 @@ function mergeMetadata(target, metadata) {
|
|
|
68
68
|
if (typeof metadata.finishReason === "string")
|
|
69
69
|
target.finishReason = metadata.finishReason;
|
|
70
70
|
}
|
|
71
|
-
/** Create AG-UI
|
|
72
|
-
export function
|
|
71
|
+
/** Create AG-UI chunk encoder. */
|
|
72
|
+
export function createAgUiChunkEncoder(options) {
|
|
73
73
|
const runtimeEventEncoder = createAgUiRuntimeEventEncoder({
|
|
74
74
|
initialMetadata: options.initialMetadata,
|
|
75
75
|
...(options.timing === undefined ? {} : { timing: options.timing }),
|
|
76
76
|
});
|
|
77
77
|
return {
|
|
78
78
|
state: runtimeEventEncoder.state,
|
|
79
|
+
timingState: runtimeEventEncoder.state,
|
|
79
80
|
encode: (chunk) => {
|
|
80
81
|
mergeMetadata(runtimeEventEncoder.state.metadata, options.getMetadataFromChunk?.(chunk));
|
|
81
82
|
return options.getRuntimeEvents(chunk).flatMap((event) => runtimeEventEncoder.encode(event));
|
|
@@ -3,8 +3,8 @@ import type { AgentResponse } from "../types.js";
|
|
|
3
3
|
export type AgUiRuntimeStreamEvent = Record<string, unknown> & {
|
|
4
4
|
type: string;
|
|
5
5
|
};
|
|
6
|
-
/** Public API contract for AG-UI
|
|
7
|
-
export interface
|
|
6
|
+
/** Public API contract for AG-UI run finished metadata. */
|
|
7
|
+
export interface AgUiRunFinishedMetadata {
|
|
8
8
|
provider?: string;
|
|
9
9
|
model?: string;
|
|
10
10
|
inputTokens?: number;
|
|
@@ -30,8 +30,8 @@ export interface AgUiBrowserRunFinishedMetadata {
|
|
|
30
30
|
finishReason?: string;
|
|
31
31
|
usageCaptureStatus?: "complete" | "partial" | "missing";
|
|
32
32
|
}
|
|
33
|
-
/** State for AG-UI
|
|
34
|
-
export interface
|
|
33
|
+
/** State for AG-UI encoder. */
|
|
34
|
+
export interface AgUiEncoderState {
|
|
35
35
|
messageId: string | null;
|
|
36
36
|
textOpen: boolean;
|
|
37
37
|
activeTextContentId: string | null;
|
|
@@ -45,12 +45,24 @@ export interface AgUiBrowserEncoderState {
|
|
|
45
45
|
activeStepName: string | null;
|
|
46
46
|
stepCount: number;
|
|
47
47
|
streamedToolInputIds: Set<string>;
|
|
48
|
+
/**
|
|
49
|
+
* Tool calls whose `ToolCallStart` has been emitted but not yet closed with
|
|
50
|
+
* a `ToolCallEnd`. Distinct from `streamedToolInputIds`, which tracks
|
|
51
|
+
* whether any args were streamed, not whether the call is still open.
|
|
52
|
+
*
|
|
53
|
+
* Optional, and populated lazily, so a state object built against the shape
|
|
54
|
+
* this type had before the tracker existed stays valid — the same reason
|
|
55
|
+
* `reasoningSpanIndex` above is optional. This type is re-exported from
|
|
56
|
+
* `veryfront/agent`, so a required field would crash existing callers on the
|
|
57
|
+
* first `tool-input-start`.
|
|
58
|
+
*/
|
|
59
|
+
openToolCallIds?: Set<string>;
|
|
48
60
|
sawVisibleOutput: boolean;
|
|
49
61
|
sawTerminalError: boolean;
|
|
50
|
-
metadata:
|
|
62
|
+
metadata: AgUiRunFinishedMetadata;
|
|
51
63
|
/**
|
|
52
64
|
* Clock for `elapsedMs`, and the run-relative anchor it measures from. Absent
|
|
53
|
-
* only when a caller opts out; see `
|
|
65
|
+
* only when a caller opts out; see `createAgUiEncoderState`.
|
|
54
66
|
*/
|
|
55
67
|
nowMs?: () => number;
|
|
56
68
|
startedMs?: number;
|
|
@@ -63,8 +75,8 @@ export interface AgUiBrowserEncoderState {
|
|
|
63
75
|
*/
|
|
64
76
|
epochMs?: () => number;
|
|
65
77
|
}
|
|
66
|
-
/** Options for create AG-UI
|
|
67
|
-
export interface
|
|
78
|
+
/** Options for create AG-UI encoder state. */
|
|
79
|
+
export interface AgUiEncoderStateOptions {
|
|
68
80
|
/**
|
|
69
81
|
* Clock used to stamp `elapsedMs`. Defaults to `performance.now`. Pass null
|
|
70
82
|
* to omit the stamp, which keeps exact-payload assertions deterministic.
|
|
@@ -75,18 +87,20 @@ export interface AgUiBrowserEncoderStateOptions {
|
|
|
75
87
|
* `Date.now`. Pass null to omit the stamp.
|
|
76
88
|
*/
|
|
77
89
|
epochMs?: (() => number) | null;
|
|
90
|
+
startedMs?: number;
|
|
78
91
|
}
|
|
79
|
-
/** Event emitted for AG-UI
|
|
80
|
-
export interface
|
|
92
|
+
/** Event emitted for AG-UI encoded. */
|
|
93
|
+
export interface AgUiEncodedEvent {
|
|
81
94
|
event: string;
|
|
82
95
|
payload: Record<string, unknown>;
|
|
83
96
|
}
|
|
84
|
-
/** State for create AG-UI
|
|
85
|
-
export declare function
|
|
86
|
-
/** Response payload for build AG-UI
|
|
87
|
-
export declare function
|
|
88
|
-
/** Map runtime stream event to AG-UI
|
|
89
|
-
export declare function
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
97
|
+
/** State for create AG-UI encoder. */
|
|
98
|
+
export declare function createAgUiEncoderState(options?: AgUiEncoderStateOptions): AgUiEncoderState;
|
|
99
|
+
/** Response payload for build AG-UI finalize. */
|
|
100
|
+
export declare function buildAgUiFinalizeResponse(metadata: AgUiRunFinishedMetadata): AgentResponse | null;
|
|
101
|
+
/** Map runtime stream event to AG-UI events. */
|
|
102
|
+
export declare function mapRuntimeStreamEventToAgUiEvents(state: AgUiEncoderState, event: AgUiRuntimeStreamEvent): AgUiEncodedEvent[];
|
|
103
|
+
export declare function stampAgUiEventTiming(state: AgUiEncoderState, events: AgUiEncodedEvent[]): AgUiEncodedEvent[];
|
|
104
|
+
/** Finalize AG-UI events helper. */
|
|
105
|
+
export declare function finalizeAgUiEvents(state: AgUiEncoderState, response: AgentResponse | null): AgUiEncodedEvent[];
|
|
106
|
+
//# sourceMappingURL=encoder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/encoder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,8CAA8C;AAC9C,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,2DAA2D;AAC3D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/C,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;CACzD;AAED,+BAA+B;AAC/B,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,uBAAuB,CAAC;IAClC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;CACxB;AAED,8CAA8C;AAC9C,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,sCAAsC;AACtC,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,uBAA4B,GACpC,gBAAgB,CAuBlB;AA6SD,iDAAiD;AACjD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,uBAAuB,GAChC,aAAa,GAAG,IAAI,CA+HtB;AAuJD,gDAAgD;AAChD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,sBAAsB,GAC5B,gBAAgB,EAAE,CAKpB;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,gBAAgB,EAAE,GACzB,gBAAgB,EAAE,CAyCpB;AAgQD,oCAAoC;AACpC,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,aAAa,GAAG,IAAI,GAC7B,gBAAgB,EAAE,CAEpB"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as dntShim from "../../../_dnt.shims.js";
|
|
2
|
-
/** State for create AG-UI
|
|
3
|
-
export function
|
|
2
|
+
/** State for create AG-UI encoder. */
|
|
3
|
+
export function createAgUiEncoderState(options = {}) {
|
|
4
4
|
// Clocked by default. This state is built at three separate composition
|
|
5
5
|
// roots, so an opt-in clock only has to be forgotten once to lose elapsedMs
|
|
6
6
|
// for every run -- which is exactly what happened twice before.
|
|
7
7
|
const nowMs = options.nowMs === null ? undefined : options.nowMs ?? (() => performance.now());
|
|
8
8
|
const epochMs = options.epochMs === null ? undefined : options.epochMs ?? (() => Date.now());
|
|
9
9
|
return {
|
|
10
|
-
...(nowMs ? { nowMs, startedMs: nowMs() } : {}),
|
|
10
|
+
...(nowMs ? { nowMs, startedMs: options.startedMs ?? nowMs() } : {}),
|
|
11
11
|
...(epochMs ? { epochMs } : {}),
|
|
12
12
|
messageId: null,
|
|
13
13
|
textOpen: false,
|
|
@@ -18,6 +18,7 @@ export function createAgUiBrowserEncoderState(options = {}) {
|
|
|
18
18
|
activeStepName: null,
|
|
19
19
|
stepCount: 0,
|
|
20
20
|
streamedToolInputIds: new Set(),
|
|
21
|
+
openToolCallIds: new Set(),
|
|
21
22
|
sawVisibleOutput: false,
|
|
22
23
|
sawTerminalError: false,
|
|
23
24
|
metadata: {},
|
|
@@ -270,8 +271,8 @@ function applyResponseMetadata(state, response) {
|
|
|
270
271
|
state.metadata.usageCaptureStatus = usageCaptureStatus;
|
|
271
272
|
}
|
|
272
273
|
}
|
|
273
|
-
/** Response payload for build AG-UI
|
|
274
|
-
export function
|
|
274
|
+
/** Response payload for build AG-UI finalize. */
|
|
275
|
+
export function buildAgUiFinalizeResponse(metadata) {
|
|
275
276
|
const responseMetadata = {};
|
|
276
277
|
if (typeof metadata.finishReason === "string" && metadata.finishReason.length > 0) {
|
|
277
278
|
responseMetadata.finishReason = metadata.finishReason;
|
|
@@ -396,6 +397,19 @@ export function buildAgUiBrowserFinalizeResponse(metadata) {
|
|
|
396
397
|
...(Object.keys(responseMetadata).length > 0 ? { metadata: responseMetadata } : {}),
|
|
397
398
|
};
|
|
398
399
|
}
|
|
400
|
+
/**
|
|
401
|
+
* Emit the `ToolCallEnd` for a call whose input never reached a terminal
|
|
402
|
+
* input event. Returns nothing when the call was already closed, so a normal
|
|
403
|
+
* tool failure does not produce a second end.
|
|
404
|
+
*/
|
|
405
|
+
function closeOpenToolInput(state, toolCallId) {
|
|
406
|
+
if (typeof toolCallId !== "string" || toolCallId.length === 0)
|
|
407
|
+
return [];
|
|
408
|
+
if (state.openToolCallIds?.delete(toolCallId) !== true)
|
|
409
|
+
return [];
|
|
410
|
+
state.streamedToolInputIds.delete(toolCallId);
|
|
411
|
+
return [{ event: "ToolCallEnd", payload: { toolCallId } }];
|
|
412
|
+
}
|
|
399
413
|
function completeToolInput(state, event) {
|
|
400
414
|
const toolCallId = typeof event.toolCallId === "string" ? event.toolCallId : "";
|
|
401
415
|
const events = [];
|
|
@@ -410,6 +424,7 @@ function completeToolInput(state, event) {
|
|
|
410
424
|
}
|
|
411
425
|
if (toolCallId.length > 0) {
|
|
412
426
|
state.streamedToolInputIds.delete(toolCallId);
|
|
427
|
+
state.openToolCallIds?.delete(toolCallId);
|
|
413
428
|
}
|
|
414
429
|
events.push({
|
|
415
430
|
event: "ToolCallEnd",
|
|
@@ -485,11 +500,11 @@ function closeOpenReasoningEvent(state) {
|
|
|
485
500
|
payload: { messageId },
|
|
486
501
|
}];
|
|
487
502
|
}
|
|
488
|
-
/** Map runtime stream event to AG-UI
|
|
489
|
-
export function
|
|
490
|
-
return
|
|
503
|
+
/** Map runtime stream event to AG-UI events. */
|
|
504
|
+
export function mapRuntimeStreamEventToAgUiEvents(state, event) {
|
|
505
|
+
return stampAgUiEventTiming(state, mapRuntimeStreamEventToAgUiEventsUnstamped(state, event));
|
|
491
506
|
}
|
|
492
|
-
function
|
|
507
|
+
export function stampAgUiEventTiming(state, events) {
|
|
493
508
|
if (events.length === 0) {
|
|
494
509
|
return events;
|
|
495
510
|
}
|
|
@@ -500,19 +515,49 @@ function stampTiming(state, events) {
|
|
|
500
515
|
// wall-clock traces and logs, and turns ingest lag into `created_at -
|
|
501
516
|
// emittedAt`. Both are stamped because wall clocks can step backwards and
|
|
502
517
|
// the monotonic reading cannot.
|
|
503
|
-
const
|
|
504
|
-
|
|
505
|
-
|
|
518
|
+
for (const { payload } of events) {
|
|
519
|
+
if (Object.hasOwn(payload, "elapsedMs"))
|
|
520
|
+
assertValidElapsedMs(payload.elapsedMs);
|
|
521
|
+
if (Object.hasOwn(payload, "emittedAt"))
|
|
522
|
+
assertValidEmittedAt(payload.emittedAt);
|
|
523
|
+
}
|
|
524
|
+
const needsElapsedMs = events.some(({ payload }) => !Object.hasOwn(payload, "elapsedMs"));
|
|
525
|
+
const needsEmittedAt = events.some(({ payload }) => !Object.hasOwn(payload, "emittedAt"));
|
|
526
|
+
const elapsedMs = needsElapsedMs && state.nowMs && state.startedMs !== undefined
|
|
527
|
+
? Math.max(0, Math.round(state.nowMs() - state.startedMs))
|
|
528
|
+
: undefined;
|
|
529
|
+
const emittedAt = needsEmittedAt && state.epochMs ? Math.round(state.epochMs()) : undefined;
|
|
530
|
+
if (elapsedMs !== undefined)
|
|
531
|
+
assertValidElapsedMs(elapsedMs);
|
|
532
|
+
if (emittedAt !== undefined)
|
|
533
|
+
assertValidEmittedAt(emittedAt);
|
|
534
|
+
if (elapsedMs === undefined && emittedAt === undefined) {
|
|
535
|
+
return events;
|
|
506
536
|
}
|
|
507
|
-
|
|
508
|
-
|
|
537
|
+
return events.map((entry) => ({
|
|
538
|
+
...entry,
|
|
539
|
+
payload: {
|
|
540
|
+
...entry.payload,
|
|
541
|
+
...(elapsedMs !== undefined && !Object.hasOwn(entry.payload, "elapsedMs")
|
|
542
|
+
? { elapsedMs }
|
|
543
|
+
: {}),
|
|
544
|
+
...(emittedAt !== undefined && !Object.hasOwn(entry.payload, "emittedAt")
|
|
545
|
+
? { emittedAt }
|
|
546
|
+
: {}),
|
|
547
|
+
},
|
|
548
|
+
}));
|
|
549
|
+
}
|
|
550
|
+
function assertValidElapsedMs(value) {
|
|
551
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
|
|
552
|
+
throw new TypeError("elapsedMs must be a finite non-negative number");
|
|
509
553
|
}
|
|
510
|
-
|
|
511
|
-
|
|
554
|
+
}
|
|
555
|
+
function assertValidEmittedAt(value) {
|
|
556
|
+
if (typeof value !== "number" || !Number.isInteger(value) || value < 0) {
|
|
557
|
+
throw new TypeError("emittedAt must be a non-negative integer");
|
|
512
558
|
}
|
|
513
|
-
return events.map((entry) => ({ ...entry, payload: { ...entry.payload, ...timing } }));
|
|
514
559
|
}
|
|
515
|
-
function
|
|
560
|
+
function mapRuntimeStreamEventToAgUiEventsUnstamped(state, event) {
|
|
516
561
|
if (event.type.startsWith("data-")) {
|
|
517
562
|
const name = event.type.slice("data-".length);
|
|
518
563
|
if (name.length === 0) {
|
|
@@ -596,6 +641,9 @@ function mapRuntimeStreamEventToAgUiBrowserEventsUnstamped(state, event) {
|
|
|
596
641
|
...closeOpenReasoningEvent(state),
|
|
597
642
|
];
|
|
598
643
|
state.sawVisibleOutput = true;
|
|
644
|
+
if (typeof event.toolCallId === "string" && event.toolCallId.length > 0) {
|
|
645
|
+
(state.openToolCallIds ??= new Set()).add(event.toolCallId);
|
|
646
|
+
}
|
|
599
647
|
events.push({
|
|
600
648
|
event: "ToolCallStart",
|
|
601
649
|
payload: {
|
|
@@ -623,15 +671,11 @@ function mapRuntimeStreamEventToAgUiBrowserEventsUnstamped(state, event) {
|
|
|
623
671
|
];
|
|
624
672
|
case "tool-input-available": {
|
|
625
673
|
state.sawVisibleOutput = true;
|
|
626
|
-
|
|
674
|
+
return [
|
|
627
675
|
...closeOpenTextEvent(state),
|
|
628
676
|
...closeOpenReasoningEvent(state),
|
|
629
677
|
...completeToolInput(state, event),
|
|
630
678
|
];
|
|
631
|
-
if (event.providerExecuted === true) {
|
|
632
|
-
events.push(createToolResultEvent(event.toolCallId, null));
|
|
633
|
-
}
|
|
634
|
-
return events;
|
|
635
679
|
}
|
|
636
680
|
case "tool-input-error": {
|
|
637
681
|
state.sawVisibleOutput = true;
|
|
@@ -653,6 +697,8 @@ function mapRuntimeStreamEventToAgUiBrowserEventsUnstamped(state, event) {
|
|
|
653
697
|
return events;
|
|
654
698
|
}
|
|
655
699
|
case "tool-output-available":
|
|
700
|
+
if (event.preliminary === true)
|
|
701
|
+
return [];
|
|
656
702
|
state.sawVisibleOutput = true;
|
|
657
703
|
return [
|
|
658
704
|
...closeOpenTextEvent(state),
|
|
@@ -664,6 +710,14 @@ function mapRuntimeStreamEventToAgUiBrowserEventsUnstamped(state, event) {
|
|
|
664
710
|
return [
|
|
665
711
|
...closeOpenTextEvent(state),
|
|
666
712
|
...closeOpenReasoningEvent(state),
|
|
713
|
+
// A truncated local tool call terminalizes as `tool-input-start`
|
|
714
|
+
// (plus any partial deltas) and then straight to this event, so the
|
|
715
|
+
// input is still open. `tool-input-available` and `tool-input-error`
|
|
716
|
+
// close it via `completeToolInput`; this branch has to close it too,
|
|
717
|
+
// or the client is left with ToolCallStart and ToolCallResult and no
|
|
718
|
+
// ToolCallEnd. No synthetic args are emitted: the model never
|
|
719
|
+
// committed any, and inventing `{}` would claim it did.
|
|
720
|
+
...closeOpenToolInput(state, event.toolCallId),
|
|
667
721
|
createToolResultEvent(event.toolCallId, { error: event.errorText }, true),
|
|
668
722
|
];
|
|
669
723
|
case "tool-output-denied":
|
|
@@ -709,11 +763,11 @@ function mapRuntimeStreamEventToAgUiBrowserEventsUnstamped(state, event) {
|
|
|
709
763
|
return [];
|
|
710
764
|
}
|
|
711
765
|
}
|
|
712
|
-
/** Finalize AG-UI
|
|
713
|
-
export function
|
|
714
|
-
return
|
|
766
|
+
/** Finalize AG-UI events helper. */
|
|
767
|
+
export function finalizeAgUiEvents(state, response) {
|
|
768
|
+
return stampAgUiEventTiming(state, finalizeAgUiEventsUnstamped(state, response));
|
|
715
769
|
}
|
|
716
|
-
function
|
|
770
|
+
function finalizeAgUiEventsUnstamped(state, response) {
|
|
717
771
|
applyResponseMetadata(state, response);
|
|
718
772
|
if (state.sawTerminalError) {
|
|
719
773
|
return [];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type AgUiEncodedEvent, type AgUiRunFinishedMetadata } from "./encoder.js";
|
|
2
|
+
import type { AgentResponse } from "../types.js";
|
|
3
|
+
/** Public API contract for AG-UI finalize tracker. */
|
|
4
|
+
export interface AgUiFinalizeTracker<TChunk> {
|
|
5
|
+
observeChunk: (chunk: TChunk) => void;
|
|
6
|
+
observeEncodedEvents: (events: readonly AgUiEncodedEvent[]) => void;
|
|
7
|
+
getFinalResponse: () => AgentResponse | null;
|
|
8
|
+
}
|
|
9
|
+
/** Options accepted by create AG-UI finalize tracker. */
|
|
10
|
+
export interface CreateAgUiFinalizeTrackerOptions<TChunk> {
|
|
11
|
+
getMetadataFromChunk: (chunk: TChunk) => Partial<AgUiRunFinishedMetadata> | null | undefined;
|
|
12
|
+
}
|
|
13
|
+
/** Create AG-UI finalize tracker. */
|
|
14
|
+
export declare function createAgUiFinalizeTracker<TChunk>(options: CreateAgUiFinalizeTrackerOptions<TChunk>): AgUiFinalizeTracker<TChunk>;
|
|
15
|
+
//# sourceMappingURL=finalize-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalize-tracker.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/finalize-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAE7B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,sDAAsD;AACtD,MAAM,WAAW,mBAAmB,CAAC,MAAM;IACzC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,oBAAoB,EAAE,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,KAAK,IAAI,CAAC;IACpE,gBAAgB,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;CAC9C;AAED,yDAAyD;AACzD,MAAM,WAAW,gCAAgC,CAAC,MAAM;IACtD,oBAAoB,EAAE,CACpB,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1D;AAED,qCAAqC;AACrC,wBAAgB,yBAAyB,CAAC,MAAM,EAC9C,OAAO,EAAE,gCAAgC,CAAC,MAAM,CAAC,GAChD,mBAAmB,CAAC,MAAM,CAAC,CAoG7B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
/** Create AG-UI
|
|
3
|
-
export function
|
|
1
|
+
import { buildAgUiFinalizeResponse, } from "./encoder.js";
|
|
2
|
+
/** Create AG-UI finalize tracker. */
|
|
3
|
+
export function createAgUiFinalizeTracker(options) {
|
|
4
4
|
let sawRunError = false;
|
|
5
5
|
const metadata = {};
|
|
6
6
|
return {
|
|
@@ -94,7 +94,7 @@ export function createAgUiBrowserFinalizeTracker(options) {
|
|
|
94
94
|
if (sawRunError) {
|
|
95
95
|
return null;
|
|
96
96
|
}
|
|
97
|
-
return
|
|
97
|
+
return buildAgUiFinalizeResponse(metadata);
|
|
98
98
|
},
|
|
99
99
|
};
|
|
100
100
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { AgentResponse } from "../types.js";
|
|
2
|
+
import type { AgUiSseEvent } from "./host-support.js";
|
|
3
|
+
import { type AgUiEncoderState } from "./encoder.js";
|
|
4
|
+
/** State for AG-UI response request. */
|
|
5
|
+
export interface AgUiResponseRequestState {
|
|
6
|
+
runId?: string;
|
|
7
|
+
threadId?: string;
|
|
8
|
+
state?: unknown;
|
|
9
|
+
messages: unknown[];
|
|
10
|
+
}
|
|
11
|
+
/** Public API contract for AG-UI response execution. */
|
|
12
|
+
export interface AgUiResponseExecution<TChunk> {
|
|
13
|
+
agentUIStream: AsyncIterable<TChunk>;
|
|
14
|
+
fail: (error: unknown) => Promise<void>;
|
|
15
|
+
waitForFinish: () => Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
/** Public API contract for AG-UI response encoder. */
|
|
18
|
+
export interface AgUiResponseEncoder<TChunk> {
|
|
19
|
+
encode: (chunk: TChunk) => AgUiSseEvent[];
|
|
20
|
+
finalize: (response: AgentResponse | null) => AgUiSseEvent[];
|
|
21
|
+
/** Shared timing anchor for bootstrap, chunk, and final events. */
|
|
22
|
+
timingState?: AgUiEncoderState;
|
|
23
|
+
}
|
|
24
|
+
/** Input payload for create AG-UI response stream. */
|
|
25
|
+
export interface CreateAgUiResponseStreamInput<TChunk, TState> {
|
|
26
|
+
agUiInput: AgUiResponseRequestState;
|
|
27
|
+
agentId: string;
|
|
28
|
+
execution: AgUiResponseExecution<TChunk>;
|
|
29
|
+
encoder: AgUiResponseEncoder<TChunk>;
|
|
30
|
+
initialState: TState;
|
|
31
|
+
onChunk?: (state: TState, chunk: TChunk) => void;
|
|
32
|
+
getFinalResponse?: (state: TState) => AgentResponse | null;
|
|
33
|
+
}
|
|
34
|
+
/** Create AG-UI response stream. */
|
|
35
|
+
export declare function createAgUiResponseStream<TChunk, TState>(input: CreateAgUiResponseStreamInput<TChunk, TState>): ReadableStream<Uint8Array>;
|
|
36
|
+
//# sourceMappingURL=response-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-stream.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/response-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,KAAK,gBAAgB,EAAgD,MAAM,cAAc,CAAC;AAkBnG,wCAAwC;AACxC,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,wDAAwD;AACxD,MAAM,WAAW,qBAAqB,CAAC,MAAM;IAC3C,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB,CAAC,MAAM;IACzC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;IAC1C,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,KAAK,YAAY,EAAE,CAAC;IAC7D,mEAAmE;IACnE,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,sDAAsD;AACtD,MAAM,WAAW,6BAA6B,CAAC,MAAM,EAAE,MAAM;IAC3D,SAAS,EAAE,wBAAwB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,aAAa,GAAG,IAAI,CAAC;CAC5D;AAUD,oCAAoC;AACpC,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EACrD,KAAK,EAAE,6BAA6B,CAAC,MAAM,EAAE,MAAM,CAAC,GACnD,cAAc,CAAC,UAAU,CAAC,CAuH5B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createAgUiEncoderState, stampAgUiEventTiming } from "./encoder.js";
|
|
1
2
|
const encoder = new TextEncoder();
|
|
2
3
|
function formatAgUiSseEventWithId(event, eventId) {
|
|
3
4
|
const idLine = eventId === null ? "" : `id: ${eventId}\n`;
|
|
@@ -12,18 +13,20 @@ function isRecord(value) {
|
|
|
12
13
|
function normalizeSnapshot(snapshot) {
|
|
13
14
|
return isRecord(snapshot) ? snapshot : {};
|
|
14
15
|
}
|
|
15
|
-
/** Create AG-UI
|
|
16
|
-
export function
|
|
16
|
+
/** Create AG-UI response stream. */
|
|
17
|
+
export function createAgUiResponseStream(input) {
|
|
17
18
|
let streamClosed = false;
|
|
18
19
|
let nextEventId = 1;
|
|
19
20
|
return new ReadableStream({
|
|
20
21
|
start(controller) {
|
|
22
|
+
const timingState = input.encoder.timingState ?? createAgUiEncoderState();
|
|
21
23
|
const writeEvent = (event) => {
|
|
22
24
|
if (streamClosed) {
|
|
23
25
|
return false;
|
|
24
26
|
}
|
|
25
27
|
try {
|
|
26
|
-
|
|
28
|
+
const [timed] = stampAgUiEventTiming(timingState, [event]);
|
|
29
|
+
controller.enqueue(formatAgUiSseEventWithId(timed ?? event, nextEventId));
|
|
27
30
|
nextEventId += 1;
|
|
28
31
|
return true;
|
|
29
32
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgUiRuntimeStreamEvent } from "./
|
|
1
|
+
import type { AgUiRuntimeStreamEvent } from "./encoder.js";
|
|
2
2
|
import type { ChatFinishReason, ChatStreamEvent } from "../../chat/protocol.js";
|
|
3
3
|
/** Usage metadata captured from an AG-UI runtime finish event. */
|
|
4
4
|
export type AgUiRuntimeChatStreamUsage = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-chat-stream-encoder.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/runtime-chat-stream-encoder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"runtime-chat-stream-encoder.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/runtime-chat-stream-encoder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGhF,kEAAkE;AAClE,MAAM,MAAM,0BAA0B,GAAG;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,kBAAkB,EAAE;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/C,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACpC,kBAAkB,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;CACzD,CAAC;AAEF,mDAAmD;AACnD,MAAM,WAAW,iCAAiC;IAChD,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,UAAU,EAAE,0BAA0B,GAAG,IAAI,CAAC;CAC/C;AAED,iEAAiE;AACjE,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,iCAAiC,CAAC;IACzC,MAAM,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,eAAe,EAAE,CAAC;CAC9D;AAED,oEAAoE;AACpE,MAAM,WAAW,yCAAyC;IACxD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACtC;AAmMD,gDAAgD;AAChD,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,yCAAyC,GACjD,4BAA4B,CA+U9B"}
|