agent-nuvira 2.7.3 → 3.0.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/dist/agents/agents/writer-tool-calling.d.ts +14 -0
- package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
- package/dist/agents/agents/writer-tool-calling.js +20 -0
- package/dist/agents/agents/writer-tool-calling.js.map +1 -1
- package/dist/agents/agents/writer.d.ts.map +1 -1
- package/dist/agents/agents/writer.js +15 -4
- package/dist/agents/agents/writer.js.map +1 -1
- package/dist/agents/edit-module.d.ts +7 -0
- package/dist/agents/edit-module.d.ts.map +1 -1
- package/dist/agents/edit-module.js +21 -6
- package/dist/agents/edit-module.js.map +1 -1
- package/dist/agents/orchestrator.d.ts +40 -0
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +116 -27
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/agents/tool-calling-agent.d.ts +19 -0
- package/dist/agents/tool-calling-agent.d.ts.map +1 -1
- package/dist/agents/tool-calling-agent.js +42 -2
- package/dist/agents/tool-calling-agent.js.map +1 -1
- package/dist/cli/chat.d.ts +55 -1
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +239 -63
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts +6 -0
- package/dist/cli/cli-program.d.ts.map +1 -0
- package/dist/cli/cli-program.js +222 -0
- package/dist/cli/cli-program.js.map +1 -0
- package/dist/cli/edit.d.ts.map +1 -1
- package/dist/cli/edit.js +18 -3
- package/dist/cli/edit.js.map +1 -1
- package/dist/cli/execute.d.ts.map +1 -1
- package/dist/cli/execute.js +29 -5
- package/dist/cli/execute.js.map +1 -1
- package/dist/cli/failover-runner.d.ts +13 -0
- package/dist/cli/failover-runner.d.ts.map +1 -1
- package/dist/cli/failover-runner.js +11 -0
- package/dist/cli/failover-runner.js.map +1 -1
- package/dist/cli/gateway.d.ts +16 -0
- package/dist/cli/gateway.d.ts.map +1 -1
- package/dist/cli/gateway.js +108 -2
- package/dist/cli/gateway.js.map +1 -1
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +245 -12
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/plan.d.ts.map +1 -1
- package/dist/cli/plan.js +20 -6
- package/dist/cli/plan.js.map +1 -1
- package/dist/cli/process-control.d.ts +10 -0
- package/dist/cli/process-control.d.ts.map +1 -1
- package/dist/cli/process-control.js +73 -7
- package/dist/cli/process-control.js.map +1 -1
- package/dist/cli/router.d.ts +16 -5
- package/dist/cli/router.d.ts.map +1 -1
- package/dist/cli/router.js +31 -206
- package/dist/cli/router.js.map +1 -1
- package/dist/config/paths.d.ts +23 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +30 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/provider-env.d.ts +37 -0
- package/dist/config/provider-env.d.ts.map +1 -0
- package/dist/config/provider-env.js +86 -0
- package/dist/config/provider-env.js.map +1 -0
- package/dist/context/history.d.ts.map +1 -1
- package/dist/context/history.js +24 -8
- package/dist/context/history.js.map +1 -1
- package/dist/context/session-recall.d.ts +30 -0
- package/dist/context/session-recall.d.ts.map +1 -1
- package/dist/context/session-recall.js +61 -0
- package/dist/context/session-recall.js.map +1 -1
- package/dist/file.js +0 -1
- package/dist/file.js.map +1 -1
- package/dist/gateway/adapters.d.ts +10 -0
- package/dist/gateway/adapters.d.ts.map +1 -1
- package/dist/gateway/adapters.js +4 -1
- package/dist/gateway/adapters.js.map +1 -1
- package/dist/gateway/dedup.d.ts +105 -0
- package/dist/gateway/dedup.d.ts.map +1 -0
- package/dist/gateway/dedup.js +160 -0
- package/dist/gateway/dedup.js.map +1 -0
- package/dist/gateway/heartbeat.d.ts +99 -0
- package/dist/gateway/heartbeat.d.ts.map +1 -0
- package/dist/gateway/heartbeat.js +122 -0
- package/dist/gateway/heartbeat.js.map +1 -0
- package/dist/gateway/inbox.d.ts +14 -1
- package/dist/gateway/inbox.d.ts.map +1 -1
- package/dist/gateway/inbox.js.map +1 -1
- package/dist/gateway/platform-config.d.ts +5 -0
- package/dist/gateway/platform-config.d.ts.map +1 -1
- package/dist/gateway/platform-config.js +8 -13
- package/dist/gateway/platform-config.js.map +1 -1
- package/dist/gateway/registry.d.ts +47 -0
- package/dist/gateway/registry.d.ts.map +1 -1
- package/dist/gateway/registry.js +227 -21
- package/dist/gateway/registry.js.map +1 -1
- package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
- package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
- package/dist/gateway/whatsapp/baileys-bridge.js +64 -1
- package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
- package/dist/gateway/whatsapp/bridge.d.ts +4 -2
- package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
- package/dist/gateway/whatsapp/bridge.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/inference/factory.d.ts +16 -0
- package/dist/inference/factory.d.ts.map +1 -1
- package/dist/inference/factory.js +42 -0
- package/dist/inference/factory.js.map +1 -1
- package/dist/inference/gemini-adapter.d.ts.map +1 -1
- package/dist/inference/gemini-adapter.js +3 -0
- package/dist/inference/gemini-adapter.js.map +1 -1
- package/dist/inference/interface.d.ts +12 -0
- package/dist/inference/interface.d.ts.map +1 -1
- package/dist/inference/local-adapter.d.ts +2 -0
- package/dist/inference/local-adapter.d.ts.map +1 -1
- package/dist/inference/local-adapter.js +36 -5
- package/dist/inference/local-adapter.js.map +1 -1
- package/dist/inference/native-tools.d.ts +8 -0
- package/dist/inference/native-tools.d.ts.map +1 -1
- package/dist/inference/native-tools.js +14 -3
- package/dist/inference/native-tools.js.map +1 -1
- package/dist/inference/tool-call-utils.d.ts +66 -7
- package/dist/inference/tool-call-utils.d.ts.map +1 -1
- package/dist/inference/tool-call-utils.js +134 -13
- package/dist/inference/tool-call-utils.js.map +1 -1
- package/dist/learning/auto-router.d.ts.map +1 -1
- package/dist/learning/auto-router.js +90 -5
- package/dist/learning/auto-router.js.map +1 -1
- package/dist/learning/context-budget.d.ts +133 -0
- package/dist/learning/context-budget.d.ts.map +1 -0
- package/dist/learning/context-budget.js +196 -0
- package/dist/learning/context-budget.js.map +1 -0
- package/dist/learning/cost-tracker.d.ts.map +1 -1
- package/dist/learning/cost-tracker.js +20 -8
- package/dist/learning/cost-tracker.js.map +1 -1
- package/dist/learning/eval-framework.d.ts.map +1 -1
- package/dist/learning/eval-framework.js +6 -2
- package/dist/learning/eval-framework.js.map +1 -1
- package/dist/learning/failure-bookkeeping.d.ts +19 -0
- package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
- package/dist/learning/failure-bookkeeping.js +67 -2
- package/dist/learning/failure-bookkeeping.js.map +1 -1
- package/dist/learning/feedback.d.ts.map +1 -1
- package/dist/learning/feedback.js +19 -8
- package/dist/learning/feedback.js.map +1 -1
- package/dist/learning/model-harness.d.ts +76 -0
- package/dist/learning/model-harness.d.ts.map +1 -0
- package/dist/learning/model-harness.js +119 -0
- package/dist/learning/model-harness.js.map +1 -0
- package/dist/learning/model-selection.d.ts +15 -0
- package/dist/learning/model-selection.d.ts.map +1 -1
- package/dist/learning/model-selection.js +27 -1
- package/dist/learning/model-selection.js.map +1 -1
- package/dist/learning/provider-fallback.d.ts +12 -0
- package/dist/learning/provider-fallback.d.ts.map +1 -1
- package/dist/learning/provider-fallback.js +74 -0
- package/dist/learning/provider-fallback.js.map +1 -1
- package/dist/learning/provider-revival.d.ts +106 -0
- package/dist/learning/provider-revival.d.ts.map +1 -0
- package/dist/learning/provider-revival.js +154 -0
- package/dist/learning/provider-revival.js.map +1 -0
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +48 -3
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/nlu/conversation-gate.d.ts +37 -0
- package/dist/nlu/conversation-gate.d.ts.map +1 -1
- package/dist/nlu/conversation-gate.js +49 -0
- package/dist/nlu/conversation-gate.js.map +1 -1
- package/dist/nlu/schema.d.ts +2 -2
- package/dist/observability/dag-bridge.d.ts +69 -0
- package/dist/observability/dag-bridge.d.ts.map +1 -0
- package/dist/observability/dag-bridge.js +56 -0
- package/dist/observability/dag-bridge.js.map +1 -0
- package/dist/observability/event-bus.d.ts +5 -10
- package/dist/observability/event-bus.d.ts.map +1 -1
- package/dist/observability/event-bus.js +10 -42
- package/dist/observability/event-bus.js.map +1 -1
- package/dist/skills/execution-audit.d.ts.map +1 -1
- package/dist/skills/execution-audit.js +17 -5
- package/dist/skills/execution-audit.js.map +1 -1
- package/dist/skills/sandbox-executor.d.ts +12 -1
- package/dist/skills/sandbox-executor.d.ts.map +1 -1
- package/dist/skills/sandbox-executor.js +28 -6
- package/dist/skills/sandbox-executor.js.map +1 -1
- package/dist/skills/secret-capture.d.ts +45 -1
- package/dist/skills/secret-capture.d.ts.map +1 -1
- package/dist/skills/secret-capture.js +82 -19
- package/dist/skills/secret-capture.js.map +1 -1
- package/dist/skills/skill-env-inventory.d.ts +79 -0
- package/dist/skills/skill-env-inventory.d.ts.map +1 -0
- package/dist/skills/skill-env-inventory.js +167 -0
- package/dist/skills/skill-env-inventory.js.map +1 -0
- package/dist/skills/skill-executor.d.ts +2 -0
- package/dist/skills/skill-executor.d.ts.map +1 -1
- package/dist/skills/skill-executor.js +19 -24
- package/dist/skills/skill-executor.js.map +1 -1
- package/dist/tools/ask-user.d.ts +14 -1
- package/dist/tools/ask-user.d.ts.map +1 -1
- package/dist/tools/ask-user.js +25 -1
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/followup-utils.d.ts +64 -0
- package/dist/tools/followup-utils.d.ts.map +1 -0
- package/dist/tools/followup-utils.js +158 -0
- package/dist/tools/followup-utils.js.map +1 -0
- package/dist/tools/memory-tools.d.ts +35 -0
- package/dist/tools/memory-tools.d.ts.map +1 -1
- package/dist/tools/memory-tools.js +76 -0
- package/dist/tools/memory-tools.js.map +1 -1
- package/dist/tools/pipeline-tool.d.ts.map +1 -1
- package/dist/tools/pipeline-tool.js +8 -3
- package/dist/tools/pipeline-tool.js.map +1 -1
- package/dist/tools/registry.d.ts +25 -12
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +31 -6
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/skill-tool.d.ts.map +1 -1
- package/dist/tools/skill-tool.js +52 -5
- package/dist/tools/skill-tool.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +63 -1
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +305 -66
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/tools/toolsets.d.ts +19 -3
- package/dist/tools/toolsets.d.ts.map +1 -1
- package/dist/tools/toolsets.js +21 -5
- package/dist/tools/toolsets.js.map +1 -1
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/env.js +9 -13
- package/dist/utils/env.js.map +1 -1
- package/dist/web-dashboard/chat-console.d.ts +13 -1
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +16 -2
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/hub-data.d.ts +2 -0
- package/dist/web-dashboard/hub-data.d.ts.map +1 -1
- package/dist/web-dashboard/hub-data.js +4 -0
- package/dist/web-dashboard/hub-data.js.map +1 -1
- package/dist/web-dashboard/server.d.ts +6 -0
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +192 -3
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +31 -1
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/package.json +11 -1
- package/src/web-dashboard/public/assets/index-56yPnN_m.js +207 -0
- package/src/web-dashboard/public/assets/index-56yPnN_m.js.map +1 -0
- package/src/web-dashboard/public/assets/{index-C507EUWf.css → index-Cyd6tIew.css} +1 -1
- package/src/web-dashboard/public/index.html +2 -2
- package/dist/example.d.ts +0 -1
- package/dist/example.d.ts.map +0 -1
- package/dist/example.js +0 -3
- package/dist/example.js.map +0 -1
- package/dist/fresh.d.ts +0 -2
- package/dist/fresh.d.ts.map +0 -1
- package/dist/fresh.js +0 -2
- package/dist/fresh.js.map +0 -1
- package/dist/mcp/mcp-dashboard-oauth.d.ts +0 -94
- package/dist/mcp/mcp-dashboard-oauth.d.ts.map +0 -1
- package/dist/mcp/mcp-dashboard-oauth.js +0 -140
- package/dist/mcp/mcp-dashboard-oauth.js.map +0 -1
- package/dist/memory/background-sync.d.ts +0 -107
- package/dist/memory/background-sync.d.ts.map +0 -1
- package/dist/memory/background-sync.js +0 -242
- package/dist/memory/background-sync.js.map +0 -1
- package/dist/memory/cross-session.d.ts +0 -68
- package/dist/memory/cross-session.d.ts.map +0 -1
- package/dist/memory/cross-session.js +0 -153
- package/dist/memory/cross-session.js.map +0 -1
- package/dist/memory/drift-detector.d.ts +0 -76
- package/dist/memory/drift-detector.d.ts.map +0 -1
- package/dist/memory/drift-detector.js +0 -216
- package/dist/memory/drift-detector.js.map +0 -1
- package/dist/memory/enhanced-manager.d.ts +0 -105
- package/dist/memory/enhanced-manager.d.ts.map +0 -1
- package/dist/memory/enhanced-manager.js +0 -280
- package/dist/memory/enhanced-manager.js.map +0 -1
- package/dist/memory/session-extraction.d.ts +0 -93
- package/dist/memory/session-extraction.d.ts.map +0 -1
- package/dist/memory/session-extraction.js +0 -290
- package/dist/memory/session-extraction.js.map +0 -1
- package/dist/memory/sqlite-store.d.ts +0 -208
- package/dist/memory/sqlite-store.d.ts.map +0 -1
- package/dist/memory/sqlite-store.js +0 -556
- package/dist/memory/sqlite-store.js.map +0 -1
- package/dist/skills/daytona-executor.d.ts +0 -78
- package/dist/skills/daytona-executor.d.ts.map +0 -1
- package/dist/skills/daytona-executor.js +0 -256
- package/dist/skills/daytona-executor.js.map +0 -1
- package/dist/skills/modal-executor.d.ts +0 -81
- package/dist/skills/modal-executor.d.ts.map +0 -1
- package/dist/skills/modal-executor.js +0 -285
- package/dist/skills/modal-executor.js.map +0 -1
- package/dist/sync/inventory.d.ts +0 -1
- package/dist/sync/inventory.d.ts.map +0 -1
- package/dist/sync/inventory.js +0 -3
- package/dist/sync/inventory.js.map +0 -1
- package/dist/sync/validate.d.ts +0 -1
- package/dist/sync/validate.d.ts.map +0 -1
- package/dist/sync/validate.js +0 -3
- package/dist/sync/validate.js.map +0 -1
- package/dist/test.d.ts +0 -2
- package/dist/test.d.ts.map +0 -1
- package/dist/test.js +0 -3
- package/dist/test.js.map +0 -1
- package/dist/tools/browser-tool.d.ts +0 -206
- package/dist/tools/browser-tool.d.ts.map +0 -1
- package/dist/tools/browser-tool.js +0 -726
- package/dist/tools/browser-tool.js.map +0 -1
- package/dist/tools/delegate-tool.d.ts +0 -109
- package/dist/tools/delegate-tool.d.ts.map +0 -1
- package/dist/tools/delegate-tool.js +0 -185
- package/dist/tools/delegate-tool.js.map +0 -1
- package/dist/tools/delegation-state.d.ts +0 -87
- package/dist/tools/delegation-state.d.ts.map +0 -1
- package/dist/tools/delegation-state.js +0 -278
- package/dist/tools/delegation-state.js.map +0 -1
- package/dist/tools/desktop-ui.d.ts +0 -148
- package/dist/tools/desktop-ui.d.ts.map +0 -1
- package/dist/tools/desktop-ui.js +0 -486
- package/dist/tools/desktop-ui.js.map +0 -1
- package/dist/tools/image-video-tool.d.ts +0 -88
- package/dist/tools/image-video-tool.d.ts.map +0 -1
- package/dist/tools/image-video-tool.js +0 -276
- package/dist/tools/image-video-tool.js.map +0 -1
- package/dist/tools/kanban-cron-tools.d.ts +0 -92
- package/dist/tools/kanban-cron-tools.d.ts.map +0 -1
- package/dist/tools/kanban-cron-tools.js +0 -197
- package/dist/tools/kanban-cron-tools.js.map +0 -1
- package/dist/tools/messaging-tool.d.ts +0 -127
- package/dist/tools/messaging-tool.d.ts.map +0 -1
- package/dist/tools/messaging-tool.js +0 -314
- package/dist/tools/messaging-tool.js.map +0 -1
- package/dist/tools/modality/generic-caller.d.ts +0 -43
- package/dist/tools/modality/generic-caller.d.ts.map +0 -1
- package/dist/tools/modality/generic-caller.js +0 -254
- package/dist/tools/modality/generic-caller.js.map +0 -1
- package/dist/tools/modality/modality-catalog.d.ts +0 -134
- package/dist/tools/modality/modality-catalog.d.ts.map +0 -1
- package/dist/tools/modality/modality-catalog.js +0 -445
- package/dist/tools/modality/modality-catalog.js.map +0 -1
- package/dist/tools/modality/tool-router.d.ts +0 -81
- package/dist/tools/modality/tool-router.d.ts.map +0 -1
- package/dist/tools/modality/tool-router.js +0 -84
- package/dist/tools/modality/tool-router.js.map +0 -1
- package/dist/tools/security-tools.d.ts +0 -107
- package/dist/tools/security-tools.d.ts.map +0 -1
- package/dist/tools/security-tools.js +0 -264
- package/dist/tools/security-tools.js.map +0 -1
- package/dist/tools/ssh-tool.d.ts +0 -130
- package/dist/tools/ssh-tool.d.ts.map +0 -1
- package/dist/tools/ssh-tool.js +0 -328
- package/dist/tools/ssh-tool.js.map +0 -1
- package/dist/tools/tts-tool.d.ts +0 -91
- package/dist/tools/tts-tool.d.ts.map +0 -1
- package/dist/tools/tts-tool.js +0 -406
- package/dist/tools/tts-tool.js.map +0 -1
- package/dist/utils/shell-detection.d.ts +0 -124
- package/dist/utils/shell-detection.d.ts.map +0 -1
- package/dist/utils/shell-detection.js +0 -305
- package/dist/utils/shell-detection.js.map +0 -1
- package/dist/utils/windows-paths.d.ts +0 -185
- package/dist/utils/windows-paths.d.ts.map +0 -1
- package/dist/utils/windows-paths.js +0 -472
- package/dist/utils/windows-paths.js.map +0 -1
- package/src/web-dashboard/public/assets/index-C4frng1Q.js +0 -207
- package/src/web-dashboard/public/assets/index-C4frng1Q.js.map +0 -1
|
@@ -1,445 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ModalityCatalog — data-driven provider definitions for modality tools.
|
|
3
|
-
*
|
|
4
|
-
* This is the modality equivalent of `provider-catalog.ts` for LLMs.
|
|
5
|
-
* Instead of hardcoding providers in tool-router.ts, we define them as data
|
|
6
|
-
* objects that can be extended via config without code changes.
|
|
7
|
-
*
|
|
8
|
-
* Design principles:
|
|
9
|
-
* 1. Data over code — providers are data objects, not if/else blocks
|
|
10
|
-
* 2. User-configurable — add providers via config, no code changes
|
|
11
|
-
* 3. Generic API caller — uses requestBuilder + responseParser
|
|
12
|
-
* 4. Consistent scoring — same pattern as LLM routing
|
|
13
|
-
*
|
|
14
|
-
* Usage:
|
|
15
|
-
* const providers = getModalityProviders('image');
|
|
16
|
-
* const best = selectBestModalityProvider(providers, context);
|
|
17
|
-
* const result = await callModalityProvider(best, prompt, opts);
|
|
18
|
-
*/
|
|
19
|
-
import { logger } from '../../utils/logger.js';
|
|
20
|
-
import { envBuff } from '../../config/paths.js';
|
|
21
|
-
// ─── Built-in Providers ─────────────────────────────────────────────────────
|
|
22
|
-
/**
|
|
23
|
-
* Built-in image generation providers.
|
|
24
|
-
*/
|
|
25
|
-
const IMAGE_PROVIDERS = [
|
|
26
|
-
{
|
|
27
|
-
id: 'pollinations',
|
|
28
|
-
name: 'Pollinations.ai (Free)',
|
|
29
|
-
modality: 'image',
|
|
30
|
-
apiType: 'pollinations',
|
|
31
|
-
baseUrl: 'https://image.pollinations.ai/prompt',
|
|
32
|
-
costPerUnit: 0,
|
|
33
|
-
quality: 0.7,
|
|
34
|
-
speed: 0.5,
|
|
35
|
-
models: ['stable-diffusion'],
|
|
36
|
-
available: true, // Always available (no key needed)
|
|
37
|
-
timeoutMs: 30000,
|
|
38
|
-
requestBuilder: (prompt, opts) => ({
|
|
39
|
-
prompt,
|
|
40
|
-
width: opts.width ?? 1024,
|
|
41
|
-
height: opts.height ?? 1024,
|
|
42
|
-
}),
|
|
43
|
-
responseParser: (data) => ({
|
|
44
|
-
ok: true,
|
|
45
|
-
data: data.buffer,
|
|
46
|
-
durationMs: data.durationMs || 0,
|
|
47
|
-
}),
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
id: 'dalle',
|
|
51
|
-
name: 'DALL-E 3 (OpenAI)',
|
|
52
|
-
modality: 'image',
|
|
53
|
-
apiType: 'openai',
|
|
54
|
-
baseUrl: 'https://api.openai.com/v1',
|
|
55
|
-
envVar: 'OPENAI_API_KEY',
|
|
56
|
-
endpoint: '/images/generations',
|
|
57
|
-
costPerUnit: 0.04, // ~$0.04 per image
|
|
58
|
-
quality: 0.95,
|
|
59
|
-
speed: 0.6,
|
|
60
|
-
models: ['dall-e-3', 'dall-e-2'],
|
|
61
|
-
defaultModel: 'dall-e-3',
|
|
62
|
-
available: !!process.env.OPENAI_API_KEY,
|
|
63
|
-
timeoutMs: 60000,
|
|
64
|
-
requestBuilder: (prompt, opts) => ({
|
|
65
|
-
model: opts.model || 'dall-e-3',
|
|
66
|
-
prompt,
|
|
67
|
-
n: 1,
|
|
68
|
-
size: `${opts.width ?? 1024}x${opts.height ?? 1024}`,
|
|
69
|
-
}),
|
|
70
|
-
responseParser: (data) => ({
|
|
71
|
-
ok: true,
|
|
72
|
-
data: data.data?.[0]?.url,
|
|
73
|
-
durationMs: data.durationMs || 0,
|
|
74
|
-
}),
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
id: 'stability',
|
|
78
|
-
name: 'Stable Diffusion (Stability AI)',
|
|
79
|
-
modality: 'image',
|
|
80
|
-
apiType: 'rest',
|
|
81
|
-
baseUrl: 'https://api.stability.ai/v1',
|
|
82
|
-
envVar: 'STABILITY_API_KEY',
|
|
83
|
-
endpoint: '/generation/stable-diffusion-xl/text-to-image',
|
|
84
|
-
costPerUnit: 0.002, // ~$0.002 per generation
|
|
85
|
-
quality: 0.85,
|
|
86
|
-
speed: 0.7,
|
|
87
|
-
models: ['stable-diffusion-xl-1024-v1-0'],
|
|
88
|
-
defaultModel: 'stable-diffusion-xl-1024-v1-0',
|
|
89
|
-
available: !!process.env.STABILITY_API_KEY,
|
|
90
|
-
timeoutMs: 30000,
|
|
91
|
-
requestBuilder: (prompt, opts) => ({
|
|
92
|
-
text_prompts: [{ text: prompt }],
|
|
93
|
-
cfg_scale: 7,
|
|
94
|
-
height: opts.height ?? 1024,
|
|
95
|
-
width: opts.width ?? 1024,
|
|
96
|
-
}),
|
|
97
|
-
responseParser: (data) => ({
|
|
98
|
-
ok: true,
|
|
99
|
-
data: Buffer.from(data.artifacts?.[0]?.base64 || '', 'base64'),
|
|
100
|
-
durationMs: data.durationMs || 0,
|
|
101
|
-
}),
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
id: 'comfyui',
|
|
105
|
-
name: 'Local ComfyUI / Stable Diffusion',
|
|
106
|
-
modality: 'image',
|
|
107
|
-
apiType: 'local',
|
|
108
|
-
baseUrl: envBuff('IMAGE_API_URL') || 'http://localhost:7860',
|
|
109
|
-
costPerUnit: 0,
|
|
110
|
-
quality: 0.9,
|
|
111
|
-
speed: 0.8,
|
|
112
|
-
models: ['local'],
|
|
113
|
-
available: !!envBuff('IMAGE_API_URL'),
|
|
114
|
-
timeoutMs: 30000,
|
|
115
|
-
requestBuilder: (prompt, opts) => ({
|
|
116
|
-
prompt,
|
|
117
|
-
width: opts.width ?? 1024,
|
|
118
|
-
height: opts.height ?? 1024,
|
|
119
|
-
}),
|
|
120
|
-
responseParser: (data) => ({
|
|
121
|
-
ok: true,
|
|
122
|
-
data: data.buffer,
|
|
123
|
-
durationMs: data.durationMs || 0,
|
|
124
|
-
}),
|
|
125
|
-
},
|
|
126
|
-
];
|
|
127
|
-
/**
|
|
128
|
-
* Built-in TTS providers.
|
|
129
|
-
*/
|
|
130
|
-
const TTS_PROVIDERS = [
|
|
131
|
-
{
|
|
132
|
-
id: 'openai-tts',
|
|
133
|
-
name: 'OpenAI TTS',
|
|
134
|
-
modality: 'tts',
|
|
135
|
-
apiType: 'openai',
|
|
136
|
-
baseUrl: 'https://api.openai.com/v1',
|
|
137
|
-
envVar: 'OPENAI_API_KEY',
|
|
138
|
-
endpoint: '/audio/speech',
|
|
139
|
-
costPerUnit: 0.000015, // ~$15 per 1M chars
|
|
140
|
-
quality: 0.9,
|
|
141
|
-
speed: 0.8,
|
|
142
|
-
models: ['tts-1', 'tts-1-hd'],
|
|
143
|
-
defaultModel: 'tts-1',
|
|
144
|
-
available: !!process.env.OPENAI_API_KEY,
|
|
145
|
-
timeoutMs: 30000,
|
|
146
|
-
requestBuilder: (prompt, opts) => ({
|
|
147
|
-
model: opts.model || 'tts-1',
|
|
148
|
-
input: prompt,
|
|
149
|
-
voice: opts.voice || 'alloy',
|
|
150
|
-
}),
|
|
151
|
-
responseParser: (data) => ({
|
|
152
|
-
ok: true,
|
|
153
|
-
data: data.buffer,
|
|
154
|
-
durationMs: data.durationMs || 0,
|
|
155
|
-
}),
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
id: 'elevenlabs',
|
|
159
|
-
name: 'ElevenLabs',
|
|
160
|
-
modality: 'tts',
|
|
161
|
-
apiType: 'rest',
|
|
162
|
-
baseUrl: 'https://api.elevenlabs.io/v1',
|
|
163
|
-
envVar: 'ELEVENLABS_API_KEY',
|
|
164
|
-
endpoint: '/text-to-speech/21m00Tcm4TlvDq8ikWAM',
|
|
165
|
-
costPerUnit: 0.000030, // ~$30 per 1M chars
|
|
166
|
-
quality: 0.95,
|
|
167
|
-
speed: 0.7,
|
|
168
|
-
models: ['eleven_monolingual_v1', 'eleven_multilingual_v1'],
|
|
169
|
-
defaultModel: 'eleven_monolingual_v1',
|
|
170
|
-
available: !!process.env.ELEVENLABS_API_KEY,
|
|
171
|
-
timeoutMs: 30000,
|
|
172
|
-
requestBuilder: (prompt, opts) => ({
|
|
173
|
-
text: prompt,
|
|
174
|
-
model_id: opts.model || 'eleven_monolingual_v1',
|
|
175
|
-
}),
|
|
176
|
-
responseParser: (data) => ({
|
|
177
|
-
ok: true,
|
|
178
|
-
data: data.buffer,
|
|
179
|
-
durationMs: data.durationMs || 0,
|
|
180
|
-
}),
|
|
181
|
-
},
|
|
182
|
-
];
|
|
183
|
-
/**
|
|
184
|
-
* Built-in video generation providers.
|
|
185
|
-
*/
|
|
186
|
-
const VIDEO_PROVIDERS = [
|
|
187
|
-
{
|
|
188
|
-
id: 'fal',
|
|
189
|
-
name: 'FAL AI',
|
|
190
|
-
modality: 'video',
|
|
191
|
-
apiType: 'rest',
|
|
192
|
-
baseUrl: 'https://fal.run',
|
|
193
|
-
envVar: 'FAL_KEY',
|
|
194
|
-
endpoint: '/fal-ai/flux/video',
|
|
195
|
-
costPerUnit: 0.05, // ~$0.05 per video
|
|
196
|
-
quality: 0.85,
|
|
197
|
-
speed: 0.6,
|
|
198
|
-
models: ['fal-ai/flux/video'],
|
|
199
|
-
defaultModel: 'fal-ai/flux/video',
|
|
200
|
-
available: !!process.env.FAL_KEY,
|
|
201
|
-
timeoutMs: 120000,
|
|
202
|
-
requestBuilder: (prompt, opts) => ({
|
|
203
|
-
prompt,
|
|
204
|
-
duration: opts.duration ?? 4,
|
|
205
|
-
aspect_ratio: '16:9',
|
|
206
|
-
}),
|
|
207
|
-
responseParser: (data) => ({
|
|
208
|
-
ok: true,
|
|
209
|
-
data: data.video_url,
|
|
210
|
-
durationMs: data.durationMs || 0,
|
|
211
|
-
}),
|
|
212
|
-
},
|
|
213
|
-
{
|
|
214
|
-
id: 'runway',
|
|
215
|
-
name: 'Runway ML',
|
|
216
|
-
modality: 'video',
|
|
217
|
-
apiType: 'rest',
|
|
218
|
-
baseUrl: 'https://api.runwayml.com/v1',
|
|
219
|
-
envVar: 'RUNWAY_API_KEY',
|
|
220
|
-
endpoint: '/generation',
|
|
221
|
-
costPerUnit: 0.10, // ~$0.10 per video
|
|
222
|
-
quality: 0.95,
|
|
223
|
-
speed: 0.5,
|
|
224
|
-
models: ['gen-3'],
|
|
225
|
-
defaultModel: 'gen-3',
|
|
226
|
-
available: !!process.env.RUNWAY_API_KEY,
|
|
227
|
-
timeoutMs: 180000,
|
|
228
|
-
requestBuilder: (prompt, opts) => ({
|
|
229
|
-
prompt,
|
|
230
|
-
duration: opts.duration ?? 4,
|
|
231
|
-
resolution: opts.resolution ?? '720p',
|
|
232
|
-
}),
|
|
233
|
-
responseParser: (data) => ({
|
|
234
|
-
ok: true,
|
|
235
|
-
data: data.video_url,
|
|
236
|
-
durationMs: data.durationMs || 0,
|
|
237
|
-
}),
|
|
238
|
-
},
|
|
239
|
-
];
|
|
240
|
-
/**
|
|
241
|
-
* Built-in transcription providers.
|
|
242
|
-
*/
|
|
243
|
-
const TRANSCRIPTION_PROVIDERS = [
|
|
244
|
-
{
|
|
245
|
-
id: 'openai-whisper',
|
|
246
|
-
name: 'OpenAI Whisper API',
|
|
247
|
-
modality: 'transcription',
|
|
248
|
-
apiType: 'openai',
|
|
249
|
-
baseUrl: 'https://api.openai.com/v1',
|
|
250
|
-
envVar: 'OPENAI_API_KEY',
|
|
251
|
-
endpoint: '/audio/transcriptions',
|
|
252
|
-
costPerUnit: 0.006, // ~$0.006 per minute
|
|
253
|
-
quality: 0.95,
|
|
254
|
-
speed: 0.9,
|
|
255
|
-
models: ['whisper-1'],
|
|
256
|
-
defaultModel: 'whisper-1',
|
|
257
|
-
available: !!process.env.OPENAI_API_KEY,
|
|
258
|
-
timeoutMs: 60000,
|
|
259
|
-
requestBuilder: (prompt, opts) => ({
|
|
260
|
-
model: opts.model || 'whisper-1',
|
|
261
|
-
file: prompt, // Will be handled specially for file uploads
|
|
262
|
-
language: opts.language,
|
|
263
|
-
}),
|
|
264
|
-
responseParser: (data) => ({
|
|
265
|
-
ok: true,
|
|
266
|
-
text: data.text,
|
|
267
|
-
durationMs: data.durationMs || 0,
|
|
268
|
-
}),
|
|
269
|
-
},
|
|
270
|
-
];
|
|
271
|
-
// ─── Provider Registry ──────────────────────────────────────────────────────
|
|
272
|
-
/** All built-in providers by modality. */
|
|
273
|
-
const PROVIDERS_BY_MODALITY = {
|
|
274
|
-
image: IMAGE_PROVIDERS,
|
|
275
|
-
tts: TTS_PROVIDERS,
|
|
276
|
-
video: VIDEO_PROVIDERS,
|
|
277
|
-
transcription: TRANSCRIPTION_PROVIDERS,
|
|
278
|
-
};
|
|
279
|
-
/** User-configured providers (from config). */
|
|
280
|
-
const userConfiguredProviders = [];
|
|
281
|
-
/**
|
|
282
|
-
* Get all providers for a modality (built-in + user-configured).
|
|
283
|
-
*/
|
|
284
|
-
export function getModalityProviders(modality) {
|
|
285
|
-
const builtIn = PROVIDERS_BY_MODALITY[modality] || [];
|
|
286
|
-
const configured = userConfiguredProviders.filter(p => p.modality === modality);
|
|
287
|
-
return [...builtIn, ...configured];
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* Get all available providers for a modality (has API key or is keyless).
|
|
291
|
-
*/
|
|
292
|
-
export function getAvailableModalityProviders(modality) {
|
|
293
|
-
return getModalityProviders(modality).filter(p => p.available);
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Get a specific provider by ID.
|
|
297
|
-
*/
|
|
298
|
-
export function getModalityProvider(id) {
|
|
299
|
-
return getModalityProviders('image') // Check all modalities
|
|
300
|
-
.concat(getModalityProviders('tts'))
|
|
301
|
-
.concat(getModalityProviders('video'))
|
|
302
|
-
.concat(getModalityProviders('transcription'))
|
|
303
|
-
.find(p => p.id === id);
|
|
304
|
-
}
|
|
305
|
-
// ─── Provider Configuration ─────────────────────────────────────────────────
|
|
306
|
-
/**
|
|
307
|
-
* Add a user-configured provider.
|
|
308
|
-
* Called when user sets config like:
|
|
309
|
-
* nuvira config set modality.image.replicate.apiKey=xxxxx
|
|
310
|
-
*/
|
|
311
|
-
export function addModalityProvider(provider) {
|
|
312
|
-
// Check if already exists
|
|
313
|
-
const existing = userConfiguredProviders.findIndex(p => p.id === provider.id);
|
|
314
|
-
if (existing >= 0) {
|
|
315
|
-
userConfiguredProviders[existing] = provider;
|
|
316
|
-
}
|
|
317
|
-
else {
|
|
318
|
-
userConfiguredProviders.push(provider);
|
|
319
|
-
}
|
|
320
|
-
logger.info(`[modality-catalog] Added provider: ${provider.id} (${provider.name})`);
|
|
321
|
-
}
|
|
322
|
-
/**
|
|
323
|
-
* Remove a user-configured provider.
|
|
324
|
-
*/
|
|
325
|
-
export function removeModalityProvider(id) {
|
|
326
|
-
const index = userConfiguredProviders.findIndex(p => p.id === id);
|
|
327
|
-
if (index >= 0) {
|
|
328
|
-
userConfiguredProviders.splice(index, 1);
|
|
329
|
-
logger.info(`[modality-catalog] Removed provider: ${id}`);
|
|
330
|
-
return true;
|
|
331
|
-
}
|
|
332
|
-
return false;
|
|
333
|
-
}
|
|
334
|
-
/**
|
|
335
|
-
* Load user-configured providers from config.
|
|
336
|
-
*/
|
|
337
|
-
export function loadUserConfiguredProviders(config) {
|
|
338
|
-
const modalityConfig = config.modality;
|
|
339
|
-
if (!modalityConfig)
|
|
340
|
-
return;
|
|
341
|
-
for (const [modality, providers] of Object.entries(modalityConfig)) {
|
|
342
|
-
if (!['image', 'tts', 'video', 'transcription'].includes(modality))
|
|
343
|
-
continue;
|
|
344
|
-
if (typeof providers !== 'object' || providers === null)
|
|
345
|
-
continue;
|
|
346
|
-
for (const [providerId, providerConfig] of Object.entries(providers)) {
|
|
347
|
-
if (typeof providerConfig !== 'object' || providerConfig === null)
|
|
348
|
-
continue;
|
|
349
|
-
const cfg = providerConfig;
|
|
350
|
-
// Build provider from config
|
|
351
|
-
const provider = {
|
|
352
|
-
id: providerId,
|
|
353
|
-
name: cfg.name || providerId,
|
|
354
|
-
modality: modality,
|
|
355
|
-
apiType: cfg.apiType || 'rest',
|
|
356
|
-
baseUrl: cfg.baseUrl || '',
|
|
357
|
-
envVar: cfg.envVar,
|
|
358
|
-
endpoint: cfg.endpoint,
|
|
359
|
-
costPerUnit: cfg.costPerUnit || 0,
|
|
360
|
-
quality: cfg.quality || 0.7,
|
|
361
|
-
speed: cfg.speed || 0.7,
|
|
362
|
-
models: Array.isArray(cfg.models) ? cfg.models : [],
|
|
363
|
-
defaultModel: cfg.defaultModel,
|
|
364
|
-
available: !!(cfg.apiKey || (cfg.envVar && typeof cfg.envVar === 'string' && process.env[cfg.envVar])),
|
|
365
|
-
timeoutMs: cfg.timeoutMs || 30000,
|
|
366
|
-
requestBuilder: (prompt, opts) => ({
|
|
367
|
-
prompt,
|
|
368
|
-
model: opts.model || cfg.defaultModel,
|
|
369
|
-
...opts,
|
|
370
|
-
}),
|
|
371
|
-
responseParser: (data) => ({
|
|
372
|
-
ok: true,
|
|
373
|
-
data: data.data || data.url || data.text,
|
|
374
|
-
durationMs: data.durationMs || 0,
|
|
375
|
-
}),
|
|
376
|
-
};
|
|
377
|
-
addModalityProvider(provider);
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
// ─── Provider Scoring ───────────────────────────────────────────────────────
|
|
382
|
-
/**
|
|
383
|
-
* Score a modality provider for routing.
|
|
384
|
-
*/
|
|
385
|
-
export function scoreModalityProvider(provider, context = {}) {
|
|
386
|
-
const maxCost = context.maxCost || 0.10; // Default max cost
|
|
387
|
-
// Cost score: lower cost = higher score
|
|
388
|
-
const costScore = Math.max(0, 1 - (provider.costPerUnit / maxCost));
|
|
389
|
-
// Quality score: direct mapping
|
|
390
|
-
const qualityScore = provider.quality;
|
|
391
|
-
// Speed score: direct mapping
|
|
392
|
-
const speedScore = provider.speed;
|
|
393
|
-
// Availability score: available = 1, unavailable = 0
|
|
394
|
-
const availabilityScore = provider.available ? 1 : 0;
|
|
395
|
-
// Weighted combination
|
|
396
|
-
const weights = {
|
|
397
|
-
cost: context.priorityQuality ? 0.20 : 0.35,
|
|
398
|
-
quality: context.priorityQuality ? 0.45 : 0.30,
|
|
399
|
-
speed: context.prioritySpeed ? 0.35 : 0.20,
|
|
400
|
-
availability: 0.15,
|
|
401
|
-
};
|
|
402
|
-
return (costScore * weights.cost +
|
|
403
|
-
qualityScore * weights.quality +
|
|
404
|
-
speedScore * weights.speed +
|
|
405
|
-
availabilityScore * weights.availability);
|
|
406
|
-
}
|
|
407
|
-
/**
|
|
408
|
-
* Select the best modality provider for a task.
|
|
409
|
-
*/
|
|
410
|
-
export function selectBestModalityProvider(modality, context = {}) {
|
|
411
|
-
const providers = getAvailableModalityProviders(modality);
|
|
412
|
-
if (providers.length === 0)
|
|
413
|
-
return null;
|
|
414
|
-
const scored = providers.map(p => ({
|
|
415
|
-
provider: p,
|
|
416
|
-
score: scoreModalityProvider(p, context),
|
|
417
|
-
}));
|
|
418
|
-
scored.sort((a, b) => b.score - a.score);
|
|
419
|
-
return scored[0].provider;
|
|
420
|
-
}
|
|
421
|
-
// ─── Status ─────────────────────────────────────────────────────────────────
|
|
422
|
-
/**
|
|
423
|
-
* Get status of all modality providers (for dashboard display).
|
|
424
|
-
*/
|
|
425
|
-
export function getModalityProviderStatus() {
|
|
426
|
-
const status = {
|
|
427
|
-
image: [],
|
|
428
|
-
tts: [],
|
|
429
|
-
video: [],
|
|
430
|
-
transcription: [],
|
|
431
|
-
};
|
|
432
|
-
for (const modality of ['image', 'tts', 'video', 'transcription']) {
|
|
433
|
-
const providers = getModalityProviders(modality);
|
|
434
|
-
status[modality] = providers.map(p => ({
|
|
435
|
-
id: p.id,
|
|
436
|
-
name: p.name,
|
|
437
|
-
available: p.available,
|
|
438
|
-
costPerUnit: p.costPerUnit,
|
|
439
|
-
quality: p.quality,
|
|
440
|
-
speed: p.speed,
|
|
441
|
-
}));
|
|
442
|
-
}
|
|
443
|
-
return status;
|
|
444
|
-
}
|
|
445
|
-
//# sourceMappingURL=modality-catalog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modality-catalog.js","sourceRoot":"","sources":["../../../src/tools/modality/modality-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tool-Router — Intelligent routing for modality tools (image/audio/video).
|
|
3
|
-
*
|
|
4
|
-
* This is the adaptive version that uses:
|
|
5
|
-
* 1. ModalityCatalog — data-driven provider definitions
|
|
6
|
-
* 2. GenericCaller — handles API calls with provider-specific parsers
|
|
7
|
-
* 3. Consistent scoring — same pattern as LLM routing
|
|
8
|
-
*
|
|
9
|
-
* Users can add new providers via config:
|
|
10
|
-
* nuvira config set modality.image.replicate.apiKey=r8_xxxxx
|
|
11
|
-
* nuvira config set modality.image.replicate.baseUrl=https://api.replicate.com/v1
|
|
12
|
-
*
|
|
13
|
-
* No code changes required — just config.
|
|
14
|
-
*
|
|
15
|
-
* Usage:
|
|
16
|
-
* const result = await routeImageGeneration('a cat', { width: 1024, height: 1024 });
|
|
17
|
-
* const result = await routeTTS('Hello world');
|
|
18
|
-
* const result = await routeVideoGeneration('A cat walking');
|
|
19
|
-
*/
|
|
20
|
-
import { type ModalityType, type ModalityProvider, type ModalityOptions, type ModalityResponse } from './modality-catalog.js';
|
|
21
|
-
export { getModalityProviderStatus } from './modality-catalog.js';
|
|
22
|
-
/**
|
|
23
|
-
* Initialize the tool router with user config.
|
|
24
|
-
* Call this once at startup to load user-configured providers.
|
|
25
|
-
*/
|
|
26
|
-
export declare function initToolRouter(config: Record<string, unknown>): void;
|
|
27
|
-
export interface ImageGenRouteOptions extends ModalityOptions {
|
|
28
|
-
width?: number;
|
|
29
|
-
height?: number;
|
|
30
|
-
cwd?: string;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Route image generation to the best available backend with failover.
|
|
34
|
-
*/
|
|
35
|
-
export declare function routeImageGeneration(prompt: string, opts?: ImageGenRouteOptions, config?: Record<string, unknown>): Promise<ModalityResponse & {
|
|
36
|
-
backend: string;
|
|
37
|
-
}>;
|
|
38
|
-
/**
|
|
39
|
-
* Route TTS to the best available backend with failover.
|
|
40
|
-
*/
|
|
41
|
-
export declare function routeTTS(text: string, opts?: {
|
|
42
|
-
voice?: string;
|
|
43
|
-
model?: string;
|
|
44
|
-
cwd?: string;
|
|
45
|
-
}, config?: Record<string, unknown>): Promise<ModalityResponse & {
|
|
46
|
-
backend: string;
|
|
47
|
-
}>;
|
|
48
|
-
/**
|
|
49
|
-
* Route video generation to the best available backend with failover.
|
|
50
|
-
*/
|
|
51
|
-
export declare function routeVideoGeneration(prompt: string, opts?: {
|
|
52
|
-
duration?: number;
|
|
53
|
-
resolution?: string;
|
|
54
|
-
cwd?: string;
|
|
55
|
-
}, config?: Record<string, unknown>): Promise<ModalityResponse & {
|
|
56
|
-
backend: string;
|
|
57
|
-
}>;
|
|
58
|
-
/**
|
|
59
|
-
* Route transcription to the best available backend with failover.
|
|
60
|
-
*/
|
|
61
|
-
export declare function routeTranscription(audioPath: string, opts?: {
|
|
62
|
-
language?: string;
|
|
63
|
-
cwd?: string;
|
|
64
|
-
}, config?: Record<string, unknown>): Promise<ModalityResponse & {
|
|
65
|
-
text?: string;
|
|
66
|
-
backend: string;
|
|
67
|
-
}>;
|
|
68
|
-
/**
|
|
69
|
-
* Add a custom provider at runtime.
|
|
70
|
-
* Useful for testing or dynamic provider registration.
|
|
71
|
-
*/
|
|
72
|
-
export declare function addCustomProvider(provider: ModalityProvider): void;
|
|
73
|
-
/**
|
|
74
|
-
* Get all providers for a modality (for display in dashboard).
|
|
75
|
-
*/
|
|
76
|
-
export declare function getAllProviders(modality: ModalityType): ModalityProvider[];
|
|
77
|
-
/**
|
|
78
|
-
* Get available providers for a modality.
|
|
79
|
-
*/
|
|
80
|
-
export declare function getAvailableProviders(modality: ModalityType): ModalityProvider[];
|
|
81
|
-
//# sourceMappingURL=tool-router.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-router.d.ts","sourceRoot":"","sources":["../../../src/tools/modality/tool-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAMtB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAIlE;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEpE;AAID,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,oBAAyB,EAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAGjD;AAID;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,EAC3D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAGjD;AAID;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,EACnE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAGjD;AAID;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,EAC9C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,gBAAgB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAGhE;AAID;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAGlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,gBAAgB,EAAE,CAE1E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,GAAG,gBAAgB,EAAE,CAEhF"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tool-Router — Intelligent routing for modality tools (image/audio/video).
|
|
3
|
-
*
|
|
4
|
-
* This is the adaptive version that uses:
|
|
5
|
-
* 1. ModalityCatalog — data-driven provider definitions
|
|
6
|
-
* 2. GenericCaller — handles API calls with provider-specific parsers
|
|
7
|
-
* 3. Consistent scoring — same pattern as LLM routing
|
|
8
|
-
*
|
|
9
|
-
* Users can add new providers via config:
|
|
10
|
-
* nuvira config set modality.image.replicate.apiKey=r8_xxxxx
|
|
11
|
-
* nuvira config set modality.image.replicate.baseUrl=https://api.replicate.com/v1
|
|
12
|
-
*
|
|
13
|
-
* No code changes required — just config.
|
|
14
|
-
*
|
|
15
|
-
* Usage:
|
|
16
|
-
* const result = await routeImageGeneration('a cat', { width: 1024, height: 1024 });
|
|
17
|
-
* const result = await routeTTS('Hello world');
|
|
18
|
-
* const result = await routeVideoGeneration('A cat walking');
|
|
19
|
-
*/
|
|
20
|
-
import { getModalityProviders, getAvailableModalityProviders, loadUserConfiguredProviders, } from './modality-catalog.js';
|
|
21
|
-
import { callModalityWithFailover } from './generic-caller.js';
|
|
22
|
-
// ─── Re-exports ─────────────────────────────────────────────────────────────
|
|
23
|
-
export { getModalityProviderStatus } from './modality-catalog.js';
|
|
24
|
-
// ─── Configuration ──────────────────────────────────────────────────────────
|
|
25
|
-
/**
|
|
26
|
-
* Initialize the tool router with user config.
|
|
27
|
-
* Call this once at startup to load user-configured providers.
|
|
28
|
-
*/
|
|
29
|
-
export function initToolRouter(config) {
|
|
30
|
-
loadUserConfiguredProviders(config);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Route image generation to the best available backend with failover.
|
|
34
|
-
*/
|
|
35
|
-
export async function routeImageGeneration(prompt, opts = {}, config) {
|
|
36
|
-
const result = await callModalityWithFailover('image', prompt, opts, config);
|
|
37
|
-
return { ...result, backend: result.provider };
|
|
38
|
-
}
|
|
39
|
-
// ─── TTS ────────────────────────────────────────────────────────────────────
|
|
40
|
-
/**
|
|
41
|
-
* Route TTS to the best available backend with failover.
|
|
42
|
-
*/
|
|
43
|
-
export async function routeTTS(text, opts = {}, config) {
|
|
44
|
-
const result = await callModalityWithFailover('tts', text, opts, config);
|
|
45
|
-
return { ...result, backend: result.provider };
|
|
46
|
-
}
|
|
47
|
-
// ─── Video Generation ──────────────────────────────────────────────────────
|
|
48
|
-
/**
|
|
49
|
-
* Route video generation to the best available backend with failover.
|
|
50
|
-
*/
|
|
51
|
-
export async function routeVideoGeneration(prompt, opts = {}, config) {
|
|
52
|
-
const result = await callModalityWithFailover('video', prompt, opts, config);
|
|
53
|
-
return { ...result, backend: result.provider };
|
|
54
|
-
}
|
|
55
|
-
// ─── Transcription ──────────────────────────────────────────────────────────
|
|
56
|
-
/**
|
|
57
|
-
* Route transcription to the best available backend with failover.
|
|
58
|
-
*/
|
|
59
|
-
export async function routeTranscription(audioPath, opts = {}, config) {
|
|
60
|
-
const result = await callModalityWithFailover('transcription', audioPath, opts, config);
|
|
61
|
-
return { ...result, backend: result.provider };
|
|
62
|
-
}
|
|
63
|
-
// ─── Provider Management ────────────────────────────────────────────────────
|
|
64
|
-
/**
|
|
65
|
-
* Add a custom provider at runtime.
|
|
66
|
-
* Useful for testing or dynamic provider registration.
|
|
67
|
-
*/
|
|
68
|
-
export function addCustomProvider(provider) {
|
|
69
|
-
const { addModalityProvider } = require('./modality-catalog.js');
|
|
70
|
-
addModalityProvider(provider);
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Get all providers for a modality (for display in dashboard).
|
|
74
|
-
*/
|
|
75
|
-
export function getAllProviders(modality) {
|
|
76
|
-
return getModalityProviders(modality);
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Get available providers for a modality.
|
|
80
|
-
*/
|
|
81
|
-
export function getAvailableProviders(modality) {
|
|
82
|
-
return getAvailableModalityProviders(modality);
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=tool-router.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-router.js","sourceRoot":"","sources":["../../../src/tools/modality/tool-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAKL,oBAAoB,EACpB,6BAA6B,EAE7B,2BAA2B,GAE5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAwB,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAErF,+EAA+E;AAE/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAA+B;IAC5D,2BAA2B,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAUD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,OAA6B,EAAE,EAC/B,MAAgC;IAEhC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;AACjD,CAAC;AAED,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAY,EACZ,OAAyD,EAAE,EAC3D,MAAgC;IAEhC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;AACjD,CAAC;AAED,8EAA8E;AAE9E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,OAAiE,EAAE,EACnE,MAAgC;IAEhC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;AACjD,CAAC;AAED,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAiB,EACjB,OAA4C,EAAE,EAC9C,MAAgC;IAEhC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACxF,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;AACjD,CAAC;AAED,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA0B;IAC1D,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACjE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAsB;IACpD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAsB;IAC1D,OAAO,6BAA6B,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC"}
|