@adonis-agora/agent 0.60.1 → 0.62.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 +96 -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 +9 -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 +195 -11
- 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-approval.d.ts +26 -0
- package/dist/src/action-proposal-approval.d.ts.map +1 -0
- package/dist/src/action-proposal-approval.js +28 -0
- package/dist/src/action-proposal-approval.js.map +1 -0
- package/dist/src/action-proposal-discovery.d.ts +9 -0
- package/dist/src/action-proposal-discovery.d.ts.map +1 -0
- package/dist/src/action-proposal-discovery.js +20 -0
- package/dist/src/action-proposal-discovery.js.map +1 -0
- package/dist/src/action-proposal-executor.d.ts +40 -0
- package/dist/src/action-proposal-executor.d.ts.map +1 -0
- package/dist/src/action-proposal-executor.js +80 -0
- package/dist/src/action-proposal-executor.js.map +1 -0
- package/dist/src/action-proposal-outcome.d.ts +12 -0
- package/dist/src/action-proposal-outcome.d.ts.map +1 -0
- package/dist/src/action-proposal-outcome.js +86 -0
- package/dist/src/action-proposal-outcome.js.map +1 -0
- package/dist/src/action-proposal-preparation.d.ts +20 -0
- package/dist/src/action-proposal-preparation.d.ts.map +1 -0
- package/dist/src/action-proposal-preparation.js +27 -0
- package/dist/src/action-proposal-preparation.js.map +1 -0
- package/dist/src/action-proposal-receipt.d.ts +12 -0
- package/dist/src/action-proposal-receipt.d.ts.map +1 -0
- package/dist/src/action-proposal-receipt.js +4 -0
- package/dist/src/action-proposal-receipt.js.map +1 -0
- package/dist/src/action-proposal-runtime.d.ts +9 -0
- package/dist/src/action-proposal-runtime.d.ts.map +1 -0
- package/dist/src/action-proposal-runtime.js +34 -0
- package/dist/src/action-proposal-runtime.js.map +1 -0
- package/dist/src/action-proposal-service.d.ts +47 -0
- package/dist/src/action-proposal-service.d.ts.map +1 -0
- package/dist/src/action-proposal-service.js +136 -0
- package/dist/src/action-proposal-service.js.map +1 -0
- package/dist/src/action-proposal-text.d.ts +72 -0
- package/dist/src/action-proposal-text.d.ts.map +1 -0
- package/dist/src/action-proposal-text.js +119 -0
- package/dist/src/action-proposal-text.js.map +1 -0
- package/dist/src/action-proposal-transitions.d.ts +20 -0
- package/dist/src/action-proposal-transitions.d.ts.map +1 -0
- package/dist/src/action-proposal-transitions.js +311 -0
- package/dist/src/action-proposal-transitions.js.map +1 -0
- package/dist/src/action-proposal-worker.d.ts +32 -0
- package/dist/src/action-proposal-worker.d.ts.map +1 -0
- package/dist/src/action-proposal-worker.js +140 -0
- package/dist/src/action-proposal-worker.js.map +1 -0
- package/dist/src/ag-ui/adapter.d.ts.map +1 -1
- package/dist/src/ag-ui/adapter.js +106 -1
- package/dist/src/ag-ui/adapter.js.map +1 -1
- package/dist/src/ag-ui/core/encoder.d.ts +105 -0
- package/dist/src/ag-ui/core/encoder.d.ts.map +1 -0
- package/dist/src/ag-ui/core/encoder.js +523 -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 +74 -0
- package/dist/src/ag-ui/core/input.d.ts.map +1 -0
- package/dist/src/ag-ui/core/input.js +228 -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/core/proposal-decision.d.ts +9 -0
- package/dist/src/ag-ui/core/proposal-decision.d.ts.map +1 -0
- package/dist/src/ag-ui/core/proposal-decision.js +20 -0
- package/dist/src/ag-ui/core/proposal-decision.js.map +1 -0
- package/dist/src/ag-ui/core/stream.d.ts +27 -0
- package/dist/src/ag-ui/core/stream.d.ts.map +1 -0
- package/dist/src/ag-ui/core/stream.js +68 -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 +4 -5
- package/dist/src/ag-ui/frames.d.ts.map +1 -1
- package/dist/src/ag-ui/frames.js +9 -4
- 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 +8 -0
- package/dist/src/agent-deps-factory.d.ts.map +1 -1
- package/dist/src/agent-deps-factory.js +12 -0
- package/dist/src/agent-deps-factory.js.map +1 -1
- package/dist/src/agent-deps.d.ts +7 -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 +8 -3
- package/dist/src/agent-loop.d.ts.map +1 -1
- package/dist/src/agent-loop.js +398 -63
- package/dist/src/agent-loop.js.map +1 -1
- package/dist/src/agent-service.d.ts +52 -2
- package/dist/src/agent-service.d.ts.map +1 -1
- package/dist/src/agent-service.js +62 -2
- 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 +6 -1
- package/dist/src/ai-tool-ref.d.ts.map +1 -1
- package/dist/src/ai-tool-ref.js +32 -16
- package/dist/src/ai-tool-ref.js.map +1 -1
- package/dist/src/chat-queue-service.d.ts.map +1 -1
- package/dist/src/chat-queue-service.js +4 -0
- package/dist/src/chat-queue-service.js.map +1 -1
- package/dist/src/client/chat-client.d.ts +12 -0
- package/dist/src/client/chat-client.d.ts.map +1 -1
- package/dist/src/client/chat-client.js +69 -1
- package/dist/src/client/chat-client.js.map +1 -1
- package/dist/src/client/sse.d.ts +15 -0
- package/dist/src/client/sse.d.ts.map +1 -1
- package/dist/src/client/sse.js +45 -0
- package/dist/src/client/sse.js.map +1 -1
- package/dist/src/define_config.d.ts +70 -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 +298 -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 +77 -0
- package/dist/src/genui/catalog.d.ts.map +1 -0
- package/dist/src/genui/catalog.js +88 -0
- package/dist/src/genui/catalog.js.map +1 -0
- package/dist/src/genui/factory.d.ts +8 -8
- package/dist/src/genui/factory.d.ts.map +1 -1
- package/dist/src/genui/factory.js +3 -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 +6 -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 +35 -0
- package/dist/src/genui/text.d.ts.map +1 -0
- package/dist/src/genui/text.js +156 -0
- package/dist/src/genui/text.js.map +1 -0
- package/dist/src/genui/tools.d.ts +91 -0
- package/dist/src/genui/tools.d.ts.map +1 -0
- package/dist/src/genui/tools.js +292 -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 +21 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +19 -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 +10 -0
- package/dist/src/negotiated-tool-ui.d.ts.map +1 -0
- package/dist/src/negotiated-tool-ui.js +57 -0
- package/dist/src/negotiated-tool-ui.js.map +1 -0
- 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 +245 -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 +85 -0
- package/dist/src/react/core/ag-ui-backend.d.ts.map +1 -0
- package/dist/src/react/core/ag-ui-backend.js +409 -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 +796 -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 +234 -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/action-proposal-outcome-store.d.ts +43 -0
- package/dist/src/spi/action-proposal-outcome-store.d.ts.map +1 -0
- package/dist/src/spi/action-proposal-outcome-store.js +2 -0
- package/dist/src/spi/action-proposal-outcome-store.js.map +1 -0
- package/dist/src/spi/action-proposal-store.d.ts +152 -0
- package/dist/src/spi/action-proposal-store.d.ts.map +1 -0
- package/dist/src/spi/action-proposal-store.js +2 -0
- package/dist/src/spi/action-proposal-store.js.map +1 -0
- package/dist/src/spi/action-proposal-worker-store.d.ts +17 -0
- package/dist/src/spi/action-proposal-worker-store.d.ts.map +1 -0
- package/dist/src/spi/action-proposal-worker-store.js +2 -0
- package/dist/src/spi/action-proposal-worker-store.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/agent-store.d.ts +5 -0
- package/dist/src/spi/agent-store.d.ts.map +1 -1
- package/dist/src/spi/agent-store.js.map +1 -1
- package/dist/src/spi/approval-policy.d.ts +3 -0
- package/dist/src/spi/approval-policy.d.ts.map +1 -1
- package/dist/src/spi/approval-policy.js +8 -1
- package/dist/src/spi/approval-policy.js.map +1 -1
- package/dist/src/spi/background-actor-resolver.d.ts +9 -0
- package/dist/src/spi/background-actor-resolver.d.ts.map +1 -0
- package/dist/src/spi/background-actor-resolver.js +2 -0
- package/dist/src/spi/background-actor-resolver.js.map +1 -0
- package/dist/src/spi/chat-queue.d.ts +7 -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/token-stream-sink.d.ts +9 -0
- package/dist/src/spi/token-stream-sink.d.ts.map +1 -1
- package/dist/src/spi/token-stream-sink.js.map +1 -1
- package/dist/src/spi/tool.d.ts +40 -3
- package/dist/src/spi/tool.d.ts.map +1 -1
- package/dist/src/sse.d.ts.map +1 -1
- package/dist/src/sse.js +6 -0
- package/dist/src/sse.js.map +1 -1
- package/dist/src/stores/lucid-action-proposal-store.d.ts +55 -0
- package/dist/src/stores/lucid-action-proposal-store.d.ts.map +1 -0
- package/dist/src/stores/lucid-action-proposal-store.js +465 -0
- package/dist/src/stores/lucid-action-proposal-store.js.map +1 -0
- package/dist/src/stores/lucid-schema.d.ts +8 -6
- package/dist/src/stores/lucid-schema.d.ts.map +1 -1
- package/dist/src/stores/lucid-schema.js +61 -6
- package/dist/src/stores/lucid-schema.js.map +1 -1
- package/dist/src/stores/lucid.d.ts +4 -2
- package/dist/src/stores/lucid.d.ts.map +1 -1
- package/dist/src/stores/lucid.js +46 -14
- package/dist/src/stores/lucid.js.map +1 -1
- package/dist/src/stores/sqlite-transactions.d.ts +8 -0
- package/dist/src/stores/sqlite-transactions.d.ts.map +1 -0
- package/dist/src/stores/sqlite-transactions.js +24 -0
- package/dist/src/stores/sqlite-transactions.js.map +1 -0
- package/dist/src/stream-events.d.ts +4 -0
- package/dist/src/stream-events.d.ts.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-action-proposal-store.d.ts +32 -0
- package/dist/src/testing/in-memory-action-proposal-store.d.ts.map +1 -0
- package/dist/src/testing/in-memory-action-proposal-store.js +159 -0
- package/dist/src/testing/in-memory-action-proposal-store.js.map +1 -0
- package/dist/src/testing/in-memory-store.d.ts +9 -1
- package/dist/src/testing/in-memory-store.d.ts.map +1 -1
- package/dist/src/testing/in-memory-store.js +80 -1
- package/dist/src/testing/in-memory-store.js.map +1 -1
- package/dist/src/testing/index.d.ts +1 -0
- package/dist/src/testing/index.d.ts.map +1 -1
- package/dist/src/testing/index.js +1 -0
- package/dist/src/testing/index.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 +12 -1
- package/dist/src/tool-discovery.js.map +1 -1
- package/dist/src/tool-registry.d.ts +28 -1
- package/dist/src/tool-registry.d.ts.map +1 -1
- package/dist/src/tool-registry.js +85 -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/tool-retry.d.ts +0 -11
- package/dist/src/tool-retry.d.ts.map +1 -1
- package/dist/src/tool-retry.js +5 -1
- package/dist/src/tool-retry.js.map +1 -1
- package/dist/src/tool-ui.d.ts +4 -1
- package/dist/src/tool-ui.d.ts.map +1 -1
- package/dist/src/tool-ui.js +32 -4
- package/dist/src/tool-ui.js.map +1 -1
- package/dist/src/types.d.ts +48 -2
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/ui-capabilities.d.ts +2 -0
- package/dist/src/ui-capabilities.d.ts.map +1 -0
- package/dist/src/ui-capabilities.js +4 -0
- package/dist/src/ui-capabilities.js.map +1 -0
- package/dist/stubs/database/migrations/add_action_proposal_discovery.stub +24 -0
- package/dist/stubs/database/migrations/add_action_proposal_runtime.stub +19 -0
- package/dist/stubs/database/migrations/create_agent_tables.stub +3 -3
- package/package.json +123 -22
- package/skills/agent-governance/SKILL.md +12 -4
- package/skills/agent-personas-agents/SKILL.md +2 -1
- package/skills/agent-setup/SKILL.md +36 -13
- package/skills/agent-testing/SKILL.md +22 -0
- package/skills/agent-tools/SKILL.md +54 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/genui/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { type GenuiValidation, type JsonSchema, type JsonSchemaValidator, type PropsSchema } from './schema.js';
|
|
2
|
+
/**
|
|
3
|
+
* One component a server may push into a conversation. Data only — how it LOOKS is each app's own
|
|
4
|
+
* renderer, looked up by {@link name}. The same definition serves the model (description + props
|
|
5
|
+
* schema), the server (validation), text-only channels ({@link fallbackText}) and the client
|
|
6
|
+
* (validation before rendering).
|
|
7
|
+
*/
|
|
8
|
+
export interface ComponentDefinition<P = Record<string, unknown>> {
|
|
9
|
+
/** Registry key, e.g. `DataTable`. What a `ui` frame's `component` names. */
|
|
10
|
+
name: string;
|
|
11
|
+
/** Human label: "Data table". */
|
|
12
|
+
title: string;
|
|
13
|
+
/** Shown to the model: what the component is for and when to use it. */
|
|
14
|
+
description: string;
|
|
15
|
+
/** The props schema: a Standard Schema (Zod, Valibot, ArkType) or a JSON Schema object. */
|
|
16
|
+
props: PropsSchema;
|
|
17
|
+
/** Portable normalized props schema. Required when input transformations are not idempotent. */
|
|
18
|
+
outputProps?: PropsSchema;
|
|
19
|
+
/**
|
|
20
|
+
* The component takes nested elements (a layout: `Stack`, `Card`). Only meaningful in tree mode,
|
|
21
|
+
* where a node's `children` are validated against the catalog too.
|
|
22
|
+
*/
|
|
23
|
+
children?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Plain text / Slack mrkdwn rendering of these props, for a channel that cannot draw the
|
|
26
|
+
* component. Absent → {@link componentToText} prints the props as JSON.
|
|
27
|
+
*/
|
|
28
|
+
fallbackText?(props: P): string;
|
|
29
|
+
/**
|
|
30
|
+
* Pushed by the server (e.g. an approval card), never offered to the model. Excluded from
|
|
31
|
+
* {@link catalogToModelText} and from the tool factories.
|
|
32
|
+
*/
|
|
33
|
+
internal?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Schema version of {@link props}. Stamped on every `ui` frame the component is pushed with, so a
|
|
36
|
+
* client can keep rendering messages persisted under an older shape.
|
|
37
|
+
*/
|
|
38
|
+
version?: number;
|
|
39
|
+
}
|
|
40
|
+
/** Component names: an identifier a registry key, a tool name and a snake_case slug can all be derived from. */
|
|
41
|
+
export declare const COMPONENT_NAME: RegExp;
|
|
42
|
+
/** Declare a component. Validates the name and returns the definition unchanged (typed). */
|
|
43
|
+
export declare function defineComponent<P = Record<string, unknown>>(definition: ComponentDefinition<P>): ComponentDefinition<P>;
|
|
44
|
+
export interface CatalogOptions {
|
|
45
|
+
/** How JSON Schema props are checked. Default: {@link builtinJsonSchemaValidator}; pass `ajvValidator(new Ajv())` for full JSON Schema. */
|
|
46
|
+
jsonSchemaValidator?: JsonSchemaValidator;
|
|
47
|
+
}
|
|
48
|
+
/** An immutable set of component definitions, looked up by name. */
|
|
49
|
+
export interface Catalog {
|
|
50
|
+
readonly components: readonly ComponentDefinition<unknown>[];
|
|
51
|
+
readonly validator: JsonSchemaValidator;
|
|
52
|
+
get(name: string): ComponentDefinition<unknown> | undefined;
|
|
53
|
+
has(name: string): boolean;
|
|
54
|
+
/** The components a model may be offered (every non-`internal` one). */
|
|
55
|
+
modelComponents(): ComponentDefinition<unknown>[];
|
|
56
|
+
/** Validate `props` for `component`. An unknown component is a validation failure, not a throw. */
|
|
57
|
+
validate(component: string, props: unknown): Promise<GenuiValidation<Record<string, unknown>>>;
|
|
58
|
+
/**
|
|
59
|
+
* {@link validate} without waiting — `undefined` only when the component's Standard Schema
|
|
60
|
+
* validates asynchronously. An unknown component is a failure, as in `validate`.
|
|
61
|
+
*/
|
|
62
|
+
validateSync(component: string, props: unknown): GenuiValidation<Record<string, unknown>> | undefined;
|
|
63
|
+
/** The component's props as JSON Schema, when it can be derived (see {@link toJsonSchema}). */
|
|
64
|
+
jsonSchemaFor(component: string): JsonSchema | undefined;
|
|
65
|
+
/** A new catalog with these components added (a later definition replaces an earlier one of the same name). */
|
|
66
|
+
extend(components: readonly ComponentDefinition<unknown>[]): Catalog;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Collect component definitions into a {@link Catalog}. Names must be unique; to override a
|
|
70
|
+
* definition (e.g. a builtin), use {@link Catalog.extend}.
|
|
71
|
+
*/
|
|
72
|
+
export declare function defineCatalog(components: readonly ComponentDefinition<unknown>[], options?: CatalogOptions): Catalog;
|
|
73
|
+
/** `DataTable` → `data_table`, `KPICards` → `kpi_cards`. */
|
|
74
|
+
export declare function toSnakeCase(name: string): string;
|
|
75
|
+
/** The per-component tool name: `ui__show_data_table` with the default prefix. */
|
|
76
|
+
export declare function toolNameFor(component: string, prefix?: string): string;
|
|
77
|
+
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/genui/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAIjB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9D,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,KAAK,EAAE,WAAW,CAAC;IACnB,gGAAgG;IAChG,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,gHAAgH;AAChH,eAAO,MAAM,cAAc,QAAgC,CAAC;AAE5D,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzD,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,GACjC,mBAAmB,CAAC,CAAC,CAAC,CAcxB;AAED,MAAM,WAAW,cAAc;IAC7B,2IAA2I;IAC3I,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,oEAAoE;AACpE,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7D,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAC5D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,wEAAwE;IACxE,eAAe,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,mGAAmG;IACnG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/F;;;OAGG;IACH,YAAY,CACV,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,GACb,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxD,+FAA+F;IAC/F,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACzD,+GAA+G;IAC/G,MAAM,CAAC,UAAU,EAAE,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC;CACtE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAAE,EACnD,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAUT;AAyDD,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,SAAc,GAAG,MAAM,CAE3E"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { builtinJsonSchemaValidator, toJsonSchema, validateProps, validatePropsSync, } from './schema.js';
|
|
2
|
+
/** Component names: an identifier a registry key, a tool name and a snake_case slug can all be derived from. */
|
|
3
|
+
export const COMPONENT_NAME = /^[A-Za-z][A-Za-z0-9]{0,63}$/;
|
|
4
|
+
/** Declare a component. Validates the name and returns the definition unchanged (typed). */
|
|
5
|
+
export function defineComponent(definition) {
|
|
6
|
+
if (!COMPONENT_NAME.test(definition.name)) {
|
|
7
|
+
throw new Error(`genui: component name "${definition.name}" must be letters and digits, starting with a letter (e.g. DataTable)`);
|
|
8
|
+
}
|
|
9
|
+
if (definition.version !== undefined &&
|
|
10
|
+
(!Number.isSafeInteger(definition.version) || definition.version <= 0))
|
|
11
|
+
throw new RangeError('genui: component version must be a positive safe integer');
|
|
12
|
+
if (definition.fallbackText !== undefined && typeof definition.fallbackText !== 'function')
|
|
13
|
+
throw new TypeError('genui: fallbackText must be a function');
|
|
14
|
+
return definition;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Collect component definitions into a {@link Catalog}. Names must be unique; to override a
|
|
18
|
+
* definition (e.g. a builtin), use {@link Catalog.extend}.
|
|
19
|
+
*/
|
|
20
|
+
export function defineCatalog(components, options = {}) {
|
|
21
|
+
const byName = new Map();
|
|
22
|
+
for (const component of components) {
|
|
23
|
+
defineComponent(component);
|
|
24
|
+
if (byName.has(component.name)) {
|
|
25
|
+
throw new Error(`genui: component "${component.name}" is defined twice in one catalog`);
|
|
26
|
+
}
|
|
27
|
+
byName.set(component.name, component);
|
|
28
|
+
}
|
|
29
|
+
return buildCatalog(byName, options.jsonSchemaValidator ?? builtinJsonSchemaValidator);
|
|
30
|
+
}
|
|
31
|
+
function buildCatalog(byName, validator) {
|
|
32
|
+
const list = Object.freeze([...byName.values()]);
|
|
33
|
+
return {
|
|
34
|
+
components: list,
|
|
35
|
+
validator,
|
|
36
|
+
get: (name) => byName.get(name),
|
|
37
|
+
has: (name) => byName.has(name),
|
|
38
|
+
modelComponents: () => list.filter((component) => component.internal !== true),
|
|
39
|
+
async validate(component, props) {
|
|
40
|
+
const definition = byName.get(component);
|
|
41
|
+
if (definition === undefined) {
|
|
42
|
+
return {
|
|
43
|
+
ok: false,
|
|
44
|
+
issues: [{ path: [], message: `unknown component "${component}"` }],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const result = await validateProps(definition.outputProps ?? definition.props, props, validator);
|
|
48
|
+
return result;
|
|
49
|
+
},
|
|
50
|
+
validateSync(component, props) {
|
|
51
|
+
const definition = byName.get(component);
|
|
52
|
+
if (definition === undefined) {
|
|
53
|
+
return {
|
|
54
|
+
ok: false,
|
|
55
|
+
issues: [{ path: [], message: `unknown component "${component}"` }],
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return validatePropsSync(definition.outputProps ?? definition.props, props, validator);
|
|
59
|
+
},
|
|
60
|
+
jsonSchemaFor(component) {
|
|
61
|
+
const definition = byName.get(component);
|
|
62
|
+
return definition === undefined
|
|
63
|
+
? undefined
|
|
64
|
+
: toJsonSchema(definition.outputProps ?? definition.props);
|
|
65
|
+
},
|
|
66
|
+
extend(more) {
|
|
67
|
+
const next = new Map(byName);
|
|
68
|
+
for (const component of more) {
|
|
69
|
+
defineComponent(component);
|
|
70
|
+
next.set(component.name, component);
|
|
71
|
+
}
|
|
72
|
+
return buildCatalog(next, validator);
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/** `DataTable` → `data_table`, `KPICards` → `kpi_cards`. */
|
|
77
|
+
export function toSnakeCase(name) {
|
|
78
|
+
return name
|
|
79
|
+
.replace(/([a-z0-9])([A-Z])/g, '$1_$2')
|
|
80
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')
|
|
81
|
+
.replace(/[^a-zA-Z0-9]+/g, '_')
|
|
82
|
+
.toLowerCase();
|
|
83
|
+
}
|
|
84
|
+
/** The per-component tool name: `ui__show_data_table` with the default prefix. */
|
|
85
|
+
export function toolNameFor(component, prefix = 'ui__show_') {
|
|
86
|
+
return `${prefix}${toSnakeCase(component)}`;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/genui/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The framework-free half of the genui wiring: the types `config/agent.ts` holds and the provider
|
|
3
|
-
* calls. Imports nothing from `@dudousxd/nestjs-agent-core`, so the main entry (and `defineConfig`'s
|
|
4
|
-
* types) never needs that optional peer; only `@adonis-agora/agent/genui` does.
|
|
5
|
-
*/
|
|
1
|
+
/** Framework-independent wiring for the local Adonis GenUI catalog and provider. */
|
|
6
2
|
import type { FunctionalTool } from '../ai-tool-ref.js';
|
|
3
|
+
import type { Catalog } from './catalog.js';
|
|
4
|
+
import type { GenuiCatalogScope } from './tools.js';
|
|
7
5
|
/** What the provider hands a {@link GenuiFactory} at boot. */
|
|
8
6
|
export interface GenuiFactoryContext {
|
|
9
7
|
/**
|
|
@@ -14,9 +12,10 @@ export interface GenuiFactoryContext {
|
|
|
14
12
|
}
|
|
15
13
|
/** What a {@link GenuiFactory} produces: the tools to register, and the boot-time catalog. */
|
|
16
14
|
export interface GenuiSetup {
|
|
15
|
+
resolveCatalog?: (scope: GenuiCatalogScope) => Catalog | Promise<Catalog>;
|
|
17
16
|
tools: FunctionalTool[];
|
|
18
17
|
/** The boot-time catalog, bound in the container as `AgentGenui`. */
|
|
19
|
-
catalog:
|
|
18
|
+
catalog: Catalog;
|
|
20
19
|
}
|
|
21
20
|
/**
|
|
22
21
|
* `genui` in `config/agent.ts`: a lazy factory, built by `genui({ … })` from
|
|
@@ -28,7 +27,8 @@ export type GenuiFactory = (ctx: GenuiFactoryContext) => Promise<GenuiSetup>;
|
|
|
28
27
|
* genui: AgentGenui)` → `this.genui.catalog` (the same object a browser build imports).
|
|
29
28
|
*/
|
|
30
29
|
export declare class AgentGenui {
|
|
31
|
-
readonly catalog:
|
|
32
|
-
|
|
30
|
+
readonly catalog: Catalog;
|
|
31
|
+
readonly resolveCatalog?: GenuiSetup['resolveCatalog'];
|
|
32
|
+
constructor(catalog: Catalog, resolveCatalog?: GenuiSetup['resolveCatalog']);
|
|
33
33
|
}
|
|
34
34
|
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/genui/factory.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/genui/factory.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,8DAA8D;AAC9D,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAClE;AAED,8FAA8F;AAC9F,MAAM,WAAW,UAAU;IACzB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,qEAAqE;IACrE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE7E;;;GAGG;AACH,qBAAa,UAAU;IAEnB,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC;IAFxD,YACW,OAAO,EAAE,OAAO,EAChB,cAAc,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,EACpD;CACL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/genui/factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/genui/factory.ts"],"names":[],"mappings":"AA4BA;;;GAGG;AACH,MAAM,OAAO,UAAU;IAEV,OAAO;IACP,cAAc;IAFzB,YACW,OAAgB,EAChB,cAA6C;uBAD7C,OAAO;8BACP,cAAc;IACtB,CAAC;CACL"}
|
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* The catalog itself (component definitions, validation, model-facing text, the tools that push `ui`
|
|
5
|
-
* frames) is `@dudousxd/nestjs-agent-core/genui`, re-exported here unchanged: it is isomorphic and
|
|
6
|
-
* framework-free, so ONE catalog file serves this server, a NestJS one, and the browser
|
|
7
|
-
* (`@dudousxd/nestjs-agent-react`'s `GenuiProvider`) — duplicating it would let the three drift.
|
|
8
|
-
* Install `@dudousxd/nestjs-agent-core` (an optional peer) to use this entry.
|
|
9
|
-
*
|
|
10
|
-
* What is Adonis's own is {@link genui}: the `config/agent.ts` factory that turns a catalog into
|
|
11
|
-
* registered tools, with an optional per-request catalog resolver built through the container.
|
|
2
|
+
* Framework-independent GenUI owned by the Adonis agent: schemas, catalogs, presentations,
|
|
3
|
+
* renderers and UI tools. The same local definitions can be imported by browser code.
|
|
12
4
|
*/
|
|
13
|
-
import { type Catalog, type GenuiCatalogScope, type GenuiToolsOptions } from '@dudousxd/nestjs-agent-core/genui';
|
|
14
5
|
import { type GenuiFactory } from './factory.js';
|
|
15
|
-
|
|
6
|
+
import { type Catalog, type GenuiCatalogScope, type GenuiToolsOptions } from './public.js';
|
|
16
7
|
export { AgentGenui, type GenuiFactory, type GenuiFactoryContext, type GenuiSetup, } from './factory.js';
|
|
8
|
+
export * from './public.js';
|
|
17
9
|
/**
|
|
18
10
|
* Picks the catalog for ONE request — a tenant's own components, a plan's versions. Extend it and
|
|
19
11
|
* pass the class as `resolver`: the provider builds it through the container, so it can `@inject()`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/genui/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/genui/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,YAAY,EAA4B,MAAM,cAAc,CAAC;AAC3E,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EAEvB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,UAAU,EACV,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AACtB,cAAc,aAAa,CAAC;AAE5B;;;;GAIG;AACH,8BAAsB,oBAAoB;IACxC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxE;AAED,KAAK,cAAc,GACf,oBAAoB,GACpB,CAAC,QAAQ,MACP,GAAG,IAAI,EAAE,KAAK,EAAE,KACb,oBAAoB,CAAC,GAC1B,CAAC,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAE/D,iGAAiG;AACjG,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;IAC7E,yGAAyG;IACzG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAuBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,YAAY,CAe9D"}
|
package/dist/src/genui/index.js
CHANGED
|
@@ -1,18 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* The catalog itself (component definitions, validation, model-facing text, the tools that push `ui`
|
|
5
|
-
* frames) is `@dudousxd/nestjs-agent-core/genui`, re-exported here unchanged: it is isomorphic and
|
|
6
|
-
* framework-free, so ONE catalog file serves this server, a NestJS one, and the browser
|
|
7
|
-
* (`@dudousxd/nestjs-agent-react`'s `GenuiProvider`) — duplicating it would let the three drift.
|
|
8
|
-
* Install `@dudousxd/nestjs-agent-core` (an optional peer) to use this entry.
|
|
9
|
-
*
|
|
10
|
-
* What is Adonis's own is {@link genui}: the `config/agent.ts` factory that turns a catalog into
|
|
11
|
-
* registered tools, with an optional per-request catalog resolver built through the container.
|
|
2
|
+
* Framework-independent GenUI owned by the Adonis agent: schemas, catalogs, presentations,
|
|
3
|
+
* renderers and UI tools. The same local definitions can be imported by browser code.
|
|
12
4
|
*/
|
|
13
|
-
import { defineCatalog, genuiTools, } from '
|
|
14
|
-
export * from '@dudousxd/nestjs-agent-core/genui';
|
|
5
|
+
import { defineCatalog, genuiTools, } from './public.js';
|
|
15
6
|
export { AgentGenui, } from './factory.js';
|
|
7
|
+
export * from './public.js';
|
|
16
8
|
/**
|
|
17
9
|
* Picks the catalog for ONE request — a tenant's own components, a plan's versions. Extend it and
|
|
18
10
|
* pass the class as `resolver`: the provider builds it through the container, so it can `@inject()`
|
|
@@ -60,12 +52,8 @@ export function genui(options = {}) {
|
|
|
60
52
|
});
|
|
61
53
|
return {
|
|
62
54
|
catalog,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
tools: tools.map((tool) => ({
|
|
66
|
-
spec: tool.spec,
|
|
67
|
-
handler: tool.handler,
|
|
68
|
-
})),
|
|
55
|
+
...(resolveCatalog === undefined ? {} : { resolveCatalog }),
|
|
56
|
+
tools,
|
|
69
57
|
};
|
|
70
58
|
};
|
|
71
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/genui/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/genui/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAEL,aAAa,EAGb,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,UAAU,GAIX,MAAM,cAAc,CAAC;AACtB,cAAc,aAAa,CAAC;AAE5B;;;;GAIG;AACH,MAAM,OAAgB,oBAAoB;CAEzC;AAqBD,SAAS,eAAe,CACtB,KAAqB;IAIrB,OAAO,OAAO,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,SAAS,YAAY,oBAAoB,CAAC;AACxF,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,QAAoC,EACpC,GAAwB;IAExB,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,QAAQ,YAAY,oBAAoB;QAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxF,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,QAAoE,CAAC;AAC9E,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,KAAK,CAAC,OAAO,GAAiB,EAAE;IAC9C,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE;YAChC,GAAG,IAAI;YACP,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC,CAAC;QACH,OAAO;YACL,OAAO;YACP,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;YAC3D,KAAK;SACN,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Isomorphic public GenUI contracts and implementation. */
|
|
2
|
+
export { negotiateCatalog, type PreparedUiEmission, prepareUiEmission, type UiCapabilities, validateUiCapabilities, } from './capabilities.js';
|
|
3
|
+
export { type Catalog, type CatalogOptions, COMPONENT_NAME, type ComponentDefinition, defineCatalog, defineComponent, toolNameFor, toSnakeCase, } from './catalog.js';
|
|
4
|
+
export { type ChartProps, type ComponentFactory, type ComponentManifest, type ComponentPresentation, type ComponentRegistry, type ComponentRenderer, chart, createComponent, createComponentRegistry, snapshotComponentPresentation, type TableCell, type TableProps, table, validatePresentationBatch, } from './registry.js';
|
|
5
|
+
export { type AjvLike, ajvValidator, builtinJsonSchemaValidator, formatIssues, type GenuiIssue, type GenuiValidation, isStandardSchema, type JsonSchema, type JsonSchemaValidator, type PropsSchema, toJsonSchema, validateProps, validatePropsSync, } from './schema.js';
|
|
6
|
+
export { type CatalogTextOptions, catalogToModelText, componentToText, fillTemplate, getPath, summarizeSchema, treeToText, } from './text.js';
|
|
7
|
+
export { GENUI_SHOW_TOOL, type GenuiCatalogScope, type GenuiTool, type GenuiToolOutput, type GenuiToolsOptions, genuiTools, jsonStandardSchema, type ResolveGenuiCatalog, showToolJsonSchema, } from './tools.js';
|
|
8
|
+
export { type FlatSpec, GENUI_TREE_COMPONENT, type GenuiElement, type GenuiTreeProps, type TreeLimits, treeJsonSchema, treeToFlatSpec, validateTree, } from './tree.js';
|
|
9
|
+
//# sourceMappingURL=public.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/genui/public.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,EACL,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,iBAAiB,EACjB,KAAK,cAAc,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,cAAc,EACd,KAAK,mBAAmB,EACxB,aAAa,EACb,eAAe,EACf,WAAW,EACX,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,EACL,eAAe,EACf,uBAAuB,EACvB,6BAA6B,EAC7B,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,EACL,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,OAAO,EACZ,YAAY,EACZ,0BAA0B,EAC1B,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,OAAO,EACP,eAAe,EACf,UAAU,GACX,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,UAAU,EACV,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,KAAK,QAAQ,EACb,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Isomorphic public GenUI contracts and implementation. */
|
|
2
|
+
export { negotiateCatalog, prepareUiEmission, validateUiCapabilities, } from './capabilities.js';
|
|
3
|
+
export { COMPONENT_NAME, defineCatalog, defineComponent, toolNameFor, toSnakeCase, } from './catalog.js';
|
|
4
|
+
export { chart, createComponent, createComponentRegistry, snapshotComponentPresentation, table, validatePresentationBatch, } from './registry.js';
|
|
5
|
+
export { ajvValidator, builtinJsonSchemaValidator, formatIssues, isStandardSchema, toJsonSchema, validateProps, validatePropsSync, } from './schema.js';
|
|
6
|
+
export { catalogToModelText, componentToText, fillTemplate, getPath, summarizeSchema, treeToText, } from './text.js';
|
|
7
|
+
export { GENUI_SHOW_TOOL, genuiTools, jsonStandardSchema, showToolJsonSchema, } from './tools.js';
|
|
8
|
+
export { GENUI_TREE_COMPONENT, treeJsonSchema, treeToFlatSpec, validateTree, } from './tree.js';
|
|
9
|
+
//# sourceMappingURL=public.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/genui/public.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,EACL,gBAAgB,EAEhB,iBAAiB,EAEjB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAGL,cAAc,EAEd,aAAa,EACb,eAAe,EACf,WAAW,EACX,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAOL,KAAK,EACL,eAAe,EACf,uBAAuB,EACvB,6BAA6B,EAG7B,KAAK,EACL,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,YAAY,EACZ,0BAA0B,EAC1B,YAAY,EAGZ,gBAAgB,EAIhB,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,OAAO,EACP,eAAe,EACf,UAAU,GACX,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,eAAe,EAKf,UAAU,EACV,kBAAkB,EAElB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,oBAAoB,EAIpB,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { StandardSchemaV1 } from '@standard-schema/spec';
|
|
2
|
+
import { type Catalog, type CatalogOptions, type ComponentDefinition } from './catalog.js';
|
|
3
|
+
import { type JsonSchema } from './schema.js';
|
|
4
|
+
/** Plain, durable data. Renderer functions and binary attachments never enter a UI frame. */
|
|
5
|
+
export interface ComponentPresentation<P = Record<string, unknown>> {
|
|
6
|
+
component: string;
|
|
7
|
+
props: P;
|
|
8
|
+
version: number;
|
|
9
|
+
fallbackText: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ComponentFactory<Input, Output = Input> {
|
|
12
|
+
(props: Input): Promise<ComponentPresentation<Output>>;
|
|
13
|
+
readonly definition: ComponentDefinition<Output>;
|
|
14
|
+
}
|
|
15
|
+
/** Reject values JSON would silently discard/coerce, and detach from caller-owned objects. */
|
|
16
|
+
export declare function snapshotComponentPresentation<T>(value: T): T;
|
|
17
|
+
export declare function createComponent<S extends StandardSchemaV1>(definition: Omit<ComponentDefinition<StandardSchemaV1.InferOutput<S>>, 'props'> & {
|
|
18
|
+
props: S;
|
|
19
|
+
}, options?: CatalogOptions): ComponentFactory<StandardSchemaV1.InferInput<S>, StandardSchemaV1.InferOutput<S>>;
|
|
20
|
+
export declare function createComponent<P = Record<string, unknown>>(definition: ComponentDefinition<P>, options?: CatalogOptions): ComponentFactory<P>;
|
|
21
|
+
export type ComponentRenderer<P = Record<string, unknown>, Context = unknown> = (props: P, context?: Context) => unknown | Promise<unknown>;
|
|
22
|
+
export interface ComponentManifest {
|
|
23
|
+
name: string;
|
|
24
|
+
title: string;
|
|
25
|
+
description: string;
|
|
26
|
+
version: number;
|
|
27
|
+
props?: JsonSchema;
|
|
28
|
+
}
|
|
29
|
+
export interface ComponentRegistry<Context = unknown> {
|
|
30
|
+
readonly catalog: Catalog;
|
|
31
|
+
readonly manifest: readonly ComponentManifest[];
|
|
32
|
+
register<P>(definition: ComponentDefinition<P>, renderers: Record<string, ComponentRenderer<P, Context>>): this;
|
|
33
|
+
/** Revalidate against the app's authoritative definition and regenerate trusted fallback text. */
|
|
34
|
+
prepare(presentation: ComponentPresentation): Promise<ComponentPresentation>;
|
|
35
|
+
render(presentation: ComponentPresentation, channel: string, context?: Context): Promise<unknown>;
|
|
36
|
+
}
|
|
37
|
+
/** A registry is owned by one app/tenant; registering never mutates a shared singleton. */
|
|
38
|
+
export declare function createComponentRegistry<Context = unknown>(options?: CatalogOptions): ComponentRegistry<Context>;
|
|
39
|
+
export type TableCell = string | number | boolean | null;
|
|
40
|
+
export interface TableProps {
|
|
41
|
+
title?: string;
|
|
42
|
+
columns: {
|
|
43
|
+
key: string;
|
|
44
|
+
label: string;
|
|
45
|
+
align?: 'left' | 'right' | 'center';
|
|
46
|
+
format?: 'text' | 'number' | 'currency' | 'percent' | 'date' | 'link';
|
|
47
|
+
}[];
|
|
48
|
+
rows: Record<string, TableCell>[];
|
|
49
|
+
}
|
|
50
|
+
export interface ChartProps {
|
|
51
|
+
type: 'bar' | 'line';
|
|
52
|
+
title?: string;
|
|
53
|
+
xKey: string;
|
|
54
|
+
series: {
|
|
55
|
+
key: string;
|
|
56
|
+
label?: string;
|
|
57
|
+
}[];
|
|
58
|
+
data: Record<string, TableCell>[];
|
|
59
|
+
unit?: string;
|
|
60
|
+
}
|
|
61
|
+
export declare const table: ComponentFactory<TableProps, TableProps>;
|
|
62
|
+
export declare const chart: ComponentFactory<ChartProps, ChartProps>;
|
|
63
|
+
/** Prepare all JSON emissions before any sink receives a partial batch. Factories validate schemas. */
|
|
64
|
+
export declare function validatePresentationBatch(presentations: ComponentPresentation<object> | readonly ComponentPresentation<object>[]): ComponentPresentation[];
|
|
65
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/genui/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAGzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAgB,KAAK,UAAU,EAAiB,MAAM,aAAa,CAAC;AAG3E,6FAA6F;AAC7F,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;IACrD,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;CAClD;AAED,8FAA8F;AAC9F,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAqB5D;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,gBAAgB,EACxD,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,EAC9F,OAAO,CAAC,EAAE,cAAc,GACvB,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,wBAAgB,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzD,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAClC,OAAO,CAAC,EAAE,cAAc,GACvB,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAqCvB,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,IAAI,CAC9E,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,OAAO,KACd,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB,CAAC,OAAO,GAAG,OAAO;IAClD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,QAAQ,CAAC,CAAC,EACR,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GACvD,IAAI,CAAC;IACR,kGAAkG;IAClG,OAAO,CAAC,YAAY,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC7E,MAAM,CAAC,YAAY,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnG;AAED,2FAA2F;AAC3F,wBAAgB,uBAAuB,CAAC,OAAO,GAAG,OAAO,EACvD,OAAO,GAAE,cAAmB,GAC3B,iBAAiB,CAAC,OAAO,CAAC,CAmE5B;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AACzD,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;QACpC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;KACvE,EAAE,CAAC;IACJ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;CACnC;AACD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,KAAK,0CAAyC,CAAC;AAC5D,eAAO,MAAM,KAAK,0CAAqC,CAAC;AAExD,uGAAuG;AACvG,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG,SAAS,qBAAqB,CAAC,MAAM,CAAC,EAAE,GACtF,qBAAqB,EAAE,CAoBzB"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { Chart, DataTable } from './builtins.js';
|
|
2
|
+
import { defineCatalog, defineComponent, } from './catalog.js';
|
|
3
|
+
import { formatIssues, validateProps } from './schema.js';
|
|
4
|
+
import { componentToText } from './text.js';
|
|
5
|
+
/** Reject values JSON would silently discard/coerce, and detach from caller-owned objects. */
|
|
6
|
+
export function snapshotComponentPresentation(value) {
|
|
7
|
+
const seen = new Set();
|
|
8
|
+
const check = (entry) => {
|
|
9
|
+
if (entry === null || typeof entry === 'string' || typeof entry === 'boolean')
|
|
10
|
+
return;
|
|
11
|
+
if (typeof entry === 'number' && Number.isFinite(entry))
|
|
12
|
+
return;
|
|
13
|
+
if (typeof entry !== 'object' || entry === null)
|
|
14
|
+
throw new TypeError('genui: presentation must contain only JSON values');
|
|
15
|
+
if (seen.has(entry))
|
|
16
|
+
throw new TypeError('genui: presentation must contain acyclic JSON values');
|
|
17
|
+
if (!Array.isArray(entry) &&
|
|
18
|
+
Object.getPrototypeOf(entry) !== Object.prototype &&
|
|
19
|
+
Object.getPrototypeOf(entry) !== null)
|
|
20
|
+
throw new TypeError('genui: presentation must contain plain JSON objects');
|
|
21
|
+
seen.add(entry);
|
|
22
|
+
for (const item of Object.values(entry))
|
|
23
|
+
check(item);
|
|
24
|
+
seen.delete(entry);
|
|
25
|
+
};
|
|
26
|
+
check(value);
|
|
27
|
+
return JSON.parse(JSON.stringify(value));
|
|
28
|
+
}
|
|
29
|
+
export function createComponent(definition, options = {}) {
|
|
30
|
+
defineComponent(definition);
|
|
31
|
+
const catalog = defineCatalog([definition], options);
|
|
32
|
+
const factory = async (props) => {
|
|
33
|
+
const result = await validateProps(definition.props, props, catalog.validator);
|
|
34
|
+
if (!result.ok)
|
|
35
|
+
throw new Error(`genui: invalid ${definition.name} props: ${formatIssues(result.issues)}`);
|
|
36
|
+
const normalized = snapshotComponentPresentation(result.value);
|
|
37
|
+
if (typeof normalized !== 'object' || normalized === null || Array.isArray(normalized))
|
|
38
|
+
throw new TypeError('genui: component props must be a JSON object');
|
|
39
|
+
const portable = await catalog.validate(definition.name, normalized);
|
|
40
|
+
if (!portable.ok ||
|
|
41
|
+
canonicalJson(snapshotComponentPresentation(portable.value)) !== canonicalJson(normalized)) {
|
|
42
|
+
throw new Error(`genui: ${definition.name} requires outputProps accepting stable normalized JSON props`);
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
component: definition.name,
|
|
46
|
+
props: normalized,
|
|
47
|
+
version: definition.version ?? 1,
|
|
48
|
+
fallbackText: componentToText(catalog, definition.name, normalized),
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
return Object.assign(factory, { definition });
|
|
52
|
+
}
|
|
53
|
+
/** A registry is owned by one app/tenant; registering never mutates a shared singleton. */
|
|
54
|
+
export function createComponentRegistry(options = {}) {
|
|
55
|
+
let catalog = defineCatalog([], options);
|
|
56
|
+
const channels = new Map();
|
|
57
|
+
const registry = {
|
|
58
|
+
get catalog() {
|
|
59
|
+
return catalog;
|
|
60
|
+
},
|
|
61
|
+
get manifest() {
|
|
62
|
+
return catalog.components.map((definition) => {
|
|
63
|
+
const props = catalog.jsonSchemaFor(definition.name);
|
|
64
|
+
return {
|
|
65
|
+
name: definition.name,
|
|
66
|
+
title: definition.title,
|
|
67
|
+
description: definition.description,
|
|
68
|
+
version: definition.version ?? 1,
|
|
69
|
+
...(props === undefined ? {} : { props: snapshotComponentPresentation(props) }),
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
},
|
|
73
|
+
register(definition, renderers) {
|
|
74
|
+
if (catalog.has(definition.name))
|
|
75
|
+
throw new Error(`genui: component "${definition.name}" is already registered`);
|
|
76
|
+
catalog = catalog.extend([definition]);
|
|
77
|
+
channels.set(definition.name, { ...renderers });
|
|
78
|
+
return this;
|
|
79
|
+
},
|
|
80
|
+
async prepare(presentation) {
|
|
81
|
+
const definition = catalog.get(presentation.component);
|
|
82
|
+
if (definition === undefined)
|
|
83
|
+
throw new Error(`genui: unknown component "${presentation.component}"`);
|
|
84
|
+
if (presentation.version !== (definition.version ?? 1))
|
|
85
|
+
throw new Error(`genui: component "${presentation.component}" version mismatch`);
|
|
86
|
+
const validated = await catalog.validate(presentation.component, presentation.props);
|
|
87
|
+
if (!validated.ok)
|
|
88
|
+
throw new Error(`genui: invalid ${presentation.component} props: ${formatIssues(validated.issues)}`);
|
|
89
|
+
const props = snapshotComponentPresentation(validated.value);
|
|
90
|
+
if (typeof props !== 'object' || props === null || Array.isArray(props))
|
|
91
|
+
throw new TypeError('genui: component props must be a JSON object');
|
|
92
|
+
return {
|
|
93
|
+
component: definition.name,
|
|
94
|
+
props,
|
|
95
|
+
version: definition.version ?? 1,
|
|
96
|
+
fallbackText: componentToText(catalog, definition.name, props),
|
|
97
|
+
};
|
|
98
|
+
},
|
|
99
|
+
async render(presentation, channel, context) {
|
|
100
|
+
const prepared = await this.prepare(presentation);
|
|
101
|
+
const mapping = channels.get(prepared.component);
|
|
102
|
+
const renderer = mapping === undefined
|
|
103
|
+
? undefined
|
|
104
|
+
: Object.hasOwn(mapping, channel)
|
|
105
|
+
? mapping[channel]
|
|
106
|
+
: Object.hasOwn(mapping, 'text')
|
|
107
|
+
? mapping.text
|
|
108
|
+
: undefined;
|
|
109
|
+
return renderer === undefined
|
|
110
|
+
? prepared.fallbackText
|
|
111
|
+
: renderer(prepared.props, context);
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
return registry;
|
|
115
|
+
}
|
|
116
|
+
export const table = createComponent(DataTable);
|
|
117
|
+
export const chart = createComponent(Chart);
|
|
118
|
+
/** Prepare all JSON emissions before any sink receives a partial batch. Factories validate schemas. */
|
|
119
|
+
export function validatePresentationBatch(presentations) {
|
|
120
|
+
const batch = Array.isArray(presentations) ? presentations : [presentations];
|
|
121
|
+
return batch.map((item) => {
|
|
122
|
+
const presentation = snapshotComponentPresentation(item);
|
|
123
|
+
if (typeof presentation !== 'object' ||
|
|
124
|
+
presentation === null ||
|
|
125
|
+
typeof presentation.component !== 'string' ||
|
|
126
|
+
!/^[A-Za-z][A-Za-z0-9]{0,63}$/.test(presentation.component) ||
|
|
127
|
+
!Number.isSafeInteger(presentation.version) ||
|
|
128
|
+
presentation.version <= 0 ||
|
|
129
|
+
typeof presentation.fallbackText !== 'string' ||
|
|
130
|
+
typeof presentation.props !== 'object' ||
|
|
131
|
+
presentation.props === null ||
|
|
132
|
+
Array.isArray(presentation.props)) {
|
|
133
|
+
throw new TypeError('genui: invalid component presentation');
|
|
134
|
+
}
|
|
135
|
+
return presentation;
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/** Object order is immaterial; array order remains part of the portable contract. */
|
|
139
|
+
function canonicalJson(value) {
|
|
140
|
+
if (Array.isArray(value))
|
|
141
|
+
return `[${value.map(canonicalJson).join(',')}]`;
|
|
142
|
+
if (typeof value === 'object' && value !== null) {
|
|
143
|
+
const record = value;
|
|
144
|
+
return `{${Object.keys(record)
|
|
145
|
+
.sort()
|
|
146
|
+
.map((key) => `${JSON.stringify(key)}:${canonicalJson(record[key])}`)
|
|
147
|
+
.join(',')}}`;
|
|
148
|
+
}
|
|
149
|
+
return JSON.stringify(value);
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/genui/registry.ts"],"names":[],"mappings":"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"}
|