@sprinterai/runtime 0.3.0 → 0.5.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/LICENSE +21 -0
- package/dist/adapters/a2a-adapter.d.ts +37 -9
- package/dist/adapters/a2a-adapter.d.ts.map +1 -1
- package/dist/adapters/a2a-adapter.js +132 -9
- package/dist/adapters/a2a-adapter.js.map +1 -1
- package/dist/adapters/a2a-adapter.test.d.ts +2 -0
- package/dist/adapters/a2a-adapter.test.d.ts.map +1 -0
- package/dist/adapters/a2a-adapter.test.js +295 -0
- package/dist/adapters/a2a-adapter.test.js.map +1 -0
- package/dist/adapters/http-agent-adapter.d.ts +19 -9
- package/dist/adapters/http-agent-adapter.d.ts.map +1 -1
- package/dist/adapters/http-agent-adapter.js +55 -9
- package/dist/adapters/http-agent-adapter.js.map +1 -1
- package/dist/adapters/http-agent-adapter.test.d.ts +2 -0
- package/dist/adapters/http-agent-adapter.test.d.ts.map +1 -0
- package/dist/adapters/http-agent-adapter.test.js +164 -0
- package/dist/adapters/http-agent-adapter.test.js.map +1 -0
- package/dist/adapters/index.d.ts +8 -8
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +4 -4
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/mcp-adapter.d.ts +29 -9
- package/dist/adapters/mcp-adapter.d.ts.map +1 -1
- package/dist/adapters/mcp-adapter.js +43 -8
- package/dist/adapters/mcp-adapter.js.map +1 -1
- package/dist/adapters/mcp-adapter.test.d.ts +2 -0
- package/dist/adapters/mcp-adapter.test.d.ts.map +1 -0
- package/dist/adapters/mcp-adapter.test.js +118 -0
- package/dist/adapters/mcp-adapter.test.js.map +1 -0
- package/dist/adapters/openclaw-adapter.d.ts +34 -8
- package/dist/adapters/openclaw-adapter.d.ts.map +1 -1
- package/dist/adapters/openclaw-adapter.js +38 -8
- package/dist/adapters/openclaw-adapter.js.map +1 -1
- package/dist/adapters/openclaw-adapter.test.d.ts +2 -0
- package/dist/adapters/openclaw-adapter.test.d.ts.map +1 -0
- package/dist/adapters/openclaw-adapter.test.js +77 -0
- package/dist/adapters/openclaw-adapter.test.js.map +1 -0
- package/dist/agent/agent-registry.test.js +1 -1
- package/dist/agent/agent-resolver.d.ts +8 -2
- package/dist/agent/agent-resolver.d.ts.map +1 -1
- package/dist/agent/agent-resolver.js +7 -1
- package/dist/agent/agent-resolver.js.map +1 -1
- package/dist/agent/agent-resolver.test.js +21 -3
- package/dist/agent/agent-resolver.test.js.map +1 -1
- package/dist/agent/delegate.test.js +1 -1
- package/dist/agent/execute-agent.d.ts +32 -8
- package/dist/agent/execute-agent.d.ts.map +1 -1
- package/dist/agent/execute-agent.js +40 -3
- package/dist/agent/execute-agent.js.map +1 -1
- package/dist/agent/index.d.ts +9 -9
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +5 -5
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/prompt-builder.test.js +1 -1
- package/dist/approval/approval-manager.d.ts +19 -0
- package/dist/approval/approval-manager.d.ts.map +1 -0
- package/dist/approval/approval-manager.js +36 -0
- package/dist/approval/approval-manager.js.map +1 -0
- package/dist/approval/approval-manager.test.d.ts +2 -0
- package/dist/approval/approval-manager.test.d.ts.map +1 -0
- package/dist/approval/approval-manager.test.js +239 -0
- package/dist/approval/approval-manager.test.js.map +1 -0
- package/dist/approval/index.d.ts +3 -0
- package/dist/approval/index.d.ts.map +1 -0
- package/dist/approval/index.js +2 -0
- package/dist/approval/index.js.map +1 -0
- package/dist/chat/chat-handler.d.ts +14 -7
- package/dist/chat/chat-handler.d.ts.map +1 -1
- package/dist/chat/chat-handler.js +56 -11
- package/dist/chat/chat-handler.js.map +1 -1
- package/dist/chat/chat-handler.test.js +100 -11
- package/dist/chat/chat-handler.test.js.map +1 -1
- package/dist/chat/index.d.ts +3 -3
- package/dist/chat/index.js +2 -2
- package/dist/chat/message-utils.d.ts +15 -7
- package/dist/chat/message-utils.d.ts.map +1 -1
- package/dist/chat/message-utils.js +94 -22
- package/dist/chat/message-utils.js.map +1 -1
- package/dist/chat/message-utils.test.js +71 -1
- package/dist/chat/message-utils.test.js.map +1 -1
- package/dist/document/chunk-generator.d.ts +6 -0
- package/dist/document/chunk-generator.d.ts.map +1 -0
- package/dist/document/chunk-generator.js +107 -0
- package/dist/document/chunk-generator.js.map +1 -0
- package/dist/document/chunk-generator.test.d.ts +2 -0
- package/dist/document/chunk-generator.test.d.ts.map +1 -0
- package/dist/document/chunk-generator.test.js +166 -0
- package/dist/document/chunk-generator.test.js.map +1 -0
- package/dist/document/document-processor.d.ts +27 -0
- package/dist/document/document-processor.d.ts.map +1 -0
- package/dist/document/document-processor.js +44 -0
- package/dist/document/document-processor.js.map +1 -0
- package/dist/document/document-processor.test.d.ts +2 -0
- package/dist/document/document-processor.test.d.ts.map +1 -0
- package/dist/document/document-processor.test.js +197 -0
- package/dist/document/document-processor.test.js.map +1 -0
- package/dist/document/index.d.ts +5 -0
- package/dist/document/index.d.ts.map +1 -0
- package/dist/document/index.js +4 -0
- package/dist/document/index.js.map +1 -0
- package/dist/document/parsers/index.d.ts +2 -0
- package/dist/document/parsers/index.d.ts.map +1 -0
- package/dist/document/parsers/index.js +2 -0
- package/dist/document/parsers/index.js.map +1 -0
- package/dist/document/parsers/text-parser.d.ts +4 -0
- package/dist/document/parsers/text-parser.d.ts.map +1 -0
- package/dist/document/parsers/text-parser.js +23 -0
- package/dist/document/parsers/text-parser.js.map +1 -0
- package/dist/document/parsers/text-parser.test.d.ts +2 -0
- package/dist/document/parsers/text-parser.test.d.ts.map +1 -0
- package/dist/document/parsers/text-parser.test.js +64 -0
- package/dist/document/parsers/text-parser.test.js.map +1 -0
- package/dist/eval/eval-runner.test.js +2 -2
- package/dist/eval/index.d.ts +3 -3
- package/dist/eval/index.js +2 -2
- package/dist/eval/scorers.test.js +1 -1
- package/dist/events/event-bus.d.ts +12 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/event-bus.js +77 -0
- package/dist/events/event-bus.js.map +1 -0
- package/dist/events/event-bus.test.d.ts +2 -0
- package/dist/events/event-bus.test.d.ts.map +1 -0
- package/dist/events/event-bus.test.js +155 -0
- package/dist/events/event-bus.test.js.map +1 -0
- package/dist/events/index.d.ts +2 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +2 -0
- package/dist/events/index.js.map +1 -0
- package/dist/guardrail/guardrail-pipeline.test.js +1 -1
- package/dist/guardrail/index.d.ts +2 -2
- package/dist/guardrail/index.js +1 -1
- package/dist/index.d.ts +81 -45
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -27
- package/dist/index.js.map +1 -1
- package/dist/jobs/in-memory-job-queue.d.ts +20 -0
- package/dist/jobs/in-memory-job-queue.d.ts.map +1 -0
- package/dist/jobs/in-memory-job-queue.js +120 -0
- package/dist/jobs/in-memory-job-queue.js.map +1 -0
- package/dist/jobs/in-memory-job-queue.test.d.ts +2 -0
- package/dist/jobs/in-memory-job-queue.test.d.ts.map +1 -0
- package/dist/jobs/in-memory-job-queue.test.js +146 -0
- package/dist/jobs/in-memory-job-queue.test.js.map +1 -0
- package/dist/jobs/index.d.ts +4 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +3 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/job-runner.d.ts +42 -0
- package/dist/jobs/job-runner.d.ts.map +1 -0
- package/dist/jobs/job-runner.js +119 -0
- package/dist/jobs/job-runner.js.map +1 -0
- package/dist/jobs/job-runner.test.d.ts +2 -0
- package/dist/jobs/job-runner.test.d.ts.map +1 -0
- package/dist/jobs/job-runner.test.js +190 -0
- package/dist/jobs/job-runner.test.js.map +1 -0
- package/dist/memory/index.d.ts +3 -3
- package/dist/memory/index.js +2 -2
- package/dist/memory/memory-prompt.d.ts +1 -1
- package/dist/module/create-runtime.d.ts +21 -6
- package/dist/module/create-runtime.d.ts.map +1 -1
- package/dist/module/create-runtime.js +7 -7
- package/dist/module/create-runtime.js.map +1 -1
- package/dist/module/create-runtime.test.js +8 -8
- package/dist/module/index.d.ts +5 -4
- package/dist/module/index.d.ts.map +1 -1
- package/dist/module/index.js +3 -2
- package/dist/module/index.js.map +1 -1
- package/dist/module/map-supabase-stores.d.ts +33 -0
- package/dist/module/map-supabase-stores.d.ts.map +1 -0
- package/dist/module/map-supabase-stores.js +28 -0
- package/dist/module/map-supabase-stores.js.map +1 -0
- package/dist/module/module-loader.d.ts +9 -1
- package/dist/module/module-loader.d.ts.map +1 -1
- package/dist/module/module-loader.js +40 -1
- package/dist/module/module-loader.js.map +1 -1
- package/dist/module/module-loader.test.js +38 -1
- package/dist/module/module-loader.test.js.map +1 -1
- package/dist/notification/digest-scheduler.d.ts +18 -0
- package/dist/notification/digest-scheduler.d.ts.map +1 -0
- package/dist/notification/digest-scheduler.js +44 -0
- package/dist/notification/digest-scheduler.js.map +1 -0
- package/dist/notification/digest-scheduler.test.d.ts +2 -0
- package/dist/notification/digest-scheduler.test.d.ts.map +1 -0
- package/dist/notification/digest-scheduler.test.js +306 -0
- package/dist/notification/digest-scheduler.test.js.map +1 -0
- package/dist/notification/index.d.ts +5 -0
- package/dist/notification/index.d.ts.map +1 -0
- package/dist/notification/index.js +3 -0
- package/dist/notification/index.js.map +1 -0
- package/dist/notification/notification-engine.d.ts +20 -0
- package/dist/notification/notification-engine.d.ts.map +1 -0
- package/dist/notification/notification-engine.js +78 -0
- package/dist/notification/notification-engine.js.map +1 -0
- package/dist/notification/notification-engine.test.d.ts +2 -0
- package/dist/notification/notification-engine.test.d.ts.map +1 -0
- package/dist/notification/notification-engine.test.js +364 -0
- package/dist/notification/notification-engine.test.js.map +1 -0
- package/dist/providers/index.d.ts +5 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +3 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/model-resolver.d.ts +93 -0
- package/dist/providers/model-resolver.d.ts.map +1 -0
- package/dist/providers/model-resolver.js +152 -0
- package/dist/providers/model-resolver.js.map +1 -0
- package/dist/providers/model-resolver.test.d.ts +2 -0
- package/dist/providers/model-resolver.test.d.ts.map +1 -0
- package/dist/providers/model-resolver.test.js +199 -0
- package/dist/providers/model-resolver.test.js.map +1 -0
- package/dist/providers/noop-providers.d.ts +6 -0
- package/dist/providers/noop-providers.d.ts.map +1 -0
- package/dist/providers/noop-providers.js +15 -0
- package/dist/providers/noop-providers.js.map +1 -0
- package/dist/providers/noop-providers.test.d.ts +2 -0
- package/dist/providers/noop-providers.test.d.ts.map +1 -0
- package/dist/providers/noop-providers.test.js +63 -0
- package/dist/providers/noop-providers.test.js.map +1 -0
- package/dist/providers/provider-interfaces.d.ts +65 -0
- package/dist/providers/provider-interfaces.d.ts.map +1 -0
- package/dist/providers/provider-interfaces.js +2 -0
- package/dist/providers/provider-interfaces.js.map +1 -0
- package/dist/realtime/index.d.ts +3 -0
- package/dist/realtime/index.d.ts.map +1 -0
- package/dist/realtime/index.js +2 -0
- package/dist/realtime/index.js.map +1 -0
- package/dist/realtime/realtime-manager.d.ts +20 -0
- package/dist/realtime/realtime-manager.d.ts.map +1 -0
- package/dist/realtime/realtime-manager.js +110 -0
- package/dist/realtime/realtime-manager.js.map +1 -0
- package/dist/realtime/realtime-manager.test.d.ts +2 -0
- package/dist/realtime/realtime-manager.test.d.ts.map +1 -0
- package/dist/realtime/realtime-manager.test.js +273 -0
- package/dist/realtime/realtime-manager.test.js.map +1 -0
- package/dist/scoring/compute-score.test.js +1 -1
- package/dist/scoring/index.d.ts +2 -2
- package/dist/scoring/index.js +1 -1
- package/dist/search/cosine-similarity.d.ts +8 -0
- package/dist/search/cosine-similarity.d.ts.map +1 -0
- package/dist/search/cosine-similarity.js +28 -0
- package/dist/search/cosine-similarity.js.map +1 -0
- package/dist/search/cosine-similarity.test.d.ts +2 -0
- package/dist/search/cosine-similarity.test.d.ts.map +1 -0
- package/dist/search/cosine-similarity.test.js +49 -0
- package/dist/search/cosine-similarity.test.js.map +1 -0
- package/dist/search/hybrid-search.d.ts +47 -0
- package/dist/search/hybrid-search.d.ts.map +1 -0
- package/dist/search/hybrid-search.js +111 -0
- package/dist/search/hybrid-search.js.map +1 -0
- package/dist/search/hybrid-search.test.d.ts +2 -0
- package/dist/search/hybrid-search.test.d.ts.map +1 -0
- package/dist/search/hybrid-search.test.js +238 -0
- package/dist/search/hybrid-search.test.js.map +1 -0
- package/dist/search/in-memory-search.d.ts +17 -0
- package/dist/search/in-memory-search.d.ts.map +1 -0
- package/dist/search/in-memory-search.js +59 -0
- package/dist/search/in-memory-search.js.map +1 -0
- package/dist/search/in-memory-search.test.d.ts +2 -0
- package/dist/search/in-memory-search.test.d.ts.map +1 -0
- package/dist/search/in-memory-search.test.js +169 -0
- package/dist/search/in-memory-search.test.js.map +1 -0
- package/dist/search/index.d.ts +6 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +4 -0
- package/dist/search/index.js.map +1 -0
- package/dist/testing/in-memory-agent-store.d.ts +5 -1
- package/dist/testing/in-memory-agent-store.d.ts.map +1 -1
- package/dist/testing/in-memory-agent-store.js +19 -0
- package/dist/testing/in-memory-agent-store.js.map +1 -1
- package/dist/testing/in-memory-agent-store.test.js +1 -1
- package/dist/testing/in-memory-chat-store.d.ts.map +1 -1
- package/dist/testing/in-memory-chat-store.js +2 -1
- package/dist/testing/in-memory-chat-store.js.map +1 -1
- package/dist/testing/in-memory-entity-store.d.ts +5 -1
- package/dist/testing/in-memory-entity-store.d.ts.map +1 -1
- package/dist/testing/in-memory-entity-store.js +69 -4
- package/dist/testing/in-memory-entity-store.js.map +1 -1
- package/dist/testing/in-memory-entity-store.test.js +1 -1
- package/dist/testing/in-memory-memory-store.d.ts +3 -1
- package/dist/testing/in-memory-memory-store.d.ts.map +1 -1
- package/dist/testing/in-memory-memory-store.js +20 -0
- package/dist/testing/in-memory-memory-store.js.map +1 -1
- package/dist/testing/in-memory-tool-store.d.ts +13 -2
- package/dist/testing/in-memory-tool-store.d.ts.map +1 -1
- package/dist/testing/in-memory-tool-store.js +51 -0
- package/dist/testing/in-memory-tool-store.js.map +1 -1
- package/dist/testing/index.d.ts +7 -7
- package/dist/testing/index.js +7 -7
- package/dist/tool/ai-bridge.d.ts +1 -0
- package/dist/tool/ai-bridge.d.ts.map +1 -1
- package/dist/tool/ai-bridge.js +1 -0
- package/dist/tool/ai-bridge.js.map +1 -1
- package/dist/tool/ai-bridge.test.js +1 -1
- package/dist/tool/catalog.d.ts +19 -0
- package/dist/tool/catalog.d.ts.map +1 -0
- package/dist/tool/catalog.js +88 -0
- package/dist/tool/catalog.js.map +1 -0
- package/dist/tool/catalog.test.d.ts +2 -0
- package/dist/tool/catalog.test.d.ts.map +1 -0
- package/dist/tool/catalog.test.js +129 -0
- package/dist/tool/catalog.test.js.map +1 -0
- package/dist/tool/entity-tools-factory.test.js +2 -2
- package/dist/tool/execute-registered-tool.d.ts +17 -0
- package/dist/tool/execute-registered-tool.d.ts.map +1 -0
- package/dist/tool/execute-registered-tool.js +24 -0
- package/dist/tool/execute-registered-tool.js.map +1 -0
- package/dist/tool/execute-registered-tool.test.d.ts +2 -0
- package/dist/tool/execute-registered-tool.test.d.ts.map +1 -0
- package/dist/tool/execute-registered-tool.test.js +73 -0
- package/dist/tool/execute-registered-tool.test.js.map +1 -0
- package/dist/tool/index.d.ts +11 -7
- package/dist/tool/index.d.ts.map +1 -1
- package/dist/tool/index.js +7 -5
- package/dist/tool/index.js.map +1 -1
- package/dist/tool/resolve-tools.d.ts +3 -1
- package/dist/tool/resolve-tools.d.ts.map +1 -1
- package/dist/tool/resolve-tools.js +1 -1
- package/dist/tool/resolve-tools.js.map +1 -1
- package/dist/tool/resolve-tools.test.js +1 -1
- package/dist/tool/tool-executor.d.ts +3 -2
- package/dist/tool/tool-executor.d.ts.map +1 -1
- package/dist/tool/tool-executor.js +4 -2
- package/dist/tool/tool-executor.js.map +1 -1
- package/dist/tool/tool-executor.test.js +2 -2
- package/dist/tool/tool-registry.test.js +1 -1
- package/dist/tool/zod-to-json-schema.d.ts +7 -0
- package/dist/tool/zod-to-json-schema.d.ts.map +1 -0
- package/dist/tool/zod-to-json-schema.js +12 -0
- package/dist/tool/zod-to-json-schema.js.map +1 -0
- package/dist/tool/zod-to-json-schema.test.d.ts +2 -0
- package/dist/tool/zod-to-json-schema.test.d.ts.map +1 -0
- package/dist/tool/zod-to-json-schema.test.js +127 -0
- package/dist/tool/zod-to-json-schema.test.js.map +1 -0
- package/dist/webhook/index.d.ts +4 -0
- package/dist/webhook/index.d.ts.map +1 -0
- package/dist/webhook/index.js +3 -0
- package/dist/webhook/index.js.map +1 -0
- package/dist/webhook/webhook-delivery.d.ts +12 -0
- package/dist/webhook/webhook-delivery.d.ts.map +1 -0
- package/dist/webhook/webhook-delivery.js +102 -0
- package/dist/webhook/webhook-delivery.js.map +1 -0
- package/dist/webhook/webhook-delivery.test.d.ts +2 -0
- package/dist/webhook/webhook-delivery.test.d.ts.map +1 -0
- package/dist/webhook/webhook-delivery.test.js +284 -0
- package/dist/webhook/webhook-delivery.test.js.map +1 -0
- package/dist/webhook/webhook-signer.d.ts +14 -0
- package/dist/webhook/webhook-signer.d.ts.map +1 -0
- package/dist/webhook/webhook-signer.js +31 -0
- package/dist/webhook/webhook-signer.js.map +1 -0
- package/dist/webhook/webhook-signer.test.d.ts +2 -0
- package/dist/webhook/webhook-signer.test.d.ts.map +1 -0
- package/dist/webhook/webhook-signer.test.js +74 -0
- package/dist/webhook/webhook-signer.test.js.map +1 -0
- package/dist/workflow/compile.js +4 -1
- package/dist/workflow/compile.js.map +1 -1
- package/dist/workflow/compile.test.js +1 -1
- package/dist/workflow/evaluate-nodes.d.ts +24 -0
- package/dist/workflow/evaluate-nodes.d.ts.map +1 -0
- package/dist/workflow/evaluate-nodes.js +126 -0
- package/dist/workflow/evaluate-nodes.js.map +1 -0
- package/dist/workflow/evaluate-nodes.test.d.ts +2 -0
- package/dist/workflow/evaluate-nodes.test.d.ts.map +1 -0
- package/dist/workflow/evaluate-nodes.test.js +363 -0
- package/dist/workflow/evaluate-nodes.test.js.map +1 -0
- package/dist/workflow/index.d.ts +8 -3
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +4 -2
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/node-executor.d.ts +40 -0
- package/dist/workflow/node-executor.d.ts.map +1 -0
- package/dist/workflow/node-executor.js +2 -0
- package/dist/workflow/node-executor.js.map +1 -0
- package/dist/workflow/node-executor.test.d.ts +2 -0
- package/dist/workflow/node-executor.test.d.ts.map +1 -0
- package/dist/workflow/node-executor.test.js +91 -0
- package/dist/workflow/node-executor.test.js.map +1 -0
- package/dist/workflow/status.test.js +1 -1
- package/dist/workflow/workflow-runner.d.ts +57 -0
- package/dist/workflow/workflow-runner.d.ts.map +1 -0
- package/dist/workflow/workflow-runner.js +263 -0
- package/dist/workflow/workflow-runner.js.map +1 -0
- package/dist/workflow/workflow-runner.test.d.ts +2 -0
- package/dist/workflow/workflow-runner.test.d.ts.map +1 -0
- package/dist/workflow/workflow-runner.test.js +657 -0
- package/dist/workflow/workflow-runner.test.js.map +1 -0
- package/package.json +19 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/openclaw-adapter.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"openclaw-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/openclaw-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,gDAAgD;AAChD,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,aAAa,CAAC;CAC/F;AAED,8CAA8C;AAC9C,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,KAAK,EAAE,aAAa,CAAC;IACrB,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CA6C/F"}
|
|
@@ -1,13 +1,43 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Create a LanguageModel from an OpenClaw-compatible endpoint.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Note: Use @ai-sdk/openai-compatible to create the model provider.
|
|
8
|
-
* Throws if not configured.
|
|
4
|
+
* Uses the provided createModel factory if available. Otherwise attempts
|
|
5
|
+
* to dynamically import @ai-sdk/openai-compatible.
|
|
9
6
|
*/
|
|
10
|
-
export async function createOpenClawModel(
|
|
11
|
-
|
|
7
|
+
export async function createOpenClawModel(config) {
|
|
8
|
+
if (!config.baseUrl)
|
|
9
|
+
throw new Error('OpenClaw adapter: baseUrl is required');
|
|
10
|
+
if (!config.apiKey)
|
|
11
|
+
throw new Error('OpenClaw adapter: apiKey is required');
|
|
12
|
+
const modelId = config.modelId ?? 'default';
|
|
13
|
+
if (config.createModel) {
|
|
14
|
+
const model = config.createModel({
|
|
15
|
+
baseUrl: config.baseUrl,
|
|
16
|
+
apiKey: config.apiKey,
|
|
17
|
+
modelId,
|
|
18
|
+
});
|
|
19
|
+
return { model, provider: 'openclaw', baseUrl: config.baseUrl, modelId };
|
|
20
|
+
}
|
|
21
|
+
// Attempt dynamic import of @ai-sdk/openai-compatible
|
|
22
|
+
try {
|
|
23
|
+
// Dynamic import -- not a hard dependency. Use Function constructor to bypass
|
|
24
|
+
// TypeScript module resolution since this package is not in our deps.
|
|
25
|
+
const mod = (await new Function('return import("@ai-sdk/openai-compatible")')());
|
|
26
|
+
const createFn = mod.createOpenAICompatible;
|
|
27
|
+
if (typeof createFn !== 'function') {
|
|
28
|
+
throw new Error('createOpenAICompatible not found in @ai-sdk/openai-compatible');
|
|
29
|
+
}
|
|
30
|
+
const provider = createFn({
|
|
31
|
+
name: 'openclaw',
|
|
32
|
+
baseURL: config.baseUrl,
|
|
33
|
+
headers: { Authorization: `Bearer ${config.apiKey}` },
|
|
34
|
+
});
|
|
35
|
+
const model = provider.languageModel(modelId);
|
|
36
|
+
return { model, provider: 'openclaw', baseUrl: config.baseUrl, modelId };
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
throw new Error('OpenClaw adapter: provide a createModel factory in config, or install @ai-sdk/openai-compatible: ' +
|
|
40
|
+
'pnpm add @ai-sdk/openai-compatible');
|
|
41
|
+
}
|
|
12
42
|
}
|
|
13
43
|
//# sourceMappingURL=openclaw-adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw-adapter.js","sourceRoot":"","sources":["../../src/adapters/openclaw-adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openclaw-adapter.js","sourceRoot":"","sources":["../../src/adapters/openclaw-adapter.ts"],"names":[],"mappings":"AAqCA;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAA6B;IACrE,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAE5E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC;IAE5C,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;YAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO;SACR,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;IAC3E,CAAC;IAED,sDAAsD;IACtD,IAAI,CAAC;QACH,8EAA8E;QAC9E,sEAAsE;QACtE,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC,4CAA4C,CAAC,EAAE,CAG9E,CAAC;QAEF,MAAM,QAAQ,GAAG,GAAG,CAAC,sBAER,CAAC;QAEd,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC;YACxB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE,EAAE;SACtD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,mGAAmG;YACjG,oCAAoC,CACvC,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openclaw-adapter.test.d.ts","sourceRoot":"","sources":["../../src/adapters/openclaw-adapter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { describe, it, expect, vi } from 'vitest';
|
|
2
|
+
import { createOpenClawModel } from './openclaw-adapter.js';
|
|
3
|
+
/** Create a minimal mock LanguageModel. */
|
|
4
|
+
function createMockModel() {
|
|
5
|
+
return {
|
|
6
|
+
specificationVersion: 'v1',
|
|
7
|
+
provider: 'openclaw',
|
|
8
|
+
modelId: 'test-model',
|
|
9
|
+
defaultObjectGenerationMode: 'json',
|
|
10
|
+
doGenerate: vi.fn(),
|
|
11
|
+
doStream: vi.fn(),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
describe('createOpenClawModel', () => {
|
|
15
|
+
it('throws when baseUrl is missing', async () => {
|
|
16
|
+
await expect(createOpenClawModel({ baseUrl: '', apiKey: 'key' })).rejects.toThrow('OpenClaw adapter: baseUrl is required');
|
|
17
|
+
});
|
|
18
|
+
it('throws when apiKey is missing', async () => {
|
|
19
|
+
await expect(createOpenClawModel({ baseUrl: 'http://localhost', apiKey: '' })).rejects.toThrow('OpenClaw adapter: apiKey is required');
|
|
20
|
+
});
|
|
21
|
+
it('uses createModel factory when provided', async () => {
|
|
22
|
+
const mockModel = createMockModel();
|
|
23
|
+
const createModel = vi.fn().mockReturnValue(mockModel);
|
|
24
|
+
const result = await createOpenClawModel({
|
|
25
|
+
baseUrl: 'http://localhost:8080',
|
|
26
|
+
apiKey: 'test-key',
|
|
27
|
+
modelId: 'my-model',
|
|
28
|
+
createModel,
|
|
29
|
+
});
|
|
30
|
+
expect(createModel).toHaveBeenCalledWith({
|
|
31
|
+
baseUrl: 'http://localhost:8080',
|
|
32
|
+
apiKey: 'test-key',
|
|
33
|
+
modelId: 'my-model',
|
|
34
|
+
});
|
|
35
|
+
expect(result.model).toBe(mockModel);
|
|
36
|
+
expect(result.provider).toBe('openclaw');
|
|
37
|
+
expect(result.baseUrl).toBe('http://localhost:8080');
|
|
38
|
+
expect(result.modelId).toBe('my-model');
|
|
39
|
+
});
|
|
40
|
+
it('uses default modelId when not specified', async () => {
|
|
41
|
+
const mockModel = createMockModel();
|
|
42
|
+
const createModel = vi.fn().mockReturnValue(mockModel);
|
|
43
|
+
const result = await createOpenClawModel({
|
|
44
|
+
baseUrl: 'http://localhost:8080',
|
|
45
|
+
apiKey: 'test-key',
|
|
46
|
+
createModel,
|
|
47
|
+
});
|
|
48
|
+
expect(createModel).toHaveBeenCalledWith({
|
|
49
|
+
baseUrl: 'http://localhost:8080',
|
|
50
|
+
apiKey: 'test-key',
|
|
51
|
+
modelId: 'default',
|
|
52
|
+
});
|
|
53
|
+
expect(result.modelId).toBe('default');
|
|
54
|
+
});
|
|
55
|
+
it('throws helpful error when no createModel and no @ai-sdk/openai-compatible', async () => {
|
|
56
|
+
await expect(createOpenClawModel({
|
|
57
|
+
baseUrl: 'http://localhost:8080',
|
|
58
|
+
apiKey: 'test-key',
|
|
59
|
+
})).rejects.toThrow('OpenClaw adapter: provide a createModel factory in config, or install @ai-sdk/openai-compatible');
|
|
60
|
+
});
|
|
61
|
+
it('returns OpenClawModel shape with all fields', async () => {
|
|
62
|
+
const mockModel = createMockModel();
|
|
63
|
+
const result = await createOpenClawModel({
|
|
64
|
+
baseUrl: 'https://api.openclaw.dev',
|
|
65
|
+
apiKey: 'sk-123',
|
|
66
|
+
modelId: 'gpt-4',
|
|
67
|
+
createModel: () => mockModel,
|
|
68
|
+
});
|
|
69
|
+
expect(result).toEqual({
|
|
70
|
+
model: mockModel,
|
|
71
|
+
provider: 'openclaw',
|
|
72
|
+
baseUrl: 'https://api.openclaw.dev',
|
|
73
|
+
modelId: 'gpt-4',
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=openclaw-adapter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openclaw-adapter.test.js","sourceRoot":"","sources":["../../src/adapters/openclaw-adapter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AgentStore, AgentRecord, AgentConfig } from '@sprinterai/core';
|
|
2
|
-
import type { AgentRegistry } from './agent-registry';
|
|
1
|
+
import type { AgentStore, AgentRecord, AgentConfig, AgentGuardrailsConfig, AgentVoiceConfig, AgentEvalsConfig } from '@sprinterai/core';
|
|
2
|
+
import type { AgentRegistry } from './agent-registry.js';
|
|
3
3
|
/** A resolved agent, combining definition fields with optional DB record. */
|
|
4
4
|
export interface ResolvedAgent {
|
|
5
5
|
/** Agent ID/slug. */
|
|
@@ -18,6 +18,12 @@ export interface ResolvedAgent {
|
|
|
18
18
|
record?: AgentRecord;
|
|
19
19
|
/** Suggestions for the user. */
|
|
20
20
|
suggestions?: string[];
|
|
21
|
+
/** Structured guardrails configuration. */
|
|
22
|
+
guardrailsConfig?: AgentGuardrailsConfig;
|
|
23
|
+
/** Voice configuration. */
|
|
24
|
+
voice?: AgentVoiceConfig;
|
|
25
|
+
/** Eval configuration. */
|
|
26
|
+
evals?: AgentEvalsConfig;
|
|
21
27
|
}
|
|
22
28
|
/** Options for resolving an agent. */
|
|
23
29
|
export interface ResolveAgentOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-resolver.d.ts","sourceRoot":"","sources":["../../src/agent/agent-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"agent-resolver.d.ts","sourceRoot":"","sources":["../../src/agent/agent-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,MAAM,EAAE,WAAW,CAAC;IACpB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gCAAgC;IAChC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAClD,iDAAiD;IACjD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAED,sCAAsC;AACtC,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kCAAkC;IAClC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kDAAkD;IAClD,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtC,oCAAoC;IACpC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,CAAC;CAChD;AAaD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,aAAa,CAAC,CA6BxB"}
|
|
@@ -53,9 +53,12 @@ function definitionToResolved(def) {
|
|
|
53
53
|
customTools: def.customTools,
|
|
54
54
|
suggestions: def.suggestions,
|
|
55
55
|
},
|
|
56
|
-
model: null,
|
|
56
|
+
model: def.model ?? null,
|
|
57
57
|
source: 'code',
|
|
58
58
|
suggestions: def.suggestions,
|
|
59
|
+
guardrailsConfig: def.guardrailsConfig,
|
|
60
|
+
voice: def.voice,
|
|
61
|
+
evals: def.evals,
|
|
59
62
|
};
|
|
60
63
|
}
|
|
61
64
|
function recordToResolved(record, source, parseConfig) {
|
|
@@ -71,6 +74,9 @@ function recordToResolved(record, source, parseConfig) {
|
|
|
71
74
|
source,
|
|
72
75
|
record,
|
|
73
76
|
suggestions: config.suggestions,
|
|
77
|
+
guardrailsConfig: config.guardrailsConfig,
|
|
78
|
+
voice: config.voice,
|
|
79
|
+
evals: config.evals,
|
|
74
80
|
};
|
|
75
81
|
}
|
|
76
82
|
//# sourceMappingURL=agent-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-resolver.js","sourceRoot":"","sources":["../../src/agent/agent-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-resolver.js","sourceRoot":"","sources":["../../src/agent/agent-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, it, expect, beforeEach } from 'vitest';
|
|
2
|
-
import { InMemoryAgentStore } from '../testing/in-memory-agent-store';
|
|
3
|
-
import { AgentRegistry } from './agent-registry';
|
|
4
|
-
import { resolveAgent } from './agent-resolver';
|
|
2
|
+
import { InMemoryAgentStore } from '../testing/in-memory-agent-store.js';
|
|
3
|
+
import { AgentRegistry } from './agent-registry.js';
|
|
4
|
+
import { resolveAgent } from './agent-resolver.js';
|
|
5
5
|
function makeAgentRecord(slug, overrides) {
|
|
6
6
|
return {
|
|
7
7
|
id: `agent-${slug}`,
|
|
@@ -96,6 +96,24 @@ describe('resolveAgent', () => {
|
|
|
96
96
|
expect(agent.source).toBe('code');
|
|
97
97
|
expect(agent.name).toBe('Code Version');
|
|
98
98
|
});
|
|
99
|
+
it('propagates voice, evals, and guardrailsConfig from code definition', async () => {
|
|
100
|
+
const def = {
|
|
101
|
+
id: 'rich-agent',
|
|
102
|
+
name: 'Rich Agent',
|
|
103
|
+
description: 'Has all fields',
|
|
104
|
+
icon: 'star',
|
|
105
|
+
systemPrompt: 'You are rich.',
|
|
106
|
+
voice: { provider: 'elevenlabs', voiceId: 'sarah' },
|
|
107
|
+
evals: { scorers: ['relevancy'], sampling: 0.1 },
|
|
108
|
+
guardrailsConfig: { input: ['pii'], output: ['hallucination'] },
|
|
109
|
+
};
|
|
110
|
+
const registry = new AgentRegistry();
|
|
111
|
+
registry.register(def);
|
|
112
|
+
const resolved = await resolveAgent('rich-agent', { agentRegistry: registry });
|
|
113
|
+
expect(resolved.voice?.provider).toBe('elevenlabs');
|
|
114
|
+
expect(resolved.evals?.scorers).toEqual(['relevancy']);
|
|
115
|
+
expect(resolved.guardrailsConfig?.input).toEqual(['pii']);
|
|
116
|
+
});
|
|
99
117
|
it('uses parseConfig for DB records', async () => {
|
|
100
118
|
const record = makeAgentRecord('configed', {
|
|
101
119
|
config: { toolGroups: ['entity', 'web'] },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-resolver.test.js","sourceRoot":"","sources":["../../src/agent/agent-resolver.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-resolver.test.js","sourceRoot":"","sources":["../../src/agent/agent-resolver.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,30 @@
|
|
|
1
1
|
import type { ToolDefinition } from '@sprinterai/core';
|
|
2
2
|
import { streamText } from 'ai';
|
|
3
|
-
import type { LanguageModel } from 'ai';
|
|
4
|
-
import type { PromptSection } from './prompt-builder';
|
|
3
|
+
import type { LanguageModel, UIMessage } from 'ai';
|
|
4
|
+
import type { PromptSection } from './prompt-builder.js';
|
|
5
|
+
/** Data passed to the onFinish callback after streaming completes. */
|
|
6
|
+
export interface AgentFinishEvent {
|
|
7
|
+
/** The full text output from the agent. */
|
|
8
|
+
text: string;
|
|
9
|
+
/** Tool calls made during the agent's execution across all steps. */
|
|
10
|
+
toolCalls: Array<{
|
|
11
|
+
toolName: string;
|
|
12
|
+
args: unknown;
|
|
13
|
+
}>;
|
|
14
|
+
/** Tool results received during the agent's execution. */
|
|
15
|
+
toolResults: Array<{
|
|
16
|
+
toolName: string;
|
|
17
|
+
args: unknown;
|
|
18
|
+
result: unknown;
|
|
19
|
+
}>;
|
|
20
|
+
/** Why the agent stopped: 'stop', 'tool-calls', 'length', 'content-filter', 'error'. */
|
|
21
|
+
finishReason: string;
|
|
22
|
+
/** Token usage across all steps. */
|
|
23
|
+
usage: {
|
|
24
|
+
inputTokens: number;
|
|
25
|
+
outputTokens: number;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
5
28
|
/** Configuration for agent execution. */
|
|
6
29
|
export interface ExecuteAgentConfig {
|
|
7
30
|
/** The language model to use. */
|
|
@@ -10,8 +33,8 @@ export interface ExecuteAgentConfig {
|
|
|
10
33
|
systemSections: PromptSection[];
|
|
11
34
|
/** Tools available to the agent. */
|
|
12
35
|
tools?: ToolDefinition[];
|
|
13
|
-
/** Conversation messages. */
|
|
14
|
-
messages: Array<{
|
|
36
|
+
/** Conversation messages — UIMessage format (with parts) preferred for tool replay. */
|
|
37
|
+
messages: Array<Omit<UIMessage, 'id'>> | Array<{
|
|
15
38
|
role: 'user' | 'assistant' | 'system';
|
|
16
39
|
content: string;
|
|
17
40
|
}>;
|
|
@@ -21,10 +44,8 @@ export interface ExecuteAgentConfig {
|
|
|
21
44
|
temperature?: number;
|
|
22
45
|
/** Abort signal. */
|
|
23
46
|
abortSignal?: AbortSignal;
|
|
24
|
-
/** Callback invoked when streaming finishes. */
|
|
25
|
-
onFinish?: (
|
|
26
|
-
text: string;
|
|
27
|
-
}) => Promise<void> | void;
|
|
47
|
+
/** Callback invoked when streaming finishes with full event data. */
|
|
48
|
+
onFinish?: (event: AgentFinishEvent) => Promise<void> | void;
|
|
28
49
|
}
|
|
29
50
|
/** Result from a non-streaming agent execution. */
|
|
30
51
|
export interface ExecuteAgentResult {
|
|
@@ -38,6 +59,9 @@ export interface ExecuteAgentResult {
|
|
|
38
59
|
export type AgentStreamResult = ReturnType<typeof streamText>;
|
|
39
60
|
/**
|
|
40
61
|
* Execute an agent with streaming. Returns the AI SDK stream result.
|
|
62
|
+
*
|
|
63
|
+
* Accepts both UIMessage[] (with parts — enables tool call replay) and
|
|
64
|
+
* CoreMessage[] (plain text). AI SDK v6's streamText() handles both natively.
|
|
41
65
|
*/
|
|
42
66
|
export declare function executeAgentStream(config: ExecuteAgentConfig): AgentStreamResult;
|
|
43
67
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-agent.d.ts","sourceRoot":"","sources":["../../src/agent/execute-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,UAAU,EAA6B,MAAM,IAAI,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"execute-agent.d.ts","sourceRoot":"","sources":["../../src/agent/execute-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,UAAU,EAA6B,MAAM,IAAI,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAyB,SAAS,EAAE,MAAM,IAAI,CAAC;AAK1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,SAAS,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACtD,0DAA0D;IAC1D,WAAW,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACzE,wFAAwF;IACxF,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,KAAK,EAAE,aAAa,CAAC;IACrB,sEAAsE;IACtE,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,oCAAoC;IACpC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,uFAAuF;IACvF,QAAQ,EACJ,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,GAC5B,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtE,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC9D;AAED,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,2DAA2D;AAC3D,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9D;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,iBAAiB,CAoDhF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAqB7B"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { streamText, generateText, stepCountIs } from 'ai';
|
|
2
|
-
import { toAIToolSet } from '../tool/ai-bridge';
|
|
3
|
-
import { buildAgentPrompt } from './prompt-builder';
|
|
2
|
+
import { toAIToolSet } from '../tool/ai-bridge.js';
|
|
3
|
+
import { buildAgentPrompt } from './prompt-builder.js';
|
|
4
4
|
/**
|
|
5
5
|
* Execute an agent with streaming. Returns the AI SDK stream result.
|
|
6
|
+
*
|
|
7
|
+
* Accepts both UIMessage[] (with parts — enables tool call replay) and
|
|
8
|
+
* CoreMessage[] (plain text). AI SDK v6's streamText() handles both natively.
|
|
6
9
|
*/
|
|
7
10
|
export function executeAgentStream(config) {
|
|
8
11
|
const systemPrompt = buildAgentPrompt(config.systemSections);
|
|
@@ -10,6 +13,7 @@ export function executeAgentStream(config) {
|
|
|
10
13
|
return streamText({
|
|
11
14
|
model: config.model,
|
|
12
15
|
system: systemPrompt,
|
|
16
|
+
// AI SDK v6 accepts both UIMessage[] and ModelMessage[] — cast for type compat
|
|
13
17
|
messages: config.messages,
|
|
14
18
|
tools: toolSet,
|
|
15
19
|
stopWhen: stepCountIs(config.maxSteps ?? 5),
|
|
@@ -17,7 +21,40 @@ export function executeAgentStream(config) {
|
|
|
17
21
|
abortSignal: config.abortSignal,
|
|
18
22
|
onFinish: config.onFinish
|
|
19
23
|
? async (event) => {
|
|
20
|
-
|
|
24
|
+
const finishHandler = config.onFinish;
|
|
25
|
+
if (finishHandler) {
|
|
26
|
+
// Collect tool calls and results across all steps
|
|
27
|
+
const toolCalls = [];
|
|
28
|
+
const toolResults = [];
|
|
29
|
+
if (event.steps) {
|
|
30
|
+
for (const step of event.steps) {
|
|
31
|
+
if (step.toolCalls) {
|
|
32
|
+
for (const tc of step.toolCalls) {
|
|
33
|
+
toolCalls.push({ toolName: tc.toolName, args: tc.input });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (step.toolResults) {
|
|
37
|
+
for (const tr of step.toolResults) {
|
|
38
|
+
toolResults.push({
|
|
39
|
+
toolName: tr.toolName,
|
|
40
|
+
args: tr.input,
|
|
41
|
+
result: tr.output,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
await finishHandler({
|
|
48
|
+
text: event.text,
|
|
49
|
+
toolCalls,
|
|
50
|
+
toolResults,
|
|
51
|
+
finishReason: event.finishReason ?? 'stop',
|
|
52
|
+
usage: {
|
|
53
|
+
inputTokens: event.totalUsage?.inputTokens ?? 0,
|
|
54
|
+
outputTokens: event.totalUsage?.outputTokens ?? 0,
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
}
|
|
21
58
|
}
|
|
22
59
|
: undefined,
|
|
23
60
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-agent.js","sourceRoot":"","sources":["../../src/agent/execute-agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"execute-agent.js","sourceRoot":"","sources":["../../src/agent/execute-agent.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { buildAgentPrompt } from
|
|
2
|
-
export type { PromptSection } from
|
|
3
|
-
export { AgentRegistry } from
|
|
4
|
-
export { resolveAgent } from
|
|
5
|
-
export type { ResolvedAgent, ResolveAgentOptions } from
|
|
6
|
-
export { executeAgentStream, executeAgentGenerate } from
|
|
7
|
-
export type { ExecuteAgentConfig, ExecuteAgentResult, AgentStreamResult, } from
|
|
8
|
-
export { createDelegateToAgentTool } from
|
|
9
|
-
export type { CreateDelegateToolOptions } from
|
|
1
|
+
export { buildAgentPrompt } from './prompt-builder.js';
|
|
2
|
+
export type { PromptSection } from './prompt-builder.js';
|
|
3
|
+
export { AgentRegistry } from './agent-registry.js';
|
|
4
|
+
export { resolveAgent } from './agent-resolver.js';
|
|
5
|
+
export type { ResolvedAgent, ResolveAgentOptions } from './agent-resolver.js';
|
|
6
|
+
export { executeAgentStream, executeAgentGenerate } from './execute-agent.js';
|
|
7
|
+
export type { ExecuteAgentConfig, ExecuteAgentResult, AgentStreamResult, AgentFinishEvent, } from './execute-agent.js';
|
|
8
|
+
export { createDelegateToAgentTool } from './delegate.js';
|
|
9
|
+
export type { CreateDelegateToolOptions } from './delegate.js';
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,YAAY,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/agent/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { buildAgentPrompt } from
|
|
2
|
-
export { AgentRegistry } from
|
|
3
|
-
export { resolveAgent } from
|
|
4
|
-
export { executeAgentStream, executeAgentGenerate } from
|
|
5
|
-
export { createDelegateToAgentTool } from
|
|
1
|
+
export { buildAgentPrompt } from './prompt-builder.js';
|
|
2
|
+
export { AgentRegistry } from './agent-registry.js';
|
|
3
|
+
export { resolveAgent } from './agent-resolver.js';
|
|
4
|
+
export { executeAgentStream, executeAgentGenerate } from './execute-agent.js';
|
|
5
|
+
export { createDelegateToAgentTool } from './delegate.js';
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/dist/agent/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAO3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { buildAgentPrompt } from './prompt-builder';
|
|
2
|
+
import { buildAgentPrompt } from './prompt-builder.js';
|
|
3
3
|
describe('buildAgentPrompt', () => {
|
|
4
4
|
it('returns empty string for no sections', () => {
|
|
5
5
|
expect(buildAgentPrompt([])).toBe('');
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ApprovalStore, ApprovalRequest, CreateApprovalInput, ReviewApprovalInput, EventBus } from '@sprinterai/core';
|
|
2
|
+
export interface ApprovalManagerOptions {
|
|
3
|
+
store: ApprovalStore;
|
|
4
|
+
eventBus?: EventBus;
|
|
5
|
+
}
|
|
6
|
+
export interface ApprovalManager {
|
|
7
|
+
/** Create an approval request and emit `approval.requested` event. */
|
|
8
|
+
requestApproval(input: CreateApprovalInput): Promise<ApprovalRequest>;
|
|
9
|
+
/** Review (approve/reject) a request and emit `approval.completed` event. */
|
|
10
|
+
review(approvalId: string, review: ReviewApprovalInput): Promise<ApprovalRequest>;
|
|
11
|
+
/** List pending approvals for a tenant, optionally filtered. */
|
|
12
|
+
listPending(tenantId: string, options?: {
|
|
13
|
+
entityId?: string;
|
|
14
|
+
assignedTo?: string;
|
|
15
|
+
}): Promise<ApprovalRequest[]>;
|
|
16
|
+
}
|
|
17
|
+
/** Create an approval manager that orchestrates approval requests with event emission. */
|
|
18
|
+
export declare function createApprovalManager(options: ApprovalManagerOptions): ApprovalManager;
|
|
19
|
+
//# sourceMappingURL=approval-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approval-manager.d.ts","sourceRoot":"","sources":["../../src/approval/approval-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAEtE,6EAA6E;IAC7E,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAElF,gEAAgE;IAChE,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACnD,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CAC/B;AAED,0FAA0F;AAC1F,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CA+CtF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** Create an approval manager that orchestrates approval requests with event emission. */
|
|
2
|
+
export function createApprovalManager(options) {
|
|
3
|
+
const { store, eventBus } = options;
|
|
4
|
+
async function requestApproval(input) {
|
|
5
|
+
const approval = await store.createApproval(input);
|
|
6
|
+
if (eventBus) {
|
|
7
|
+
await eventBus.emit('approval.requested', {
|
|
8
|
+
entityId: approval.entity_id,
|
|
9
|
+
tenantId: approval.tenant_id,
|
|
10
|
+
fieldName: approval.field_name,
|
|
11
|
+
proposedValue: approval.proposed_value,
|
|
12
|
+
requestedBy: approval.requested_by,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return approval;
|
|
16
|
+
}
|
|
17
|
+
async function review(approvalId, reviewInput) {
|
|
18
|
+
const approval = await store.reviewApproval(approvalId, reviewInput);
|
|
19
|
+
if (eventBus) {
|
|
20
|
+
await eventBus.emit('approval.completed', {
|
|
21
|
+
entityId: approval.entity_id,
|
|
22
|
+
tenantId: approval.tenant_id,
|
|
23
|
+
fieldName: approval.field_name,
|
|
24
|
+
proposedValue: approval.proposed_value,
|
|
25
|
+
approved: reviewInput.approved,
|
|
26
|
+
reviewedBy: reviewInput.reviewed_by,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return approval;
|
|
30
|
+
}
|
|
31
|
+
async function listPending(tenantId, filterOptions) {
|
|
32
|
+
return store.listPendingApprovals(tenantId, filterOptions);
|
|
33
|
+
}
|
|
34
|
+
return { requestApproval, review, listPending };
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=approval-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approval-manager.js","sourceRoot":"","sources":["../../src/approval/approval-manager.ts"],"names":[],"mappings":"AA2BA,0FAA0F;AAC1F,MAAM,UAAU,qBAAqB,CAAC,OAA+B;IACnE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAEpC,KAAK,UAAU,eAAe,CAAC,KAA0B;QACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAEnD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBACxC,QAAQ,EAAE,QAAQ,CAAC,SAAS;gBAC5B,QAAQ,EAAE,QAAQ,CAAC,SAAS;gBAC5B,SAAS,EAAE,QAAQ,CAAC,UAAU;gBAC9B,aAAa,EAAE,QAAQ,CAAC,cAAc;gBACtC,WAAW,EAAE,QAAQ,CAAC,YAAY;aACnC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,UAAU,MAAM,CACnB,UAAkB,EAClB,WAAgC;QAEhC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAErE,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBACxC,QAAQ,EAAE,QAAQ,CAAC,SAAS;gBAC5B,QAAQ,EAAE,QAAQ,CAAC,SAAS;gBAC5B,SAAS,EAAE,QAAQ,CAAC,UAAU;gBAC9B,aAAa,EAAE,QAAQ,CAAC,cAAc;gBACtC,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,UAAU,EAAE,WAAW,CAAC,WAAW;aACpC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,UAAU,WAAW,CACxB,QAAgB,EAChB,aAA0D;QAE1D,OAAO,KAAK,CAAC,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approval-manager.test.d.ts","sourceRoot":"","sources":["../../src/approval/approval-manager.test.ts"],"names":[],"mappings":""}
|