@jsonstudio/llms 0.6.2172 → 0.6.2979

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/README.md +2 -0
  2. package/dist/conversion/compat/antigravity-session-signature.js +35 -1
  3. package/dist/conversion/compat/profiles/chat-gemini-cli.json +0 -7
  4. package/dist/conversion/compat/profiles/chat-gemini.json +0 -6
  5. package/dist/conversion/hub/core/detour-registry.d.ts +2 -0
  6. package/dist/conversion/hub/core/hub-context.d.ts +3 -1
  7. package/dist/conversion/hub/core/index.d.ts +1 -0
  8. package/dist/conversion/hub/core/stage-driver.js +2 -0
  9. package/dist/conversion/hub/format-adapters/anthropic-format-adapter.js +15 -4
  10. package/dist/conversion/hub/format-adapters/chat-format-adapter.js +15 -4
  11. package/dist/conversion/hub/format-adapters/gemini-format-adapter.js +15 -4
  12. package/dist/conversion/hub/format-adapters/responses-format-adapter.js +15 -4
  13. package/dist/conversion/hub/hub-feature.js +3 -2
  14. package/dist/conversion/hub/node-support.js +9 -4
  15. package/dist/conversion/hub/operation-table/operation-table-runner.js +10 -6
  16. package/dist/conversion/hub/operation-table/semantic-mappers/anthropic-mapper.js +2 -2
  17. package/dist/conversion/hub/operation-table/semantic-mappers/chat-mapper.js +10 -10
  18. package/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapper.js +4 -8
  19. package/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper.js +19 -65
  20. package/dist/conversion/hub/ops/operations.js +2 -121
  21. package/dist/conversion/hub/pipeline/compat/compat-engine.js +6 -0
  22. package/dist/conversion/hub/pipeline/compat/compat-pipeline-executor.d.ts +1 -1
  23. package/dist/conversion/hub/pipeline/compat/compat-pipeline-executor.js +33 -1042
  24. package/dist/conversion/hub/pipeline/compat/compat-profile-resolver.js +2 -0
  25. package/dist/conversion/hub/pipeline/compat/compat-profile-store.js +2 -0
  26. package/dist/conversion/hub/pipeline/compat/compat-types.d.ts +14 -17
  27. package/dist/conversion/hub/pipeline/compat/native-adapter-context.d.ts +3 -0
  28. package/dist/conversion/hub/pipeline/compat/native-adapter-context.js +39 -0
  29. package/dist/conversion/hub/pipeline/hub-pipeline.js +115 -262
  30. package/dist/conversion/hub/pipeline/session-identifiers.js +6 -196
  31. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage1_format_parse/index.d.ts +1 -2
  32. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage1_format_parse/index.js +37 -1
  33. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/index.js +12 -86
  34. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/semantic-lift.d.ts +14 -0
  35. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/semantic-lift.js +24 -0
  36. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/archive/shell-like-tool-call-normalization-fallback.d.ts +2 -0
  37. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/archive/shell-like-tool-call-normalization-fallback.js +157 -0
  38. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-capture-orchestration.d.ts +16 -0
  39. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-capture-orchestration.js +29 -0
  40. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-factories.js +3 -1
  41. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/index.d.ts +2 -15
  42. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/index.js +8 -595
  43. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.d.ts +8 -0
  44. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.js +28 -0
  45. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-diagnostics.d.ts +2 -0
  46. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-diagnostics.js +4 -0
  47. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-snapshot.d.ts +10 -0
  48. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-snapshot.js +12 -0
  49. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/context-merge.d.ts +3 -0
  50. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/context-merge.js +30 -0
  51. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/index.js +9 -129
  52. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage2_format_build/index.d.ts +1 -4
  53. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage2_format_build/index.js +9 -26
  54. package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage3_compat/index.js +32 -14
  55. package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage1_tool_governance/index.d.ts +2 -2
  56. package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage1_tool_governance/index.js +48 -8
  57. package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage2_route_select/index.js +18 -3
  58. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/index.js +10 -198
  59. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/stream-json-sniffer.d.ts +3 -0
  60. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/stream-json-sniffer.js +81 -0
  61. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage2_format_parse/index.d.ts +1 -2
  62. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage2_format_parse/index.js +36 -1
  63. package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage3_semantic_map/index.js +3 -1
  64. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/chat-process-semantics-bridge.d.ts +6 -0
  65. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/chat-process-semantics-bridge.js +17 -0
  66. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.d.ts +9 -0
  67. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.js +28 -0
  68. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.d.ts +1 -2
  69. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.js +14 -102
  70. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage2_sse_stream/index.js +3 -1
  71. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage1_tool_governance/index.js +12 -10
  72. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage2_finalize/index.js +6 -5
  73. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.d.ts +11 -1
  74. package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.js +10 -32
  75. package/dist/conversion/hub/pipeline/stages/utils.js +17 -1
  76. package/dist/conversion/hub/pipeline/target-utils.js +14 -91
  77. package/dist/conversion/hub/pipelines/inbound.js +3 -1
  78. package/dist/conversion/hub/pipelines/outbound.js +2 -0
  79. package/dist/conversion/hub/policy/policy-engine.js +9 -3
  80. package/dist/conversion/hub/policy/protocol-spec.js +20 -148
  81. package/dist/conversion/hub/process/chat-process-anthropic-alias.d.ts +2 -0
  82. package/dist/conversion/hub/process/chat-process-anthropic-alias.js +36 -0
  83. package/dist/conversion/hub/process/chat-process-clock-directive-parser.d.ts +5 -0
  84. package/dist/conversion/hub/process/chat-process-clock-directive-parser.js +48 -0
  85. package/dist/conversion/hub/process/chat-process-clock-directives.d.ts +24 -0
  86. package/dist/conversion/hub/process/chat-process-clock-directives.js +98 -0
  87. package/dist/conversion/hub/process/chat-process-clock-reminder-directives.d.ts +8 -0
  88. package/dist/conversion/hub/process/chat-process-clock-reminder-directives.js +42 -0
  89. package/dist/conversion/hub/process/chat-process-clock-reminder-finalize.d.ts +14 -0
  90. package/dist/conversion/hub/process/chat-process-clock-reminder-finalize.js +10 -0
  91. package/dist/conversion/hub/process/chat-process-clock-reminder-messages.d.ts +5 -0
  92. package/dist/conversion/hub/process/chat-process-clock-reminder-messages.js +10 -0
  93. package/dist/conversion/hub/process/chat-process-clock-reminder-orchestration.d.ts +30 -0
  94. package/dist/conversion/hub/process/chat-process-clock-reminder-orchestration.js +68 -0
  95. package/dist/conversion/hub/process/chat-process-clock-reminder-time-tag.d.ts +9 -0
  96. package/dist/conversion/hub/process/chat-process-clock-reminder-time-tag.js +18 -0
  97. package/dist/conversion/hub/process/chat-process-clock-reminders.d.ts +2 -0
  98. package/dist/conversion/hub/process/chat-process-clock-reminders.js +104 -0
  99. package/dist/conversion/hub/process/chat-process-clock-tool-schemas.d.ts +3 -0
  100. package/dist/conversion/hub/process/chat-process-clock-tool-schemas.js +233 -0
  101. package/dist/conversion/hub/process/chat-process-clock-tools.d.ts +6 -0
  102. package/dist/conversion/hub/process/chat-process-clock-tools.js +41 -0
  103. package/dist/conversion/hub/process/chat-process-continue-execution.d.ts +11 -0
  104. package/dist/conversion/hub/process/chat-process-continue-execution.js +82 -0
  105. package/dist/conversion/hub/process/chat-process-governance-context.d.ts +15 -0
  106. package/dist/conversion/hub/process/chat-process-governance-context.js +7 -0
  107. package/dist/conversion/hub/process/chat-process-governance-finalize.d.ts +16 -0
  108. package/dist/conversion/hub/process/chat-process-governance-finalize.js +11 -0
  109. package/dist/conversion/hub/process/chat-process-governance-orchestration.d.ts +9 -0
  110. package/dist/conversion/hub/process/chat-process-governance-orchestration.js +47 -0
  111. package/dist/conversion/hub/process/chat-process-governed-control-ops.d.ts +8 -0
  112. package/dist/conversion/hub/process/chat-process-governed-control-ops.js +5 -0
  113. package/dist/conversion/hub/process/chat-process-governed-filter-call.d.ts +12 -0
  114. package/dist/conversion/hub/process/chat-process-governed-filter-call.js +18 -0
  115. package/dist/conversion/hub/process/chat-process-governed-merge.d.ts +8 -0
  116. package/dist/conversion/hub/process/chat-process-governed-merge.js +11 -0
  117. package/dist/conversion/hub/process/chat-process-media.d.ts +3 -0
  118. package/dist/conversion/hub/process/chat-process-media.js +18 -0
  119. package/dist/conversion/hub/process/chat-process-node-result.d.ts +23 -0
  120. package/dist/conversion/hub/process/chat-process-node-result.js +24 -0
  121. package/dist/conversion/hub/process/chat-process-pending-tool-sync.d.ts +14 -0
  122. package/dist/conversion/hub/process/chat-process-pending-tool-sync.js +52 -0
  123. package/dist/conversion/hub/process/chat-process-post-governed-normalization.d.ts +8 -0
  124. package/dist/conversion/hub/process/chat-process-post-governed-normalization.js +16 -0
  125. package/dist/conversion/hub/process/chat-process-review.d.ts +2 -0
  126. package/dist/conversion/hub/process/chat-process-review.js +8 -0
  127. package/dist/conversion/hub/process/chat-process-servertool-orchestration.d.ts +8 -0
  128. package/dist/conversion/hub/process/chat-process-servertool-orchestration.js +22 -0
  129. package/dist/conversion/hub/process/chat-process-tool-normalization.d.ts +2 -0
  130. package/dist/conversion/hub/process/chat-process-tool-normalization.js +4 -0
  131. package/dist/conversion/hub/process/chat-process-web-search-intent.d.ts +12 -0
  132. package/dist/conversion/hub/process/chat-process-web-search-intent.js +13 -0
  133. package/dist/conversion/hub/process/chat-process-web-search-tool-schema.d.ts +3 -0
  134. package/dist/conversion/hub/process/chat-process-web-search-tool-schema.js +4 -0
  135. package/dist/conversion/hub/process/chat-process-web-search.d.ts +8 -0
  136. package/dist/conversion/hub/process/chat-process-web-search.js +26 -0
  137. package/dist/conversion/hub/process/chat-process.d.ts +2 -19
  138. package/dist/conversion/hub/process/chat-process.js +12 -1701
  139. package/dist/conversion/hub/process/client-inject-readiness.d.ts +1 -0
  140. package/dist/conversion/hub/process/client-inject-readiness.js +4 -0
  141. package/dist/conversion/hub/registry.js +5 -2
  142. package/dist/conversion/hub/response/chat-response-utils.js +5 -86
  143. package/dist/conversion/hub/response/provider-response.d.ts +9 -0
  144. package/dist/conversion/hub/response/provider-response.js +6 -21
  145. package/dist/conversion/hub/response/response-mappers.js +2 -26
  146. package/dist/conversion/hub/response/response-runtime.js +2 -93
  147. package/dist/conversion/hub/semantic-mappers/anthropic-mapper.d.ts +1 -0
  148. package/dist/conversion/hub/semantic-mappers/anthropic-mapper.js +1 -0
  149. package/dist/conversion/hub/semantic-mappers/chat-mapper.d.ts +1 -0
  150. package/dist/conversion/hub/semantic-mappers/chat-mapper.js +1 -0
  151. package/dist/conversion/hub/semantic-mappers/gemini-mapper.d.ts +1 -0
  152. package/dist/conversion/hub/semantic-mappers/gemini-mapper.js +1 -0
  153. package/dist/conversion/hub/semantic-mappers/responses-mapper.d.ts +1 -0
  154. package/dist/conversion/hub/semantic-mappers/responses-mapper.js +1 -0
  155. package/dist/conversion/hub/snapshot-recorder.js +10 -3
  156. package/dist/conversion/hub/standardized-bridge.js +11 -288
  157. package/dist/conversion/hub/tool-governance/engine.js +5 -0
  158. package/dist/conversion/hub/tool-governance/rules.js +10 -10
  159. package/dist/conversion/hub/tool-session-compat.d.ts +2 -2
  160. package/dist/conversion/hub/tool-session-compat.js +17 -231
  161. package/dist/conversion/hub/tool-surface/tool-surface-engine.js +5 -3
  162. package/dist/conversion/responses/responses-host-policy.js +2 -12
  163. package/dist/conversion/responses/responses-openai-bridge/response-payload.js +6 -82
  164. package/dist/conversion/responses/responses-openai-bridge/types.d.ts +1 -0
  165. package/dist/conversion/responses/responses-openai-bridge.js +21 -54
  166. package/dist/conversion/shared/anthropic-message-utils.js +151 -13
  167. package/dist/conversion/shared/args-mapping.js +2 -146
  168. package/dist/conversion/shared/bridge-actions.js +203 -718
  169. package/dist/conversion/shared/bridge-id-utils.js +5 -71
  170. package/dist/conversion/shared/bridge-instructions.js +2 -1
  171. package/dist/conversion/shared/bridge-message-types.d.ts +2 -0
  172. package/dist/conversion/shared/bridge-message-utils.js +1 -2
  173. package/dist/conversion/shared/bridge-metadata.d.ts +1 -0
  174. package/dist/conversion/shared/bridge-metadata.js +4 -0
  175. package/dist/conversion/shared/bridge-policies.js +5 -189
  176. package/dist/conversion/shared/chat-envelope-validator.js +2 -126
  177. package/dist/conversion/shared/chat-output-normalizer.js +2 -54
  178. package/dist/conversion/shared/compaction-detect.js +2 -57
  179. package/dist/conversion/shared/gemini-tool-utils.js +9 -524
  180. package/dist/conversion/shared/jsonish.js +3 -160
  181. package/dist/conversion/shared/mcp-injection.js +3 -169
  182. package/dist/conversion/shared/media.js +2 -7
  183. package/dist/conversion/shared/metadata-passthrough.js +9 -46
  184. package/dist/conversion/shared/openai-finalizer.js +2 -1
  185. package/dist/conversion/shared/openai-message-normalize.js +11 -283
  186. package/dist/conversion/shared/output-content-normalizer.js +9 -112
  187. package/dist/conversion/shared/payload-budget.js +2 -85
  188. package/dist/conversion/shared/protocol-state.js +11 -7
  189. package/dist/conversion/shared/reasoning-mapping.js +2 -6
  190. package/dist/conversion/shared/reasoning-normalizer.js +4 -1
  191. package/dist/conversion/shared/reasoning-tool-normalizer.js +14 -126
  192. package/dist/conversion/shared/reasoning-tool-parser.js +4 -87
  193. package/dist/conversion/shared/reasoning-utils.js +2 -6
  194. package/dist/conversion/shared/responses-conversation-store.js +4 -82
  195. package/dist/conversion/shared/responses-output-builder.js +11 -47
  196. package/dist/conversion/shared/responses-reasoning-registry.js +7 -1
  197. package/dist/conversion/shared/responses-request-adapter.d.ts +7 -1
  198. package/dist/conversion/shared/responses-request-adapter.js +14 -1
  199. package/dist/conversion/shared/responses-response-utils.js +6 -7
  200. package/dist/conversion/shared/responses-tool-utils.d.ts +1 -0
  201. package/dist/conversion/shared/responses-tool-utils.js +90 -14
  202. package/dist/conversion/shared/runtime-metadata.js +13 -5
  203. package/dist/conversion/shared/streaming-text-extractor.js +2 -7
  204. package/dist/conversion/shared/text-markup-normalizer/normalize.d.ts +1 -1
  205. package/dist/conversion/shared/text-markup-normalizer/normalize.js +43 -17
  206. package/dist/conversion/shared/text-markup-normalizer.d.ts +1 -0
  207. package/dist/conversion/shared/text-markup-normalizer.js +1 -0
  208. package/dist/conversion/shared/thought-signature-validator.js +3 -2
  209. package/dist/conversion/shared/tool-argument-repairer.js +2 -2
  210. package/dist/conversion/shared/tool-call-id-manager.js +5 -7
  211. package/dist/conversion/shared/tool-call-utils.js +3 -45
  212. package/dist/conversion/shared/tool-canonicalizer.js +25 -29
  213. package/dist/conversion/shared/tool-filter-pipeline.js +4 -99
  214. package/dist/conversion/shared/tool-governor.d.ts +6 -0
  215. package/dist/conversion/shared/tool-governor.js +43 -125
  216. package/dist/conversion/shared/tool-harvester.js +2 -8
  217. package/dist/conversion/shared/tool-mapping.js +2 -5
  218. package/dist/conversion/shared/tooling.d.ts +0 -4
  219. package/dist/conversion/shared/tooling.js +18 -0
  220. package/dist/native/router_hotpath_napi.node +0 -0
  221. package/dist/router/virtual-router/engine/provider-key/parse.d.ts +1 -6
  222. package/dist/router/virtual-router/engine/provider-key/parse.js +1 -43
  223. package/dist/router/virtual-router/engine/routing-state/store.js +48 -12
  224. package/dist/router/virtual-router/engine-logging.js +4 -3
  225. package/dist/router/virtual-router/engine-selection/alias-selection.js +45 -83
  226. package/dist/router/virtual-router/engine-selection/key-parsing.js +9 -23
  227. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-directive-parser.d.ts +20 -0
  228. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-directive-parser.js +163 -0
  229. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-directives.d.ts +7 -0
  230. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-directives.js +103 -0
  231. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-orchestration-semantics.d.ts +10 -0
  232. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-orchestration-semantics.js +110 -0
  233. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-semantics.d.ts +8 -0
  234. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-semantics.js +281 -0
  235. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-time-tag-semantics.d.ts +1 -0
  236. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-time-tag-semantics.js +25 -0
  237. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminders-semantics.d.ts +4 -0
  238. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminders-semantics.js +44 -0
  239. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-tool-schema-semantics.d.ts +2 -0
  240. package/dist/router/virtual-router/engine-selection/native-chat-process-clock-tool-schema-semantics.js +62 -0
  241. package/dist/router/virtual-router/engine-selection/native-chat-process-governance-semantics.d.ts +40 -0
  242. package/dist/router/virtual-router/engine-selection/native-chat-process-governance-semantics.js +484 -0
  243. package/dist/router/virtual-router/engine-selection/native-chat-process-governed-filter-semantics.d.ts +9 -0
  244. package/dist/router/virtual-router/engine-selection/native-chat-process-governed-filter-semantics.js +64 -0
  245. package/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.d.ts +5 -0
  246. package/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.js +163 -0
  247. package/dist/router/virtual-router/engine-selection/native-chat-process-post-governed-normalization-semantics.d.ts +1 -0
  248. package/dist/router/virtual-router/engine-selection/native-chat-process-post-governed-normalization-semantics.js +49 -0
  249. package/dist/router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.d.ts +30 -0
  250. package/dist/router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js +446 -0
  251. package/dist/router/virtual-router/engine-selection/native-chat-process-web-search-intent-semantics.d.ts +1 -0
  252. package/dist/router/virtual-router/engine-selection/native-chat-process-web-search-intent-semantics.js +49 -0
  253. package/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics.d.ts +134 -0
  254. package/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics.js +729 -0
  255. package/dist/router/virtual-router/engine-selection/native-hub-bridge-policy-semantics.d.ts +62 -0
  256. package/dist/router/virtual-router/engine-selection/native-hub-bridge-policy-semantics.js +338 -0
  257. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.d.ts +18 -0
  258. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.js +317 -0
  259. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-inbound-outbound-semantics.d.ts +22 -0
  260. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-inbound-outbound-semantics.js +426 -0
  261. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics.d.ts +57 -0
  262. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics.js +705 -0
  263. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.d.ts +46 -0
  264. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.js +503 -0
  265. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics.d.ts +146 -0
  266. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics.js +570 -0
  267. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-process-semantics.d.ts +25 -0
  268. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-process-semantics.js +148 -0
  269. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics.d.ts +25 -0
  270. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics.js +637 -0
  271. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-session-identifiers-semantics.d.ts +11 -0
  272. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-session-identifiers-semantics.js +207 -0
  273. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-target-semantics.d.ts +3 -0
  274. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-target-semantics.js +128 -0
  275. package/dist/router/virtual-router/engine-selection/native-router-hotpath-analysis.d.ts +57 -0
  276. package/dist/router/virtual-router/engine-selection/native-router-hotpath-analysis.js +217 -0
  277. package/dist/router/virtual-router/engine-selection/native-router-hotpath-loader.d.ts +5 -0
  278. package/dist/router/virtual-router/engine-selection/native-router-hotpath-loader.js +284 -0
  279. package/dist/router/virtual-router/engine-selection/native-router-hotpath-policy.d.ts +5 -0
  280. package/dist/router/virtual-router/engine-selection/native-router-hotpath-policy.js +18 -0
  281. package/dist/router/virtual-router/engine-selection/native-router-hotpath-quota-buckets.d.ts +25 -0
  282. package/dist/router/virtual-router/engine-selection/native-router-hotpath-quota-buckets.js +85 -0
  283. package/dist/router/virtual-router/engine-selection/native-router-hotpath.d.ts +59 -0
  284. package/dist/router/virtual-router/engine-selection/native-router-hotpath.js +117 -0
  285. package/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.d.ts +76 -0
  286. package/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.js +1166 -0
  287. package/dist/router/virtual-router/engine-selection/native-virtual-router-alias-selection-semantics.d.ts +16 -0
  288. package/dist/router/virtual-router/engine-selection/native-virtual-router-alias-selection-semantics.js +96 -0
  289. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-actions-semantics.d.ts +6 -0
  290. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-actions-semantics.js +85 -0
  291. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-semantics.d.ts +9 -0
  292. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-semantics.js +70 -0
  293. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-state-semantics.d.ts +2 -0
  294. package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-state-semantics.js +76 -0
  295. package/dist/router/virtual-router/engine-selection/route-utils.js +1 -1
  296. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-session-lease.d.ts +10 -0
  297. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-session-lease.js +231 -0
  298. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-target-split.d.ts +4 -0
  299. package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-target-split.js +43 -0
  300. package/dist/router/virtual-router/engine-selection/tier-selection-quota-integration.d.ts +27 -0
  301. package/dist/router/virtual-router/engine-selection/tier-selection-quota-integration.js +116 -0
  302. package/dist/router/virtual-router/engine-selection/tier-selection-select.d.ts +1 -1
  303. package/dist/router/virtual-router/engine-selection/tier-selection-select.js +29 -129
  304. package/dist/router/virtual-router/engine-selection/tier-selection.js +2 -265
  305. package/dist/router/virtual-router/engine.js +258 -249
  306. package/dist/router/virtual-router/features.js +2 -2
  307. package/dist/router/virtual-router/routing-instructions.d.ts +5 -7
  308. package/dist/router/virtual-router/routing-instructions.js +93 -66
  309. package/dist/router/virtual-router/routing-stop-message-actions.js +91 -112
  310. package/dist/router/virtual-router/routing-stop-message-parser.js +9 -132
  311. package/dist/router/virtual-router/routing-stop-message-state-codec.d.ts +1 -0
  312. package/dist/router/virtual-router/routing-stop-message-state-codec.js +58 -71
  313. package/dist/router/virtual-router/sticky-session-store.js +4 -2
  314. package/dist/router/virtual-router/stop-message-file-resolver.d.ts +1 -0
  315. package/dist/router/virtual-router/stop-message-file-resolver.js +10 -0
  316. package/dist/router/virtual-router/stop-message-state-sync.d.ts +1 -1
  317. package/dist/router/virtual-router/stop-message-state-sync.js +3 -7
  318. package/dist/router/virtual-router/token-counter.js +0 -9
  319. package/dist/router/virtual-router/types.d.ts +9 -7
  320. package/dist/servertool/clock/config.js +23 -51
  321. package/dist/servertool/clock/io.js +1 -0
  322. package/dist/servertool/clock/session-scope.d.ts +2 -2
  323. package/dist/servertool/clock/session-scope.js +5 -47
  324. package/dist/servertool/engine.d.ts +9 -0
  325. package/dist/servertool/engine.js +196 -79
  326. package/dist/servertool/handlers/antigravity-thought-signature-bootstrap.js +2 -2
  327. package/dist/servertool/handlers/clock.js +1 -1
  328. package/dist/servertool/handlers/continue-execution.js +8 -4
  329. package/dist/servertool/handlers/followup-request-builder.js +18 -1
  330. package/dist/servertool/handlers/gemini-empty-reply-continue.js +7 -1
  331. package/dist/servertool/handlers/review.js +180 -0
  332. package/dist/servertool/handlers/stop-message-auto/blocked-report.js +59 -1
  333. package/dist/servertool/handlers/stop-message-auto/iflow-followup.d.ts +23 -2
  334. package/dist/servertool/handlers/stop-message-auto/iflow-followup.js +397 -89
  335. package/dist/servertool/handlers/stop-message-auto/routing-state.d.ts +5 -15
  336. package/dist/servertool/handlers/stop-message-auto/routing-state.js +29 -55
  337. package/dist/servertool/handlers/stop-message-auto/runtime-utils.d.ts +6 -0
  338. package/dist/servertool/handlers/stop-message-auto/runtime-utils.js +35 -61
  339. package/dist/servertool/handlers/stop-message-auto.js +392 -76
  340. package/dist/servertool/server-side-tools.d.ts +1 -0
  341. package/dist/servertool/server-side-tools.js +90 -52
  342. package/dist/servertool/types.d.ts +17 -0
  343. package/dist/tools/apply-patch/patch-text/normalize.js +11 -0
  344. package/dist/tools/exec-command/validator.d.ts +4 -1
  345. package/dist/tools/exec-command/validator.js +87 -3
  346. package/dist/tools/tool-registry.d.ts +7 -1
  347. package/dist/tools/tool-registry.js +3 -2
  348. package/package.json +115 -7
  349. package/dist/servertool/handlers/stop-message-stage-policy/bd-runtime.d.ts +0 -18
  350. package/dist/servertool/handlers/stop-message-stage-policy/bd-runtime.js +0 -398
  351. package/dist/servertool/handlers/stop-message-stage-policy/decision.d.ts +0 -9
  352. package/dist/servertool/handlers/stop-message-stage-policy/decision.js +0 -127
  353. package/dist/servertool/handlers/stop-message-stage-policy/observation.d.ts +0 -2
  354. package/dist/servertool/handlers/stop-message-stage-policy/observation.js +0 -179
  355. package/dist/servertool/handlers/stop-message-stage-policy/templates.d.ts +0 -4
  356. package/dist/servertool/handlers/stop-message-stage-policy/templates.js +0 -96
  357. package/dist/servertool/handlers/stop-message-stage-policy/text-utils.d.ts +0 -9
  358. package/dist/servertool/handlers/stop-message-stage-policy/text-utils.js +0 -89
  359. package/dist/servertool/handlers/stop-message-stage-policy/types.d.ts +0 -59
  360. package/dist/servertool/handlers/stop-message-stage-policy.d.ts +0 -3
  361. package/dist/servertool/handlers/stop-message-stage-policy.js +0 -2
  362. /package/dist/servertool/handlers/{stop-message-stage-policy/types.js → review.d.ts} +0 -0
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@jsonstudio/llms",
3
- "version": "0.6.2172",
3
+ "version": "0.6.2979",
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,118 @@
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"
35
143
  },
36
144
  "dependencies": {
37
145
  "ajv": "^8.17.1",
@@ -1,18 +0,0 @@
1
- import type { StopMessageBdCommandRunner, StopMessageBdTaskProbeResult, StopMessageBdWorkState } from './types.js';
2
- export declare function resolveBdTaskSelectionFromRuntime(options?: {
3
- bdCommandRunner?: StopMessageBdCommandRunner;
4
- nowMs?: number;
5
- cwd?: string;
6
- limit?: number;
7
- }): StopMessageBdTaskProbeResult;
8
- export declare function resolveBdWorkStateFromRuntime(options?: {
9
- bdCommandRunner?: StopMessageBdCommandRunner;
10
- nowMs?: number;
11
- cwd?: string;
12
- }): StopMessageBdWorkState;
13
- export declare function detectBdWorkState(messages: unknown[], options?: {
14
- bdCommandRunner?: StopMessageBdCommandRunner;
15
- nowMs?: number;
16
- cwd?: string;
17
- }): StopMessageBdWorkState;
18
- export declare function resetStopMessageBdRuntimeCacheForTests(): void;
@@ -1,398 +0,0 @@
1
- import * as childProcess from 'node:child_process';
2
- import * as fs from 'node:fs';
3
- import * as path from 'node:path';
4
- import { normalizeMessageForHeuristics, normalizeText } from './text-utils.js';
5
- let bdRuntimeCache = null;
6
- const DEFAULT_BD_TIMEOUT_MS = 1200;
7
- const DEFAULT_BD_CACHE_TTL_MS = 1500;
8
- export function resolveBdTaskSelectionFromRuntime(options) {
9
- const commandRunner = options?.bdCommandRunner ?? runBdCommand;
10
- const timeoutMs = resolveBdTimeoutMs();
11
- const cwd = resolveBdWorkingDirectory(options?.cwd);
12
- const limit = typeof options?.limit === 'number' && Number.isFinite(options.limit) && options.limit > 0
13
- ? Math.max(1, Math.floor(options.limit))
14
- : 20;
15
- const inProgress = runBdIssueQuery(commandRunner, ['--no-db', 'list', '--status', 'in_progress', '--json', '--limit', String(limit)], { cwd, timeoutMs, source: 'in_progress' });
16
- if (inProgress.status === 'unknown')
17
- return { status: 'unknown' };
18
- if (inProgress.issues.length > 0)
19
- return { status: 'ok', task: inProgress.issues[0] };
20
- const ready = runBdIssueQuery(commandRunner, ['--no-db', 'ready', '--json', '--limit', String(limit)], {
21
- cwd,
22
- timeoutMs,
23
- source: 'ready'
24
- });
25
- if (ready.status === 'unknown')
26
- return { status: 'unknown' };
27
- if (ready.issues.length > 0)
28
- return { status: 'ok', task: ready.issues[0] };
29
- const open = runBdIssueQuery(commandRunner, ['--no-db', 'list', '--status', 'open', '--json', '--limit', String(limit)], {
30
- cwd,
31
- timeoutMs,
32
- source: 'open'
33
- });
34
- if (open.status === 'unknown')
35
- return { status: 'unknown' };
36
- if (open.issues.length > 0)
37
- return { status: 'ok', task: open.issues[0] };
38
- return { status: 'ok' };
39
- }
40
- export function resolveBdWorkStateFromRuntime(options) {
41
- const mode = resolveBdMode();
42
- const nowMs = typeof options?.nowMs === 'number' && Number.isFinite(options.nowMs) ? options.nowMs : Date.now();
43
- const cwd = resolveBdWorkingDirectory(options?.cwd);
44
- const ttlMs = resolveBdCacheTtlMs();
45
- if (ttlMs > 0 &&
46
- bdRuntimeCache &&
47
- bdRuntimeCache.mode === mode &&
48
- bdRuntimeCache.cwd === cwd &&
49
- bdRuntimeCache.expiresAt > nowMs) {
50
- return bdRuntimeCache.state;
51
- }
52
- const commandRunner = options?.bdCommandRunner ?? runBdCommand;
53
- const timeoutMs = resolveBdTimeoutMs();
54
- const inProgress = runBdQuery(commandRunner, ['--no-db', 'list', '--status', 'in_progress', '--json', '--limit', '1'], {
55
- cwd,
56
- timeoutMs
57
- });
58
- if (inProgress === 'active') {
59
- return writeBdRuntimeCacheAndReturn(mode, cwd, nowMs, ttlMs, 'active');
60
- }
61
- if (inProgress === 'unknown') {
62
- return writeBdRuntimeCacheAndReturn(mode, cwd, nowMs, ttlMs, 'unknown');
63
- }
64
- const ready = runBdQuery(commandRunner, ['--no-db', 'ready', '--json', '--limit', '1'], {
65
- cwd,
66
- timeoutMs
67
- });
68
- if (ready === 'active') {
69
- return writeBdRuntimeCacheAndReturn(mode, cwd, nowMs, ttlMs, 'active');
70
- }
71
- if (ready === 'unknown') {
72
- return writeBdRuntimeCacheAndReturn(mode, cwd, nowMs, ttlMs, 'unknown');
73
- }
74
- const open = runBdQuery(commandRunner, ['--no-db', 'list', '--status', 'open', '--json', '--limit', '1'], {
75
- cwd,
76
- timeoutMs
77
- });
78
- if (open === 'active') {
79
- return writeBdRuntimeCacheAndReturn(mode, cwd, nowMs, ttlMs, 'active');
80
- }
81
- if (open === 'unknown') {
82
- return writeBdRuntimeCacheAndReturn(mode, cwd, nowMs, ttlMs, 'unknown');
83
- }
84
- const blocked = runBdQuery(commandRunner, ['--no-db', 'list', '--status', 'blocked', '--json', '--limit', '1'], {
85
- cwd,
86
- timeoutMs
87
- });
88
- if (blocked === 'active') {
89
- return writeBdRuntimeCacheAndReturn(mode, cwd, nowMs, ttlMs, 'active');
90
- }
91
- if (blocked === 'unknown') {
92
- return writeBdRuntimeCacheAndReturn(mode, cwd, nowMs, ttlMs, 'unknown');
93
- }
94
- return writeBdRuntimeCacheAndReturn(mode, cwd, nowMs, ttlMs, 'idle');
95
- }
96
- export function detectBdWorkState(messages, options) {
97
- const mode = resolveBdMode();
98
- if (mode !== 'heuristic') {
99
- const runtimeState = resolveBdWorkStateFromRuntime({
100
- bdCommandRunner: options?.bdCommandRunner,
101
- nowMs: options?.nowMs,
102
- cwd: options?.cwd
103
- });
104
- if (runtimeState === 'active' || runtimeState === 'idle') {
105
- return runtimeState;
106
- }
107
- if (mode === 'runtime') {
108
- return 'unknown';
109
- }
110
- }
111
- return detectBdWorkStateFromHeuristics(messages);
112
- }
113
- export function resetStopMessageBdRuntimeCacheForTests() {
114
- bdRuntimeCache = null;
115
- }
116
- function detectBdWorkStateFromHeuristics(messages) {
117
- const normalizedTail = messages
118
- .slice(-30)
119
- .map((message) => normalizeMessageForHeuristics(message))
120
- .filter(Boolean)
121
- .join('\n')
122
- .toLowerCase();
123
- if (!normalizedTail.includes('bd')) {
124
- return 'unknown';
125
- }
126
- const idlePatterns = [
127
- /\bno\s+(ready|open|in_progress)\b/i,
128
- /\b0\s+(ready|open|in_progress)\b/i,
129
- /\bnothing\s+(to\s+do|ready|in\s+progress)\b/i,
130
- /\ball\s+(tasks?|issues?)\s+(done|closed)\b/i,
131
- /没有可(做|推进)任务/i,
132
- /无\s*(ready|open|in_progress)\s*任务/i
133
- ];
134
- if (idlePatterns.some((pattern) => pattern.test(normalizedTail))) {
135
- return 'idle';
136
- }
137
- const activePatterns = [/\bin_progress\b/i, /\bready\b/i, /\bblocked\b/i, /\bopen\b/i, /\bepic status\b/i, /\bshow\s+[a-z0-9._-]+\b/i];
138
- if (activePatterns.some((pattern) => pattern.test(normalizedTail))) {
139
- return 'active';
140
- }
141
- return 'unknown';
142
- }
143
- function writeBdRuntimeCacheAndReturn(mode, cwd, nowMs, ttlMs, state) {
144
- if (ttlMs > 0) {
145
- bdRuntimeCache = {
146
- mode,
147
- cwd,
148
- expiresAt: nowMs + ttlMs,
149
- state
150
- };
151
- }
152
- return state;
153
- }
154
- function resolveBdMode() {
155
- const modeRaw = normalizeText(process.env.ROUTECODEX_STOPMESSAGE_BD_MODE).toLowerCase();
156
- if (modeRaw === 'runtime' || modeRaw === 'real') {
157
- return 'runtime';
158
- }
159
- if (modeRaw === 'heuristic' || modeRaw === 'text') {
160
- return 'heuristic';
161
- }
162
- const legacyRuntimeRaw = normalizeText(process.env.ROUTECODEX_STOPMESSAGE_BD_RUNTIME).toLowerCase();
163
- if (legacyRuntimeRaw === '1' || legacyRuntimeRaw === 'true' || legacyRuntimeRaw === 'on') {
164
- return 'runtime';
165
- }
166
- if (legacyRuntimeRaw === '0' || legacyRuntimeRaw === 'false' || legacyRuntimeRaw === 'off') {
167
- return 'heuristic';
168
- }
169
- return 'auto';
170
- }
171
- function resolveBdCacheTtlMs() {
172
- const parsed = parseNonNegativeInteger(process.env.ROUTECODEX_STOPMESSAGE_BD_CACHE_TTL_MS);
173
- if (typeof parsed === 'number') {
174
- return parsed;
175
- }
176
- return DEFAULT_BD_CACHE_TTL_MS;
177
- }
178
- function resolveBdTimeoutMs() {
179
- const parsed = parsePositiveInteger(process.env.ROUTECODEX_STOPMESSAGE_BD_TIMEOUT_MS);
180
- if (typeof parsed === 'number') {
181
- return parsed;
182
- }
183
- return DEFAULT_BD_TIMEOUT_MS;
184
- }
185
- function parseNonNegativeInteger(value) {
186
- if (typeof value !== 'string') {
187
- return undefined;
188
- }
189
- const parsed = Number.parseInt(value.trim(), 10);
190
- if (!Number.isFinite(parsed) || parsed < 0) {
191
- return undefined;
192
- }
193
- return parsed;
194
- }
195
- function parsePositiveInteger(value) {
196
- const parsed = parseNonNegativeInteger(value);
197
- if (typeof parsed !== 'number' || parsed <= 0) {
198
- return undefined;
199
- }
200
- return parsed;
201
- }
202
- function resolveBdWorkingDirectory(cwdOverride) {
203
- const fromOverride = normalizeText(cwdOverride);
204
- if (fromOverride) {
205
- return path.resolve(fromOverride);
206
- }
207
- const fromEnv = normalizeText(process.env.ROUTECODEX_STOPMESSAGE_BD_WORKDIR);
208
- if (fromEnv) {
209
- return path.resolve(fromEnv);
210
- }
211
- const current = process.cwd();
212
- return findBdProjectRoot(current) || current;
213
- }
214
- function findBdProjectRoot(startDirectory) {
215
- let current = path.resolve(startDirectory);
216
- while (true) {
217
- const beadsDir = path.join(current, '.beads');
218
- const issuesJsonlPath = path.join(beadsDir, 'issues.jsonl');
219
- if (fs.existsSync(issuesJsonlPath)) {
220
- return current;
221
- }
222
- if (fs.existsSync(beadsDir)) {
223
- return current;
224
- }
225
- const parent = path.dirname(current);
226
- if (parent === current) {
227
- return null;
228
- }
229
- current = parent;
230
- }
231
- }
232
- function runBdCommand(args, options) {
233
- try {
234
- const result = childProcess.spawnSync('bd', args, {
235
- cwd: options.cwd,
236
- encoding: 'utf8',
237
- timeout: options.timeoutMs,
238
- maxBuffer: 1024 * 1024
239
- });
240
- return {
241
- status: result.status,
242
- stdout: typeof result.stdout === 'string' ? result.stdout : String(result.stdout ?? ''),
243
- stderr: typeof result.stderr === 'string' ? result.stderr : String(result.stderr ?? ''),
244
- error: result.error
245
- };
246
- }
247
- catch (error) {
248
- return {
249
- status: null,
250
- stdout: '',
251
- stderr: '',
252
- error
253
- };
254
- }
255
- }
256
- function runBdQuery(commandRunner, args, options) {
257
- const result = commandRunner(args, options);
258
- if (result.error || result.status !== 0) {
259
- return 'unknown';
260
- }
261
- const list = parseJsonArrayOutput(result.stdout);
262
- if (!list) {
263
- return 'unknown';
264
- }
265
- return list.length > 0 ? 'active' : 'idle';
266
- }
267
- function runBdIssueQuery(commandRunner, args, options) {
268
- const result = commandRunner(args, { cwd: options.cwd, timeoutMs: options.timeoutMs });
269
- if (result.error || result.status !== 0) {
270
- return { status: 'unknown', issues: [] };
271
- }
272
- const list = parseJsonArrayOutput(result.stdout);
273
- if (!list) {
274
- return { status: 'unknown', issues: [] };
275
- }
276
- if (list.length === 0) {
277
- return { status: 'ok', issues: [] };
278
- }
279
- const issues = list
280
- .map((item) => normalizeIssueSelection(item, options.source))
281
- .filter((item) => Boolean(item))
282
- .sort(compareIssueSelection);
283
- if (issues.length === 0) {
284
- return { status: 'unknown', issues: [] };
285
- }
286
- return { status: 'ok', issues };
287
- }
288
- function parseJsonArrayOutput(stdout) {
289
- const trimmed = typeof stdout === 'string' ? stdout.trim() : '';
290
- if (!trimmed) {
291
- return [];
292
- }
293
- const parsedDirect = parseJsonArray(trimmed);
294
- if (parsedDirect) {
295
- return parsedDirect;
296
- }
297
- const firstBracket = trimmed.indexOf('[');
298
- const lastBracket = trimmed.lastIndexOf(']');
299
- if (firstBracket >= 0 && lastBracket > firstBracket) {
300
- const arraySlice = trimmed.slice(firstBracket, lastBracket + 1).trim();
301
- const parsedSlice = parseJsonArray(arraySlice);
302
- if (parsedSlice) {
303
- return parsedSlice;
304
- }
305
- }
306
- return null;
307
- }
308
- function parseJsonArray(raw) {
309
- try {
310
- const value = JSON.parse(raw);
311
- if (Array.isArray(value)) {
312
- return value;
313
- }
314
- if (value && typeof value === 'object') {
315
- const record = value;
316
- if (Array.isArray(record.items)) {
317
- return record.items;
318
- }
319
- if (Array.isArray(record.issues)) {
320
- return record.issues;
321
- }
322
- if (Array.isArray(record.data)) {
323
- return record.data;
324
- }
325
- }
326
- return null;
327
- }
328
- catch {
329
- return null;
330
- }
331
- }
332
- function normalizeIssueSelection(item, source) {
333
- if (!item || typeof item !== 'object' || Array.isArray(item)) {
334
- return null;
335
- }
336
- const record = item;
337
- const issueId = normalizeText(record.id);
338
- if (!issueId) {
339
- return null;
340
- }
341
- const issueTitle = normalizeText(record.title) ||
342
- normalizeText(record.summary) ||
343
- normalizeText(record.name) ||
344
- `Issue ${issueId}`;
345
- const priority = parseIssuePriority(record.priority);
346
- return {
347
- issueId,
348
- issueTitle: issueTitle.slice(0, 240),
349
- priority,
350
- source
351
- };
352
- }
353
- function parseIssuePriority(value) {
354
- if (typeof value === 'number' && Number.isFinite(value)) {
355
- return Math.max(0, Math.floor(value));
356
- }
357
- if (typeof value === 'string') {
358
- const normalized = value.trim().toLowerCase();
359
- const pMatch = normalized.match(/^p?(\d+)$/);
360
- if (pMatch) {
361
- const parsed = Number.parseInt(pMatch[1], 10);
362
- if (Number.isFinite(parsed)) {
363
- return Math.max(0, parsed);
364
- }
365
- }
366
- }
367
- return 99;
368
- }
369
- function compareIssueSelection(a, b) {
370
- if (a.priority !== b.priority) {
371
- return a.priority - b.priority;
372
- }
373
- const idCompare = compareIssueId(a.issueId, b.issueId);
374
- if (idCompare !== 0) {
375
- return idCompare;
376
- }
377
- return a.issueTitle.localeCompare(b.issueTitle);
378
- }
379
- function compareIssueId(left, right) {
380
- const leftParts = left.match(/\d+|\D+/g) || [left];
381
- const rightParts = right.match(/\d+|\D+/g) || [right];
382
- const maxLen = Math.max(leftParts.length, rightParts.length);
383
- for (let idx = 0; idx < maxLen; idx += 1) {
384
- const l = leftParts[idx] || '';
385
- const r = rightParts[idx] || '';
386
- const lNum = /^\d+$/.test(l) ? Number.parseInt(l, 10) : NaN;
387
- const rNum = /^\d+$/.test(r) ? Number.parseInt(r, 10) : NaN;
388
- if (Number.isFinite(lNum) && Number.isFinite(rNum)) {
389
- if (lNum !== rNum)
390
- return lNum - rNum;
391
- continue;
392
- }
393
- const compare = l.localeCompare(r);
394
- if (compare !== 0)
395
- return compare;
396
- }
397
- return 0;
398
- }
@@ -1,9 +0,0 @@
1
- import type { StopMessageBdCommandRunner, StopMessageStageDecision, StopMessageStageStateSnapshot } from './types.js';
2
- export declare function resolveStopMessageStageDecision(args: {
3
- baseText: string;
4
- state: StopMessageStageStateSnapshot;
5
- capturedMessages: unknown[];
6
- bdCommandRunner?: StopMessageBdCommandRunner;
7
- bdWorkingDirectory?: string;
8
- nowMs?: number;
9
- }): StopMessageStageDecision;