@jsonstudio/rcc 0.90.876 → 0.90.1270
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -6
- package/configsamples/provider-default/ali-coding-plan/config.v2.json +6 -1
- package/configsamples/provider-default/antigravity/config.v2.json +6 -1
- package/configsamples/provider-default/ark-coding-plan/config.v2.json +7 -2
- package/configsamples/provider-default/crs/config.v2.json +6 -1
- package/configsamples/provider-default/deepseek-web/config.v2.json +6 -1
- package/configsamples/provider-default/gemini/config.v2.json +6 -1
- package/configsamples/provider-default/gemini-cli/config.v2.json +6 -1
- package/configsamples/provider-default/gemini-native/config.v2.json +6 -1
- package/configsamples/provider-default/glm/config.v2.json +7 -2
- package/configsamples/provider-default/glm-anthropic/config.v2.json +6 -1
- package/configsamples/provider-default/kimi/config.v2.json +7 -2
- package/configsamples/provider-default/lmstudio/config.v2.json +6 -1
- package/configsamples/provider-default/lmstudio-proxy/config.v2.json +6 -1
- package/configsamples/provider-default/manifest.json +0 -1
- package/configsamples/provider-default/meituan/config.v2.json +6 -1
- package/configsamples/provider-default/mimo/config.v2.json +7 -2
- package/configsamples/provider-default/modelscope/config.v2.json +7 -2
- package/configsamples/provider-default/my-openai/config.v2.json +6 -1
- package/configsamples/provider-default/nvidia/config.v2.json +7 -2
- package/configsamples/provider-default/opencode-zen-free/config.v2.json +6 -1
- package/configsamples/provider-default/openrouter/config.v2.json +6 -1
- package/configsamples/provider-default/qwen/config.v2.json +11 -1
- package/configsamples/provider-default/tab/config.v2.json +6 -1
- package/configsamples/provider-default/tabglm/config.v2.json +7 -2
- package/dist/build-info.js +2 -2
- package/dist/build-info.js.map +1 -1
- package/dist/cli/commands/camoufox.js +44 -3
- package/dist/cli/commands/camoufox.js.map +1 -1
- package/dist/cli/commands/config.js +2 -2
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/heartbeat.js +82 -27
- package/dist/cli/commands/heartbeat.js.map +1 -1
- package/dist/cli/commands/init.js +1 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/launcher/utils.js +37 -24
- package/dist/cli/commands/launcher/utils.js.map +1 -1
- package/dist/cli/commands/launcher-kernel.js +6 -3
- package/dist/cli/commands/launcher-kernel.js.map +1 -1
- package/dist/cli/commands/restart.js +102 -31
- package/dist/cli/commands/restart.js.map +1 -1
- package/dist/cli/commands/start-types.d.ts +1 -0
- package/dist/cli/commands/start-utils.d.ts +1 -0
- package/dist/cli/commands/start-utils.js +3 -0
- package/dist/cli/commands/start-utils.js.map +1 -1
- package/dist/cli/commands/start.js +217 -51
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.js +48 -9
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/config/bootstrap-provider-templates.js +1 -1
- package/dist/cli/config/bootstrap-provider-templates.js.map +1 -1
- package/dist/cli/config/init-provider-catalog.js +3 -50
- package/dist/cli/config/init-provider-catalog.js.map +1 -1
- package/dist/cli/config/init-v2-builder.js +0 -1
- package/dist/cli/config/init-v2-builder.js.map +1 -1
- package/dist/cli/guardian/client.js +40 -18
- package/dist/cli/guardian/client.js.map +1 -1
- package/dist/cli/server/port-utils.d.ts +5 -0
- package/dist/cli/server/port-utils.js +45 -31
- package/dist/cli/server/port-utils.js.map +1 -1
- package/dist/commands/camoufox-fp.js +1 -1
- package/dist/commands/camoufox-fp.js.map +1 -1
- package/dist/commands/oauth.js +48 -64
- package/dist/commands/oauth.js.map +1 -1
- package/dist/commands/provider-update-maintenance.js +4 -4
- package/dist/commands/provider-update-maintenance.js.map +1 -1
- package/dist/commands/token-daemon.js +38 -10
- package/dist/commands/token-daemon.js.map +1 -1
- package/dist/commands/validate.js +31 -3
- package/dist/commands/validate.js.map +1 -1
- package/dist/config/provider-v2-loader.d.ts +5 -2
- package/dist/config/provider-v2-loader.js +80 -26
- package/dist/config/provider-v2-loader.js.map +1 -1
- package/dist/config/routecodex-config-loader.d.ts +1 -0
- package/dist/config/routecodex-config-loader.js +18 -207
- package/dist/config/routecodex-config-loader.js.map +1 -1
- package/dist/config/virtual-router-builder.d.ts +3 -2
- package/dist/config/virtual-router-builder.js +4 -214
- package/dist/config/virtual-router-builder.js.map +1 -1
- package/dist/constants/index.d.ts +2 -3
- package/dist/constants/index.js +2 -4
- package/dist/constants/index.js.map +1 -1
- package/dist/error-handling/route-error-hub.js +1 -0
- package/dist/error-handling/route-error-hub.js.map +1 -1
- package/dist/index.js +98 -21
- package/dist/index.js.map +1 -1
- package/dist/manager/modules/quota/antigravity-quota-manager.d.ts +1 -1
- package/dist/manager/modules/quota/antigravity-quota-manager.js +21 -12
- package/dist/manager/modules/quota/antigravity-quota-manager.js.map +1 -1
- package/dist/manager/modules/quota/antigravity-quota-runtime.d.ts +1 -1
- package/dist/manager/modules/quota/antigravity-quota-runtime.js +32 -45
- package/dist/manager/modules/quota/antigravity-quota-runtime.js.map +1 -1
- package/dist/manager/modules/quota/provider-key-normalization.js +10 -1
- package/dist/manager/modules/quota/provider-key-normalization.js.map +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.d.ts +2 -1
- package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.d.ts +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.js +22 -12
- package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.js.map +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.events.js +69 -33
- package/dist/manager/modules/quota/provider-quota-daemon.events.js.map +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.js +47 -35
- package/dist/manager/modules/quota/provider-quota-daemon.js.map +1 -1
- package/dist/manager/storage/file-store.js +3 -0
- package/dist/manager/storage/file-store.js.map +1 -1
- package/dist/modules/llmswitch/bridge/antigravity-signature.js +58 -20
- package/dist/modules/llmswitch/bridge/antigravity-signature.js.map +1 -1
- package/dist/modules/llmswitch/bridge/index.d.ts +1 -1
- package/dist/modules/llmswitch/bridge/index.js +1 -1
- package/dist/modules/llmswitch/bridge/index.js.map +1 -1
- package/dist/modules/llmswitch/bridge/runtime-integrations.d.ts +22 -16
- package/dist/modules/llmswitch/bridge/runtime-integrations.js +89 -30
- package/dist/modules/llmswitch/bridge/runtime-integrations.js.map +1 -1
- package/dist/modules/llmswitch/bridge/snapshot-recorder-runtime.js +10 -9
- package/dist/modules/llmswitch/bridge/snapshot-recorder-runtime.js.map +1 -1
- package/dist/modules/llmswitch/bridge/snapshot-recorder.js +3 -0
- package/dist/modules/llmswitch/bridge/snapshot-recorder.js.map +1 -1
- package/dist/modules/llmswitch/bridge/state-integrations.d.ts +1 -0
- package/dist/modules/llmswitch/bridge/state-integrations.js +263 -51
- package/dist/modules/llmswitch/bridge/state-integrations.js.map +1 -1
- package/dist/modules/llmswitch/bridge.d.ts +2 -2
- package/dist/modules/llmswitch/bridge.js +2 -2
- package/dist/modules/llmswitch/bridge.js.map +1 -1
- package/dist/provider-sdk/provider-add-template.d.ts +1 -1
- package/dist/provider-sdk/provider-add-template.js.map +1 -1
- package/dist/provider-sdk/provider-runtime-inference.js +48 -13
- package/dist/provider-sdk/provider-runtime-inference.js.map +1 -1
- package/dist/providers/auth/deepseek-account-token-acquirer.d.ts +24 -0
- package/dist/providers/auth/deepseek-account-token-acquirer.js +42 -13
- package/dist/providers/auth/deepseek-account-token-acquirer.js.map +1 -1
- package/dist/providers/auth/oauth-auth.js +12 -5
- package/dist/providers/auth/oauth-auth.js.map +1 -1
- package/dist/providers/auth/oauth-lifecycle/path-resolver.d.ts +0 -1
- package/dist/providers/auth/oauth-lifecycle/path-resolver.js +10 -9
- package/dist/providers/auth/oauth-lifecycle/path-resolver.js.map +1 -1
- package/dist/providers/auth/oauth-lifecycle/token-helpers.js +0 -1
- package/dist/providers/auth/oauth-lifecycle/token-helpers.js.map +1 -1
- package/dist/providers/auth/oauth-lifecycle/token-io.js +18 -8
- package/dist/providers/auth/oauth-lifecycle/token-io.js.map +1 -1
- package/dist/providers/auth/oauth-lifecycle.d.ts +5 -0
- package/dist/providers/auth/oauth-lifecycle.js +370 -353
- package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
- package/dist/providers/auth/oauth-repair-env.js +0 -26
- package/dist/providers/auth/oauth-repair-env.js.map +1 -1
- package/dist/providers/auth/qwen-userinfo-helper.d.ts +11 -0
- package/dist/providers/auth/qwen-userinfo-helper.js +85 -13
- package/dist/providers/auth/qwen-userinfo-helper.js.map +1 -1
- package/dist/providers/auth/token-refresh/token-state.js +1 -4
- package/dist/providers/auth/token-refresh/token-state.js.map +1 -1
- package/dist/providers/auth/token-scanner/index.d.ts +1 -1
- package/dist/providers/auth/token-scanner/index.js +2 -2
- package/dist/providers/auth/token-storage/token-file-resolver.js +0 -3
- package/dist/providers/auth/token-storage/token-file-resolver.js.map +1 -1
- package/dist/providers/auth/token-storage/token-persistence.js +10 -3
- package/dist/providers/auth/token-storage/token-persistence.js.map +1 -1
- package/dist/providers/auth/tokenfile-auth.d.ts +0 -1
- package/dist/providers/auth/tokenfile-auth.js +23 -30
- package/dist/providers/auth/tokenfile-auth.js.map +1 -1
- package/dist/providers/core/api/provider-config.d.ts +1 -1
- package/dist/providers/core/api/provider-types.d.ts +2 -1
- package/dist/providers/core/config/camoufox-actions.js +23 -15
- package/dist/providers/core/config/camoufox-actions.js.map +1 -1
- package/dist/providers/core/config/camoufox-launcher.js +235 -121
- package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
- package/dist/providers/core/config/oauth-flows.js +23 -1
- package/dist/providers/core/config/oauth-flows.js.map +1 -1
- package/dist/providers/core/config/provider-oauth-configs.js +2 -93
- package/dist/providers/core/config/provider-oauth-configs.js.map +1 -1
- package/dist/providers/core/config/service-profiles.d.ts +0 -1
- package/dist/providers/core/config/service-profiles.js +23 -66
- package/dist/providers/core/config/service-profiles.js.map +1 -1
- package/dist/providers/core/runtime/base-provider-runtime-helpers.js +4 -1
- package/dist/providers/core/runtime/base-provider-runtime-helpers.js.map +1 -1
- package/dist/providers/core/runtime/base-provider.js +21 -11
- package/dist/providers/core/runtime/base-provider.js.map +1 -1
- package/dist/providers/core/runtime/deepseek-http-provider-helpers.d.ts +1 -0
- package/dist/providers/core/runtime/deepseek-http-provider-helpers.js +28 -0
- package/dist/providers/core/runtime/deepseek-http-provider-helpers.js.map +1 -1
- package/dist/providers/core/runtime/deepseek-http-provider.d.ts +0 -2
- package/dist/providers/core/runtime/deepseek-http-provider.js +3 -33
- package/dist/providers/core/runtime/deepseek-http-provider.js.map +1 -1
- package/dist/providers/core/runtime/http-request-executor.d.ts +1 -0
- package/dist/providers/core/runtime/http-request-executor.js +131 -47
- package/dist/providers/core/runtime/http-request-executor.js.map +1 -1
- package/dist/providers/core/runtime/http-transport-provider.d.ts +5 -5
- package/dist/providers/core/runtime/http-transport-provider.js +97 -38
- package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
- package/dist/providers/core/runtime/openai-responses-sdk-transport.js +2 -1
- package/dist/providers/core/runtime/openai-responses-sdk-transport.js.map +1 -1
- package/dist/providers/core/runtime/provider-error-classifier.js +19 -126
- package/dist/providers/core/runtime/provider-error-classifier.js.map +1 -1
- package/dist/providers/core/runtime/provider-factory-helpers.d.ts +1 -0
- package/dist/providers/core/runtime/provider-factory-helpers.js +8 -12
- package/dist/providers/core/runtime/provider-factory-helpers.js.map +1 -1
- package/dist/providers/core/runtime/provider-factory.js +2 -9
- package/dist/providers/core/runtime/provider-factory.js.map +1 -1
- package/dist/providers/core/runtime/provider-failure-policy.d.ts +135 -0
- package/dist/providers/core/runtime/provider-failure-policy.js +685 -0
- package/dist/providers/core/runtime/provider-failure-policy.js.map +1 -0
- package/dist/providers/core/runtime/provider-family-profile-utils.d.ts +0 -10
- package/dist/providers/core/runtime/provider-family-profile-utils.js +0 -28
- package/dist/providers/core/runtime/provider-family-profile-utils.js.map +1 -1
- package/dist/providers/core/runtime/provider-http-executor-utils.js +40 -1
- package/dist/providers/core/runtime/provider-http-executor-utils.js.map +1 -1
- package/dist/providers/core/runtime/provider-request-header-orchestrator.d.ts +0 -2
- package/dist/providers/core/runtime/provider-request-header-orchestrator.js +35 -8
- package/dist/providers/core/runtime/provider-request-header-orchestrator.js.map +1 -1
- package/dist/providers/core/runtime/provider-response-postprocessor.js +3 -23
- package/dist/providers/core/runtime/provider-response-postprocessor.js.map +1 -1
- package/dist/providers/core/runtime/provider-runtime-utils.js +4 -1
- package/dist/providers/core/runtime/provider-runtime-utils.js.map +1 -1
- package/dist/providers/core/runtime/provider-startup-tasks.js +18 -2
- package/dist/providers/core/runtime/provider-startup-tasks.js.map +1 -1
- package/dist/providers/core/runtime/responses-provider-helpers.d.ts +1 -0
- package/dist/providers/core/runtime/responses-provider-helpers.js +11 -12
- package/dist/providers/core/runtime/responses-provider-helpers.js.map +1 -1
- package/dist/providers/core/runtime/responses-provider.js +15 -10
- package/dist/providers/core/runtime/responses-provider.js.map +1 -1
- package/dist/providers/core/runtime/transport/auth-provider-factory.d.ts +0 -1
- package/dist/providers/core/runtime/transport/auth-provider-factory.js +1 -15
- package/dist/providers/core/runtime/transport/auth-provider-factory.js.map +1 -1
- package/dist/providers/core/runtime/transport/index.d.ts +0 -1
- package/dist/providers/core/runtime/transport/index.js +0 -1
- package/dist/providers/core/runtime/transport/index.js.map +1 -1
- package/dist/providers/core/runtime/transport/oauth-recovery-handler.d.ts +2 -0
- package/dist/providers/core/runtime/transport/oauth-recovery-handler.js +76 -5
- package/dist/providers/core/runtime/transport/oauth-recovery-handler.js.map +1 -1
- package/dist/providers/core/runtime/transport/request-header-builder.d.ts +0 -1
- package/dist/providers/core/runtime/transport/request-header-builder.js +1 -7
- package/dist/providers/core/runtime/transport/request-header-builder.js.map +1 -1
- package/dist/providers/core/runtime/transport/runtime-detector.d.ts +0 -2
- package/dist/providers/core/runtime/transport/runtime-detector.js +0 -20
- package/dist/providers/core/runtime/transport/runtime-detector.js.map +1 -1
- package/dist/providers/core/runtime/transport/session-header-utils.d.ts +6 -0
- package/dist/providers/core/runtime/transport/session-header-utils.js +61 -2
- package/dist/providers/core/runtime/transport/session-header-utils.js.map +1 -1
- package/dist/providers/core/runtime/vercel-ai-sdk/anthropic-sdk-request-exec.js +2 -1
- package/dist/providers/core/runtime/vercel-ai-sdk/anthropic-sdk-request-exec.js.map +1 -1
- package/dist/providers/core/runtime/vercel-ai-sdk/openai-sdk-transport.js +2 -1
- package/dist/providers/core/runtime/vercel-ai-sdk/openai-sdk-transport.js.map +1 -1
- package/dist/providers/core/strategies/oauth-auth-code-flow.d.ts +1 -4
- package/dist/providers/core/strategies/oauth-auth-code-flow.js +26 -84
- package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
- package/dist/providers/core/strategies/oauth-device-flow.d.ts +2 -0
- package/dist/providers/core/strategies/oauth-device-flow.js +43 -8
- package/dist/providers/core/strategies/oauth-device-flow.js.map +1 -1
- package/dist/providers/core/utils/http-client.d.ts +7 -5
- package/dist/providers/core/utils/http-client.js +108 -33
- package/dist/providers/core/utils/http-client.js.map +1 -1
- package/dist/providers/core/utils/provider-error-reporter.d.ts +2 -2
- package/dist/providers/core/utils/provider-error-reporter.js +9 -85
- package/dist/providers/core/utils/provider-error-reporter.js.map +1 -1
- package/dist/providers/core/utils/provider-type-utils.js +1 -3
- package/dist/providers/core/utils/provider-type-utils.js.map +1 -1
- package/dist/providers/core/utils/qwen-client-fingerprint.d.ts +15 -0
- package/dist/providers/core/utils/qwen-client-fingerprint.js +47 -0
- package/dist/providers/core/utils/qwen-client-fingerprint.js.map +1 -0
- package/dist/providers/core/utils/snapshot-writer.d.ts +3 -0
- package/dist/providers/core/utils/snapshot-writer.js +385 -26
- package/dist/providers/core/utils/snapshot-writer.js.map +1 -1
- package/dist/providers/profile/families/qwen-profile.js +285 -22
- package/dist/providers/profile/families/qwen-profile.js.map +1 -1
- package/dist/providers/profile/profile-registry.js +0 -2
- package/dist/providers/profile/profile-registry.js.map +1 -1
- package/dist/providers/profile/provider-directory.js +0 -1
- package/dist/providers/profile/provider-directory.js.map +1 -1
- package/dist/providers/profile/provider-profile-loader.js +1 -1
- package/dist/providers/profile/provider-profile-loader.js.map +1 -1
- package/dist/server/handlers/chat-handler.js +6 -5
- package/dist/server/handlers/chat-handler.js.map +1 -1
- package/dist/server/handlers/config-admin-handler.js +44 -69
- package/dist/server/handlers/config-admin-handler.js.map +1 -1
- package/dist/server/handlers/handler-response-utils.js +190 -27
- package/dist/server/handlers/handler-response-utils.js.map +1 -1
- package/dist/server/handlers/handler-utils.d.ts +3 -0
- package/dist/server/handlers/handler-utils.js +72 -0
- package/dist/server/handlers/handler-utils.js.map +1 -1
- package/dist/server/handlers/images-handler.js +7 -7
- package/dist/server/handlers/images-handler.js.map +1 -1
- package/dist/server/handlers/messages-handler.js +6 -5
- package/dist/server/handlers/messages-handler.js.map +1 -1
- package/dist/server/handlers/responses-handler.js +32 -14
- package/dist/server/handlers/responses-handler.js.map +1 -1
- package/dist/server/handlers/sse-dispatcher.js +55 -13
- package/dist/server/handlers/sse-dispatcher.js.map +1 -1
- package/dist/server/handlers/types.d.ts +12 -0
- package/dist/server/runtime/http-server/daemon-admin/auth-handler.js +5 -2
- package/dist/server/runtime/http-server/daemon-admin/auth-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/control-handler.js +62 -18
- package/dist/server/runtime/http-server/daemon-admin/control-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler-utils.js +1 -1
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler-utils.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +9 -9
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js +36 -10
- package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +11 -11
- package/dist/server/runtime/http-server/daemon-admin/providers-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/quota-handler.js +49 -8
- package/dist/server/runtime/http-server/daemon-admin/quota-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin-routes.d.ts +1 -0
- package/dist/server/runtime/http-server/daemon-admin-routes.js +46 -0
- package/dist/server/runtime/http-server/daemon-admin-routes.js.map +1 -1
- package/dist/server/runtime/http-server/executor/client-injection-flow.js +2 -0
- package/dist/server/runtime/http-server/executor/client-injection-flow.js.map +1 -1
- package/dist/server/runtime/http-server/executor/log-rollup.d.ts +38 -0
- package/dist/server/runtime/http-server/executor/log-rollup.js +775 -0
- package/dist/server/runtime/http-server/executor/log-rollup.js.map +1 -0
- package/dist/server/runtime/http-server/executor/provider-response-converter.js +654 -281
- package/dist/server/runtime/http-server/executor/provider-response-converter.js.map +1 -1
- package/dist/server/runtime/http-server/executor/provider-response-utils.js +34 -3
- package/dist/server/runtime/http-server/executor/provider-response-utils.js.map +1 -1
- package/dist/server/runtime/http-server/executor/provider-runtime-resolver.js +14 -68
- package/dist/server/runtime/http-server/executor/provider-runtime-resolver.js.map +1 -1
- package/dist/server/runtime/http-server/executor/request-executor-core-utils.js +26 -2
- package/dist/server/runtime/http-server/executor/request-executor-core-utils.js.map +1 -1
- package/dist/server/runtime/http-server/executor/request-retry-helpers.js +20 -2
- package/dist/server/runtime/http-server/executor/request-retry-helpers.js.map +1 -1
- package/dist/server/runtime/http-server/executor/servertool-adapter-context.d.ts +10 -0
- package/dist/server/runtime/http-server/executor/servertool-adapter-context.js +120 -0
- package/dist/server/runtime/http-server/executor/servertool-adapter-context.js.map +1 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-dispatch.d.ts +35 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-dispatch.js +101 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-dispatch.js.map +1 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-error.d.ts +46 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-error.js +127 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-error.js.map +1 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-metadata.d.ts +7 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-metadata.js +186 -0
- package/dist/server/runtime/http-server/executor/servertool-followup-metadata.js.map +1 -0
- package/dist/server/runtime/http-server/executor/servertool-request-normalizer.d.ts +2 -0
- package/dist/server/runtime/http-server/executor/servertool-request-normalizer.js +56 -0
- package/dist/server/runtime/http-server/executor/servertool-request-normalizer.js.map +1 -0
- package/dist/server/runtime/http-server/executor/servertool-response-normalizer.d.ts +8 -0
- package/dist/server/runtime/http-server/executor/servertool-response-normalizer.js +31 -0
- package/dist/server/runtime/http-server/executor/servertool-response-normalizer.js.map +1 -0
- package/dist/server/runtime/http-server/executor/servertool-runtime-log.d.ts +8 -0
- package/dist/server/runtime/http-server/executor/servertool-runtime-log.js +33 -0
- package/dist/server/runtime/http-server/executor/servertool-runtime-log.js.map +1 -0
- package/dist/server/runtime/http-server/executor/sse-error-handler.js +37 -0
- package/dist/server/runtime/http-server/executor/sse-error-handler.js.map +1 -1
- package/dist/server/runtime/http-server/executor/usage-aggregator.js +32 -2
- package/dist/server/runtime/http-server/executor/usage-aggregator.js.map +1 -1
- package/dist/server/runtime/http-server/executor/usage-logger.d.ts +12 -0
- package/dist/server/runtime/http-server/executor/usage-logger.js +56 -1
- package/dist/server/runtime/http-server/executor/usage-logger.js.map +1 -1
- package/dist/server/runtime/http-server/executor-metadata.d.ts +15 -0
- package/dist/server/runtime/http-server/executor-metadata.js +60 -18
- package/dist/server/runtime/http-server/executor-metadata.js.map +1 -1
- package/dist/server/runtime/http-server/executor-provider.d.ts +2 -0
- package/dist/server/runtime/http-server/executor-provider.js +88 -205
- package/dist/server/runtime/http-server/executor-provider.js.map +1 -1
- package/dist/server/runtime/http-server/executor-response.js +30 -149
- package/dist/server/runtime/http-server/executor-response.js.map +1 -1
- package/dist/server/runtime/http-server/http-server-bootstrap.js +53 -17
- package/dist/server/runtime/http-server/http-server-bootstrap.js.map +1 -1
- package/dist/server/runtime/http-server/http-server-legacy-pipeline.js +28 -1
- package/dist/server/runtime/http-server/http-server-legacy-pipeline.js.map +1 -1
- package/dist/server/runtime/http-server/http-server-lifecycle.js +17 -4
- package/dist/server/runtime/http-server/http-server-lifecycle.js.map +1 -1
- package/dist/server/runtime/http-server/http-server-runtime-providers.js +42 -13
- package/dist/server/runtime/http-server/http-server-runtime-providers.js.map +1 -1
- package/dist/server/runtime/http-server/http-server-runtime-setup.js +40 -2
- package/dist/server/runtime/http-server/http-server-runtime-setup.js.map +1 -1
- package/dist/server/runtime/http-server/hub-shadow-compare.js +8 -4
- package/dist/server/runtime/http-server/hub-shadow-compare.js.map +1 -1
- package/dist/server/runtime/http-server/managed-process-probe.js +30 -4
- package/dist/server/runtime/http-server/managed-process-probe.js.map +1 -1
- package/dist/server/runtime/http-server/middleware.js +32 -4
- package/dist/server/runtime/http-server/middleware.js.map +1 -1
- package/dist/server/runtime/http-server/provider-traffic-governor.d.ts +45 -1
- package/dist/server/runtime/http-server/provider-traffic-governor.js +697 -111
- package/dist/server/runtime/http-server/provider-traffic-governor.js.map +1 -1
- package/dist/server/runtime/http-server/provider-utils.js +2 -6
- package/dist/server/runtime/http-server/provider-utils.js.map +1 -1
- package/dist/server/runtime/http-server/request-activity-tracker.d.ts +4 -0
- package/dist/server/runtime/http-server/request-activity-tracker.js +54 -11
- package/dist/server/runtime/http-server/request-activity-tracker.js.map +1 -1
- package/dist/server/runtime/http-server/request-executor.d.ts +247 -0
- package/dist/server/runtime/http-server/request-executor.js +2444 -334
- package/dist/server/runtime/http-server/request-executor.js.map +1 -1
- package/dist/server/runtime/http-server/routes.js +59 -16
- package/dist/server/runtime/http-server/routes.js.map +1 -1
- package/dist/server/runtime/http-server/runtime-manager.js +0 -15
- package/dist/server/runtime/http-server/runtime-manager.js.map +1 -1
- package/dist/server/runtime/http-server/session-client-registry-utils.js +46 -10
- package/dist/server/runtime/http-server/session-client-registry-utils.js.map +1 -1
- package/dist/server/runtime/http-server/session-client-registry.js +22 -4
- package/dist/server/runtime/http-server/session-client-registry.js.map +1 -1
- package/dist/server/runtime/http-server/session-client-routes.js +40 -18
- package/dist/server/runtime/http-server/session-client-routes.js.map +1 -1
- package/dist/server/runtime/http-server/session-dir.js +35 -2
- package/dist/server/runtime/http-server/session-dir.js.map +1 -1
- package/dist/server/runtime/http-server/session-scope-resolution.js +38 -9
- package/dist/server/runtime/http-server/session-scope-resolution.js.map +1 -1
- package/dist/server/runtime/http-server/session-storage-cleanup.js +64 -27
- package/dist/server/runtime/http-server/session-storage-cleanup.js.map +1 -1
- package/dist/server/runtime/http-server/stats-manager.d.ts +5 -0
- package/dist/server/runtime/http-server/stats-manager.js +138 -6
- package/dist/server/runtime/http-server/stats-manager.js.map +1 -1
- package/dist/server/runtime/http-server/tmux-injection-history.js +30 -4
- package/dist/server/runtime/http-server/tmux-injection-history.js.map +1 -1
- package/dist/server/runtime/http-server/tmux-session-probe.d.ts +3 -1
- package/dist/server/runtime/http-server/tmux-session-probe.js +198 -9
- package/dist/server/runtime/http-server/tmux-session-probe.js.map +1 -1
- package/dist/server/utils/client-connection-state.d.ts +1 -0
- package/dist/server/utils/client-connection-state.js +45 -5
- package/dist/server/utils/client-connection-state.js.map +1 -1
- package/dist/server/utils/finish-reason.js +61 -2
- package/dist/server/utils/finish-reason.js.map +1 -1
- package/dist/server/utils/http-error-mapper.d.ts +4 -0
- package/dist/server/utils/http-error-mapper.js +31 -6
- package/dist/server/utils/http-error-mapper.js.map +1 -1
- package/dist/server/utils/stage-logger.js +42 -13
- package/dist/server/utils/stage-logger.js.map +1 -1
- package/dist/server-lifecycle/port-utils.js +6 -2
- package/dist/server-lifecycle/port-utils.js.map +1 -1
- package/dist/token-daemon/index.js +44 -15
- package/dist/token-daemon/index.js.map +1 -1
- package/dist/token-daemon/leader-lock.js +65 -7
- package/dist/token-daemon/leader-lock.js.map +1 -1
- package/dist/token-daemon/provider-registry.js +1 -1
- package/dist/token-daemon/provider-registry.js.map +1 -1
- package/dist/token-daemon/server-utils.d.ts +11 -0
- package/dist/token-daemon/server-utils.js +71 -18
- package/dist/token-daemon/server-utils.js.map +1 -1
- package/dist/token-daemon/token-daemon.d.ts +0 -1
- package/dist/token-daemon/token-daemon.js +81 -63
- package/dist/token-daemon/token-daemon.js.map +1 -1
- package/dist/token-daemon/token-types.d.ts +1 -1
- package/dist/token-daemon/token-types.js +0 -1
- package/dist/token-daemon/token-types.js.map +1 -1
- package/dist/token-daemon/token-utils.js +4 -2
- package/dist/token-daemon/token-utils.js.map +1 -1
- package/dist/tools/provider-update/fetch-models.js +1 -5
- package/dist/tools/provider-update/fetch-models.js.map +1 -1
- package/dist/utils/error-handler-registry.js +50 -13
- package/dist/utils/error-handler-registry.js.map +1 -1
- package/dist/utils/errorsamples.d.ts +3 -1
- package/dist/utils/errorsamples.js +198 -14
- package/dist/utils/errorsamples.js.map +1 -1
- package/dist/utils/http-health-probe.d.ts +42 -0
- package/dist/utils/http-health-probe.js +231 -0
- package/dist/utils/http-health-probe.js.map +1 -0
- package/dist/utils/managed-server-pids.js +2 -2
- package/dist/utils/managed-server-pids.js.map +1 -1
- package/dist/utils/module-config-reader.js +11 -1
- package/dist/utils/module-config-reader.js.map +1 -1
- package/dist/utils/runtime-package-root.d.ts +2 -0
- package/dist/utils/runtime-package-root.js +47 -0
- package/dist/utils/runtime-package-root.js.map +1 -0
- package/dist/utils/snapshot-local-disk-gate.d.ts +3 -0
- package/dist/utils/snapshot-local-disk-gate.js +50 -0
- package/dist/utils/snapshot-local-disk-gate.js.map +1 -0
- package/dist/utils/snapshot-payload-guard.d.ts +1 -0
- package/dist/utils/snapshot-payload-guard.js +234 -0
- package/dist/utils/snapshot-payload-guard.js.map +1 -0
- package/dist/utils/snapshot-request-retention.d.ts +3 -0
- package/dist/utils/snapshot-request-retention.js +128 -0
- package/dist/utils/snapshot-request-retention.js.map +1 -0
- package/dist/utils/snapshot-stage-policy.d.ts +3 -0
- package/dist/utils/snapshot-stage-policy.js +111 -0
- package/dist/utils/snapshot-stage-policy.js.map +1 -0
- package/dist/utils/snapshot-writer.js +124 -127
- package/dist/utils/snapshot-writer.js.map +1 -1
- package/docs/CHAT_PROCESS_PROTOCOL_AND_PIPELINE.md +4 -0
- package/docs/CONFIG_ARCHITECTURE.md +2 -2
- package/docs/INSTALLATION_AND_QUICKSTART.md +5 -5
- package/docs/OAUTH.md +2 -5
- package/docs/PORTS.md +1 -1
- package/docs/PROVIDERS_BUILTIN.md +1 -5
- package/docs/PROVIDER_TYPES.md +1 -1
- package/docs/agent-routing/10-runtime-ssot-routing.md +4 -0
- package/docs/agent-routing/20-build-test-release-routing.md +2 -2
- package/docs/agent-routing/30-servertool-lifecycle-routing.md +2 -0
- package/docs/agent-routing/40-task-memory-routing.md +22 -2
- package/docs/audit/286.1-provider-failure-policy-audit.md +341 -0
- package/docs/audits/2026-04-26-fallback-silent-failure-audit.md +119 -0
- package/docs/audits/2026-04-27-provider-failure-policy-ssot-audit.md +153 -0
- package/docs/chat-process-continuation-state-contract.md +196 -0
- package/docs/chat-semantic-expansion-plan.md +2 -0
- package/docs/daemon-admin-api-design.md +9 -9
- package/docs/design/provider-failure-policy-ssot.md +215 -0
- package/docs/design/reasoning-stop-lifecycle.md +90 -0
- package/docs/design/servertool-unified-skeleton.md +202 -0
- package/docs/design/websearch-servertool-orchestration.md +190 -0
- package/docs/error-handling-v2.md +120 -11
- package/docs/protocol-compatibility-matrix.md +147 -0
- package/docs/providers/provider-composite-design.md +4 -5
- package/docs/providers/provider-composite-testing.md +1 -1
- package/docs/providers/provider-type-only-migration.md +2 -15
- package/docs/refactoring/compatibility-v2-architecture-design.md +1 -3
- package/docs/refactoring/host-164.3-responsibility-migration.md +0 -1
- package/docs/routing-instructions.md +42 -1
- package/docs/stop-message-auto.md +0 -1
- package/docs/token-refresh-daemon-plan.md +14 -14
- package/docs/v2-architecture/IMPLEMENTATION-ROADMAP.md +1 -1
- package/docs/v2-architecture/PROVIDER-V2-CHANGESET-RELEASE-CHECKLIST.md +1 -9
- package/docs/v2-architecture/PROVIDER-V2-LAYERING-ADR-DRAFT.md +3 -4
- package/docs/v2-architecture/PROVIDER-V2-MIGRATION-MATRIX-DRAFT.md +4 -15
- package/docs/v2-architecture/PROVIDER-V2-PHASED-MIGRATION-ROLLBACK-DRAFT.md +4 -5
- package/docs/v2-architecture/PROVIDER-V2-PROFILE-API-REGISTRY-DRAFT.md +4 -4
- package/docs/v2-architecture/PROVIDER-V2-REFACTOR-OVERVIEW-DRAFT.md +1 -2
- package/docs/v2-architecture/PROVIDER-V2-VERIFICATION-MATRIX-DRAFT.md +2 -2
- package/node_modules/@jsonstudio/llms/dist/config-unified/unified-config.js +36 -10
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/deepseek-web-request.js +7 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/deepseek-web-response.js +2 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/antigravity-session-signature.js +33 -17
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/header-policies.d.ts +20 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/header-policies.js +79 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/policy-overrides.d.ts +16 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/policy-overrides.js +27 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/provider-resolver.d.ts +26 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/provider-resolver.js +59 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/registry.d.ts +35 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/registry.js +154 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/types.d.ts +75 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profile-registry/types.js +8 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/anthropic-claude-code.json +13 -7
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-claude-code.json +13 -8
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-deepseek-web.json +37 -8
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-qwen.json +48 -11
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/compat-passthrough.json +6 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/provider-resolution-config.json +24 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-mapper-config.js +0 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-mapper-from-chat.js +54 -7
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-mapper-to-chat.js +15 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-semantics-audit.d.ts +11 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/anthropic-semantics-audit.js +16 -30
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapper-config.js +0 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapper-from-chat.js +15 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapping-audit.d.ts +10 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapping-audit.js +9 -30
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/protocol-mapping-audit.d.ts +43 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/protocol-mapping-audit.js +148 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper-from-chat.js +16 -6
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper-helpers.d.ts +2 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper-helpers.js +65 -3
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper-to-chat.js +1 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper.js +1 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/compat/compat-types.d.ts +14 -154
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-chat-process-request-utils.d.ts +6 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-chat-process-request-utils.js +83 -3
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-chat-process-entry.js +6 -5
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-request-stage-inbound.d.ts +0 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-request-stage-inbound.js +9 -5
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-request-stage-provider-payload.js +132 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-execute-request-stage.js +0 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-heavy-input-fastpath.d.ts +4 -22
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-heavy-input-fastpath.js +109 -139
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-max-tokens-policy.js +40 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-route-and-outbound.d.ts +0 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline-route-and-outbound.js +19 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline.d.ts +0 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline.js +45 -43
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/route-aware-responses-continuation.d.ts +10 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/route-aware-responses-continuation.js +143 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/index.js +37 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/semantic-lift.js +14 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.d.ts +3 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.js +22 -11
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/chat-process-semantics-bridge.js +59 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.js +3 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.js +2 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage1_tool_governance/index.d.ts +2 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage1_tool_governance/index.js +53 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage2_finalize/index.js +4 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.js +16 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/policy/policy-engine.js +14 -4
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/process/chat-process-anthropic-alias.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/process/chat-process-anthropic-alias.js +29 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/process/chat-process-pending-tool-sync.js +38 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/process/chat-process-request-sanitizer.js +164 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/provider-response.js +27 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/response-mappers.d.ts +9 -3
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/response-mappers.js +8 -7
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/response-runtime-anthropic.js +20 -5
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/snapshot-recorder.js +1 -247
- package/node_modules/@jsonstudio/llms/dist/conversion/hub/types/chat-envelope.d.ts +84 -4
- package/node_modules/@jsonstudio/llms/dist/conversion/pipeline/codecs/v2/responses-openai-pipeline.js +26 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/responses/responses-openai-bridge/response-payload.js +10 -9
- package/node_modules/@jsonstudio/llms/dist/conversion/responses/responses-openai-bridge/utils.js +20 -5
- package/node_modules/@jsonstudio/llms/dist/conversion/responses/responses-openai-bridge.js +88 -4
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/anthropic-message-utils-core.js +5 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/anthropic-message-utils-openai-request.js +55 -14
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/anthropic-message-utils-tool-schema.js +1 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/anthropic-message-utils.js +38 -15
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/openai-message-normalize.js +45 -6
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-conversation-store.d.ts +15 -0
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-conversation-store.js +157 -13
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-reasoning-registry.d.ts +8 -2
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-reasoning-registry.js +103 -9
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-response-utils.js +10 -10
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-filter-pipeline.js +59 -9
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-governor-guards.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-governor-guards.js +54 -43
- package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-governor.js +62 -8
- package/node_modules/@jsonstudio/llms/dist/conversion/snapshot-utils.js +121 -8
- package/node_modules/@jsonstudio/llms/dist/filters/engine.js +64 -6
- package/node_modules/@jsonstudio/llms/dist/filters/special/request-tool-list-filter.js +32 -11
- package/node_modules/@jsonstudio/llms/dist/filters/special/request-toolcalls-stringify.js +26 -1
- package/node_modules/@jsonstudio/llms/dist/filters/special/request-tools-normalize.js +46 -7
- package/node_modules/@jsonstudio/llms/dist/filters/special/response-tool-arguments-blacklist.js +10 -1
- package/node_modules/@jsonstudio/llms/dist/filters/special/response-tool-arguments-schema-converge.js +10 -1
- package/node_modules/@jsonstudio/llms/dist/filters/special/response-tool-arguments-stringify.js +30 -5
- package/node_modules/@jsonstudio/llms/dist/filters/special/response-tool-arguments-whitelist.js +10 -1
- package/node_modules/@jsonstudio/llms/dist/filters/special/tool-filter-hooks.js +16 -14
- package/node_modules/@jsonstudio/llms/dist/filters/utils/snapshot-writer.js +47 -5
- package/node_modules/@jsonstudio/llms/dist/guidance/index.js +16 -2
- package/node_modules/@jsonstudio/llms/dist/http/sse-response.js +42 -6
- package/node_modules/@jsonstudio/llms/dist/native/router_hotpath_napi.node +0 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/auth-utils.js +33 -31
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/provider-normalization.d.ts +6 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/provider-normalization.js +78 -98
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/responses-helpers.js +22 -2
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/routing-config.js +56 -3
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap/streaming-helpers.js +19 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap.js +62 -293
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/classifier.js +11 -82
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/antigravity/alias-lease.js +42 -15
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/cooldown-manager.js +55 -3
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/health/index.js +66 -15
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/routing-pools/index.js +44 -8
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/routing-state/keys.d.ts +7 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/routing-state/keys.js +65 -21
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/routing-state/store.js +19 -2
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/sticky-session-manager.d.ts +9 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine/sticky-session-manager.js +139 -4
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-logging.js +2 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-semantics.js +68 -59
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-governance-semantics.js +156 -157
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.js +31 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js +94 -95
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-compat-action-semantics.d.ts +0 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-compat-action-semantics.js +0 -7
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-parsers.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-parsers.js +203 -305
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-tools-post.js +35 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-tools-request.js +2 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics-types.d.ts +2 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-bridge-policy-semantics.js +173 -154
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.js +106 -57
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-inbound-outbound-semantics.js +122 -114
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics-builders.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics-metadata-policy.js +100 -86
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics-passthrough.js +52 -33
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics-protocol.js +79 -62
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics-parsers.js +50 -33
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics-types.d.ts +2 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics-parsers.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics-parsers.js +161 -177
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics-outbound-tools.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics-outbound-tools.js +1 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics-parsers.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics-parsers.js +231 -286
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-router-hotpath-analysis.js +143 -164
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-router-hotpath-required-exports.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-router-hotpath-required-exports.js +8 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics-reasoning.js +57 -28
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics-responses.d.ts +8 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics-responses.js +76 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.js +1 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-virtual-router-bootstrap-providers.d.ts +24 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-virtual-router-bootstrap-providers.js +78 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-virtual-router-bootstrap-routing.d.ts +17 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/native-virtual-router-bootstrap-routing.js +72 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/route-utils.js +9 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-selection/tier-selection-select.js +11 -5
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine.js +4 -39
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/features.js +199 -31
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/health-manager.js +7 -2
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/load-balancer.d.ts +3 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/load-balancer.js +47 -3
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/native-error.d.ts +11 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/native-error.js +71 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/provider-registry.js +81 -2
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/provider-runtime-ingress.d.ts +24 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/provider-runtime-ingress.js +139 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/routing-instructions/parse.js +21 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/routing-instructions/state.js +46 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/routing-instructions/types.d.ts +7 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/routing-stop-message-state-codec.js +30 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/sticky-session-store.js +44 -15
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/stop-message-state-sync.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/stop-message-state-sync.js +10 -2
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/success-center.js +39 -2
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/tool-signals.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/tool-signals.js +25 -24
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/types.d.ts +3 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/engine.js +255 -71
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/clock.js +20 -2
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/followup-request-builder.js +120 -85
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/memory-appender.d.ts +6 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/memory-appender.js +42 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-only-continue.js +1 -1
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-stop-guard.js +630 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-stop-state.d.ts +24 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-stop-state.js +606 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/reasoning-stop.js +292 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/{iflow-followup.d.ts → ai-followup.d.ts} +3 -3
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/{iflow-followup.js → ai-followup.js} +76 -81
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/config.d.ts +1 -2
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/config.js +2 -6
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/runtime-utils.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto/runtime-utils.js +51 -11
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/stop-message-auto.js +5 -4
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/web-search-auto-trigger.d.ts +9 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/web-search-auto-trigger.js +91 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/web-search.js +1 -131
- package/node_modules/@jsonstudio/llms/dist/servertool/heartbeat/session-store.js +49 -18
- package/node_modules/@jsonstudio/llms/dist/servertool/registry.js +3 -0
- package/node_modules/@jsonstudio/llms/dist/servertool/server-side-tools.d.ts +2 -2
- package/node_modules/@jsonstudio/llms/dist/servertool/server-side-tools.js +14 -10
- package/node_modules/@jsonstudio/llms/dist/servertool/strip-servertool-calls.js +2 -3
- package/node_modules/@jsonstudio/llms/dist/servertool/types.d.ts +11 -1
- package/node_modules/@jsonstudio/llms/dist/sse/json-to-sse/chat-json-to-sse-converter.js +26 -1
- package/node_modules/@jsonstudio/llms/dist/sse/json-to-sse/event-generators/chat.d.ts +2 -2
- package/node_modules/@jsonstudio/llms/dist/sse/json-to-sse/event-generators/chat.js +38 -3
- package/node_modules/@jsonstudio/llms/dist/sse/json-to-sse/sequencers/chat-sequencer.js +6 -3
- package/node_modules/@jsonstudio/llms/dist/sse/shared/chat-serializer.js +27 -3
- package/node_modules/@jsonstudio/llms/dist/sse/shared/constants.d.ts +6 -6
- package/node_modules/@jsonstudio/llms/dist/sse/shared/constants.js +3 -3
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/anthropic-sse-to-json-converter.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/anthropic-sse-to-json-converter.js +36 -1
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/builders/anthropic-response-builder.js +6 -20
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/builders/response-builder.d.ts +3 -0
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/builders/response-builder.js +125 -42
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/chat-sse-to-json-converter.js +59 -10
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/parsers/sse-parser.js +2 -0
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/responses-sse-to-json-converter.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/responses-sse-to-json-converter.js +71 -2
- package/node_modules/@jsonstudio/llms/dist/sse/types/chat-types.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/sse/types/chat-types.js +1 -1
- package/node_modules/@jsonstudio/llms/dist/sse/types/conversion-context.js +2 -2
- package/node_modules/@jsonstudio/llms/dist/sse/types/index.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/sse/types/responses-types.d.ts +1 -1
- package/node_modules/@jsonstudio/llms/dist/sse/types/responses-types.js +1 -1
- package/node_modules/@jsonstudio/llms/dist/telemetry/stats-center.js +34 -12
- package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/patch-text/fuzzy-match.d.ts +14 -0
- package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/patch-text/fuzzy-match.js +174 -0
- package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/patch-text/normalize.js +148 -0
- package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/structured.js +31 -2
- package/node_modules/@jsonstudio/llms/dist/tools/apply-patch/validator.js +121 -4
- package/node_modules/@jsonstudio/llms/dist/tools/exec-command/normalize.d.ts +4 -1
- package/node_modules/@jsonstudio/llms/dist/tools/exec-command/normalize.js +31 -16
- package/node_modules/@jsonstudio/llms/dist/tools/exec-command/validator.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/tools/exec-command/validator.js +3 -1
- package/node_modules/@jsonstudio/llms/dist/tools/tool-registry.d.ts +1 -0
- package/node_modules/@jsonstudio/llms/dist/tools/tool-registry.js +5 -27
- package/node_modules/@jsonstudio/llms/package.json +1 -1
- package/package.json +6 -7
- package/scripts/ci/repo-sanity.mjs +1 -0
- package/scripts/ci/silent-failure-audit.mjs +112 -70
- package/scripts/cleanup-stale-server-pids.mjs +0 -6
- package/scripts/ensure-cli-command-shim.mjs +49 -15
- package/scripts/ensure-cli-executable.mjs +1 -1
- package/scripts/install-global.sh +7 -6
- package/scripts/install-release-snapshot.mjs +232 -0
- package/scripts/install-release.sh +30 -24
- package/scripts/link-global-llms-local.mjs +1 -2
- package/scripts/pack-mode.mjs +0 -4
- package/scripts/pack-rcc.mjs +17 -58
- package/scripts/run-bg.sh +0 -6
- package/scripts/run-fg-gtimeout.sh +0 -6
- package/scripts/tests/antigravity-codex-sample-pipeline-compare.mjs +1 -1
- package/scripts/tests/blackbox-rcc-vs-routecodex-antigravity.mjs +60 -39
- package/scripts/verify-install-e2e.mjs +64 -26
- package/configsamples/provider-default/qwenchat/config.v2.json +0 -53
- package/dist/providers/auth/iflow-cookie-auth.d.ts +0 -27
- package/dist/providers/auth/iflow-cookie-auth.js +0 -207
- package/dist/providers/auth/iflow-cookie-auth.js.map +0 -1
- package/dist/providers/auth/iflow-userinfo-helper.d.ts +0 -32
- package/dist/providers/auth/iflow-userinfo-helper.js +0 -81
- package/dist/providers/auth/iflow-userinfo-helper.js.map +0 -1
- package/dist/providers/core/runtime/iflow-http-provider.d.ts +0 -13
- package/dist/providers/core/runtime/iflow-http-provider.js +0 -22
- package/dist/providers/core/runtime/iflow-http-provider.js.map +0 -1
- package/dist/providers/core/runtime/provider-iflow-business-error-utils.d.ts +0 -15
- package/dist/providers/core/runtime/provider-iflow-business-error-utils.js +0 -49
- package/dist/providers/core/runtime/provider-iflow-business-error-utils.js.map +0 -1
- package/dist/providers/core/runtime/qwenchat-http-provider-helpers.d.ts +0 -89
- package/dist/providers/core/runtime/qwenchat-http-provider-helpers.js +0 -1698
- package/dist/providers/core/runtime/qwenchat-http-provider-helpers.js.map +0 -1
- package/dist/providers/core/runtime/qwenchat-http-provider.d.ts +0 -9
- package/dist/providers/core/runtime/qwenchat-http-provider.js +0 -78
- package/dist/providers/core/runtime/qwenchat-http-provider.js.map +0 -1
- package/dist/providers/core/runtime/standard-tool-text-request-transform.d.ts +0 -13
- package/dist/providers/core/runtime/standard-tool-text-request-transform.js +0 -138
- package/dist/providers/core/runtime/standard-tool-text-request-transform.js.map +0 -1
- package/dist/providers/core/runtime/transport/iflow-signer.d.ts +0 -12
- package/dist/providers/core/runtime/transport/iflow-signer.js +0 -63
- package/dist/providers/core/runtime/transport/iflow-signer.js.map +0 -1
- package/dist/providers/profile/families/iflow-profile.d.ts +0 -2
- package/dist/providers/profile/families/iflow-profile.js +0 -384
- package/dist/providers/profile/families/iflow-profile.js.map +0 -1
- package/docs/mapping-tables/iflow-to-openai.json +0 -215
- package/docs/mapping-tables/openai-to-iflow.json +0 -227
- package/docs/multi-token-auth-guide.md +0 -66
- package/docs/oauth-authentication-guide.md +0 -172
- package/docs/oauth-iflow-implementation.md +0 -157
- package/docs/release-iflow-400-gate.md +0 -58
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-cli-defaults.d.ts +0 -10
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-cli-defaults.js +0 -31
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-history-media-placeholder.d.ts +0 -7
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-history-media-placeholder.js +0 -25
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-thinking-reasoning-fill.d.ts +0 -12
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-kimi-thinking-reasoning-fill.js +0 -46
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-native-compat.d.ts +0 -6
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-native-compat.js +0 -36
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-response-body-unwrap.d.ts +0 -9
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-response-body-unwrap.js +0 -25
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-tool-text-fallback.d.ts +0 -5
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-tool-text-fallback.js +0 -29
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-web-search.d.ts +0 -18
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/iflow-web-search.js +0 -49
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/qwenchat-web-request.d.ts +0 -3
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/qwenchat-web-request.js +0 -62
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-iflow.json +0 -353
- package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-qwenchat-web.json +0 -47
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-health.d.ts +0 -1
- package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine-health.js +0 -1
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/iflow-model-error-retry.js +0 -92
- package/node_modules/@jsonstudio/llms/dist/servertool/handlers/review.js +0 -202
- package/scripts/publish-rcc.mjs +0 -81
- /package/node_modules/@jsonstudio/llms/dist/servertool/handlers/{iflow-model-error-retry.d.ts → reasoning-stop-guard.d.ts} +0 -0
- /package/node_modules/@jsonstudio/llms/dist/servertool/handlers/{review.d.ts → reasoning-stop.d.ts} +0 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
# Servertool 统一骨架设计(收敛草案)
|
|
2
|
+
|
|
3
|
+
## 目标
|
|
4
|
+
- 把 servertool 收敛成**单一骨架**:统一请求注入、统一响应收割、统一续轮决策。
|
|
5
|
+
- internal servertool 绝不泄露到客户端。
|
|
6
|
+
- malformed tool_call 绝不在 finalize 阶段伪装成 `stop + 空回复`;应保留错误闭环,让客户端或上层显式报错。
|
|
7
|
+
|
|
8
|
+
## 现状问题
|
|
9
|
+
1. **followup 特判旁路**
|
|
10
|
+
- `serverToolFollowup=true` 目前会让部分响应编排直接 bypass。
|
|
11
|
+
- 但 internal RCC/tool_call 往往在 governance 之后才结构化出来,导致“注入统一、收割失效”。
|
|
12
|
+
2. **双命运系统**
|
|
13
|
+
- 一部分走 `reenterPipeline`。
|
|
14
|
+
- 一部分走 `clientInjectOnly`(tmux/client 注入)。
|
|
15
|
+
3. **pendingInjection 侧路**
|
|
16
|
+
- mixed tools 通过 session 文件把 servertool 结果滞后注入到下一轮请求。
|
|
17
|
+
4. **finalize 错误吞并**
|
|
18
|
+
- malformed tool_call 被清洗后可能降成 `stop + placeholder`,破坏错误闭环。
|
|
19
|
+
|
|
20
|
+
## 统一骨架(目标态)
|
|
21
|
+
|
|
22
|
+
### 阶段 0:请求入口归一
|
|
23
|
+
- 入口:`HTTP server -> llmswitch-core Hub Pipeline -> Provider`
|
|
24
|
+
- 责任:
|
|
25
|
+
- 采集 `capturedChatRequest / sessionId / conversationId / runtime metadata`
|
|
26
|
+
- 注入 request-side servertool state(如 stopless/clock/session scopes)
|
|
27
|
+
- 约束:
|
|
28
|
+
- 不在这里做响应级推断
|
|
29
|
+
- 不引入 provider-specific followup 旁路
|
|
30
|
+
|
|
31
|
+
### 阶段 1:响应预处理(provider -> canonical)
|
|
32
|
+
- 责任:
|
|
33
|
+
- decode / format parse / semantic map
|
|
34
|
+
- 保留 provider 原始 text/tool intent
|
|
35
|
+
- 约束:
|
|
36
|
+
- 不消费 internal tool_call
|
|
37
|
+
- 不替客户端“修”错误命令
|
|
38
|
+
|
|
39
|
+
### 阶段 2:tool governance(唯一结构化入口)
|
|
40
|
+
- 责任:
|
|
41
|
+
- 把文本 RCC/XML wrapper 收敛成 canonical `tool_calls`
|
|
42
|
+
- 修复**外层形状**,不猜正文语义
|
|
43
|
+
- 约束:
|
|
44
|
+
- 只修 wrapper/container
|
|
45
|
+
- 允许 malformed arguments 原样保留,交给客户端校验报错
|
|
46
|
+
|
|
47
|
+
### 阶段 3:servertool orchestration(唯一消费入口)
|
|
48
|
+
- 责任:
|
|
49
|
+
- 统一消费 internal servertool:
|
|
50
|
+
- `reasoning.stop`
|
|
51
|
+
- `review`
|
|
52
|
+
- `clock`
|
|
53
|
+
- `continue_execution`
|
|
54
|
+
- `stop_message_auto`
|
|
55
|
+
- 统一决定:
|
|
56
|
+
- `reenter`
|
|
57
|
+
- `clientInjectOnly`
|
|
58
|
+
- `mixed tools pending injection`
|
|
59
|
+
- 约束:
|
|
60
|
+
- followup 响应也必须进入该阶段
|
|
61
|
+
- **必须支持 post-governance pass**
|
|
62
|
+
- internal tool 一旦执行,必须在 finalize 前被 strip
|
|
63
|
+
|
|
64
|
+
### 阶段 4:finalize(只做形状收口,不做语义吞并)
|
|
65
|
+
- 责任:
|
|
66
|
+
- shape normalize
|
|
67
|
+
- reasoning policy
|
|
68
|
+
- strip executed internal tool calls
|
|
69
|
+
- 禁止:
|
|
70
|
+
- 禁止把 malformed tool_call 洗成 `stop + empty assistant`
|
|
71
|
+
- 禁止把 internal tool 泄露到 client `required_action/output`
|
|
72
|
+
|
|
73
|
+
### 阶段 5:client remap / outbound
|
|
74
|
+
- 责任:
|
|
75
|
+
- 转成 openai-responses / chat / anthropic 客户端协议
|
|
76
|
+
- 对 client tools 做最终 allowlist + args validation
|
|
77
|
+
- 结果:
|
|
78
|
+
- malformed client tool arguments -> 显式 `CLIENT_TOOL_ARGS_INVALID`
|
|
79
|
+
- unknown tool -> 显式 `CLIENT_TOOL_NAME_MISMATCH`
|
|
80
|
+
|
|
81
|
+
## 统一骨架的硬规则
|
|
82
|
+
1. **tool governance 是唯一结构化入口**
|
|
83
|
+
- 不在多个阶段重复 harvest。
|
|
84
|
+
2. **servertool orchestration 是唯一 internal tool 消费入口**
|
|
85
|
+
- 不允许 followup bypass 后再期待 finalize 兜底。
|
|
86
|
+
3. **finalize 不负责“掩盖错误”**
|
|
87
|
+
- finalize 只能收口形状,不能伪造成 stop。
|
|
88
|
+
4. **clientInjectOnly 是命运分支,不是响应编排分支**
|
|
89
|
+
- 允许存在,但必须在统一 orchestration 阶段产生命运决定。
|
|
90
|
+
5. **pendingInjection 仅作为 mixed tools 过渡机制**
|
|
91
|
+
- 长期目标是缩减;短期必须加强 session/conversation 绑定与 stale 清理。
|
|
92
|
+
|
|
93
|
+
## 收敛实施顺序
|
|
94
|
+
### P0
|
|
95
|
+
1. followup 响应补 post-governance servertool pass
|
|
96
|
+
2. finalize 禁止把坏 tool_call 清洗成空回复
|
|
97
|
+
3. executed internal tool 在 finalize 前统一 strip
|
|
98
|
+
|
|
99
|
+
### P1
|
|
100
|
+
4. 把 `reasoning_stop_guard / stop_message_auto` 从 dedicated skeleton 逐步压回统一 orchestration 骨架
|
|
101
|
+
5. 明确 `clientInjectOnly` 只是一种 execution outcome
|
|
102
|
+
|
|
103
|
+
### P2
|
|
104
|
+
6. 审计并缩减 `pendingInjection`
|
|
105
|
+
7. 把 servertool flow graph 文档化,形成单一真源
|
|
106
|
+
|
|
107
|
+
## 当前决策
|
|
108
|
+
- malformed tool_call 的正确处理:**保留到客户端错误闭环**,而不是服务端伪装成成功 stop。
|
|
109
|
+
- servertool followup 的正确处理:**按正常响应统一编排**,而不是走 followup 特判旁路。
|
|
110
|
+
|
|
111
|
+
## 2026-04-16 审计实锤(本轮新增)
|
|
112
|
+
|
|
113
|
+
### 已确认的结构问题
|
|
114
|
+
1. **request 标准化双实现**
|
|
115
|
+
- `src/server/runtime/http-server/executor-response.ts`
|
|
116
|
+
- `src/server/runtime/http-server/executor/provider-response-converter.ts`
|
|
117
|
+
- 两边都各自维护:
|
|
118
|
+
- `backfillAdapterContextSessionIdentifiersFromOriginalRequest(...)`
|
|
119
|
+
- `seedReasoningStopStateFromCapturedRequest(...)`
|
|
120
|
+
- 这会导致 session / conversation / stopless 进入骨架不是单点真源。
|
|
121
|
+
|
|
122
|
+
2. **response wrapper 双实现**
|
|
123
|
+
- 两边都各自手拼 `__sse_responses` wrapper
|
|
124
|
+
- 各自挂 `finish_reason`
|
|
125
|
+
- 之前都**没有**把 `reasoning.stop finalized` 状态变成统一 wrapper 元数据
|
|
126
|
+
|
|
127
|
+
3. **stopless 对 streamed wrapper 漏校验**
|
|
128
|
+
- `RequestExecutor.detectStoplessTerminationWithoutFinalization(...)`
|
|
129
|
+
- 之前一旦看到 `__sse_responses` 就直接跳过
|
|
130
|
+
- 导致 `finish_reason=stop` + 无 finalized marker 的 wrapper 仍可 200 透传
|
|
131
|
+
|
|
132
|
+
4. **engine 仍是超大聚合体**
|
|
133
|
+
- `sharedmodule/llmswitch-core/src/servertool/engine.ts` ≈ 2317 行
|
|
134
|
+
- `sharedmodule/llmswitch-core/src/servertool/server-side-tools.ts` ≈ 1037 行
|
|
135
|
+
- `sharedmodule/llmswitch-core/src/servertool/handlers/reasoning-stop-guard.ts` ≈ 705 行
|
|
136
|
+
- `sharedmodule/llmswitch-core/src/servertool/handlers/stop-message-auto.ts` ≈ 665 行
|
|
137
|
+
- 当前并非“薄骨架”,而是 trigger / execution outcome / followup dispatch / finalize / loop guard 混在一起。
|
|
138
|
+
|
|
139
|
+
5. **历史残留仍在 servertool 真路径**
|
|
140
|
+
- `server-side-tools.ts.bak~bak6`
|
|
141
|
+
- `handlers/memory/cache-writer.ts.bak`
|
|
142
|
+
- 说明该区域长期热修,但没有完成真正骨架化。
|
|
143
|
+
|
|
144
|
+
### 本轮已先落的第一刀
|
|
145
|
+
1. 新增 host 壳层共享 helper:
|
|
146
|
+
- `src/server/runtime/http-server/executor/servertool-request-normalizer.ts`
|
|
147
|
+
- `src/server/runtime/http-server/executor/servertool-response-normalizer.ts`
|
|
148
|
+
|
|
149
|
+
2. 已把 request 侧共享逻辑先抽单点:
|
|
150
|
+
- session / conversation backfill
|
|
151
|
+
- stopless seed
|
|
152
|
+
|
|
153
|
+
3. 已把 SSE wrapper 共享逻辑先抽单点:
|
|
154
|
+
- `buildServerToolSseWrapperBody(...)`
|
|
155
|
+
- 统一挂:
|
|
156
|
+
- `__sse_responses`
|
|
157
|
+
- `__routecodex_finish_reason`
|
|
158
|
+
- `__routecodex_reasoning_stop_finalized`
|
|
159
|
+
|
|
160
|
+
4. stopless streamed wrapper 漏检已修:
|
|
161
|
+
- 若 wrapper `finish_reason=stop`
|
|
162
|
+
- 且缺 finalized flag
|
|
163
|
+
- `RequestExecutor` 现在统一抛:
|
|
164
|
+
- `STOPLESS_FINALIZATION_MISSING`
|
|
165
|
+
|
|
166
|
+
### 下一刀切点(按顺序)
|
|
167
|
+
1. **Host 壳层继续单点化**
|
|
168
|
+
- 收掉 `executor-response.ts` / `provider-response-converter.ts` 里剩余的 request/followup metadata 组装重复逻辑
|
|
169
|
+
|
|
170
|
+
2. **engine 按四段骨架拆分**
|
|
171
|
+
- `trigger detect`
|
|
172
|
+
- `execution outcome decide`
|
|
173
|
+
- `followup dispatch`
|
|
174
|
+
- `finalize + strip`
|
|
175
|
+
|
|
176
|
+
3. **清历史侧路**
|
|
177
|
+
- pending injection 过渡逻辑
|
|
178
|
+
- followup bypass / post-governance 不一致点
|
|
179
|
+
- `.bak` 残留文件
|
|
180
|
+
|
|
181
|
+
## 2026-04-16 第二刀(host followup dispatch/error helper 落地)
|
|
182
|
+
|
|
183
|
+
### 已收口
|
|
184
|
+
1. **nested followup dispatch 单点化**
|
|
185
|
+
- 新增 `src/server/runtime/http-server/executor/servertool-followup-dispatch.ts`
|
|
186
|
+
- 统一承接:
|
|
187
|
+
- followup nested metadata 组装
|
|
188
|
+
- `clientInjectOnly` 预处理
|
|
189
|
+
- nested request execute
|
|
190
|
+
- `executor-response.ts` 与 `provider-response-converter.ts` 不再各自手拼一套 `reenterPipeline` / `clientInjectDispatch`。
|
|
191
|
+
|
|
192
|
+
2. **followup 错误标记单点化**
|
|
193
|
+
- 新增 `src/server/runtime/http-server/executor/servertool-followup-error.ts`
|
|
194
|
+
- 统一承接:
|
|
195
|
+
- `SERVERTOOL_*` → `provider.followup` stage marker
|
|
196
|
+
- followup reason compact/logging
|
|
197
|
+
- 缺省 HTTP status(当前 converter 路径默认补 502)
|
|
198
|
+
|
|
199
|
+
### 这一步的意义
|
|
200
|
+
- followup 进入 host 壳层后,不再有两份“长得差不多但不完全一样”的 nested dispatch。
|
|
201
|
+
- followup 错误不再由多个 callsite 各自猜测和打印,开始收敛到单点 helper。
|
|
202
|
+
- 这是把 **followup 当普通请求重进统一链路** 的继续落地,而不是再给 followup 开一条特判旁路。
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Web Search ServerTool Orchestration 设计文档
|
|
2
|
+
|
|
3
|
+
## 索引概要
|
|
4
|
+
- L1-L30 `background`: 背景、目标、原则
|
|
5
|
+
- L31-L60 `current-state`: 当前架构现状
|
|
6
|
+
- L61-L100 `gap-analysis`: 未实现/缺失部分
|
|
7
|
+
- L101-L150 `change-plan`: 最小改动计划
|
|
8
|
+
- L151-L180 `file-list`: 文件改动清单
|
|
9
|
+
- L181-L200 `execution-order`: 执行顺序
|
|
10
|
+
- L201-L220 `verification`: 验证点
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 背景
|
|
15
|
+
|
|
16
|
+
RouteCodex 需要支持 web search 作为标准工具能力,让所有 text-guidance 模式的 provider(qwen、deepseek、tabglm、ali-coding-plan)都能通过 heredoc 格式调用 web search。
|
|
17
|
+
|
|
18
|
+
**目标**:
|
|
19
|
+
1. 用户请求默认带 `websearch` 工具(和 `exec_command`/`apply_patch` 一样)
|
|
20
|
+
2. 模型通过 heredoc 格式调用 `websearch` 工具
|
|
21
|
+
3. Hub 收割工具调用 → 按 provider 适配原生 web search API
|
|
22
|
+
4. 直路由 web_search 时剥离其他工具
|
|
23
|
+
|
|
24
|
+
**原则**:
|
|
25
|
+
1. 日常工具列表都需要注入 — `websearch` 作为标准工具
|
|
26
|
+
2. text guidance 基于标准工具列表动态创建 — 不写 dead code
|
|
27
|
+
3. search followup 按 provider 适配原生 API — qwen/deepseek/tabglm 各自有实现
|
|
28
|
+
4. 直路由 web_search 时剥离其他工具 — forceWebSearch=true 移除 tools
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 当前架构现状
|
|
33
|
+
|
|
34
|
+
### 已实现
|
|
35
|
+
|
|
36
|
+
| 层 | 文件 | 功能 |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| 搜索意图检测 | `chat_web_search_intent.rs` | 中英文关键词检测 |
|
|
39
|
+
| servertool 编排计划 | `chat_servertool_orchestration.rs` | `resolve_chat_web_search_plan()` 判断是否注入 |
|
|
40
|
+
| forceWebSearch 元数据 | `hub_pipeline_target_utils.rs` | target 带 `forceWebSearch: true` 时注入 metadata |
|
|
41
|
+
| qwen search 模式 | `qwen provider runtime` | `shouldUseSearchMode()` → `chatType: 'search'` |
|
|
42
|
+
| 直路由 bypass | `should_bypass_servertool_web_search()` | direct engine 时跳过 servertool 注入 |
|
|
43
|
+
| 响应工具名归一化 | `hub_resp_outbound_client_semantics.rs:1857` | `websearch`/`web-search` → `web_search` |
|
|
44
|
+
| heredoc 收割 | `hub_reasoning_tool_normalizer.rs:1723` | `<<RCC_TOOL_CALLS_JSON` 正则收割所有工具调用 |
|
|
45
|
+
| text guidance 动态生成 | `shared_tool_text_guidance.rs` | `build_tool_text_instruction(tools)` 从 tools 数组生成引导 |
|
|
46
|
+
|
|
47
|
+
### 未实现/缺失
|
|
48
|
+
|
|
49
|
+
| 层 | 问题 | 影响 |
|
|
50
|
+
|---|---|---|
|
|
51
|
+
| **websearch 工具定义注入** | `chat_servertool_orchestration.rs` 没有注入 `websearch` 工具的 `append_tool_if_missing` | 模型不知道有 websearch 工具可用 |
|
|
52
|
+
| **search followup 路径** | 收割到 `websearch` 调用后,没有触发 provider 原生 search API 的 followup | 搜索结果无法正确回注 |
|
|
53
|
+
| **直路由剥离工具** | `forceWebSearch=true` 只注入 flag,没有移除 tools | 进入 web_search 路由后仍带所有工具 |
|
|
54
|
+
| **provider 适配层** | qwen/deepseek/tabglm 没有 `handleWebSearchFollowup()` | 无法调用原生 search API |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 改动计划
|
|
59
|
+
|
|
60
|
+
### Step 1: 在 servertool orchestration 中注入 `websearch` 工具定义
|
|
61
|
+
|
|
62
|
+
**文件**: `chat_servertool_orchestration.rs`
|
|
63
|
+
|
|
64
|
+
**改动**: 新增 `build_websearch_operations()` 函数
|
|
65
|
+
|
|
66
|
+
```rust
|
|
67
|
+
fn build_websearch_operations(server_tool_followup: bool) -> Value {
|
|
68
|
+
if server_tool_followup {
|
|
69
|
+
return Value::Array(Vec::new());
|
|
70
|
+
}
|
|
71
|
+
let parameters = json!({
|
|
72
|
+
"type": "object",
|
|
73
|
+
"properties": {
|
|
74
|
+
"query": { "type": "string", "description": "Web search query" }
|
|
75
|
+
},
|
|
76
|
+
"required": ["query"],
|
|
77
|
+
"additionalProperties": false
|
|
78
|
+
});
|
|
79
|
+
let websearch_tool = json!({
|
|
80
|
+
"type": "function",
|
|
81
|
+
"function": {
|
|
82
|
+
"name": "websearch",
|
|
83
|
+
"description": "Search the web for current information",
|
|
84
|
+
"parameters": parameters,
|
|
85
|
+
"strict": true
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
json!([
|
|
89
|
+
{ "op": "append_tool_if_missing", "toolName": "websearch", "tool": websearch_tool }
|
|
90
|
+
])
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
并在 `resolve_chat_web_search_plan` 或 bundle 输出中合并 operations。
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### Step 2: text guidance 自动包含 websearch
|
|
99
|
+
|
|
100
|
+
**文件**: `shared_tool_text_guidance.rs` — **无需改动**
|
|
101
|
+
|
|
102
|
+
`build_tool_text_instruction(tools)` 已是动态生成,Step 1 注入后自动包含。
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
### Step 3: search followup 按 provider 适配
|
|
107
|
+
|
|
108
|
+
**架构流程**:
|
|
109
|
+
```
|
|
110
|
+
模型 heredoc 输出 websearch 调用
|
|
111
|
+
→ hub_reasoning_tool_normalizer 收割
|
|
112
|
+
→ resp_process_stage1_tool_governance 识别为 servertool
|
|
113
|
+
→ provider-response-converter 触发 serverToolFollowup
|
|
114
|
+
→ 按 providerKey 路由到原生 search handler
|
|
115
|
+
→ 搜索结果作为工具执行结果回注
|
|
116
|
+
→ followup 请求带所有工具继续对话
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**改动点**:
|
|
120
|
+
|
|
121
|
+
| Provider | 文件 | 改动 |
|
|
122
|
+
|---|---|---|
|
|
123
|
+
| **qwen** | `qwen provider runtime` | 新增 `handleWebSearchFollowup(query)` |
|
|
124
|
+
| **deepseek-web** | `deepseek-http-provider.ts` (待确认) | 新增 `handleWebSearchFollowup(query)` → deepseek 原生 search |
|
|
125
|
+
| **tabglm** | TBD | 待适配 |
|
|
126
|
+
| **ali-coding-plan** | TBD | 待适配 |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
### Step 4: 直路由 web_search 时剥离其他工具
|
|
131
|
+
|
|
132
|
+
**文件**: `hub_pipeline_target_utils.rs` 或 `req_process_stage2_route_select.rs`
|
|
133
|
+
|
|
134
|
+
**改动**: `forceWebSearch=true` 时移除 `tools` 和 `tool_choice`
|
|
135
|
+
|
|
136
|
+
```rust
|
|
137
|
+
if force_web_search {
|
|
138
|
+
if let Some(body_obj) = request.as_object_mut() {
|
|
139
|
+
body_obj.remove("tools");
|
|
140
|
+
body_obj.remove("tool_choice");
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 文件改动清单
|
|
148
|
+
|
|
149
|
+
### Rust (llmswitch-core)
|
|
150
|
+
|
|
151
|
+
| 文件 | 改动类型 | 说明 |
|
|
152
|
+
|---|---|---|
|
|
153
|
+
| `chat_servertool_orchestration.rs` | 新增函数 | `build_websearch_operations()` |
|
|
154
|
+
| `hub_pipeline_target_utils.rs` | 新增逻辑 | `forceWebSearch` 时移除 tools |
|
|
155
|
+
| `req_process_stage2_route_select.rs` | 可能改动 | 确认 forceWebSearch 处理位置 |
|
|
156
|
+
|
|
157
|
+
### TypeScript
|
|
158
|
+
|
|
159
|
+
| 文件 | 改动类型 | 说明 |
|
|
160
|
+
|---|---|---|
|
|
161
|
+
| `qwen provider runtime` | 新增函数 | `handleWebSearchFollowup()` |
|
|
162
|
+
| `deepseek-http-provider.ts` | 新增函数 | `handleWebSearchFollowup()` |
|
|
163
|
+
| `provider-response-converter.ts` | 可能改动 | 确认 serverToolFollowup 路径 |
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## 执行顺序
|
|
168
|
+
|
|
169
|
+
1. **Rust Step 1** — 注入 `websearch` 工具定义 → `cargo build --release` → 复制 `.node`
|
|
170
|
+
2. **Rust Step 4** — 直路由剥离工具 → 同上
|
|
171
|
+
3. **TS Step 3** — qwen/deepseek provider 适配 → `npm run build:dev`
|
|
172
|
+
4. **重启 5520** — 验证 heredoc 引导 → 工具调用 → followup → 原生 search
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## 验证点
|
|
177
|
+
|
|
178
|
+
1. **引导注入** — 请求默认带 `websearch` 工具,text guidance 中有 `websearch` schema
|
|
179
|
+
2. **heredoc 调用** — 模型输出 `<<RCC_TOOL_CALLS_JSON\n{"tool_calls":[{"name":"websearch","input":{"query":"..."}}]}\nRCC_TOOL_CALLS_JSON`
|
|
180
|
+
3. **收割识别** — `hub_reasoning_tool_normalizer` 正确收割,`finish_reason=tool_calls`
|
|
181
|
+
4. **followup 触发** — `serverToolFollowup=true`,按 provider 调用原生 search
|
|
182
|
+
5. **直路由剥离** — `forceWebSearch=true` 时请求不带 tools
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## 待确认
|
|
187
|
+
|
|
188
|
+
1. deepseek 原生 web search API 调用方式(是否和 qwen 类似有 `chatType` 参数)
|
|
189
|
+
2. `serverToolFollowup` 的触发点在 `resp_process_stage1_tool_governance` 还是 `provider-response-converter`
|
|
190
|
+
3. tabglm / ali-coding-plan 的原生 search 能力是否存在
|
|
@@ -1,8 +1,117 @@
|
|
|
1
|
-
# RouteCodex
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
# RouteCodex 错误策略收口(Router Policy SSOT)
|
|
2
|
+
|
|
3
|
+
> 2026-04-15 决策更新
|
|
4
|
+
> **不再保留独立 `error-handling center` / event engine 作为中心。**
|
|
5
|
+
> 当前实现里,独立 center 仅承担 `emit/subscribe/normalize`,不掌握 retry/reroute/backoff/fail/cooldown policy,继续保留只会制造第二中心。
|
|
6
|
+
> **目标真源改为:`Virtual Router policy`。** 所有 provider/runtime/send/convert/followup 执行期错误,统一进入 Router policy 判定;`RequestExecutor` 与 `servertool engine` 只消费 Router 输出的 decision / policy state。
|
|
7
|
+
|
|
8
|
+
本页记录 RouteCodex 错误处理的**目标收口架构**与实现边界。历史 V2 机制中凡是“独立错误中心 / event bus”语义,均以本页的新决策为准,后续实现需同步删除旧中间层。
|
|
9
|
+
|
|
10
|
+
## 0a. 2026-04-16 当前已验证收口状态
|
|
11
|
+
|
|
12
|
+
- **provider 执行期错误主链已切到 `Virtual Router policy`**
|
|
13
|
+
- Host `emitProviderError` 不再双上报 `RouteErrorHub`
|
|
14
|
+
- 当前主路径:`provider/runtime/send/convert/followup error -> provider-error-reporter -> reportProviderErrorToRouterPolicy -> Virtual Router policy`
|
|
15
|
+
- **HubPipeline 已不再把 legacy center 当主订阅中心**
|
|
16
|
+
- TS `HubPipeline` bridge wrapper 会先拆掉旧的 `providerErrorCenter/providerSuccessCenter.subscribe(...)`
|
|
17
|
+
- 再把 runtime router hooks 直接挂到 `routerEngine.handleProviderError/Success`
|
|
18
|
+
- **legacy `providerErrorCenter/providerSuccessCenter` 现阶段只保留 compat adapter 角色**
|
|
19
|
+
- 残留 `emit(...)` 会在 bridge 层被 patch 后继续 forward 到 runtime ingress
|
|
20
|
+
- 即:它们仍物理存在,但**不再主导策略**
|
|
21
|
+
- **RouteErrorHub / ErrorHandlingCenter 现阶段只保留 Host 边界职责**
|
|
22
|
+
- 适用:HTTP / server / CLI / 外层错误映射与统一返回
|
|
23
|
+
- 不再承担 provider runtime retry/reroute/backoff 主决策
|
|
24
|
+
- **stopless 静默停已加硬校验**
|
|
25
|
+
- 若 `stopless=on/endless` 且响应完成时缺少 `reasoning.stop` finalized marker,直接抛 `STOPLESS_FINALIZATION_MISSING`(502、retryable)
|
|
26
|
+
- **429 止血已落地**
|
|
27
|
+
- `RequestExecutor` 不再因为“当前 tier 是 singleton”就抱着当前 provider 死重试
|
|
28
|
+
- 当前 provider 出错会优先被排除并 reroute
|
|
29
|
+
- **provider error reporting 前置装配已收口到单点 helper**
|
|
30
|
+
- `runtime_resolve` / `provider.send` 不再分支内手拼 `errorCode/upstreamCode/statusCode/stageHint`
|
|
31
|
+
- 当前统一入口:`resolveRequestExecutorProviderErrorReportPlan(...) -> reportRequestExecutorProviderError(...)`
|
|
32
|
+
- `resolveRequestExecutorProviderErrorReportPlan(...)` 现在会自己优先解析 `requestExecutorProviderErrorStage`(含 `details`);外层只需要给默认 stage,不再先手动 resolve fallback
|
|
33
|
+
- 已覆盖 `provider.runtime_resolve` / `provider.sse_decode` / `provider.followup` 的阶段判定
|
|
34
|
+
- **converted retryable HTTP status 不再双上报**
|
|
35
|
+
- 之前 `converted 401/429/5xx` 会在 try 内先报一次 `provider.http`,外层 catch 再报一次
|
|
36
|
+
- 现改为只给错误打 `provider.http` stage marker,统一由外层 `reportRequestExecutorProviderError(...)` 上报一次
|
|
37
|
+
- **provider.followup 不再污染 provider 健康**
|
|
38
|
+
- servertool/client-inject/followup payload 这类 followup orchestration 错误统一视为 health-neutral
|
|
39
|
+
- `RequestExecutor` 会按 `provider.followup` stage 直接给 `affectsHealth=false`
|
|
40
|
+
- `emitProviderError(...)` 现在会显式尊重调用方传入的 `affectsHealth=false`,不再把所有 non-recoverable 一律强改为 `true`
|
|
41
|
+
- **followup stage marker 前移到 converter 源头**
|
|
42
|
+
- `provider-response-converter` 对 `SERVERTOOL_*` followup 错误会直接打 `requestExecutorProviderErrorStage='provider.followup'`
|
|
43
|
+
- request-executor 优先读 marker,再回退到 code/stage 推断
|
|
44
|
+
- **SSE decode stage marker 也开始前移**
|
|
45
|
+
- SSE wrapper / bridge SSE remap 错误会直接打 `requestExecutorProviderErrorStage='provider.sse_decode'`
|
|
46
|
+
- legacy `executor-response` 也已同步,减少新旧链路阶段口径漂移
|
|
47
|
+
- request-executor 继续保留 fallback 推断,但优先使用显式 marker
|
|
48
|
+
- **client injection host 源头也已接入 followup marker**
|
|
49
|
+
- `client-injection-flow` 创建的 strict tmux / inject 失败错误会直接打 `requestExecutorProviderErrorStage='provider.followup'`
|
|
50
|
+
- 这样 host 内部已知的 followup/internal error 不必再等外层按 code/message 推断
|
|
51
|
+
|
|
52
|
+
## 0. 唯一真源与待删除项
|
|
53
|
+
|
|
54
|
+
### 唯一策略真源
|
|
55
|
+
- `Virtual Router policy`
|
|
56
|
+
- classify error
|
|
57
|
+
- decide retry / reroute / backoff / fail
|
|
58
|
+
- manage cooldown / health / quota / exclusion
|
|
59
|
+
- output unified error decision / policy state
|
|
60
|
+
|
|
61
|
+
### Consumer
|
|
62
|
+
- `RequestExecutor`
|
|
63
|
+
- 只执行 Router 返回的 decision plan
|
|
64
|
+
- `servertool engine`
|
|
65
|
+
- 只保留 followup 编排前 / internal error 边界
|
|
66
|
+
- provider/runtime/send/convert 类错误不得再自定义第二套语义
|
|
67
|
+
|
|
68
|
+
### 待移除
|
|
69
|
+
- 独立 `error-handling center`
|
|
70
|
+
- 独立 event engine / event bus
|
|
71
|
+
- `RequestExecutor` 内部自带的第二套 retry/reroute/backoff 决策语义
|
|
72
|
+
|
|
73
|
+
## 1. 统一流程(目标态)
|
|
74
|
+
|
|
75
|
+
1. **HubPipeline** 做编排与向上抛错,不定义最终错误策略。
|
|
76
|
+
2. **Virtual Router policy** 接收执行期错误输入,产出统一 decision:
|
|
77
|
+
- `retry_same_provider`
|
|
78
|
+
- `exclude_and_reroute`
|
|
79
|
+
- `wait_for_cooldown`
|
|
80
|
+
- `fail`
|
|
81
|
+
3. **RequestExecutor** 消费该 decision 并执行实际 retry / reroute / sleep / fail。
|
|
82
|
+
4. **servertool followup** 的 provider 类错误也走同一套 Router policy;只有 payload 缺失、reenter 不可用、client inject dispatcher 缺失等编排前/internal error 保留在 servertool 自身边界。
|
|
83
|
+
|
|
84
|
+
## 2. 分层职责
|
|
85
|
+
|
|
86
|
+
| 层 | 职责 | 不该做什么 |
|
|
87
|
+
| --- | --- | --- |
|
|
88
|
+
| HubPipeline | request/chat-process 编排、标准化、向上抛错 | 不定义最终 retry/reroute/backoff 策略 |
|
|
89
|
+
| Virtual Router policy | 错误分类、路由/冷却/健康/额度策略、统一 decision 输出 | 不负责具体 sleep/retry 执行循环 |
|
|
90
|
+
| RequestExecutor | 执行 Router decision、驱动 provider runtime/send/convert | 不再独立发明第二套 error policy |
|
|
91
|
+
| servertool engine | followup 编排前/internal error 边界、followup reenter orchestration | 不再包一层独立 provider retry/error 语义 |
|
|
92
|
+
|
|
93
|
+
## 3. 当前剩余遗留问题(继续收口项)
|
|
94
|
+
|
|
95
|
+
- legacy `providerErrorCenter/providerSuccessCenter` 仍是**物理残留模块**,虽然已降级为 compat adapter,但后续仍应继续物理去除中转角色
|
|
96
|
+
- followup 的编排前/internal error 与 provider 执行期错误边界还需继续压实,避免 `SERVERTOOL_*` 语义再次外溢
|
|
97
|
+
- provider-switch 日志仍需继续核对,确保不再出现误导性的“下一跳/回退”观感
|
|
98
|
+
- Host 边界的 `RouteErrorHub / ErrorHandlingCenter` 文档与调用面还需继续缩小到“外层映射”职责,避免再次被误当策略中心
|
|
99
|
+
|
|
100
|
+
## 4. 收口验收信号
|
|
101
|
+
|
|
102
|
+
- followup 与普通请求共用同一套 Router error policy
|
|
103
|
+
- 不再存在独立 event bus / error center 中转层
|
|
104
|
+
- `RequestExecutor` 只消费 Router decision
|
|
105
|
+
- `SERVERTOOL_FOLLOWUP_FAILED` 只保留编排失败语义
|
|
106
|
+
- provider-switch 不再出现 `7/6` 之类越界假下一跳
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Historical Reference: V2 旧机制(待迁出/待删除)
|
|
111
|
+
|
|
112
|
+
以下内容保留为历史参考,帮助识别旧实现;如与上文冲突,以**上文 Router Policy SSOT** 为准。
|
|
113
|
+
|
|
114
|
+
## H1. 统一流程
|
|
6
115
|
|
|
7
116
|
1. **HTTP Server / CLI / Pipeline** 捕获异常后调用 `reportRouteError(payload)`,由 `RouteErrorHub` 统筹。
|
|
8
117
|
2. `RouteErrorHub` 负责:
|
|
@@ -10,10 +119,10 @@
|
|
|
10
119
|
- 根据构建模式自动裁剪堆栈:`release` 构建默认移除 stack(可通过 `ROUTECODEX_RELEASE_ERROR_VERBOSE=1` 恢复详细日志)。
|
|
11
120
|
- 将错误交给 `ErrorHandlerRegistry`,触发挂载的处理 Hook(含 429 回退调度、快照写入等)。
|
|
12
121
|
- 可选返回 HTTP 映射结果,确保客户端仅收到统一格式的错误体。
|
|
13
|
-
3. Provider
|
|
122
|
+
3. (旧)Provider 侧曾在 `emitProviderError` 同时上报 `providerErrorCenter` 与 `ErrorHandlingCenter`。
|
|
14
123
|
4. `llmswitch-core` 的 Virtual Router 根据 `ProviderErrorEvent` 执行健康状态变更(回退、降级、拉黑)。
|
|
15
124
|
|
|
16
|
-
##
|
|
125
|
+
## H2. 错误策略矩阵
|
|
17
126
|
|
|
18
127
|
| 错误来源 | 状态 / 错误码 | Error Center 处理 | Virtual Router / ProviderHealth 策略 | 说明 |
|
|
19
128
|
| --- | --- | --- | --- | --- |
|
|
@@ -25,13 +134,13 @@
|
|
|
25
134
|
|
|
26
135
|
> ⚠️ RateLimitTracker 只针对**相同 providerKey(provider.key / provider.key::model)**的连续 429 生效,中间出现成功或其他错误即会自动清零;冷却结束后会再次尝试,具体 TTL 由 `virtualrouter.health` 配置决定,且与使用的 route/routePool 无关。
|
|
27
136
|
|
|
28
|
-
##
|
|
137
|
+
## H3. 日志与可观测性
|
|
29
138
|
|
|
30
139
|
- **Release 输出最小化**:`error-center-payload` 会在 release 构建中移除 `stack`、`details.stack`,仅保留 message/code/requestId 等必要字段。若需排查,可在运行时设置 `ROUTECODEX_RELEASE_ERROR_VERBOSE=1`。
|
|
31
140
|
- **OAuth 噪音削减**:所有 `[OAuth] ...` 信息级日志默认通过 `ROUTECODEX_OAUTH_DEBUG=1` 才会打印,错误(`console.error`) 仍保持输出。
|
|
32
141
|
- **SSE 预览日志禁用**:Server 不再将 SSE chunk 内容写入 `stage-logger`,仅保留流开始/结束事件与统计,避免泄露响应片段。
|
|
33
142
|
|
|
34
|
-
##
|
|
143
|
+
## H4. 回调挂载点
|
|
35
144
|
|
|
36
145
|
- `ErrorHandlerRegistry` 默认挂载以下 Hook,可按需扩展:
|
|
37
146
|
- `rate_limit_error`:提供回退调度(切换 pipeline 或延迟重放)。
|
|
@@ -40,7 +149,7 @@
|
|
|
40
149
|
|
|
41
150
|
如需新增策略(例如特定 provider 的 4xx 也触发冷却),建议在 `docs/error-handling-v2.md` 补充矩阵,并在 `virtualrouter.health` 配置中增加自定义参数。
|
|
42
151
|
|
|
43
|
-
##
|
|
152
|
+
## H5. 工具协议错误(ProviderProtocolError)
|
|
44
153
|
|
|
45
154
|
ServerTool 与工具调用相关的后端错误统一通过 `ProviderProtocolError` 表达,类型定义位于
|
|
46
155
|
`sharedmodule/llmswitch-core/src/conversion/shared/errors.ts`。
|
|
@@ -68,7 +177,7 @@ ServerTool 与工具调用相关的后端错误统一通过 `ProviderProtocolErr
|
|
|
68
177
|
2. 在此文档补充该错误 code 的含义与触发条件;
|
|
69
178
|
3. 确保 provider runtime 捕获到该错误时仍通过 `emitProviderError` 上报,并映射为明确的 HTTP 错误响应。
|
|
70
179
|
|
|
71
|
-
###
|
|
180
|
+
### H5.1 粗粒度错误类别(EXTERNAL / TOOL / INTERNAL)
|
|
72
181
|
|
|
73
182
|
为方便统计与路由策略,`ProviderProtocolError` 还暴露一个粗粒度错误类别 `category`:
|
|
74
183
|
|