@jsonstudio/llms 0.6.2172 → 0.6.2979

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 (362) hide show
  1. package/README.md +2 -0
  2. package/dist/conversion/compat/antigravity-session-signature.js +35 -1
  3. package/dist/conversion/compat/profiles/chat-gemini-cli.json +0 -7
  4. package/dist/conversion/compat/profiles/chat-gemini.json +0 -6
  5. package/dist/conversion/hub/core/detour-registry.d.ts +2 -0
  6. package/dist/conversion/hub/core/hub-context.d.ts +3 -1
  7. package/dist/conversion/hub/core/index.d.ts +1 -0
  8. package/dist/conversion/hub/core/stage-driver.js +2 -0
  9. package/dist/conversion/hub/format-adapters/anthropic-format-adapter.js +15 -4
  10. package/dist/conversion/hub/format-adapters/chat-format-adapter.js +15 -4
  11. package/dist/conversion/hub/format-adapters/gemini-format-adapter.js +15 -4
  12. package/dist/conversion/hub/format-adapters/responses-format-adapter.js +15 -4
  13. package/dist/conversion/hub/hub-feature.js +3 -2
  14. package/dist/conversion/hub/node-support.js +9 -4
  15. package/dist/conversion/hub/operation-table/operation-table-runner.js +10 -6
  16. package/dist/conversion/hub/operation-table/semantic-mappers/anthropic-mapper.js +2 -2
  17. package/dist/conversion/hub/operation-table/semantic-mappers/chat-mapper.js +10 -10
  18. package/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapper.js +4 -8
  19. package/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper.js +19 -65
  20. package/dist/conversion/hub/ops/operations.js +2 -121
  21. package/dist/conversion/hub/pipeline/compat/compat-engine.js +6 -0
  22. package/dist/conversion/hub/pipeline/compat/compat-pipeline-executor.d.ts +1 -1
  23. package/dist/conversion/hub/pipeline/compat/compat-pipeline-executor.js +33 -1042
  24. package/dist/conversion/hub/pipeline/compat/compat-profile-resolver.js +2 -0
  25. package/dist/conversion/hub/pipeline/compat/compat-profile-store.js +2 -0
  26. package/dist/conversion/hub/pipeline/compat/compat-types.d.ts +14 -17
  27. package/dist/conversion/hub/pipeline/compat/native-adapter-context.d.ts +3 -0
  28. package/dist/conversion/hub/pipeline/compat/native-adapter-context.js +39 -0
  29. package/dist/conversion/hub/pipeline/hub-pipeline.js +115 -262
  30. package/dist/conversion/hub/pipeline/session-identifiers.js +6 -196
  31. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage1_format_parse/index.d.ts +1 -2
  32. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage1_format_parse/index.js +37 -1
  33. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/index.js +12 -86
  34. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/semantic-lift.d.ts +14 -0
  35. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/semantic-lift.js +24 -0
  36. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/archive/shell-like-tool-call-normalization-fallback.d.ts +2 -0
  37. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/archive/shell-like-tool-call-normalization-fallback.js +157 -0
  38. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-capture-orchestration.d.ts +16 -0
  39. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-capture-orchestration.js +29 -0
  40. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-factories.js +3 -1
  41. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/index.d.ts +2 -15
  42. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/index.js +8 -595
  43. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.d.ts +8 -0
  44. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.js +28 -0
  45. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-diagnostics.d.ts +2 -0
  46. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-diagnostics.js +4 -0
  47. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-snapshot.d.ts +10 -0
  48. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-snapshot.js +12 -0
  49. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/context-merge.d.ts +3 -0
  50. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/context-merge.js +30 -0
  51. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/index.js +9 -129
  52. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage2_format_build/index.d.ts +1 -4
  53. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage2_format_build/index.js +9 -26
  54. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage3_compat/index.js +32 -14
  55. package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage1_tool_governance/index.d.ts +2 -2
  56. package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage1_tool_governance/index.js +48 -8
  57. package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage2_route_select/index.js +18 -3
  58. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/index.js +10 -198
  59. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/stream-json-sniffer.d.ts +3 -0
  60. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/stream-json-sniffer.js +81 -0
  61. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage2_format_parse/index.d.ts +1 -2
  62. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage2_format_parse/index.js +36 -1
  63. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage3_semantic_map/index.js +3 -1
  64. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/chat-process-semantics-bridge.d.ts +6 -0
  65. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/chat-process-semantics-bridge.js +17 -0
  66. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.d.ts +9 -0
  67. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.js +28 -0
  68. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.d.ts +1 -2
  69. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.js +14 -102
  70. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage2_sse_stream/index.js +3 -1
  71. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage1_tool_governance/index.js +12 -10
  72. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage2_finalize/index.js +6 -5
  73. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.d.ts +11 -1
  74. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.js +10 -32
  75. package/dist/conversion/hub/pipeline/stages/utils.js +17 -1
  76. package/dist/conversion/hub/pipeline/target-utils.js +14 -91
  77. package/dist/conversion/hub/pipelines/inbound.js +3 -1
  78. package/dist/conversion/hub/pipelines/outbound.js +2 -0
  79. package/dist/conversion/hub/policy/policy-engine.js +9 -3
  80. package/dist/conversion/hub/policy/protocol-spec.js +20 -148
  81. package/dist/conversion/hub/process/chat-process-anthropic-alias.d.ts +2 -0
  82. package/dist/conversion/hub/process/chat-process-anthropic-alias.js +36 -0
  83. package/dist/conversion/hub/process/chat-process-clock-directive-parser.d.ts +5 -0
  84. package/dist/conversion/hub/process/chat-process-clock-directive-parser.js +48 -0
  85. package/dist/conversion/hub/process/chat-process-clock-directives.d.ts +24 -0
  86. package/dist/conversion/hub/process/chat-process-clock-directives.js +98 -0
  87. package/dist/conversion/hub/process/chat-process-clock-reminder-directives.d.ts +8 -0
  88. package/dist/conversion/hub/process/chat-process-clock-reminder-directives.js +42 -0
  89. package/dist/conversion/hub/process/chat-process-clock-reminder-finalize.d.ts +14 -0
  90. package/dist/conversion/hub/process/chat-process-clock-reminder-finalize.js +10 -0
  91. package/dist/conversion/hub/process/chat-process-clock-reminder-messages.d.ts +5 -0
  92. package/dist/conversion/hub/process/chat-process-clock-reminder-messages.js +10 -0
  93. package/dist/conversion/hub/process/chat-process-clock-reminder-orchestration.d.ts +30 -0
  94. package/dist/conversion/hub/process/chat-process-clock-reminder-orchestration.js +68 -0
  95. package/dist/conversion/hub/process/chat-process-clock-reminder-time-tag.d.ts +9 -0
  96. package/dist/conversion/hub/process/chat-process-clock-reminder-time-tag.js +18 -0
  97. package/dist/conversion/hub/process/chat-process-clock-reminders.d.ts +2 -0
  98. package/dist/conversion/hub/process/chat-process-clock-reminders.js +104 -0
  99. package/dist/conversion/hub/process/chat-process-clock-tool-schemas.d.ts +3 -0
  100. package/dist/conversion/hub/process/chat-process-clock-tool-schemas.js +233 -0
  101. package/dist/conversion/hub/process/chat-process-clock-tools.d.ts +6 -0
  102. package/dist/conversion/hub/process/chat-process-clock-tools.js +41 -0
  103. package/dist/conversion/hub/process/chat-process-continue-execution.d.ts +11 -0
  104. package/dist/conversion/hub/process/chat-process-continue-execution.js +82 -0
  105. package/dist/conversion/hub/process/chat-process-governance-context.d.ts +15 -0
  106. package/dist/conversion/hub/process/chat-process-governance-context.js +7 -0
  107. package/dist/conversion/hub/process/chat-process-governance-finalize.d.ts +16 -0
  108. package/dist/conversion/hub/process/chat-process-governance-finalize.js +11 -0
  109. package/dist/conversion/hub/process/chat-process-governance-orchestration.d.ts +9 -0
  110. package/dist/conversion/hub/process/chat-process-governance-orchestration.js +47 -0
  111. package/dist/conversion/hub/process/chat-process-governed-control-ops.d.ts +8 -0
  112. package/dist/conversion/hub/process/chat-process-governed-control-ops.js +5 -0
  113. package/dist/conversion/hub/process/chat-process-governed-filter-call.d.ts +12 -0
  114. package/dist/conversion/hub/process/chat-process-governed-filter-call.js +18 -0
  115. package/dist/conversion/hub/process/chat-process-governed-merge.d.ts +8 -0
  116. package/dist/conversion/hub/process/chat-process-governed-merge.js +11 -0
  117. package/dist/conversion/hub/process/chat-process-media.d.ts +3 -0
  118. package/dist/conversion/hub/process/chat-process-media.js +18 -0
  119. package/dist/conversion/hub/process/chat-process-node-result.d.ts +23 -0
  120. package/dist/conversion/hub/process/chat-process-node-result.js +24 -0
  121. package/dist/conversion/hub/process/chat-process-pending-tool-sync.d.ts +14 -0
  122. package/dist/conversion/hub/process/chat-process-pending-tool-sync.js +52 -0
  123. package/dist/conversion/hub/process/chat-process-post-governed-normalization.d.ts +8 -0
  124. package/dist/conversion/hub/process/chat-process-post-governed-normalization.js +16 -0
  125. package/dist/conversion/hub/process/chat-process-review.d.ts +2 -0
  126. package/dist/conversion/hub/process/chat-process-review.js +8 -0
  127. package/dist/conversion/hub/process/chat-process-servertool-orchestration.d.ts +8 -0
  128. package/dist/conversion/hub/process/chat-process-servertool-orchestration.js +22 -0
  129. package/dist/conversion/hub/process/chat-process-tool-normalization.d.ts +2 -0
  130. package/dist/conversion/hub/process/chat-process-tool-normalization.js +4 -0
  131. package/dist/conversion/hub/process/chat-process-web-search-intent.d.ts +12 -0
  132. package/dist/conversion/hub/process/chat-process-web-search-intent.js +13 -0
  133. package/dist/conversion/hub/process/chat-process-web-search-tool-schema.d.ts +3 -0
  134. package/dist/conversion/hub/process/chat-process-web-search-tool-schema.js +4 -0
  135. package/dist/conversion/hub/process/chat-process-web-search.d.ts +8 -0
  136. package/dist/conversion/hub/process/chat-process-web-search.js +26 -0
  137. package/dist/conversion/hub/process/chat-process.d.ts +2 -19
  138. package/dist/conversion/hub/process/chat-process.js +12 -1701
  139. package/dist/conversion/hub/process/client-inject-readiness.d.ts +1 -0
  140. package/dist/conversion/hub/process/client-inject-readiness.js +4 -0
  141. package/dist/conversion/hub/registry.js +5 -2
  142. package/dist/conversion/hub/response/chat-response-utils.js +5 -86
  143. package/dist/conversion/hub/response/provider-response.d.ts +9 -0
  144. package/dist/conversion/hub/response/provider-response.js +6 -21
  145. package/dist/conversion/hub/response/response-mappers.js +2 -26
  146. package/dist/conversion/hub/response/response-runtime.js +2 -93
  147. package/dist/conversion/hub/semantic-mappers/anthropic-mapper.d.ts +1 -0
  148. package/dist/conversion/hub/semantic-mappers/anthropic-mapper.js +1 -0
  149. package/dist/conversion/hub/semantic-mappers/chat-mapper.d.ts +1 -0
  150. package/dist/conversion/hub/semantic-mappers/chat-mapper.js +1 -0
  151. package/dist/conversion/hub/semantic-mappers/gemini-mapper.d.ts +1 -0
  152. package/dist/conversion/hub/semantic-mappers/gemini-mapper.js +1 -0
  153. package/dist/conversion/hub/semantic-mappers/responses-mapper.d.ts +1 -0
  154. package/dist/conversion/hub/semantic-mappers/responses-mapper.js +1 -0
  155. package/dist/conversion/hub/snapshot-recorder.js +10 -3
  156. package/dist/conversion/hub/standardized-bridge.js +11 -288
  157. package/dist/conversion/hub/tool-governance/engine.js +5 -0
  158. package/dist/conversion/hub/tool-governance/rules.js +10 -10
  159. package/dist/conversion/hub/tool-session-compat.d.ts +2 -2
  160. package/dist/conversion/hub/tool-session-compat.js +17 -231
  161. package/dist/conversion/hub/tool-surface/tool-surface-engine.js +5 -3
  162. package/dist/conversion/responses/responses-host-policy.js +2 -12
  163. package/dist/conversion/responses/responses-openai-bridge/response-payload.js +6 -82
  164. package/dist/conversion/responses/responses-openai-bridge/types.d.ts +1 -0
  165. package/dist/conversion/responses/responses-openai-bridge.js +21 -54
  166. package/dist/conversion/shared/anthropic-message-utils.js +151 -13
  167. package/dist/conversion/shared/args-mapping.js +2 -146
  168. package/dist/conversion/shared/bridge-actions.js +203 -718
  169. package/dist/conversion/shared/bridge-id-utils.js +5 -71
  170. package/dist/conversion/shared/bridge-instructions.js +2 -1
  171. package/dist/conversion/shared/bridge-message-types.d.ts +2 -0
  172. package/dist/conversion/shared/bridge-message-utils.js +1 -2
  173. package/dist/conversion/shared/bridge-metadata.d.ts +1 -0
  174. package/dist/conversion/shared/bridge-metadata.js +4 -0
  175. package/dist/conversion/shared/bridge-policies.js +5 -189
  176. package/dist/conversion/shared/chat-envelope-validator.js +2 -126
  177. package/dist/conversion/shared/chat-output-normalizer.js +2 -54
  178. package/dist/conversion/shared/compaction-detect.js +2 -57
  179. package/dist/conversion/shared/gemini-tool-utils.js +9 -524
  180. package/dist/conversion/shared/jsonish.js +3 -160
  181. package/dist/conversion/shared/mcp-injection.js +3 -169
  182. package/dist/conversion/shared/media.js +2 -7
  183. package/dist/conversion/shared/metadata-passthrough.js +9 -46
  184. package/dist/conversion/shared/openai-finalizer.js +2 -1
  185. package/dist/conversion/shared/openai-message-normalize.js +11 -283
  186. package/dist/conversion/shared/output-content-normalizer.js +9 -112
  187. package/dist/conversion/shared/payload-budget.js +2 -85
  188. package/dist/conversion/shared/protocol-state.js +11 -7
  189. package/dist/conversion/shared/reasoning-mapping.js +2 -6
  190. package/dist/conversion/shared/reasoning-normalizer.js +4 -1
  191. package/dist/conversion/shared/reasoning-tool-normalizer.js +14 -126
  192. package/dist/conversion/shared/reasoning-tool-parser.js +4 -87
  193. package/dist/conversion/shared/reasoning-utils.js +2 -6
  194. package/dist/conversion/shared/responses-conversation-store.js +4 -82
  195. package/dist/conversion/shared/responses-output-builder.js +11 -47
  196. package/dist/conversion/shared/responses-reasoning-registry.js +7 -1
  197. package/dist/conversion/shared/responses-request-adapter.d.ts +7 -1
  198. package/dist/conversion/shared/responses-request-adapter.js +14 -1
  199. package/dist/conversion/shared/responses-response-utils.js +6 -7
  200. package/dist/conversion/shared/responses-tool-utils.d.ts +1 -0
  201. package/dist/conversion/shared/responses-tool-utils.js +90 -14
  202. package/dist/conversion/shared/runtime-metadata.js +13 -5
  203. package/dist/conversion/shared/streaming-text-extractor.js +2 -7
  204. package/dist/conversion/shared/text-markup-normalizer/normalize.d.ts +1 -1
  205. package/dist/conversion/shared/text-markup-normalizer/normalize.js +43 -17
  206. package/dist/conversion/shared/text-markup-normalizer.d.ts +1 -0
  207. package/dist/conversion/shared/text-markup-normalizer.js +1 -0
  208. package/dist/conversion/shared/thought-signature-validator.js +3 -2
  209. package/dist/conversion/shared/tool-argument-repairer.js +2 -2
  210. package/dist/conversion/shared/tool-call-id-manager.js +5 -7
  211. package/dist/conversion/shared/tool-call-utils.js +3 -45
  212. package/dist/conversion/shared/tool-canonicalizer.js +25 -29
  213. package/dist/conversion/shared/tool-filter-pipeline.js +4 -99
  214. package/dist/conversion/shared/tool-governor.d.ts +6 -0
  215. package/dist/conversion/shared/tool-governor.js +43 -125
  216. package/dist/conversion/shared/tool-harvester.js +2 -8
  217. package/dist/conversion/shared/tool-mapping.js +2 -5
  218. package/dist/conversion/shared/tooling.d.ts +0 -4
  219. package/dist/conversion/shared/tooling.js +18 -0
  220. package/dist/native/router_hotpath_napi.node +0 -0
  221. package/dist/router/virtual-router/engine/provider-key/parse.d.ts +1 -6
  222. package/dist/router/virtual-router/engine/provider-key/parse.js +1 -43
  223. package/dist/router/virtual-router/engine/routing-state/store.js +48 -12
  224. package/dist/router/virtual-router/engine-logging.js +4 -3
  225. package/dist/router/virtual-router/engine-selection/alias-selection.js +45 -83
  226. package/dist/router/virtual-router/engine-selection/key-parsing.js +9 -23
  227. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-directive-parser.d.ts +20 -0
  228. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-directive-parser.js +163 -0
  229. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-directives.d.ts +7 -0
  230. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-directives.js +103 -0
  231. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-orchestration-semantics.d.ts +10 -0
  232. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-orchestration-semantics.js +110 -0
  233. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-semantics.d.ts +8 -0
  234. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-semantics.js +281 -0
  235. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-time-tag-semantics.d.ts +1 -0
  236. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-time-tag-semantics.js +25 -0
  237. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminders-semantics.d.ts +4 -0
  238. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminders-semantics.js +44 -0
  239. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-tool-schema-semantics.d.ts +2 -0
  240. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-tool-schema-semantics.js +62 -0
  241. package/dist/router/virtual-router/engine-selection/native-chat-process-governance-semantics.d.ts +40 -0
  242. package/dist/router/virtual-router/engine-selection/native-chat-process-governance-semantics.js +484 -0
  243. package/dist/router/virtual-router/engine-selection/native-chat-process-governed-filter-semantics.d.ts +9 -0
  244. package/dist/router/virtual-router/engine-selection/native-chat-process-governed-filter-semantics.js +64 -0
  245. package/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.d.ts +5 -0
  246. package/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.js +163 -0
  247. package/dist/router/virtual-router/engine-selection/native-chat-process-post-governed-normalization-semantics.d.ts +1 -0
  248. package/dist/router/virtual-router/engine-selection/native-chat-process-post-governed-normalization-semantics.js +49 -0
  249. package/dist/router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.d.ts +30 -0
  250. package/dist/router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js +446 -0
  251. package/dist/router/virtual-router/engine-selection/native-chat-process-web-search-intent-semantics.d.ts +1 -0
  252. package/dist/router/virtual-router/engine-selection/native-chat-process-web-search-intent-semantics.js +49 -0
  253. package/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics.d.ts +134 -0
  254. package/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics.js +729 -0
  255. package/dist/router/virtual-router/engine-selection/native-hub-bridge-policy-semantics.d.ts +62 -0
  256. package/dist/router/virtual-router/engine-selection/native-hub-bridge-policy-semantics.js +338 -0
  257. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.d.ts +18 -0
  258. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.js +317 -0
  259. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-inbound-outbound-semantics.d.ts +22 -0
  260. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-inbound-outbound-semantics.js +426 -0
  261. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics.d.ts +57 -0
  262. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics.js +705 -0
  263. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.d.ts +46 -0
  264. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.js +503 -0
  265. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics.d.ts +146 -0
  266. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics.js +570 -0
  267. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-process-semantics.d.ts +25 -0
  268. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-process-semantics.js +148 -0
  269. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics.d.ts +25 -0
  270. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics.js +637 -0
  271. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-session-identifiers-semantics.d.ts +11 -0
  272. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-session-identifiers-semantics.js +207 -0
  273. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-target-semantics.d.ts +3 -0
  274. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-target-semantics.js +128 -0
  275. package/dist/router/virtual-router/engine-selection/native-router-hotpath-analysis.d.ts +57 -0
  276. package/dist/router/virtual-router/engine-selection/native-router-hotpath-analysis.js +217 -0
  277. package/dist/router/virtual-router/engine-selection/native-router-hotpath-loader.d.ts +5 -0
  278. package/dist/router/virtual-router/engine-selection/native-router-hotpath-loader.js +284 -0
  279. package/dist/router/virtual-router/engine-selection/native-router-hotpath-policy.d.ts +5 -0
  280. package/dist/router/virtual-router/engine-selection/native-router-hotpath-policy.js +18 -0
  281. package/dist/router/virtual-router/engine-selection/native-router-hotpath-quota-buckets.d.ts +25 -0
  282. package/dist/router/virtual-router/engine-selection/native-router-hotpath-quota-buckets.js +85 -0
  283. package/dist/router/virtual-router/engine-selection/native-router-hotpath.d.ts +59 -0
  284. package/dist/router/virtual-router/engine-selection/native-router-hotpath.js +117 -0
  285. package/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.d.ts +76 -0
  286. package/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.js +1166 -0
  287. package/dist/router/virtual-router/engine-selection/native-virtual-router-alias-selection-semantics.d.ts +16 -0
  288. package/dist/router/virtual-router/engine-selection/native-virtual-router-alias-selection-semantics.js +96 -0
  289. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-actions-semantics.d.ts +6 -0
  290. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-actions-semantics.js +85 -0
  291. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-semantics.d.ts +9 -0
  292. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-semantics.js +70 -0
  293. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-state-semantics.d.ts +2 -0
  294. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-state-semantics.js +76 -0
  295. package/dist/router/virtual-router/engine-selection/route-utils.js +1 -1
  296. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-session-lease.d.ts +10 -0
  297. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-session-lease.js +231 -0
  298. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-target-split.d.ts +4 -0
  299. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-target-split.js +43 -0
  300. package/dist/router/virtual-router/engine-selection/tier-selection-quota-integration.d.ts +27 -0
  301. package/dist/router/virtual-router/engine-selection/tier-selection-quota-integration.js +116 -0
  302. package/dist/router/virtual-router/engine-selection/tier-selection-select.d.ts +1 -1
  303. package/dist/router/virtual-router/engine-selection/tier-selection-select.js +29 -129
  304. package/dist/router/virtual-router/engine-selection/tier-selection.js +2 -265
  305. package/dist/router/virtual-router/engine.js +258 -249
  306. package/dist/router/virtual-router/features.js +2 -2
  307. package/dist/router/virtual-router/routing-instructions.d.ts +5 -7
  308. package/dist/router/virtual-router/routing-instructions.js +93 -66
  309. package/dist/router/virtual-router/routing-stop-message-actions.js +91 -112
  310. package/dist/router/virtual-router/routing-stop-message-parser.js +9 -132
  311. package/dist/router/virtual-router/routing-stop-message-state-codec.d.ts +1 -0
  312. package/dist/router/virtual-router/routing-stop-message-state-codec.js +58 -71
  313. package/dist/router/virtual-router/sticky-session-store.js +4 -2
  314. package/dist/router/virtual-router/stop-message-file-resolver.d.ts +1 -0
  315. package/dist/router/virtual-router/stop-message-file-resolver.js +10 -0
  316. package/dist/router/virtual-router/stop-message-state-sync.d.ts +1 -1
  317. package/dist/router/virtual-router/stop-message-state-sync.js +3 -7
  318. package/dist/router/virtual-router/token-counter.js +0 -9
  319. package/dist/router/virtual-router/types.d.ts +9 -7
  320. package/dist/servertool/clock/config.js +23 -51
  321. package/dist/servertool/clock/io.js +1 -0
  322. package/dist/servertool/clock/session-scope.d.ts +2 -2
  323. package/dist/servertool/clock/session-scope.js +5 -47
  324. package/dist/servertool/engine.d.ts +9 -0
  325. package/dist/servertool/engine.js +196 -79
  326. package/dist/servertool/handlers/antigravity-thought-signature-bootstrap.js +2 -2
  327. package/dist/servertool/handlers/clock.js +1 -1
  328. package/dist/servertool/handlers/continue-execution.js +8 -4
  329. package/dist/servertool/handlers/followup-request-builder.js +18 -1
  330. package/dist/servertool/handlers/gemini-empty-reply-continue.js +7 -1
  331. package/dist/servertool/handlers/review.js +180 -0
  332. package/dist/servertool/handlers/stop-message-auto/blocked-report.js +59 -1
  333. package/dist/servertool/handlers/stop-message-auto/iflow-followup.d.ts +23 -2
  334. package/dist/servertool/handlers/stop-message-auto/iflow-followup.js +397 -89
  335. package/dist/servertool/handlers/stop-message-auto/routing-state.d.ts +5 -15
  336. package/dist/servertool/handlers/stop-message-auto/routing-state.js +29 -55
  337. package/dist/servertool/handlers/stop-message-auto/runtime-utils.d.ts +6 -0
  338. package/dist/servertool/handlers/stop-message-auto/runtime-utils.js +35 -61
  339. package/dist/servertool/handlers/stop-message-auto.js +392 -76
  340. package/dist/servertool/server-side-tools.d.ts +1 -0
  341. package/dist/servertool/server-side-tools.js +90 -52
  342. package/dist/servertool/types.d.ts +17 -0
  343. package/dist/tools/apply-patch/patch-text/normalize.js +11 -0
  344. package/dist/tools/exec-command/validator.d.ts +4 -1
  345. package/dist/tools/exec-command/validator.js +87 -3
  346. package/dist/tools/tool-registry.d.ts +7 -1
  347. package/dist/tools/tool-registry.js +3 -2
  348. package/package.json +115 -7
  349. package/dist/servertool/handlers/stop-message-stage-policy/bd-runtime.d.ts +0 -18
  350. package/dist/servertool/handlers/stop-message-stage-policy/bd-runtime.js +0 -398
  351. package/dist/servertool/handlers/stop-message-stage-policy/decision.d.ts +0 -9
  352. package/dist/servertool/handlers/stop-message-stage-policy/decision.js +0 -127
  353. package/dist/servertool/handlers/stop-message-stage-policy/observation.d.ts +0 -2
  354. package/dist/servertool/handlers/stop-message-stage-policy/observation.js +0 -179
  355. package/dist/servertool/handlers/stop-message-stage-policy/templates.d.ts +0 -4
  356. package/dist/servertool/handlers/stop-message-stage-policy/templates.js +0 -96
  357. package/dist/servertool/handlers/stop-message-stage-policy/text-utils.d.ts +0 -9
  358. package/dist/servertool/handlers/stop-message-stage-policy/text-utils.js +0 -89
  359. package/dist/servertool/handlers/stop-message-stage-policy/types.d.ts +0 -59
  360. package/dist/servertool/handlers/stop-message-stage-policy.d.ts +0 -3
  361. package/dist/servertool/handlers/stop-message-stage-policy.js +0 -2
  362. /package/dist/servertool/handlers/{stop-message-stage-policy/types.js → review.d.ts} +0 -0
@@ -0,0 +1,284 @@
1
+ import path from 'node:path';
2
+ import { fileURLToPath, pathToFileURL } from 'node:url';
3
+ import { createRequire } from 'node:module';
4
+ import { hasCompleteNativeBinding } from './native-router-hotpath-policy.js';
5
+ const require = createRequire(import.meta.url);
6
+ const workspaceRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../../../');
7
+ let cachedBinding;
8
+ let cachedBindingCacheKey;
9
+ const REQUIRED_NATIVE_EXPORTS = [
10
+ 'analyzeChatProcessMediaJson',
11
+ 'analyzeChatWebSearchIntentJson',
12
+ 'extractWebSearchSemanticsHintJson',
13
+ 'extractOutputSegmentsJson',
14
+ 'analyzeContinueExecutionInjectionJson',
15
+ 'analyzePendingToolSyncJson',
16
+ 'appendToolParseDiagnosticTextJson',
17
+ 'injectToolParseDiagnosticsJson',
18
+ 'applyReqProcessToolGovernanceJson',
19
+ 'applyHubOperationsJson',
20
+ 'applyReqProcessRouteSelectionJson',
21
+ 'applyReqOutboundContextSnapshotJson',
22
+ 'applyClaudeThinkingToolSchemaCompatJson',
23
+ 'applyOutboundStreamPreferenceJson',
24
+ 'applyTargetMetadataJson',
25
+ 'applyTargetToSubjectJson',
26
+ 'applyStopMessageInstructionJson',
27
+ 'attachPassthroughProviderInputAuditJson',
28
+ 'augmentContextSnapshotJson',
29
+ 'annotatePassthroughGovernanceSkipJson',
30
+ 'buildAnthropicToolAliasMapJson',
31
+ 'buildChatNodeResultMetadataJson',
32
+ 'buildProcessedRequestFromChatResponseJson',
33
+ 'applyChatProcessedRequestJson',
34
+ 'buildChatProcessContextMetadataJson',
35
+ 'buildChatProcessedDescriptorJson',
36
+ 'applyClientPassthroughPatchJson',
37
+ 'applyGovernedControlOperationsJson',
38
+ 'applyGovernedMergeRequestJson',
39
+ 'buildClockMarkerScheduleMessagesJson',
40
+ 'buildClockReminderMessagesJson',
41
+ 'buildClockReminderMetadataJson',
42
+ 'buildFormatRequestJson',
43
+ 'buildClockStandardToolAppendOperationsJson',
44
+ 'buildClockToolAppendOperationsJson',
45
+ 'buildResponsesPayloadFromChatJson',
46
+ 'buildBridgeHistoryJson',
47
+ 'applyBridgeNormalizeHistoryJson',
48
+ 'applyBridgeCaptureToolResultsJson',
49
+ 'applyBridgeNormalizeToolIdentifiersJson',
50
+ 'applyBridgeEnsureToolPlaceholdersJson',
51
+ 'buildContinueExecutionOperationsJson',
52
+ 'buildDueReminderUserMessageJson',
53
+ 'buildGovernedFilterPayloadJson',
54
+ 'buildPassthroughAuditJson',
55
+ 'buildGuardedClockScheduleItemJson',
56
+ 'buildImageAttachmentMetadataJson',
57
+ 'buildReviewOperationsJson',
58
+ 'buildWebSearchToolAppendOperationsJson',
59
+ 'clampResponsesInputItemIdJson',
60
+ 'castGovernedToolsJson',
61
+ 'collectToolOutputsJson',
62
+ 'buildReqInboundToolOutputSnapshotJson',
63
+ 'mapBridgeToolsToChatJson',
64
+ 'captureReqInboundResponsesContextSnapshotJson',
65
+ 'computeQuotaBucketsJson',
66
+ 'deserializeStopMessageStateJson',
67
+ 'detectProviderResponseShapeJson',
68
+ 'extractClockReminderDirectivesJson',
69
+ 'extractContextLengthDiagnosticsJson',
70
+ 'encodeMetadataPassthroughJson',
71
+ 'prepareGeminiToolsForBridgeJson',
72
+ 'buildGeminiToolsFromBridgeJson',
73
+ 'pickResponsesPersistedFieldsJson',
74
+ 'convertResponsesOutputToInputItemsJson',
75
+ 'extractAntigravityGeminiSessionIdJson',
76
+ 'ensureBridgeOutputFieldsJson',
77
+ 'lookupAntigravityPinnedAliasForSessionIdJson',
78
+ 'unpinAntigravitySessionAliasForSessionIdJson',
79
+ 'cacheAntigravitySessionSignatureJson',
80
+ 'getAntigravityRequestSessionMetaJson',
81
+ 'resetAntigravitySignatureCachesJson',
82
+ 'coerceClientHeadersJson',
83
+ 'extractSessionIdentifiersJson',
84
+ 'extractTargetModelIdJson',
85
+ 'extractClockScheduleDirectiveTextPartsJson',
86
+ 'extractSseWrapperErrorJson',
87
+ 'extractMetadataPassthroughJson',
88
+ 'extractAdapterContextMetadataFieldsJson',
89
+ 'evaluateResponsesHostPolicyJson',
90
+ 'enforceChatBudgetJson',
91
+ 'finalizeGovernedRequestJson',
92
+ 'findLastUserMessageIndexJson',
93
+ 'injectContinueExecutionDirectiveJson',
94
+ 'injectTimeTagIntoMessagesJson',
95
+ 'injectMcpToolsForChatJson',
96
+ 'injectMcpToolsForResponsesJson',
97
+ 'isStopMessageStateActiveJson',
98
+ 'isContextLengthExceededSignalJson',
99
+ 'isCompactionRequestJson',
100
+ 'isShellLikeToolNameTokenJson',
101
+ 'looksLikeJsonStreamPrefixJson',
102
+ 'mapResumeToolOutputsDetailedJson',
103
+ 'mergeContextToolOutputsJson',
104
+ 'mergeToolCallsJson',
105
+ 'mergeGovernanceSummaryIntoMetadataJson',
106
+ 'findHeaderValueJson',
107
+ 'normalizeAliasMapJson',
108
+ 'normalizeMessageReasoningToolsJson',
109
+ 'normalizeOpenaiMessageJson',
110
+ 'normalizeOpenaiChatMessagesJson',
111
+ 'normalizeOpenaiToolJson',
112
+ 'normalizeOpenaiToolCallJson',
113
+ 'normalizeChatResponseReasoningToolsJson',
114
+ 'normalizeBridgeToolCallIdsJson',
115
+ 'normalizeChatMessageContentJson',
116
+ 'normalizeArgsBySchemaJson',
117
+ 'normalizeFunctionCallIdJson',
118
+ 'normalizeFunctionCallOutputIdJson',
119
+ 'normalizeHeaderKeyJson',
120
+ 'normalizeHubEndpointJson',
121
+ 'normalizeOutputContentPartJson',
122
+ 'normalizeToolSessionMessagesJson',
123
+ 'updateToolSessionHistoryJson',
124
+ 'normalizeContextCaptureLabelJson',
125
+ 'normalizeContextToolsJson',
126
+ 'normalizeDueInjectTextJson',
127
+ 'normalizeProviderProtocolTokenJson',
128
+ 'normalizeResponsesCallIdJson',
129
+ 'normalizeMessageContentPartsJson',
130
+ 'normalizeShellLikeToolCallsBeforeGovernanceJson',
131
+ 'normalizeToolCallIdStyleCandidateJson',
132
+ 'parseClockScheduleDirectiveCandidateJson',
133
+ 'parseLenientJsonishJson',
134
+ 'parseJsonObjectCandidateJson',
135
+ 'parseProviderKeyJson',
136
+ 'parseStopMessageInstructionJson',
137
+ 'pinAliasQueueJson',
138
+ 'planChatClockOperationsJson',
139
+ 'planChatServertoolOrchestrationBundleJson',
140
+ 'planChatWebSearchOperationsJson',
141
+ 'planContinueExecutionOperationsJson',
142
+ 'resolveAliasSelectionStrategyJson',
143
+ 'resolveBridgePolicyJson',
144
+ 'resolveBridgePolicyActionsJson',
145
+ 'resolveAliasMapFromRespSemanticsJson',
146
+ 'resolveClientInjectReadyJson',
147
+ 'resolveClientToolsRawJson',
148
+ 'resolveClientToolsRawFromRespSemanticsJson',
149
+ 'resolveClockReminderFlowPlanJson',
150
+ 'resolveClockConfigJson',
151
+ 'resolveClockSessionScopeJson',
152
+ 'resolveClockTimeTagFallbackLineJson',
153
+ 'resolveCompatProfileJson',
154
+ 'resolveHasActiveStopMessageForContinueExecutionJson',
155
+ 'resolveHasInstructionRequestedPassthroughJson',
156
+ 'resolveHubClientProtocolJson',
157
+ 'resolveHubProtocolSpecJson',
158
+ 'resolveOutboundStreamIntentJson',
159
+ 'resolveProviderProtocolJson',
160
+ 'resolveHubPolicyOverrideJson',
161
+ 'resolveHubShadowCompareConfigJson',
162
+ 'resolveApplyPatchToolModeFromToolsJson',
163
+ 'resolveActiveProcessModeJson',
164
+ 'resolveStopMessageRouterMetadataJson',
165
+ 'resolveGovernanceContextJson',
166
+ 'resolveStopMessageSessionScopeJson',
167
+ 'ensureProtocolStateJson',
168
+ 'getProtocolStateJson',
169
+ 'readRuntimeMetadataJson',
170
+ 'ensureRuntimeMetadataJson',
171
+ 'cloneRuntimeMetadataJson',
172
+ 'applyReqInboundSemanticLiftJson',
173
+ 'pickHeaderJson',
174
+ 'resolveReqOutboundContextMergePlanJson',
175
+ 'runReqOutboundStage3CompatJson',
176
+ 'runHubPipelineJson',
177
+ 'findMappableSemanticsKeysJson',
178
+ 'deriveToolCallKeyJson',
179
+ 'extractToolCallsFromReasoningTextJson',
180
+ 'mapReasoningContentToResponsesOutputJson',
181
+ 'isImagePathJson',
182
+ 'resolveServerToolFollowupSnapshotJson',
183
+ 'resolveSseStreamModeJson',
184
+ 'resolveSseProtocolFromMetadataJson',
185
+ 'repairArgumentsToStringJsonishJson',
186
+ 'sanitizeChatCompletionLikeJson',
187
+ 'sanitizeFormatEnvelopeJson',
188
+ 'sanitizeReasoningTaggedTextJson',
189
+ 'sanitizeResponsesFunctionNameJson',
190
+ 'selectToolCallIdStyleJson',
191
+ 'serializeStopMessageStateJson',
192
+ 'shouldAttachReqOutboundContextSnapshotJson',
193
+ 'shouldReserveClockDueReminderJson',
194
+ 'shouldRunHubChatProcessJson',
195
+ 'splitAntigravityTargetsJson',
196
+ 'stripOrphanFunctionCallsTagJson',
197
+ 'stripClockClearDirectiveTextJson',
198
+ 'stripChatProcessHistoricalImagesJson',
199
+ 'stripPrivateFieldsJson'
200
+ ];
201
+ function readNativePathFromEnv() {
202
+ const raw = String(process.env.ROUTECODEX_LLMS_ROUTER_NATIVE_PATH || process.env.RCC_LLMS_ROUTER_NATIVE_PATH || '').trim();
203
+ return raw || undefined;
204
+ }
205
+ function buildNativeBindingCacheKey(envPath) {
206
+ if (!envPath) {
207
+ return 'auto';
208
+ }
209
+ const resolved = path.isAbsolute(envPath) ? envPath : path.resolve(process.cwd(), envPath);
210
+ return `env:${resolved}`;
211
+ }
212
+ function resolveLoadPathForNode(resolvedPath) {
213
+ const ext = path.extname(resolvedPath).toLowerCase();
214
+ if (!ext || ext === '.node') {
215
+ return resolvedPath;
216
+ }
217
+ if (ext !== '.dylib' && ext !== '.so' && ext !== '.dll') {
218
+ return resolvedPath;
219
+ }
220
+ return resolvedPath.replace(/\.(dylib|so|dll)$/i, '.node');
221
+ }
222
+ function tryRequireFromPath(modulePath, options) {
223
+ try {
224
+ const resolved = path.isAbsolute(modulePath) ? modulePath : path.resolve(process.cwd(), modulePath);
225
+ const loadPath = resolveLoadPathForNode(resolved);
226
+ const loaded = require(loadPath);
227
+ if (!loaded || typeof loaded !== 'object') {
228
+ return null;
229
+ }
230
+ if (options?.requireComplete !== false && !hasCompleteNativeBinding(loaded, REQUIRED_NATIVE_EXPORTS)) {
231
+ return null;
232
+ }
233
+ return loaded;
234
+ }
235
+ catch {
236
+ return null;
237
+ }
238
+ }
239
+ function getWorkspaceNativeCandidates() {
240
+ return ['release', 'debug'].map((mode) => path.join(workspaceRoot, 'rust-core', 'target', mode, 'router_hotpath_napi.node'));
241
+ }
242
+ function getPackagedNativeCandidates() {
243
+ return [path.join(workspaceRoot, 'dist', 'native', 'router_hotpath_napi.node')];
244
+ }
245
+ export function loadNativeRouterHotpathBinding() {
246
+ const envPath = readNativePathFromEnv();
247
+ const cacheKey = buildNativeBindingCacheKey(envPath);
248
+ if (cachedBinding !== undefined && cachedBindingCacheKey === cacheKey) {
249
+ return cachedBinding;
250
+ }
251
+ cachedBindingCacheKey = cacheKey;
252
+ cachedBinding = undefined;
253
+ if (envPath) {
254
+ // Explicit env path is allowed to provide partial exports for focused test mocks.
255
+ // Missing capabilities still fail-fast at callsite via native-required checks.
256
+ cachedBinding = tryRequireFromPath(envPath, { requireComplete: false });
257
+ if (cachedBinding)
258
+ return cachedBinding;
259
+ }
260
+ for (const candidate of getWorkspaceNativeCandidates()) {
261
+ const loaded = tryRequireFromPath(candidate);
262
+ if (loaded) {
263
+ cachedBinding = loaded;
264
+ return cachedBinding;
265
+ }
266
+ }
267
+ for (const candidate of getPackagedNativeCandidates()) {
268
+ const loaded = tryRequireFromPath(candidate);
269
+ if (loaded) {
270
+ cachedBinding = loaded;
271
+ return cachedBinding;
272
+ }
273
+ }
274
+ cachedBinding = null;
275
+ return cachedBinding;
276
+ }
277
+ export function resolveNativeModuleUrlFromEnv() {
278
+ const modulePath = readNativePathFromEnv();
279
+ if (!modulePath) {
280
+ return undefined;
281
+ }
282
+ const normalized = path.isAbsolute(modulePath) ? modulePath : path.resolve(process.cwd(), modulePath);
283
+ return pathToFileURL(normalized).href;
284
+ }
@@ -0,0 +1,5 @@
1
+ export declare function isNativeDisabledByEnv(): boolean;
2
+ export declare function isNativeRequiredByEnv(): boolean;
3
+ export declare function hasCompleteNativeBinding(binding: unknown, requiredExports: readonly string[]): boolean;
4
+ export declare function makeNativeRequiredError(capability: string, reason?: string): Error;
5
+ export declare function failNativeRequired<T>(capability: string, reason?: string): T;
@@ -0,0 +1,18 @@
1
+ export function isNativeDisabledByEnv() {
2
+ return false;
3
+ }
4
+ export function isNativeRequiredByEnv() {
5
+ return true;
6
+ }
7
+ export function hasCompleteNativeBinding(binding, requiredExports) {
8
+ if (!binding || typeof binding !== 'object')
9
+ return false;
10
+ const row = binding;
11
+ return requiredExports.every((key) => typeof row[key] === 'function');
12
+ }
13
+ export function makeNativeRequiredError(capability, reason) {
14
+ return new Error(`[virtual-router-native-hotpath] native ${capability} is required but unavailable${reason ? `: ${reason}` : ''}`);
15
+ }
16
+ export function failNativeRequired(capability, reason) {
17
+ throw makeNativeRequiredError(capability, reason);
18
+ }
@@ -0,0 +1,25 @@
1
+ export type QuotaBucketInputEntry = {
2
+ key: string;
3
+ order: number;
4
+ hasQuota: boolean;
5
+ inPool: boolean;
6
+ cooldownUntil?: number;
7
+ blacklistUntil?: number;
8
+ priorityTier?: number;
9
+ selectionPenalty?: number;
10
+ };
11
+ type QuotaBucketOutputEntry = {
12
+ key: string;
13
+ penalty: number;
14
+ order: number;
15
+ };
16
+ export type QuotaBucketResult = {
17
+ priorities: number[];
18
+ buckets: Map<number, QuotaBucketOutputEntry[]>;
19
+ };
20
+ type HotpathMode = 'auto' | 'native-only';
21
+ export declare function buildQuotaBuckets(entries: QuotaBucketInputEntry[], nowMs: number): QuotaBucketResult;
22
+ export declare function buildQuotaBucketsWithMode(entries: QuotaBucketInputEntry[], nowMs: number, mode: HotpathMode | string): QuotaBucketResult;
23
+ export declare function getNativeRouterHotpathSource(): 'native' | 'unavailable';
24
+ export declare function resolveNativeModuleUrlFromEnv(): string | undefined;
25
+ export {};
@@ -0,0 +1,85 @@
1
+ import { loadNativeRouterHotpathBinding, resolveNativeModuleUrlFromEnv as resolveNativeModuleUrlFromEnvInLoader } from './native-router-hotpath-loader.js';
2
+ function coerceNumber(value) {
3
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
4
+ }
5
+ function parseNativePayload(raw) {
6
+ try {
7
+ const parsed = JSON.parse(raw);
8
+ if (!parsed || !Array.isArray(parsed.priorities) || !Array.isArray(parsed.buckets)) {
9
+ return null;
10
+ }
11
+ const buckets = new Map();
12
+ for (const tier of parsed.buckets) {
13
+ const priority = coerceNumber(tier.priority);
14
+ if (priority === undefined) {
15
+ continue;
16
+ }
17
+ const entriesRaw = Array.isArray(tier.entries)
18
+ ? tier.entries
19
+ : [];
20
+ const entries = [];
21
+ for (const item of entriesRaw) {
22
+ if (!item || typeof item !== 'object' || Array.isArray(item)) {
23
+ continue;
24
+ }
25
+ const row = item;
26
+ const key = typeof row.key === 'string' ? row.key : '';
27
+ const penalty = coerceNumber(row.penalty) ?? 0;
28
+ const order = coerceNumber(row.order) ?? 0;
29
+ if (!key) {
30
+ continue;
31
+ }
32
+ entries.push({ key, penalty, order });
33
+ }
34
+ buckets.set(priority, entries);
35
+ }
36
+ const priorities = parsed.priorities
37
+ .map((value) => coerceNumber(value))
38
+ .filter((value) => value !== undefined)
39
+ .sort((a, b) => a - b);
40
+ return { priorities, buckets };
41
+ }
42
+ catch {
43
+ return null;
44
+ }
45
+ }
46
+ function computeQuotaBucketsNative(entries, nowMs) {
47
+ const binding = loadNativeRouterHotpathBinding();
48
+ const fn = binding?.computeQuotaBucketsJson;
49
+ if (typeof fn !== 'function') {
50
+ return null;
51
+ }
52
+ try {
53
+ const resultJson = fn(JSON.stringify(entries), nowMs);
54
+ if (typeof resultJson !== 'string' || !resultJson) {
55
+ return null;
56
+ }
57
+ return parseNativePayload(resultJson);
58
+ }
59
+ catch {
60
+ return null;
61
+ }
62
+ }
63
+ export function buildQuotaBuckets(entries, nowMs) {
64
+ return buildQuotaBucketsWithMode(entries, nowMs, 'auto');
65
+ }
66
+ export function buildQuotaBucketsWithMode(entries, nowMs, mode) {
67
+ if (mode !== 'auto' && mode !== 'native-only') {
68
+ throw new Error(`[virtual-router-native-hotpath] unsupported hotpath mode: ${String(mode)}`);
69
+ }
70
+ const nativeResult = computeQuotaBucketsNative(entries, nowMs);
71
+ if (nativeResult) {
72
+ return nativeResult;
73
+ }
74
+ throw new Error('[virtual-router-native-hotpath] native router hotpath is required but unavailable');
75
+ }
76
+ export function getNativeRouterHotpathSource() {
77
+ const binding = loadNativeRouterHotpathBinding();
78
+ if (typeof binding?.computeQuotaBucketsJson === 'function') {
79
+ return 'native';
80
+ }
81
+ return 'unavailable';
82
+ }
83
+ export function resolveNativeModuleUrlFromEnv() {
84
+ return resolveNativeModuleUrlFromEnvInLoader();
85
+ }
@@ -0,0 +1,59 @@
1
+ export { buildQuotaBuckets, buildQuotaBucketsWithMode, getNativeRouterHotpathSource, resolveNativeModuleUrlFromEnv, type QuotaBucketInputEntry, type QuotaBucketResult } from './native-router-hotpath-quota-buckets.js';
2
+ export declare function splitAntigravityTargets(targets: string[]): {
3
+ nonAntigravity: string[];
4
+ hasAntigravity: boolean;
5
+ source: 'native';
6
+ };
7
+ export declare function analyzePendingToolSync(messages: unknown[], afterToolCallIds: string[]): {
8
+ ready: boolean;
9
+ insertAt: number;
10
+ source: 'native';
11
+ };
12
+ export declare function analyzeContinueExecutionInjection(messages: unknown[], marker: string, targetText: string): {
13
+ hasDirective: boolean;
14
+ source: 'native';
15
+ };
16
+ export declare function stripClockClearDirectiveText(text: string): {
17
+ hadClear: boolean;
18
+ next: string;
19
+ source: 'native';
20
+ };
21
+ export declare function analyzeChatProcessMedia(messages: unknown[]): {
22
+ stripIndices: number[];
23
+ containsCurrentTurnImage: boolean;
24
+ source: 'native';
25
+ };
26
+ export declare function stripChatProcessHistoricalImages(messages: unknown[], placeholderText: string): {
27
+ changed: boolean;
28
+ messages: unknown[];
29
+ source: 'native';
30
+ };
31
+ export declare function analyzeChatWebSearchIntent(messages: unknown[]): {
32
+ hasIntent: boolean;
33
+ googlePreferred: boolean;
34
+ source: 'native';
35
+ };
36
+ export declare function analyzeProviderKey(providerKey: string): {
37
+ providerId: string | null;
38
+ alias: string | null;
39
+ keyIndex?: number;
40
+ source: 'native';
41
+ };
42
+ export declare function extractAntigravityGeminiSessionIdWithNative(payload: unknown): string;
43
+ export declare function lookupAntigravityPinnedAliasForSessionIdWithNative(sessionId: string, options?: {
44
+ hydrate?: boolean;
45
+ }): string | undefined;
46
+ export declare function unpinAntigravitySessionAliasForSessionIdWithNative(sessionId: string): boolean;
47
+ export declare function cacheAntigravitySessionSignatureWithNative(input: {
48
+ aliasKey: string;
49
+ sessionId: string;
50
+ signature: string;
51
+ messageCount?: number;
52
+ }): boolean;
53
+ export declare function getAntigravityRequestSessionMetaWithNative(requestId: string): {
54
+ aliasKey?: string;
55
+ sessionId?: string;
56
+ messageCount?: number;
57
+ };
58
+ export declare function resetAntigravitySignatureCachesWithNative(): boolean;
59
+ export declare function loadNativeRouterHotpathBindingForInternalUse(): unknown;
@@ -0,0 +1,117 @@
1
+ import { parseAntigravityPinnedAliasLookupPayload, parseAntigravityPinnedAliasUnpinPayload, parseAntigravityCacheSignaturePayload, parseAntigravityRequestSessionMetaPayload, parseAntigravitySessionIdPayload, parseClockClearDirectivePayload, parseChatProcessMediaAnalysisPayload, parseChatProcessMediaStripPayload, parseChatWebSearchIntentPayload, parseContinueExecutionInjectionPayload, parsePendingToolSyncPayload, parseProviderKeyPayload } from './native-router-hotpath-analysis.js';
2
+ import { isNativeDisabledByEnv, makeNativeRequiredError } from './native-router-hotpath-policy.js';
3
+ import { loadNativeRouterHotpathBinding } from './native-router-hotpath-loader.js';
4
+ export { buildQuotaBuckets, buildQuotaBucketsWithMode, getNativeRouterHotpathSource, resolveNativeModuleUrlFromEnv } from './native-router-hotpath-quota-buckets.js';
5
+ function parseAntigravitySplitPayload(raw) {
6
+ try {
7
+ const parsed = JSON.parse(raw);
8
+ if (!parsed || !Array.isArray(parsed.nonAntigravity) || typeof parsed.hasAntigravity !== 'boolean') {
9
+ return null;
10
+ }
11
+ const nonAntigravity = parsed.nonAntigravity.filter((value) => typeof value === 'string');
12
+ return {
13
+ nonAntigravity,
14
+ hasAntigravity: parsed.hasAntigravity
15
+ };
16
+ }
17
+ catch {
18
+ return null;
19
+ }
20
+ }
21
+ function toErrorReason(error) {
22
+ return error instanceof Error ? error.message : String(error ?? 'unknown');
23
+ }
24
+ function requireNativeFunction(capability, exportName) {
25
+ if (isNativeDisabledByEnv()) {
26
+ throw makeNativeRequiredError(capability, 'native disabled');
27
+ }
28
+ const binding = loadNativeRouterHotpathBinding();
29
+ const fn = binding?.[exportName];
30
+ if (typeof fn !== 'function') {
31
+ throw makeNativeRequiredError(capability);
32
+ }
33
+ return fn;
34
+ }
35
+ function callNativeJson(capability, exportName, args, parse) {
36
+ const fn = requireNativeFunction(capability, exportName);
37
+ let raw;
38
+ try {
39
+ raw = fn(...args);
40
+ }
41
+ catch (error) {
42
+ throw makeNativeRequiredError(capability, toErrorReason(error));
43
+ }
44
+ if (typeof raw !== 'string' || !raw) {
45
+ throw makeNativeRequiredError(capability, 'empty result');
46
+ }
47
+ const parsed = parse(raw);
48
+ if (!parsed) {
49
+ throw makeNativeRequiredError(capability, 'invalid payload');
50
+ }
51
+ return parsed;
52
+ }
53
+ export function splitAntigravityTargets(targets) {
54
+ const parsed = callNativeJson('splitAntigravityTargetsJson', 'splitAntigravityTargetsJson', [JSON.stringify(targets)], parseAntigravitySplitPayload);
55
+ return { ...parsed, source: 'native' };
56
+ }
57
+ export function analyzePendingToolSync(messages, afterToolCallIds) {
58
+ const parsed = callNativeJson('analyzePendingToolSyncJson', 'analyzePendingToolSyncJson', [JSON.stringify(messages), JSON.stringify(afterToolCallIds)], parsePendingToolSyncPayload);
59
+ return { ...parsed, source: 'native' };
60
+ }
61
+ export function analyzeContinueExecutionInjection(messages, marker, targetText) {
62
+ const normalizedMarker = typeof marker === 'string' ? marker.trim() : '';
63
+ const normalizedTargetText = typeof targetText === 'string' ? targetText.trim() : '';
64
+ const parsed = callNativeJson('analyzeContinueExecutionInjectionJson', 'analyzeContinueExecutionInjectionJson', [JSON.stringify(messages), normalizedMarker, normalizedTargetText], parseContinueExecutionInjectionPayload);
65
+ return { ...parsed, source: 'native' };
66
+ }
67
+ export function stripClockClearDirectiveText(text) {
68
+ const parsed = callNativeJson('stripClockClearDirectiveTextJson', 'stripClockClearDirectiveTextJson', [String(text || '')], parseClockClearDirectivePayload);
69
+ return { ...parsed, source: 'native' };
70
+ }
71
+ export function analyzeChatProcessMedia(messages) {
72
+ const parsed = callNativeJson('analyzeChatProcessMediaJson', 'analyzeChatProcessMediaJson', [JSON.stringify(messages)], parseChatProcessMediaAnalysisPayload);
73
+ return { ...parsed, source: 'native' };
74
+ }
75
+ export function stripChatProcessHistoricalImages(messages, placeholderText) {
76
+ const parsed = callNativeJson('stripChatProcessHistoricalImagesJson', 'stripChatProcessHistoricalImagesJson', [JSON.stringify(messages), String(placeholderText || '[Image omitted]')], parseChatProcessMediaStripPayload);
77
+ return { ...parsed, source: 'native' };
78
+ }
79
+ export function analyzeChatWebSearchIntent(messages) {
80
+ const parsed = callNativeJson('analyzeChatWebSearchIntentJson', 'analyzeChatWebSearchIntentJson', [JSON.stringify(messages)], parseChatWebSearchIntentPayload);
81
+ return { ...parsed, source: 'native' };
82
+ }
83
+ export function analyzeProviderKey(providerKey) {
84
+ const parsed = callNativeJson('parseProviderKeyJson', 'parseProviderKeyJson', [String(providerKey || '')], parseProviderKeyPayload);
85
+ return { ...parsed, source: 'native' };
86
+ }
87
+ export function extractAntigravityGeminiSessionIdWithNative(payload) {
88
+ const parsed = callNativeJson('extractAntigravityGeminiSessionIdJson', 'extractAntigravityGeminiSessionIdJson', [JSON.stringify(payload ?? null)], parseAntigravitySessionIdPayload);
89
+ return parsed.sessionId;
90
+ }
91
+ export function lookupAntigravityPinnedAliasForSessionIdWithNative(sessionId, options) {
92
+ const parsed = callNativeJson('lookupAntigravityPinnedAliasForSessionIdJson', 'lookupAntigravityPinnedAliasForSessionIdJson', [JSON.stringify({ sessionId: String(sessionId || ''), hydrate: options?.hydrate !== false })], parseAntigravityPinnedAliasLookupPayload);
93
+ return parsed.alias;
94
+ }
95
+ export function unpinAntigravitySessionAliasForSessionIdWithNative(sessionId) {
96
+ const parsed = callNativeJson('unpinAntigravitySessionAliasForSessionIdJson', 'unpinAntigravitySessionAliasForSessionIdJson', [JSON.stringify({ sessionId: String(sessionId || '') })], parseAntigravityPinnedAliasUnpinPayload);
97
+ return parsed.changed;
98
+ }
99
+ export function cacheAntigravitySessionSignatureWithNative(input) {
100
+ const parsed = callNativeJson('cacheAntigravitySessionSignatureJson', 'cacheAntigravitySessionSignatureJson', [JSON.stringify({
101
+ aliasKey: String(input.aliasKey || ''),
102
+ sessionId: String(input.sessionId || ''),
103
+ signature: String(input.signature || ''),
104
+ messageCount: typeof input.messageCount === 'number' ? Math.floor(input.messageCount) : undefined
105
+ })], parseAntigravityCacheSignaturePayload);
106
+ return parsed.ok;
107
+ }
108
+ export function getAntigravityRequestSessionMetaWithNative(requestId) {
109
+ return callNativeJson('getAntigravityRequestSessionMetaJson', 'getAntigravityRequestSessionMetaJson', [JSON.stringify({ requestId: String(requestId || '') })], parseAntigravityRequestSessionMetaPayload);
110
+ }
111
+ export function resetAntigravitySignatureCachesWithNative() {
112
+ const parsed = callNativeJson('resetAntigravitySignatureCachesJson', 'resetAntigravitySignatureCachesJson', ['{}'], parseAntigravityCacheSignaturePayload);
113
+ return parsed.ok;
114
+ }
115
+ export function loadNativeRouterHotpathBindingForInternalUse() {
116
+ return loadNativeRouterHotpathBinding();
117
+ }
@@ -0,0 +1,76 @@
1
+ export declare function parseLenientJsonishWithNative(value: unknown): unknown;
2
+ export declare function repairArgumentsToStringWithNative(value: unknown): string;
3
+ export declare function extractToolCallsFromReasoningTextWithNative(text: string, idPrefix?: string): {
4
+ cleanedText: string;
5
+ toolCalls: Array<Record<string, unknown>>;
6
+ };
7
+ export declare function sanitizeReasoningTaggedTextWithNative(text: string): string;
8
+ export declare function deriveToolCallKeyWithNative(call: Record<string, unknown> | null | undefined): string | null;
9
+ export declare function mergeToolCallsWithNative(existing: Array<Record<string, unknown>> | undefined, additions: Array<Record<string, unknown>> | undefined): Array<Record<string, unknown>>;
10
+ export declare function mapReasoningContentToResponsesOutputWithNative(reasoningContent: unknown): Array<{
11
+ type: 'reasoning';
12
+ content: string;
13
+ }>;
14
+ export declare function isImagePathWithNative(pathValue: unknown): boolean;
15
+ export declare function isCompactionRequestWithNative(payload: unknown): boolean;
16
+ export declare function encodeMetadataPassthroughWithNative(parameters: unknown, prefix: string, keys: readonly string[]): Record<string, string> | undefined;
17
+ export declare function extractMetadataPassthroughWithNative(metadataField: unknown, prefix: string, keys: readonly string[]): {
18
+ metadata?: Record<string, unknown>;
19
+ passthrough?: Record<string, unknown>;
20
+ };
21
+ export declare function ensureProtocolStateWithNative(metadata: Record<string, unknown>, protocol: string): {
22
+ metadata: Record<string, unknown>;
23
+ node: Record<string, unknown>;
24
+ };
25
+ export declare function getProtocolStateWithNative(metadata: Record<string, unknown> | undefined, protocol: string): Record<string, unknown> | undefined;
26
+ export declare function readRuntimeMetadataWithNative(carrier: Record<string, unknown> | null | undefined): Record<string, unknown> | undefined;
27
+ export declare function ensureRuntimeMetadataCarrierWithNative(carrier: Record<string, unknown>): Record<string, unknown>;
28
+ export declare function cloneRuntimeMetadataWithNative(carrier: Record<string, unknown> | null | undefined): Record<string, unknown> | undefined;
29
+ export declare function injectMcpToolsForChatWithNative(tools: unknown[] | undefined, discoveredServers: string[]): unknown[];
30
+ export declare function normalizeArgsBySchemaWithNative(input: unknown, schema: unknown): {
31
+ ok: boolean;
32
+ value?: Record<string, unknown>;
33
+ errors?: string[];
34
+ };
35
+ export declare function extractOutputSegmentsWithNative(source: Record<string, unknown> | undefined, itemsKey?: string): {
36
+ textParts: string[];
37
+ reasoningParts: string[];
38
+ };
39
+ export declare function normalizeContentPartWithNative(part: unknown, reasoningCollector: string[]): {
40
+ normalized: Record<string, unknown> | null;
41
+ reasoningCollector: string[];
42
+ };
43
+ export declare function normalizeMessageContentPartsWithNative(parts: unknown, reasoningCollector: string[]): {
44
+ normalizedParts: Array<Record<string, unknown>>;
45
+ reasoningChunks: string[];
46
+ };
47
+ export declare function normalizeChatMessageContentWithNative(content: unknown): {
48
+ contentText?: string;
49
+ reasoningText?: string;
50
+ };
51
+ export declare function normalizeOpenaiMessageWithNative(message: unknown, disableShellCoerce: boolean): unknown;
52
+ export declare function normalizeOpenaiToolWithNative(tool: unknown): unknown;
53
+ export declare function normalizeOpenaiChatMessagesWithNative(messages: unknown): unknown[];
54
+ export declare function normalizeOpenaiToolCallWithNative(toolCall: unknown, disableShellCoerce: boolean): unknown;
55
+ export declare function prepareGeminiToolsForBridgeWithNative(rawTools: unknown, missing: unknown[]): {
56
+ defs?: Array<Record<string, unknown>>;
57
+ missing: Array<Record<string, unknown>>;
58
+ };
59
+ export declare function buildGeminiToolsFromBridgeWithNative(defs: unknown, mode?: 'antigravity' | 'default'): Array<Record<string, unknown>> | undefined;
60
+ export declare function pickResponsesPersistedFieldsWithNative(payload: unknown): Record<string, unknown>;
61
+ export declare function convertResponsesOutputToInputItemsWithNative(response: unknown): Array<Record<string, unknown>>;
62
+ export declare function enforceChatBudgetWithNative(chat: unknown, allowedBytes: number, systemTextLimit: number): unknown;
63
+ export declare function injectMcpToolsForResponsesWithNative(tools: unknown[] | undefined, discoveredServers: string[]): unknown[];
64
+ export declare function normalizeFunctionCallIdWithNative(input: {
65
+ callId?: string;
66
+ fallback?: string;
67
+ }): string;
68
+ export declare function normalizeFunctionCallOutputIdWithNative(input: {
69
+ callId?: string;
70
+ fallback?: string;
71
+ }): string;
72
+ export declare function normalizeResponsesCallIdWithNative(input: {
73
+ callId?: string;
74
+ fallback?: string;
75
+ }): string;
76
+ export declare function clampResponsesInputItemIdWithNative(rawValue: unknown): string | undefined;