@jsonstudio/rcc 0.90.876 → 0.90.1270

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 (833) hide show
  1. package/README.md +5 -6
  2. package/configsamples/provider-default/ali-coding-plan/config.v2.json +6 -1
  3. package/configsamples/provider-default/antigravity/config.v2.json +6 -1
  4. package/configsamples/provider-default/ark-coding-plan/config.v2.json +7 -2
  5. package/configsamples/provider-default/crs/config.v2.json +6 -1
  6. package/configsamples/provider-default/deepseek-web/config.v2.json +6 -1
  7. package/configsamples/provider-default/gemini/config.v2.json +6 -1
  8. package/configsamples/provider-default/gemini-cli/config.v2.json +6 -1
  9. package/configsamples/provider-default/gemini-native/config.v2.json +6 -1
  10. package/configsamples/provider-default/glm/config.v2.json +7 -2
  11. package/configsamples/provider-default/glm-anthropic/config.v2.json +6 -1
  12. package/configsamples/provider-default/kimi/config.v2.json +7 -2
  13. package/configsamples/provider-default/lmstudio/config.v2.json +6 -1
  14. package/configsamples/provider-default/lmstudio-proxy/config.v2.json +6 -1
  15. package/configsamples/provider-default/manifest.json +0 -1
  16. package/configsamples/provider-default/meituan/config.v2.json +6 -1
  17. package/configsamples/provider-default/mimo/config.v2.json +7 -2
  18. package/configsamples/provider-default/modelscope/config.v2.json +7 -2
  19. package/configsamples/provider-default/my-openai/config.v2.json +6 -1
  20. package/configsamples/provider-default/nvidia/config.v2.json +7 -2
  21. package/configsamples/provider-default/opencode-zen-free/config.v2.json +6 -1
  22. package/configsamples/provider-default/openrouter/config.v2.json +6 -1
  23. package/configsamples/provider-default/qwen/config.v2.json +11 -1
  24. package/configsamples/provider-default/tab/config.v2.json +6 -1
  25. package/configsamples/provider-default/tabglm/config.v2.json +7 -2
  26. package/dist/build-info.js +2 -2
  27. package/dist/build-info.js.map +1 -1
  28. package/dist/cli/commands/camoufox.js +44 -3
  29. package/dist/cli/commands/camoufox.js.map +1 -1
  30. package/dist/cli/commands/config.js +2 -2
  31. package/dist/cli/commands/config.js.map +1 -1
  32. package/dist/cli/commands/heartbeat.js +82 -27
  33. package/dist/cli/commands/heartbeat.js.map +1 -1
  34. package/dist/cli/commands/init.js +1 -2
  35. package/dist/cli/commands/init.js.map +1 -1
  36. package/dist/cli/commands/launcher/utils.js +37 -24
  37. package/dist/cli/commands/launcher/utils.js.map +1 -1
  38. package/dist/cli/commands/launcher-kernel.js +6 -3
  39. package/dist/cli/commands/launcher-kernel.js.map +1 -1
  40. package/dist/cli/commands/restart.js +102 -31
  41. package/dist/cli/commands/restart.js.map +1 -1
  42. package/dist/cli/commands/start-types.d.ts +1 -0
  43. package/dist/cli/commands/start-utils.d.ts +1 -0
  44. package/dist/cli/commands/start-utils.js +3 -0
  45. package/dist/cli/commands/start-utils.js.map +1 -1
  46. package/dist/cli/commands/start.js +217 -51
  47. package/dist/cli/commands/start.js.map +1 -1
  48. package/dist/cli/commands/status.js +48 -9
  49. package/dist/cli/commands/status.js.map +1 -1
  50. package/dist/cli/config/bootstrap-provider-templates.js +1 -1
  51. package/dist/cli/config/bootstrap-provider-templates.js.map +1 -1
  52. package/dist/cli/config/init-provider-catalog.js +3 -50
  53. package/dist/cli/config/init-provider-catalog.js.map +1 -1
  54. package/dist/cli/config/init-v2-builder.js +0 -1
  55. package/dist/cli/config/init-v2-builder.js.map +1 -1
  56. package/dist/cli/guardian/client.js +40 -18
  57. package/dist/cli/guardian/client.js.map +1 -1
  58. package/dist/cli/server/port-utils.d.ts +5 -0
  59. package/dist/cli/server/port-utils.js +45 -31
  60. package/dist/cli/server/port-utils.js.map +1 -1
  61. package/dist/commands/camoufox-fp.js +1 -1
  62. package/dist/commands/camoufox-fp.js.map +1 -1
  63. package/dist/commands/oauth.js +48 -64
  64. package/dist/commands/oauth.js.map +1 -1
  65. package/dist/commands/provider-update-maintenance.js +4 -4
  66. package/dist/commands/provider-update-maintenance.js.map +1 -1
  67. package/dist/commands/token-daemon.js +38 -10
  68. package/dist/commands/token-daemon.js.map +1 -1
  69. package/dist/commands/validate.js +31 -3
  70. package/dist/commands/validate.js.map +1 -1
  71. package/dist/config/provider-v2-loader.d.ts +5 -2
  72. package/dist/config/provider-v2-loader.js +80 -26
  73. package/dist/config/provider-v2-loader.js.map +1 -1
  74. package/dist/config/routecodex-config-loader.d.ts +1 -0
  75. package/dist/config/routecodex-config-loader.js +18 -207
  76. package/dist/config/routecodex-config-loader.js.map +1 -1
  77. package/dist/config/virtual-router-builder.d.ts +3 -2
  78. package/dist/config/virtual-router-builder.js +4 -214
  79. package/dist/config/virtual-router-builder.js.map +1 -1
  80. package/dist/constants/index.d.ts +2 -3
  81. package/dist/constants/index.js +2 -4
  82. package/dist/constants/index.js.map +1 -1
  83. package/dist/error-handling/route-error-hub.js +1 -0
  84. package/dist/error-handling/route-error-hub.js.map +1 -1
  85. package/dist/index.js +98 -21
  86. package/dist/index.js.map +1 -1
  87. package/dist/manager/modules/quota/antigravity-quota-manager.d.ts +1 -1
  88. package/dist/manager/modules/quota/antigravity-quota-manager.js +21 -12
  89. package/dist/manager/modules/quota/antigravity-quota-manager.js.map +1 -1
  90. package/dist/manager/modules/quota/antigravity-quota-runtime.d.ts +1 -1
  91. package/dist/manager/modules/quota/antigravity-quota-runtime.js +32 -45
  92. package/dist/manager/modules/quota/antigravity-quota-runtime.js.map +1 -1
  93. package/dist/manager/modules/quota/provider-key-normalization.js +10 -1
  94. package/dist/manager/modules/quota/provider-key-normalization.js.map +1 -1
  95. package/dist/manager/modules/quota/provider-quota-daemon.d.ts +2 -1
  96. package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.d.ts +1 -1
  97. package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.js +22 -12
  98. package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.js.map +1 -1
  99. package/dist/manager/modules/quota/provider-quota-daemon.events.js +69 -33
  100. package/dist/manager/modules/quota/provider-quota-daemon.events.js.map +1 -1
  101. package/dist/manager/modules/quota/provider-quota-daemon.js +47 -35
  102. package/dist/manager/modules/quota/provider-quota-daemon.js.map +1 -1
  103. package/dist/manager/storage/file-store.js +3 -0
  104. package/dist/manager/storage/file-store.js.map +1 -1
  105. package/dist/modules/llmswitch/bridge/antigravity-signature.js +58 -20
  106. package/dist/modules/llmswitch/bridge/antigravity-signature.js.map +1 -1
  107. package/dist/modules/llmswitch/bridge/index.d.ts +1 -1
  108. package/dist/modules/llmswitch/bridge/index.js +1 -1
  109. package/dist/modules/llmswitch/bridge/index.js.map +1 -1
  110. package/dist/modules/llmswitch/bridge/runtime-integrations.d.ts +22 -16
  111. package/dist/modules/llmswitch/bridge/runtime-integrations.js +89 -30
  112. package/dist/modules/llmswitch/bridge/runtime-integrations.js.map +1 -1
  113. package/dist/modules/llmswitch/bridge/snapshot-recorder-runtime.js +10 -9
  114. package/dist/modules/llmswitch/bridge/snapshot-recorder-runtime.js.map +1 -1
  115. package/dist/modules/llmswitch/bridge/snapshot-recorder.js +3 -0
  116. package/dist/modules/llmswitch/bridge/snapshot-recorder.js.map +1 -1
  117. package/dist/modules/llmswitch/bridge/state-integrations.d.ts +1 -0
  118. package/dist/modules/llmswitch/bridge/state-integrations.js +263 -51
  119. package/dist/modules/llmswitch/bridge/state-integrations.js.map +1 -1
  120. package/dist/modules/llmswitch/bridge.d.ts +2 -2
  121. package/dist/modules/llmswitch/bridge.js +2 -2
  122. package/dist/modules/llmswitch/bridge.js.map +1 -1
  123. package/dist/provider-sdk/provider-add-template.d.ts +1 -1
  124. package/dist/provider-sdk/provider-add-template.js.map +1 -1
  125. package/dist/provider-sdk/provider-runtime-inference.js +48 -13
  126. package/dist/provider-sdk/provider-runtime-inference.js.map +1 -1
  127. package/dist/providers/auth/deepseek-account-token-acquirer.d.ts +24 -0
  128. package/dist/providers/auth/deepseek-account-token-acquirer.js +42 -13
  129. package/dist/providers/auth/deepseek-account-token-acquirer.js.map +1 -1
  130. package/dist/providers/auth/oauth-auth.js +12 -5
  131. package/dist/providers/auth/oauth-auth.js.map +1 -1
  132. package/dist/providers/auth/oauth-lifecycle/path-resolver.d.ts +0 -1
  133. package/dist/providers/auth/oauth-lifecycle/path-resolver.js +10 -9
  134. package/dist/providers/auth/oauth-lifecycle/path-resolver.js.map +1 -1
  135. package/dist/providers/auth/oauth-lifecycle/token-helpers.js +0 -1
  136. package/dist/providers/auth/oauth-lifecycle/token-helpers.js.map +1 -1
  137. package/dist/providers/auth/oauth-lifecycle/token-io.js +18 -8
  138. package/dist/providers/auth/oauth-lifecycle/token-io.js.map +1 -1
  139. package/dist/providers/auth/oauth-lifecycle.d.ts +5 -0
  140. package/dist/providers/auth/oauth-lifecycle.js +370 -353
  141. package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
  142. package/dist/providers/auth/oauth-repair-env.js +0 -26
  143. package/dist/providers/auth/oauth-repair-env.js.map +1 -1
  144. package/dist/providers/auth/qwen-userinfo-helper.d.ts +11 -0
  145. package/dist/providers/auth/qwen-userinfo-helper.js +85 -13
  146. package/dist/providers/auth/qwen-userinfo-helper.js.map +1 -1
  147. package/dist/providers/auth/token-refresh/token-state.js +1 -4
  148. package/dist/providers/auth/token-refresh/token-state.js.map +1 -1
  149. package/dist/providers/auth/token-scanner/index.d.ts +1 -1
  150. package/dist/providers/auth/token-scanner/index.js +2 -2
  151. package/dist/providers/auth/token-storage/token-file-resolver.js +0 -3
  152. package/dist/providers/auth/token-storage/token-file-resolver.js.map +1 -1
  153. package/dist/providers/auth/token-storage/token-persistence.js +10 -3
  154. package/dist/providers/auth/token-storage/token-persistence.js.map +1 -1
  155. package/dist/providers/auth/tokenfile-auth.d.ts +0 -1
  156. package/dist/providers/auth/tokenfile-auth.js +23 -30
  157. package/dist/providers/auth/tokenfile-auth.js.map +1 -1
  158. package/dist/providers/core/api/provider-config.d.ts +1 -1
  159. package/dist/providers/core/api/provider-types.d.ts +2 -1
  160. package/dist/providers/core/config/camoufox-actions.js +23 -15
  161. package/dist/providers/core/config/camoufox-actions.js.map +1 -1
  162. package/dist/providers/core/config/camoufox-launcher.js +235 -121
  163. package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
  164. package/dist/providers/core/config/oauth-flows.js +23 -1
  165. package/dist/providers/core/config/oauth-flows.js.map +1 -1
  166. package/dist/providers/core/config/provider-oauth-configs.js +2 -93
  167. package/dist/providers/core/config/provider-oauth-configs.js.map +1 -1
  168. package/dist/providers/core/config/service-profiles.d.ts +0 -1
  169. package/dist/providers/core/config/service-profiles.js +23 -66
  170. package/dist/providers/core/config/service-profiles.js.map +1 -1
  171. package/dist/providers/core/runtime/base-provider-runtime-helpers.js +4 -1
  172. package/dist/providers/core/runtime/base-provider-runtime-helpers.js.map +1 -1
  173. package/dist/providers/core/runtime/base-provider.js +21 -11
  174. package/dist/providers/core/runtime/base-provider.js.map +1 -1
  175. package/dist/providers/core/runtime/deepseek-http-provider-helpers.d.ts +1 -0
  176. package/dist/providers/core/runtime/deepseek-http-provider-helpers.js +28 -0
  177. package/dist/providers/core/runtime/deepseek-http-provider-helpers.js.map +1 -1
  178. package/dist/providers/core/runtime/deepseek-http-provider.d.ts +0 -2
  179. package/dist/providers/core/runtime/deepseek-http-provider.js +3 -33
  180. package/dist/providers/core/runtime/deepseek-http-provider.js.map +1 -1
  181. package/dist/providers/core/runtime/http-request-executor.d.ts +1 -0
  182. package/dist/providers/core/runtime/http-request-executor.js +131 -47
  183. package/dist/providers/core/runtime/http-request-executor.js.map +1 -1
  184. package/dist/providers/core/runtime/http-transport-provider.d.ts +5 -5
  185. package/dist/providers/core/runtime/http-transport-provider.js +97 -38
  186. package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
  187. package/dist/providers/core/runtime/openai-responses-sdk-transport.js +2 -1
  188. package/dist/providers/core/runtime/openai-responses-sdk-transport.js.map +1 -1
  189. package/dist/providers/core/runtime/provider-error-classifier.js +19 -126
  190. package/dist/providers/core/runtime/provider-error-classifier.js.map +1 -1
  191. package/dist/providers/core/runtime/provider-factory-helpers.d.ts +1 -0
  192. package/dist/providers/core/runtime/provider-factory-helpers.js +8 -12
  193. package/dist/providers/core/runtime/provider-factory-helpers.js.map +1 -1
  194. package/dist/providers/core/runtime/provider-factory.js +2 -9
  195. package/dist/providers/core/runtime/provider-factory.js.map +1 -1
  196. package/dist/providers/core/runtime/provider-failure-policy.d.ts +135 -0
  197. package/dist/providers/core/runtime/provider-failure-policy.js +685 -0
  198. package/dist/providers/core/runtime/provider-failure-policy.js.map +1 -0
  199. package/dist/providers/core/runtime/provider-family-profile-utils.d.ts +0 -10
  200. package/dist/providers/core/runtime/provider-family-profile-utils.js +0 -28
  201. package/dist/providers/core/runtime/provider-family-profile-utils.js.map +1 -1
  202. package/dist/providers/core/runtime/provider-http-executor-utils.js +40 -1
  203. package/dist/providers/core/runtime/provider-http-executor-utils.js.map +1 -1
  204. package/dist/providers/core/runtime/provider-request-header-orchestrator.d.ts +0 -2
  205. package/dist/providers/core/runtime/provider-request-header-orchestrator.js +35 -8
  206. package/dist/providers/core/runtime/provider-request-header-orchestrator.js.map +1 -1
  207. package/dist/providers/core/runtime/provider-response-postprocessor.js +3 -23
  208. package/dist/providers/core/runtime/provider-response-postprocessor.js.map +1 -1
  209. package/dist/providers/core/runtime/provider-runtime-utils.js +4 -1
  210. package/dist/providers/core/runtime/provider-runtime-utils.js.map +1 -1
  211. package/dist/providers/core/runtime/provider-startup-tasks.js +18 -2
  212. package/dist/providers/core/runtime/provider-startup-tasks.js.map +1 -1
  213. package/dist/providers/core/runtime/responses-provider-helpers.d.ts +1 -0
  214. package/dist/providers/core/runtime/responses-provider-helpers.js +11 -12
  215. package/dist/providers/core/runtime/responses-provider-helpers.js.map +1 -1
  216. package/dist/providers/core/runtime/responses-provider.js +15 -10
  217. package/dist/providers/core/runtime/responses-provider.js.map +1 -1
  218. package/dist/providers/core/runtime/transport/auth-provider-factory.d.ts +0 -1
  219. package/dist/providers/core/runtime/transport/auth-provider-factory.js +1 -15
  220. package/dist/providers/core/runtime/transport/auth-provider-factory.js.map +1 -1
  221. package/dist/providers/core/runtime/transport/index.d.ts +0 -1
  222. package/dist/providers/core/runtime/transport/index.js +0 -1
  223. package/dist/providers/core/runtime/transport/index.js.map +1 -1
  224. package/dist/providers/core/runtime/transport/oauth-recovery-handler.d.ts +2 -0
  225. package/dist/providers/core/runtime/transport/oauth-recovery-handler.js +76 -5
  226. package/dist/providers/core/runtime/transport/oauth-recovery-handler.js.map +1 -1
  227. package/dist/providers/core/runtime/transport/request-header-builder.d.ts +0 -1
  228. package/dist/providers/core/runtime/transport/request-header-builder.js +1 -7
  229. package/dist/providers/core/runtime/transport/request-header-builder.js.map +1 -1
  230. package/dist/providers/core/runtime/transport/runtime-detector.d.ts +0 -2
  231. package/dist/providers/core/runtime/transport/runtime-detector.js +0 -20
  232. package/dist/providers/core/runtime/transport/runtime-detector.js.map +1 -1
  233. package/dist/providers/core/runtime/transport/session-header-utils.d.ts +6 -0
  234. package/dist/providers/core/runtime/transport/session-header-utils.js +61 -2
  235. package/dist/providers/core/runtime/transport/session-header-utils.js.map +1 -1
  236. package/dist/providers/core/runtime/vercel-ai-sdk/anthropic-sdk-request-exec.js +2 -1
  237. package/dist/providers/core/runtime/vercel-ai-sdk/anthropic-sdk-request-exec.js.map +1 -1
  238. package/dist/providers/core/runtime/vercel-ai-sdk/openai-sdk-transport.js +2 -1
  239. package/dist/providers/core/runtime/vercel-ai-sdk/openai-sdk-transport.js.map +1 -1
  240. package/dist/providers/core/strategies/oauth-auth-code-flow.d.ts +1 -4
  241. package/dist/providers/core/strategies/oauth-auth-code-flow.js +26 -84
  242. package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
  243. package/dist/providers/core/strategies/oauth-device-flow.d.ts +2 -0
  244. package/dist/providers/core/strategies/oauth-device-flow.js +43 -8
  245. package/dist/providers/core/strategies/oauth-device-flow.js.map +1 -1
  246. package/dist/providers/core/utils/http-client.d.ts +7 -5
  247. package/dist/providers/core/utils/http-client.js +108 -33
  248. package/dist/providers/core/utils/http-client.js.map +1 -1
  249. package/dist/providers/core/utils/provider-error-reporter.d.ts +2 -2
  250. package/dist/providers/core/utils/provider-error-reporter.js +9 -85
  251. package/dist/providers/core/utils/provider-error-reporter.js.map +1 -1
  252. package/dist/providers/core/utils/provider-type-utils.js +1 -3
  253. package/dist/providers/core/utils/provider-type-utils.js.map +1 -1
  254. package/dist/providers/core/utils/qwen-client-fingerprint.d.ts +15 -0
  255. package/dist/providers/core/utils/qwen-client-fingerprint.js +47 -0
  256. package/dist/providers/core/utils/qwen-client-fingerprint.js.map +1 -0
  257. package/dist/providers/core/utils/snapshot-writer.d.ts +3 -0
  258. package/dist/providers/core/utils/snapshot-writer.js +385 -26
  259. package/dist/providers/core/utils/snapshot-writer.js.map +1 -1
  260. package/dist/providers/profile/families/qwen-profile.js +285 -22
  261. package/dist/providers/profile/families/qwen-profile.js.map +1 -1
  262. package/dist/providers/profile/profile-registry.js +0 -2
  263. package/dist/providers/profile/profile-registry.js.map +1 -1
  264. package/dist/providers/profile/provider-directory.js +0 -1
  265. package/dist/providers/profile/provider-directory.js.map +1 -1
  266. package/dist/providers/profile/provider-profile-loader.js +1 -1
  267. package/dist/providers/profile/provider-profile-loader.js.map +1 -1
  268. package/dist/server/handlers/chat-handler.js +6 -5
  269. package/dist/server/handlers/chat-handler.js.map +1 -1
  270. package/dist/server/handlers/config-admin-handler.js +44 -69
  271. package/dist/server/handlers/config-admin-handler.js.map +1 -1
  272. package/dist/server/handlers/handler-response-utils.js +190 -27
  273. package/dist/server/handlers/handler-response-utils.js.map +1 -1
  274. package/dist/server/handlers/handler-utils.d.ts +3 -0
  275. package/dist/server/handlers/handler-utils.js +72 -0
  276. package/dist/server/handlers/handler-utils.js.map +1 -1
  277. package/dist/server/handlers/images-handler.js +7 -7
  278. package/dist/server/handlers/images-handler.js.map +1 -1
  279. package/dist/server/handlers/messages-handler.js +6 -5
  280. package/dist/server/handlers/messages-handler.js.map +1 -1
  281. package/dist/server/handlers/responses-handler.js +32 -14
  282. package/dist/server/handlers/responses-handler.js.map +1 -1
  283. package/dist/server/handlers/sse-dispatcher.js +55 -13
  284. package/dist/server/handlers/sse-dispatcher.js.map +1 -1
  285. package/dist/server/handlers/types.d.ts +12 -0
  286. package/dist/server/runtime/http-server/daemon-admin/auth-handler.js +5 -2
  287. package/dist/server/runtime/http-server/daemon-admin/auth-handler.js.map +1 -1
  288. package/dist/server/runtime/http-server/daemon-admin/control-handler.js +62 -18
  289. package/dist/server/runtime/http-server/daemon-admin/control-handler.js.map +1 -1
  290. package/dist/server/runtime/http-server/daemon-admin/credentials-handler-utils.js +1 -1
  291. package/dist/server/runtime/http-server/daemon-admin/credentials-handler-utils.js.map +1 -1
  292. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +9 -9
  293. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
  294. package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js +36 -10
  295. package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js.map +1 -1
  296. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +11 -11
  297. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js.map +1 -1
  298. package/dist/server/runtime/http-server/daemon-admin/quota-handler.js +49 -8
  299. package/dist/server/runtime/http-server/daemon-admin/quota-handler.js.map +1 -1
  300. package/dist/server/runtime/http-server/daemon-admin-routes.d.ts +1 -0
  301. package/dist/server/runtime/http-server/daemon-admin-routes.js +46 -0
  302. package/dist/server/runtime/http-server/daemon-admin-routes.js.map +1 -1
  303. package/dist/server/runtime/http-server/executor/client-injection-flow.js +2 -0
  304. package/dist/server/runtime/http-server/executor/client-injection-flow.js.map +1 -1
  305. package/dist/server/runtime/http-server/executor/log-rollup.d.ts +38 -0
  306. package/dist/server/runtime/http-server/executor/log-rollup.js +775 -0
  307. package/dist/server/runtime/http-server/executor/log-rollup.js.map +1 -0
  308. package/dist/server/runtime/http-server/executor/provider-response-converter.js +654 -281
  309. package/dist/server/runtime/http-server/executor/provider-response-converter.js.map +1 -1
  310. package/dist/server/runtime/http-server/executor/provider-response-utils.js +34 -3
  311. package/dist/server/runtime/http-server/executor/provider-response-utils.js.map +1 -1
  312. package/dist/server/runtime/http-server/executor/provider-runtime-resolver.js +14 -68
  313. package/dist/server/runtime/http-server/executor/provider-runtime-resolver.js.map +1 -1
  314. package/dist/server/runtime/http-server/executor/request-executor-core-utils.js +26 -2
  315. package/dist/server/runtime/http-server/executor/request-executor-core-utils.js.map +1 -1
  316. package/dist/server/runtime/http-server/executor/request-retry-helpers.js +20 -2
  317. package/dist/server/runtime/http-server/executor/request-retry-helpers.js.map +1 -1
  318. package/dist/server/runtime/http-server/executor/servertool-adapter-context.d.ts +10 -0
  319. package/dist/server/runtime/http-server/executor/servertool-adapter-context.js +120 -0
  320. package/dist/server/runtime/http-server/executor/servertool-adapter-context.js.map +1 -0
  321. package/dist/server/runtime/http-server/executor/servertool-followup-dispatch.d.ts +35 -0
  322. package/dist/server/runtime/http-server/executor/servertool-followup-dispatch.js +101 -0
  323. package/dist/server/runtime/http-server/executor/servertool-followup-dispatch.js.map +1 -0
  324. package/dist/server/runtime/http-server/executor/servertool-followup-error.d.ts +46 -0
  325. package/dist/server/runtime/http-server/executor/servertool-followup-error.js +127 -0
  326. package/dist/server/runtime/http-server/executor/servertool-followup-error.js.map +1 -0
  327. package/dist/server/runtime/http-server/executor/servertool-followup-metadata.d.ts +7 -0
  328. package/dist/server/runtime/http-server/executor/servertool-followup-metadata.js +186 -0
  329. package/dist/server/runtime/http-server/executor/servertool-followup-metadata.js.map +1 -0
  330. package/dist/server/runtime/http-server/executor/servertool-request-normalizer.d.ts +2 -0
  331. package/dist/server/runtime/http-server/executor/servertool-request-normalizer.js +56 -0
  332. package/dist/server/runtime/http-server/executor/servertool-request-normalizer.js.map +1 -0
  333. package/dist/server/runtime/http-server/executor/servertool-response-normalizer.d.ts +8 -0
  334. package/dist/server/runtime/http-server/executor/servertool-response-normalizer.js +31 -0
  335. package/dist/server/runtime/http-server/executor/servertool-response-normalizer.js.map +1 -0
  336. package/dist/server/runtime/http-server/executor/servertool-runtime-log.d.ts +8 -0
  337. package/dist/server/runtime/http-server/executor/servertool-runtime-log.js +33 -0
  338. package/dist/server/runtime/http-server/executor/servertool-runtime-log.js.map +1 -0
  339. package/dist/server/runtime/http-server/executor/sse-error-handler.js +37 -0
  340. package/dist/server/runtime/http-server/executor/sse-error-handler.js.map +1 -1
  341. package/dist/server/runtime/http-server/executor/usage-aggregator.js +32 -2
  342. package/dist/server/runtime/http-server/executor/usage-aggregator.js.map +1 -1
  343. package/dist/server/runtime/http-server/executor/usage-logger.d.ts +12 -0
  344. package/dist/server/runtime/http-server/executor/usage-logger.js +56 -1
  345. package/dist/server/runtime/http-server/executor/usage-logger.js.map +1 -1
  346. package/dist/server/runtime/http-server/executor-metadata.d.ts +15 -0
  347. package/dist/server/runtime/http-server/executor-metadata.js +60 -18
  348. package/dist/server/runtime/http-server/executor-metadata.js.map +1 -1
  349. package/dist/server/runtime/http-server/executor-provider.d.ts +2 -0
  350. package/dist/server/runtime/http-server/executor-provider.js +88 -205
  351. package/dist/server/runtime/http-server/executor-provider.js.map +1 -1
  352. package/dist/server/runtime/http-server/executor-response.js +30 -149
  353. package/dist/server/runtime/http-server/executor-response.js.map +1 -1
  354. package/dist/server/runtime/http-server/http-server-bootstrap.js +53 -17
  355. package/dist/server/runtime/http-server/http-server-bootstrap.js.map +1 -1
  356. package/dist/server/runtime/http-server/http-server-legacy-pipeline.js +28 -1
  357. package/dist/server/runtime/http-server/http-server-legacy-pipeline.js.map +1 -1
  358. package/dist/server/runtime/http-server/http-server-lifecycle.js +17 -4
  359. package/dist/server/runtime/http-server/http-server-lifecycle.js.map +1 -1
  360. package/dist/server/runtime/http-server/http-server-runtime-providers.js +42 -13
  361. package/dist/server/runtime/http-server/http-server-runtime-providers.js.map +1 -1
  362. package/dist/server/runtime/http-server/http-server-runtime-setup.js +40 -2
  363. package/dist/server/runtime/http-server/http-server-runtime-setup.js.map +1 -1
  364. package/dist/server/runtime/http-server/hub-shadow-compare.js +8 -4
  365. package/dist/server/runtime/http-server/hub-shadow-compare.js.map +1 -1
  366. package/dist/server/runtime/http-server/managed-process-probe.js +30 -4
  367. package/dist/server/runtime/http-server/managed-process-probe.js.map +1 -1
  368. package/dist/server/runtime/http-server/middleware.js +32 -4
  369. package/dist/server/runtime/http-server/middleware.js.map +1 -1
  370. package/dist/server/runtime/http-server/provider-traffic-governor.d.ts +45 -1
  371. package/dist/server/runtime/http-server/provider-traffic-governor.js +697 -111
  372. package/dist/server/runtime/http-server/provider-traffic-governor.js.map +1 -1
  373. package/dist/server/runtime/http-server/provider-utils.js +2 -6
  374. package/dist/server/runtime/http-server/provider-utils.js.map +1 -1
  375. package/dist/server/runtime/http-server/request-activity-tracker.d.ts +4 -0
  376. package/dist/server/runtime/http-server/request-activity-tracker.js +54 -11
  377. package/dist/server/runtime/http-server/request-activity-tracker.js.map +1 -1
  378. package/dist/server/runtime/http-server/request-executor.d.ts +247 -0
  379. package/dist/server/runtime/http-server/request-executor.js +2444 -334
  380. package/dist/server/runtime/http-server/request-executor.js.map +1 -1
  381. package/dist/server/runtime/http-server/routes.js +59 -16
  382. package/dist/server/runtime/http-server/routes.js.map +1 -1
  383. package/dist/server/runtime/http-server/runtime-manager.js +0 -15
  384. package/dist/server/runtime/http-server/runtime-manager.js.map +1 -1
  385. package/dist/server/runtime/http-server/session-client-registry-utils.js +46 -10
  386. package/dist/server/runtime/http-server/session-client-registry-utils.js.map +1 -1
  387. package/dist/server/runtime/http-server/session-client-registry.js +22 -4
  388. package/dist/server/runtime/http-server/session-client-registry.js.map +1 -1
  389. package/dist/server/runtime/http-server/session-client-routes.js +40 -18
  390. package/dist/server/runtime/http-server/session-client-routes.js.map +1 -1
  391. package/dist/server/runtime/http-server/session-dir.js +35 -2
  392. package/dist/server/runtime/http-server/session-dir.js.map +1 -1
  393. package/dist/server/runtime/http-server/session-scope-resolution.js +38 -9
  394. package/dist/server/runtime/http-server/session-scope-resolution.js.map +1 -1
  395. package/dist/server/runtime/http-server/session-storage-cleanup.js +64 -27
  396. package/dist/server/runtime/http-server/session-storage-cleanup.js.map +1 -1
  397. package/dist/server/runtime/http-server/stats-manager.d.ts +5 -0
  398. package/dist/server/runtime/http-server/stats-manager.js +138 -6
  399. package/dist/server/runtime/http-server/stats-manager.js.map +1 -1
  400. package/dist/server/runtime/http-server/tmux-injection-history.js +30 -4
  401. package/dist/server/runtime/http-server/tmux-injection-history.js.map +1 -1
  402. package/dist/server/runtime/http-server/tmux-session-probe.d.ts +3 -1
  403. package/dist/server/runtime/http-server/tmux-session-probe.js +198 -9
  404. package/dist/server/runtime/http-server/tmux-session-probe.js.map +1 -1
  405. package/dist/server/utils/client-connection-state.d.ts +1 -0
  406. package/dist/server/utils/client-connection-state.js +45 -5
  407. package/dist/server/utils/client-connection-state.js.map +1 -1
  408. package/dist/server/utils/finish-reason.js +61 -2
  409. package/dist/server/utils/finish-reason.js.map +1 -1
  410. package/dist/server/utils/http-error-mapper.d.ts +4 -0
  411. package/dist/server/utils/http-error-mapper.js +31 -6
  412. package/dist/server/utils/http-error-mapper.js.map +1 -1
  413. package/dist/server/utils/stage-logger.js +42 -13
  414. package/dist/server/utils/stage-logger.js.map +1 -1
  415. package/dist/server-lifecycle/port-utils.js +6 -2
  416. package/dist/server-lifecycle/port-utils.js.map +1 -1
  417. package/dist/token-daemon/index.js +44 -15
  418. package/dist/token-daemon/index.js.map +1 -1
  419. package/dist/token-daemon/leader-lock.js +65 -7
  420. package/dist/token-daemon/leader-lock.js.map +1 -1
  421. package/dist/token-daemon/provider-registry.js +1 -1
  422. package/dist/token-daemon/provider-registry.js.map +1 -1
  423. package/dist/token-daemon/server-utils.d.ts +11 -0
  424. package/dist/token-daemon/server-utils.js +71 -18
  425. package/dist/token-daemon/server-utils.js.map +1 -1
  426. package/dist/token-daemon/token-daemon.d.ts +0 -1
  427. package/dist/token-daemon/token-daemon.js +81 -63
  428. package/dist/token-daemon/token-daemon.js.map +1 -1
  429. package/dist/token-daemon/token-types.d.ts +1 -1
  430. package/dist/token-daemon/token-types.js +0 -1
  431. package/dist/token-daemon/token-types.js.map +1 -1
  432. package/dist/token-daemon/token-utils.js +4 -2
  433. package/dist/token-daemon/token-utils.js.map +1 -1
  434. package/dist/tools/provider-update/fetch-models.js +1 -5
  435. package/dist/tools/provider-update/fetch-models.js.map +1 -1
  436. package/dist/utils/error-handler-registry.js +50 -13
  437. package/dist/utils/error-handler-registry.js.map +1 -1
  438. package/dist/utils/errorsamples.d.ts +3 -1
  439. package/dist/utils/errorsamples.js +198 -14
  440. package/dist/utils/errorsamples.js.map +1 -1
  441. package/dist/utils/http-health-probe.d.ts +42 -0
  442. package/dist/utils/http-health-probe.js +231 -0
  443. package/dist/utils/http-health-probe.js.map +1 -0
  444. package/dist/utils/managed-server-pids.js +2 -2
  445. package/dist/utils/managed-server-pids.js.map +1 -1
  446. package/dist/utils/module-config-reader.js +11 -1
  447. package/dist/utils/module-config-reader.js.map +1 -1
  448. package/dist/utils/runtime-package-root.d.ts +2 -0
  449. package/dist/utils/runtime-package-root.js +47 -0
  450. package/dist/utils/runtime-package-root.js.map +1 -0
  451. package/dist/utils/snapshot-local-disk-gate.d.ts +3 -0
  452. package/dist/utils/snapshot-local-disk-gate.js +50 -0
  453. package/dist/utils/snapshot-local-disk-gate.js.map +1 -0
  454. package/dist/utils/snapshot-payload-guard.d.ts +1 -0
  455. package/dist/utils/snapshot-payload-guard.js +234 -0
  456. package/dist/utils/snapshot-payload-guard.js.map +1 -0
  457. package/dist/utils/snapshot-request-retention.d.ts +3 -0
  458. package/dist/utils/snapshot-request-retention.js +128 -0
  459. package/dist/utils/snapshot-request-retention.js.map +1 -0
  460. package/dist/utils/snapshot-stage-policy.d.ts +3 -0
  461. package/dist/utils/snapshot-stage-policy.js +111 -0
  462. package/dist/utils/snapshot-stage-policy.js.map +1 -0
  463. package/dist/utils/snapshot-writer.js +124 -127
  464. package/dist/utils/snapshot-writer.js.map +1 -1
  465. package/docs/CHAT_PROCESS_PROTOCOL_AND_PIPELINE.md +4 -0
  466. package/docs/CONFIG_ARCHITECTURE.md +2 -2
  467. package/docs/INSTALLATION_AND_QUICKSTART.md +5 -5
  468. package/docs/OAUTH.md +2 -5
  469. package/docs/PORTS.md +1 -1
  470. package/docs/PROVIDERS_BUILTIN.md +1 -5
  471. package/docs/PROVIDER_TYPES.md +1 -1
  472. package/docs/agent-routing/10-runtime-ssot-routing.md +4 -0
  473. package/docs/agent-routing/20-build-test-release-routing.md +2 -2
  474. package/docs/agent-routing/30-servertool-lifecycle-routing.md +2 -0
  475. package/docs/agent-routing/40-task-memory-routing.md +22 -2
  476. package/docs/audit/286.1-provider-failure-policy-audit.md +341 -0
  477. package/docs/audits/2026-04-26-fallback-silent-failure-audit.md +119 -0
  478. package/docs/audits/2026-04-27-provider-failure-policy-ssot-audit.md +153 -0
  479. package/docs/chat-process-continuation-state-contract.md +196 -0
  480. package/docs/chat-semantic-expansion-plan.md +2 -0
  481. package/docs/daemon-admin-api-design.md +9 -9
  482. package/docs/design/provider-failure-policy-ssot.md +215 -0
  483. package/docs/design/reasoning-stop-lifecycle.md +90 -0
  484. package/docs/design/servertool-unified-skeleton.md +202 -0
  485. package/docs/design/websearch-servertool-orchestration.md +190 -0
  486. package/docs/error-handling-v2.md +120 -11
  487. package/docs/protocol-compatibility-matrix.md +147 -0
  488. package/docs/providers/provider-composite-design.md +4 -5
  489. package/docs/providers/provider-composite-testing.md +1 -1
  490. package/docs/providers/provider-type-only-migration.md +2 -15
  491. package/docs/refactoring/compatibility-v2-architecture-design.md +1 -3
  492. package/docs/refactoring/host-164.3-responsibility-migration.md +0 -1
  493. package/docs/routing-instructions.md +42 -1
  494. package/docs/stop-message-auto.md +0 -1
  495. package/docs/token-refresh-daemon-plan.md +14 -14
  496. package/docs/v2-architecture/IMPLEMENTATION-ROADMAP.md +1 -1
  497. package/docs/v2-architecture/PROVIDER-V2-CHANGESET-RELEASE-CHECKLIST.md +1 -9
  498. package/docs/v2-architecture/PROVIDER-V2-LAYERING-ADR-DRAFT.md +3 -4
  499. package/docs/v2-architecture/PROVIDER-V2-MIGRATION-MATRIX-DRAFT.md +4 -15
  500. package/docs/v2-architecture/PROVIDER-V2-PHASED-MIGRATION-ROLLBACK-DRAFT.md +4 -5
  501. package/docs/v2-architecture/PROVIDER-V2-PROFILE-API-REGISTRY-DRAFT.md +4 -4
  502. package/docs/v2-architecture/PROVIDER-V2-REFACTOR-OVERVIEW-DRAFT.md +1 -2
  503. package/docs/v2-architecture/PROVIDER-V2-VERIFICATION-MATRIX-DRAFT.md +2 -2
  504. package/node_modules/@jsonstudio/llms/dist/config-unified/unified-config.js +36 -10
  505. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/deepseek-web-request.js +7 -0
  506. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/deepseek-web-response.js +2 -2
  507. package/node_modules/@jsonstudio/llms/dist/conversion/compat/antigravity-session-signature.js +33 -17
  508. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/header-policies.d.ts +20 -0
  509. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/header-policies.js +79 -0
  510. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/policy-overrides.d.ts +16 -0
  511. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/policy-overrides.js +27 -0
  512. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/provider-resolver.d.ts +26 -0
  513. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/provider-resolver.js +59 -0
  514. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/registry.d.ts +35 -0
  515. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/registry.js +154 -0
  516. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/types.d.ts +75 -0
  517. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/types.js +8 -0
  518. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/anthropic-claude-code.json +13 -7
  519. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-claude-code.json +13 -8
  520. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-deepseek-web.json +37 -8
  521. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-qwen.json +48 -11
  522. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/compat-passthrough.json +6 -0
  523. package/node_modules/@jsonstudio/llms/dist/conversion/compat/provider-resolution-config.json +24 -0
  524. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-mapper-config.js +0 -1
  525. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-mapper-from-chat.js +54 -7
  526. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-mapper-to-chat.js +15 -2
  527. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-semantics-audit.d.ts +11 -0
  528. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-semantics-audit.js +16 -30
  529. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapper-config.js +0 -1
  530. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapper-from-chat.js +15 -1
  531. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapping-audit.d.ts +10 -0
  532. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapping-audit.js +9 -30
  533. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/protocol-mapping-audit.d.ts +43 -0
  534. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/protocol-mapping-audit.js +148 -0
  535. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper-from-chat.js +16 -6
  536. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper-helpers.d.ts +2 -1
  537. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper-helpers.js +65 -3
  538. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper-to-chat.js +1 -1
  539. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper.d.ts +1 -1
  540. package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper.js +1 -1
  541. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/compat/compat-types.d.ts +14 -154
  542. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-chat-process-request-utils.d.ts +6 -1
  543. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-chat-process-request-utils.js +83 -3
  544. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-chat-process-entry.js +6 -5
  545. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-request-stage-inbound.d.ts +0 -1
  546. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-request-stage-inbound.js +9 -5
  547. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-request-stage-provider-payload.js +132 -1
  548. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-request-stage.js +0 -1
  549. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-heavy-input-fastpath.d.ts +4 -22
  550. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-heavy-input-fastpath.js +109 -139
  551. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-max-tokens-policy.js +40 -1
  552. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-route-and-outbound.d.ts +0 -1
  553. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-route-and-outbound.js +19 -2
  554. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline.d.ts +0 -2
  555. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline.js +45 -43
  556. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/route-aware-responses-continuation.d.ts +10 -0
  557. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/route-aware-responses-continuation.js +143 -0
  558. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/index.js +37 -0
  559. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/semantic-lift.js +14 -2
  560. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.d.ts +3 -0
  561. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.js +22 -11
  562. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/chat-process-semantics-bridge.js +59 -2
  563. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.d.ts +1 -0
  564. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.js +3 -1
  565. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.d.ts +1 -0
  566. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.js +2 -1
  567. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage1_tool_governance/index.d.ts +2 -0
  568. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage1_tool_governance/index.js +53 -1
  569. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage2_finalize/index.js +4 -1
  570. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.d.ts +1 -0
  571. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.js +16 -0
  572. package/node_modules/@jsonstudio/llms/dist/conversion/hub/policy/policy-engine.js +14 -4
  573. package/node_modules/@jsonstudio/llms/dist/conversion/hub/process/chat-process-anthropic-alias.d.ts +1 -0
  574. package/node_modules/@jsonstudio/llms/dist/conversion/hub/process/chat-process-anthropic-alias.js +29 -1
  575. package/node_modules/@jsonstudio/llms/dist/conversion/hub/process/chat-process-pending-tool-sync.js +38 -2
  576. package/node_modules/@jsonstudio/llms/dist/conversion/hub/process/chat-process-request-sanitizer.js +164 -1
  577. package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/provider-response.js +27 -2
  578. package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/response-mappers.d.ts +9 -3
  579. package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/response-mappers.js +8 -7
  580. package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/response-runtime-anthropic.js +20 -5
  581. package/node_modules/@jsonstudio/llms/dist/conversion/hub/snapshot-recorder.js +1 -247
  582. package/node_modules/@jsonstudio/llms/dist/conversion/hub/types/chat-envelope.d.ts +84 -4
  583. package/node_modules/@jsonstudio/llms/dist/conversion/pipeline/codecs/v2/responses-openai-pipeline.js +26 -1
  584. package/node_modules/@jsonstudio/llms/dist/conversion/responses/responses-openai-bridge/response-payload.js +10 -9
  585. package/node_modules/@jsonstudio/llms/dist/conversion/responses/responses-openai-bridge/utils.js +20 -5
  586. package/node_modules/@jsonstudio/llms/dist/conversion/responses/responses-openai-bridge.js +88 -4
  587. package/node_modules/@jsonstudio/llms/dist/conversion/shared/anthropic-message-utils-core.js +5 -1
  588. package/node_modules/@jsonstudio/llms/dist/conversion/shared/anthropic-message-utils-openai-request.js +55 -14
  589. package/node_modules/@jsonstudio/llms/dist/conversion/shared/anthropic-message-utils-tool-schema.js +1 -2
  590. package/node_modules/@jsonstudio/llms/dist/conversion/shared/anthropic-message-utils.js +38 -15
  591. package/node_modules/@jsonstudio/llms/dist/conversion/shared/openai-message-normalize.js +45 -6
  592. package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-conversation-store.d.ts +15 -0
  593. package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-conversation-store.js +157 -13
  594. package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-reasoning-registry.d.ts +8 -2
  595. package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-reasoning-registry.js +103 -9
  596. package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-response-utils.js +10 -10
  597. package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-filter-pipeline.js +59 -9
  598. package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-governor-guards.d.ts +1 -1
  599. package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-governor-guards.js +54 -43
  600. package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-governor.js +62 -8
  601. package/node_modules/@jsonstudio/llms/dist/conversion/snapshot-utils.js +121 -8
  602. package/node_modules/@jsonstudio/llms/dist/filters/engine.js +64 -6
  603. package/node_modules/@jsonstudio/llms/dist/filters/special/request-tool-list-filter.js +32 -11
  604. package/node_modules/@jsonstudio/llms/dist/filters/special/request-toolcalls-stringify.js +26 -1
  605. package/node_modules/@jsonstudio/llms/dist/filters/special/request-tools-normalize.js +46 -7
  606. package/node_modules/@jsonstudio/llms/dist/filters/special/response-tool-arguments-blacklist.js +10 -1
  607. package/node_modules/@jsonstudio/llms/dist/filters/special/response-tool-arguments-schema-converge.js +10 -1
  608. package/node_modules/@jsonstudio/llms/dist/filters/special/response-tool-arguments-stringify.js +30 -5
  609. package/node_modules/@jsonstudio/llms/dist/filters/special/response-tool-arguments-whitelist.js +10 -1
  610. package/node_modules/@jsonstudio/llms/dist/filters/special/tool-filter-hooks.js +16 -14
  611. package/node_modules/@jsonstudio/llms/dist/filters/utils/snapshot-writer.js +47 -5
  612. package/node_modules/@jsonstudio/llms/dist/guidance/index.js +16 -2
  613. package/node_modules/@jsonstudio/llms/dist/http/sse-response.js +42 -6
  614. package/node_modules/@jsonstudio/llms/dist/native/router_hotpath_napi.node +0 -0
  615. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/auth-utils.js +33 -31
  616. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/provider-normalization.d.ts +6 -0
  617. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/provider-normalization.js +78 -98
  618. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/responses-helpers.js +22 -2
  619. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/routing-config.js +56 -3
  620. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/streaming-helpers.js +19 -1
  621. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap.js +62 -293
  622. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/classifier.js +11 -82
  623. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/antigravity/alias-lease.js +42 -15
  624. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/cooldown-manager.js +55 -3
  625. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/health/index.js +66 -15
  626. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/routing-pools/index.js +44 -8
  627. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/routing-state/keys.d.ts +7 -0
  628. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/routing-state/keys.js +65 -21
  629. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/routing-state/store.js +19 -2
  630. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/sticky-session-manager.d.ts +9 -0
  631. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/sticky-session-manager.js +139 -4
  632. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-logging.js +2 -1
  633. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-semantics.js +68 -59
  634. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-governance-semantics.js +156 -157
  635. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.d.ts +1 -0
  636. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.js +31 -0
  637. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js +94 -95
  638. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-compat-action-semantics.d.ts +0 -1
  639. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-compat-action-semantics.js +0 -7
  640. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-parsers.d.ts +1 -1
  641. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-parsers.js +203 -305
  642. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-tools-post.js +35 -0
  643. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-tools-request.js +2 -1
  644. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-types.d.ts +2 -0
  645. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-policy-semantics.js +173 -154
  646. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.d.ts +1 -0
  647. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.js +106 -57
  648. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-inbound-outbound-semantics.js +122 -114
  649. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics-builders.d.ts +1 -0
  650. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics-metadata-policy.js +100 -86
  651. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics-passthrough.js +52 -33
  652. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics-protocol.js +79 -62
  653. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics.d.ts +1 -0
  654. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics-parsers.js +50 -33
  655. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics-types.d.ts +2 -0
  656. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics-parsers.d.ts +1 -1
  657. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics-parsers.js +161 -177
  658. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics-outbound-tools.d.ts +1 -0
  659. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics-outbound-tools.js +1 -0
  660. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics-parsers.d.ts +1 -1
  661. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics-parsers.js +231 -286
  662. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-router-hotpath-analysis.js +143 -164
  663. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-router-hotpath-required-exports.d.ts +1 -1
  664. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-router-hotpath-required-exports.js +8 -1
  665. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics-reasoning.js +57 -28
  666. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics-responses.d.ts +8 -0
  667. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics-responses.js +76 -0
  668. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.d.ts +1 -1
  669. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.js +1 -1
  670. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-virtual-router-bootstrap-providers.d.ts +24 -0
  671. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-virtual-router-bootstrap-providers.js +78 -0
  672. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-virtual-router-bootstrap-routing.d.ts +17 -0
  673. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-virtual-router-bootstrap-routing.js +72 -0
  674. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/route-utils.js +9 -0
  675. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/tier-selection-select.js +11 -5
  676. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine.js +4 -39
  677. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/features.js +199 -31
  678. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/health-manager.js +7 -2
  679. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/load-balancer.d.ts +3 -0
  680. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/load-balancer.js +47 -3
  681. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/native-error.d.ts +11 -0
  682. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/native-error.js +71 -0
  683. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/provider-registry.js +81 -2
  684. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/provider-runtime-ingress.d.ts +24 -0
  685. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/provider-runtime-ingress.js +139 -0
  686. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/routing-instructions/parse.js +21 -1
  687. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/routing-instructions/state.js +46 -0
  688. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/routing-instructions/types.d.ts +7 -0
  689. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/routing-stop-message-state-codec.js +30 -1
  690. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/sticky-session-store.js +44 -15
  691. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/stop-message-state-sync.d.ts +1 -1
  692. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/stop-message-state-sync.js +10 -2
  693. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/success-center.js +39 -2
  694. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/tool-signals.d.ts +1 -0
  695. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/tool-signals.js +25 -24
  696. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/types.d.ts +3 -0
  697. package/node_modules/@jsonstudio/llms/dist/servertool/engine.js +255 -71
  698. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/clock.js +20 -2
  699. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/followup-request-builder.js +120 -85
  700. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/memory-appender.d.ts +6 -0
  701. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/memory-appender.js +42 -0
  702. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-only-continue.js +1 -1
  703. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-stop-guard.js +630 -0
  704. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-stop-state.d.ts +24 -0
  705. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-stop-state.js +606 -0
  706. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-stop.js +292 -0
  707. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/{iflow-followup.d.ts → ai-followup.d.ts} +3 -3
  708. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/{iflow-followup.js → ai-followup.js} +76 -81
  709. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/config.d.ts +1 -2
  710. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/config.js +2 -6
  711. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/runtime-utils.d.ts +1 -0
  712. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/runtime-utils.js +51 -11
  713. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto.js +5 -4
  714. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/web-search-auto-trigger.d.ts +9 -0
  715. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/web-search-auto-trigger.js +91 -0
  716. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/web-search.js +1 -131
  717. package/node_modules/@jsonstudio/llms/dist/servertool/heartbeat/session-store.js +49 -18
  718. package/node_modules/@jsonstudio/llms/dist/servertool/registry.js +3 -0
  719. package/node_modules/@jsonstudio/llms/dist/servertool/server-side-tools.d.ts +2 -2
  720. package/node_modules/@jsonstudio/llms/dist/servertool/server-side-tools.js +14 -10
  721. package/node_modules/@jsonstudio/llms/dist/servertool/strip-servertool-calls.js +2 -3
  722. package/node_modules/@jsonstudio/llms/dist/servertool/types.d.ts +11 -1
  723. package/node_modules/@jsonstudio/llms/dist/sse/json-to-sse/chat-json-to-sse-converter.js +26 -1
  724. package/node_modules/@jsonstudio/llms/dist/sse/json-to-sse/event-generators/chat.d.ts +2 -2
  725. package/node_modules/@jsonstudio/llms/dist/sse/json-to-sse/event-generators/chat.js +38 -3
  726. package/node_modules/@jsonstudio/llms/dist/sse/json-to-sse/sequencers/chat-sequencer.js +6 -3
  727. package/node_modules/@jsonstudio/llms/dist/sse/shared/chat-serializer.js +27 -3
  728. package/node_modules/@jsonstudio/llms/dist/sse/shared/constants.d.ts +6 -6
  729. package/node_modules/@jsonstudio/llms/dist/sse/shared/constants.js +3 -3
  730. package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/anthropic-sse-to-json-converter.d.ts +1 -0
  731. package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/anthropic-sse-to-json-converter.js +36 -1
  732. package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/builders/anthropic-response-builder.js +6 -20
  733. package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/builders/response-builder.d.ts +3 -0
  734. package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/builders/response-builder.js +125 -42
  735. package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/chat-sse-to-json-converter.js +59 -10
  736. package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/parsers/sse-parser.js +2 -0
  737. package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/responses-sse-to-json-converter.d.ts +1 -0
  738. package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/responses-sse-to-json-converter.js +71 -2
  739. package/node_modules/@jsonstudio/llms/dist/sse/types/chat-types.d.ts +1 -0
  740. package/node_modules/@jsonstudio/llms/dist/sse/types/chat-types.js +1 -1
  741. package/node_modules/@jsonstudio/llms/dist/sse/types/conversion-context.js +2 -2
  742. package/node_modules/@jsonstudio/llms/dist/sse/types/index.d.ts +1 -1
  743. package/node_modules/@jsonstudio/llms/dist/sse/types/responses-types.d.ts +1 -1
  744. package/node_modules/@jsonstudio/llms/dist/sse/types/responses-types.js +1 -1
  745. package/node_modules/@jsonstudio/llms/dist/telemetry/stats-center.js +34 -12
  746. package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/patch-text/fuzzy-match.d.ts +14 -0
  747. package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/patch-text/fuzzy-match.js +174 -0
  748. package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/patch-text/normalize.js +148 -0
  749. package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/structured.js +31 -2
  750. package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/validator.js +121 -4
  751. package/node_modules/@jsonstudio/llms/dist/tools/exec-command/normalize.d.ts +4 -1
  752. package/node_modules/@jsonstudio/llms/dist/tools/exec-command/normalize.js +31 -16
  753. package/node_modules/@jsonstudio/llms/dist/tools/exec-command/validator.d.ts +1 -0
  754. package/node_modules/@jsonstudio/llms/dist/tools/exec-command/validator.js +3 -1
  755. package/node_modules/@jsonstudio/llms/dist/tools/tool-registry.d.ts +1 -0
  756. package/node_modules/@jsonstudio/llms/dist/tools/tool-registry.js +5 -27
  757. package/node_modules/@jsonstudio/llms/package.json +1 -1
  758. package/package.json +6 -7
  759. package/scripts/ci/repo-sanity.mjs +1 -0
  760. package/scripts/ci/silent-failure-audit.mjs +112 -70
  761. package/scripts/cleanup-stale-server-pids.mjs +0 -6
  762. package/scripts/ensure-cli-command-shim.mjs +49 -15
  763. package/scripts/ensure-cli-executable.mjs +1 -1
  764. package/scripts/install-global.sh +7 -6
  765. package/scripts/install-release-snapshot.mjs +232 -0
  766. package/scripts/install-release.sh +30 -24
  767. package/scripts/link-global-llms-local.mjs +1 -2
  768. package/scripts/pack-mode.mjs +0 -4
  769. package/scripts/pack-rcc.mjs +17 -58
  770. package/scripts/run-bg.sh +0 -6
  771. package/scripts/run-fg-gtimeout.sh +0 -6
  772. package/scripts/tests/antigravity-codex-sample-pipeline-compare.mjs +1 -1
  773. package/scripts/tests/blackbox-rcc-vs-routecodex-antigravity.mjs +60 -39
  774. package/scripts/verify-install-e2e.mjs +64 -26
  775. package/configsamples/provider-default/qwenchat/config.v2.json +0 -53
  776. package/dist/providers/auth/iflow-cookie-auth.d.ts +0 -27
  777. package/dist/providers/auth/iflow-cookie-auth.js +0 -207
  778. package/dist/providers/auth/iflow-cookie-auth.js.map +0 -1
  779. package/dist/providers/auth/iflow-userinfo-helper.d.ts +0 -32
  780. package/dist/providers/auth/iflow-userinfo-helper.js +0 -81
  781. package/dist/providers/auth/iflow-userinfo-helper.js.map +0 -1
  782. package/dist/providers/core/runtime/iflow-http-provider.d.ts +0 -13
  783. package/dist/providers/core/runtime/iflow-http-provider.js +0 -22
  784. package/dist/providers/core/runtime/iflow-http-provider.js.map +0 -1
  785. package/dist/providers/core/runtime/provider-iflow-business-error-utils.d.ts +0 -15
  786. package/dist/providers/core/runtime/provider-iflow-business-error-utils.js +0 -49
  787. package/dist/providers/core/runtime/provider-iflow-business-error-utils.js.map +0 -1
  788. package/dist/providers/core/runtime/qwenchat-http-provider-helpers.d.ts +0 -89
  789. package/dist/providers/core/runtime/qwenchat-http-provider-helpers.js +0 -1698
  790. package/dist/providers/core/runtime/qwenchat-http-provider-helpers.js.map +0 -1
  791. package/dist/providers/core/runtime/qwenchat-http-provider.d.ts +0 -9
  792. package/dist/providers/core/runtime/qwenchat-http-provider.js +0 -78
  793. package/dist/providers/core/runtime/qwenchat-http-provider.js.map +0 -1
  794. package/dist/providers/core/runtime/standard-tool-text-request-transform.d.ts +0 -13
  795. package/dist/providers/core/runtime/standard-tool-text-request-transform.js +0 -138
  796. package/dist/providers/core/runtime/standard-tool-text-request-transform.js.map +0 -1
  797. package/dist/providers/core/runtime/transport/iflow-signer.d.ts +0 -12
  798. package/dist/providers/core/runtime/transport/iflow-signer.js +0 -63
  799. package/dist/providers/core/runtime/transport/iflow-signer.js.map +0 -1
  800. package/dist/providers/profile/families/iflow-profile.d.ts +0 -2
  801. package/dist/providers/profile/families/iflow-profile.js +0 -384
  802. package/dist/providers/profile/families/iflow-profile.js.map +0 -1
  803. package/docs/mapping-tables/iflow-to-openai.json +0 -215
  804. package/docs/mapping-tables/openai-to-iflow.json +0 -227
  805. package/docs/multi-token-auth-guide.md +0 -66
  806. package/docs/oauth-authentication-guide.md +0 -172
  807. package/docs/oauth-iflow-implementation.md +0 -157
  808. package/docs/release-iflow-400-gate.md +0 -58
  809. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-cli-defaults.d.ts +0 -10
  810. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-cli-defaults.js +0 -31
  811. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-history-media-placeholder.d.ts +0 -7
  812. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-history-media-placeholder.js +0 -25
  813. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-thinking-reasoning-fill.d.ts +0 -12
  814. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-thinking-reasoning-fill.js +0 -46
  815. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-native-compat.d.ts +0 -6
  816. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-native-compat.js +0 -36
  817. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-response-body-unwrap.d.ts +0 -9
  818. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-response-body-unwrap.js +0 -25
  819. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-tool-text-fallback.d.ts +0 -5
  820. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-tool-text-fallback.js +0 -29
  821. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-web-search.d.ts +0 -18
  822. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-web-search.js +0 -49
  823. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/qwenchat-web-request.d.ts +0 -3
  824. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/qwenchat-web-request.js +0 -62
  825. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-iflow.json +0 -353
  826. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-qwenchat-web.json +0 -47
  827. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-health.d.ts +0 -1
  828. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-health.js +0 -1
  829. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/iflow-model-error-retry.js +0 -92
  830. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/review.js +0 -202
  831. package/scripts/publish-rcc.mjs +0 -81
  832. /package/node_modules/@jsonstudio/llms/dist/servertool/handlers/{iflow-model-error-retry.d.ts → reasoning-stop-guard.d.ts} +0 -0
  833. /package/node_modules/@jsonstudio/llms/dist/servertool/handlers/{review.d.ts → reasoning-stop.d.ts} +0 -0
@@ -0,0 +1,147 @@
1
+ # Protocol Compatibility Matrix(Chat Process 真源版)
2
+
3
+ ## 索引概要
4
+ - L1-L8 `purpose`:定义当前协议兼容矩阵与验收口径。
5
+ - L10-L26 `legend`:兼容等级定义与边界。
6
+ - L28-L47 `chat-ssot`:chat process 字段落盘真源。
7
+ - L49-L88 `responses-outbound`:Responses 到其他协议的请求侧映射矩阵。
8
+ - L90-L129 `to-responses`:其他协议到 Responses 的请求/响应侧映射矩阵。
9
+ - L106-L114 `response-path`:provider response → client protocol 的兼容结论。
10
+ - L116-L137 `known-gaps`:当前确认缺口、非目标与真实样本覆盖边界。
11
+
12
+ ## 目标
13
+
14
+ 按 Jason 当前要求,把“Responses ↔ 其他协议”的兼容性结论、chat process 字段真源、以及 `full/lossy/dropped/unsupported/internal-only` 口径统一到一个文档中。
15
+
16
+ 本文件是**矩阵真源**;具体流水线契约见:
17
+ - `docs/CHAT_PROCESS_PROTOCOL_AND_PIPELINE.md`
18
+ - `docs/chat-process-continuation-state-contract.md`
19
+
20
+ ## 兼容等级定义
21
+
22
+ - `full`
23
+ - 能进入 chat canonical,并能从 chat canonical 恢复目标协议字段,语义等价。
24
+ - `lossy`
25
+ - 可以映射,但目标协议缺少完全等价表达;必须写入 `semantics.audit.protocolMapping`。
26
+ - `dropped`
27
+ - chat canonical 可识别,但目标协议无承载位;字段显式丢弃并记录 audit。
28
+ - `unsupported`
29
+ - 当前链路明确不支持该语义;不得伪装为 preserved。
30
+ - `internal-only`
31
+ - 当前仅用于 provider/internal protocol,不是完整 public client contract。
32
+
33
+ ## Chat Process 字段落盘真源
34
+
35
+ | 语义 | chat canonical 真源 | 说明 |
36
+ |---|---|---|
37
+ | continuation / tool loop / previous_response_id | `semantics.continuation` | 跨协议 continuation 唯一真源 |
38
+ | 协议映射 audit | `semantics.audit.protocolMapping` | preserved/lossy/dropped/unsupported 统一真源 |
39
+ | 客户端原始 tool schema | `semantics.tools.clientToolsRaw` | client-facing tool 名称恢复、args schema 归一 |
40
+ | Anthropic tool alias | `semantics.tools.toolNameAliasMap` + `semantics.anthropic.toolNameAliasMap` | 用于 `Bash/Glob/...` ↔ canonical tool name 恢复 |
41
+ | 显式空 tools | `semantics.tools.explicitEmpty` | 不能留在 metadata |
42
+ | Responses context / resume | `semantics.responses.context` / `semantics.responses.resume` | submit_tool_outputs / previous_response_id / include/store 等恢复基座 |
43
+ | Anthropic system blocks | `semantics.system.blocks` + `semantics.anthropic.systemBlocks` | system block 既保留跨协议公共层,也保留协议命名空间 |
44
+ | Anthropic content shape / provider metadata | `semantics.anthropic.messageContentShape` / `semantics.anthropic.providerMetadata` | 替代旧 `providerExtras.anthropicMirror/providerMetadata` |
45
+ | Gemini systemInstruction / generationConfig / toolConfig / safetySettings / providerMetadata | `semantics.gemini.*` | Gemini 命名空间真源 |
46
+
47
+ > 规则:可映射语义必须进入 `messages/tools/toolOutputs/parameters/semantics`;不得继续滞留 metadata。
48
+
49
+ ## Responses → 其他协议(请求侧)
50
+
51
+ ### 总结
52
+ - `Responses -> Chat canonical`:主链最完整,作为统一语义入口。
53
+ - `Responses -> Anthropic`:不是完全兼容;存在明确 `lossy/dropped/unsupported`。
54
+ - `Responses -> Gemini`:不是完全兼容;且 Gemini 当前主要是 provider/internal protocol。
55
+
56
+ ### 字段矩阵
57
+
58
+ | 字段/能力 | Responses -> Chat canonical | Chat canonical -> Anthropic | Chat canonical -> Gemini | 说明 |
59
+ |---|---|---|---|---|
60
+ | input/messages | `full` | `full` | `full` | 主消息面可稳定映射 |
61
+ | system / instructions | `full` | `full` | `full` | Responses `instructions` 先入 canonical system,再分别重建 |
62
+ | tools schema | `full` | `full` | `full` | 原始 schema 需同时落盘到 `semantics.tools.clientToolsRaw` |
63
+ | tool_choice | `full` | `full` | `full` | Anthropic 顶层保留;Gemini 通过 metadata passthrough 保留 |
64
+ | parallel_tool_calls | `full` | `dropped` | `dropped` | 目标协议无完全等价表达,必须 audit |
65
+ | include | `full` | `dropped` | `dropped` | Responses 专属恢复语义 |
66
+ | store | `full` | `dropped` | `dropped` | Responses 专属持久化语义 |
67
+ | prompt_cache_key | `full` | `dropped` | `dropped` | 目标协议无等价字段 |
68
+ | response_format / structured output | `full` | `unsupported` | `unsupported` | 当前 Anthropic/Gemini 路径不承诺等价 structured output |
69
+ | reasoning | `full` | `lossy` | `lossy` | Anthropic 映射到 `thinking/output_config`;Gemini 映射到 `generationConfig.thinkingConfig` |
70
+ | previous_response_id / submit_tool_outputs continuity | `full` | `lossy` | `lossy` | 统一由 `semantics.continuation` / `semantics.responses.resume` 承接 |
71
+ | required_action / tool outputs | `full` | `lossy` | `lossy` | 目标协议表面不同,但统一语义可恢复到 chat process |
72
+ | stream | `full` | `full` | `full` | 传输层支持,但事件表面仍随协议不同 |
73
+
74
+ ## 其他协议 → Responses(请求侧 / 语义侧)
75
+
76
+ ### OpenAI Chat -> Responses
77
+
78
+ | 字段/能力 | OpenAI Chat -> Chat canonical | Chat canonical -> Responses | 说明 |
79
+ |---|---|---|---|
80
+ | messages/system/tools/tool calls | `full` | `full` | Responses bridge 最成熟的兼容方向之一 |
81
+ | structured output (`response_format`) | `full` | `full` | Responses 原生支持 |
82
+ | continuation | `session/lossy` | `lossy` | OpenAI Chat 自身没有 Responses 原生 response-chain;统一由 `semantics.continuation` 补位 |
83
+ | reasoning | `full` | `full` | 可还原为 Responses `reasoning` |
84
+
85
+ ### Anthropic -> Responses
86
+
87
+ | 字段/能力 | Anthropic -> Chat canonical | Chat canonical -> Responses | 说明 |
88
+ |---|---|---|---|
89
+ | messages/system blocks | `full` | `full` | system block 进入 `semantics.system.blocks` + `semantics.anthropic.systemBlocks` |
90
+ | tool schema | `full` | `full` | 需保留 raw client tools + alias map |
91
+ | tool alias fidelity (`Bash/Glob/...`) | `full` | `lossy -> target fix path` | canonical 工具名会归一;客户端恢复依赖 `toolNameAliasMap/clientToolsRaw` |
92
+ | provider metadata | `full` | `lossy` | 仅保留与协议重建相关的稳定字段 |
93
+ | thinking / reasoning | `lossy` | `lossy` | Anthropics 的 thinking 与 Responses reasoning 不完全同构 |
94
+ | continuation | `lossy` | `lossy` | Anthropic 无 Responses 原生 response-chain;靠统一 continuation 语义承接 |
95
+
96
+ ### Gemini -> Responses
97
+
98
+ | 字段/能力 | Gemini -> Chat canonical | Chat canonical -> Responses | 说明 |
99
+ |---|---|---|---|
100
+ | contents/systemInstruction/tools | `full` | `full` | Gemini inbound/outbound 主要依赖 `semantics.gemini.*` |
101
+ | generationConfig/toolConfig | `full` | `lossy` | 部分字段可转入 Responses parameters,部分仅留 audit/命名空间 |
102
+ | safetySettings | `full` | `dropped` | Responses 无等价安全设置字段 |
103
+ | reasoning/thinking | `lossy` | `lossy` | 可转换,但并非一一对应 |
104
+ | Gemini client protocol | `internal-only` | `internal-only` | 当前仓内是 provider/internal protocol,不是完整 public client surface |
105
+
106
+ ## Response Path(provider response -> client protocol)
107
+
108
+ | 方向 | 结论 | 说明 |
109
+ |---|---|---|
110
+ | provider -> Chat canonical | `full` | 响应进入 chat process 前必须先 canonicalize 为 chat completion |
111
+ | Chat canonical -> OpenAI Chat client | `full` | 默认 client protocol 之一 |
112
+ | Chat canonical -> Responses client | `full` | 支持 response object / required_action / usage / continuation 恢复 |
113
+ | Chat canonical -> Anthropic client | `full with alias-semantics dependency` | 需要 `semantics.tools.toolNameAliasMap` / `clientToolsRaw` / `semantics.anthropic.*` 参与恢复 |
114
+ | Chat canonical -> Gemini client | `internal-only` | 当前未作为 public client protocol 暴露 |
115
+
116
+ ## 当前确认缺口 / 非目标
117
+
118
+ ### 真实兼容缺口(需要修)
119
+ 1. **Anthropic tool alias fidelity**
120
+ - 必须依赖 chat semantics 落盘后的 alias map / raw tools 才能恢复原始 `Bash/Glob/...`。
121
+ - 若 alias map 丢失,只能回退到 canonical tool name,属于真实兼容缺口,不得伪装为 full。
122
+
123
+ ### 设计性非完全兼容(必须 audit,不算 bug)
124
+ 1. `Responses -> Anthropic/Gemini` 的 `parallel_tool_calls/include/store/prompt_cache_key`。
125
+ 2. `Responses -> Anthropic/Gemini` 的 `response_format`。
126
+ 3. `Responses <-> Anthropic/Gemini` 的 reasoning/thinking 双向映射。
127
+ 4. Gemini 作为 public client protocol 暂未开放。
128
+
129
+ ### 真实样本覆盖边界(当前仅覆盖三大主协议)
130
+ 1. `openai-chat`
131
+ - 已有真实样本 request/response 双向 compare。
132
+ 2. `openai-responses`
133
+ - 已有真实样本 request replay compare。
134
+ - 已有真实样本 response replay compare(经 Anthropic provider upstream 回放后再回到 Responses client payload)。
135
+ 3. `anthropic-messages`
136
+ - 已有真实样本 provider-side request/response compare 证据。
137
+ - 目前仓内没有独立的 anthropic client-entry 真实样本目录,不能把它当成已覆盖的 client-entry 证据。
138
+
139
+ ## 实施要求
140
+
141
+ 1. 任何新字段先对齐本矩阵,再决定落入:
142
+ - `messages/tools/toolOutputs/parameters`
143
+ - `semantics.continuation`
144
+ - `semantics.audit.protocolMapping`
145
+ - 协议命名空间 `semantics.responses/anthropic/gemini`
146
+ 2. 如果目标协议无法等价承载,必须显式写 audit。
147
+ 3. 不允许再把可映射语义塞回 metadata。
@@ -34,7 +34,7 @@ output/* → Provider.preprocessRequest(compat.request) → HTTP Provider → Pr
34
34
  - `src/providers/core/composite/compat/{responses,anthropic,gemin i}.ts`
35
35
 
36
36
  - 复用(保持原路径):
37
- - 历史上曾存在 `src/providers/compat/*` 模块作为旧实现,现已下线;兼容行为统一迁移至 `sharedmodule/llmswitch-core/src/conversion/compat/*`(通过 `compatibilityProfile` 驱动 GLM / LM Studio / iFlow 等)。
37
+ - 历史上曾存在 `src/providers/compat/*` 模块作为旧实现,现已下线;兼容行为统一迁移至 `sharedmodule/llmswitch-core/src/conversion/compat/*`(通过 `compatibilityProfile` 驱动 GLM / LM Studio 等)。
38
38
 
39
39
  ## 协议守卫与自动加载
40
40
 
@@ -52,7 +52,6 @@ output/* → Provider.preprocessRequest(compat.request) → HTTP Provider → Pr
52
52
  - 基于 `providerId/providerKey` 选择最小家族差异:
53
53
  - `glm` → 复用 `GLMCompatibility`(最小清理、1210/1214、末条 tool 回显清噪)。
54
54
  - `lmstudio` → 复用 `LMStudioCompatibility`(最小字段映射)。
55
- - `iflow` → 复用 `iFlowCompatibility`(OpenAI 形状,OAuth 于 Provider 层处理)。
56
55
  - `qwen` → 默认走最小路径(保持 OpenAI 形状),不启用旧 `qwen-compat` 的“input/parameters”改形状逻辑。
57
56
  - 其他 → passthrough/minimal。
58
57
 
@@ -83,12 +82,12 @@ output/* → Provider.preprocessRequest(compat.request) → HTTP Provider → Pr
83
82
  - `anthropic` → AnthropicHttpProvider;
84
83
  - `gemini` → 预留。
85
84
  - 旧配置兼容(规范化):
86
- - 若发现 `providerType` ∈ {`glm`,`qwen`,`iflow`,`lmstudio`},运行时规范化为 `openai` 并记录告警;品牌保留在 `providerId`,OAuth 方案通过 `auth.type = "<provider>-oauth"` 显式声明。
85
+ - 若发现 `providerType` ∈ {`glm`,`qwen`,`lmstudio`},运行时规范化为 `openai` 并记录告警;品牌保留在 `providerId`,OAuth 方案通过 `auth.type = "<provider>-oauth"` 显式声明。
87
86
  - 不在 `llmswitch-core` 内判断品牌,品牌差异仅由 compat 聚合器处理(最小清理)。
88
87
 
89
88
  ## 迁移与兼容
90
89
 
91
- - 配置:将旧 `providerType: 'qwen'|'glm'|'iflow'|'lmstudio'` 规范化为 `providerType: 'openai'`,并通过 `providerId` + `auth.type = '<provider>-oauth'` 表达家族;保留警告日志。
90
+ - 配置:将旧 `providerType: 'qwen'|'glm'|'lmstudio'` 规范化为 `providerType: 'openai'`,并通过 `providerId` + `auth.type = '<provider>-oauth'` 表达家族;保留警告日志。
92
91
  - Qwen:默认走 OpenAI 兼容端点 `/v1/chat/completions`;如需 native wire,需新增协议 id 与 codec,不能在 `openai-chat` 协议下改形状。
93
92
 
94
93
  ### 配置示例(OAuth 品牌)
@@ -124,7 +123,7 @@ ProviderComposite 与 Hook/HTTP 层依赖 `BasePipeline` 回写的元数据:
124
123
 
125
124
  - 协议守卫:错配触发 `ERR_PROTOCOL_MISMATCH`;家族聚合器若改形状触发 `ERR_COMPAT_PROTOCOL_DRIFT`。
126
125
  - GLM 回归:tools 严格字段清理、1210/1214、非流式响应黑名单。
127
- - LM Studio / iFlow:OpenAI 形状不变;OAuth 流程(iFlow)在 Provider 层。
126
+ - LM Studio:OpenAI 形状不变;OAuth 流程。
128
127
  - Qwen:保持 OpenAI 形状直连。
129
128
  - Responses:上游 SSE → JSON,对内一律 JSON。
130
129
 
@@ -41,7 +41,7 @@ test('protocol mismatch fails fast', async () => {
41
41
 
42
42
  ## 3. 家族聚合回归(openai 协议族)
43
43
 
44
- 针对 `glm/lmstudio/iflow`:
44
+ 针对 `glm/lmstudio`:
45
45
 
46
46
  - 入站:构造 openai-chat 形状请求 + 注入 runtime metadata(providerType='openai', providerId='glm' 等),
47
47
  - 断言:最小清理生效(如 GLM 删除 tools[].function.strict/无 tools 时删除 tool_choice)。
@@ -1,6 +1,6 @@
1
1
  # Provider 按协议类型划分(Type-only)迁移指南
2
2
 
3
- 本文档描述从“按品牌/家族(glm/qwen/iflow/lmstudio)”到“按协议类型(openai/responses/anthropic/gemini)”的迁移要求与示例。
3
+ 本文档描述从“按品牌/家族(glm/qwen/lmstudio)”到“按协议类型(openai/responses/anthropic/gemini)”的迁移要求与示例。
4
4
 
5
5
  ## 目标
6
6
 
@@ -15,7 +15,7 @@
15
15
  ## 迁移规则
16
16
 
17
17
  1. 配置层
18
- - 将原 `providerType: 'glm'|'qwen'|'iflow'|'lmstudio'` 替换为 `providerType: 'openai'`。
18
+ - 将原 `providerType: 'glm'|'qwen'|'lmstudio'` 替换为 `providerType: 'openai'`。
19
19
  - 将家族名写入:
20
20
  - `providerId`(路由家族);
21
21
  - `auth.type = "<provider>-oauth"`(OAuth 场景)。
@@ -55,19 +55,6 @@
55
55
  }
56
56
  ```
57
57
 
58
- ### iFlow(OAuth)
59
-
60
- ```json
61
- {
62
- "type": "openai-standard",
63
- "config": {
64
- "providerType": "openai",
65
- "baseUrl": "https://api.iflow.com/v1",
66
- "auth": { "type": "iflow-oauth" },
67
- "models": ["iflow-gpt4-1106"]
68
- }
69
- }
70
- ```
71
58
 
72
59
  ### Responses(真实 /v1/responses wire)
73
60
 
@@ -62,7 +62,6 @@ graph TB
62
62
  │ ├── chat-http-provider.ts # OpenAI Chat 协议 Provider
63
63
  │ ├── glm-strategy.ts # GLM特定策略
64
64
  │ ├── qwen-strategy.ts # Qwen特定策略
65
- │ └── iflow-strategy.ts # Iflow特定策略
66
65
  ├── utils/ # 工具类
67
66
  │ ├── schema-validator.ts # Schema验证器
68
67
  │ ├── type-converter.ts # 类型转换器
@@ -174,7 +173,7 @@ export abstract class BaseCompatibility implements ICompatibilityV2 {
174
173
  ```
175
174
 
176
175
  > 注:自 ProviderComposite 引入后,生产蓝图不再显式编排 compatibility 节点,兼容处理在 Provider 内部通过 composite 执行;
177
- > 现有兼容模块(GLM/LMStudio/iFlow 等)可被 openai-family 聚合器以“适配器”方式复用,职责保持为最小字段修剪/映射/黑名单,避免工具语义和 SSE 路径改动。
176
+ > 现有兼容模块(GLM/LMStudio 等)可被 openai-family 聚合器以“适配器”方式复用,职责保持为最小字段修剪/映射/黑名单,避免工具语义和 SSE 路径改动。
178
177
 
179
178
  ### 2. 配置驱动转换引擎
180
179
 
@@ -702,7 +701,6 @@ export class V1CompatibilityAdapter implements ICompatibilityV2 {
702
701
  1. 实现OpenAI标准策略
703
702
  2. 实现GLM特定策略
704
703
  3. 实现Qwen特定策略
705
- 4. 实现Iflow特定策略
706
704
 
707
705
  ### 第四阶段:兼容性保证 (2天)
708
706
  1. 实现V1适配器
@@ -42,7 +42,6 @@ This document records the responsibility split for `routecodex-164.3`:
42
42
  | Response postprocessing hooks | `src/providers/core/runtime/provider-response-postprocessor.ts` |
43
43
  | Gemini CLI response normalization | `src/providers/core/runtime/gemini-cli-response-postprocessor.ts` |
44
44
  | Gemini SSE normalization | `src/providers/core/runtime/gemini-sse-normalizer.ts` |
45
- | IFlow business-error classifier helpers | `src/providers/core/runtime/provider-iflow-business-error-utils.ts` |
46
45
  | Session/Codex header injection helpers | `src/providers/core/runtime/transport/session-header-utils.ts` |
47
46
  | OAuth header preflight helpers | `src/providers/core/runtime/transport/oauth-header-preflight.ts` |
48
47
  | Request header builder | `src/providers/core/runtime/transport/request-header-builder.ts` |
@@ -196,7 +196,7 @@ RouteCodex 支持通过用户消息中的特殊指令 `<**...**>` 来动态控
196
196
  - 错误管理:
197
197
  - 非法 marker(如 `sm:on/not-a-number`)忽略且不改写状态;
198
198
  - 无法解析的 `file://` marker 不生效,但主请求继续;
199
- - 注入失败会清理 stopMessage 激活状态,避免坏状态自循环。
199
+ - 注入失败会清理 stopMessage 激活状态,避免坏状态自循环。
200
200
 
201
201
  **示例:**
202
202
 
@@ -210,6 +210,47 @@ RouteCodex 支持通过用户消息中的特殊指令 `<**...**>` 来动态控
210
210
  - 若第 2 轮仍以 `stop` 结束且客户端仍连接,则再次自动补一条 `继续` 并发起第 3 轮;
211
211
  - 使用次数达到 `maxRepeats` 后自动停止,不再继续补发。
212
212
 
213
+ ### 8. `stopless` / `reasoning.stop`(停止前自检闸门)
214
+
215
+ **语法:**
216
+
217
+ - `<**stopless:on**>`
218
+ - `<**stopless:off**>`
219
+ - `<**stopless:endless**>`
220
+
221
+ **效果:**
222
+
223
+ - 只作用于当前 sticky session;
224
+ - 不透传给上游模型;
225
+ - 写入 `reasoningStopMode`;
226
+ - 请求侧自动补入 `reasoning.stop` 工具定义;
227
+ - 响应侧若观察到模型准备 `stop`,会先进入 `reasoning.stop` 自检闸门。
228
+
229
+ **真实停止条件:**
230
+
231
+ 1. **任务已完成**
232
+ - `is_completed=true`
233
+ - `completion_evidence` 非空
234
+
235
+ 2. **已穷尽可行尝试且遇到不可抗阻塞**
236
+ - `is_completed=false`
237
+ - `next_step` 为空
238
+ - `attempts_exhausted=true`
239
+ - `cannot_complete_reason` 非空
240
+ - `blocking_evidence` 非空
241
+ - 若必须用户参与,再额外要求:
242
+ - `user_input_required=true`
243
+ - `user_question` 非空
244
+
245
+ **模式差异:**
246
+
247
+ - `stopless:on`:默认继续,但满足上述停止条件时允许停。
248
+ - `stopless:endless`:比 `on` 更强调“只要还有 next_step 就继续”,**但并不是绝对禁止停止**;满足“任务完成”或“不可抗阻塞”时同样允许停。
249
+
250
+ **实现锚点:**
251
+
252
+ - `docs/design/reasoning-stop-lifecycle.md`
253
+
213
254
  ## 目标标识格式
214
255
 
215
256
  | 格式 | 含义 | 示例 |
@@ -101,7 +101,6 @@ stopMessage 相关状态挂在 sticky session state(tmux 作用域):
101
101
  - `sharedmodule/llmswitch-core/rust-core/crates/router-hotpath-napi/src/virtual_router_stop_message_actions.rs`
102
102
  - 自动处理器:
103
103
  - `sharedmodule/llmswitch-core/src/servertool/handlers/stop-message-auto.ts`
104
- - `sharedmodule/llmswitch-core/src/servertool/handlers/stop-message-auto/iflow-followup.ts`
105
104
 
106
105
  ## 6. 验证要点
107
106
 
@@ -15,8 +15,8 @@
15
15
 
16
16
  ```
17
17
  ~/.rcc/auth/
18
- ├── iflow-oauth-1-work.json # 账号: work@example.com
19
- ├── iflow-oauth-2-personal.json # 账号: my@gmail.com
18
+ ├── glm-oauth-1-work.json # 账号: work@example.com
19
+ ├── glm-oauth-2-personal.json # 账号: my@gmail.com
20
20
  ├── qwen-oauth-1-default.json # 账号: dev@company.com
21
21
  ├── gemini-cli-oauth-1-default.json
22
22
  └── antigravity-oauth-1-default.json
@@ -45,8 +45,8 @@ alias > email > name > account_id > 文件名
45
45
 
46
46
  | 文件名 | 显示名称 |
47
47
  |--------|----------|
48
- | iflow.json | 工作账号 (work@company.com) |
49
- | iflow-personal.json | 个人账号 (my@gmail.com) |
48
+ | glm.json | 工作账号 (work@company.com) |
49
+ | glm-personal.json | 个人账号 (my@gmail.com) |
50
50
  | qwen.json | dev@company.com |
51
51
 
52
52
  ## 认证流程
@@ -66,7 +66,7 @@ Token 已过期/刷新失败 ──→ 系统通知 ──→ 用户点击
66
66
 
67
67
  ┌───────────────────────────────────┐
68
68
  │ 认证页面显示: │
69
- │ - 目标文件: iflow-work.json │
69
+ │ - 目标文件: glm-work.json │
70
70
  │ - 账号: work@company.com │
71
71
  │ - [🔐 使用 Google 账号登录] │
72
72
  └───────────────────────────────────┘
@@ -99,7 +99,7 @@ Token 已过期/刷新失败 ──→ 系统通知 ──→ 用户点击
99
99
 
100
100
  ⚠️ Token 失效 - 需要重新认证
101
101
 
102
- 📄 iflow-work.json
102
+ 📄 glm-work.json
103
103
  👤 work@company.com
104
104
 
105
105
  [打开浏览器认证] [查看详情] [取消]
@@ -111,7 +111,7 @@ Token 已过期/刷新失败 ──→ 系统通知 ──→ 用户点击
111
111
  ┌─────────────────────────────────────────────────────────┐
112
112
  │ 🌙 Routecodex Token 认证 │
113
113
  ├─────────────────────────────────────────────────────────┤
114
- │ 📄 目标文件: iflow-work.json │
114
+ │ 📄 目标文件: glm-work.json │
115
115
  │ 👤 账号: work@company.com │
116
116
  │ 📊 状态: Refresh Token 已过期 │
117
117
  │ │
@@ -130,7 +130,7 @@ Token 已过期/刷新失败 ──→ 系统通知 ──→ 用户点击
130
130
  │ ✅ 认证成功 │
131
131
  ├─────────────────────────────────────────────────────────┤
132
132
  │ 🎉 Token 已更新! │
133
- │ 📄 iflow-work.json │
133
+ │ 📄 glm-work.json │
134
134
  │ 👤 work@company.com │
135
135
  │ 此窗口可以关闭,Daemon 已恢复监控 │
136
136
  │ [返回终端] │
@@ -142,8 +142,8 @@ Token 已过期/刷新失败 ──→ 系统通知 ──→ 用户点击
142
142
  ```
143
143
  🌙
144
144
  ├─ 📊 状态
145
- │ ├─ iflow.json ✅ 有效
146
- │ ├─ iflow-work.json ❌ 失效 [重新认证]
145
+ │ ├─ glm.json ✅ 有效
146
+ │ ├─ glm-work.json ❌ 失效 [重新认证]
147
147
  │ └─ qwen.json ⚠️ 25分钟后过期
148
148
  ├─ 🔄 刷新全部
149
149
  └─ ❌ 退出
@@ -162,7 +162,7 @@ routecodex start --daemon
162
162
  routecodex token-daemon status
163
163
 
164
164
  # 手动触发刷新
165
- routecodex token-daemon refresh iflow-oauth
165
+ routecodex token-daemon refresh glm-oauth
166
166
 
167
167
  # 查看即将过期的 token
168
168
  routecodex token-daemon list --expiring
@@ -180,8 +180,8 @@ PID: 12345
180
180
 
181
181
  | 文件名 | 显示名称 | 状态 | 过期时间 | 剩余 |
182
182
  |---------------------|------------------------|--------|----------------|--------|
183
- | iflow.json | 工作账号 (work@co.com) | ✅ 有效 | 2025-12-26 15:30 | 38分钟 |
184
- | iflow-work.json | 个人账号 (my@gmail.com) | ❌ 失效 | - | - |
183
+ | glm.json | 工作账号 (work@co.com) | ✅ 有效 | 2025-12-26 15:30 | 38分钟 |
184
+ | glm-work.json | 个人账号 (my@gmail.com) | ❌ 失效 | - | - |
185
185
  | qwen.json | dev@company.com | ⚠️ 即将过期 | 2025-12-26 14:45 | 3分钟 |
186
186
  ```
187
187
 
@@ -265,5 +265,5 @@ PID: 12345
265
265
  2. [x] 提前刷新时间: 30分钟
266
266
  3. [x] 认证方式: 外部浏览器
267
267
  4. [x] 回调方式: 本地 HTTP 服务器
268
- 5. [x] alias: 支持显式账号名称(类似 iflow 实现方式),用于多账号识别
268
+ 5. [x] alias: 支持显式账号名称,用于多账号识别
269
269
  6. [x] 手动刷新: 支持 `routecodex token-daemon refresh <file>`
@@ -175,7 +175,7 @@ This roadmap outlines the implementation plan for V2 pipeline architecture with
175
175
  **Tasks**:
176
176
  - [x] Internalize compatibility into Provider (ProviderComposite)
177
177
  - [x] Add protocol guards and minimal shape checks (Fail Fast)
178
- - [x] OpenAI-family aggregator (glm/lmstudio/iflow reuse; qwen safe path)
178
+ - [x] OpenAI-family aggregator (glm/lmstudio reuse; qwen safe path)
179
179
  - [x] Factory protocol-first selection; normalize legacy providerType
180
180
  - [x] Docs for design/testing/migration
181
181
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  - Date: 2026-02-09
4
4
  - Source branch: `main`
5
- - Scope: 最近 4 个提交(架构草案 + iflow provider 对齐 + validate 进程清理)
5
+ - Scope: 最近 4 个提交(架构草案 + validate 进程清理)
6
6
 
7
7
  ## 1) Changeset 映射
8
8
 
@@ -10,7 +10,6 @@
10
10
  |---|---|---|---|---|
11
11
  | `167400e0b` | Provider V2 架构草案全集(113.1~113.5) | 113 规划阶段 | Low | 文档与 `.beads/issues.jsonl` |
12
12
  | `8ea3ab778` | 文档约束增强(M10/M13/M16 + 验证门槛) | 113.5 审阅收敛 | Low | 文档与 `.beads/issues.jsonl` |
13
- | `ecf3dbe70` | iFlow CLI 头/签名对齐 | Wave-1(iflow)预实现 | High | 运行时代码变更 + 单测 |
14
13
  | `3857b25e6` | validate 启动/清理避免孤儿进程 | 运维/CLI 稳定性 | Medium | 运行时代码变更 |
15
14
 
16
15
  ## 2) 推荐 cherry-pick 顺序
@@ -45,14 +44,10 @@
45
44
  - `npm run build:dev`
46
45
  - `npm run install:global`
47
46
 
48
- ## 4) Replay Gate(Wave-1 iflow)
49
47
 
50
- ## Same-shape(iflow)
51
48
 
52
49
  ```bash
53
50
  npm run replay:codex-sample -- \
54
- --sample <iflow-sample-client-request.json> \
55
- --label wave-1-iflow-same-shape
56
51
  ```
57
52
 
58
53
  ## Control(非受影响 provider)
@@ -60,13 +55,11 @@ npm run replay:codex-sample -- \
60
55
  ```bash
61
56
  npm run replay:codex-sample -- \
62
57
  --sample <control-sample-client-request.json> \
63
- --label wave-1-iflow-control
64
58
  ```
65
59
 
66
60
  ## 5) 风险与回滚点
67
61
 
68
62
  - `ecf3dbe70`(High)
69
- - 关注:`x-iflow-signature` 计算一致性、`session-id/conversation-id` 映射。
70
63
  - 回滚:直接回退该 commit;不影响其它文档提交。
71
64
  - `3857b25e6`(Medium)
72
65
  - 关注:validate 自启 server 后停止逻辑、异常分支 cleanup。
@@ -74,7 +67,6 @@ npm run replay:codex-sample -- \
74
67
 
75
68
  ## 6) 发布后观察建议
76
69
 
77
- - 观察 iflow 400/435 比例是否下降。
78
70
  - 观察 validate 后是否仍残留 `routecodex`/`rcc start` 进程。
79
71
  - 若异常,按单 commit 回滚并保留 same-shape/control 证据。
80
72
 
@@ -15,7 +15,7 @@
15
15
 
16
16
  基于当前代码可观察到的典型信号(作为迁移切入点):
17
17
 
18
- - Kernel 中存在 iFlow/Antigravity/Codex UA 分支逻辑与签名行为。
18
+ - Kernel 中存在 Antigravity/Codex UA 分支逻辑与签名行为。
19
19
  - `service-profiles.ts` 既承载基础配置,也承载品牌特定 header 与行为暗约束。
20
20
  - Factory 在协议映射、module 选择、brand 归一间承担了超出“构造器”范畴的语义。
21
21
 
@@ -55,7 +55,7 @@ Kernel 只保留“与业务语义无关”的纯通用能力:
55
55
 
56
56
  Kernel 禁止:
57
57
 
58
- - 品牌识别分支(例如 `iflow` / `qwen` / `glm`)
58
+ - 品牌识别分支(例如 `qwen` / `glm`)
59
59
  - 特定上游签名算法、header 语义修复
60
60
  - 模型级行为修复与策略 fallback
61
61
 
@@ -81,7 +81,7 @@ Family Profile 承载“同协议下不同品牌”的差异策略:
81
81
  - auth policy(oauthProviderId 解析、token 形态扩展)
82
82
  - request policy(字段注入、字段裁剪、模型映射)
83
83
  - response policy(错误 envelope 归一、供应商业务码映射)
84
- - optional signing policy(例如 iFlow 的签名规则)
84
+ - optional signing policy
85
85
 
86
86
  Profile 必须是声明式 + 小型策略函数,不允许变成第二个 transport kernel。
87
87
 
@@ -154,7 +154,6 @@ src/providers/core/
154
154
  gemini/
155
155
  profiles/
156
156
  families/
157
- iflow/
158
157
  qwen/
159
158
  glm/
160
159
  antigravity/
@@ -17,13 +17,6 @@
17
17
 
18
18
  | ID | 当前位置(文件:行) | 当前行为 | 目标层 | 迁移动作 | 风险级别 | 连线阶段 |
19
19
  |---|---|---|---|---|---|---|
20
- | M01 | `src/providers/core/runtime/http-transport-provider.ts:780` | `iflowWebSearch` 特判 endpoint `/chat/retrieve` | Family Profile(iflow) | 从 Kernel 抽离为 `iflow.requestPolicy.resolveEndpoint()` | 高 | Wave-1(iflow) |
21
- | M02 | `src/providers/core/runtime/http-transport-provider.ts:804` | `iflowWebSearch` 特判 body 直透 `request.data` | Family Profile(iflow) | 抽离为 `iflow.requestPolicy.buildBody()` | 高 | Wave-1(iflow) |
22
- | M03 | `src/providers/core/runtime/iflow-http-provider.ts:40` | iFlow 子类重复实现 webSearch endpoint/body 特判 | Family Profile(iflow) | 去重,保留单一事实实现(profile) | 高 | Wave-1(iflow) |
23
- | M04 | `src/providers/core/runtime/http-transport-provider.ts:992` | iFlow UA 优先级反转(service UA > inbound UA) | Family Profile(iflow) | 抽离为 `iflow.headerPolicy.resolveUserAgentPriority()` | 高 | Wave-1(iflow) |
24
- | M05 | `src/providers/core/runtime/http-transport-provider.ts:1212` | iFlow `session-id/conversation-id` 规范化 + 签名头 | Family Profile(iflow) | 抽离为 `iflow.signingPolicy.applyHeaders()` | 高 | Wave-1(iflow) |
25
- | M06 | `src/providers/core/runtime/http-request-executor.ts:499` | iFlow HTTP200 + status=439 token expired 特判抛错 | Family Profile(iflow) | 抽离为 `iflow.responsePolicy.classifyBusinessEnvelope()` | 高 | Wave-1(iflow) |
26
- | M07 | `src/providers/core/runtime/http-request-executor.ts:531` | iFlow business envelope `error_code/msg` -> HTTP_400 | Family Profile(iflow) | 抽离为 `iflow.errorPolicy.toProviderError()` | 高 | Wave-1(iflow) |
27
20
  | M08 | `src/providers/core/runtime/http-transport-provider.ts:888` | Gemini-family 注入 `X-Goog-Api-Client` / `Client-Metadata` | Family Profile(gemini, qwen) | 下沉到对应 profile header policy | 中 | Wave-2(gemini/qwen) |
28
21
  | M09 | `src/providers/core/runtime/http-transport-provider.ts:1048` | Antigravity 删除 `session_id/conversation_id` | Family Profile(antigravity) | 抽离为 `antigravity.headerPolicy.cleanup()` | 中 | Wave-2(antigravity) |
29
22
  | M10 | `src/providers/core/runtime/http-request-executor.ts:403` | Antigravity 多 base fallback 条件(429/400/context-error) | Family Profile(antigravity)+ Kernel retry SPI | 先抽 Kernel Retry SPI(实现重试),profile 仅提供 retry 条件策略(不实现重试流程) | 高 | Wave-2(antigravity) |
@@ -31,10 +24,10 @@
31
24
  | M12 | `src/providers/core/runtime/gemini-http-provider.ts:176` | Antigravity 签名类错误包装为 response | Family Profile(antigravity) | 抽离为 profile response policy | 中 | Wave-2(antigravity) |
32
25
  | M13 | `src/providers/core/runtime/provider-factory.ts:388` | `gemini-cli-oauth` 决定实例化 GeminiCLI provider | Protocol + Profile 选择器 | factory 仅装配(不解析/不实例化 profile);选择逻辑迁到 registry resolver(只解析不实例化) | 中 | Wave-3(factory clean) |
33
26
  | M14 | `src/providers/core/runtime/base-provider.ts:582` | gemini-cli/antigravity 429 bucket 粒度按 model | Family Profile(antigravity/gemini-cli) | 抽离为 rate-limit profile policy | 中 | Wave-2 |
34
- | M15 | `src/providers/core/config/service-profiles.ts:123` | glm/qwen/iflow/gemini-cli 默认 header/base/model 混在基础 profile | Profile 目录(family defaults) | 拆成 protocol-base + family-default overlay | 中 | Wave-3 |
27
+ | M15 | `src/providers/core/config/service-profiles.ts:123` | glm/qwen/gemini-cli 默认 header/base/model 混在基础 profile | Profile 目录(family defaults) | 拆成 protocol-base + family-default overlay | 中 | Wave-3 |
35
28
  | M16 | `src/providers/core/utils/provider-type-utils.ts:14` | LEGACY family->type 映射与协议映射耦合 | Registry(provider 目录映射) | 单独迁入 provider-directory map;归一完成即冻结,runtime 禁止二次推断 | 中 | Wave-3 |
36
- | M17 | `src/providers/core/config/provider-oauth-configs.ts:26` | OAuth 配置按 providerId 硬编码(qwen/iflow/gemini-cli/antigravity) | Family Profile(auth policy) | 抽为 profile-auth config,kernel 仅执行 flow | 中 | Wave-2 |
37
- | M18 | `src/providers/core/runtime/http-transport-provider.ts:1290` | `isIflow/isAntigravity` 运行时识别散落在 transport | Registry + Profile resolver | 由配置 `providerId` + provider目录映射统一识别 | 高 | Wave-1/2 |
29
+ | M17 | `src/providers/core/config/provider-oauth-configs.ts:26` | OAuth 配置按 providerId 硬编码(qwen/gemini-cli/antigravity) | Family Profile(auth policy) | 抽为 profile-auth config,kernel 仅执行 flow | 中 | Wave-2 |
30
+ | M18 | `src/providers/core/runtime/http-transport-provider.ts:1290` | `isAntigravity` 运行时识别散落在 transport | Registry + Profile resolver | 由配置 `providerId` + provider目录映射统一识别 | 高 | Wave-1/2 |
38
31
 
39
32
  ## 3. 哪些应该留在 Kernel(不迁)
40
33
 
@@ -49,13 +42,10 @@
49
42
 
50
43
  ### 高风险项
51
44
 
52
- 1. iFlow 业务错误 envelope(M06/M07)
53
45
  - 风险:迁移不完整会导致 200 响应落到后续阶段才报 malformed。
54
- 2. iFlow 签名头(M05)
55
46
  - 风险:签名 payload 任何字段顺序变化都会直接 400。
56
47
  3. Antigravity fallback(M10)
57
48
  - 风险:错误重试策略漂移会放大失败率。
58
- 4. iflowWebSearch 双实现(M01/M02/M03)
59
49
  - 风险:双源逻辑导致行为不一致,必须先去重再连线。
60
50
 
61
51
  ### 前置依赖
@@ -67,7 +57,6 @@
67
57
 
68
58
  ### 实现阶段(不接线)
69
59
 
70
- 1. 新建 `profiles/families/iflow/*`,实现 endpoint/body/header/signature/error policy。
71
60
  2. 新建 `profiles/families/antigravity/*`,实现 fallback/header/error policy。
72
61
  3. 新建 `protocols/gemini/*` 适配器,承接消息 shape 转换。
73
62
  4. 新建 `profiles/registry.ts` 与 provider-directory 映射解析器。
@@ -76,7 +65,7 @@
76
65
 
77
66
  ### 连线阶段(逐批次)
78
67
 
79
- 1. Wave-1 仅接 iFlow(M01~M07, M18-iflow)。
68
+ 1. Wave-1 清理完成。
80
69
  2. Wave-2 接 antigravity/gemini-cli(M09/M10/M12/M14/M17)。
81
70
  3. Wave-3 做 factory/service-profile/provider-type-utils 清理(M11/M13/M15/M16)。
82
71
 
@@ -68,7 +68,7 @@
68
68
 
69
69
  ## Phase 2(新主旧影子切换)
70
70
 
71
- - 按 wave 逐批连线(Wave-1 iflow -> Wave-2 antigravity/gemini-cli -> Wave-3 清理层)。
71
+ - 按 wave 逐批连线(Wave-1 antigravity -> Wave-2 antigravity/gemini-cli -> Wave-3 清理层)。
72
72
  - 连线后新实现主路径生效,旧实现影子并行观测。
73
73
 
74
74
  ### Entry Gate
@@ -127,14 +127,13 @@
127
127
  ## 4.3 回滚粒度
128
128
 
129
129
  - 以 wave 为最小回滚单位。
130
- - wave 内可按 provider family 子单元回滚(例如仅回滚 iflow)。
130
+ - wave 内可按 provider family 子单元回滚(例如仅回滚 antigravity)。
131
131
 
132
132
  ## 5. Wave 拆分建议
133
133
 
134
- ### Wave-1(iflow)
135
134
 
136
- - 包含 M01~M07 + M18(iflow)
137
- - 核心目标:iflowWebSearch 去重、UA/signature、business envelope 归一。
135
+ - 包含 M01~M07 + M18。
136
+ - 核心目标:WebSearch 去重、UA/signature、business envelope 归一。
138
137
 
139
138
  ### Wave-2(antigravity/gemini-cli)
140
139