@nodetool-ai/runtime 0.7.0-rc.23 → 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 (713) 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 +982 -127
  24. package/dist/context.d.ts.map +1 -1
  25. package/dist/context.js +2649 -530
  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 +75 -0
  44. package/dist/generation-registry.d.ts.map +1 -0
  45. package/dist/generation-registry.js +144 -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 +352 -0
  62. package/dist/host-binaries.js.map +1 -0
  63. package/dist/image-codec.d.ts +76 -0
  64. package/dist/image-codec.d.ts.map +1 -0
  65. package/dist/image-codec.js +293 -0
  66. package/dist/image-codec.js.map +1 -0
  67. package/dist/image-model-tasks.d.ts +15 -0
  68. package/dist/image-model-tasks.d.ts.map +1 -0
  69. package/dist/image-model-tasks.js +24 -0
  70. package/dist/image-model-tasks.js.map +1 -0
  71. package/dist/index.d.ts +67 -6
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +51 -4
  74. package/dist/index.js.map +1 -1
  75. package/dist/invocation-account.d.ts +43 -0
  76. package/dist/invocation-account.d.ts.map +1 -0
  77. package/dist/invocation-account.js +60 -0
  78. package/dist/invocation-account.js.map +1 -0
  79. package/dist/media-ref-bytes.d.ts +35 -0
  80. package/dist/media-ref-bytes.d.ts.map +1 -0
  81. package/dist/media-ref-bytes.js +191 -0
  82. package/dist/media-ref-bytes.js.map +1 -0
  83. package/dist/node-executor.d.ts +119 -2
  84. package/dist/node-executor.d.ts.map +1 -1
  85. package/dist/permission-gate.d.ts +152 -0
  86. package/dist/permission-gate.d.ts.map +1 -0
  87. package/dist/permission-gate.js +87 -0
  88. package/dist/permission-gate.js.map +1 -0
  89. package/dist/prefixed-storage-adapter.d.ts +33 -0
  90. package/dist/prefixed-storage-adapter.d.ts.map +1 -0
  91. package/dist/prefixed-storage-adapter.js +70 -0
  92. package/dist/prefixed-storage-adapter.js.map +1 -0
  93. package/dist/prompt-asset-refs.d.ts +222 -0
  94. package/dist/prompt-asset-refs.d.ts.map +1 -0
  95. package/dist/prompt-asset-refs.js +751 -0
  96. package/dist/prompt-asset-refs.js.map +1 -0
  97. package/dist/provider-cache.d.ts +3 -0
  98. package/dist/provider-cache.d.ts.map +1 -0
  99. package/dist/provider-cache.js +8 -0
  100. package/dist/provider-cache.js.map +1 -0
  101. package/dist/providers/aki-provider.d.ts +35 -10
  102. package/dist/providers/aki-provider.d.ts.map +1 -1
  103. package/dist/providers/aki-provider.js +90 -77
  104. package/dist/providers/aki-provider.js.map +1 -1
  105. package/dist/providers/alibaba-provider.d.ts +39 -0
  106. package/dist/providers/alibaba-provider.d.ts.map +1 -0
  107. package/dist/providers/alibaba-provider.js +86 -0
  108. package/dist/providers/alibaba-provider.js.map +1 -0
  109. package/dist/providers/anthropic-provider.d.ts +52 -3
  110. package/dist/providers/anthropic-provider.d.ts.map +1 -1
  111. package/dist/providers/anthropic-provider.js +1020 -338
  112. package/dist/providers/anthropic-provider.js.map +1 -1
  113. package/dist/providers/atlascloud-provider.d.ts +103 -0
  114. package/dist/providers/atlascloud-provider.d.ts.map +1 -0
  115. package/dist/providers/atlascloud-provider.js +1031 -0
  116. package/dist/providers/atlascloud-provider.js.map +1 -0
  117. package/dist/providers/atlascloud-transport.d.ts +100 -0
  118. package/dist/providers/atlascloud-transport.d.ts.map +1 -0
  119. package/dist/providers/atlascloud-transport.js +364 -0
  120. package/dist/providers/atlascloud-transport.js.map +1 -0
  121. package/dist/providers/atlascloud-webhook-registry.d.ts +35 -0
  122. package/dist/providers/atlascloud-webhook-registry.d.ts.map +1 -0
  123. package/dist/providers/atlascloud-webhook-registry.js +104 -0
  124. package/dist/providers/atlascloud-webhook-registry.js.map +1 -0
  125. package/dist/providers/audio-mime.d.ts +11 -0
  126. package/dist/providers/audio-mime.d.ts.map +1 -0
  127. package/dist/providers/audio-mime.js +46 -0
  128. package/dist/providers/audio-mime.js.map +1 -0
  129. package/dist/providers/base-provider.d.ts +501 -32
  130. package/dist/providers/base-provider.d.ts.map +1 -1
  131. package/dist/providers/base-provider.js +1280 -87
  132. package/dist/providers/base-provider.js.map +1 -1
  133. package/dist/providers/cassette-provider.d.ts +217 -0
  134. package/dist/providers/cassette-provider.d.ts.map +1 -0
  135. package/dist/providers/cassette-provider.js +502 -0
  136. package/dist/providers/cassette-provider.js.map +1 -0
  137. package/dist/providers/cerebras-provider.d.ts +6 -12
  138. package/dist/providers/cerebras-provider.d.ts.map +1 -1
  139. package/dist/providers/cerebras-provider.js +8 -33
  140. package/dist/providers/cerebras-provider.js.map +1 -1
  141. package/dist/providers/claude-agent-provider.d.ts +107 -74
  142. package/dist/providers/claude-agent-provider.d.ts.map +1 -1
  143. package/dist/providers/claude-agent-provider.js +1279 -517
  144. package/dist/providers/claude-agent-provider.js.map +1 -1
  145. package/dist/providers/codex-provider.d.ts +84 -0
  146. package/dist/providers/codex-provider.d.ts.map +1 -0
  147. package/dist/providers/codex-provider.js +505 -0
  148. package/dist/providers/codex-provider.js.map +1 -0
  149. package/dist/providers/cohere-provider.d.ts +7 -3
  150. package/dist/providers/cohere-provider.d.ts.map +1 -1
  151. package/dist/providers/cohere-provider.js +14 -2
  152. package/dist/providers/cohere-provider.js.map +1 -1
  153. package/dist/providers/comfy-cloud-provider.d.ts +30 -0
  154. package/dist/providers/comfy-cloud-provider.d.ts.map +1 -0
  155. package/dist/providers/comfy-cloud-provider.js +42 -0
  156. package/dist/providers/comfy-cloud-provider.js.map +1 -0
  157. package/dist/providers/content-filter.d.ts +46 -0
  158. package/dist/providers/content-filter.d.ts.map +1 -0
  159. package/dist/providers/content-filter.js +92 -0
  160. package/dist/providers/content-filter.js.map +1 -0
  161. package/dist/providers/context-exceeded.d.ts +37 -0
  162. package/dist/providers/context-exceeded.d.ts.map +1 -0
  163. package/dist/providers/context-exceeded.js +114 -0
  164. package/dist/providers/context-exceeded.js.map +1 -0
  165. package/dist/providers/context-window.d.ts +44 -0
  166. package/dist/providers/context-window.d.ts.map +1 -0
  167. package/dist/providers/context-window.js +145 -0
  168. package/dist/providers/context-window.js.map +1 -0
  169. package/dist/providers/contract/index.d.ts +4 -0
  170. package/dist/providers/contract/index.d.ts.map +1 -0
  171. package/dist/providers/contract/index.js +4 -0
  172. package/dist/providers/contract/index.js.map +1 -0
  173. package/dist/providers/contract/probe-manifest.d.ts +75 -0
  174. package/dist/providers/contract/probe-manifest.d.ts.map +1 -0
  175. package/dist/providers/contract/probe-manifest.js +379 -0
  176. package/dist/providers/contract/probe-manifest.js.map +1 -0
  177. package/dist/providers/contract/probe-runner.d.ts +57 -0
  178. package/dist/providers/contract/probe-runner.d.ts.map +1 -0
  179. package/dist/providers/contract/probe-runner.js +180 -0
  180. package/dist/providers/contract/probe-runner.js.map +1 -0
  181. package/dist/providers/contract/redact.d.ts +29 -0
  182. package/dist/providers/contract/redact.d.ts.map +1 -0
  183. package/dist/providers/contract/redact.js +113 -0
  184. package/dist/providers/contract/redact.js.map +1 -0
  185. package/dist/providers/core-tools.d.ts +75 -0
  186. package/dist/providers/core-tools.d.ts.map +1 -0
  187. package/dist/providers/core-tools.js +128 -0
  188. package/dist/providers/core-tools.js.map +1 -0
  189. package/dist/providers/cost-calculator.d.ts +69 -50
  190. package/dist/providers/cost-calculator.d.ts.map +1 -1
  191. package/dist/providers/cost-calculator.js +207 -397
  192. package/dist/providers/cost-calculator.js.map +1 -1
  193. package/dist/providers/credential-check.d.ts +45 -0
  194. package/dist/providers/credential-check.d.ts.map +1 -0
  195. package/dist/providers/credential-check.js +164 -0
  196. package/dist/providers/credential-check.js.map +1 -0
  197. package/dist/providers/custom-model-kinds.d.ts +33 -0
  198. package/dist/providers/custom-model-kinds.d.ts.map +1 -0
  199. package/dist/providers/custom-model-kinds.js +96 -0
  200. package/dist/providers/custom-model-kinds.js.map +1 -0
  201. package/dist/providers/custom-openai-provider.d.ts +83 -0
  202. package/dist/providers/custom-openai-provider.d.ts.map +1 -0
  203. package/dist/providers/custom-openai-provider.js +190 -0
  204. package/dist/providers/custom-openai-provider.js.map +1 -0
  205. package/dist/providers/custom-provider-registry.d.ts +19 -0
  206. package/dist/providers/custom-provider-registry.d.ts.map +1 -0
  207. package/dist/providers/custom-provider-registry.js +52 -0
  208. package/dist/providers/custom-provider-registry.js.map +1 -0
  209. package/dist/providers/deepseek-provider.d.ts +8 -14
  210. package/dist/providers/deepseek-provider.d.ts.map +1 -1
  211. package/dist/providers/deepseek-provider.js +6 -35
  212. package/dist/providers/deepseek-provider.js.map +1 -1
  213. package/dist/providers/defaults.d.ts +12 -0
  214. package/dist/providers/defaults.d.ts.map +1 -0
  215. package/dist/providers/defaults.js +12 -0
  216. package/dist/providers/defaults.js.map +1 -0
  217. package/dist/providers/dreamina-models.d.ts +5 -0
  218. package/dist/providers/dreamina-models.d.ts.map +1 -0
  219. package/dist/providers/dreamina-models.js +57 -0
  220. package/dist/providers/dreamina-models.js.map +1 -0
  221. package/dist/providers/dreamina-music.d.ts +52 -0
  222. package/dist/providers/dreamina-music.d.ts.map +1 -0
  223. package/dist/providers/dreamina-music.js +115 -0
  224. package/dist/providers/dreamina-music.js.map +1 -0
  225. package/dist/providers/dreamina-provider.d.ts +62 -0
  226. package/dist/providers/dreamina-provider.d.ts.map +1 -0
  227. package/dist/providers/dreamina-provider.js +790 -0
  228. package/dist/providers/dreamina-provider.js.map +1 -0
  229. package/dist/providers/elevenlabs-provider.d.ts +50 -0
  230. package/dist/providers/elevenlabs-provider.d.ts.map +1 -0
  231. package/dist/providers/elevenlabs-provider.js +147 -0
  232. package/dist/providers/elevenlabs-provider.js.map +1 -0
  233. package/dist/providers/entity-references.d.ts +31 -0
  234. package/dist/providers/entity-references.d.ts.map +1 -0
  235. package/dist/providers/entity-references.js +113 -0
  236. package/dist/providers/entity-references.js.map +1 -0
  237. package/dist/providers/evolink-provider.d.ts +40 -0
  238. package/dist/providers/evolink-provider.d.ts.map +1 -0
  239. package/dist/providers/evolink-provider.js +312 -0
  240. package/dist/providers/evolink-provider.js.map +1 -0
  241. package/dist/providers/fake-provider.d.ts +74 -2
  242. package/dist/providers/fake-provider.d.ts.map +1 -1
  243. package/dist/providers/fake-provider.js +213 -1
  244. package/dist/providers/fake-provider.js.map +1 -1
  245. package/dist/providers/fal-generations.d.ts +106 -0
  246. package/dist/providers/fal-generations.d.ts.map +1 -0
  247. package/dist/providers/fal-generations.js +286 -0
  248. package/dist/providers/fal-generations.js.map +1 -0
  249. package/dist/providers/fal-provider.d.ts +173 -8
  250. package/dist/providers/fal-provider.d.ts.map +1 -1
  251. package/dist/providers/fal-provider.js +1396 -64
  252. package/dist/providers/fal-provider.js.map +1 -1
  253. package/dist/providers/fal-queue.d.ts +47 -0
  254. package/dist/providers/fal-queue.d.ts.map +1 -0
  255. package/dist/providers/fal-queue.js +231 -0
  256. package/dist/providers/fal-queue.js.map +1 -0
  257. package/dist/providers/gemini-provider.d.ts +150 -9
  258. package/dist/providers/gemini-provider.d.ts.map +1 -1
  259. package/dist/providers/gemini-provider.js +1515 -316
  260. package/dist/providers/gemini-provider.js.map +1 -1
  261. package/dist/providers/gmi-provider.d.ts +21 -0
  262. package/dist/providers/gmi-provider.d.ts.map +1 -0
  263. package/dist/providers/gmi-provider.js +34 -0
  264. package/dist/providers/gmi-provider.js.map +1 -0
  265. package/dist/providers/gpt-image-size.d.ts +3 -0
  266. package/dist/providers/gpt-image-size.d.ts.map +1 -0
  267. package/dist/providers/gpt-image-size.js +37 -0
  268. package/dist/providers/gpt-image-size.js.map +1 -0
  269. package/dist/providers/groq-provider.d.ts +9 -12
  270. package/dist/providers/groq-provider.d.ts.map +1 -1
  271. package/dist/providers/groq-provider.js +19 -33
  272. package/dist/providers/groq-provider.js.map +1 -1
  273. package/dist/providers/groq-request.d.ts +38 -0
  274. package/dist/providers/groq-request.d.ts.map +1 -0
  275. package/dist/providers/groq-request.js +138 -0
  276. package/dist/providers/groq-request.js.map +1 -0
  277. package/dist/providers/higgsfield-provider.d.ts +31 -0
  278. package/dist/providers/higgsfield-provider.d.ts.map +1 -0
  279. package/dist/providers/higgsfield-provider.js +143 -0
  280. package/dist/providers/higgsfield-provider.js.map +1 -0
  281. package/dist/providers/higgsfield-transport.d.ts +106 -0
  282. package/dist/providers/higgsfield-transport.d.ts.map +1 -0
  283. package/dist/providers/higgsfield-transport.js +182 -0
  284. package/dist/providers/higgsfield-transport.js.map +1 -0
  285. package/dist/providers/http-transport.d.ts +74 -0
  286. package/dist/providers/http-transport.d.ts.map +1 -0
  287. package/dist/providers/http-transport.js +152 -0
  288. package/dist/providers/http-transport.js.map +1 -0
  289. package/dist/providers/huggingface-provider.d.ts +73 -4
  290. package/dist/providers/huggingface-provider.d.ts.map +1 -1
  291. package/dist/providers/huggingface-provider.js +240 -34
  292. package/dist/providers/huggingface-provider.js.map +1 -1
  293. package/dist/providers/image-mime.d.ts +39 -0
  294. package/dist/providers/image-mime.d.ts.map +1 -0
  295. package/dist/providers/image-mime.js +111 -0
  296. package/dist/providers/image-mime.js.map +1 -0
  297. package/dist/providers/image-ref.d.ts +21 -0
  298. package/dist/providers/image-ref.d.ts.map +1 -0
  299. package/dist/providers/image-ref.js +44 -0
  300. package/dist/providers/image-ref.js.map +1 -0
  301. package/dist/providers/index.d.ts +87 -8
  302. package/dist/providers/index.d.ts.map +1 -1
  303. package/dist/providers/index.js +250 -56
  304. package/dist/providers/index.js.map +1 -1
  305. package/dist/providers/jina-provider.d.ts +12 -3
  306. package/dist/providers/jina-provider.d.ts.map +1 -1
  307. package/dist/providers/jina-provider.js +21 -7
  308. package/dist/providers/jina-provider.js.map +1 -1
  309. package/dist/providers/kie-provider.d.ts +172 -10
  310. package/dist/providers/kie-provider.d.ts.map +1 -1
  311. package/dist/providers/kie-provider.js +1190 -228
  312. package/dist/providers/kie-provider.js.map +1 -1
  313. package/dist/providers/kie-webhook-registry.d.ts +28 -0
  314. package/dist/providers/kie-webhook-registry.d.ts.map +1 -0
  315. package/dist/providers/kie-webhook-registry.js +91 -0
  316. package/dist/providers/kie-webhook-registry.js.map +1 -0
  317. package/dist/providers/llama-provider.d.ts +23 -36
  318. package/dist/providers/llama-provider.d.ts.map +1 -1
  319. package/dist/providers/llama-provider.js +50 -355
  320. package/dist/providers/llama-provider.js.map +1 -1
  321. package/dist/providers/lmstudio-provider.d.ts +4 -7
  322. package/dist/providers/lmstudio-provider.d.ts.map +1 -1
  323. package/dist/providers/lmstudio-provider.js +24 -15
  324. package/dist/providers/lmstudio-provider.js.map +1 -1
  325. package/dist/providers/loop-tracing.d.ts +17 -0
  326. package/dist/providers/loop-tracing.d.ts.map +1 -0
  327. package/dist/providers/loop-tracing.js +132 -0
  328. package/dist/providers/loop-tracing.js.map +1 -0
  329. package/dist/providers/manifest-models.d.ts +341 -1
  330. package/dist/providers/manifest-models.d.ts.map +1 -1
  331. package/dist/providers/manifest-models.js +1106 -22
  332. package/dist/providers/manifest-models.js.map +1 -1
  333. package/dist/providers/media-mime.d.ts +14 -0
  334. package/dist/providers/media-mime.d.ts.map +1 -0
  335. package/dist/providers/media-mime.js +35 -0
  336. package/dist/providers/media-mime.js.map +1 -0
  337. package/dist/providers/meshy-provider.d.ts +16 -2
  338. package/dist/providers/meshy-provider.d.ts.map +1 -1
  339. package/dist/providers/meshy-provider.js +82 -46
  340. package/dist/providers/meshy-provider.js.map +1 -1
  341. package/dist/providers/meta-provider.d.ts +22 -0
  342. package/dist/providers/meta-provider.d.ts.map +1 -0
  343. package/dist/providers/meta-provider.js +54 -0
  344. package/dist/providers/meta-provider.js.map +1 -0
  345. package/dist/providers/minimax-provider.d.ts +27 -18
  346. package/dist/providers/minimax-provider.d.ts.map +1 -1
  347. package/dist/providers/minimax-provider.js +222 -72
  348. package/dist/providers/minimax-provider.js.map +1 -1
  349. package/dist/providers/mistral-provider.d.ts +8 -12
  350. package/dist/providers/mistral-provider.d.ts.map +1 -1
  351. package/dist/providers/mistral-provider.js +15 -34
  352. package/dist/providers/mistral-provider.js.map +1 -1
  353. package/dist/providers/moonshot-provider.d.ts +11 -15
  354. package/dist/providers/moonshot-provider.d.ts.map +1 -1
  355. package/dist/providers/moonshot-provider.js +33 -23
  356. package/dist/providers/moonshot-provider.js.map +1 -1
  357. package/dist/providers/node-llama-cpp-provider.d.ts +99 -0
  358. package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -0
  359. package/dist/providers/node-llama-cpp-provider.js +484 -0
  360. package/dist/providers/node-llama-cpp-provider.js.map +1 -0
  361. package/dist/providers/nodetool-provider.d.ts +49 -0
  362. package/dist/providers/nodetool-provider.d.ts.map +1 -0
  363. package/dist/providers/nodetool-provider.js +222 -0
  364. package/dist/providers/nodetool-provider.js.map +1 -0
  365. package/dist/providers/oauth/browser-launcher.d.ts +23 -0
  366. package/dist/providers/oauth/browser-launcher.d.ts.map +1 -0
  367. package/dist/providers/oauth/browser-launcher.js +45 -0
  368. package/dist/providers/oauth/browser-launcher.js.map +1 -0
  369. package/dist/providers/oauth/claude-code-credentials.d.ts +74 -0
  370. package/dist/providers/oauth/claude-code-credentials.d.ts.map +1 -0
  371. package/dist/providers/oauth/claude-code-credentials.js +133 -0
  372. package/dist/providers/oauth/claude-code-credentials.js.map +1 -0
  373. package/dist/providers/oauth/claude-code-login.d.ts +124 -0
  374. package/dist/providers/oauth/claude-code-login.d.ts.map +1 -0
  375. package/dist/providers/oauth/claude-code-login.js +230 -0
  376. package/dist/providers/oauth/claude-code-login.js.map +1 -0
  377. package/dist/providers/oauth/claude-code-oauth-client.d.ts +111 -0
  378. package/dist/providers/oauth/claude-code-oauth-client.d.ts.map +1 -0
  379. package/dist/providers/oauth/claude-code-oauth-client.js +207 -0
  380. package/dist/providers/oauth/claude-code-oauth-client.js.map +1 -0
  381. package/dist/providers/oauth/errors.d.ts +54 -0
  382. package/dist/providers/oauth/errors.d.ts.map +1 -0
  383. package/dist/providers/oauth/errors.js +79 -0
  384. package/dist/providers/oauth/errors.js.map +1 -0
  385. package/dist/providers/oauth/index.d.ts +105 -0
  386. package/dist/providers/oauth/index.d.ts.map +1 -0
  387. package/dist/providers/oauth/index.js +167 -0
  388. package/dist/providers/oauth/index.js.map +1 -0
  389. package/dist/providers/oauth/jwt-claims.d.ts +23 -0
  390. package/dist/providers/oauth/jwt-claims.d.ts.map +1 -0
  391. package/dist/providers/oauth/jwt-claims.js +67 -0
  392. package/dist/providers/oauth/jwt-claims.js.map +1 -0
  393. package/dist/providers/oauth/local-callback-server.d.ts +60 -0
  394. package/dist/providers/oauth/local-callback-server.d.ts.map +1 -0
  395. package/dist/providers/oauth/local-callback-server.js +148 -0
  396. package/dist/providers/oauth/local-callback-server.js.map +1 -0
  397. package/dist/providers/oauth/oauth-client.d.ts +55 -0
  398. package/dist/providers/oauth/oauth-client.d.ts.map +1 -0
  399. package/dist/providers/oauth/oauth-client.js +161 -0
  400. package/dist/providers/oauth/oauth-client.js.map +1 -0
  401. package/dist/providers/oauth/openai-oauth-provider.d.ts +129 -0
  402. package/dist/providers/oauth/openai-oauth-provider.d.ts.map +1 -0
  403. package/dist/providers/oauth/openai-oauth-provider.js +265 -0
  404. package/dist/providers/oauth/openai-oauth-provider.js.map +1 -0
  405. package/dist/providers/oauth/pkce-helper.d.ts +43 -0
  406. package/dist/providers/oauth/pkce-helper.d.ts.map +1 -0
  407. package/dist/providers/oauth/pkce-helper.js +57 -0
  408. package/dist/providers/oauth/pkce-helper.js.map +1 -0
  409. package/dist/providers/oauth/redaction.d.ts +22 -0
  410. package/dist/providers/oauth/redaction.d.ts.map +1 -0
  411. package/dist/providers/oauth/redaction.js +59 -0
  412. package/dist/providers/oauth/redaction.js.map +1 -0
  413. package/dist/providers/oauth/secure-credential-store.d.ts +67 -0
  414. package/dist/providers/oauth/secure-credential-store.d.ts.map +1 -0
  415. package/dist/providers/oauth/secure-credential-store.js +73 -0
  416. package/dist/providers/oauth/secure-credential-store.js.map +1 -0
  417. package/dist/providers/oauth/token-store.d.ts +53 -0
  418. package/dist/providers/oauth/token-store.d.ts.map +1 -0
  419. package/dist/providers/oauth/token-store.js +78 -0
  420. package/dist/providers/oauth/token-store.js.map +1 -0
  421. package/dist/providers/oauth/types.d.ts +64 -0
  422. package/dist/providers/oauth/types.d.ts.map +1 -0
  423. package/dist/providers/oauth/types.js +12 -0
  424. package/dist/providers/oauth/types.js.map +1 -0
  425. package/dist/providers/object-tracking.d.ts +47 -0
  426. package/dist/providers/object-tracking.d.ts.map +1 -0
  427. package/dist/providers/object-tracking.js +46 -0
  428. package/dist/providers/object-tracking.js.map +1 -0
  429. package/dist/providers/offline-model-index.d.ts +20 -0
  430. package/dist/providers/offline-model-index.d.ts.map +1 -0
  431. package/dist/providers/offline-model-index.js +112 -0
  432. package/dist/providers/offline-model-index.js.map +1 -0
  433. package/dist/providers/ollama-provider.d.ts +30 -2
  434. package/dist/providers/ollama-provider.d.ts.map +1 -1
  435. package/dist/providers/ollama-provider.js +198 -43
  436. package/dist/providers/ollama-provider.js.map +1 -1
  437. package/dist/providers/openai-compat/client.d.ts +57 -0
  438. package/dist/providers/openai-compat/client.d.ts.map +1 -0
  439. package/dist/providers/openai-compat/client.js +157 -0
  440. package/dist/providers/openai-compat/client.js.map +1 -0
  441. package/dist/providers/openai-compat/decode.d.ts +36 -0
  442. package/dist/providers/openai-compat/decode.d.ts.map +1 -0
  443. package/dist/providers/openai-compat/decode.js +55 -0
  444. package/dist/providers/openai-compat/decode.js.map +1 -0
  445. package/dist/providers/openai-compat/errors.d.ts +54 -0
  446. package/dist/providers/openai-compat/errors.d.ts.map +1 -0
  447. package/dist/providers/openai-compat/errors.js +144 -0
  448. package/dist/providers/openai-compat/errors.js.map +1 -0
  449. package/dist/providers/openai-compat/index.d.ts +8 -0
  450. package/dist/providers/openai-compat/index.d.ts.map +1 -0
  451. package/dist/providers/openai-compat/index.js +5 -0
  452. package/dist/providers/openai-compat/index.js.map +1 -0
  453. package/dist/providers/openai-compat/sse.d.ts +14 -0
  454. package/dist/providers/openai-compat/sse.d.ts.map +1 -0
  455. package/dist/providers/openai-compat/sse.js +69 -0
  456. package/dist/providers/openai-compat/sse.js.map +1 -0
  457. package/dist/providers/openai-compat/types.d.ts +75 -0
  458. package/dist/providers/openai-compat/types.d.ts.map +1 -0
  459. package/dist/providers/openai-compat/types.js +9 -0
  460. package/dist/providers/openai-compat/types.js.map +1 -0
  461. package/dist/providers/openai-compat-provider.d.ts +90 -0
  462. package/dist/providers/openai-compat-provider.d.ts.map +1 -0
  463. package/dist/providers/openai-compat-provider.js +282 -0
  464. package/dist/providers/openai-compat-provider.js.map +1 -0
  465. package/dist/providers/openai-provider.d.ts +98 -27
  466. package/dist/providers/openai-provider.d.ts.map +1 -1
  467. package/dist/providers/openai-provider.js +1037 -105
  468. package/dist/providers/openai-provider.js.map +1 -1
  469. package/dist/providers/openrouter-provider.d.ts +58 -13
  470. package/dist/providers/openrouter-provider.d.ts.map +1 -1
  471. package/dist/providers/openrouter-provider.js +383 -51
  472. package/dist/providers/openrouter-provider.js.map +1 -1
  473. package/dist/providers/provider-call-failure.d.ts +39 -0
  474. package/dist/providers/provider-call-failure.d.ts.map +1 -0
  475. package/dist/providers/provider-call-failure.js +132 -0
  476. package/dist/providers/provider-call-failure.js.map +1 -0
  477. package/dist/providers/provider-error.d.ts +59 -0
  478. package/dist/providers/provider-error.d.ts.map +1 -0
  479. package/dist/providers/provider-error.js +171 -0
  480. package/dist/providers/provider-error.js.map +1 -0
  481. package/dist/providers/provider-generations.d.ts +99 -0
  482. package/dist/providers/provider-generations.d.ts.map +1 -0
  483. package/dist/providers/provider-generations.js +71 -0
  484. package/dist/providers/provider-generations.js.map +1 -0
  485. package/dist/providers/provider-queue.d.ts +62 -0
  486. package/dist/providers/provider-queue.d.ts.map +1 -0
  487. package/dist/providers/provider-queue.js +28 -0
  488. package/dist/providers/provider-queue.js.map +1 -0
  489. package/dist/providers/provider-registry.d.ts +33 -14
  490. package/dist/providers/provider-registry.d.ts.map +1 -1
  491. package/dist/providers/provider-registry.js +85 -68
  492. package/dist/providers/provider-registry.js.map +1 -1
  493. package/dist/providers/provider-request-log.d.ts +53 -0
  494. package/dist/providers/provider-request-log.d.ts.map +1 -0
  495. package/dist/providers/provider-request-log.js +168 -0
  496. package/dist/providers/provider-request-log.js.map +1 -0
  497. package/dist/providers/provider-session.d.ts +3 -0
  498. package/dist/providers/provider-session.d.ts.map +1 -0
  499. package/dist/providers/provider-session.js +10 -0
  500. package/dist/providers/provider-session.js.map +1 -0
  501. package/dist/providers/provider-transport.d.ts +11 -0
  502. package/dist/providers/provider-transport.d.ts.map +1 -0
  503. package/dist/providers/provider-transport.js +11 -0
  504. package/dist/providers/provider-transport.js.map +1 -0
  505. package/dist/providers/python-provider.d.ts +26 -13
  506. package/dist/providers/python-provider.d.ts.map +1 -1
  507. package/dist/providers/python-provider.js +204 -25
  508. package/dist/providers/python-provider.js.map +1 -1
  509. package/dist/providers/replicate-provider.d.ts +91 -8
  510. package/dist/providers/replicate-provider.d.ts.map +1 -1
  511. package/dist/providers/replicate-provider.js +823 -65
  512. package/dist/providers/replicate-provider.js.map +1 -1
  513. package/dist/providers/replicate-retry.d.ts +30 -0
  514. package/dist/providers/replicate-retry.d.ts.map +1 -0
  515. package/dist/providers/replicate-retry.js +97 -0
  516. package/dist/providers/replicate-retry.js.map +1 -0
  517. package/dist/providers/requesty-provider.d.ts +30 -0
  518. package/dist/providers/requesty-provider.d.ts.map +1 -0
  519. package/dist/providers/requesty-provider.js +87 -0
  520. package/dist/providers/requesty-provider.js.map +1 -0
  521. package/dist/providers/responses-api.d.ts +27 -0
  522. package/dist/providers/responses-api.d.ts.map +1 -0
  523. package/dist/providers/responses-api.js +297 -0
  524. package/dist/providers/responses-api.js.map +1 -0
  525. package/dist/providers/reve-provider.d.ts +46 -0
  526. package/dist/providers/reve-provider.d.ts.map +1 -0
  527. package/dist/providers/reve-provider.js +165 -0
  528. package/dist/providers/reve-provider.js.map +1 -0
  529. package/dist/providers/rodin-provider.d.ts +25 -2
  530. package/dist/providers/rodin-provider.d.ts.map +1 -1
  531. package/dist/providers/rodin-provider.js +95 -51
  532. package/dist/providers/rodin-provider.js.map +1 -1
  533. package/dist/providers/safe-url.d.ts +70 -0
  534. package/dist/providers/safe-url.d.ts.map +1 -0
  535. package/dist/providers/safe-url.js +277 -0
  536. package/dist/providers/safe-url.js.map +1 -0
  537. package/dist/providers/scripted-provider.d.ts +9 -0
  538. package/dist/providers/scripted-provider.d.ts.map +1 -1
  539. package/dist/providers/scripted-provider.js +86 -10
  540. package/dist/providers/scripted-provider.js.map +1 -1
  541. package/dist/providers/structured-output.d.ts +42 -0
  542. package/dist/providers/structured-output.d.ts.map +1 -0
  543. package/dist/providers/structured-output.js +83 -0
  544. package/dist/providers/structured-output.js.map +1 -0
  545. package/dist/providers/together-operations.d.ts +27 -0
  546. package/dist/providers/together-operations.d.ts.map +1 -0
  547. package/dist/providers/together-operations.js +95 -0
  548. package/dist/providers/together-operations.js.map +1 -0
  549. package/dist/providers/together-provider.d.ts +18 -18
  550. package/dist/providers/together-provider.d.ts.map +1 -1
  551. package/dist/providers/together-provider.js +140 -367
  552. package/dist/providers/together-provider.js.map +1 -1
  553. package/dist/providers/topaz-provider.d.ts +45 -0
  554. package/dist/providers/topaz-provider.d.ts.map +1 -0
  555. package/dist/providers/topaz-provider.js +244 -0
  556. package/dist/providers/topaz-provider.js.map +1 -0
  557. package/dist/providers/types.d.ts +641 -4
  558. package/dist/providers/types.d.ts.map +1 -1
  559. package/dist/providers/types.js +81 -1
  560. package/dist/providers/types.js.map +1 -1
  561. package/dist/providers/useapi-provider.d.ts +28 -0
  562. package/dist/providers/useapi-provider.d.ts.map +1 -0
  563. package/dist/providers/useapi-provider.js +274 -0
  564. package/dist/providers/useapi-provider.js.map +1 -0
  565. package/dist/providers/video-duration.d.ts +6 -0
  566. package/dist/providers/video-duration.d.ts.map +1 -0
  567. package/dist/providers/video-duration.js +63 -0
  568. package/dist/providers/video-duration.js.map +1 -0
  569. package/dist/providers/video-frame-fallback.d.ts +39 -0
  570. package/dist/providers/video-frame-fallback.d.ts.map +1 -0
  571. package/dist/providers/video-frame-fallback.js +155 -0
  572. package/dist/providers/video-frame-fallback.js.map +1 -0
  573. package/dist/providers/video-frames.d.ts +61 -0
  574. package/dist/providers/video-frames.d.ts.map +1 -0
  575. package/dist/providers/video-frames.js +208 -0
  576. package/dist/providers/video-frames.js.map +1 -0
  577. package/dist/providers/video-mime.d.ts +14 -0
  578. package/dist/providers/video-mime.d.ts.map +1 -0
  579. package/dist/providers/video-mime.js +44 -0
  580. package/dist/providers/video-mime.js.map +1 -0
  581. package/dist/providers/video-to-audio.d.ts +34 -0
  582. package/dist/providers/video-to-audio.d.ts.map +1 -0
  583. package/dist/providers/video-to-audio.js +62 -0
  584. package/dist/providers/video-to-audio.js.map +1 -0
  585. package/dist/providers/vllm-provider.d.ts +20 -8
  586. package/dist/providers/vllm-provider.d.ts.map +1 -1
  587. package/dist/providers/vllm-provider.js +44 -23
  588. package/dist/providers/vllm-provider.js.map +1 -1
  589. package/dist/providers/voyage-provider.d.ts +12 -3
  590. package/dist/providers/voyage-provider.d.ts.map +1 -1
  591. package/dist/providers/voyage-provider.js +21 -7
  592. package/dist/providers/voyage-provider.js.map +1 -1
  593. package/dist/providers/xai-provider.d.ts +56 -13
  594. package/dist/providers/xai-provider.d.ts.map +1 -1
  595. package/dist/providers/xai-provider.js +307 -22
  596. package/dist/providers/xai-provider.js.map +1 -1
  597. package/dist/python-bridge-base.d.ts +358 -0
  598. package/dist/python-bridge-base.d.ts.map +1 -0
  599. package/dist/python-bridge-base.js +1557 -0
  600. package/dist/python-bridge-base.js.map +1 -0
  601. package/dist/python-bridge-codec.d.ts +28 -0
  602. package/dist/python-bridge-codec.d.ts.map +1 -0
  603. package/dist/python-bridge-codec.js +39 -0
  604. package/dist/python-bridge-codec.js.map +1 -0
  605. package/dist/python-bridge-factory.d.ts +52 -0
  606. package/dist/python-bridge-factory.d.ts.map +1 -0
  607. package/dist/python-bridge-factory.js +69 -0
  608. package/dist/python-bridge-factory.js.map +1 -0
  609. package/dist/python-bridge-framing.d.ts +68 -0
  610. package/dist/python-bridge-framing.d.ts.map +1 -0
  611. package/dist/python-bridge-framing.js +91 -0
  612. package/dist/python-bridge-framing.js.map +1 -0
  613. package/dist/python-bridge-types.d.ts +545 -2
  614. package/dist/python-bridge-types.d.ts.map +1 -1
  615. package/dist/python-bridge-types.js +49 -1
  616. package/dist/python-bridge-types.js.map +1 -1
  617. package/dist/python-graph-resolver.d.ts +57 -0
  618. package/dist/python-graph-resolver.d.ts.map +1 -0
  619. package/dist/python-graph-resolver.js +79 -0
  620. package/dist/python-graph-resolver.js.map +1 -0
  621. package/dist/python-node-executor.d.ts +36 -4
  622. package/dist/python-node-executor.d.ts.map +1 -1
  623. package/dist/python-node-executor.js +177 -86
  624. package/dist/python-node-executor.js.map +1 -1
  625. package/dist/python-stdio-bridge.d.ts +18 -37
  626. package/dist/python-stdio-bridge.d.ts.map +1 -1
  627. package/dist/python-stdio-bridge.js +148 -475
  628. package/dist/python-stdio-bridge.js.map +1 -1
  629. package/dist/python-websocket-bridge.d.ts +140 -0
  630. package/dist/python-websocket-bridge.d.ts.map +1 -0
  631. package/dist/python-websocket-bridge.js +561 -0
  632. package/dist/python-websocket-bridge.js.map +1 -0
  633. package/dist/python-worker-stderr.d.ts +4 -0
  634. package/dist/python-worker-stderr.d.ts.map +1 -0
  635. package/dist/python-worker-stderr.js +24 -0
  636. package/dist/python-worker-stderr.js.map +1 -0
  637. package/dist/recommended-models.d.ts +2 -2
  638. package/dist/recommended-models.d.ts.map +1 -1
  639. package/dist/recommended-models.js +44 -4
  640. package/dist/recommended-models.js.map +1 -1
  641. package/dist/recoverable-node-error.d.ts +31 -0
  642. package/dist/recoverable-node-error.d.ts.map +1 -0
  643. package/dist/recoverable-node-error.js +37 -0
  644. package/dist/recoverable-node-error.js.map +1 -0
  645. package/dist/redact-params.d.ts +13 -0
  646. package/dist/redact-params.d.ts.map +1 -0
  647. package/dist/redact-params.js +57 -0
  648. package/dist/redact-params.js.map +1 -0
  649. package/dist/run-context.d.ts +20 -0
  650. package/dist/run-context.d.ts.map +1 -0
  651. package/dist/run-context.js +18 -0
  652. package/dist/run-context.js.map +1 -0
  653. package/dist/run-trace-context.d.ts +30 -0
  654. package/dist/run-trace-context.d.ts.map +1 -0
  655. package/dist/run-trace-context.js +80 -0
  656. package/dist/run-trace-context.js.map +1 -0
  657. package/dist/run-trace-processor.d.ts +65 -0
  658. package/dist/run-trace-processor.d.ts.map +1 -0
  659. package/dist/run-trace-processor.js +417 -0
  660. package/dist/run-trace-processor.js.map +1 -0
  661. package/dist/run-trace-serialization.d.ts +5 -0
  662. package/dist/run-trace-serialization.d.ts.map +1 -0
  663. package/dist/run-trace-serialization.js +113 -0
  664. package/dist/run-trace-serialization.js.map +1 -0
  665. package/dist/sandbox-module-catalog.d.ts +43 -0
  666. package/dist/sandbox-module-catalog.d.ts.map +1 -0
  667. package/dist/sandbox-module-catalog.js +25 -0
  668. package/dist/sandbox-module-catalog.js.map +1 -0
  669. package/dist/storage-workspace.d.ts +62 -0
  670. package/dist/storage-workspace.d.ts.map +1 -0
  671. package/dist/storage-workspace.js +441 -0
  672. package/dist/storage-workspace.js.map +1 -0
  673. package/dist/swappable-python-bridge.d.ts +83 -0
  674. package/dist/swappable-python-bridge.d.ts.map +1 -0
  675. package/dist/swappable-python-bridge.js +246 -0
  676. package/dist/swappable-python-bridge.js.map +1 -0
  677. package/dist/telemetry.d.ts +16 -3
  678. package/dist/telemetry.d.ts.map +1 -1
  679. package/dist/telemetry.js +76 -20
  680. package/dist/telemetry.js.map +1 -1
  681. package/dist/testing.d.ts +81 -0
  682. package/dist/testing.d.ts.map +1 -0
  683. package/dist/testing.js +130 -0
  684. package/dist/testing.js.map +1 -0
  685. package/dist/token-counter.d.ts +30 -0
  686. package/dist/token-counter.d.ts.map +1 -0
  687. package/dist/token-counter.js +156 -0
  688. package/dist/token-counter.js.map +1 -0
  689. package/dist/trace-exporters.d.ts +11 -28
  690. package/dist/trace-exporters.d.ts.map +1 -1
  691. package/dist/trace-exporters.js +69 -22
  692. package/dist/trace-exporters.js.map +1 -1
  693. package/dist/tracing-helpers.d.ts +60 -26
  694. package/dist/tracing-helpers.d.ts.map +1 -1
  695. package/dist/tracing-helpers.js +100 -25
  696. package/dist/tracing-helpers.js.map +1 -1
  697. package/dist/trim-video-window.d.ts +8 -0
  698. package/dist/trim-video-window.d.ts.map +1 -0
  699. package/dist/trim-video-window.js +50 -0
  700. package/dist/trim-video-window.js.map +1 -0
  701. package/dist/turn-budget.d.ts +278 -0
  702. package/dist/turn-budget.d.ts.map +1 -0
  703. package/dist/turn-budget.js +365 -0
  704. package/dist/turn-budget.js.map +1 -0
  705. package/dist/variable-channel.d.ts +48 -0
  706. package/dist/variable-channel.d.ts.map +1 -0
  707. package/dist/variable-channel.js +110 -0
  708. package/dist/variable-channel.js.map +1 -0
  709. package/dist/workspace.d.ts +119 -0
  710. package/dist/workspace.d.ts.map +1 -0
  711. package/dist/workspace.js +112 -0
  712. package/dist/workspace.js.map +1 -0
  713. package/package.json +121 -19
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Provider-neutral contracts for queue-backed generation adapters.
3
+ *
4
+ * The runtime deliberately owns no persistence or generation lifecycle here.
5
+ * Hosts can bind the returned submission to their durable attempt before
6
+ * waiting, while provider adapters remain responsible for transport only.
7
+ */
8
+ /**
9
+ * A provider has returned an explicit terminal observation. Transport errors,
10
+ * poll timeouts, and local decode/storage failures must not be represented by
11
+ * this error because they leave the durable attempt recoverable.
12
+ */
13
+ export class ProviderQueueTerminalError extends Error {
14
+ provider;
15
+ providerRequestId;
16
+ state;
17
+ observation;
18
+ authoritativeProviderTerminal = true;
19
+ constructor(provider, providerRequestId, state, observation) {
20
+ super(`Provider queue request ${providerRequestId} did not succeed (${state})`);
21
+ this.provider = provider;
22
+ this.providerRequestId = providerRequestId;
23
+ this.state = state;
24
+ this.observation = observation;
25
+ this.name = "ProviderQueueTerminalError";
26
+ }
27
+ }
28
+ //# sourceMappingURL=provider-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-queue.js","sourceRoot":"","sources":["../../src/providers/provider-queue.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiCH;;;;GAIG;AACH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAIxC,QAAQ;IACR,iBAAiB;IACjB,KAAK;IACL,WAAW;IANb,6BAA6B,GAAG,IAAa,CAAC;IAEvD,YACW,QAAgB,EAChB,iBAAyB,EACzB,KAA0D,EAC1D,WAAsC;QAE/C,KAAK,CACH,0BAA0B,iBAAiB,qBAAqB,KAAK,GAAG,CACzE,CAAC;wBAPO,QAAQ;iCACR,iBAAiB;qBACjB,KAAK;2BACL,WAAW;QAKpB,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF"}
@@ -1,24 +1,43 @@
1
1
  import type { BaseProvider } from "./base-provider.js";
2
- interface ProviderRegistration {
3
- cls: new (...args: any[]) => BaseProvider;
2
+ /** A provider class as the registry constructs it: from its resolved kwargs. */
3
+ type ProviderConstructor = new (kwargs: Record<string, unknown>) => BaseProvider;
4
+ export type ProviderAccess = "in_process" | "local_service" | "remote_api";
5
+ export interface ProviderRegistrationMetadata {
6
+ /** Describes where model inference runs, independently from cache state. */
7
+ access: ProviderAccess;
8
+ displayName: string;
9
+ }
10
+ export interface ProviderRegistration {
11
+ cls: ProviderConstructor;
4
12
  kwargs: Record<string, unknown>;
13
+ optionalKwargs: Record<string, unknown>;
14
+ metadata: ProviderRegistrationMetadata;
5
15
  }
6
- type SecretResolver = (key: string, userId: string) => Promise<string | null | undefined> | string | null | undefined;
7
- export declare function registerProvider(providerId: string, cls: new (...args: any[]) => BaseProvider, kwargs?: Record<string, unknown>): void;
8
- export declare function getRegisteredProvider(providerId: string): ProviderRegistration | null;
9
16
  /**
10
- * Set a secret resolver so that providers can resolve API keys from
11
- * sources beyond process.env (e.g. encrypted secrets DB).
12
- *
13
- * The resolver receives (secretKey, userId) so secrets are resolved per-user.
17
+ * Resolve a credential by name. Callers bind any user/account identity into
18
+ * the closure before passing it in — this module deliberately has no notion
19
+ * of users or storage backends.
14
20
  */
15
- export declare function setSecretResolver(resolver: SecretResolver): void;
16
- export declare function getProvider(providerId: string, userId?: string): Promise<BaseProvider>;
17
- export declare function clearProviderCache(): number;
21
+ export type GetSecret = (key: string) => Promise<string | null | undefined> | string | null | undefined;
22
+ export declare function registerProvider(providerId: string, cls: ProviderConstructor, kwargs?: Record<string, unknown>, optionalKwargs?: Record<string, unknown>, metadata?: Partial<ProviderRegistrationMetadata>): void;
23
+ export declare function getRegisteredProvider(providerId: string): ProviderRegistration | null;
18
24
  export declare function listRegisteredProviderIds(): string[];
25
+ /** Remove a provider from the registry. Returns true if one was removed. */
26
+ export declare function unregisterProvider(providerId: string): boolean;
27
+ /** `process.env[key]`, falling back to the names that vendor's SDK uses. */
28
+ export declare function readCredentialEnv(key: string): string | undefined;
29
+ /** Resolve one credential exactly as provider construction does. */
30
+ export declare function resolveCredentialValue(key: string, getSecret: GetSecret): Promise<string | undefined>;
31
+ /**
32
+ * Build a fresh provider instance, resolving any unset credential kwargs via
33
+ * `getSecret` first, then `process.env` as fallback. The caller owns any
34
+ * caching — instance reuse is a property of a ProcessingContext, not a module
35
+ * global.
36
+ */
37
+ export declare function getProvider(providerId: string, getSecret: GetSecret): Promise<BaseProvider>;
19
38
  /** Get the secret key name required by a provider (e.g. "OPENAI_API_KEY"), or null. */
20
39
  export declare function getProviderSecretKey(providerId: string): string | null;
21
- /** Check if a provider has credentials available for a given user (DB, env, or is local). */
22
- export declare function isProviderConfigured(providerId: string, userId?: string): Promise<boolean>;
40
+ /** Check if a provider's required credentials are resolvable. */
41
+ export declare function isProviderConfigured(providerId: string, getSecret: GetSecret): Promise<boolean>;
23
42
  export {};
24
43
  //# sourceMappingURL=provider-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-registry.d.ts","sourceRoot":"","sources":["../../src/providers/provider-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,UAAU,oBAAoB;IAC5B,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,YAAY,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,KAAK,cAAc,GAAG,CACpB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAOpE,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,YAAY,EACzC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,IAAI,CAEN;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,GACjB,oBAAoB,GAAG,IAAI,CAE7B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAIhE;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,MAAM,SAAM,GACX,OAAO,CAAC,YAAY,CAAC,CAoCvB;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAEpD;AAED,uFAAuF;AACvF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAetE;AAED,6FAA6F;AAC7F,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,MAAM,SAAM,GACX,OAAO,CAAC,OAAO,CAAC,CA6ClB"}
1
+ {"version":3,"file":"provider-registry.d.ts","sourceRoot":"","sources":["../../src/providers/provider-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD,gFAAgF;AAChF,KAAK,mBAAmB,GAAG,KACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,YAAY,CAAC;AAElB,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,eAAe,GAAG,YAAY,CAAC;AAE3E,MAAM,WAAW,4BAA4B;IAC3C,4EAA4E;IAC5E,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,mBAAmB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIhC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,QAAQ,EAAE,4BAA4B,CAAC;CACxC;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,CACtB,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAIpE,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,mBAAmB,EACxB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,cAAc,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAC5C,QAAQ,GAAE,OAAO,CAAC,4BAA4B,CAAM,GACnD,IAAI,CAUN;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,GACjB,oBAAoB,GAAG,IAAI,CAE7B;AAED,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAEpD;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE9D;AAeD,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQjE;AAED,oEAAoE;AACpE,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAG7B;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,YAAY,CAAC,CAuCvB;AAED,uFAAuF;AACvF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAatE;AAED,iEAAiE;AACjE,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,CAAC,CA+BlB"}
@@ -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,EAAiD,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMjG,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,CAwBN"}
@@ -0,0 +1,168 @@
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, redactTraceText, safeProcessEnv } from "@nodetool-ai/config";
15
+ import { isNumber, isObjectLike, isString } from "@nodetool-ai/protocol";
16
+ import { getRunTraceScope, recordTraceEvent } from "../run-trace-context.js";
17
+ const log = createLogger("nodetool.runtime.provider.request");
18
+ const SANITIZE_DEFAULTS = {
19
+ maxStringLength: 1000,
20
+ maxArrayLength: 200,
21
+ maxDepth: 12
22
+ };
23
+ /**
24
+ * A key holds a secret when its normalized form (lowercased, separators
25
+ * stripped) contains a secret marker or exactly names a credential field.
26
+ * Deliberately conservative so diagnostic fields like `max_tokens` (→
27
+ * "maxtokens") are never mistaken for the credential field `token`.
28
+ */
29
+ function isSecretKey(key) {
30
+ const k = key.toLowerCase().replace(/[-_\s]/g, "");
31
+ if (k.includes("apikey") ||
32
+ k.includes("secret") ||
33
+ k.includes("password") ||
34
+ k.includes("passwd") ||
35
+ k.includes("authorization")) {
36
+ return true;
37
+ }
38
+ return SECRET_EXACT.has(k);
39
+ }
40
+ const SECRET_EXACT = new Set([
41
+ "token",
42
+ "auth",
43
+ "bearer",
44
+ "accesstoken",
45
+ "refreshtoken",
46
+ "sessiontoken",
47
+ "idtoken",
48
+ "privatekey",
49
+ "credentials"
50
+ ]);
51
+ function truncateString(s, max) {
52
+ if (s.length <= max)
53
+ return s;
54
+ return `${s.slice(0, max)}… [truncated ${s.length} chars total]`;
55
+ }
56
+ export function sanitizeForLog(value, opts = {}) {
57
+ const o = { ...SANITIZE_DEFAULTS, ...opts };
58
+ // Tracks the current DFS path (not all visited nodes) so shared-but-acyclic
59
+ // references aren't falsely flagged as circular.
60
+ const ancestors = new WeakSet();
61
+ function walk(v, depth) {
62
+ if (v === null || v === undefined)
63
+ return v;
64
+ const t = typeof v;
65
+ if (typeof v === "string") {
66
+ return truncateString(redactTraceText(v, getRunTraceScope()?.secretValues), o.maxStringLength);
67
+ }
68
+ // SAFETY: `t` is `typeof v`, so this arm has proved v is a number/boolean.
69
+ if (t === "number" || t === "boolean")
70
+ return v;
71
+ if (t === "bigint")
72
+ return `${v.toString()}n`;
73
+ if (t === "function") {
74
+ return `[function ${v.name || "anonymous"}]`;
75
+ }
76
+ if (t === "symbol")
77
+ return v.toString();
78
+ if (v instanceof ArrayBuffer)
79
+ return `[binary ${v.byteLength} bytes]`;
80
+ if (ArrayBuffer.isView(v)) {
81
+ return `[binary ${v.byteLength} bytes]`;
82
+ }
83
+ if (t === "object") {
84
+ const obj = v;
85
+ if (ancestors.has(obj))
86
+ return "[circular]";
87
+ if (depth >= o.maxDepth)
88
+ return "[max depth exceeded]";
89
+ ancestors.add(obj);
90
+ try {
91
+ if (Array.isArray(v)) {
92
+ const out = v
93
+ .slice(0, o.maxArrayLength)
94
+ .map((item) => walk(item, depth + 1));
95
+ if (v.length > o.maxArrayLength) {
96
+ out.push(`[${v.length - o.maxArrayLength} more items truncated]`);
97
+ }
98
+ return out;
99
+ }
100
+ const out = {};
101
+ for (const [k, val] of Object.entries(v)) {
102
+ out[k] = isSecretKey(k) ? "[redacted]" : walk(val, depth + 1);
103
+ }
104
+ return out;
105
+ }
106
+ finally {
107
+ ancestors.delete(obj);
108
+ }
109
+ }
110
+ return String(v);
111
+ }
112
+ return walk(value, 0);
113
+ }
114
+ /** Caller cancellations (AbortSignal) are not provider failures — skip them. */
115
+ function isAbortError(error) {
116
+ if (!isObjectLike(error))
117
+ return false;
118
+ const name = error.name;
119
+ if (isString(name) && /abort/i.test(name))
120
+ return true;
121
+ const code = error.code;
122
+ return code === 20 || code === "ABORT_ERR";
123
+ }
124
+ function httpStatus(error) {
125
+ if (!isObjectLike(error))
126
+ return undefined;
127
+ const e = error;
128
+ if (isNumber(e.status))
129
+ return e.status;
130
+ if (isNumber(e.statusCode))
131
+ return e.statusCode;
132
+ return undefined;
133
+ }
134
+ function errorMessage(error) {
135
+ return error instanceof Error ? error.message : String(error);
136
+ }
137
+ /**
138
+ * Log precisely what was sent to a provider when its call fails. Prefers the
139
+ * recorded wire payload; falls back to the NodeTool-level args. Aborted
140
+ * requests are skipped. The `logger` arg is for testing — production calls use
141
+ * the module logger.
142
+ */
143
+ export function logProviderRequestFailure(params, logger = log) {
144
+ if (isAbortError(params.error))
145
+ return;
146
+ const hasWire = params.request !== undefined && params.request !== null;
147
+ const scope = getRunTraceScope();
148
+ const includeContent = safeProcessEnv()["NODETOOL_TRACE_INCLUDE_CONTENT"] === "1" && scope?.origin !== "public" && !scope?.policy.contentSuppressed;
149
+ recordTraceEvent("log", {
150
+ "log.level": "error", "log.source": "nodetool.runtime.provider.request",
151
+ "log.message": "Provider request failed", "log.arguments": { provider: params.provider, model: params.model, error: errorMessage(params.error), request: hasWire ? params.request : params.nodetoolArgs }
152
+ });
153
+ const entry = {
154
+ provider: redactTraceText(params.provider, scope?.secretValues),
155
+ model: redactTraceText(params.model, scope?.secretValues),
156
+ requestSource: hasWire ? "wire" : "nodetool-args",
157
+ error_type: params.error instanceof Error ? params.error.name : "ProviderError"
158
+ };
159
+ if (includeContent) {
160
+ entry["error"] = redactTraceText(errorMessage(params.error), scope?.secretValues);
161
+ entry["request"] = sanitizeForLog(hasWire ? params.request : params.nodetoolArgs);
162
+ }
163
+ const status = httpStatus(params.error);
164
+ if (status !== undefined)
165
+ entry.status = status;
166
+ logger.error("Provider request failed", entry);
167
+ }
168
+ //# 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"}