@jsonstudio/rcc 0.90.872 → 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/standard-tool-text-harvest.js +10 -2
- package/dist/providers/core/runtime/standard-tool-text-harvest.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 +176 -19
- 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/node-support.js +5 -2
- 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 +269 -12
- 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/monitor/memory-guard.mjs +207 -0
- 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 -130
- 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,341 @@
|
|
|
1
|
+
# 286.1 全局审计:Provider Failure Policy 重复实现
|
|
2
|
+
|
|
3
|
+
## 索引概要
|
|
4
|
+
- L1-L10 `summary`:审计结论总览。
|
|
5
|
+
- L12-L25 `scope`:审计范围。
|
|
6
|
+
- L27-L120 `request-executor-audit`:request-executor.ts 内部决策点清单。
|
|
7
|
+
- L122-L175 `executor-provider-audit`:executor-provider.ts 决策点清单。
|
|
8
|
+
- L177-L220 `classifier-audit`:provider-error-classifier.ts 决策点清单。
|
|
9
|
+
- L222-L260 `quota-audit`:quota-state.ts 决策点清单。
|
|
10
|
+
- L262-L310 `router-health-audit`:Virtual Router health 决策点清单。
|
|
11
|
+
- L312-L350 `overlap-summary`:交叉重复矩阵。
|
|
12
|
+
- L352-L420 `migration-targets`:迁移去向标记。
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 审计结论总览
|
|
17
|
+
|
|
18
|
+
| 维度 | 重复真源数 | 主要 owner(当前 active path) | 迁移目标 |
|
|
19
|
+
|------|-----------|------------------------------|----------|
|
|
20
|
+
| recoverability 分类 | **3** | request-executor `resolveRequestExecutorProviderErrorClassification` + executor-provider `shouldRetryProviderError` + classifier `classifyProviderError` | → ProviderFailurePolicy.classify |
|
|
21
|
+
| blocking recoverable 判定 | **2** | request-executor `isBlockingRecoverableRetryError` + `shouldApplyProviderTransportBackoff` | → ProviderFailurePolicy.isBlockingRecoverable |
|
|
22
|
+
| exclusion 决策 | **1** | request-executor `resolveProviderRetryExclusionPlan` | → ProviderFailurePolicy.decide.exclusion |
|
|
23
|
+
| health 影响 | **3** | request-executor `isHealthNeutralProviderError` + classifier `affectsHealth` + router-health event handler | → ProviderFailurePolicy.decide.health |
|
|
24
|
+
| retry 门控 | **2** | request-executor `resolveProviderRetryEligibilityPlan` + executor-provider `shouldRetryProviderError` | → ProviderFailurePolicy.decide.action |
|
|
25
|
+
| backoff 计算 | **4** | request-executor 3× consume-function + executor-provider `computeRetryDelayMs` | → ProviderFailurePolicy.backoff + 统一 consume |
|
|
26
|
+
| network error 判定 | **2** | request-executor `isNetworkTransportLikeError` + executor-provider `isNetworkTransportError` + classifier `looksLikeNetworkTransportError` | → 统一 shared predicate |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 审计范围
|
|
31
|
+
|
|
32
|
+
| 文件 | 行数 | 角色 |
|
|
33
|
+
|------|------|------|
|
|
34
|
+
| `src/server/runtime/http-server/request-executor.ts` | ~4550 | Host 执行器(orchestrator + policy helper 堆积) |
|
|
35
|
+
| `src/server/runtime/http-server/executor-provider.ts` | ~400 | Provider runtime 轮询/退避工具 |
|
|
36
|
+
| `src/providers/core/runtime/provider-error-classifier.ts` | ~230 | Provider runtime 独立分类器 |
|
|
37
|
+
| `sharedmodule/llmswitch-core/src/quota/quota-state.ts` | ~210 | Quota 冷却状态机 |
|
|
38
|
+
| `sharedmodule/llmswitch-core/src/router/virtual-router/engine/health/index.ts` | ~950 | VR health event handler |
|
|
39
|
+
| `src/providers/core/runtime/provider-error-reporter.ts` | **NOT EXISTS** | 已删除或未创建 |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## request-executor.ts 内部决策点
|
|
44
|
+
|
|
45
|
+
### A1. resolveRequestExecutorProviderErrorClassification (L895-L973)
|
|
46
|
+
|
|
47
|
+
| 字段 | 值 |
|
|
48
|
+
|------|------|
|
|
49
|
+
| 决策 | classify error → `recoverable` / `unrecoverable` / `special_400` / `undefined` |
|
|
50
|
+
| 依据 | stage → client disconnect → status 400 → CONTEXT_LENGTH_EXCEEDED → INVALID_REQUEST_ERROR → status 401/402/403 → 10个 unrecoverable code → reason substring |
|
|
51
|
+
| 独占? | **否**。与 `shouldRetryProviderError` 冲突:401 在此为 unrecoverable,在 shouldRetryProviderError 为 retryable |
|
|
52
|
+
| 迁移去向 | → `ProviderFailurePolicy.classify` |
|
|
53
|
+
|
|
54
|
+
### A2. isBlockingRecoverableRetryError (L1276-L1317)
|
|
55
|
+
|
|
56
|
+
| 字段 | 值 |
|
|
57
|
+
|------|------|
|
|
58
|
+
| 决策 | 判定错误是否为"阻塞可恢复"(需要指数退避而非快速重试) |
|
|
59
|
+
| 依据 | status 408/425/429/≥500; errorCode PROVIDER_TRAFFIC_SATURATED/HTTP_429/500/502/503/504/SSE_TO_JSON_ERROR/SSE_DECODE_ERROR/UPSTREAM_EMPTY_OUTPUT; reason fetch_failed/network/timeout |
|
|
60
|
+
| 独占? | **否**。与 `shouldApplyProviderTransportBackoff` 大量重叠(429/408/425/≥500/PROVIDER_TRAFFIC_SATURATED);与 `shouldRetryProviderError` 重叠(408/425/429/≥500) |
|
|
61
|
+
| 迁移去向 | → `ProviderFailurePolicy.isBlockingRecoverable` |
|
|
62
|
+
|
|
63
|
+
### A3. shouldBlockRetryOnCurrentProvider (L1319-L1326)
|
|
64
|
+
|
|
65
|
+
| 字段 | 值 |
|
|
66
|
+
|------|------|
|
|
67
|
+
| 决策 | 纯 1:1 委托 `isBlockingRecoverableRetryError` |
|
|
68
|
+
| 独占? | **死代码别名**,零独特逻辑 |
|
|
69
|
+
| 迁移去向 | → 删除,调用方直接用 policy |
|
|
70
|
+
|
|
71
|
+
### A4. resolveProviderRetryExclusionPlan (L2670-L2771)
|
|
72
|
+
|
|
73
|
+
| 字段 | 值 |
|
|
74
|
+
|------|------|
|
|
75
|
+
| 决策 | 是否从 route pool exclude 当前 provider |
|
|
76
|
+
| 路径 | promptTooLong→exclude; trafficSaturated→don't exclude; network→don't exclude; no-alt-candidate→don't exclude; antigravity verify/429→exclude; antigravity reauth→exclude; non-antigravity→exclude |
|
|
77
|
+
| 独占? | **是**(file 内唯一 exclusion 决策者) |
|
|
78
|
+
| 迁移去向 | → `ProviderFailurePolicy.decide.exclusion` |
|
|
79
|
+
|
|
80
|
+
### A5. resolveProviderRetryExecutionPlan (L1846-L2000)
|
|
81
|
+
|
|
82
|
+
| 字段 | 值 |
|
|
83
|
+
|------|------|
|
|
84
|
+
| 决策 | 编排器:组合 eligibility + exclusion + hold + backoff + switch |
|
|
85
|
+
| 独占? | **是**(orchestrator only);唯一独有逻辑:`unrecoverable + exclude_and_reroute + no-alt → no retry` |
|
|
86
|
+
| 迁移去向 | → orchestrator(调用 policy,不再自带逻辑) |
|
|
87
|
+
|
|
88
|
+
### A6. resolveProviderRetryEligibilityPlan (L1772-L1834)
|
|
89
|
+
|
|
90
|
+
| 字段 | 值 |
|
|
91
|
+
|------|------|
|
|
92
|
+
| 决策 | `shouldRetry` boolean |
|
|
93
|
+
| 独占? | **是**(file 内唯一门控),但最终委托 `shouldRetryProviderError` |
|
|
94
|
+
| 迁移去向 | → `ProviderFailurePolicy.decide.shouldRetry` |
|
|
95
|
+
|
|
96
|
+
### A7. resolveProviderRetryBackoffPlan (L2252-L2355)
|
|
97
|
+
|
|
98
|
+
| 字段 | 值 |
|
|
99
|
+
|------|------|
|
|
100
|
+
| 决策 | 选择 backoff scope(attempt/provider/recoverable)+ 计算延迟 |
|
|
101
|
+
| 独占? | **是**(file 内唯一 scope 选择者) |
|
|
102
|
+
| 迁移去向 | → `ProviderFailurePolicy.decide.backoff` |
|
|
103
|
+
|
|
104
|
+
### A8. resolveProviderRetrySwitchPlan (L2357-L2400)
|
|
105
|
+
|
|
106
|
+
| 字段 | 值 |
|
|
107
|
+
|------|------|
|
|
108
|
+
| 决策 | switchAction label + runtime-scope expansion |
|
|
109
|
+
| 独占? | **是** |
|
|
110
|
+
| 迁移去向 | → 保持为 orchestrator 内标签计算 |
|
|
111
|
+
|
|
112
|
+
### A9. isLastAvailableProvider429 (L975-L995)
|
|
113
|
+
|
|
114
|
+
| 字段 | 值 |
|
|
115
|
+
|------|------|
|
|
116
|
+
| 决策 | "最后一个 provider 遇到 429"检测 |
|
|
117
|
+
| 独占? | **是** |
|
|
118
|
+
| 迁移去向 | → `ProviderFailurePolicy.decide.holdOnLastProvider` |
|
|
119
|
+
|
|
120
|
+
### A10. isHealthNeutralProviderError (L1097-L1144)
|
|
121
|
+
|
|
122
|
+
| 字段 | 值 |
|
|
123
|
+
|------|------|
|
|
124
|
+
| 决策 | 错误是否**不影响** provider health |
|
|
125
|
+
| 依据 | followup/host stage → special_400 → recoverable → CLIENT_DISCONNECTED → PROVIDER_TRAFFIC_SATURATED → CLIENT_TOOL_ARGS_INVALID → network → server-tool-followup → CLIENT_INJECT_FAILED |
|
|
126
|
+
| 独占? | **否**。与 classifier `affectsHealth` 冲突(classifier 认为 500/affectsHealth=true,此函数认为 recoverable errors 不影响 health) |
|
|
127
|
+
| 迁移去向 | → `ProviderFailurePolicy.decide.health` |
|
|
128
|
+
|
|
129
|
+
### A11. shouldApplyProviderTransportBackoff (L998-L1029)
|
|
130
|
+
|
|
131
|
+
| 字段 | 值 |
|
|
132
|
+
|------|------|
|
|
133
|
+
| 决策 | 是否记录 transport backoff |
|
|
134
|
+
| 依据 | followup/host→false; network→true; status 429/408/425/≥500/PROVIDER_TRAFFIC_SATURATED→true; classification=recoverable→true |
|
|
135
|
+
| 独占? | **否**。与 isBlockingRecoverableRetryError 几乎完全重叠 |
|
|
136
|
+
| 迁移去向 | → `ProviderFailurePolicy.isBlockingRecoverable`(合并) |
|
|
137
|
+
|
|
138
|
+
### A12-A14. Backoff consume functions
|
|
139
|
+
|
|
140
|
+
| 函数 | 行 | state map | 迁移 |
|
|
141
|
+
|------|-----|-----------|------|
|
|
142
|
+
| `consumeRecoverableErrorBackoffMs` | L1387 | `recoverableErrorBackoffState` | → 统一 backoff engine |
|
|
143
|
+
| `consumeProviderScopedRetryBackoffMs` | L1497 | `recoverableErrorBackoffState`(共享!) | → 统一 backoff engine(修复 state 共享 bug) |
|
|
144
|
+
| `consumeProviderTransportBackoffMs` | L1569 | `providerTransportBackoffState`(独立) | → 统一 backoff engine |
|
|
145
|
+
|
|
146
|
+
**注意**:consumeProviderScopedRetryBackoffMs 和 consumeRecoverableErrorBackoffMs 共享同一个 state map,key 碰撞时 consecutive 计数器会互相干扰。
|
|
147
|
+
|
|
148
|
+
### A15. isNetworkTransportLikeError (L1430-L1463)
|
|
149
|
+
|
|
150
|
+
| 字段 | 值 |
|
|
151
|
+
|------|------|
|
|
152
|
+
| 决策 | 错误是否为 network/transport 类型 |
|
|
153
|
+
| 独占? | **否**。executor-provider.ts 有独立的 `isNetworkTransportError`(不同 name 但相同语义);classifier 有 `looksLikeNetworkTransportError` |
|
|
154
|
+
| 迁移去向 | → 统一 shared predicate |
|
|
155
|
+
|
|
156
|
+
### A16-A17. Backoff cap 函数
|
|
157
|
+
|
|
158
|
+
| 函数 | 行 | 范围 | cap 429 | cap default |
|
|
159
|
+
|------|-----|------|---------|-------------|
|
|
160
|
+
| `resolveRecoverableBackoffCapMs` | L1363 | recoverable | 800/4000ms | 5000/120000ms |
|
|
161
|
+
| `resolveProviderScopedRetryBackoffCapMs` | L1465 | provider-scoped | 800/30000ms | 15000/60000ms |
|
|
162
|
+
|
|
163
|
+
### A18. isProviderTrafficSaturatedRetryError (L2658-L2669)
|
|
164
|
+
|
|
165
|
+
| 字段 | 值 |
|
|
166
|
+
|------|------|
|
|
167
|
+
| 独占? | **否**。isBlockingRecoverableRetryError 重复检查 PROVIDER_TRAFFIC_SATURATED;resolveProviderRetrySwitchPlan 内联独立判断 |
|
|
168
|
+
|
|
169
|
+
### A19. applyRetryExclusionForCurrentProvider (L2646-L2656)
|
|
170
|
+
|
|
171
|
+
| 字段 | 值 |
|
|
172
|
+
|------|------|
|
|
173
|
+
| 独占? | **是**(file 内唯一 exclusion mutation point) |
|
|
174
|
+
|
|
175
|
+
### A20. hasAlternativeRouteCandidate / hasExplicitAlternativeRouteCandidate
|
|
176
|
+
|
|
177
|
+
| 函数 | 空 pool 行为 | 调用方 |
|
|
178
|
+
|------|-------------|--------|
|
|
179
|
+
| `hasAlternativeRouteCandidate` L2001 | pool 空→return `true`(permissive) | isLastAvailableProvider429, resolveProviderRetryExecutionPlan |
|
|
180
|
+
| `hasExplicitAlternativeRouteCandidate` L2804 | pool 空→return `false`(strict) | resolveProviderRetryExclusionPlan |
|
|
181
|
+
|
|
182
|
+
**语义不一致**:permissive/strict 是故意设计,但维护风险高。
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## executor-provider.ts 决策点
|
|
187
|
+
|
|
188
|
+
### B1. shouldRetryProviderError (L99-L155)
|
|
189
|
+
|
|
190
|
+
| 字段 | 值 |
|
|
191
|
+
|------|------|
|
|
192
|
+
| 决策 | 错误是否 retryable |
|
|
193
|
+
| 依据 | client disconnect→no; prompt too long→no; virtualRouterSeriesCooldown→yes; GLM 514→yes; deterministic invalid request→no; status 401/429/413/408/425→yes; ≥500→yes; error.retryable flag; network→yes |
|
|
194
|
+
| 与 A1 冲突 | **401**: 此函数→retryable; A1→unrecoverable |
|
|
195
|
+
| 迁移去向 | → `ProviderFailurePolicy.classify.retryable`(合并) |
|
|
196
|
+
|
|
197
|
+
### B2. isNetworkTransportError (L69-L97)
|
|
198
|
+
|
|
199
|
+
| 字段 | 值 |
|
|
200
|
+
|------|------|
|
|
201
|
+
| 决策 | 网络/传输错误检测 |
|
|
202
|
+
| 与 A15 关系 | **几乎相同**,code set + hints 略有差异(多了 `client network socket disconnected` 等) |
|
|
203
|
+
| 迁移去向 | → 统一 shared predicate |
|
|
204
|
+
|
|
205
|
+
### B3. computeRetryDelayMs / waitBeforeRetry (L241-L375)
|
|
206
|
+
|
|
207
|
+
| 字段 | 值 |
|
|
208
|
+
|------|------|
|
|
209
|
+
| 决策 | 计算重试延迟(含 Retry-After header 解析) |
|
|
210
|
+
| 迁移去向 | → 保持为通用 wait 工具,延迟值由 policy 产出 |
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## provider-error-classifier.ts 决策点
|
|
215
|
+
|
|
216
|
+
### C1. classifyProviderError (L65-L171)
|
|
217
|
+
|
|
218
|
+
| 字段 | 值 |
|
|
219
|
+
|------|------|
|
|
220
|
+
| 决策 | `recoverable` + `affectsHealth` 双布尔 |
|
|
221
|
+
| 与 request-executor 关系 | **独立的第二中心**。500→这里 recoverable=false,affectsHealth=true; request-executor A1→recoverable(非 special_400/unrecoverable) |
|
|
222
|
+
| 迁移去向 | → 删除或降为 thin adapter,consumes ProviderFailurePolicy |
|
|
223
|
+
|
|
224
|
+
### C2. looksLikeNetworkTransportError (L175-L190)
|
|
225
|
+
|
|
226
|
+
| 字段 | 值 |
|
|
227
|
+
|------|------|
|
|
228
|
+
| 与 A15/B2 关系 | **第三份**网络错误检测,hint 列表略有差异 |
|
|
229
|
+
| 迁移去向 | → 统一 shared predicate |
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## quota-state.ts 决策点
|
|
234
|
+
|
|
235
|
+
### D1. normalizeErrorSeries (L49-L70)
|
|
236
|
+
|
|
237
|
+
| 字段 | 值 |
|
|
238
|
+
|------|------|
|
|
239
|
+
| 决策 | 错误→ErrorSeries(E429/E5XX/ENET/EFATAL/EOTHER) |
|
|
240
|
+
| 依据 | status 429/RATE/QUOTA→E429; ≥500→E5XX; TIMEOUT/network codes→ENET; AUTH/FATAL→EFATAL |
|
|
241
|
+
| 与 request-executor 关系 | **独立分类维度**,无直接重叠(quota 是 cooldown 驱动,非 retry 决策) |
|
|
242
|
+
| 迁移去向 | → **保留**(quota 是独立消费者,消费 policy 产出的 classification) |
|
|
243
|
+
|
|
244
|
+
### D2. applyErrorEvent (L156-L210)
|
|
245
|
+
|
|
246
|
+
| 字段 | 值 |
|
|
247
|
+
|------|------|
|
|
248
|
+
| 决策 | cooldown schedule + keepPool 逻辑 |
|
|
249
|
+
| 迁移去向 | → **保留**,但 event 应携带 policy 产出的 classification |
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Virtual Router Health 决策点
|
|
254
|
+
|
|
255
|
+
### E1. handleProviderErrorEvent (health/index.ts ~L586-L620)
|
|
256
|
+
|
|
257
|
+
| 字段 | 值 |
|
|
258
|
+
|------|------|
|
|
259
|
+
| 决策 | 根据 event reason + statusCode 触发 tripProvider / cooldownProvider |
|
|
260
|
+
| 与 request-executor 关系 | **独立的 health 投影**。event 上的 reason/statusCode 由 request-executor 传入,但 VR 侧自己重新判定冷却时长 |
|
|
261
|
+
| 迁移去向 | → VR 只消费 policy 产出的 `affectsHealth` + cooldown duration,不再自行判定 |
|
|
262
|
+
|
|
263
|
+
### E2. 429 阶梯退避 (health/index.ts ~L131-L140)
|
|
264
|
+
|
|
265
|
+
| 字段 | 值 |
|
|
266
|
+
|------|------|
|
|
267
|
+
| 决策 | VR 内部维护 429 退避计数(与 host 侧 backoff 独立) |
|
|
268
|
+
| 迁移去向 | → **保留**(VR 路由决策层面的退避,与 host retry 层面的退避正交) |
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## 交叉重复矩阵
|
|
273
|
+
|
|
274
|
+
| 决策维度 | request-executor | executor-provider | classifier | quota | router-health |
|
|
275
|
+
|----------|:---:|:---:|:---:|:---:|:---:|
|
|
276
|
+
| 429 检测 | A1/A2/A11 | B1 | C1 | D1 | E1 |
|
|
277
|
+
| 5xx 检测 | A1/A2/A11 | B1 | C1 | D1 | — |
|
|
278
|
+
| 401 处理 | A1(unrecoverable) | B1(retryable) | C1(unrecoverable) | — | — |
|
|
279
|
+
| network 检测 | A15 | B2 | C2 | D1 | — |
|
|
280
|
+
| PROVIDER_TRAFFIC_SATURATED | A2/A11/A18 | — | — | — | — |
|
|
281
|
+
| affectsHealth | A10 | — | C1 | — | E1 |
|
|
282
|
+
| backoff timing | A12-A14,A16-A17 | B3 | — | D2 | E2 |
|
|
283
|
+
| exclusion | A4 | — | — | — | — |
|
|
284
|
+
| retry 门控 | A6 | B1 | — | — | — |
|
|
285
|
+
|
|
286
|
+
**关键冲突**:401 在 A1(unrecoverable) vs B1(retryable) 语义矛盾。
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## 迁移去向标记
|
|
291
|
+
|
|
292
|
+
### → ProviderFailurePolicy(新模块)
|
|
293
|
+
|
|
294
|
+
| 原函数 | 迁移后 |
|
|
295
|
+
|--------|--------|
|
|
296
|
+
| A1 resolveRequestExecutorProviderErrorClassification | → `Policy.classify` |
|
|
297
|
+
| A2 isBlockingRecoverableRetryError | → `Policy.isBlockingRecoverable` |
|
|
298
|
+
| A11 shouldApplyProviderTransportBackoff | → 合并入 `Policy.isBlockingRecoverable` |
|
|
299
|
+
| A4 resolveProviderRetryExclusionPlan | → `Policy.decide.exclusion` |
|
|
300
|
+
| A6 resolveProviderRetryEligibilityPlan | → `Policy.decide.shouldRetry` |
|
|
301
|
+
| A7 resolveProviderRetryBackoffPlan | → `Policy.decide.backoff` |
|
|
302
|
+
| A9 isLastAvailableProvider429 | → `Policy.decide.holdOnLastProvider` |
|
|
303
|
+
| A10 isHealthNeutralProviderError | → `Policy.decide.health` |
|
|
304
|
+
| B1 shouldRetryProviderError | → 合并入 `Policy.classify`(解决 401 冲突) |
|
|
305
|
+
| C1 classifyProviderError | → 删除/降级为 adapter |
|
|
306
|
+
|
|
307
|
+
### → 统一 shared predicate
|
|
308
|
+
|
|
309
|
+
| 原函数 | 统一后 |
|
|
310
|
+
|--------|--------|
|
|
311
|
+
| A15 isNetworkTransportLikeError | → `shared/is-network-error.ts` |
|
|
312
|
+
| B2 isNetworkTransportError | → 删除,用统一 |
|
|
313
|
+
| C2 looksLikeNetworkTransportError | → 删除,用统一 |
|
|
314
|
+
|
|
315
|
+
### → 删除
|
|
316
|
+
|
|
317
|
+
| 原函数 | 原因 |
|
|
318
|
+
|--------|------|
|
|
319
|
+
| A3 shouldBlockRetryOnCurrentProvider | 纯别名 |
|
|
320
|
+
| A18 isProviderTrafficSaturatedRetryError | 内联重复 |
|
|
321
|
+
| A20a/A20b hasAlternative/ExplicitAlternative | → 保留但文档化 permissive/strict 语义 |
|
|
322
|
+
|
|
323
|
+
### → 保留(独立消费者)
|
|
324
|
+
|
|
325
|
+
| 模块 | 原因 |
|
|
326
|
+
|------|------|
|
|
327
|
+
| D1/D2 quota-state | cooldown 消费者,不是 policy 产出者 |
|
|
328
|
+
| E2 VR 429 退避 | 路由层面正交于 host retry |
|
|
329
|
+
| B3 waitBeforeRetry | 通用等待工具,延迟由 policy 产出 |
|
|
330
|
+
|
|
331
|
+
### → 需修复 state 共享 bug
|
|
332
|
+
|
|
333
|
+
| 问题 | 位置 |
|
|
334
|
+
|------|------|
|
|
335
|
+
| `consumeProviderScopedRetryBackoffMs` 和 `consumeRecoverableErrorBackoffMs` 共享 `recoverableErrorBackoffState` | A13/A12 |
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
*审计完成时间:2026-04-27*
|
|
340
|
+
*审计人:RouteCodex Bot*
|
|
341
|
+
*下一步:W2 抽单一 ProviderFailurePolicy 策略块(routecodex-286.2)*
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# RouteCodex 全局审计:fallback / 静默失败(2026-04-26)
|
|
2
|
+
|
|
3
|
+
## 执行命令
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
node scripts/ci/silent-failure-audit.mjs --json
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## 结果快照
|
|
10
|
+
|
|
11
|
+
- 扫描文件数:`1295`
|
|
12
|
+
- 风险 catch 块:`510`(模式匹配,含合法 best-effort + 已修复的 MAIN_PATH_RISK)
|
|
13
|
+
- 风险 promise.catch:`15`
|
|
14
|
+
|
|
15
|
+
## 已修复的 MAIN_PATH_RISK(按语义修复,非模式计数)
|
|
16
|
+
|
|
17
|
+
### 第一轮:观测性提升(补 non-blocking 日志,保留返回语义)
|
|
18
|
+
|
|
19
|
+
1. `src/server/runtime/http-server/request-executor.ts`
|
|
20
|
+
- `previous.catch(() => undefined)` → 节流 non-blocking 日志。
|
|
21
|
+
|
|
22
|
+
2. `src/server/runtime/http-server/daemon-admin/quota-handler.ts`
|
|
23
|
+
- `getRawSnapshot` / `loadTokenPortalFingerprintSummary` / `findGoogleAccountVerificationIssue` catch 补日志。
|
|
24
|
+
|
|
25
|
+
3. `src/utils/snapshot-request-retention.ts`
|
|
26
|
+
- `readdir/stat/rm` catch 补日志(ENOENT 按边界放过)。
|
|
27
|
+
|
|
28
|
+
4. `src/server/runtime/http-server/session-scope-resolution.ts`
|
|
29
|
+
- decode/base64/json/url-params/isAlive catch 补日志。
|
|
30
|
+
|
|
31
|
+
5. `src/providers/core/runtime/deepseek-http-provider.ts`
|
|
32
|
+
- queue gate / SSE 解析 / 业务错误解析 / destroy 清理 catch 补日志。
|
|
33
|
+
|
|
34
|
+
6. `src/providers/core/config/camoufox-launcher.ts`
|
|
35
|
+
- `runCamoCliCheck/profileDirExists/loadFingerprintEnv/portalUrlParse/localCallbackParse` catch 补日志。
|
|
36
|
+
|
|
37
|
+
### 第二轮:主链语义修复(错误必须传播,不得吞掉)
|
|
38
|
+
|
|
39
|
+
7. `src/modules/llmswitch/bridge/antigravity-signature.ts`
|
|
40
|
+
- **L56 `loadAntigravitySignatureModule`**:不再永久缓存 null。瞬态 require 失败后下次调用重试。
|
|
41
|
+
- **L92 `extractAntigravityGeminiSessionId`**:`return undefined` → `throw`。错误不再静默消失。
|
|
42
|
+
- **L140 `getAntigravityLatestSignatureSessionIdForAlias`**:同上,`throw` 替代 `return undefined`。
|
|
43
|
+
- **L161 `lookupAntigravitySessionSignatureEntry`**:同上。
|
|
44
|
+
- 修复前模式:log + return undefined → 请求无签名静默发出。修复后:log + throw → 上层 provider 能看到错误。
|
|
45
|
+
|
|
46
|
+
8. `src/providers/auth/oauth-auth.ts`
|
|
47
|
+
- **L133 `validateCredentials`**:refresh 失败时 status 消息包含具体 error message。
|
|
48
|
+
- **L344 `saveToken`**:磁盘持久化失败不再吞错,`throw error`。
|
|
49
|
+
- **L364 `loadToken`**:非 ENOENT 错误(损坏 JSON / 权限)不再吞掉,`throw error`。
|
|
50
|
+
- **L389 `ensureTokenFileExists`**:文件/目录创建失败不再吞错,`throw error`。
|
|
51
|
+
|
|
52
|
+
9. `src/providers/auth/token-storage/token-persistence.ts`
|
|
53
|
+
- **L19 `readTokenFromFile`**:非 ENOENT 错误(损坏 JSON / 权限)`throw error`,不再一律返回 null。
|
|
54
|
+
- **L63 `restoreTokenFileFromBackup`**:恢复失败 `throw error`,不再只打日志。
|
|
55
|
+
|
|
56
|
+
10. `src/providers/core/strategies/oauth-auth-code-flow.ts`
|
|
57
|
+
- **L214 `authenticate.update_redirect_uri`**:redirect-URI 参数应用失败 `throw error`。
|
|
58
|
+
- **L371 `start_callback_server.parse_redirect_uri`**:redirect-URI 解析失败 `throw error`。
|
|
59
|
+
- 修复前:失败后静默 fallback 到默认 localhost:8080/oauth2callback → callback 永远收不到。
|
|
60
|
+
|
|
61
|
+
11. `sharedmodule/llmswitch-core/src/servertool/server-side-tools.ts`
|
|
62
|
+
- **L393 `replaceJsonObjectInPlace`**:移除 try/catch,改为 copy-before-delete 排序。先写新属性再删旧 key,消除半删除的中间态风险。
|
|
63
|
+
|
|
64
|
+
## 保留 BEST_EFFORT_OK 的分类(审计结论)
|
|
65
|
+
|
|
66
|
+
以下 catch 块经审查确认为合理 best-effort / 观测 / 清理路径,保留原语义:
|
|
67
|
+
|
|
68
|
+
- `antigravity-user-agent.ts`(4):磁盘缓存 / 远程版本探测 → floor version fallback 是设计意图。
|
|
69
|
+
- `http-transport-provider.ts`(4):logger 保护 / 超时保护 → 内部 logNonBlockingError 体系。
|
|
70
|
+
- `runtime-exit-forensics.ts`(4):forensic read/write/pid-check → 纯观测。
|
|
71
|
+
- `provider-response.ts`(4):model override / conversation capture / usage persistence → 不影响响应交付。
|
|
72
|
+
- `server-side-tools.ts`(其余 9):trace callback / JSON.stringify 降级 / retry loop / error rethrow → 无吞错。
|
|
73
|
+
- CLI 层 `session-inject/guardian/client/camoufox-fp/index.ts` 等 15 个 `.catch(() => null)` → CLI / 启动路径,非主链。
|
|
74
|
+
|
|
75
|
+
### 第三轮:token-daemon 主链修复
|
|
76
|
+
|
|
77
|
+
12. `src/token-daemon/token-daemon.ts`
|
|
78
|
+
- **L288 `tick.loadRouteCodexConfig`**:config 加载失败改为 `throw`。修复前:`configuredProviders = new Set()` 导致本 tick 所有 token refresh 全部跳过,零可见性。
|
|
79
|
+
- **L741 `ensurePortalEnvironment`**:移除 boolean-return wrapper(仅 `logDebug`,生产关闭)。改为直接 `await`;调用方 L395 用 `try/catch` + `console.error` + `logTokenDaemonNonBlockingError` 确保 portal 失败可见。
|
|
80
|
+
|
|
81
|
+
## 全局趋势
|
|
82
|
+
|
|
83
|
+
- 第一轮(观测性):风险 catch `538 → 510`(-28),promise.catch `22 → 15`(-7)
|
|
84
|
+
- 第二轮(语义修复):11 处 MAIN_PATH_RISK 从"吞错"改为"throw/重试/消除中间态"
|
|
85
|
+
- 第三轮(token-daemon):2 处 MAIN_PATH_RISK 改为 throw + 可见错误
|
|
86
|
+
|
|
87
|
+
## 第四轮:全局分层审计(最终扫描结果)
|
|
88
|
+
|
|
89
|
+
### 已审查确认 BEST_EFFORT_OK 的文件(全部 catch 块均为主链无关)
|
|
90
|
+
|
|
91
|
+
| 文件 | catch 数 | 理由 |
|
|
92
|
+
|------|:--------:|------|
|
|
93
|
+
| `antigravity-user-agent.ts` | 4 | 磁盘缓存 / 远程版本探测 → floor version fallback 是设计意图 |
|
|
94
|
+
| `http-transport-provider.ts` | 4 | logger 保护 / 超时保护 → 内部 logNonBlockingError 体系 |
|
|
95
|
+
| `runtime-exit-forensics.ts` | 4 | forensic read/write/pid-check → 纯观测 |
|
|
96
|
+
| `provider-response.ts` | 4 | model override / conversation capture / usage persistence → 不影响响应交付 |
|
|
97
|
+
| `server-side-tools.ts` | 9 | trace callback / JSON.stringify 降级 / retry loop / error rethrow → 无吞错 |
|
|
98
|
+
| `oauth-auth-code-flow.ts` | 17 | L214/L371 已修复;其余为 retry loop / callback / listen / cleanup → 正确 rethrow 或 best-effort |
|
|
99
|
+
| 4 × pipeline-semantics | 32 | 全部为 parser fallback(`return null` → pipeline fail-fast at validation)+ `fail('invalid payload')` |
|
|
100
|
+
| `ai-followup.ts` | 9 | process spawn/kill/cleanup/file read/logging → 非阻断 |
|
|
101
|
+
| `pending-session.ts` | 5 | file resolution / stale cleanup / pending read → best-effort |
|
|
102
|
+
| `provider-response-converter.ts` | 10 | JSON parse fallbacks / tool call recovery → 非阻断 |
|
|
103
|
+
| `sse-error-handler.ts` | 3 | error normalization → best-effort |
|
|
104
|
+
| `managed-process-probe.ts` | 7 | pid probe / kill / command read → best-effort |
|
|
105
|
+
| `session-storage-cleanup.ts` | 8 | 全部带 non-blocking 日志 → cleanup 路径 |
|
|
106
|
+
| `tmux-session-probe.ts` | 9 | 全部带 non-blocking 日志或结构化 error return → probe 路径 |
|
|
107
|
+
| `request-id-manager.ts` | 3 | persistence best-effort → 计数器回退到内存 |
|
|
108
|
+
|
|
109
|
+
### 15 个 `.catch(() => null/undefined)` 确认为非主链
|
|
110
|
+
|
|
111
|
+
CLI 层(`session-inject` / `guardian/client` / `camoufox-fp` / `index.ts`)、warmup、quota serialized-write chain、token portal → 全部为 CLI / 启动路径 / best-effort 非主链。
|
|
112
|
+
|
|
113
|
+
### 全局结论
|
|
114
|
+
|
|
115
|
+
- **已修复 MAIN_PATH_RISK:15 处**(第一轮 0 + 第二轮 11 + 第三轮 2 + replaceJsonObjectInPlace 1 + session storm backoff 1)
|
|
116
|
+
- **剩余 MAIN_PATH_RISK:0**(经 explorer + 手动逐文件审查确认)
|
|
117
|
+
- **扫描器 catchRiskCount:509**(全部为 BEST_EFFORT_OK / LOGGING_ONLY / parser-fallback)
|
|
118
|
+
|
|
119
|
+
> 注:审计扫描器按 `catch` 模式计数,不会因 throw 修复而减少计数。509 个 catch 经分层审查均不在主链上。
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# 2026-04-27 Provider Failure Policy SSOT 审计
|
|
2
|
+
|
|
3
|
+
## 索引概要
|
|
4
|
+
- L1-L8 `purpose`:审计目标与范围。
|
|
5
|
+
- L10-L28 `live-evidence`:线上证据与已确认现象。
|
|
6
|
+
- L30-L72 `duplicate-policy-centers`:重复实现清单。
|
|
7
|
+
- L74-L103 `active-path-conflicts`:当前 active path 冲突点。
|
|
8
|
+
- L105-L126 `migration-target`:每个重复点的迁移去向。
|
|
9
|
+
- L128-L139 `next-step`:下一步执行顺序。
|
|
10
|
+
|
|
11
|
+
## 目的
|
|
12
|
+
审计 RouteCodex 当前 provider 执行期错误处理链中所有“第二中心”,确认:
|
|
13
|
+
- recoverability
|
|
14
|
+
- affectsHealth
|
|
15
|
+
- retry/reroute
|
|
16
|
+
- backoff
|
|
17
|
+
|
|
18
|
+
这些事实目前分别由谁定义、哪些属于 active path、哪些会造成线上风暴。
|
|
19
|
+
|
|
20
|
+
## 线上证据
|
|
21
|
+
已确认线上日志同时存在以下现象:
|
|
22
|
+
|
|
23
|
+
1. **当前请求主链已部分修正**
|
|
24
|
+
- `switch=retry_same_provider`
|
|
25
|
+
- `decision=recoverable_backoff_same_provider`
|
|
26
|
+
- `backoffScope=recoverable`
|
|
27
|
+
|
|
28
|
+
说明 `request-executor` 对 `provider.send` 上的 `SQLITE_BUSY / new_api_error` 已不再默认走 `exclude_and_reroute`。
|
|
29
|
+
|
|
30
|
+
2. **并发 sibling 请求仍被毒化**
|
|
31
|
+
- 在 recoverable same-provider backoff 之后,仍立即出现多个:
|
|
32
|
+
- `openai-responses-unknown-unknown-*`
|
|
33
|
+
- `PROVIDER_NOT_AVAILABLE`
|
|
34
|
+
|
|
35
|
+
这证明 storm 的剩余来源不是“当前请求 retry plan”本身,而是**其他 active path 仍在把 provider health/cooldown 打坏**。
|
|
36
|
+
|
|
37
|
+
## 重复实现清单
|
|
38
|
+
|
|
39
|
+
### A. request-executor(active path)
|
|
40
|
+
文件:`src/server/runtime/http-server/request-executor.ts`
|
|
41
|
+
|
|
42
|
+
当前承载:
|
|
43
|
+
- `resolveRequestExecutorProviderErrorClassification(...)`
|
|
44
|
+
- `isHealthNeutralProviderError(...)`
|
|
45
|
+
- `resolveProviderRetryEligibilityPlan(...)`
|
|
46
|
+
- `resolveProviderRetryExclusionPlan(...)`
|
|
47
|
+
- `resolveProviderRetryBackoffPlan(...)`
|
|
48
|
+
- `resolveProviderRetryExecutionPlan(...)`
|
|
49
|
+
|
|
50
|
+
性质:**active path,当前 host 主策略中心**
|
|
51
|
+
|
|
52
|
+
问题:
|
|
53
|
+
- 它已经形成一套完整 policy,但仓内还有别处也在定义同一事实。
|
|
54
|
+
|
|
55
|
+
### B. provider runtime classifier(active path)
|
|
56
|
+
文件:`src/providers/core/runtime/provider-error-classifier.ts`
|
|
57
|
+
|
|
58
|
+
当前承载:
|
|
59
|
+
- `recoverable`
|
|
60
|
+
- `affectsHealth`
|
|
61
|
+
- `forceFatalRateLimit`
|
|
62
|
+
|
|
63
|
+
性质:**active path,第二中心**
|
|
64
|
+
|
|
65
|
+
已确认冲突:
|
|
66
|
+
- generic `500`:`recoverable=false`、`affectsHealth=true`
|
|
67
|
+
- 短期 `429`:`recoverable=true`、但 `affectsHealth=true`
|
|
68
|
+
|
|
69
|
+
这与当前全局规则冲突:
|
|
70
|
+
- recoverable => block + exponential backoff
|
|
71
|
+
- recoverable => health-neutral
|
|
72
|
+
- unrecoverable => direct return
|
|
73
|
+
|
|
74
|
+
### C. provider base-provider emit path(active path)
|
|
75
|
+
文件:`src/providers/core/runtime/base-provider.ts`
|
|
76
|
+
|
|
77
|
+
当前承载:
|
|
78
|
+
- 直接消费 `classifyProviderError(...)`
|
|
79
|
+
- 直接把 `recoverable/affectsHealth` 写入 `emitProviderError(... stage='provider.http')`
|
|
80
|
+
|
|
81
|
+
性质:**active path,第二中心的下游发射器**
|
|
82
|
+
|
|
83
|
+
风险:
|
|
84
|
+
- 即使 `request-executor` 已在 `provider.send` 把错误当 recoverable + health-neutral 处理,
|
|
85
|
+
provider runtime 仍可能通过 `provider.http` 路径把 router health 毒化。
|
|
86
|
+
|
|
87
|
+
### D. provider-error-reporter(active path)
|
|
88
|
+
文件:`src/providers/core/utils/provider-error-reporter.ts`
|
|
89
|
+
|
|
90
|
+
当前承载:
|
|
91
|
+
- 当调用方未显式给 `affectsHealth` 时,默认落到 `true`
|
|
92
|
+
- 当调用方未显式给 `recoverable` 时,回退到 `err.retryable === true`
|
|
93
|
+
|
|
94
|
+
性质:**active path,policy fallback 第二中心**
|
|
95
|
+
|
|
96
|
+
问题:
|
|
97
|
+
- reporter 不应再脑补 policy。
|
|
98
|
+
- 它应该只透传已决策好的语义,而不是“帮忙猜”。
|
|
99
|
+
|
|
100
|
+
### E. executor-provider / retry-engine(compat/残留策略点)
|
|
101
|
+
文件:
|
|
102
|
+
- `src/server/runtime/http-server/executor-provider.ts`
|
|
103
|
+
- `src/server/runtime/http-server/executor/retry-engine.ts`
|
|
104
|
+
|
|
105
|
+
当前承载:
|
|
106
|
+
- `shouldRetryProviderError(...)`
|
|
107
|
+
- `computeRetryDelayMs(...)`
|
|
108
|
+
- `waitBeforeRetry(...)`
|
|
109
|
+
|
|
110
|
+
性质:**半 active,仍参与 host 决策**
|
|
111
|
+
|
|
112
|
+
问题:
|
|
113
|
+
- “要不要重试”与“退避时间”不应散落为另一套半独立规则。
|
|
114
|
+
|
|
115
|
+
## 当前 active path 冲突点
|
|
116
|
+
|
|
117
|
+
### 冲突 1:host 认为 recoverable,provider runtime 认为 fatal/poison
|
|
118
|
+
- host `request-executor`:`SQLITE_BUSY / 500 new_api_error` 已改成 recoverable same-provider backoff
|
|
119
|
+
- provider runtime classifier:generic 500 仍当 `recoverable=false + affectsHealth=true`
|
|
120
|
+
|
|
121
|
+
结果:
|
|
122
|
+
- 当前请求本身不再 storm
|
|
123
|
+
- sibling/fresh 请求仍因 provider health 被旧路径毒化而掉进 `PROVIDER_NOT_AVAILABLE`
|
|
124
|
+
|
|
125
|
+
### 冲突 2:429 仍有 health 污染
|
|
126
|
+
- host 新规则:recoverable 应 health-neutral
|
|
127
|
+
- provider runtime 旧规则:短期 429 仍 `affectsHealth=true`
|
|
128
|
+
|
|
129
|
+
结果:
|
|
130
|
+
- 即使局部 backoff 正常,健康状态仍会被 router 看成 provider 不可用,继续制造风暴式旁路失败。
|
|
131
|
+
|
|
132
|
+
### 冲突 3:reporter 仍有默认脑补
|
|
133
|
+
- 若 caller 少传 policy 字段,reporter 仍会回退为 `affectsHealth=true`
|
|
134
|
+
|
|
135
|
+
结果:
|
|
136
|
+
- 即使上游开始收口,也可能被 reporter 再次改坏语义。
|
|
137
|
+
|
|
138
|
+
## 迁移去向
|
|
139
|
+
|
|
140
|
+
| 现有点 | 性质 | 迁移去向 |
|
|
141
|
+
| --- | --- | --- |
|
|
142
|
+
| `request-executor` classification/backoff/exclusion helpers | active | 收进单一 `ProviderFailurePolicy`,executor 只执行 decision |
|
|
143
|
+
| `provider-error-classifier.ts` | active second center | 降为 thin adapter 或删除 |
|
|
144
|
+
| `base-provider.ts` 的 `recoverable/affectsHealth` 自产逻辑 | active second center consumer | 改成只上报 transport/context 原始事实 |
|
|
145
|
+
| `provider-error-reporter.ts` 默认 `affectsHealth/recoverable` fallback | active second center | 改成 fail-closed:缺字段即调用方 bug |
|
|
146
|
+
| `executor-provider.ts` retry/backoff helpers | compat/半 active | 仅保留 sleep primitive,不再定义 policy |
|
|
147
|
+
|
|
148
|
+
## 下一步
|
|
149
|
+
1. 完成 `286.1`:以本审计为基础补充 owner / active / migration map。
|
|
150
|
+
2. 进入 `286.2`:抽单一 `ProviderFailurePolicy`。
|
|
151
|
+
3. 进入 `286.3`:`request-executor` 去脑化。
|
|
152
|
+
4. 进入 `286.4`:收掉 provider runtime classifier + reporter fallback。
|
|
153
|
+
5. 最后 `286.5`:build/install/restart/live verify。
|