@jsonstudio/llms 0.6.2172 → 0.6.3214

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 (524) hide show
  1. package/README.md +2 -0
  2. package/dist/conversion/args-mapping.js +8 -0
  3. package/dist/conversion/bridge-actions.js +367 -0
  4. package/dist/conversion/bridge-id-utils.js +13 -0
  5. package/dist/conversion/{shared/bridge-instructions.js → bridge-instructions.js} +2 -1
  6. package/dist/conversion/{shared/bridge-message-utils.d.ts → bridge-message-utils.d.ts} +1 -1
  7. package/dist/conversion/{shared/bridge-message-utils.js → bridge-message-utils.js} +5 -150
  8. package/dist/conversion/{shared/bridge-metadata.d.ts → bridge-metadata.d.ts} +1 -0
  9. package/dist/conversion/bridge-metadata.js +5 -0
  10. package/dist/conversion/bridge-policies.js +11 -0
  11. package/dist/conversion/codecs/gemini-openai-codec.js +27 -8
  12. package/dist/conversion/codecs/responses-openai-codec.js +1 -1
  13. package/dist/conversion/{shared/compaction-detect.d.ts → compaction-detect.d.ts} +1 -1
  14. package/dist/conversion/compaction-detect.js +4 -0
  15. package/dist/conversion/compat/actions/apply-patch-fixer.js +2 -2
  16. package/dist/conversion/compat/actions/deepseek-web-response.d.ts +0 -1
  17. package/dist/conversion/compat/actions/deepseek-web-response.js +15 -405
  18. package/dist/conversion/compat/actions/harvest-tool-calls-from-text.js +1 -1
  19. package/dist/conversion/compat/actions/lmstudio-responses-fc-ids.js +1 -1
  20. package/dist/conversion/compat/actions/qwen-transform.js +74 -2
  21. package/dist/conversion/compat/actions/snapshot.js +1 -1
  22. package/dist/conversion/compat/antigravity-session-signature.js +71 -1
  23. package/dist/conversion/compat/profiles/chat-deepseek-web.json +0 -22
  24. package/dist/conversion/compat/profiles/chat-gemini-cli.json +0 -7
  25. package/dist/conversion/compat/profiles/chat-gemini.json +0 -6
  26. package/dist/conversion/compat/profiles/chat-glm.json +251 -72
  27. package/dist/conversion/compat/profiles/chat-iflow.json +174 -39
  28. package/dist/conversion/compat/profiles/chat-lmstudio.json +43 -14
  29. package/dist/conversion/hub/core/detour-registry.d.ts +2 -0
  30. package/dist/conversion/hub/core/hub-context.d.ts +3 -1
  31. package/dist/conversion/hub/core/index.d.ts +1 -0
  32. package/dist/conversion/hub/core/stage-driver.js +2 -0
  33. package/dist/conversion/hub/format-adapters/anthropic-format-adapter.js +15 -4
  34. package/dist/conversion/hub/format-adapters/chat-format-adapter.js +15 -4
  35. package/dist/conversion/hub/format-adapters/gemini-format-adapter.js +15 -4
  36. package/dist/conversion/hub/format-adapters/responses-format-adapter.js +15 -4
  37. package/dist/conversion/hub/hub-feature.js +3 -2
  38. package/dist/conversion/hub/node-support.js +9 -4
  39. package/dist/conversion/hub/operation-table/operation-table-runner.js +12 -8
  40. package/dist/conversion/hub/operation-table/semantic-mappers/anthropic-mapper.js +3 -3
  41. package/dist/conversion/hub/operation-table/semantic-mappers/chat-mapper.js +16 -13
  42. package/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapper.js +6 -10
  43. package/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper.js +21 -73
  44. package/dist/conversion/hub/ops/operations.js +2 -121
  45. package/dist/conversion/hub/pipeline/compat/compat-engine.js +6 -0
  46. package/dist/conversion/hub/pipeline/compat/compat-pipeline-executor.d.ts +1 -1
  47. package/dist/conversion/hub/pipeline/compat/compat-pipeline-executor.js +33 -1042
  48. package/dist/conversion/hub/pipeline/compat/compat-profile-resolver.js +2 -0
  49. package/dist/conversion/hub/pipeline/compat/compat-profile-store.js +2 -0
  50. package/dist/conversion/hub/pipeline/compat/compat-types.d.ts +14 -17
  51. package/dist/conversion/hub/pipeline/compat/native-adapter-context.d.ts +3 -0
  52. package/dist/conversion/hub/pipeline/compat/native-adapter-context.js +39 -0
  53. package/dist/conversion/hub/pipeline/hub-pipeline.d.ts +1 -0
  54. package/dist/conversion/hub/pipeline/hub-pipeline.js +165 -265
  55. package/dist/conversion/hub/pipeline/session-identifiers.js +6 -196
  56. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage1_format_parse/index.d.ts +1 -2
  57. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage1_format_parse/index.js +37 -1
  58. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/index.d.ts +1 -1
  59. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/index.js +69 -81
  60. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/semantic-lift.d.ts +14 -0
  61. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/semantic-lift.js +24 -0
  62. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/archive/shell-like-tool-call-normalization-fallback.d.ts +2 -0
  63. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/archive/shell-like-tool-call-normalization-fallback.js +157 -0
  64. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-capture-orchestration.d.ts +16 -0
  65. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-capture-orchestration.js +29 -0
  66. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-factories.js +3 -1
  67. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/index.d.ts +2 -15
  68. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/index.js +8 -595
  69. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.d.ts +8 -0
  70. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.js +28 -0
  71. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-diagnostics.d.ts +2 -0
  72. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-diagnostics.js +4 -0
  73. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-snapshot.d.ts +10 -0
  74. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-snapshot.js +12 -0
  75. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/context-merge.d.ts +3 -0
  76. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/context-merge.js +30 -0
  77. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/index.js +9 -129
  78. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage2_format_build/index.d.ts +1 -4
  79. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage2_format_build/index.js +9 -26
  80. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage3_compat/index.js +32 -14
  81. package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage1_tool_governance/index.d.ts +2 -2
  82. package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage1_tool_governance/index.js +48 -8
  83. package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage2_route_select/index.js +20 -3
  84. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/index.js +11 -199
  85. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/stream-json-sniffer.d.ts +3 -0
  86. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/stream-json-sniffer.js +81 -0
  87. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage2_format_parse/index.d.ts +1 -2
  88. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage2_format_parse/index.js +36 -1
  89. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage3_semantic_map/index.js +3 -1
  90. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/chat-process-semantics-bridge.d.ts +6 -0
  91. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/chat-process-semantics-bridge.js +17 -0
  92. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.d.ts +9 -0
  93. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.js +28 -0
  94. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.d.ts +1 -2
  95. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.js +14 -102
  96. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage2_sse_stream/index.js +3 -1
  97. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage1_tool_governance/index.js +54 -39
  98. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage2_finalize/index.js +18 -5
  99. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.d.ts +11 -1
  100. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.js +10 -32
  101. package/dist/conversion/hub/pipeline/stages/utils.js +17 -1
  102. package/dist/conversion/hub/pipeline/target-utils.js +14 -91
  103. package/dist/conversion/hub/pipelines/inbound.js +3 -1
  104. package/dist/conversion/hub/pipelines/outbound.js +2 -0
  105. package/dist/conversion/hub/policy/policy-engine.js +9 -3
  106. package/dist/conversion/hub/policy/protocol-spec.js +21 -149
  107. package/dist/conversion/hub/process/chat-process-anthropic-alias.d.ts +2 -0
  108. package/dist/conversion/hub/process/chat-process-anthropic-alias.js +36 -0
  109. package/dist/conversion/hub/process/chat-process-clock-directive-parser.d.ts +5 -0
  110. package/dist/conversion/hub/process/chat-process-clock-directive-parser.js +48 -0
  111. package/dist/conversion/hub/process/chat-process-clock-directives.d.ts +24 -0
  112. package/dist/conversion/hub/process/chat-process-clock-directives.js +98 -0
  113. package/dist/conversion/hub/process/chat-process-clock-reminder-directives.d.ts +8 -0
  114. package/dist/conversion/hub/process/chat-process-clock-reminder-directives.js +42 -0
  115. package/dist/conversion/hub/process/chat-process-clock-reminder-finalize.d.ts +14 -0
  116. package/dist/conversion/hub/process/chat-process-clock-reminder-finalize.js +10 -0
  117. package/dist/conversion/hub/process/chat-process-clock-reminder-messages.d.ts +5 -0
  118. package/dist/conversion/hub/process/chat-process-clock-reminder-messages.js +10 -0
  119. package/dist/conversion/hub/process/chat-process-clock-reminder-orchestration.d.ts +30 -0
  120. package/dist/conversion/hub/process/chat-process-clock-reminder-orchestration.js +68 -0
  121. package/dist/conversion/hub/process/chat-process-clock-reminder-time-tag.d.ts +9 -0
  122. package/dist/conversion/hub/process/chat-process-clock-reminder-time-tag.js +18 -0
  123. package/dist/conversion/hub/process/chat-process-clock-reminders.d.ts +2 -0
  124. package/dist/conversion/hub/process/chat-process-clock-reminders.js +104 -0
  125. package/dist/conversion/hub/process/chat-process-clock-tool-schemas.d.ts +3 -0
  126. package/dist/conversion/hub/process/chat-process-clock-tool-schemas.js +233 -0
  127. package/dist/conversion/hub/process/chat-process-clock-tools.d.ts +6 -0
  128. package/dist/conversion/hub/process/chat-process-clock-tools.js +41 -0
  129. package/dist/conversion/hub/process/chat-process-continue-execution.d.ts +11 -0
  130. package/dist/conversion/hub/process/chat-process-continue-execution.js +82 -0
  131. package/dist/conversion/hub/process/chat-process-governance-context.d.ts +15 -0
  132. package/dist/conversion/hub/process/chat-process-governance-context.js +7 -0
  133. package/dist/conversion/hub/process/chat-process-governance-finalize.d.ts +16 -0
  134. package/dist/conversion/hub/process/chat-process-governance-finalize.js +11 -0
  135. package/dist/conversion/hub/process/chat-process-governance-orchestration.d.ts +9 -0
  136. package/dist/conversion/hub/process/chat-process-governance-orchestration.js +47 -0
  137. package/dist/conversion/hub/process/chat-process-governed-control-ops.d.ts +8 -0
  138. package/dist/conversion/hub/process/chat-process-governed-control-ops.js +5 -0
  139. package/dist/conversion/hub/process/chat-process-governed-filter-call.d.ts +12 -0
  140. package/dist/conversion/hub/process/chat-process-governed-filter-call.js +18 -0
  141. package/dist/conversion/hub/process/chat-process-governed-merge.d.ts +8 -0
  142. package/dist/conversion/hub/process/chat-process-governed-merge.js +11 -0
  143. package/dist/conversion/hub/process/chat-process-media.d.ts +3 -0
  144. package/dist/conversion/hub/process/chat-process-media.js +18 -0
  145. package/dist/conversion/hub/process/chat-process-node-result.d.ts +23 -0
  146. package/dist/conversion/hub/process/chat-process-node-result.js +24 -0
  147. package/dist/conversion/hub/process/chat-process-pending-tool-sync.d.ts +14 -0
  148. package/dist/conversion/hub/process/chat-process-pending-tool-sync.js +52 -0
  149. package/dist/conversion/hub/process/chat-process-post-governed-normalization.d.ts +8 -0
  150. package/dist/conversion/hub/process/chat-process-post-governed-normalization.js +16 -0
  151. package/dist/conversion/hub/process/chat-process-review.d.ts +2 -0
  152. package/dist/conversion/hub/process/chat-process-review.js +8 -0
  153. package/dist/conversion/hub/process/chat-process-servertool-orchestration.d.ts +8 -0
  154. package/dist/conversion/hub/process/chat-process-servertool-orchestration.js +22 -0
  155. package/dist/conversion/hub/process/chat-process-tool-normalization.d.ts +2 -0
  156. package/dist/conversion/hub/process/chat-process-tool-normalization.js +4 -0
  157. package/dist/conversion/hub/process/chat-process-web-search-intent.d.ts +12 -0
  158. package/dist/conversion/hub/process/chat-process-web-search-intent.js +13 -0
  159. package/dist/conversion/hub/process/chat-process-web-search-tool-schema.d.ts +3 -0
  160. package/dist/conversion/hub/process/chat-process-web-search-tool-schema.js +4 -0
  161. package/dist/conversion/hub/process/chat-process-web-search.d.ts +8 -0
  162. package/dist/conversion/hub/process/chat-process-web-search.js +26 -0
  163. package/dist/conversion/hub/process/chat-process.d.ts +2 -19
  164. package/dist/conversion/hub/process/chat-process.js +12 -1701
  165. package/dist/conversion/hub/process/client-inject-readiness.d.ts +1 -0
  166. package/dist/conversion/hub/process/client-inject-readiness.js +4 -0
  167. package/dist/conversion/hub/registry.js +5 -2
  168. package/dist/conversion/hub/response/chat-response-utils.js +5 -86
  169. package/dist/conversion/hub/response/provider-response.d.ts +9 -0
  170. package/dist/conversion/hub/response/provider-response.js +20 -26
  171. package/dist/conversion/hub/response/response-mappers.js +25 -27
  172. package/dist/conversion/hub/response/response-runtime.js +30 -98
  173. package/dist/conversion/hub/semantic-mappers/anthropic-mapper.d.ts +1 -0
  174. package/dist/conversion/hub/semantic-mappers/anthropic-mapper.js +1 -0
  175. package/dist/conversion/hub/semantic-mappers/chat-mapper.d.ts +1 -0
  176. package/dist/conversion/hub/semantic-mappers/chat-mapper.js +1 -0
  177. package/dist/conversion/hub/semantic-mappers/gemini-mapper.d.ts +1 -0
  178. package/dist/conversion/hub/semantic-mappers/gemini-mapper.js +1 -0
  179. package/dist/conversion/hub/semantic-mappers/responses-mapper.d.ts +1 -0
  180. package/dist/conversion/hub/semantic-mappers/responses-mapper.js +1 -0
  181. package/dist/conversion/hub/snapshot-recorder.js +11 -4
  182. package/dist/conversion/hub/standardized-bridge.js +11 -288
  183. package/dist/conversion/hub/tool-governance/engine.d.ts +8 -0
  184. package/dist/conversion/hub/tool-governance/engine.js +25 -63
  185. package/dist/conversion/hub/tool-governance/rules.js +73 -69
  186. package/dist/conversion/hub/tool-session-compat.d.ts +2 -2
  187. package/dist/conversion/hub/tool-session-compat.js +17 -231
  188. package/dist/conversion/hub/tool-surface/tool-surface-engine.js +6 -4
  189. package/dist/conversion/index.d.ts +1 -2
  190. package/dist/conversion/index.js +1 -2
  191. package/dist/conversion/jsonish.js +20 -0
  192. package/dist/conversion/mcp-injection.js +7 -0
  193. package/dist/conversion/media.js +4 -0
  194. package/dist/conversion/{shared/metadata-passthrough.d.ts → metadata-passthrough.d.ts} +1 -1
  195. package/dist/conversion/metadata-passthrough.js +20 -0
  196. package/dist/conversion/payload-budget.js +47 -0
  197. package/dist/conversion/protocol-field-allowlists.d.ts +7 -0
  198. package/dist/conversion/protocol-field-allowlists.js +9 -0
  199. package/dist/conversion/{shared/protocol-state.d.ts → protocol-state.d.ts} +2 -2
  200. package/dist/conversion/protocol-state.js +27 -0
  201. package/dist/conversion/{shared/errors.d.ts → provider-protocol-error.d.ts} +0 -3
  202. package/dist/conversion/provider-protocol-error.js +25 -0
  203. package/dist/conversion/responses/responses-host-policy.js +2 -12
  204. package/dist/conversion/responses/responses-openai-bridge/response-payload.js +14 -87
  205. package/dist/conversion/responses/responses-openai-bridge/types.d.ts +2 -1
  206. package/dist/conversion/responses/responses-openai-bridge.d.ts +1 -1
  207. package/dist/conversion/responses/responses-openai-bridge.js +62 -62
  208. package/dist/conversion/{shared/runtime-metadata.d.ts → runtime-metadata.d.ts} +1 -1
  209. package/dist/conversion/runtime-metadata.js +31 -0
  210. package/dist/conversion/shared/anthropic-message-utils.js +170 -21
  211. package/dist/conversion/shared/chat-envelope-validator.js +2 -126
  212. package/dist/conversion/shared/chat-output-normalizer.js +2 -54
  213. package/dist/conversion/shared/chat-request-filters.d.ts +3 -4
  214. package/dist/conversion/shared/chat-request-filters.js +22 -78
  215. package/dist/conversion/shared/gemini-tool-utils.d.ts +1 -1
  216. package/dist/conversion/shared/gemini-tool-utils.js +9 -524
  217. package/dist/conversion/shared/openai-finalizer.js +3 -1
  218. package/dist/conversion/shared/openai-message-normalize.js +13 -285
  219. package/dist/conversion/shared/output-content-normalizer.js +9 -112
  220. package/dist/conversion/shared/reasoning-mapping.js +2 -6
  221. package/dist/conversion/shared/reasoning-normalizer.js +10 -1
  222. package/dist/conversion/shared/reasoning-tool-normalizer.js +14 -126
  223. package/dist/conversion/shared/reasoning-tool-parser.js +4 -87
  224. package/dist/conversion/shared/reasoning-utils.js +7 -8
  225. package/dist/conversion/shared/responses-conversation-store.js +5 -83
  226. package/dist/conversion/shared/responses-output-builder.js +63 -55
  227. package/dist/conversion/shared/responses-reasoning-registry.d.ts +14 -2
  228. package/dist/conversion/shared/responses-reasoning-registry.js +41 -7
  229. package/dist/conversion/shared/responses-request-adapter.d.ts +7 -1
  230. package/dist/conversion/shared/responses-request-adapter.js +14 -1
  231. package/dist/conversion/shared/responses-response-utils.js +103 -14
  232. package/dist/conversion/shared/responses-tool-utils.d.ts +1 -0
  233. package/dist/conversion/shared/responses-tool-utils.js +91 -15
  234. package/dist/conversion/shared/streaming-text-extractor.js +2 -7
  235. package/dist/conversion/shared/text-markup-normalizer/normalize.d.ts +2 -2
  236. package/dist/conversion/shared/text-markup-normalizer/normalize.js +43 -17
  237. package/dist/conversion/shared/text-markup-normalizer.d.ts +3 -2
  238. package/dist/conversion/shared/text-markup-normalizer.js +2 -1
  239. package/dist/conversion/shared/thought-signature-validator.js +3 -2
  240. package/dist/conversion/shared/tool-argument-repairer.js +2 -2
  241. package/dist/conversion/shared/tool-call-id-manager.js +5 -7
  242. package/dist/conversion/shared/tool-call-utils.js +3 -45
  243. package/dist/conversion/shared/tool-filter-pipeline.js +5 -100
  244. package/dist/conversion/shared/tool-governor.d.ts +6 -0
  245. package/dist/conversion/shared/tool-governor.js +45 -127
  246. package/dist/conversion/shared/tool-harvester.js +2 -8
  247. package/dist/conversion/shared/tool-mapping.d.ts +1 -1
  248. package/dist/conversion/shared/tool-mapping.js +2 -5
  249. package/dist/conversion/shared/tooling.d.ts +0 -4
  250. package/dist/conversion/shared/tooling.js +18 -0
  251. package/dist/conversion/{shared/snapshot-utils.d.ts → snapshot-utils.d.ts} +11 -0
  252. package/dist/conversion/{shared/snapshot-utils.js → snapshot-utils.js} +14 -23
  253. package/dist/conversion/{shared → types}/bridge-message-types.d.ts +2 -0
  254. package/dist/conversion/types/text-markup-normalizer.d.ts +13 -0
  255. package/dist/filters/special/request-tools-normalize.js +1 -1
  256. package/dist/filters/special/response-tool-text-canonicalize.js +2 -2
  257. package/dist/native/router_hotpath_napi.node +0 -0
  258. package/dist/quota/quota-manager.js +31 -59
  259. package/dist/quota/quota-state.js +14 -7
  260. package/dist/router/virtual-router/bootstrap/profile-builder.d.ts +1 -0
  261. package/dist/router/virtual-router/bootstrap/profile-builder.js +13 -0
  262. package/dist/router/virtual-router/bootstrap/provider-normalization.d.ts +2 -0
  263. package/dist/router/virtual-router/bootstrap/provider-normalization.js +4 -1
  264. package/dist/router/virtual-router/bootstrap/streaming-helpers.d.ts +7 -0
  265. package/dist/router/virtual-router/bootstrap/streaming-helpers.js +44 -0
  266. package/dist/router/virtual-router/bootstrap.js +2 -0
  267. package/dist/router/virtual-router/engine/provider-key/parse.d.ts +1 -6
  268. package/dist/router/virtual-router/engine/provider-key/parse.js +1 -43
  269. package/dist/router/virtual-router/engine/routing-state/store.d.ts +1 -2
  270. package/dist/router/virtual-router/engine/routing-state/store.js +50 -14
  271. package/dist/router/virtual-router/engine-legacy/config.d.ts +11 -0
  272. package/dist/router/virtual-router/engine-legacy/config.js +108 -0
  273. package/dist/router/virtual-router/engine-legacy/direct-model.d.ts +10 -0
  274. package/dist/router/virtual-router/engine-legacy/direct-model.js +38 -0
  275. package/dist/router/virtual-router/engine-legacy/health.d.ts +13 -0
  276. package/dist/router/virtual-router/engine-legacy/health.js +104 -0
  277. package/dist/router/virtual-router/engine-legacy/helpers.d.ts +16 -0
  278. package/dist/router/virtual-router/engine-legacy/helpers.js +226 -0
  279. package/dist/router/virtual-router/engine-legacy/route-finalize.d.ts +9 -0
  280. package/dist/router/virtual-router/engine-legacy/route-finalize.js +84 -0
  281. package/dist/router/virtual-router/engine-legacy/route-selection.d.ts +17 -0
  282. package/dist/router/virtual-router/engine-legacy/route-selection.js +205 -0
  283. package/dist/router/virtual-router/engine-legacy/route-state-allowlist.d.ts +3 -0
  284. package/dist/router/virtual-router/engine-legacy/route-state-allowlist.js +36 -0
  285. package/dist/router/virtual-router/engine-legacy/route-state.d.ts +12 -0
  286. package/dist/router/virtual-router/engine-legacy/route-state.js +386 -0
  287. package/dist/router/virtual-router/engine-legacy/route-utils.d.ts +19 -0
  288. package/dist/router/virtual-router/engine-legacy/route-utils.js +212 -0
  289. package/dist/router/virtual-router/engine-legacy/routing.d.ts +8 -0
  290. package/dist/router/virtual-router/engine-legacy/routing.js +8 -0
  291. package/dist/router/virtual-router/engine-legacy/selection-core.d.ts +28 -0
  292. package/dist/router/virtual-router/engine-legacy/selection-core.js +112 -0
  293. package/dist/router/virtual-router/engine-legacy/selection-state.d.ts +16 -0
  294. package/dist/router/virtual-router/engine-legacy/selection-state.js +187 -0
  295. package/dist/router/virtual-router/engine-legacy/state-accessors.d.ts +21 -0
  296. package/dist/router/virtual-router/engine-legacy/state-accessors.js +118 -0
  297. package/dist/router/virtual-router/engine-legacy.d.ts +123 -0
  298. package/dist/router/virtual-router/engine-legacy.js +194 -0
  299. package/dist/router/virtual-router/engine-logging.d.ts +2 -0
  300. package/dist/router/virtual-router/engine-logging.js +11 -5
  301. package/dist/router/virtual-router/engine-selection/alias-selection.js +45 -83
  302. package/dist/router/virtual-router/engine-selection/key-parsing.js +9 -26
  303. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-directive-parser.d.ts +20 -0
  304. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-directive-parser.js +163 -0
  305. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-directives.d.ts +7 -0
  306. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-directives.js +103 -0
  307. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-orchestration-semantics.d.ts +10 -0
  308. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-orchestration-semantics.js +110 -0
  309. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-semantics.d.ts +8 -0
  310. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-semantics.js +281 -0
  311. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-time-tag-semantics.d.ts +1 -0
  312. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-time-tag-semantics.js +25 -0
  313. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminders-semantics.d.ts +4 -0
  314. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminders-semantics.js +44 -0
  315. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-tool-schema-semantics.d.ts +2 -0
  316. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-tool-schema-semantics.js +62 -0
  317. package/dist/router/virtual-router/engine-selection/native-chat-process-governance-semantics.d.ts +40 -0
  318. package/dist/router/virtual-router/engine-selection/native-chat-process-governance-semantics.js +484 -0
  319. package/dist/router/virtual-router/engine-selection/native-chat-process-governed-filter-semantics.d.ts +9 -0
  320. package/dist/router/virtual-router/engine-selection/native-chat-process-governed-filter-semantics.js +64 -0
  321. package/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.d.ts +5 -0
  322. package/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.js +163 -0
  323. package/dist/router/virtual-router/engine-selection/native-chat-process-post-governed-normalization-semantics.d.ts +1 -0
  324. package/dist/router/virtual-router/engine-selection/native-chat-process-post-governed-normalization-semantics.js +49 -0
  325. package/dist/router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.d.ts +30 -0
  326. package/dist/router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js +446 -0
  327. package/dist/router/virtual-router/engine-selection/native-chat-process-web-search-intent-semantics.d.ts +1 -0
  328. package/dist/router/virtual-router/engine-selection/native-chat-process-web-search-intent-semantics.js +49 -0
  329. package/dist/router/virtual-router/engine-selection/native-chat-request-filter-semantics.d.ts +1 -0
  330. package/dist/router/virtual-router/engine-selection/native-chat-request-filter-semantics.js +54 -0
  331. package/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics.d.ts +134 -0
  332. package/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics.js +729 -0
  333. package/dist/router/virtual-router/engine-selection/native-hub-bridge-policy-semantics.d.ts +72 -0
  334. package/dist/router/virtual-router/engine-selection/native-hub-bridge-policy-semantics.js +405 -0
  335. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.d.ts +18 -0
  336. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.js +317 -0
  337. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-governance-semantics.d.ts +22 -0
  338. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-governance-semantics.js +154 -0
  339. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-inbound-outbound-semantics.d.ts +22 -0
  340. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-inbound-outbound-semantics.js +426 -0
  341. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics.d.ts +57 -0
  342. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics.js +705 -0
  343. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.d.ts +46 -0
  344. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.js +503 -0
  345. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics.d.ts +146 -0
  346. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics.js +570 -0
  347. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-process-semantics.d.ts +25 -0
  348. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-process-semantics.js +148 -0
  349. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics.d.ts +25 -0
  350. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics.js +637 -0
  351. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-session-identifiers-semantics.d.ts +11 -0
  352. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-session-identifiers-semantics.js +207 -0
  353. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-target-semantics.d.ts +3 -0
  354. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-target-semantics.js +128 -0
  355. package/dist/router/virtual-router/engine-selection/native-router-hotpath-analysis.d.ts +57 -0
  356. package/dist/router/virtual-router/engine-selection/native-router-hotpath-analysis.js +217 -0
  357. package/dist/router/virtual-router/engine-selection/native-router-hotpath-loader.d.ts +5 -0
  358. package/dist/router/virtual-router/engine-selection/native-router-hotpath-loader.js +320 -0
  359. package/dist/router/virtual-router/engine-selection/native-router-hotpath-policy.d.ts +5 -0
  360. package/dist/router/virtual-router/engine-selection/native-router-hotpath-policy.js +18 -0
  361. package/dist/router/virtual-router/engine-selection/native-router-hotpath-quota-buckets.d.ts +25 -0
  362. package/dist/router/virtual-router/engine-selection/native-router-hotpath-quota-buckets.js +85 -0
  363. package/dist/router/virtual-router/engine-selection/native-router-hotpath.d.ts +59 -0
  364. package/dist/router/virtual-router/engine-selection/native-router-hotpath.js +117 -0
  365. package/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.d.ts +151 -0
  366. package/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.js +1371 -0
  367. package/dist/router/virtual-router/engine-selection/native-snapshot-hooks.d.ts +2 -0
  368. package/dist/router/virtual-router/engine-selection/native-snapshot-hooks.js +69 -0
  369. package/dist/router/virtual-router/engine-selection/native-virtual-router-alias-selection-semantics.d.ts +16 -0
  370. package/dist/router/virtual-router/engine-selection/native-virtual-router-alias-selection-semantics.js +96 -0
  371. package/dist/router/virtual-router/engine-selection/native-virtual-router-engine-proxy.d.ts +16 -0
  372. package/dist/router/virtual-router/engine-selection/native-virtual-router-engine-proxy.js +14 -0
  373. package/dist/router/virtual-router/engine-selection/native-virtual-router-routing-instructions-semantics.d.ts +2 -0
  374. package/dist/router/virtual-router/engine-selection/native-virtual-router-routing-instructions-semantics.js +86 -0
  375. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-actions-semantics.d.ts +6 -0
  376. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-actions-semantics.js +85 -0
  377. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-semantics.d.ts +9 -0
  378. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-semantics.js +70 -0
  379. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-state-semantics.d.ts +2 -0
  380. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-state-semantics.js +76 -0
  381. package/dist/router/virtual-router/engine-selection/route-utils.js +1 -1
  382. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-session-lease.d.ts +10 -0
  383. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-session-lease.js +231 -0
  384. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-target-split.d.ts +4 -0
  385. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-target-split.js +43 -0
  386. package/dist/router/virtual-router/engine-selection/tier-selection-quota-integration.d.ts +27 -0
  387. package/dist/router/virtual-router/engine-selection/tier-selection-quota-integration.js +216 -0
  388. package/dist/router/virtual-router/engine-selection/tier-selection-select.d.ts +1 -1
  389. package/dist/router/virtual-router/engine-selection/tier-selection-select.js +128 -129
  390. package/dist/router/virtual-router/engine-selection/tier-selection.js +2 -265
  391. package/dist/router/virtual-router/engine.d.ts +22 -105
  392. package/dist/router/virtual-router/engine.js +274 -1632
  393. package/dist/router/virtual-router/features.js +2 -2
  394. package/dist/router/virtual-router/load-balancer.d.ts +8 -0
  395. package/dist/router/virtual-router/load-balancer.js +65 -2
  396. package/dist/router/virtual-router/provider-registry.js +2 -0
  397. package/dist/router/virtual-router/routing-instructions/clean.d.ts +3 -0
  398. package/dist/router/virtual-router/routing-instructions/clean.js +34 -0
  399. package/dist/router/virtual-router/routing-instructions/parse.d.ts +18 -0
  400. package/dist/router/virtual-router/routing-instructions/parse.js +377 -0
  401. package/dist/router/virtual-router/routing-instructions/state.d.ts +4 -0
  402. package/dist/router/virtual-router/routing-instructions/state.js +245 -0
  403. package/dist/router/virtual-router/routing-instructions/types.d.ts +70 -0
  404. package/dist/router/virtual-router/routing-instructions/types.js +2 -0
  405. package/dist/router/virtual-router/routing-instructions.d.ts +5 -91
  406. package/dist/router/virtual-router/routing-instructions.js +4 -628
  407. package/dist/router/virtual-router/routing-stop-message-actions.js +91 -112
  408. package/dist/router/virtual-router/routing-stop-message-parser.js +9 -132
  409. package/dist/router/virtual-router/routing-stop-message-state-codec.d.ts +1 -0
  410. package/dist/router/virtual-router/routing-stop-message-state-codec.js +58 -71
  411. package/dist/router/virtual-router/sticky-session-store.d.ts +4 -0
  412. package/dist/router/virtual-router/sticky-session-store.js +23 -83
  413. package/dist/router/virtual-router/stop-message-file-resolver.d.ts +1 -0
  414. package/dist/router/virtual-router/stop-message-file-resolver.js +10 -0
  415. package/dist/router/virtual-router/stop-message-state-sync.d.ts +1 -1
  416. package/dist/router/virtual-router/stop-message-state-sync.js +3 -7
  417. package/dist/router/virtual-router/token-counter.js +0 -9
  418. package/dist/router/virtual-router/tool-signals.js +21 -3
  419. package/dist/router/virtual-router/types.d.ts +13 -7
  420. package/dist/servertool/clock/config.js +23 -51
  421. package/dist/servertool/clock/io.js +1 -0
  422. package/dist/servertool/clock/session-scope.d.ts +2 -2
  423. package/dist/servertool/clock/session-scope.js +29 -40
  424. package/dist/servertool/engine.d.ts +9 -0
  425. package/dist/servertool/engine.js +267 -79
  426. package/dist/servertool/handlers/antigravity-thought-signature-bootstrap.js +3 -3
  427. package/dist/servertool/handlers/clock-auto.js +1 -1
  428. package/dist/servertool/handlers/clock.js +2 -2
  429. package/dist/servertool/handlers/compaction-detect.d.ts +1 -1
  430. package/dist/servertool/handlers/compaction-detect.js +1 -1
  431. package/dist/servertool/handlers/continue-execution.js +8 -4
  432. package/dist/servertool/handlers/followup-request-builder.js +18 -1
  433. package/dist/servertool/handlers/gemini-empty-reply-continue.js +8 -2
  434. package/dist/servertool/handlers/iflow-model-error-retry.js +1 -1
  435. package/dist/servertool/handlers/recursive-detection-guard.js +1 -1
  436. package/dist/servertool/handlers/review.d.ts +1 -0
  437. package/dist/servertool/handlers/review.js +180 -0
  438. package/dist/servertool/handlers/stop-message-auto/blocked-report.js +59 -1
  439. package/dist/servertool/handlers/stop-message-auto/iflow-followup.d.ts +23 -2
  440. package/dist/servertool/handlers/stop-message-auto/iflow-followup.js +398 -90
  441. package/dist/servertool/handlers/stop-message-auto/routing-state.d.ts +5 -15
  442. package/dist/servertool/handlers/stop-message-auto/routing-state.js +29 -55
  443. package/dist/servertool/handlers/stop-message-auto/runtime-utils.d.ts +6 -0
  444. package/dist/servertool/handlers/stop-message-auto/runtime-utils.js +36 -62
  445. package/dist/servertool/handlers/stop-message-auto.js +393 -77
  446. package/dist/servertool/handlers/vision.js +1 -1
  447. package/dist/servertool/handlers/web-search.js +1 -1
  448. package/dist/servertool/reenter-backend.js +1 -1
  449. package/dist/servertool/server-side-tools.d.ts +1 -0
  450. package/dist/servertool/server-side-tools.js +92 -54
  451. package/dist/servertool/stop-gateway-context.js +1 -1
  452. package/dist/servertool/stop-message-compare-context.js +1 -1
  453. package/dist/servertool/types.d.ts +17 -0
  454. package/dist/sse/json-to-sse/event-generators/responses.d.ts +4 -0
  455. package/dist/sse/json-to-sse/event-generators/responses.js +95 -1
  456. package/dist/sse/json-to-sse/sequencers/responses-sequencer.js +6 -4
  457. package/dist/sse/sse-to-json/builders/response-builder.d.ts +8 -0
  458. package/dist/sse/sse-to-json/builders/response-builder.js +162 -4
  459. package/dist/sse/sse-to-json/responses-sse-to-json-converter.js +2 -0
  460. package/dist/sse/types/responses-types.d.ts +6 -2
  461. package/dist/tools/apply-patch/patch-text/normalize.js +11 -0
  462. package/dist/tools/apply-patch/structured/coercion.js +5 -0
  463. package/dist/tools/args-json.js +29 -0
  464. package/dist/tools/exec-command/validator.d.ts +4 -1
  465. package/dist/tools/exec-command/validator.js +87 -3
  466. package/dist/tools/tool-registry.d.ts +7 -1
  467. package/dist/tools/tool-registry.js +3 -2
  468. package/package.json +121 -10
  469. package/dist/conversion/shared/args-mapping.js +0 -221
  470. package/dist/conversion/shared/bridge-actions.js +0 -881
  471. package/dist/conversion/shared/bridge-id-utils.js +0 -79
  472. package/dist/conversion/shared/bridge-metadata.js +0 -1
  473. package/dist/conversion/shared/bridge-policies.js +0 -195
  474. package/dist/conversion/shared/compaction-detect.js +0 -59
  475. package/dist/conversion/shared/errors.js +0 -31
  476. package/dist/conversion/shared/jsonish.js +0 -177
  477. package/dist/conversion/shared/mcp-injection.js +0 -173
  478. package/dist/conversion/shared/media.js +0 -9
  479. package/dist/conversion/shared/metadata-passthrough.js +0 -57
  480. package/dist/conversion/shared/payload-budget.js +0 -248
  481. package/dist/conversion/shared/protocol-field-allowlists.d.ts +0 -7
  482. package/dist/conversion/shared/protocol-field-allowlists.js +0 -149
  483. package/dist/conversion/shared/protocol-state.js +0 -23
  484. package/dist/conversion/shared/runtime-metadata.js +0 -23
  485. package/dist/conversion/shared/snapshot-hooks.d.ts +0 -11
  486. package/dist/conversion/shared/snapshot-hooks.js +0 -503
  487. package/dist/conversion/shared/text-markup-normalizer/extractors-apply-patch.d.ts +0 -2
  488. package/dist/conversion/shared/text-markup-normalizer/extractors-apply-patch.js +0 -129
  489. package/dist/conversion/shared/text-markup-normalizer/extractors-json.d.ts +0 -4
  490. package/dist/conversion/shared/text-markup-normalizer/extractors-json.js +0 -637
  491. package/dist/conversion/shared/text-markup-normalizer/extractors-shared.d.ts +0 -21
  492. package/dist/conversion/shared/text-markup-normalizer/extractors-shared.js +0 -177
  493. package/dist/conversion/shared/text-markup-normalizer/extractors-transcript.d.ts +0 -5
  494. package/dist/conversion/shared/text-markup-normalizer/extractors-transcript.js +0 -385
  495. package/dist/conversion/shared/text-markup-normalizer/extractors-xml.d.ts +0 -10
  496. package/dist/conversion/shared/text-markup-normalizer/extractors-xml.js +0 -602
  497. package/dist/conversion/shared/text-markup-normalizer/extractors.d.ts +0 -5
  498. package/dist/conversion/shared/text-markup-normalizer/extractors.js +0 -4
  499. package/dist/conversion/shared/tool-canonicalizer.d.ts +0 -2
  500. package/dist/conversion/shared/tool-canonicalizer.js +0 -42
  501. package/dist/servertool/handlers/stop-message-stage-policy/bd-runtime.d.ts +0 -18
  502. package/dist/servertool/handlers/stop-message-stage-policy/bd-runtime.js +0 -398
  503. package/dist/servertool/handlers/stop-message-stage-policy/decision.d.ts +0 -9
  504. package/dist/servertool/handlers/stop-message-stage-policy/decision.js +0 -127
  505. package/dist/servertool/handlers/stop-message-stage-policy/observation.d.ts +0 -2
  506. package/dist/servertool/handlers/stop-message-stage-policy/observation.js +0 -179
  507. package/dist/servertool/handlers/stop-message-stage-policy/templates.d.ts +0 -4
  508. package/dist/servertool/handlers/stop-message-stage-policy/templates.js +0 -96
  509. package/dist/servertool/handlers/stop-message-stage-policy/text-utils.d.ts +0 -9
  510. package/dist/servertool/handlers/stop-message-stage-policy/text-utils.js +0 -89
  511. package/dist/servertool/handlers/stop-message-stage-policy/types.d.ts +0 -59
  512. package/dist/servertool/handlers/stop-message-stage-policy.d.ts +0 -3
  513. package/dist/servertool/handlers/stop-message-stage-policy.js +0 -2
  514. /package/dist/conversion/{shared/args-mapping.d.ts → args-mapping.d.ts} +0 -0
  515. /package/dist/conversion/{shared/bridge-actions.d.ts → bridge-actions.d.ts} +0 -0
  516. /package/dist/conversion/{shared/bridge-id-utils.d.ts → bridge-id-utils.d.ts} +0 -0
  517. /package/dist/conversion/{shared/bridge-instructions.d.ts → bridge-instructions.d.ts} +0 -0
  518. /package/dist/conversion/{shared/bridge-policies.d.ts → bridge-policies.d.ts} +0 -0
  519. /package/dist/conversion/{shared/jsonish.d.ts → jsonish.d.ts} +0 -0
  520. /package/dist/conversion/{shared/mcp-injection.d.ts → mcp-injection.d.ts} +0 -0
  521. /package/dist/conversion/{shared/media.d.ts → media.d.ts} +0 -0
  522. /package/dist/conversion/{shared/payload-budget.d.ts → payload-budget.d.ts} +0 -0
  523. /package/dist/conversion/{shared → types}/bridge-message-types.js +0 -0
  524. /package/dist/{servertool/handlers/stop-message-stage-policy/types.js → conversion/types/text-markup-normalizer.js} +0 -0
@@ -1,47 +1,9 @@
1
- import { captureResponsesContext, buildChatRequestFromResponses } from '../../../../../responses/responses-openai-bridge.js';
2
- import { captureResponsesRequestContext } from '../../../../../shared/responses-conversation-store.js';
3
- import { readRuntimeMetadata } from '../../../../../shared/runtime-metadata.js';
4
- import { recordStage } from '../../../stages/utils.js';
1
+ import { buildToolOutputSnapshot } from './tool-output-snapshot.js';
2
+ import { captureResponsesContextSnapshot as captureResponsesContextSnapshotModule } from './responses-context-snapshot.js';
3
+ import { runReqInboundStage3ContextCaptureOrchestration } from './context-capture-orchestration.js';
4
+ import { normalizeProviderProtocolTokenWithNative } from '../../../../../../router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.js';
5
5
  export async function runReqInboundStage3ContextCapture(options) {
6
- // 对由 server-side 工具触发的二跳/内部跳转请求(例如 stopMessage followup),
7
- // 跳过工具输出扫描与 apply_patch 诊断日志,避免在内部流中重复放大客户端已收到的
8
- // 工具错误信息。此类请求的工具治理在 chat-process 阶段完成,这里仅保留最小快照。
9
- try {
10
- const ctx = options.adapterContext;
11
- const rt = readRuntimeMetadata(ctx);
12
- const followupFlag = rt?.serverToolFollowup;
13
- const isFollowup = followupFlag === true ||
14
- (typeof followupFlag === 'string' && followupFlag.trim().toLowerCase() === 'true');
15
- if (isFollowup) {
16
- const snapshot = {
17
- providerProtocol: options.adapterContext.providerProtocol ?? 'unknown',
18
- tool_outputs: []
19
- };
20
- recordStage(options.stageRecorder, 'chat_process.req.stage3.context_capture', snapshot);
21
- return snapshot;
22
- }
23
- }
24
- catch {
25
- // best-effort: 若检测 serverToolFollowup 失败,则继续走通用路径
26
- }
27
- let context;
28
- if (options.captureContext) {
29
- try {
30
- context = await options.captureContext({
31
- rawRequest: options.rawRequest,
32
- adapterContext: options.adapterContext
33
- });
34
- }
35
- catch {
36
- context = undefined;
37
- }
38
- }
39
- const fallbackSnapshot = buildToolOutputSnapshot(options.rawRequest, options.adapterContext.providerProtocol);
40
- const snapshot = context
41
- ? augmentContextSnapshot(context, fallbackSnapshot)
42
- : fallbackSnapshot;
43
- recordStage(options.stageRecorder, 'chat_process.req.stage3.context_capture', snapshot);
44
- return context ?? snapshot;
6
+ return runReqInboundStage3ContextCaptureOrchestration(options);
45
7
  }
46
8
  export function runChatContextCapture(options) {
47
9
  return runReqInboundStage3ContextCapture({
@@ -52,558 +14,9 @@ export function runChatContextCapture(options) {
52
14
  });
53
15
  }
54
16
  export function captureResponsesContextSnapshot(options) {
55
- const context = captureResponsesContext(options.rawRequest, {
56
- route: { requestId: options.adapterContext.requestId }
57
- });
58
- const style = normalizeToolCallIdStyleCandidate(options.adapterContext.toolCallIdStyle);
59
- if (style) {
60
- context.toolCallIdStyle = style;
61
- if (!context.metadata || typeof context.metadata !== 'object') {
62
- context.metadata = {};
63
- }
64
- context.metadata.toolCallIdStyle = style;
65
- }
66
- try {
67
- const built = buildChatRequestFromResponses(options.rawRequest, context);
68
- if (built.toolsNormalized) {
69
- context.toolsNormalized = built.toolsNormalized;
70
- }
71
- const captured = collectToolOutputs(options.rawRequest);
72
- if (captured.length) {
73
- context.__captured_tool_results = captured;
74
- }
75
- }
76
- catch {
77
- // best-effort context capture
78
- }
79
- // OpenAI Responses tool loop: store the request context keyed by requestId so that
80
- // `/v1/responses/:id/submit_tool_outputs` can resume the conversation later.
81
- //
82
- // This must be done on the hub pipeline inbound path (not in host/provider), because:
83
- // - the tool loop is a client-protocol behavior (/v1/responses), independent of providerProtocol;
84
- // - providers must remain transport-only;
85
- // - the host may later enhance requestId with providerKey/model for logging, which is handled via rebind.
86
- try {
87
- const requestId = typeof options.adapterContext.requestId === 'string' && options.adapterContext.requestId.trim().length
88
- ? options.adapterContext.requestId
89
- : undefined;
90
- if (requestId) {
91
- captureResponsesRequestContext({
92
- requestId,
93
- payload: options.rawRequest,
94
- context: context
95
- });
96
- }
97
- }
98
- catch {
99
- // best-effort: capture failures must not block the request path
100
- }
101
- return context;
17
+ return captureResponsesContextSnapshotModule(options);
102
18
  }
103
19
  function captureChatContextSnapshot(options) {
104
- return buildToolOutputSnapshot(options.rawRequest, options.adapterContext.providerProtocol);
105
- }
106
- function normalizeToolCallIdStyleCandidate(value) {
107
- if (typeof value !== 'string') {
108
- return undefined;
109
- }
110
- const normalized = value.trim().toLowerCase();
111
- if (normalized === 'fc') {
112
- return 'fc';
113
- }
114
- if (normalized === 'preserve') {
115
- return 'preserve';
116
- }
117
- return undefined;
118
- }
119
- function augmentContextSnapshot(context, fallback) {
120
- if (!fallback.tool_outputs || Array.isArray(context.tool_outputs)) {
121
- return context;
122
- }
123
- if (!Array.isArray(context.tool_outputs) && Array.isArray(fallback.tool_outputs)) {
124
- context.tool_outputs = fallback.tool_outputs;
125
- }
126
- return context;
127
- }
128
- function buildToolOutputSnapshot(payload, providerProtocol) {
129
- const snapshot = {
130
- providerProtocol: providerProtocol ?? 'unknown'
131
- };
132
- try {
133
- normalizeShellLikeToolCallsBeforeGovernance(payload);
134
- }
135
- catch {
136
- // shape repair is best-effort; never block main flow
137
- }
138
- try {
139
- injectApplyPatchDiagnostics(payload);
140
- }
141
- catch {
142
- // diagnostics are best-effort; never block main flow
143
- }
144
- const toolOutputs = collectToolOutputs(payload);
145
- if (toolOutputs.length) {
146
- snapshot.tool_outputs = toolOutputs;
147
- }
148
- return snapshot;
149
- }
150
- const SHELL_LIKE_TOOL_NAMES = new Set(['exec_command', 'shell_command', 'shell', 'bash', 'terminal']);
151
- function readTrimmedString(value) {
152
- if (typeof value !== 'string') {
153
- return undefined;
154
- }
155
- const trimmed = value.trim();
156
- return trimmed.length ? trimmed : undefined;
157
- }
158
- function isRecord(value) {
159
- return !!value && typeof value === 'object' && !Array.isArray(value);
160
- }
161
- function readStringArrayCommand(value) {
162
- if (!Array.isArray(value)) {
163
- return undefined;
164
- }
165
- const tokens = value
166
- .map((item) => (item == null ? '' : String(item).trim()))
167
- .filter((item) => item.length > 0);
168
- return tokens.length ? tokens.join(' ') : undefined;
169
- }
170
- function parseJsonRecord(value) {
171
- if (isRecord(value)) {
172
- return value;
173
- }
174
- if (typeof value !== 'string') {
175
- return undefined;
176
- }
177
- const trimmed = value.trim();
178
- if (!trimmed) {
179
- return {};
180
- }
181
- try {
182
- const parsed = JSON.parse(trimmed);
183
- return isRecord(parsed) ? parsed : undefined;
184
- }
185
- catch {
186
- return undefined;
187
- }
188
- }
189
- function readCommandFromArgs(args) {
190
- const input = isRecord(args.input) ? args.input : undefined;
191
- const direct = readTrimmedString(args.cmd) ??
192
- readTrimmedString(args.command) ??
193
- readTrimmedString(args.script) ??
194
- readTrimmedString(args.toon) ??
195
- readStringArrayCommand(args.cmd) ??
196
- readStringArrayCommand(args.command);
197
- if (direct) {
198
- return direct;
199
- }
200
- if (!input) {
201
- return undefined;
202
- }
203
- return (readTrimmedString(input.cmd) ??
204
- readTrimmedString(input.command) ??
205
- readTrimmedString(input.script) ??
206
- readStringArrayCommand(input.cmd) ??
207
- readStringArrayCommand(input.command));
208
- }
209
- function readWorkdirFromArgs(args) {
210
- const input = isRecord(args.input) ? args.input : undefined;
211
- return (readTrimmedString(args.workdir) ??
212
- readTrimmedString(args.cwd) ??
213
- readTrimmedString(args.workDir) ??
214
- readTrimmedString(input?.workdir) ??
215
- readTrimmedString(input?.cwd));
216
- }
217
- function collectRequestedToolNames(payload) {
218
- const names = new Set();
219
- const root = payload;
220
- const tools = Array.isArray(root.tools) ? root.tools : [];
221
- for (const tool of tools) {
222
- if (!isRecord(tool))
223
- continue;
224
- const fn = isRecord(tool.function) ? tool.function : undefined;
225
- const name = readTrimmedString(fn?.name) ?? readTrimmedString(tool.name);
226
- if (name) {
227
- names.add(name);
228
- }
229
- }
230
- return names;
231
- }
232
- function resolveShellLikeToolName(rawName, requestedToolNames) {
233
- if (requestedToolNames.size === 0) {
234
- return rawName;
235
- }
236
- if (requestedToolNames.has(rawName)) {
237
- return rawName;
238
- }
239
- if (requestedToolNames.has('exec_command')) {
240
- return 'exec_command';
241
- }
242
- if (requestedToolNames.has('shell_command')) {
243
- return 'shell_command';
244
- }
245
- return rawName;
246
- }
247
- function normalizeShellLikeToolCallsBeforeGovernance(payload) {
248
- const root = payload;
249
- const messages = Array.isArray(root.messages) ? root.messages : [];
250
- if (!messages.length) {
251
- return;
252
- }
253
- const requestedToolNames = collectRequestedToolNames(payload);
254
- for (const message of messages) {
255
- if (!isRecord(message))
256
- continue;
257
- const role = readTrimmedString(message.role)?.toLowerCase();
258
- if (role !== 'assistant')
259
- continue;
260
- const toolCalls = Array.isArray(message.tool_calls) ? message.tool_calls : [];
261
- if (!toolCalls.length)
262
- continue;
263
- for (const call of toolCalls) {
264
- if (!isRecord(call))
265
- continue;
266
- const fn = isRecord(call.function) ? call.function : undefined;
267
- if (!fn)
268
- continue;
269
- const rawName = readTrimmedString(fn.name);
270
- if (!rawName)
271
- continue;
272
- if (!SHELL_LIKE_TOOL_NAMES.has(rawName.toLowerCase()))
273
- continue;
274
- const resolvedName = resolveShellLikeToolName(rawName, requestedToolNames);
275
- if (resolvedName !== rawName) {
276
- fn.name = resolvedName;
277
- }
278
- const parsedArgs = parseJsonRecord(fn.arguments);
279
- const args = parsedArgs ?? {};
280
- const cmd = readCommandFromArgs(args);
281
- if (!cmd) {
282
- continue;
283
- }
284
- const nextArgs = {
285
- ...args,
286
- cmd,
287
- command: cmd
288
- };
289
- const workdir = readWorkdirFromArgs(args);
290
- if (workdir) {
291
- nextArgs.workdir = workdir;
292
- }
293
- if (Object.prototype.hasOwnProperty.call(nextArgs, 'toon')) {
294
- delete nextArgs.toon;
295
- }
296
- try {
297
- fn.arguments = JSON.stringify(nextArgs);
298
- }
299
- catch {
300
- fn.arguments = JSON.stringify({ cmd, command: cmd, ...(workdir ? { workdir } : {}) });
301
- }
302
- }
303
- }
304
- }
305
- function collectToolOutputs(payload) {
306
- const aggregated = [];
307
- const seen = new Set();
308
- const append = (entry) => {
309
- const id = (entry.tool_call_id || entry.call_id || '').trim();
310
- if (!id) {
311
- return;
312
- }
313
- if (seen.has(id)) {
314
- return;
315
- }
316
- seen.add(id);
317
- aggregated.push({
318
- tool_call_id: entry.tool_call_id ?? entry.call_id,
319
- call_id: entry.call_id ?? entry.tool_call_id,
320
- output: entry.output,
321
- name: entry.name
322
- });
323
- };
324
- for (const record of readArray(payload, 'tool_outputs')) {
325
- append(record);
326
- }
327
- for (const record of readRequiredActionOutputs(payload)) {
328
- append(record);
329
- }
330
- for (const record of readMessageToolOutputs(payload)) {
331
- append(record);
332
- }
333
- for (const record of readMessageContentToolOutputs(payload)) {
334
- append(record);
335
- }
336
- for (const record of readResponsesInputToolOutputs(payload)) {
337
- append(record);
338
- }
339
- return aggregated;
340
- }
341
- function readArray(payload, field) {
342
- const raw = payload[field];
343
- if (!Array.isArray(raw)) {
344
- return [];
345
- }
346
- return raw
347
- .map((entry) => normalizeToolOutputEntry(entry))
348
- .filter((entry) => Boolean(entry));
349
- }
350
- function readRequiredActionOutputs(payload) {
351
- const required = payload.required_action;
352
- if (!required || typeof required !== 'object') {
353
- return [];
354
- }
355
- const submit = required.submit_tool_outputs;
356
- if (!submit || typeof submit !== 'object') {
357
- return [];
358
- }
359
- return readArray(submit, 'tool_outputs');
360
- }
361
- function readMessageToolOutputs(payload) {
362
- const messages = payload.messages;
363
- if (!Array.isArray(messages)) {
364
- return [];
365
- }
366
- return messages
367
- .map((entry) => {
368
- if (!entry || typeof entry !== 'object') {
369
- return undefined;
370
- }
371
- const record = entry;
372
- const role = String(record.role || '').toLowerCase();
373
- if (role !== 'tool') {
374
- return undefined;
375
- }
376
- return normalizeToolOutputEntry({
377
- tool_call_id: record.tool_call_id ?? record.call_id ?? record.id,
378
- call_id: record.call_id ?? record.tool_call_id ?? record.id,
379
- name: typeof record.name === 'string' ? record.name : undefined,
380
- output: record.content ?? record.output
381
- });
382
- })
383
- .filter((entry) => Boolean(entry));
384
- }
385
- function readMessageContentToolOutputs(payload) {
386
- const messages = payload.messages;
387
- if (!Array.isArray(messages)) {
388
- return [];
389
- }
390
- const outputs = [];
391
- for (const entry of messages) {
392
- if (!entry || typeof entry !== 'object') {
393
- continue;
394
- }
395
- const record = entry;
396
- const contentList = record.content;
397
- if (!Array.isArray(contentList)) {
398
- continue;
399
- }
400
- for (const block of contentList) {
401
- if (!block || typeof block !== 'object') {
402
- continue;
403
- }
404
- const blockRecord = block;
405
- const type = typeof blockRecord.type === 'string' ? blockRecord.type.toLowerCase() : '';
406
- if (type !== 'tool_result' && type !== 'function_call_output' && type !== 'tool_message') {
407
- continue;
408
- }
409
- const normalized = normalizeToolOutputEntry({
410
- tool_call_id: blockRecord.tool_use_id ?? blockRecord.tool_call_id ?? blockRecord.call_id ?? blockRecord.id,
411
- call_id: blockRecord.tool_use_id ?? blockRecord.tool_call_id ?? blockRecord.call_id ?? blockRecord.id,
412
- name: typeof blockRecord.name === 'string' ? blockRecord.name : undefined,
413
- output: blockRecord.content ?? blockRecord.output
414
- });
415
- if (normalized) {
416
- outputs.push(normalized);
417
- }
418
- }
419
- }
420
- return outputs;
421
- }
422
- function readResponsesInputToolOutputs(payload) {
423
- const input = payload.input;
424
- if (!Array.isArray(input)) {
425
- return [];
426
- }
427
- return input
428
- .map((entry) => {
429
- if (!entry || typeof entry !== 'object') {
430
- return undefined;
431
- }
432
- const record = entry;
433
- const type = String(record.type || '').toLowerCase();
434
- if (type !== 'tool_result' && type !== 'tool_message' && type !== 'function_call_output') {
435
- return undefined;
436
- }
437
- return normalizeToolOutputEntry({
438
- tool_call_id: record.tool_call_id ?? record.call_id ?? record.tool_use_id,
439
- call_id: record.call_id ?? record.tool_call_id ?? record.tool_use_id,
440
- name: typeof record.name === 'string' ? record.name : undefined,
441
- output: record.output
442
- });
443
- })
444
- .filter((entry) => Boolean(entry));
445
- }
446
- const loggedApplyPatchErrorIds = new Set();
447
- function normalizeToolOutputEntry(entry) {
448
- if (!entry || typeof entry !== 'object') {
449
- return undefined;
450
- }
451
- const record = entry;
452
- const tool_call_id = typeof record.tool_call_id === 'string' && record.tool_call_id.trim().length
453
- ? record.tool_call_id.trim()
454
- : undefined;
455
- const call_id = typeof record.call_id === 'string' && record.call_id.trim().length
456
- ? record.call_id.trim()
457
- : undefined;
458
- const id = tool_call_id ?? call_id;
459
- if (!id) {
460
- return undefined;
461
- }
462
- let output;
463
- const rawOutput = 'output' in record ? record.output : record.content;
464
- if (typeof rawOutput === 'string') {
465
- output = rawOutput;
466
- }
467
- else if (rawOutput !== undefined) {
468
- try {
469
- output = JSON.stringify(rawOutput);
470
- }
471
- catch {
472
- output = String(rawOutput);
473
- }
474
- }
475
- const name = typeof record.name === 'string' && record.name.trim().length ? record.name.trim() : undefined;
476
- return {
477
- tool_call_id,
478
- call_id,
479
- output,
480
- name
481
- };
482
- }
483
- function buildToolParseDiagnostics(output) {
484
- if (!output || typeof output !== 'string') {
485
- return undefined;
486
- }
487
- const lower = output.toLowerCase();
488
- if (!lower.includes('failed to parse function arguments')) {
489
- return undefined;
490
- }
491
- if (output.includes('missing field `input`')) {
492
- return {
493
- kind: 'apply_patch',
494
- text: '\n\n[RouteCodex precheck] apply_patch 参数解析失败:缺少字段 "input"。当前 RouteCodex 期望 { input, patch } 形态,并且两个字段都应包含完整统一 diff 文本。'
495
- };
496
- }
497
- if (output.includes('invalid type: map, expected a string')) {
498
- return {
499
- kind: 'apply_patch',
500
- text: '\n\n[RouteCodex precheck] apply_patch 参数类型错误:检测到 JSON 对象(map),但客户端期望字符串。请先对参数做 JSON.stringify 再写入 arguments,或直接提供 { patch: "<统一 diff>" } 形式。'
501
- };
502
- }
503
- if (output.includes('missing field `command`')) {
504
- return {
505
- kind: 'shell_like',
506
- text: '\n\n[RouteCodex precheck] shell/exec 参数解析失败:缺少字段 "command"。请改为 {"tool_calls":[{"name":"shell_command","input":{"command":"<cmd>"}}]};若调用 exec_command,建议同时提供 {"cmd":"<cmd>","command":"<cmd>"}。'
507
- };
508
- }
509
- if (output.includes('missing field `cmd`')) {
510
- return {
511
- kind: 'shell_like',
512
- text: '\n\n[RouteCodex precheck] shell/exec 参数解析失败:缺少字段 "cmd"。exec_command 推荐形状为 {"cmd":"<cmd>","command":"<cmd>","workdir":"<path>"}。'
513
- };
514
- }
515
- return undefined;
516
- }
517
- function appendDiagnosticsToRecord(record) {
518
- const name = typeof record.name === 'string' ? record.name.trim() : undefined;
519
- let text;
520
- if (typeof record.output === 'string') {
521
- text = record.output;
522
- }
523
- else if (typeof record.content === 'string') {
524
- text = record.content;
525
- }
526
- if (!text || text.includes('[RouteCodex precheck]')) {
527
- return;
528
- }
529
- const diag = buildToolParseDiagnostics(text);
530
- if (!diag) {
531
- return;
532
- }
533
- const normalizedName = name?.toLowerCase();
534
- if (diag.kind === 'apply_patch' && normalizedName && normalizedName !== 'apply_patch') {
535
- return;
536
- }
537
- if (diag.kind === 'shell_like' &&
538
- normalizedName &&
539
- !SHELL_LIKE_TOOL_NAMES.has(normalizedName)) {
540
- return;
541
- }
542
- const merged = `${text}${diag.text}`;
543
- if (typeof record.output === 'string') {
544
- record.output = merged;
545
- }
546
- else if (typeof record.content === 'string') {
547
- record.content = merged;
548
- }
549
- else {
550
- record.output = merged;
551
- }
552
- }
553
- function injectApplyPatchDiagnostics(payload) {
554
- const root = payload;
555
- const topOutputs = root.tool_outputs;
556
- if (Array.isArray(topOutputs)) {
557
- for (const entry of topOutputs) {
558
- if (entry && typeof entry === 'object') {
559
- appendDiagnosticsToRecord(entry);
560
- }
561
- }
562
- }
563
- const required = root.required_action;
564
- if (required && typeof required === 'object') {
565
- const submit = required.submit_tool_outputs;
566
- if (submit && typeof submit === 'object') {
567
- const submitOutputs = submit.tool_outputs;
568
- if (Array.isArray(submitOutputs)) {
569
- for (const entry of submitOutputs) {
570
- if (entry && typeof entry === 'object') {
571
- appendDiagnosticsToRecord(entry);
572
- }
573
- }
574
- }
575
- }
576
- }
577
- const messages = root.messages;
578
- if (Array.isArray(messages)) {
579
- for (const entry of messages) {
580
- if (!entry || typeof entry !== 'object')
581
- continue;
582
- const record = entry;
583
- const role = typeof record.role === 'string' ? record.role.toLowerCase() : '';
584
- if (role === 'tool') {
585
- appendDiagnosticsToRecord(record);
586
- }
587
- const content = record.content;
588
- if (Array.isArray(content)) {
589
- for (const block of content) {
590
- if (!block || typeof block !== 'object')
591
- continue;
592
- appendDiagnosticsToRecord(block);
593
- }
594
- }
595
- }
596
- }
597
- const responsesInput = root.input;
598
- if (Array.isArray(responsesInput)) {
599
- for (const entry of responsesInput) {
600
- if (!entry || typeof entry !== 'object')
601
- continue;
602
- const record = entry;
603
- const type = typeof record.type === 'string' ? record.type.toLowerCase() : '';
604
- if (type === 'tool_result' || type === 'tool_message' || type === 'function_call_output') {
605
- appendDiagnosticsToRecord(record);
606
- }
607
- }
608
- }
20
+ const protocol = normalizeProviderProtocolTokenWithNative(options.adapterContext.providerProtocol);
21
+ return buildToolOutputSnapshot(options.rawRequest, protocol);
609
22
  }
@@ -0,0 +1,8 @@
1
+ import type { AdapterContext } from '../../../../types/chat-envelope.js';
2
+ import type { JsonObject } from '../../../../types/json.js';
3
+ import type { ResponsesRequestContext } from '../../../../../responses/responses-openai-bridge.js';
4
+ export interface ResponsesContextCaptureOptions {
5
+ rawRequest: JsonObject;
6
+ adapterContext: AdapterContext;
7
+ }
8
+ export declare function captureResponsesContextSnapshot(options: ResponsesContextCaptureOptions): ResponsesRequestContext;
@@ -0,0 +1,28 @@
1
+ import { captureResponsesRequestContext } from '../../../../../shared/responses-conversation-store.js';
2
+ import { captureReqInboundResponsesContextSnapshotWithNative } from '../../../../../../router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.js';
3
+ export function captureResponsesContextSnapshot(options) {
4
+ const context = captureReqInboundResponsesContextSnapshotWithNative({
5
+ rawRequest: options.rawRequest,
6
+ requestId: options.adapterContext.requestId,
7
+ toolCallIdStyle: options.adapterContext.toolCallIdStyle
8
+ });
9
+ // OpenAI Responses tool loop: store the request context keyed by requestId so that
10
+ // `/v1/responses/:id/submit_tool_outputs` can resume the conversation later.
11
+ //
12
+ // This must be done on the hub pipeline inbound path (not in host/provider), because:
13
+ // - the tool loop is a client-protocol behavior (/v1/responses), independent of providerProtocol;
14
+ // - providers must remain transport-only;
15
+ // - the host may later enhance requestId with providerKey/model for logging, which is handled via rebind.
16
+ const requestId = typeof options.adapterContext.requestId === 'string' && options.adapterContext.requestId.trim().length
17
+ ? options.adapterContext.requestId
18
+ : undefined;
19
+ if (requestId) {
20
+ // captureResponsesRequestContext already best-effort wraps store failures.
21
+ captureResponsesRequestContext({
22
+ requestId,
23
+ payload: options.rawRequest,
24
+ context: context
25
+ });
26
+ }
27
+ return context;
28
+ }
@@ -0,0 +1,2 @@
1
+ import type { JsonObject } from '../../../../types/json.js';
2
+ export declare function injectApplyPatchDiagnostics(payload: JsonObject): void;
@@ -0,0 +1,4 @@
1
+ import { injectReqInboundToolParseDiagnosticsWithNative } from '../../../../../../router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.js';
2
+ export function injectApplyPatchDiagnostics(payload) {
3
+ injectReqInboundToolParseDiagnosticsWithNative(payload);
4
+ }
@@ -0,0 +1,10 @@
1
+ import type { JsonObject } from '../../../../types/json.js';
2
+ type ToolOutputItem = {
3
+ tool_call_id: string;
4
+ call_id: string;
5
+ output?: string;
6
+ name?: string;
7
+ };
8
+ export declare function buildToolOutputSnapshot(payload: JsonObject, providerProtocol?: string): Record<string, unknown>;
9
+ export declare function collectToolOutputs(payload: JsonObject): ToolOutputItem[];
10
+ export {};
@@ -0,0 +1,12 @@
1
+ import { buildReqInboundToolOutputSnapshotWithNative, collectReqInboundToolOutputsWithNative } from '../../../../../../router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.js';
2
+ export function buildToolOutputSnapshot(payload, providerProtocol) {
3
+ return buildReqInboundToolOutputSnapshotWithNative(payload, providerProtocol);
4
+ }
5
+ export function collectToolOutputs(payload) {
6
+ return collectReqInboundToolOutputsWithNative(payload).map((entry) => ({
7
+ tool_call_id: entry.tool_call_id,
8
+ call_id: entry.call_id,
9
+ ...(typeof entry.output === 'string' ? { output: entry.output } : {}),
10
+ ...(typeof entry.name === 'string' ? { name: entry.name } : {})
11
+ }));
12
+ }
@@ -0,0 +1,3 @@
1
+ import type { AdapterContext, ChatEnvelope } from '../../../../types/chat-envelope.js';
2
+ export declare function applyToolCallIdStyleMetadata(chatEnvelope: ChatEnvelope, adapterContext: AdapterContext, snapshot?: Record<string, unknown>): void;
3
+ export declare function applyContextSnapshotToChatEnvelope(chatEnvelope: ChatEnvelope, snapshot: Record<string, unknown>): void;