@jsonstudio/llms 0.6.2172 → 0.6.3214

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. package/README.md +2 -0
  2. package/dist/conversion/args-mapping.js +8 -0
  3. package/dist/conversion/bridge-actions.js +367 -0
  4. package/dist/conversion/bridge-id-utils.js +13 -0
  5. package/dist/conversion/{shared/bridge-instructions.js → bridge-instructions.js} +2 -1
  6. package/dist/conversion/{shared/bridge-message-utils.d.ts → bridge-message-utils.d.ts} +1 -1
  7. package/dist/conversion/{shared/bridge-message-utils.js → bridge-message-utils.js} +5 -150
  8. package/dist/conversion/{shared/bridge-metadata.d.ts → bridge-metadata.d.ts} +1 -0
  9. package/dist/conversion/bridge-metadata.js +5 -0
  10. package/dist/conversion/bridge-policies.js +11 -0
  11. package/dist/conversion/codecs/gemini-openai-codec.js +27 -8
  12. package/dist/conversion/codecs/responses-openai-codec.js +1 -1
  13. package/dist/conversion/{shared/compaction-detect.d.ts → compaction-detect.d.ts} +1 -1
  14. package/dist/conversion/compaction-detect.js +4 -0
  15. package/dist/conversion/compat/actions/apply-patch-fixer.js +2 -2
  16. package/dist/conversion/compat/actions/deepseek-web-response.d.ts +0 -1
  17. package/dist/conversion/compat/actions/deepseek-web-response.js +15 -405
  18. package/dist/conversion/compat/actions/harvest-tool-calls-from-text.js +1 -1
  19. package/dist/conversion/compat/actions/lmstudio-responses-fc-ids.js +1 -1
  20. package/dist/conversion/compat/actions/qwen-transform.js +74 -2
  21. package/dist/conversion/compat/actions/snapshot.js +1 -1
  22. package/dist/conversion/compat/antigravity-session-signature.js +71 -1
  23. package/dist/conversion/compat/profiles/chat-deepseek-web.json +0 -22
  24. package/dist/conversion/compat/profiles/chat-gemini-cli.json +0 -7
  25. package/dist/conversion/compat/profiles/chat-gemini.json +0 -6
  26. package/dist/conversion/compat/profiles/chat-glm.json +251 -72
  27. package/dist/conversion/compat/profiles/chat-iflow.json +174 -39
  28. package/dist/conversion/compat/profiles/chat-lmstudio.json +43 -14
  29. package/dist/conversion/hub/core/detour-registry.d.ts +2 -0
  30. package/dist/conversion/hub/core/hub-context.d.ts +3 -1
  31. package/dist/conversion/hub/core/index.d.ts +1 -0
  32. package/dist/conversion/hub/core/stage-driver.js +2 -0
  33. package/dist/conversion/hub/format-adapters/anthropic-format-adapter.js +15 -4
  34. package/dist/conversion/hub/format-adapters/chat-format-adapter.js +15 -4
  35. package/dist/conversion/hub/format-adapters/gemini-format-adapter.js +15 -4
  36. package/dist/conversion/hub/format-adapters/responses-format-adapter.js +15 -4
  37. package/dist/conversion/hub/hub-feature.js +3 -2
  38. package/dist/conversion/hub/node-support.js +9 -4
  39. package/dist/conversion/hub/operation-table/operation-table-runner.js +12 -8
  40. package/dist/conversion/hub/operation-table/semantic-mappers/anthropic-mapper.js +3 -3
  41. package/dist/conversion/hub/operation-table/semantic-mappers/chat-mapper.js +16 -13
  42. package/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapper.js +6 -10
  43. package/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper.js +21 -73
  44. package/dist/conversion/hub/ops/operations.js +2 -121
  45. package/dist/conversion/hub/pipeline/compat/compat-engine.js +6 -0
  46. package/dist/conversion/hub/pipeline/compat/compat-pipeline-executor.d.ts +1 -1
  47. package/dist/conversion/hub/pipeline/compat/compat-pipeline-executor.js +33 -1042
  48. package/dist/conversion/hub/pipeline/compat/compat-profile-resolver.js +2 -0
  49. package/dist/conversion/hub/pipeline/compat/compat-profile-store.js +2 -0
  50. package/dist/conversion/hub/pipeline/compat/compat-types.d.ts +14 -17
  51. package/dist/conversion/hub/pipeline/compat/native-adapter-context.d.ts +3 -0
  52. package/dist/conversion/hub/pipeline/compat/native-adapter-context.js +39 -0
  53. package/dist/conversion/hub/pipeline/hub-pipeline.d.ts +1 -0
  54. package/dist/conversion/hub/pipeline/hub-pipeline.js +165 -265
  55. package/dist/conversion/hub/pipeline/session-identifiers.js +6 -196
  56. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage1_format_parse/index.d.ts +1 -2
  57. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage1_format_parse/index.js +37 -1
  58. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/index.d.ts +1 -1
  59. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/index.js +69 -81
  60. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/semantic-lift.d.ts +14 -0
  61. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/semantic-lift.js +24 -0
  62. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/archive/shell-like-tool-call-normalization-fallback.d.ts +2 -0
  63. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/archive/shell-like-tool-call-normalization-fallback.js +157 -0
  64. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-capture-orchestration.d.ts +16 -0
  65. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-capture-orchestration.js +29 -0
  66. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-factories.js +3 -1
  67. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/index.d.ts +2 -15
  68. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/index.js +8 -595
  69. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.d.ts +8 -0
  70. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.js +28 -0
  71. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-diagnostics.d.ts +2 -0
  72. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-diagnostics.js +4 -0
  73. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-snapshot.d.ts +10 -0
  74. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-snapshot.js +12 -0
  75. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/context-merge.d.ts +3 -0
  76. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/context-merge.js +30 -0
  77. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/index.js +9 -129
  78. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage2_format_build/index.d.ts +1 -4
  79. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage2_format_build/index.js +9 -26
  80. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage3_compat/index.js +32 -14
  81. package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage1_tool_governance/index.d.ts +2 -2
  82. package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage1_tool_governance/index.js +48 -8
  83. package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage2_route_select/index.js +20 -3
  84. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/index.js +11 -199
  85. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/stream-json-sniffer.d.ts +3 -0
  86. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/stream-json-sniffer.js +81 -0
  87. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage2_format_parse/index.d.ts +1 -2
  88. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage2_format_parse/index.js +36 -1
  89. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage3_semantic_map/index.js +3 -1
  90. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/chat-process-semantics-bridge.d.ts +6 -0
  91. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/chat-process-semantics-bridge.js +17 -0
  92. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.d.ts +9 -0
  93. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.js +28 -0
  94. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.d.ts +1 -2
  95. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.js +14 -102
  96. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage2_sse_stream/index.js +3 -1
  97. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage1_tool_governance/index.js +54 -39
  98. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage2_finalize/index.js +18 -5
  99. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.d.ts +11 -1
  100. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.js +10 -32
  101. package/dist/conversion/hub/pipeline/stages/utils.js +17 -1
  102. package/dist/conversion/hub/pipeline/target-utils.js +14 -91
  103. package/dist/conversion/hub/pipelines/inbound.js +3 -1
  104. package/dist/conversion/hub/pipelines/outbound.js +2 -0
  105. package/dist/conversion/hub/policy/policy-engine.js +9 -3
  106. package/dist/conversion/hub/policy/protocol-spec.js +21 -149
  107. package/dist/conversion/hub/process/chat-process-anthropic-alias.d.ts +2 -0
  108. package/dist/conversion/hub/process/chat-process-anthropic-alias.js +36 -0
  109. package/dist/conversion/hub/process/chat-process-clock-directive-parser.d.ts +5 -0
  110. package/dist/conversion/hub/process/chat-process-clock-directive-parser.js +48 -0
  111. package/dist/conversion/hub/process/chat-process-clock-directives.d.ts +24 -0
  112. package/dist/conversion/hub/process/chat-process-clock-directives.js +98 -0
  113. package/dist/conversion/hub/process/chat-process-clock-reminder-directives.d.ts +8 -0
  114. package/dist/conversion/hub/process/chat-process-clock-reminder-directives.js +42 -0
  115. package/dist/conversion/hub/process/chat-process-clock-reminder-finalize.d.ts +14 -0
  116. package/dist/conversion/hub/process/chat-process-clock-reminder-finalize.js +10 -0
  117. package/dist/conversion/hub/process/chat-process-clock-reminder-messages.d.ts +5 -0
  118. package/dist/conversion/hub/process/chat-process-clock-reminder-messages.js +10 -0
  119. package/dist/conversion/hub/process/chat-process-clock-reminder-orchestration.d.ts +30 -0
  120. package/dist/conversion/hub/process/chat-process-clock-reminder-orchestration.js +68 -0
  121. package/dist/conversion/hub/process/chat-process-clock-reminder-time-tag.d.ts +9 -0
  122. package/dist/conversion/hub/process/chat-process-clock-reminder-time-tag.js +18 -0
  123. package/dist/conversion/hub/process/chat-process-clock-reminders.d.ts +2 -0
  124. package/dist/conversion/hub/process/chat-process-clock-reminders.js +104 -0
  125. package/dist/conversion/hub/process/chat-process-clock-tool-schemas.d.ts +3 -0
  126. package/dist/conversion/hub/process/chat-process-clock-tool-schemas.js +233 -0
  127. package/dist/conversion/hub/process/chat-process-clock-tools.d.ts +6 -0
  128. package/dist/conversion/hub/process/chat-process-clock-tools.js +41 -0
  129. package/dist/conversion/hub/process/chat-process-continue-execution.d.ts +11 -0
  130. package/dist/conversion/hub/process/chat-process-continue-execution.js +82 -0
  131. package/dist/conversion/hub/process/chat-process-governance-context.d.ts +15 -0
  132. package/dist/conversion/hub/process/chat-process-governance-context.js +7 -0
  133. package/dist/conversion/hub/process/chat-process-governance-finalize.d.ts +16 -0
  134. package/dist/conversion/hub/process/chat-process-governance-finalize.js +11 -0
  135. package/dist/conversion/hub/process/chat-process-governance-orchestration.d.ts +9 -0
  136. package/dist/conversion/hub/process/chat-process-governance-orchestration.js +47 -0
  137. package/dist/conversion/hub/process/chat-process-governed-control-ops.d.ts +8 -0
  138. package/dist/conversion/hub/process/chat-process-governed-control-ops.js +5 -0
  139. package/dist/conversion/hub/process/chat-process-governed-filter-call.d.ts +12 -0
  140. package/dist/conversion/hub/process/chat-process-governed-filter-call.js +18 -0
  141. package/dist/conversion/hub/process/chat-process-governed-merge.d.ts +8 -0
  142. package/dist/conversion/hub/process/chat-process-governed-merge.js +11 -0
  143. package/dist/conversion/hub/process/chat-process-media.d.ts +3 -0
  144. package/dist/conversion/hub/process/chat-process-media.js +18 -0
  145. package/dist/conversion/hub/process/chat-process-node-result.d.ts +23 -0
  146. package/dist/conversion/hub/process/chat-process-node-result.js +24 -0
  147. package/dist/conversion/hub/process/chat-process-pending-tool-sync.d.ts +14 -0
  148. package/dist/conversion/hub/process/chat-process-pending-tool-sync.js +52 -0
  149. package/dist/conversion/hub/process/chat-process-post-governed-normalization.d.ts +8 -0
  150. package/dist/conversion/hub/process/chat-process-post-governed-normalization.js +16 -0
  151. package/dist/conversion/hub/process/chat-process-review.d.ts +2 -0
  152. package/dist/conversion/hub/process/chat-process-review.js +8 -0
  153. package/dist/conversion/hub/process/chat-process-servertool-orchestration.d.ts +8 -0
  154. package/dist/conversion/hub/process/chat-process-servertool-orchestration.js +22 -0
  155. package/dist/conversion/hub/process/chat-process-tool-normalization.d.ts +2 -0
  156. package/dist/conversion/hub/process/chat-process-tool-normalization.js +4 -0
  157. package/dist/conversion/hub/process/chat-process-web-search-intent.d.ts +12 -0
  158. package/dist/conversion/hub/process/chat-process-web-search-intent.js +13 -0
  159. package/dist/conversion/hub/process/chat-process-web-search-tool-schema.d.ts +3 -0
  160. package/dist/conversion/hub/process/chat-process-web-search-tool-schema.js +4 -0
  161. package/dist/conversion/hub/process/chat-process-web-search.d.ts +8 -0
  162. package/dist/conversion/hub/process/chat-process-web-search.js +26 -0
  163. package/dist/conversion/hub/process/chat-process.d.ts +2 -19
  164. package/dist/conversion/hub/process/chat-process.js +12 -1701
  165. package/dist/conversion/hub/process/client-inject-readiness.d.ts +1 -0
  166. package/dist/conversion/hub/process/client-inject-readiness.js +4 -0
  167. package/dist/conversion/hub/registry.js +5 -2
  168. package/dist/conversion/hub/response/chat-response-utils.js +5 -86
  169. package/dist/conversion/hub/response/provider-response.d.ts +9 -0
  170. package/dist/conversion/hub/response/provider-response.js +20 -26
  171. package/dist/conversion/hub/response/response-mappers.js +25 -27
  172. package/dist/conversion/hub/response/response-runtime.js +30 -98
  173. package/dist/conversion/hub/semantic-mappers/anthropic-mapper.d.ts +1 -0
  174. package/dist/conversion/hub/semantic-mappers/anthropic-mapper.js +1 -0
  175. package/dist/conversion/hub/semantic-mappers/chat-mapper.d.ts +1 -0
  176. package/dist/conversion/hub/semantic-mappers/chat-mapper.js +1 -0
  177. package/dist/conversion/hub/semantic-mappers/gemini-mapper.d.ts +1 -0
  178. package/dist/conversion/hub/semantic-mappers/gemini-mapper.js +1 -0
  179. package/dist/conversion/hub/semantic-mappers/responses-mapper.d.ts +1 -0
  180. package/dist/conversion/hub/semantic-mappers/responses-mapper.js +1 -0
  181. package/dist/conversion/hub/snapshot-recorder.js +11 -4
  182. package/dist/conversion/hub/standardized-bridge.js +11 -288
  183. package/dist/conversion/hub/tool-governance/engine.d.ts +8 -0
  184. package/dist/conversion/hub/tool-governance/engine.js +25 -63
  185. package/dist/conversion/hub/tool-governance/rules.js +73 -69
  186. package/dist/conversion/hub/tool-session-compat.d.ts +2 -2
  187. package/dist/conversion/hub/tool-session-compat.js +17 -231
  188. package/dist/conversion/hub/tool-surface/tool-surface-engine.js +6 -4
  189. package/dist/conversion/index.d.ts +1 -2
  190. package/dist/conversion/index.js +1 -2
  191. package/dist/conversion/jsonish.js +20 -0
  192. package/dist/conversion/mcp-injection.js +7 -0
  193. package/dist/conversion/media.js +4 -0
  194. package/dist/conversion/{shared/metadata-passthrough.d.ts → metadata-passthrough.d.ts} +1 -1
  195. package/dist/conversion/metadata-passthrough.js +20 -0
  196. package/dist/conversion/payload-budget.js +47 -0
  197. package/dist/conversion/protocol-field-allowlists.d.ts +7 -0
  198. package/dist/conversion/protocol-field-allowlists.js +9 -0
  199. package/dist/conversion/{shared/protocol-state.d.ts → protocol-state.d.ts} +2 -2
  200. package/dist/conversion/protocol-state.js +27 -0
  201. package/dist/conversion/{shared/errors.d.ts → provider-protocol-error.d.ts} +0 -3
  202. package/dist/conversion/provider-protocol-error.js +25 -0
  203. package/dist/conversion/responses/responses-host-policy.js +2 -12
  204. package/dist/conversion/responses/responses-openai-bridge/response-payload.js +14 -87
  205. package/dist/conversion/responses/responses-openai-bridge/types.d.ts +2 -1
  206. package/dist/conversion/responses/responses-openai-bridge.d.ts +1 -1
  207. package/dist/conversion/responses/responses-openai-bridge.js +62 -62
  208. package/dist/conversion/{shared/runtime-metadata.d.ts → runtime-metadata.d.ts} +1 -1
  209. package/dist/conversion/runtime-metadata.js +31 -0
  210. package/dist/conversion/shared/anthropic-message-utils.js +170 -21
  211. package/dist/conversion/shared/chat-envelope-validator.js +2 -126
  212. package/dist/conversion/shared/chat-output-normalizer.js +2 -54
  213. package/dist/conversion/shared/chat-request-filters.d.ts +3 -4
  214. package/dist/conversion/shared/chat-request-filters.js +22 -78
  215. package/dist/conversion/shared/gemini-tool-utils.d.ts +1 -1
  216. package/dist/conversion/shared/gemini-tool-utils.js +9 -524
  217. package/dist/conversion/shared/openai-finalizer.js +3 -1
  218. package/dist/conversion/shared/openai-message-normalize.js +13 -285
  219. package/dist/conversion/shared/output-content-normalizer.js +9 -112
  220. package/dist/conversion/shared/reasoning-mapping.js +2 -6
  221. package/dist/conversion/shared/reasoning-normalizer.js +10 -1
  222. package/dist/conversion/shared/reasoning-tool-normalizer.js +14 -126
  223. package/dist/conversion/shared/reasoning-tool-parser.js +4 -87
  224. package/dist/conversion/shared/reasoning-utils.js +7 -8
  225. package/dist/conversion/shared/responses-conversation-store.js +5 -83
  226. package/dist/conversion/shared/responses-output-builder.js +63 -55
  227. package/dist/conversion/shared/responses-reasoning-registry.d.ts +14 -2
  228. package/dist/conversion/shared/responses-reasoning-registry.js +41 -7
  229. package/dist/conversion/shared/responses-request-adapter.d.ts +7 -1
  230. package/dist/conversion/shared/responses-request-adapter.js +14 -1
  231. package/dist/conversion/shared/responses-response-utils.js +103 -14
  232. package/dist/conversion/shared/responses-tool-utils.d.ts +1 -0
  233. package/dist/conversion/shared/responses-tool-utils.js +91 -15
  234. package/dist/conversion/shared/streaming-text-extractor.js +2 -7
  235. package/dist/conversion/shared/text-markup-normalizer/normalize.d.ts +2 -2
  236. package/dist/conversion/shared/text-markup-normalizer/normalize.js +43 -17
  237. package/dist/conversion/shared/text-markup-normalizer.d.ts +3 -2
  238. package/dist/conversion/shared/text-markup-normalizer.js +2 -1
  239. package/dist/conversion/shared/thought-signature-validator.js +3 -2
  240. package/dist/conversion/shared/tool-argument-repairer.js +2 -2
  241. package/dist/conversion/shared/tool-call-id-manager.js +5 -7
  242. package/dist/conversion/shared/tool-call-utils.js +3 -45
  243. package/dist/conversion/shared/tool-filter-pipeline.js +5 -100
  244. package/dist/conversion/shared/tool-governor.d.ts +6 -0
  245. package/dist/conversion/shared/tool-governor.js +45 -127
  246. package/dist/conversion/shared/tool-harvester.js +2 -8
  247. package/dist/conversion/shared/tool-mapping.d.ts +1 -1
  248. package/dist/conversion/shared/tool-mapping.js +2 -5
  249. package/dist/conversion/shared/tooling.d.ts +0 -4
  250. package/dist/conversion/shared/tooling.js +18 -0
  251. package/dist/conversion/{shared/snapshot-utils.d.ts → snapshot-utils.d.ts} +11 -0
  252. package/dist/conversion/{shared/snapshot-utils.js → snapshot-utils.js} +14 -23
  253. package/dist/conversion/{shared → types}/bridge-message-types.d.ts +2 -0
  254. package/dist/conversion/types/text-markup-normalizer.d.ts +13 -0
  255. package/dist/filters/special/request-tools-normalize.js +1 -1
  256. package/dist/filters/special/response-tool-text-canonicalize.js +2 -2
  257. package/dist/native/router_hotpath_napi.node +0 -0
  258. package/dist/quota/quota-manager.js +31 -59
  259. package/dist/quota/quota-state.js +14 -7
  260. package/dist/router/virtual-router/bootstrap/profile-builder.d.ts +1 -0
  261. package/dist/router/virtual-router/bootstrap/profile-builder.js +13 -0
  262. package/dist/router/virtual-router/bootstrap/provider-normalization.d.ts +2 -0
  263. package/dist/router/virtual-router/bootstrap/provider-normalization.js +4 -1
  264. package/dist/router/virtual-router/bootstrap/streaming-helpers.d.ts +7 -0
  265. package/dist/router/virtual-router/bootstrap/streaming-helpers.js +44 -0
  266. package/dist/router/virtual-router/bootstrap.js +2 -0
  267. package/dist/router/virtual-router/engine/provider-key/parse.d.ts +1 -6
  268. package/dist/router/virtual-router/engine/provider-key/parse.js +1 -43
  269. package/dist/router/virtual-router/engine/routing-state/store.d.ts +1 -2
  270. package/dist/router/virtual-router/engine/routing-state/store.js +50 -14
  271. package/dist/router/virtual-router/engine-legacy/config.d.ts +11 -0
  272. package/dist/router/virtual-router/engine-legacy/config.js +108 -0
  273. package/dist/router/virtual-router/engine-legacy/direct-model.d.ts +10 -0
  274. package/dist/router/virtual-router/engine-legacy/direct-model.js +38 -0
  275. package/dist/router/virtual-router/engine-legacy/health.d.ts +13 -0
  276. package/dist/router/virtual-router/engine-legacy/health.js +104 -0
  277. package/dist/router/virtual-router/engine-legacy/helpers.d.ts +16 -0
  278. package/dist/router/virtual-router/engine-legacy/helpers.js +226 -0
  279. package/dist/router/virtual-router/engine-legacy/route-finalize.d.ts +9 -0
  280. package/dist/router/virtual-router/engine-legacy/route-finalize.js +84 -0
  281. package/dist/router/virtual-router/engine-legacy/route-selection.d.ts +17 -0
  282. package/dist/router/virtual-router/engine-legacy/route-selection.js +205 -0
  283. package/dist/router/virtual-router/engine-legacy/route-state-allowlist.d.ts +3 -0
  284. package/dist/router/virtual-router/engine-legacy/route-state-allowlist.js +36 -0
  285. package/dist/router/virtual-router/engine-legacy/route-state.d.ts +12 -0
  286. package/dist/router/virtual-router/engine-legacy/route-state.js +386 -0
  287. package/dist/router/virtual-router/engine-legacy/route-utils.d.ts +19 -0
  288. package/dist/router/virtual-router/engine-legacy/route-utils.js +212 -0
  289. package/dist/router/virtual-router/engine-legacy/routing.d.ts +8 -0
  290. package/dist/router/virtual-router/engine-legacy/routing.js +8 -0
  291. package/dist/router/virtual-router/engine-legacy/selection-core.d.ts +28 -0
  292. package/dist/router/virtual-router/engine-legacy/selection-core.js +112 -0
  293. package/dist/router/virtual-router/engine-legacy/selection-state.d.ts +16 -0
  294. package/dist/router/virtual-router/engine-legacy/selection-state.js +187 -0
  295. package/dist/router/virtual-router/engine-legacy/state-accessors.d.ts +21 -0
  296. package/dist/router/virtual-router/engine-legacy/state-accessors.js +118 -0
  297. package/dist/router/virtual-router/engine-legacy.d.ts +123 -0
  298. package/dist/router/virtual-router/engine-legacy.js +194 -0
  299. package/dist/router/virtual-router/engine-logging.d.ts +2 -0
  300. package/dist/router/virtual-router/engine-logging.js +11 -5
  301. package/dist/router/virtual-router/engine-selection/alias-selection.js +45 -83
  302. package/dist/router/virtual-router/engine-selection/key-parsing.js +9 -26
  303. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-directive-parser.d.ts +20 -0
  304. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-directive-parser.js +163 -0
  305. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-directives.d.ts +7 -0
  306. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-directives.js +103 -0
  307. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-orchestration-semantics.d.ts +10 -0
  308. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-orchestration-semantics.js +110 -0
  309. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-semantics.d.ts +8 -0
  310. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-semantics.js +281 -0
  311. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-time-tag-semantics.d.ts +1 -0
  312. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-time-tag-semantics.js +25 -0
  313. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminders-semantics.d.ts +4 -0
  314. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminders-semantics.js +44 -0
  315. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-tool-schema-semantics.d.ts +2 -0
  316. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-tool-schema-semantics.js +62 -0
  317. package/dist/router/virtual-router/engine-selection/native-chat-process-governance-semantics.d.ts +40 -0
  318. package/dist/router/virtual-router/engine-selection/native-chat-process-governance-semantics.js +484 -0
  319. package/dist/router/virtual-router/engine-selection/native-chat-process-governed-filter-semantics.d.ts +9 -0
  320. package/dist/router/virtual-router/engine-selection/native-chat-process-governed-filter-semantics.js +64 -0
  321. package/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.d.ts +5 -0
  322. package/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.js +163 -0
  323. package/dist/router/virtual-router/engine-selection/native-chat-process-post-governed-normalization-semantics.d.ts +1 -0
  324. package/dist/router/virtual-router/engine-selection/native-chat-process-post-governed-normalization-semantics.js +49 -0
  325. package/dist/router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.d.ts +30 -0
  326. package/dist/router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js +446 -0
  327. package/dist/router/virtual-router/engine-selection/native-chat-process-web-search-intent-semantics.d.ts +1 -0
  328. package/dist/router/virtual-router/engine-selection/native-chat-process-web-search-intent-semantics.js +49 -0
  329. package/dist/router/virtual-router/engine-selection/native-chat-request-filter-semantics.d.ts +1 -0
  330. package/dist/router/virtual-router/engine-selection/native-chat-request-filter-semantics.js +54 -0
  331. package/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics.d.ts +134 -0
  332. package/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics.js +729 -0
  333. package/dist/router/virtual-router/engine-selection/native-hub-bridge-policy-semantics.d.ts +72 -0
  334. package/dist/router/virtual-router/engine-selection/native-hub-bridge-policy-semantics.js +405 -0
  335. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.d.ts +18 -0
  336. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.js +317 -0
  337. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-governance-semantics.d.ts +22 -0
  338. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-governance-semantics.js +154 -0
  339. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-inbound-outbound-semantics.d.ts +22 -0
  340. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-inbound-outbound-semantics.js +426 -0
  341. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics.d.ts +57 -0
  342. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics.js +705 -0
  343. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.d.ts +46 -0
  344. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.js +503 -0
  345. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics.d.ts +146 -0
  346. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics.js +570 -0
  347. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-process-semantics.d.ts +25 -0
  348. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-process-semantics.js +148 -0
  349. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics.d.ts +25 -0
  350. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics.js +637 -0
  351. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-session-identifiers-semantics.d.ts +11 -0
  352. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-session-identifiers-semantics.js +207 -0
  353. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-target-semantics.d.ts +3 -0
  354. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-target-semantics.js +128 -0
  355. package/dist/router/virtual-router/engine-selection/native-router-hotpath-analysis.d.ts +57 -0
  356. package/dist/router/virtual-router/engine-selection/native-router-hotpath-analysis.js +217 -0
  357. package/dist/router/virtual-router/engine-selection/native-router-hotpath-loader.d.ts +5 -0
  358. package/dist/router/virtual-router/engine-selection/native-router-hotpath-loader.js +320 -0
  359. package/dist/router/virtual-router/engine-selection/native-router-hotpath-policy.d.ts +5 -0
  360. package/dist/router/virtual-router/engine-selection/native-router-hotpath-policy.js +18 -0
  361. package/dist/router/virtual-router/engine-selection/native-router-hotpath-quota-buckets.d.ts +25 -0
  362. package/dist/router/virtual-router/engine-selection/native-router-hotpath-quota-buckets.js +85 -0
  363. package/dist/router/virtual-router/engine-selection/native-router-hotpath.d.ts +59 -0
  364. package/dist/router/virtual-router/engine-selection/native-router-hotpath.js +117 -0
  365. package/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.d.ts +151 -0
  366. package/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.js +1371 -0
  367. package/dist/router/virtual-router/engine-selection/native-snapshot-hooks.d.ts +2 -0
  368. package/dist/router/virtual-router/engine-selection/native-snapshot-hooks.js +69 -0
  369. package/dist/router/virtual-router/engine-selection/native-virtual-router-alias-selection-semantics.d.ts +16 -0
  370. package/dist/router/virtual-router/engine-selection/native-virtual-router-alias-selection-semantics.js +96 -0
  371. package/dist/router/virtual-router/engine-selection/native-virtual-router-engine-proxy.d.ts +16 -0
  372. package/dist/router/virtual-router/engine-selection/native-virtual-router-engine-proxy.js +14 -0
  373. package/dist/router/virtual-router/engine-selection/native-virtual-router-routing-instructions-semantics.d.ts +2 -0
  374. package/dist/router/virtual-router/engine-selection/native-virtual-router-routing-instructions-semantics.js +86 -0
  375. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-actions-semantics.d.ts +6 -0
  376. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-actions-semantics.js +85 -0
  377. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-semantics.d.ts +9 -0
  378. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-semantics.js +70 -0
  379. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-state-semantics.d.ts +2 -0
  380. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-state-semantics.js +76 -0
  381. package/dist/router/virtual-router/engine-selection/route-utils.js +1 -1
  382. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-session-lease.d.ts +10 -0
  383. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-session-lease.js +231 -0
  384. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-target-split.d.ts +4 -0
  385. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-target-split.js +43 -0
  386. package/dist/router/virtual-router/engine-selection/tier-selection-quota-integration.d.ts +27 -0
  387. package/dist/router/virtual-router/engine-selection/tier-selection-quota-integration.js +216 -0
  388. package/dist/router/virtual-router/engine-selection/tier-selection-select.d.ts +1 -1
  389. package/dist/router/virtual-router/engine-selection/tier-selection-select.js +128 -129
  390. package/dist/router/virtual-router/engine-selection/tier-selection.js +2 -265
  391. package/dist/router/virtual-router/engine.d.ts +22 -105
  392. package/dist/router/virtual-router/engine.js +274 -1632
  393. package/dist/router/virtual-router/features.js +2 -2
  394. package/dist/router/virtual-router/load-balancer.d.ts +8 -0
  395. package/dist/router/virtual-router/load-balancer.js +65 -2
  396. package/dist/router/virtual-router/provider-registry.js +2 -0
  397. package/dist/router/virtual-router/routing-instructions/clean.d.ts +3 -0
  398. package/dist/router/virtual-router/routing-instructions/clean.js +34 -0
  399. package/dist/router/virtual-router/routing-instructions/parse.d.ts +18 -0
  400. package/dist/router/virtual-router/routing-instructions/parse.js +377 -0
  401. package/dist/router/virtual-router/routing-instructions/state.d.ts +4 -0
  402. package/dist/router/virtual-router/routing-instructions/state.js +245 -0
  403. package/dist/router/virtual-router/routing-instructions/types.d.ts +70 -0
  404. package/dist/router/virtual-router/routing-instructions/types.js +2 -0
  405. package/dist/router/virtual-router/routing-instructions.d.ts +5 -91
  406. package/dist/router/virtual-router/routing-instructions.js +4 -628
  407. package/dist/router/virtual-router/routing-stop-message-actions.js +91 -112
  408. package/dist/router/virtual-router/routing-stop-message-parser.js +9 -132
  409. package/dist/router/virtual-router/routing-stop-message-state-codec.d.ts +1 -0
  410. package/dist/router/virtual-router/routing-stop-message-state-codec.js +58 -71
  411. package/dist/router/virtual-router/sticky-session-store.d.ts +4 -0
  412. package/dist/router/virtual-router/sticky-session-store.js +23 -83
  413. package/dist/router/virtual-router/stop-message-file-resolver.d.ts +1 -0
  414. package/dist/router/virtual-router/stop-message-file-resolver.js +10 -0
  415. package/dist/router/virtual-router/stop-message-state-sync.d.ts +1 -1
  416. package/dist/router/virtual-router/stop-message-state-sync.js +3 -7
  417. package/dist/router/virtual-router/token-counter.js +0 -9
  418. package/dist/router/virtual-router/tool-signals.js +21 -3
  419. package/dist/router/virtual-router/types.d.ts +13 -7
  420. package/dist/servertool/clock/config.js +23 -51
  421. package/dist/servertool/clock/io.js +1 -0
  422. package/dist/servertool/clock/session-scope.d.ts +2 -2
  423. package/dist/servertool/clock/session-scope.js +29 -40
  424. package/dist/servertool/engine.d.ts +9 -0
  425. package/dist/servertool/engine.js +267 -79
  426. package/dist/servertool/handlers/antigravity-thought-signature-bootstrap.js +3 -3
  427. package/dist/servertool/handlers/clock-auto.js +1 -1
  428. package/dist/servertool/handlers/clock.js +2 -2
  429. package/dist/servertool/handlers/compaction-detect.d.ts +1 -1
  430. package/dist/servertool/handlers/compaction-detect.js +1 -1
  431. package/dist/servertool/handlers/continue-execution.js +8 -4
  432. package/dist/servertool/handlers/followup-request-builder.js +18 -1
  433. package/dist/servertool/handlers/gemini-empty-reply-continue.js +8 -2
  434. package/dist/servertool/handlers/iflow-model-error-retry.js +1 -1
  435. package/dist/servertool/handlers/recursive-detection-guard.js +1 -1
  436. package/dist/servertool/handlers/review.d.ts +1 -0
  437. package/dist/servertool/handlers/review.js +180 -0
  438. package/dist/servertool/handlers/stop-message-auto/blocked-report.js +59 -1
  439. package/dist/servertool/handlers/stop-message-auto/iflow-followup.d.ts +23 -2
  440. package/dist/servertool/handlers/stop-message-auto/iflow-followup.js +398 -90
  441. package/dist/servertool/handlers/stop-message-auto/routing-state.d.ts +5 -15
  442. package/dist/servertool/handlers/stop-message-auto/routing-state.js +29 -55
  443. package/dist/servertool/handlers/stop-message-auto/runtime-utils.d.ts +6 -0
  444. package/dist/servertool/handlers/stop-message-auto/runtime-utils.js +36 -62
  445. package/dist/servertool/handlers/stop-message-auto.js +393 -77
  446. package/dist/servertool/handlers/vision.js +1 -1
  447. package/dist/servertool/handlers/web-search.js +1 -1
  448. package/dist/servertool/reenter-backend.js +1 -1
  449. package/dist/servertool/server-side-tools.d.ts +1 -0
  450. package/dist/servertool/server-side-tools.js +92 -54
  451. package/dist/servertool/stop-gateway-context.js +1 -1
  452. package/dist/servertool/stop-message-compare-context.js +1 -1
  453. package/dist/servertool/types.d.ts +17 -0
  454. package/dist/sse/json-to-sse/event-generators/responses.d.ts +4 -0
  455. package/dist/sse/json-to-sse/event-generators/responses.js +95 -1
  456. package/dist/sse/json-to-sse/sequencers/responses-sequencer.js +6 -4
  457. package/dist/sse/sse-to-json/builders/response-builder.d.ts +8 -0
  458. package/dist/sse/sse-to-json/builders/response-builder.js +162 -4
  459. package/dist/sse/sse-to-json/responses-sse-to-json-converter.js +2 -0
  460. package/dist/sse/types/responses-types.d.ts +6 -2
  461. package/dist/tools/apply-patch/patch-text/normalize.js +11 -0
  462. package/dist/tools/apply-patch/structured/coercion.js +5 -0
  463. package/dist/tools/args-json.js +29 -0
  464. package/dist/tools/exec-command/validator.d.ts +4 -1
  465. package/dist/tools/exec-command/validator.js +87 -3
  466. package/dist/tools/tool-registry.d.ts +7 -1
  467. package/dist/tools/tool-registry.js +3 -2
  468. package/package.json +121 -10
  469. package/dist/conversion/shared/args-mapping.js +0 -221
  470. package/dist/conversion/shared/bridge-actions.js +0 -881
  471. package/dist/conversion/shared/bridge-id-utils.js +0 -79
  472. package/dist/conversion/shared/bridge-metadata.js +0 -1
  473. package/dist/conversion/shared/bridge-policies.js +0 -195
  474. package/dist/conversion/shared/compaction-detect.js +0 -59
  475. package/dist/conversion/shared/errors.js +0 -31
  476. package/dist/conversion/shared/jsonish.js +0 -177
  477. package/dist/conversion/shared/mcp-injection.js +0 -173
  478. package/dist/conversion/shared/media.js +0 -9
  479. package/dist/conversion/shared/metadata-passthrough.js +0 -57
  480. package/dist/conversion/shared/payload-budget.js +0 -248
  481. package/dist/conversion/shared/protocol-field-allowlists.d.ts +0 -7
  482. package/dist/conversion/shared/protocol-field-allowlists.js +0 -149
  483. package/dist/conversion/shared/protocol-state.js +0 -23
  484. package/dist/conversion/shared/runtime-metadata.js +0 -23
  485. package/dist/conversion/shared/snapshot-hooks.d.ts +0 -11
  486. package/dist/conversion/shared/snapshot-hooks.js +0 -503
  487. package/dist/conversion/shared/text-markup-normalizer/extractors-apply-patch.d.ts +0 -2
  488. package/dist/conversion/shared/text-markup-normalizer/extractors-apply-patch.js +0 -129
  489. package/dist/conversion/shared/text-markup-normalizer/extractors-json.d.ts +0 -4
  490. package/dist/conversion/shared/text-markup-normalizer/extractors-json.js +0 -637
  491. package/dist/conversion/shared/text-markup-normalizer/extractors-shared.d.ts +0 -21
  492. package/dist/conversion/shared/text-markup-normalizer/extractors-shared.js +0 -177
  493. package/dist/conversion/shared/text-markup-normalizer/extractors-transcript.d.ts +0 -5
  494. package/dist/conversion/shared/text-markup-normalizer/extractors-transcript.js +0 -385
  495. package/dist/conversion/shared/text-markup-normalizer/extractors-xml.d.ts +0 -10
  496. package/dist/conversion/shared/text-markup-normalizer/extractors-xml.js +0 -602
  497. package/dist/conversion/shared/text-markup-normalizer/extractors.d.ts +0 -5
  498. package/dist/conversion/shared/text-markup-normalizer/extractors.js +0 -4
  499. package/dist/conversion/shared/tool-canonicalizer.d.ts +0 -2
  500. package/dist/conversion/shared/tool-canonicalizer.js +0 -42
  501. package/dist/servertool/handlers/stop-message-stage-policy/bd-runtime.d.ts +0 -18
  502. package/dist/servertool/handlers/stop-message-stage-policy/bd-runtime.js +0 -398
  503. package/dist/servertool/handlers/stop-message-stage-policy/decision.d.ts +0 -9
  504. package/dist/servertool/handlers/stop-message-stage-policy/decision.js +0 -127
  505. package/dist/servertool/handlers/stop-message-stage-policy/observation.d.ts +0 -2
  506. package/dist/servertool/handlers/stop-message-stage-policy/observation.js +0 -179
  507. package/dist/servertool/handlers/stop-message-stage-policy/templates.d.ts +0 -4
  508. package/dist/servertool/handlers/stop-message-stage-policy/templates.js +0 -96
  509. package/dist/servertool/handlers/stop-message-stage-policy/text-utils.d.ts +0 -9
  510. package/dist/servertool/handlers/stop-message-stage-policy/text-utils.js +0 -89
  511. package/dist/servertool/handlers/stop-message-stage-policy/types.d.ts +0 -59
  512. package/dist/servertool/handlers/stop-message-stage-policy.d.ts +0 -3
  513. package/dist/servertool/handlers/stop-message-stage-policy.js +0 -2
  514. /package/dist/conversion/{shared/args-mapping.d.ts → args-mapping.d.ts} +0 -0
  515. /package/dist/conversion/{shared/bridge-actions.d.ts → bridge-actions.d.ts} +0 -0
  516. /package/dist/conversion/{shared/bridge-id-utils.d.ts → bridge-id-utils.d.ts} +0 -0
  517. /package/dist/conversion/{shared/bridge-instructions.d.ts → bridge-instructions.d.ts} +0 -0
  518. /package/dist/conversion/{shared/bridge-policies.d.ts → bridge-policies.d.ts} +0 -0
  519. /package/dist/conversion/{shared/jsonish.d.ts → jsonish.d.ts} +0 -0
  520. /package/dist/conversion/{shared/mcp-injection.d.ts → mcp-injection.d.ts} +0 -0
  521. /package/dist/conversion/{shared/media.d.ts → media.d.ts} +0 -0
  522. /package/dist/conversion/{shared/payload-budget.d.ts → payload-budget.d.ts} +0 -0
  523. /package/dist/conversion/{shared → types}/bridge-message-types.js +0 -0
  524. /package/dist/{servertool/handlers/stop-message-stage-policy/types.js → conversion/types/text-markup-normalizer.js} +0 -0
@@ -0,0 +1,104 @@
1
+ import { readRuntimeMetadata } from '../../runtime-metadata.js';
2
+ import { clearClockSession, resolveClockConfig, startClockDaemonIfNeeded } from '../../../servertool/clock/task-store.js';
3
+ import { logClock } from '../../../servertool/clock/log.js';
4
+ import { resolveClockSessionScope } from '../../../servertool/clock/session-scope.js';
5
+ import { applyHubOperations } from '../ops/operations.js';
6
+ import { buildClockStandardToolsOperations } from './chat-process-clock-tools.js';
7
+ import { reserveClockDueReminderForRequest, scheduleClockReminderDirectiveMessages } from './chat-process-clock-reminder-orchestration.js';
8
+ import { buildClockReminderMessages, buildClockReminderMetadata, buildDueReminderUserMessage } from './chat-process-clock-reminder-finalize.js';
9
+ import { resolveClockReminderTimeTagLine } from './chat-process-clock-reminder-time-tag.js';
10
+ import { extractClockReminderDirectives } from './chat-process-clock-reminder-directives.js';
11
+ import { isClientInjectReady } from './client-inject-readiness.js';
12
+ import { resolveClockReminderFlowPlanWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-clock-reminders-semantics.js';
13
+ function resolveSessionIdForClock(metadata, request) {
14
+ const requestMetadata = request.metadata && typeof request.metadata === 'object' && !Array.isArray(request.metadata)
15
+ ? request.metadata
16
+ : null;
17
+ return resolveClockSessionScope(metadata, requestMetadata);
18
+ }
19
+ export async function maybeInjectClockRemindersAndApplyDirectives(request, metadata, requestId) {
20
+ if (!isClientInjectReady(metadata)) {
21
+ return request;
22
+ }
23
+ const rt = readRuntimeMetadata(metadata);
24
+ const flowPlan = resolveClockReminderFlowPlanWithNative(rt);
25
+ // Do not inject reminders or apply clock directives during internal servertool followup hops.
26
+ if (flowPlan.skipForServerToolFollowup) {
27
+ return request;
28
+ }
29
+ const rawConfig = rt?.clock;
30
+ const clockConfig = resolveClockConfig(rawConfig);
31
+ if (!clockConfig) {
32
+ return request;
33
+ }
34
+ try {
35
+ await startClockDaemonIfNeeded(clockConfig);
36
+ }
37
+ catch {
38
+ // best-effort
39
+ }
40
+ const sessionId = resolveSessionIdForClock(metadata, request);
41
+ const messages = Array.isArray(request.messages) ? request.messages : [];
42
+ // 1) Apply <**clock:clear**> and <**clock:{...}**> marker extraction (latest user message only).
43
+ const { hadClear, clockScheduleDirectives, baseMessages } = extractClockReminderDirectives(messages);
44
+ if (hadClear) {
45
+ if (sessionId) {
46
+ try {
47
+ await clearClockSession(sessionId);
48
+ logClock('cleared', { sessionId });
49
+ }
50
+ catch {
51
+ // best-effort: user directive should not crash request
52
+ }
53
+ }
54
+ // Continue: still inject per-request time tag (but skip due reminders).
55
+ }
56
+ // 2) Apply private schedule directives: <**clock:{time,message}**>
57
+ // Convert to actual clock scheduling and append synthetic tool_call/tool_result messages
58
+ // so downstream model sees canonical tool semantics.
59
+ const markerToolMessages = await scheduleClockReminderDirectiveMessages({
60
+ clockScheduleDirectives,
61
+ sessionId,
62
+ requestId,
63
+ clockConfig
64
+ });
65
+ // 3) Inject due reminders as a user message + attach reservation for response-side commit.
66
+ const { reservation, dueInjectText } = await reserveClockDueReminderForRequest({
67
+ hadClear,
68
+ sessionId,
69
+ requestId,
70
+ clockConfig
71
+ });
72
+ const dueUserMessage = buildDueReminderUserMessage(reservation, dueInjectText);
73
+ // 4) When we have due tasks, ensure a standard tool set is present (best-effort).
74
+ let nextRequest = request;
75
+ if (dueUserMessage) {
76
+ const ensureToolsOps = buildClockStandardToolsOperations();
77
+ nextRequest = applyHubOperations(nextRequest, ensureToolsOps);
78
+ }
79
+ // 5) Per-request time injection (user time tag or paired clock.get tool result).
80
+ const timeTagLine = await resolveClockReminderTimeTagLine();
81
+ const withReservationMetadata = buildClockReminderMetadata({
82
+ nextRequest,
83
+ metadata,
84
+ dueUserMessage,
85
+ reservation
86
+ });
87
+ // Always inject time via user-role content to keep the tag visible without adding
88
+ // extra tool-call semantics that may distract the model.
89
+ //
90
+ // IMPORTANT: do not append an extra trailing user message, otherwise the Virtual Router
91
+ // sees `latestMessageFromUser=true` and will force "thinking:user-input" even during
92
+ // tool followups (last message role=tool), which breaks `coding/search/tools` routing.
93
+ const timeInjectedMessages = buildClockReminderMessages({
94
+ baseMessages,
95
+ markerToolMessages,
96
+ dueUserMessage,
97
+ timeTagLine
98
+ });
99
+ return {
100
+ ...nextRequest,
101
+ messages: timeInjectedMessages,
102
+ metadata: withReservationMetadata
103
+ };
104
+ }
@@ -0,0 +1,3 @@
1
+ import type { HubOperation } from '../ops/operations.js';
2
+ export declare function buildClockToolAppendOperations(hasSessionId: boolean): HubOperation[];
3
+ export declare function buildClockStandardToolAppendOperations(): HubOperation[];
@@ -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 '../../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 '../../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 {};