@nodetool-ai/websocket 0.8.1 → 0.8.2

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 (284) hide show
  1. package/dist/.nodetool-build-stamp +1 -1
  2. package/dist/collection-api.d.ts.map +1 -1
  3. package/dist/collection-api.js +41 -4
  4. package/dist/collection-api.js.map +1 -1
  5. package/dist/error-traces.d.ts +56 -0
  6. package/dist/error-traces.d.ts.map +1 -0
  7. package/dist/error-traces.js +179 -0
  8. package/dist/error-traces.js.map +1 -0
  9. package/dist/fake-runtime.d.ts.map +1 -1
  10. package/dist/fake-runtime.js +40 -3
  11. package/dist/fake-runtime.js.map +1 -1
  12. package/dist/generation-recovery.d.ts.map +1 -1
  13. package/dist/generation-recovery.js +26 -4
  14. package/dist/generation-recovery.js.map +1 -1
  15. package/dist/http-api.d.ts.map +1 -1
  16. package/dist/http-api.js +15 -0
  17. package/dist/http-api.js.map +1 -1
  18. package/dist/index.d.ts +0 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +0 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/interrupted-jobs.d.ts +14 -0
  23. package/dist/interrupted-jobs.d.ts.map +1 -0
  24. package/dist/interrupted-jobs.js +28 -0
  25. package/dist/interrupted-jobs.js.map +1 -0
  26. package/dist/lib/app-debug-service.js +1 -1
  27. package/dist/lib/app-debug-service.js.map +1 -1
  28. package/dist/lib/app-instances-service.d.ts +1284 -0
  29. package/dist/lib/app-instances-service.d.ts.map +1 -0
  30. package/dist/lib/app-instances-service.js +378 -0
  31. package/dist/lib/app-instances-service.js.map +1 -0
  32. package/dist/lib/app-run-cancellation.d.ts +4 -0
  33. package/dist/lib/app-run-cancellation.d.ts.map +1 -0
  34. package/dist/lib/app-run-cancellation.js +28 -0
  35. package/dist/lib/app-run-cancellation.js.map +1 -0
  36. package/dist/lib/applications-service.d.ts +182 -1
  37. package/dist/lib/applications-service.d.ts.map +1 -1
  38. package/dist/lib/applications-service.js +20 -4
  39. package/dist/lib/applications-service.js.map +1 -1
  40. package/dist/lib/asset-paths.d.ts +7 -11
  41. package/dist/lib/asset-paths.d.ts.map +1 -1
  42. package/dist/lib/asset-paths.js +8 -56
  43. package/dist/lib/asset-paths.js.map +1 -1
  44. package/dist/lib/asset-response.d.ts.map +1 -1
  45. package/dist/lib/asset-response.js +2 -1
  46. package/dist/lib/asset-response.js.map +1 -1
  47. package/dist/lib/audio-peaks.d.ts.map +1 -1
  48. package/dist/lib/audio-peaks.js +5 -1
  49. package/dist/lib/audio-peaks.js.map +1 -1
  50. package/dist/lib/bridge.d.ts.map +1 -1
  51. package/dist/lib/bridge.js.map +1 -1
  52. package/dist/lib/document-model-interfaces.d.ts.map +1 -1
  53. package/dist/lib/document-model-interfaces.js +9 -8
  54. package/dist/lib/document-model-interfaces.js.map +1 -1
  55. package/dist/lib/example-apps.d.ts +9 -0
  56. package/dist/lib/example-apps.d.ts.map +1 -1
  57. package/dist/lib/example-apps.js +61 -14
  58. package/dist/lib/example-apps.js.map +1 -1
  59. package/dist/lib/http-tracing.d.ts +12 -0
  60. package/dist/lib/http-tracing.d.ts.map +1 -0
  61. package/dist/lib/http-tracing.js +81 -0
  62. package/dist/lib/http-tracing.js.map +1 -0
  63. package/dist/lib/media.d.ts +1 -6
  64. package/dist/lib/media.d.ts.map +1 -1
  65. package/dist/lib/media.js +8 -44
  66. package/dist/lib/media.js.map +1 -1
  67. package/dist/lib/public-routes.d.ts +7 -0
  68. package/dist/lib/public-routes.d.ts.map +1 -1
  69. package/dist/lib/public-routes.js +14 -0
  70. package/dist/lib/public-routes.js.map +1 -1
  71. package/dist/lib/public-workflow-share.d.ts +20 -0
  72. package/dist/lib/public-workflow-share.d.ts.map +1 -0
  73. package/dist/lib/public-workflow-share.js +45 -0
  74. package/dist/lib/public-workflow-share.js.map +1 -0
  75. package/dist/lib/run-trace-live-delivery.d.ts +25 -0
  76. package/dist/lib/run-trace-live-delivery.d.ts.map +1 -0
  77. package/dist/lib/run-trace-live-delivery.js +91 -0
  78. package/dist/lib/run-trace-live-delivery.js.map +1 -0
  79. package/dist/lib/test-ui-run-routes.d.ts +8 -0
  80. package/dist/lib/test-ui-run-routes.d.ts.map +1 -0
  81. package/dist/lib/test-ui-run-routes.js +42 -0
  82. package/dist/lib/test-ui-run-routes.js.map +1 -0
  83. package/dist/lib/thumbnail.d.ts.map +1 -1
  84. package/dist/lib/thumbnail.js +12 -9
  85. package/dist/lib/thumbnail.js.map +1 -1
  86. package/dist/lib/timeline-bundle.d.ts +148 -16
  87. package/dist/lib/timeline-bundle.d.ts.map +1 -1
  88. package/dist/lib/timeline-bundle.js +12 -0
  89. package/dist/lib/timeline-bundle.js.map +1 -1
  90. package/dist/lib/video-proxy.d.ts.map +1 -1
  91. package/dist/lib/video-proxy.js +3 -2
  92. package/dist/lib/video-proxy.js.map +1 -1
  93. package/dist/lib/workflow-service.d.ts.map +1 -1
  94. package/dist/lib/workflow-service.js +4 -1
  95. package/dist/lib/workflow-service.js.map +1 -1
  96. package/dist/mcp-agent-tools.d.ts.map +1 -1
  97. package/dist/mcp-agent-tools.js +93 -162
  98. package/dist/mcp-agent-tools.js.map +1 -1
  99. package/dist/mcp-client-config.d.ts +64 -0
  100. package/dist/mcp-client-config.d.ts.map +1 -0
  101. package/dist/mcp-client-config.js +353 -0
  102. package/dist/mcp-client-config.js.map +1 -0
  103. package/dist/models-api.d.ts +10 -0
  104. package/dist/models-api.d.ts.map +1 -1
  105. package/dist/models-api.js +23 -0
  106. package/dist/models-api.js.map +1 -1
  107. package/dist/node-registry-setup.d.ts +1 -1
  108. package/dist/node-registry-setup.d.ts.map +1 -1
  109. package/dist/node-registry-setup.js +21 -114
  110. package/dist/node-registry-setup.js.map +1 -1
  111. package/dist/plugins/websocket.d.ts.map +1 -1
  112. package/dist/plugins/websocket.js +20 -57
  113. package/dist/plugins/websocket.js.map +1 -1
  114. package/dist/python-bridge-gate.d.ts +28 -0
  115. package/dist/python-bridge-gate.d.ts.map +1 -0
  116. package/dist/python-bridge-gate.js +36 -0
  117. package/dist/python-bridge-gate.js.map +1 -0
  118. package/dist/routes/app-runs.d.ts +4 -0
  119. package/dist/routes/app-runs.d.ts.map +1 -0
  120. package/dist/routes/app-runs.js +173 -0
  121. package/dist/routes/app-runs.js.map +1 -0
  122. package/dist/routes/js-scripts.d.ts +9 -3
  123. package/dist/routes/js-scripts.d.ts.map +1 -1
  124. package/dist/routes/js-scripts.js +450 -68
  125. package/dist/routes/js-scripts.js.map +1 -1
  126. package/dist/routes/nodes.d.ts.map +1 -1
  127. package/dist/routes/nodes.js +32 -1
  128. package/dist/routes/nodes.js.map +1 -1
  129. package/dist/routes/public-shared-workflows.d.ts +16 -0
  130. package/dist/routes/public-shared-workflows.d.ts.map +1 -0
  131. package/dist/routes/public-shared-workflows.js +55 -0
  132. package/dist/routes/public-shared-workflows.js.map +1 -0
  133. package/dist/routes/run-spans.d.ts +4 -0
  134. package/dist/routes/run-spans.d.ts.map +1 -0
  135. package/dist/routes/run-spans.js +53 -0
  136. package/dist/routes/run-spans.js.map +1 -0
  137. package/dist/routes/timeline-fonts.d.ts +22 -0
  138. package/dist/routes/timeline-fonts.d.ts.map +1 -1
  139. package/dist/routes/timeline-fonts.js +138 -7
  140. package/dist/routes/timeline-fonts.js.map +1 -1
  141. package/dist/screenshot-server.js +4 -5
  142. package/dist/screenshot-server.js.map +1 -1
  143. package/dist/sdk/sdk-model-download-service.d.ts.map +1 -1
  144. package/dist/sdk/sdk-model-download-service.js +5 -2
  145. package/dist/sdk/sdk-model-download-service.js.map +1 -1
  146. package/dist/server.js +86 -19
  147. package/dist/server.js.map +1 -1
  148. package/dist/session/app-run-fold.d.ts +7 -0
  149. package/dist/session/app-run-fold.d.ts.map +1 -0
  150. package/dist/session/app-run-fold.js +45 -0
  151. package/dist/session/app-run-fold.js.map +1 -0
  152. package/dist/session/chat-prompt.d.ts.map +1 -1
  153. package/dist/session/chat-prompt.js +37 -15
  154. package/dist/session/chat-prompt.js.map +1 -1
  155. package/dist/session/chat-turn.d.ts +1 -0
  156. package/dist/session/chat-turn.d.ts.map +1 -1
  157. package/dist/session/chat-turn.js +203 -107
  158. package/dist/session/chat-turn.js.map +1 -1
  159. package/dist/session/commands.d.ts.map +1 -1
  160. package/dist/session/commands.js +6 -0
  161. package/dist/session/commands.js.map +1 -1
  162. package/dist/session/inference.d.ts +5 -0
  163. package/dist/session/inference.d.ts.map +1 -1
  164. package/dist/session/inference.js +80 -9
  165. package/dist/session/inference.js.map +1 -1
  166. package/dist/session/job-execution.d.ts +7 -0
  167. package/dist/session/job-execution.d.ts.map +1 -1
  168. package/dist/session/job-execution.js +297 -7
  169. package/dist/session/job-execution.js.map +1 -1
  170. package/dist/session/model-interfaces.d.ts +2 -1
  171. package/dist/session/model-interfaces.d.ts.map +1 -1
  172. package/dist/session/model-interfaces.js +1 -0
  173. package/dist/session/model-interfaces.js.map +1 -1
  174. package/dist/storage-retention.d.ts +5 -0
  175. package/dist/storage-retention.d.ts.map +1 -1
  176. package/dist/storage-retention.js +22 -1
  177. package/dist/storage-retention.js.map +1 -1
  178. package/dist/test-ui-server.d.ts.map +1 -1
  179. package/dist/test-ui-server.js +21 -3
  180. package/dist/test-ui-server.js.map +1 -1
  181. package/dist/timeline-generation-recovery.d.ts +4 -0
  182. package/dist/timeline-generation-recovery.d.ts.map +1 -0
  183. package/dist/timeline-generation-recovery.js +72 -0
  184. package/dist/timeline-generation-recovery.js.map +1 -0
  185. package/dist/triggers/dispatcher.js +2 -2
  186. package/dist/triggers/dispatcher.js.map +1 -1
  187. package/dist/triggers/stores.js +8 -8
  188. package/dist/triggers/stores.js.map +1 -1
  189. package/dist/triggers/webhook-route.js +2 -2
  190. package/dist/triggers/webhook-route.js.map +1 -1
  191. package/dist/trpc/error-logging.d.ts +10 -0
  192. package/dist/trpc/error-logging.d.ts.map +1 -1
  193. package/dist/trpc/error-logging.js +21 -0
  194. package/dist/trpc/error-logging.js.map +1 -1
  195. package/dist/trpc/router.d.ts +100 -31028
  196. package/dist/trpc/router.d.ts.map +1 -1
  197. package/dist/trpc/router.js +12 -3
  198. package/dist/trpc/router.js.map +1 -1
  199. package/dist/trpc/routers/app-instances.d.ts +2269 -0
  200. package/dist/trpc/routers/app-instances.d.ts.map +1 -0
  201. package/dist/trpc/routers/app-instances.js +52 -0
  202. package/dist/trpc/routers/app-instances.js.map +1 -0
  203. package/dist/trpc/routers/app-runs.d.ts +1092 -0
  204. package/dist/trpc/routers/app-runs.d.ts.map +1 -0
  205. package/dist/trpc/routers/app-runs.js +28 -0
  206. package/dist/trpc/routers/app-runs.js.map +1 -0
  207. package/dist/trpc/routers/applications.d.ts +1095 -0
  208. package/dist/trpc/routers/applications.d.ts.map +1 -1
  209. package/dist/trpc/routers/applications.js +5 -2
  210. package/dist/trpc/routers/applications.js.map +1 -1
  211. package/dist/trpc/routers/assets.d.ts +10 -0
  212. package/dist/trpc/routers/assets.d.ts.map +1 -1
  213. package/dist/trpc/routers/assets.js +4 -0
  214. package/dist/trpc/routers/assets.js.map +1 -1
  215. package/dist/trpc/routers/bug-reports.d.ts +33 -0
  216. package/dist/trpc/routers/bug-reports.d.ts.map +1 -0
  217. package/dist/trpc/routers/bug-reports.js +69 -0
  218. package/dist/trpc/routers/bug-reports.js.map +1 -0
  219. package/dist/trpc/routers/documents.d.ts.map +1 -1
  220. package/dist/trpc/routers/documents.js +8 -2
  221. package/dist/trpc/routers/documents.js.map +1 -1
  222. package/dist/trpc/routers/error-traces.d.ts +132 -0
  223. package/dist/trpc/routers/error-traces.d.ts.map +1 -0
  224. package/dist/trpc/routers/error-traces.js +118 -0
  225. package/dist/trpc/routers/error-traces.js.map +1 -0
  226. package/dist/trpc/routers/extension.d.ts +3 -3
  227. package/dist/trpc/routers/extension.js +6 -6
  228. package/dist/trpc/routers/extension.js.map +1 -1
  229. package/dist/trpc/routers/gameDraftHistory.d.ts +8 -0
  230. package/dist/trpc/routers/gameDraftHistory.d.ts.map +1 -0
  231. package/dist/trpc/routers/gameDraftHistory.js +40 -0
  232. package/dist/trpc/routers/gameDraftHistory.js.map +1 -0
  233. package/dist/trpc/routers/games.d.ts +23691 -4799
  234. package/dist/trpc/routers/games.d.ts.map +1 -1
  235. package/dist/trpc/routers/games.js +301 -83
  236. package/dist/trpc/routers/games.js.map +1 -1
  237. package/dist/trpc/routers/jobs.d.ts +35 -0
  238. package/dist/trpc/routers/jobs.d.ts.map +1 -1
  239. package/dist/trpc/routers/jobs.js +84 -1
  240. package/dist/trpc/routers/jobs.js.map +1 -1
  241. package/dist/trpc/routers/mcp-config.d.ts +3 -1
  242. package/dist/trpc/routers/mcp-config.d.ts.map +1 -1
  243. package/dist/trpc/routers/mcp-config.js +46 -208
  244. package/dist/trpc/routers/mcp-config.js.map +1 -1
  245. package/dist/trpc/routers/models.d.ts +130 -0
  246. package/dist/trpc/routers/models.d.ts.map +1 -1
  247. package/dist/trpc/routers/models.js +99 -31
  248. package/dist/trpc/routers/models.js.map +1 -1
  249. package/dist/trpc/routers/runs.d.ts +472 -0
  250. package/dist/trpc/routers/runs.d.ts.map +1 -0
  251. package/dist/trpc/routers/runs.js +40 -0
  252. package/dist/trpc/routers/runs.js.map +1 -0
  253. package/dist/trpc/routers/settings.d.ts +3 -0
  254. package/dist/trpc/routers/settings.d.ts.map +1 -1
  255. package/dist/trpc/routers/settings.js +2 -0
  256. package/dist/trpc/routers/settings.js.map +1 -1
  257. package/dist/trpc/routers/sketch.d.ts +14 -0
  258. package/dist/trpc/routers/sketch.d.ts.map +1 -1
  259. package/dist/trpc/routers/storyboards.d.ts +732 -0
  260. package/dist/trpc/routers/storyboards.d.ts.map +1 -1
  261. package/dist/trpc/routers/timeline.d.ts +632 -63
  262. package/dist/trpc/routers/timeline.d.ts.map +1 -1
  263. package/dist/trpc/routers/timeline.js +178 -2
  264. package/dist/trpc/routers/timeline.js.map +1 -1
  265. package/dist/trpc/routers/worker.d.ts +10 -9
  266. package/dist/trpc/routers/worker.d.ts.map +1 -1
  267. package/dist/trpc/routers/worker.js +3 -2
  268. package/dist/trpc/routers/worker.js.map +1 -1
  269. package/dist/trpc/routers/workflows.d.ts +56 -3
  270. package/dist/trpc/routers/workflows.d.ts.map +1 -1
  271. package/dist/trpc/routers/workflows.js +23 -2
  272. package/dist/trpc/routers/workflows.js.map +1 -1
  273. package/dist/trpc/sandbox-coverage.d.ts.map +1 -1
  274. package/dist/trpc/sandbox-coverage.js +90 -0
  275. package/dist/trpc/sandbox-coverage.js.map +1 -1
  276. package/dist/websocket-client-session.d.ts +2 -0
  277. package/dist/websocket-client-session.d.ts.map +1 -1
  278. package/dist/websocket-client-session.js +14 -0
  279. package/dist/websocket-client-session.js.map +1 -1
  280. package/package.json +56 -41
  281. package/dist/extension-cdp-bridge.d.ts +0 -85
  282. package/dist/extension-cdp-bridge.d.ts.map +0 -1
  283. package/dist/extension-cdp-bridge.js +0 -163
  284. package/dist/extension-cdp-bridge.js.map +0 -1
@@ -81,6 +81,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
81
81
  repo_id: string;
82
82
  revision?: string | null | undefined;
83
83
  path?: string | null | undefined;
84
+ allow_patterns?: string[] | null | undefined;
85
+ model_type?: string | null | undefined;
84
86
  } | null | undefined;
85
87
  } | null | undefined;
86
88
  execution?: {
@@ -97,6 +99,15 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
97
99
  }[];
98
100
  meta: object;
99
101
  }>;
102
+ /**
103
+ * Every ranked route as a `<provider>:<model_id>` key, best model first.
104
+ * The model menu orders an empty query with it.
105
+ */
106
+ rankedKeys: import("@trpc/server").TRPCQueryProcedure<{
107
+ input: void;
108
+ output: string[];
109
+ meta: object;
110
+ }>;
100
111
  recommendedImageTextToImage: import("@trpc/server").TRPCQueryProcedure<{
101
112
  input: void;
102
113
  output: {
@@ -140,6 +151,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
140
151
  repo_id: string;
141
152
  revision?: string | null | undefined;
142
153
  path?: string | null | undefined;
154
+ allow_patterns?: string[] | null | undefined;
155
+ model_type?: string | null | undefined;
143
156
  } | null | undefined;
144
157
  } | null | undefined;
145
158
  execution?: {
@@ -199,6 +212,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
199
212
  repo_id: string;
200
213
  revision?: string | null | undefined;
201
214
  path?: string | null | undefined;
215
+ allow_patterns?: string[] | null | undefined;
216
+ model_type?: string | null | undefined;
202
217
  } | null | undefined;
203
218
  } | null | undefined;
204
219
  execution?: {
@@ -258,6 +273,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
258
273
  repo_id: string;
259
274
  revision?: string | null | undefined;
260
275
  path?: string | null | undefined;
276
+ allow_patterns?: string[] | null | undefined;
277
+ model_type?: string | null | undefined;
261
278
  } | null | undefined;
262
279
  } | null | undefined;
263
280
  execution?: {
@@ -317,6 +334,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
317
334
  repo_id: string;
318
335
  revision?: string | null | undefined;
319
336
  path?: string | null | undefined;
337
+ allow_patterns?: string[] | null | undefined;
338
+ model_type?: string | null | undefined;
320
339
  } | null | undefined;
321
340
  } | null | undefined;
322
341
  execution?: {
@@ -376,6 +395,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
376
395
  repo_id: string;
377
396
  revision?: string | null | undefined;
378
397
  path?: string | null | undefined;
398
+ allow_patterns?: string[] | null | undefined;
399
+ model_type?: string | null | undefined;
379
400
  } | null | undefined;
380
401
  } | null | undefined;
381
402
  execution?: {
@@ -435,6 +456,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
435
456
  repo_id: string;
436
457
  revision?: string | null | undefined;
437
458
  path?: string | null | undefined;
459
+ allow_patterns?: string[] | null | undefined;
460
+ model_type?: string | null | undefined;
438
461
  } | null | undefined;
439
462
  } | null | undefined;
440
463
  execution?: {
@@ -494,6 +517,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
494
517
  repo_id: string;
495
518
  revision?: string | null | undefined;
496
519
  path?: string | null | undefined;
520
+ allow_patterns?: string[] | null | undefined;
521
+ model_type?: string | null | undefined;
497
522
  } | null | undefined;
498
523
  } | null | undefined;
499
524
  execution?: {
@@ -561,6 +586,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
561
586
  repo_id: string;
562
587
  revision?: string | null | undefined;
563
588
  path?: string | null | undefined;
589
+ allow_patterns?: string[] | null | undefined;
590
+ model_type?: string | null | undefined;
564
591
  } | null | undefined;
565
592
  } | null | undefined;
566
593
  execution?: {
@@ -623,6 +650,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
623
650
  repo_id: string;
624
651
  revision?: string | null | undefined;
625
652
  path?: string | null | undefined;
653
+ allow_patterns?: string[] | null | undefined;
654
+ model_type?: string | null | undefined;
626
655
  } | null | undefined;
627
656
  } | null | undefined;
628
657
  execution?: {
@@ -688,6 +717,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
688
717
  repo_id: string;
689
718
  revision?: string | null | undefined;
690
719
  path?: string | null | undefined;
720
+ allow_patterns?: string[] | null | undefined;
721
+ model_type?: string | null | undefined;
691
722
  } | null | undefined;
692
723
  } | null | undefined;
693
724
  execution?: {
@@ -765,6 +796,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
765
796
  repo_id: string;
766
797
  revision?: string | null | undefined;
767
798
  path?: string | null | undefined;
799
+ allow_patterns?: string[] | null | undefined;
800
+ model_type?: string | null | undefined;
768
801
  } | null | undefined;
769
802
  } | null | undefined;
770
803
  execution?: {
@@ -833,6 +866,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
833
866
  repo_id: string;
834
867
  revision?: string | null | undefined;
835
868
  path?: string | null | undefined;
869
+ allow_patterns?: string[] | null | undefined;
870
+ model_type?: string | null | undefined;
836
871
  } | null | undefined;
837
872
  } | null | undefined;
838
873
  execution?: {
@@ -898,6 +933,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
898
933
  repo_id: string;
899
934
  revision?: string | null | undefined;
900
935
  path?: string | null | undefined;
936
+ allow_patterns?: string[] | null | undefined;
937
+ model_type?: string | null | undefined;
901
938
  } | null | undefined;
902
939
  } | null | undefined;
903
940
  execution?: {
@@ -968,6 +1005,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
968
1005
  repo_id: string;
969
1006
  revision?: string | null | undefined;
970
1007
  path?: string | null | undefined;
1008
+ allow_patterns?: string[] | null | undefined;
1009
+ model_type?: string | null | undefined;
971
1010
  } | null | undefined;
972
1011
  } | null | undefined;
973
1012
  execution?: {
@@ -1037,6 +1076,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
1037
1076
  repo_id: string;
1038
1077
  revision?: string | null | undefined;
1039
1078
  path?: string | null | undefined;
1079
+ allow_patterns?: string[] | null | undefined;
1080
+ model_type?: string | null | undefined;
1040
1081
  } | null | undefined;
1041
1082
  } | null | undefined;
1042
1083
  execution?: {
@@ -1122,6 +1163,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
1122
1163
  repo_id: string;
1123
1164
  revision?: string | null | undefined;
1124
1165
  path?: string | null | undefined;
1166
+ allow_patterns?: string[] | null | undefined;
1167
+ model_type?: string | null | undefined;
1125
1168
  } | null | undefined;
1126
1169
  } | null | undefined;
1127
1170
  execution?: {
@@ -1201,6 +1244,71 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
1201
1244
  repo_id: string;
1202
1245
  revision?: string | null | undefined;
1203
1246
  path?: string | null | undefined;
1247
+ allow_patterns?: string[] | null | undefined;
1248
+ model_type?: string | null | undefined;
1249
+ } | null | undefined;
1250
+ } | null | undefined;
1251
+ execution?: {
1252
+ kind: "api" | "local" | "server" | "unavailable";
1253
+ state: "download_required" | "ready" | "unavailable";
1254
+ label: "API" | "Local" | "Server" | "Unavailable";
1255
+ reason?: string | null | undefined;
1256
+ execution_site?: "nodetool_host" | "provider" | null | undefined;
1257
+ runtime_name?: string | null | undefined;
1258
+ } | null | undefined;
1259
+ durations?: number[] | null | undefined;
1260
+ resolutions?: string[] | null | undefined;
1261
+ aspect_ratios?: string[] | null | undefined;
1262
+ }[];
1263
+ meta: object;
1264
+ }>;
1265
+ rerankByProvider: import("@trpc/server").TRPCQueryProcedure<{
1266
+ input: {
1267
+ provider: string;
1268
+ };
1269
+ output: {
1270
+ id: string;
1271
+ type?: string | null | undefined;
1272
+ name: string;
1273
+ provider?: string | null | undefined;
1274
+ repo_id?: string | null | undefined;
1275
+ path?: string | null | undefined;
1276
+ artifact_family?: string | null | undefined;
1277
+ artifact_component?: string | null | undefined;
1278
+ artifact_confidence?: number | null | undefined;
1279
+ artifact_evidence?: string[] | null | undefined;
1280
+ cache_path?: string | null | undefined;
1281
+ allow_patterns?: string[] | null | undefined;
1282
+ ignore_patterns?: string[] | null | undefined;
1283
+ description?: string | null | undefined;
1284
+ readme?: string | null | undefined;
1285
+ downloaded?: boolean | null | undefined;
1286
+ size_on_disk?: number | null | undefined;
1287
+ pipeline_tag?: string | null | undefined;
1288
+ tags?: string[] | null | undefined;
1289
+ has_model_index?: boolean | null | undefined;
1290
+ downloads?: number | null | undefined;
1291
+ likes?: number | null | undefined;
1292
+ supported_tasks?: string[] | null | undefined;
1293
+ trending_score?: number | null | undefined;
1294
+ image?: string | null | undefined;
1295
+ supports_tools?: boolean | null | undefined;
1296
+ voices?: string[] | null | undefined;
1297
+ capabilities?: string[] | null | undefined;
1298
+ languages?: string[] | null | undefined;
1299
+ sample_rate?: number | null | undefined;
1300
+ requires_reference_text?: boolean | null | undefined;
1301
+ adapter?: {
1302
+ state: "installed" | "missing_dependency" | "unknown";
1303
+ reason_code?: string | null | undefined;
1304
+ reason?: string | null | undefined;
1305
+ artifact_ref?: {
1306
+ source: "huggingface";
1307
+ repo_id: string;
1308
+ revision?: string | null | undefined;
1309
+ path?: string | null | undefined;
1310
+ allow_patterns?: string[] | null | undefined;
1311
+ model_type?: string | null | undefined;
1204
1312
  } | null | undefined;
1205
1313
  } | null | undefined;
1206
1314
  execution?: {
@@ -1260,6 +1368,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
1260
1368
  repo_id: string;
1261
1369
  revision?: string | null | undefined;
1262
1370
  path?: string | null | undefined;
1371
+ allow_patterns?: string[] | null | undefined;
1372
+ model_type?: string | null | undefined;
1263
1373
  } | null | undefined;
1264
1374
  } | null | undefined;
1265
1375
  execution?: {
@@ -1321,6 +1431,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
1321
1431
  repo_id: string;
1322
1432
  revision?: string | null | undefined;
1323
1433
  path?: string | null | undefined;
1434
+ allow_patterns?: string[] | null | undefined;
1435
+ model_type?: string | null | undefined;
1324
1436
  } | null | undefined;
1325
1437
  } | null | undefined;
1326
1438
  execution?: {
@@ -1380,6 +1492,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
1380
1492
  repo_id: string;
1381
1493
  revision?: string | null | undefined;
1382
1494
  path?: string | null | undefined;
1495
+ allow_patterns?: string[] | null | undefined;
1496
+ model_type?: string | null | undefined;
1383
1497
  } | null | undefined;
1384
1498
  } | null | undefined;
1385
1499
  execution?: {
@@ -1441,6 +1555,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
1441
1555
  repo_id: string;
1442
1556
  revision?: string | null | undefined;
1443
1557
  path?: string | null | undefined;
1558
+ allow_patterns?: string[] | null | undefined;
1559
+ model_type?: string | null | undefined;
1444
1560
  } | null | undefined;
1445
1561
  } | null | undefined;
1446
1562
  execution?: {
@@ -1500,6 +1616,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
1500
1616
  repo_id: string;
1501
1617
  revision?: string | null | undefined;
1502
1618
  path?: string | null | undefined;
1619
+ allow_patterns?: string[] | null | undefined;
1620
+ model_type?: string | null | undefined;
1503
1621
  } | null | undefined;
1504
1622
  } | null | undefined;
1505
1623
  execution?: {
@@ -1561,6 +1679,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
1561
1679
  repo_id: string;
1562
1680
  revision?: string | null | undefined;
1563
1681
  path?: string | null | undefined;
1682
+ allow_patterns?: string[] | null | undefined;
1683
+ model_type?: string | null | undefined;
1564
1684
  } | null | undefined;
1565
1685
  } | null | undefined;
1566
1686
  execution?: {
@@ -1620,6 +1740,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
1620
1740
  repo_id: string;
1621
1741
  revision?: string | null | undefined;
1622
1742
  path?: string | null | undefined;
1743
+ allow_patterns?: string[] | null | undefined;
1744
+ model_type?: string | null | undefined;
1623
1745
  } | null | undefined;
1624
1746
  } | null | undefined;
1625
1747
  execution?: {
@@ -1681,6 +1803,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
1681
1803
  repo_id: string;
1682
1804
  revision?: string | null | undefined;
1683
1805
  path?: string | null | undefined;
1806
+ allow_patterns?: string[] | null | undefined;
1807
+ model_type?: string | null | undefined;
1684
1808
  } | null | undefined;
1685
1809
  } | null | undefined;
1686
1810
  execution?: {
@@ -1740,6 +1864,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
1740
1864
  repo_id: string;
1741
1865
  revision?: string | null | undefined;
1742
1866
  path?: string | null | undefined;
1867
+ allow_patterns?: string[] | null | undefined;
1868
+ model_type?: string | null | undefined;
1743
1869
  } | null | undefined;
1744
1870
  } | null | undefined;
1745
1871
  execution?: {
@@ -1801,6 +1927,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
1801
1927
  repo_id: string;
1802
1928
  revision?: string | null | undefined;
1803
1929
  path?: string | null | undefined;
1930
+ allow_patterns?: string[] | null | undefined;
1931
+ model_type?: string | null | undefined;
1804
1932
  } | null | undefined;
1805
1933
  } | null | undefined;
1806
1934
  execution?: {
@@ -1862,6 +1990,8 @@ export declare const modelsRouter: import("@trpc/server").TRPCBuiltRouter<{
1862
1990
  repo_id: string;
1863
1991
  revision?: string | null | undefined;
1864
1992
  path?: string | null | undefined;
1993
+ allow_patterns?: string[] | null | undefined;
1994
+ model_type?: string | null | undefined;
1865
1995
  } | null | undefined;
1866
1996
  } | null | undefined;
1867
1997
  execution?: {
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/trpc/routers/models.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EASL,KAAK,UAAU,EAEhB,MAAM,sBAAsB,CAAC;AAwB9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAgP1D,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAuBtE;AAmDD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAwFD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,EAAE,CAAC,CAUvB;AAibD,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAiE1E;AA8GD;;;;;;;GAOG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,MAAM,EACd,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,GACtC,OAAO,CAAC,YAAY,EAAE,CAAC,CA4CzB;AAkBD,eAAO,MAAM,YAAY;;;;;;IACvB;;OAEG;;;;;;;;;;;IAoCH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoCH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqBH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiBH;;;OAGG;;;;;;;;;IAiBH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoBH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuBH;;;;;;;;OAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2CH;;;;;;;OAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsCH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0CH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAySH;;OAEG;;;;;;;;;;;;;;;;IAsCH;;OAEG;;;;;;;;;;;GAcH,CAAC"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/trpc/routers/models.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { router } from "../index.js";
2
2
  import { protectedProcedure } from "../middleware.js";
3
3
  import { TRPCError } from "@trpc/server";
4
4
  import { createLogger } from "@nodetool-ai/config";
5
+ import { discoverASRModels, discoverVadModels } from "@nodetool-ai/whisper-cpp";
5
6
  import { getProvider, getRegisteredProvider, isProviderConfigured, listRegisteredProviderIds, RECOMMENDED_MODELS, OLLAMA_DEFAULT_URL, OllamaProvider, LMSTUDIO_DEFAULT_URL } from "@nodetool-ai/runtime";
6
7
  import { getSecret as getStoredSecret } from "@nodetool-ai/models";
7
8
  import { syncCustomProviderRegistry } from "../../custom-providers.js";
@@ -12,6 +13,7 @@ const log = createLogger("nodetool.websocket.trpc.models");
12
13
  import { readCachedHfModels, searchCachedHfModels, getModelsByHfType, filterModelsByHfType, deleteCachedHfModel } from "@nodetool-ai/huggingface";
13
14
  import { getTransformersJsCacheDir, recommendedFor, scanTransformersJsCache, TJS_MODEL_TYPES } from "@nodetool-ai/transformers-js-nodes";
14
15
  import { MODEL_SEARCH_KINDS } from "@nodetool-ai/protocol";
16
+ import { rankedModelKeys } from "../../models-api.js";
15
17
  import { access, readdir } from "node:fs/promises";
16
18
  import { constants as fsConstants } from "node:fs";
17
19
  import { homedir } from "node:os";
@@ -23,7 +25,9 @@ const modelArtifactRefSchema = z.object({
23
25
  source: z.literal("huggingface"),
24
26
  repo_id: z.string(),
25
27
  revision: z.string().nullish(),
26
- path: z.string().nullish()
28
+ path: z.string().nullish(),
29
+ allow_patterns: z.array(z.string()).nullish(),
30
+ model_type: z.string().nullish()
27
31
  });
28
32
  const modelAdapterInfoSchema = z.object({
29
33
  state: z.enum(["installed", "missing_dependency", "unknown"]),
@@ -474,8 +478,25 @@ async function serverAllowsModel(model, servers, userId) {
474
478
  return await isProviderConfigured(model.provider, secretResolverFor(userId));
475
479
  return true;
476
480
  }
481
+ async function withWhisperDownloadStatus(models, userId) {
482
+ const modelsDir = await secretResolverFor(userId)("WHISPER_CPP_MODELS_DIR");
483
+ const whisperFiles = new Map((await Promise.all([
484
+ discoverASRModels(modelsDir),
485
+ discoverVadModels(modelsDir)
486
+ ]))
487
+ .flat()
488
+ .map((model) => [model.id.split(/[\\/]/).at(-1), model.id]));
489
+ return Promise.all(models.map(async (model) => model.provider === "whisper_cpp" && model.repo_id && model.path
490
+ ? {
491
+ ...model,
492
+ id: whisperFiles.get(model.path) ?? model.id,
493
+ downloaded: whisperFiles.has(model.path) ||
494
+ (await repoFileInCache(model.repo_id, model.path))
495
+ }
496
+ : model));
497
+ }
477
498
  async function getRecommendedModels(checkServers, userId) {
478
- const models = [...RECOMMENDED_MODELS];
499
+ const models = await withWhisperDownloadStatus([...RECOMMENDED_MODELS], userId);
479
500
  if (!checkServers)
480
501
  return models;
481
502
  const servers = await getServerAvailability(userId);
@@ -602,7 +623,10 @@ function toUnifiedModel(model, type) {
602
623
  provider: model.provider,
603
624
  repo_id: null,
604
625
  path: null,
605
- downloaded: model.provider === "ollama" || model.provider === "llama_cpp",
626
+ downloaded: model.provider === "ollama" ||
627
+ model.provider === "llama_cpp" ||
628
+ model.provider === "whisper_cpp" ||
629
+ model.provider === "whisper_cpp_server",
606
630
  tags: [model.provider],
607
631
  voices: model.voices ?? null,
608
632
  capabilities: model.capabilities ?? null,
@@ -619,7 +643,9 @@ function toUnifiedModel(model, type) {
619
643
  source: model.adapter.artifactRef.source,
620
644
  repo_id: model.adapter.artifactRef.repoId,
621
645
  revision: model.adapter.artifactRef.revision ?? null,
622
- path: model.adapter.artifactRef.path ?? null
646
+ path: model.adapter.artifactRef.path ?? null,
647
+ allow_patterns: model.adapter.artifactRef.allowPatterns ?? null,
648
+ model_type: model.adapter.artifactRef.modelType ?? null
623
649
  }
624
650
  : null
625
651
  }
@@ -669,11 +695,20 @@ async function resolveProviderModelExecution(models, configuredProviderIds) {
669
695
  catch {
670
696
  // A failed cache scan means local adapters remain download-required.
671
697
  }
698
+ if (models.some((model) => model.adapter?.artifact_ref?.model_type?.startsWith("tjs."))) {
699
+ try {
700
+ const cached = await scanTransformersJsCache(getTransformersJsCacheDir());
701
+ cachedModels.push(...cached.map((c) => tjsRefToUnified({ repo_id: c.repo_id }, "tjs.cached", true, c.size_bytes)));
702
+ }
703
+ catch {
704
+ // Transformers.js adapters remain download-required.
705
+ }
706
+ }
672
707
  return resolveModelExecutionAvailability([...models, ...cachedModels], providerExecutionMap(configuredProviderIds)).slice(0, models.length);
673
708
  }
674
709
  export async function getAllModels(userId) {
675
710
  const all = [];
676
- all.push(...RECOMMENDED_MODELS);
711
+ all.push(...(await getRecommendedModels(false, userId)));
677
712
  const availableIds = await getAvailableProviderIds(userId);
678
713
  const providerModelsPromises = availableIds.map(async (providerId) => {
679
714
  try {
@@ -848,7 +883,9 @@ function curatedForKind(kind) {
848
883
  const taskRequired = kind !== "text_to_speech" &&
849
884
  kind !== "speech_to_text" &&
850
885
  kind !== "text_to_music";
851
- return RECOMMENDED_MODELS.filter((r) => r.modality === modality && (!taskRequired || r.task === kind));
886
+ return RECOMMENDED_MODELS.filter((r) => r.modality === modality &&
887
+ r.type !== "hf.whisper_cpp_vad" &&
888
+ (!taskRequired || r.task === kind));
852
889
  }
853
890
  // ── Router ─────────────────────────────────────────────────────────
854
891
  export const modelsRouter = router({
@@ -892,6 +929,13 @@ export const modelsRouter = router({
892
929
  .query(async ({ input, ctx }) => {
893
930
  return getRecommendedModels(input.check_servers ?? false, ctx.userId);
894
931
  }),
932
+ /**
933
+ * Every ranked route as a `<provider>:<model_id>` key, best model first.
934
+ * The model menu orders an empty query with it.
935
+ */
936
+ rankedKeys: protectedProcedure
937
+ .output(z.array(z.string()))
938
+ .query(() => rankedModelKeys()),
895
939
  recommendedImageTextToImage: protectedProcedure
896
940
  .output(modelsListOutput)
897
941
  .query(() => selectRecommended("image", "text_to_image")),
@@ -901,9 +945,7 @@ export const modelsRouter = router({
901
945
  recommendedLanguageEmbedding: protectedProcedure
902
946
  .output(modelsListOutput)
903
947
  .query(() => selectRecommended("language", "embedding")),
904
- recommendedAsr: protectedProcedure
905
- .output(modelsListOutput)
906
- .query(() => selectRecommended("asr")),
948
+ recommendedAsr: protectedProcedure.output(modelsListOutput).query(({ ctx }) => withWhisperDownloadStatus(selectRecommended("asr").filter((model) => model.type !== "hf.whisper_cpp_vad"), ctx.userId)),
907
949
  recommendedTts: protectedProcedure
908
950
  .output(modelsListOutput)
909
951
  .query(() => selectRecommended("tts")),
@@ -1170,13 +1212,33 @@ export const modelsRouter = router({
1170
1212
  imageByProvider: protectedProcedure
1171
1213
  .input(providerInput)
1172
1214
  .output(modelsListOutput)
1173
- .query(async ({ ctx, input }) => safeProviderCall("imageByProvider", { provider: input.provider, userId: ctx.userId }, async () => {
1174
- const instance = await instantiateProvider(input.provider, ctx.userId);
1175
- if (!instance)
1176
- return [];
1177
- const models = await instance.getAvailableImageModels();
1178
- return models.map((m) => toUnifiedModel(m, "image_model"));
1179
- }, [])),
1215
+ .query(async ({ ctx, input }) => {
1216
+ const models = await safeProviderCall("imageByProvider", { provider: input.provider, userId: ctx.userId }, async () => {
1217
+ const instance = await instantiateProvider(input.provider, ctx.userId);
1218
+ if (!instance)
1219
+ return [];
1220
+ const models = await instance.getAvailableImageModels();
1221
+ return models.map((m) => toUnifiedModel(m, "image_model"));
1222
+ }, []);
1223
+ // Only a local model has files to download. Remote catalogs keep the
1224
+ // execution state that toUnifiedModel gave them.
1225
+ return models.some((model) => model.adapter)
1226
+ ? resolveProviderModelExecution(models, [input.provider])
1227
+ : models;
1228
+ }),
1229
+ rerankByProvider: protectedProcedure
1230
+ .input(providerInput)
1231
+ .output(modelsListOutput)
1232
+ .query(async ({ ctx, input }) => {
1233
+ const models = await safeProviderCall("rerankByProvider", { provider: input.provider, userId: ctx.userId }, async () => {
1234
+ const instance = await instantiateProvider(input.provider, ctx.userId);
1235
+ if (!instance)
1236
+ return [];
1237
+ const models = await instance.getAvailableRerankModels();
1238
+ return models.map((m) => toUnifiedModel(m, "rerank_model"));
1239
+ }, []);
1240
+ return resolveProviderModelExecution(models, [input.provider]);
1241
+ }),
1180
1242
  tts: protectedProcedure.output(modelsListOutput).query(async ({ ctx }) => {
1181
1243
  const availableIds = await getAvailableProviderIds(ctx.userId);
1182
1244
  const results = await Promise.all(availableIds.map((providerId) => safeProviderCall("tts (aggregate)", { provider: providerId, userId: ctx.userId }, async () => {
@@ -1254,18 +1316,21 @@ export const modelsRouter = router({
1254
1316
  const models = await instance.getAvailableASRModels();
1255
1317
  return models.map((m) => toUnifiedModel(m, "asr_model"));
1256
1318
  }, [])));
1257
- return results.flat();
1319
+ return resolveProviderModelExecution(results.flat(), availableIds);
1258
1320
  }),
1259
1321
  asrByProvider: protectedProcedure
1260
1322
  .input(providerInput)
1261
1323
  .output(modelsListOutput)
1262
- .query(async ({ ctx, input }) => safeProviderCall("asrByProvider", { provider: input.provider, userId: ctx.userId }, async () => {
1263
- const instance = await instantiateProvider(input.provider, ctx.userId);
1264
- if (!instance)
1265
- return [];
1266
- const models = await instance.getAvailableASRModels();
1267
- return models.map((m) => toUnifiedModel(m, "asr_model"));
1268
- }, [])),
1324
+ .query(async ({ ctx, input }) => {
1325
+ const models = await safeProviderCall("asrByProvider", { provider: input.provider, userId: ctx.userId }, async () => {
1326
+ const instance = await instantiateProvider(input.provider, ctx.userId);
1327
+ if (!instance)
1328
+ return [];
1329
+ const models = await instance.getAvailableASRModels();
1330
+ return models.map((m) => toUnifiedModel(m, "asr_model"));
1331
+ }, []);
1332
+ return resolveProviderModelExecution(models, [input.provider]);
1333
+ }),
1269
1334
  video: protectedProcedure.output(modelsListOutput).query(async ({ ctx }) => {
1270
1335
  const availableIds = await getAvailableProviderIds(ctx.userId);
1271
1336
  const results = await Promise.all(availableIds.map((providerId) => safeProviderCall("video (aggregate)", { provider: providerId, userId: ctx.userId }, async () => {
@@ -1290,13 +1355,16 @@ export const modelsRouter = router({
1290
1355
  embeddingByProvider: protectedProcedure
1291
1356
  .input(providerInput)
1292
1357
  .output(modelsListOutput)
1293
- .query(async ({ ctx, input }) => safeProviderCall("embeddingByProvider", { provider: input.provider, userId: ctx.userId }, async () => {
1294
- const instance = await instantiateProvider(input.provider, ctx.userId);
1295
- if (!instance)
1296
- return [];
1297
- const models = await instance.getAvailableEmbeddingModels();
1298
- return models.map((m) => toUnifiedModel(m, "embedding_model"));
1299
- }, [])),
1358
+ .query(async ({ ctx, input }) => {
1359
+ const models = await safeProviderCall("embeddingByProvider", { provider: input.provider, userId: ctx.userId }, async () => {
1360
+ const instance = await instantiateProvider(input.provider, ctx.userId);
1361
+ if (!instance)
1362
+ return [];
1363
+ const models = await instance.getAvailableEmbeddingModels();
1364
+ return models.map((m) => toUnifiedModel(m, "embedding_model"));
1365
+ }, []);
1366
+ return resolveProviderModelExecution(models, [input.provider]);
1367
+ }),
1300
1368
  /**
1301
1369
  * Fast batch cache status check for multiple models.
1302
1370
  */