@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,233 @@
1
+ import { buildClockStandardToolAppendOperationsWithNative, buildClockToolAppendOperationsWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-clock-tool-schema-semantics.js';
2
+ const CLOCK_PARAMETERS = {
3
+ type: 'object',
4
+ properties: {
5
+ action: {
6
+ type: 'string',
7
+ enum: ['get', 'schedule', 'update', 'list', 'cancel', 'clear'],
8
+ description: 'Get current time, or schedule/update/list/cancel/clear session-scoped reminders. If waiting longer than 2 minutes is required, use action="schedule" immediately.'
9
+ },
10
+ items: {
11
+ type: 'array',
12
+ description: 'For schedule/update: list of reminder payloads. update uses items[0] as patch source.',
13
+ items: {
14
+ type: 'object',
15
+ properties: {
16
+ dueAt: {
17
+ type: 'string',
18
+ description: 'ISO8601 datetime with timezone (e.g. 2026-01-21T20:30:00-08:00).'
19
+ },
20
+ task: {
21
+ type: 'string',
22
+ description: 'Reminder text that states the exact action to execute on wake-up (no vague placeholders).'
23
+ },
24
+ tool: {
25
+ type: 'string',
26
+ description: 'Optional suggested tool name (hint only).'
27
+ },
28
+ arguments: {
29
+ type: 'string',
30
+ description: 'Optional suggested tool arguments as a JSON string (hint only). Use "{}" when unsure.'
31
+ }
32
+ },
33
+ required: ['dueAt', 'task', 'tool', 'arguments'],
34
+ additionalProperties: false
35
+ }
36
+ },
37
+ taskId: {
38
+ type: 'string',
39
+ description: 'For cancel/update: target taskId.'
40
+ }
41
+ },
42
+ required: ['action', 'items', 'taskId'],
43
+ additionalProperties: false
44
+ };
45
+ const CLOCK_TOOL = {
46
+ type: 'function',
47
+ function: {
48
+ name: 'clock',
49
+ description: 'Time + Alarm for this session. If waiting longer than 2 minutes is required, MUST call clock.schedule now (never promise to wait without scheduling). Format example: {"action":"schedule","items":[{"dueAt":"<ISO8601>","task":"<exact follow-up action>","tool":"<tool-name-or-empty>","arguments":"<json-string-or-{}>"}],"taskId":""}. Use get/schedule/update/list/cancel/clear. Scheduled reminders are injected into future requests.',
50
+ parameters: CLOCK_PARAMETERS,
51
+ strict: true
52
+ }
53
+ };
54
+ const CLOCK_STANDARD_TOOLS = [
55
+ {
56
+ type: 'function',
57
+ function: {
58
+ name: 'clock',
59
+ description: 'Time + Alarm for this session. If waiting longer than 2 minutes is required, call clock.schedule now. Format example: {"action":"schedule","items":[{"dueAt":"<ISO8601>","task":"<exact follow-up action>","tool":"<tool-name-or-empty>","arguments":"<json-string-or-{}>"}],"taskId":""}. Use schedule/update/list/cancel/clear.',
60
+ parameters: {
61
+ type: 'object',
62
+ properties: {
63
+ action: {
64
+ type: 'string',
65
+ enum: ['get', 'schedule', 'update', 'list', 'cancel', 'clear']
66
+ },
67
+ items: {
68
+ type: 'array',
69
+ items: {
70
+ type: 'object',
71
+ properties: {
72
+ dueAt: { type: 'string' },
73
+ task: { type: 'string' },
74
+ tool: { type: 'string' },
75
+ arguments: { type: 'string' }
76
+ },
77
+ required: ['dueAt', 'task', 'tool', 'arguments'],
78
+ additionalProperties: false
79
+ }
80
+ },
81
+ taskId: { type: 'string' }
82
+ },
83
+ required: ['action', 'items', 'taskId'],
84
+ additionalProperties: false
85
+ }
86
+ }
87
+ },
88
+ {
89
+ type: 'function',
90
+ function: {
91
+ name: 'shell',
92
+ description: 'Runs a shell command and returns its output.',
93
+ parameters: {
94
+ type: 'object',
95
+ properties: {
96
+ command: { oneOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' } }] },
97
+ workdir: { type: 'string' }
98
+ },
99
+ required: ['command'],
100
+ additionalProperties: false
101
+ }
102
+ }
103
+ },
104
+ {
105
+ type: 'function',
106
+ function: {
107
+ name: 'exec_command',
108
+ description: 'Execute a command in a PTY and return output.',
109
+ parameters: {
110
+ type: 'object',
111
+ properties: {
112
+ cmd: { type: 'string' },
113
+ workdir: { type: 'string' },
114
+ timeout_ms: { type: 'number' },
115
+ max_output_tokens: { type: 'number' },
116
+ yield_time_ms: { type: 'number' }
117
+ },
118
+ required: ['cmd'],
119
+ additionalProperties: false
120
+ }
121
+ }
122
+ },
123
+ {
124
+ type: 'function',
125
+ function: {
126
+ name: 'apply_patch',
127
+ description: 'Apply a patch to repository files.',
128
+ parameters: {
129
+ type: 'object',
130
+ properties: {
131
+ patch: { type: 'string' }
132
+ },
133
+ required: ['patch'],
134
+ additionalProperties: false
135
+ }
136
+ }
137
+ },
138
+ {
139
+ type: 'function',
140
+ function: {
141
+ name: 'update_plan',
142
+ description: 'Update the task plan.',
143
+ parameters: {
144
+ type: 'object',
145
+ properties: {
146
+ explanation: { type: 'string' },
147
+ plan: {
148
+ type: 'array',
149
+ items: {
150
+ type: 'object',
151
+ properties: {
152
+ step: { type: 'string' },
153
+ status: { type: 'string' }
154
+ },
155
+ required: ['step', 'status'],
156
+ additionalProperties: false
157
+ }
158
+ }
159
+ },
160
+ required: ['plan'],
161
+ additionalProperties: false
162
+ }
163
+ }
164
+ },
165
+ {
166
+ type: 'function',
167
+ function: {
168
+ name: 'view_image',
169
+ description: 'View a local image by file path.',
170
+ parameters: {
171
+ type: 'object',
172
+ properties: {
173
+ path: { type: 'string' }
174
+ },
175
+ required: ['path'],
176
+ additionalProperties: false
177
+ }
178
+ }
179
+ },
180
+ {
181
+ type: 'function',
182
+ function: {
183
+ name: 'list_mcp_resources',
184
+ description: 'List resources exposed by MCP servers.',
185
+ parameters: {
186
+ type: 'object',
187
+ properties: {
188
+ server: { type: 'string' },
189
+ filter: { type: 'string' },
190
+ root: { type: 'string' }
191
+ },
192
+ additionalProperties: false
193
+ }
194
+ }
195
+ },
196
+ {
197
+ type: 'function',
198
+ function: {
199
+ name: 'list_mcp_resource_templates',
200
+ description: 'List resource templates exposed by MCP servers.',
201
+ parameters: {
202
+ type: 'object',
203
+ properties: {
204
+ server: { type: 'string' },
205
+ cursor: { type: 'string' }
206
+ },
207
+ additionalProperties: false
208
+ }
209
+ }
210
+ },
211
+ {
212
+ type: 'function',
213
+ function: {
214
+ name: 'read_mcp_resource',
215
+ description: 'Read a specific MCP resource by { server, uri }.',
216
+ parameters: {
217
+ type: 'object',
218
+ properties: {
219
+ server: { type: 'string' },
220
+ uri: { type: 'string' }
221
+ },
222
+ required: ['server', 'uri'],
223
+ additionalProperties: false
224
+ }
225
+ }
226
+ }
227
+ ];
228
+ export function buildClockToolAppendOperations(hasSessionId) {
229
+ return buildClockToolAppendOperationsWithNative(hasSessionId, CLOCK_TOOL);
230
+ }
231
+ export function buildClockStandardToolAppendOperations() {
232
+ return buildClockStandardToolAppendOperationsWithNative(CLOCK_STANDARD_TOOLS);
233
+ }
@@ -0,0 +1,6 @@
1
+ import type { HubOperation } from '../ops/operations.js';
2
+ export declare function buildClockOperations(metadata: Record<string, unknown>): HubOperation[];
3
+ export declare function buildClockOperationsWithPlan(metadata: Record<string, unknown>, precomputedPlan?: {
4
+ shouldInject: boolean;
5
+ }): HubOperation[];
6
+ export declare function buildClockStandardToolsOperations(): HubOperation[];
@@ -0,0 +1,41 @@
1
+ import { readRuntimeMetadata } from '../../shared/runtime-metadata.js';
2
+ import { logClock } from '../../../servertool/clock/log.js';
3
+ import { buildClockStandardToolAppendOperations, buildClockToolAppendOperations } from './chat-process-clock-tool-schemas.js';
4
+ import { planChatClockOperationsWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js';
5
+ import { isClientInjectReady } from './client-inject-readiness.js';
6
+ function readString(value) {
7
+ return typeof value === 'string' && value.trim() ? value.trim() : undefined;
8
+ }
9
+ export function buildClockOperations(metadata) {
10
+ if (!isClientInjectReady(metadata)) {
11
+ return [];
12
+ }
13
+ const rt = (readRuntimeMetadata(metadata) ?? {});
14
+ const rawConfig = rt?.clock;
15
+ const plan = planChatClockOperationsWithNative(rt);
16
+ if (!plan.shouldInject) {
17
+ return [];
18
+ }
19
+ const sessionId = readString(metadata.sessionId);
20
+ const hasSessionId = Boolean(sessionId && sessionId.trim());
21
+ logClock('inject_schema', { hasSessionId });
22
+ return buildClockToolAppendOperations(hasSessionId);
23
+ }
24
+ export function buildClockOperationsWithPlan(metadata, precomputedPlan) {
25
+ if (!isClientInjectReady(metadata)) {
26
+ return [];
27
+ }
28
+ if (!precomputedPlan) {
29
+ return buildClockOperations(metadata);
30
+ }
31
+ if (!precomputedPlan.shouldInject) {
32
+ return [];
33
+ }
34
+ const sessionId = readString(metadata.sessionId);
35
+ const hasSessionId = Boolean(sessionId && sessionId.trim());
36
+ logClock('inject_schema', { hasSessionId });
37
+ return buildClockToolAppendOperations(hasSessionId);
38
+ }
39
+ export function buildClockStandardToolsOperations() {
40
+ return buildClockStandardToolAppendOperations();
41
+ }
@@ -0,0 +1,11 @@
1
+ import { type NativeContinueExecutionPlan } from '../../../router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js';
2
+ import type { HubOperation } from '../ops/operations.js';
3
+ import type { StandardizedRequest } from '../types/standardized.js';
4
+ type ContinueExecutionBuildOptions = {
5
+ hasActiveStopMessage?: boolean;
6
+ precomputedPlan?: NativeContinueExecutionPlan;
7
+ };
8
+ export declare function buildContinueExecutionOperations(metadata: Record<string, unknown>, options?: ContinueExecutionBuildOptions): HubOperation[];
9
+ export declare function injectContinueExecutionDirectiveIntoUserMessage(request: StandardizedRequest, metadata: Record<string, unknown>): StandardizedRequest;
10
+ export declare function resolveHasActiveStopMessageForContinueExecution(metadata: Record<string, unknown>): boolean;
11
+ export {};
@@ -0,0 +1,82 @@
1
+ import { readRuntimeMetadata } from '../../shared/runtime-metadata.js';
2
+ import { loadRoutingInstructionStateSync } from '../../../router/virtual-router/sticky-session-store.js';
3
+ import { logContinueExecution } from '../../../servertool/continue-execution/log.js';
4
+ import { buildContinueExecutionOperationsWithNative, injectContinueExecutionDirectiveWithNative, planContinueExecutionOperationsWithNative, resolveHasActiveStopMessageForContinueExecutionWithNative, resolveStopMessageSessionScopeWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js';
5
+ import { isClientInjectReady } from './client-inject-readiness.js';
6
+ const CONTINUE_EXECUTION_INJECTION_MARKER = '[routecodex:continue_execution_injection]';
7
+ const CONTINUE_EXECUTION_INJECTION_TEXT = '继续执行';
8
+ export function buildContinueExecutionOperations(metadata, options) {
9
+ const rt = (readRuntimeMetadata(metadata) ?? {});
10
+ const sessionId = readString(metadata.sessionId);
11
+ const hasSessionId = Boolean(sessionId && sessionId.trim());
12
+ if (!isClientInjectReady(metadata)) {
13
+ logContinueExecution('skip_schema_due_client_inject_unready', { hasSessionId });
14
+ return [];
15
+ }
16
+ const hasActiveStopMessage = options && typeof options.hasActiveStopMessage === 'boolean'
17
+ ? options.hasActiveStopMessage
18
+ : hasActiveStopMessageStateForContinueExecution(metadata);
19
+ const plan = options?.precomputedPlan ??
20
+ planContinueExecutionOperationsWithNative(rt, hasActiveStopMessage);
21
+ const operations = buildContinueExecutionOperationsWithNative(Boolean(plan.shouldInject));
22
+ if (operations.length === 0) {
23
+ if (hasActiveStopMessage) {
24
+ logContinueExecution('skip_schema_due_stopmessage', { hasSessionId });
25
+ }
26
+ return [];
27
+ }
28
+ logContinueExecution('inject_schema', { hasSessionId });
29
+ return operations;
30
+ }
31
+ export function injectContinueExecutionDirectiveIntoUserMessage(request, metadata) {
32
+ const rt = (readRuntimeMetadata(metadata) ?? {});
33
+ if (!isClientInjectReady(metadata)) {
34
+ return request;
35
+ }
36
+ if (rt?.serverToolFollowup === true) {
37
+ return request;
38
+ }
39
+ if (hasActiveStopMessageStateForContinueExecution(metadata)) {
40
+ const sessionId = readString(metadata.sessionId);
41
+ const hasSessionId = Boolean(sessionId && sessionId.trim());
42
+ logContinueExecution('skip_user_directive_due_stopmessage', { hasSessionId });
43
+ return request;
44
+ }
45
+ const messages = Array.isArray(request.messages) ? request.messages : [];
46
+ if (messages.length === 0) {
47
+ return request;
48
+ }
49
+ const injected = injectContinueExecutionDirectiveWithNative(messages, CONTINUE_EXECUTION_INJECTION_MARKER, CONTINUE_EXECUTION_INJECTION_TEXT);
50
+ if (!injected.changed) {
51
+ return request;
52
+ }
53
+ const sessionId = readString(metadata.sessionId);
54
+ const hasSessionId = Boolean(sessionId && sessionId.trim());
55
+ logContinueExecution('inject_user_directive', { hasSessionId });
56
+ return {
57
+ ...request,
58
+ messages: injected.messages
59
+ };
60
+ }
61
+ function hasActiveStopMessageStateForContinueExecution(metadata) {
62
+ const rt = (readRuntimeMetadata(metadata) ?? {});
63
+ const runtimeState = rt?.stopMessageState;
64
+ const persistedState = resolvePersistedStopMessageState(metadata);
65
+ return resolveHasActiveStopMessageForContinueExecutionWithNative(runtimeState, persistedState);
66
+ }
67
+ export function resolveHasActiveStopMessageForContinueExecution(metadata) {
68
+ return hasActiveStopMessageStateForContinueExecution(metadata);
69
+ }
70
+ function resolvePersistedStopMessageState(metadata) {
71
+ const sessionScope = resolveStopMessageSessionScope(metadata);
72
+ if (!sessionScope) {
73
+ return undefined;
74
+ }
75
+ return loadRoutingInstructionStateSync(sessionScope);
76
+ }
77
+ function resolveStopMessageSessionScope(metadata) {
78
+ return resolveStopMessageSessionScopeWithNative(metadata);
79
+ }
80
+ function readString(value) {
81
+ return typeof value === 'string' ? value : undefined;
82
+ }
@@ -0,0 +1,15 @@
1
+ import type { StandardizedRequest } from '../types/standardized.js';
2
+ interface GovernanceContextSource {
3
+ entryEndpoint: string;
4
+ metadata: Record<string, unknown>;
5
+ }
6
+ export interface ResolvedGovernanceContext {
7
+ entryEndpoint: string;
8
+ metadata: Record<string, unknown>;
9
+ providerProtocol: string;
10
+ metadataToolHints: unknown;
11
+ inboundStreamIntent: boolean;
12
+ rawRequestBody?: Record<string, unknown>;
13
+ }
14
+ export declare function resolveGovernanceContext(request: StandardizedRequest, context: GovernanceContextSource): ResolvedGovernanceContext;
15
+ export {};
@@ -0,0 +1,7 @@
1
+ import { resolveGovernanceContextWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-governance-semantics.js';
2
+ export function resolveGovernanceContext(request, context) {
3
+ const nativeResolved = resolveGovernanceContextWithNative(request, context);
4
+ return {
5
+ ...nativeResolved
6
+ };
7
+ }
@@ -0,0 +1,16 @@
1
+ import type { StandardizedRequest } from '../types/standardized.js';
2
+ export interface ToolGovernanceLike {
3
+ governRequest(request: StandardizedRequest, providerProtocol: string): {
4
+ request: StandardizedRequest;
5
+ summary: {
6
+ applied?: boolean;
7
+ };
8
+ };
9
+ }
10
+ interface GovernanceFinalizeOptions {
11
+ request: StandardizedRequest;
12
+ providerProtocol: string;
13
+ governanceEngine: ToolGovernanceLike;
14
+ }
15
+ export declare function finalizeGovernedRequest(options: GovernanceFinalizeOptions): StandardizedRequest;
16
+ export {};
@@ -0,0 +1,11 @@
1
+ import { finalizeGovernedRequestWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-governance-semantics.js';
2
+ export function finalizeGovernedRequest(options) {
3
+ const { request, providerProtocol, governanceEngine } = options;
4
+ const { request: sanitized, summary } = governanceEngine.governRequest(request, providerProtocol);
5
+ if (summary.applied !== true) {
6
+ return sanitized;
7
+ }
8
+ const finalized = finalizeGovernedRequestWithNative(sanitized, summary);
9
+ sanitized.metadata = finalized.metadata;
10
+ return sanitized;
11
+ }
@@ -0,0 +1,9 @@
1
+ import type { StandardizedRequest } from '../types/standardized.js';
2
+ import type { ToolGovernanceLike } from './chat-process-governance-finalize.js';
3
+ export interface GovernanceContext {
4
+ entryEndpoint: string;
5
+ requestId: string;
6
+ metadata: Record<string, unknown>;
7
+ rawPayload?: Record<string, unknown>;
8
+ }
9
+ export declare function applyRequestToolGovernance(request: StandardizedRequest, context: GovernanceContext, governanceEngine?: ToolGovernanceLike): Promise<StandardizedRequest>;
@@ -0,0 +1,47 @@
1
+ import { applyReqProcessToolGovernanceWithNative } from '../../../router/virtual-router/engine-selection/native-hub-pipeline-req-process-semantics.js';
2
+ import { maybeInjectClockRemindersAndApplyDirectives } from './chat-process-clock-reminders.js';
3
+ import { finalizeGovernedRequest } from './chat-process-governance-finalize.js';
4
+ function isRecord(value) {
5
+ return !!value && typeof value === 'object' && !Array.isArray(value);
6
+ }
7
+ function parseGovernedRequest(value) {
8
+ const row = value;
9
+ if (!Array.isArray(row.messages)) {
10
+ throw new Error('native chat governance returned malformed request envelope');
11
+ }
12
+ const normalized = {
13
+ ...row,
14
+ parameters: isRecord(row.parameters) ? row.parameters : {},
15
+ metadata: isRecord(row.metadata) ? row.metadata : {}
16
+ };
17
+ return normalized;
18
+ }
19
+ function resolveProviderProtocol(context) {
20
+ const metadataProtocol = context.metadata.providerProtocol;
21
+ if (typeof metadataProtocol === 'string' && metadataProtocol) {
22
+ return metadataProtocol;
23
+ }
24
+ return context.entryEndpoint === '/v1/messages' ? 'anthropic-chat' : 'openai-chat';
25
+ }
26
+ export async function applyRequestToolGovernance(request, context, governanceEngine) {
27
+ if (!isRecord(request) || !Array.isArray(request.messages)) {
28
+ throw new Error('chat governance input request is invalid');
29
+ }
30
+ const nativeResult = applyReqProcessToolGovernanceWithNative({
31
+ request: request,
32
+ rawPayload: context.rawPayload ?? request,
33
+ metadata: context.metadata,
34
+ entryEndpoint: context.entryEndpoint,
35
+ requestId: context.requestId
36
+ });
37
+ const governedRequest = parseGovernedRequest(nativeResult.processedRequest);
38
+ const requestAfterInject = await maybeInjectClockRemindersAndApplyDirectives(governedRequest, context.metadata, context.requestId);
39
+ if (!governanceEngine) {
40
+ return requestAfterInject;
41
+ }
42
+ return finalizeGovernedRequest({
43
+ request: requestAfterInject,
44
+ providerProtocol: resolveProviderProtocol(context),
45
+ governanceEngine
46
+ });
47
+ }
@@ -0,0 +1,8 @@
1
+ import type { StandardizedRequest } from '../types/standardized.js';
2
+ interface GovernedControlOpsOptions {
3
+ request: StandardizedRequest;
4
+ governed: Record<string, unknown>;
5
+ inboundStreamIntent: boolean;
6
+ }
7
+ export declare function applyGovernedControlOperations(options: GovernedControlOpsOptions): StandardizedRequest;
8
+ export {};
@@ -0,0 +1,5 @@
1
+ import { applyGovernedControlOperationsWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-governance-semantics.js';
2
+ export function applyGovernedControlOperations(options) {
3
+ const { request, governed, inboundStreamIntent } = options;
4
+ return applyGovernedControlOperationsWithNative(request, governed, inboundStreamIntent);
5
+ }
@@ -0,0 +1,12 @@
1
+ import type { StandardizedRequest } from '../types/standardized.js';
2
+ interface GovernedFilterCallOptions {
3
+ request: StandardizedRequest;
4
+ entryEndpoint: string;
5
+ requestId: string;
6
+ providerProtocol: string;
7
+ inboundStreamIntent: boolean;
8
+ metadataToolHints: unknown;
9
+ rawRequestBody?: Record<string, unknown>;
10
+ }
11
+ export declare function runGovernedChatRequestFilters(options: GovernedFilterCallOptions): Promise<Record<string, unknown>>;
12
+ export {};
@@ -0,0 +1,18 @@
1
+ import { runChatRequestToolFilters } from '../../shared/tool-filter-pipeline.js';
2
+ import { buildGovernedFilterPayloadWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-governed-filter-semantics.js';
3
+ export async function runGovernedChatRequestFilters(options) {
4
+ const { request } = options;
5
+ const shaped = buildGovernedFilterPayloadWithNative(request);
6
+ const governedPayload = await runChatRequestToolFilters(shaped, {
7
+ entryEndpoint: options.entryEndpoint,
8
+ requestId: options.requestId,
9
+ model: request.model,
10
+ profile: options.providerProtocol,
11
+ stream: options.inboundStreamIntent,
12
+ toolFilterHints: options.metadataToolHints,
13
+ rawPayload: options.rawRequestBody && typeof options.rawRequestBody === 'object'
14
+ ? options.rawRequestBody
15
+ : undefined
16
+ });
17
+ return governedPayload;
18
+ }
@@ -0,0 +1,8 @@
1
+ import type { StandardizedRequest } from '../types/standardized.js';
2
+ interface GovernedMergeOptions {
3
+ request: StandardizedRequest;
4
+ governed: Record<string, unknown>;
5
+ inboundStreamIntent: boolean;
6
+ }
7
+ export declare function buildGovernedMergedRequest(options: GovernedMergeOptions): StandardizedRequest;
8
+ export {};
@@ -0,0 +1,11 @@
1
+ import { castGovernedTools } from './chat-process-tool-normalization.js';
2
+ import { applyGovernedMergeRequestWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-governance-semantics.js';
3
+ export function buildGovernedMergedRequest(options) {
4
+ const { request, governed, inboundStreamIntent } = options;
5
+ const governanceTimestamp = Date.now();
6
+ const mergedBase = applyGovernedMergeRequestWithNative(request, governed, inboundStreamIntent, governanceTimestamp);
7
+ return {
8
+ ...mergedBase,
9
+ tools: governed.tools !== undefined ? castGovernedTools(governed.tools) : request.tools
10
+ };
11
+ }
@@ -0,0 +1,3 @@
1
+ import type { StandardizedMessage } from '../types/standardized.js';
2
+ export declare function stripHistoricalImageAttachments(messages: StandardizedMessage[]): StandardizedMessage[];
3
+ export declare function containsImageAttachment(messages: StandardizedMessage[]): boolean;
@@ -0,0 +1,18 @@
1
+ import { analyzeChatProcessMedia, stripChatProcessHistoricalImages } from '../../../router/virtual-router/engine-selection/native-router-hotpath.js';
2
+ export function stripHistoricalImageAttachments(messages) {
3
+ if (!Array.isArray(messages) || !messages.length) {
4
+ return messages;
5
+ }
6
+ const placeholderText = '[Image omitted]';
7
+ const stripped = stripChatProcessHistoricalImages(messages, placeholderText);
8
+ if (stripped.changed !== true || !Array.isArray(stripped.messages)) {
9
+ return messages;
10
+ }
11
+ return stripped.messages;
12
+ }
13
+ export function containsImageAttachment(messages) {
14
+ if (!Array.isArray(messages) || !messages.length) {
15
+ return false;
16
+ }
17
+ return analyzeChatProcessMedia(messages).containsCurrentTurnImage === true;
18
+ }
@@ -0,0 +1,23 @@
1
+ import type { ProcessedRequest, StandardizedRequest } from '../types/standardized.js';
2
+ import type { JsonObject } from '../types/json.js';
3
+ export interface HubProcessNodeResult {
4
+ success: boolean;
5
+ metadata: {
6
+ node: string;
7
+ executionTime: number;
8
+ startTime: number;
9
+ endTime: number;
10
+ dataProcessed?: {
11
+ messages: number;
12
+ tools: number;
13
+ };
14
+ };
15
+ error?: {
16
+ code?: string;
17
+ message: string;
18
+ details?: JsonObject;
19
+ };
20
+ }
21
+ export declare function buildProcessedRequest(request: StandardizedRequest): ProcessedRequest;
22
+ export declare function buildSuccessResult(startTime: number, processedRequest: ProcessedRequest): HubProcessNodeResult;
23
+ export declare function buildErrorResult(startTime: number, error: unknown): HubProcessNodeResult;
@@ -0,0 +1,24 @@
1
+ import { applyChatProcessedRequestWithNative, buildChatNodeResultMetadataWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-node-result-semantics.js';
2
+ export function buildProcessedRequest(request) {
3
+ const timestamp = Date.now();
4
+ return applyChatProcessedRequestWithNative(request, timestamp);
5
+ }
6
+ export function buildSuccessResult(startTime, processedRequest) {
7
+ const endTime = Date.now();
8
+ const metadata = buildChatNodeResultMetadataWithNative(startTime, endTime, processedRequest.messages.length, processedRequest.tools?.length ?? 0, true);
9
+ return {
10
+ success: true,
11
+ metadata: metadata
12
+ };
13
+ }
14
+ export function buildErrorResult(startTime, error) {
15
+ const endTime = Date.now();
16
+ const metadata = buildChatNodeResultMetadataWithNative(startTime, endTime, 0, 0, false);
17
+ return {
18
+ success: false,
19
+ metadata: metadata,
20
+ error: {
21
+ message: error instanceof Error ? error.message : String(error)
22
+ }
23
+ };
24
+ }
@@ -0,0 +1,14 @@
1
+ import type { StandardizedMessage, StandardizedRequest } from '../types/standardized.js';
2
+ type PendingToolSyncDeps = {
3
+ loadPendingServerToolInjectionFn?: (sessionId: string) => Promise<{
4
+ afterToolCallIds?: unknown;
5
+ messages?: unknown;
6
+ } | null>;
7
+ clearPendingServerToolInjectionFn?: (sessionId: string) => Promise<void>;
8
+ analyzePendingToolSyncFn?: (messages: StandardizedMessage[], afterToolCallIds: string[]) => {
9
+ ready: boolean;
10
+ insertAt: number;
11
+ };
12
+ };
13
+ export declare function maybeInjectPendingServerToolResultsAfterClientTools(request: StandardizedRequest, metadata: Record<string, unknown>, deps?: PendingToolSyncDeps): Promise<StandardizedRequest>;
14
+ export {};