@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,293 @@
1
+ /**
2
+ * Image codec helpers for the raw-RGBA in-flight format.
3
+ *
4
+ * GPU image ops emit `ImageRef`s whose `data` is raw straight-alpha RGBA8
5
+ * (marked by `mimeType === RAW_RGBA_MIME`) so adjacent GPU ops skip the codec.
6
+ * Any boundary that needs portable bytes (client, storage, file save, the
7
+ * Python bridge) lazily encodes them to PNG via these helpers. Everything else
8
+ * must go through the shared decode/encode paths rather than assume `data` is
9
+ * already an encoded image.
10
+ */
11
+ import { importHidden } from "@nodetool-ai/config";
12
+ import { isRawRgbaImage } from "@nodetool-ai/protocol";
13
+ import { withTaskSpan } from "./tracing-helpers.js";
14
+ let _sharpPromise = null;
15
+ /**
16
+ * Actionable error for a missing/broken `sharp` native addon, thrown by the
17
+ * raw-RGBA → PNG encoder when {@link loadSharp} resolves null and no Canvas
18
+ * fallback applies.
19
+ */
20
+ export const SHARP_UNAVAILABLE_MESSAGE = "The 'sharp' image codec is unavailable. It is a native addon that must be " +
21
+ "installed for this runtime (run `npm install sharp` in the server install, " +
22
+ "or reinstall it for your platform/arch — e.g. musl or a serverless target). " +
23
+ "Raw-RGBA images cannot be encoded to PNG here without sharp or a Canvas.";
24
+ /**
25
+ * Lazily load `sharp`. Resolves `null` — never throws an opaque module-load
26
+ * error — off Node (browser/edge) or when the Node native addon can't load
27
+ * (musl, unbundled serverless, ABI mismatch, partial install). A rejected
28
+ * attempt is never cached, so a fixed install is picked up on the next call.
29
+ * Callers handle `null` with a Canvas fallback or a clear, actionable error.
30
+ */
31
+ async function loadSharp() {
32
+ if (!_sharpPromise) {
33
+ // The attempt rejects when the import throws (broken addon: musl, ABI
34
+ // mismatch, partial install) so the `.catch` below can drop it from the
35
+ // cache and a later, fixed install is picked up. A legitimate off-Node
36
+ // `null` resolves and is cached — there is nothing to retry there.
37
+ const attempt = (async () => {
38
+ const mod = await importHidden("sharp");
39
+ if (!mod)
40
+ return null;
41
+ return "default" in mod ? mod.default : mod;
42
+ })();
43
+ _sharpPromise = attempt;
44
+ attempt.catch(() => {
45
+ if (_sharpPromise === attempt)
46
+ _sharpPromise = null;
47
+ });
48
+ }
49
+ // Never surface an opaque module-load error to callers; a broken addon is
50
+ // reported as `null` (caller falls back to Canvas or a clear, actionable
51
+ // error). The cache reset above already happened on the rejected attempt.
52
+ return _sharpPromise.catch(() => null);
53
+ }
54
+ /** Encode raw straight-alpha RGBA8 pixels to PNG bytes. */
55
+ export function encodeRawRgbaToPng(data, width, height) {
56
+ return withTaskSpan("cpu", "image.encode_png", { "nodetool.image.width": width, "nodetool.image.height": height }, () => encodePng(data, width, height));
57
+ }
58
+ async function encodePng(data, width, height) {
59
+ const sharp = await loadSharp();
60
+ if (!sharp) {
61
+ // No sharp (off Node, or a Node target where the addon won't load). Use
62
+ // OffscreenCanvas when the runtime exposes one (a bundled browser/edge or a
63
+ // Node build with Canvas); otherwise fail with a clear, actionable error.
64
+ if (typeof OffscreenCanvas !== "undefined") {
65
+ const canvas = new OffscreenCanvas(width, height);
66
+ const ctx = canvas.getContext("2d");
67
+ if (!ctx)
68
+ throw new Error("OffscreenCanvas 2D context unavailable");
69
+ ctx.putImageData(new ImageData(new Uint8ClampedArray(data), width, height), 0, 0);
70
+ const blob = await canvas.convertToBlob({ type: "image/png" });
71
+ return new Uint8Array(await blob.arrayBuffer());
72
+ }
73
+ throw new Error(SHARP_UNAVAILABLE_MESSAGE);
74
+ }
75
+ const png = await sharp(Buffer.from(data.buffer, data.byteOffset, data.byteLength), { raw: { width, height, channels: 4 } })
76
+ .png()
77
+ .toBuffer();
78
+ return new Uint8Array(png);
79
+ }
80
+ /**
81
+ * If `ref` is a raw-RGBA image, return an equivalent ImageRef with `data`
82
+ * encoded to PNG and `mimeType` set to `image/png`; otherwise return it
83
+ * unchanged. Use at any boundary that must hand out a portable image.
84
+ */
85
+ export async function encodeRawImageRef(ref) {
86
+ if (!isRawRgbaImage(ref))
87
+ return ref;
88
+ const png = await encodeRawRgbaToPng(ref.data, ref.width, ref.height);
89
+ return { ...ref, data: png, mimeType: "image/png" };
90
+ }
91
+ /**
92
+ * Where an SVG can name a resource: an `href` / `xlink:href` attribute, and a
93
+ * CSS `url()`. Used to *split* the markup, so each piece that follows is where
94
+ * one value begins.
95
+ *
96
+ * Splitting rather than matching the values is the whole point, and it took
97
+ * two CodeQL findings to arrive at. A regex that matches a value restarts at
98
+ * the next candidate when it fails, and a value scan that runs to the end of
99
+ * the document on each of n candidates is quadratic: `"url(" + 2000 spaces`
100
+ * never finished against the first version, and `"url(".repeat(400_000)`
101
+ * took 15s against the second. Pieces, by contrast, partition the document —
102
+ * bounded work per piece sums to linear however many openers there are.
103
+ */
104
+ const REFERENCE_OPENER = /(url\(|(?:xlink:)?href\s*=\s*)/i;
105
+ /** Longest value the screen reads. Past this it is not a URL anyone meant. */
106
+ const MAX_REFERENCE_VALUE = 2048;
107
+ const isSpace = (ch) => ch === " " || ch === "\t" || ch === "\n" || ch === "\r" || ch === "\f";
108
+ /** Characters that end a reference value in either syntax. */
109
+ const VALUE_END = new Set([")", '"', "'", ">", " ", "\t", "\n", "\r", "\f"]);
110
+ /**
111
+ * Read the value out of the text following an opener.
112
+ *
113
+ * Truncating at {@link MAX_REFERENCE_VALUE} is safe in the direction that
114
+ * matters: the value is only tested for a `#` or `data:` prefix, and a
115
+ * truncated value keeps its prefix — so a long `data:` payload still reads as
116
+ * internal, and anything else still reads as external.
117
+ */
118
+ function referenceValue(piece) {
119
+ let i = 0;
120
+ while (i < piece.length && isSpace(piece[i]))
121
+ i++;
122
+ if (piece[i] === '"' || piece[i] === "'")
123
+ i++;
124
+ const start = i;
125
+ const limit = Math.min(piece.length, start + MAX_REFERENCE_VALUE);
126
+ while (i < limit && !VALUE_END.has(piece[i]))
127
+ i++;
128
+ return piece.slice(start, i);
129
+ }
130
+ /**
131
+ * Whether a reference points outside the document. A fragment (`#id`) and a
132
+ * `data:` payload are self-contained; an empty value names nothing.
133
+ */
134
+ function isExternalReference(value) {
135
+ if (!value)
136
+ return false;
137
+ if (value.startsWith("#"))
138
+ return false;
139
+ return !value.slice(0, 5).toLowerCase().startsWith("data:");
140
+ }
141
+ /** The first reference in this markup that points outside it, if any. */
142
+ function firstExternalReference(markup) {
143
+ // One capture group, so `split` interleaves: text, opener, text, opener, …
144
+ // Every even index from 2 up is the text a value starts in.
145
+ const parts = markup.split(REFERENCE_OPENER);
146
+ for (let i = 2; i < parts.length; i += 2) {
147
+ const value = referenceValue(parts[i]);
148
+ if (isExternalReference(value))
149
+ return value;
150
+ }
151
+ return null;
152
+ }
153
+ /** Largest SVG this rasterizer will hand to the decoder. */
154
+ const MAX_SVG_BYTES = 8 * 1024 * 1024;
155
+ /** Longest side an SVG is rendered at when the caller names no `minSide`. */
156
+ const SVG_FALLBACK_SIDE = 1024;
157
+ /** Ceiling on the raster an SVG is rendered into, whatever `minSide` asks for. */
158
+ const MAX_SVG_RASTER_SIDE = 4096;
159
+ /**
160
+ * Rasterize SVG markup to PNG bytes.
161
+ *
162
+ * Vector sources reach the raster paths (a vision provider's image block, a
163
+ * crop, a downscale) only through here. Two rules the caller does not have to
164
+ * know about:
165
+ *
166
+ * - **No external references.** The decoder behind `sharp` is librsvg, which
167
+ * resolves `href` and `url()` against the process's own filesystem and
168
+ * network. Since the markup here is written by a model or uploaded by
169
+ * whoever, a document that reaches outward is refused by name rather than
170
+ * rendered — the error tells the caller to inline the resource.
171
+ * - **A usable size.** An SVG that declares `width="24"` renders to a 24px
172
+ * PNG, which is not something a model can read. `minSide` scales the render
173
+ * up so the result is worth looking at, defaulting to
174
+ * {@link SVG_FALLBACK_SIDE}.
175
+ */
176
+ export function rasterizeSvg(bytes, opts = {}) {
177
+ return withTaskSpan("cpu", "image.rasterize_svg", { "nodetool.image.input_bytes": bytes.byteLength }, () => rasterize(bytes, opts));
178
+ }
179
+ async function rasterize(bytes, opts) {
180
+ if (bytes.byteLength > MAX_SVG_BYTES) {
181
+ throw new Error(`SVG is ${bytes.byteLength} bytes, over the ${MAX_SVG_BYTES}-byte limit for rasterization.`);
182
+ }
183
+ const markup = new TextDecoder("utf-8", { fatal: false }).decode(bytes);
184
+ const external = firstExternalReference(markup);
185
+ if (external !== null) {
186
+ throw new Error(`Refusing to render an SVG that references "${external}". ` +
187
+ `The renderer would fetch it from this host's filesystem or network. ` +
188
+ `Inline the resource as a data: URI, or drop the reference.`);
189
+ }
190
+ const sharp = await loadSharp();
191
+ if (!sharp) {
192
+ throw new Error(SHARP_UNAVAILABLE_MESSAGE);
193
+ }
194
+ const buffer = Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
195
+ const intrinsic = await sharp(buffer).metadata();
196
+ const srcSide = Math.max(intrinsic.width ?? 0, intrinsic.height ?? 0);
197
+ const targetSide = Math.min(opts.minSide ?? SVG_FALLBACK_SIDE, MAX_SVG_RASTER_SIDE);
198
+ // librsvg scales the whole render by DPI, so a density is how an SVG is asked
199
+ // for more pixels than it declares; 72 is the 1:1 baseline. The density is
200
+ // left unbounded because what it produces is not: the render lands at
201
+ // `targetSide` however few units the document declares, so a `width="0.01"`
202
+ // document costs the same pixels as any other.
203
+ const density = srcSide > 0 && srcSide < targetSide
204
+ ? Math.ceil((72 * targetSide) / srcSide)
205
+ : 72;
206
+ let pipeline = sharp(buffer, { density, failOn: "none" });
207
+ if (opts.maxSide && opts.maxSide > 0) {
208
+ pipeline = pipeline.resize({
209
+ width: opts.maxSide,
210
+ height: opts.maxSide,
211
+ fit: "inside",
212
+ withoutEnlargement: true
213
+ });
214
+ }
215
+ const { data, info } = await pipeline
216
+ .png()
217
+ .toBuffer({ resolveWithObject: true });
218
+ return { data: new Uint8Array(data), width: info.width, height: info.height };
219
+ }
220
+ /**
221
+ * Decode encoded image bytes (PNG/JPEG/WebP/…), optionally crop to a pixel
222
+ * `region` and/or downscale so the longest side fits `maxSide`, then re-encode
223
+ * to PNG. Used by the `view_image` tool to load only the pixels an agent asks
224
+ * for — a region crop and a "low" detail downscale both cut the token cost of
225
+ * the image the model actually sees.
226
+ *
227
+ * Coordinates are clamped to the image bounds, so an over-large or partly
228
+ * out-of-frame region yields the overlapping area rather than an error. When
229
+ * `sharp` is unavailable (off Node, or a broken native addon) the original
230
+ * bytes are returned unchanged with `width`/`height` 0 — the caller still gets
231
+ * a viewable full image, just uncropped. In that pass-through case the returned
232
+ * `mimeType` is `opts.sourceMime` (the caller's known format) so the bytes are
233
+ * never mislabeled; it falls back to `image/png` only when the caller didn't
234
+ * provide one.
235
+ */
236
+ export function extractImageRegion(bytes, opts = {}) {
237
+ return withTaskSpan("cpu", "image.extract_region", { "nodetool.image.input_bytes": bytes.byteLength }, () => extractRegion(bytes, opts));
238
+ }
239
+ async function extractRegion(bytes, opts) {
240
+ const sharp = await loadSharp();
241
+ if (!sharp) {
242
+ // No re-encode happened — keep the true source mime rather than claiming
243
+ // PNG for what may be JPEG/WebP/GIF bytes (which a vision provider rejects).
244
+ return {
245
+ data: bytes,
246
+ mimeType: opts.sourceMime || "image/png",
247
+ width: 0,
248
+ height: 0
249
+ };
250
+ }
251
+ let pipeline = sharp(Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength), {
252
+ failOn: "none"
253
+ });
254
+ const meta = await pipeline.metadata();
255
+ const srcW = meta.width ?? 0;
256
+ const srcH = meta.height ?? 0;
257
+ const region = opts.region;
258
+ if (region) {
259
+ const left = Math.max(0, Math.min(Math.floor(region.x), Math.max(0, srcW - 1)));
260
+ const top = Math.max(0, Math.min(Math.floor(region.y), Math.max(0, srcH - 1)));
261
+ const maxW = srcW ? srcW - left : Math.floor(region.width);
262
+ const maxH = srcH ? srcH - top : Math.floor(region.height);
263
+ const width = Math.max(1, Math.min(Math.floor(region.width), maxW));
264
+ const height = Math.max(1, Math.min(Math.floor(region.height), maxH));
265
+ pipeline = pipeline.extract({ left, top, width, height });
266
+ }
267
+ if (opts.maxSide && opts.maxSide > 0) {
268
+ pipeline = pipeline.resize({
269
+ width: opts.maxSide,
270
+ height: opts.maxSide,
271
+ fit: "inside",
272
+ withoutEnlargement: true
273
+ });
274
+ }
275
+ const { data, info } = await pipeline.png().toBuffer({ resolveWithObject: true });
276
+ return {
277
+ data: new Uint8Array(data),
278
+ mimeType: "image/png",
279
+ width: info.width,
280
+ height: info.height
281
+ };
282
+ }
283
+ /** Decode every pixel before accepting an image as required visual evidence. */
284
+ export async function validateImageEvidence(bytes) {
285
+ const sharp = await loadSharp();
286
+ if (!sharp) {
287
+ throw new Error(SHARP_UNAVAILABLE_MESSAGE);
288
+ }
289
+ await sharp(bytes, { failOn: "warning" })
290
+ .raw()
291
+ .toBuffer();
292
+ }
293
+ //# sourceMappingURL=image-codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-codec.js","sourceRoot":"","sources":["../src/image-codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Whether an image model supports a task, for a caller that picks the
3
+ * capability before it dispatches (a storyboard still with entity references).
4
+ */
5
+ import type { ProcessingContext } from "./context.js";
6
+ /**
7
+ * Read `declared` when the caller holds a non-empty task list for the model.
8
+ * Otherwise ask the provider's image catalog. An unknown model or an
9
+ * unreachable catalog answers false, so the caller keeps its plain path.
10
+ */
11
+ export declare function imageModelSupportsTask(context: ProcessingContext, model: {
12
+ provider: string;
13
+ model: string;
14
+ }, task: string, declared?: readonly string[]): Promise<boolean>;
15
+ //# sourceMappingURL=image-model-tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-model-tasks.d.ts","sourceRoot":"","sources":["../src/image-model-tasks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAC1C,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAC3B,OAAO,CAAC,OAAO,CAAC,CAWlB"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Whether an image model supports a task, for a caller that picks the
3
+ * capability before it dispatches (a storyboard still with entity references).
4
+ */
5
+ /**
6
+ * Read `declared` when the caller holds a non-empty task list for the model.
7
+ * Otherwise ask the provider's image catalog. An unknown model or an
8
+ * unreachable catalog answers false, so the caller keeps its plain path.
9
+ */
10
+ export async function imageModelSupportsTask(context, model, task, declared) {
11
+ if (declared && declared.length > 0)
12
+ return declared.includes(task);
13
+ try {
14
+ const provider = await context.getProvider(model.provider);
15
+ const models = await provider.getAvailableImageModels();
16
+ const entry = models.find((candidate) => candidate.id === model.model);
17
+ return entry?.supportedTasks?.includes(task) ?? false;
18
+ }
19
+ catch {
20
+ // A provider without credentials or catalog renders text-only.
21
+ return false;
22
+ }
23
+ }
24
+ //# sourceMappingURL=image-model-tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-model-tasks.js","sourceRoot":"","sources":["../src/image-model-tasks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAA0B,EAC1B,KAA0C,EAC1C,IAAY,EACZ,QAA4B;IAE5B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,uBAAuB,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,18 +1,79 @@
1
1
  /**
2
2
  * @nodetool-ai/runtime – Public API
3
3
  */
4
- export { ProcessingContext, MemoryCache, InMemoryStorageAdapter, FileStorageAdapter, S3StorageAdapter, resolveWorkspacePath, type AssetOutputMode, type CacheAdapter, type S3Client, type StorageAdapter } from "./context.js";
4
+ export { sniffAudioMime } from "./providers/audio-mime.js";
5
+ export { ProcessingContext, ACTIVE_MODEL_CONTEXT_KEY, type ActiveModelSelection, MemoryCache, resolveWorkspacePath, setDefaultModelInterfaces, getDefaultModelInterfaces, mediaResolverFor, type AssetOutputMode, type CacheAdapter, type AssetInfoEntry, type FolderAssetEntry, type ProcessingContextModelInterfaces, type EntityUpsertArgs, type GenerationRequest, type GenerationResult, type GenerationRunOptions, type GenerationLifecycleHooks, GenerationAlreadyAcceptedError, type InjectedTool, type StorageAdapter, type StorageEntry, type StorageListResult, type StorageStat } from "./context.js";
6
+ export { WorkspacePathError, WorkspaceNotLocalError, observeWorkspace, type Workspace, type WorkspaceChange, type WorkspaceEntry, type WorkspaceStat } from "./workspace.js";
7
+ export { StorageWorkspace, createWorkspace, createLocalWorkspace } from "./storage-workspace.js";
8
+ export { PrefixedStorageAdapter } from "./prefixed-storage-adapter.js";
9
+ export type { SandboxModuleCatalog } from "./sandbox-module-catalog.js";
10
+ export { getProcessSandboxModuleCatalog, refuseSandboxDelivery, setProcessSandboxModuleCatalog } from "./sandbox-module-catalog.js";
11
+ export { AgentMemory, memoryKeys, type MemoryEntry, type MemoryFilter, type MemoryKind, type MemoryListener } from "./agent-memory.js";
5
12
  export * from "./providers/index.js";
6
- export { initTelemetry, getTracer, type TelemetryOptions } from "./telemetry.js";
13
+ export { initTelemetry, shutdownTelemetry, getTracer, type TelemetryOptions } from "./telemetry.js";
7
14
  export { spanToRecord, JsonlFileSpanExporter, StdoutSpanExporter, type TraceRecord, type StdoutFormat } from "./trace-exporters.js";
8
- export { withAgentSpan, withAgentSpanGen, withWorkflowSpan, withNodeSpan, withSpanGen, setLastUsage, consumeLastUsage, peekLastUsage, createUsageSlot, type AgentSpanKind, type LlmUsage } from "./tracing-helpers.js";
15
+ export { withAgentSpan, withAgentSpanGen, withSpan, withWorkflowSpan, withNodeSpan, withSpanGen, withTaskSpan, setLastUsage, consumeLastUsage, peekLastUsage, createUsageSlot, type AgentSpanKind, type LlmUsage, type TaskKind } from "./tracing-helpers.js";
16
+ export { RecoverableNodeError, isRecoverableNodeError } from "./recoverable-node-error.js";
17
+ export { createInvocationAccount, inInvocationAccount, recordInvocationCost, recordInvocationAsset, currentInvocationAccount, type InvocationAccount } from "./invocation-account.js";
18
+ export { recordGenerationReceipt, recordGenerationProviderResult, recordGenerationReceiptAsync, recordGenerationBindingAsync, runWithGenerationReceipt, currentGenerationReceipt, currentGenerationProviderRequestOptions, isAuthoritativeProviderTerminalError, GenerationScopeError, type GenerationReceiptScopeOptions, type GenerationProviderRequestOptions } from "./generation-receipt.js";
19
+ export { HIGGSFIELD_BASE, HiggsfieldApiError, higgsfieldSubmit, higgsfieldGetStatus, higgsfieldGetStatusByRequestId, higgsfieldAwaitResult, higgsfieldCancel, higgsfieldCancelByRequestId, higgsfieldEstimate, higgsfieldCreateUploadUrl, higgsfieldUploadMedia, higgsfieldOutputUrls, higgsfieldDownloadResult } from "./providers/higgsfield-transport.js";
20
+ export type { HiggsfieldCredentials, HiggsfieldStatus, HiggsfieldSubmission, HiggsfieldUpload, HiggsfieldEstimate } from "./providers/higgsfield-transport.js";
21
+ export { generationRegistry, generationDeliveryOf, type GenerationOutcome, type GenerationDelivery, type CompletedGeneration } from "./generation-registry.js";
22
+ export { redactGenerationParams } from "./redact-params.js";
23
+ export { CostCappedTurnBudget, CompositeTurnBudget, createRunBudget, createDeadline, createSemaphore, createCounter, isRunBudget, budgetFromContext, RUN_BUDGET_CONTEXT_KEY, BUDGET_EXHAUSTION_KINDS, TURN_REFUSALS, type TurnBudget, type TurnReservation, type TurnReservationHandle, type CostCappedTurnBudgetOptions, type CompositeTurnBudgetOptions, type CreateRunBudgetOptions, type RunBudget, type RunTurnBudget, type BudgetExhaustion, type BudgetExhaustionKind, type TurnRefusal, type Deadline, type Semaphore, type Release, type Counter } from "./turn-budget.js";
9
24
  export { packContext, type PackedContext } from "./context-packer.js";
25
+ export { resolveEntities, type EntityLibraryContext } from "./entities.js";
26
+ export { isZodSchema, parseWithTypeCoercion, zodToJsonSchema, type JsonSchema, type ZodOrJsonSchema } from "@nodetool-ai/protocol/zod-schema";
27
+ export { VariableChannel } from "./variable-channel.js";
28
+ export { countTokens, truncateToTokens } from "./token-counter.js";
10
29
  export { PythonStdioBridge, type PythonBridgeOptions, type PythonNodeMetadata, type ExecuteResult, type ProgressEvent, type PythonWorkerLoadError, type PythonWorkerStatus } from "./python-stdio-bridge.js";
30
+ import { PythonBridgeBase } from "./python-bridge-base.js";
31
+ export { PythonBridgeBase };
32
+ export type { UnifiedModelLike, ExecuteIdentity, JobBoundary, PythonJobLifecycle, ModelEvictRequest, ModelEvictResult, ModelDownloadRequest, ModelDownloadUpdate, ComfyStatusInfo, ComfyEvent, ComfyExecuteOptions, ComfyExecuteResult, ComfyModelDownloadRequest, ComfyModelDownloadUpdate, ComfyModelInfo, BlenderExecuteJob, BlenderStatusInfo, BlenderEvent, BlenderExecuteOptions, BlenderExecuteResult } from "./python-bridge-types.js";
33
+ export { WebsocketPythonBridge, type WebsocketPythonBridgeOptions } from "./python-websocket-bridge.js";
34
+ export { createPythonBridge, onPythonBridgeCreated } from "./python-bridge-factory.js";
35
+ export type { PythonBridgeObserver } from "./python-bridge-factory.js";
36
+ export { encodeFrame, FrameDecoder, FrameSizeError, DEFAULT_MAX_BRIDGE_FRAME_SIZE, type FrameDecoderOptions } from "./python-bridge-framing.js";
37
+ export { SwappableBridge } from "./swappable-python-bridge.js";
38
+ /**
39
+ * Transport-agnostic public handle for a Python worker bridge. An interface
40
+ * (not the concrete base) so both the stdio/WebSocket bridges and the
41
+ * {@link SwappableBridge} wrapper satisfy it — consumers hold one stable
42
+ * reference whose behavior follows the active worker.
43
+ */
44
+ export type { PythonBridge } from "./python-bridge-types.js";
11
45
  export { BRIDGE_PROTOCOL_VERSION, MIN_NODETOOL_CORE_VERSION } from "@nodetool-ai/protocol/bridge-protocol";
46
+ export { encodeRawRgbaToPng, encodeRawImageRef, extractImageRegion, rasterizeSvg } from "./image-codec.js";
47
+ export type { ImageRegion } from "./image-codec.js";
12
48
  export { PythonNodeExecutor } from "./python-node-executor.js";
13
- export { type NodeExecutor, type StreamingInputs, type StreamingOutputs } from "./node-executor.js";
14
- export { executeComfy } from "./comfy-executor.js";
15
- export type { ComfyExecutorResult, ComfyImage, ComfyProgressEvent, ComfyExecutionHandle } from "./comfy-executor.js";
49
+ export { connectPythonBridgeForGraph, resolvePythonNodeExecutor } from "./python-graph-resolver.js";
50
+ export { loadMediaRefBytes, type MediaRefValue, type MediaRefContext, type MediaRefByteOptions } from "./media-ref-bytes.js";
51
+ export { imageModelSupportsTask } from "./image-model-tasks.js";
52
+ export { fetchExternalMedia, privateMediaFetchAllowed } from "./external-media-fetch.js";
53
+ export { assetRefToPromptToken, classifyAssetToken, classifyTextToken, expandAssetReferences, expandEntityRefs, expandEntitiesForGeneration, findAssetRefs, findImageAssetRefs, findTextAssetRefs, inlineTextAssetRefs, stripAssetRefs, mapPromptAssetsToInputs, type AssetMediaKind, type PromptAssetRef, type TextAssetRef, type PromptAssetTextField, type PromptAssetInputField, type InjectedAssetRef, type EntityRefResolver, type ExpandedEntityPrompt } from "./prompt-asset-refs.js";
54
+ export { logPythonWorkerStderr } from "./python-worker-stderr.js";
55
+ export { type NodeExecutor, type StreamingInputs, type StreamingOutputs, type MessageEnvelopeLike, type TriggerEvent } from "./node-executor.js";
56
+ export { createFakeContext, stubGlobalFetch, type FakeContextHandle, type FakeContextOptions } from "./testing.js";
57
+ export { executeComfy, uploadComfyFile } from "./comfy-executor.js";
58
+ export { executeBlender, BlenderExecutorError } from "./blender-executor.js";
59
+ export type { BlenderWorkerJob, BlenderExecutorOptions, BlenderExecutorStats, BlenderExecutorResult } from "./blender-executor.js";
60
+ export type { ComfyExecutorResult, ComfyImage, ComfyFileOutput, ComfyNodeOutputs, ComfyProgressEvent, ComfyExecutionHandle } from "./comfy-executor.js";
61
+ export { runHostBinary, HostBinaryMissingError, MAX_CAPTURED_BYTES, MAX_ARTIFACT_BYTES, maxConcurrentHostBinaries, mimeFromFilename, clampTimeoutSeconds, type HostBinaryResult, type RunHostBinaryOptions } from "./host-binaries.js";
16
62
  export { RECOMMENDED_MODELS } from "./recommended-models.js";
17
63
  export type { RecommendedUnifiedModel } from "./recommended-models.js";
64
+ export { clearProviderCache, getProviderCacheVersion } from "./provider-cache.js";
65
+ export { registerCostReconciler, getCostReconciler } from "./cost-reconciler.js";
66
+ export type { CostReconciler, CostReconcileInput, ReconciledCost } from "./cost-reconciler.js";
67
+ export * from "./google/index.js";
68
+ export { PERMISSION_GATE_CONTEXT_KEY, decidePermission, headlessDenialReason, headlessGate } from "./permission-gate.js";
69
+ export type { ApprovalDecision, ApprovalRequest, PermissionCategory, PermissionDecision, PermissionGateAction, PermissionGateClock, PermissionGateOptions, PermissionGateVerdict, PermissionMode, RequestApproval } from "./permission-gate.js";
70
+ export { inAppRunCostAccount } from "./run-context.js";
71
+ export type { AppRunContext, AppRunCostAccount, AppRunDocumentRef } from "./run-context.js";
72
+ export { flushTelemetry } from "./telemetry.js";
73
+ export { configureRunTraceStore } from "./run-trace-processor.js";
74
+ export type { RunTraceStore, RunTraceWrite, TraceSanitizerOptions, TraceIncompleteReason } from "./run-trace-processor.js";
75
+ export { withRunTrace, getRunTraceScope, recordRunTraceSecret, markTraceContentTruncated, suppressRunTraceContent, recordTraceEvent } from "./run-trace-context.js";
76
+ export type { RunTraceScope } from "./run-trace-context.js";
77
+ export { stringifyTraceContent } from "./run-trace-serialization.js";
78
+ export { getProviderStreamTrace } from "./providers/loop-tracing.js";
18
79
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,cAAc,EACpB,MAAM,cAAc,CAAC;AAEtB,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,aAAa,EACb,SAAS,EACT,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,QAAQ,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EACL,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EACV,mBAAmB,EACnB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,19 +1,66 @@
1
1
  /**
2
2
  * @nodetool-ai/runtime – Public API
3
3
  */
4
- export { ProcessingContext, MemoryCache, InMemoryStorageAdapter, FileStorageAdapter, S3StorageAdapter, resolveWorkspacePath } from "./context.js";
4
+ export { sniffAudioMime } from "./providers/audio-mime.js";
5
+ export { ProcessingContext, ACTIVE_MODEL_CONTEXT_KEY, MemoryCache, resolveWorkspacePath, setDefaultModelInterfaces, getDefaultModelInterfaces, mediaResolverFor, GenerationAlreadyAcceptedError } from "./context.js";
6
+ // The run's workspace, as an interface over any storage backend. Importing
7
+ // `storage-workspace.js` here also installs the factory ProcessingContext uses
8
+ // to build a workspace from a plain `workspaceDir`.
9
+ export { WorkspacePathError, WorkspaceNotLocalError, observeWorkspace } from "./workspace.js";
10
+ export { StorageWorkspace, createWorkspace, createLocalWorkspace } from "./storage-workspace.js";
11
+ export { PrefixedStorageAdapter } from "./prefixed-storage-adapter.js";
12
+ export { getProcessSandboxModuleCatalog, refuseSandboxDelivery, setProcessSandboxModuleCatalog } from "./sandbox-module-catalog.js";
13
+ export { AgentMemory, memoryKeys } from "./agent-memory.js";
5
14
  export * from "./providers/index.js";
6
- export { initTelemetry, getTracer } from "./telemetry.js";
15
+ export { initTelemetry, shutdownTelemetry, getTracer } from "./telemetry.js";
7
16
  export { spanToRecord, JsonlFileSpanExporter, StdoutSpanExporter } from "./trace-exporters.js";
8
- export { withAgentSpan, withAgentSpanGen, withWorkflowSpan, withNodeSpan, withSpanGen, setLastUsage, consumeLastUsage, peekLastUsage, createUsageSlot } from "./tracing-helpers.js";
17
+ export { withAgentSpan, withAgentSpanGen, withSpan, withWorkflowSpan, withNodeSpan, withSpanGen, withTaskSpan, setLastUsage, consumeLastUsage, peekLastUsage, createUsageSlot } from "./tracing-helpers.js";
18
+ export { RecoverableNodeError, isRecoverableNodeError } from "./recoverable-node-error.js";
19
+ export { createInvocationAccount, inInvocationAccount, recordInvocationCost, recordInvocationAsset, currentInvocationAccount } from "./invocation-account.js";
20
+ export { recordGenerationReceipt, recordGenerationProviderResult, recordGenerationReceiptAsync, recordGenerationBindingAsync, runWithGenerationReceipt, currentGenerationReceipt, currentGenerationProviderRequestOptions, isAuthoritativeProviderTerminalError, GenerationScopeError } from "./generation-receipt.js";
21
+ export { HIGGSFIELD_BASE, HiggsfieldApiError, higgsfieldSubmit, higgsfieldGetStatus, higgsfieldGetStatusByRequestId, higgsfieldAwaitResult, higgsfieldCancel, higgsfieldCancelByRequestId, higgsfieldEstimate, higgsfieldCreateUploadUrl, higgsfieldUploadMedia, higgsfieldOutputUrls, higgsfieldDownloadResult } from "./providers/higgsfield-transport.js";
22
+ export { generationRegistry, generationDeliveryOf } from "./generation-registry.js";
23
+ export { redactGenerationParams } from "./redact-params.js";
24
+ export { CostCappedTurnBudget, CompositeTurnBudget, createRunBudget, createDeadline, createSemaphore, createCounter, isRunBudget, budgetFromContext, RUN_BUDGET_CONTEXT_KEY, BUDGET_EXHAUSTION_KINDS, TURN_REFUSALS } from "./turn-budget.js";
9
25
  export { packContext } from "./context-packer.js";
26
+ export { resolveEntities } from "./entities.js";
27
+ // Public API re-export — the source of truth lives in @nodetool-ai/protocol
28
+ export { isZodSchema, parseWithTypeCoercion, zodToJsonSchema } from "@nodetool-ai/protocol/zod-schema";
29
+ export { VariableChannel } from "./variable-channel.js";
30
+ export { countTokens, truncateToTokens } from "./token-counter.js";
10
31
  export { PythonStdioBridge } from "./python-stdio-bridge.js";
32
+ import { PythonBridgeBase } from "./python-bridge-base.js";
33
+ export { PythonBridgeBase };
34
+ export { WebsocketPythonBridge } from "./python-websocket-bridge.js";
35
+ export { createPythonBridge, onPythonBridgeCreated } from "./python-bridge-factory.js";
36
+ export { encodeFrame, FrameDecoder, FrameSizeError, DEFAULT_MAX_BRIDGE_FRAME_SIZE } from "./python-bridge-framing.js";
37
+ export { SwappableBridge } from "./swappable-python-bridge.js";
11
38
  // Public API re-export — the source of truth lives in @nodetool-ai/protocol
12
39
  // so the Electron main bundle (which can't pull in the runtime barrel) and
13
40
  // any other thin consumer can read these constants without dragging the
14
41
  // providers in. Internal callers should import from protocol directly.
15
42
  export { BRIDGE_PROTOCOL_VERSION, MIN_NODETOOL_CORE_VERSION } from "@nodetool-ai/protocol/bridge-protocol";
43
+ export { encodeRawRgbaToPng, encodeRawImageRef, extractImageRegion, rasterizeSvg } from "./image-codec.js";
16
44
  export { PythonNodeExecutor } from "./python-node-executor.js";
17
- export { executeComfy } from "./comfy-executor.js";
45
+ export { connectPythonBridgeForGraph, resolvePythonNodeExecutor } from "./python-graph-resolver.js";
46
+ export { loadMediaRefBytes } from "./media-ref-bytes.js";
47
+ export { imageModelSupportsTask } from "./image-model-tasks.js";
48
+ export { fetchExternalMedia, privateMediaFetchAllowed } from "./external-media-fetch.js";
49
+ export { assetRefToPromptToken, classifyAssetToken, classifyTextToken, expandAssetReferences, expandEntityRefs, expandEntitiesForGeneration, findAssetRefs, findImageAssetRefs, findTextAssetRefs, inlineTextAssetRefs, stripAssetRefs, mapPromptAssetsToInputs } from "./prompt-asset-refs.js";
50
+ export { logPythonWorkerStderr } from "./python-worker-stderr.js";
51
+ export { createFakeContext, stubGlobalFetch } from "./testing.js";
52
+ export { executeComfy, uploadComfyFile } from "./comfy-executor.js";
53
+ export { executeBlender, BlenderExecutorError } from "./blender-executor.js";
54
+ export { runHostBinary, HostBinaryMissingError, MAX_CAPTURED_BYTES, MAX_ARTIFACT_BYTES, maxConcurrentHostBinaries, mimeFromFilename, clampTimeoutSeconds } from "./host-binaries.js";
18
55
  export { RECOMMENDED_MODELS } from "./recommended-models.js";
56
+ export { clearProviderCache, getProviderCacheVersion } from "./provider-cache.js";
57
+ export { registerCostReconciler, getCostReconciler } from "./cost-reconciler.js";
58
+ export * from "./google/index.js";
59
+ export { PERMISSION_GATE_CONTEXT_KEY, decidePermission, headlessDenialReason, headlessGate } from "./permission-gate.js";
60
+ export { inAppRunCostAccount } from "./run-context.js";
61
+ export { flushTelemetry } from "./telemetry.js";
62
+ export { configureRunTraceStore } from "./run-trace-processor.js";
63
+ export { withRunTrace, getRunTraceScope, recordRunTraceSecret, markTraceContentTruncated, suppressRunTraceContent, recordTraceEvent } from "./run-trace-context.js";
64
+ export { stringifyTraceContent } from "./run-trace-serialization.js";
65
+ export { getProviderStreamTrace } from "./providers/loop-tracing.js";
19
66
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EAKrB,MAAM,cAAc,CAAC;AAEtB,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,aAAa,EACb,SAAS,EAEV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAGnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EAGhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAsB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EACL,iBAAiB,EAOlB,MAAM,0BAA0B,CAAC;AAClC,4EAA4E;AAC5E,2EAA2E;AAC3E,wEAAwE;AACxE,uEAAuE;AACvE,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAM/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAOnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EAExB,WAAW,EACX,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAWhB,8BAA8B,EAM/B,MAAM,cAAc,CAAC;AAEtB,2EAA2E;AAC3E,+EAA+E;AAC/E,oDAAoD;AACpD,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAKjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,8BAA8B,EAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,WAAW,EACX,UAAU,EAKX,MAAM,mBAAmB,CAAC;AAE3B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,SAAS,EAEV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAGnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EAIhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EAEzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,4BAA4B,EAC5B,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,uCAAuC,EACvC,oCAAoC,EACpC,oBAAoB,EAGrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,8BAA8B,EAC9B,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC3B,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,qCAAqC,CAAC;AAQ7C,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EAIrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EAgBd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAsB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,eAAe,EAA6B,MAAM,eAAe,CAAC;AAC3E,4EAA4E;AAC5E,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,eAAe,EAGhB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EACL,iBAAiB,EAOlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAuB5B,OAAO,EACL,qBAAqB,EAEtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,EACd,6BAA6B,EAE9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAQ/D,4EAA4E;AAC5E,2EAA2E;AAC3E,wEAAwE;AACxE,uEAAuE;AACvE,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAsE,MAAM,sBAAsB,CAAC;AAC7H,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC3B,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EASxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAQlE,OAAO,EACL,iBAAiB,EACjB,eAAe,EAGhB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAe7E,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAM9B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACb,MAAM,sBAAsB,CAAC;AAc9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEpK,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Invocation-scoped cost and asset accounting.
3
+ *
4
+ * The supervisor may only offer `retry` for an invocation that spent nothing
5
+ * and wrote nothing (docs/workflow-supervisor-design.md §5.3). Answering that
6
+ * needs per-invocation numbers, and a stack on the shared `ProcessingContext`
7
+ * cannot supply them: every actor holds the same context and actors complete
8
+ * out of order, so push/pop would credit actor A's charge to actor B whenever
9
+ * A finishes first — precisely the corruption that would re-expose retry after
10
+ * a billed call.
11
+ *
12
+ * So the scope travels with the invocation's async execution instead. Cost and
13
+ * asset hooks write to whichever account is on the async stack; concurrent
14
+ * invocations each have their own, in any completion order.
15
+ */
16
+ export interface InvocationAccount {
17
+ /** Provider charges (USD) recorded while this invocation ran. */
18
+ costUsd: number;
19
+ /** True once the invocation created an asset. */
20
+ createdAssets: boolean;
21
+ }
22
+ export declare function createInvocationAccount(): InvocationAccount;
23
+ /**
24
+ * Run `fn` inside `account`. The caller owns the account so it can read what
25
+ * the invocation spent even when `fn` throws — which is the case retry safety
26
+ * turns on.
27
+ */
28
+ export declare function inInvocationAccount<T>(account: InvocationAccount, fn: () => Promise<T>): Promise<T>;
29
+ /**
30
+ * Charge the invocation currently on the async stack, if any.
31
+ *
32
+ * A non-finite amount means a provider reported something we cannot add up —
33
+ * and "cannot add up" must not read as "free", or the invocation would look
34
+ * cost-free and re-earn a retry after a real charge. It is recorded as a
35
+ * nominal charge instead: the number is meaningless, the fact of spending is
36
+ * not. `costUsd` stays finite so the escalation record remains JSON-safe.
37
+ */
38
+ export declare function recordInvocationCost(usd: number | undefined | null): void;
39
+ /** Mark the invocation currently on the async stack as having written an asset. */
40
+ export declare function recordInvocationAsset(): void;
41
+ /** The account for the invocation currently on the async stack, if any. */
42
+ export declare function currentInvocationAccount(): InvocationAccount | undefined;
43
+ //# sourceMappingURL=invocation-account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invocation-account.d.ts","sourceRoot":"","sources":["../src/invocation-account.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,aAAa,EAAE,OAAO,CAAC;CACxB;AAID,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,OAAO,EAAE,iBAAiB,EAC1B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAKzE;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,IAAI,iBAAiB,GAAG,SAAS,CAExE"}