@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.
- package/README.md +5 -6
- package/configsamples/provider-default/ali-coding-plan/config.v2.json +6 -1
- package/configsamples/provider-default/antigravity/config.v2.json +6 -1
- package/configsamples/provider-default/ark-coding-plan/config.v2.json +7 -2
- package/configsamples/provider-default/crs/config.v2.json +6 -1
- package/configsamples/provider-default/deepseek-web/config.v2.json +6 -1
- package/configsamples/provider-default/gemini/config.v2.json +6 -1
- package/configsamples/provider-default/gemini-cli/config.v2.json +6 -1
- package/configsamples/provider-default/gemini-native/config.v2.json +6 -1
- package/configsamples/provider-default/glm/config.v2.json +7 -2
- package/configsamples/provider-default/glm-anthropic/config.v2.json +6 -1
- package/configsamples/provider-default/kimi/config.v2.json +7 -2
- package/configsamples/provider-default/lmstudio/config.v2.json +6 -1
- package/configsamples/provider-default/lmstudio-proxy/config.v2.json +6 -1
- package/configsamples/provider-default/manifest.json +0 -1
- package/configsamples/provider-default/meituan/config.v2.json +6 -1
- package/configsamples/provider-default/mimo/config.v2.json +7 -2
- package/configsamples/provider-default/modelscope/config.v2.json +7 -2
- package/configsamples/provider-default/my-openai/config.v2.json +6 -1
- package/configsamples/provider-default/nvidia/config.v2.json +7 -2
- package/configsamples/provider-default/opencode-zen-free/config.v2.json +6 -1
- package/configsamples/provider-default/openrouter/config.v2.json +6 -1
- package/configsamples/provider-default/qwen/config.v2.json +11 -1
- package/configsamples/provider-default/tab/config.v2.json +6 -1
- package/configsamples/provider-default/tabglm/config.v2.json +7 -2
- package/dist/build-info.js +2 -2
- package/dist/build-info.js.map +1 -1
- package/dist/cli/commands/camoufox.js +44 -3
- package/dist/cli/commands/camoufox.js.map +1 -1
- package/dist/cli/commands/config.js +2 -2
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/heartbeat.js +82 -27
- package/dist/cli/commands/heartbeat.js.map +1 -1
- package/dist/cli/commands/init.js +1 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/launcher/utils.js +37 -24
- package/dist/cli/commands/launcher/utils.js.map +1 -1
- package/dist/cli/commands/launcher-kernel.js +6 -3
- package/dist/cli/commands/launcher-kernel.js.map +1 -1
- package/dist/cli/commands/restart.js +102 -31
- package/dist/cli/commands/restart.js.map +1 -1
- package/dist/cli/commands/start-types.d.ts +1 -0
- package/dist/cli/commands/start-utils.d.ts +1 -0
- package/dist/cli/commands/start-utils.js +3 -0
- package/dist/cli/commands/start-utils.js.map +1 -1
- package/dist/cli/commands/start.js +217 -51
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.js +48 -9
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/config/bootstrap-provider-templates.js +1 -1
- package/dist/cli/config/bootstrap-provider-templates.js.map +1 -1
- package/dist/cli/config/init-provider-catalog.js +3 -50
- package/dist/cli/config/init-provider-catalog.js.map +1 -1
- package/dist/cli/config/init-v2-builder.js +0 -1
- package/dist/cli/config/init-v2-builder.js.map +1 -1
- package/dist/cli/guardian/client.js +40 -18
- package/dist/cli/guardian/client.js.map +1 -1
- package/dist/cli/server/port-utils.d.ts +5 -0
- package/dist/cli/server/port-utils.js +45 -31
- package/dist/cli/server/port-utils.js.map +1 -1
- package/dist/commands/camoufox-fp.js +1 -1
- package/dist/commands/camoufox-fp.js.map +1 -1
- package/dist/commands/oauth.js +48 -64
- package/dist/commands/oauth.js.map +1 -1
- package/dist/commands/provider-update-maintenance.js +4 -4
- package/dist/commands/provider-update-maintenance.js.map +1 -1
- package/dist/commands/token-daemon.js +38 -10
- package/dist/commands/token-daemon.js.map +1 -1
- package/dist/commands/validate.js +31 -3
- package/dist/commands/validate.js.map +1 -1
- package/dist/config/provider-v2-loader.d.ts +5 -2
- package/dist/config/provider-v2-loader.js +80 -26
- package/dist/config/provider-v2-loader.js.map +1 -1
- package/dist/config/routecodex-config-loader.d.ts +1 -0
- package/dist/config/routecodex-config-loader.js +18 -207
- package/dist/config/routecodex-config-loader.js.map +1 -1
- package/dist/config/virtual-router-builder.d.ts +3 -2
- package/dist/config/virtual-router-builder.js +4 -214
- package/dist/config/virtual-router-builder.js.map +1 -1
- package/dist/constants/index.d.ts +2 -3
- package/dist/constants/index.js +2 -4
- package/dist/constants/index.js.map +1 -1
- package/dist/error-handling/route-error-hub.js +1 -0
- package/dist/error-handling/route-error-hub.js.map +1 -1
- package/dist/index.js +98 -21
- package/dist/index.js.map +1 -1
- package/dist/manager/modules/quota/antigravity-quota-manager.d.ts +1 -1
- package/dist/manager/modules/quota/antigravity-quota-manager.js +21 -12
- package/dist/manager/modules/quota/antigravity-quota-manager.js.map +1 -1
- package/dist/manager/modules/quota/antigravity-quota-runtime.d.ts +1 -1
- package/dist/manager/modules/quota/antigravity-quota-runtime.js +32 -45
- package/dist/manager/modules/quota/antigravity-quota-runtime.js.map +1 -1
- package/dist/manager/modules/quota/provider-key-normalization.js +10 -1
- package/dist/manager/modules/quota/provider-key-normalization.js.map +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.d.ts +2 -1
- package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.d.ts +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.js +22 -12
- package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.js.map +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.events.js +69 -33
- package/dist/manager/modules/quota/provider-quota-daemon.events.js.map +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.js +47 -35
- package/dist/manager/modules/quota/provider-quota-daemon.js.map +1 -1
- package/dist/manager/storage/file-store.js +3 -0
- package/dist/manager/storage/file-store.js.map +1 -1
- package/dist/modules/llmswitch/bridge/antigravity-signature.js +58 -20
- package/dist/modules/llmswitch/bridge/antigravity-signature.js.map +1 -1
- package/dist/modules/llmswitch/bridge/index.d.ts +1 -1
- package/dist/modules/llmswitch/bridge/index.js +1 -1
- package/dist/modules/llmswitch/bridge/index.js.map +1 -1
- package/dist/modules/llmswitch/bridge/runtime-integrations.d.ts +22 -16
- package/dist/modules/llmswitch/bridge/runtime-integrations.js +89 -30
- package/dist/modules/llmswitch/bridge/runtime-integrations.js.map +1 -1
- package/dist/modules/llmswitch/bridge/snapshot-recorder-runtime.js +10 -9
- package/dist/modules/llmswitch/bridge/snapshot-recorder-runtime.js.map +1 -1
- package/dist/modules/llmswitch/bridge/snapshot-recorder.js +3 -0
- package/dist/modules/llmswitch/bridge/snapshot-recorder.js.map +1 -1
- package/dist/modules/llmswitch/bridge/state-integrations.d.ts +1 -0
- package/dist/modules/llmswitch/bridge/state-integrations.js +263 -51
- package/dist/modules/llmswitch/bridge/state-integrations.js.map +1 -1
- package/dist/modules/llmswitch/bridge.d.ts +2 -2
- package/dist/modules/llmswitch/bridge.js +2 -2
- package/dist/modules/llmswitch/bridge.js.map +1 -1
- package/dist/provider-sdk/provider-add-template.d.ts +1 -1
- package/dist/provider-sdk/provider-add-template.js.map +1 -1
- package/dist/provider-sdk/provider-runtime-inference.js +48 -13
- package/dist/provider-sdk/provider-runtime-inference.js.map +1 -1
- package/dist/providers/auth/deepseek-account-token-acquirer.d.ts +24 -0
- package/dist/providers/auth/deepseek-account-token-acquirer.js +42 -13
- package/dist/providers/auth/deepseek-account-token-acquirer.js.map +1 -1
- package/dist/providers/auth/oauth-auth.js +12 -5
- package/dist/providers/auth/oauth-auth.js.map +1 -1
- package/dist/providers/auth/oauth-lifecycle/path-resolver.d.ts +0 -1
- package/dist/providers/auth/oauth-lifecycle/path-resolver.js +10 -9
- package/dist/providers/auth/oauth-lifecycle/path-resolver.js.map +1 -1
- package/dist/providers/auth/oauth-lifecycle/token-helpers.js +0 -1
- package/dist/providers/auth/oauth-lifecycle/token-helpers.js.map +1 -1
- package/dist/providers/auth/oauth-lifecycle/token-io.js +18 -8
- package/dist/providers/auth/oauth-lifecycle/token-io.js.map +1 -1
- package/dist/providers/auth/oauth-lifecycle.d.ts +5 -0
- package/dist/providers/auth/oauth-lifecycle.js +370 -353
- package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
- package/dist/providers/auth/oauth-repair-env.js +0 -26
- package/dist/providers/auth/oauth-repair-env.js.map +1 -1
- package/dist/providers/auth/qwen-userinfo-helper.d.ts +11 -0
- package/dist/providers/auth/qwen-userinfo-helper.js +85 -13
- package/dist/providers/auth/qwen-userinfo-helper.js.map +1 -1
- package/dist/providers/auth/token-refresh/token-state.js +1 -4
- package/dist/providers/auth/token-refresh/token-state.js.map +1 -1
- package/dist/providers/auth/token-scanner/index.d.ts +1 -1
- package/dist/providers/auth/token-scanner/index.js +2 -2
- package/dist/providers/auth/token-storage/token-file-resolver.js +0 -3
- package/dist/providers/auth/token-storage/token-file-resolver.js.map +1 -1
- package/dist/providers/auth/token-storage/token-persistence.js +10 -3
- package/dist/providers/auth/token-storage/token-persistence.js.map +1 -1
- package/dist/providers/auth/tokenfile-auth.d.ts +0 -1
- package/dist/providers/auth/tokenfile-auth.js +23 -30
- package/dist/providers/auth/tokenfile-auth.js.map +1 -1
- package/dist/providers/core/api/provider-config.d.ts +1 -1
- package/dist/providers/core/api/provider-types.d.ts +2 -1
- package/dist/providers/core/config/camoufox-actions.js +23 -15
- package/dist/providers/core/config/camoufox-actions.js.map +1 -1
- package/dist/providers/core/config/camoufox-launcher.js +235 -121
- package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
- package/dist/providers/core/config/oauth-flows.js +23 -1
- package/dist/providers/core/config/oauth-flows.js.map +1 -1
- package/dist/providers/core/config/provider-oauth-configs.js +2 -93
- package/dist/providers/core/config/provider-oauth-configs.js.map +1 -1
- package/dist/providers/core/config/service-profiles.d.ts +0 -1
- package/dist/providers/core/config/service-profiles.js +23 -66
- package/dist/providers/core/config/service-profiles.js.map +1 -1
- package/dist/providers/core/runtime/base-provider-runtime-helpers.js +4 -1
- package/dist/providers/core/runtime/base-provider-runtime-helpers.js.map +1 -1
- package/dist/providers/core/runtime/base-provider.js +21 -11
- package/dist/providers/core/runtime/base-provider.js.map +1 -1
- package/dist/providers/core/runtime/deepseek-http-provider-helpers.d.ts +1 -0
- package/dist/providers/core/runtime/deepseek-http-provider-helpers.js +28 -0
- package/dist/providers/core/runtime/deepseek-http-provider-helpers.js.map +1 -1
- package/dist/providers/core/runtime/deepseek-http-provider.d.ts +0 -2
- package/dist/providers/core/runtime/deepseek-http-provider.js +3 -33
- package/dist/providers/core/runtime/deepseek-http-provider.js.map +1 -1
- package/dist/providers/core/runtime/http-request-executor.d.ts +1 -0
- package/dist/providers/core/runtime/http-request-executor.js +131 -47
- package/dist/providers/core/runtime/http-request-executor.js.map +1 -1
- package/dist/providers/core/runtime/http-transport-provider.d.ts +5 -5
- package/dist/providers/core/runtime/http-transport-provider.js +97 -38
- package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
- package/dist/providers/core/runtime/openai-responses-sdk-transport.js +2 -1
- package/dist/providers/core/runtime/openai-responses-sdk-transport.js.map +1 -1
- package/dist/providers/core/runtime/provider-error-classifier.js +19 -126
- package/dist/providers/core/runtime/provider-error-classifier.js.map +1 -1
- package/dist/providers/core/runtime/provider-factory-helpers.d.ts +1 -0
- package/dist/providers/core/runtime/provider-factory-helpers.js +8 -12
- package/dist/providers/core/runtime/provider-factory-helpers.js.map +1 -1
- package/dist/providers/core/runtime/provider-factory.js +2 -9
- package/dist/providers/core/runtime/provider-factory.js.map +1 -1
- package/dist/providers/core/runtime/provider-failure-policy.d.ts +135 -0
- package/dist/providers/core/runtime/provider-failure-policy.js +685 -0
- package/dist/providers/core/runtime/provider-failure-policy.js.map +1 -0
- package/dist/providers/core/runtime/provider-family-profile-utils.d.ts +0 -10
- package/dist/providers/core/runtime/provider-family-profile-utils.js +0 -28
- package/dist/providers/core/runtime/provider-family-profile-utils.js.map +1 -1
- package/dist/providers/core/runtime/provider-http-executor-utils.js +40 -1
- package/dist/providers/core/runtime/provider-http-executor-utils.js.map +1 -1
- package/dist/providers/core/runtime/provider-request-header-orchestrator.d.ts +0 -2
- package/dist/providers/core/runtime/provider-request-header-orchestrator.js +35 -8
- package/dist/providers/core/runtime/provider-request-header-orchestrator.js.map +1 -1
- package/dist/providers/core/runtime/provider-response-postprocessor.js +3 -23
- package/dist/providers/core/runtime/provider-response-postprocessor.js.map +1 -1
- package/dist/providers/core/runtime/provider-runtime-utils.js +4 -1
- package/dist/providers/core/runtime/provider-runtime-utils.js.map +1 -1
- package/dist/providers/core/runtime/provider-startup-tasks.js +18 -2
- package/dist/providers/core/runtime/provider-startup-tasks.js.map +1 -1
- package/dist/providers/core/runtime/responses-provider-helpers.d.ts +1 -0
- package/dist/providers/core/runtime/responses-provider-helpers.js +11 -12
- package/dist/providers/core/runtime/responses-provider-helpers.js.map +1 -1
- package/dist/providers/core/runtime/responses-provider.js +15 -10
- package/dist/providers/core/runtime/responses-provider.js.map +1 -1
- package/dist/providers/core/runtime/transport/auth-provider-factory.d.ts +0 -1
- package/dist/providers/core/runtime/transport/auth-provider-factory.js +1 -15
- package/dist/providers/core/runtime/transport/auth-provider-factory.js.map +1 -1
- package/dist/providers/core/runtime/transport/index.d.ts +0 -1
- package/dist/providers/core/runtime/transport/index.js +0 -1
- package/dist/providers/core/runtime/transport/index.js.map +1 -1
- package/dist/providers/core/runtime/transport/oauth-recovery-handler.d.ts +2 -0
- package/dist/providers/core/runtime/transport/oauth-recovery-handler.js +76 -5
- package/dist/providers/core/runtime/transport/oauth-recovery-handler.js.map +1 -1
- package/dist/providers/core/runtime/transport/request-header-builder.d.ts +0 -1
- package/dist/providers/core/runtime/transport/request-header-builder.js +1 -7
- package/dist/providers/core/runtime/transport/request-header-builder.js.map +1 -1
- package/dist/providers/core/runtime/transport/runtime-detector.d.ts +0 -2
- package/dist/providers/core/runtime/transport/runtime-detector.js +0 -20
- package/dist/providers/core/runtime/transport/runtime-detector.js.map +1 -1
- package/dist/providers/core/runtime/transport/session-header-utils.d.ts +6 -0
- package/dist/providers/core/runtime/transport/session-header-utils.js +61 -2
- package/dist/providers/core/runtime/transport/session-header-utils.js.map +1 -1
- package/dist/providers/core/runtime/vercel-ai-sdk/anthropic-sdk-request-exec.js +2 -1
- package/dist/providers/core/runtime/vercel-ai-sdk/anthropic-sdk-request-exec.js.map +1 -1
- package/dist/providers/core/runtime/vercel-ai-sdk/openai-sdk-transport.js +2 -1
- package/dist/providers/core/runtime/vercel-ai-sdk/openai-sdk-transport.js.map +1 -1
- package/dist/providers/core/strategies/oauth-auth-code-flow.d.ts +1 -4
- package/dist/providers/core/strategies/oauth-auth-code-flow.js +26 -84
- package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
- package/dist/providers/core/strategies/oauth-device-flow.d.ts +2 -0
- package/dist/providers/core/strategies/oauth-device-flow.js +43 -8
- package/dist/providers/core/strategies/oauth-device-flow.js.map +1 -1
- package/dist/providers/core/utils/http-client.d.ts +7 -5
- package/dist/providers/core/utils/http-client.js +108 -33
- package/dist/providers/core/utils/http-client.js.map +1 -1
- package/dist/providers/core/utils/provider-error-reporter.d.ts +2 -2
- package/dist/providers/core/utils/provider-error-reporter.js +9 -85
- package/dist/providers/core/utils/provider-error-reporter.js.map +1 -1
- package/dist/providers/core/utils/provider-type-utils.js +1 -3
- package/dist/providers/core/utils/provider-type-utils.js.map +1 -1
- package/dist/providers/core/utils/qwen-client-fingerprint.d.ts +15 -0
- package/dist/providers/core/utils/qwen-client-fingerprint.js +47 -0
- package/dist/providers/core/utils/qwen-client-fingerprint.js.map +1 -0
- package/dist/providers/core/utils/snapshot-writer.d.ts +3 -0
- package/dist/providers/core/utils/snapshot-writer.js +385 -26
- package/dist/providers/core/utils/snapshot-writer.js.map +1 -1
- package/dist/providers/profile/families/qwen-profile.js +285 -22
- package/dist/providers/profile/families/qwen-profile.js.map +1 -1
- package/dist/providers/profile/profile-registry.js +0 -2
- package/dist/providers/profile/profile-registry.js.map +1 -1
- package/dist/providers/profile/provider-directory.js +0 -1
- package/dist/providers/profile/provider-directory.js.map +1 -1
- package/dist/providers/profile/provider-profile-loader.js +1 -1
- package/dist/providers/profile/provider-profile-loader.js.map +1 -1
- package/dist/server/handlers/chat-handler.js +6 -5
- package/dist/server/handlers/chat-handler.js.map +1 -1
- package/dist/server/handlers/config-admin-handler.js +44 -69
- package/dist/server/handlers/config-admin-handler.js.map +1 -1
- package/dist/server/handlers/handler-response-utils.js +190 -27
- package/dist/server/handlers/handler-response-utils.js.map +1 -1
- package/dist/server/handlers/handler-utils.d.ts +3 -0
- package/dist/server/handlers/handler-utils.js +72 -0
- package/dist/server/handlers/handler-utils.js.map +1 -1
- package/dist/server/handlers/images-handler.js +7 -7
- package/dist/server/handlers/images-handler.js.map +1 -1
- package/dist/server/handlers/messages-handler.js +6 -5
- package/dist/server/handlers/messages-handler.js.map +1 -1
- package/dist/server/handlers/responses-handler.js +32 -14
- package/dist/server/handlers/responses-handler.js.map +1 -1
- package/dist/server/handlers/sse-dispatcher.js +55 -13
- package/dist/server/handlers/sse-dispatcher.js.map +1 -1
- package/dist/server/handlers/types.d.ts +12 -0
- package/dist/server/runtime/http-server/daemon-admin/auth-handler.js +5 -2
- package/dist/server/runtime/http-server/daemon-admin/auth-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/control-handler.js +62 -18
- package/dist/server/runtime/http-server/daemon-admin/control-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler-utils.js +1 -1
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler-utils.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +9 -9
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js +36 -10
- package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +11 -11
- package/dist/server/runtime/http-server/daemon-admin/providers-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/quota-handler.js +49 -8
- package/dist/server/runtime/http-server/daemon-admin/quota-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin-routes.d.ts +1 -0
- package/dist/server/runtime/http-server/daemon-admin-routes.js +46 -0
- package/dist/server/runtime/http-server/daemon-admin-routes.js.map +1 -1
- package/dist/server/runtime/http-server/executor/client-injection-flow.js +2 -0
- package/dist/server/runtime/http-server/executor/client-injection-flow.js.map +1 -1
- package/dist/server/runtime/http-server/executor/log-rollup.d.ts +38 -0
- package/dist/server/runtime/http-server/executor/log-rollup.js +775 -0
- package/dist/server/runtime/http-server/executor/log-rollup.js.map +1 -0
- package/dist/server/runtime/http-server/executor/provider-response-converter.js +654 -281
- package/dist/server/runtime/http-server/executor/provider-response-converter.js.map +1 -1
- package/dist/server/runtime/http-server/executor/provider-response-utils.js +34 -3
- package/dist/server/runtime/http-server/executor/provider-response-utils.js.map +1 -1
- package/dist/server/runtime/http-server/executor/provider-runtime-resolver.js +14 -68
- package/dist/server/runtime/http-server/executor/provider-runtime-resolver.js.map +1 -1
- package/dist/server/runtime/http-server/executor/request-executor-core-utils.js +26 -2
- package/dist/server/runtime/http-server/executor/request-executor-core-utils.js.map +1 -1
- package/dist/server/runtime/http-server/executor/request-retry-helpers.js +20 -2
- package/dist/server/runtime/http-server/executor/request-retry-helpers.js.map +1 -1
- package/dist/server/runtime/http-server/executor/servertool-adapter-context.d.ts +10 -0
- package/dist/server/runtime/http-server/executor/servertool-adapter-context.js +120 -0
- package/dist/server/runtime/http-server/executor/servertool-adapter-context.js.map +1 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-dispatch.d.ts +35 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-dispatch.js +101 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-dispatch.js.map +1 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-error.d.ts +46 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-error.js +127 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-error.js.map +1 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-metadata.d.ts +7 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-metadata.js +186 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-metadata.js.map +1 -0
- package/dist/server/runtime/http-server/executor/servertool-request-normalizer.d.ts +2 -0
- package/dist/server/runtime/http-server/executor/servertool-request-normalizer.js +56 -0
- package/dist/server/runtime/http-server/executor/servertool-request-normalizer.js.map +1 -0
- package/dist/server/runtime/http-server/executor/servertool-response-normalizer.d.ts +8 -0
- package/dist/server/runtime/http-server/executor/servertool-response-normalizer.js +31 -0
- package/dist/server/runtime/http-server/executor/servertool-response-normalizer.js.map +1 -0
- package/dist/server/runtime/http-server/executor/servertool-runtime-log.d.ts +8 -0
- package/dist/server/runtime/http-server/executor/servertool-runtime-log.js +33 -0
- package/dist/server/runtime/http-server/executor/servertool-runtime-log.js.map +1 -0
- package/dist/server/runtime/http-server/executor/sse-error-handler.js +37 -0
- package/dist/server/runtime/http-server/executor/sse-error-handler.js.map +1 -1
- package/dist/server/runtime/http-server/executor/usage-aggregator.js +32 -2
- package/dist/server/runtime/http-server/executor/usage-aggregator.js.map +1 -1
- package/dist/server/runtime/http-server/executor/usage-logger.d.ts +12 -0
- package/dist/server/runtime/http-server/executor/usage-logger.js +56 -1
- package/dist/server/runtime/http-server/executor/usage-logger.js.map +1 -1
- package/dist/server/runtime/http-server/executor-metadata.d.ts +15 -0
- package/dist/server/runtime/http-server/executor-metadata.js +60 -18
- package/dist/server/runtime/http-server/executor-metadata.js.map +1 -1
- package/dist/server/runtime/http-server/executor-provider.d.ts +2 -0
- package/dist/server/runtime/http-server/executor-provider.js +88 -205
- package/dist/server/runtime/http-server/executor-provider.js.map +1 -1
- package/dist/server/runtime/http-server/executor-response.js +30 -149
- package/dist/server/runtime/http-server/executor-response.js.map +1 -1
- package/dist/server/runtime/http-server/http-server-bootstrap.js +53 -17
- package/dist/server/runtime/http-server/http-server-bootstrap.js.map +1 -1
- package/dist/server/runtime/http-server/http-server-legacy-pipeline.js +28 -1
- package/dist/server/runtime/http-server/http-server-legacy-pipeline.js.map +1 -1
- package/dist/server/runtime/http-server/http-server-lifecycle.js +17 -4
- package/dist/server/runtime/http-server/http-server-lifecycle.js.map +1 -1
- package/dist/server/runtime/http-server/http-server-runtime-providers.js +42 -13
- package/dist/server/runtime/http-server/http-server-runtime-providers.js.map +1 -1
- package/dist/server/runtime/http-server/http-server-runtime-setup.js +40 -2
- package/dist/server/runtime/http-server/http-server-runtime-setup.js.map +1 -1
- package/dist/server/runtime/http-server/hub-shadow-compare.js +8 -4
- package/dist/server/runtime/http-server/hub-shadow-compare.js.map +1 -1
- package/dist/server/runtime/http-server/managed-process-probe.js +30 -4
- package/dist/server/runtime/http-server/managed-process-probe.js.map +1 -1
- package/dist/server/runtime/http-server/middleware.js +32 -4
- package/dist/server/runtime/http-server/middleware.js.map +1 -1
- package/dist/server/runtime/http-server/provider-traffic-governor.d.ts +45 -1
- package/dist/server/runtime/http-server/provider-traffic-governor.js +697 -111
- package/dist/server/runtime/http-server/provider-traffic-governor.js.map +1 -1
- package/dist/server/runtime/http-server/provider-utils.js +2 -6
- package/dist/server/runtime/http-server/provider-utils.js.map +1 -1
- package/dist/server/runtime/http-server/request-activity-tracker.d.ts +4 -0
- package/dist/server/runtime/http-server/request-activity-tracker.js +54 -11
- package/dist/server/runtime/http-server/request-activity-tracker.js.map +1 -1
- package/dist/server/runtime/http-server/request-executor.d.ts +247 -0
- package/dist/server/runtime/http-server/request-executor.js +2444 -334
- package/dist/server/runtime/http-server/request-executor.js.map +1 -1
- package/dist/server/runtime/http-server/routes.js +59 -16
- package/dist/server/runtime/http-server/routes.js.map +1 -1
- package/dist/server/runtime/http-server/runtime-manager.js +0 -15
- package/dist/server/runtime/http-server/runtime-manager.js.map +1 -1
- package/dist/server/runtime/http-server/session-client-registry-utils.js +46 -10
- package/dist/server/runtime/http-server/session-client-registry-utils.js.map +1 -1
- package/dist/server/runtime/http-server/session-client-registry.js +22 -4
- package/dist/server/runtime/http-server/session-client-registry.js.map +1 -1
- package/dist/server/runtime/http-server/session-client-routes.js +40 -18
- package/dist/server/runtime/http-server/session-client-routes.js.map +1 -1
- package/dist/server/runtime/http-server/session-dir.js +35 -2
- package/dist/server/runtime/http-server/session-dir.js.map +1 -1
- package/dist/server/runtime/http-server/session-scope-resolution.js +38 -9
- package/dist/server/runtime/http-server/session-scope-resolution.js.map +1 -1
- package/dist/server/runtime/http-server/session-storage-cleanup.js +64 -27
- package/dist/server/runtime/http-server/session-storage-cleanup.js.map +1 -1
- package/dist/server/runtime/http-server/stats-manager.d.ts +5 -0
- package/dist/server/runtime/http-server/stats-manager.js +138 -6
- package/dist/server/runtime/http-server/stats-manager.js.map +1 -1
- package/dist/server/runtime/http-server/tmux-injection-history.js +30 -4
- package/dist/server/runtime/http-server/tmux-injection-history.js.map +1 -1
- package/dist/server/runtime/http-server/tmux-session-probe.d.ts +3 -1
- package/dist/server/runtime/http-server/tmux-session-probe.js +198 -9
- package/dist/server/runtime/http-server/tmux-session-probe.js.map +1 -1
- package/dist/server/utils/client-connection-state.d.ts +1 -0
- package/dist/server/utils/client-connection-state.js +45 -5
- package/dist/server/utils/client-connection-state.js.map +1 -1
- package/dist/server/utils/finish-reason.js +61 -2
- package/dist/server/utils/finish-reason.js.map +1 -1
- package/dist/server/utils/http-error-mapper.d.ts +4 -0
- package/dist/server/utils/http-error-mapper.js +31 -6
- package/dist/server/utils/http-error-mapper.js.map +1 -1
- package/dist/server/utils/stage-logger.js +42 -13
- package/dist/server/utils/stage-logger.js.map +1 -1
- package/dist/server-lifecycle/port-utils.js +6 -2
- package/dist/server-lifecycle/port-utils.js.map +1 -1
- package/dist/token-daemon/index.js +44 -15
- package/dist/token-daemon/index.js.map +1 -1
- package/dist/token-daemon/leader-lock.js +65 -7
- package/dist/token-daemon/leader-lock.js.map +1 -1
- package/dist/token-daemon/provider-registry.js +1 -1
- package/dist/token-daemon/provider-registry.js.map +1 -1
- package/dist/token-daemon/server-utils.d.ts +11 -0
- package/dist/token-daemon/server-utils.js +71 -18
- package/dist/token-daemon/server-utils.js.map +1 -1
- package/dist/token-daemon/token-daemon.d.ts +0 -1
- package/dist/token-daemon/token-daemon.js +81 -63
- package/dist/token-daemon/token-daemon.js.map +1 -1
- package/dist/token-daemon/token-types.d.ts +1 -1
- package/dist/token-daemon/token-types.js +0 -1
- package/dist/token-daemon/token-types.js.map +1 -1
- package/dist/token-daemon/token-utils.js +4 -2
- package/dist/token-daemon/token-utils.js.map +1 -1
- package/dist/tools/provider-update/fetch-models.js +1 -5
- package/dist/tools/provider-update/fetch-models.js.map +1 -1
- package/dist/utils/error-handler-registry.js +50 -13
- package/dist/utils/error-handler-registry.js.map +1 -1
- package/dist/utils/errorsamples.d.ts +3 -1
- package/dist/utils/errorsamples.js +198 -14
- package/dist/utils/errorsamples.js.map +1 -1
- package/dist/utils/http-health-probe.d.ts +42 -0
- package/dist/utils/http-health-probe.js +231 -0
- package/dist/utils/http-health-probe.js.map +1 -0
- package/dist/utils/managed-server-pids.js +2 -2
- package/dist/utils/managed-server-pids.js.map +1 -1
- package/dist/utils/module-config-reader.js +11 -1
- package/dist/utils/module-config-reader.js.map +1 -1
- package/dist/utils/runtime-package-root.d.ts +2 -0
- package/dist/utils/runtime-package-root.js +47 -0
- package/dist/utils/runtime-package-root.js.map +1 -0
- package/dist/utils/snapshot-local-disk-gate.d.ts +3 -0
- package/dist/utils/snapshot-local-disk-gate.js +50 -0
- package/dist/utils/snapshot-local-disk-gate.js.map +1 -0
- package/dist/utils/snapshot-payload-guard.d.ts +1 -0
- package/dist/utils/snapshot-payload-guard.js +234 -0
- package/dist/utils/snapshot-payload-guard.js.map +1 -0
- package/dist/utils/snapshot-request-retention.d.ts +3 -0
- package/dist/utils/snapshot-request-retention.js +128 -0
- package/dist/utils/snapshot-request-retention.js.map +1 -0
- package/dist/utils/snapshot-stage-policy.d.ts +3 -0
- package/dist/utils/snapshot-stage-policy.js +111 -0
- package/dist/utils/snapshot-stage-policy.js.map +1 -0
- package/dist/utils/snapshot-writer.js +124 -127
- package/dist/utils/snapshot-writer.js.map +1 -1
- package/docs/CHAT_PROCESS_PROTOCOL_AND_PIPELINE.md +4 -0
- package/docs/CONFIG_ARCHITECTURE.md +2 -2
- package/docs/INSTALLATION_AND_QUICKSTART.md +5 -5
- package/docs/OAUTH.md +2 -5
- package/docs/PORTS.md +1 -1
- package/docs/PROVIDERS_BUILTIN.md +1 -5
- package/docs/PROVIDER_TYPES.md +1 -1
- package/docs/agent-routing/10-runtime-ssot-routing.md +4 -0
- package/docs/agent-routing/20-build-test-release-routing.md +2 -2
- package/docs/agent-routing/30-servertool-lifecycle-routing.md +2 -0
- package/docs/agent-routing/40-task-memory-routing.md +22 -2
- package/docs/audit/286.1-provider-failure-policy-audit.md +341 -0
- package/docs/audits/2026-04-26-fallback-silent-failure-audit.md +119 -0
- package/docs/audits/2026-04-27-provider-failure-policy-ssot-audit.md +153 -0
- package/docs/chat-process-continuation-state-contract.md +196 -0
- package/docs/chat-semantic-expansion-plan.md +2 -0
- package/docs/daemon-admin-api-design.md +9 -9
- package/docs/design/provider-failure-policy-ssot.md +215 -0
- package/docs/design/reasoning-stop-lifecycle.md +90 -0
- package/docs/design/servertool-unified-skeleton.md +202 -0
- package/docs/design/websearch-servertool-orchestration.md +190 -0
- package/docs/error-handling-v2.md +120 -11
- package/docs/protocol-compatibility-matrix.md +147 -0
- package/docs/providers/provider-composite-design.md +4 -5
- package/docs/providers/provider-composite-testing.md +1 -1
- package/docs/providers/provider-type-only-migration.md +2 -15
- package/docs/refactoring/compatibility-v2-architecture-design.md +1 -3
- package/docs/refactoring/host-164.3-responsibility-migration.md +0 -1
- package/docs/routing-instructions.md +42 -1
- package/docs/stop-message-auto.md +0 -1
- package/docs/token-refresh-daemon-plan.md +14 -14
- package/docs/v2-architecture/IMPLEMENTATION-ROADMAP.md +1 -1
- package/docs/v2-architecture/PROVIDER-V2-CHANGESET-RELEASE-CHECKLIST.md +1 -9
- package/docs/v2-architecture/PROVIDER-V2-LAYERING-ADR-DRAFT.md +3 -4
- package/docs/v2-architecture/PROVIDER-V2-MIGRATION-MATRIX-DRAFT.md +4 -15
- package/docs/v2-architecture/PROVIDER-V2-PHASED-MIGRATION-ROLLBACK-DRAFT.md +4 -5
- package/docs/v2-architecture/PROVIDER-V2-PROFILE-API-REGISTRY-DRAFT.md +4 -4
- package/docs/v2-architecture/PROVIDER-V2-REFACTOR-OVERVIEW-DRAFT.md +1 -2
- package/docs/v2-architecture/PROVIDER-V2-VERIFICATION-MATRIX-DRAFT.md +2 -2
- package/node_modules/@jsonstudio/llms/dist/config-unified/unified-config.js +36 -10
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/deepseek-web-request.js +7 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/deepseek-web-response.js +2 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/antigravity-session-signature.js +33 -17
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/header-policies.d.ts +20 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/header-policies.js +79 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/policy-overrides.d.ts +16 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/policy-overrides.js +27 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/provider-resolver.d.ts +26 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/provider-resolver.js +59 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/registry.d.ts +35 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/registry.js +154 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/types.d.ts +75 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/types.js +8 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/anthropic-claude-code.json +13 -7
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-claude-code.json +13 -8
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-deepseek-web.json +37 -8
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-qwen.json +48 -11
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/compat-passthrough.json +6 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/provider-resolution-config.json +24 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-mapper-config.js +0 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-mapper-from-chat.js +54 -7
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-mapper-to-chat.js +15 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-semantics-audit.d.ts +11 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-semantics-audit.js +16 -30
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapper-config.js +0 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapper-from-chat.js +15 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapping-audit.d.ts +10 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapping-audit.js +9 -30
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/protocol-mapping-audit.d.ts +43 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/protocol-mapping-audit.js +148 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper-from-chat.js +16 -6
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper-helpers.d.ts +2 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper-helpers.js +65 -3
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper-to-chat.js +1 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper.js +1 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/compat/compat-types.d.ts +14 -154
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-chat-process-request-utils.d.ts +6 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-chat-process-request-utils.js +83 -3
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-chat-process-entry.js +6 -5
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-request-stage-inbound.d.ts +0 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-request-stage-inbound.js +9 -5
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-request-stage-provider-payload.js +132 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-request-stage.js +0 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-heavy-input-fastpath.d.ts +4 -22
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-heavy-input-fastpath.js +109 -139
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-max-tokens-policy.js +40 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-route-and-outbound.d.ts +0 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-route-and-outbound.js +19 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline.d.ts +0 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline.js +45 -43
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/route-aware-responses-continuation.d.ts +10 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/route-aware-responses-continuation.js +143 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/index.js +37 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/semantic-lift.js +14 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.d.ts +3 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.js +22 -11
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/chat-process-semantics-bridge.js +59 -2
- 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
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.js +3 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.js +2 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage1_tool_governance/index.d.ts +2 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage1_tool_governance/index.js +53 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage2_finalize/index.js +4 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.js +16 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/policy/policy-engine.js +14 -4
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/process/chat-process-anthropic-alias.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/process/chat-process-anthropic-alias.js +29 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/process/chat-process-pending-tool-sync.js +38 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/process/chat-process-request-sanitizer.js +164 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/provider-response.js +27 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/response-mappers.d.ts +9 -3
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/response-mappers.js +8 -7
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/response-runtime-anthropic.js +20 -5
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/snapshot-recorder.js +1 -247
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/types/chat-envelope.d.ts +84 -4
- package/node_modules/@jsonstudio/llms/dist/conversion/pipeline/codecs/v2/responses-openai-pipeline.js +26 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/responses/responses-openai-bridge/response-payload.js +10 -9
- package/node_modules/@jsonstudio/llms/dist/conversion/responses/responses-openai-bridge/utils.js +20 -5
- package/node_modules/@jsonstudio/llms/dist/conversion/responses/responses-openai-bridge.js +88 -4
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/anthropic-message-utils-core.js +5 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/anthropic-message-utils-openai-request.js +55 -14
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/anthropic-message-utils-tool-schema.js +1 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/anthropic-message-utils.js +38 -15
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/openai-message-normalize.js +45 -6
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-conversation-store.d.ts +15 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-conversation-store.js +157 -13
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-reasoning-registry.d.ts +8 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-reasoning-registry.js +103 -9
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-response-utils.js +10 -10
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-filter-pipeline.js +59 -9
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-governor-guards.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-governor-guards.js +54 -43
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-governor.js +62 -8
- package/node_modules/@jsonstudio/llms/dist/conversion/snapshot-utils.js +121 -8
- package/node_modules/@jsonstudio/llms/dist/filters/engine.js +64 -6
- package/node_modules/@jsonstudio/llms/dist/filters/special/request-tool-list-filter.js +32 -11
- package/node_modules/@jsonstudio/llms/dist/filters/special/request-toolcalls-stringify.js +26 -1
- package/node_modules/@jsonstudio/llms/dist/filters/special/request-tools-normalize.js +46 -7
- package/node_modules/@jsonstudio/llms/dist/filters/special/response-tool-arguments-blacklist.js +10 -1
- package/node_modules/@jsonstudio/llms/dist/filters/special/response-tool-arguments-schema-converge.js +10 -1
- package/node_modules/@jsonstudio/llms/dist/filters/special/response-tool-arguments-stringify.js +30 -5
- package/node_modules/@jsonstudio/llms/dist/filters/special/response-tool-arguments-whitelist.js +10 -1
- package/node_modules/@jsonstudio/llms/dist/filters/special/tool-filter-hooks.js +16 -14
- package/node_modules/@jsonstudio/llms/dist/filters/utils/snapshot-writer.js +47 -5
- package/node_modules/@jsonstudio/llms/dist/guidance/index.js +16 -2
- package/node_modules/@jsonstudio/llms/dist/http/sse-response.js +42 -6
- package/node_modules/@jsonstudio/llms/dist/native/router_hotpath_napi.node +0 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/auth-utils.js +33 -31
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/provider-normalization.d.ts +6 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/provider-normalization.js +78 -98
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/responses-helpers.js +22 -2
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/routing-config.js +56 -3
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/streaming-helpers.js +19 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap.js +62 -293
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/classifier.js +11 -82
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/antigravity/alias-lease.js +42 -15
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/cooldown-manager.js +55 -3
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/health/index.js +66 -15
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/routing-pools/index.js +44 -8
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/routing-state/keys.d.ts +7 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/routing-state/keys.js +65 -21
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/routing-state/store.js +19 -2
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/sticky-session-manager.d.ts +9 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/sticky-session-manager.js +139 -4
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-logging.js +2 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-semantics.js +68 -59
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-governance-semantics.js +156 -157
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.js +31 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js +94 -95
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-compat-action-semantics.d.ts +0 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-compat-action-semantics.js +0 -7
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-parsers.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-parsers.js +203 -305
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-tools-post.js +35 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-tools-request.js +2 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-types.d.ts +2 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-policy-semantics.js +173 -154
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.js +106 -57
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-inbound-outbound-semantics.js +122 -114
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics-builders.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics-metadata-policy.js +100 -86
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics-passthrough.js +52 -33
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics-protocol.js +79 -62
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics-parsers.js +50 -33
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics-types.d.ts +2 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics-parsers.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics-parsers.js +161 -177
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics-outbound-tools.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics-outbound-tools.js +1 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics-parsers.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics-parsers.js +231 -286
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-router-hotpath-analysis.js +143 -164
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-router-hotpath-required-exports.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-router-hotpath-required-exports.js +8 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics-reasoning.js +57 -28
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics-responses.d.ts +8 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics-responses.js +76 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.js +1 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-virtual-router-bootstrap-providers.d.ts +24 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-virtual-router-bootstrap-providers.js +78 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-virtual-router-bootstrap-routing.d.ts +17 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-virtual-router-bootstrap-routing.js +72 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/route-utils.js +9 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/tier-selection-select.js +11 -5
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine.js +4 -39
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/features.js +199 -31
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/health-manager.js +7 -2
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/load-balancer.d.ts +3 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/load-balancer.js +47 -3
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/native-error.d.ts +11 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/native-error.js +71 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/provider-registry.js +81 -2
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/provider-runtime-ingress.d.ts +24 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/provider-runtime-ingress.js +139 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/routing-instructions/parse.js +21 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/routing-instructions/state.js +46 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/routing-instructions/types.d.ts +7 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/routing-stop-message-state-codec.js +30 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/sticky-session-store.js +44 -15
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/stop-message-state-sync.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/stop-message-state-sync.js +10 -2
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/success-center.js +39 -2
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/tool-signals.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/tool-signals.js +25 -24
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/types.d.ts +3 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/engine.js +255 -71
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/clock.js +20 -2
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/followup-request-builder.js +120 -85
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/memory-appender.d.ts +6 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/memory-appender.js +42 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-only-continue.js +1 -1
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-stop-guard.js +630 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-stop-state.d.ts +24 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-stop-state.js +606 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-stop.js +292 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/{iflow-followup.d.ts → ai-followup.d.ts} +3 -3
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/{iflow-followup.js → ai-followup.js} +76 -81
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/config.d.ts +1 -2
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/config.js +2 -6
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/runtime-utils.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/runtime-utils.js +51 -11
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto.js +5 -4
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/web-search-auto-trigger.d.ts +9 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/web-search-auto-trigger.js +91 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/web-search.js +1 -131
- package/node_modules/@jsonstudio/llms/dist/servertool/heartbeat/session-store.js +49 -18
- package/node_modules/@jsonstudio/llms/dist/servertool/registry.js +3 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/server-side-tools.d.ts +2 -2
- package/node_modules/@jsonstudio/llms/dist/servertool/server-side-tools.js +14 -10
- package/node_modules/@jsonstudio/llms/dist/servertool/strip-servertool-calls.js +2 -3
- package/node_modules/@jsonstudio/llms/dist/servertool/types.d.ts +11 -1
- package/node_modules/@jsonstudio/llms/dist/sse/json-to-sse/chat-json-to-sse-converter.js +26 -1
- package/node_modules/@jsonstudio/llms/dist/sse/json-to-sse/event-generators/chat.d.ts +2 -2
- package/node_modules/@jsonstudio/llms/dist/sse/json-to-sse/event-generators/chat.js +38 -3
- package/node_modules/@jsonstudio/llms/dist/sse/json-to-sse/sequencers/chat-sequencer.js +6 -3
- package/node_modules/@jsonstudio/llms/dist/sse/shared/chat-serializer.js +27 -3
- package/node_modules/@jsonstudio/llms/dist/sse/shared/constants.d.ts +6 -6
- package/node_modules/@jsonstudio/llms/dist/sse/shared/constants.js +3 -3
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/anthropic-sse-to-json-converter.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/anthropic-sse-to-json-converter.js +36 -1
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/builders/anthropic-response-builder.js +6 -20
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/builders/response-builder.d.ts +3 -0
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/builders/response-builder.js +125 -42
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/chat-sse-to-json-converter.js +59 -10
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/parsers/sse-parser.js +2 -0
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/responses-sse-to-json-converter.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/responses-sse-to-json-converter.js +71 -2
- package/node_modules/@jsonstudio/llms/dist/sse/types/chat-types.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/sse/types/chat-types.js +1 -1
- package/node_modules/@jsonstudio/llms/dist/sse/types/conversion-context.js +2 -2
- package/node_modules/@jsonstudio/llms/dist/sse/types/index.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/sse/types/responses-types.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/sse/types/responses-types.js +1 -1
- package/node_modules/@jsonstudio/llms/dist/telemetry/stats-center.js +34 -12
- package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/patch-text/fuzzy-match.d.ts +14 -0
- package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/patch-text/fuzzy-match.js +174 -0
- package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/patch-text/normalize.js +148 -0
- package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/structured.js +31 -2
- package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/validator.js +121 -4
- package/node_modules/@jsonstudio/llms/dist/tools/exec-command/normalize.d.ts +4 -1
- package/node_modules/@jsonstudio/llms/dist/tools/exec-command/normalize.js +31 -16
- package/node_modules/@jsonstudio/llms/dist/tools/exec-command/validator.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/tools/exec-command/validator.js +3 -1
- package/node_modules/@jsonstudio/llms/dist/tools/tool-registry.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/tools/tool-registry.js +5 -27
- package/node_modules/@jsonstudio/llms/package.json +1 -1
- package/package.json +6 -7
- package/scripts/ci/repo-sanity.mjs +1 -0
- package/scripts/ci/silent-failure-audit.mjs +112 -70
- package/scripts/cleanup-stale-server-pids.mjs +0 -6
- package/scripts/ensure-cli-command-shim.mjs +49 -15
- package/scripts/ensure-cli-executable.mjs +1 -1
- package/scripts/install-global.sh +7 -6
- package/scripts/install-release-snapshot.mjs +232 -0
- package/scripts/install-release.sh +30 -24
- package/scripts/link-global-llms-local.mjs +1 -2
- package/scripts/pack-mode.mjs +0 -4
- package/scripts/pack-rcc.mjs +17 -58
- package/scripts/run-bg.sh +0 -6
- package/scripts/run-fg-gtimeout.sh +0 -6
- package/scripts/tests/antigravity-codex-sample-pipeline-compare.mjs +1 -1
- package/scripts/tests/blackbox-rcc-vs-routecodex-antigravity.mjs +60 -39
- package/scripts/verify-install-e2e.mjs +64 -26
- package/configsamples/provider-default/qwenchat/config.v2.json +0 -53
- package/dist/providers/auth/iflow-cookie-auth.d.ts +0 -27
- package/dist/providers/auth/iflow-cookie-auth.js +0 -207
- package/dist/providers/auth/iflow-cookie-auth.js.map +0 -1
- package/dist/providers/auth/iflow-userinfo-helper.d.ts +0 -32
- package/dist/providers/auth/iflow-userinfo-helper.js +0 -81
- package/dist/providers/auth/iflow-userinfo-helper.js.map +0 -1
- package/dist/providers/core/runtime/iflow-http-provider.d.ts +0 -13
- package/dist/providers/core/runtime/iflow-http-provider.js +0 -22
- package/dist/providers/core/runtime/iflow-http-provider.js.map +0 -1
- package/dist/providers/core/runtime/provider-iflow-business-error-utils.d.ts +0 -15
- package/dist/providers/core/runtime/provider-iflow-business-error-utils.js +0 -49
- package/dist/providers/core/runtime/provider-iflow-business-error-utils.js.map +0 -1
- package/dist/providers/core/runtime/qwenchat-http-provider-helpers.d.ts +0 -89
- package/dist/providers/core/runtime/qwenchat-http-provider-helpers.js +0 -1698
- package/dist/providers/core/runtime/qwenchat-http-provider-helpers.js.map +0 -1
- package/dist/providers/core/runtime/qwenchat-http-provider.d.ts +0 -9
- package/dist/providers/core/runtime/qwenchat-http-provider.js +0 -78
- package/dist/providers/core/runtime/qwenchat-http-provider.js.map +0 -1
- package/dist/providers/core/runtime/standard-tool-text-request-transform.d.ts +0 -13
- package/dist/providers/core/runtime/standard-tool-text-request-transform.js +0 -138
- package/dist/providers/core/runtime/standard-tool-text-request-transform.js.map +0 -1
- package/dist/providers/core/runtime/transport/iflow-signer.d.ts +0 -12
- package/dist/providers/core/runtime/transport/iflow-signer.js +0 -63
- package/dist/providers/core/runtime/transport/iflow-signer.js.map +0 -1
- package/dist/providers/profile/families/iflow-profile.d.ts +0 -2
- package/dist/providers/profile/families/iflow-profile.js +0 -384
- package/dist/providers/profile/families/iflow-profile.js.map +0 -1
- package/docs/mapping-tables/iflow-to-openai.json +0 -215
- package/docs/mapping-tables/openai-to-iflow.json +0 -227
- package/docs/multi-token-auth-guide.md +0 -66
- package/docs/oauth-authentication-guide.md +0 -172
- package/docs/oauth-iflow-implementation.md +0 -157
- package/docs/release-iflow-400-gate.md +0 -58
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-cli-defaults.d.ts +0 -10
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-cli-defaults.js +0 -31
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-history-media-placeholder.d.ts +0 -7
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-history-media-placeholder.js +0 -25
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-thinking-reasoning-fill.d.ts +0 -12
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-thinking-reasoning-fill.js +0 -46
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-native-compat.d.ts +0 -6
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-native-compat.js +0 -36
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-response-body-unwrap.d.ts +0 -9
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-response-body-unwrap.js +0 -25
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-tool-text-fallback.d.ts +0 -5
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-tool-text-fallback.js +0 -29
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-web-search.d.ts +0 -18
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-web-search.js +0 -49
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/qwenchat-web-request.d.ts +0 -3
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/qwenchat-web-request.js +0 -62
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-iflow.json +0 -353
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-qwenchat-web.json +0 -47
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-health.d.ts +0 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-health.js +0 -1
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/iflow-model-error-retry.js +0 -92
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/review.js +0 -202
- package/scripts/publish-rcc.mjs +0 -81
- /package/node_modules/@jsonstudio/llms/dist/servertool/handlers/{iflow-model-error-retry.d.ts → reasoning-stop-guard.d.ts} +0 -0
- /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
|
|
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`,`
|
|
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'|'
|
|
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
|
|
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
|
|
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/
|
|
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'|'
|
|
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
|
|
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
|
-
|
|
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
|
-
├──
|
|
19
|
-
├──
|
|
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
|
-
|
|
|
49
|
-
|
|
|
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
|
-
│ - 目标文件:
|
|
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
|
-
📄
|
|
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
|
-
│ 📄 目标文件:
|
|
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
|
-
│ 📄
|
|
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
|
-
│ ├─
|
|
146
|
-
│ ├─
|
|
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
|
|
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
|
-
|
|
|
184
|
-
|
|
|
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:
|
|
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
|
|
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 个提交(架构草案 +
|
|
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 中存在
|
|
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
|
-
- 品牌识别分支(例如 `
|
|
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
|
|
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/
|
|
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/
|
|
37
|
-
| M18 | `src/providers/core/runtime/http-transport-provider.ts:1290` | `
|
|
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
|
|
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
|
|
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 子单元回滚(例如仅回滚
|
|
130
|
+
- wave 内可按 provider family 子单元回滚(例如仅回滚 antigravity)。
|
|
131
131
|
|
|
132
132
|
## 5. Wave 拆分建议
|
|
133
133
|
|
|
134
|
-
### Wave-1(iflow)
|
|
135
134
|
|
|
136
|
-
- 包含 M01~M07 + M18
|
|
137
|
-
- 核心目标:
|
|
135
|
+
- 包含 M01~M07 + M18。
|
|
136
|
+
- 核心目标:WebSearch 去重、UA/signature、business envelope 归一。
|
|
138
137
|
|
|
139
138
|
### Wave-2(antigravity/gemini-cli)
|
|
140
139
|
|