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.
Files changed (366) hide show
  1. package/dist/agents/agents/writer-tool-calling.d.ts +14 -0
  2. package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
  3. package/dist/agents/agents/writer-tool-calling.js +20 -0
  4. package/dist/agents/agents/writer-tool-calling.js.map +1 -1
  5. package/dist/agents/agents/writer.d.ts.map +1 -1
  6. package/dist/agents/agents/writer.js +15 -4
  7. package/dist/agents/agents/writer.js.map +1 -1
  8. package/dist/agents/edit-module.d.ts +7 -0
  9. package/dist/agents/edit-module.d.ts.map +1 -1
  10. package/dist/agents/edit-module.js +21 -6
  11. package/dist/agents/edit-module.js.map +1 -1
  12. package/dist/agents/orchestrator.d.ts +40 -0
  13. package/dist/agents/orchestrator.d.ts.map +1 -1
  14. package/dist/agents/orchestrator.js +116 -27
  15. package/dist/agents/orchestrator.js.map +1 -1
  16. package/dist/agents/tool-calling-agent.d.ts +19 -0
  17. package/dist/agents/tool-calling-agent.d.ts.map +1 -1
  18. package/dist/agents/tool-calling-agent.js +42 -2
  19. package/dist/agents/tool-calling-agent.js.map +1 -1
  20. package/dist/cli/chat.d.ts +55 -1
  21. package/dist/cli/chat.d.ts.map +1 -1
  22. package/dist/cli/chat.js +239 -63
  23. package/dist/cli/chat.js.map +1 -1
  24. package/dist/cli/cli-program.d.ts +6 -0
  25. package/dist/cli/cli-program.d.ts.map +1 -0
  26. package/dist/cli/cli-program.js +222 -0
  27. package/dist/cli/cli-program.js.map +1 -0
  28. package/dist/cli/edit.d.ts.map +1 -1
  29. package/dist/cli/edit.js +18 -3
  30. package/dist/cli/edit.js.map +1 -1
  31. package/dist/cli/execute.d.ts.map +1 -1
  32. package/dist/cli/execute.js +29 -5
  33. package/dist/cli/execute.js.map +1 -1
  34. package/dist/cli/failover-runner.d.ts +13 -0
  35. package/dist/cli/failover-runner.d.ts.map +1 -1
  36. package/dist/cli/failover-runner.js +11 -0
  37. package/dist/cli/failover-runner.js.map +1 -1
  38. package/dist/cli/gateway.d.ts +16 -0
  39. package/dist/cli/gateway.d.ts.map +1 -1
  40. package/dist/cli/gateway.js +108 -2
  41. package/dist/cli/gateway.js.map +1 -1
  42. package/dist/cli/loop-executor.d.ts.map +1 -1
  43. package/dist/cli/loop-executor.js +245 -12
  44. package/dist/cli/loop-executor.js.map +1 -1
  45. package/dist/cli/plan.d.ts.map +1 -1
  46. package/dist/cli/plan.js +20 -6
  47. package/dist/cli/plan.js.map +1 -1
  48. package/dist/cli/process-control.d.ts +10 -0
  49. package/dist/cli/process-control.d.ts.map +1 -1
  50. package/dist/cli/process-control.js +73 -7
  51. package/dist/cli/process-control.js.map +1 -1
  52. package/dist/cli/router.d.ts +16 -5
  53. package/dist/cli/router.d.ts.map +1 -1
  54. package/dist/cli/router.js +31 -206
  55. package/dist/cli/router.js.map +1 -1
  56. package/dist/config/paths.d.ts +23 -0
  57. package/dist/config/paths.d.ts.map +1 -1
  58. package/dist/config/paths.js +30 -0
  59. package/dist/config/paths.js.map +1 -1
  60. package/dist/config/provider-env.d.ts +37 -0
  61. package/dist/config/provider-env.d.ts.map +1 -0
  62. package/dist/config/provider-env.js +86 -0
  63. package/dist/config/provider-env.js.map +1 -0
  64. package/dist/context/history.d.ts.map +1 -1
  65. package/dist/context/history.js +24 -8
  66. package/dist/context/history.js.map +1 -1
  67. package/dist/context/session-recall.d.ts +30 -0
  68. package/dist/context/session-recall.d.ts.map +1 -1
  69. package/dist/context/session-recall.js +61 -0
  70. package/dist/context/session-recall.js.map +1 -1
  71. package/dist/file.js +0 -1
  72. package/dist/file.js.map +1 -1
  73. package/dist/gateway/adapters.d.ts +10 -0
  74. package/dist/gateway/adapters.d.ts.map +1 -1
  75. package/dist/gateway/adapters.js +4 -1
  76. package/dist/gateway/adapters.js.map +1 -1
  77. package/dist/gateway/dedup.d.ts +105 -0
  78. package/dist/gateway/dedup.d.ts.map +1 -0
  79. package/dist/gateway/dedup.js +160 -0
  80. package/dist/gateway/dedup.js.map +1 -0
  81. package/dist/gateway/heartbeat.d.ts +99 -0
  82. package/dist/gateway/heartbeat.d.ts.map +1 -0
  83. package/dist/gateway/heartbeat.js +122 -0
  84. package/dist/gateway/heartbeat.js.map +1 -0
  85. package/dist/gateway/inbox.d.ts +14 -1
  86. package/dist/gateway/inbox.d.ts.map +1 -1
  87. package/dist/gateway/inbox.js.map +1 -1
  88. package/dist/gateway/platform-config.d.ts +5 -0
  89. package/dist/gateway/platform-config.d.ts.map +1 -1
  90. package/dist/gateway/platform-config.js +8 -13
  91. package/dist/gateway/platform-config.js.map +1 -1
  92. package/dist/gateway/registry.d.ts +47 -0
  93. package/dist/gateway/registry.d.ts.map +1 -1
  94. package/dist/gateway/registry.js +227 -21
  95. package/dist/gateway/registry.js.map +1 -1
  96. package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
  97. package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
  98. package/dist/gateway/whatsapp/baileys-bridge.js +64 -1
  99. package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
  100. package/dist/gateway/whatsapp/bridge.d.ts +4 -2
  101. package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
  102. package/dist/gateway/whatsapp/bridge.js.map +1 -1
  103. package/dist/index.js +1 -1
  104. package/dist/index.js.map +1 -1
  105. package/dist/inference/factory.d.ts +16 -0
  106. package/dist/inference/factory.d.ts.map +1 -1
  107. package/dist/inference/factory.js +42 -0
  108. package/dist/inference/factory.js.map +1 -1
  109. package/dist/inference/gemini-adapter.d.ts.map +1 -1
  110. package/dist/inference/gemini-adapter.js +3 -0
  111. package/dist/inference/gemini-adapter.js.map +1 -1
  112. package/dist/inference/interface.d.ts +12 -0
  113. package/dist/inference/interface.d.ts.map +1 -1
  114. package/dist/inference/local-adapter.d.ts +2 -0
  115. package/dist/inference/local-adapter.d.ts.map +1 -1
  116. package/dist/inference/local-adapter.js +36 -5
  117. package/dist/inference/local-adapter.js.map +1 -1
  118. package/dist/inference/native-tools.d.ts +8 -0
  119. package/dist/inference/native-tools.d.ts.map +1 -1
  120. package/dist/inference/native-tools.js +14 -3
  121. package/dist/inference/native-tools.js.map +1 -1
  122. package/dist/inference/tool-call-utils.d.ts +66 -7
  123. package/dist/inference/tool-call-utils.d.ts.map +1 -1
  124. package/dist/inference/tool-call-utils.js +134 -13
  125. package/dist/inference/tool-call-utils.js.map +1 -1
  126. package/dist/learning/auto-router.d.ts.map +1 -1
  127. package/dist/learning/auto-router.js +90 -5
  128. package/dist/learning/auto-router.js.map +1 -1
  129. package/dist/learning/context-budget.d.ts +133 -0
  130. package/dist/learning/context-budget.d.ts.map +1 -0
  131. package/dist/learning/context-budget.js +196 -0
  132. package/dist/learning/context-budget.js.map +1 -0
  133. package/dist/learning/cost-tracker.d.ts.map +1 -1
  134. package/dist/learning/cost-tracker.js +20 -8
  135. package/dist/learning/cost-tracker.js.map +1 -1
  136. package/dist/learning/eval-framework.d.ts.map +1 -1
  137. package/dist/learning/eval-framework.js +6 -2
  138. package/dist/learning/eval-framework.js.map +1 -1
  139. package/dist/learning/failure-bookkeeping.d.ts +19 -0
  140. package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
  141. package/dist/learning/failure-bookkeeping.js +67 -2
  142. package/dist/learning/failure-bookkeeping.js.map +1 -1
  143. package/dist/learning/feedback.d.ts.map +1 -1
  144. package/dist/learning/feedback.js +19 -8
  145. package/dist/learning/feedback.js.map +1 -1
  146. package/dist/learning/model-harness.d.ts +76 -0
  147. package/dist/learning/model-harness.d.ts.map +1 -0
  148. package/dist/learning/model-harness.js +119 -0
  149. package/dist/learning/model-harness.js.map +1 -0
  150. package/dist/learning/model-selection.d.ts +15 -0
  151. package/dist/learning/model-selection.d.ts.map +1 -1
  152. package/dist/learning/model-selection.js +27 -1
  153. package/dist/learning/model-selection.js.map +1 -1
  154. package/dist/learning/provider-fallback.d.ts +12 -0
  155. package/dist/learning/provider-fallback.d.ts.map +1 -1
  156. package/dist/learning/provider-fallback.js +74 -0
  157. package/dist/learning/provider-fallback.js.map +1 -1
  158. package/dist/learning/provider-revival.d.ts +106 -0
  159. package/dist/learning/provider-revival.d.ts.map +1 -0
  160. package/dist/learning/provider-revival.js +154 -0
  161. package/dist/learning/provider-revival.js.map +1 -0
  162. package/dist/learning/resilient-call.d.ts.map +1 -1
  163. package/dist/learning/resilient-call.js +48 -3
  164. package/dist/learning/resilient-call.js.map +1 -1
  165. package/dist/nlu/conversation-gate.d.ts +37 -0
  166. package/dist/nlu/conversation-gate.d.ts.map +1 -1
  167. package/dist/nlu/conversation-gate.js +49 -0
  168. package/dist/nlu/conversation-gate.js.map +1 -1
  169. package/dist/nlu/schema.d.ts +2 -2
  170. package/dist/observability/dag-bridge.d.ts +69 -0
  171. package/dist/observability/dag-bridge.d.ts.map +1 -0
  172. package/dist/observability/dag-bridge.js +56 -0
  173. package/dist/observability/dag-bridge.js.map +1 -0
  174. package/dist/observability/event-bus.d.ts +5 -10
  175. package/dist/observability/event-bus.d.ts.map +1 -1
  176. package/dist/observability/event-bus.js +10 -42
  177. package/dist/observability/event-bus.js.map +1 -1
  178. package/dist/skills/execution-audit.d.ts.map +1 -1
  179. package/dist/skills/execution-audit.js +17 -5
  180. package/dist/skills/execution-audit.js.map +1 -1
  181. package/dist/skills/sandbox-executor.d.ts +12 -1
  182. package/dist/skills/sandbox-executor.d.ts.map +1 -1
  183. package/dist/skills/sandbox-executor.js +28 -6
  184. package/dist/skills/sandbox-executor.js.map +1 -1
  185. package/dist/skills/secret-capture.d.ts +45 -1
  186. package/dist/skills/secret-capture.d.ts.map +1 -1
  187. package/dist/skills/secret-capture.js +82 -19
  188. package/dist/skills/secret-capture.js.map +1 -1
  189. package/dist/skills/skill-env-inventory.d.ts +79 -0
  190. package/dist/skills/skill-env-inventory.d.ts.map +1 -0
  191. package/dist/skills/skill-env-inventory.js +167 -0
  192. package/dist/skills/skill-env-inventory.js.map +1 -0
  193. package/dist/skills/skill-executor.d.ts +2 -0
  194. package/dist/skills/skill-executor.d.ts.map +1 -1
  195. package/dist/skills/skill-executor.js +19 -24
  196. package/dist/skills/skill-executor.js.map +1 -1
  197. package/dist/tools/ask-user.d.ts +14 -1
  198. package/dist/tools/ask-user.d.ts.map +1 -1
  199. package/dist/tools/ask-user.js +25 -1
  200. package/dist/tools/ask-user.js.map +1 -1
  201. package/dist/tools/followup-utils.d.ts +64 -0
  202. package/dist/tools/followup-utils.d.ts.map +1 -0
  203. package/dist/tools/followup-utils.js +158 -0
  204. package/dist/tools/followup-utils.js.map +1 -0
  205. package/dist/tools/memory-tools.d.ts +35 -0
  206. package/dist/tools/memory-tools.d.ts.map +1 -1
  207. package/dist/tools/memory-tools.js +76 -0
  208. package/dist/tools/memory-tools.js.map +1 -1
  209. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  210. package/dist/tools/pipeline-tool.js +8 -3
  211. package/dist/tools/pipeline-tool.js.map +1 -1
  212. package/dist/tools/registry.d.ts +25 -12
  213. package/dist/tools/registry.d.ts.map +1 -1
  214. package/dist/tools/registry.js +31 -6
  215. package/dist/tools/registry.js.map +1 -1
  216. package/dist/tools/skill-tool.d.ts.map +1 -1
  217. package/dist/tools/skill-tool.js +52 -5
  218. package/dist/tools/skill-tool.js.map +1 -1
  219. package/dist/tools/tool-loop.d.ts +63 -1
  220. package/dist/tools/tool-loop.d.ts.map +1 -1
  221. package/dist/tools/tool-loop.js +305 -66
  222. package/dist/tools/tool-loop.js.map +1 -1
  223. package/dist/tools/toolsets.d.ts +19 -3
  224. package/dist/tools/toolsets.d.ts.map +1 -1
  225. package/dist/tools/toolsets.js +21 -5
  226. package/dist/tools/toolsets.js.map +1 -1
  227. package/dist/utils/env.d.ts.map +1 -1
  228. package/dist/utils/env.js +9 -13
  229. package/dist/utils/env.js.map +1 -1
  230. package/dist/web-dashboard/chat-console.d.ts +13 -1
  231. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  232. package/dist/web-dashboard/chat-console.js +16 -2
  233. package/dist/web-dashboard/chat-console.js.map +1 -1
  234. package/dist/web-dashboard/hub-data.d.ts +2 -0
  235. package/dist/web-dashboard/hub-data.d.ts.map +1 -1
  236. package/dist/web-dashboard/hub-data.js +4 -0
  237. package/dist/web-dashboard/hub-data.js.map +1 -1
  238. package/dist/web-dashboard/server.d.ts +6 -0
  239. package/dist/web-dashboard/server.d.ts.map +1 -1
  240. package/dist/web-dashboard/server.js +192 -3
  241. package/dist/web-dashboard/server.js.map +1 -1
  242. package/dist/web-dashboard/src/types.d.ts +31 -1
  243. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  244. package/package.json +11 -1
  245. package/src/web-dashboard/public/assets/index-56yPnN_m.js +207 -0
  246. package/src/web-dashboard/public/assets/index-56yPnN_m.js.map +1 -0
  247. package/src/web-dashboard/public/assets/{index-C507EUWf.css → index-Cyd6tIew.css} +1 -1
  248. package/src/web-dashboard/public/index.html +2 -2
  249. package/dist/example.d.ts +0 -1
  250. package/dist/example.d.ts.map +0 -1
  251. package/dist/example.js +0 -3
  252. package/dist/example.js.map +0 -1
  253. package/dist/fresh.d.ts +0 -2
  254. package/dist/fresh.d.ts.map +0 -1
  255. package/dist/fresh.js +0 -2
  256. package/dist/fresh.js.map +0 -1
  257. package/dist/mcp/mcp-dashboard-oauth.d.ts +0 -94
  258. package/dist/mcp/mcp-dashboard-oauth.d.ts.map +0 -1
  259. package/dist/mcp/mcp-dashboard-oauth.js +0 -140
  260. package/dist/mcp/mcp-dashboard-oauth.js.map +0 -1
  261. package/dist/memory/background-sync.d.ts +0 -107
  262. package/dist/memory/background-sync.d.ts.map +0 -1
  263. package/dist/memory/background-sync.js +0 -242
  264. package/dist/memory/background-sync.js.map +0 -1
  265. package/dist/memory/cross-session.d.ts +0 -68
  266. package/dist/memory/cross-session.d.ts.map +0 -1
  267. package/dist/memory/cross-session.js +0 -153
  268. package/dist/memory/cross-session.js.map +0 -1
  269. package/dist/memory/drift-detector.d.ts +0 -76
  270. package/dist/memory/drift-detector.d.ts.map +0 -1
  271. package/dist/memory/drift-detector.js +0 -216
  272. package/dist/memory/drift-detector.js.map +0 -1
  273. package/dist/memory/enhanced-manager.d.ts +0 -105
  274. package/dist/memory/enhanced-manager.d.ts.map +0 -1
  275. package/dist/memory/enhanced-manager.js +0 -280
  276. package/dist/memory/enhanced-manager.js.map +0 -1
  277. package/dist/memory/session-extraction.d.ts +0 -93
  278. package/dist/memory/session-extraction.d.ts.map +0 -1
  279. package/dist/memory/session-extraction.js +0 -290
  280. package/dist/memory/session-extraction.js.map +0 -1
  281. package/dist/memory/sqlite-store.d.ts +0 -208
  282. package/dist/memory/sqlite-store.d.ts.map +0 -1
  283. package/dist/memory/sqlite-store.js +0 -556
  284. package/dist/memory/sqlite-store.js.map +0 -1
  285. package/dist/skills/daytona-executor.d.ts +0 -78
  286. package/dist/skills/daytona-executor.d.ts.map +0 -1
  287. package/dist/skills/daytona-executor.js +0 -256
  288. package/dist/skills/daytona-executor.js.map +0 -1
  289. package/dist/skills/modal-executor.d.ts +0 -81
  290. package/dist/skills/modal-executor.d.ts.map +0 -1
  291. package/dist/skills/modal-executor.js +0 -285
  292. package/dist/skills/modal-executor.js.map +0 -1
  293. package/dist/sync/inventory.d.ts +0 -1
  294. package/dist/sync/inventory.d.ts.map +0 -1
  295. package/dist/sync/inventory.js +0 -3
  296. package/dist/sync/inventory.js.map +0 -1
  297. package/dist/sync/validate.d.ts +0 -1
  298. package/dist/sync/validate.d.ts.map +0 -1
  299. package/dist/sync/validate.js +0 -3
  300. package/dist/sync/validate.js.map +0 -1
  301. package/dist/test.d.ts +0 -2
  302. package/dist/test.d.ts.map +0 -1
  303. package/dist/test.js +0 -3
  304. package/dist/test.js.map +0 -1
  305. package/dist/tools/browser-tool.d.ts +0 -206
  306. package/dist/tools/browser-tool.d.ts.map +0 -1
  307. package/dist/tools/browser-tool.js +0 -726
  308. package/dist/tools/browser-tool.js.map +0 -1
  309. package/dist/tools/delegate-tool.d.ts +0 -109
  310. package/dist/tools/delegate-tool.d.ts.map +0 -1
  311. package/dist/tools/delegate-tool.js +0 -185
  312. package/dist/tools/delegate-tool.js.map +0 -1
  313. package/dist/tools/delegation-state.d.ts +0 -87
  314. package/dist/tools/delegation-state.d.ts.map +0 -1
  315. package/dist/tools/delegation-state.js +0 -278
  316. package/dist/tools/delegation-state.js.map +0 -1
  317. package/dist/tools/desktop-ui.d.ts +0 -148
  318. package/dist/tools/desktop-ui.d.ts.map +0 -1
  319. package/dist/tools/desktop-ui.js +0 -486
  320. package/dist/tools/desktop-ui.js.map +0 -1
  321. package/dist/tools/image-video-tool.d.ts +0 -88
  322. package/dist/tools/image-video-tool.d.ts.map +0 -1
  323. package/dist/tools/image-video-tool.js +0 -276
  324. package/dist/tools/image-video-tool.js.map +0 -1
  325. package/dist/tools/kanban-cron-tools.d.ts +0 -92
  326. package/dist/tools/kanban-cron-tools.d.ts.map +0 -1
  327. package/dist/tools/kanban-cron-tools.js +0 -197
  328. package/dist/tools/kanban-cron-tools.js.map +0 -1
  329. package/dist/tools/messaging-tool.d.ts +0 -127
  330. package/dist/tools/messaging-tool.d.ts.map +0 -1
  331. package/dist/tools/messaging-tool.js +0 -314
  332. package/dist/tools/messaging-tool.js.map +0 -1
  333. package/dist/tools/modality/generic-caller.d.ts +0 -43
  334. package/dist/tools/modality/generic-caller.d.ts.map +0 -1
  335. package/dist/tools/modality/generic-caller.js +0 -254
  336. package/dist/tools/modality/generic-caller.js.map +0 -1
  337. package/dist/tools/modality/modality-catalog.d.ts +0 -134
  338. package/dist/tools/modality/modality-catalog.d.ts.map +0 -1
  339. package/dist/tools/modality/modality-catalog.js +0 -445
  340. package/dist/tools/modality/modality-catalog.js.map +0 -1
  341. package/dist/tools/modality/tool-router.d.ts +0 -81
  342. package/dist/tools/modality/tool-router.d.ts.map +0 -1
  343. package/dist/tools/modality/tool-router.js +0 -84
  344. package/dist/tools/modality/tool-router.js.map +0 -1
  345. package/dist/tools/security-tools.d.ts +0 -107
  346. package/dist/tools/security-tools.d.ts.map +0 -1
  347. package/dist/tools/security-tools.js +0 -264
  348. package/dist/tools/security-tools.js.map +0 -1
  349. package/dist/tools/ssh-tool.d.ts +0 -130
  350. package/dist/tools/ssh-tool.d.ts.map +0 -1
  351. package/dist/tools/ssh-tool.js +0 -328
  352. package/dist/tools/ssh-tool.js.map +0 -1
  353. package/dist/tools/tts-tool.d.ts +0 -91
  354. package/dist/tools/tts-tool.d.ts.map +0 -1
  355. package/dist/tools/tts-tool.js +0 -406
  356. package/dist/tools/tts-tool.js.map +0 -1
  357. package/dist/utils/shell-detection.d.ts +0 -124
  358. package/dist/utils/shell-detection.d.ts.map +0 -1
  359. package/dist/utils/shell-detection.js +0 -305
  360. package/dist/utils/shell-detection.js.map +0 -1
  361. package/dist/utils/windows-paths.d.ts +0 -185
  362. package/dist/utils/windows-paths.d.ts.map +0 -1
  363. package/dist/utils/windows-paths.js +0 -472
  364. package/dist/utils/windows-paths.js.map +0 -1
  365. package/src/web-dashboard/public/assets/index-C4frng1Q.js +0 -207
  366. 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"}