@jsonstudio/rcc 0.89.1960 → 0.89.2195
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 +66 -6
- package/config/file-line-limit-policy.json +21 -0
- package/configsamples/config.json +1 -1
- package/configsamples/config.v1.quickstart.sanitized.json +6 -6
- package/configsamples/provider/iflow/config.v1.json +1 -1
- package/dist/app/config-readers.d.ts +18 -0
- package/dist/app/config-readers.js +95 -0
- package/dist/app/config-readers.js.map +1 -0
- package/dist/app/index.d.ts +9 -0
- package/dist/app/index.js +8 -0
- package/dist/app/index.js.map +1 -0
- package/dist/app/shutdown.d.ts +32 -0
- package/dist/app/shutdown.js +41 -0
- package/dist/app/shutdown.js.map +1 -0
- package/dist/bootstrap/index.d.ts +7 -0
- package/dist/bootstrap/index.js +7 -0
- package/dist/bootstrap/index.js.map +1 -0
- package/dist/bootstrap/log-filter.d.ts +15 -0
- package/dist/bootstrap/log-filter.js +81 -0
- package/dist/bootstrap/log-filter.js.map +1 -0
- package/dist/build-info.js +2 -2
- package/dist/cli/commands/claude.js +6 -5
- package/dist/cli/commands/claude.js.map +1 -1
- package/dist/cli/commands/init/basic.d.ts +1 -7
- package/dist/cli/commands/init/basic.js +0 -79
- package/dist/cli/commands/init/basic.js.map +1 -1
- package/dist/cli/commands/init/prompt-utils.d.ts +7 -0
- package/dist/cli/commands/init/prompt-utils.js +80 -0
- package/dist/cli/commands/init/prompt-utils.js.map +1 -0
- package/dist/cli/commands/init/workflows.js +2 -1
- package/dist/cli/commands/init/workflows.js.map +1 -1
- package/dist/cli/commands/init.js +103 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/launcher/index.d.ts +7 -0
- package/dist/cli/commands/launcher/index.js +7 -0
- package/dist/cli/commands/launcher/index.js.map +1 -0
- package/dist/cli/commands/launcher/types.d.ts +112 -0
- package/dist/cli/commands/launcher/types.js +7 -0
- package/dist/cli/commands/launcher/types.js.map +1 -0
- package/dist/cli/commands/launcher/utils.d.ts +114 -0
- package/dist/cli/commands/launcher/utils.js +378 -0
- package/dist/cli/commands/launcher/utils.js.map +1 -0
- package/dist/cli/commands/launcher-kernel.d.ts +2 -74
- package/dist/cli/commands/launcher-kernel.js +141 -143
- package/dist/cli/commands/launcher-kernel.js.map +1 -1
- package/dist/cli/commands/start-types.d.ts +67 -0
- package/dist/cli/commands/start-types.js +3 -0
- package/dist/cli/commands/start-types.js.map +1 -0
- package/dist/cli/commands/start-utils.d.ts +19 -0
- package/dist/cli/commands/start-utils.js +78 -0
- package/dist/cli/commands/start-utils.js.map +1 -0
- package/dist/cli/commands/start.d.ts +2 -67
- package/dist/cli/commands/start.js +131 -47
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/stop.js +13 -0
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/commands/tmux-inject.js +1 -1
- package/dist/cli/commands/tmux-inject.js.map +1 -1
- package/dist/cli/config/bundled-default-config.d.ts +18 -0
- package/dist/cli/config/bundled-default-config.js +62 -0
- package/dist/cli/config/bundled-default-config.js.map +1 -0
- package/dist/cli/config/init-config.js +60 -2
- package/dist/cli/config/init-config.js.map +1 -1
- package/dist/cli/config/init-provider-catalog.js +3 -1
- package/dist/cli/config/init-provider-catalog.js.map +1 -1
- package/dist/cli/config/precommand-default-script.d.ts +17 -0
- package/dist/cli/config/precommand-default-script.js +47 -0
- package/dist/cli/config/precommand-default-script.js.map +1 -0
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/client/gemini-cli/gemini-cli-protocol-client.js +55 -5
- package/dist/client/gemini-cli/gemini-cli-protocol-client.js.map +1 -1
- package/dist/commands/oauth.js +28 -4
- package/dist/commands/oauth.js.map +1 -1
- package/dist/commands/quota-daemon.js +12 -0
- package/dist/commands/quota-daemon.js.map +1 -1
- package/dist/configsamples/config.v1.quickstart.sanitized.json +1147 -0
- package/dist/constants/index.d.ts +34 -0
- package/dist/constants/index.js +57 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/docs/daemon-admin-ui.html +268 -11
- package/dist/error-handling/quiet-error-handling-center.js +19 -1
- package/dist/error-handling/quiet-error-handling-center.js.map +1 -1
- package/dist/index.js +233 -30
- package/dist/index.js.map +1 -1
- package/dist/manager/index.js +4 -4
- package/dist/manager/index.js.map +1 -1
- package/dist/manager/modules/quota/antigravity-quota-core.d.ts +26 -0
- package/dist/manager/modules/quota/antigravity-quota-core.js +23 -0
- package/dist/manager/modules/quota/antigravity-quota-core.js.map +1 -0
- package/dist/manager/modules/quota/antigravity-quota-helpers.d.ts +16 -0
- package/dist/manager/modules/quota/antigravity-quota-helpers.js +167 -0
- package/dist/manager/modules/quota/antigravity-quota-helpers.js.map +1 -0
- package/dist/manager/modules/quota/antigravity-quota-manager.d.ts +10 -39
- package/dist/manager/modules/quota/antigravity-quota-manager.js +167 -464
- package/dist/manager/modules/quota/antigravity-quota-manager.js.map +1 -1
- package/dist/manager/modules/quota/antigravity-quota-persistence.d.ts +20 -0
- package/dist/manager/modules/quota/antigravity-quota-persistence.js +139 -0
- package/dist/manager/modules/quota/antigravity-quota-persistence.js.map +1 -0
- package/dist/manager/modules/quota/antigravity-quota-runtime.d.ts +55 -0
- package/dist/manager/modules/quota/antigravity-quota-runtime.js +174 -0
- package/dist/manager/modules/quota/antigravity-quota-runtime.js.map +1 -0
- package/dist/manager/modules/quota/antigravity-quota-sync.d.ts +46 -0
- package/dist/manager/modules/quota/antigravity-quota-sync.js +162 -0
- package/dist/manager/modules/quota/antigravity-quota-sync.js.map +1 -0
- package/dist/manager/modules/quota/index.d.ts +1 -0
- package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.d.ts +13 -0
- package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.js +149 -0
- package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.js.map +1 -0
- package/dist/manager/modules/quota/provider-quota-daemon.events.js +1 -148
- package/dist/manager/modules/quota/provider-quota-daemon.events.js.map +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.js.map +1 -1
- package/dist/manager/modules/quota/quota-adapter.d.ts +111 -0
- package/dist/manager/modules/quota/quota-adapter.js +325 -0
- package/dist/manager/modules/quota/quota-adapter.js.map +1 -0
- package/dist/manager/quota/provider-quota-center.d.ts +10 -0
- package/dist/manager/quota/provider-quota-center.js +15 -2
- package/dist/manager/quota/provider-quota-center.js.map +1 -1
- package/dist/modules/llmswitch/bridge/antigravity-signature.d.ts +28 -0
- package/dist/modules/llmswitch/bridge/antigravity-signature.js +180 -0
- package/dist/modules/llmswitch/bridge/antigravity-signature.js.map +1 -0
- package/dist/modules/llmswitch/bridge/index.d.ts +13 -0
- package/dist/modules/llmswitch/bridge/index.js +14 -0
- package/dist/modules/llmswitch/bridge/index.js.map +1 -0
- package/dist/modules/llmswitch/bridge/module-loader.d.ts +16 -0
- package/dist/modules/llmswitch/bridge/module-loader.js +59 -0
- package/dist/modules/llmswitch/bridge/module-loader.js.map +1 -0
- package/dist/modules/llmswitch/bridge/quota-manager.d.ts +8 -0
- package/dist/modules/llmswitch/bridge/quota-manager.js +37 -0
- package/dist/modules/llmswitch/bridge/quota-manager.js.map +1 -0
- package/dist/modules/llmswitch/bridge/response-converter.d.ts +11 -0
- package/dist/modules/llmswitch/bridge/response-converter.js +68 -0
- package/dist/modules/llmswitch/bridge/response-converter.js.map +1 -0
- package/dist/modules/llmswitch/bridge/routing-integrations.d.ts +12 -0
- package/dist/modules/llmswitch/bridge/routing-integrations.js +56 -0
- package/dist/modules/llmswitch/bridge/routing-integrations.js.map +1 -0
- package/dist/modules/llmswitch/bridge/runtime-integrations.d.ts +34 -0
- package/dist/modules/llmswitch/bridge/runtime-integrations.js +87 -0
- package/dist/modules/llmswitch/bridge/runtime-integrations.js.map +1 -0
- package/dist/modules/llmswitch/bridge/snapshot-recorder.d.ts +13 -0
- package/dist/modules/llmswitch/bridge/snapshot-recorder.js +484 -0
- package/dist/modules/llmswitch/bridge/snapshot-recorder.js.map +1 -0
- package/dist/modules/llmswitch/bridge/state-integrations.d.ts +59 -0
- package/dist/modules/llmswitch/bridge/state-integrations.js +264 -0
- package/dist/modules/llmswitch/bridge/state-integrations.js.map +1 -0
- package/dist/modules/llmswitch/bridge.d.ts +14 -131
- package/dist/modules/llmswitch/bridge.js +14 -834
- package/dist/modules/llmswitch/bridge.js.map +1 -1
- package/dist/modules/pipeline/types/provider-config-types.d.ts +240 -0
- package/dist/modules/pipeline/types/provider-config-types.js +2 -0
- package/dist/modules/pipeline/types/provider-config-types.js.map +1 -0
- package/dist/modules/pipeline/types/provider-types.d.ts +2 -239
- package/dist/modules/pipeline/types/provider-types.js +1 -1
- package/dist/modules/pipeline/types/provider-types.js.map +1 -1
- package/dist/modules/pipeline/utils/debug-logger.js +3 -5
- package/dist/modules/pipeline/utils/debug-logger.js.map +1 -1
- package/dist/providers/auth/apikey-auth.d.ts +57 -1
- package/dist/providers/auth/apikey-auth.js +131 -1
- package/dist/providers/auth/apikey-auth.js.map +1 -1
- package/dist/providers/auth/oauth-lifecycle/error-detection.d.ts +8 -0
- package/dist/providers/auth/oauth-lifecycle/error-detection.js +71 -0
- package/dist/providers/auth/oauth-lifecycle/error-detection.js.map +1 -0
- package/dist/providers/auth/oauth-lifecycle/index.d.ts +10 -0
- package/dist/providers/auth/oauth-lifecycle/index.js +11 -0
- package/dist/providers/auth/oauth-lifecycle/index.js.map +1 -0
- package/dist/providers/auth/oauth-lifecycle/path-resolver.d.ts +18 -0
- package/dist/providers/auth/oauth-lifecycle/path-resolver.js +121 -0
- package/dist/providers/auth/oauth-lifecycle/path-resolver.js.map +1 -0
- package/dist/providers/auth/oauth-lifecycle/throttle.d.ts +22 -0
- package/dist/providers/auth/oauth-lifecycle/throttle.js +37 -0
- package/dist/providers/auth/oauth-lifecycle/throttle.js.map +1 -0
- package/dist/providers/auth/oauth-lifecycle/token-helpers.d.ts +36 -0
- package/dist/providers/auth/oauth-lifecycle/token-helpers.js +127 -0
- package/dist/providers/auth/oauth-lifecycle/token-helpers.js.map +1 -0
- package/dist/providers/auth/oauth-lifecycle/token-io.d.ts +14 -0
- package/dist/providers/auth/oauth-lifecycle/token-io.js +151 -0
- package/dist/providers/auth/oauth-lifecycle/token-io.js.map +1 -0
- package/dist/providers/auth/oauth-lifecycle.js +70 -446
- package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
- package/dist/providers/auth/oauth-repair-cooldown.js +8 -3
- package/dist/providers/auth/oauth-repair-cooldown.js.map +1 -1
- package/dist/providers/auth/oauth-repair-env.js +5 -3
- package/dist/providers/auth/oauth-repair-env.js.map +1 -1
- package/dist/providers/auth/oauth-token-utils.d.ts +61 -0
- package/dist/providers/auth/oauth-token-utils.js +187 -0
- package/dist/providers/auth/oauth-token-utils.js.map +1 -0
- package/dist/providers/auth/oauth-utils/camoufox-helper.d.ts +21 -0
- package/dist/providers/auth/oauth-utils/camoufox-helper.js +82 -0
- package/dist/providers/auth/oauth-utils/camoufox-helper.js.map +1 -0
- package/dist/providers/auth/oauth-utils/error-extraction.d.ts +17 -0
- package/dist/providers/auth/oauth-utils/error-extraction.js +80 -0
- package/dist/providers/auth/oauth-utils/error-extraction.js.map +1 -0
- package/dist/providers/auth/oauth-utils/index.d.ts +7 -0
- package/dist/providers/auth/oauth-utils/index.js +8 -0
- package/dist/providers/auth/oauth-utils/index.js.map +1 -0
- package/dist/providers/auth/token-refresh/index.d.ts +6 -0
- package/dist/providers/auth/token-refresh/index.js +7 -0
- package/dist/providers/auth/token-refresh/index.js.map +1 -0
- package/dist/providers/auth/token-refresh/token-state.d.ts +17 -0
- package/dist/providers/auth/token-refresh/token-state.js +30 -0
- package/dist/providers/auth/token-refresh/token-state.js.map +1 -0
- package/dist/providers/auth/token-storage/index.d.ts +7 -0
- package/dist/providers/auth/token-storage/index.js +8 -0
- package/dist/providers/auth/token-storage/index.js.map +1 -0
- package/dist/providers/auth/token-storage/token-file-resolver.d.ts +12 -0
- package/dist/providers/auth/token-storage/token-file-resolver.js +117 -0
- package/dist/providers/auth/token-storage/token-file-resolver.js.map +1 -0
- package/dist/providers/auth/token-storage/token-persistence.d.ts +22 -0
- package/dist/providers/auth/token-storage/token-persistence.js +86 -0
- package/dist/providers/auth/token-storage/token-persistence.js.map +1 -0
- package/dist/providers/auth/tokenfile-auth.js +12 -9
- package/dist/providers/auth/tokenfile-auth.js.map +1 -1
- package/dist/providers/core/api/provider-config.d.ts +8 -0
- package/dist/providers/core/config/camoufox-launcher.d.ts +1 -0
- package/dist/providers/core/config/camoufox-launcher.js +40 -9
- package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
- package/dist/providers/core/config/oauth-flows.js +7 -2
- package/dist/providers/core/config/oauth-flows.js.map +1 -1
- package/dist/providers/core/config/provider-debug-hooks.d.ts +0 -12
- package/dist/providers/core/config/provider-debug-hooks.js +16 -56
- package/dist/providers/core/config/provider-debug-hooks.js.map +1 -1
- package/dist/providers/core/config/provider-debug-output-utils.d.ts +38 -0
- package/dist/providers/core/config/provider-debug-output-utils.js +46 -0
- package/dist/providers/core/config/provider-debug-output-utils.js.map +1 -0
- package/dist/providers/core/config/provider-oauth-configs.js +13 -9
- package/dist/providers/core/config/provider-oauth-configs.js.map +1 -1
- package/dist/providers/core/runtime/antigravity-request-type.d.ts +2 -0
- package/dist/providers/core/runtime/antigravity-request-type.js +126 -0
- package/dist/providers/core/runtime/antigravity-request-type.js.map +1 -0
- package/dist/providers/core/runtime/base-provider-runtime-helpers.d.ts +27 -0
- package/dist/providers/core/runtime/base-provider-runtime-helpers.js +105 -0
- package/dist/providers/core/runtime/base-provider-runtime-helpers.js.map +1 -0
- package/dist/providers/core/runtime/base-provider-series-cooldown.d.ts +19 -0
- package/dist/providers/core/runtime/base-provider-series-cooldown.js +363 -0
- package/dist/providers/core/runtime/base-provider-series-cooldown.js.map +1 -0
- package/dist/providers/core/runtime/base-provider.d.ts +4 -35
- package/dist/providers/core/runtime/base-provider.js +20 -501
- package/dist/providers/core/runtime/base-provider.js.map +1 -1
- package/dist/providers/core/runtime/deepseek-http-provider-helpers.d.ts +32 -0
- package/dist/providers/core/runtime/deepseek-http-provider-helpers.js +301 -0
- package/dist/providers/core/runtime/deepseek-http-provider-helpers.js.map +1 -0
- package/dist/providers/core/runtime/deepseek-http-provider.d.ts +0 -3
- package/dist/providers/core/runtime/deepseek-http-provider.js +5 -127
- package/dist/providers/core/runtime/deepseek-http-provider.js.map +1 -1
- package/dist/providers/core/runtime/deepseek-session-pow-helpers.d.ts +21 -0
- package/dist/providers/core/runtime/deepseek-session-pow-helpers.js +99 -0
- package/dist/providers/core/runtime/deepseek-session-pow-helpers.js.map +1 -0
- package/dist/providers/core/runtime/deepseek-session-pow.js +17 -100
- package/dist/providers/core/runtime/deepseek-session-pow.js.map +1 -1
- package/dist/providers/core/runtime/gemini-cli-http-provider.d.ts +0 -15
- package/dist/providers/core/runtime/gemini-cli-http-provider.js +13 -303
- package/dist/providers/core/runtime/gemini-cli-http-provider.js.map +1 -1
- package/dist/providers/core/runtime/gemini-cli-response-postprocessor.d.ts +9 -0
- package/dist/providers/core/runtime/gemini-cli-response-postprocessor.js +85 -0
- package/dist/providers/core/runtime/gemini-cli-response-postprocessor.js.map +1 -0
- package/dist/providers/core/runtime/gemini-http-provider.js +2 -2
- package/dist/providers/core/runtime/gemini-http-provider.js.map +1 -1
- package/dist/providers/core/runtime/gemini-sse-normalizer.d.ts +25 -0
- package/dist/providers/core/runtime/gemini-sse-normalizer.js +159 -0
- package/dist/providers/core/runtime/gemini-sse-normalizer.js.map +1 -0
- package/dist/providers/core/runtime/http-request-executor.js +1 -48
- package/dist/providers/core/runtime/http-request-executor.js.map +1 -1
- package/dist/providers/core/runtime/http-transport-provider.d.ts +2 -48
- package/dist/providers/core/runtime/http-transport-provider.js +158 -1273
- package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
- package/dist/providers/core/runtime/provider-bootstrap-utils.d.ts +20 -0
- package/dist/providers/core/runtime/provider-bootstrap-utils.js +78 -0
- package/dist/providers/core/runtime/provider-bootstrap-utils.js.map +1 -0
- package/dist/providers/core/runtime/provider-factory-helpers.d.ts +19 -0
- package/dist/providers/core/runtime/provider-factory-helpers.js +203 -0
- package/dist/providers/core/runtime/provider-factory-helpers.js.map +1 -0
- package/dist/providers/core/runtime/provider-factory.d.ts +9 -7
- package/dist/providers/core/runtime/provider-factory.js +57 -214
- package/dist/providers/core/runtime/provider-factory.js.map +1 -1
- package/dist/providers/core/runtime/provider-family-profile-utils.d.ts +23 -0
- package/dist/providers/core/runtime/provider-family-profile-utils.js +57 -0
- package/dist/providers/core/runtime/provider-family-profile-utils.js.map +1 -0
- package/dist/providers/core/runtime/provider-http-executor-utils.d.ts +32 -0
- package/dist/providers/core/runtime/provider-http-executor-utils.js +92 -0
- package/dist/providers/core/runtime/provider-http-executor-utils.js.map +1 -0
- package/dist/providers/core/runtime/provider-iflow-business-error-utils.d.ts +15 -0
- package/dist/providers/core/runtime/provider-iflow-business-error-utils.js +49 -0
- package/dist/providers/core/runtime/provider-iflow-business-error-utils.js.map +1 -0
- package/dist/providers/core/runtime/provider-request-executor-deps-factory.d.ts +29 -0
- package/dist/providers/core/runtime/provider-request-executor-deps-factory.js +41 -0
- package/dist/providers/core/runtime/provider-request-executor-deps-factory.js.map +1 -0
- package/dist/providers/core/runtime/provider-request-header-orchestrator.d.ts +30 -0
- package/dist/providers/core/runtime/provider-request-header-orchestrator.js +91 -0
- package/dist/providers/core/runtime/provider-request-header-orchestrator.js.map +1 -0
- package/dist/providers/core/runtime/provider-request-preprocessor.d.ts +5 -0
- package/dist/providers/core/runtime/provider-request-preprocessor.js +39 -0
- package/dist/providers/core/runtime/provider-request-preprocessor.js.map +1 -0
- package/dist/providers/core/runtime/provider-request-shaping-utils.d.ts +37 -0
- package/dist/providers/core/runtime/provider-request-shaping-utils.js +65 -0
- package/dist/providers/core/runtime/provider-request-shaping-utils.js.map +1 -0
- package/dist/providers/core/runtime/provider-response-postprocessor.d.ts +7 -0
- package/dist/providers/core/runtime/provider-response-postprocessor.js +28 -0
- package/dist/providers/core/runtime/provider-response-postprocessor.js.map +1 -0
- package/dist/providers/core/runtime/provider-runtime-utils.d.ts +16 -0
- package/dist/providers/core/runtime/provider-runtime-utils.js +51 -0
- package/dist/providers/core/runtime/provider-runtime-utils.js.map +1 -0
- package/dist/providers/core/runtime/responses-provider-helpers.d.ts +37 -0
- package/dist/providers/core/runtime/responses-provider-helpers.js +212 -0
- package/dist/providers/core/runtime/responses-provider-helpers.js.map +1 -0
- package/dist/providers/core/runtime/responses-provider.d.ts +0 -10
- package/dist/providers/core/runtime/responses-provider.js +14 -224
- package/dist/providers/core/runtime/responses-provider.js.map +1 -1
- package/dist/providers/core/runtime/runtime-endpoint-resolver.d.ts +21 -0
- package/dist/providers/core/runtime/runtime-endpoint-resolver.js +64 -0
- package/dist/providers/core/runtime/runtime-endpoint-resolver.js.map +1 -0
- package/dist/providers/core/runtime/service-profile-resolver.d.ts +29 -0
- package/dist/providers/core/runtime/service-profile-resolver.js +88 -0
- package/dist/providers/core/runtime/service-profile-resolver.js.map +1 -0
- package/dist/providers/core/runtime/transport/auth-mode-utils.d.ts +13 -0
- package/dist/providers/core/runtime/transport/auth-mode-utils.js +43 -0
- package/dist/providers/core/runtime/transport/auth-mode-utils.js.map +1 -0
- package/dist/providers/core/runtime/transport/auth-provider-factory.d.ts +37 -0
- package/dist/providers/core/runtime/transport/auth-provider-factory.js +131 -0
- package/dist/providers/core/runtime/transport/auth-provider-factory.js.map +1 -0
- package/dist/providers/core/runtime/transport/header-utils.d.ts +15 -0
- package/dist/providers/core/runtime/transport/header-utils.js +85 -0
- package/dist/providers/core/runtime/transport/header-utils.js.map +1 -0
- package/dist/providers/core/runtime/transport/iflow-signer.d.ts +12 -0
- package/dist/providers/core/runtime/transport/iflow-signer.js +63 -0
- package/dist/providers/core/runtime/transport/iflow-signer.js.map +1 -0
- package/dist/providers/core/runtime/transport/index.d.ts +15 -0
- package/dist/providers/core/runtime/transport/index.js +16 -0
- package/dist/providers/core/runtime/transport/index.js.map +1 -0
- package/dist/providers/core/runtime/transport/oauth-header-preflight.d.ts +12 -0
- package/dist/providers/core/runtime/transport/oauth-header-preflight.js +56 -0
- package/dist/providers/core/runtime/transport/oauth-header-preflight.js.map +1 -0
- package/dist/providers/core/runtime/transport/oauth-recovery-handler.d.ts +34 -0
- package/dist/providers/core/runtime/transport/oauth-recovery-handler.js +126 -0
- package/dist/providers/core/runtime/transport/oauth-recovery-handler.js.map +1 -0
- package/dist/providers/core/runtime/transport/provider-payload-utils.d.ts +21 -0
- package/dist/providers/core/runtime/transport/provider-payload-utils.js +88 -0
- package/dist/providers/core/runtime/transport/provider-payload-utils.js.map +1 -0
- package/dist/providers/core/runtime/transport/request-header-builder.d.ts +24 -0
- package/dist/providers/core/runtime/transport/request-header-builder.js +90 -0
- package/dist/providers/core/runtime/transport/request-header-builder.js.map +1 -0
- package/dist/providers/core/runtime/transport/runtime-detector.d.ts +22 -0
- package/dist/providers/core/runtime/transport/runtime-detector.js +63 -0
- package/dist/providers/core/runtime/transport/runtime-detector.js.map +1 -0
- package/dist/providers/core/runtime/transport/session-header-utils.d.ts +8 -0
- package/dist/providers/core/runtime/transport/session-header-utils.js +72 -0
- package/dist/providers/core/runtime/transport/session-header-utils.js.map +1 -0
- package/dist/providers/core/runtime/vision-debug-utils.d.ts +2 -0
- package/dist/providers/core/runtime/vision-debug-utils.js +31 -0
- package/dist/providers/core/runtime/vision-debug-utils.js.map +1 -1
- package/dist/providers/core/strategies/oauth-auth-code-flow.d.ts +13 -0
- package/dist/providers/core/strategies/oauth-auth-code-flow.js +272 -55
- package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
- package/dist/providers/core/utils/snapshot-writer-buffer.d.ts +13 -0
- package/dist/providers/core/utils/snapshot-writer-buffer.js +39 -0
- package/dist/providers/core/utils/snapshot-writer-buffer.js.map +1 -0
- package/dist/providers/core/utils/snapshot-writer.js +75 -54
- package/dist/providers/core/utils/snapshot-writer.js.map +1 -1
- package/dist/providers/profile/families/antigravity-profile.js +2 -10
- package/dist/providers/profile/families/antigravity-profile.js.map +1 -1
- package/dist/providers/profile/families/deepseek-profile.d.ts +2 -0
- package/dist/providers/profile/families/deepseek-profile.js +110 -0
- package/dist/providers/profile/families/deepseek-profile.js.map +1 -0
- package/dist/providers/profile/families/iflow-profile.js +89 -10
- package/dist/providers/profile/families/iflow-profile.js.map +1 -1
- package/dist/providers/profile/provider-profile-loader.d.ts +5 -0
- package/dist/providers/profile/provider-profile-loader.js +35 -0
- package/dist/providers/profile/provider-profile-loader.js.map +1 -1
- package/dist/providers/profile/provider-profile.d.ts +16 -1
- package/dist/runtime/runtime-flags.js +1 -1
- package/dist/runtime/runtime-flags.js.map +1 -1
- package/dist/runtime/wasm-runtime/index.d.ts +56 -0
- package/dist/runtime/wasm-runtime/index.js +69 -0
- package/dist/runtime/wasm-runtime/index.js.map +1 -0
- package/dist/scripts/camoufox/launch-auth.mjs +158 -10
- package/dist/server/handlers/handler-response-utils.d.ts +13 -0
- package/dist/server/handlers/handler-response-utils.js +427 -0
- package/dist/server/handlers/handler-response-utils.js.map +1 -0
- package/dist/server/handlers/handler-utils.d.ts +2 -11
- package/dist/server/handlers/handler-utils.js +21 -421
- package/dist/server/handlers/handler-utils.js.map +1 -1
- package/dist/server/runtime/http-server/clock-client-reaper.d.ts +23 -0
- package/dist/server/runtime/http-server/clock-client-reaper.js +159 -0
- package/dist/server/runtime/http-server/clock-client-reaper.js.map +1 -0
- package/dist/server/runtime/http-server/clock-client-registry-utils.d.ts +87 -0
- package/dist/server/runtime/http-server/clock-client-registry-utils.js +276 -0
- package/dist/server/runtime/http-server/clock-client-registry-utils.js.map +1 -0
- package/dist/server/runtime/http-server/clock-client-registry.d.ts +5 -50
- package/dist/server/runtime/http-server/clock-client-registry.js +74 -320
- package/dist/server/runtime/http-server/clock-client-registry.js.map +1 -1
- package/dist/server/runtime/http-server/clock-client-route-utils.d.ts +12 -0
- package/dist/server/runtime/http-server/clock-client-route-utils.js +210 -0
- package/dist/server/runtime/http-server/clock-client-route-utils.js.map +1 -0
- package/dist/server/runtime/http-server/clock-client-routes.js +27 -201
- package/dist/server/runtime/http-server/clock-client-routes.js.map +1 -1
- package/dist/server/runtime/http-server/clock-daemon-log-throttle.d.ts +12 -0
- package/dist/server/runtime/http-server/clock-daemon-log-throttle.js +56 -0
- package/dist/server/runtime/http-server/clock-daemon-log-throttle.js.map +1 -0
- package/dist/server/runtime/http-server/daemon-admin/control-handler.js +143 -14
- 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.d.ts +19 -0
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler-utils.js +107 -0
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler-utils.js.map +1 -0
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +2 -104
- 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.d.ts +28 -0
- package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js +298 -0
- package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js.map +1 -0
- package/dist/server/runtime/http-server/daemon-admin/providers-handler-utils.d.ts +22 -0
- package/dist/server/runtime/http-server/daemon-admin/providers-handler-utils.js +211 -0
- package/dist/server/runtime/http-server/daemon-admin/providers-handler-utils.js.map +1 -0
- package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +25 -454
- 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 +81 -32
- package/dist/server/runtime/http-server/daemon-admin/quota-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/routecodex-x7e-gate.d.ts +22 -0
- package/dist/server/runtime/http-server/daemon-admin/routecodex-x7e-gate.js +70 -0
- package/dist/server/runtime/http-server/daemon-admin/routecodex-x7e-gate.js.map +1 -0
- package/dist/server/runtime/http-server/executor/antigravity-detector.d.ts +34 -0
- package/dist/server/runtime/http-server/executor/antigravity-detector.js +118 -0
- package/dist/server/runtime/http-server/executor/antigravity-detector.js.map +1 -0
- package/dist/server/runtime/http-server/executor/env-config.d.ts +13 -0
- package/dist/server/runtime/http-server/executor/env-config.js +20 -0
- package/dist/server/runtime/http-server/executor/env-config.js.map +1 -0
- package/dist/server/runtime/http-server/executor/index.d.ts +11 -0
- package/dist/server/runtime/http-server/executor/index.js +18 -0
- package/dist/server/runtime/http-server/executor/index.js.map +1 -0
- package/dist/server/runtime/http-server/executor/provider-request-context.d.ts +20 -0
- package/dist/server/runtime/http-server/executor/provider-request-context.js +38 -0
- package/dist/server/runtime/http-server/executor/provider-request-context.js.map +1 -0
- package/dist/server/runtime/http-server/executor/provider-response-converter.d.ts +23 -0
- package/dist/server/runtime/http-server/executor/provider-response-converter.js +337 -0
- package/dist/server/runtime/http-server/executor/provider-response-converter.js.map +1 -0
- package/dist/server/runtime/http-server/executor/provider-response-utils.d.ts +8 -0
- package/dist/server/runtime/http-server/executor/provider-response-utils.js +93 -0
- package/dist/server/runtime/http-server/executor/provider-response-utils.js.map +1 -0
- package/dist/server/runtime/http-server/executor/provider-runtime-resolver.d.ts +23 -0
- package/dist/server/runtime/http-server/executor/provider-runtime-resolver.js +85 -0
- package/dist/server/runtime/http-server/executor/provider-runtime-resolver.js.map +1 -0
- package/dist/server/runtime/http-server/executor/request-executor-core-utils.d.ts +7 -0
- package/dist/server/runtime/http-server/executor/request-executor-core-utils.js +39 -0
- package/dist/server/runtime/http-server/executor/request-executor-core-utils.js.map +1 -0
- package/dist/server/runtime/http-server/executor/request-retry-helpers.d.ts +16 -0
- package/dist/server/runtime/http-server/executor/request-retry-helpers.js +218 -0
- package/dist/server/runtime/http-server/executor/request-retry-helpers.js.map +1 -0
- package/dist/server/runtime/http-server/executor/retry-engine.d.ts +21 -0
- package/dist/server/runtime/http-server/executor/retry-engine.js +73 -0
- package/dist/server/runtime/http-server/executor/retry-engine.js.map +1 -0
- package/dist/server/runtime/http-server/executor/sse-error-handler.d.ts +14 -0
- package/dist/server/runtime/http-server/executor/sse-error-handler.js +127 -0
- package/dist/server/runtime/http-server/executor/sse-error-handler.js.map +1 -0
- package/dist/server/runtime/http-server/executor/usage-aggregator.d.ts +39 -0
- package/dist/server/runtime/http-server/executor/usage-aggregator.js +177 -0
- package/dist/server/runtime/http-server/executor/usage-aggregator.js.map +1 -0
- package/dist/server/runtime/http-server/executor/usage-logger.d.ts +7 -0
- package/dist/server/runtime/http-server/executor/usage-logger.js +13 -0
- package/dist/server/runtime/http-server/executor/usage-logger.js.map +1 -0
- package/dist/server/runtime/http-server/executor/utils.d.ts +21 -0
- package/dist/server/runtime/http-server/executor/utils.js +62 -0
- package/dist/server/runtime/http-server/executor/utils.js.map +1 -0
- package/dist/server/runtime/http-server/executor-metadata.js +83 -2
- package/dist/server/runtime/http-server/executor-metadata.js.map +1 -1
- package/dist/server/runtime/http-server/executor-response.js +17 -9
- package/dist/server/runtime/http-server/executor-response.js.map +1 -1
- package/dist/server/runtime/http-server/http-server-bootstrap.d.ts +31 -0
- package/dist/server/runtime/http-server/http-server-bootstrap.js +367 -0
- package/dist/server/runtime/http-server/http-server-bootstrap.js.map +1 -0
- package/dist/server/runtime/http-server/http-server-clock-daemon.d.ts +5 -0
- package/dist/server/runtime/http-server/http-server-clock-daemon.js +242 -0
- package/dist/server/runtime/http-server/http-server-clock-daemon.js.map +1 -0
- package/dist/server/runtime/http-server/http-server-legacy-pipeline.d.ts +2 -0
- package/dist/server/runtime/http-server/http-server-legacy-pipeline.js +65 -0
- package/dist/server/runtime/http-server/http-server-legacy-pipeline.js.map +1 -0
- package/dist/server/runtime/http-server/http-server-lifecycle.d.ts +27 -0
- package/dist/server/runtime/http-server/http-server-lifecycle.js +285 -0
- package/dist/server/runtime/http-server/http-server-lifecycle.js.map +1 -0
- package/dist/server/runtime/http-server/http-server-runtime-providers.d.ts +10 -0
- package/dist/server/runtime/http-server/http-server-runtime-providers.js +415 -0
- package/dist/server/runtime/http-server/http-server-runtime-providers.js.map +1 -0
- package/dist/server/runtime/http-server/http-server-runtime-setup.d.ts +2 -0
- package/dist/server/runtime/http-server/http-server-runtime-setup.js +93 -0
- package/dist/server/runtime/http-server/http-server-runtime-setup.js.map +1 -0
- package/dist/server/runtime/http-server/index.d.ts +4 -46
- package/dist/server/runtime/http-server/index.js +98 -2577
- package/dist/server/runtime/http-server/index.js.map +1 -1
- package/dist/server/runtime/http-server/request-executor.d.ts +8 -21
- package/dist/server/runtime/http-server/request-executor.js +94 -956
- package/dist/server/runtime/http-server/request-executor.js.map +1 -1
- package/dist/server/runtime/http-server/routes.js +2 -2
- package/dist/server/runtime/http-server/routes.js.map +1 -1
- package/dist/server/runtime/http-server/servertool-admin-state.d.ts +42 -0
- package/dist/server/runtime/http-server/servertool-admin-state.js +210 -0
- package/dist/server/runtime/http-server/servertool-admin-state.js.map +1 -0
- package/dist/server/runtime/http-server/stats-manager-internals.d.ts +96 -0
- package/dist/server/runtime/http-server/stats-manager-internals.js +311 -0
- package/dist/server/runtime/http-server/stats-manager-internals.js.map +1 -0
- package/dist/server/runtime/http-server/stats-manager-table.d.ts +6 -0
- package/dist/server/runtime/http-server/stats-manager-table.js +135 -0
- package/dist/server/runtime/http-server/stats-manager-table.js.map +1 -0
- package/dist/server/runtime/http-server/stats-manager.d.ts +0 -23
- package/dist/server/runtime/http-server/stats-manager.js +95 -483
- package/dist/server/runtime/http-server/stats-manager.js.map +1 -1
- package/dist/server/utils/client-connection-state.js +61 -0
- package/dist/server/utils/client-connection-state.js.map +1 -1
- package/dist/server/utils/request-id-manager.d.ts +6 -0
- package/dist/server/utils/request-id-manager.js +105 -15
- package/dist/server/utils/request-id-manager.js.map +1 -1
- package/dist/server/utils/stage-logger.js +14 -4
- package/dist/server/utils/stage-logger.js.map +1 -1
- package/dist/server-lifecycle/index.d.ts +6 -0
- package/dist/server-lifecycle/index.js +7 -0
- package/dist/server-lifecycle/index.js.map +1 -0
- package/dist/server-lifecycle/port-utils.d.ts +18 -0
- package/dist/server-lifecycle/port-utils.js +204 -0
- package/dist/server-lifecycle/port-utils.js.map +1 -0
- package/dist/sharedmodule/process-snapshot.d.ts +26 -0
- package/dist/sharedmodule/process-snapshot.js +141 -0
- package/dist/sharedmodule/process-snapshot.js.map +1 -0
- package/dist/token-daemon/index.js +10 -3
- package/dist/token-daemon/index.js.map +1 -1
- package/dist/token-daemon/token-daemon.js +9 -11
- package/dist/token-daemon/token-daemon.js.map +1 -1
- package/dist/token-daemon/token-utils.d.ts +1 -1
- package/dist/token-daemon/token-utils.js +19 -3
- package/dist/token-daemon/token-utils.js.map +1 -1
- package/dist/tools/semantic-replay-snapshot-loader.d.ts +4 -0
- package/dist/tools/semantic-replay-snapshot-loader.js +396 -0
- package/dist/tools/semantic-replay-snapshot-loader.js.map +1 -0
- package/dist/tools/semantic-replay.js +2 -393
- package/dist/tools/semantic-replay.js.map +1 -1
- package/dist/utils/daemon-stop-intent.d.ts +17 -0
- package/dist/utils/daemon-stop-intent.js +104 -0
- package/dist/utils/daemon-stop-intent.js.map +1 -0
- package/dist/utils/key-429-tracker.js +6 -5
- package/dist/utils/key-429-tracker.js.map +1 -1
- package/dist/utils/pipeline-health-manager.js +7 -6
- package/dist/utils/pipeline-health-manager.js.map +1 -1
- package/dist/utils/process-lifecycle-logger.js +45 -1
- package/dist/utils/process-lifecycle-logger.js.map +1 -1
- package/dist/utils/runtime-exit-forensics.d.ts +2 -2
- package/dist/utils/runtime-exit-forensics.js +10 -5
- package/dist/utils/runtime-exit-forensics.js.map +1 -1
- package/dist/utils/snapshot-writer.js +3 -3
- package/dist/utils/snapshot-writer.js.map +1 -1
- package/docs/QUOTA_MANAGER_V3.md +3 -0
- package/docs/VIRTUAL_ROUTER_PRIORITY_AND_HEALTH.md +114 -0
- package/docs/daemon-admin-ui.html +268 -11
- package/docs/file-line-limit-gate.md +30 -0
- package/docs/refactoring/host-164.3-responsibility-migration.md +62 -0
- package/docs/release-iflow-400-gate.md +58 -0
- package/docs/replay-evidence-iflow-400.txt +33 -0
- package/docs/stop-message-auto.md +4 -3
- package/package.json +4 -3
- package/scripts/auth-iflow-manual.mjs +13 -23
- package/scripts/camoufox/launch-auth.mjs +158 -10
- package/scripts/ci/check-file-line-limit.mjs +149 -0
- package/scripts/copy-compat-assets.mjs +26 -0
- package/scripts/copy-modules-config.mjs +18 -0
- package/scripts/tests/ci-jest.mjs +4 -0
- package/scripts/verify-codex-error-samples.mjs +27 -6
|
@@ -881,6 +881,35 @@
|
|
|
881
881
|
<tbody id="controlQuotaProvidersTbody"></tbody>
|
|
882
882
|
</table>
|
|
883
883
|
</div>
|
|
884
|
+
|
|
885
|
+
<p class="section-title" style="margin-top: 14px;">ServerTool runtime</p>
|
|
886
|
+
<p class="section-sub">
|
|
887
|
+
Toggle servertool orchestration on/off instantly for this server process.
|
|
888
|
+
</p>
|
|
889
|
+
<div class="row" style="margin-bottom: 10px;">
|
|
890
|
+
<span id="controlServerToolStatus" class="pill">state: —</span>
|
|
891
|
+
<span id="controlServerToolUpdatedAt" class="mono muted">updated: —</span>
|
|
892
|
+
<button id="controlServerToolToggleBtn" class="primary">Toggle</button>
|
|
893
|
+
</div>
|
|
894
|
+
<div class="notice mono" id="controlServerToolCountsBox" style="white-space: pre-wrap; margin-bottom: 10px;">
|
|
895
|
+
executions: —
|
|
896
|
+
success: —
|
|
897
|
+
failure: —
|
|
898
|
+
</div>
|
|
899
|
+
<div class="table-wrap">
|
|
900
|
+
<table class="table">
|
|
901
|
+
<thead>
|
|
902
|
+
<tr>
|
|
903
|
+
<th>tool</th>
|
|
904
|
+
<th>executions</th>
|
|
905
|
+
<th>success</th>
|
|
906
|
+
<th>failure</th>
|
|
907
|
+
<th>details</th>
|
|
908
|
+
</tr>
|
|
909
|
+
</thead>
|
|
910
|
+
<tbody id="controlServerToolToolsTbody"></tbody>
|
|
911
|
+
</table>
|
|
912
|
+
</div>
|
|
884
913
|
</div>
|
|
885
914
|
</div>
|
|
886
915
|
</section>
|
|
@@ -1453,7 +1482,7 @@
|
|
|
1453
1482
|
<div class="card" style="box-shadow:none;">
|
|
1454
1483
|
<p class="section-title">Routing editor</p>
|
|
1455
1484
|
<p class="section-sub">
|
|
1456
|
-
Edits routing in a selected config file (auto-detects <span class="mono">virtualrouter.routing</span> or <span class="mono">routing</span>).
|
|
1485
|
+
Edits routing policy in a selected config file (auto-detects <span class="mono">virtualrouter.routing + virtualrouter.loadBalancing</span> or <span class="mono">routing + loadBalancing</span>).
|
|
1457
1486
|
</p>
|
|
1458
1487
|
<div class="row" style="margin-bottom: 10px;">
|
|
1459
1488
|
<label for="routingSourceSelect">source</label>
|
|
@@ -1481,6 +1510,8 @@
|
|
|
1481
1510
|
<div class="row" style="margin-bottom: 10px;">
|
|
1482
1511
|
<button id="loadRoutingBtn" class="primary">Load</button>
|
|
1483
1512
|
<button id="saveRoutingBtn" class="primary">Save</button>
|
|
1513
|
+
<button id="saveRoutingRestartLocalBtn">Save + Restart local</button>
|
|
1514
|
+
<button id="saveRoutingRestartAllBtn">Save + Restart all</button>
|
|
1484
1515
|
<button id="refreshRoutingPoolBtn">Refresh pool status</button>
|
|
1485
1516
|
<button id="routingRegExpandBtn">Expand all</button>
|
|
1486
1517
|
<button id="routingRegCollapseBtn">Collapse all</button>
|
|
@@ -1521,6 +1552,7 @@
|
|
|
1521
1552
|
routingSources: [],
|
|
1522
1553
|
routingSourcesUpdatedAt: 0,
|
|
1523
1554
|
routingLocation: "virtualrouter.routing",
|
|
1555
|
+
routingHasLoadBalancing: false,
|
|
1524
1556
|
credentials: [],
|
|
1525
1557
|
oauthMode: "manual"
|
|
1526
1558
|
};
|
|
@@ -2782,13 +2814,24 @@
|
|
|
2782
2814
|
const serversBody = $("controlServersTbody");
|
|
2783
2815
|
const hitsBody = $("controlHitsTbody");
|
|
2784
2816
|
const quotaBody = $("controlQuotaProvidersTbody");
|
|
2817
|
+
const serverToolBody = $("controlServerToolToolsTbody");
|
|
2818
|
+
const serverToolStatus = $("controlServerToolStatus");
|
|
2819
|
+
const serverToolUpdatedAt = $("controlServerToolUpdatedAt");
|
|
2820
|
+
const serverToolCountsBox = $("controlServerToolCountsBox");
|
|
2821
|
+
const serverToolToggleBtn = $("controlServerToolToggleBtn");
|
|
2785
2822
|
if (serversBody) serversBody.replaceChildren();
|
|
2786
2823
|
if (hitsBody) hitsBody.replaceChildren();
|
|
2787
2824
|
if (quotaBody) quotaBody.replaceChildren();
|
|
2825
|
+
if (serverToolBody) serverToolBody.replaceChildren();
|
|
2788
2826
|
if (!snap || typeof snap !== "object") {
|
|
2789
2827
|
if (serversBody) serversBody.appendChild(createErrorRow(4, "No snapshot"));
|
|
2790
2828
|
if (hitsBody) hitsBody.appendChild(createErrorRow(2, "No snapshot"));
|
|
2791
2829
|
if (quotaBody) quotaBody.appendChild(createErrorRow(5, "No snapshot"));
|
|
2830
|
+
if (serverToolBody) serverToolBody.appendChild(createErrorRow(5, "No snapshot"));
|
|
2831
|
+
if (serverToolStatus) serverToolStatus.textContent = "state: —";
|
|
2832
|
+
if (serverToolUpdatedAt) serverToolUpdatedAt.textContent = "updated: —";
|
|
2833
|
+
if (serverToolCountsBox) serverToolCountsBox.textContent = "executions: —\nsuccess: —\nfailure: —";
|
|
2834
|
+
if (serverToolToggleBtn) serverToolToggleBtn.textContent = "Toggle";
|
|
2792
2835
|
return;
|
|
2793
2836
|
}
|
|
2794
2837
|
const servers = Array.isArray(snap.servers) ? snap.servers : [];
|
|
@@ -2865,9 +2908,108 @@
|
|
|
2865
2908
|
}
|
|
2866
2909
|
}
|
|
2867
2910
|
|
|
2911
|
+
try {
|
|
2912
|
+
const serverTool = snap.serverTool && typeof snap.serverTool === "object" ? snap.serverTool : null;
|
|
2913
|
+
const state = serverTool && serverTool.state && typeof serverTool.state === "object" ? serverTool.state : null;
|
|
2914
|
+
const stats = serverTool && serverTool.stats && typeof serverTool.stats === "object" ? serverTool.stats : null;
|
|
2915
|
+
const enabled = state && state.enabled === true;
|
|
2916
|
+
if (serverToolStatus) {
|
|
2917
|
+
serverToolStatus.textContent = enabled ? "state: enabled" : "state: disabled";
|
|
2918
|
+
serverToolStatus.className = enabled ? "pill ok" : "pill bad";
|
|
2919
|
+
}
|
|
2920
|
+
if (serverToolUpdatedAt) {
|
|
2921
|
+
const updatedBy = state && state.updatedBy ? String(state.updatedBy) : "—";
|
|
2922
|
+
const updatedAt = state && state.updatedAtMs ? formatTs(state.updatedAtMs) : "—";
|
|
2923
|
+
serverToolUpdatedAt.textContent = `updated: ${updatedAt} by ${updatedBy}`;
|
|
2924
|
+
}
|
|
2925
|
+
if (serverToolToggleBtn) {
|
|
2926
|
+
serverToolToggleBtn.textContent = enabled ? "Disable now" : "Enable now";
|
|
2927
|
+
serverToolToggleBtn.className = enabled ? "danger" : "primary";
|
|
2928
|
+
}
|
|
2929
|
+
|
|
2930
|
+
const executions = stats && Number.isFinite(Number(stats.executions)) ? Number(stats.executions) : 0;
|
|
2931
|
+
const successCount = stats && Number.isFinite(Number(stats.success)) ? Number(stats.success) : 0;
|
|
2932
|
+
const failureCount = stats && Number.isFinite(Number(stats.failure)) ? Number(stats.failure) : 0;
|
|
2933
|
+
const scannedLines = stats && Number.isFinite(Number(stats.scannedLines)) ? Number(stats.scannedLines) : 0;
|
|
2934
|
+
if (serverToolCountsBox) {
|
|
2935
|
+
serverToolCountsBox.textContent =
|
|
2936
|
+
`executions: ${formatInt(executions)}\n` +
|
|
2937
|
+
`success: ${formatInt(successCount)}\n` +
|
|
2938
|
+
`failure: ${formatInt(failureCount)}\n` +
|
|
2939
|
+
`log lines scanned: ${formatInt(scannedLines)}`;
|
|
2940
|
+
}
|
|
2941
|
+
|
|
2942
|
+
const byTool = stats && Array.isArray(stats.byTool) ? stats.byTool : [];
|
|
2943
|
+
const recent = stats && Array.isArray(stats.recent) ? stats.recent : [];
|
|
2944
|
+
const recentByTool = new Map();
|
|
2945
|
+
for (const ev of recent) {
|
|
2946
|
+
const tool = textOf(ev && ev.tool ? ev.tool : "unknown");
|
|
2947
|
+
if (!recentByTool.has(tool)) recentByTool.set(tool, []);
|
|
2948
|
+
recentByTool.get(tool).push(ev);
|
|
2949
|
+
}
|
|
2950
|
+
|
|
2951
|
+
if (!byTool.length) {
|
|
2952
|
+
if (serverToolBody) serverToolBody.appendChild(createErrorRow(5, "No servertool execution records"));
|
|
2953
|
+
} else if (serverToolBody) {
|
|
2954
|
+
for (const row of byTool.slice(0, 30)) {
|
|
2955
|
+
const tool = textOf(row.tool);
|
|
2956
|
+
const tr = document.createElement("tr");
|
|
2957
|
+
tr.appendChild(createCell("td", tool || "—", "mono"));
|
|
2958
|
+
tr.appendChild(createCell("td", formatInt(Number(row.executions || 0)), "mono"));
|
|
2959
|
+
tr.appendChild(createCell("td", formatInt(Number(row.success || 0)), "mono"));
|
|
2960
|
+
tr.appendChild(createCell("td", formatInt(Number(row.failure || 0)), "mono"));
|
|
2961
|
+
|
|
2962
|
+
const detailsTd = document.createElement("td");
|
|
2963
|
+
const detailList = Array.isArray(recentByTool.get(tool)) ? recentByTool.get(tool).slice(0, 8) : [];
|
|
2964
|
+
if (!detailList.length) {
|
|
2965
|
+
detailsTd.textContent = "—";
|
|
2966
|
+
} else {
|
|
2967
|
+
const details = document.createElement("details");
|
|
2968
|
+
const summary = document.createElement("summary");
|
|
2969
|
+
summary.textContent = `${detailList.length} recent`;
|
|
2970
|
+
details.appendChild(summary);
|
|
2971
|
+
const pre = document.createElement("pre");
|
|
2972
|
+
pre.className = "mono";
|
|
2973
|
+
pre.style.margin = "8px 0 0";
|
|
2974
|
+
pre.style.whiteSpace = "pre-wrap";
|
|
2975
|
+
pre.style.wordBreak = "break-word";
|
|
2976
|
+
pre.textContent = detailList
|
|
2977
|
+
.map((ev) => {
|
|
2978
|
+
const ts = textOf(ev.ts || "—");
|
|
2979
|
+
const stage = textOf(ev.stage || "—");
|
|
2980
|
+
const result = textOf(ev.result || "—");
|
|
2981
|
+
const req = textOf(ev.requestId || "—");
|
|
2982
|
+
const msg = textOf(ev.message || "");
|
|
2983
|
+
return `${ts} | ${req} | ${stage}/${result}${msg ? ` | ${msg}` : ""}`;
|
|
2984
|
+
})
|
|
2985
|
+
.join("\n");
|
|
2986
|
+
details.appendChild(pre);
|
|
2987
|
+
detailsTd.appendChild(details);
|
|
2988
|
+
}
|
|
2989
|
+
tr.appendChild(detailsTd);
|
|
2990
|
+
serverToolBody.appendChild(tr);
|
|
2991
|
+
}
|
|
2992
|
+
if (byTool.length > 30) {
|
|
2993
|
+
const tr = document.createElement("tr");
|
|
2994
|
+
const td = document.createElement("td");
|
|
2995
|
+
td.colSpan = 5;
|
|
2996
|
+
td.className = "muted";
|
|
2997
|
+
td.textContent = `… ${byTool.length - 30} more hidden`;
|
|
2998
|
+
tr.appendChild(td);
|
|
2999
|
+
serverToolBody.appendChild(tr);
|
|
3000
|
+
}
|
|
3001
|
+
}
|
|
3002
|
+
} catch {
|
|
3003
|
+
if (serverToolBody) serverToolBody.appendChild(createErrorRow(5, "Failed to parse servertool stats"));
|
|
3004
|
+
}
|
|
3005
|
+
|
|
2868
3006
|
const hint = $("controlHint");
|
|
2869
3007
|
if (hint) {
|
|
2870
|
-
|
|
3008
|
+
const st = snap.serverTool && snap.serverTool.stats && typeof snap.serverTool.stats === "object"
|
|
3009
|
+
? snap.serverTool.stats
|
|
3010
|
+
: null;
|
|
3011
|
+
const stCount = st && Number.isFinite(Number(st.executions)) ? Number(st.executions) : 0;
|
|
3012
|
+
hint.textContent = `servers: ${servers.length} · quota keys: ${list.length} · servertool exec: ${stCount} · updated: ${formatTs(snap.nowMs)}`;
|
|
2871
3013
|
}
|
|
2872
3014
|
}
|
|
2873
3015
|
|
|
@@ -3868,7 +4010,7 @@
|
|
|
3868
4010
|
try { container.innerHTML = ""; } catch {}
|
|
3869
4011
|
}
|
|
3870
4012
|
try {
|
|
3871
|
-
container.appendChild(routingEditorRenderNode("
|
|
4013
|
+
container.appendChild(routingEditorRenderNode("routingPolicy", routingEditorState.value || {}, [], 0, true));
|
|
3872
4014
|
} catch (e) {
|
|
3873
4015
|
const msg = e && e.message ? e.message : String(e);
|
|
3874
4016
|
try { container.textContent = `Render failed: ${msg}`; } catch {}
|
|
@@ -4097,6 +4239,43 @@
|
|
|
4097
4239
|
return details;
|
|
4098
4240
|
}
|
|
4099
4241
|
|
|
4242
|
+
function toPlainObjectOrNull(value) {
|
|
4243
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
|
|
4244
|
+
return value;
|
|
4245
|
+
}
|
|
4246
|
+
|
|
4247
|
+
function buildRoutingPolicyEditorValue(snapshot) {
|
|
4248
|
+
const routingObj = toPlainObjectOrNull(snapshot && snapshot.routing) || {};
|
|
4249
|
+
const hasLoadBalancing = Boolean(snapshot && snapshot.hasLoadBalancing === true);
|
|
4250
|
+
const loadBalancingObj = toPlainObjectOrNull(snapshot && snapshot.loadBalancing) || {};
|
|
4251
|
+
UI.routingHasLoadBalancing = hasLoadBalancing;
|
|
4252
|
+
return {
|
|
4253
|
+
routing: routingObj,
|
|
4254
|
+
loadBalancing: loadBalancingObj
|
|
4255
|
+
};
|
|
4256
|
+
}
|
|
4257
|
+
|
|
4258
|
+
function parseRoutingPolicyEditorValue(value) {
|
|
4259
|
+
const policy = toPlainObjectOrNull(value) || {};
|
|
4260
|
+
const routing = toPlainObjectOrNull(policy.routing) || {};
|
|
4261
|
+
const hasLoadBalancingField = Object.prototype.hasOwnProperty.call(policy, "loadBalancing");
|
|
4262
|
+
const rawLoadBalancing = hasLoadBalancingField ? policy.loadBalancing : undefined;
|
|
4263
|
+
if (
|
|
4264
|
+
rawLoadBalancing !== undefined
|
|
4265
|
+
&& rawLoadBalancing !== null
|
|
4266
|
+
&& (typeof rawLoadBalancing !== "object" || Array.isArray(rawLoadBalancing))
|
|
4267
|
+
) {
|
|
4268
|
+
throw new Error("routingPolicy.loadBalancing must be an object");
|
|
4269
|
+
}
|
|
4270
|
+
const loadBalancingNode = toPlainObjectOrNull(rawLoadBalancing);
|
|
4271
|
+
const hasLoadBalancingData = Boolean(loadBalancingNode && Object.keys(loadBalancingNode).length > 0);
|
|
4272
|
+
return {
|
|
4273
|
+
routing,
|
|
4274
|
+
loadBalancing: loadBalancingNode,
|
|
4275
|
+
shouldWriteLoadBalancing: hasLoadBalancingData || UI.routingHasLoadBalancing === true
|
|
4276
|
+
};
|
|
4277
|
+
}
|
|
4278
|
+
|
|
4100
4279
|
async function loadRouting() {
|
|
4101
4280
|
setLog("routingOpLog", "");
|
|
4102
4281
|
const auth = UI.adminAuth ? UI.adminAuth : await refreshAdminAuthStatus();
|
|
@@ -4109,9 +4288,12 @@
|
|
|
4109
4288
|
const query = selectedPath ? `?path=${encodeURIComponent(selectedPath)}` : "";
|
|
4110
4289
|
const out = await apiFetch(`/config/routing${query}`);
|
|
4111
4290
|
UI.routingLocation = out.location || "virtualrouter.routing";
|
|
4112
|
-
routingEditorSetValue(out
|
|
4113
|
-
setLog(
|
|
4114
|
-
|
|
4291
|
+
routingEditorSetValue(buildRoutingPolicyEditorValue(out));
|
|
4292
|
+
setLog(
|
|
4293
|
+
"routingOpLog",
|
|
4294
|
+
`Loaded. Path: ${out.path || "—"}\nLocation: ${UI.routingLocation}\nloadBalancing: ${UI.routingHasLoadBalancing ? "present" : "absent"}`
|
|
4295
|
+
);
|
|
4296
|
+
toast("Routing policy loaded.", "ok");
|
|
4115
4297
|
} catch (e) {
|
|
4116
4298
|
if (e && e.status === 401) notifyUnauthorizedOnce("routing");
|
|
4117
4299
|
setLog("routingOpLog", `Load failed: ${e.message}`);
|
|
@@ -4124,27 +4306,84 @@
|
|
|
4124
4306
|
const auth = UI.adminAuth ? UI.adminAuth : await refreshAdminAuthStatus();
|
|
4125
4307
|
if (!auth || !auth.authenticated) {
|
|
4126
4308
|
notifyUnauthorizedOnce("routing save");
|
|
4127
|
-
return;
|
|
4309
|
+
return null;
|
|
4128
4310
|
}
|
|
4129
4311
|
try {
|
|
4130
4312
|
const selectedPath = textOf($("routingSourceSelect").value || "").trim();
|
|
4131
4313
|
const query = selectedPath ? `?path=${encodeURIComponent(selectedPath)}` : "";
|
|
4132
|
-
const
|
|
4314
|
+
const policy = parseRoutingPolicyEditorValue(routingEditorGetValue() || {});
|
|
4315
|
+
const payload = {
|
|
4316
|
+
routing: policy.routing,
|
|
4317
|
+
location: UI.routingLocation,
|
|
4318
|
+
path: selectedPath || undefined
|
|
4319
|
+
};
|
|
4320
|
+
if (policy.shouldWriteLoadBalancing) {
|
|
4321
|
+
payload.loadBalancing = policy.loadBalancing || {};
|
|
4322
|
+
}
|
|
4133
4323
|
const out = await apiFetch(`/config/routing${query}`, {
|
|
4134
4324
|
method: "PUT",
|
|
4135
|
-
body: JSON.stringify(
|
|
4325
|
+
body: JSON.stringify(payload)
|
|
4136
4326
|
});
|
|
4137
4327
|
UI.routingLocation = out.location || UI.routingLocation;
|
|
4138
|
-
|
|
4139
|
-
|
|
4328
|
+
if (typeof out.hasLoadBalancing === "boolean") {
|
|
4329
|
+
UI.routingHasLoadBalancing = out.hasLoadBalancing;
|
|
4330
|
+
}
|
|
4331
|
+
setLog(
|
|
4332
|
+
"routingOpLog",
|
|
4333
|
+
`Saved. Path: ${out.path || "—"}\nLocation: ${UI.routingLocation}\nloadBalancing: ${UI.routingHasLoadBalancing ? "present" : "absent"}\nRestart required to apply.`
|
|
4334
|
+
);
|
|
4335
|
+
toast("Routing policy saved.", "ok");
|
|
4140
4336
|
routingEditorSetDirty(false);
|
|
4337
|
+
return out;
|
|
4141
4338
|
} catch (e) {
|
|
4142
4339
|
if (e && e.status === 401) notifyUnauthorizedOnce("routing save");
|
|
4143
4340
|
setLog("routingOpLog", `Save failed: ${e.message}`);
|
|
4144
4341
|
toast(`Save failed: ${e.message}`);
|
|
4342
|
+
return null;
|
|
4145
4343
|
}
|
|
4146
4344
|
}
|
|
4147
4345
|
|
|
4346
|
+
async function saveRoutingAndRestartLocal() {
|
|
4347
|
+
const saved = await saveRouting();
|
|
4348
|
+
if (!saved) return;
|
|
4349
|
+
if (!confirm("Restart this RouteCodex runtime now to apply routing policy changes?")) return;
|
|
4350
|
+
try {
|
|
4351
|
+
const out = await apiFetch("/daemon/restart", { method: "POST" });
|
|
4352
|
+
const warnings = Array.isArray(out.warnings) && out.warnings.length ? `\nWarnings:\n- ${out.warnings.join("\n- ")}` : "";
|
|
4353
|
+
setLog(
|
|
4354
|
+
"routingOpLog",
|
|
4355
|
+
`Saved + restarted local.\nconfigPath: ${out.configPath || "—"}\nreloadedAt: ${out.reloadedAt || "—"}${warnings}`
|
|
4356
|
+
);
|
|
4357
|
+
toast("Routing saved and local runtime restarted.", "ok");
|
|
4358
|
+
await refreshStatus();
|
|
4359
|
+
await refreshProviders();
|
|
4360
|
+
await refreshCredentials();
|
|
4361
|
+
await refreshQuota();
|
|
4362
|
+
await refreshQuotaSnapshot();
|
|
4363
|
+
await refreshRuntimes();
|
|
4364
|
+
await refreshControl();
|
|
4365
|
+
} catch (e) {
|
|
4366
|
+
setLog("routingOpLog", `Local restart failed: ${e && e.message ? e.message : String(e)}`);
|
|
4367
|
+
toast(`Local restart failed: ${e && e.message ? e.message : String(e)}`);
|
|
4368
|
+
}
|
|
4369
|
+
}
|
|
4370
|
+
|
|
4371
|
+
async function saveRoutingAndRestartAll() {
|
|
4372
|
+
const saved = await saveRouting();
|
|
4373
|
+
if (!saved) return;
|
|
4374
|
+
if (!confirm("Broadcast restart all local RouteCodex servers now?")) return;
|
|
4375
|
+
try {
|
|
4376
|
+
const out = await controlMutate("servers.restart", {});
|
|
4377
|
+
setLog("routingOpLog", `Saved + restart-all requested.\n${JSON.stringify(out, null, 2)}`);
|
|
4378
|
+
toast("Routing saved and restart-all requested.", "ok");
|
|
4379
|
+
await refreshControl();
|
|
4380
|
+
await refreshStatus();
|
|
4381
|
+
} catch (e) {
|
|
4382
|
+
setLog("routingOpLog", `Restart-all failed: ${e && e.message ? e.message : String(e)}`);
|
|
4383
|
+
toast(`Restart-all failed: ${e && e.message ? e.message : String(e)}`);
|
|
4384
|
+
}
|
|
4385
|
+
}
|
|
4386
|
+
|
|
4148
4387
|
async function refreshRoutingSources() {
|
|
4149
4388
|
const select = $("routingSourceSelect");
|
|
4150
4389
|
if (!select) return;
|
|
@@ -5212,6 +5451,22 @@
|
|
|
5212
5451
|
setLog("controlOpLog", `Quota refresh failed: ${e.message || e}`);
|
|
5213
5452
|
}
|
|
5214
5453
|
});
|
|
5454
|
+
$("controlServerToolToggleBtn").addEventListener("click", async () => {
|
|
5455
|
+
setLog("controlOpLog", "");
|
|
5456
|
+
try {
|
|
5457
|
+
const snap = UI.controlSnapshot && typeof UI.controlSnapshot === "object" ? UI.controlSnapshot : null;
|
|
5458
|
+
const state = snap && snap.serverTool && typeof snap.serverTool === "object" && snap.serverTool.state
|
|
5459
|
+
? snap.serverTool.state
|
|
5460
|
+
: null;
|
|
5461
|
+
const enabled = state && state.enabled === true;
|
|
5462
|
+
const nextEnabled = !enabled;
|
|
5463
|
+
const out = await controlMutate("servertool.set_enabled", { enabled: nextEnabled });
|
|
5464
|
+
setLog("controlOpLog", `ServerTool ${nextEnabled ? "enabled" : "disabled"}.\n${JSON.stringify(out, null, 2)}`);
|
|
5465
|
+
await refreshControl();
|
|
5466
|
+
} catch (e) {
|
|
5467
|
+
setLog("controlOpLog", `ServerTool toggle failed: ${e.message || e}`);
|
|
5468
|
+
}
|
|
5469
|
+
});
|
|
5215
5470
|
$("controlQuotaOfflineBtn").addEventListener("click", async () => {
|
|
5216
5471
|
setLog("controlOpLog", "");
|
|
5217
5472
|
const providerKey = ($("controlQuotaKeyInput").value || "").trim();
|
|
@@ -5385,6 +5640,8 @@
|
|
|
5385
5640
|
|
|
5386
5641
|
$("loadRoutingBtn").addEventListener("click", loadRouting);
|
|
5387
5642
|
$("saveRoutingBtn").addEventListener("click", saveRouting);
|
|
5643
|
+
$("saveRoutingRestartLocalBtn").addEventListener("click", () => void saveRoutingAndRestartLocal());
|
|
5644
|
+
$("saveRoutingRestartAllBtn").addEventListener("click", () => void saveRoutingAndRestartAll());
|
|
5388
5645
|
$("refreshRoutingSourcesBtn").addEventListener("click", refreshRoutingSources);
|
|
5389
5646
|
$("routingSourceSelect").addEventListener("change", loadRouting);
|
|
5390
5647
|
$("routingRegExpandBtn").addEventListener("click", () => setAllDetailsOpen($("routingKvEditor"), true));
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# File Line-Limit Gate (Host)
|
|
2
|
+
|
|
3
|
+
Host (`routecodex`) enforces a hard line limit for changed code files.
|
|
4
|
+
|
|
5
|
+
## Rule
|
|
6
|
+
|
|
7
|
+
- Limit: `< 500` lines per file.
|
|
8
|
+
- Scope: changed files in current diff range.
|
|
9
|
+
- Trigger: CI `tests` workflow (`verify:file-line-limit`).
|
|
10
|
+
|
|
11
|
+
## Policy File
|
|
12
|
+
|
|
13
|
+
- `config/file-line-limit-policy.json`
|
|
14
|
+
- Keys:
|
|
15
|
+
- `limit`: max lines
|
|
16
|
+
- `extensions`: checked code suffixes
|
|
17
|
+
- `excludeDirs`: skipped directory prefixes
|
|
18
|
+
- `allowList`: temporary exemptions (exact paths)
|
|
19
|
+
|
|
20
|
+
## Exemption Process
|
|
21
|
+
|
|
22
|
+
1. Only use `allowList` for short-lived exceptions.
|
|
23
|
+
2. Add a linked `bd --no-db` issue for removal/splitting.
|
|
24
|
+
3. Remove exemption in the follow-up PR after refactor lands.
|
|
25
|
+
|
|
26
|
+
## Local Run
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm run verify:file-line-limit
|
|
30
|
+
```
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Host Refactor 164.3 Responsibility Migration
|
|
2
|
+
|
|
3
|
+
This document records the responsibility split for `routecodex-164.3`:
|
|
4
|
+
- `src/server/runtime/http-server/request-executor.ts`
|
|
5
|
+
- `src/providers/core/runtime/http-transport-provider.ts`
|
|
6
|
+
|
|
7
|
+
## Current Line-Count Snapshot
|
|
8
|
+
|
|
9
|
+
| File | Lines |
|
|
10
|
+
|---|---:|
|
|
11
|
+
| `src/server/runtime/http-server/request-executor.ts` | 497 |
|
|
12
|
+
| `src/providers/core/runtime/http-transport-provider.ts` | 485 |
|
|
13
|
+
| `src/providers/core/runtime/http-request-executor.ts` | 474 |
|
|
14
|
+
| `src/providers/core/runtime/gemini-cli-http-provider.ts` | 479 |
|
|
15
|
+
|
|
16
|
+
## Request Executor Split Map
|
|
17
|
+
|
|
18
|
+
| Old responsibility (in `request-executor.ts`) | New module |
|
|
19
|
+
|---|---|
|
|
20
|
+
| Retry decisions, max attempts, backoff | `src/server/runtime/http-server/executor/retry-engine.ts` |
|
|
21
|
+
| Antigravity retry signal, status/error extraction, clock binding | `src/server/runtime/http-server/executor/request-retry-helpers.ts` |
|
|
22
|
+
| Provider response normalization, status/model extraction, request semantics extraction | `src/server/runtime/http-server/executor/provider-response-utils.ts` |
|
|
23
|
+
| Runtime resolution + provider error emission path | `src/server/runtime/http-server/executor/provider-runtime-resolver.ts` |
|
|
24
|
+
| Provider request identity (`requestId`/`providerLabel`/model/protocol) | `src/server/runtime/http-server/executor/provider-request-context.ts` |
|
|
25
|
+
| Provider response conversion bridge | `src/server/runtime/http-server/executor/provider-response-converter.ts` |
|
|
26
|
+
| Usage logging output | `src/server/runtime/http-server/executor/usage-logger.ts` |
|
|
27
|
+
| Inbound snapshot + pool-exhausted classifier | `src/server/runtime/http-server/executor/request-executor-core-utils.ts` |
|
|
28
|
+
|
|
29
|
+
## Provider Runtime / Transport Split Map
|
|
30
|
+
|
|
31
|
+
| Old responsibility (`http-transport-provider.ts` / related runtime hot files) | New module |
|
|
32
|
+
|---|---|
|
|
33
|
+
| Auth provider + HTTP client bootstrap wiring | `src/providers/core/runtime/provider-bootstrap-utils.ts` |
|
|
34
|
+
| Runtime profile/runtimeKey/codex mode context shaping | `src/providers/core/runtime/provider-runtime-utils.ts` |
|
|
35
|
+
| HTTP executor retry + OAuth replay helpers | `src/providers/core/runtime/provider-http-executor-utils.ts` |
|
|
36
|
+
| Service-profile resolution | `src/providers/core/runtime/service-profile-resolver.ts` |
|
|
37
|
+
| Endpoint/baseURL resolution | `src/providers/core/runtime/runtime-endpoint-resolver.ts` |
|
|
38
|
+
| Provider request preprocess + metadata normalization | `src/providers/core/runtime/provider-request-preprocessor.ts` |
|
|
39
|
+
| Request header orchestration | `src/providers/core/runtime/provider-request-header-orchestrator.ts` |
|
|
40
|
+
| Family/profile specific shaping helpers | `src/providers/core/runtime/provider-family-profile-utils.ts` |
|
|
41
|
+
| Request shaping helpers | `src/providers/core/runtime/provider-request-shaping-utils.ts` |
|
|
42
|
+
| Response postprocessing hooks | `src/providers/core/runtime/provider-response-postprocessor.ts` |
|
|
43
|
+
| Gemini CLI response normalization | `src/providers/core/runtime/gemini-cli-response-postprocessor.ts` |
|
|
44
|
+
| Gemini SSE normalization | `src/providers/core/runtime/gemini-sse-normalizer.ts` |
|
|
45
|
+
| IFlow business-error classifier helpers | `src/providers/core/runtime/provider-iflow-business-error-utils.ts` |
|
|
46
|
+
| Session/Codex header injection helpers | `src/providers/core/runtime/transport/session-header-utils.ts` |
|
|
47
|
+
| OAuth header preflight helpers | `src/providers/core/runtime/transport/oauth-header-preflight.ts` |
|
|
48
|
+
| Request header builder | `src/providers/core/runtime/transport/request-header-builder.ts` |
|
|
49
|
+
| Auth mode utility | `src/providers/core/runtime/transport/auth-mode-utils.ts` |
|
|
50
|
+
|
|
51
|
+
## Regression Verification Commands
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npm run jest:run -- --runTestsByPath \
|
|
55
|
+
tests/server/runtime/request-executor.single-attempt.spec.ts \
|
|
56
|
+
tests/providers/core/runtime/gemini-cli-http-provider.unit.test.ts \
|
|
57
|
+
tests/providers/core/runtime/deepseek-http-provider.unit.test.ts
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npm run build:dev
|
|
62
|
+
```
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# iflow 400 Fix Release Gate (llms -> rcc)
|
|
2
|
+
|
|
3
|
+
Date: 2026-02-15
|
|
4
|
+
Issue: routecodex-75
|
|
5
|
+
Prerequisite bug: routecodex-70 (CLOSED)
|
|
6
|
+
|
|
7
|
+
## 1) Preconditions
|
|
8
|
+
- routecodex-70 is closed with replay evidence.
|
|
9
|
+
- Matching tags exist on both repos:
|
|
10
|
+
- `rc-v0.6.1733-v0.89.1798`
|
|
11
|
+
- `rc-v0.6.1733-v0.89.1799`
|
|
12
|
+
- Artifacts prepared:
|
|
13
|
+
- `/tmp/jsonstudio-llms-0.6.1733.tgz`
|
|
14
|
+
- `jsonstudio-rcc-0.89.1799.tgz`
|
|
15
|
+
|
|
16
|
+
## 2) Mandatory verification gate
|
|
17
|
+
1. Same-shape replay (affected provider: iflow)
|
|
18
|
+
- sample: `req_1770377342669_6d3e332c`
|
|
19
|
+
- expected: HTTP 200, no 514 business error
|
|
20
|
+
|
|
21
|
+
2. Control replay (unaffected provider)
|
|
22
|
+
- sample: `req_1770381056958_a35ee9ff` (tab)
|
|
23
|
+
- expected: HTTP 200, behavior unchanged
|
|
24
|
+
|
|
25
|
+
3. Runtime/build checks
|
|
26
|
+
- `npm run jest:run -- --runTestsByPath tests/server/runtime/http-server/executor-provider.spec.ts tests/server/runtime/executor-provider.retryable.spec.ts --runInBand`
|
|
27
|
+
- `npm run jest:run -- --runTestsByPath tests/server/runtime/request-executor.single-attempt.spec.ts tests/server/http-server/execute-pipeline-failover.spec.ts --runInBand`
|
|
28
|
+
- `npm run build:dev`
|
|
29
|
+
- `npm run install:global`
|
|
30
|
+
|
|
31
|
+
## 3) Publish order (manual)
|
|
32
|
+
1. Publish llms first
|
|
33
|
+
- `cd sharedmodule/llmswitch-core`
|
|
34
|
+
- `npm publish /tmp/jsonstudio-llms-0.6.1733.tgz`
|
|
35
|
+
|
|
36
|
+
2. Verify rcc package depends on published llms version
|
|
37
|
+
- `cd /Users/fanzhang/Documents/github/routecodex`
|
|
38
|
+
- check `package.json` has `@jsonstudio/llms: 0.6.1733`
|
|
39
|
+
|
|
40
|
+
3. Publish rcc
|
|
41
|
+
- `npm publish jsonstudio-rcc-0.89.1799.tgz`
|
|
42
|
+
|
|
43
|
+
## 4) Rollback checklist
|
|
44
|
+
- If llms publish breaks replay gate:
|
|
45
|
+
1. stop rcc publish
|
|
46
|
+
2. rollback to previous llms version in routecodex package.json
|
|
47
|
+
3. rebuild + rerun same-shape/control replays
|
|
48
|
+
|
|
49
|
+
- If rcc publish breaks runtime:
|
|
50
|
+
1. pin users back to previous rcc version
|
|
51
|
+
2. collect failing requestId/providerKey/model
|
|
52
|
+
3. preserve same-shape/control replay outputs
|
|
53
|
+
|
|
54
|
+
## 5) Evidence references
|
|
55
|
+
- routecodex-70 notes include request-level replay outputs:
|
|
56
|
+
- `/tmp/replay-iflow-base-req_1770377342669_6d3e332c.txt`
|
|
57
|
+
- `/tmp/replay-iflow-stop-followup-20260207T100636992-003.withkey.txt`
|
|
58
|
+
- `/tmp/replay-control-tab-key1.req_1770381056958_a35ee9ff.txt`
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# iflow 400 Fix Same-shape & Control Replay Evidence
|
|
2
|
+
|
|
3
|
+
## Affected Provider (iflow.kimi-k2.5) - Same-shape Replay
|
|
4
|
+
|
|
5
|
+
### Sample 1: Base request (req_1770377342669_6d3e332c)
|
|
6
|
+
- Before fix: HTTP 400 business error 514
|
|
7
|
+
- After fix: HTTP 200, successful response
|
|
8
|
+
- Output saved: /tmp/replay-iflow-base-req_1770377342669_6d3e332c.txt (no longer available)
|
|
9
|
+
- Verification command: `npm run replay:codex-sample -- --sample ~/.routecodex/codex-samples/openai-responses/iflow.1-186.kimi-k2.5/req_1770377342669_6d3e332c/client-request.json`
|
|
10
|
+
|
|
11
|
+
### Sample 2: Stop_followup request (openai-responses-iflow.1-186...20260207T100636992-003_stop_followup)
|
|
12
|
+
- Before fix: HTTP 400 business error 514
|
|
13
|
+
- After fix: HTTP 200, successful response
|
|
14
|
+
- Output saved: /tmp/replay-iflow-stop-followup-20260207T100636992-003.withkey.txt (no longer available)
|
|
15
|
+
- Verification command: `npm run replay:codex-sample -- --sample ~/.routecodex/codex-samples/openai-responses/iflow.1-186.kimi-k2.5/.../client-request.json`
|
|
16
|
+
|
|
17
|
+
## Unaffected Provider (tab.gpt-5.3-codex) - Control Replay
|
|
18
|
+
|
|
19
|
+
### Sample: req_1770381056958_a35ee9ff
|
|
20
|
+
- Before fix: HTTP 200, unchanged
|
|
21
|
+
- After fix: HTTP 200, unchanged
|
|
22
|
+
- Output saved: /tmp/replay-control-tab-key1.req_1770381056958_a35ee9ff.txt (no longer available)
|
|
23
|
+
- Verification command: `npm run replay:codex-sample -- --sample ~/.routecodex/codex-samples/openai-chat/tab.key1.gpt-5.3-codex/req_1770381056958_a35ee9ff/client-request.json`
|
|
24
|
+
|
|
25
|
+
## Summary
|
|
26
|
+
All same-shape and control replays pass. The fix ensures:
|
|
27
|
+
- iflow kimi-k2.5 requests no longer return 514 for large payloads (compat layer adjustments, followup trimming policy).
|
|
28
|
+
- Control provider (tab) behavior remains unchanged.
|
|
29
|
+
- Retry policy now treats 514 as retryable, allowing failover to next provider.
|
|
30
|
+
|
|
31
|
+
## References
|
|
32
|
+
- routecodex-70 notes contain detailed analysis.
|
|
33
|
+
- Unit tests: `tests/server/runtime/http-server/executor-provider.spec.ts`, `tests/server/runtime/executor-provider.retryable.spec.ts`.
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
- 语法与现有 `<**!glm**>` / `<**#glm**>` 一致:只在路由层解析,provider 不看到标签。
|
|
8
8
|
- 所有自动续写逻辑通过 **servertool** 实现,与 `vision_auto` / `gemini_empty_reply_continue` 保持一致。
|
|
9
9
|
- 状态通过 sticky session 持久化;支持清理与覆盖。
|
|
10
|
+
- stopMessage 文案建议使用“执行导向”措辞(例如“立即执行待处理任务”),避免模型只做任务查看不执行。
|
|
10
11
|
- 客户端真实断开(HTTP aborted/close 未写完)后不会继续自动请求,避免后台无限回环;正常完成不会被误判。
|
|
11
12
|
|
|
12
13
|
## 1. 语法与状态
|
|
@@ -15,10 +16,10 @@
|
|
|
15
16
|
|
|
16
17
|
支持三种形式:
|
|
17
18
|
|
|
18
|
-
- 启用 / 更新:`<**stopMessage:"
|
|
19
|
-
- `"
|
|
19
|
+
- 启用 / 更新:`<**stopMessage:"立即执行待处理任务",3**>`
|
|
20
|
+
- `"立即执行待处理任务"`:自动补发的用户消息内容,要求模型直接执行而非查看状态。内部如需引号,用 `\"` 转义。
|
|
20
21
|
- `3`:本会话最多自动续写 3 轮;省略时默认 `10`。
|
|
21
|
-
- 仅设置文案(默认 10 次):`<**stopMessage:"
|
|
22
|
+
- 仅设置文案(默认 10 次):`<**stopMessage:"立即执行待处理任务,如有未完成任务直接完成并提交结果"**>` → `maxRepeats = 10`。
|
|
22
23
|
- 清理:`<**stopMessage:clear**>` → 清空本会话 stopMessage 状态。
|
|
23
24
|
|
|
24
25
|
> 注意:这些标签仅用于路由与 servertool,不应出现在发给 provider 的文本中。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jsonstudio/rcc",
|
|
3
|
-
"version": "0.89.
|
|
3
|
+
"version": "0.89.2195",
|
|
4
4
|
"description": "Multi-provider OpenAI proxy server with anthropic/responses/chat support (release)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -45,8 +45,9 @@
|
|
|
45
45
|
"test:ci": "npm run test:ci:jest && npm run mock:regressions && npm run test:blackbox-antigravity-parity",
|
|
46
46
|
"test:ci:coverage": "npm run test:ci:jest:coverage",
|
|
47
47
|
"verify:repo-sanity": "node scripts/ci/repo-sanity.mjs",
|
|
48
|
+
"verify:file-line-limit": "node scripts/ci/check-file-line-limit.mjs",
|
|
48
49
|
"vr:dryrun": "node scripts/virtual-router-dryrun.mjs",
|
|
49
|
-
"test:routing-instructions": "npm run jest:run -- --runTestsByPath tests/token-daemon/token-daemon.auto-refresh-noninteractive.spec.ts tests/token-daemon/token-daemon.refresh-ahead.spec.ts tests/commands/oauth-command.qwen-auto.spec.ts tests/token-daemon/interactive-refresh.spec.ts tests/server/runtime/request-executor.single-attempt.spec.ts tests/server/runtime/executor-provider.retryable.spec.ts tests/providers/auth/tokenfile-auth.iflow.spec.ts tests/providers/auth/antigravity-user-agent.unit.test.ts tests/providers/auth/antigravity-fingerprint.unit.test.ts tests/providers/auth/antigravity-warmup.unit.test.ts tests/providers/core/runtime/gemini-cli-http-provider.unit.test.ts tests/providers/core/runtime/antigravity-quota-client.unit.test.ts tests/manager/quota/provider-quota-center.spec.ts tests/manager/quota/provider-quota-store.spec.ts tests/manager/quota/quota-manager-refresh.spec.ts tests/manager/quota/provider-quota-daemon-module.spec.ts tests/manager/quota/provider-key-normalization.spec.ts tests/server/http-server/daemon-admin.e2e.spec.ts tests/server/http-server/clock-client-routes.spec.ts tests/server/http-server/quota-view-injection.spec.ts tests/server/http-server/quota-refresh-triggers.e2e.spec.ts tests/server/http-server/hub-policy-injection.spec.ts tests/server/http-server/session-header-injection.spec.ts tests/server/http-server/session-dir.spec.ts tests/server/handlers/sse-timeout.spec.ts tests/utils/is-direct-execution.test.ts tests/utils/windows-netstat.test.ts tests/servertool/virtual-router-context-fallback.spec.ts tests/servertool/virtual-router-longcontext-fallback.spec.ts tests/servertool/virtual-router-series-cooldown.spec.ts tests/servertool/recursive-detection-guard.spec.ts tests/servertool/routing-instructions.spec.ts tests/servertool/stop-message-auto.spec.ts tests/servertool/stopmessage-session-scope.spec.ts tests/servertool/stopmessage-anthropic-stop-sequence.spec.ts tests/servertool/stopmessage-compaction-false-positive.spec.ts tests/servertool/servertool-progress-logging.spec.ts tests/servertool/servertool-clock.spec.ts tests/servertool/antigravity-thought-signature-bootstrap.spec.ts tests/compat/tabglm-claude-code-profile.spec.ts tests/compat/antigravity-thought-signature.spec.ts tests/sharedmodule/mcp-tool-descriptions.spec.ts tests/sharedmodule/virtual-router-routing-model-validation.spec.ts tests/unified-hub/hub-v1-single-path-imports.spec.ts",
|
|
50
|
+
"test:routing-instructions": "npm run jest:run -- --runTestsByPath tests/token-daemon/token-daemon.auto-refresh-noninteractive.spec.ts tests/token-daemon/token-daemon.refresh-ahead.spec.ts tests/commands/oauth-command.qwen-auto.spec.ts tests/token-daemon/interactive-refresh.spec.ts tests/server/runtime/request-executor.single-attempt.spec.ts tests/server/runtime/executor-provider.retryable.spec.ts tests/server/runtime/http-server/executor/usage-aggregator.spec.ts tests/providers/auth/tokenfile-auth.iflow.spec.ts tests/providers/auth/antigravity-user-agent.unit.test.ts tests/providers/auth/antigravity-fingerprint.unit.test.ts tests/providers/auth/antigravity-warmup.unit.test.ts tests/providers/core/runtime/gemini-cli-http-provider.unit.test.ts tests/providers/core/runtime/deepseek-http-provider.unit.test.ts tests/providers/core/runtime/antigravity-quota-client.unit.test.ts tests/manager/quota/provider-quota-center.spec.ts tests/manager/quota/provider-quota-store.spec.ts tests/manager/quota/quota-manager-refresh.spec.ts tests/manager/quota/provider-quota-daemon-module.spec.ts tests/manager/quota/provider-key-normalization.spec.ts tests/server/http-server/daemon-admin.e2e.spec.ts tests/server/http-server/clock-client-routes.spec.ts tests/server/http-server/quota-view-injection.spec.ts tests/server/http-server/quota-refresh-triggers.e2e.spec.ts tests/server/http-server/hub-policy-injection.spec.ts tests/server/http-server/session-header-injection.spec.ts tests/server/http-server/session-dir.spec.ts tests/server/handlers/sse-timeout.spec.ts tests/utils/is-direct-execution.test.ts tests/utils/windows-netstat.test.ts tests/servertool/virtual-router-context-fallback.spec.ts tests/servertool/virtual-router-longcontext-fallback.spec.ts tests/servertool/virtual-router-series-cooldown.spec.ts tests/servertool/recursive-detection-guard.spec.ts tests/servertool/routing-instructions.spec.ts tests/servertool/stop-message-auto.spec.ts tests/servertool/stopmessage-session-scope.spec.ts tests/servertool/stopmessage-anthropic-stop-sequence.spec.ts tests/servertool/stopmessage-compaction-false-positive.spec.ts tests/servertool/servertool-progress-logging.spec.ts tests/servertool/servertool-clock.spec.ts tests/servertool/antigravity-thought-signature-bootstrap.spec.ts tests/compat/tabglm-claude-code-profile.spec.ts tests/compat/antigravity-thought-signature.spec.ts tests/sharedmodule/mcp-tool-descriptions.spec.ts tests/sharedmodule/virtual-router-hit-log.spec.ts tests/sharedmodule/virtual-router-routing-model-validation.spec.ts tests/unified-hub/hub-v1-single-path-imports.spec.ts",
|
|
50
51
|
"test:cli": "npm run jest:run -- --runTestsByPath tests/cli/camoufox-command.spec.ts tests/cli/clean-command.spec.ts tests/cli/code-command.spec.ts tests/cli/config-command.spec.ts tests/cli/env-command.spec.ts tests/cli/env-output.spec.ts tests/cli/examples-command.spec.ts tests/cli/port-command.spec.ts tests/cli/port-utils.spec.ts tests/cli/restart-command.spec.ts tests/cli/smoke.spec.ts tests/cli/start-command.spec.ts tests/cli/status-command.spec.ts tests/cli/stop-command.spec.ts",
|
|
51
52
|
"test:watch": "npm run jest:run -- --watch",
|
|
52
53
|
"test:coverage": "npm run jest:run -- --coverage",
|
|
@@ -149,7 +150,7 @@
|
|
|
149
150
|
},
|
|
150
151
|
"dependencies": {
|
|
151
152
|
"@anthropic-ai/sdk": "^0.65.0",
|
|
152
|
-
"@jsonstudio/llms": "
|
|
153
|
+
"@jsonstudio/llms": "0.6.2125",
|
|
153
154
|
"@lmstudio/sdk": "^1.5.0",
|
|
154
155
|
"@radix-ui/react-switch": "^1.2.6",
|
|
155
156
|
"@types/socket.io": "^3.0.1",
|