@nodetool-ai/runtime 0.7.0-rc.23 → 0.8.1

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 (665) hide show
  1. package/README.md +29 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/agent-memory.d.ts +118 -0
  4. package/dist/agent-memory.d.ts.map +1 -0
  5. package/dist/agent-memory.js +186 -0
  6. package/dist/agent-memory.js.map +1 -0
  7. package/dist/async-local-storage.d.ts +20 -0
  8. package/dist/async-local-storage.d.ts.map +1 -0
  9. package/dist/async-local-storage.js +28 -0
  10. package/dist/async-local-storage.js.map +1 -0
  11. package/dist/blender-executor.d.ts +93 -0
  12. package/dist/blender-executor.d.ts.map +1 -0
  13. package/dist/blender-executor.js +294 -0
  14. package/dist/blender-executor.js.map +1 -0
  15. package/dist/comfy-executor.d.ts +23 -1
  16. package/dist/comfy-executor.d.ts.map +1 -1
  17. package/dist/comfy-executor.js +234 -55
  18. package/dist/comfy-executor.js.map +1 -1
  19. package/dist/context-packer.d.ts +1 -1
  20. package/dist/context-packer.d.ts.map +1 -1
  21. package/dist/context-packer.js +23 -25
  22. package/dist/context-packer.js.map +1 -1
  23. package/dist/context.d.ts +954 -127
  24. package/dist/context.d.ts.map +1 -1
  25. package/dist/context.js +2424 -513
  26. package/dist/context.js.map +1 -1
  27. package/dist/cost-reconciler.d.ts +32 -0
  28. package/dist/cost-reconciler.d.ts.map +1 -0
  29. package/dist/cost-reconciler.js +21 -0
  30. package/dist/cost-reconciler.js.map +1 -0
  31. package/dist/entities.d.ts +33 -0
  32. package/dist/entities.d.ts.map +1 -0
  33. package/dist/entities.js +43 -0
  34. package/dist/entities.js.map +1 -0
  35. package/dist/external-media-fetch.d.ts +29 -0
  36. package/dist/external-media-fetch.d.ts.map +1 -0
  37. package/dist/external-media-fetch.js +38 -0
  38. package/dist/external-media-fetch.js.map +1 -0
  39. package/dist/generation-receipt.d.ts +86 -0
  40. package/dist/generation-receipt.d.ts.map +1 -0
  41. package/dist/generation-receipt.js +137 -0
  42. package/dist/generation-receipt.js.map +1 -0
  43. package/dist/generation-registry.d.ts +67 -0
  44. package/dist/generation-registry.d.ts.map +1 -0
  45. package/dist/generation-registry.js +126 -0
  46. package/dist/generation-registry.js.map +1 -0
  47. package/dist/google/client.d.ts +196 -0
  48. package/dist/google/client.d.ts.map +1 -0
  49. package/dist/google/client.js +396 -0
  50. package/dist/google/client.js.map +1 -0
  51. package/dist/google/index.d.ts +3 -0
  52. package/dist/google/index.d.ts.map +1 -0
  53. package/dist/google/index.js +3 -0
  54. package/dist/google/index.js.map +1 -0
  55. package/dist/google/token.d.ts +15 -0
  56. package/dist/google/token.d.ts.map +1 -0
  57. package/dist/google/token.js +24 -0
  58. package/dist/google/token.js.map +1 -0
  59. package/dist/host-binaries.d.ts +106 -0
  60. package/dist/host-binaries.d.ts.map +1 -0
  61. package/dist/host-binaries.js +344 -0
  62. package/dist/host-binaries.js.map +1 -0
  63. package/dist/image-codec.d.ts +74 -0
  64. package/dist/image-codec.d.ts.map +1 -0
  65. package/dist/image-codec.js +273 -0
  66. package/dist/image-codec.js.map +1 -0
  67. package/dist/index.d.ts +56 -6
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +43 -4
  70. package/dist/index.js.map +1 -1
  71. package/dist/invocation-account.d.ts +43 -0
  72. package/dist/invocation-account.d.ts.map +1 -0
  73. package/dist/invocation-account.js +60 -0
  74. package/dist/invocation-account.js.map +1 -0
  75. package/dist/media-ref-bytes.d.ts +19 -0
  76. package/dist/media-ref-bytes.d.ts.map +1 -0
  77. package/dist/media-ref-bytes.js +181 -0
  78. package/dist/media-ref-bytes.js.map +1 -0
  79. package/dist/node-executor.d.ts +113 -2
  80. package/dist/node-executor.d.ts.map +1 -1
  81. package/dist/permission-gate.d.ts +152 -0
  82. package/dist/permission-gate.d.ts.map +1 -0
  83. package/dist/permission-gate.js +87 -0
  84. package/dist/permission-gate.js.map +1 -0
  85. package/dist/prefixed-storage-adapter.d.ts +33 -0
  86. package/dist/prefixed-storage-adapter.d.ts.map +1 -0
  87. package/dist/prefixed-storage-adapter.js +70 -0
  88. package/dist/prefixed-storage-adapter.js.map +1 -0
  89. package/dist/prompt-asset-refs.d.ts +222 -0
  90. package/dist/prompt-asset-refs.d.ts.map +1 -0
  91. package/dist/prompt-asset-refs.js +751 -0
  92. package/dist/prompt-asset-refs.js.map +1 -0
  93. package/dist/provider-cache.d.ts +3 -0
  94. package/dist/provider-cache.d.ts.map +1 -0
  95. package/dist/provider-cache.js +8 -0
  96. package/dist/provider-cache.js.map +1 -0
  97. package/dist/providers/aki-provider.d.ts +33 -10
  98. package/dist/providers/aki-provider.d.ts.map +1 -1
  99. package/dist/providers/aki-provider.js +84 -77
  100. package/dist/providers/aki-provider.js.map +1 -1
  101. package/dist/providers/alibaba-provider.d.ts +39 -0
  102. package/dist/providers/alibaba-provider.d.ts.map +1 -0
  103. package/dist/providers/alibaba-provider.js +86 -0
  104. package/dist/providers/alibaba-provider.js.map +1 -0
  105. package/dist/providers/anthropic-provider.d.ts +52 -3
  106. package/dist/providers/anthropic-provider.d.ts.map +1 -1
  107. package/dist/providers/anthropic-provider.js +1020 -338
  108. package/dist/providers/anthropic-provider.js.map +1 -1
  109. package/dist/providers/atlascloud-provider.d.ts +101 -0
  110. package/dist/providers/atlascloud-provider.d.ts.map +1 -0
  111. package/dist/providers/atlascloud-provider.js +1009 -0
  112. package/dist/providers/atlascloud-provider.js.map +1 -0
  113. package/dist/providers/atlascloud-transport.d.ts +100 -0
  114. package/dist/providers/atlascloud-transport.d.ts.map +1 -0
  115. package/dist/providers/atlascloud-transport.js +364 -0
  116. package/dist/providers/atlascloud-transport.js.map +1 -0
  117. package/dist/providers/atlascloud-webhook-registry.d.ts +35 -0
  118. package/dist/providers/atlascloud-webhook-registry.d.ts.map +1 -0
  119. package/dist/providers/atlascloud-webhook-registry.js +104 -0
  120. package/dist/providers/atlascloud-webhook-registry.js.map +1 -0
  121. package/dist/providers/audio-mime.d.ts +11 -0
  122. package/dist/providers/audio-mime.d.ts.map +1 -0
  123. package/dist/providers/audio-mime.js +46 -0
  124. package/dist/providers/audio-mime.js.map +1 -0
  125. package/dist/providers/base-provider.d.ts +481 -24
  126. package/dist/providers/base-provider.d.ts.map +1 -1
  127. package/dist/providers/base-provider.js +1259 -42
  128. package/dist/providers/base-provider.js.map +1 -1
  129. package/dist/providers/cassette-provider.d.ts +217 -0
  130. package/dist/providers/cassette-provider.d.ts.map +1 -0
  131. package/dist/providers/cassette-provider.js +502 -0
  132. package/dist/providers/cassette-provider.js.map +1 -0
  133. package/dist/providers/cerebras-provider.d.ts +6 -12
  134. package/dist/providers/cerebras-provider.d.ts.map +1 -1
  135. package/dist/providers/cerebras-provider.js +8 -33
  136. package/dist/providers/cerebras-provider.js.map +1 -1
  137. package/dist/providers/claude-agent-provider.d.ts +131 -68
  138. package/dist/providers/claude-agent-provider.d.ts.map +1 -1
  139. package/dist/providers/claude-agent-provider.js +1095 -515
  140. package/dist/providers/claude-agent-provider.js.map +1 -1
  141. package/dist/providers/codex-provider.d.ts +82 -0
  142. package/dist/providers/codex-provider.d.ts.map +1 -0
  143. package/dist/providers/codex-provider.js +492 -0
  144. package/dist/providers/codex-provider.js.map +1 -0
  145. package/dist/providers/cohere-provider.d.ts +5 -2
  146. package/dist/providers/cohere-provider.d.ts.map +1 -1
  147. package/dist/providers/cohere-provider.js +9 -2
  148. package/dist/providers/cohere-provider.js.map +1 -1
  149. package/dist/providers/comfy-cloud-provider.d.ts +30 -0
  150. package/dist/providers/comfy-cloud-provider.d.ts.map +1 -0
  151. package/dist/providers/comfy-cloud-provider.js +42 -0
  152. package/dist/providers/comfy-cloud-provider.js.map +1 -0
  153. package/dist/providers/content-filter.d.ts +46 -0
  154. package/dist/providers/content-filter.d.ts.map +1 -0
  155. package/dist/providers/content-filter.js +92 -0
  156. package/dist/providers/content-filter.js.map +1 -0
  157. package/dist/providers/context-exceeded.d.ts +37 -0
  158. package/dist/providers/context-exceeded.d.ts.map +1 -0
  159. package/dist/providers/context-exceeded.js +114 -0
  160. package/dist/providers/context-exceeded.js.map +1 -0
  161. package/dist/providers/context-window.d.ts +44 -0
  162. package/dist/providers/context-window.d.ts.map +1 -0
  163. package/dist/providers/context-window.js +145 -0
  164. package/dist/providers/context-window.js.map +1 -0
  165. package/dist/providers/contract/index.d.ts +4 -0
  166. package/dist/providers/contract/index.d.ts.map +1 -0
  167. package/dist/providers/contract/index.js +4 -0
  168. package/dist/providers/contract/index.js.map +1 -0
  169. package/dist/providers/contract/probe-manifest.d.ts +75 -0
  170. package/dist/providers/contract/probe-manifest.d.ts.map +1 -0
  171. package/dist/providers/contract/probe-manifest.js +379 -0
  172. package/dist/providers/contract/probe-manifest.js.map +1 -0
  173. package/dist/providers/contract/probe-runner.d.ts +57 -0
  174. package/dist/providers/contract/probe-runner.d.ts.map +1 -0
  175. package/dist/providers/contract/probe-runner.js +180 -0
  176. package/dist/providers/contract/probe-runner.js.map +1 -0
  177. package/dist/providers/contract/redact.d.ts +29 -0
  178. package/dist/providers/contract/redact.d.ts.map +1 -0
  179. package/dist/providers/contract/redact.js +113 -0
  180. package/dist/providers/contract/redact.js.map +1 -0
  181. package/dist/providers/core-tools.d.ts +74 -0
  182. package/dist/providers/core-tools.d.ts.map +1 -0
  183. package/dist/providers/core-tools.js +127 -0
  184. package/dist/providers/core-tools.js.map +1 -0
  185. package/dist/providers/cost-calculator.d.ts +69 -50
  186. package/dist/providers/cost-calculator.d.ts.map +1 -1
  187. package/dist/providers/cost-calculator.js +207 -397
  188. package/dist/providers/cost-calculator.js.map +1 -1
  189. package/dist/providers/credential-check.d.ts +45 -0
  190. package/dist/providers/credential-check.d.ts.map +1 -0
  191. package/dist/providers/credential-check.js +159 -0
  192. package/dist/providers/credential-check.js.map +1 -0
  193. package/dist/providers/custom-model-kinds.d.ts +33 -0
  194. package/dist/providers/custom-model-kinds.d.ts.map +1 -0
  195. package/dist/providers/custom-model-kinds.js +96 -0
  196. package/dist/providers/custom-model-kinds.js.map +1 -0
  197. package/dist/providers/custom-openai-provider.d.ts +81 -0
  198. package/dist/providers/custom-openai-provider.d.ts.map +1 -0
  199. package/dist/providers/custom-openai-provider.js +182 -0
  200. package/dist/providers/custom-openai-provider.js.map +1 -0
  201. package/dist/providers/custom-provider-registry.d.ts +19 -0
  202. package/dist/providers/custom-provider-registry.d.ts.map +1 -0
  203. package/dist/providers/custom-provider-registry.js +52 -0
  204. package/dist/providers/custom-provider-registry.js.map +1 -0
  205. package/dist/providers/deepseek-provider.d.ts +8 -14
  206. package/dist/providers/deepseek-provider.d.ts.map +1 -1
  207. package/dist/providers/deepseek-provider.js +6 -35
  208. package/dist/providers/deepseek-provider.js.map +1 -1
  209. package/dist/providers/defaults.d.ts +12 -0
  210. package/dist/providers/defaults.d.ts.map +1 -0
  211. package/dist/providers/defaults.js +12 -0
  212. package/dist/providers/defaults.js.map +1 -0
  213. package/dist/providers/elevenlabs-provider.d.ts +49 -0
  214. package/dist/providers/elevenlabs-provider.d.ts.map +1 -0
  215. package/dist/providers/elevenlabs-provider.js +142 -0
  216. package/dist/providers/elevenlabs-provider.js.map +1 -0
  217. package/dist/providers/entity-references.d.ts +31 -0
  218. package/dist/providers/entity-references.d.ts.map +1 -0
  219. package/dist/providers/entity-references.js +113 -0
  220. package/dist/providers/entity-references.js.map +1 -0
  221. package/dist/providers/evolink-provider.d.ts +38 -0
  222. package/dist/providers/evolink-provider.d.ts.map +1 -0
  223. package/dist/providers/evolink-provider.js +304 -0
  224. package/dist/providers/evolink-provider.js.map +1 -0
  225. package/dist/providers/fake-provider.d.ts +72 -1
  226. package/dist/providers/fake-provider.d.ts.map +1 -1
  227. package/dist/providers/fake-provider.js +203 -1
  228. package/dist/providers/fake-provider.js.map +1 -1
  229. package/dist/providers/fal-generations.d.ts +106 -0
  230. package/dist/providers/fal-generations.d.ts.map +1 -0
  231. package/dist/providers/fal-generations.js +286 -0
  232. package/dist/providers/fal-generations.js.map +1 -0
  233. package/dist/providers/fal-provider.d.ts +171 -7
  234. package/dist/providers/fal-provider.d.ts.map +1 -1
  235. package/dist/providers/fal-provider.js +1369 -64
  236. package/dist/providers/fal-provider.js.map +1 -1
  237. package/dist/providers/fal-queue.d.ts +47 -0
  238. package/dist/providers/fal-queue.d.ts.map +1 -0
  239. package/dist/providers/fal-queue.js +231 -0
  240. package/dist/providers/fal-queue.js.map +1 -0
  241. package/dist/providers/gemini-provider.d.ts +148 -8
  242. package/dist/providers/gemini-provider.d.ts.map +1 -1
  243. package/dist/providers/gemini-provider.js +1500 -316
  244. package/dist/providers/gemini-provider.js.map +1 -1
  245. package/dist/providers/gmi-provider.d.ts +21 -0
  246. package/dist/providers/gmi-provider.d.ts.map +1 -0
  247. package/dist/providers/gmi-provider.js +34 -0
  248. package/dist/providers/gmi-provider.js.map +1 -0
  249. package/dist/providers/gpt-image-size.d.ts +3 -0
  250. package/dist/providers/gpt-image-size.d.ts.map +1 -0
  251. package/dist/providers/gpt-image-size.js +37 -0
  252. package/dist/providers/gpt-image-size.js.map +1 -0
  253. package/dist/providers/groq-provider.d.ts +9 -12
  254. package/dist/providers/groq-provider.d.ts.map +1 -1
  255. package/dist/providers/groq-provider.js +19 -33
  256. package/dist/providers/groq-provider.js.map +1 -1
  257. package/dist/providers/groq-request.d.ts +38 -0
  258. package/dist/providers/groq-request.d.ts.map +1 -0
  259. package/dist/providers/groq-request.js +138 -0
  260. package/dist/providers/groq-request.js.map +1 -0
  261. package/dist/providers/higgsfield-provider.d.ts +30 -0
  262. package/dist/providers/higgsfield-provider.d.ts.map +1 -0
  263. package/dist/providers/higgsfield-provider.js +131 -0
  264. package/dist/providers/higgsfield-provider.js.map +1 -0
  265. package/dist/providers/higgsfield-transport.d.ts +106 -0
  266. package/dist/providers/higgsfield-transport.d.ts.map +1 -0
  267. package/dist/providers/higgsfield-transport.js +182 -0
  268. package/dist/providers/higgsfield-transport.js.map +1 -0
  269. package/dist/providers/http-transport.d.ts +74 -0
  270. package/dist/providers/http-transport.d.ts.map +1 -0
  271. package/dist/providers/http-transport.js +152 -0
  272. package/dist/providers/http-transport.js.map +1 -0
  273. package/dist/providers/huggingface-provider.d.ts +71 -3
  274. package/dist/providers/huggingface-provider.d.ts.map +1 -1
  275. package/dist/providers/huggingface-provider.js +230 -34
  276. package/dist/providers/huggingface-provider.js.map +1 -1
  277. package/dist/providers/image-mime.d.ts +39 -0
  278. package/dist/providers/image-mime.d.ts.map +1 -0
  279. package/dist/providers/image-mime.js +111 -0
  280. package/dist/providers/image-mime.js.map +1 -0
  281. package/dist/providers/image-ref.d.ts +21 -0
  282. package/dist/providers/image-ref.d.ts.map +1 -0
  283. package/dist/providers/image-ref.js +44 -0
  284. package/dist/providers/image-ref.js.map +1 -0
  285. package/dist/providers/index.d.ts +84 -8
  286. package/dist/providers/index.d.ts.map +1 -1
  287. package/dist/providers/index.js +239 -56
  288. package/dist/providers/index.js.map +1 -1
  289. package/dist/providers/jina-provider.d.ts +10 -2
  290. package/dist/providers/jina-provider.d.ts.map +1 -1
  291. package/dist/providers/jina-provider.js +16 -7
  292. package/dist/providers/jina-provider.js.map +1 -1
  293. package/dist/providers/kie-provider.d.ts +170 -9
  294. package/dist/providers/kie-provider.d.ts.map +1 -1
  295. package/dist/providers/kie-provider.js +1176 -228
  296. package/dist/providers/kie-provider.js.map +1 -1
  297. package/dist/providers/kie-webhook-registry.d.ts +28 -0
  298. package/dist/providers/kie-webhook-registry.d.ts.map +1 -0
  299. package/dist/providers/kie-webhook-registry.js +91 -0
  300. package/dist/providers/kie-webhook-registry.js.map +1 -0
  301. package/dist/providers/llama-provider.d.ts +21 -37
  302. package/dist/providers/llama-provider.d.ts.map +1 -1
  303. package/dist/providers/llama-provider.js +43 -354
  304. package/dist/providers/llama-provider.js.map +1 -1
  305. package/dist/providers/lmstudio-provider.d.ts +4 -7
  306. package/dist/providers/lmstudio-provider.d.ts.map +1 -1
  307. package/dist/providers/lmstudio-provider.js +24 -15
  308. package/dist/providers/lmstudio-provider.js.map +1 -1
  309. package/dist/providers/manifest-models.d.ts +341 -1
  310. package/dist/providers/manifest-models.d.ts.map +1 -1
  311. package/dist/providers/manifest-models.js +1106 -22
  312. package/dist/providers/manifest-models.js.map +1 -1
  313. package/dist/providers/media-mime.d.ts +14 -0
  314. package/dist/providers/media-mime.d.ts.map +1 -0
  315. package/dist/providers/media-mime.js +35 -0
  316. package/dist/providers/media-mime.js.map +1 -0
  317. package/dist/providers/meshy-provider.d.ts +14 -1
  318. package/dist/providers/meshy-provider.d.ts.map +1 -1
  319. package/dist/providers/meshy-provider.js +76 -46
  320. package/dist/providers/meshy-provider.js.map +1 -1
  321. package/dist/providers/meta-provider.d.ts +22 -0
  322. package/dist/providers/meta-provider.d.ts.map +1 -0
  323. package/dist/providers/meta-provider.js +54 -0
  324. package/dist/providers/meta-provider.js.map +1 -0
  325. package/dist/providers/minimax-provider.d.ts +25 -18
  326. package/dist/providers/minimax-provider.d.ts.map +1 -1
  327. package/dist/providers/minimax-provider.js +211 -72
  328. package/dist/providers/minimax-provider.js.map +1 -1
  329. package/dist/providers/mistral-provider.d.ts +6 -12
  330. package/dist/providers/mistral-provider.d.ts.map +1 -1
  331. package/dist/providers/mistral-provider.js +10 -34
  332. package/dist/providers/mistral-provider.js.map +1 -1
  333. package/dist/providers/moonshot-provider.d.ts +11 -15
  334. package/dist/providers/moonshot-provider.d.ts.map +1 -1
  335. package/dist/providers/moonshot-provider.js +33 -23
  336. package/dist/providers/moonshot-provider.js.map +1 -1
  337. package/dist/providers/node-llama-cpp-provider.d.ts +98 -0
  338. package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -0
  339. package/dist/providers/node-llama-cpp-provider.js +479 -0
  340. package/dist/providers/node-llama-cpp-provider.js.map +1 -0
  341. package/dist/providers/nodetool-provider.d.ts +49 -0
  342. package/dist/providers/nodetool-provider.d.ts.map +1 -0
  343. package/dist/providers/nodetool-provider.js +224 -0
  344. package/dist/providers/nodetool-provider.js.map +1 -0
  345. package/dist/providers/oauth/browser-launcher.d.ts +23 -0
  346. package/dist/providers/oauth/browser-launcher.d.ts.map +1 -0
  347. package/dist/providers/oauth/browser-launcher.js +45 -0
  348. package/dist/providers/oauth/browser-launcher.js.map +1 -0
  349. package/dist/providers/oauth/claude-code-credentials.d.ts +74 -0
  350. package/dist/providers/oauth/claude-code-credentials.d.ts.map +1 -0
  351. package/dist/providers/oauth/claude-code-credentials.js +133 -0
  352. package/dist/providers/oauth/claude-code-credentials.js.map +1 -0
  353. package/dist/providers/oauth/claude-code-login.d.ts +124 -0
  354. package/dist/providers/oauth/claude-code-login.d.ts.map +1 -0
  355. package/dist/providers/oauth/claude-code-login.js +230 -0
  356. package/dist/providers/oauth/claude-code-login.js.map +1 -0
  357. package/dist/providers/oauth/claude-code-oauth-client.d.ts +111 -0
  358. package/dist/providers/oauth/claude-code-oauth-client.d.ts.map +1 -0
  359. package/dist/providers/oauth/claude-code-oauth-client.js +207 -0
  360. package/dist/providers/oauth/claude-code-oauth-client.js.map +1 -0
  361. package/dist/providers/oauth/errors.d.ts +54 -0
  362. package/dist/providers/oauth/errors.d.ts.map +1 -0
  363. package/dist/providers/oauth/errors.js +79 -0
  364. package/dist/providers/oauth/errors.js.map +1 -0
  365. package/dist/providers/oauth/index.d.ts +105 -0
  366. package/dist/providers/oauth/index.d.ts.map +1 -0
  367. package/dist/providers/oauth/index.js +167 -0
  368. package/dist/providers/oauth/index.js.map +1 -0
  369. package/dist/providers/oauth/jwt-claims.d.ts +23 -0
  370. package/dist/providers/oauth/jwt-claims.d.ts.map +1 -0
  371. package/dist/providers/oauth/jwt-claims.js +67 -0
  372. package/dist/providers/oauth/jwt-claims.js.map +1 -0
  373. package/dist/providers/oauth/local-callback-server.d.ts +60 -0
  374. package/dist/providers/oauth/local-callback-server.d.ts.map +1 -0
  375. package/dist/providers/oauth/local-callback-server.js +148 -0
  376. package/dist/providers/oauth/local-callback-server.js.map +1 -0
  377. package/dist/providers/oauth/oauth-client.d.ts +55 -0
  378. package/dist/providers/oauth/oauth-client.d.ts.map +1 -0
  379. package/dist/providers/oauth/oauth-client.js +161 -0
  380. package/dist/providers/oauth/oauth-client.js.map +1 -0
  381. package/dist/providers/oauth/openai-oauth-provider.d.ts +129 -0
  382. package/dist/providers/oauth/openai-oauth-provider.d.ts.map +1 -0
  383. package/dist/providers/oauth/openai-oauth-provider.js +265 -0
  384. package/dist/providers/oauth/openai-oauth-provider.js.map +1 -0
  385. package/dist/providers/oauth/pkce-helper.d.ts +43 -0
  386. package/dist/providers/oauth/pkce-helper.d.ts.map +1 -0
  387. package/dist/providers/oauth/pkce-helper.js +57 -0
  388. package/dist/providers/oauth/pkce-helper.js.map +1 -0
  389. package/dist/providers/oauth/redaction.d.ts +22 -0
  390. package/dist/providers/oauth/redaction.d.ts.map +1 -0
  391. package/dist/providers/oauth/redaction.js +59 -0
  392. package/dist/providers/oauth/redaction.js.map +1 -0
  393. package/dist/providers/oauth/secure-credential-store.d.ts +67 -0
  394. package/dist/providers/oauth/secure-credential-store.d.ts.map +1 -0
  395. package/dist/providers/oauth/secure-credential-store.js +73 -0
  396. package/dist/providers/oauth/secure-credential-store.js.map +1 -0
  397. package/dist/providers/oauth/token-store.d.ts +53 -0
  398. package/dist/providers/oauth/token-store.d.ts.map +1 -0
  399. package/dist/providers/oauth/token-store.js +78 -0
  400. package/dist/providers/oauth/token-store.js.map +1 -0
  401. package/dist/providers/oauth/types.d.ts +64 -0
  402. package/dist/providers/oauth/types.d.ts.map +1 -0
  403. package/dist/providers/oauth/types.js +12 -0
  404. package/dist/providers/oauth/types.js.map +1 -0
  405. package/dist/providers/object-tracking.d.ts +47 -0
  406. package/dist/providers/object-tracking.d.ts.map +1 -0
  407. package/dist/providers/object-tracking.js +46 -0
  408. package/dist/providers/object-tracking.js.map +1 -0
  409. package/dist/providers/offline-model-index.d.ts +20 -0
  410. package/dist/providers/offline-model-index.d.ts.map +1 -0
  411. package/dist/providers/offline-model-index.js +112 -0
  412. package/dist/providers/offline-model-index.js.map +1 -0
  413. package/dist/providers/ollama-provider.d.ts +28 -1
  414. package/dist/providers/ollama-provider.d.ts.map +1 -1
  415. package/dist/providers/ollama-provider.js +193 -43
  416. package/dist/providers/ollama-provider.js.map +1 -1
  417. package/dist/providers/openai-compat/client.d.ts +57 -0
  418. package/dist/providers/openai-compat/client.d.ts.map +1 -0
  419. package/dist/providers/openai-compat/client.js +157 -0
  420. package/dist/providers/openai-compat/client.js.map +1 -0
  421. package/dist/providers/openai-compat/decode.d.ts +36 -0
  422. package/dist/providers/openai-compat/decode.d.ts.map +1 -0
  423. package/dist/providers/openai-compat/decode.js +55 -0
  424. package/dist/providers/openai-compat/decode.js.map +1 -0
  425. package/dist/providers/openai-compat/errors.d.ts +54 -0
  426. package/dist/providers/openai-compat/errors.d.ts.map +1 -0
  427. package/dist/providers/openai-compat/errors.js +144 -0
  428. package/dist/providers/openai-compat/errors.js.map +1 -0
  429. package/dist/providers/openai-compat/index.d.ts +8 -0
  430. package/dist/providers/openai-compat/index.d.ts.map +1 -0
  431. package/dist/providers/openai-compat/index.js +5 -0
  432. package/dist/providers/openai-compat/index.js.map +1 -0
  433. package/dist/providers/openai-compat/sse.d.ts +14 -0
  434. package/dist/providers/openai-compat/sse.d.ts.map +1 -0
  435. package/dist/providers/openai-compat/sse.js +69 -0
  436. package/dist/providers/openai-compat/sse.js.map +1 -0
  437. package/dist/providers/openai-compat/types.d.ts +75 -0
  438. package/dist/providers/openai-compat/types.d.ts.map +1 -0
  439. package/dist/providers/openai-compat/types.js +9 -0
  440. package/dist/providers/openai-compat/types.js.map +1 -0
  441. package/dist/providers/openai-compat-provider.d.ts +90 -0
  442. package/dist/providers/openai-compat-provider.d.ts.map +1 -0
  443. package/dist/providers/openai-compat-provider.js +282 -0
  444. package/dist/providers/openai-compat-provider.js.map +1 -0
  445. package/dist/providers/openai-provider.d.ts +89 -26
  446. package/dist/providers/openai-provider.d.ts.map +1 -1
  447. package/dist/providers/openai-provider.js +990 -105
  448. package/dist/providers/openai-provider.js.map +1 -1
  449. package/dist/providers/openrouter-provider.d.ts +6 -12
  450. package/dist/providers/openrouter-provider.d.ts.map +1 -1
  451. package/dist/providers/openrouter-provider.js +24 -53
  452. package/dist/providers/openrouter-provider.js.map +1 -1
  453. package/dist/providers/provider-call-failure.d.ts +39 -0
  454. package/dist/providers/provider-call-failure.d.ts.map +1 -0
  455. package/dist/providers/provider-call-failure.js +132 -0
  456. package/dist/providers/provider-call-failure.js.map +1 -0
  457. package/dist/providers/provider-error.d.ts +59 -0
  458. package/dist/providers/provider-error.d.ts.map +1 -0
  459. package/dist/providers/provider-error.js +165 -0
  460. package/dist/providers/provider-error.js.map +1 -0
  461. package/dist/providers/provider-generations.d.ts +99 -0
  462. package/dist/providers/provider-generations.d.ts.map +1 -0
  463. package/dist/providers/provider-generations.js +71 -0
  464. package/dist/providers/provider-generations.js.map +1 -0
  465. package/dist/providers/provider-queue.d.ts +62 -0
  466. package/dist/providers/provider-queue.d.ts.map +1 -0
  467. package/dist/providers/provider-queue.js +28 -0
  468. package/dist/providers/provider-queue.js.map +1 -0
  469. package/dist/providers/provider-registry.d.ts +33 -14
  470. package/dist/providers/provider-registry.d.ts.map +1 -1
  471. package/dist/providers/provider-registry.js +85 -68
  472. package/dist/providers/provider-registry.js.map +1 -1
  473. package/dist/providers/provider-request-log.d.ts +53 -0
  474. package/dist/providers/provider-request-log.d.ts.map +1 -0
  475. package/dist/providers/provider-request-log.js +157 -0
  476. package/dist/providers/provider-request-log.js.map +1 -0
  477. package/dist/providers/provider-session.d.ts +3 -0
  478. package/dist/providers/provider-session.d.ts.map +1 -0
  479. package/dist/providers/provider-session.js +10 -0
  480. package/dist/providers/provider-session.js.map +1 -0
  481. package/dist/providers/provider-transport.d.ts +11 -0
  482. package/dist/providers/provider-transport.d.ts.map +1 -0
  483. package/dist/providers/provider-transport.js +11 -0
  484. package/dist/providers/provider-transport.js.map +1 -0
  485. package/dist/providers/python-provider.d.ts +20 -12
  486. package/dist/providers/python-provider.d.ts.map +1 -1
  487. package/dist/providers/python-provider.js +185 -25
  488. package/dist/providers/python-provider.js.map +1 -1
  489. package/dist/providers/replicate-provider.d.ts +89 -7
  490. package/dist/providers/replicate-provider.d.ts.map +1 -1
  491. package/dist/providers/replicate-provider.js +801 -65
  492. package/dist/providers/replicate-provider.js.map +1 -1
  493. package/dist/providers/replicate-retry.d.ts +30 -0
  494. package/dist/providers/replicate-retry.d.ts.map +1 -0
  495. package/dist/providers/replicate-retry.js +97 -0
  496. package/dist/providers/replicate-retry.js.map +1 -0
  497. package/dist/providers/responses-api.d.ts +27 -0
  498. package/dist/providers/responses-api.d.ts.map +1 -0
  499. package/dist/providers/responses-api.js +297 -0
  500. package/dist/providers/responses-api.js.map +1 -0
  501. package/dist/providers/reve-provider.d.ts +45 -0
  502. package/dist/providers/reve-provider.d.ts.map +1 -0
  503. package/dist/providers/reve-provider.js +159 -0
  504. package/dist/providers/reve-provider.js.map +1 -0
  505. package/dist/providers/rodin-provider.d.ts +23 -1
  506. package/dist/providers/rodin-provider.d.ts.map +1 -1
  507. package/dist/providers/rodin-provider.js +89 -51
  508. package/dist/providers/rodin-provider.js.map +1 -1
  509. package/dist/providers/safe-url.d.ts +70 -0
  510. package/dist/providers/safe-url.d.ts.map +1 -0
  511. package/dist/providers/safe-url.js +277 -0
  512. package/dist/providers/safe-url.js.map +1 -0
  513. package/dist/providers/scripted-provider.d.ts +9 -0
  514. package/dist/providers/scripted-provider.d.ts.map +1 -1
  515. package/dist/providers/scripted-provider.js +86 -10
  516. package/dist/providers/scripted-provider.js.map +1 -1
  517. package/dist/providers/structured-output.d.ts +42 -0
  518. package/dist/providers/structured-output.d.ts.map +1 -0
  519. package/dist/providers/structured-output.js +83 -0
  520. package/dist/providers/structured-output.js.map +1 -0
  521. package/dist/providers/together-provider.d.ts +19 -16
  522. package/dist/providers/together-provider.d.ts.map +1 -1
  523. package/dist/providers/together-provider.js +103 -225
  524. package/dist/providers/together-provider.js.map +1 -1
  525. package/dist/providers/topaz-provider.d.ts +44 -0
  526. package/dist/providers/topaz-provider.d.ts.map +1 -0
  527. package/dist/providers/topaz-provider.js +239 -0
  528. package/dist/providers/topaz-provider.js.map +1 -0
  529. package/dist/providers/types.d.ts +603 -4
  530. package/dist/providers/types.d.ts.map +1 -1
  531. package/dist/providers/types.js +81 -1
  532. package/dist/providers/types.js.map +1 -1
  533. package/dist/providers/useapi-provider.d.ts +27 -0
  534. package/dist/providers/useapi-provider.d.ts.map +1 -0
  535. package/dist/providers/useapi-provider.js +266 -0
  536. package/dist/providers/useapi-provider.js.map +1 -0
  537. package/dist/providers/video-duration.d.ts +6 -0
  538. package/dist/providers/video-duration.d.ts.map +1 -0
  539. package/dist/providers/video-duration.js +63 -0
  540. package/dist/providers/video-duration.js.map +1 -0
  541. package/dist/providers/video-frame-fallback.d.ts +39 -0
  542. package/dist/providers/video-frame-fallback.d.ts.map +1 -0
  543. package/dist/providers/video-frame-fallback.js +155 -0
  544. package/dist/providers/video-frame-fallback.js.map +1 -0
  545. package/dist/providers/video-frames.d.ts +61 -0
  546. package/dist/providers/video-frames.d.ts.map +1 -0
  547. package/dist/providers/video-frames.js +208 -0
  548. package/dist/providers/video-frames.js.map +1 -0
  549. package/dist/providers/video-mime.d.ts +14 -0
  550. package/dist/providers/video-mime.d.ts.map +1 -0
  551. package/dist/providers/video-mime.js +44 -0
  552. package/dist/providers/video-mime.js.map +1 -0
  553. package/dist/providers/video-to-audio.d.ts +34 -0
  554. package/dist/providers/video-to-audio.d.ts.map +1 -0
  555. package/dist/providers/video-to-audio.js +62 -0
  556. package/dist/providers/video-to-audio.js.map +1 -0
  557. package/dist/providers/vllm-provider.d.ts +22 -8
  558. package/dist/providers/vllm-provider.d.ts.map +1 -1
  559. package/dist/providers/vllm-provider.js +48 -23
  560. package/dist/providers/vllm-provider.js.map +1 -1
  561. package/dist/providers/voyage-provider.d.ts +10 -2
  562. package/dist/providers/voyage-provider.d.ts.map +1 -1
  563. package/dist/providers/voyage-provider.js +16 -7
  564. package/dist/providers/voyage-provider.js.map +1 -1
  565. package/dist/providers/xai-provider.d.ts +54 -13
  566. package/dist/providers/xai-provider.d.ts.map +1 -1
  567. package/dist/providers/xai-provider.js +299 -22
  568. package/dist/providers/xai-provider.js.map +1 -1
  569. package/dist/python-bridge-base.d.ts +358 -0
  570. package/dist/python-bridge-base.d.ts.map +1 -0
  571. package/dist/python-bridge-base.js +1557 -0
  572. package/dist/python-bridge-base.js.map +1 -0
  573. package/dist/python-bridge-codec.d.ts +28 -0
  574. package/dist/python-bridge-codec.d.ts.map +1 -0
  575. package/dist/python-bridge-codec.js +39 -0
  576. package/dist/python-bridge-codec.js.map +1 -0
  577. package/dist/python-bridge-factory.d.ts +52 -0
  578. package/dist/python-bridge-factory.d.ts.map +1 -0
  579. package/dist/python-bridge-factory.js +69 -0
  580. package/dist/python-bridge-factory.js.map +1 -0
  581. package/dist/python-bridge-framing.d.ts +68 -0
  582. package/dist/python-bridge-framing.d.ts.map +1 -0
  583. package/dist/python-bridge-framing.js +91 -0
  584. package/dist/python-bridge-framing.js.map +1 -0
  585. package/dist/python-bridge-types.d.ts +545 -2
  586. package/dist/python-bridge-types.d.ts.map +1 -1
  587. package/dist/python-bridge-types.js +49 -1
  588. package/dist/python-bridge-types.js.map +1 -1
  589. package/dist/python-graph-resolver.d.ts +57 -0
  590. package/dist/python-graph-resolver.d.ts.map +1 -0
  591. package/dist/python-graph-resolver.js +79 -0
  592. package/dist/python-graph-resolver.js.map +1 -0
  593. package/dist/python-node-executor.d.ts +36 -4
  594. package/dist/python-node-executor.d.ts.map +1 -1
  595. package/dist/python-node-executor.js +177 -86
  596. package/dist/python-node-executor.js.map +1 -1
  597. package/dist/python-stdio-bridge.d.ts +18 -37
  598. package/dist/python-stdio-bridge.d.ts.map +1 -1
  599. package/dist/python-stdio-bridge.js +148 -475
  600. package/dist/python-stdio-bridge.js.map +1 -1
  601. package/dist/python-websocket-bridge.d.ts +140 -0
  602. package/dist/python-websocket-bridge.d.ts.map +1 -0
  603. package/dist/python-websocket-bridge.js +561 -0
  604. package/dist/python-websocket-bridge.js.map +1 -0
  605. package/dist/python-worker-stderr.d.ts +4 -0
  606. package/dist/python-worker-stderr.d.ts.map +1 -0
  607. package/dist/python-worker-stderr.js +24 -0
  608. package/dist/python-worker-stderr.js.map +1 -0
  609. package/dist/recommended-models.d.ts +2 -2
  610. package/dist/recommended-models.d.ts.map +1 -1
  611. package/dist/recommended-models.js +24 -4
  612. package/dist/recommended-models.js.map +1 -1
  613. package/dist/recoverable-node-error.d.ts +31 -0
  614. package/dist/recoverable-node-error.d.ts.map +1 -0
  615. package/dist/recoverable-node-error.js +37 -0
  616. package/dist/recoverable-node-error.js.map +1 -0
  617. package/dist/redact-params.d.ts +13 -0
  618. package/dist/redact-params.d.ts.map +1 -0
  619. package/dist/redact-params.js +57 -0
  620. package/dist/redact-params.js.map +1 -0
  621. package/dist/sandbox-module-catalog.d.ts +43 -0
  622. package/dist/sandbox-module-catalog.d.ts.map +1 -0
  623. package/dist/sandbox-module-catalog.js +25 -0
  624. package/dist/sandbox-module-catalog.js.map +1 -0
  625. package/dist/storage-workspace.d.ts +59 -0
  626. package/dist/storage-workspace.d.ts.map +1 -0
  627. package/dist/storage-workspace.js +426 -0
  628. package/dist/storage-workspace.js.map +1 -0
  629. package/dist/swappable-python-bridge.d.ts +83 -0
  630. package/dist/swappable-python-bridge.d.ts.map +1 -0
  631. package/dist/swappable-python-bridge.js +246 -0
  632. package/dist/swappable-python-bridge.js.map +1 -0
  633. package/dist/telemetry.d.ts +7 -0
  634. package/dist/telemetry.d.ts.map +1 -1
  635. package/dist/telemetry.js +23 -0
  636. package/dist/telemetry.js.map +1 -1
  637. package/dist/testing.d.ts +81 -0
  638. package/dist/testing.d.ts.map +1 -0
  639. package/dist/testing.js +130 -0
  640. package/dist/testing.js.map +1 -0
  641. package/dist/token-counter.d.ts +30 -0
  642. package/dist/token-counter.d.ts.map +1 -0
  643. package/dist/token-counter.js +156 -0
  644. package/dist/token-counter.js.map +1 -0
  645. package/dist/trace-exporters.d.ts +10 -0
  646. package/dist/trace-exporters.d.ts.map +1 -1
  647. package/dist/trace-exporters.js +59 -20
  648. package/dist/trace-exporters.js.map +1 -1
  649. package/dist/tracing-helpers.d.ts +45 -4
  650. package/dist/tracing-helpers.d.ts.map +1 -1
  651. package/dist/tracing-helpers.js +62 -19
  652. package/dist/tracing-helpers.js.map +1 -1
  653. package/dist/turn-budget.d.ts +278 -0
  654. package/dist/turn-budget.d.ts.map +1 -0
  655. package/dist/turn-budget.js +365 -0
  656. package/dist/turn-budget.js.map +1 -0
  657. package/dist/variable-channel.d.ts +48 -0
  658. package/dist/variable-channel.d.ts.map +1 -0
  659. package/dist/variable-channel.js +110 -0
  660. package/dist/variable-channel.js.map +1 -0
  661. package/dist/workspace.d.ts +119 -0
  662. package/dist/workspace.d.ts.map +1 -0
  663. package/dist/workspace.js +112 -0
  664. package/dist/workspace.js.map +1 -0
  665. package/package.json +107 -19
@@ -1,74 +1,105 @@
1
1
  import { createLogger } from "@nodetool-ai/config";
2
+ // Stryker disable next-line StringLiteral: logger name is diagnostic, not a behavioural contract.
2
3
  const log = createLogger("nodetool.runtime.provider-registry");
3
- let _secretResolver = null;
4
4
  const _PROVIDER_REGISTRY = new Map();
5
- // Cache keyed by "providerId:userId" for per-user provider instances
6
- const _providerCache = new Map();
7
- export function registerProvider(providerId, cls, kwargs = {}) {
8
- _PROVIDER_REGISTRY.set(providerId, { cls, kwargs });
5
+ export function registerProvider(providerId, cls, kwargs = {}, optionalKwargs = {}, metadata = {}) {
6
+ _PROVIDER_REGISTRY.set(providerId, {
7
+ cls,
8
+ kwargs,
9
+ optionalKwargs,
10
+ metadata: {
11
+ access: metadata.access ?? "remote_api",
12
+ displayName: metadata.displayName ?? providerId
13
+ }
14
+ });
9
15
  }
10
16
  export function getRegisteredProvider(providerId) {
11
17
  return _PROVIDER_REGISTRY.get(providerId) ?? null;
12
18
  }
19
+ export function listRegisteredProviderIds() {
20
+ return Array.from(_PROVIDER_REGISTRY.keys());
21
+ }
22
+ /** Remove a provider from the registry. Returns true if one was removed. */
23
+ export function unregisterProvider(providerId) {
24
+ return _PROVIDER_REGISTRY.delete(providerId);
25
+ }
13
26
  /**
14
- * Set a secret resolver so that providers can resolve API keys from
15
- * sources beyond process.env (e.g. encrypted secrets DB).
27
+ * Environment variable names accepted in place of a credential key, in order.
16
28
  *
17
- * The resolver receives (secretKey, userId) so secrets are resolved per-user.
29
+ * A provider's own SDK often reads a different name than NodeTool's registered
30
+ * key, so a machine set up for that SDK looks unconfigured here and the run
31
+ * fails with a 401 that names the wrong thing. Only names the vendor itself
32
+ * documents belong in this list — it is an interop shim, not a guessing game.
18
33
  */
19
- export function setSecretResolver(resolver) {
20
- _secretResolver = resolver;
21
- // Clear cache so providers are re-created with resolved secrets
22
- _providerCache.clear();
23
- }
24
- export async function getProvider(providerId, userId = "1") {
25
- const cacheKey = `${providerId}:${userId}`;
26
- const cached = _providerCache.get(cacheKey);
27
- if (cached) {
28
- return cached;
34
+ const CREDENTIAL_ENV_ALIASES = {
35
+ // fal's own JS and Python clients read FAL_KEY.
36
+ FAL_API_KEY: ["FAL_KEY"]
37
+ };
38
+ /** `process.env[key]`, falling back to the names that vendor's SDK uses. */
39
+ export function readCredentialEnv(key) {
40
+ const direct = process.env[key];
41
+ if (direct)
42
+ return direct;
43
+ for (const alias of CREDENTIAL_ENV_ALIASES[key] ?? []) {
44
+ const value = process.env[alias];
45
+ if (value)
46
+ return value;
29
47
  }
48
+ return undefined;
49
+ }
50
+ /** Resolve one credential exactly as provider construction does. */
51
+ export async function resolveCredentialValue(key, getSecret) {
52
+ const stored = await getSecret(key);
53
+ return stored || readCredentialEnv(key);
54
+ }
55
+ /**
56
+ * Build a fresh provider instance, resolving any unset credential kwargs via
57
+ * `getSecret` first, then `process.env` as fallback. The caller owns any
58
+ * caching — instance reuse is a property of a ProcessingContext, not a module
59
+ * global.
60
+ */
61
+ export async function getProvider(providerId, getSecret) {
30
62
  const registration = _PROVIDER_REGISTRY.get(providerId);
31
63
  if (!registration) {
32
64
  throw new Error(`No provider registered for "${providerId}"`);
33
65
  }
34
- // Re-resolve any unset values via secret resolver (DB → env) or direct env
35
- // var lookup as final fallback. Only treat empty string / null / undefined
36
- // as "needs resolution" so that valid falsy defaults (`0`, `false`) on
37
- // numeric/boolean kwargs are preserved.
66
+ // A kwarg is "needs resolution" when the registration declares the key with
67
+ // an empty-string / null / undefined value. Valid falsy defaults like `0`
68
+ // or `false` on numeric/boolean kwargs are preserved.
38
69
  const kwargs = { ...registration.kwargs };
39
70
  for (const [key, value] of Object.entries(kwargs)) {
40
71
  if (value === "" || value == null) {
41
- if (_secretResolver) {
42
- const resolved = await _secretResolver(key, userId);
43
- if (resolved) {
44
- kwargs[key] = resolved;
45
- continue;
46
- }
47
- }
48
- const envVal = process.env[key];
49
- if (envVal) {
50
- kwargs[key] = envVal;
72
+ const resolved = await resolveCredentialValue(key, getSecret);
73
+ if (resolved) {
74
+ kwargs[key] = resolved;
51
75
  }
52
76
  }
53
77
  }
54
- const instance = new registration.cls(kwargs);
55
- _providerCache.set(cacheKey, instance);
56
- return instance;
57
- }
58
- export function clearProviderCache() {
59
- const size = _providerCache.size;
60
- _providerCache.clear();
61
- return size;
62
- }
63
- export function listRegisteredProviderIds() {
64
- return Array.from(_PROVIDER_REGISTRY.keys());
78
+ // Optional kwargs: resolve from secret store / env when available, else use
79
+ // the registered default. These are not required for the provider to be
80
+ // "configured" (see isProviderConfigured) but still flow into the
81
+ // constructor so user-set values (e.g. LMSTUDIO_API_URL) take effect on
82
+ // every getProvider() call without a restart.
83
+ for (const [key, fallback] of Object.entries(registration.optionalKwargs)) {
84
+ const fromSecret = await getSecret(key);
85
+ if (fromSecret) {
86
+ kwargs[key] = fromSecret;
87
+ continue;
88
+ }
89
+ const envVal = process.env[key];
90
+ if (envVal) {
91
+ kwargs[key] = envVal;
92
+ continue;
93
+ }
94
+ kwargs[key] = fallback;
95
+ }
96
+ return new registration.cls(kwargs);
65
97
  }
66
98
  /** Get the secret key name required by a provider (e.g. "OPENAI_API_KEY"), or null. */
67
99
  export function getProviderSecretKey(providerId) {
68
100
  const reg = _PROVIDER_REGISTRY.get(providerId);
69
101
  if (!reg)
70
102
  return null;
71
- // The kwargs keys are the secret names; find the first one that looks like a key/token
72
103
  for (const key of Object.keys(reg.kwargs)) {
73
104
  if (key.includes("KEY") ||
74
105
  key.includes("TOKEN") ||
@@ -76,45 +107,31 @@ export function getProviderSecretKey(providerId) {
76
107
  return key;
77
108
  }
78
109
  }
79
- // No secret — provider is local (ollama, llama_cpp, etc.)
80
110
  return null;
81
111
  }
82
- /** Check if a provider has credentials available for a given user (DB, env, or is local). */
83
- export async function isProviderConfigured(providerId, userId = "1") {
112
+ /** Check if a provider's required credentials are resolvable. */
113
+ export async function isProviderConfigured(providerId, getSecret) {
84
114
  const reg = _PROVIDER_REGISTRY.get(providerId);
85
115
  if (!reg) {
116
+ // Stryker disable next-line StringLiteral,ObjectLiteral: diagnostic log, not asserted.
86
117
  log.debug("isProviderConfigured: not registered", { providerId });
87
118
  return false;
88
119
  }
89
- // A kwarg is "required at runtime" when the registration declares the key
90
- // with an empty-string / null / undefined value — registerProvider() uses
91
- // empty strings to mark credentials that must be resolved from the DB or
92
- // environment. Non-empty registration values (including valid falsy
93
- // defaults like `0` or `false`) are defaults the constructor can use
94
- // directly. Keys starting with "_" are runtime injections (e.g.
95
- // `_bridge`, `_id` for Python providers) and excluded from the
96
- // required-credentials check since they can't be resolved via secret
97
- // resolver or env vars.
120
+ // Keys starting with "_" are runtime injections (e.g. `_bridge`, `_id` for
121
+ // Python providers) and excluded from the credentials check.
98
122
  const required = Object.entries(reg.kwargs)
99
123
  .filter(([key, value]) => (value === "" || value == null) && !key.startsWith("_"))
100
124
  .map(([key]) => key);
101
- if (required.length === 0) {
102
- log.debug("isProviderConfigured: no required kwargs", { providerId });
125
+ // Stryker disable next-line ConditionalExpression: forcing this false just falls into the empty loop below, which also returns true — equivalent.
126
+ if (required.length === 0)
103
127
  return true;
104
- }
105
128
  for (const key of required) {
106
- let value = null;
107
- if (_secretResolver) {
108
- value = await _secretResolver(key, userId);
109
- }
110
- if (!value)
111
- value = process.env[key];
129
+ const value = await resolveCredentialValue(key, getSecret);
112
130
  if (!value) {
131
+ // Stryker disable next-line StringLiteral,ObjectLiteral: diagnostic log, not asserted.
113
132
  log.debug("isProviderConfigured: missing credential", {
114
133
  providerId,
115
- userId,
116
- key,
117
- hasResolver: Boolean(_secretResolver)
134
+ key
118
135
  });
119
136
  return false;
120
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/providers/provider-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/providers/provider-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Central failure logging for provider calls.
3
+ *
4
+ * When an LLM provider call fails (e.g. a 422 Unprocessable Entity), we want a
5
+ * precise record of what was sent — the actual wire payload, not just the
6
+ * opaque error. {@link logProviderRequestFailure} is invoked from
7
+ * `BaseProvider`'s traced wrappers so every provider gets identical, redacted,
8
+ * size-bounded failure logging from one place.
9
+ *
10
+ * Providers feed their exact request body via `recordRequestPayload` (see
11
+ * `BaseProvider`); when a provider hasn't been instrumented, the wrapper falls
12
+ * back to logging the NodeTool-level request args.
13
+ */
14
+ import { type Logger } from "@nodetool-ai/config";
15
+ interface SanitizeOptions {
16
+ /** Strings longer than this are truncated (default 1000). */
17
+ maxStringLength?: number;
18
+ /** Arrays longer than this are truncated (default 200). */
19
+ maxArrayLength?: number;
20
+ /** Recursion is cut off at this depth (default 12). */
21
+ maxDepth?: number;
22
+ }
23
+ /**
24
+ * Deep-clone `value` into a JSON-safe, log-friendly shape: long strings and
25
+ * arrays are truncated, binary buffers become size markers, secret-bearing
26
+ * keys are redacted, and circular references are broken. Never throws.
27
+ */
28
+ /**
29
+ * A JSON-safe value: what {@link sanitizeForLog} produces. `undefined` is kept
30
+ * rather than rewritten, so a log line still shows a field that was unset.
31
+ */
32
+ export type LogSafeValue = string | number | boolean | null | undefined | LogSafeValue[] | {
33
+ [key: string]: LogSafeValue;
34
+ };
35
+ export declare function sanitizeForLog(value: unknown, opts?: SanitizeOptions): LogSafeValue;
36
+ interface ProviderFailureLog {
37
+ provider: string;
38
+ model: string;
39
+ /** The exact wire payload the provider sent, if it was recorded. */
40
+ request?: unknown;
41
+ /** NodeTool-level request args, logged when no wire payload was recorded. */
42
+ nodetoolArgs?: unknown;
43
+ error: unknown;
44
+ }
45
+ /**
46
+ * Log precisely what was sent to a provider when its call fails. Prefers the
47
+ * recorded wire payload; falls back to the NodeTool-level args. Aborted
48
+ * requests are skipped. The `logger` arg is for testing — production calls use
49
+ * the module logger.
50
+ */
51
+ export declare function logProviderRequestFailure(params: ProviderFailureLog, logger?: Logger): void;
52
+ export {};
53
+ //# sourceMappingURL=provider-request-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-request-log.d.ts","sourceRoot":"","sources":["../../src/providers/provider-request-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKhE,UAAU,eAAe;IACvB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA6CD;;;;GAIG;AACH;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,YAAY,EAAE,GACd;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;CAAE,CAAC;AAEpC,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,eAAoB,GACzB,YAAY,CAiDd;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB;AAuBD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,GAAE,MAAY,GACnB,IAAI,CAeN"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Central failure logging for provider calls.
3
+ *
4
+ * When an LLM provider call fails (e.g. a 422 Unprocessable Entity), we want a
5
+ * precise record of what was sent — the actual wire payload, not just the
6
+ * opaque error. {@link logProviderRequestFailure} is invoked from
7
+ * `BaseProvider`'s traced wrappers so every provider gets identical, redacted,
8
+ * size-bounded failure logging from one place.
9
+ *
10
+ * Providers feed their exact request body via `recordRequestPayload` (see
11
+ * `BaseProvider`); when a provider hasn't been instrumented, the wrapper falls
12
+ * back to logging the NodeTool-level request args.
13
+ */
14
+ import { createLogger } from "@nodetool-ai/config";
15
+ import { isNumber, isObjectLike, isString } from "@nodetool-ai/protocol";
16
+ const log = createLogger("nodetool.runtime.provider.request");
17
+ const SANITIZE_DEFAULTS = {
18
+ maxStringLength: 1000,
19
+ maxArrayLength: 200,
20
+ maxDepth: 12
21
+ };
22
+ /**
23
+ * A key holds a secret when its normalized form (lowercased, separators
24
+ * stripped) contains a secret marker or exactly names a credential field.
25
+ * Deliberately conservative so diagnostic fields like `max_tokens` (→
26
+ * "maxtokens") are never mistaken for the credential field `token`.
27
+ */
28
+ function isSecretKey(key) {
29
+ const k = key.toLowerCase().replace(/[-_\s]/g, "");
30
+ if (k.includes("apikey") ||
31
+ k.includes("secret") ||
32
+ k.includes("password") ||
33
+ k.includes("passwd") ||
34
+ k.includes("authorization")) {
35
+ return true;
36
+ }
37
+ return SECRET_EXACT.has(k);
38
+ }
39
+ const SECRET_EXACT = new Set([
40
+ "token",
41
+ "auth",
42
+ "bearer",
43
+ "accesstoken",
44
+ "refreshtoken",
45
+ "sessiontoken",
46
+ "idtoken",
47
+ "privatekey",
48
+ "credentials"
49
+ ]);
50
+ function truncateString(s, max) {
51
+ if (s.length <= max)
52
+ return s;
53
+ return `${s.slice(0, max)}… [truncated ${s.length} chars total]`;
54
+ }
55
+ export function sanitizeForLog(value, opts = {}) {
56
+ const o = { ...SANITIZE_DEFAULTS, ...opts };
57
+ // Tracks the current DFS path (not all visited nodes) so shared-but-acyclic
58
+ // references aren't falsely flagged as circular.
59
+ const ancestors = new WeakSet();
60
+ function walk(v, depth) {
61
+ if (v === null || v === undefined)
62
+ return v;
63
+ const t = typeof v;
64
+ if (t === "string")
65
+ return truncateString(v, o.maxStringLength);
66
+ // SAFETY: `t` is `typeof v`, so this arm has proved v is a number/boolean.
67
+ if (t === "number" || t === "boolean")
68
+ return v;
69
+ if (t === "bigint")
70
+ return `${v.toString()}n`;
71
+ if (t === "function") {
72
+ return `[function ${v.name || "anonymous"}]`;
73
+ }
74
+ if (t === "symbol")
75
+ return v.toString();
76
+ if (v instanceof ArrayBuffer)
77
+ return `[binary ${v.byteLength} bytes]`;
78
+ if (ArrayBuffer.isView(v)) {
79
+ return `[binary ${v.byteLength} bytes]`;
80
+ }
81
+ if (t === "object") {
82
+ const obj = v;
83
+ if (ancestors.has(obj))
84
+ return "[circular]";
85
+ if (depth >= o.maxDepth)
86
+ return "[max depth exceeded]";
87
+ ancestors.add(obj);
88
+ try {
89
+ if (Array.isArray(v)) {
90
+ const out = v
91
+ .slice(0, o.maxArrayLength)
92
+ .map((item) => walk(item, depth + 1));
93
+ if (v.length > o.maxArrayLength) {
94
+ out.push(`[${v.length - o.maxArrayLength} more items truncated]`);
95
+ }
96
+ return out;
97
+ }
98
+ const out = {};
99
+ for (const [k, val] of Object.entries(v)) {
100
+ out[k] = isSecretKey(k) ? "[redacted]" : walk(val, depth + 1);
101
+ }
102
+ return out;
103
+ }
104
+ finally {
105
+ ancestors.delete(obj);
106
+ }
107
+ }
108
+ return String(v);
109
+ }
110
+ return walk(value, 0);
111
+ }
112
+ /** Caller cancellations (AbortSignal) are not provider failures — skip them. */
113
+ function isAbortError(error) {
114
+ if (!isObjectLike(error))
115
+ return false;
116
+ const name = error.name;
117
+ if (isString(name) && /abort/i.test(name))
118
+ return true;
119
+ const code = error.code;
120
+ return code === 20 || code === "ABORT_ERR";
121
+ }
122
+ function httpStatus(error) {
123
+ if (!isObjectLike(error))
124
+ return undefined;
125
+ const e = error;
126
+ if (isNumber(e.status))
127
+ return e.status;
128
+ if (isNumber(e.statusCode))
129
+ return e.statusCode;
130
+ return undefined;
131
+ }
132
+ function errorMessage(error) {
133
+ return error instanceof Error ? error.message : String(error);
134
+ }
135
+ /**
136
+ * Log precisely what was sent to a provider when its call fails. Prefers the
137
+ * recorded wire payload; falls back to the NodeTool-level args. Aborted
138
+ * requests are skipped. The `logger` arg is for testing — production calls use
139
+ * the module logger.
140
+ */
141
+ export function logProviderRequestFailure(params, logger = log) {
142
+ if (isAbortError(params.error))
143
+ return;
144
+ const hasWire = params.request !== undefined && params.request !== null;
145
+ const entry = {
146
+ provider: params.provider,
147
+ model: params.model,
148
+ requestSource: hasWire ? "wire" : "nodetool-args",
149
+ error: errorMessage(params.error),
150
+ request: sanitizeForLog(hasWire ? params.request : params.nodetoolArgs)
151
+ };
152
+ const status = httpStatus(params.error);
153
+ if (status !== undefined)
154
+ entry.status = status;
155
+ logger.error("Provider request failed", entry);
156
+ }
157
+ //# sourceMappingURL=provider-request-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-request-log.js","sourceRoot":"","sources":["../../src/providers/provider-request-log.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Stable, dependency-free 32-bit hash (FNV-1a) of a provider system prompt. */
2
+ export declare function hashSystemPrompt(prompt: string): string;
3
+ //# sourceMappingURL=provider-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-session.d.ts","sourceRoot":"","sources":["../../src/providers/provider-session.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOvD"}
@@ -0,0 +1,10 @@
1
+ /** Stable, dependency-free 32-bit hash (FNV-1a) of a provider system prompt. */
2
+ export function hashSystemPrompt(prompt) {
3
+ let h = 0x811c9dc5;
4
+ for (let i = 0; i < prompt.length; i++) {
5
+ h ^= prompt.charCodeAt(i);
6
+ h = Math.imul(h, 0x01000193);
7
+ }
8
+ return (h >>> 0).toString(16);
9
+ }
10
+ //# sourceMappingURL=provider-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-session.js","sourceRoot":"","sources":["../../src/providers/provider-session.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,IAAI,CAAC,GAAG,UAAU,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The transport surface node packages share with their runtime provider.
3
+ *
4
+ * Reached from a node package as `@nodetool-ai/runtime/provider-transport` — a
5
+ * leaf entry point, so importing the retry rules does not drag in the whole
6
+ * runtime.
7
+ */
8
+ export * from "./http-transport.js";
9
+ export * from "./image-ref.js";
10
+ export * from "./atlascloud-transport.js";
11
+ //# sourceMappingURL=provider-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-transport.d.ts","sourceRoot":"","sources":["../../src/providers/provider-transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The transport surface node packages share with their runtime provider.
3
+ *
4
+ * Reached from a node package as `@nodetool-ai/runtime/provider-transport` — a
5
+ * leaf entry point, so importing the retry rules does not drag in the whole
6
+ * runtime.
7
+ */
8
+ export * from "./http-transport.js";
9
+ export * from "./image-ref.js";
10
+ export * from "./atlascloud-transport.js";
11
+ //# sourceMappingURL=provider-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-transport.js","sourceRoot":"","sources":["../../src/providers/provider-transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC"}
@@ -6,17 +6,24 @@
6
6
  * and proxies all BaseProvider methods through the bridge.
7
7
  */
8
8
  import { BaseProvider } from "./base-provider.js";
9
- import type { LanguageModel, ImageModel, TTSModel, ASRModel, EmbeddingModel, VideoModel, Message, ProviderTool, ProviderStreamItem, StreamingAudioChunk, TextToImageParams, ImageToImageParams } from "./types.js";
10
- import type { PythonStdioBridge } from "../python-stdio-bridge.js";
9
+ import type { LanguageModel, ImageModel, TTSModel, ASRModel, EmbeddingModel, VideoModel, MusicModel, Message, ProviderTool, ProviderStreamItem, StreamingAudioChunk, TextToImageParams, ImageToImageParams, TextToSpeechParams, TextToVideoParams, ImageToVideoParams, ReferenceToVideoInputs, ReferenceToVideoParams, TextToMusicParams, EncodedAudioResult } from "./types.js";
10
+ import type { PythonBridgeBase } from "../python-bridge-base.js";
11
11
  type PythonProviderOptions = Record<string, unknown> & {
12
12
  _id: string;
13
- _bridge: PythonStdioBridge;
13
+ _bridge: PythonBridgeBase;
14
+ /** Provider id understood by the Python worker when the public id is aliased. */
15
+ _bridgeProviderId?: string;
16
+ /** Operations advertised by the Python worker for this provider. */
17
+ _capabilities?: string[];
14
18
  };
15
19
  export declare class PythonProvider extends BaseProvider {
16
20
  private _bridge;
17
21
  private _pythonProviderId;
18
22
  private _secrets;
19
- constructor(providerId: string, bridge: PythonStdioBridge, secrets?: Record<string, string>);
23
+ private _supportsStreamingTTS;
24
+ private _supportsEncodedTTS;
25
+ private _workerCapabilities;
26
+ constructor(providerId: string, bridge: PythonBridgeBase, secrets?: Record<string, string>);
20
27
  constructor(options: PythonProviderOptions);
21
28
  static requiredSecrets(): string[];
22
29
  getAvailableLanguageModels(): Promise<LanguageModel[]>;
@@ -25,6 +32,7 @@ export declare class PythonProvider extends BaseProvider {
25
32
  getAvailableASRModels(): Promise<ASRModel[]>;
26
33
  getAvailableEmbeddingModels(): Promise<EmbeddingModel[]>;
27
34
  getAvailableVideoModels(): Promise<VideoModel[]>;
35
+ getAvailableMusicModels(): Promise<MusicModel[]>;
28
36
  private _getModels;
29
37
  generateMessage(args: {
30
38
  messages: Message[];
@@ -49,14 +57,14 @@ export declare class PythonProvider extends BaseProvider {
49
57
  audio?: Record<string, unknown>;
50
58
  }): AsyncGenerator<ProviderStreamItem>;
51
59
  textToImage(params: TextToImageParams): Promise<Uint8Array>;
52
- imageToImage(image: Uint8Array, params: ImageToImageParams): Promise<Uint8Array>;
53
- textToSpeech(args: {
54
- text: string;
55
- model: string;
56
- voice?: string;
57
- speed?: number;
58
- audioFormat?: string;
59
- }): AsyncGenerator<StreamingAudioChunk>;
60
+ imageToImage(images: Uint8Array[], params: ImageToImageParams): Promise<Uint8Array>;
61
+ textToVideo(params: TextToVideoParams): Promise<Uint8Array>;
62
+ imageToVideo(image: Uint8Array, params: ImageToVideoParams): Promise<Uint8Array>;
63
+ referenceToVideo(inputs: ReferenceToVideoInputs, params: ReferenceToVideoParams): Promise<Uint8Array>;
64
+ textToSpeech(args: TextToSpeechParams): AsyncGenerator<StreamingAudioChunk>;
65
+ supportsStreamingTextToSpeech(): boolean;
66
+ textToSpeechEncoded(args: TextToSpeechParams): Promise<EncodedAudioResult | null>;
67
+ textToMusic(params: TextToMusicParams): Promise<EncodedAudioResult>;
60
68
  automaticSpeechRecognition(args: {
61
69
  audio: Uint8Array;
62
70
  model: string;
@@ -1 +1 @@
1
- {"version":3,"file":"python-provider.d.ts","sourceRoot":"","sources":["../../src/providers/python-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"python-provider.d.ts","sourceRoot":"","sources":["../../src/providers/python-provider.ts"],"names":[],"mappings":"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"}