@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,77 @@
|
|
|
1
|
+
import type { AgentDepsFactory } from './agent-deps-factory.js';
|
|
2
|
+
import type { ChatQueueService } from './chat-queue-service.js';
|
|
3
|
+
import type { AgentRunner } from './spi/agent-runner.js';
|
|
4
|
+
import type { AgentStore } from './spi/agent-store.js';
|
|
5
|
+
import type { ModelProvider } from './spi/model-provider.js';
|
|
6
|
+
import type { ProtocolAdapter } from './spi/protocol-adapter.js';
|
|
7
|
+
import type { TokenStreamSink } from './spi/token-stream-sink.js';
|
|
8
|
+
import type { ToolRegistry } from './tool-registry.js';
|
|
9
|
+
/**
|
|
10
|
+
* What the provider hands an engine when it builds the runner: the same graph the library's own
|
|
11
|
+
* runners are built from. Everything around a turn stays the library's — the routes and the stream
|
|
12
|
+
* protocol, threads and the store, the sink, approvals and answers routed through `AgentService`, the
|
|
13
|
+
* queue — and the engine reads the agent's prompt, approval policy, skills and memory off `factory`.
|
|
14
|
+
*/
|
|
15
|
+
export interface AgentEngineContext {
|
|
16
|
+
factory: AgentDepsFactory;
|
|
17
|
+
store: AgentStore;
|
|
18
|
+
sink: TokenStreamSink;
|
|
19
|
+
registry: ToolRegistry;
|
|
20
|
+
/** The thread message queue: a settling turn hands its thread to the next queued message. */
|
|
21
|
+
queue: ChatQueueService;
|
|
22
|
+
/**
|
|
23
|
+
* Resolve a container binding (e.g. `@adonis-agora/durable`'s `WorkflowEngine`). Absent when the
|
|
24
|
+
* engine is wired outside an AdonisJS app (a test building the graph by hand).
|
|
25
|
+
*/
|
|
26
|
+
make?: <T = unknown>(binding: unknown) => Promise<T>;
|
|
27
|
+
/** The app's `APP_KEY`, when there is one — a stable secret for whatever the engine signs. */
|
|
28
|
+
appKey?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Something other than this library's loop that runs a turn — what `engine` in `config/agent.ts`
|
|
32
|
+
* takes. An engine owns the turn end to end (the model calls, the tools, the context it keeps) and
|
|
33
|
+
* builds the {@link AgentRunner} the service runs turns on; everything around the turn stays the
|
|
34
|
+
* library's.
|
|
35
|
+
*
|
|
36
|
+
* `openCode()` (`@adonis-agora/agent/opencode`) is the one that ships. An engine replaces the loop,
|
|
37
|
+
* so the options only the loop reads (`model`, processors, `maxSteps`, `historyWindow`, `retriever`,
|
|
38
|
+
* delegation) do nothing under one, and `model` becomes optional.
|
|
39
|
+
*/
|
|
40
|
+
export interface AgentEngine {
|
|
41
|
+
/** For logs and diagnostics. */
|
|
42
|
+
readonly name: string;
|
|
43
|
+
/**
|
|
44
|
+
* The engine checkpoints its own turns (`openCodeDurable()`). `durable: true` in the config names the
|
|
45
|
+
* LOOP's durable runner, which an engine replaces — so it is refused next to an engine that is not
|
|
46
|
+
* durable itself, rather than silently ignored.
|
|
47
|
+
*/
|
|
48
|
+
readonly durable?: boolean;
|
|
49
|
+
/** Build the runner the service starts, signals and cancels turns on. Called once, at boot. */
|
|
50
|
+
createRunner(context: AgentEngineContext): AgentRunner | Promise<AgentRunner>;
|
|
51
|
+
/**
|
|
52
|
+
* Routes the engine serves next to the agent's own (e.g. the MCP endpoint OpenCode reaches the
|
|
53
|
+
* app's tools through), mounted like `adapters` once {@link createRunner} has run.
|
|
54
|
+
*/
|
|
55
|
+
adapters?(): readonly ProtocolAdapter[];
|
|
56
|
+
/** Release what the engine holds (event streams, timers) when the app shuts down. */
|
|
57
|
+
shutdown?(): void | Promise<void>;
|
|
58
|
+
}
|
|
59
|
+
/** `engine` in `config/agent.ts`: an engine, or a lazy factory so its module loads with the config. */
|
|
60
|
+
export type AgentEngineFactory = () => AgentEngine | Promise<AgentEngine>;
|
|
61
|
+
/**
|
|
62
|
+
* Refuse a wiring that cannot run a turn, at boot rather than on the first message: no `model` and
|
|
63
|
+
* no `engine` leaves the loop nothing to call, and `durable: true` names the loop's own durable
|
|
64
|
+
* runner, which a non-durable engine replaces (a durable engine brings its own durability).
|
|
65
|
+
*/
|
|
66
|
+
export declare function assertRunnable(options: {
|
|
67
|
+
model?: unknown;
|
|
68
|
+
engine?: AgentEngine | undefined;
|
|
69
|
+
durable?: boolean | undefined;
|
|
70
|
+
}): void;
|
|
71
|
+
/**
|
|
72
|
+
* The model the loop is handed when an engine runs the turns and no `model` is configured: nothing
|
|
73
|
+
* of the library's calls it on that path, and a caller that does (a background summarizer reading
|
|
74
|
+
* `deps.model`) is told why instead of crashing on `undefined`.
|
|
75
|
+
*/
|
|
76
|
+
export declare function engineOnlyModel(engine: AgentEngine): ModelProvider;
|
|
77
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,6FAA6F;IAC7F,KAAK,EAAE,gBAAgB,CAAC;IACxB;;;OAGG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACrD,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,+FAA+F;IAC/F,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9E;;;OAGG;IACH,QAAQ,CAAC,IAAI,SAAS,eAAe,EAAE,CAAC;IACxC,qFAAqF;IACrF,QAAQ,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED,uGAAuG;AACvG,MAAM,MAAM,kBAAkB,GAAG,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAE1E;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B,GAAG,IAAI,CAYP;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,CAQlE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Refuse a wiring that cannot run a turn, at boot rather than on the first message: no `model` and
|
|
3
|
+
* no `engine` leaves the loop nothing to call, and `durable: true` names the loop's own durable
|
|
4
|
+
* runner, which a non-durable engine replaces (a durable engine brings its own durability).
|
|
5
|
+
*/
|
|
6
|
+
export function assertRunnable(options) {
|
|
7
|
+
const { engine } = options;
|
|
8
|
+
if (engine !== undefined && options.durable === true && engine.durable !== true) {
|
|
9
|
+
throw new Error(`[@adonis-agora/agent] \`durable: true\` runs turns on the library's loop, but the \`${engine.name}\` engine runs them instead. Drop \`durable\`, or use the engine's durable variant.`);
|
|
10
|
+
}
|
|
11
|
+
if (engine === undefined && options.model === undefined) {
|
|
12
|
+
throw new Error('[@adonis-agora/agent] set `model` in config/agent.ts (the loop runs the turns) or `engine` (something else does).');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The model the loop is handed when an engine runs the turns and no `model` is configured: nothing
|
|
17
|
+
* of the library's calls it on that path, and a caller that does (a background summarizer reading
|
|
18
|
+
* `deps.model`) is told why instead of crashing on `undefined`.
|
|
19
|
+
*/
|
|
20
|
+
export function engineOnlyModel(engine) {
|
|
21
|
+
return {
|
|
22
|
+
async runTurn() {
|
|
23
|
+
throw new Error(`[@adonis-agora/agent] the \`${engine.name}\` engine runs this deployment's turns and no \`model\` is configured; set \`model\` for anything that calls the loop's model directly.`);
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAgEA;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAI9B;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CACb,uFAAuF,MAAM,CAAC,IAAI,qFAAqF,CACxL,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,OAAO;QACL,KAAK,CAAC,OAAO;YACX,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,CAAC,IAAI,yIAAyI,CACpL,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,76 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Optional builtin component DEFINITIONS — names, props schemas, model descriptions and plain-text
|
|
3
|
+
* fallbacks for the components most chat apps want. No visuals: an app renders each with its own
|
|
4
|
+
* look, keyed by name. Use them as-is, pick some, or extend them:
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* const catalog = defineCatalog([...BUILTIN_COMPONENTS, ...LAYOUT_COMPONENTS, myDealCard]);
|
|
8
|
+
* ```
|
|
4
9
|
*/
|
|
5
|
-
|
|
10
|
+
import { type ComponentDefinition } from './catalog.js';
|
|
11
|
+
import type { ChartProps, TableProps } from './registry.js';
|
|
12
|
+
type Props = Record<string, unknown>;
|
|
13
|
+
/** A fixed-width text table in a code block, at most `max` rows. */
|
|
14
|
+
export declare function textTable(columns: readonly {
|
|
15
|
+
key: string;
|
|
16
|
+
label: string;
|
|
17
|
+
}[], rows: readonly Props[], max?: number): string;
|
|
18
|
+
export interface DiffLine {
|
|
19
|
+
op: 'same' | 'add' | 'del';
|
|
20
|
+
text: string;
|
|
21
|
+
}
|
|
22
|
+
/** Line diff (LCS) — good enough for snippets up to a few hundred lines. */
|
|
23
|
+
export declare function lineDiff(before: string, after: string): DiffLine[];
|
|
24
|
+
export declare const DataTable: ComponentDefinition<TableProps>;
|
|
25
|
+
export declare const Chart: ComponentDefinition<ChartProps>;
|
|
26
|
+
export declare const KpiCards: ComponentDefinition<{
|
|
27
|
+
title?: string;
|
|
28
|
+
items: {
|
|
29
|
+
label: string;
|
|
30
|
+
value: string | number;
|
|
31
|
+
delta?: string;
|
|
32
|
+
trend?: 'up' | 'down' | 'flat';
|
|
33
|
+
hint?: string;
|
|
34
|
+
}[];
|
|
35
|
+
}>;
|
|
36
|
+
export declare const SourceCards: ComponentDefinition<{
|
|
37
|
+
title?: string;
|
|
38
|
+
items: {
|
|
39
|
+
title: string;
|
|
40
|
+
url?: string;
|
|
41
|
+
snippet?: string;
|
|
42
|
+
source?: string;
|
|
43
|
+
}[];
|
|
44
|
+
}>;
|
|
45
|
+
export declare const Checklist: ComponentDefinition<{
|
|
46
|
+
title?: string;
|
|
47
|
+
items: {
|
|
48
|
+
label: string;
|
|
49
|
+
done?: boolean;
|
|
50
|
+
note?: string;
|
|
51
|
+
}[];
|
|
52
|
+
}>;
|
|
53
|
+
export declare const Timeline: ComponentDefinition<{
|
|
54
|
+
title?: string;
|
|
55
|
+
events: {
|
|
56
|
+
date?: string;
|
|
57
|
+
title: string;
|
|
58
|
+
description?: string;
|
|
59
|
+
}[];
|
|
60
|
+
}>;
|
|
61
|
+
export declare const CodeBlock: ComponentDefinition<Props>;
|
|
62
|
+
export declare const Diff: ComponentDefinition<Props>;
|
|
63
|
+
export declare const Callout: ComponentDefinition<Props>;
|
|
64
|
+
export declare const Stack: ComponentDefinition<Props>;
|
|
65
|
+
export declare const Card: ComponentDefinition<Props>;
|
|
66
|
+
export declare const Heading: ComponentDefinition<Props>;
|
|
67
|
+
export declare const Text: ComponentDefinition<Props>;
|
|
68
|
+
export declare const Badge: ComponentDefinition<Props>;
|
|
69
|
+
export declare const Link: ComponentDefinition<Props>;
|
|
70
|
+
export declare const Image: ComponentDefinition<Props>;
|
|
71
|
+
/** Content components: data a model shows. */
|
|
72
|
+
export declare const BUILTIN_COMPONENTS: readonly ComponentDefinition<unknown>[];
|
|
73
|
+
/** Layout and text primitives, mostly for composing trees (`Stack`, `Card` take children). */
|
|
74
|
+
export declare const LAYOUT_COMPONENTS: readonly ComponentDefinition<unknown>[];
|
|
75
|
+
export {};
|
|
6
76
|
//# sourceMappingURL=builtins.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../src/genui/builtins.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../src/genui/builtins.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,mBAAmB,EAAmB,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG5D,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAyBrC,oEAAoE;AACpE,wBAAgB,SAAS,CACvB,OAAO,EAAE,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAClD,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,GAAG,SAAK,GACP,MAAM,CAgBR;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAoClE;AAOD,eAAO,MAAM,SAAS,iCA2BpB,CAAC;AAEH,eAAO,MAAM,KAAK,iCAiChB,CAAC;AAEH,eAAO,MAAM,QAAQ;YACX,MAAM;WACP;QACL,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;QAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,EAAE;EA+BH,CAAC;AAEH,eAAO,MAAM,WAAW;YACd,MAAM;WACP;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE;EAwB3E,CAAC;AAEH,eAAO,MAAM,SAAS;YACZ,MAAM;WACP;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE;EAsBzD,CAAC;AAEH,eAAO,MAAM,QAAQ;YACX,MAAM;YACN;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE;EAsBhE,CAAC;AAEH,eAAO,MAAM,SAAS,4BAMpB,CAAC;AAEH,eAAO,MAAM,IAAI,4BASf,CAAC;AAEH,eAAO,MAAM,OAAO,4BAclB,CAAC;AAEH,eAAO,MAAM,KAAK,4BAOhB,CAAC;AAEH,eAAO,MAAM,IAAI,4BAQf,CAAC;AAEH,eAAO,MAAM,OAAO,4BAMlB,CAAC;AAEH,eAAO,MAAM,IAAI,4BAMf,CAAC;AAEH,eAAO,MAAM,KAAK,4BAYhB,CAAC;AAEH,eAAO,MAAM,IAAI,4BAMf,CAAC;AAEH,eAAO,MAAM,KAAK,4BAMhB,CAAC;AAEH,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,EAAE,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAUrE,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB,EAAE,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAQpE,CAAC"}
|
|
@@ -1,6 +1,301 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Optional builtin component DEFINITIONS — names, props schemas, model descriptions and plain-text
|
|
3
|
+
* fallbacks for the components most chat apps want. No visuals: an app renders each with its own
|
|
4
|
+
* look, keyed by name. Use them as-is, pick some, or extend them:
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* const catalog = defineCatalog([...BUILTIN_COMPONENTS, ...LAYOUT_COMPONENTS, myDealCard]);
|
|
8
|
+
* ```
|
|
4
9
|
*/
|
|
5
|
-
|
|
10
|
+
import { defineComponent } from './catalog.js';
|
|
11
|
+
const str = (description, extra = {}) => ({
|
|
12
|
+
type: 'string',
|
|
13
|
+
...(description !== undefined ? { description } : {}),
|
|
14
|
+
...extra,
|
|
15
|
+
});
|
|
16
|
+
const obj = (properties, required = []) => ({
|
|
17
|
+
type: 'object',
|
|
18
|
+
properties,
|
|
19
|
+
required,
|
|
20
|
+
additionalProperties: false,
|
|
21
|
+
});
|
|
22
|
+
const arr = (items, extra = {}) => ({
|
|
23
|
+
type: 'array',
|
|
24
|
+
items,
|
|
25
|
+
...extra,
|
|
26
|
+
});
|
|
27
|
+
const cell = { type: ['string', 'number', 'boolean', 'null'] };
|
|
28
|
+
const row = { type: 'object', additionalProperties: cell };
|
|
29
|
+
const s = (value) => (value === null || value === undefined ? '' : String(value));
|
|
30
|
+
const heading = (props) => props.title ? `*${s(props.title)}*\n` : '';
|
|
31
|
+
/** A fixed-width text table in a code block, at most `max` rows. */
|
|
32
|
+
export function textTable(columns, rows, max = 15) {
|
|
33
|
+
const shown = rows.slice(0, max);
|
|
34
|
+
const widths = columns.map((column) => Math.min(28, Math.max(column.label.length, ...shown.map((r) => s(r[column.key]).length))));
|
|
35
|
+
const format = (values) => values
|
|
36
|
+
.map((value, index) => value.slice(0, widths[index]).padEnd(widths[index] ?? 0))
|
|
37
|
+
.join(' ');
|
|
38
|
+
const lines = [
|
|
39
|
+
format(columns.map((column) => column.label)),
|
|
40
|
+
widths.map((width) => '-'.repeat(width)).join(' '),
|
|
41
|
+
...shown.map((r) => format(columns.map((column) => s(r[column.key])))),
|
|
42
|
+
];
|
|
43
|
+
if (rows.length > max)
|
|
44
|
+
lines.push(`… ${rows.length - max} more rows`);
|
|
45
|
+
return `\`\`\`\n${lines.join('\n')}\n\`\`\``;
|
|
46
|
+
}
|
|
47
|
+
/** Line diff (LCS) — good enough for snippets up to a few hundred lines. */
|
|
48
|
+
export function lineDiff(before, after) {
|
|
49
|
+
const a = before.split('\n');
|
|
50
|
+
const b = after.split('\n');
|
|
51
|
+
if (a.length * b.length > 250_000) {
|
|
52
|
+
return [
|
|
53
|
+
...a.map((text) => ({ op: 'del', text })),
|
|
54
|
+
...b.map((text) => ({ op: 'add', text })),
|
|
55
|
+
];
|
|
56
|
+
}
|
|
57
|
+
const dp = Array.from({ length: a.length + 1 }, () => new Array(b.length + 1).fill(0));
|
|
58
|
+
const at = (i, j) => dp[i]?.[j] ?? 0;
|
|
59
|
+
for (let i = a.length - 1; i >= 0; i--) {
|
|
60
|
+
for (let j = b.length - 1; j >= 0; j--) {
|
|
61
|
+
dp[i][j] =
|
|
62
|
+
a[i] === b[j] ? at(i + 1, j + 1) + 1 : Math.max(at(i + 1, j), at(i, j + 1));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const out = [];
|
|
66
|
+
let i = 0;
|
|
67
|
+
let j = 0;
|
|
68
|
+
while (i < a.length && j < b.length) {
|
|
69
|
+
if (a[i] === b[j]) {
|
|
70
|
+
out.push({ op: 'same', text: a[i] });
|
|
71
|
+
i++;
|
|
72
|
+
j++;
|
|
73
|
+
}
|
|
74
|
+
else if (at(i + 1, j) >= at(i, j + 1)) {
|
|
75
|
+
out.push({ op: 'del', text: a[i++] });
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
out.push({ op: 'add', text: b[j++] });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
while (i < a.length)
|
|
82
|
+
out.push({ op: 'del', text: a[i++] });
|
|
83
|
+
while (j < b.length)
|
|
84
|
+
out.push({ op: 'add', text: b[j++] });
|
|
85
|
+
return out;
|
|
86
|
+
}
|
|
87
|
+
function bar(value, max, width = 20) {
|
|
88
|
+
const n = max > 0 ? Math.round((Math.abs(value) / max) * width) : 0;
|
|
89
|
+
return '█'.repeat(n) || '▏';
|
|
90
|
+
}
|
|
91
|
+
export const DataTable = defineComponent({
|
|
92
|
+
name: 'DataTable',
|
|
93
|
+
title: 'Data table',
|
|
94
|
+
description: 'Tabular data (records with the same fields) as a sortable table. Prefer it over markdown tables for more than 3 rows.',
|
|
95
|
+
props: obj({
|
|
96
|
+
title: str('Short caption'),
|
|
97
|
+
columns: arr(obj({
|
|
98
|
+
key: str('Field name in each row'),
|
|
99
|
+
label: str('Column header'),
|
|
100
|
+
align: str(undefined, { enum: ['left', 'right', 'center'] }),
|
|
101
|
+
format: str('How to format values', {
|
|
102
|
+
enum: ['text', 'number', 'currency', 'percent', 'date', 'link'],
|
|
103
|
+
}),
|
|
104
|
+
}, ['key', 'label']), { minItems: 1, maxItems: 12 }),
|
|
105
|
+
rows: arr(row, { maxItems: 500 }),
|
|
106
|
+
}, ['columns', 'rows']),
|
|
107
|
+
fallbackText: (props) => `${heading(props)}${textTable(props.columns ?? [], props.rows ?? [])}`,
|
|
108
|
+
});
|
|
109
|
+
export const Chart = defineComponent({
|
|
110
|
+
name: 'Chart',
|
|
111
|
+
title: 'Chart',
|
|
112
|
+
description: '`bar` to compare categories, `line` for a trend over time. `data` is a list of points; `xKey` names the category/time field and each series names a numeric field.',
|
|
113
|
+
props: obj({
|
|
114
|
+
type: str('Chart type', { enum: ['bar', 'line'] }),
|
|
115
|
+
title: str(),
|
|
116
|
+
xKey: str('Field of each point used for the x axis'),
|
|
117
|
+
series: arr(obj({ key: str('Numeric field'), label: str() }, ['key']), {
|
|
118
|
+
minItems: 1,
|
|
119
|
+
maxItems: 6,
|
|
120
|
+
}),
|
|
121
|
+
data: arr(row, { minItems: 1, maxItems: 200 }),
|
|
122
|
+
unit: str('Unit shown after values, e.g. `KB` or `%`'),
|
|
123
|
+
}, ['type', 'xKey', 'series', 'data']),
|
|
124
|
+
fallbackText: (props) => {
|
|
125
|
+
const series = props.series ?? [];
|
|
126
|
+
const data = props.data ?? [];
|
|
127
|
+
const first = series[0]?.key ?? '';
|
|
128
|
+
const max = Math.max(0, ...data.map((point) => Math.abs(Number(point[first]) || 0)));
|
|
129
|
+
const unit = props.unit ? ` ${s(props.unit)}` : '';
|
|
130
|
+
const lines = data
|
|
131
|
+
.slice(0, 20)
|
|
132
|
+
.map((point) => `${s(point[props.xKey]).slice(0, 18).padEnd(18)} ${bar(Number(point[first]) || 0, max)} ${s(point[first])}${unit}`);
|
|
133
|
+
return `${heading(props)}\`\`\`\n${lines.join('\n')}\n\`\`\``;
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
export const KpiCards = defineComponent({
|
|
137
|
+
name: 'KpiCards',
|
|
138
|
+
title: 'KPI cards',
|
|
139
|
+
description: 'A few key numbers (metrics, totals, counts) as cards.',
|
|
140
|
+
props: obj({
|
|
141
|
+
title: str(),
|
|
142
|
+
items: arr(obj({
|
|
143
|
+
label: str(),
|
|
144
|
+
value: { type: ['string', 'number'] },
|
|
145
|
+
delta: str('Change, e.g. `+12%`'),
|
|
146
|
+
trend: str(undefined, { enum: ['up', 'down', 'flat'] }),
|
|
147
|
+
hint: str(),
|
|
148
|
+
}, ['label', 'value']), { minItems: 1, maxItems: 8 }),
|
|
149
|
+
}, ['items']),
|
|
150
|
+
fallbackText: (props) => `${heading(props)}${(props.items ?? [])
|
|
151
|
+
.map((item) => `• *${s(item.label)}:* ${s(item.value)}${item.delta ? ` (${s(item.delta)})` : ''}`)
|
|
152
|
+
.join('\n')}`,
|
|
153
|
+
});
|
|
154
|
+
export const SourceCards = defineComponent({
|
|
155
|
+
name: 'SourceCards',
|
|
156
|
+
title: 'Sources',
|
|
157
|
+
description: 'The documents, pages or links an answer is based on, as cards.',
|
|
158
|
+
props: obj({
|
|
159
|
+
title: str(),
|
|
160
|
+
items: arr(obj({ title: str(), url: str(), snippet: str(), source: str('e.g. Wiki, GitHub') }, [
|
|
161
|
+
'title',
|
|
162
|
+
]), { minItems: 1, maxItems: 12 }),
|
|
163
|
+
}, ['items']),
|
|
164
|
+
fallbackText: (props) => `${heading(props)}${(props.items ?? [])
|
|
165
|
+
.map((item) => `• ${item.url ? `<${s(item.url)}|${s(item.title)}>` : s(item.title)}${item.source ? ` — ${s(item.source)}` : ''}`)
|
|
166
|
+
.join('\n')}`,
|
|
167
|
+
});
|
|
168
|
+
export const Checklist = defineComponent({
|
|
169
|
+
name: 'Checklist',
|
|
170
|
+
title: 'Checklist',
|
|
171
|
+
description: 'Steps or a to-do list with done/not-done state.',
|
|
172
|
+
props: obj({
|
|
173
|
+
title: str(),
|
|
174
|
+
items: arr(obj({ label: str(), done: { type: 'boolean' }, note: str() }, ['label']), {
|
|
175
|
+
minItems: 1,
|
|
176
|
+
maxItems: 50,
|
|
177
|
+
}),
|
|
178
|
+
}, ['items']),
|
|
179
|
+
fallbackText: (props) => `${heading(props)}${(props.items ?? [])
|
|
180
|
+
.map((item) => `${item.done ? '☑' : '☐'} ${s(item.label)}${item.note ? ` — _${s(item.note)}_` : ''}`)
|
|
181
|
+
.join('\n')}`,
|
|
182
|
+
});
|
|
183
|
+
export const Timeline = defineComponent({
|
|
184
|
+
name: 'Timeline',
|
|
185
|
+
title: 'Timeline',
|
|
186
|
+
description: 'Events in chronological order (the history of a project, an incident, a deal).',
|
|
187
|
+
props: obj({
|
|
188
|
+
title: str(),
|
|
189
|
+
events: arr(obj({ date: str(), title: str(), description: str() }, ['title']), {
|
|
190
|
+
minItems: 1,
|
|
191
|
+
maxItems: 50,
|
|
192
|
+
}),
|
|
193
|
+
}, ['events']),
|
|
194
|
+
fallbackText: (props) => `${heading(props)}${(props.events ?? [])
|
|
195
|
+
.map((event) => `• ${event.date ? `*${s(event.date)}* ` : ''}${s(event.title)}${event.description ? ` — ${s(event.description)}` : ''}`)
|
|
196
|
+
.join('\n')}`,
|
|
197
|
+
});
|
|
198
|
+
export const CodeBlock = defineComponent({
|
|
199
|
+
name: 'CodeBlock',
|
|
200
|
+
title: 'Code',
|
|
201
|
+
description: 'A code snippet or file excerpt with syntax highlighting.',
|
|
202
|
+
props: obj({ title: str(), language: str(), code: str() }, ['code']),
|
|
203
|
+
fallbackText: (props) => `${heading(props)}\`\`\`\n${s(props.code)}\n\`\`\``,
|
|
204
|
+
});
|
|
205
|
+
export const Diff = defineComponent({
|
|
206
|
+
name: 'Diff',
|
|
207
|
+
title: 'Diff',
|
|
208
|
+
description: 'A before/after change to a text or code file, as a line diff.',
|
|
209
|
+
props: obj({ title: str(), language: str(), before: str(), after: str() }, ['before', 'after']),
|
|
210
|
+
fallbackText: (props) => `${heading(props)}\`\`\`\n${lineDiff(s(props.before), s(props.after))
|
|
211
|
+
.map((line) => `${line.op === 'add' ? '+' : line.op === 'del' ? '-' : ' '} ${line.text}`)
|
|
212
|
+
.join('\n')}\n\`\`\``,
|
|
213
|
+
});
|
|
214
|
+
export const Callout = defineComponent({
|
|
215
|
+
name: 'Callout',
|
|
216
|
+
title: 'Callout',
|
|
217
|
+
description: 'A short note, warning or success message, emphasized.',
|
|
218
|
+
props: obj({
|
|
219
|
+
tone: str(undefined, { enum: ['info', 'success', 'warning', 'danger'] }),
|
|
220
|
+
title: str(),
|
|
221
|
+
text: str(),
|
|
222
|
+
}, ['text']),
|
|
223
|
+
fallbackText: (props) => `${props.tone === 'warning' || props.tone === 'danger' ? ':warning: ' : ':information_source: '}${heading(props)}${s(props.text)}`,
|
|
224
|
+
});
|
|
225
|
+
export const Stack = defineComponent({
|
|
226
|
+
name: 'Stack',
|
|
227
|
+
title: 'Stack',
|
|
228
|
+
description: 'Lays its children out vertically (or horizontally with direction=row).',
|
|
229
|
+
props: obj({ direction: str(undefined, { enum: ['column', 'row'] }), gap: { type: 'number' } }),
|
|
230
|
+
children: true,
|
|
231
|
+
fallbackText: () => '',
|
|
232
|
+
});
|
|
233
|
+
export const Card = defineComponent({
|
|
234
|
+
name: 'Card',
|
|
235
|
+
title: 'Card',
|
|
236
|
+
description: 'A box with an optional title around its children.',
|
|
237
|
+
props: obj({ title: str(), subtitle: str() }),
|
|
238
|
+
children: true,
|
|
239
|
+
fallbackText: (props) => props.title ? `*${s(props.title)}*${props.subtitle ? ` — ${s(props.subtitle)}` : ''}` : '',
|
|
240
|
+
});
|
|
241
|
+
export const Heading = defineComponent({
|
|
242
|
+
name: 'Heading',
|
|
243
|
+
title: 'Heading',
|
|
244
|
+
description: 'A heading.',
|
|
245
|
+
props: obj({ text: str() }, ['text']),
|
|
246
|
+
fallbackText: (props) => `*${s(props.text)}*`,
|
|
247
|
+
});
|
|
248
|
+
export const Text = defineComponent({
|
|
249
|
+
name: 'Text',
|
|
250
|
+
title: 'Text',
|
|
251
|
+
description: 'A paragraph of plain text (no markdown).',
|
|
252
|
+
props: obj({ text: str(), muted: { type: 'boolean' } }, ['text']),
|
|
253
|
+
fallbackText: (props) => s(props.text),
|
|
254
|
+
});
|
|
255
|
+
export const Badge = defineComponent({
|
|
256
|
+
name: 'Badge',
|
|
257
|
+
title: 'Badge',
|
|
258
|
+
description: 'A small label.',
|
|
259
|
+
props: obj({
|
|
260
|
+
text: str(),
|
|
261
|
+
tone: str(undefined, { enum: ['neutral', 'brand', 'success', 'warning', 'danger'] }),
|
|
262
|
+
}, ['text']),
|
|
263
|
+
fallbackText: (props) => `[${s(props.text)}]`,
|
|
264
|
+
});
|
|
265
|
+
export const Link = defineComponent({
|
|
266
|
+
name: 'Link',
|
|
267
|
+
title: 'Link',
|
|
268
|
+
description: 'A link to an http(s) URL.',
|
|
269
|
+
props: obj({ text: str(), url: str(undefined, { pattern: '^https?://' }) }, ['text', 'url']),
|
|
270
|
+
fallbackText: (props) => `<${s(props.url)}|${s(props.text || props.url)}>`,
|
|
271
|
+
});
|
|
272
|
+
export const Image = defineComponent({
|
|
273
|
+
name: 'Image',
|
|
274
|
+
title: 'Image',
|
|
275
|
+
description: 'An image from an https URL.',
|
|
276
|
+
props: obj({ url: str(undefined, { pattern: '^https://' }), alt: str() }, ['url']),
|
|
277
|
+
fallbackText: (props) => s(props.url),
|
|
278
|
+
});
|
|
279
|
+
/** Content components: data a model shows. */
|
|
280
|
+
export const BUILTIN_COMPONENTS = [
|
|
281
|
+
DataTable,
|
|
282
|
+
Chart,
|
|
283
|
+
KpiCards,
|
|
284
|
+
SourceCards,
|
|
285
|
+
Checklist,
|
|
286
|
+
Timeline,
|
|
287
|
+
CodeBlock,
|
|
288
|
+
Diff,
|
|
289
|
+
Callout,
|
|
290
|
+
];
|
|
291
|
+
/** Layout and text primitives, mostly for composing trees (`Stack`, `Card` take children). */
|
|
292
|
+
export const LAYOUT_COMPONENTS = [
|
|
293
|
+
Stack,
|
|
294
|
+
Card,
|
|
295
|
+
Heading,
|
|
296
|
+
Text,
|
|
297
|
+
Badge,
|
|
298
|
+
Link,
|
|
299
|
+
Image,
|
|
300
|
+
];
|
|
6
301
|
//# sourceMappingURL=builtins.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../src/genui/builtins.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,4CAA4C,CAAC"}
|
|
1
|
+
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../src/genui/builtins.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type Catalog } from './catalog.js';
|
|
2
|
+
/** Renderer support only. Component definitions and authorization remain server-owned. */
|
|
3
|
+
export interface UiCapabilities {
|
|
4
|
+
components: Array<{
|
|
5
|
+
name: string;
|
|
6
|
+
version: number;
|
|
7
|
+
}>;
|
|
8
|
+
}
|
|
9
|
+
export declare function validateUiCapabilities(value: unknown): UiCapabilities;
|
|
10
|
+
export declare function negotiateCatalog(catalog: Catalog, capabilities?: UiCapabilities): Catalog;
|
|
11
|
+
export type PreparedUiEmission = {
|
|
12
|
+
kind: 'ui';
|
|
13
|
+
component: string;
|
|
14
|
+
props: Record<string, unknown>;
|
|
15
|
+
version: number;
|
|
16
|
+
fallbackText: string;
|
|
17
|
+
componentVersions?: Record<string, number>;
|
|
18
|
+
} | {
|
|
19
|
+
kind: 'text';
|
|
20
|
+
text: string;
|
|
21
|
+
};
|
|
22
|
+
/** Validate against current trusted definitions before drawing or generating complete text. */
|
|
23
|
+
export declare function prepareUiEmission(catalog: Catalog, capabilities: UiCapabilities | undefined, component: string, props: Record<string, unknown>, version?: number): Promise<PreparedUiEmission>;
|
|
24
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/genui/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAiC,MAAM,cAAc,CAAC;AAK3E,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAuBrE;AAMD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,cAAc,GAAG,OAAO,CAWzF;AAED,MAAM,MAAM,kBAAkB,GAC1B;IACE,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C,GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,+FAA+F;AAC/F,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,cAAc,GAAG,SAAS,EACxC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,CAyC7B"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { COMPONENT_NAME, defineCatalog } from './catalog.js';
|
|
2
|
+
import { formatIssues } from './schema.js';
|
|
3
|
+
import { componentToText, treeToText } from './text.js';
|
|
4
|
+
import { GENUI_TREE_COMPONENT, validateTree } from './tree.js';
|
|
5
|
+
export function validateUiCapabilities(value) {
|
|
6
|
+
if (!record(value) ||
|
|
7
|
+
Object.keys(value).some((key) => key !== 'components') ||
|
|
8
|
+
!Array.isArray(value.components))
|
|
9
|
+
throw new TypeError('Invalid UI capabilities');
|
|
10
|
+
const seen = new Set();
|
|
11
|
+
const components = value.components.map((component) => {
|
|
12
|
+
if (!record(component) ||
|
|
13
|
+
Object.keys(component).some((key) => key !== 'name' && key !== 'version') ||
|
|
14
|
+
typeof component.name !== 'string' ||
|
|
15
|
+
!COMPONENT_NAME.test(component.name) ||
|
|
16
|
+
!Number.isSafeInteger(component.version) ||
|
|
17
|
+
Number(component.version) <= 0 ||
|
|
18
|
+
seen.has(component.name))
|
|
19
|
+
throw new TypeError('Invalid UI component capability');
|
|
20
|
+
seen.add(component.name);
|
|
21
|
+
return { name: component.name, version: Number(component.version) };
|
|
22
|
+
});
|
|
23
|
+
return { components };
|
|
24
|
+
}
|
|
25
|
+
function record(value) {
|
|
26
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
27
|
+
}
|
|
28
|
+
export function negotiateCatalog(catalog, capabilities) {
|
|
29
|
+
if (capabilities === undefined)
|
|
30
|
+
return catalog;
|
|
31
|
+
const supported = validateUiCapabilities(capabilities).components;
|
|
32
|
+
return defineCatalog(catalog.components.filter((component) => supported.some((entry) => entry.name === component.name && entry.version === (component.version ?? 1))), { jsonSchemaValidator: catalog.validator });
|
|
33
|
+
}
|
|
34
|
+
/** Validate against current trusted definitions before drawing or generating complete text. */
|
|
35
|
+
export async function prepareUiEmission(catalog, capabilities, component, props, version) {
|
|
36
|
+
const drawable = negotiateCatalog(catalog, capabilities);
|
|
37
|
+
if (component === GENUI_TREE_COMPONENT) {
|
|
38
|
+
if (version !== undefined && version !== 1)
|
|
39
|
+
throw new Error('Invalid UI tree version');
|
|
40
|
+
const validated = await validateTree(catalog, props.root);
|
|
41
|
+
if (!validated.ok)
|
|
42
|
+
throw new Error(`Invalid UI tree: ${formatIssues(validated.issues)}`);
|
|
43
|
+
const supported = (node) => drawable.has(node.type) && (node.children ?? []).every(supported);
|
|
44
|
+
const versions = new Map();
|
|
45
|
+
const collectVersions = (node) => {
|
|
46
|
+
versions.set(node.type, catalog.get(node.type)?.version ?? 1);
|
|
47
|
+
for (const child of node.children ?? [])
|
|
48
|
+
collectVersions(child);
|
|
49
|
+
};
|
|
50
|
+
collectVersions(validated.value);
|
|
51
|
+
return supported(validated.value)
|
|
52
|
+
? {
|
|
53
|
+
kind: 'ui',
|
|
54
|
+
component,
|
|
55
|
+
props: { root: validated.value },
|
|
56
|
+
version: 1,
|
|
57
|
+
fallbackText: treeToText(catalog, validated.value),
|
|
58
|
+
componentVersions: Object.fromEntries(versions),
|
|
59
|
+
}
|
|
60
|
+
: { kind: 'text', text: treeToText(catalog, validated.value) };
|
|
61
|
+
}
|
|
62
|
+
const definition = catalog.get(component);
|
|
63
|
+
if (definition === undefined)
|
|
64
|
+
throw new Error(`Unknown UI component "${component}"`);
|
|
65
|
+
const currentVersion = definition.version ?? 1;
|
|
66
|
+
if (version !== undefined && version !== currentVersion)
|
|
67
|
+
throw new Error(`Invalid UI component version for "${component}"`);
|
|
68
|
+
const validated = await catalog.validate(component, props);
|
|
69
|
+
if (!validated.ok)
|
|
70
|
+
throw new Error(`Invalid UI props: ${formatIssues(validated.issues)}`);
|
|
71
|
+
return drawable.has(component)
|
|
72
|
+
? {
|
|
73
|
+
kind: 'ui',
|
|
74
|
+
component,
|
|
75
|
+
props: validated.value,
|
|
76
|
+
version: currentVersion,
|
|
77
|
+
fallbackText: componentToText(catalog, component, validated.value),
|
|
78
|
+
}
|
|
79
|
+
: { kind: 'text', text: componentToText(catalog, component, validated.value) };
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=capabilities.js.map
|