@nhtio/adk 0.1.0-master-2a4e1bd2 → 0.1.0-master-cd595e6f

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 (413) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/artifact_methods-CJDQ5Lv-.mjs +1 -0
  3. package/artifact_methods-D6k_82r3.js +1 -0
  4. package/batteries/artifacts/ecmascript.cjs +1 -1
  5. package/batteries/artifacts/ecmascript.mjs +1 -1
  6. package/batteries/artifacts/toon.cjs +1 -1
  7. package/batteries/artifacts/toon.mjs +1 -1
  8. package/batteries/artifacts/xml.cjs +1 -1
  9. package/batteries/artifacts/xml.mjs +1 -1
  10. package/batteries/artifacts/yaml.cjs +1 -1
  11. package/batteries/artifacts/yaml.mjs +1 -1
  12. package/batteries/artifacts.cjs +4 -4
  13. package/batteries/artifacts.mjs +4 -4
  14. package/batteries/dev-tools/forge.cjs +3 -3
  15. package/batteries/dev-tools/forge.mjs +3 -3
  16. package/batteries/dev-tools.cjs +2 -2
  17. package/batteries/dev-tools.mjs +2 -2
  18. package/batteries/encoding.cjs +7 -7
  19. package/batteries/encoding.mjs +7 -7
  20. package/batteries/generation/gemini/adapter.cjs +1 -1
  21. package/batteries/generation/gemini/adapter.mjs +1 -1
  22. package/batteries/generation/local_diffusion/adapter.cjs +1 -1
  23. package/batteries/generation/local_diffusion/adapter.mjs +1 -1
  24. package/batteries/generation/openai/adapter.cjs +1 -1
  25. package/batteries/generation/openai/adapter.mjs +1 -1
  26. package/batteries/isolation/browser.d.ts +1 -1
  27. package/batteries/isolation/child_process/transport.d.ts +2 -2
  28. package/batteries/isolation/child_process.cjs +4 -4
  29. package/batteries/isolation/child_process.cjs.map +1 -1
  30. package/batteries/isolation/child_process.mjs +4 -4
  31. package/batteries/isolation/child_process.mjs.map +1 -1
  32. package/batteries/isolation/codec.d.ts +2 -2
  33. package/batteries/isolation/crash_policy.d.ts +1 -1
  34. package/batteries/isolation/isolate_function.d.ts +2 -2
  35. package/batteries/isolation/protocol.d.ts +4 -4
  36. package/batteries/isolation/serve.d.ts +2 -2
  37. package/batteries/isolation/types.d.ts +4 -4
  38. package/batteries/isolation.cjs +1 -1
  39. package/batteries/isolation.mjs +1 -1
  40. package/batteries/llm/anthropic_messages/adapter.cjs +6 -6
  41. package/batteries/llm/anthropic_messages/adapter.cjs.map +1 -1
  42. package/batteries/llm/anthropic_messages/adapter.mjs +6 -6
  43. package/batteries/llm/anthropic_messages/adapter.mjs.map +1 -1
  44. package/batteries/llm/anthropic_messages/count_tokens.cjs +1 -1
  45. package/batteries/llm/anthropic_messages/count_tokens.mjs +1 -1
  46. package/batteries/llm/anthropic_messages/helpers.cjs +3 -3
  47. package/batteries/llm/anthropic_messages/helpers.mjs +3 -3
  48. package/batteries/llm/anthropic_messages/types.d.ts +2 -2
  49. package/batteries/llm/anthropic_messages/validation.cjs +3 -3
  50. package/batteries/llm/anthropic_messages/validation.cjs.map +1 -1
  51. package/batteries/llm/anthropic_messages/validation.mjs +3 -3
  52. package/batteries/llm/anthropic_messages/validation.mjs.map +1 -1
  53. package/batteries/llm/anthropic_messages.cjs +2 -2
  54. package/batteries/llm/anthropic_messages.mjs +2 -2
  55. package/batteries/llm/bedrock_converse/adapter.cjs +29 -7
  56. package/batteries/llm/bedrock_converse/adapter.cjs.map +1 -1
  57. package/batteries/llm/bedrock_converse/adapter.mjs +30 -8
  58. package/batteries/llm/bedrock_converse/adapter.mjs.map +1 -1
  59. package/batteries/llm/bedrock_converse/exceptions.cjs +3 -0
  60. package/batteries/llm/bedrock_converse/exceptions.cjs.map +1 -1
  61. package/batteries/llm/bedrock_converse/exceptions.d.ts +6 -0
  62. package/batteries/llm/bedrock_converse/exceptions.mjs +3 -1
  63. package/batteries/llm/bedrock_converse/exceptions.mjs.map +1 -1
  64. package/batteries/llm/bedrock_converse/helpers.cjs +1 -1
  65. package/batteries/llm/bedrock_converse/helpers.mjs +1 -1
  66. package/batteries/llm/bedrock_converse/types.d.ts +6 -2
  67. package/batteries/llm/bedrock_converse/validation.cjs +7 -1
  68. package/batteries/llm/bedrock_converse/validation.cjs.map +1 -1
  69. package/batteries/llm/bedrock_converse/validation.mjs +7 -1
  70. package/batteries/llm/bedrock_converse/validation.mjs.map +1 -1
  71. package/batteries/llm/bedrock_converse.cjs +2 -2
  72. package/batteries/llm/bedrock_converse.mjs +2 -2
  73. package/batteries/llm/claude_code_cli/adapter.cjs +6 -6
  74. package/batteries/llm/claude_code_cli/adapter.cjs.map +1 -1
  75. package/batteries/llm/claude_code_cli/adapter.mjs +6 -6
  76. package/batteries/llm/claude_code_cli/adapter.mjs.map +1 -1
  77. package/batteries/llm/claude_code_cli/helpers.cjs +3 -3
  78. package/batteries/llm/claude_code_cli/helpers.mjs +3 -3
  79. package/batteries/llm/claude_code_cli/types.d.ts +3 -2
  80. package/batteries/llm/claude_code_cli/validation.cjs +3 -3
  81. package/batteries/llm/claude_code_cli/validation.cjs.map +1 -1
  82. package/batteries/llm/claude_code_cli/validation.mjs +3 -3
  83. package/batteries/llm/claude_code_cli/validation.mjs.map +1 -1
  84. package/batteries/llm/claude_code_cli.cjs +1 -1
  85. package/batteries/llm/claude_code_cli.mjs +1 -1
  86. package/batteries/llm/gemini_generate_content/adapter.cjs +29 -7
  87. package/batteries/llm/gemini_generate_content/adapter.cjs.map +1 -1
  88. package/batteries/llm/gemini_generate_content/adapter.mjs +30 -8
  89. package/batteries/llm/gemini_generate_content/adapter.mjs.map +1 -1
  90. package/batteries/llm/gemini_generate_content/exceptions.cjs +3 -0
  91. package/batteries/llm/gemini_generate_content/exceptions.cjs.map +1 -1
  92. package/batteries/llm/gemini_generate_content/exceptions.d.ts +6 -0
  93. package/batteries/llm/gemini_generate_content/exceptions.mjs +3 -1
  94. package/batteries/llm/gemini_generate_content/exceptions.mjs.map +1 -1
  95. package/batteries/llm/gemini_generate_content/helpers.cjs +1 -1
  96. package/batteries/llm/gemini_generate_content/helpers.mjs +1 -1
  97. package/batteries/llm/gemini_generate_content/types.d.ts +7 -3
  98. package/batteries/llm/gemini_generate_content/validation.cjs +11 -2
  99. package/batteries/llm/gemini_generate_content/validation.cjs.map +1 -1
  100. package/batteries/llm/gemini_generate_content/validation.mjs +11 -2
  101. package/batteries/llm/gemini_generate_content/validation.mjs.map +1 -1
  102. package/batteries/llm/gemini_generate_content.cjs +1 -1
  103. package/batteries/llm/gemini_generate_content.mjs +1 -1
  104. package/batteries/llm/litert_lm/adapter.cjs +6 -6
  105. package/batteries/llm/litert_lm/adapter.cjs.map +1 -1
  106. package/batteries/llm/litert_lm/adapter.mjs +6 -6
  107. package/batteries/llm/litert_lm/adapter.mjs.map +1 -1
  108. package/batteries/llm/litert_lm/helpers.cjs +3 -3
  109. package/batteries/llm/litert_lm/helpers.mjs +3 -3
  110. package/batteries/llm/litert_lm/types.d.ts +2 -2
  111. package/batteries/llm/litert_lm/validation.cjs +3 -3
  112. package/batteries/llm/litert_lm/validation.cjs.map +1 -1
  113. package/batteries/llm/litert_lm/validation.mjs +3 -3
  114. package/batteries/llm/litert_lm/validation.mjs.map +1 -1
  115. package/batteries/llm/litert_lm.cjs +1 -1
  116. package/batteries/llm/litert_lm.mjs +1 -1
  117. package/batteries/llm/ollama/adapter.cjs +6 -6
  118. package/batteries/llm/ollama/adapter.cjs.map +1 -1
  119. package/batteries/llm/ollama/adapter.mjs +6 -6
  120. package/batteries/llm/ollama/adapter.mjs.map +1 -1
  121. package/batteries/llm/ollama/helpers.cjs +4 -4
  122. package/batteries/llm/ollama/helpers.mjs +4 -4
  123. package/batteries/llm/ollama/types.d.ts +2 -2
  124. package/batteries/llm/ollama/validation.cjs +3 -3
  125. package/batteries/llm/ollama/validation.cjs.map +1 -1
  126. package/batteries/llm/ollama/validation.mjs +3 -3
  127. package/batteries/llm/ollama/validation.mjs.map +1 -1
  128. package/batteries/llm/ollama.cjs +2 -2
  129. package/batteries/llm/ollama.mjs +2 -2
  130. package/batteries/llm/openai_chat_completions/adapter.cjs +6 -6
  131. package/batteries/llm/openai_chat_completions/adapter.cjs.map +1 -1
  132. package/batteries/llm/openai_chat_completions/adapter.mjs +6 -6
  133. package/batteries/llm/openai_chat_completions/adapter.mjs.map +1 -1
  134. package/batteries/llm/openai_chat_completions/helpers.cjs +4 -4
  135. package/batteries/llm/openai_chat_completions/helpers.mjs +4 -4
  136. package/batteries/llm/openai_chat_completions/types.d.ts +2 -2
  137. package/batteries/llm/openai_chat_completions/validation.cjs +3 -3
  138. package/batteries/llm/openai_chat_completions/validation.cjs.map +1 -1
  139. package/batteries/llm/openai_chat_completions/validation.mjs +3 -3
  140. package/batteries/llm/openai_chat_completions/validation.mjs.map +1 -1
  141. package/batteries/llm/openai_chat_completions.cjs +2 -2
  142. package/batteries/llm/openai_chat_completions.mjs +2 -2
  143. package/batteries/llm/openai_responses/adapter.cjs +6 -6
  144. package/batteries/llm/openai_responses/adapter.cjs.map +1 -1
  145. package/batteries/llm/openai_responses/adapter.mjs +6 -6
  146. package/batteries/llm/openai_responses/adapter.mjs.map +1 -1
  147. package/batteries/llm/openai_responses/helpers.cjs +3 -3
  148. package/batteries/llm/openai_responses/helpers.mjs +3 -3
  149. package/batteries/llm/openai_responses/types.d.ts +2 -2
  150. package/batteries/llm/openai_responses/validation.cjs +3 -3
  151. package/batteries/llm/openai_responses/validation.cjs.map +1 -1
  152. package/batteries/llm/openai_responses/validation.mjs +3 -3
  153. package/batteries/llm/openai_responses/validation.mjs.map +1 -1
  154. package/batteries/llm/openai_responses.cjs +2 -2
  155. package/batteries/llm/openai_responses.mjs +2 -2
  156. package/batteries/llm/transformers_js/adapter.cjs +6 -6
  157. package/batteries/llm/transformers_js/adapter.cjs.map +1 -1
  158. package/batteries/llm/transformers_js/adapter.mjs +6 -6
  159. package/batteries/llm/transformers_js/adapter.mjs.map +1 -1
  160. package/batteries/llm/transformers_js/helpers.cjs +3 -3
  161. package/batteries/llm/transformers_js/helpers.mjs +3 -3
  162. package/batteries/llm/transformers_js/types.d.ts +2 -2
  163. package/batteries/llm/transformers_js/validation.cjs +3 -3
  164. package/batteries/llm/transformers_js/validation.cjs.map +1 -1
  165. package/batteries/llm/transformers_js/validation.mjs +3 -3
  166. package/batteries/llm/transformers_js/validation.mjs.map +1 -1
  167. package/batteries/llm/transformers_js.cjs +1 -1
  168. package/batteries/llm/transformers_js.mjs +1 -1
  169. package/batteries/llm/webllm_chat_completions/adapter.cjs +6 -6
  170. package/batteries/llm/webllm_chat_completions/adapter.cjs.map +1 -1
  171. package/batteries/llm/webllm_chat_completions/adapter.mjs +6 -6
  172. package/batteries/llm/webllm_chat_completions/adapter.mjs.map +1 -1
  173. package/batteries/llm/webllm_chat_completions/helpers.cjs +1 -1
  174. package/batteries/llm/webllm_chat_completions/helpers.mjs +1 -1
  175. package/batteries/llm/webllm_chat_completions/validation.cjs +3 -3
  176. package/batteries/llm/webllm_chat_completions/validation.cjs.map +1 -1
  177. package/batteries/llm/webllm_chat_completions/validation.mjs +3 -3
  178. package/batteries/llm/webllm_chat_completions/validation.mjs.map +1 -1
  179. package/batteries/llm/webllm_chat_completions.cjs +2 -2
  180. package/batteries/llm/webllm_chat_completions.mjs +2 -2
  181. package/batteries/llm.cjs +2 -2
  182. package/batteries/llm.mjs +2 -2
  183. package/batteries/media/builder.d.ts +3 -0
  184. package/batteries/media/contracts.cjs.map +1 -1
  185. package/batteries/media/contracts.d.ts +40 -1
  186. package/batteries/media/contracts.mjs.map +1 -1
  187. package/batteries/media/engines/sharp.cjs +36 -2
  188. package/batteries/media/engines/sharp.cjs.map +1 -1
  189. package/batteries/media/engines/sharp.mjs +36 -2
  190. package/batteries/media/engines/sharp.mjs.map +1 -1
  191. package/batteries/media/forge.cjs +5 -5
  192. package/batteries/media/forge.mjs +5 -5
  193. package/batteries/media/index.d.ts +1 -1
  194. package/batteries/media/lint.cjs +3 -2
  195. package/batteries/media/lint.cjs.map +1 -1
  196. package/batteries/media/lint.mjs +3 -2
  197. package/batteries/media/lint.mjs.map +1 -1
  198. package/batteries/media.cjs +66 -2
  199. package/batteries/media.cjs.map +1 -1
  200. package/batteries/media.mjs +66 -2
  201. package/batteries/media.mjs.map +1 -1
  202. package/batteries/orchestration/conformance.cjs +123 -74
  203. package/batteries/orchestration/conformance.cjs.map +1 -1
  204. package/batteries/orchestration/conformance.d.ts +10 -8
  205. package/batteries/orchestration/conformance.mjs +54 -5
  206. package/batteries/orchestration/conformance.mjs.map +1 -1
  207. package/batteries/orchestration/dispatch_reasoner.cjs +4 -4
  208. package/batteries/orchestration/dispatch_reasoner.mjs +4 -4
  209. package/batteries/orchestration/executor.cjs +2 -2
  210. package/batteries/orchestration/executor.mjs +2 -2
  211. package/batteries/orchestration/forge.cjs +4 -4
  212. package/batteries/orchestration/forge.mjs +4 -4
  213. package/batteries/orchestration/validation.cjs +2 -2
  214. package/batteries/orchestration/validation.mjs +2 -2
  215. package/batteries/orchestration.cjs +4 -4
  216. package/batteries/orchestration.mjs +4 -4
  217. package/batteries/sandbox/contracts/policy_enforcer.d.ts +13 -1
  218. package/batteries/sandbox/js/compartment.d.ts +7 -2
  219. package/batteries/sandbox/js/exceptions.d.ts +4 -0
  220. package/batteries/sandbox/js/runner.d.ts +1 -1
  221. package/batteries/sandbox/js/service.d.ts +1 -1
  222. package/batteries/sandbox/js/ses_contracts.d.ts +4 -3
  223. package/batteries/sandbox/js.cjs +17 -8
  224. package/batteries/sandbox/js.cjs.map +1 -1
  225. package/batteries/sandbox/js.mjs +17 -9
  226. package/batteries/sandbox/js.mjs.map +1 -1
  227. package/batteries/sandbox/manager.d.ts +4 -3
  228. package/batteries/sandbox/node/srt_enforcer.d.ts +1 -1
  229. package/batteries/sandbox/node.cjs +36 -12
  230. package/batteries/sandbox/node.cjs.map +1 -1
  231. package/batteries/sandbox/node.mjs +36 -12
  232. package/batteries/sandbox/node.mjs.map +1 -1
  233. package/batteries/sandbox/tools.cjs +1 -1
  234. package/batteries/sandbox/tools.mjs +1 -1
  235. package/batteries/sandbox/types.d.ts +10 -1
  236. package/batteries/sandbox.cjs +27 -9
  237. package/batteries/sandbox.cjs.map +1 -1
  238. package/batteries/sandbox.mjs +28 -11
  239. package/batteries/sandbox.mjs.map +1 -1
  240. package/batteries/skills.cjs +9 -9
  241. package/batteries/skills.mjs +9 -9
  242. package/batteries/tools/_shared.cjs +1 -1
  243. package/batteries/tools/_shared.mjs +1 -1
  244. package/batteries/tools/color.cjs +2 -2
  245. package/batteries/tools/color.mjs +2 -2
  246. package/batteries/tools/comparison.cjs +2 -2
  247. package/batteries/tools/comparison.mjs +2 -2
  248. package/batteries/tools/data_structure.cjs +2 -2
  249. package/batteries/tools/data_structure.mjs +2 -2
  250. package/batteries/tools/datetime_extended.cjs +3 -3
  251. package/batteries/tools/datetime_extended.mjs +3 -3
  252. package/batteries/tools/datetime_math.cjs +3 -3
  253. package/batteries/tools/datetime_math.mjs +3 -3
  254. package/batteries/tools/encoding.cjs +2 -2
  255. package/batteries/tools/encoding.mjs +2 -2
  256. package/batteries/tools/formatting.cjs +2 -2
  257. package/batteries/tools/formatting.mjs +2 -2
  258. package/batteries/tools/geo_basics.cjs +2 -2
  259. package/batteries/tools/geo_basics.mjs +2 -2
  260. package/batteries/tools/math.cjs +2 -2
  261. package/batteries/tools/math.mjs +2 -2
  262. package/batteries/tools/memory.cjs +5 -5
  263. package/batteries/tools/memory.mjs +5 -5
  264. package/batteries/tools/parsing.cjs +3 -3
  265. package/batteries/tools/parsing.mjs +3 -3
  266. package/batteries/tools/retrievables.cjs +5 -5
  267. package/batteries/tools/retrievables.mjs +5 -5
  268. package/batteries/tools/scrapper.cjs +1 -1
  269. package/batteries/tools/scrapper.mjs +1 -1
  270. package/batteries/tools/searxng.cjs +1 -1
  271. package/batteries/tools/searxng.mjs +1 -1
  272. package/batteries/tools/standing_instructions.cjs +3 -3
  273. package/batteries/tools/standing_instructions.mjs +3 -3
  274. package/batteries/tools/statistics.cjs +3 -3
  275. package/batteries/tools/statistics.mjs +3 -3
  276. package/batteries/tools/string_processing.cjs +2 -2
  277. package/batteries/tools/string_processing.mjs +2 -2
  278. package/batteries/tools/structured_data.cjs +2 -2
  279. package/batteries/tools/structured_data.mjs +2 -2
  280. package/batteries/tools/text_analysis.cjs +3 -3
  281. package/batteries/tools/text_analysis.mjs +3 -3
  282. package/batteries/tools/text_comparison.cjs +2 -2
  283. package/batteries/tools/text_comparison.mjs +2 -2
  284. package/batteries/tools/time.cjs +3 -3
  285. package/batteries/tools/time.mjs +3 -3
  286. package/batteries/tools/unit_conversion.cjs +2 -2
  287. package/batteries/tools/unit_conversion.mjs +2 -2
  288. package/batteries/tools.cjs +2 -2
  289. package/batteries/tools.mjs +2 -2
  290. package/batteries/validation.cjs +5 -5
  291. package/batteries/validation.mjs +5 -5
  292. package/batteries/vector/conformance/index.d.ts +11 -16
  293. package/batteries/vector/conformance.cjs +107 -36
  294. package/batteries/vector/conformance.cjs.map +1 -1
  295. package/batteries/vector/conformance.mjs +84 -13
  296. package/batteries/vector/conformance.mjs.map +1 -1
  297. package/batteries/vector/retrievable.cjs +1 -1
  298. package/batteries/vector/retrievable.mjs +1 -1
  299. package/batteries.cjs +5 -5
  300. package/batteries.mjs +5 -5
  301. package/{chat_common-DbbIESdo.mjs → chat_common-CmKV5Dz4.mjs} +2 -2
  302. package/{chat_common-DbbIESdo.mjs.map → chat_common-CmKV5Dz4.mjs.map} +1 -1
  303. package/{chat_common-B3O3zz-i.js → chat_common-Dpan9moo.js} +2 -2
  304. package/{chat_common-B3O3zz-i.js.map → chat_common-Dpan9moo.js.map} +1 -1
  305. package/{common-v9Jo9M5k.mjs → common-BpdHIpQE.mjs} +7 -7
  306. package/{common-v9Jo9M5k.mjs.map → common-BpdHIpQE.mjs.map} +1 -1
  307. package/{common-BV3HGeLj.js → common-H44Ik9ou.js} +7 -7
  308. package/{common-BV3HGeLj.js.map → common-H44Ik9ou.js.map} +1 -1
  309. package/common.cjs +7 -7
  310. package/common.mjs +7 -7
  311. package/{dispatch_runner-CbNyqSMy.mjs → dispatch_runner-BZDXUe0G.mjs} +5 -5
  312. package/{dispatch_runner-CbNyqSMy.mjs.map → dispatch_runner-BZDXUe0G.mjs.map} +1 -1
  313. package/{dispatch_runner-Bl3Xwebu.js → dispatch_runner-CKhm-scw.js} +5 -5
  314. package/{dispatch_runner-Bl3Xwebu.js.map → dispatch_runner-CKhm-scw.js.map} +1 -1
  315. package/dispatch_runner.cjs +1 -1
  316. package/dispatch_runner.mjs +1 -1
  317. package/{ecmascript-BSnvyY8T.js → ecmascript-CCtgamDh.js} +3 -3
  318. package/{ecmascript-BSnvyY8T.js.map → ecmascript-CCtgamDh.js.map} +1 -1
  319. package/{ecmascript-CZ7_YKfZ.mjs → ecmascript-DcmUQ9Jx.mjs} +3 -3
  320. package/{ecmascript-CZ7_YKfZ.mjs.map → ecmascript-DcmUQ9Jx.mjs.map} +1 -1
  321. package/eslint.cjs +1 -1
  322. package/eslint.mjs +1 -1
  323. package/exceptions.cjs +1 -1
  324. package/exceptions.mjs +1 -1
  325. package/forge.cjs +2 -2
  326. package/forge.mjs +2 -2
  327. package/guards.cjs +7 -7
  328. package/guards.mjs +7 -7
  329. package/{helpers-CDmLDBq5.mjs → helpers-BH7HTtkD.mjs} +3 -3
  330. package/{helpers-CDmLDBq5.mjs.map → helpers-BH7HTtkD.mjs.map} +1 -1
  331. package/{helpers-Tvvwpx1M.js → helpers-CEjjkXso.js} +3 -3
  332. package/{helpers-Tvvwpx1M.js.map → helpers-CEjjkXso.js.map} +1 -1
  333. package/index.cjs +10 -10
  334. package/index.mjs +10 -10
  335. package/{isolation-BQCTQYZ_.js → isolation-7Jrcucgc.js} +11 -11
  336. package/isolation-7Jrcucgc.js.map +1 -0
  337. package/{isolation-7xbkc12r.mjs → isolation-CO0NiK8R.mjs} +11 -11
  338. package/isolation-CO0NiK8R.mjs.map +1 -0
  339. package/lib/classes/tokenizable.d.ts +2 -3
  340. package/mcp/adk-docs-corpus.json +2 -2
  341. package/package.json +469 -469
  342. package/{retrievable-C5dXuDhD.js → retrievable-BTwjmPnl.js} +3 -3
  343. package/{retrievable-C5dXuDhD.js.map → retrievable-BTwjmPnl.js.map} +1 -1
  344. package/{retrievable-gl_TIHnX.mjs → retrievable-CXTAUuuv.mjs} +3 -3
  345. package/{retrievable-gl_TIHnX.mjs.map → retrievable-CXTAUuuv.mjs.map} +1 -1
  346. package/{scrapper-DD6-_2u-.js → scrapper-CJexXXK-.js} +4 -4
  347. package/{scrapper-DD6-_2u-.js.map → scrapper-CJexXXK-.js.map} +1 -1
  348. package/{scrapper-u_orpxIB.mjs → scrapper-DiQ5FfDL.mjs} +4 -4
  349. package/{scrapper-u_orpxIB.mjs.map → scrapper-DiQ5FfDL.mjs.map} +1 -1
  350. package/{searxng-fVdJUCK2.mjs → searxng-BFTJ6rTE.mjs} +4 -4
  351. package/{searxng-fVdJUCK2.mjs.map → searxng-BFTJ6rTE.mjs.map} +1 -1
  352. package/{searxng-C7GK0Nrz.js → searxng-DzlGZG4V.js} +4 -4
  353. package/{searxng-C7GK0Nrz.js.map → searxng-DzlGZG4V.js.map} +1 -1
  354. package/server.json +2 -2
  355. package/skills/adk-assembly/SKILL.md +2 -2
  356. package/{spooled_artifact-DriNQRj7.js → spooled_artifact-BpcesRBv.js} +384 -384
  357. package/spooled_artifact-BpcesRBv.js.map +1 -0
  358. package/{spooled_artifact-BkueYJhR.mjs → spooled_artifact-Bw_7swIp.mjs} +385 -385
  359. package/spooled_artifact-Bw_7swIp.mjs.map +1 -0
  360. package/spooled_artifact.cjs +2 -2
  361. package/spooled_artifact.mjs +2 -2
  362. package/{spooled_markdown_artifact-CfHRZUkl.mjs → spooled_markdown_artifact-vd6eNtIP.mjs} +3 -3
  363. package/{spooled_markdown_artifact-CfHRZUkl.mjs.map → spooled_markdown_artifact-vd6eNtIP.mjs.map} +1 -1
  364. package/{spooled_markdown_artifact-C_VkCDhF.js → spooled_markdown_artifact-wJPnE8Ij.js} +3 -3
  365. package/{spooled_markdown_artifact-C_VkCDhF.js.map → spooled_markdown_artifact-wJPnE8Ij.js.map} +1 -1
  366. package/{thought-B8JAi3-W.mjs → thought-BE1KGEhV.mjs} +3 -3
  367. package/{thought-B8JAi3-W.mjs.map → thought-BE1KGEhV.mjs.map} +1 -1
  368. package/{thought--fRgOwTP.js → thought-bS7O9O5H.js} +3 -3
  369. package/{thought--fRgOwTP.js.map → thought-bS7O9O5H.js.map} +1 -1
  370. package/{tokenizable-CWW7iSrD.js → tokenizable-BMZuGWRd.js} +35 -29
  371. package/tokenizable-BMZuGWRd.js.map +1 -0
  372. package/{tokenizable-DLMP68ZV.mjs → tokenizable-VB4Av8GF.mjs} +36 -30
  373. package/tokenizable-VB4Av8GF.mjs.map +1 -0
  374. package/{tool_call-CPjyvkm4.mjs → tool_call-Cfaj-6zK.mjs} +4 -4
  375. package/{tool_call-CPjyvkm4.mjs.map → tool_call-Cfaj-6zK.mjs.map} +1 -1
  376. package/{tool_call-DgqVwL5n.js → tool_call-Fs_Uh5wQ.js} +4 -4
  377. package/{tool_call-DgqVwL5n.js.map → tool_call-Fs_Uh5wQ.js.map} +1 -1
  378. package/{tools-BmLzkvNr.mjs → tools-B3_8C78Q.mjs} +6 -6
  379. package/{tools-BmLzkvNr.mjs.map → tools-B3_8C78Q.mjs.map} +1 -1
  380. package/{tools-DmcIe2Cb.js → tools-CqOcmHR8.js} +6 -6
  381. package/{tools-DmcIe2Cb.js.map → tools-CqOcmHR8.js.map} +1 -1
  382. package/{toon-BvTQsKdN.mjs → toon-BSlr88px.mjs} +5 -5
  383. package/{toon-BvTQsKdN.mjs.map → toon-BSlr88px.mjs.map} +1 -1
  384. package/{toon-B05eKx-q.js → toon-D71tkyI3.js} +5 -5
  385. package/{toon-B05eKx-q.js.map → toon-D71tkyI3.js.map} +1 -1
  386. package/{turn_runner-DEGCvfVZ.mjs → turn_runner-BHHD6h77.mjs} +5 -5
  387. package/{turn_runner-DEGCvfVZ.mjs.map → turn_runner-BHHD6h77.mjs.map} +1 -1
  388. package/{turn_runner-DT8TseR4.js → turn_runner-DhLI7OTH.js} +5 -5
  389. package/{turn_runner-DT8TseR4.js.map → turn_runner-DhLI7OTH.js.map} +1 -1
  390. package/turn_runner.cjs +1 -1
  391. package/turn_runner.mjs +1 -1
  392. package/types-D6X_aUIb.mjs.map +1 -1
  393. package/types-DrSosVaM.js.map +1 -1
  394. package/{validate-lzy9nG_E.mjs → validate-Bi7FGjoq.mjs} +13 -1
  395. package/{validate-lzy9nG_E.mjs.map → validate-Bi7FGjoq.mjs.map} +1 -1
  396. package/{validate-CdOS7S2u.js → validate-CkQI-48O.js} +13 -1
  397. package/{validate-CdOS7S2u.js.map → validate-CkQI-48O.js.map} +1 -1
  398. package/{xml-DDTIMpY3.js → xml-BeNvlifb.js} +5 -5
  399. package/{xml-DDTIMpY3.js.map → xml-BeNvlifb.js.map} +1 -1
  400. package/{xml-VhJ4NrMB.mjs → xml-vyCZZiF_.mjs} +5 -5
  401. package/{xml-VhJ4NrMB.mjs.map → xml-vyCZZiF_.mjs.map} +1 -1
  402. package/{yaml-Cx16IYJq.js → yaml-DhLLa2cj.js} +5 -5
  403. package/{yaml-Cx16IYJq.js.map → yaml-DhLLa2cj.js.map} +1 -1
  404. package/{yaml-Du4wFGzL.mjs → yaml-Dtz0Bd7J.mjs} +5 -5
  405. package/{yaml-Du4wFGzL.mjs.map → yaml-Dtz0Bd7J.mjs.map} +1 -1
  406. package/artifact_methods-BMCahBLn.mjs +0 -1
  407. package/artifact_methods-f_bSy4kX.js +0 -1
  408. package/isolation-7xbkc12r.mjs.map +0 -1
  409. package/isolation-BQCTQYZ_.js.map +0 -1
  410. package/spooled_artifact-BkueYJhR.mjs.map +0 -1
  411. package/spooled_artifact-DriNQRj7.js.map +0 -1
  412. package/tokenizable-CWW7iSrD.js.map +0 -1
  413. package/tokenizable-DLMP68ZV.mjs.map +0 -1
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../../chunk-Cek0wNdY.js");
3
- const require_tool_call = require("../../../tool_call-DgqVwL5n.js");
4
- require("../../../common-BV3HGeLj.js");
5
- const require_helpers = require("../../../helpers-Tvvwpx1M.js");
3
+ const require_tool_call = require("../../../tool_call-Fs_Uh5wQ.js");
4
+ require("../../../common-H44Ik9ou.js");
5
+ const require_helpers = require("../../../helpers-CEjjkXso.js");
6
6
  const require_batteries_llm_openai_responses_exceptions = require("./exceptions.cjs");
7
7
  let uuid = require("uuid");
8
8
  //#region src/batteries/llm/openai_responses/helpers.ts
@@ -1,6 +1,6 @@
1
- import { n as Media } from "../../../tool_call-CPjyvkm4.mjs";
2
- import "../../../common-v9Jo9M5k.mjs";
3
- import { A as renderMemories, B as retrievableToAttrs, C as looksLikeSpooledArtifact, D as renderArtifactHandleBody, F as renderThirdPartyPrivateRetrievables, G as toolsToChatCompletionsTools, H as sanitizeFilenameForDescription, I as renderThirdPartyPublicRetrievables, L as renderThought, M as renderRetrievableSafetyDirective, N as renderRetrievables, O as renderChatCompletionsSystemPrompt, P as renderStandingInstructions, R as renderTrustedContent, S as floorTrustTier, T as neutraliseDeveloperRulesTag, U as sanitizeMimeType, W as stripEnvelopeSpecialTokens, _ as defaultRenderUntrustedContent, a as defaultRenderArtifactHandleBody, b as escapeXmlAttribute, c as defaultRenderMemories, d as defaultRenderRetrievables, f as defaultRenderStandingInstructions, g as defaultRenderTrustedContent, h as defaultRenderThought, i as defaultFilterThoughts, j as renderRetrievableHandleBody, k as renderFirstPartyRetrievables, l as defaultRenderRetrievableHandleBody, m as defaultRenderThirdPartyPublicRetrievables, n as defaultCanonicalFingerprint, o as defaultRenderChatCompletionsSystemPrompt, p as defaultRenderThirdPartyPrivateRetrievables, r as defaultDescriptionToChatCompletionsJsonSchema, s as defaultRenderFirstPartyRetrievables, t as canonicalFingerprint, u as defaultRenderRetrievableSafetyDirective, v as defaultToolsToChatCompletionsTools, w as memoryToAttrs, x as filterThoughts, y as descriptionToChatCompletionsJsonSchema, z as renderUntrustedContent } from "../../../helpers-CDmLDBq5.mjs";
1
+ import { n as Media } from "../../../tool_call-Cfaj-6zK.mjs";
2
+ import "../../../common-BpdHIpQE.mjs";
3
+ import { A as renderMemories, B as retrievableToAttrs, C as looksLikeSpooledArtifact, D as renderArtifactHandleBody, F as renderThirdPartyPrivateRetrievables, G as toolsToChatCompletionsTools, H as sanitizeFilenameForDescription, I as renderThirdPartyPublicRetrievables, L as renderThought, M as renderRetrievableSafetyDirective, N as renderRetrievables, O as renderChatCompletionsSystemPrompt, P as renderStandingInstructions, R as renderTrustedContent, S as floorTrustTier, T as neutraliseDeveloperRulesTag, U as sanitizeMimeType, W as stripEnvelopeSpecialTokens, _ as defaultRenderUntrustedContent, a as defaultRenderArtifactHandleBody, b as escapeXmlAttribute, c as defaultRenderMemories, d as defaultRenderRetrievables, f as defaultRenderStandingInstructions, g as defaultRenderTrustedContent, h as defaultRenderThought, i as defaultFilterThoughts, j as renderRetrievableHandleBody, k as renderFirstPartyRetrievables, l as defaultRenderRetrievableHandleBody, m as defaultRenderThirdPartyPublicRetrievables, n as defaultCanonicalFingerprint, o as defaultRenderChatCompletionsSystemPrompt, p as defaultRenderThirdPartyPrivateRetrievables, r as defaultDescriptionToChatCompletionsJsonSchema, s as defaultRenderFirstPartyRetrievables, t as canonicalFingerprint, u as defaultRenderRetrievableSafetyDirective, v as defaultToolsToChatCompletionsTools, w as memoryToAttrs, x as filterThoughts, y as descriptionToChatCompletionsJsonSchema, z as renderUntrustedContent } from "../../../helpers-BH7HTtkD.mjs";
4
4
  import { E_OPENAI_RESPONSES_UNSUPPORTED_MEDIA_MODALITY } from "./exceptions.mjs";
5
5
  import { v6 } from "uuid";
6
6
  //#region src/batteries/llm/openai_responses/helpers.ts
@@ -13,7 +13,7 @@
13
13
  * prompt lives in a top-level `instructions` string field by default (or, via `systemPromptChannel`,
14
14
  * a leading `developer`/`system`-role item instead).
15
15
  */
16
- import type { TokenEncoding } from "../../../common";
16
+ import type { TokenEncodingId } from "../../../types";
17
17
  import type { DispatchContext } from "../../../types";
18
18
  import type { SpooledArtifact, Media, SpoolStore } from "../../../common";
19
19
  import type { ToolCallParserName, ToolCallParserFn } from "../chat_common/tool_parsers";
@@ -739,7 +739,7 @@ export interface OpenAIResponsesAdapterOptions {
739
739
  /** Determines which thoughts are surfaced back to the model. */
740
740
  thoughtSurfacing?: 'all-self' | 'latest-self' | 'all';
741
741
  /** Tokenizer encoding configuration for token counting. */
742
- tokenEncoding?: TokenEncoding | null;
742
+ tokenEncoding?: TokenEncodingId | null;
743
743
  /** List of replay labels supported by the assistant. */
744
744
  replayCompatibility?: ReadonlyArray<string>;
745
745
  /** Optional overrides for OpenAI Responses helpers. */
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../../chunk-Cek0wNdY.js");
3
- const require_tokenizable = require("../../../tokenizable-CWW7iSrD.js");
4
- const require_common = require("../../../common-BV3HGeLj.js");
3
+ const require_tokenizable = require("../../../tokenizable-BMZuGWRd.js");
4
+ const require_common = require("../../../common-H44Ik9ou.js");
5
5
  require("../../../guards.cjs");
6
6
  const require_batteries_llm_openai_responses_exceptions = require("./exceptions.cjs");
7
7
  let _nhtio_validation = require("@nhtio/validation");
@@ -13,7 +13,7 @@ var bucketOrderSchema = _nhtio_validation.validator.array().items(bucketLabelSch
13
13
  "retrievables",
14
14
  "timeline"
15
15
  ]);
16
- var tokenEncodingSchema = _nhtio_validation.validator.alternatives(_nhtio_validation.validator.string().valid(...require_tokenizable.TokenEncoding), _nhtio_validation.validator.any().valid(null).optional()).default(null);
16
+ var tokenEncodingSchema = _nhtio_validation.validator.alternatives(_nhtio_validation.validator.string().min(1).description(`Known encodings: ${require_tokenizable.TokenEncoding.join(", ")}`), _nhtio_validation.validator.any().valid(null).optional()).default(null);
17
17
  var retrySchema = _nhtio_validation.validator.object({
18
18
  maxAttempts: _nhtio_validation.validator.number().integer().min(1).default(1),
19
19
  baseDelayMs: _nhtio_validation.validator.number().integer().min(0).default(500),
@@ -1 +1 @@
1
- {"version":3,"file":"validation.cjs","names":[],"sources":["../../../../src/batteries/llm/openai_responses/validation.ts"],"sourcesContent":["/**\n * Runtime validation schema and wrapper for OpenAI Responses adapter options.\n *\n * @module @nhtio/adk/batteries/llm/openai_responses/validation\n *\n * @remarks\n * Schema and call-site wrapper for validating `OpenAIResponsesAdapterOptions`. Used at\n * construction time and at the start of every iteration against the merged options shape\n * (stash > executor > constructor). Throws `E_INVALID_OPENAI_RESPONSES_OPTIONS` on failure — same\n * hard-fail policy as every other ADK contract.\n *\n * Notable divergences from the sibling `openai_chat_completions`/`anthropic_messages` schemas:\n * - NO `instructions` key and NO `store` key at all — both are exclusively adapter-owned (see\n * the battery's design notes). `.unknown(false)` rejects them the same way it rejects\n * `previous_response_id`/`conversation`/`prompt`/`context_management` — ADK owns history and the\n * system prompt on every battery; this one simply has no escape hatch for either.\n * - `max_output_tokens` carries `.min(16)` — an undocumented API minimum (`400 Invalid\n * 'max_output_tokens'... Expected a value >= 16`) enforced at config time instead of dispatch\n * time.\n * - `background` only accepts `false`/undefined — `true` is rejected, since this adapter has no\n * polling/resumption logic for a queued/in_progress background response (see the option's own\n * doc comment in types.ts).\n */\n\nimport { isError } from '@nhtio/adk/guards'\nimport { validator, ValidationError } from '@nhtio/validation'\nimport { E_INVALID_OPENAI_RESPONSES_OPTIONS } from './exceptions'\nimport { byteStoreSchema, TokenEncoding } from '@nhtio/adk/common'\nimport type { OpenAIResponsesAdapterOptions } from './types'\n\n// ─── Sub-schemas ──────────────────────────────────────────────────────────────\n\nconst bucketLabelSchema = validator\n .string()\n .valid('standingInstructions', 'memories', 'retrievables', 'timeline')\n\nconst bucketOrderSchema = validator\n .array()\n .items(bucketLabelSchema)\n .unique()\n .default(['standingInstructions', 'memories', 'retrievables', 'timeline'])\n\nconst tokenEncodingSchema = validator\n .alternatives(\n validator.string().valid(...TokenEncoding),\n // `tokenEncoding?: TokenEncoding | null` — OPTIONAL: a valid encoding string, explicit null, or\n // absent (undefined = \"no token counting\"). `.optional()` makes the null/undefined disposition\n // explicit per adk/require-validator-any-required, without rejecting \"omitted\".\n validator.any().valid(null).optional()\n )\n .default(null)\n\nconst retrySchema = validator\n .object({\n maxAttempts: validator.number().integer().min(1).default(1),\n baseDelayMs: validator.number().integer().min(0).default(500),\n maxDelayMs: validator.number().integer().min(1).default(30_000),\n retriableStatuses: validator\n .array()\n .items(validator.number().integer().min(100).max(599))\n .default([429, 502, 503, 504]),\n honorRetryAfter: validator.boolean().default(true),\n })\n .unknown(false)\n\n// Optional fallback tool-call parser — mirrors chat_common's ToolCallParserName union.\nconst localToolCallParserSchema = validator\n .alternatives(\n validator\n .string()\n .valid(\n 'auto',\n 'hermes',\n 'gemma',\n 'gpt_oss',\n 'pythonic',\n 'bare_pythonic',\n 'loose_keyed',\n 'llama3_json',\n 'mistral',\n 'qwen3_coder',\n 'phi',\n 'none'\n ),\n validator.function()\n )\n .optional()\n\nconst helperSchema = validator.function()\n\nconst helpersSchema = validator\n .object({\n descriptionToChatCompletionsJsonSchema: helperSchema.optional(),\n renderUntrustedContent: helperSchema.optional(),\n renderTrustedContent: helperSchema.optional(),\n renderStandingInstructions: helperSchema.optional(),\n renderMemories: helperSchema.optional(),\n renderRetrievables: helperSchema.optional(),\n renderRetrievableHandleBody: helperSchema.optional(),\n renderRetrievableSafetyDirective: helperSchema.optional(),\n renderFirstPartyRetrievables: helperSchema.optional(),\n renderThirdPartyPublicRetrievables: helperSchema.optional(),\n renderThirdPartyPrivateRetrievables: helperSchema.optional(),\n renderThought: helperSchema.optional(),\n filterThoughts: helperSchema.optional(),\n toolsToChatCompletionsTools: helperSchema.optional(),\n renderChatCompletionsSystemPrompt: helperSchema.optional(),\n renderArtifactHandleBody: helperSchema.optional(),\n renderOpenAIResponsesMediaBlocks: helperSchema.optional(),\n renderOpenAIResponsesTimelineMessage: helperSchema.optional(),\n renderOpenAIResponsesToolCallResult: helperSchema.optional(),\n toolsToOpenAIResponsesTools: helperSchema.optional(),\n fingerprintOpenAIResponsesPrefix: helperSchema.optional(),\n renderOpenAIResponsesReasoningItem: helperSchema.optional(),\n buildOpenAIResponsesInput: helperSchema.optional(),\n createResponsesOutputSlotMachine: helperSchema.optional(),\n })\n .unknown(false)\n\nconst unsupportedMediaPolicySchema = validator\n .alternatives(\n validator.string().valid('throw', 'fallback-stash', 'synthetic-description'),\n validator\n .object({\n mode: validator.string().valid('fallback-stash').required(),\n stashKeys: validator.array().items(validator.string().min(1)).required(),\n })\n .unknown(false)\n )\n .default('throw')\n\n// ─── Responses request-body sub-schemas ───────────────────────────────────────\n\nconst includeItemSchema = validator.string().min(1)\n\nconst reasoningSchema = validator\n .object({\n effort: validator\n .string()\n .valid('none', 'minimal', 'low', 'medium', 'high', 'xhigh')\n .optional(),\n summary: validator.string().valid('auto', 'concise', 'detailed').optional(),\n })\n .unknown(false)\n\nconst toolChoiceSchema = validator.alternatives(\n validator.string().valid('none', 'auto', 'required'),\n validator\n .object({\n type: validator.string().valid('function').required(),\n name: validator.string().required(),\n })\n .unknown(false)\n)\n\nconst textFormatSchema = validator.object().unknown(true)\n\nconst textSchema = validator\n .object({\n format: textFormatSchema.optional(),\n verbosity: validator.string().valid('low', 'medium', 'high').optional(),\n })\n .unknown(false)\n\nconst streamOptionsSchema = validator\n .object({\n include_obfuscation: validator.boolean().optional(),\n })\n .unknown(false)\n\n// ─── Top-level schema ─────────────────────────────────────────────────────────\n\n/**\n * Validator schema for `OpenAIResponsesAdapterOptions`.\n *\n * @remarks\n * Used by `validateOptions` at construction time and again at the start of every iteration after\n * options have been merged (stash > executor > constructor). Rejects unknown top-level keys so\n * typos, removed fields, and every server-side-conversation-state key\n * (`previous_response_id`/`conversation`/`prompt`/`context_management`) fail loud — as does\n * `instructions`/`store`, which are simply not part of this options interface at all (see the\n * module remarks above).\n */\nexport const openAIResponsesOptionsSchema = validator\n .object<OpenAIResponsesAdapterOptions>({\n // ADK control\n apiKey: validator.string().optional(),\n baseURL: validator.string().optional(),\n organization: validator.string().optional(),\n project: validator.string().optional(),\n headers: validator.object().pattern(validator.string(), validator.string()).optional(),\n stream: validator.boolean().default(true),\n streamIdleTimeoutMs: validator.number().integer().min(0).default(0),\n requestTimeoutMs: validator.number().integer().min(0).default(0),\n retry: retrySchema.optional(),\n fetch: validator.function().optional(),\n bucketOrder: bucketOrderSchema,\n contextWindow: validator.number().integer().min(1).optional(),\n selfIdentity: validator.string().min(1).default('assistant'),\n thoughtSurfacing: validator\n .string()\n .valid('all-self', 'latest-self', 'all')\n .default('all-self'),\n tokenEncoding: tokenEncodingSchema,\n replayCompatibility: validator.array().items(validator.string().min(1)).default([]),\n helpers: helpersSchema.optional(),\n spoolStore: byteStoreSchema.optional(),\n strictToolChoice: validator.boolean().default(false),\n autoAck: validator.boolean().default(false),\n unsupportedMediaPolicy: unsupportedMediaPolicySchema,\n\n // Responses-specific ADK control\n systemPromptChannel: validator\n .string()\n .valid('instructions', 'developer-item', 'system-item')\n .default('instructions'),\n reasoningReplay: validator.string().valid('off', 'encrypted', 'summary-only').default('off'),\n strict: validator.boolean().optional(),\n\n // Responses request body\n model: validator.string().required(),\n include: validator.array().items(includeItemSchema).optional(),\n reasoning: reasoningSchema.optional(),\n // Undocumented API minimum of 16 — see the module remarks and Known Gotcha #2.\n max_output_tokens: validator.number().integer().min(16).optional(),\n parallel_tool_calls: validator.boolean().optional(),\n temperature: validator.number().min(0).max(2).optional(),\n top_p: validator.number().min(0).max(1).optional(),\n top_logprobs: validator.number().integer().min(0).max(20).optional(),\n truncation: validator.string().valid('auto', 'disabled').optional(),\n service_tier: validator\n .string()\n .valid('auto', 'default', 'flex', 'scale', 'priority')\n .optional(),\n prompt_cache_key: validator.string().optional(),\n prompt_cache_retention: validator.string().valid('in_memory', '24h').optional(),\n safety_identifier: validator.string().optional(),\n metadata: validator.object().pattern(validator.string(), validator.string()).optional(),\n tool_choice: toolChoiceSchema.optional(),\n text: textSchema.optional(),\n // `true` is rejected — no polling/resumption logic exists for a queued/in_progress background\n // response (see the option's own doc comment in types.ts). `false`/undefined pass through.\n background: validator.boolean().valid(false).optional(),\n stream_options: streamOptionsSchema.optional(),\n onRawGeneration: validator.function().optional(),\n onPromptAssembled: validator.function().optional(),\n toolCallIdFilter: validator.function().optional(),\n localToolCallParser: localToolCallParserSchema,\n forgeToolsFilter: validator.function().optional(),\n })\n .unknown(false)\n\nconst isValidationError = (value: unknown): value is ValidationError =>\n isError(value) && Array.isArray((value as ValidationError).details)\n\nconst formatValidationDetails = (err: ValidationError): string =>\n err.details.map((d) => d.message).join(' and ')\n\n/**\n * Validates an arbitrary input against `openAIResponsesOptionsSchema` and returns the resolved\n * options shape. Throws `E_INVALID_OPENAI_RESPONSES_OPTIONS` (carrying the validator's error report\n * on `cause`) on failure.\n *\n * @param input - The raw options object to validate.\n * @returns The resolved options object with defaults filled in.\n */\nexport const validateOptions = (input: unknown): OpenAIResponsesAdapterOptions => {\n const { value, error } = openAIResponsesOptionsSchema.validate(input, {\n abortEarly: false,\n convert: false,\n })\n if (error) {\n throw new E_INVALID_OPENAI_RESPONSES_OPTIONS([formatValidationDetails(error)], {\n cause: error,\n })\n }\n return value as OpenAIResponsesAdapterOptions\n}\n\n// suppress unused import warning when the alias isn't referenced\nvoid isValidationError\n"],"mappings":";;;;;;;;AAgCA,IAAM,oBAAoB,kBAAA,UACvB,OAAO,EACP,MAAM,wBAAwB,YAAY,gBAAgB,UAAU;AAEvE,IAAM,oBAAoB,kBAAA,UACvB,MAAM,EACN,MAAM,iBAAiB,EACvB,OAAO,EACP,QAAQ;CAAC;CAAwB;CAAY;CAAgB;AAAU,CAAC;AAE3E,IAAM,sBAAsB,kBAAA,UACzB,aACC,kBAAA,UAAU,OAAO,EAAE,MAAM,GAAG,oBAAA,aAAa,GAIzC,kBAAA,UAAU,IAAI,EAAE,MAAM,IAAI,EAAE,SAAS,CACvC,EACC,QAAQ,IAAI;AAEf,IAAM,cAAc,kBAAA,UACjB,OAAO;CACN,aAAa,kBAAA,UAAU,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;CAC1D,aAAa,kBAAA,UAAU,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG;CAC5D,YAAY,kBAAA,UAAU,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAM;CAC9D,mBAAmB,kBAAA,UAChB,MAAM,EACN,MAAM,kBAAA,UAAU,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,CAAC,EACpD,QAAQ;EAAC;EAAK;EAAK;EAAK;CAAG,CAAC;CAC/B,iBAAiB,kBAAA,UAAU,QAAQ,EAAE,QAAQ,IAAI;AACnD,CAAC,EACA,QAAQ,KAAK;AAGhB,IAAM,4BAA4B,kBAAA,UAC/B,aACC,kBAAA,UACG,OAAO,EACP,MACC,QACA,UACA,SACA,WACA,YACA,iBACA,eACA,eACA,WACA,eACA,OACA,MACF,GACF,kBAAA,UAAU,SAAS,CACrB,EACC,SAAS;AAEZ,IAAM,eAAe,kBAAA,UAAU,SAAS;AAExC,IAAM,gBAAgB,kBAAA,UACnB,OAAO;CACN,wCAAwC,aAAa,SAAS;CAC9D,wBAAwB,aAAa,SAAS;CAC9C,sBAAsB,aAAa,SAAS;CAC5C,4BAA4B,aAAa,SAAS;CAClD,gBAAgB,aAAa,SAAS;CACtC,oBAAoB,aAAa,SAAS;CAC1C,6BAA6B,aAAa,SAAS;CACnD,kCAAkC,aAAa,SAAS;CACxD,8BAA8B,aAAa,SAAS;CACpD,oCAAoC,aAAa,SAAS;CAC1D,qCAAqC,aAAa,SAAS;CAC3D,eAAe,aAAa,SAAS;CACrC,gBAAgB,aAAa,SAAS;CACtC,6BAA6B,aAAa,SAAS;CACnD,mCAAmC,aAAa,SAAS;CACzD,0BAA0B,aAAa,SAAS;CAChD,kCAAkC,aAAa,SAAS;CACxD,sCAAsC,aAAa,SAAS;CAC5D,qCAAqC,aAAa,SAAS;CAC3D,6BAA6B,aAAa,SAAS;CACnD,kCAAkC,aAAa,SAAS;CACxD,oCAAoC,aAAa,SAAS;CAC1D,2BAA2B,aAAa,SAAS;CACjD,kCAAkC,aAAa,SAAS;AAC1D,CAAC,EACA,QAAQ,KAAK;AAEhB,IAAM,+BAA+B,kBAAA,UAClC,aACC,kBAAA,UAAU,OAAO,EAAE,MAAM,SAAS,kBAAkB,uBAAuB,GAC3E,kBAAA,UACG,OAAO;CACN,MAAM,kBAAA,UAAU,OAAO,EAAE,MAAM,gBAAgB,EAAE,SAAS;CAC1D,WAAW,kBAAA,UAAU,MAAM,EAAE,MAAM,kBAAA,UAAU,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS;AACzE,CAAC,EACA,QAAQ,KAAK,CAClB,EACC,QAAQ,OAAO;AAIlB,IAAM,oBAAoB,kBAAA,UAAU,OAAO,EAAE,IAAI,CAAC;AAElD,IAAM,kBAAkB,kBAAA,UACrB,OAAO;CACN,QAAQ,kBAAA,UACL,OAAO,EACP,MAAM,QAAQ,WAAW,OAAO,UAAU,QAAQ,OAAO,EACzD,SAAS;CACZ,SAAS,kBAAA,UAAU,OAAO,EAAE,MAAM,QAAQ,WAAW,UAAU,EAAE,SAAS;AAC5E,CAAC,EACA,QAAQ,KAAK;AAEhB,IAAM,mBAAmB,kBAAA,UAAU,aACjC,kBAAA,UAAU,OAAO,EAAE,MAAM,QAAQ,QAAQ,UAAU,GACnD,kBAAA,UACG,OAAO;CACN,MAAM,kBAAA,UAAU,OAAO,EAAE,MAAM,UAAU,EAAE,SAAS;CACpD,MAAM,kBAAA,UAAU,OAAO,EAAE,SAAS;AACpC,CAAC,EACA,QAAQ,KAAK,CAClB;AAEA,IAAM,mBAAmB,kBAAA,UAAU,OAAO,EAAE,QAAQ,IAAI;AAExD,IAAM,aAAa,kBAAA,UAChB,OAAO;CACN,QAAQ,iBAAiB,SAAS;CAClC,WAAW,kBAAA,UAAU,OAAO,EAAE,MAAM,OAAO,UAAU,MAAM,EAAE,SAAS;AACxE,CAAC,EACA,QAAQ,KAAK;AAEhB,IAAM,sBAAsB,kBAAA,UACzB,OAAO,EACN,qBAAqB,kBAAA,UAAU,QAAQ,EAAE,SAAS,EACpD,CAAC,EACA,QAAQ,KAAK;;;;;;;;;;;;AAehB,IAAa,+BAA+B,kBAAA,UACzC,OAAsC;CAErC,QAAQ,kBAAA,UAAU,OAAO,EAAE,SAAS;CACpC,SAAS,kBAAA,UAAU,OAAO,EAAE,SAAS;CACrC,cAAc,kBAAA,UAAU,OAAO,EAAE,SAAS;CAC1C,SAAS,kBAAA,UAAU,OAAO,EAAE,SAAS;CACrC,SAAS,kBAAA,UAAU,OAAO,EAAE,QAAQ,kBAAA,UAAU,OAAO,GAAG,kBAAA,UAAU,OAAO,CAAC,EAAE,SAAS;CACrF,QAAQ,kBAAA,UAAU,QAAQ,EAAE,QAAQ,IAAI;CACxC,qBAAqB,kBAAA,UAAU,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;CAClE,kBAAkB,kBAAA,UAAU,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;CAC/D,OAAO,YAAY,SAAS;CAC5B,OAAO,kBAAA,UAAU,SAAS,EAAE,SAAS;CACrC,aAAa;CACb,eAAe,kBAAA,UAAU,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,SAAS;CAC5D,cAAc,kBAAA,UAAU,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,WAAW;CAC3D,kBAAkB,kBAAA,UACf,OAAO,EACP,MAAM,YAAY,eAAe,KAAK,EACtC,QAAQ,UAAU;CACrB,eAAe;CACf,qBAAqB,kBAAA,UAAU,MAAM,EAAE,MAAM,kBAAA,UAAU,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;CAClF,SAAS,cAAc,SAAS;CAChC,YAAY,eAAA,gBAAgB,SAAS;CACrC,kBAAkB,kBAAA,UAAU,QAAQ,EAAE,QAAQ,KAAK;CACnD,SAAS,kBAAA,UAAU,QAAQ,EAAE,QAAQ,KAAK;CAC1C,wBAAwB;CAGxB,qBAAqB,kBAAA,UAClB,OAAO,EACP,MAAM,gBAAgB,kBAAkB,aAAa,EACrD,QAAQ,cAAc;CACzB,iBAAiB,kBAAA,UAAU,OAAO,EAAE,MAAM,OAAO,aAAa,cAAc,EAAE,QAAQ,KAAK;CAC3F,QAAQ,kBAAA,UAAU,QAAQ,EAAE,SAAS;CAGrC,OAAO,kBAAA,UAAU,OAAO,EAAE,SAAS;CACnC,SAAS,kBAAA,UAAU,MAAM,EAAE,MAAM,iBAAiB,EAAE,SAAS;CAC7D,WAAW,gBAAgB,SAAS;CAEpC,mBAAmB,kBAAA,UAAU,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,SAAS;CACjE,qBAAqB,kBAAA,UAAU,QAAQ,EAAE,SAAS;CAClD,aAAa,kBAAA,UAAU,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;CACvD,OAAO,kBAAA,UAAU,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;CACjD,cAAc,kBAAA,UAAU,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;CACnE,YAAY,kBAAA,UAAU,OAAO,EAAE,MAAM,QAAQ,UAAU,EAAE,SAAS;CAClE,cAAc,kBAAA,UACX,OAAO,EACP,MAAM,QAAQ,WAAW,QAAQ,SAAS,UAAU,EACpD,SAAS;CACZ,kBAAkB,kBAAA,UAAU,OAAO,EAAE,SAAS;CAC9C,wBAAwB,kBAAA,UAAU,OAAO,EAAE,MAAM,aAAa,KAAK,EAAE,SAAS;CAC9E,mBAAmB,kBAAA,UAAU,OAAO,EAAE,SAAS;CAC/C,UAAU,kBAAA,UAAU,OAAO,EAAE,QAAQ,kBAAA,UAAU,OAAO,GAAG,kBAAA,UAAU,OAAO,CAAC,EAAE,SAAS;CACtF,aAAa,iBAAiB,SAAS;CACvC,MAAM,WAAW,SAAS;CAG1B,YAAY,kBAAA,UAAU,QAAQ,EAAE,MAAM,KAAK,EAAE,SAAS;CACtD,gBAAgB,oBAAoB,SAAS;CAC7C,iBAAiB,kBAAA,UAAU,SAAS,EAAE,SAAS;CAC/C,mBAAmB,kBAAA,UAAU,SAAS,EAAE,SAAS;CACjD,kBAAkB,kBAAA,UAAU,SAAS,EAAE,SAAS;CAChD,qBAAqB;CACrB,kBAAkB,kBAAA,UAAU,SAAS,EAAE,SAAS;AAClD,CAAC,EACA,QAAQ,KAAK;AAKhB,IAAM,2BAA2B,QAC/B,IAAI,QAAQ,KAAK,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO;;;;;;;;;AAUhD,IAAa,mBAAmB,UAAkD;CAChF,MAAM,EAAE,OAAO,UAAU,6BAA6B,SAAS,OAAO;EACpE,YAAY;EACZ,SAAS;CACX,CAAC;CACD,IAAI,OACF,MAAM,IAAI,kDAAA,mCAAmC,CAAC,wBAAwB,KAAK,CAAC,GAAG,EAC7E,OAAO,MACT,CAAC;CAEH,OAAO;AACT"}
1
+ {"version":3,"file":"validation.cjs","names":[],"sources":["../../../../src/batteries/llm/openai_responses/validation.ts"],"sourcesContent":["/**\n * Runtime validation schema and wrapper for OpenAI Responses adapter options.\n *\n * @module @nhtio/adk/batteries/llm/openai_responses/validation\n *\n * @remarks\n * Schema and call-site wrapper for validating `OpenAIResponsesAdapterOptions`. Used at\n * construction time and at the start of every iteration against the merged options shape\n * (stash > executor > constructor). Throws `E_INVALID_OPENAI_RESPONSES_OPTIONS` on failure — same\n * hard-fail policy as every other ADK contract.\n *\n * Notable divergences from the sibling `openai_chat_completions`/`anthropic_messages` schemas:\n * - NO `instructions` key and NO `store` key at all — both are exclusively adapter-owned (see\n * the battery's design notes). `.unknown(false)` rejects them the same way it rejects\n * `previous_response_id`/`conversation`/`prompt`/`context_management` — ADK owns history and the\n * system prompt on every battery; this one simply has no escape hatch for either.\n * - `max_output_tokens` carries `.min(16)` — an undocumented API minimum (`400 Invalid\n * 'max_output_tokens'... Expected a value >= 16`) enforced at config time instead of dispatch\n * time.\n * - `background` only accepts `false`/undefined — `true` is rejected, since this adapter has no\n * polling/resumption logic for a queued/in_progress background response (see the option's own\n * doc comment in types.ts).\n */\n\nimport { isError } from '@nhtio/adk/guards'\nimport { validator, ValidationError } from '@nhtio/validation'\nimport { E_INVALID_OPENAI_RESPONSES_OPTIONS } from './exceptions'\nimport { byteStoreSchema, TokenEncoding } from '@nhtio/adk/common'\nimport type { OpenAIResponsesAdapterOptions } from './types'\n\n// ─── Sub-schemas ──────────────────────────────────────────────────────────────\n\nconst bucketLabelSchema = validator\n .string()\n .valid('standingInstructions', 'memories', 'retrievables', 'timeline')\n\nconst bucketOrderSchema = validator\n .array()\n .items(bucketLabelSchema)\n .unique()\n .default(['standingInstructions', 'memories', 'retrievables', 'timeline'])\n\nconst tokenEncodingSchema = validator\n .alternatives(\n // Known values are suggestions from the canonical list, not a whitelist: consumers may provide\n // a custom or newer tokenizer name. The field accepts any non-empty string, explicit null, or\n // absent (undefined = \"no token counting\"). `.optional()` preserves the null/undefined\n // disposition required by adk/require-validator-any-required.\n validator\n .string()\n .min(1)\n .description(`Known encodings: ${TokenEncoding.join(', ')}`),\n validator.any().valid(null).optional()\n )\n .default(null)\n\nconst retrySchema = validator\n .object({\n maxAttempts: validator.number().integer().min(1).default(1),\n baseDelayMs: validator.number().integer().min(0).default(500),\n maxDelayMs: validator.number().integer().min(1).default(30_000),\n retriableStatuses: validator\n .array()\n .items(validator.number().integer().min(100).max(599))\n .default([429, 502, 503, 504]),\n honorRetryAfter: validator.boolean().default(true),\n })\n .unknown(false)\n\n// Optional fallback tool-call parser — mirrors chat_common's ToolCallParserName union.\nconst localToolCallParserSchema = validator\n .alternatives(\n validator\n .string()\n .valid(\n 'auto',\n 'hermes',\n 'gemma',\n 'gpt_oss',\n 'pythonic',\n 'bare_pythonic',\n 'loose_keyed',\n 'llama3_json',\n 'mistral',\n 'qwen3_coder',\n 'phi',\n 'none'\n ),\n validator.function()\n )\n .optional()\n\nconst helperSchema = validator.function()\n\nconst helpersSchema = validator\n .object({\n descriptionToChatCompletionsJsonSchema: helperSchema.optional(),\n renderUntrustedContent: helperSchema.optional(),\n renderTrustedContent: helperSchema.optional(),\n renderStandingInstructions: helperSchema.optional(),\n renderMemories: helperSchema.optional(),\n renderRetrievables: helperSchema.optional(),\n renderRetrievableHandleBody: helperSchema.optional(),\n renderRetrievableSafetyDirective: helperSchema.optional(),\n renderFirstPartyRetrievables: helperSchema.optional(),\n renderThirdPartyPublicRetrievables: helperSchema.optional(),\n renderThirdPartyPrivateRetrievables: helperSchema.optional(),\n renderThought: helperSchema.optional(),\n filterThoughts: helperSchema.optional(),\n toolsToChatCompletionsTools: helperSchema.optional(),\n renderChatCompletionsSystemPrompt: helperSchema.optional(),\n renderArtifactHandleBody: helperSchema.optional(),\n renderOpenAIResponsesMediaBlocks: helperSchema.optional(),\n renderOpenAIResponsesTimelineMessage: helperSchema.optional(),\n renderOpenAIResponsesToolCallResult: helperSchema.optional(),\n toolsToOpenAIResponsesTools: helperSchema.optional(),\n fingerprintOpenAIResponsesPrefix: helperSchema.optional(),\n renderOpenAIResponsesReasoningItem: helperSchema.optional(),\n buildOpenAIResponsesInput: helperSchema.optional(),\n createResponsesOutputSlotMachine: helperSchema.optional(),\n })\n .unknown(false)\n\nconst unsupportedMediaPolicySchema = validator\n .alternatives(\n validator.string().valid('throw', 'fallback-stash', 'synthetic-description'),\n validator\n .object({\n mode: validator.string().valid('fallback-stash').required(),\n stashKeys: validator.array().items(validator.string().min(1)).required(),\n })\n .unknown(false)\n )\n .default('throw')\n\n// ─── Responses request-body sub-schemas ───────────────────────────────────────\n\nconst includeItemSchema = validator.string().min(1)\n\nconst reasoningSchema = validator\n .object({\n effort: validator\n .string()\n .valid('none', 'minimal', 'low', 'medium', 'high', 'xhigh')\n .optional(),\n summary: validator.string().valid('auto', 'concise', 'detailed').optional(),\n })\n .unknown(false)\n\nconst toolChoiceSchema = validator.alternatives(\n validator.string().valid('none', 'auto', 'required'),\n validator\n .object({\n type: validator.string().valid('function').required(),\n name: validator.string().required(),\n })\n .unknown(false)\n)\n\nconst textFormatSchema = validator.object().unknown(true)\n\nconst textSchema = validator\n .object({\n format: textFormatSchema.optional(),\n verbosity: validator.string().valid('low', 'medium', 'high').optional(),\n })\n .unknown(false)\n\nconst streamOptionsSchema = validator\n .object({\n include_obfuscation: validator.boolean().optional(),\n })\n .unknown(false)\n\n// ─── Top-level schema ─────────────────────────────────────────────────────────\n\n/**\n * Validator schema for `OpenAIResponsesAdapterOptions`.\n *\n * @remarks\n * Used by `validateOptions` at construction time and again at the start of every iteration after\n * options have been merged (stash > executor > constructor). Rejects unknown top-level keys so\n * typos, removed fields, and every server-side-conversation-state key\n * (`previous_response_id`/`conversation`/`prompt`/`context_management`) fail loud — as does\n * `instructions`/`store`, which are simply not part of this options interface at all (see the\n * module remarks above).\n */\nexport const openAIResponsesOptionsSchema = validator\n .object<OpenAIResponsesAdapterOptions>({\n // ADK control\n apiKey: validator.string().optional(),\n baseURL: validator.string().optional(),\n organization: validator.string().optional(),\n project: validator.string().optional(),\n headers: validator.object().pattern(validator.string(), validator.string()).optional(),\n stream: validator.boolean().default(true),\n streamIdleTimeoutMs: validator.number().integer().min(0).default(0),\n requestTimeoutMs: validator.number().integer().min(0).default(0),\n retry: retrySchema.optional(),\n fetch: validator.function().optional(),\n bucketOrder: bucketOrderSchema,\n contextWindow: validator.number().integer().min(1).optional(),\n selfIdentity: validator.string().min(1).default('assistant'),\n thoughtSurfacing: validator\n .string()\n .valid('all-self', 'latest-self', 'all')\n .default('all-self'),\n tokenEncoding: tokenEncodingSchema,\n replayCompatibility: validator.array().items(validator.string().min(1)).default([]),\n helpers: helpersSchema.optional(),\n spoolStore: byteStoreSchema.optional(),\n strictToolChoice: validator.boolean().default(false),\n autoAck: validator.boolean().default(false),\n unsupportedMediaPolicy: unsupportedMediaPolicySchema,\n\n // Responses-specific ADK control\n systemPromptChannel: validator\n .string()\n .valid('instructions', 'developer-item', 'system-item')\n .default('instructions'),\n reasoningReplay: validator.string().valid('off', 'encrypted', 'summary-only').default('off'),\n strict: validator.boolean().optional(),\n\n // Responses request body\n model: validator.string().required(),\n include: validator.array().items(includeItemSchema).optional(),\n reasoning: reasoningSchema.optional(),\n // Undocumented API minimum of 16 — see the module remarks and Known Gotcha #2.\n max_output_tokens: validator.number().integer().min(16).optional(),\n parallel_tool_calls: validator.boolean().optional(),\n temperature: validator.number().min(0).max(2).optional(),\n top_p: validator.number().min(0).max(1).optional(),\n top_logprobs: validator.number().integer().min(0).max(20).optional(),\n truncation: validator.string().valid('auto', 'disabled').optional(),\n service_tier: validator\n .string()\n .valid('auto', 'default', 'flex', 'scale', 'priority')\n .optional(),\n prompt_cache_key: validator.string().optional(),\n prompt_cache_retention: validator.string().valid('in_memory', '24h').optional(),\n safety_identifier: validator.string().optional(),\n metadata: validator.object().pattern(validator.string(), validator.string()).optional(),\n tool_choice: toolChoiceSchema.optional(),\n text: textSchema.optional(),\n // `true` is rejected — no polling/resumption logic exists for a queued/in_progress background\n // response (see the option's own doc comment in types.ts). `false`/undefined pass through.\n background: validator.boolean().valid(false).optional(),\n stream_options: streamOptionsSchema.optional(),\n onRawGeneration: validator.function().optional(),\n onPromptAssembled: validator.function().optional(),\n toolCallIdFilter: validator.function().optional(),\n localToolCallParser: localToolCallParserSchema,\n forgeToolsFilter: validator.function().optional(),\n })\n .unknown(false)\n\nconst isValidationError = (value: unknown): value is ValidationError =>\n isError(value) && Array.isArray((value as ValidationError).details)\n\nconst formatValidationDetails = (err: ValidationError): string =>\n err.details.map((d) => d.message).join(' and ')\n\n/**\n * Validates an arbitrary input against `openAIResponsesOptionsSchema` and returns the resolved\n * options shape. Throws `E_INVALID_OPENAI_RESPONSES_OPTIONS` (carrying the validator's error report\n * on `cause`) on failure.\n *\n * @param input - The raw options object to validate.\n * @returns The resolved options object with defaults filled in.\n */\nexport const validateOptions = (input: unknown): OpenAIResponsesAdapterOptions => {\n const { value, error } = openAIResponsesOptionsSchema.validate(input, {\n abortEarly: false,\n convert: false,\n })\n if (error) {\n throw new E_INVALID_OPENAI_RESPONSES_OPTIONS([formatValidationDetails(error)], {\n cause: error,\n })\n }\n return value as OpenAIResponsesAdapterOptions\n}\n\n// suppress unused import warning when the alias isn't referenced\nvoid isValidationError\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { n as TokenEncoding } from "../../../tokenizable-DLMP68ZV.mjs";
2
- import { o as byteStoreSchema } from "../../../common-v9Jo9M5k.mjs";
1
+ import { n as TokenEncoding } from "../../../tokenizable-VB4Av8GF.mjs";
2
+ import { o as byteStoreSchema } from "../../../common-BpdHIpQE.mjs";
3
3
  import "../../../guards.mjs";
4
4
  import { E_INVALID_OPENAI_RESPONSES_OPTIONS } from "./exceptions.mjs";
5
5
  import { validator } from "@nhtio/validation";
@@ -11,7 +11,7 @@ var bucketOrderSchema = validator.array().items(bucketLabelSchema).unique().defa
11
11
  "retrievables",
12
12
  "timeline"
13
13
  ]);
14
- var tokenEncodingSchema = validator.alternatives(validator.string().valid(...TokenEncoding), validator.any().valid(null).optional()).default(null);
14
+ var tokenEncodingSchema = validator.alternatives(validator.string().min(1).description(`Known encodings: ${TokenEncoding.join(", ")}`), validator.any().valid(null).optional()).default(null);
15
15
  var retrySchema = validator.object({
16
16
  maxAttempts: validator.number().integer().min(1).default(1),
17
17
  baseDelayMs: validator.number().integer().min(0).default(500),
@@ -1 +1 @@
1
- {"version":3,"file":"validation.mjs","names":[],"sources":["../../../../src/batteries/llm/openai_responses/validation.ts"],"sourcesContent":["/**\n * Runtime validation schema and wrapper for OpenAI Responses adapter options.\n *\n * @module @nhtio/adk/batteries/llm/openai_responses/validation\n *\n * @remarks\n * Schema and call-site wrapper for validating `OpenAIResponsesAdapterOptions`. Used at\n * construction time and at the start of every iteration against the merged options shape\n * (stash > executor > constructor). Throws `E_INVALID_OPENAI_RESPONSES_OPTIONS` on failure — same\n * hard-fail policy as every other ADK contract.\n *\n * Notable divergences from the sibling `openai_chat_completions`/`anthropic_messages` schemas:\n * - NO `instructions` key and NO `store` key at all — both are exclusively adapter-owned (see\n * the battery's design notes). `.unknown(false)` rejects them the same way it rejects\n * `previous_response_id`/`conversation`/`prompt`/`context_management` — ADK owns history and the\n * system prompt on every battery; this one simply has no escape hatch for either.\n * - `max_output_tokens` carries `.min(16)` — an undocumented API minimum (`400 Invalid\n * 'max_output_tokens'... Expected a value >= 16`) enforced at config time instead of dispatch\n * time.\n * - `background` only accepts `false`/undefined — `true` is rejected, since this adapter has no\n * polling/resumption logic for a queued/in_progress background response (see the option's own\n * doc comment in types.ts).\n */\n\nimport { isError } from '@nhtio/adk/guards'\nimport { validator, ValidationError } from '@nhtio/validation'\nimport { E_INVALID_OPENAI_RESPONSES_OPTIONS } from './exceptions'\nimport { byteStoreSchema, TokenEncoding } from '@nhtio/adk/common'\nimport type { OpenAIResponsesAdapterOptions } from './types'\n\n// ─── Sub-schemas ──────────────────────────────────────────────────────────────\n\nconst bucketLabelSchema = validator\n .string()\n .valid('standingInstructions', 'memories', 'retrievables', 'timeline')\n\nconst bucketOrderSchema = validator\n .array()\n .items(bucketLabelSchema)\n .unique()\n .default(['standingInstructions', 'memories', 'retrievables', 'timeline'])\n\nconst tokenEncodingSchema = validator\n .alternatives(\n validator.string().valid(...TokenEncoding),\n // `tokenEncoding?: TokenEncoding | null` — OPTIONAL: a valid encoding string, explicit null, or\n // absent (undefined = \"no token counting\"). `.optional()` makes the null/undefined disposition\n // explicit per adk/require-validator-any-required, without rejecting \"omitted\".\n validator.any().valid(null).optional()\n )\n .default(null)\n\nconst retrySchema = validator\n .object({\n maxAttempts: validator.number().integer().min(1).default(1),\n baseDelayMs: validator.number().integer().min(0).default(500),\n maxDelayMs: validator.number().integer().min(1).default(30_000),\n retriableStatuses: validator\n .array()\n .items(validator.number().integer().min(100).max(599))\n .default([429, 502, 503, 504]),\n honorRetryAfter: validator.boolean().default(true),\n })\n .unknown(false)\n\n// Optional fallback tool-call parser — mirrors chat_common's ToolCallParserName union.\nconst localToolCallParserSchema = validator\n .alternatives(\n validator\n .string()\n .valid(\n 'auto',\n 'hermes',\n 'gemma',\n 'gpt_oss',\n 'pythonic',\n 'bare_pythonic',\n 'loose_keyed',\n 'llama3_json',\n 'mistral',\n 'qwen3_coder',\n 'phi',\n 'none'\n ),\n validator.function()\n )\n .optional()\n\nconst helperSchema = validator.function()\n\nconst helpersSchema = validator\n .object({\n descriptionToChatCompletionsJsonSchema: helperSchema.optional(),\n renderUntrustedContent: helperSchema.optional(),\n renderTrustedContent: helperSchema.optional(),\n renderStandingInstructions: helperSchema.optional(),\n renderMemories: helperSchema.optional(),\n renderRetrievables: helperSchema.optional(),\n renderRetrievableHandleBody: helperSchema.optional(),\n renderRetrievableSafetyDirective: helperSchema.optional(),\n renderFirstPartyRetrievables: helperSchema.optional(),\n renderThirdPartyPublicRetrievables: helperSchema.optional(),\n renderThirdPartyPrivateRetrievables: helperSchema.optional(),\n renderThought: helperSchema.optional(),\n filterThoughts: helperSchema.optional(),\n toolsToChatCompletionsTools: helperSchema.optional(),\n renderChatCompletionsSystemPrompt: helperSchema.optional(),\n renderArtifactHandleBody: helperSchema.optional(),\n renderOpenAIResponsesMediaBlocks: helperSchema.optional(),\n renderOpenAIResponsesTimelineMessage: helperSchema.optional(),\n renderOpenAIResponsesToolCallResult: helperSchema.optional(),\n toolsToOpenAIResponsesTools: helperSchema.optional(),\n fingerprintOpenAIResponsesPrefix: helperSchema.optional(),\n renderOpenAIResponsesReasoningItem: helperSchema.optional(),\n buildOpenAIResponsesInput: helperSchema.optional(),\n createResponsesOutputSlotMachine: helperSchema.optional(),\n })\n .unknown(false)\n\nconst unsupportedMediaPolicySchema = validator\n .alternatives(\n validator.string().valid('throw', 'fallback-stash', 'synthetic-description'),\n validator\n .object({\n mode: validator.string().valid('fallback-stash').required(),\n stashKeys: validator.array().items(validator.string().min(1)).required(),\n })\n .unknown(false)\n )\n .default('throw')\n\n// ─── Responses request-body sub-schemas ───────────────────────────────────────\n\nconst includeItemSchema = validator.string().min(1)\n\nconst reasoningSchema = validator\n .object({\n effort: validator\n .string()\n .valid('none', 'minimal', 'low', 'medium', 'high', 'xhigh')\n .optional(),\n summary: validator.string().valid('auto', 'concise', 'detailed').optional(),\n })\n .unknown(false)\n\nconst toolChoiceSchema = validator.alternatives(\n validator.string().valid('none', 'auto', 'required'),\n validator\n .object({\n type: validator.string().valid('function').required(),\n name: validator.string().required(),\n })\n .unknown(false)\n)\n\nconst textFormatSchema = validator.object().unknown(true)\n\nconst textSchema = validator\n .object({\n format: textFormatSchema.optional(),\n verbosity: validator.string().valid('low', 'medium', 'high').optional(),\n })\n .unknown(false)\n\nconst streamOptionsSchema = validator\n .object({\n include_obfuscation: validator.boolean().optional(),\n })\n .unknown(false)\n\n// ─── Top-level schema ─────────────────────────────────────────────────────────\n\n/**\n * Validator schema for `OpenAIResponsesAdapterOptions`.\n *\n * @remarks\n * Used by `validateOptions` at construction time and again at the start of every iteration after\n * options have been merged (stash > executor > constructor). Rejects unknown top-level keys so\n * typos, removed fields, and every server-side-conversation-state key\n * (`previous_response_id`/`conversation`/`prompt`/`context_management`) fail loud — as does\n * `instructions`/`store`, which are simply not part of this options interface at all (see the\n * module remarks above).\n */\nexport const openAIResponsesOptionsSchema = validator\n .object<OpenAIResponsesAdapterOptions>({\n // ADK control\n apiKey: validator.string().optional(),\n baseURL: validator.string().optional(),\n organization: validator.string().optional(),\n project: validator.string().optional(),\n headers: validator.object().pattern(validator.string(), validator.string()).optional(),\n stream: validator.boolean().default(true),\n streamIdleTimeoutMs: validator.number().integer().min(0).default(0),\n requestTimeoutMs: validator.number().integer().min(0).default(0),\n retry: retrySchema.optional(),\n fetch: validator.function().optional(),\n bucketOrder: bucketOrderSchema,\n contextWindow: validator.number().integer().min(1).optional(),\n selfIdentity: validator.string().min(1).default('assistant'),\n thoughtSurfacing: validator\n .string()\n .valid('all-self', 'latest-self', 'all')\n .default('all-self'),\n tokenEncoding: tokenEncodingSchema,\n replayCompatibility: validator.array().items(validator.string().min(1)).default([]),\n helpers: helpersSchema.optional(),\n spoolStore: byteStoreSchema.optional(),\n strictToolChoice: validator.boolean().default(false),\n autoAck: validator.boolean().default(false),\n unsupportedMediaPolicy: unsupportedMediaPolicySchema,\n\n // Responses-specific ADK control\n systemPromptChannel: validator\n .string()\n .valid('instructions', 'developer-item', 'system-item')\n .default('instructions'),\n reasoningReplay: validator.string().valid('off', 'encrypted', 'summary-only').default('off'),\n strict: validator.boolean().optional(),\n\n // Responses request body\n model: validator.string().required(),\n include: validator.array().items(includeItemSchema).optional(),\n reasoning: reasoningSchema.optional(),\n // Undocumented API minimum of 16 — see the module remarks and Known Gotcha #2.\n max_output_tokens: validator.number().integer().min(16).optional(),\n parallel_tool_calls: validator.boolean().optional(),\n temperature: validator.number().min(0).max(2).optional(),\n top_p: validator.number().min(0).max(1).optional(),\n top_logprobs: validator.number().integer().min(0).max(20).optional(),\n truncation: validator.string().valid('auto', 'disabled').optional(),\n service_tier: validator\n .string()\n .valid('auto', 'default', 'flex', 'scale', 'priority')\n .optional(),\n prompt_cache_key: validator.string().optional(),\n prompt_cache_retention: validator.string().valid('in_memory', '24h').optional(),\n safety_identifier: validator.string().optional(),\n metadata: validator.object().pattern(validator.string(), validator.string()).optional(),\n tool_choice: toolChoiceSchema.optional(),\n text: textSchema.optional(),\n // `true` is rejected — no polling/resumption logic exists for a queued/in_progress background\n // response (see the option's own doc comment in types.ts). `false`/undefined pass through.\n background: validator.boolean().valid(false).optional(),\n stream_options: streamOptionsSchema.optional(),\n onRawGeneration: validator.function().optional(),\n onPromptAssembled: validator.function().optional(),\n toolCallIdFilter: validator.function().optional(),\n localToolCallParser: localToolCallParserSchema,\n forgeToolsFilter: validator.function().optional(),\n })\n .unknown(false)\n\nconst isValidationError = (value: unknown): value is ValidationError =>\n isError(value) && Array.isArray((value as ValidationError).details)\n\nconst formatValidationDetails = (err: ValidationError): string =>\n err.details.map((d) => d.message).join(' and ')\n\n/**\n * Validates an arbitrary input against `openAIResponsesOptionsSchema` and returns the resolved\n * options shape. Throws `E_INVALID_OPENAI_RESPONSES_OPTIONS` (carrying the validator's error report\n * on `cause`) on failure.\n *\n * @param input - The raw options object to validate.\n * @returns The resolved options object with defaults filled in.\n */\nexport const validateOptions = (input: unknown): OpenAIResponsesAdapterOptions => {\n const { value, error } = openAIResponsesOptionsSchema.validate(input, {\n abortEarly: false,\n convert: false,\n })\n if (error) {\n throw new E_INVALID_OPENAI_RESPONSES_OPTIONS([formatValidationDetails(error)], {\n cause: error,\n })\n }\n return value as OpenAIResponsesAdapterOptions\n}\n\n// suppress unused import warning when the alias isn't referenced\nvoid isValidationError\n"],"mappings":"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"}
1
+ {"version":3,"file":"validation.mjs","names":[],"sources":["../../../../src/batteries/llm/openai_responses/validation.ts"],"sourcesContent":["/**\n * Runtime validation schema and wrapper for OpenAI Responses adapter options.\n *\n * @module @nhtio/adk/batteries/llm/openai_responses/validation\n *\n * @remarks\n * Schema and call-site wrapper for validating `OpenAIResponsesAdapterOptions`. Used at\n * construction time and at the start of every iteration against the merged options shape\n * (stash > executor > constructor). Throws `E_INVALID_OPENAI_RESPONSES_OPTIONS` on failure — same\n * hard-fail policy as every other ADK contract.\n *\n * Notable divergences from the sibling `openai_chat_completions`/`anthropic_messages` schemas:\n * - NO `instructions` key and NO `store` key at all — both are exclusively adapter-owned (see\n * the battery's design notes). `.unknown(false)` rejects them the same way it rejects\n * `previous_response_id`/`conversation`/`prompt`/`context_management` — ADK owns history and the\n * system prompt on every battery; this one simply has no escape hatch for either.\n * - `max_output_tokens` carries `.min(16)` — an undocumented API minimum (`400 Invalid\n * 'max_output_tokens'... Expected a value >= 16`) enforced at config time instead of dispatch\n * time.\n * - `background` only accepts `false`/undefined — `true` is rejected, since this adapter has no\n * polling/resumption logic for a queued/in_progress background response (see the option's own\n * doc comment in types.ts).\n */\n\nimport { isError } from '@nhtio/adk/guards'\nimport { validator, ValidationError } from '@nhtio/validation'\nimport { E_INVALID_OPENAI_RESPONSES_OPTIONS } from './exceptions'\nimport { byteStoreSchema, TokenEncoding } from '@nhtio/adk/common'\nimport type { OpenAIResponsesAdapterOptions } from './types'\n\n// ─── Sub-schemas ──────────────────────────────────────────────────────────────\n\nconst bucketLabelSchema = validator\n .string()\n .valid('standingInstructions', 'memories', 'retrievables', 'timeline')\n\nconst bucketOrderSchema = validator\n .array()\n .items(bucketLabelSchema)\n .unique()\n .default(['standingInstructions', 'memories', 'retrievables', 'timeline'])\n\nconst tokenEncodingSchema = validator\n .alternatives(\n // Known values are suggestions from the canonical list, not a whitelist: consumers may provide\n // a custom or newer tokenizer name. The field accepts any non-empty string, explicit null, or\n // absent (undefined = \"no token counting\"). `.optional()` preserves the null/undefined\n // disposition required by adk/require-validator-any-required.\n validator\n .string()\n .min(1)\n .description(`Known encodings: ${TokenEncoding.join(', ')}`),\n validator.any().valid(null).optional()\n )\n .default(null)\n\nconst retrySchema = validator\n .object({\n maxAttempts: validator.number().integer().min(1).default(1),\n baseDelayMs: validator.number().integer().min(0).default(500),\n maxDelayMs: validator.number().integer().min(1).default(30_000),\n retriableStatuses: validator\n .array()\n .items(validator.number().integer().min(100).max(599))\n .default([429, 502, 503, 504]),\n honorRetryAfter: validator.boolean().default(true),\n })\n .unknown(false)\n\n// Optional fallback tool-call parser — mirrors chat_common's ToolCallParserName union.\nconst localToolCallParserSchema = validator\n .alternatives(\n validator\n .string()\n .valid(\n 'auto',\n 'hermes',\n 'gemma',\n 'gpt_oss',\n 'pythonic',\n 'bare_pythonic',\n 'loose_keyed',\n 'llama3_json',\n 'mistral',\n 'qwen3_coder',\n 'phi',\n 'none'\n ),\n validator.function()\n )\n .optional()\n\nconst helperSchema = validator.function()\n\nconst helpersSchema = validator\n .object({\n descriptionToChatCompletionsJsonSchema: helperSchema.optional(),\n renderUntrustedContent: helperSchema.optional(),\n renderTrustedContent: helperSchema.optional(),\n renderStandingInstructions: helperSchema.optional(),\n renderMemories: helperSchema.optional(),\n renderRetrievables: helperSchema.optional(),\n renderRetrievableHandleBody: helperSchema.optional(),\n renderRetrievableSafetyDirective: helperSchema.optional(),\n renderFirstPartyRetrievables: helperSchema.optional(),\n renderThirdPartyPublicRetrievables: helperSchema.optional(),\n renderThirdPartyPrivateRetrievables: helperSchema.optional(),\n renderThought: helperSchema.optional(),\n filterThoughts: helperSchema.optional(),\n toolsToChatCompletionsTools: helperSchema.optional(),\n renderChatCompletionsSystemPrompt: helperSchema.optional(),\n renderArtifactHandleBody: helperSchema.optional(),\n renderOpenAIResponsesMediaBlocks: helperSchema.optional(),\n renderOpenAIResponsesTimelineMessage: helperSchema.optional(),\n renderOpenAIResponsesToolCallResult: helperSchema.optional(),\n toolsToOpenAIResponsesTools: helperSchema.optional(),\n fingerprintOpenAIResponsesPrefix: helperSchema.optional(),\n renderOpenAIResponsesReasoningItem: helperSchema.optional(),\n buildOpenAIResponsesInput: helperSchema.optional(),\n createResponsesOutputSlotMachine: helperSchema.optional(),\n })\n .unknown(false)\n\nconst unsupportedMediaPolicySchema = validator\n .alternatives(\n validator.string().valid('throw', 'fallback-stash', 'synthetic-description'),\n validator\n .object({\n mode: validator.string().valid('fallback-stash').required(),\n stashKeys: validator.array().items(validator.string().min(1)).required(),\n })\n .unknown(false)\n )\n .default('throw')\n\n// ─── Responses request-body sub-schemas ───────────────────────────────────────\n\nconst includeItemSchema = validator.string().min(1)\n\nconst reasoningSchema = validator\n .object({\n effort: validator\n .string()\n .valid('none', 'minimal', 'low', 'medium', 'high', 'xhigh')\n .optional(),\n summary: validator.string().valid('auto', 'concise', 'detailed').optional(),\n })\n .unknown(false)\n\nconst toolChoiceSchema = validator.alternatives(\n validator.string().valid('none', 'auto', 'required'),\n validator\n .object({\n type: validator.string().valid('function').required(),\n name: validator.string().required(),\n })\n .unknown(false)\n)\n\nconst textFormatSchema = validator.object().unknown(true)\n\nconst textSchema = validator\n .object({\n format: textFormatSchema.optional(),\n verbosity: validator.string().valid('low', 'medium', 'high').optional(),\n })\n .unknown(false)\n\nconst streamOptionsSchema = validator\n .object({\n include_obfuscation: validator.boolean().optional(),\n })\n .unknown(false)\n\n// ─── Top-level schema ─────────────────────────────────────────────────────────\n\n/**\n * Validator schema for `OpenAIResponsesAdapterOptions`.\n *\n * @remarks\n * Used by `validateOptions` at construction time and again at the start of every iteration after\n * options have been merged (stash > executor > constructor). Rejects unknown top-level keys so\n * typos, removed fields, and every server-side-conversation-state key\n * (`previous_response_id`/`conversation`/`prompt`/`context_management`) fail loud — as does\n * `instructions`/`store`, which are simply not part of this options interface at all (see the\n * module remarks above).\n */\nexport const openAIResponsesOptionsSchema = validator\n .object<OpenAIResponsesAdapterOptions>({\n // ADK control\n apiKey: validator.string().optional(),\n baseURL: validator.string().optional(),\n organization: validator.string().optional(),\n project: validator.string().optional(),\n headers: validator.object().pattern(validator.string(), validator.string()).optional(),\n stream: validator.boolean().default(true),\n streamIdleTimeoutMs: validator.number().integer().min(0).default(0),\n requestTimeoutMs: validator.number().integer().min(0).default(0),\n retry: retrySchema.optional(),\n fetch: validator.function().optional(),\n bucketOrder: bucketOrderSchema,\n contextWindow: validator.number().integer().min(1).optional(),\n selfIdentity: validator.string().min(1).default('assistant'),\n thoughtSurfacing: validator\n .string()\n .valid('all-self', 'latest-self', 'all')\n .default('all-self'),\n tokenEncoding: tokenEncodingSchema,\n replayCompatibility: validator.array().items(validator.string().min(1)).default([]),\n helpers: helpersSchema.optional(),\n spoolStore: byteStoreSchema.optional(),\n strictToolChoice: validator.boolean().default(false),\n autoAck: validator.boolean().default(false),\n unsupportedMediaPolicy: unsupportedMediaPolicySchema,\n\n // Responses-specific ADK control\n systemPromptChannel: validator\n .string()\n .valid('instructions', 'developer-item', 'system-item')\n .default('instructions'),\n reasoningReplay: validator.string().valid('off', 'encrypted', 'summary-only').default('off'),\n strict: validator.boolean().optional(),\n\n // Responses request body\n model: validator.string().required(),\n include: validator.array().items(includeItemSchema).optional(),\n reasoning: reasoningSchema.optional(),\n // Undocumented API minimum of 16 — see the module remarks and Known Gotcha #2.\n max_output_tokens: validator.number().integer().min(16).optional(),\n parallel_tool_calls: validator.boolean().optional(),\n temperature: validator.number().min(0).max(2).optional(),\n top_p: validator.number().min(0).max(1).optional(),\n top_logprobs: validator.number().integer().min(0).max(20).optional(),\n truncation: validator.string().valid('auto', 'disabled').optional(),\n service_tier: validator\n .string()\n .valid('auto', 'default', 'flex', 'scale', 'priority')\n .optional(),\n prompt_cache_key: validator.string().optional(),\n prompt_cache_retention: validator.string().valid('in_memory', '24h').optional(),\n safety_identifier: validator.string().optional(),\n metadata: validator.object().pattern(validator.string(), validator.string()).optional(),\n tool_choice: toolChoiceSchema.optional(),\n text: textSchema.optional(),\n // `true` is rejected — no polling/resumption logic exists for a queued/in_progress background\n // response (see the option's own doc comment in types.ts). `false`/undefined pass through.\n background: validator.boolean().valid(false).optional(),\n stream_options: streamOptionsSchema.optional(),\n onRawGeneration: validator.function().optional(),\n onPromptAssembled: validator.function().optional(),\n toolCallIdFilter: validator.function().optional(),\n localToolCallParser: localToolCallParserSchema,\n forgeToolsFilter: validator.function().optional(),\n })\n .unknown(false)\n\nconst isValidationError = (value: unknown): value is ValidationError =>\n isError(value) && Array.isArray((value as ValidationError).details)\n\nconst formatValidationDetails = (err: ValidationError): string =>\n err.details.map((d) => d.message).join(' and ')\n\n/**\n * Validates an arbitrary input against `openAIResponsesOptionsSchema` and returns the resolved\n * options shape. Throws `E_INVALID_OPENAI_RESPONSES_OPTIONS` (carrying the validator's error report\n * on `cause`) on failure.\n *\n * @param input - The raw options object to validate.\n * @returns The resolved options object with defaults filled in.\n */\nexport const validateOptions = (input: unknown): OpenAIResponsesAdapterOptions => {\n const { value, error } = openAIResponsesOptionsSchema.validate(input, {\n abortEarly: false,\n convert: false,\n })\n if (error) {\n throw new E_INVALID_OPENAI_RESPONSES_OPTIONS([formatValidationDetails(error)], {\n cause: error,\n })\n }\n return value as OpenAIResponsesAdapterOptions\n}\n\n// suppress unused import warning when the alias isn't referenced\nvoid isValidationError\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../chunk-Cek0wNdY.js");
3
- const require_helpers = require("../../helpers-Tvvwpx1M.js");
4
- const require_chat_common = require("../../chat_common-B3O3zz-i.js");
3
+ const require_helpers = require("../../helpers-CEjjkXso.js");
4
+ const require_chat_common = require("../../chat_common-Dpan9moo.js");
5
5
  const require_batteries_llm_openai_responses_exceptions = require("./openai_responses/exceptions.cjs");
6
6
  const require_batteries_llm_openai_responses_validation = require("./openai_responses/validation.cjs");
7
7
  const require_batteries_llm_openai_responses_helpers = require("./openai_responses/helpers.cjs");
@@ -1,5 +1,5 @@
1
- import { A as renderMemories, D as renderArtifactHandleBody, F as renderThirdPartyPrivateRetrievables, G as toolsToChatCompletionsTools, H as sanitizeFilenameForDescription, I as renderThirdPartyPublicRetrievables, L as renderThought, M as renderRetrievableSafetyDirective, N as renderRetrievables, O as renderChatCompletionsSystemPrompt, P as renderStandingInstructions, R as renderTrustedContent, S as floorTrustTier, T as neutraliseDeveloperRulesTag, U as sanitizeMimeType, W as stripEnvelopeSpecialTokens, _ as defaultRenderUntrustedContent, a as defaultRenderArtifactHandleBody, c as defaultRenderMemories, d as defaultRenderRetrievables, f as defaultRenderStandingInstructions, g as defaultRenderTrustedContent, h as defaultRenderThought, i as defaultFilterThoughts, j as renderRetrievableHandleBody, k as renderFirstPartyRetrievables, l as defaultRenderRetrievableHandleBody, m as defaultRenderThirdPartyPublicRetrievables, n as defaultCanonicalFingerprint, o as defaultRenderChatCompletionsSystemPrompt, p as defaultRenderThirdPartyPrivateRetrievables, r as defaultDescriptionToChatCompletionsJsonSchema, s as defaultRenderFirstPartyRetrievables, t as canonicalFingerprint, u as defaultRenderRetrievableSafetyDirective, v as defaultToolsToChatCompletionsTools, x as filterThoughts, y as descriptionToChatCompletionsJsonSchema, z as renderUntrustedContent } from "../../helpers-CDmLDBq5.mjs";
2
- import { t as deCollideToolCallIds } from "../../chat_common-DbbIESdo.mjs";
1
+ import { A as renderMemories, D as renderArtifactHandleBody, F as renderThirdPartyPrivateRetrievables, G as toolsToChatCompletionsTools, H as sanitizeFilenameForDescription, I as renderThirdPartyPublicRetrievables, L as renderThought, M as renderRetrievableSafetyDirective, N as renderRetrievables, O as renderChatCompletionsSystemPrompt, P as renderStandingInstructions, R as renderTrustedContent, S as floorTrustTier, T as neutraliseDeveloperRulesTag, U as sanitizeMimeType, W as stripEnvelopeSpecialTokens, _ as defaultRenderUntrustedContent, a as defaultRenderArtifactHandleBody, c as defaultRenderMemories, d as defaultRenderRetrievables, f as defaultRenderStandingInstructions, g as defaultRenderTrustedContent, h as defaultRenderThought, i as defaultFilterThoughts, j as renderRetrievableHandleBody, k as renderFirstPartyRetrievables, l as defaultRenderRetrievableHandleBody, m as defaultRenderThirdPartyPublicRetrievables, n as defaultCanonicalFingerprint, o as defaultRenderChatCompletionsSystemPrompt, p as defaultRenderThirdPartyPrivateRetrievables, r as defaultDescriptionToChatCompletionsJsonSchema, s as defaultRenderFirstPartyRetrievables, t as canonicalFingerprint, u as defaultRenderRetrievableSafetyDirective, v as defaultToolsToChatCompletionsTools, x as filterThoughts, y as descriptionToChatCompletionsJsonSchema, z as renderUntrustedContent } from "../../helpers-BH7HTtkD.mjs";
2
+ import { t as deCollideToolCallIds } from "../../chat_common-CmKV5Dz4.mjs";
3
3
  import { E_INVALID_OPENAI_RESPONSES_OPTIONS, E_OPENAI_RESPONSES_CONTEXT_OVERFLOW, E_OPENAI_RESPONSES_HTTP_ERROR, E_OPENAI_RESPONSES_INVALID_TOOL_CALL_ARGS, E_OPENAI_RESPONSES_REASONING_REPLAY_REJECTED, E_OPENAI_RESPONSES_REQUEST_TIMEOUT, E_OPENAI_RESPONSES_STREAM_ERROR, E_OPENAI_RESPONSES_STREAM_STALLED, E_OPENAI_RESPONSES_UNSUPPORTED_MEDIA_MODALITY } from "./openai_responses/exceptions.mjs";
4
4
  import { openAIResponsesOptionsSchema, validateOptions } from "./openai_responses/validation.mjs";
5
5
  import { buildOpenAIResponsesInput, createResponsesOutputSlotMachine, deCollideOpenAIResponsesToolCallIds, defaultBuildOpenAIResponsesInput, defaultCreateResponsesOutputSlotMachine, defaultRenderOpenAIResponsesMediaBlocks, defaultRenderOpenAIResponsesReasoningItem, defaultRenderOpenAIResponsesTimelineMessage, defaultRenderOpenAIResponsesToolCallResult, defaultToolsToOpenAIResponsesTools, fingerprintOpenAIResponsesPrefix, normalizeOpenAIResponsesItemId, renderOpenAIResponsesMediaBlocks, renderOpenAIResponsesReasoningItem, renderOpenAIResponsesTimelineMessage, renderOpenAIResponsesToolCallResult, toolsToOpenAIResponsesTools } from "./openai_responses/helpers.mjs";
@@ -1,15 +1,15 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../../chunk-Cek0wNdY.js");
3
3
  const require_guards = require("../../../guards-05Uq3J4M.js");
4
- const require_tokenizable = require("../../../tokenizable-CWW7iSrD.js");
5
- const require_spooled_artifact = require("../../../spooled_artifact-DriNQRj7.js");
6
- const require_thought = require("../../../thought--fRgOwTP.js");
7
- const require_tool_call = require("../../../tool_call-DgqVwL5n.js");
8
- require("../../../common-BV3HGeLj.js");
4
+ const require_tokenizable = require("../../../tokenizable-BMZuGWRd.js");
5
+ const require_spooled_artifact = require("../../../spooled_artifact-BpcesRBv.js");
6
+ const require_thought = require("../../../thought-bS7O9O5H.js");
7
+ const require_tool_call = require("../../../tool_call-Fs_Uh5wQ.js");
8
+ require("../../../common-H44Ik9ou.js");
9
9
  require("../../../guards.cjs");
10
10
  const require_tool_parsers = require("../../../tool_parsers-csSBFWob.js");
11
11
  const require_batteries_storage_in_memory = require("../../storage/in_memory.cjs");
12
- const require_helpers = require("../../../helpers-Tvvwpx1M.js");
12
+ const require_helpers = require("../../../helpers-CEjjkXso.js");
13
13
  const require_gpu_budget = require("../../../gpu_budget-BBIUyLoj.js");
14
14
  const require_lifecycle = require("../../../lifecycle-vYQJ2rmf.js");
15
15
  const require_batteries_llm_chat_common_exceptions = require("../chat_common/exceptions.cjs");