@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
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@jsonstudio/llms",
3
- "version": "0.6.2172",
3
+ "version": "0.6.3214",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "scripts": {
9
- "build": "node scripts/clean-dist.mjs && node scripts/bump-version.mjs && node ./node_modules/typescript/bin/tsc -p tsconfig.json && node scripts/tools/copy-compat-profiles.mjs",
10
- "build:dev": "node scripts/clean-dist.mjs && node scripts/bump-version.mjs && node ./node_modules/typescript/bin/tsc -p tsconfig.json && node scripts/tools/copy-compat-profiles.mjs",
11
- "build:ci": "node scripts/clean-dist.mjs && node ./node_modules/typescript/bin/tsc -p tsconfig.json && node scripts/tools/copy-compat-profiles.mjs",
12
- "build:coverage": "node scripts/clean-dist.mjs && node ./node_modules/typescript/bin/tsc -p tsconfig.coverage.json && node scripts/tools/copy-compat-profiles.mjs",
9
+ "build": "node scripts/clean-dist.mjs && node scripts/build-native-hotpath.mjs && node scripts/bump-version.mjs && node ./node_modules/typescript/bin/tsc -p tsconfig.json && node scripts/tools/copy-compat-profiles.mjs",
10
+ "build:dev": "node scripts/clean-dist.mjs && node scripts/build-native-hotpath.mjs && node scripts/bump-version.mjs && node ./node_modules/typescript/bin/tsc -p tsconfig.json && node scripts/tools/copy-compat-profiles.mjs",
11
+ "build:ci": "node scripts/clean-dist.mjs && node scripts/build-native-hotpath.mjs && node ./node_modules/typescript/bin/tsc -p tsconfig.json && node scripts/tools/copy-compat-profiles.mjs",
12
+ "build:coverage": "node scripts/clean-dist.mjs && node scripts/build-native-hotpath.mjs && node ./node_modules/typescript/bin/tsc -p tsconfig.coverage.json && node scripts/tools/copy-compat-profiles.mjs",
13
13
  "lint": "eslint --no-eslintrc -c .eslintrc.json src --ext .ts --no-cache",
14
14
  "lint:fix": "eslint --no-eslintrc -c .eslintrc.json src --ext .ts --no-cache --fix",
15
15
  "postbuild": "node scripts/tests/run-matrix-ci.mjs",
@@ -28,10 +28,120 @@
28
28
  "replay:responses:chat-sse": "node scripts/exp3-responses-sse-to-chat-sse.mjs",
29
29
  "replay:responses:loop": "node scripts/exp4-responses-sse-loop.mjs",
30
30
  "test:quota-manager": "npm run build:dev && node scripts/tests/quota-manager-402-reset.mjs",
31
- "test:virtual-router": "npm run build:dev && node scripts/tests/virtual-router-prefer-autoclear.mjs && node scripts/tests/virtual-router-dry-run.mjs && node scripts/tests/virtual-router-context.mjs && node scripts/tests/virtual-router-antigravity-alias-pin.mjs && node scripts/tests/virtual-router-antigravity-session-binding.mjs && node scripts/tests/virtual-router-antigravity-auth-verify.mjs",
31
+ "test:virtual-router": "npm run build:dev && node scripts/tests/virtual-router-prefer-autoclear.mjs && node scripts/tests/virtual-router-dry-run.mjs && node scripts/tests/virtual-router-context.mjs && node scripts/tests/virtual-router-antigravity-alias-pin.mjs && node scripts/tests/virtual-router-antigravity-session-binding.mjs && node scripts/tests/virtual-router-antigravity-auth-verify.mjs && node scripts/tests/virtual-router-native-hotpath.mjs && node scripts/tests/virtual-router-native-parity.mjs",
32
32
  "test:virtual-router-health": "npm run build:dev && node scripts/tests/virtual-router-health.mjs",
33
33
  "test:golden": "npm run build:ci && node scripts/tests/chat-golden-roundtrip.mjs && node scripts/tests/anthropic-golden-roundtrip.mjs",
34
- "test:coverage": "node scripts/run-ci-coverage.mjs"
34
+ "test:coverage:virtual-router-hotpath": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-virtual-router-hotpath --include=dist/router/virtual-router/engine-selection/native-router-hotpath-quota-buckets.js --exclude=scripts/** node scripts/tests/coverage-virtual-router-native-hotpath.mjs",
35
+ "test:coverage:virtual-router-tier-selection": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-virtual-router-tier-selection --include=dist/router/virtual-router/engine-selection/tier-selection-quota-integration.js --exclude=scripts/** node scripts/tests/coverage-virtual-router-tier-selection.mjs",
36
+ "test:coverage:virtual-router-alias-selection-semantics": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-virtual-router-alias-selection-semantics --include=dist/router/virtual-router/engine-selection/native-virtual-router-alias-selection-semantics.js --exclude=scripts/** node scripts/tests/coverage-virtual-router-alias-selection-semantics.mjs",
37
+ "test:coverage:virtual-router-stop-message-parser": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-virtual-router-stop-message-parser --include=dist/router/virtual-router/routing-stop-message-parser.js --include=dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-semantics.js --exclude=scripts/** node scripts/tests/coverage-virtual-router-stop-message-parser.mjs",
38
+ "test:coverage:virtual-router-stop-message-state-codec": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-virtual-router-stop-message-state-codec --include=dist/router/virtual-router/routing-stop-message-state-codec.js --include=dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-state-semantics.js --exclude=scripts/** node scripts/tests/coverage-virtual-router-stop-message-state-codec.mjs",
39
+ "test:coverage:virtual-router-stop-message-actions": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-virtual-router-stop-message-actions --include=dist/router/virtual-router/routing-stop-message-actions.js --include=dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-actions-semantics.js --exclude=scripts/** node scripts/tests/coverage-virtual-router-stop-message-actions.mjs",
40
+ "test:coverage:hub-resp-inbound-sse-stream-sniffer": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-resp-inbound-sse-stream-sniffer --include=dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/stream-json-sniffer.js --exclude=scripts/** node scripts/tests/coverage-hub-resp-inbound-sse-stream-sniffer.mjs",
41
+ "test:coverage:hub-req-inbound-context-tool-snapshot": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-req-inbound-context-tool-snapshot --include=dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-*.js --exclude=scripts/** node scripts/tests/coverage-hub-req-inbound-context-tool-snapshot.mjs",
42
+ "test:coverage:hub-chat-process-media": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-media --include=dist/conversion/hub/process/chat-process-media.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-media.mjs",
43
+ "test:coverage:hub-chat-process-web-search-intent": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-web-search-intent --include=dist/conversion/hub/process/chat-process-web-search-intent.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-web-search-intent.mjs",
44
+ "test:coverage:hub-chat-process-web-search": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-web-search --include=dist/conversion/hub/process/chat-process-web-search.js --include=dist/conversion/hub/process/chat-process-web-search-tool-schema.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-web-search.mjs",
45
+ "test:coverage:hub-chat-process-anthropic-alias": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-anthropic-alias --include=dist/conversion/hub/process/chat-process-anthropic-alias.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-anthropic-alias.mjs",
46
+ "test:coverage:hub-chat-process-governed-merge": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-governed-merge --include=dist/conversion/hub/process/chat-process-governed-merge.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-governed-merge.mjs",
47
+ "test:coverage:hub-chat-process-governed-control-ops": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-governed-control-ops --include=dist/conversion/hub/process/chat-process-governed-control-ops.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-governed-control-ops.mjs",
48
+ "test:coverage:hub-chat-process-servertool-orchestration": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-servertool-orchestration --include=dist/conversion/hub/process/chat-process-servertool-orchestration.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-servertool-orchestration.mjs",
49
+ "test:coverage:hub-chat-process-post-governed-normalization": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-post-governed-normalization --include=dist/conversion/hub/process/chat-process-post-governed-normalization.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-post-governed-normalization.mjs",
50
+ "test:coverage:hub-chat-process-governed-filter-call": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-governed-filter-call --include=dist/conversion/hub/process/chat-process-governed-filter-call.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-governed-filter-call.mjs",
51
+ "test:coverage:hub-chat-process-governance-finalize": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-governance-finalize --include=dist/conversion/hub/process/chat-process-governance-finalize.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-governance-finalize.mjs",
52
+ "test:coverage:hub-chat-process-governance-context": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-governance-context --include=dist/conversion/hub/process/chat-process-governance-context.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-governance-context.mjs",
53
+ "test:coverage:hub-chat-process-governance-orchestration": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-governance-orchestration --include=dist/conversion/hub/process/chat-process-governance-orchestration.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-governance-orchestration.mjs",
54
+ "test:coverage:hub-chat-process-node-result": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-node-result --include=dist/conversion/hub/process/chat-process-node-result.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-node-result.mjs",
55
+ "test:coverage:hub-chat-process-tool-normalization": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-tool-normalization --include=dist/conversion/hub/process/chat-process-tool-normalization.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-tool-normalization.mjs",
56
+ "test:coverage:hub-chat-process-clock-directive-parser": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-clock-directive-parser --include=dist/conversion/hub/process/chat-process-clock-directive-parser.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-clock-directive-parser.mjs",
57
+ "test:coverage:hub-chat-process-clock-directives": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-clock-directives --include=dist/conversion/hub/process/chat-process-clock-directives.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-clock-directives.mjs",
58
+ "test:coverage:hub-chat-process-clock-directives-fallback": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-clock-directives-fallback --include=dist/conversion/hub/process/chat-process-clock-directives.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-clock-directives-fallback.mjs",
59
+ "test:coverage:hub-chat-process-clock-reminder-directives": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-clock-reminder-directives --include=dist/conversion/hub/process/chat-process-clock-reminder-directives.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-clock-reminder-directives.mjs",
60
+ "test:coverage:hub-chat-process-clock-reminder-finalize": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-clock-reminder-finalize --include=dist/conversion/hub/process/chat-process-clock-reminder-finalize.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-clock-reminder-finalize.mjs",
61
+ "test:coverage:hub-chat-process-clock-reminder-messages": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-clock-reminder-messages --include=dist/conversion/hub/process/chat-process-clock-reminder-messages.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-clock-reminder-messages.mjs",
62
+ "test:coverage:hub-chat-process-clock-reminder-orchestration": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-clock-reminder-orchestration --include=dist/conversion/hub/process/chat-process-clock-reminder-orchestration.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-clock-reminder-orchestration.mjs",
63
+ "test:coverage:hub-chat-process-clock-reminder-time-tag": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-clock-reminder-time-tag --include=dist/conversion/hub/process/chat-process-clock-reminder-time-tag.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-clock-reminder-time-tag.mjs",
64
+ "test:coverage:native-chat-process-clock-reminder-semantics": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-native-chat-process-clock-reminder-semantics --include=dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-semantics.js --exclude=scripts/** node scripts/tests/coverage-native-chat-process-clock-reminder-semantics.mjs",
65
+ "test:coverage:hub-chat-process-clock-tools": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-clock-tools --include=dist/conversion/hub/process/chat-process-clock-tool*.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-clock-tools.mjs",
66
+ "test:coverage:hub-chat-process-continue-execution": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-continue-execution --include=dist/conversion/hub/process/chat-process-continue-execution.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-continue-execution.mjs",
67
+ "test:coverage:native-chat-process-governance-semantics": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-native-chat-process-governance-semantics --include=dist/router/virtual-router/engine-selection/native-chat-process-governance-semantics.js --exclude=scripts/** node scripts/tests/coverage-native-chat-process-governance-semantics.mjs",
68
+ "test:coverage:native-chat-process-servertool-orchestration-semantics": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-native-chat-process-servertool-orchestration-semantics --include=dist/router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js --exclude=scripts/** node scripts/tests/coverage-native-chat-process-servertool-orchestration-semantics.mjs",
69
+ "test:coverage:hub-chat-process-pending-tool-sync": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-pending-tool-sync --include=dist/conversion/hub/process/chat-process-pending-tool-sync.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-pending-tool-sync.mjs",
70
+ "test:coverage:hub-chat-process-entry-client-inject": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-process-entry-client-inject --include=dist/conversion/hub/process/chat-process.js --include=dist/conversion/hub/process/client-inject-readiness.js --exclude=scripts/** node scripts/tests/coverage-hub-chat-process-entry-client-inject.mjs",
71
+ "test:coverage:hub-req-inbound-semantic-lift": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-req-inbound-semantic-lift --include=dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/semantic-lift.js --exclude=scripts/** node scripts/tests/coverage-hub-req-inbound-semantic-lift.mjs",
72
+ "test:coverage:hub-req-inbound-context-capture-orchestration": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-req-inbound-context-capture-orchestration --include=dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-capture-orchestration.js --exclude=scripts/** node scripts/tests/coverage-hub-req-inbound-context-capture-orchestration.mjs",
73
+ "test:coverage:hub-req-inbound-responses-context-snapshot": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-req-inbound-responses-context-snapshot --include=dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.js --exclude=scripts/** node scripts/tests/coverage-hub-req-inbound-responses-context-snapshot.mjs",
74
+ "test:coverage:hub-req-outbound-context-merge": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-req-outbound-context-merge --include=dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/context-merge.js --exclude=scripts/** node scripts/tests/coverage-hub-req-outbound-context-merge.mjs",
75
+ "test:coverage:hub-req-process-route-select": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-req-process-route-select --include=dist/conversion/hub/pipeline/stages/req_process/req_process_stage2_route_select/index.js --include=dist/router/virtual-router/engine-selection/native-hub-pipeline-req-process-semantics.js --exclude=scripts/** node scripts/tests/coverage-hub-req-process-route-select.mjs",
76
+ "test:compare:hub-req-process-route-select": "npm run build:ci && node scripts/tests/hub-req-process-route-select-v1-v2-compare.mjs",
77
+ "test:coverage:hub-resp-outbound-client-semantics": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-resp-outbound-client-semantics --include=dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/chat-process-semantics-bridge.js --exclude=scripts/** node scripts/tests/coverage-hub-resp-outbound-client-semantics.mjs",
78
+ "test:coverage:hub-resp-outbound-client-remap-switch": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-resp-outbound-client-remap-switch --include=dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.js --exclude=scripts/** node scripts/tests/coverage-hub-resp-outbound-client-remap-protocol-switch.mjs",
79
+ "test:coverage:virtual-router-tier-antigravity-session-lease": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-virtual-router-tier-antigravity-session-lease --include=dist/router/virtual-router/engine-selection/tier-selection-antigravity-session-lease.js --exclude=scripts/** node scripts/tests/coverage-virtual-router-tier-antigravity-session-lease.mjs",
80
+ "test:coverage:virtual-router-tier-antigravity-target-split": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-virtual-router-tier-antigravity-target-split --include=dist/router/virtual-router/engine-selection/tier-selection-antigravity-target-split.js --exclude=scripts/** node scripts/tests/coverage-virtual-router-tier-antigravity-target-split.mjs",
81
+ "test:coverage": "node scripts/run-ci-coverage.mjs",
82
+ "verify:module-blackbox": "node scripts/tests/module-blackbox-gate.mjs",
83
+ "verify:shadow-gate": "node scripts/check-shadow-coverage-gate.mjs",
84
+ "verify:shadow-gate:all": "node scripts/verify-shadow-gate-all.mjs",
85
+ "verify:shadow-gate:virtual-router-hotpath": "npm run test:coverage:virtual-router-hotpath && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-virtual-router-hotpath/coverage-summary.json --module virtual-router.hotpath.quota-buckets && node scripts/promote-shadow-module.mjs --module virtual-router.hotpath.quota-buckets",
86
+ "verify:shadow-gate:virtual-router-tier-selection": "npm run test:coverage:virtual-router-tier-selection && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-virtual-router-tier-selection/coverage-summary.json --module virtual-router.tier-selection-integration && node scripts/promote-shadow-module.mjs --module virtual-router.tier-selection-integration",
87
+ "verify:shadow-gate:virtual-router-alias-selection-semantics": "npm run test:coverage:virtual-router-alias-selection-semantics && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-virtual-router-alias-selection-semantics/coverage-summary.json --module virtual-router.alias-selection-semantics && node scripts/promote-shadow-module.mjs --module virtual-router.alias-selection-semantics",
88
+ "verify:shadow-gate:virtual-router-stop-message-parser": "npm run test:coverage:virtual-router-stop-message-parser && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-virtual-router-stop-message-parser/coverage-summary.json --module virtual-router.stop-message-parser && node scripts/promote-shadow-module.mjs --module virtual-router.stop-message-parser",
89
+ "verify:shadow-gate:virtual-router-stop-message-state-codec": "npm run test:coverage:virtual-router-stop-message-state-codec && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-virtual-router-stop-message-state-codec/coverage-summary.json --module virtual-router.stop-message-state-codec && node scripts/promote-shadow-module.mjs --module virtual-router.stop-message-state-codec",
90
+ "verify:shadow-gate:virtual-router-stop-message-actions": "npm run test:coverage:virtual-router-stop-message-actions && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-virtual-router-stop-message-actions/coverage-summary.json --module virtual-router.stop-message-actions && node scripts/promote-shadow-module.mjs --module virtual-router.stop-message-actions",
91
+ "verify:shadow-gate:hub-resp-inbound-sse-stream-sniffer": "npm run test:coverage:hub-resp-inbound-sse-stream-sniffer && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-resp-inbound-sse-stream-sniffer/coverage-summary.json --module hub.resp-inbound.sse-stream-json-sniffer && node scripts/promote-shadow-module.mjs --module hub.resp-inbound.sse-stream-json-sniffer",
92
+ "verify:shadow-gate:hub-req-inbound-context-tool-snapshot": "npm run test:coverage:hub-req-inbound-context-tool-snapshot && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-req-inbound-context-tool-snapshot/coverage-summary.json --module hub.req-inbound.context-tool-output-snapshot && node scripts/promote-shadow-module.mjs --module hub.req-inbound.context-tool-output-snapshot",
93
+ "verify:shadow-gate:hub-chat-process-media": "npm run test:coverage:hub-chat-process-media && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-media/coverage-summary.json --module hub.chat-process.media-attachments && node scripts/promote-shadow-module.mjs --module hub.chat-process.media-attachments",
94
+ "verify:shadow-gate:hub-chat-process-web-search-intent": "npm run test:coverage:hub-chat-process-web-search-intent && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-web-search-intent/coverage-summary.json --module hub.chat-process.web-search-intent && node scripts/promote-shadow-module.mjs --module hub.chat-process.web-search-intent",
95
+ "verify:shadow-gate:hub-chat-process-web-search": "npm run test:coverage:hub-chat-process-web-search && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-web-search/coverage-summary.json --module hub.chat-process.web-search && node scripts/promote-shadow-module.mjs --module hub.chat-process.web-search",
96
+ "verify:shadow-gate:hub-chat-process-anthropic-alias": "npm run test:coverage:hub-chat-process-anthropic-alias && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-anthropic-alias/coverage-summary.json --module hub.chat-process.anthropic-alias && node scripts/promote-shadow-module.mjs --module hub.chat-process.anthropic-alias",
97
+ "verify:shadow-gate:hub-chat-process-governed-merge": "npm run test:coverage:hub-chat-process-governed-merge && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-governed-merge/coverage-summary.json --module hub.chat-process.governed-merge && node scripts/promote-shadow-module.mjs --module hub.chat-process.governed-merge",
98
+ "verify:shadow-gate:hub-chat-process-governed-control-ops": "npm run test:coverage:hub-chat-process-governed-control-ops && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-governed-control-ops/coverage-summary.json --module hub.chat-process.governed-control-ops && node scripts/promote-shadow-module.mjs --module hub.chat-process.governed-control-ops",
99
+ "verify:shadow-gate:hub-chat-process-servertool-orchestration": "npm run test:coverage:hub-chat-process-servertool-orchestration && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-servertool-orchestration/coverage-summary.json --module hub.chat-process.servertool-orchestration && node scripts/promote-shadow-module.mjs --module hub.chat-process.servertool-orchestration",
100
+ "verify:shadow-gate:hub-chat-process-post-governed-normalization": "npm run test:coverage:hub-chat-process-post-governed-normalization && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-post-governed-normalization/coverage-summary.json --module hub.chat-process.post-governed-normalization && node scripts/promote-shadow-module.mjs --module hub.chat-process.post-governed-normalization",
101
+ "verify:shadow-gate:hub-chat-process-governed-filter-call": "npm run test:coverage:hub-chat-process-governed-filter-call && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-governed-filter-call/coverage-summary.json --module hub.chat-process.governed-filter-call && node scripts/promote-shadow-module.mjs --module hub.chat-process.governed-filter-call",
102
+ "verify:shadow-gate:hub-chat-process-governance-finalize": "npm run test:coverage:hub-chat-process-governance-finalize && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-governance-finalize/coverage-summary.json --module hub.chat-process.governance-finalize && node scripts/promote-shadow-module.mjs --module hub.chat-process.governance-finalize",
103
+ "verify:shadow-gate:hub-chat-process-governance-context": "npm run test:coverage:hub-chat-process-governance-context && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-governance-context/coverage-summary.json --module hub.chat-process.governance-context && node scripts/promote-shadow-module.mjs --module hub.chat-process.governance-context",
104
+ "verify:shadow-gate:hub-chat-process-governance-orchestration": "npm run test:coverage:hub-chat-process-governance-orchestration && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-governance-orchestration/coverage-summary.json --module hub.chat-process.governance-orchestration && node scripts/promote-shadow-module.mjs --module hub.chat-process.governance-orchestration",
105
+ "verify:shadow-gate:hub-chat-process-node-result": "npm run test:coverage:hub-chat-process-node-result && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-node-result/coverage-summary.json --module hub.chat-process.node-result && node scripts/promote-shadow-module.mjs --module hub.chat-process.node-result",
106
+ "verify:shadow-gate:hub-chat-process-tool-normalization": "npm run test:coverage:hub-chat-process-tool-normalization && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-tool-normalization/coverage-summary.json --module hub.chat-process.tool-normalization && node scripts/promote-shadow-module.mjs --module hub.chat-process.tool-normalization",
107
+ "verify:shadow-gate:hub-chat-process-clock-directive-parser": "npm run test:coverage:hub-chat-process-clock-directive-parser && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-clock-directive-parser/coverage-summary.json --module hub.chat-process.clock-directive-parser && node scripts/promote-shadow-module.mjs --module hub.chat-process.clock-directive-parser",
108
+ "verify:shadow-gate:hub-chat-process-clock-directives": "npm run test:coverage:hub-chat-process-clock-directives && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-clock-directives/coverage-summary.json --module hub.chat-process.clock-directives && node scripts/promote-shadow-module.mjs --module hub.chat-process.clock-directives",
109
+ "verify:shadow-gate:hub-chat-process-clock-directives-fallback": "npm run test:coverage:hub-chat-process-clock-directives-fallback && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-clock-directives-fallback/coverage-summary.json --module hub.chat-process.clock-directives-fallback && node scripts/promote-shadow-module.mjs --module hub.chat-process.clock-directives-fallback",
110
+ "verify:shadow-gate:hub-chat-process-clock-reminder-directives": "npm run test:coverage:hub-chat-process-clock-reminder-directives && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-clock-reminder-directives/coverage-summary.json --module hub.chat-process.clock-reminder-directives && node scripts/promote-shadow-module.mjs --module hub.chat-process.clock-reminder-directives",
111
+ "verify:shadow-gate:hub-chat-process-clock-reminder-finalize": "npm run test:coverage:hub-chat-process-clock-reminder-finalize && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-clock-reminder-finalize/coverage-summary.json --module hub.chat-process.clock-reminder-finalize && node scripts/promote-shadow-module.mjs --module hub.chat-process.clock-reminder-finalize",
112
+ "verify:shadow-gate:hub-chat-process-clock-reminder-messages": "npm run test:coverage:hub-chat-process-clock-reminder-messages && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-clock-reminder-messages/coverage-summary.json --module hub.chat-process.clock-reminder-messages && node scripts/promote-shadow-module.mjs --module hub.chat-process.clock-reminder-messages",
113
+ "verify:shadow-gate:hub-chat-process-clock-reminder-orchestration": "npm run test:coverage:hub-chat-process-clock-reminder-orchestration && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-clock-reminder-orchestration/coverage-summary.json --module hub.chat-process.clock-reminder-orchestration && node scripts/promote-shadow-module.mjs --module hub.chat-process.clock-reminder-orchestration",
114
+ "verify:shadow-gate:hub-chat-process-clock-reminder-time-tag": "npm run test:coverage:hub-chat-process-clock-reminder-time-tag && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-clock-reminder-time-tag/coverage-summary.json --module hub.chat-process.clock-reminder-time-tag && node scripts/promote-shadow-module.mjs --module hub.chat-process.clock-reminder-time-tag",
115
+ "verify:shadow-gate:hub-chat-process-clock-tools": "npm run test:coverage:hub-chat-process-clock-tools && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-clock-tools/coverage-summary.json --module hub.chat-process.clock-tools && node scripts/promote-shadow-module.mjs --module hub.chat-process.clock-tools",
116
+ "verify:shadow-gate:hub-chat-process-continue-execution": "npm run test:coverage:hub-chat-process-continue-execution && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-continue-execution/coverage-summary.json --module hub.chat-process.continue-execution && node scripts/promote-shadow-module.mjs --module hub.chat-process.continue-execution",
117
+ "verify:shadow-gate:hub-chat-process-pending-tool-sync": "npm run test:coverage:hub-chat-process-pending-tool-sync && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-pending-tool-sync/coverage-summary.json --module hub.chat-process.pending-tool-sync && node scripts/promote-shadow-module.mjs --module hub.chat-process.pending-tool-sync",
118
+ "verify:shadow-gate:hub-chat-process-entry-client-inject": "npm run test:coverage:hub-chat-process-entry-client-inject && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-process-entry-client-inject/coverage-summary.json --module hub.chat-process.entry-client-inject && node scripts/promote-shadow-module.mjs --module hub.chat-process.entry-client-inject",
119
+ "verify:shadow-gate:hub-req-inbound-semantic-lift": "npm run test:coverage:hub-req-inbound-semantic-lift && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-req-inbound-semantic-lift/coverage-summary.json --module hub.req-inbound.semantic-lift && node scripts/promote-shadow-module.mjs --module hub.req-inbound.semantic-lift",
120
+ "verify:shadow-gate:hub-req-inbound-context-capture-orchestration": "npm run test:coverage:hub-req-inbound-context-capture-orchestration && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-req-inbound-context-capture-orchestration/coverage-summary.json --module hub.req-inbound.context-capture-orchestration && node scripts/promote-shadow-module.mjs --module hub.req-inbound.context-capture-orchestration",
121
+ "verify:shadow-gate:hub-req-inbound-responses-context-snapshot": "npm run test:coverage:hub-req-inbound-responses-context-snapshot && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-req-inbound-responses-context-snapshot/coverage-summary.json --module hub.req-inbound.responses-context-snapshot && node scripts/promote-shadow-module.mjs --module hub.req-inbound.responses-context-snapshot",
122
+ "verify:shadow-gate:hub-req-outbound-context-merge": "npm run test:coverage:hub-req-outbound-context-merge && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-req-outbound-context-merge/coverage-summary.json --module hub.req-outbound.context-merge && node scripts/promote-shadow-module.mjs --module hub.req-outbound.context-merge",
123
+ "verify:shadow-gate:hub-req-process-route-select": "npm run test:coverage:hub-req-process-route-select && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-req-process-route-select/coverage-summary.json --module hub.req-process.route-select && node scripts/promote-shadow-module.mjs --module hub.req-process.route-select",
124
+ "verify:shadow-gate:hub-resp-outbound-client-semantics": "npm run test:coverage:hub-resp-outbound-client-semantics && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-resp-outbound-client-semantics/coverage-summary.json --module hub.resp-outbound.chat-process-semantics-bridge && node scripts/promote-shadow-module.mjs --module hub.resp-outbound.chat-process-semantics-bridge",
125
+ "verify:shadow-gate:hub-resp-outbound-client-remap-switch": "npm run test:coverage:hub-resp-outbound-client-remap-switch && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-resp-outbound-client-remap-switch/coverage-summary.json --module hub.resp-outbound.client-remap-protocol-switch && node scripts/promote-shadow-module.mjs --module hub.resp-outbound.client-remap-protocol-switch",
126
+ "verify:shadow-gate:virtual-router-tier-antigravity-session-lease": "npm run test:coverage:virtual-router-tier-antigravity-session-lease && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-virtual-router-tier-antigravity-session-lease/coverage-summary.json --module virtual-router.tier-selection.antigravity-session-lease && node scripts/promote-shadow-module.mjs --module virtual-router.tier-selection.antigravity-session-lease",
127
+ "verify:shadow-gate:virtual-router-tier-antigravity-target-split": "npm run test:coverage:virtual-router-tier-antigravity-target-split && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-virtual-router-tier-antigravity-target-split/coverage-summary.json --module virtual-router.tier-selection.antigravity-target-split && node scripts/promote-shadow-module.mjs --module virtual-router.tier-selection.antigravity-target-split",
128
+ "verify:file-line-limit": "node scripts/check-file-line-limit.mjs",
129
+ "test:coverage:hub-req-inbound-format-parse": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-req-inbound-format-parse --include=dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage1_format_parse/index.js --exclude=scripts/** node scripts/tests/coverage-hub-req-inbound-format-parse.mjs",
130
+ "test:coverage:hub-req-outbound-format-build": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-req-outbound-format-build --include=dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage2_format_build/index.js --exclude=scripts/** node scripts/tests/coverage-hub-req-outbound-format-build.mjs",
131
+ "test:coverage:hub-req-outbound-compat": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-req-outbound-compat --include=dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage3_compat/index.js --exclude=scripts/** node scripts/tests/coverage-hub-req-outbound-compat.mjs",
132
+ "test:coverage:hub-resp-inbound-format-parse": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-resp-inbound-format-parse --include=dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage2_format_parse/index.js --exclude=scripts/** node scripts/tests/coverage-hub-resp-inbound-format-parse.mjs",
133
+ "test:coverage:hub-resp-inbound-semantic-map": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-resp-inbound-semantic-map --include=dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage3_semantic_map/index.js --exclude=scripts/** node scripts/tests/coverage-hub-resp-inbound-semantic-map.mjs",
134
+ "test:coverage:hub-resp-outbound-sse-stream": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-resp-outbound-sse-stream --include=dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage2_sse_stream/index.js --exclude=scripts/** node scripts/tests/coverage-hub-resp-outbound-sse-stream.mjs",
135
+ "test:coverage:hub-native-batch": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-native-batch '--exclude=scripts/**' --include=dist/conversion/hub/format-adapters/chat-format-adapter.js --include=dist/conversion/hub/format-adapters/responses-format-adapter.js --include=dist/conversion/hub/format-adapters/anthropic-format-adapter.js --include=dist/conversion/hub/format-adapters/gemini-format-adapter.js --include=dist/conversion/hub/semantic-mappers/chat-mapper.js --include=dist/conversion/hub/semantic-mappers/responses-mapper.js --include=dist/conversion/hub/semantic-mappers/anthropic-mapper.js --include=dist/conversion/hub/semantic-mappers/gemini-mapper.js --include=dist/conversion/hub/snapshot-recorder.js --include=dist/conversion/hub/tool-governance/engine.js --include=dist/conversion/hub/tool-governance/rules.js --include=dist/conversion/hub/pipeline/stages/utils.js node scripts/tests/coverage-hub-native-batch.mjs",
136
+ "verify:shadow-gate:hub-req-inbound-format-parse": "npm run test:coverage:hub-req-inbound-format-parse && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-req-inbound-format-parse/coverage-summary.json --module hub.req-inbound.format-parse && node scripts/promote-shadow-module.mjs --module hub.req-inbound.format-parse",
137
+ "verify:shadow-gate:hub-req-outbound-format-build": "npm run test:coverage:hub-req-outbound-format-build && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-req-outbound-format-build/coverage-summary.json --module hub.req-outbound.format-build && node scripts/promote-shadow-module.mjs --module hub.req-outbound.format-build",
138
+ "verify:shadow-gate:hub-req-outbound-compat": "npm run test:coverage:hub-req-outbound-compat && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-req-outbound-compat/coverage-summary.json --module hub.req-outbound.compat && node scripts/promote-shadow-module.mjs --module hub.req-outbound.compat",
139
+ "verify:shadow-gate:hub-resp-inbound-format-parse": "npm run test:coverage:hub-resp-inbound-format-parse && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-resp-inbound-format-parse/coverage-summary.json --module hub.resp-inbound.format-parse && node scripts/promote-shadow-module.mjs --module hub.resp-inbound.format-parse",
140
+ "verify:shadow-gate:hub-resp-inbound-semantic-map": "npm run test:coverage:hub-resp-inbound-semantic-map && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-resp-inbound-semantic-map/coverage-summary.json --module hub.resp-inbound.semantic-map && node scripts/promote-shadow-module.mjs --module hub.resp-inbound.semantic-map",
141
+ "verify:shadow-gate:hub-resp-outbound-sse-stream": "npm run test:coverage:hub-resp-outbound-sse-stream && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-resp-outbound-sse-stream/coverage-summary.json --module hub.resp-outbound.sse-stream && node scripts/promote-shadow-module.mjs --module hub.resp-outbound.sse-stream",
142
+ "verify:shadow-gate:hub-native-batch": "npm run test:coverage:hub-native-batch && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-native-batch/coverage-summary.json --module hub.native-batch.adapters-snapshot-governance && node scripts/promote-shadow-module.mjs --module hub.native-batch.adapters-snapshot-governance",
143
+ "test:coverage:hub-chat-request-filters": "npm run build:ci && node ./node_modules/c8/bin/c8.js --reporter=json-summary --reporter=text --report-dir=coverage/module-hub-chat-request-filters --include=dist/conversion/shared/chat-request-filters.js --include=dist/router/virtual-router/engine-selection/native-chat-request-filter-semantics.js --exclude=scripts/** node scripts/tests/coverage-chat-request-filters.mjs",
144
+ "verify:shadow-gate:hub-chat-request-filters": "npm run test:coverage:hub-chat-request-filters && node scripts/check-shadow-coverage-gate.mjs --summary coverage/module-hub-chat-request-filters/coverage-summary.json --module hub.shared.chat-request-filters && node scripts/promote-shadow-module.mjs --module hub.shared.chat-request-filters"
35
145
  },
36
146
  "dependencies": {
37
147
  "ajv": "^8.17.1",
@@ -58,10 +168,11 @@
58
168
  },
59
169
  "devDependencies": {
60
170
  "@types/node": "^20.11.25",
61
- "@typescript-eslint/eslint-plugin": "^6.7.4",
62
- "@typescript-eslint/parser": "^6.7.4",
63
- "c8": "^10.1.3",
171
+ "@typescript-eslint/eslint-plugin": "^8.56.1",
172
+ "@typescript-eslint/parser": "^8.56.1",
173
+ "c8": "^11.0.0",
64
174
  "eslint": "^8.50.0",
175
+ "tsx": "^4.21.0",
65
176
  "typescript": "^5.4.0"
66
177
  },
67
178
  "files": [
@@ -1,221 +0,0 @@
1
- import { buildShellDescription, hasApplyPatchToolDeclared, isShellToolName } from '../../tools/tool-description-utils.js';
2
- function isObject(v) {
3
- return !!v && typeof v === 'object' && !Array.isArray(v);
4
- }
5
- const normKey = (k) => k.toLowerCase().replace(/[^a-z0-9]+/g, '');
6
- function getDefaultAliases(prop) {
7
- const p = prop.toLowerCase();
8
- switch (p) {
9
- case 'file_path': return ['path', 'file', 'filepath', 'filePath'];
10
- case 'pattern': return ['glob', 'include', 'includes', 'query', 'regex'];
11
- case 'content': return ['text', 'data', 'body'];
12
- case 'old_string': return ['old', 'from', 'before', 'oldString', 'previous'];
13
- case 'new_string': return ['new', 'to', 'after', 'newString', 'next'];
14
- case 'command': return ['cmd', 'command_list', 'commandList'];
15
- case 'path': return ['dir', 'directory'];
16
- case 'glob': return ['include', 'includes', 'patterns'];
17
- case 'todos': return ['items', 'list', 'tasks'];
18
- case 'replace_all': return ['replaceAll', 'all', 'allOccurrences'];
19
- default: return [];
20
- }
21
- }
22
- function buildPropertyMap(schema) {
23
- const map = new Map();
24
- const props = schema?.properties || {};
25
- for (const [p, s] of Object.entries(props)) {
26
- map.set(normKey(p), p);
27
- const aliases = s['x-aliases'];
28
- if (Array.isArray(aliases)) {
29
- for (const a of aliases) {
30
- if (typeof a === 'string') {
31
- map.set(normKey(a), p);
32
- }
33
- }
34
- }
35
- for (const a of getDefaultAliases(p)) {
36
- map.set(normKey(a), p);
37
- }
38
- }
39
- return map;
40
- }
41
- function coerceType(value, schema) {
42
- const t = schema?.type;
43
- const want = Array.isArray(t) ? t[0] : t;
44
- if (!want) {
45
- return value;
46
- }
47
- switch (want) {
48
- case 'string':
49
- if (typeof value === 'string')
50
- return value;
51
- if (Array.isArray(value))
52
- return value.map(v => String(v)).join(' ');
53
- if (value === null || value === undefined)
54
- return value;
55
- return String(value);
56
- case 'number':
57
- if (typeof value === 'number')
58
- return value;
59
- if (typeof value === 'string') {
60
- const n = Number(value);
61
- return Number.isFinite(n) ? n : value;
62
- }
63
- return value;
64
- case 'integer':
65
- if (typeof value === 'number')
66
- return Math.trunc(value);
67
- if (typeof value === 'string') {
68
- const n = parseInt(value, 10);
69
- return Number.isFinite(n) ? n : value;
70
- }
71
- return value;
72
- case 'boolean':
73
- if (typeof value === 'boolean')
74
- return value;
75
- if (typeof value === 'string') {
76
- const s = value.toLowerCase();
77
- if (s === 'true')
78
- return true;
79
- if (s === 'false')
80
- return false;
81
- }
82
- return value;
83
- case 'array':
84
- if (Array.isArray(value))
85
- return value;
86
- if (typeof value === 'string') {
87
- // conservative: split commas/newlines; caller controls format
88
- const parts = value.split(/[\n,]+/).map(s => s.trim()).filter(Boolean);
89
- return parts.length ? parts : value;
90
- }
91
- return value;
92
- case 'object':
93
- if (value && typeof value === 'object')
94
- return value;
95
- return value;
96
- default:
97
- return value;
98
- }
99
- }
100
- export function normalizeArgsBySchema(input, schema) {
101
- if (!schema || !schema.properties || !isObject(input)) {
102
- const ok = !!(isObject(input) && Object.keys(input).length > 0);
103
- return ok ? { ok: true, value: input } : { ok: false, errors: ['no_schema_or_invalid_input'] };
104
- }
105
- const propMap = buildPropertyMap(schema);
106
- const out = {};
107
- const errors = [];
108
- const additional = schema.additionalProperties !== false;
109
- const reqList = Array.isArray(schema.required) ? schema.required : [];
110
- if (Object.keys(input).length === 1 && typeof input._raw === 'string' && reqList.length === 1) {
111
- const only = reqList[0];
112
- const child = (schema.properties || {})[only];
113
- if (child) {
114
- const coerced = coerceType(input._raw, child);
115
- if (typeof coerced === 'string' && coerced.trim().length > 0)
116
- out[only] = coerced;
117
- }
118
- }
119
- for (const [k, v] of Object.entries(input)) {
120
- const key = normKey(k);
121
- const target = propMap.get(key);
122
- if (target) {
123
- const childSchema = schema.properties[target];
124
- out[target] = coerceType(v, childSchema);
125
- }
126
- else if (additional) {
127
- out[k] = v;
128
- }
129
- }
130
- const req = schema.required || [];
131
- for (const r of req) {
132
- if (!(r in out)) {
133
- errors.push(`missing_required:${r}`);
134
- continue;
135
- }
136
- const v = out[r];
137
- if (typeof v === 'string' && v.trim().length === 0) {
138
- errors.push(`missing_required:${r}`);
139
- continue;
140
- }
141
- if (Array.isArray(v) && v.length === 0) {
142
- errors.push(`missing_required:${r}`);
143
- continue;
144
- }
145
- if (v && typeof v === 'object' && !Array.isArray(v) && Object.keys(v).length === 0) {
146
- errors.push(`missing_required:${r}`);
147
- continue;
148
- }
149
- }
150
- const ok = errors.length === 0;
151
- return ok ? { ok, value: out } : { ok, value: out, errors };
152
- }
153
- // Tools normalizer (OpenAI-like)
154
- export function normalizeTools(tools) {
155
- if (!Array.isArray(tools))
156
- return [];
157
- const out = [];
158
- const applyPatchAvailable = hasApplyPatchToolDeclared(tools);
159
- for (const t of tools) {
160
- if (!t || typeof t !== 'object')
161
- continue;
162
- const fn = t.function || {};
163
- const topName = typeof t.name === 'string' ? t.name : undefined;
164
- const topDesc = typeof t.description === 'string' ? t.description : undefined;
165
- const topParams = t.parameters;
166
- const name = typeof fn?.name === 'string' ? fn.name : topName;
167
- const desc = typeof fn?.description === 'string' ? fn.description : topDesc;
168
- let params = (fn?.parameters !== undefined ? fn.parameters : topParams);
169
- if (typeof params === 'string') {
170
- try {
171
- params = JSON.parse(params);
172
- }
173
- catch {
174
- params = {};
175
- }
176
- }
177
- // Enforce schema for known tools with minimal, compatible constraints
178
- let finalParams;
179
- if (isShellToolName(name)) {
180
- // Do NOT downgrade an existing schema; prefer string command, allow argv array as fallback
181
- const base = isObject(params) ? params : {};
182
- const props = isObject(base.properties) ? base.properties : {};
183
- const existing = props.command;
184
- const commandSchema = {
185
- description: existing?.description ||
186
- 'Shell command. Prefer a single string; an array of argv tokens is also accepted.',
187
- oneOf: [
188
- { type: 'string' },
189
- { type: 'array', items: { type: 'string' } }
190
- ]
191
- };
192
- props.command = commandSchema;
193
- base.type = 'object';
194
- base.properties = props;
195
- const req = Array.isArray(base.required) ? base.required : [];
196
- if (!req.includes('command'))
197
- req.push('command');
198
- base.required = req;
199
- if (typeof base.additionalProperties !== 'boolean')
200
- base.additionalProperties = false;
201
- finalParams = base;
202
- }
203
- else if (isObject(params)) {
204
- finalParams = params;
205
- }
206
- else {
207
- finalParams = { type: 'object', properties: {}, additionalProperties: true };
208
- }
209
- const functionNode = { name, ...(desc ? { description: desc } : {}), parameters: finalParams };
210
- if (isShellToolName(name)) {
211
- const display = (typeof name === 'string' && name.trim().length > 0)
212
- ? name.trim()
213
- : ((typeof topName === 'string' && topName.trim().length > 0) ? topName.trim() : 'shell');
214
- functionNode.description = buildShellDescription(display, applyPatchAvailable);
215
- }
216
- const norm = { type: 'function', function: functionNode };
217
- if (norm.function?.name)
218
- out.push(norm);
219
- }
220
- return out;
221
- }