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
|
@@ -115,9 +115,9 @@ export interface AttachmentsPanelItemProps {
|
|
|
115
115
|
className?: string;
|
|
116
116
|
/**
|
|
117
117
|
* Compose the row from the `AttachmentsPanel.Item.*` leaves (`.Icon` /
|
|
118
|
-
* `.Preview` / `.Remove`), the `AttachmentPill.*` parts
|
|
119
|
-
* your own text read from `useAttachmentPill()`. Omit for
|
|
120
|
-
* (media + label + overflow menu).
|
|
118
|
+
* `.Preview` / `.Name` / `.Size` / `.Remove`), the `AttachmentPill.*` parts
|
|
119
|
+
* (e.g. `.Label`), or your own text read from `useAttachmentPill()`. Omit for
|
|
120
|
+
* the default card (media + label + overflow menu).
|
|
121
121
|
*/
|
|
122
122
|
children?: React.ReactNode;
|
|
123
123
|
/** React 19: ref is a regular prop (threaded to the underlying `AttachmentPill`). */
|
|
@@ -151,6 +151,28 @@ declare function AttachmentsPanelItemPreview({ className, ref, ...props }: React
|
|
|
151
151
|
declare namespace AttachmentsPanelItemPreview {
|
|
152
152
|
var displayName: string;
|
|
153
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* `AttachmentsPanel.Item.Name` — the file-name line. Deliberately plain text:
|
|
156
|
+
* unlike `AttachmentPill.Label`, it does not wrap the name in a shimmer while
|
|
157
|
+
* the attachment uploads. Compose `AttachmentPill.Label` for that treatment.
|
|
158
|
+
*/
|
|
159
|
+
declare function AttachmentsPanelItemName({ className, ref, ...props }: React.HTMLAttributes<HTMLParagraphElement> & {
|
|
160
|
+
ref?: React.Ref<HTMLParagraphElement>;
|
|
161
|
+
}): React.JSX.Element;
|
|
162
|
+
declare namespace AttachmentsPanelItemName {
|
|
163
|
+
var displayName: string;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* `AttachmentsPanel.Item.Size` — the human-formatted byte label (`formatSize`).
|
|
167
|
+
* Renders nothing when the file has no size. Always the faint secondary color;
|
|
168
|
+
* the error/destructive state line stays with `AttachmentPill.Label`.
|
|
169
|
+
*/
|
|
170
|
+
declare function AttachmentsPanelItemSize({ className, ref, ...props }: React.HTMLAttributes<HTMLParagraphElement> & {
|
|
171
|
+
ref?: React.Ref<HTMLParagraphElement>;
|
|
172
|
+
}): React.JSX.Element | null;
|
|
173
|
+
declare namespace AttachmentsPanelItemSize {
|
|
174
|
+
var displayName: string;
|
|
175
|
+
}
|
|
154
176
|
/** Props for `AttachmentsPanel.Item.Remove`. */
|
|
155
177
|
export interface AttachmentsPanelItemRemoveProps {
|
|
156
178
|
className?: string;
|
|
@@ -233,6 +255,8 @@ export declare const AttachmentsPanel: typeof AttachmentsPanelRoot & {
|
|
|
233
255
|
Item: typeof AttachmentsPanelItem & {
|
|
234
256
|
Icon: typeof AttachmentsPanelItemIcon;
|
|
235
257
|
Preview: typeof AttachmentsPanelItemPreview;
|
|
258
|
+
Name: typeof AttachmentsPanelItemName;
|
|
259
|
+
Size: typeof AttachmentsPanelItemSize;
|
|
236
260
|
Remove: typeof AttachmentsPanelItemRemove;
|
|
237
261
|
};
|
|
238
262
|
Loading: typeof AttachmentsPanelLoading;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments-panel.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/attachments-panel.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"attachments-panel.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/attachments-panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { FileTextIcon, MoreHorizontalIcon, PaperclipIcon, TrashIcon, XIcon, } fr
|
|
|
5
5
|
import { Button } from "../../../ui/button.js";
|
|
6
6
|
import { Skeleton } from "../../../ui/skeleton.js";
|
|
7
7
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "../../../ui/dropdown-menu.js";
|
|
8
|
-
import { AttachmentPill, useAttachmentPill } from "./attachment-pill.js";
|
|
8
|
+
import { AttachmentPill, formatSize, useAttachmentPill } from "./attachment-pill.js";
|
|
9
9
|
import { createStrictContext } from "../../../create-strict-context.js";
|
|
10
10
|
import { isSafeUploadUrl, openSafeUploadUrl } from "../upload-url.js";
|
|
11
11
|
const [AttachmentsPanelContext, useAttachmentsPanelContext] = createStrictContext("useAttachmentsPanel", "an AttachmentsPanel");
|
|
@@ -119,12 +119,10 @@ function AttachmentsPanelItemMedia({ className }) {
|
|
|
119
119
|
: React.createElement(AttachmentPill.Icon, { className: className });
|
|
120
120
|
}
|
|
121
121
|
// ---------------------------------------------------------------------------
|
|
122
|
-
// AttachmentsPanel.Item.* — the row leaves
|
|
123
|
-
// `.
|
|
124
|
-
// `onRemoveUpload`). Each reads the item's file from the enclosing
|
|
125
|
-
// `AttachmentPill` context.
|
|
126
|
-
// from `useAttachmentPill()` / `useAttachments()` and render your own, or use
|
|
127
|
-
// `AttachmentPill.Label`. Use these inside an `AttachmentsPanel.Item`.
|
|
122
|
+
// AttachmentsPanel.Item.* — the row leaves: `.Icon` / `.Preview` (derived pill
|
|
123
|
+
// state), `.Name` / `.Size` (the file's text lines), and `.Remove` (bound to
|
|
124
|
+
// the panel's `onRemoveUpload`). Each reads the item's file from the enclosing
|
|
125
|
+
// `AttachmentPill` context. Use these inside an `AttachmentsPanel.Item`.
|
|
128
126
|
// ---------------------------------------------------------------------------
|
|
129
127
|
/** `AttachmentsPanel.Item.Icon` — the file-type icon square. */
|
|
130
128
|
function AttachmentsPanelItemIcon({ className, ref, ...props }) {
|
|
@@ -142,6 +140,28 @@ function AttachmentsPanelItemPreview({ className, ref, ...props }) {
|
|
|
142
140
|
return React.createElement(AttachmentPill.Thumbnail, { ref: ref, className: className, ...props });
|
|
143
141
|
}
|
|
144
142
|
AttachmentsPanelItemPreview.displayName = "AttachmentsPanel.Item.Preview";
|
|
143
|
+
/**
|
|
144
|
+
* `AttachmentsPanel.Item.Name` — the file-name line. Deliberately plain text:
|
|
145
|
+
* unlike `AttachmentPill.Label`, it does not wrap the name in a shimmer while
|
|
146
|
+
* the attachment uploads. Compose `AttachmentPill.Label` for that treatment.
|
|
147
|
+
*/
|
|
148
|
+
function AttachmentsPanelItemName({ className, ref, ...props }) {
|
|
149
|
+
const { attachment } = useAttachmentPill();
|
|
150
|
+
return (React.createElement("p", { ref: ref, className: cn("truncate text-sm font-medium leading-tight", className), ...props }, attachment.name || "Attachment"));
|
|
151
|
+
}
|
|
152
|
+
AttachmentsPanelItemName.displayName = "AttachmentsPanel.Item.Name";
|
|
153
|
+
/**
|
|
154
|
+
* `AttachmentsPanel.Item.Size` — the human-formatted byte label (`formatSize`).
|
|
155
|
+
* Renders nothing when the file has no size. Always the faint secondary color;
|
|
156
|
+
* the error/destructive state line stays with `AttachmentPill.Label`.
|
|
157
|
+
*/
|
|
158
|
+
function AttachmentsPanelItemSize({ className, ref, ...props }) {
|
|
159
|
+
const { attachment } = useAttachmentPill();
|
|
160
|
+
if (attachment.size == null)
|
|
161
|
+
return null;
|
|
162
|
+
return (React.createElement("p", { ref: ref, className: cn("truncate text-xs leading-tight text-[var(--faint)]", className), ...props }, formatSize(attachment.size)));
|
|
163
|
+
}
|
|
164
|
+
AttachmentsPanelItemSize.displayName = "AttachmentsPanel.Item.Size";
|
|
145
165
|
/**
|
|
146
166
|
* `AttachmentsPanel.Item.Remove` — the delete control, wired to the panel's
|
|
147
167
|
* `onRemoveUpload` for this item. Renders nothing when no remove handler is set.
|
|
@@ -158,6 +178,8 @@ AttachmentsPanelItemRemove.displayName = "AttachmentsPanel.Item.Remove";
|
|
|
158
178
|
const AttachmentsPanelItemCompound = Object.assign(AttachmentsPanelItem, {
|
|
159
179
|
Icon: AttachmentsPanelItemIcon,
|
|
160
180
|
Preview: AttachmentsPanelItemPreview,
|
|
181
|
+
Name: AttachmentsPanelItemName,
|
|
182
|
+
Size: AttachmentsPanelItemSize,
|
|
161
183
|
Remove: AttachmentsPanelItemRemove,
|
|
162
184
|
});
|
|
163
185
|
AttachmentsPanelItem.displayName = "AttachmentsPanel.Item";
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
* @module react/components/chat/chat/components/sidebar
|
|
39
39
|
*/
|
|
40
40
|
import * as React from "react";
|
|
41
|
-
import type { ChatSidebarEmptyProps, ChatSidebarGroupProps, ChatSidebarItemActionProps, ChatSidebarItemContextValue, ChatSidebarItemMenuProps, ChatSidebarItemProps, ChatSidebarListProps, ChatSidebarNewButtonProps, ChatSidebarProps, ChatSidebarRootProps } from "./sidebar.types.js";
|
|
42
|
-
export type { ChatSidebarEmptyProps, ChatSidebarGroupProps, ChatSidebarItemActionProps, ChatSidebarItemContextValue, ChatSidebarItemMenuProps, ChatSidebarItemProps, ChatSidebarItemRenderOptions, ChatSidebarListProps, ChatSidebarNewButtonProps, ChatSidebarProps, ChatSidebarRootProps, } from "./sidebar.types.js";
|
|
41
|
+
import type { ChatSidebarEmptyProps, ChatSidebarGroupProps, ChatSidebarItemActionProps, ChatSidebarItemContextValue, ChatSidebarItemMenuProps, ChatSidebarItemProps, ChatSidebarItemTitleProps, ChatSidebarListProps, ChatSidebarNewButtonProps, ChatSidebarProps, ChatSidebarRootProps } from "./sidebar.types.js";
|
|
42
|
+
export type { ChatSidebarEmptyProps, ChatSidebarGroupProps, ChatSidebarItemActionProps, ChatSidebarItemContextValue, ChatSidebarItemMenuProps, ChatSidebarItemProps, ChatSidebarItemRenderOptions, ChatSidebarItemTitleProps, ChatSidebarListProps, ChatSidebarNewButtonProps, ChatSidebarProps, ChatSidebarRootProps, } from "./sidebar.types.js";
|
|
43
43
|
/** Context provider + outer rail container for the compound sidebar. */
|
|
44
44
|
export declare function ChatSidebarRoot(props: ChatSidebarRootProps): React.ReactElement | null;
|
|
45
45
|
export declare namespace ChatSidebarRoot {
|
|
@@ -65,9 +65,17 @@ export declare namespace ChatSidebarNewButton {
|
|
|
65
65
|
*/
|
|
66
66
|
export declare const useChatSidebarItem: () => ChatSidebarItemContextValue;
|
|
67
67
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
|
|
68
|
+
* The row's label: the conversation title (or custom children). Use it inside
|
|
69
|
+
* an `<ChatSidebar.Item>` to compose the row body and skip its default title.
|
|
70
|
+
*/
|
|
71
|
+
export declare function ChatSidebarItemTitle({ children, className, ref, ...props }: ChatSidebarItemTitleProps): React.ReactElement;
|
|
72
|
+
export declare namespace ChatSidebarItemTitle {
|
|
73
|
+
var displayName: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* A single conversation row with selection, rename, and delete behavior.
|
|
77
|
+
* A `<ChatSidebar.Item.Menu>` fills the action slot. A Title child composes the
|
|
78
|
+
* row label, with fragment-grouped leaves treated as direct children.
|
|
71
79
|
*/
|
|
72
80
|
export declare function ChatSidebarItem({ conversation, className, children, ref, }: ChatSidebarItemProps): React.ReactElement;
|
|
73
81
|
export declare namespace ChatSidebarItem {
|
|
@@ -113,8 +121,9 @@ declare function ChatSidebarBase(props: ChatSidebarProps): React.ReactElement |
|
|
|
113
121
|
declare namespace ChatSidebarBase {
|
|
114
122
|
var displayName: string;
|
|
115
123
|
}
|
|
116
|
-
/** `ChatSidebar.Item` compound
|
|
124
|
+
/** `ChatSidebar.Item` compound: the row plus its composable label and menu leaves. */
|
|
117
125
|
export type ChatSidebarItemComponent = typeof ChatSidebarItem & {
|
|
126
|
+
Title: typeof ChatSidebarItemTitle;
|
|
118
127
|
Menu: typeof ChatSidebarItemMenu;
|
|
119
128
|
Rename: typeof ChatSidebarItemRename;
|
|
120
129
|
Delete: typeof ChatSidebarItemDelete;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/sidebar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,OAAO,KAAK,EAGV,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAsG5B,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAkCtF;yBAlCe,eAAe;;;AAyC/B,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,GAAG,GACJ,EAAE,yBAAyB,GAAG,KAAK,CAAC,YAAY,CAgBhD;yBArBe,oBAAoB;;;AAmCpC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,mCAA2B,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,GAAG,GACJ,EAAE,oBAAoB,GAAG,KAAK,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/sidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -169,9 +169,30 @@ const [ChatSidebarItemContext, useChatSidebarItemStrict] = createStrictContext("
|
|
|
169
169
|
*/
|
|
170
170
|
export const useChatSidebarItem = useChatSidebarItemStrict;
|
|
171
171
|
/**
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
|
|
172
|
+
* The row's label: the conversation title (or custom children). Use it inside
|
|
173
|
+
* an `<ChatSidebar.Item>` to compose the row body and skip its default title.
|
|
174
|
+
*/
|
|
175
|
+
export function ChatSidebarItemTitle({ children, className, ref, ...props }) {
|
|
176
|
+
const { conversation } = useChatSidebarItem();
|
|
177
|
+
return (React.createElement("span", { ...props, ref: ref, className: cn("block min-w-0 flex-1 truncate text-[13px] leading-snug", className) }, children ?? conversation.title));
|
|
178
|
+
}
|
|
179
|
+
ChatSidebarItemTitle.displayName = "ChatSidebar.Item.Title";
|
|
180
|
+
function flattenItemParts(children, parentKey = "") {
|
|
181
|
+
return React.Children.toArray(children).flatMap((child) => {
|
|
182
|
+
if (!React.isValidElement(child))
|
|
183
|
+
return child;
|
|
184
|
+
const childKey = String(child.key);
|
|
185
|
+
const itemKey = `${parentKey}${childKey.length}:${childKey}`;
|
|
186
|
+
if (child.type !== React.Fragment)
|
|
187
|
+
return React.cloneElement(child, { key: itemKey });
|
|
188
|
+
const props = child.props;
|
|
189
|
+
return flattenItemParts(props.children, itemKey);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* A single conversation row with selection, rename, and delete behavior.
|
|
194
|
+
* A `<ChatSidebar.Item.Menu>` fills the action slot. A Title child composes the
|
|
195
|
+
* row label, with fragment-grouped leaves treated as direct children.
|
|
175
196
|
*/
|
|
176
197
|
export function ChatSidebarItem({ conversation, className, children, ref, }) {
|
|
177
198
|
const { activeId, onSelect, onDelete, onRename } = useChatSidebarContext();
|
|
@@ -204,8 +225,19 @@ export function ChatSidebarItem({ conversation, className, children, ref, }) {
|
|
|
204
225
|
if (editing) {
|
|
205
226
|
return (React.createElement(ChatSidebarRenameEditor, { ref: ref, className: className, value: editValue, onChange: setEditValue, onCommit: commitRename, onCancel: () => setEditing(false) }));
|
|
206
227
|
}
|
|
228
|
+
// A Title child moves children into the row body; otherwise they compose the action slot.
|
|
229
|
+
// Transparent fragments keep title and menu partitioning consistent without duplication.
|
|
230
|
+
const parts = flattenItemParts(children);
|
|
231
|
+
const composesTitle = parts.some((part) => React.isValidElement(part) && part.type === ChatSidebarItemTitle);
|
|
232
|
+
const menuParts = parts.filter((part) => React.isValidElement(part) && part.type === ChatSidebarItemMenu);
|
|
233
|
+
const bodyParts = parts.filter((part) => !menuParts.includes(part));
|
|
207
234
|
return (React.createElement(ChatSidebarItemContext.Provider, { value: itemContext },
|
|
208
|
-
React.createElement(ListItem, { ref: ref, title: conversation.title, active: isActive || menuOpen, className: className, onActivate: () => onSelect(conversation.id), primaryActionProps: {
|
|
235
|
+
React.createElement(ListItem, { ref: ref, title: composesTitle ? undefined : conversation.title, active: isActive || menuOpen, className: className, onActivate: () => onSelect(conversation.id), primaryActionProps: {
|
|
236
|
+
"aria-current": isActive ? "page" : undefined,
|
|
237
|
+
className: composesTitle ? "flex items-center gap-1" : undefined,
|
|
238
|
+
}, action: composesTitle
|
|
239
|
+
? (menuParts.length > 0 ? menuParts : React.createElement(ChatSidebarItemMenu, null))
|
|
240
|
+
: children ?? React.createElement(ChatSidebarItemMenu, null) }, composesTitle ? bodyParts : undefined)));
|
|
209
241
|
}
|
|
210
242
|
ChatSidebarItem.displayName = "ChatSidebar.Item";
|
|
211
243
|
/** The row's `…` dropdown. Reads row state from {@link useChatSidebarItem}. */
|
|
@@ -323,6 +355,7 @@ function ChatSidebarBase(props) {
|
|
|
323
355
|
}
|
|
324
356
|
ChatSidebarBase.displayName = "ChatSidebar";
|
|
325
357
|
const ChatSidebarItemCompound = Object.assign(ChatSidebarItem, {
|
|
358
|
+
Title: ChatSidebarItemTitle,
|
|
326
359
|
Menu: ChatSidebarItemMenu,
|
|
327
360
|
Rename: ChatSidebarItemRename,
|
|
328
361
|
Delete: ChatSidebarItemDelete,
|
|
@@ -80,12 +80,23 @@ export interface ChatSidebarItemProps {
|
|
|
80
80
|
className?: string;
|
|
81
81
|
/**
|
|
82
82
|
* Compose the row's action slot, typically a `<ChatSidebar.Item.Menu>`.
|
|
83
|
-
*
|
|
83
|
+
* When the children include a `<ChatSidebar.Item.Title>`, they compose the
|
|
84
|
+
* row's label body instead; a sibling `<ChatSidebar.Item.Menu>` still fills
|
|
85
|
+
* the action slot when it is direct or grouped in a fragment (the default
|
|
86
|
+
* `…` menu is used when none is given). Omit for the default title + `…`
|
|
87
|
+
* rename/delete menu.
|
|
84
88
|
*/
|
|
85
89
|
children?: React.ReactNode;
|
|
86
90
|
/** React 19: ref is attached to the current row root in display and rename modes. */
|
|
87
91
|
ref?: React.Ref<HTMLDivElement>;
|
|
88
92
|
}
|
|
93
|
+
/** Props for {@link ChatSidebarItemTitle}. */
|
|
94
|
+
export interface ChatSidebarItemTitleProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
95
|
+
/** Override the label. Defaults to the conversation title. */
|
|
96
|
+
children?: React.ReactNode;
|
|
97
|
+
/** React 19: ref is a regular prop. */
|
|
98
|
+
ref?: React.Ref<HTMLSpanElement>;
|
|
99
|
+
}
|
|
89
100
|
/** Props for {@link ChatSidebarItemMenu}. */
|
|
90
101
|
export interface ChatSidebarItemMenuProps {
|
|
91
102
|
/** Override the trigger glyph. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.types.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/sidebar.types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sidebar.types.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/sidebar.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,9 @@ export declare namespace ChatInputToolbar {
|
|
|
41
41
|
* `ChatInput.Root` — the provider shell for a fully custom composer. Supplies
|
|
42
42
|
* `ChatInputContext` from props and renders your children, so you arrange
|
|
43
43
|
* `ChatInput.Field` + the toolbar sub-parts yourself (like `Message.Root`). The
|
|
44
|
-
* default `<ChatInput>` is exactly this Root plus the standard body.
|
|
44
|
+
* default `<ChatInput>` is exactly this Root plus the standard body. Omitted
|
|
45
|
+
* props fall back to the surrounding `ChatContext` (`<Chat.Root chat={…}>`),
|
|
46
|
+
* so a propless Root wires itself to the shared session; explicit props win.
|
|
45
47
|
*/
|
|
46
48
|
export declare function ChatInputRoot({ className, children, ref, ...state }: ChatInputRootProps): React.ReactElement;
|
|
47
49
|
export declare namespace ChatInputRoot {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-composer.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/composition/chat-composer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAElC,mBAAmB,0BAA0B,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AAM1F,iCAAiC;AACjC,wBAAgB,cAAc,CAC5B,EAAE,WAAiC,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,GACnF,KAAK,CAAC,YAAY,CAqBpB;AAED,yDAAyD;AACzD,wBAAgB,cAAc,CAC5B,EAAE,SAAS,EAAE,EAAE,mBAAmB,GACjC,KAAK,CAAC,YAAY,GAAG,IAAI,CAa3B;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAC7B,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,oBAAoB,GAChE,KAAK,CAAC,YAAY,GAAG,IAAI,CAmB3B;yBArBe,eAAe;;;AAwB/B;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,GAC5D,KAAK,CAAC,YAAY,CAWpB;yBAbe,gBAAgB;;;AAoBhC
|
|
1
|
+
{"version":3,"file":"chat-composer.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/composition/chat-composer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAElC,mBAAmB,0BAA0B,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AAM1F,iCAAiC;AACjC,wBAAgB,cAAc,CAC5B,EAAE,WAAiC,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,GACnF,KAAK,CAAC,YAAY,CAqBpB;AAED,yDAAyD;AACzD,wBAAgB,cAAc,CAC5B,EAAE,SAAS,EAAE,EAAE,mBAAmB,GACjC,KAAK,CAAC,YAAY,GAAG,IAAI,CAa3B;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAC7B,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,oBAAoB,GAChE,KAAK,CAAC,YAAY,GAAG,IAAI,CAmB3B;yBArBe,eAAe;;;AAwB/B;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,GAC5D,KAAK,CAAC,YAAY,CAWpB;yBAbe,gBAAgB;;;AAoBhC;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,GACzD,KAAK,CAAC,YAAY,CAepB;yBAjBe,aAAa;;;AAoB7B,2BAA2B;AAC3B,iBAAS,aAAa,CACpB,EACE,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EAIR,SAAS,EACT,WAAiC,EACjC,KAAK,EACL,IAAI,EACJ,OAAO,EACP,WAAmB,EACnB,UAAU,EACV,MAAM,EACN,KAAK,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,MAAM,EACN,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,QAAQ,EACR,GAAG,GACJ,EAAE,cAAc,GAChB,KAAK,CAAC,YAAY,CA+HpB;kBA9JQ,aAAa;;;AAiKtB;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;CAWpB,CAAC"}
|
|
@@ -71,11 +71,13 @@ ChatInputToolbar.displayName = "ChatInput.Toolbar";
|
|
|
71
71
|
* `ChatInput.Root` — the provider shell for a fully custom composer. Supplies
|
|
72
72
|
* `ChatInputContext` from props and renders your children, so you arrange
|
|
73
73
|
* `ChatInput.Field` + the toolbar sub-parts yourself (like `Message.Root`). The
|
|
74
|
-
* default `<ChatInput>` is exactly this Root plus the standard body.
|
|
74
|
+
* default `<ChatInput>` is exactly this Root plus the standard body. Omitted
|
|
75
|
+
* props fall back to the surrounding `ChatContext` (`<Chat.Root chat={…}>`),
|
|
76
|
+
* so a propless Root wires itself to the shared session; explicit props win.
|
|
75
77
|
*/
|
|
76
78
|
export function ChatInputRoot({ className, children, ref, ...state }) {
|
|
77
79
|
const baseCtxValue = useComposerValue(state);
|
|
78
|
-
const { contextValue, fileInput } = useChatInputAttachmentPicker(baseCtxValue,
|
|
80
|
+
const { contextValue, fileInput } = useChatInputAttachmentPicker(baseCtxValue, baseCtxValue.onAttach, state.attachAccept);
|
|
79
81
|
return (React.createElement(ChatInputContextProvider, { value: contextValue },
|
|
80
82
|
React.createElement("div", { ref: ref, className: cn("flex-shrink-0 pb-6 pt-2", className) },
|
|
81
83
|
fileInput,
|
|
@@ -83,7 +85,11 @@ export function ChatInputRoot({ className, children, ref, ...state }) {
|
|
|
83
85
|
}
|
|
84
86
|
ChatInputRoot.displayName = "ChatInput.Root";
|
|
85
87
|
/** Render the composer. */
|
|
86
|
-
function ChatInputBase({ input, onChange, setInput, onSubmit,
|
|
88
|
+
function ChatInputBase({ input, onChange, setInput, onSubmit,
|
|
89
|
+
// No `= false` default: an omitted `isLoading` must stay `undefined` so
|
|
90
|
+
// `useComposerValue` can inherit the surrounding session's loading state
|
|
91
|
+
// (a default would always win over the context and hide Stop mid-turn).
|
|
92
|
+
isLoading, placeholder = "Type a message...", theme, stop, onVoice, isListening = false, transcript, models, model, onModelChange, toolbarStart, onAttach, onSelectAttachment, onDrop, attachAccept, attachments, onRemoveAttachment, onAttachClick, className, children, ref, }) {
|
|
87
93
|
{
|
|
88
94
|
// Return focus to the editor after attaching (menu pick or drop) so the
|
|
89
95
|
// user can keep typing without clicking back into the field.
|
|
@@ -98,7 +104,6 @@ function ChatInputBase({ input, onChange, setInput, onSubmit, isLoading = false,
|
|
|
98
104
|
}
|
|
99
105
|
: undefined, [focusField]);
|
|
100
106
|
const handleAttach = withFocus(onAttach);
|
|
101
|
-
const { isDragActive, onDragEnter, onDragLeave, onDragOver, onDrop: onFileDrop, } = useDropZone(withFocus(onDrop ?? onAttach));
|
|
102
107
|
const baseCtxValue = useComposerValue({
|
|
103
108
|
input,
|
|
104
109
|
onChange,
|
|
@@ -118,7 +123,13 @@ function ChatInputBase({ input, onChange, setInput, onSubmit, isLoading = false,
|
|
|
118
123
|
attachments,
|
|
119
124
|
onRemoveAttachment,
|
|
120
125
|
});
|
|
121
|
-
|
|
126
|
+
// Attach + drop fall back to the context-resolved handler (like
|
|
127
|
+
// `ChatInput.Root`), so a propless composer inside `<Chat.Root chat={…}>`
|
|
128
|
+
// keeps a working picker and drop zone. Both explicit and inherited
|
|
129
|
+
// handlers restore field focus after a selection.
|
|
130
|
+
const resolvedAttach = handleAttach ?? withFocus(baseCtxValue.onAttach);
|
|
131
|
+
const { isDragActive, onDragEnter, onDragLeave, onDragOver, onDrop: onFileDrop, } = useDropZone(withFocus(onDrop) ?? resolvedAttach);
|
|
132
|
+
const { contextValue, fileInput } = useChatInputAttachmentPicker(baseCtxValue, resolvedAttach, attachAccept);
|
|
122
133
|
return (React.createElement(ChatInputContextProvider, { value: contextValue },
|
|
123
134
|
React.createElement("div", { ref: ref, className: cn("flex-shrink-0 pb-6", className) },
|
|
124
135
|
fileInput,
|
|
@@ -127,7 +138,7 @@ function ChatInputBase({ input, onChange, setInput, onSubmit, isLoading = false,
|
|
|
127
138
|
React.createElement(ChatInputForm, { onSubmit: contextValue.onSubmit },
|
|
128
139
|
React.createElement("div", { onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragOver: onDragOver, onDrop: onFileDrop, ref: fieldContainerRef, className: cn("relative overflow-hidden rounded-[var(--radius-lg)] border border-transparent bg-[var(--secondary)] px-3 py-2 shadow-sm transition-all md:px-4 md:py-3", isDragActive && "border-dashed border-[var(--edge-medium)]") },
|
|
129
140
|
React.createElement(DropZoneOverlay, { visible: isDragActive }),
|
|
130
|
-
attachments
|
|
141
|
+
contextValue.attachments.length > 0 && (React.createElement("div", { className: "mb-2.5 flex flex-wrap items-center gap-2" }, contextValue.attachments.map((file) => (React.createElement(AttachmentPill, { key: file.id, attachment: file, onRemove: contextValue.onRemoveAttachment, className: "w-[200px]" }))))),
|
|
131
142
|
React.createElement(ChatInputField, { placeholder: placeholder, className: theme?.input }),
|
|
132
143
|
React.createElement("div", { className: "mt-2.5 flex min-h-[44px] items-center justify-between gap-1.5 md:gap-2" },
|
|
133
144
|
React.createElement("div", { className: "flex min-w-0 items-center gap-1.5 md:gap-2" },
|
|
@@ -105,12 +105,19 @@ export interface ChatInputToolbarProps extends React.HTMLAttributes<HTMLDivEleme
|
|
|
105
105
|
/** React 19: ref is a regular prop. */
|
|
106
106
|
ref?: React.Ref<HTMLDivElement>;
|
|
107
107
|
}
|
|
108
|
-
/**
|
|
108
|
+
/**
|
|
109
|
+
* Props accepted by `ChatInput`.
|
|
110
|
+
*
|
|
111
|
+
* Every prop is optional: omitted state falls back to the surrounding
|
|
112
|
+
* `ChatContext` (`<Chat.Root chat={…}>`), so a propless `<ChatInput />` wires
|
|
113
|
+
* itself to the shared session. Explicit props always win, and a standalone
|
|
114
|
+
* composer outside a `<Chat.Root>` still supplies its own `input`/`onChange`.
|
|
115
|
+
*/
|
|
109
116
|
export interface ChatInputProps {
|
|
110
|
-
/** Current text value of the composer input (controlled). */
|
|
111
|
-
input
|
|
112
|
-
/** Fired as the user edits the input. */
|
|
113
|
-
onChange
|
|
117
|
+
/** Current text value of the composer input (controlled). Falls back to `ChatContext.input`. */
|
|
118
|
+
input?: string;
|
|
119
|
+
/** Fired as the user edits the input. Falls back to `ChatContext.setInput`. */
|
|
120
|
+
onChange?: (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
|
|
114
121
|
/**
|
|
115
122
|
* Update the controlled input value for headless consumers. The preset wires
|
|
116
123
|
* this automatically. Direct consumers must provide it before calling
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-composer.types.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/composition/chat-composer.types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chat-composer.types.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/composition/chat-composer.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,26 +7,39 @@
|
|
|
7
7
|
* @module react/components/chat/composition/chat-root
|
|
8
8
|
*/
|
|
9
9
|
import * as React from "react";
|
|
10
|
-
import type { ChatMessage, ChatStatus } from "../../../../../agent/react/index.js";
|
|
10
|
+
import type { ChatMessage, ChatStatus, UseChatResult } from "../../../../../agent/react/index.js";
|
|
11
11
|
import type { ChatTheme } from "../../theme.js";
|
|
12
12
|
import type { ModelOption } from "../../model-selector.js";
|
|
13
13
|
import type { AttachmentInfo } from "../components/attachment-pill.js";
|
|
14
14
|
import type { FeedbackValue } from "../components/message-feedback.js";
|
|
15
15
|
import type { Source } from "../components/sources.js";
|
|
16
16
|
import type { BranchInfo } from "../../../../../agent/react/index.js";
|
|
17
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Props accepted by chat root.
|
|
19
|
+
*
|
|
20
|
+
* Supply either `chat` (a `useChat()` session) or the flat props
|
|
21
|
+
* (`messages`, `input`, `onSubmit`, …). Both are optional so the two modes can
|
|
22
|
+
* mix, but a `<Chat.Root>` given neither renders an empty chat whose
|
|
23
|
+
* `setInput`/`onSubmit` are inert no-ops.
|
|
24
|
+
*/
|
|
18
25
|
export interface ChatRootProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
19
26
|
children: React.ReactNode;
|
|
20
27
|
/** React 19: ref is a regular prop. */
|
|
21
28
|
ref?: React.Ref<HTMLDivElement>;
|
|
22
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Drive the chat surface from a `useChat()` session you own:
|
|
31
|
+
* `<Chat.Root chat={useChat()}>`. Folds the session state into the shared
|
|
32
|
+
* context; the flat props below stay as an explicit override path.
|
|
33
|
+
*/
|
|
34
|
+
chat?: UseChatResult;
|
|
35
|
+
messages?: ChatMessage[];
|
|
23
36
|
isLoading?: boolean;
|
|
24
37
|
/** Streaming lifecycle of the current turn (`useChat().status`). */
|
|
25
38
|
status?: ChatStatus;
|
|
26
39
|
/** Id of the assistant message currently streaming (`useChat().streamingMessageId`). */
|
|
27
40
|
streamingMessageId?: string | null;
|
|
28
41
|
error?: Error | null;
|
|
29
|
-
input
|
|
42
|
+
input?: string;
|
|
30
43
|
setInput?: (value: string) => void;
|
|
31
44
|
onSubmit?: (e?: React.FormEvent) => void | Promise<void>;
|
|
32
45
|
onStop?: () => void;
|
|
@@ -50,7 +63,7 @@ export interface ChatRootProps extends Omit<React.HTMLAttributes<HTMLDivElement>
|
|
|
50
63
|
maxHeight?: string;
|
|
51
64
|
}
|
|
52
65
|
/** Render chat root. */
|
|
53
|
-
export declare function ChatRoot({ children, messages, isLoading, status, streamingMessageId, error, input, setInput, onSubmit, onStop, onReload, model, models, onModelChange, agent, attachments, onAttach, onRemoveAttachment, editMessage, getBranches, switchBranch, onFeedback, onSourceClick, theme: userTheme, maxHeight, className, style, ref, ...containerProps }: ChatRootProps): React.ReactElement;
|
|
66
|
+
export declare function ChatRoot({ children, chat, messages: messagesProp, isLoading: isLoadingProp, status: statusProp, streamingMessageId: streamingMessageIdProp, error: errorProp, input: inputProp, setInput: setInputProp, onSubmit: onSubmitProp, onStop: onStopProp, onReload: onReloadProp, model: modelProp, models, onModelChange: onModelChangeProp, agent, attachments, onAttach, onRemoveAttachment, editMessage: editMessageProp, getBranches: getBranchesProp, switchBranch: switchBranchProp, onFeedback, onSourceClick, theme: userTheme, maxHeight, className, style, ref, ...containerProps }: ChatRootProps): React.ReactElement;
|
|
54
67
|
export declare namespace ChatRoot {
|
|
55
68
|
var displayName: string;
|
|
56
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-root.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/composition/chat-root.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"chat-root.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/composition/chat-root.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAClG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAShD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAKtE;;;;;;;GAOG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC3F,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC;;;;OAIG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IAGrB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,wFAAwF;IACxF,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAGrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAGnC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAGtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAK1C,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAGrD,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAG1C,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,UAAU,CAAC;IAChD,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAGhE,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAGlE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAGxD,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAwB;AACxB,wBAAgB,QAAQ,CACtB,EACE,QAAQ,EACR,IAAI,EACJ,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,UAAU,EAClB,kBAAkB,EAAE,sBAAsB,EAC1C,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,SAAS,EAChB,MAAW,EACX,aAAa,EAAE,iBAAiB,EAChC,KAAK,EACL,WAAgB,EAChB,QAAQ,EACR,kBAAkB,EAClB,WAAW,EAAE,eAAe,EAC5B,WAAW,EAAE,eAAe,EAC5B,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EACV,aAAa,EACb,KAAK,EAAE,SAAS,EAChB,SAAkB,EAClB,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,cAAc,EAClB,EAAE,aAAa,GACf,KAAK,CAAC,YAAY,CAkJpB;yBAnLe,QAAQ"}
|
|
@@ -11,8 +11,69 @@ import { ChatContainer } from "../../../../primitives/index.js";
|
|
|
11
11
|
import { useDocumentNonce } from "../../../ui/csp-nonce.js";
|
|
12
12
|
import { cn, defaultChatTheme, generateTokenCSS, mergeThemes, UI_SCOPE_ATTRS, } from "../../theme.js";
|
|
13
13
|
import { ChatContextProvider } from "../contexts/chat-context.js";
|
|
14
|
+
import { attachmentsToFileParts, hasPendingAttachments } from "../chat-attachments.js";
|
|
14
15
|
/** Render chat root. */
|
|
15
|
-
export function ChatRoot({ children, messages, isLoading
|
|
16
|
+
export function ChatRoot({ children, chat, messages: messagesProp, isLoading: isLoadingProp, status: statusProp, streamingMessageId: streamingMessageIdProp, error: errorProp, input: inputProp, setInput: setInputProp, onSubmit: onSubmitProp, onStop: onStopProp, onReload: onReloadProp, model: modelProp, models = [], onModelChange: onModelChangeProp, agent, attachments = [], onAttach, onRemoveAttachment, editMessage: editMessageProp, getBranches: getBranchesProp, switchBranch: switchBranchProp, onFeedback, onSourceClick, theme: userTheme, maxHeight = "100%", className, style, ref, ...containerProps }) {
|
|
17
|
+
// `chat` folds the session's flat state into the context; each explicit flat
|
|
18
|
+
// prop wins over the session value (issue #69's override path).
|
|
19
|
+
const messages = messagesProp ?? chat?.messages ?? [];
|
|
20
|
+
const isLoading = isLoadingProp ?? chat?.isLoading ?? false;
|
|
21
|
+
const status = statusProp ?? chat?.status;
|
|
22
|
+
// Nullable props compare against `undefined`, not nullish: `error={null}` and
|
|
23
|
+
// `streamingMessageId={null}` are explicit overrides that clear the session
|
|
24
|
+
// value, so `??` would wrongly restore it from `chat`.
|
|
25
|
+
const streamingMessageId = streamingMessageIdProp !== undefined
|
|
26
|
+
? streamingMessageIdProp
|
|
27
|
+
: chat?.streamingMessageId;
|
|
28
|
+
const error = errorProp !== undefined ? errorProp : (chat?.error ?? null);
|
|
29
|
+
const input = inputProp ?? chat?.input ?? "";
|
|
30
|
+
const setInput = setInputProp ?? chat?.setInput;
|
|
31
|
+
const model = modelProp ?? chat?.model;
|
|
32
|
+
const hasFlatSubmitState = inputProp !== undefined || setInputProp !== undefined ||
|
|
33
|
+
isLoadingProp !== undefined || modelProp !== undefined;
|
|
34
|
+
const submitSession = React.useCallback((e) => {
|
|
35
|
+
if (!chat)
|
|
36
|
+
return;
|
|
37
|
+
if (hasPendingAttachments(attachments)) {
|
|
38
|
+
e?.preventDefault();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const files = attachmentsToFileParts(attachments);
|
|
42
|
+
if (files.length === 0 && !hasFlatSubmitState)
|
|
43
|
+
return chat.handleSubmit(e);
|
|
44
|
+
e?.preventDefault();
|
|
45
|
+
if (isLoading)
|
|
46
|
+
return;
|
|
47
|
+
const text = input.trim();
|
|
48
|
+
if (!text && files.length === 0)
|
|
49
|
+
return;
|
|
50
|
+
setInput?.("");
|
|
51
|
+
for (const attachment of attachments) {
|
|
52
|
+
if (attachment.url)
|
|
53
|
+
onRemoveAttachment?.(attachment.id);
|
|
54
|
+
}
|
|
55
|
+
return chat.sendMessage({
|
|
56
|
+
text,
|
|
57
|
+
...(files.length > 0 ? { files } : {}),
|
|
58
|
+
...(model !== undefined ? { model } : {}),
|
|
59
|
+
});
|
|
60
|
+
}, [
|
|
61
|
+
attachments,
|
|
62
|
+
chat,
|
|
63
|
+
hasFlatSubmitState,
|
|
64
|
+
input,
|
|
65
|
+
isLoading,
|
|
66
|
+
model,
|
|
67
|
+
onRemoveAttachment,
|
|
68
|
+
setInput,
|
|
69
|
+
]);
|
|
70
|
+
const onSubmit = onSubmitProp ?? (chat ? submitSession : undefined);
|
|
71
|
+
const onStop = onStopProp ?? chat?.stop;
|
|
72
|
+
const onReload = onReloadProp ?? chat?.reload;
|
|
73
|
+
const onModelChange = onModelChangeProp ?? chat?.setModel;
|
|
74
|
+
const editMessage = editMessageProp ?? chat?.editMessage;
|
|
75
|
+
const getBranches = getBranchesProp ?? chat?.getBranches;
|
|
76
|
+
const switchBranch = switchBranchProp ?? chat?.switchBranch;
|
|
16
77
|
const theme = React.useMemo(() => mergeThemes(defaultChatTheme, userTheme), [userTheme]);
|
|
17
78
|
const nonce = useDocumentNonce();
|
|
18
79
|
const tokenCSS = React.useMemo(() => generateTokenCSS(), []);
|
|
@@ -33,6 +94,7 @@ export function ChatRoot({ children, messages, isLoading = false, status, stream
|
|
|
33
94
|
input,
|
|
34
95
|
setInput: setInput ?? (() => { }),
|
|
35
96
|
onSubmit: onSubmit ?? (() => { }),
|
|
97
|
+
sendMessage: onSubmitProp === undefined ? chat?.sendMessage : undefined,
|
|
36
98
|
onStop,
|
|
37
99
|
onReload,
|
|
38
100
|
model,
|
|
@@ -60,6 +122,8 @@ export function ChatRoot({ children, messages, isLoading = false, status, stream
|
|
|
60
122
|
input,
|
|
61
123
|
setInput,
|
|
62
124
|
onSubmit,
|
|
125
|
+
chat?.sendMessage,
|
|
126
|
+
onSubmitProp,
|
|
63
127
|
onStop,
|
|
64
128
|
onReload,
|
|
65
129
|
model,
|