@adonis-agora/agent 0.61.0 → 0.63.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +91 -0
- package/README.md +12 -7
- package/dist/configure.d.ts +7 -5
- package/dist/configure.d.ts.map +1 -1
- package/dist/configure.js +7 -5
- package/dist/configure.js.map +1 -1
- package/dist/providers/a2a_provider.d.ts +14 -0
- package/dist/providers/a2a_provider.d.ts.map +1 -0
- package/dist/providers/a2a_provider.js +136 -0
- package/dist/providers/a2a_provider.js.map +1 -0
- package/dist/providers/agent_provider.d.ts.map +1 -1
- package/dist/providers/agent_provider.js +81 -25
- package/dist/providers/agent_provider.js.map +1 -1
- package/dist/providers/mcp_provider.d.ts +3 -0
- package/dist/providers/mcp_provider.d.ts.map +1 -1
- package/dist/providers/mcp_provider.js +147 -62
- package/dist/providers/mcp_provider.js.map +1 -1
- package/dist/src/a2a/auth.d.ts +67 -0
- package/dist/src/a2a/auth.d.ts.map +1 -0
- package/dist/src/a2a/auth.js +47 -0
- package/dist/src/a2a/auth.js.map +1 -0
- package/dist/src/a2a/define_config.d.ts +74 -0
- package/dist/src/a2a/define_config.d.ts.map +1 -0
- package/dist/src/a2a/define_config.js +5 -0
- package/dist/src/a2a/define_config.js.map +1 -0
- package/dist/src/a2a/gate.d.ts +23 -0
- package/dist/src/a2a/gate.d.ts.map +1 -0
- package/dist/src/a2a/gate.js +56 -0
- package/dist/src/a2a/gate.js.map +1 -0
- package/dist/src/a2a/handler.d.ts +65 -0
- package/dist/src/a2a/handler.d.ts.map +1 -0
- package/dist/src/a2a/handler.js +322 -0
- package/dist/src/a2a/handler.js.map +1 -0
- package/dist/src/a2a/index.d.ts +15 -0
- package/dist/src/a2a/index.d.ts.map +1 -0
- package/dist/src/a2a/index.js +9 -0
- package/dist/src/a2a/index.js.map +1 -0
- package/dist/src/a2a/permission-tool.d.ts +17 -0
- package/dist/src/a2a/permission-tool.d.ts.map +1 -0
- package/dist/src/a2a/permission-tool.js +70 -0
- package/dist/src/a2a/permission-tool.js.map +1 -0
- package/dist/src/a2a/protocol.d.ts +100 -0
- package/dist/src/a2a/protocol.d.ts.map +1 -0
- package/dist/src/a2a/protocol.js +106 -0
- package/dist/src/a2a/protocol.js.map +1 -0
- package/dist/src/a2a/runtime.d.ts +6 -0
- package/dist/src/a2a/runtime.d.ts.map +1 -0
- package/dist/src/a2a/runtime.js +13 -0
- package/dist/src/a2a/runtime.js.map +1 -0
- package/dist/src/a2a/server_middleware.d.ts +13 -0
- package/dist/src/a2a/server_middleware.d.ts.map +1 -0
- package/dist/src/a2a/server_middleware.js +18 -0
- package/dist/src/a2a/server_middleware.js.map +1 -0
- package/dist/src/a2a/store.d.ts +79 -0
- package/dist/src/a2a/store.d.ts.map +1 -0
- package/dist/src/a2a/store.js +151 -0
- package/dist/src/a2a/store.js.map +1 -0
- package/dist/src/a2a/turn.d.ts +80 -0
- package/dist/src/a2a/turn.d.ts.map +1 -0
- package/dist/src/a2a/turn.js +211 -0
- package/dist/src/a2a/turn.js.map +1 -0
- package/dist/src/action-proposal-executor.d.ts +3 -0
- package/dist/src/action-proposal-executor.d.ts.map +1 -1
- package/dist/src/action-proposal-executor.js +10 -0
- package/dist/src/action-proposal-executor.js.map +1 -1
- package/dist/src/action-proposal-service.d.ts +7 -2
- package/dist/src/action-proposal-service.d.ts.map +1 -1
- package/dist/src/action-proposal-service.js +21 -16
- package/dist/src/action-proposal-service.js.map +1 -1
- package/dist/src/action-proposal-text.d.ts +42 -3
- package/dist/src/action-proposal-text.d.ts.map +1 -1
- package/dist/src/action-proposal-text.js +80 -12
- package/dist/src/action-proposal-text.js.map +1 -1
- package/dist/src/action-proposal-worker.d.ts +2 -1
- package/dist/src/action-proposal-worker.d.ts.map +1 -1
- package/dist/src/action-proposal-worker.js +9 -2
- package/dist/src/action-proposal-worker.js.map +1 -1
- package/dist/src/actor-resolver.d.ts +12 -4
- package/dist/src/actor-resolver.d.ts.map +1 -1
- package/dist/src/actor-resolver.js +24 -7
- package/dist/src/actor-resolver.js.map +1 -1
- package/dist/src/ag-ui/adapter.d.ts.map +1 -1
- package/dist/src/ag-ui/adapter.js +115 -17
- package/dist/src/ag-ui/adapter.js.map +1 -1
- package/dist/src/ag-ui/core/encoder.d.ts +106 -0
- package/dist/src/ag-ui/core/encoder.d.ts.map +1 -0
- package/dist/src/ag-ui/core/encoder.js +534 -0
- package/dist/src/ag-ui/core/encoder.js.map +1 -0
- package/dist/src/ag-ui/core/index.d.ts +12 -0
- package/dist/src/ag-ui/core/index.d.ts.map +1 -0
- package/dist/src/ag-ui/core/index.js +12 -0
- package/dist/src/ag-ui/core/index.js.map +1 -0
- package/dist/src/ag-ui/core/input.d.ts +92 -0
- package/dist/src/ag-ui/core/input.d.ts.map +1 -0
- package/dist/src/ag-ui/core/input.js +246 -0
- package/dist/src/ag-ui/core/input.js.map +1 -0
- package/dist/src/ag-ui/core/interrupt-id.d.ts +31 -0
- package/dist/src/ag-ui/core/interrupt-id.d.ts.map +1 -0
- package/dist/src/ag-ui/core/interrupt-id.js +48 -0
- package/dist/src/ag-ui/core/interrupt-id.js.map +1 -0
- package/dist/src/ag-ui/{proposal-decision.d.ts → core/proposal-decision.d.ts} +1 -1
- package/dist/src/ag-ui/core/proposal-decision.d.ts.map +1 -0
- package/dist/src/ag-ui/{proposal-decision.js → core/proposal-decision.js} +3 -6
- package/dist/src/ag-ui/core/proposal-decision.js.map +1 -0
- package/dist/src/ag-ui/core/stream.d.ts +49 -0
- package/dist/src/ag-ui/core/stream.d.ts.map +1 -0
- package/dist/src/ag-ui/core/stream.js +90 -0
- package/dist/src/ag-ui/core/stream.js.map +1 -0
- package/dist/src/ag-ui/core/types.d.ts +249 -0
- package/dist/src/ag-ui/core/types.d.ts.map +1 -0
- package/dist/src/ag-ui/core/types.js +35 -0
- package/dist/src/ag-ui/core/types.js.map +1 -0
- package/dist/src/ag-ui/encoder.d.ts +3 -4
- package/dist/src/ag-ui/encoder.d.ts.map +1 -1
- package/dist/src/ag-ui/encoder.js +10 -11
- package/dist/src/ag-ui/encoder.js.map +1 -1
- package/dist/src/ag-ui/frames.d.ts +8 -5
- package/dist/src/ag-ui/frames.d.ts.map +1 -1
- package/dist/src/ag-ui/frames.js +21 -7
- package/dist/src/ag-ui/frames.js.map +1 -1
- package/dist/src/ag-ui/index.d.ts +3 -5
- package/dist/src/ag-ui/index.d.ts.map +1 -1
- package/dist/src/ag-ui/index.js +3 -5
- package/dist/src/ag-ui/index.js.map +1 -1
- package/dist/src/ag-ui/stream.d.ts +3 -4
- package/dist/src/ag-ui/stream.d.ts.map +1 -1
- package/dist/src/ag-ui/stream.js +4 -5
- package/dist/src/ag-ui/stream.js.map +1 -1
- package/dist/src/agent-deps-factory.d.ts +3 -0
- package/dist/src/agent-deps-factory.d.ts.map +1 -1
- package/dist/src/agent-deps-factory.js +3 -0
- package/dist/src/agent-deps-factory.js.map +1 -1
- package/dist/src/agent-deps.d.ts +3 -0
- package/dist/src/agent-deps.d.ts.map +1 -1
- package/dist/src/agent-deps.js.map +1 -1
- package/dist/src/agent-loop.d.ts +4 -3
- package/dist/src/agent-loop.d.ts.map +1 -1
- package/dist/src/agent-loop.js +50 -25
- package/dist/src/agent-loop.js.map +1 -1
- package/dist/src/agent-service.d.ts +46 -4
- package/dist/src/agent-service.d.ts.map +1 -1
- package/dist/src/agent-service.js +87 -11
- package/dist/src/agent-service.js.map +1 -1
- package/dist/src/ai-sdk/ai-sdk-model.js +4 -1
- package/dist/src/ai-sdk/ai-sdk-model.js.map +1 -1
- package/dist/src/ai-tool-ref.d.ts +4 -0
- package/dist/src/ai-tool-ref.d.ts.map +1 -1
- package/dist/src/ai-tool-ref.js +10 -14
- package/dist/src/ai-tool-ref.js.map +1 -1
- package/dist/src/attachment-limits.d.ts +10 -0
- package/dist/src/attachment-limits.d.ts.map +1 -0
- package/dist/src/attachment-limits.js +13 -0
- package/dist/src/attachment-limits.js.map +1 -0
- package/dist/src/channels/adapters/evolution_api.d.ts +49 -0
- package/dist/src/channels/adapters/evolution_api.d.ts.map +1 -0
- package/dist/src/channels/adapters/evolution_api.js +241 -0
- package/dist/src/channels/adapters/evolution_api.js.map +1 -0
- package/dist/src/channels/adapters/telegram.d.ts +34 -0
- package/dist/src/channels/adapters/telegram.d.ts.map +1 -0
- package/dist/src/channels/adapters/telegram.js +196 -0
- package/dist/src/channels/adapters/telegram.js.map +1 -0
- package/dist/src/channels/adapters/whatsapp_cloud.d.ts +31 -0
- package/dist/src/channels/adapters/whatsapp_cloud.d.ts.map +1 -0
- package/dist/src/channels/adapters/whatsapp_cloud.js +177 -0
- package/dist/src/channels/adapters/whatsapp_cloud.js.map +1 -0
- package/dist/src/channels/handler.d.ts +167 -0
- package/dist/src/channels/handler.d.ts.map +1 -0
- package/dist/src/channels/handler.js +569 -0
- package/dist/src/channels/handler.js.map +1 -0
- package/dist/src/channels/http.d.ts +45 -0
- package/dist/src/channels/http.d.ts.map +1 -0
- package/dist/src/channels/http.js +147 -0
- package/dist/src/channels/http.js.map +1 -0
- package/dist/src/channels/index.d.ts +16 -0
- package/dist/src/channels/index.d.ts.map +1 -0
- package/dist/src/channels/index.js +15 -0
- package/dist/src/channels/index.js.map +1 -0
- package/dist/src/channels/markdown.d.ts +12 -0
- package/dist/src/channels/markdown.d.ts.map +1 -0
- package/dist/src/channels/markdown.js +120 -0
- package/dist/src/channels/markdown.js.map +1 -0
- package/dist/src/channels/questions.d.ts +43 -0
- package/dist/src/channels/questions.d.ts.map +1 -0
- package/dist/src/channels/questions.js +90 -0
- package/dist/src/channels/questions.js.map +1 -0
- package/dist/src/channels/split.d.ts +8 -0
- package/dist/src/channels/split.d.ts.map +1 -0
- package/dist/src/channels/split.js +45 -0
- package/dist/src/channels/split.js.map +1 -0
- package/dist/src/channels/store.d.ts +78 -0
- package/dist/src/channels/store.d.ts.map +1 -0
- package/dist/src/channels/store.js +151 -0
- package/dist/src/channels/store.js.map +1 -0
- package/dist/src/channels/types.d.ts +138 -0
- package/dist/src/channels/types.d.ts.map +1 -0
- package/dist/src/channels/types.js +7 -0
- package/dist/src/channels/types.js.map +1 -0
- package/dist/src/chat-queue-service.d.ts.map +1 -1
- package/dist/src/chat-queue-service.js +2 -0
- package/dist/src/chat-queue-service.js.map +1 -1
- package/dist/src/define_config.d.ts +61 -12
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js.map +1 -1
- package/dist/src/engine.d.ts +77 -0
- package/dist/src/engine.d.ts.map +1 -0
- package/dist/src/engine.js +27 -0
- package/dist/src/engine.js.map +1 -0
- package/dist/src/genui/builtins.d.ts +73 -3
- package/dist/src/genui/builtins.d.ts.map +1 -1
- package/dist/src/genui/builtins.js +357 -3
- package/dist/src/genui/builtins.js.map +1 -1
- package/dist/src/genui/capabilities.d.ts +24 -0
- package/dist/src/genui/capabilities.d.ts.map +1 -0
- package/dist/src/genui/capabilities.js +81 -0
- package/dist/src/genui/capabilities.js.map +1 -0
- package/dist/src/genui/catalog.d.ts +86 -0
- package/dist/src/genui/catalog.d.ts.map +1 -0
- package/dist/src/genui/catalog.js +96 -0
- package/dist/src/genui/catalog.js.map +1 -0
- package/dist/src/genui/factory.d.ts +7 -14
- package/dist/src/genui/factory.d.ts.map +1 -1
- package/dist/src/genui/factory.js.map +1 -1
- package/dist/src/genui/index.d.ts +4 -12
- package/dist/src/genui/index.d.ts.map +1 -1
- package/dist/src/genui/index.js +5 -18
- package/dist/src/genui/index.js.map +1 -1
- package/dist/src/genui/public.d.ts +9 -0
- package/dist/src/genui/public.d.ts.map +1 -0
- package/dist/src/genui/public.js +9 -0
- package/dist/src/genui/public.js.map +1 -0
- package/dist/src/genui/registry.d.ts +65 -0
- package/dist/src/genui/registry.d.ts.map +1 -0
- package/dist/src/genui/registry.js +151 -0
- package/dist/src/genui/registry.js.map +1 -0
- package/dist/src/genui/schema.d.ts +71 -0
- package/dist/src/genui/schema.d.ts.map +1 -0
- package/dist/src/genui/schema.js +304 -0
- package/dist/src/genui/schema.js.map +1 -0
- package/dist/src/genui/text.d.ts +36 -0
- package/dist/src/genui/text.d.ts.map +1 -0
- package/dist/src/genui/text.js +157 -0
- package/dist/src/genui/text.js.map +1 -0
- package/dist/src/genui/tools.d.ts +92 -0
- package/dist/src/genui/tools.d.ts.map +1 -0
- package/dist/src/genui/tools.js +291 -0
- package/dist/src/genui/tools.js.map +1 -0
- package/dist/src/genui/tree.d.ts +56 -0
- package/dist/src/genui/tree.d.ts.map +1 -0
- package/dist/src/genui/tree.js +188 -0
- package/dist/src/genui/tree.js.map +1 -0
- package/dist/src/index.d.ts +6 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/auth.d.ts +17 -1
- package/dist/src/mcp/auth.d.ts.map +1 -1
- package/dist/src/mcp/auth.js +14 -3
- package/dist/src/mcp/auth.js.map +1 -1
- package/dist/src/mcp/define_config.d.ts +81 -2
- package/dist/src/mcp/define_config.d.ts.map +1 -1
- package/dist/src/mcp/define_config.js.map +1 -1
- package/dist/src/mcp/index.d.ts +1 -1
- package/dist/src/mcp/index.d.ts.map +1 -1
- package/dist/src/mcp/index.js.map +1 -1
- package/dist/src/mcp/oauth-resource.d.ts +9 -0
- package/dist/src/mcp/oauth-resource.d.ts.map +1 -0
- package/dist/src/mcp/oauth-resource.js +16 -0
- package/dist/src/mcp/oauth-resource.js.map +1 -0
- package/dist/src/mcp/server.d.ts +5 -0
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +48 -16
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/negotiated-tool-ui.d.ts.map +1 -1
- package/dist/src/negotiated-tool-ui.js +12 -8
- package/dist/src/negotiated-tool-ui.js.map +1 -1
- package/dist/src/opencode/client.d.ts +202 -0
- package/dist/src/opencode/client.d.ts.map +1 -0
- package/dist/src/opencode/client.js +2 -0
- package/dist/src/opencode/client.js.map +1 -0
- package/dist/src/opencode/durable/index.d.ts +33 -0
- package/dist/src/opencode/durable/index.d.ts.map +1 -0
- package/dist/src/opencode/durable/index.js +38 -0
- package/dist/src/opencode/durable/index.js.map +1 -0
- package/dist/src/opencode/durable/runner.d.ts +36 -0
- package/dist/src/opencode/durable/runner.d.ts.map +1 -0
- package/dist/src/opencode/durable/runner.js +88 -0
- package/dist/src/opencode/durable/runner.js.map +1 -0
- package/dist/src/opencode/durable/workflow.d.ts +40 -0
- package/dist/src/opencode/durable/workflow.d.ts.map +1 -0
- package/dist/src/opencode/durable/workflow.js +106 -0
- package/dist/src/opencode/durable/workflow.js.map +1 -0
- package/dist/src/opencode/engine.d.ts +48 -0
- package/dist/src/opencode/engine.d.ts.map +1 -0
- package/dist/src/opencode/engine.js +98 -0
- package/dist/src/opencode/engine.js.map +1 -0
- package/dist/src/opencode/event-hub.d.ts +23 -0
- package/dist/src/opencode/event-hub.d.ts.map +1 -0
- package/dist/src/opencode/event-hub.js +99 -0
- package/dist/src/opencode/event-hub.js.map +1 -0
- package/dist/src/opencode/forms.d.ts +19 -0
- package/dist/src/opencode/forms.d.ts.map +1 -0
- package/dist/src/opencode/forms.js +82 -0
- package/dist/src/opencode/forms.js.map +1 -0
- package/dist/src/opencode/host.d.ts +179 -0
- package/dist/src/opencode/host.d.ts.map +1 -0
- package/dist/src/opencode/host.js +34 -0
- package/dist/src/opencode/host.js.map +1 -0
- package/dist/src/opencode/index.d.ts +15 -0
- package/dist/src/opencode/index.d.ts.map +1 -0
- package/dist/src/opencode/index.js +9 -0
- package/dist/src/opencode/index.js.map +1 -0
- package/dist/src/opencode/log.d.ts +9 -0
- package/dist/src/opencode/log.d.ts.map +1 -0
- package/dist/src/opencode/log.js +15 -0
- package/dist/src/opencode/log.js.map +1 -0
- package/dist/src/opencode/mcp.d.ts +60 -0
- package/dist/src/opencode/mcp.d.ts.map +1 -0
- package/dist/src/opencode/mcp.js +258 -0
- package/dist/src/opencode/mcp.js.map +1 -0
- package/dist/src/opencode/runner.d.ts +40 -0
- package/dist/src/opencode/runner.d.ts.map +1 -0
- package/dist/src/opencode/runner.js +125 -0
- package/dist/src/opencode/runner.js.map +1 -0
- package/dist/src/opencode/turn.d.ts +167 -0
- package/dist/src/opencode/turn.d.ts.map +1 -0
- package/dist/src/opencode/turn.js +761 -0
- package/dist/src/opencode/turn.js.map +1 -0
- package/dist/src/opencode/turns.d.ts +247 -0
- package/dist/src/opencode/turns.d.ts.map +1 -0
- package/dist/src/opencode/turns.js +867 -0
- package/dist/src/opencode/turns.js.map +1 -0
- package/dist/src/personas.d.ts.map +1 -1
- package/dist/src/personas.js +4 -1
- package/dist/src/personas.js.map +1 -1
- package/dist/src/react/ag-ui.d.ts +4 -2
- package/dist/src/react/ag-ui.d.ts.map +1 -1
- package/dist/src/react/ag-ui.js +2 -2
- package/dist/src/react/ag-ui.js.map +1 -1
- package/dist/src/react/client.d.ts +1 -1
- package/dist/src/react/client.d.ts.map +1 -1
- package/dist/src/react/client.js +1 -1
- package/dist/src/react/client.js.map +1 -1
- package/dist/src/react/core/ag-ui-backend.d.ts +109 -0
- package/dist/src/react/core/ag-ui-backend.d.ts.map +1 -0
- package/dist/src/react/core/ag-ui-backend.js +574 -0
- package/dist/src/react/core/ag-ui-backend.js.map +1 -0
- package/dist/src/react/core/agent-chat-transport.d.ts +187 -0
- package/dist/src/react/core/agent-chat-transport.d.ts.map +1 -0
- package/dist/src/react/core/agent-chat-transport.js +817 -0
- package/dist/src/react/core/agent-chat-transport.js.map +1 -0
- package/dist/src/react/core/approvals/countdown.d.ts +22 -0
- package/dist/src/react/core/approvals/countdown.d.ts.map +1 -0
- package/dist/src/react/core/approvals/countdown.js +39 -0
- package/dist/src/react/core/approvals/countdown.js.map +1 -0
- package/dist/src/react/core/approvals/proposals.d.ts +15 -0
- package/dist/src/react/core/approvals/proposals.d.ts.map +1 -0
- package/dist/src/react/core/approvals/proposals.js +82 -0
- package/dist/src/react/core/approvals/proposals.js.map +1 -0
- package/dist/src/react/core/approvals/use-action-proposals.d.ts +10 -0
- package/dist/src/react/core/approvals/use-action-proposals.d.ts.map +1 -0
- package/dist/src/react/core/approvals/use-action-proposals.js +86 -0
- package/dist/src/react/core/approvals/use-action-proposals.js.map +1 -0
- package/dist/src/react/core/attachments/files.d.ts +39 -0
- package/dist/src/react/core/attachments/files.d.ts.map +1 -0
- package/dist/src/react/core/attachments/files.js +89 -0
- package/dist/src/react/core/attachments/files.js.map +1 -0
- package/dist/src/react/core/attachments/use-attachments.d.ts +106 -0
- package/dist/src/react/core/attachments/use-attachments.d.ts.map +1 -0
- package/dist/src/react/core/attachments/use-attachments.js +217 -0
- package/dist/src/react/core/attachments/use-attachments.js.map +1 -0
- package/dist/src/react/core/backend.d.ts +245 -0
- package/dist/src/react/core/backend.d.ts.map +1 -0
- package/dist/src/react/core/backend.js +21 -0
- package/dist/src/react/core/backend.js.map +1 -0
- package/dist/src/react/core/background-runs.d.ts +32 -0
- package/dist/src/react/core/background-runs.d.ts.map +1 -0
- package/dist/src/react/core/background-runs.js +47 -0
- package/dist/src/react/core/background-runs.js.map +1 -0
- package/dist/src/react/core/catalog/use-agents.d.ts +31 -0
- package/dist/src/react/core/catalog/use-agents.d.ts.map +1 -0
- package/dist/src/react/core/catalog/use-agents.js +28 -0
- package/dist/src/react/core/catalog/use-agents.js.map +1 -0
- package/dist/src/react/core/catalog/use-models.d.ts +41 -0
- package/dist/src/react/core/catalog/use-models.d.ts.map +1 -0
- package/dist/src/react/core/catalog/use-models.js +35 -0
- package/dist/src/react/core/catalog/use-models.js.map +1 -0
- package/dist/src/react/core/catalog/use-resource.d.ts +12 -0
- package/dist/src/react/core/catalog/use-resource.d.ts.map +1 -0
- package/dist/src/react/core/catalog/use-resource.js +41 -0
- package/dist/src/react/core/catalog/use-resource.js.map +1 -0
- package/dist/src/react/core/client-wire.d.ts +14 -0
- package/dist/src/react/core/client-wire.d.ts.map +1 -0
- package/dist/src/react/core/client-wire.js +2 -0
- package/dist/src/react/core/client-wire.js.map +1 -0
- package/dist/src/react/core/client.d.ts +222 -0
- package/dist/src/react/core/client.d.ts.map +1 -0
- package/dist/src/react/core/client.js +435 -0
- package/dist/src/react/core/client.js.map +1 -0
- package/dist/src/react/core/components/ambient-ui.d.ts +22 -0
- package/dist/src/react/core/components/ambient-ui.d.ts.map +1 -0
- package/dist/src/react/core/components/ambient-ui.js +30 -0
- package/dist/src/react/core/components/ambient-ui.js.map +1 -0
- package/dist/src/react/core/components/chat-input.d.ts +44 -0
- package/dist/src/react/core/components/chat-input.d.ts.map +1 -0
- package/dist/src/react/core/components/chat-input.js +69 -0
- package/dist/src/react/core/components/chat-input.js.map +1 -0
- package/dist/src/react/core/components/index.d.ts +7 -0
- package/dist/src/react/core/components/index.d.ts.map +1 -0
- package/dist/src/react/core/components/index.js +7 -0
- package/dist/src/react/core/components/index.js.map +1 -0
- package/dist/src/react/core/components/message-item.d.ts +101 -0
- package/dist/src/react/core/components/message-item.d.ts.map +1 -0
- package/dist/src/react/core/components/message-item.js +118 -0
- package/dist/src/react/core/components/message-item.js.map +1 -0
- package/dist/src/react/core/components/message-list.d.ts +85 -0
- package/dist/src/react/core/components/message-list.d.ts.map +1 -0
- package/dist/src/react/core/components/message-list.js +45 -0
- package/dist/src/react/core/components/message-list.js.map +1 -0
- package/dist/src/react/core/components/speech-languages.d.ts +22 -0
- package/dist/src/react/core/components/speech-languages.d.ts.map +1 -0
- package/dist/src/react/core/components/speech-languages.js +38 -0
- package/dist/src/react/core/components/speech-languages.js.map +1 -0
- package/dist/src/react/core/components/use-speech-recognition.d.ts +19 -0
- package/dist/src/react/core/components/use-speech-recognition.d.ts.map +1 -0
- package/dist/src/react/core/components/use-speech-recognition.js +92 -0
- package/dist/src/react/core/components/use-speech-recognition.js.map +1 -0
- package/dist/src/react/core/composer/index.d.ts +4 -0
- package/dist/src/react/core/composer/index.d.ts.map +1 -0
- package/dist/src/react/core/composer/index.js +4 -0
- package/dist/src/react/core/composer/index.js.map +1 -0
- package/dist/src/react/core/composer/model.d.ts +83 -0
- package/dist/src/react/core/composer/model.d.ts.map +1 -0
- package/dist/src/react/core/composer/model.js +53 -0
- package/dist/src/react/core/composer/model.js.map +1 -0
- package/dist/src/react/core/composer/skills-source.d.ts +29 -0
- package/dist/src/react/core/composer/skills-source.d.ts.map +1 -0
- package/dist/src/react/core/composer/skills-source.js +61 -0
- package/dist/src/react/core/composer/skills-source.js.map +1 -0
- package/dist/src/react/core/composer/use-composer-autocomplete.d.ts +78 -0
- package/dist/src/react/core/composer/use-composer-autocomplete.d.ts.map +1 -0
- package/dist/src/react/core/composer/use-composer-autocomplete.js +244 -0
- package/dist/src/react/core/composer/use-composer-autocomplete.js.map +1 -0
- package/dist/src/react/core/config/use-agent-config.d.ts +21 -0
- package/dist/src/react/core/config/use-agent-config.d.ts.map +1 -0
- package/dist/src/react/core/config/use-agent-config.js +57 -0
- package/dist/src/react/core/config/use-agent-config.js.map +1 -0
- package/dist/src/react/core/elicitation/answers.d.ts +22 -0
- package/dist/src/react/core/elicitation/answers.d.ts.map +1 -0
- package/dist/src/react/core/elicitation/answers.js +65 -0
- package/dist/src/react/core/elicitation/answers.js.map +1 -0
- package/dist/src/react/core/feedback/use-message-feedback.d.ts +32 -0
- package/dist/src/react/core/feedback/use-message-feedback.d.ts.map +1 -0
- package/dist/src/react/core/feedback/use-message-feedback.js +106 -0
- package/dist/src/react/core/feedback/use-message-feedback.js.map +1 -0
- package/dist/src/react/core/genui/generative-ui.d.ts +76 -0
- package/dist/src/react/core/genui/generative-ui.d.ts.map +1 -0
- package/dist/src/react/core/genui/generative-ui.js +210 -0
- package/dist/src/react/core/genui/generative-ui.js.map +1 -0
- package/dist/src/react/core/genui/index.d.ts +5 -0
- package/dist/src/react/core/genui/index.d.ts.map +1 -0
- package/dist/src/react/core/genui/index.js +5 -0
- package/dist/src/react/core/genui/index.js.map +1 -0
- package/dist/src/react/core/genui/json-render.d.ts +54 -0
- package/dist/src/react/core/genui/json-render.d.ts.map +1 -0
- package/dist/src/react/core/genui/json-render.js +64 -0
- package/dist/src/react/core/genui/json-render.js.map +1 -0
- package/dist/src/react/core/genui/playwright.d.ts +12 -0
- package/dist/src/react/core/genui/playwright.d.ts.map +1 -0
- package/dist/src/react/core/genui/playwright.js +141 -0
- package/dist/src/react/core/genui/playwright.js.map +1 -0
- package/dist/src/react/core/genui/react-registry.d.ts +22 -0
- package/dist/src/react/core/genui/react-registry.d.ts.map +1 -0
- package/dist/src/react/core/genui/react-registry.js +72 -0
- package/dist/src/react/core/genui/react-registry.js.map +1 -0
- package/dist/src/react/core/genui/server.d.ts +32 -0
- package/dist/src/react/core/genui/server.d.ts.map +1 -0
- package/dist/src/react/core/genui/server.js +66 -0
- package/dist/src/react/core/genui/server.js.map +1 -0
- package/dist/src/react/core/genui/types.d.ts +98 -0
- package/dist/src/react/core/genui/types.d.ts.map +1 -0
- package/dist/src/react/core/genui/types.js +3 -0
- package/dist/src/react/core/genui/types.js.map +1 -0
- package/dist/src/react/core/genui/use-generative-ui.d.ts +42 -0
- package/dist/src/react/core/genui/use-generative-ui.d.ts.map +1 -0
- package/dist/src/react/core/genui/use-generative-ui.js +186 -0
- package/dist/src/react/core/genui/use-generative-ui.js.map +1 -0
- package/dist/src/react/core/http-error.d.ts +33 -0
- package/dist/src/react/core/http-error.d.ts.map +1 -0
- package/dist/src/react/core/http-error.js +47 -0
- package/dist/src/react/core/http-error.js.map +1 -0
- package/dist/src/react/core/index.d.ts +35 -0
- package/dist/src/react/core/index.d.ts.map +1 -0
- package/dist/src/react/core/index.js +34 -0
- package/dist/src/react/core/index.js.map +1 -0
- package/dist/src/react/core/markdown/agent-markdown.d.ts +39 -0
- package/dist/src/react/core/markdown/agent-markdown.d.ts.map +1 -0
- package/dist/src/react/core/markdown/agent-markdown.js +22 -0
- package/dist/src/react/core/markdown/agent-markdown.js.map +1 -0
- package/dist/src/react/core/markdown/index.d.ts +2 -0
- package/dist/src/react/core/markdown/index.d.ts.map +1 -0
- package/dist/src/react/core/markdown/index.js +2 -0
- package/dist/src/react/core/markdown/index.js.map +1 -0
- package/dist/src/react/core/media/index.d.ts +64 -0
- package/dist/src/react/core/media/index.d.ts.map +1 -0
- package/dist/src/react/core/media/index.js +135 -0
- package/dist/src/react/core/media/index.js.map +1 -0
- package/dist/src/react/core/media/tus.d.ts +13 -0
- package/dist/src/react/core/media/tus.d.ts.map +1 -0
- package/dist/src/react/core/media/tus.js +59 -0
- package/dist/src/react/core/media/tus.js.map +1 -0
- package/dist/src/react/core/presentation/phrasing.d.ts +25 -0
- package/dist/src/react/core/presentation/phrasing.d.ts.map +1 -0
- package/dist/src/react/core/presentation/phrasing.js +58 -0
- package/dist/src/react/core/presentation/phrasing.js.map +1 -0
- package/dist/src/react/core/presentation/result-view.d.ts +43 -0
- package/dist/src/react/core/presentation/result-view.d.ts.map +1 -0
- package/dist/src/react/core/presentation/result-view.js +90 -0
- package/dist/src/react/core/presentation/result-view.js.map +1 -0
- package/dist/src/react/core/presentation/tool-activity.d.ts +106 -0
- package/dist/src/react/core/presentation/tool-activity.d.ts.map +1 -0
- package/dist/src/react/core/presentation/tool-activity.js +165 -0
- package/dist/src/react/core/presentation/tool-activity.js.map +1 -0
- package/dist/src/react/core/presentation/use-tool-catalog.d.ts +39 -0
- package/dist/src/react/core/presentation/use-tool-catalog.d.ts.map +1 -0
- package/dist/src/react/core/presentation/use-tool-catalog.js +77 -0
- package/dist/src/react/core/presentation/use-tool-catalog.js.map +1 -0
- package/dist/src/react/core/provider.d.ts +68 -0
- package/dist/src/react/core/provider.d.ts.map +1 -0
- package/dist/src/react/core/provider.js +61 -0
- package/dist/src/react/core/provider.js.map +1 -0
- package/dist/src/react/core/queue/model.d.ts +73 -0
- package/dist/src/react/core/queue/model.d.ts.map +1 -0
- package/dist/src/react/core/queue/model.js +2 -0
- package/dist/src/react/core/queue/model.js.map +1 -0
- package/dist/src/react/core/quota/use-quota.d.ts +35 -0
- package/dist/src/react/core/quota/use-quota.d.ts.map +1 -0
- package/dist/src/react/core/quota/use-quota.js +47 -0
- package/dist/src/react/core/quota/use-quota.js.map +1 -0
- package/dist/src/react/core/reasoning/timing.d.ts +38 -0
- package/dist/src/react/core/reasoning/timing.d.ts.map +1 -0
- package/dist/src/react/core/reasoning/timing.js +73 -0
- package/dist/src/react/core/reasoning/timing.js.map +1 -0
- package/dist/src/react/core/run-errors.d.ts +37 -0
- package/dist/src/react/core/run-errors.d.ts.map +1 -0
- package/dist/src/react/core/run-errors.js +37 -0
- package/dist/src/react/core/run-errors.js.map +1 -0
- package/dist/src/react/core/stored-message-to-ui-message.d.ts +4 -0
- package/dist/src/react/core/stored-message-to-ui-message.d.ts.map +1 -0
- package/dist/src/react/core/stored-message-to-ui-message.js +216 -0
- package/dist/src/react/core/stored-message-to-ui-message.js.map +1 -0
- package/dist/src/react/core/stored-thread-to-ui-messages.d.ts +82 -0
- package/dist/src/react/core/stored-thread-to-ui-messages.d.ts.map +1 -0
- package/dist/src/react/core/stored-thread-to-ui-messages.js +116 -0
- package/dist/src/react/core/stored-thread-to-ui-messages.js.map +1 -0
- package/dist/src/react/core/threads/threads-events.d.ts +22 -0
- package/dist/src/react/core/threads/threads-events.d.ts.map +1 -0
- package/dist/src/react/core/threads/threads-events.js +21 -0
- package/dist/src/react/core/threads/threads-events.js.map +1 -0
- package/dist/src/react/core/threads/use-threads.d.ts +31 -0
- package/dist/src/react/core/threads/use-threads.d.ts.map +1 -0
- package/dist/src/react/core/threads/use-threads.js +81 -0
- package/dist/src/react/core/threads/use-threads.js.map +1 -0
- package/dist/src/react/core/transcript/index.d.ts +4 -0
- package/dist/src/react/core/transcript/index.d.ts.map +1 -0
- package/dist/src/react/core/transcript/index.js +4 -0
- package/dist/src/react/core/transcript/index.js.map +1 -0
- package/dist/src/react/core/transcript/model.d.ts +399 -0
- package/dist/src/react/core/transcript/model.d.ts.map +1 -0
- package/dist/src/react/core/transcript/model.js +725 -0
- package/dist/src/react/core/transcript/model.js.map +1 -0
- package/dist/src/react/core/transcript/use-chat-transcript.d.ts +254 -0
- package/dist/src/react/core/transcript/use-chat-transcript.d.ts.map +1 -0
- package/dist/src/react/core/transcript/use-chat-transcript.js +572 -0
- package/dist/src/react/core/transcript/use-chat-transcript.js.map +1 -0
- package/dist/src/react/core/transcript/use-stick-to-bottom.d.ts +33 -0
- package/dist/src/react/core/transcript/use-stick-to-bottom.d.ts.map +1 -0
- package/dist/src/react/core/transcript/use-stick-to-bottom.js +48 -0
- package/dist/src/react/core/transcript/use-stick-to-bottom.js.map +1 -0
- package/dist/src/react/core/use-agent-chat.d.ts +341 -0
- package/dist/src/react/core/use-agent-chat.d.ts.map +1 -0
- package/dist/src/react/core/use-agent-chat.js +1118 -0
- package/dist/src/react/core/use-agent-chat.js.map +1 -0
- package/dist/src/react/genui/index.d.ts +1 -7
- package/dist/src/react/genui/index.d.ts.map +1 -1
- package/dist/src/react/genui/index.js +1 -7
- package/dist/src/react/genui/index.js.map +1 -1
- package/dist/src/react/genui/json-render.d.ts +1 -5
- package/dist/src/react/genui/json-render.d.ts.map +1 -1
- package/dist/src/react/genui/json-render.js +1 -5
- package/dist/src/react/genui/json-render.js.map +1 -1
- package/dist/src/react/genui/server.d.ts +2 -0
- package/dist/src/react/genui/server.d.ts.map +1 -0
- package/dist/src/react/genui/server.js +2 -0
- package/dist/src/react/genui/server.js.map +1 -0
- package/dist/src/react/genui/server_playwright.d.ts +2 -0
- package/dist/src/react/genui/server_playwright.d.ts.map +1 -0
- package/dist/src/react/genui/server_playwright.js +2 -0
- package/dist/src/react/genui/server_playwright.js.map +1 -0
- package/dist/src/react/index.d.ts +5 -7
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/react/index.js +5 -7
- package/dist/src/react/index.js.map +1 -1
- package/dist/src/react/markdown.d.ts +1 -6
- package/dist/src/react/markdown.d.ts.map +1 -1
- package/dist/src/react/markdown.js +1 -6
- package/dist/src/react/markdown.js.map +1 -1
- package/dist/src/react/media.d.ts +1 -17
- package/dist/src/react/media.d.ts.map +1 -1
- package/dist/src/react/media.js +1 -17
- package/dist/src/react/media.js.map +1 -1
- package/dist/src/refusal.d.ts +3 -0
- package/dist/src/refusal.d.ts.map +1 -0
- package/dist/src/refusal.js +3 -0
- package/dist/src/refusal.js.map +1 -0
- package/dist/src/spi/agent-runner.d.ts +6 -0
- package/dist/src/spi/agent-runner.d.ts.map +1 -1
- package/dist/src/spi/chat-queue.d.ts +4 -1
- package/dist/src/spi/chat-queue.d.ts.map +1 -1
- package/dist/src/spi/chat-queue.js.map +1 -1
- package/dist/src/spi/protocol-adapter.d.ts +3 -3
- package/dist/src/spi/roles-policy.d.ts +7 -0
- package/dist/src/spi/roles-policy.d.ts.map +1 -1
- package/dist/src/spi/tool.d.ts +18 -3
- package/dist/src/spi/tool.d.ts.map +1 -1
- package/dist/src/stores/lucid-schema.d.ts +24 -6
- package/dist/src/stores/lucid-schema.d.ts.map +1 -1
- package/dist/src/stores/lucid-schema.js +49 -6
- package/dist/src/stores/lucid-schema.js.map +1 -1
- package/dist/src/stores/lucid.d.ts +2 -0
- package/dist/src/stores/lucid.d.ts.map +1 -1
- package/dist/src/stores/lucid.js +7 -0
- package/dist/src/stores/lucid.js.map +1 -1
- package/dist/src/testing/chat-queue-store-contract.d.ts.map +1 -1
- package/dist/src/testing/chat-queue-store-contract.js +4 -0
- package/dist/src/testing/chat-queue-store-contract.js.map +1 -1
- package/dist/src/testing/in-memory-store.d.ts.map +1 -1
- package/dist/src/testing/in-memory-store.js +1 -0
- package/dist/src/testing/in-memory-store.js.map +1 -1
- package/dist/src/tool-discovery.d.ts +1 -1
- package/dist/src/tool-discovery.d.ts.map +1 -1
- package/dist/src/tool-discovery.js +5 -1
- package/dist/src/tool-discovery.js.map +1 -1
- package/dist/src/tool-registry.d.ts +3 -0
- package/dist/src/tool-registry.d.ts.map +1 -1
- package/dist/src/tool-registry.js +15 -3
- package/dist/src/tool-registry.js.map +1 -1
- package/dist/src/tool-result-presentation.d.ts +12 -0
- package/dist/src/tool-result-presentation.d.ts.map +1 -0
- package/dist/src/tool-result-presentation.js +44 -0
- package/dist/src/tool-result-presentation.js.map +1 -0
- package/dist/src/types.d.ts +20 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/ui-capabilities.d.ts +1 -8
- package/dist/src/ui-capabilities.d.ts.map +1 -1
- package/dist/src/ui-capabilities.js +3 -24
- package/dist/src/ui-capabilities.js.map +1 -1
- package/package.json +128 -22
- package/skills/agent-governance/SKILL.md +12 -4
- package/skills/agent-personas-agents/SKILL.md +2 -1
- package/skills/agent-setup/SKILL.md +73 -14
- package/skills/agent-testing/SKILL.md +22 -0
- package/skills/agent-tools/SKILL.md +57 -9
- package/dist/src/ag-ui/proposal-decision.d.ts.map +0 -1
- package/dist/src/ag-ui/proposal-decision.js.map +0 -1
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
import { useAgentBackend } from '../provider.js';
|
|
3
|
+
// One request per backend for the whole page: the config is a deployment constant. A failure is
|
|
4
|
+
// forgotten so the next mount retries.
|
|
5
|
+
const shared = new WeakMap();
|
|
6
|
+
function load(backend) {
|
|
7
|
+
const getConfig = backend.getConfig;
|
|
8
|
+
if (typeof getConfig !== 'function')
|
|
9
|
+
return undefined;
|
|
10
|
+
let pending = shared.get(backend);
|
|
11
|
+
if (pending === undefined) {
|
|
12
|
+
pending = getConfig.call(backend).catch((error) => {
|
|
13
|
+
shared.delete(backend);
|
|
14
|
+
throw error;
|
|
15
|
+
});
|
|
16
|
+
shared.set(backend, pending);
|
|
17
|
+
}
|
|
18
|
+
return pending;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The server's client config (`GET <base>/config`): attachment limits and upload mode, and whether a
|
|
22
|
+
* model picker, a quota and anonymous identities are in play. Fetched once per backend and shared;
|
|
23
|
+
* `useAttachments` takes its defaults from it.
|
|
24
|
+
*/
|
|
25
|
+
export function useAgentConfig(options = {}) {
|
|
26
|
+
const backend = useAgentBackend(options.backend);
|
|
27
|
+
const enabled = options.enabled !== false;
|
|
28
|
+
const [config, setConfig] = useState(undefined);
|
|
29
|
+
const [isLoading, setLoading] = useState(false);
|
|
30
|
+
const [error, setError] = useState(null);
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (!enabled)
|
|
33
|
+
return;
|
|
34
|
+
const pending = load(backend);
|
|
35
|
+
if (pending === undefined)
|
|
36
|
+
return;
|
|
37
|
+
let cancelled = false;
|
|
38
|
+
setLoading(true);
|
|
39
|
+
pending.then((loaded) => {
|
|
40
|
+
if (cancelled)
|
|
41
|
+
return;
|
|
42
|
+
setConfig(loaded !== null && typeof loaded === 'object' ? loaded : undefined);
|
|
43
|
+
setError(null);
|
|
44
|
+
setLoading(false);
|
|
45
|
+
}, (failure) => {
|
|
46
|
+
if (cancelled)
|
|
47
|
+
return;
|
|
48
|
+
setError(failure instanceof Error ? failure : new Error(String(failure)));
|
|
49
|
+
setLoading(false);
|
|
50
|
+
});
|
|
51
|
+
return () => {
|
|
52
|
+
cancelled = true;
|
|
53
|
+
};
|
|
54
|
+
}, [backend, enabled]);
|
|
55
|
+
return { config, isLoading, error };
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=use-agent-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-agent-config.js","sourceRoot":"","sources":["../../../../../src/react/core/config/use-agent-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAgBjD,gGAAgG;AAChG,uCAAuC;AACvC,MAAM,MAAM,GAAG,IAAI,OAAO,EAA4C,CAAC;AAEvE,SAAS,IAAI,CAAC,OAAqB;IACjC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,IAAI,OAAO,SAAS,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACzD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvB,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAO,GAA0B,EAAE;IAChE,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC;IAC1C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgC,SAAS,CAAC,CAAC;IAC/E,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAClC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CACV,CAAC,MAAM,EAAE,EAAE;YACT,IAAI,SAAS;gBAAE,OAAO;YACtB,SAAS,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9E,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,EACD,CAAC,OAAgB,EAAE,EAAE;YACnB,IAAI,SAAS;gBAAE,OAAO;YACtB,QAAQ,CAAC,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1E,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CACF,CAAC;QACF,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ElicitationInputType, ElicitationQuestion } from '../../../index.js';
|
|
2
|
+
export { type ElicitationInput, type ElicitationInputType, validateElicitationAnswer as validateAnswer, validateElicitationValue as validateAnswerValue, } from '../../../elicitation-input.js';
|
|
3
|
+
/** What a form control can hand over: a field's value, a checkbox's state, a picked date, a list. */
|
|
4
|
+
export type RawAnswer = string | number | boolean | Date | null | undefined | readonly RawAnswer[];
|
|
5
|
+
/** The question fields {@link coerceAnswer} reads. A transcript question and a core one both fit. */
|
|
6
|
+
export type CoercibleQuestion = Pick<ElicitationQuestion, 'multiple'> & {
|
|
7
|
+
input?: {
|
|
8
|
+
type: ElicitationInputType;
|
|
9
|
+
} | null;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Turn whatever a form control produced into the `string[]` the answer route takes, in the
|
|
13
|
+
* question's canonical form: numbers as decimals, booleans as `"true"`/`"false"`, dates as
|
|
14
|
+
* `YYYY-MM-DD` (a `Date` is read as the local calendar day), trimmed where whitespace means
|
|
15
|
+
* nothing. An empty value becomes `[]` — no answer, not an empty string. A single-choice question
|
|
16
|
+
* keeps the first value.
|
|
17
|
+
*
|
|
18
|
+
* Coercion never judges: pair it with {@link validateAnswer} (the same rules the server applies) to
|
|
19
|
+
* say what is wrong before sending.
|
|
20
|
+
*/
|
|
21
|
+
export declare function coerceAnswer(question: CoercibleQuestion, raw: RawAnswer): string[];
|
|
22
|
+
//# sourceMappingURL=answers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answers.d.ts","sourceRoot":"","sources":["../../../../../src/react/core/elicitation/answers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEnF,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,yBAAyB,IAAI,cAAc,EAC3C,wBAAwB,IAAI,mBAAmB,GAChD,MAAM,+BAA+B,CAAC;AAEvC,qGAAqG;AACrG,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,SAAS,EAAE,CAAC;AAEnG,qGAAqG;AACrG,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,GAAG;IACtE,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,oBAAoB,CAAA;KAAE,GAAG,IAAI,CAAC;CAC/C,CAAC;AAgDF;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,EAAE,CAOlF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export { validateElicitationAnswer as validateAnswer, validateElicitationValue as validateAnswerValue, } from '../../../elicitation-input.js';
|
|
2
|
+
function pad(value) {
|
|
3
|
+
return String(value).padStart(2, '0');
|
|
4
|
+
}
|
|
5
|
+
/** A `Date` as the calendar day the person picked — local time, which is the day they saw. */
|
|
6
|
+
function toDay(date) {
|
|
7
|
+
if (Number.isNaN(date.getTime())) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`;
|
|
11
|
+
}
|
|
12
|
+
function coerceOne(type, raw) {
|
|
13
|
+
if (raw === null || raw === undefined) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
if (Array.isArray(raw)) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
if (raw instanceof Date) {
|
|
20
|
+
return type === 'date' || type === undefined ? toDay(raw) : raw.toISOString();
|
|
21
|
+
}
|
|
22
|
+
if (typeof raw === 'boolean') {
|
|
23
|
+
return raw ? 'true' : 'false';
|
|
24
|
+
}
|
|
25
|
+
if (typeof raw === 'number') {
|
|
26
|
+
return Number.isFinite(raw) ? String(raw) : null;
|
|
27
|
+
}
|
|
28
|
+
const text = raw;
|
|
29
|
+
switch (type) {
|
|
30
|
+
case 'number':
|
|
31
|
+
case 'email':
|
|
32
|
+
case 'url':
|
|
33
|
+
case 'date':
|
|
34
|
+
return text.trim() === '' ? null : text.trim();
|
|
35
|
+
case 'boolean': {
|
|
36
|
+
const lowered = text.trim().toLowerCase();
|
|
37
|
+
if (lowered === 'true' || lowered === 'on' || lowered === 'yes')
|
|
38
|
+
return 'true';
|
|
39
|
+
if (lowered === 'false' || lowered === 'off' || lowered === 'no')
|
|
40
|
+
return 'false';
|
|
41
|
+
return lowered === '' ? null : text;
|
|
42
|
+
}
|
|
43
|
+
default:
|
|
44
|
+
return text === '' ? null : text;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Turn whatever a form control produced into the `string[]` the answer route takes, in the
|
|
49
|
+
* question's canonical form: numbers as decimals, booleans as `"true"`/`"false"`, dates as
|
|
50
|
+
* `YYYY-MM-DD` (a `Date` is read as the local calendar day), trimmed where whitespace means
|
|
51
|
+
* nothing. An empty value becomes `[]` — no answer, not an empty string. A single-choice question
|
|
52
|
+
* keeps the first value.
|
|
53
|
+
*
|
|
54
|
+
* Coercion never judges: pair it with {@link validateAnswer} (the same rules the server applies) to
|
|
55
|
+
* say what is wrong before sending.
|
|
56
|
+
*/
|
|
57
|
+
export function coerceAnswer(question, raw) {
|
|
58
|
+
const type = question.input?.type;
|
|
59
|
+
const items = Array.isArray(raw) ? raw : [raw];
|
|
60
|
+
const values = items
|
|
61
|
+
.map((item) => coerceOne(type, item))
|
|
62
|
+
.filter((value) => value !== null);
|
|
63
|
+
return question.multiple === true ? values : values.slice(0, 1);
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=answers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answers.js","sourceRoot":"","sources":["../../../../../src/react/core/elicitation/answers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { UIMessage } from 'ai';
|
|
2
|
+
import type { MessageFeedback, MessageFeedbackValue } from '../../../index.js';
|
|
3
|
+
import { type AgentBackend } from '../backend.js';
|
|
4
|
+
export interface UseMessageFeedbackOptions {
|
|
5
|
+
/** Default: the enclosing `<AgentProvider>`'s. Must implement `setMessageFeedback`. */
|
|
6
|
+
backend?: AgentBackend;
|
|
7
|
+
/**
|
|
8
|
+
* The thread the messages belong to — `useAgentChat(...).getThreadId`, or an id. Needed to rate a
|
|
9
|
+
* message streamed in this session: its id is the client's own, so the persisted row it became is
|
|
10
|
+
* looked up by the run that wrote it.
|
|
11
|
+
*/
|
|
12
|
+
threadId?: string | (() => string | undefined);
|
|
13
|
+
}
|
|
14
|
+
export interface MessageFeedbackState {
|
|
15
|
+
/** The rating to show: the one set in this session, else the persisted one, else `null`. */
|
|
16
|
+
feedbackOf: (message: UIMessage) => MessageFeedback | null;
|
|
17
|
+
/** A rating for this message is on its way to the server. */
|
|
18
|
+
isPending: (message: UIMessage) => boolean;
|
|
19
|
+
/** Set `'up'`/`'down'` (optionally with a comment), or clear with `null`. Optimistic. */
|
|
20
|
+
rate: (message: UIMessage, value: MessageFeedbackValue | null, comment?: string) => Promise<void>;
|
|
21
|
+
/** Thumbs-button semantics: the same value again clears it, another value replaces it. */
|
|
22
|
+
toggle: (message: UIMessage, value: MessageFeedbackValue) => Promise<void>;
|
|
23
|
+
/** The last failure; cleared by the next successful rating. */
|
|
24
|
+
error: Error | null;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Thumbs-up/down (+ comment) on assistant messages, over `POST <base>/messages/:id/feedback`.
|
|
28
|
+
* Headless: it holds the state and the calls, the host draws the buttons. A rating shows at once
|
|
29
|
+
* and rolls back if the server refuses it.
|
|
30
|
+
*/
|
|
31
|
+
export declare function useMessageFeedback(options?: UseMessageFeedbackOptions): MessageFeedbackState;
|
|
32
|
+
//# sourceMappingURL=use-message-feedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-message-feedback.d.ts","sourceRoot":"","sources":["../../../../../src/react/core/feedback/use-message-feedback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,eAAe,CAAC;AAIxE,MAAM,WAAW,yBAAyB;IACxC,uFAAuF;IACvF,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,oBAAoB;IACnC,4FAA4F;IAC5F,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,eAAe,GAAG,IAAI,CAAC;IAC3D,6DAA6D;IAC7D,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,OAAO,CAAC;IAC3C,yFAAyF;IACzF,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,0FAA0F;IAC1F,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,+DAA+D;IAC/D,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAID;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,yBAA8B,GAAG,oBAAoB,CAmGhG"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { useCallback, useRef, useState } from 'react';
|
|
2
|
+
import { requireBackendMethod } from '../backend.js';
|
|
3
|
+
import { useAgentBackend } from '../provider.js';
|
|
4
|
+
/**
|
|
5
|
+
* Thumbs-up/down (+ comment) on assistant messages, over `POST <base>/messages/:id/feedback`.
|
|
6
|
+
* Headless: it holds the state and the calls, the host draws the buttons. A rating shows at once
|
|
7
|
+
* and rolls back if the server refuses it.
|
|
8
|
+
*/
|
|
9
|
+
export function useMessageFeedback(options = {}) {
|
|
10
|
+
const backend = useAgentBackend(options.backend);
|
|
11
|
+
const latest = useRef({ ...options, backend });
|
|
12
|
+
latest.current = { ...options, backend };
|
|
13
|
+
const [local, setLocal] = useState(new Map());
|
|
14
|
+
const [pending, setPending] = useState(new Set());
|
|
15
|
+
const [error, setError] = useState(null);
|
|
16
|
+
const localRef = useRef(local);
|
|
17
|
+
localRef.current = local;
|
|
18
|
+
// Live message id → the persisted row it resolved to, so a message is looked up once.
|
|
19
|
+
const resolved = useRef(new Map());
|
|
20
|
+
const feedbackOf = useCallback((message) => {
|
|
21
|
+
const mine = local.get(message.id);
|
|
22
|
+
if (mine !== undefined)
|
|
23
|
+
return mine.feedback;
|
|
24
|
+
return metadataOf(message).feedback ?? null;
|
|
25
|
+
}, [local]);
|
|
26
|
+
const isPending = useCallback((message) => pending.has(message.id), [pending]);
|
|
27
|
+
const storedIdFor = useCallback(async (message) => {
|
|
28
|
+
const runId = metadataOf(message).runId;
|
|
29
|
+
if (runId === undefined)
|
|
30
|
+
return message.id;
|
|
31
|
+
const known = resolved.current.get(message.id);
|
|
32
|
+
if (known !== undefined)
|
|
33
|
+
return known;
|
|
34
|
+
const { backend, threadId } = latest.current;
|
|
35
|
+
const thread = typeof threadId === 'function' ? threadId() : threadId;
|
|
36
|
+
if (thread === undefined) {
|
|
37
|
+
throw new Error('useMessageFeedback: a streamed message needs `threadId` to be rated');
|
|
38
|
+
}
|
|
39
|
+
const detail = await backend.getThread(thread);
|
|
40
|
+
const row = [...detail.messages]
|
|
41
|
+
.reverse()
|
|
42
|
+
.find((candidate) => candidate.role === 'assistant' && candidate.runId === runId);
|
|
43
|
+
if (row === undefined) {
|
|
44
|
+
throw new Error(`useMessageFeedback: run ${runId} has no persisted answer yet`);
|
|
45
|
+
}
|
|
46
|
+
resolved.current.set(message.id, row.id);
|
|
47
|
+
return row.id;
|
|
48
|
+
}, []);
|
|
49
|
+
const rate = useCallback(async (message, value, comment) => {
|
|
50
|
+
const setFeedback = requireBackendMethod(latest.current.backend, 'setMessageFeedback');
|
|
51
|
+
const had = localRef.current.get(message.id);
|
|
52
|
+
const optimistic = value === null
|
|
53
|
+
? null
|
|
54
|
+
: {
|
|
55
|
+
value,
|
|
56
|
+
...(comment !== undefined && comment.trim().length > 0
|
|
57
|
+
? { comment: comment.trim() }
|
|
58
|
+
: {}),
|
|
59
|
+
updatedAt: new Date().toISOString(),
|
|
60
|
+
};
|
|
61
|
+
setLocal((current) => new Map(current).set(message.id, { feedback: optimistic }));
|
|
62
|
+
setPending((current) => new Set(current).add(message.id));
|
|
63
|
+
try {
|
|
64
|
+
const storedId = await storedIdFor(message);
|
|
65
|
+
const { feedback } = await setFeedback(storedId, {
|
|
66
|
+
value,
|
|
67
|
+
...(comment !== undefined ? { comment } : {}),
|
|
68
|
+
});
|
|
69
|
+
setLocal((current) => new Map(current).set(message.id, { feedback }));
|
|
70
|
+
setError(null);
|
|
71
|
+
}
|
|
72
|
+
catch (caught) {
|
|
73
|
+
setLocal((current) => {
|
|
74
|
+
const next = new Map(current);
|
|
75
|
+
if (had === undefined)
|
|
76
|
+
next.delete(message.id);
|
|
77
|
+
else
|
|
78
|
+
next.set(message.id, had);
|
|
79
|
+
return next;
|
|
80
|
+
});
|
|
81
|
+
const failure = caught instanceof Error ? caught : new Error(String(caught));
|
|
82
|
+
setError(failure);
|
|
83
|
+
throw failure;
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
setPending((current) => {
|
|
87
|
+
const next = new Set(current);
|
|
88
|
+
next.delete(message.id);
|
|
89
|
+
return next;
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}, [storedIdFor]);
|
|
93
|
+
const toggle = useCallback((message, value) => {
|
|
94
|
+
const mine = localRef.current.get(message.id);
|
|
95
|
+
const current = mine !== undefined ? mine.feedback : (metadataOf(message).feedback ?? null);
|
|
96
|
+
return rate(message, current?.value === value ? null : value);
|
|
97
|
+
}, [rate]);
|
|
98
|
+
return { feedbackOf, isPending, rate, toggle, error };
|
|
99
|
+
}
|
|
100
|
+
function metadataOf(message) {
|
|
101
|
+
const metadata = message.metadata;
|
|
102
|
+
return metadata !== null && typeof metadata === 'object'
|
|
103
|
+
? metadata
|
|
104
|
+
: {};
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=use-message-feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-message-feedback.js","sourceRoot":"","sources":["../../../../../src/react/core/feedback/use-message-feedback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { TranscriptUiBlock } from '../transcript/model.js';
|
|
3
|
+
import type { GenerativeUIElement, GenerativeUIItem, GenerativeUIOptions, GenerativeUIProblem, GenerativeUIState } from './types.js';
|
|
4
|
+
/** What to draw instead of a component that did not render. Default: nothing. */
|
|
5
|
+
export type GenerativeUIFallback = ReactNode | ((problem: GenerativeUIProblem) => ReactNode);
|
|
6
|
+
/**
|
|
7
|
+
* Renders a `genui:tree` frame's `{ root }` node by node through the same registry, catalog and
|
|
8
|
+
* resolver as top-level components. Used automatically for tree frames unless a `treeRenderer`
|
|
9
|
+
* (e.g. the json-render one) or a registry entry for `genui:tree` takes over.
|
|
10
|
+
*/
|
|
11
|
+
export declare function GenuiTree({ root }: {
|
|
12
|
+
root?: GenerativeUIElement;
|
|
13
|
+
}): import("react").JSX.Element | null;
|
|
14
|
+
export interface GenerativeUIScopeProps extends GenerativeUIOptions {
|
|
15
|
+
fallbackText?: string;
|
|
16
|
+
componentVersions?: Record<string, number>;
|
|
17
|
+
fallback?: GenerativeUIFallback;
|
|
18
|
+
loading?: ReactNode;
|
|
19
|
+
onError?: (error: unknown, item: GenerativeUIItem) => void;
|
|
20
|
+
children?: ReactNode;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The registry, catalog and fallbacks tree nodes render with. `<GenerativeUI>` provides it; wrap
|
|
24
|
+
* your own chrome in it when you draw `useGenerativeUI`'s `Component` yourself and it may be a tree.
|
|
25
|
+
*/
|
|
26
|
+
export declare function GenerativeUIScope({ registry, catalog, resolveComponent, fallback, fallbackText, componentVersions, loading, onError, children, }: GenerativeUIScopeProps): import("react").JSX.Element;
|
|
27
|
+
/** What `<GenuiProvider>` hands every `<GenerativeUI>` / `useGenerativeUI` below it. */
|
|
28
|
+
export interface GenuiProviderValue extends Partial<GenerativeUIOptions> {
|
|
29
|
+
fallback?: GenerativeUIFallback;
|
|
30
|
+
loading?: ReactNode;
|
|
31
|
+
onError?: (error: unknown, item: GenerativeUIItem) => void;
|
|
32
|
+
}
|
|
33
|
+
/** The enclosing `<GenuiProvider>`'s settings, or `null` outside one. */
|
|
34
|
+
export declare function useGenuiProvider(): GenuiProviderValue | null;
|
|
35
|
+
export interface GenuiProviderProps extends GenuiProviderValue {
|
|
36
|
+
children?: ReactNode;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Set generative UI up once, at the app root: the registry of your renderers, the catalog to
|
|
40
|
+
* validate against, a resolver for components the registry lacks, and what to draw when one does
|
|
41
|
+
* not render. Every `<GenerativeUI>` below reads it (its own props still win), and `MessageItem` /
|
|
42
|
+
* `MessageList` draw pushed components with it — no `renderUi` per message.
|
|
43
|
+
*
|
|
44
|
+
* ```tsx
|
|
45
|
+
* <GenuiProvider registry={registry} catalog={catalog} fallback={({ item }) => <Unknown name={item.component} />}>
|
|
46
|
+
* <App />
|
|
47
|
+
* </GenuiProvider>
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare function GenuiProvider({ registry, catalog, resolveComponent, treeRenderer, fallback, loading, onError, children, }: GenuiProviderProps): import("react").JSX.Element;
|
|
51
|
+
/**
|
|
52
|
+
* The headless half of {@link GenerativeUI}: what to draw for one pushed component, or `null` when
|
|
53
|
+
* `part` is not one. Options default to the enclosing `<GenuiProvider>`'s.
|
|
54
|
+
*/
|
|
55
|
+
export declare function useGenerativeUI(part: unknown, options?: Partial<GenerativeUIOptions>): GenerativeUIState | null;
|
|
56
|
+
export interface GenerativeUIProps extends Partial<GenerativeUIOptions> {
|
|
57
|
+
/** A transcript `ui` block, a `data-ui` message part, or a stored `{ id, component, props, version? }`. */
|
|
58
|
+
part: TranscriptUiBlock | GenerativeUIItem | unknown;
|
|
59
|
+
/** Drawn for an unknown component, invalid props, or a renderer that threw. Default: the provider's, then the item's persisted text. */
|
|
60
|
+
fallback?: GenerativeUIFallback;
|
|
61
|
+
/** Drawn while a resolver or an async validation is pending. Default: the provider's, else nothing. */
|
|
62
|
+
loading?: ReactNode;
|
|
63
|
+
/** A renderer threw (the item shows `fallback`). */
|
|
64
|
+
onError?: (error: unknown, item: GenerativeUIItem) => void;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Draws one server-pushed component with the app's own renderer. Headless: it adds no element and
|
|
68
|
+
* no style of its own — only what the registry's component renders (and whatever `fallback` /
|
|
69
|
+
* `loading` you pass). Everything but `part` defaults to the enclosing `<GenuiProvider>`.
|
|
70
|
+
*
|
|
71
|
+
* ```tsx
|
|
72
|
+
* <GenerativeUI part={block} />
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export declare function GenerativeUI({ part, registry, catalog, resolveComponent, treeRenderer, fallback: ownFallback, loading: ownLoading, onError: ownOnError, }: GenerativeUIProps): string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined;
|
|
76
|
+
//# sourceMappingURL=generative-ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generative-ui.d.ts","sourceRoot":"","sources":["../../../../../src/react/core/genui/generative-ui.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EAGlB,MAAM,YAAY,CAAC;AAOpB,iFAAiF;AACjF,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,mBAAmB,KAAK,SAAS,CAAC,CAAC;AA6H7F;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,mBAAmB,CAAA;CAAE,sCAGjE;AAED,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,OAAc,EACd,OAAO,EACP,QAAQ,GACT,EAAE,sBAAsB,+BA0BxB;AAED,wFAAwF;AACxF,MAAM,WAAW,kBAAmB,SAAQ,OAAO,CAAC,mBAAmB,CAAC;IACtE,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC5D;AAQD,yEAAyE;AACzE,wBAAgB,gBAAgB,IAAI,kBAAkB,GAAG,IAAI,CAE5D;AAED,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,OAAO,EACP,QAAQ,GACT,EAAE,kBAAkB,+BAmBpB;AAsBD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM,GACzC,iBAAiB,GAAG,IAAI,CAG1B;AAED,MAAM,WAAW,iBAAkB,SAAQ,OAAO,CAAC,mBAAmB,CAAC;IACrE,2GAA2G;IAC3G,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,OAAO,CAAC;IACrD,wIAAwI;IACxI,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,uGAAuG;IACvG,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,oDAAoD;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,UAAU,GACpB,EAAE,iBAAiB,+TAuCnB"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Component, createContext, useCallback, useContext, useMemo, } from 'react';
|
|
3
|
+
import { AmbientRenderUiContext, sharedContext } from '../components/ambient-ui.js';
|
|
4
|
+
import { useGenerativeUIState, useResolvedComponent, useValidatedProps, } from './use-generative-ui.js';
|
|
5
|
+
const TreeScopeContext = createContext(null);
|
|
6
|
+
function renderFallback(fallback, problem) {
|
|
7
|
+
if (typeof fallback === 'function')
|
|
8
|
+
return fallback(problem);
|
|
9
|
+
if (fallback !== undefined)
|
|
10
|
+
return fallback;
|
|
11
|
+
return problem.item.fallbackText !== undefined ? (_jsx("span", { style: { whiteSpace: 'pre-wrap' }, children: problem.item.fallbackText })) : null;
|
|
12
|
+
}
|
|
13
|
+
/** One failing renderer takes down its own item, never the message around it. */
|
|
14
|
+
class ItemBoundary extends Component {
|
|
15
|
+
state = { error: undefined, failed: false };
|
|
16
|
+
static getDerivedStateFromError(error) {
|
|
17
|
+
return { error, failed: true };
|
|
18
|
+
}
|
|
19
|
+
componentDidCatch(error, _info) {
|
|
20
|
+
this.props.onError?.(error, this.props.item);
|
|
21
|
+
}
|
|
22
|
+
componentDidUpdate(previous) {
|
|
23
|
+
// New props for the same item (a streamed update) get a fresh chance to render.
|
|
24
|
+
if (this.state.failed && previous.item !== this.props.item) {
|
|
25
|
+
this.setState({ error: undefined, failed: false });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
render() {
|
|
29
|
+
if (this.state.failed) {
|
|
30
|
+
return renderFallback(this.props.fallback, {
|
|
31
|
+
reason: 'error',
|
|
32
|
+
item: this.props.item,
|
|
33
|
+
error: this.state.error,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return this.props.children;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function nodeItem(node, id) {
|
|
40
|
+
return { id, component: node.type, props: node.props ?? {}, version: null, toolCallId: null };
|
|
41
|
+
}
|
|
42
|
+
/** One tree node: resolved and validated like a top-level item, children rendered as its `children`. */
|
|
43
|
+
function TreeNode({ node, id }) {
|
|
44
|
+
const scope = useContext(TreeScopeContext);
|
|
45
|
+
const item = useMemo(() => nodeItem(node, id), [node, id]);
|
|
46
|
+
const storedVersion = scope?.componentVersions?.[node.type];
|
|
47
|
+
const definition = scope?.options.catalog?.get?.(node.type);
|
|
48
|
+
const incompatible = storedVersion !== undefined &&
|
|
49
|
+
definition !== undefined &&
|
|
50
|
+
storedVersion !== (definition.version ?? 1);
|
|
51
|
+
const resolution = useResolvedComponent(node.type, storedVersion ?? null, incompatible ? {} : (scope?.options.registry ?? {}), scope?.options.resolveComponent);
|
|
52
|
+
const validation = useValidatedProps(incompatible ? undefined : scope?.options.catalog, node.type, item.props);
|
|
53
|
+
if (scope === null)
|
|
54
|
+
return null;
|
|
55
|
+
if (resolution.status === 'loading' || validation.status === 'pending')
|
|
56
|
+
return scope.loading;
|
|
57
|
+
if (resolution.status === 'unknown') {
|
|
58
|
+
if (scope.fallback === undefined && scope.fallbackText !== undefined)
|
|
59
|
+
throw new Error('Unknown tree component');
|
|
60
|
+
return renderFallback(scope.fallback, { reason: 'unknown', item });
|
|
61
|
+
}
|
|
62
|
+
if (resolution.status === 'error') {
|
|
63
|
+
if (scope.fallback === undefined && scope.fallbackText !== undefined)
|
|
64
|
+
throw resolution.error;
|
|
65
|
+
return renderFallback(scope.fallback, { reason: 'error', item, error: resolution.error });
|
|
66
|
+
}
|
|
67
|
+
if (validation.status === 'invalid') {
|
|
68
|
+
if (scope.fallback === undefined && scope.fallbackText !== undefined)
|
|
69
|
+
throw new Error('Invalid tree component');
|
|
70
|
+
return renderFallback(scope.fallback, { reason: 'invalid', item, issues: validation.issues });
|
|
71
|
+
}
|
|
72
|
+
const Renderer = resolution.Component;
|
|
73
|
+
const children = Array.isArray(node.children) ? node.children : [];
|
|
74
|
+
return (_jsx(Renderer, { ...validation.props, children: children.length > 0
|
|
75
|
+
? children.map((child, index) => {
|
|
76
|
+
const childId = `${id}.${index}`;
|
|
77
|
+
if (scope.fallback === undefined && scope.fallbackText !== undefined)
|
|
78
|
+
return _jsx(TreeNode, { node: child, id: childId }, childId);
|
|
79
|
+
return (_jsx(ItemBoundary, { item: nodeItem(child, childId), fallback: scope.fallback, onError: scope.onError, children: _jsx(TreeNode, { node: child, id: childId }) }, childId));
|
|
80
|
+
})
|
|
81
|
+
: undefined }));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Renders a `genui:tree` frame's `{ root }` node by node through the same registry, catalog and
|
|
85
|
+
* resolver as top-level components. Used automatically for tree frames unless a `treeRenderer`
|
|
86
|
+
* (e.g. the json-render one) or a registry entry for `genui:tree` takes over.
|
|
87
|
+
*/
|
|
88
|
+
export function GenuiTree({ root }) {
|
|
89
|
+
if (root === undefined || root === null || typeof root.type !== 'string')
|
|
90
|
+
return null;
|
|
91
|
+
return _jsx(TreeNode, { node: root, id: "root" });
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* The registry, catalog and fallbacks tree nodes render with. `<GenerativeUI>` provides it; wrap
|
|
95
|
+
* your own chrome in it when you draw `useGenerativeUI`'s `Component` yourself and it may be a tree.
|
|
96
|
+
*/
|
|
97
|
+
export function GenerativeUIScope({ registry, catalog, resolveComponent, fallback, fallbackText, componentVersions, loading = null, onError, children, }) {
|
|
98
|
+
const scope = useMemo(() => ({
|
|
99
|
+
options: {
|
|
100
|
+
registry,
|
|
101
|
+
...(catalog !== undefined ? { catalog } : {}),
|
|
102
|
+
...(resolveComponent !== undefined ? { resolveComponent } : {}),
|
|
103
|
+
},
|
|
104
|
+
fallback,
|
|
105
|
+
...(componentVersions !== undefined ? { componentVersions } : {}),
|
|
106
|
+
...(fallbackText !== undefined ? { fallbackText } : {}),
|
|
107
|
+
loading,
|
|
108
|
+
onError,
|
|
109
|
+
}), [
|
|
110
|
+
registry,
|
|
111
|
+
catalog,
|
|
112
|
+
resolveComponent,
|
|
113
|
+
fallback,
|
|
114
|
+
fallbackText,
|
|
115
|
+
componentVersions,
|
|
116
|
+
loading,
|
|
117
|
+
onError,
|
|
118
|
+
]);
|
|
119
|
+
return _jsx(TreeScopeContext.Provider, { value: scope, children: children });
|
|
120
|
+
}
|
|
121
|
+
// Shared by key: `/genui` and `/genui/json-render` are separate bundles, and a provider from one
|
|
122
|
+
// must reach a `<GenerativeUI>` from the other.
|
|
123
|
+
const GenuiContext = sharedContext('@adonis-agora/agent/react:genui-provider');
|
|
124
|
+
/** The enclosing `<GenuiProvider>`'s settings, or `null` outside one. */
|
|
125
|
+
export function useGenuiProvider() {
|
|
126
|
+
return useContext(GenuiContext);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Set generative UI up once, at the app root: the registry of your renderers, the catalog to
|
|
130
|
+
* validate against, a resolver for components the registry lacks, and what to draw when one does
|
|
131
|
+
* not render. Every `<GenerativeUI>` below reads it (its own props still win), and `MessageItem` /
|
|
132
|
+
* `MessageList` draw pushed components with it — no `renderUi` per message.
|
|
133
|
+
*
|
|
134
|
+
* ```tsx
|
|
135
|
+
* <GenuiProvider registry={registry} catalog={catalog} fallback={({ item }) => <Unknown name={item.component} />}>
|
|
136
|
+
* <App />
|
|
137
|
+
* </GenuiProvider>
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
export function GenuiProvider({ registry, catalog, resolveComponent, treeRenderer, fallback, loading, onError, children, }) {
|
|
141
|
+
const value = useMemo(() => ({
|
|
142
|
+
...(registry !== undefined ? { registry } : {}),
|
|
143
|
+
...(catalog !== undefined ? { catalog } : {}),
|
|
144
|
+
...(resolveComponent !== undefined ? { resolveComponent } : {}),
|
|
145
|
+
...(treeRenderer !== undefined ? { treeRenderer } : {}),
|
|
146
|
+
...(fallback !== undefined ? { fallback } : {}),
|
|
147
|
+
...(loading !== undefined ? { loading } : {}),
|
|
148
|
+
...(onError !== undefined ? { onError } : {}),
|
|
149
|
+
}), [registry, catalog, resolveComponent, treeRenderer, fallback, loading, onError]);
|
|
150
|
+
const renderUi = useCallback((block) => _jsx(GenerativeUI, { part: block }), []);
|
|
151
|
+
return (_jsx(GenuiContext.Provider, { value: value, children: _jsx(AmbientRenderUiContext.Provider, { value: renderUi, children: children }) }));
|
|
152
|
+
}
|
|
153
|
+
const NO_REGISTRY = {};
|
|
154
|
+
/** Provider settings overlaid with explicit ones (explicit wins), memoized on their parts. */
|
|
155
|
+
function useMergedOptions(own) {
|
|
156
|
+
const provided = useContext(GenuiContext);
|
|
157
|
+
const registry = own.registry ?? provided?.registry ?? NO_REGISTRY;
|
|
158
|
+
const catalog = own.catalog ?? provided?.catalog;
|
|
159
|
+
const resolveComponent = own.resolveComponent ?? provided?.resolveComponent;
|
|
160
|
+
const treeRenderer = own.treeRenderer ?? provided?.treeRenderer;
|
|
161
|
+
return useMemo(() => ({
|
|
162
|
+
registry,
|
|
163
|
+
...(catalog !== undefined ? { catalog } : {}),
|
|
164
|
+
...(resolveComponent !== undefined ? { resolveComponent } : {}),
|
|
165
|
+
...(treeRenderer !== undefined ? { treeRenderer } : {}),
|
|
166
|
+
}), [registry, catalog, resolveComponent, treeRenderer]);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* The headless half of {@link GenerativeUI}: what to draw for one pushed component, or `null` when
|
|
170
|
+
* `part` is not one. Options default to the enclosing `<GenuiProvider>`'s.
|
|
171
|
+
*/
|
|
172
|
+
export function useGenerativeUI(part, options = {}) {
|
|
173
|
+
const merged = useMergedOptions(options);
|
|
174
|
+
return useGenerativeUIState(part, merged, merged.treeRenderer ?? GenuiTree);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Draws one server-pushed component with the app's own renderer. Headless: it adds no element and
|
|
178
|
+
* no style of its own — only what the registry's component renders (and whatever `fallback` /
|
|
179
|
+
* `loading` you pass). Everything but `part` defaults to the enclosing `<GenuiProvider>`.
|
|
180
|
+
*
|
|
181
|
+
* ```tsx
|
|
182
|
+
* <GenerativeUI part={block} />
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
export function GenerativeUI({ part, registry, catalog, resolveComponent, treeRenderer, fallback: ownFallback, loading: ownLoading, onError: ownOnError, }) {
|
|
186
|
+
const provided = useContext(GenuiContext);
|
|
187
|
+
const fallback = ownFallback !== undefined ? ownFallback : provided?.fallback;
|
|
188
|
+
const loading = ownLoading ?? provided?.loading ?? null;
|
|
189
|
+
const onError = ownOnError ?? provided?.onError;
|
|
190
|
+
const options = useMergedOptions({
|
|
191
|
+
...(registry !== undefined ? { registry } : {}),
|
|
192
|
+
...(catalog !== undefined ? { catalog } : {}),
|
|
193
|
+
...(resolveComponent !== undefined ? { resolveComponent } : {}),
|
|
194
|
+
...(treeRenderer !== undefined ? { treeRenderer } : {}),
|
|
195
|
+
});
|
|
196
|
+
const state = useGenerativeUIState(part, options, options.treeRenderer ?? GenuiTree);
|
|
197
|
+
if (state === null)
|
|
198
|
+
return null;
|
|
199
|
+
if (state.status === 'loading')
|
|
200
|
+
return loading;
|
|
201
|
+
if (state.status === 'problem') {
|
|
202
|
+
const { status: _status, ...problem } = state;
|
|
203
|
+
return renderFallback(fallback, problem);
|
|
204
|
+
}
|
|
205
|
+
const Renderer = state.Component;
|
|
206
|
+
return (_jsx(GenerativeUIScope, { ...options, ...(state.item.componentVersions !== undefined
|
|
207
|
+
? { componentVersions: state.item.componentVersions }
|
|
208
|
+
: {}), ...(state.item.fallbackText !== undefined ? { fallbackText: state.item.fallbackText } : {}), fallback: fallback, loading: loading, ...(onError !== undefined ? { onError } : {}), children: _jsx(ItemBoundary, { item: state.item, fallback: fallback, onError: onError, children: _jsx(Renderer, { ...state.props }) }) }));
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=generative-ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generative-ui.js","sourceRoot":"","sources":["../../../../../src/react/core/genui/generative-ui.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { GenerativeUI, type GenerativeUIFallback, type GenerativeUIProps, GenerativeUIScope, type GenerativeUIScopeProps, GenuiProvider, type GenuiProviderProps, type GenuiProviderValue, GenuiTree, useGenerativeUI, useGenuiProvider, } from './generative-ui.js';
|
|
2
|
+
export { createReactComponentRegistry, type ReactComponentRegistry, type ReactComponentRenderers, } from './react-registry.js';
|
|
3
|
+
export { GENUI_TREE_COMPONENT, type GenerativeUIElement, type GenerativeUIItem, type GenerativeUIOptions, type GenerativeUIProblem, type GenerativeUIState, type GenuiCatalogLike, type GenuiIssueLike, type GenuiRegistry, type GenuiRenderer, type ResolveComponent, } from './types.js';
|
|
4
|
+
export { toGenerativeUIItem } from './use-generative-ui.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|