@jsonstudio/rcc 0.89.1205 → 0.89.1457
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 +53 -1412
- package/configsamples/config.json +426 -0
- package/configsamples/config.reference.json +58 -0
- package/configsamples/provider/crs/config.v1.json +46 -0
- package/configsamples/provider/glm/config.v1.json +81 -0
- package/configsamples/provider/glm-anthropic/config.v1.json +45 -0
- package/configsamples/provider/iflow/config.v1.json +74 -0
- package/configsamples/provider/kimi/config.v1.json +41 -0
- package/configsamples/provider/lmstudio/config.v1.json +101 -0
- package/configsamples/provider/mimo/config.v1.json +35 -0
- package/configsamples/provider/modelscope/config.v1.json +96 -0
- package/configsamples/provider/qwen/config.v1.json +38 -0
- package/configsamples/provider/tab/config.v1.json +50 -0
- package/configsamples/provider/tabglm/config.v1.json +49 -0
- package/dist/build-info.js +2 -2
- package/dist/cli/commands/code.js +12 -6
- package/dist/cli/commands/code.js.map +1 -1
- package/dist/cli/commands/config.d.ts +2 -1
- package/dist/cli/commands/config.js +77 -103
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/examples.js +6 -6
- package/dist/cli/commands/examples.js.map +1 -1
- package/dist/cli/commands/init.d.ts +28 -0
- package/dist/cli/commands/init.js +94 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/port.js +10 -2
- package/dist/cli/commands/port.js.map +1 -1
- package/dist/cli/commands/restart.js +5 -2
- package/dist/cli/commands/restart.js.map +1 -1
- package/dist/cli/commands/start.js +25 -22
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.js +1 -0
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/stop.js +1 -0
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/config/bundled-docs.d.ts +20 -0
- package/dist/cli/config/bundled-docs.js +91 -0
- package/dist/cli/config/bundled-docs.js.map +1 -0
- package/dist/cli/config/init-config.d.ts +37 -0
- package/dist/cli/config/init-config.js +212 -0
- package/dist/cli/config/init-config.js.map +1 -0
- package/dist/cli/config/init-provider-catalog.d.ts +8 -0
- package/dist/cli/config/init-provider-catalog.js +187 -0
- package/dist/cli/config/init-provider-catalog.js.map +1 -0
- package/dist/cli/register/init-command.d.ts +3 -0
- package/dist/cli/register/init-command.js +5 -0
- package/dist/cli/register/init-command.js.map +1 -0
- package/dist/cli.js +28 -3
- package/dist/cli.js.map +1 -1
- package/dist/client/gemini/gemini-protocol-client.js +2 -1
- package/dist/client/gemini/gemini-protocol-client.js.map +1 -1
- package/dist/client/gemini-cli/gemini-cli-protocol-client.js +40 -16
- package/dist/client/gemini-cli/gemini-cli-protocol-client.js.map +1 -1
- package/dist/client/openai/chat-protocol-client.js +2 -1
- package/dist/client/openai/chat-protocol-client.js.map +1 -1
- package/dist/client/responses/responses-protocol-client.js +2 -1
- package/dist/client/responses/responses-protocol-client.js.map +1 -1
- package/dist/config/risk-control-config.d.ts +94 -0
- package/dist/config/risk-control-config.js +196 -0
- package/dist/config/risk-control-config.js.map +1 -0
- package/dist/constants/index.d.ts +6 -0
- package/dist/constants/index.js +13 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/docs/daemon-admin-ui.html +2113 -190
- package/dist/error-handling/quiet-error-handling-center.js +46 -8
- package/dist/error-handling/quiet-error-handling-center.js.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/manager/modules/health/index.d.ts +1 -1
- package/dist/manager/modules/quota/antigravity-quota-manager.d.ts +70 -0
- package/dist/manager/modules/quota/antigravity-quota-manager.js +442 -0
- package/dist/manager/modules/quota/antigravity-quota-manager.js.map +1 -0
- package/dist/manager/modules/quota/index.d.ts +3 -127
- package/dist/manager/modules/quota/index.js +2 -1093
- package/dist/manager/modules/quota/index.js.map +1 -1
- package/dist/manager/modules/quota/provider-key-normalization.d.ts +3 -0
- package/dist/manager/modules/quota/provider-key-normalization.js +155 -0
- package/dist/manager/modules/quota/provider-key-normalization.js.map +1 -0
- package/dist/manager/modules/quota/provider-quota-daemon.cooldown.d.ts +9 -0
- package/dist/manager/modules/quota/provider-quota-daemon.cooldown.js +115 -0
- package/dist/manager/modules/quota/provider-quota-daemon.cooldown.js.map +1 -0
- package/dist/manager/modules/quota/provider-quota-daemon.d.ts +77 -0
- package/dist/manager/modules/quota/provider-quota-daemon.events.d.ts +12 -0
- package/dist/manager/modules/quota/provider-quota-daemon.events.js +239 -0
- package/dist/manager/modules/quota/provider-quota-daemon.events.js.map +1 -0
- package/dist/manager/modules/quota/provider-quota-daemon.js +404 -0
- package/dist/manager/modules/quota/provider-quota-daemon.js.map +1 -0
- package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.d.ts +11 -0
- package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.js +192 -0
- package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.js.map +1 -0
- package/dist/manager/modules/quota/provider-quota-daemon.snapshot.d.ts +8 -0
- package/dist/manager/modules/quota/provider-quota-daemon.snapshot.js +96 -0
- package/dist/manager/modules/quota/provider-quota-daemon.snapshot.js.map +1 -0
- package/dist/manager/modules/quota/provider-quota-daemon.view.d.ts +19 -0
- package/dist/manager/modules/quota/provider-quota-daemon.view.js +37 -0
- package/dist/manager/modules/quota/provider-quota-daemon.view.js.map +1 -0
- package/dist/manager/modules/routing/index.d.ts +1 -0
- package/dist/manager/modules/routing/index.js +11 -25
- package/dist/manager/modules/routing/index.js.map +1 -1
- package/dist/manager/quota/provider-quota-center.d.ts +2 -0
- package/dist/manager/quota/provider-quota-center.js +80 -82
- package/dist/manager/quota/provider-quota-center.js.map +1 -1
- package/dist/modules/llmswitch/bridge.d.ts +16 -18
- package/dist/modules/llmswitch/bridge.js +293 -94
- package/dist/modules/llmswitch/bridge.js.map +1 -1
- package/dist/modules/llmswitch/core-loader.d.ts +4 -2
- package/dist/modules/llmswitch/core-loader.js +32 -20
- package/dist/modules/llmswitch/core-loader.js.map +1 -1
- package/dist/modules/pipeline/utils/colored-logger.js +3 -2
- package/dist/modules/pipeline/utils/colored-logger.js.map +1 -1
- package/dist/modules/pipeline/utils/debug-logger.js +1 -1
- package/dist/modules/pipeline/utils/debug-logger.js.map +1 -1
- package/dist/providers/auth/antigravity-userinfo-helper.d.ts +2 -1
- package/dist/providers/auth/antigravity-userinfo-helper.js +25 -4
- package/dist/providers/auth/antigravity-userinfo-helper.js.map +1 -1
- package/dist/providers/auth/iflow-cookie-auth.js +0 -2
- package/dist/providers/auth/iflow-cookie-auth.js.map +1 -1
- package/dist/providers/auth/oauth-lifecycle.js +2 -23
- package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
- package/dist/providers/auth/tokenfile-auth.d.ts +2 -0
- package/dist/providers/auth/tokenfile-auth.js +33 -1
- package/dist/providers/auth/tokenfile-auth.js.map +1 -1
- package/dist/providers/core/config/camoufox-launcher.d.ts +5 -0
- package/dist/providers/core/config/camoufox-launcher.js +40 -4
- package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
- package/dist/providers/core/config/service-profiles.js +7 -18
- package/dist/providers/core/config/service-profiles.js.map +1 -1
- package/dist/providers/core/runtime/antigravity-quota-client.js +6 -3
- package/dist/providers/core/runtime/antigravity-quota-client.js.map +1 -1
- package/dist/providers/core/runtime/base-provider.d.ts +2 -7
- package/dist/providers/core/runtime/base-provider.js +84 -165
- package/dist/providers/core/runtime/base-provider.js.map +1 -1
- package/dist/providers/core/runtime/gemini-cli-http-provider.d.ts +7 -0
- package/dist/providers/core/runtime/gemini-cli-http-provider.js +368 -97
- package/dist/providers/core/runtime/gemini-cli-http-provider.js.map +1 -1
- package/dist/providers/core/runtime/http-request-executor.d.ts +3 -0
- package/dist/providers/core/runtime/http-request-executor.js +110 -38
- package/dist/providers/core/runtime/http-request-executor.js.map +1 -1
- package/dist/providers/core/runtime/http-transport-provider.d.ts +17 -0
- package/dist/providers/core/runtime/http-transport-provider.js +165 -16
- package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
- package/dist/providers/core/runtime/provider-error-classifier.js +10 -0
- package/dist/providers/core/runtime/provider-error-classifier.js.map +1 -1
- package/dist/providers/core/runtime/provider-factory.js +7 -5
- package/dist/providers/core/runtime/provider-factory.js.map +1 -1
- package/dist/providers/core/runtime/provider-runtime-metadata.d.ts +6 -0
- package/dist/providers/core/runtime/provider-runtime-metadata.js.map +1 -1
- package/dist/providers/core/runtime/rate-limit-manager.d.ts +1 -12
- package/dist/providers/core/runtime/rate-limit-manager.js +4 -77
- package/dist/providers/core/runtime/rate-limit-manager.js.map +1 -1
- package/dist/providers/core/runtime/responses-provider.d.ts +1 -7
- package/dist/providers/core/runtime/responses-provider.js +12 -93
- package/dist/providers/core/runtime/responses-provider.js.map +1 -1
- package/dist/providers/core/strategies/oauth-auth-code-flow.js +12 -8
- package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
- package/dist/providers/core/utils/http-client.js +36 -46
- package/dist/providers/core/utils/http-client.js.map +1 -1
- package/dist/providers/core/utils/provider-error-logger.d.ts +1 -1
- package/dist/providers/core/utils/provider-error-reporter.d.ts +3 -1
- package/dist/providers/core/utils/provider-error-reporter.js +3 -0
- package/dist/providers/core/utils/provider-error-reporter.js.map +1 -1
- package/dist/providers/core/utils/snapshot-writer.js +1 -4
- package/dist/providers/core/utils/snapshot-writer.js.map +1 -1
- package/dist/providers/mock/mock-provider-runtime.js +57 -27
- package/dist/providers/mock/mock-provider-runtime.js.map +1 -1
- package/dist/scripts/camoufox/launch-auth.mjs +193 -58
- package/dist/server/handlers/handler-utils.js +8 -3
- package/dist/server/handlers/handler-utils.js.map +1 -1
- package/dist/server/handlers/responses-handler.js +1 -1
- package/dist/server/handlers/responses-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/auth-handler.d.ts +2 -0
- package/dist/server/runtime/http-server/daemon-admin/auth-handler.js +103 -0
- package/dist/server/runtime/http-server/daemon-admin/auth-handler.js.map +1 -0
- package/dist/server/runtime/http-server/daemon-admin/auth-session.d.ts +5 -0
- package/dist/server/runtime/http-server/daemon-admin/auth-session.js +77 -0
- package/dist/server/runtime/http-server/daemon-admin/auth-session.js.map +1 -0
- package/dist/server/runtime/http-server/daemon-admin/auth-store.d.ts +18 -0
- package/dist/server/runtime/http-server/daemon-admin/auth-store.js +89 -0
- package/dist/server/runtime/http-server/daemon-admin/auth-store.js.map +1 -0
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +1 -2
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +226 -24
- 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 +47 -8
- package/dist/server/runtime/http-server/daemon-admin/quota-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/restart-handler.js +1 -1
- package/dist/server/runtime/http-server/daemon-admin/restart-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/stats-handler.js +1 -1
- package/dist/server/runtime/http-server/daemon-admin/stats-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/status-handler.js +68 -4
- package/dist/server/runtime/http-server/daemon-admin/status-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin-routes.d.ts +3 -4
- package/dist/server/runtime/http-server/daemon-admin-routes.js +9 -14
- package/dist/server/runtime/http-server/daemon-admin-routes.js.map +1 -1
- package/dist/server/runtime/http-server/executor-metadata.js +1 -1
- package/dist/server/runtime/http-server/executor-metadata.js.map +1 -1
- package/dist/server/runtime/http-server/executor-response.js +0 -16
- package/dist/server/runtime/http-server/executor-response.js.map +1 -1
- package/dist/server/runtime/http-server/hub-shadow-compare.js +110 -34
- package/dist/server/runtime/http-server/hub-shadow-compare.js.map +1 -1
- package/dist/server/runtime/http-server/index.d.ts +5 -3
- package/dist/server/runtime/http-server/index.js +281 -136
- package/dist/server/runtime/http-server/index.js.map +1 -1
- package/dist/server/runtime/http-server/middleware.js +19 -1
- package/dist/server/runtime/http-server/middleware.js.map +1 -1
- package/dist/server/runtime/http-server/request-executor.js +59 -24
- package/dist/server/runtime/http-server/request-executor.js.map +1 -1
- package/dist/server/runtime/http-server/routes.js +12 -3
- package/dist/server/runtime/http-server/routes.js.map +1 -1
- package/dist/server/runtime/http-server/session-dir.d.ts +2 -0
- package/dist/server/runtime/http-server/session-dir.js +59 -0
- package/dist/server/runtime/http-server/session-dir.js.map +1 -0
- package/dist/server/runtime/http-server/types.d.ts +0 -4
- package/dist/server/utils/utf8-chunk-buffer.js +6 -3
- package/dist/server/utils/utf8-chunk-buffer.js.map +1 -1
- package/dist/server/utils/warmup-storm-tracker.js +1 -1
- package/dist/server/utils/warmup-storm-tracker.js.map +1 -1
- package/dist/server-factory.d.ts +6 -28
- package/dist/server-factory.js +8 -93
- package/dist/server-factory.js.map +1 -1
- package/dist/token-daemon/index.js +2 -2
- package/dist/token-daemon/index.js.map +1 -1
- package/dist/token-daemon/provider-registry.js +0 -1
- package/dist/token-daemon/provider-registry.js.map +1 -1
- package/dist/token-daemon/server-utils.js +8 -9
- package/dist/token-daemon/server-utils.js.map +1 -1
- package/dist/token-daemon/token-utils.js +1 -1
- package/dist/token-daemon/token-utils.js.map +1 -1
- package/dist/tools/semantic-replay.js +2 -2
- package/dist/tools/semantic-replay.js.map +1 -1
- package/dist/tools/stats-request-events.d.ts +1 -1
- package/dist/tools/stats-usage.js +6 -3
- package/dist/tools/stats-usage.js.map +1 -1
- package/dist/utils/llms-engine-shadow.d.ts +19 -0
- package/dist/utils/llms-engine-shadow.js +209 -0
- package/dist/utils/llms-engine-shadow.js.map +1 -0
- package/dist/utils/runtime-versions.js +2 -1
- package/dist/utils/runtime-versions.js.map +1 -1
- package/dist/utils/strip-internal-keys.d.ts +12 -0
- package/dist/utils/strip-internal-keys.js +28 -0
- package/dist/utils/strip-internal-keys.js.map +1 -0
- package/docs/ARCHITECTURE.md +402 -0
- package/docs/CHAT_PROCESS_PROTOCOL_AND_PIPELINE.md +221 -0
- package/docs/CODEX_AND_CLAUDE_CODE.md +69 -0
- package/docs/CONFIG_ARCHITECTURE.md +517 -0
- package/docs/ERROR_HANDLING_AUDIT.md +0 -0
- package/docs/GCLI2API_PARITY_GAPS.md +98 -0
- package/docs/INSTALLATION_AND_QUICKSTART.md +74 -0
- package/docs/INSTRUCTION_MARKUP.md +89 -0
- package/docs/MODULE_ENHANCEMENT_SYSTEM.md +666 -0
- package/docs/PORTS.md +36 -0
- package/docs/PROVIDERS_BUILTIN.md +111 -0
- package/docs/PROVIDER_TYPES.md +55 -0
- package/docs/SERVERTOOL_CLOCK_DESIGN.md +233 -0
- package/docs/USAGE_HANDLING_ANALYSIS.md +335 -0
- package/docs/USER_CONFIG_PARSER_CHANGES.md +175 -0
- package/docs/V3_INBOUND_OUTBOUND_DESIGN.md +86 -0
- package/docs/VIRTUAL_ROUTER_PRIORITY_AND_HEALTH.md +125 -0
- package/docs/anthropic-request-golden-samples.md +50 -0
- package/docs/antigravity-gemini-format-cleanup.md +102 -0
- package/docs/antigravity-routing-contract.md +31 -0
- package/docs/ccr-alignment-enhancetool.md +105 -0
- package/docs/chat-glm-500-analysis.md +79 -0
- package/docs/chat-request-golden-samples.md +42 -0
- package/docs/chat-semantic-expansion-plan.md +84 -0
- package/docs/cli-command-inventory.md +76 -0
- package/docs/codex-samples-replay.md +50 -0
- package/docs/daemon-admin-api-design.md +350 -0
- package/docs/daemon-admin-module-structure.md +169 -0
- package/docs/daemon-admin-ui.html +3394 -0
- package/docs/debug-system-design.md +734 -0
- package/docs/debugging/gemini-sse-root-cause.md +52 -0
- package/docs/debugging/sse_encoding_failure_analysis.md +53 -0
- package/docs/dry-run/README.md +721 -0
- package/docs/error-handling-v2.md +92 -0
- package/docs/exec-command-guard-policy.example.v1.json +42 -0
- package/docs/fixes/gemini-protocol-mapping.md +57 -0
- package/docs/fixes/oauth-portal-timing-fix.md +202 -0
- package/docs/fixes/web-search-hop3-fix.md +265 -0
- package/docs/glm-api-reference.md +390 -0
- package/docs/glm-chat-completions.md +1779 -0
- package/docs/glm-history-inline-images.md +44 -0
- package/docs/golden-ci-library.md +66 -0
- package/docs/lmstudio-dry-run-summary.md +203 -0
- package/docs/lmstudio-tool-calling.md +214 -0
- package/docs/mapping-tables/anthropic-to-openai.json +290 -0
- package/docs/mapping-tables/iflow-to-openai.json +215 -0
- package/docs/mapping-tables/openai-passthrough.json +190 -0
- package/docs/mapping-tables/openai-to-iflow.json +227 -0
- package/docs/monitoring/Design.md +61 -0
- package/docs/multi-token-auth-guide.md +66 -0
- package/docs/oauth-authentication-guide.md +168 -0
- package/docs/oauth-iflow-implementation.md +153 -0
- package/docs/pipeline-routing-report.md +209 -0
- package/docs/plans/manager-daemon/PLAN.md +86 -0
- package/docs/plans/provider-config-v2-plan.md +176 -0
- package/docs/plans/provider-runtime-manager-plan.md +209 -0
- package/docs/plans/transparent-429-failover.md +89 -0
- package/docs/plans/unified-hub-framework-v1.md +245 -0
- package/docs/provider-config-v2-ui-design.md +181 -0
- package/docs/provider-quota-design.md +129 -0
- package/docs/providers/gemini-provider.md +62 -0
- package/docs/providers/lmstudio-v2-migration-report.md +102 -0
- package/docs/providers/provider-composite-design.md +142 -0
- package/docs/providers/provider-composite-testing.md +98 -0
- package/docs/providers/provider-type-only-migration.md +111 -0
- package/docs/rccx-wasm-migration.md +74 -0
- package/docs/refactoring/architecture-comparison-diagram.md +140 -0
- package/docs/refactoring/compatibility-v2-architecture-design.md +738 -0
- package/docs/refactoring/workflow-compatibility-refactoring-design.md +361 -0
- package/docs/reports/routing-classification-report.json +24 -0
- package/docs/reports/routing-classification-report.md +18 -0
- package/docs/reports/thinking-keywords-report.json +19 -0
- package/docs/responses/README.md +156 -0
- package/docs/responses-generic-provider.md +86 -0
- package/docs/responses-passthrough-provider-design.md +202 -0
- package/docs/routing-awrr-health-weighted-round-robin.md +179 -0
- package/docs/routing-instructions.md +393 -0
- package/docs/servertool-framework.md +65 -0
- package/docs/stop-message-auto.md +225 -0
- package/docs/streaming-flow.html +30 -0
- package/docs/streaming-flow.md +182 -0
- package/docs/token-daemon-preview.html +490 -0
- package/docs/token-refresh-daemon-plan.md +269 -0
- package/docs/transformation-tables/Gemini-FinishReason/345/256/214/346/225/264/350/275/254/346/215/242/350/241/250.json +233 -0
- package/docs/transformation-tables/README.md +225 -0
- package/docs/transformation-tables/claude-code-router-anthropic-to-gemini.json +283 -0
- package/docs/transformation-tables/claude-code-router-anthropic-to-openai.json +208 -0
- package/docs/transformation-tables/claude-code-router-openai-to-anthropic.json +261 -0
- package/docs/transformation-tables/claude-code-router-openai-to-gemini.json +208 -0
- package/docs/transformation-tables/claude-code-router-openai-to-lmstudio.json +182 -0
- package/docs/transformation-tables/claude-code-router-openai-to-ollama.json +250 -0
- package/docs/transformation-tables/claude-code-router-openai-to-textgenwebui.json +295 -0
- package/docs/transformation-tables/claude-code-router-provider-conversions.json +193 -0
- package/docs/transformation-tables//345/256/214/346/225/264/347/232/204/345/267/245/345/205/267/346/211/247/350/241/214/346/265/201/347/250/213/350/275/254/346/215/242/350/241/250.json +299 -0
- package/docs/transformation-tables//345/257/271/350/257/235/345/216/206/345/217/262/347/273/264/346/212/244/345/210/206/346/236/220.md +134 -0
- package/docs/transformation-tables//345/267/245/345/205/267/350/260/203/347/224/250/346/250/241/345/274/217/345/210/206/346/236/220.md +158 -0
- package/docs/transformation-tables//347/212/266/346/200/201/347/256/241/347/220/206/351/234/200/346/261/202/345/210/206/346/236/220.md +175 -0
- package/docs/transformation-tables//351/235/231/346/200/201/350/241/250vs/345/212/250/346/200/201/345/210/206/346/236/220.md +189 -0
- package/docs/transformation-tables//351/235/231/346/200/201/350/241/250/345/207/206/347/241/256/346/200/247/350/257/204/344/274/260.md +179 -0
- package/docs/transformation-tables//351/235/236/346/265/201/345/274/217/345/234/272/346/231/257/345/210/206/346/236/220.md +189 -0
- package/docs/v2-architecture/IMPLEMENTATION-ROADMAP.md +367 -0
- package/docs/v2-architecture/OPTIMIZED-DESIGN.md +827 -0
- package/docs/v2-architecture/PRERUN-CONNECTION-DESIGN.md +716 -0
- package/docs/v2-architecture/README.md +549 -0
- package/docs/verification/modelscope-verify.md +59 -0
- package/docs/verified-configs/README.md +60 -0
- package/docs/verified-configs/v0.45.0/README.md +244 -0
- package/docs/verified-configs/v0.45.0/lmstudio-5521-gpt-oss-20b-mlx.json +135 -0
- package/docs/verified-configs/v0.45.0/merged-config.5521.json +1205 -0
- package/docs/verified-configs/v0.45.0/merged-config.qwen-5522.json +1559 -0
- package/docs/verified-configs/v0.45.0/qwen-5522-qwen3-coder-plus-final.json +221 -0
- package/docs/verified-configs/v0.45.0/qwen-5522-qwen3-coder-plus-fixed.json +242 -0
- package/docs/verified-configs/v0.45.0/qwen-5522-qwen3-coder-plus.json +242 -0
- package/docs/web-search-service-design.md +322 -0
- package/package.json +26 -15
- package/scripts/build-core.mjs +3 -1
- package/scripts/camoufox/launch-auth.mjs +193 -58
- package/scripts/ci/repo-sanity.mjs +138 -0
- package/scripts/mock-provider/run-regressions.mjs +157 -1
- package/scripts/monitor-diff.mjs +126 -0
- package/scripts/pack-mode.mjs +19 -1
- package/scripts/pack-rcc.mjs +63 -0
- package/scripts/run-bg.sh +0 -14
- package/scripts/tests/ci-jest.mjs +119 -0
- package/scripts/tools-dev/responses-debug-client/README.md +23 -0
- package/scripts/tools-dev/responses-debug-client/payloads/poem.json +13 -0
- package/scripts/tools-dev/responses-debug-client/payloads/sample-no-tools.json +98 -0
- package/scripts/tools-dev/responses-debug-client/payloads/text.json +13 -0
- package/scripts/tools-dev/responses-debug-client/payloads/tool.json +27 -0
- package/scripts/tools-dev/responses-debug-client/run.mjs +65 -0
- package/scripts/tools-dev/responses-debug-client/src/index.ts +281 -0
- package/scripts/tools-dev/run-llmswitch-chat.mjs +53 -0
- package/scripts/tools-dev/server-tools-dev/run-web-fetch.mjs +65 -0
- package/scripts/unified-hub-shadow-compare.mjs +33 -13
- package/scripts/vendor-core.mjs +13 -3
- package/scripts/verify-e2e-toolcall.mjs +115 -26
- package/dist/modules/llmswitch/pipeline-registry.d.ts +0 -57
- package/dist/modules/llmswitch/pipeline-registry.js +0 -229
- package/dist/modules/llmswitch/pipeline-registry.js.map +0 -1
- package/dist/server/RouteCodexServer.d.ts +0 -13
- package/dist/server/RouteCodexServer.js +0 -25
- package/dist/server/RouteCodexServer.js.map +0 -1
- package/dist/v2/conversion/hub/snapshot-recorder.d.ts +0 -12
- package/dist/v2/conversion/hub/snapshot-recorder.js +0 -22
- package/dist/v2/conversion/hub/snapshot-recorder.js.map +0 -1
- package/scripts/test-fc-responses.mjs +0 -66
- package/scripts/test-guidance.mjs +0 -100
- package/scripts/test-iflow-web-search.mjs +0 -141
- package/scripts/test-iflow.mjs +0 -379
- package/scripts/test-tool-exec.mjs +0 -26
|
@@ -0,0 +1,666 @@
|
|
|
1
|
+
# RouteCodex Progressive Module Enhancement System
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The RouteCodex Progressive Module Enhancement System provides a simple, declarative way to add debugging capabilities to existing modules one by one while maintaining full backward compatibility. This system makes it easy for developers to incrementally enhance their modules with comprehensive debugging without breaking existing functionality.
|
|
6
|
+
|
|
7
|
+
## Key Features
|
|
8
|
+
|
|
9
|
+
- **Non-intrusive**: Existing modules continue working without any changes
|
|
10
|
+
- **Configuration-driven**: JSON-based configuration for enabling/disabling debugging per module
|
|
11
|
+
- **Progressive rollout**: Add debugging to modules one at a time
|
|
12
|
+
- **Type-safe**: Full TypeScript support with comprehensive type definitions
|
|
13
|
+
- **Performance-aware**: Configurable logging levels and performance tracking
|
|
14
|
+
- **Integration-ready**: Seamlessly integrates with existing DebugCenter and DebugEventBus
|
|
15
|
+
|
|
16
|
+
## Architecture
|
|
17
|
+
|
|
18
|
+
The enhancement system consists of several key components:
|
|
19
|
+
|
|
20
|
+
1. **Module Enhancement Factory** - Core factory that wraps modules with debugging
|
|
21
|
+
2. **Enhancement Configuration Manager** - Manages JSON-based configuration
|
|
22
|
+
3. **Enhancement Registry** - Tracks all enhanced modules
|
|
23
|
+
4. **Module Templates** - Pre-built templates for common module types
|
|
24
|
+
5. **Integration Scripts** - CLI tools for progressive enhancement
|
|
25
|
+
|
|
26
|
+
## Quick Start
|
|
27
|
+
|
|
28
|
+
### 1. Basic Enhancement
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
import { ModuleEnhancementFactory } from '../src/modules/enhancement/module-enhancement-factory.js';
|
|
32
|
+
import { DebugCenter } from 'rcc-errorhandling';
|
|
33
|
+
|
|
34
|
+
// Create factory
|
|
35
|
+
const factory = new ModuleEnhancementFactory(debugCenter);
|
|
36
|
+
|
|
37
|
+
// Enhance your module
|
|
38
|
+
const enhanced = factory.createEnhancedModule(
|
|
39
|
+
originalModule,
|
|
40
|
+
'my-provider',
|
|
41
|
+
'provider',
|
|
42
|
+
{
|
|
43
|
+
enabled: true,
|
|
44
|
+
level: 'detailed',
|
|
45
|
+
consoleLogging: true,
|
|
46
|
+
debugCenter: true
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
// Use enhanced module
|
|
51
|
+
await enhanced.enhanced.processIncoming(request);
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 2. Configuration-Driven Enhancement
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
import { EnhancementConfigManager } from '../src/modules/enhancement/enhancement-config-manager.js';
|
|
58
|
+
|
|
59
|
+
// Create configuration manager
|
|
60
|
+
const configManager = new EnhancementConfigManager(debugCenter);
|
|
61
|
+
|
|
62
|
+
// Enhance using configuration
|
|
63
|
+
const enhanced = await configManager.enhanceModule(
|
|
64
|
+
originalModule,
|
|
65
|
+
'my-provider',
|
|
66
|
+
'provider'
|
|
67
|
+
);
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 3. CLI Enhancement Tool
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# Add enhancement to a module
|
|
74
|
+
node scripts/enhance-module.js add src/providers/core/runtime/chat-http-provider.ts
|
|
75
|
+
|
|
76
|
+
# Auto-detect modules
|
|
77
|
+
node scripts/enhance-module.js auto-detect
|
|
78
|
+
|
|
79
|
+
# List enhanced modules
|
|
80
|
+
node scripts/enhance-module.js list
|
|
81
|
+
|
|
82
|
+
# Enable/disable debugging
|
|
83
|
+
node scripts/enhance-module.js enable lmstudio-provider
|
|
84
|
+
node scripts/enhance-module.js disable lmstudio-provider
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Configuration
|
|
88
|
+
|
|
89
|
+
### JSON Configuration File
|
|
90
|
+
|
|
91
|
+
The system uses a JSON configuration file (`enhancement-config.json`) to control debugging behavior:
|
|
92
|
+
|
|
93
|
+
```json
|
|
94
|
+
{
|
|
95
|
+
"version": "1.0.0",
|
|
96
|
+
"global": {
|
|
97
|
+
"enabled": true,
|
|
98
|
+
"defaults": {
|
|
99
|
+
"enabled": true,
|
|
100
|
+
"level": "detailed",
|
|
101
|
+
"consoleLogging": true,
|
|
102
|
+
"debugCenter": true,
|
|
103
|
+
"maxLogEntries": 1000,
|
|
104
|
+
"performanceTracking": true,
|
|
105
|
+
"requestLogging": true,
|
|
106
|
+
"errorTracking": true,
|
|
107
|
+
"transformationLogging": true
|
|
108
|
+
},
|
|
109
|
+
"modules": {
|
|
110
|
+
"lmstudio-provider": {
|
|
111
|
+
"moduleId": "lmstudio-provider",
|
|
112
|
+
"moduleType": "provider",
|
|
113
|
+
"enabled": true,
|
|
114
|
+
"level": "detailed",
|
|
115
|
+
"consoleLogging": true,
|
|
116
|
+
"debugCenter": true
|
|
117
|
+
},
|
|
118
|
+
"pipeline-manager": {
|
|
119
|
+
"moduleId": "pipeline-manager",
|
|
120
|
+
"moduleType": "pipeline",
|
|
121
|
+
"enabled": true,
|
|
122
|
+
"level": "verbose",
|
|
123
|
+
"consoleLogging": true,
|
|
124
|
+
"debugCenter": true
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"autoDetection": {
|
|
128
|
+
"enabled": true,
|
|
129
|
+
"patterns": [
|
|
130
|
+
"src/modules/pipeline/modules/**/*.ts",
|
|
131
|
+
"src/modules/pipeline/core/**/*.ts",
|
|
132
|
+
"src/server/**/*.ts"
|
|
133
|
+
],
|
|
134
|
+
"excludeDirs": [
|
|
135
|
+
"node_modules",
|
|
136
|
+
"dist",
|
|
137
|
+
"tests"
|
|
138
|
+
]
|
|
139
|
+
},
|
|
140
|
+
"performance": {
|
|
141
|
+
"enabled": true,
|
|
142
|
+
"thresholds": {
|
|
143
|
+
"warning": 1000,
|
|
144
|
+
"critical": 5000
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"environments": {
|
|
149
|
+
"development": {
|
|
150
|
+
"enabled": true,
|
|
151
|
+
"defaults": {
|
|
152
|
+
"enabled": true,
|
|
153
|
+
"level": "verbose",
|
|
154
|
+
"consoleLogging": true,
|
|
155
|
+
"debugCenter": true
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"production": {
|
|
159
|
+
"enabled": true,
|
|
160
|
+
"defaults": {
|
|
161
|
+
"enabled": false,
|
|
162
|
+
"level": "basic",
|
|
163
|
+
"consoleLogging": false,
|
|
164
|
+
"debugCenter": true
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Environment-Specific Configuration
|
|
172
|
+
|
|
173
|
+
The system supports environment-specific overrides:
|
|
174
|
+
|
|
175
|
+
- **development**: Full debugging enabled with verbose logging
|
|
176
|
+
- **production**: Minimal debugging for performance
|
|
177
|
+
- **test**: Verbose logging for testing scenarios
|
|
178
|
+
|
|
179
|
+
## Module Types
|
|
180
|
+
|
|
181
|
+
The system supports enhancement for different module types:
|
|
182
|
+
|
|
183
|
+
### Provider Modules
|
|
184
|
+
```typescript
|
|
185
|
+
const enhanced = factory.createEnhancedModule(
|
|
186
|
+
providerModule,
|
|
187
|
+
'my-provider',
|
|
188
|
+
'provider',
|
|
189
|
+
config
|
|
190
|
+
);
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Pipeline Modules
|
|
194
|
+
```typescript
|
|
195
|
+
const enhanced = factory.createEnhancedModule(
|
|
196
|
+
pipelineModule,
|
|
197
|
+
'my-pipeline',
|
|
198
|
+
'pipeline',
|
|
199
|
+
config
|
|
200
|
+
);
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Compatibility Modules
|
|
204
|
+
```typescript
|
|
205
|
+
const enhanced = factory.createEnhancedModule(
|
|
206
|
+
compatibilityModule,
|
|
207
|
+
'my-compatibility',
|
|
208
|
+
'compatibility',
|
|
209
|
+
config
|
|
210
|
+
);
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Workflow Modules
|
|
214
|
+
```typescript
|
|
215
|
+
const enhanced = factory.createEnhancedModule(
|
|
216
|
+
workflowModule,
|
|
217
|
+
'my-workflow',
|
|
218
|
+
'workflow',
|
|
219
|
+
config
|
|
220
|
+
);
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### HTTP Server Modules
|
|
224
|
+
```typescript
|
|
225
|
+
const enhanced = factory.createEnhancedModule(
|
|
226
|
+
serverModule,
|
|
227
|
+
'my-server',
|
|
228
|
+
'http-server',
|
|
229
|
+
config
|
|
230
|
+
);
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## Enhancement Features
|
|
234
|
+
|
|
235
|
+
### Debug Logging
|
|
236
|
+
- Structured logging with timestamps and request IDs
|
|
237
|
+
- Configurable log levels (none, basic, detailed, verbose)
|
|
238
|
+
- Automatic log rotation and size management
|
|
239
|
+
- Request/response correlation
|
|
240
|
+
|
|
241
|
+
### Performance Tracking
|
|
242
|
+
- Execution time measurement for all methods
|
|
243
|
+
- Performance threshold monitoring
|
|
244
|
+
- Automatic performance metrics collection
|
|
245
|
+
- Integration with DebugEventBus
|
|
246
|
+
|
|
247
|
+
### Error Tracking
|
|
248
|
+
- Comprehensive error logging with stack traces
|
|
249
|
+
- Error categorization and analysis
|
|
250
|
+
- Automatic error reporting to DebugCenter
|
|
251
|
+
- Request context preservation
|
|
252
|
+
|
|
253
|
+
### Request/Response Logging
|
|
254
|
+
- Full request/response capture with sensitive data filtering
|
|
255
|
+
- Request lifecycle tracking
|
|
256
|
+
- Response time analysis
|
|
257
|
+
- Content size monitoring
|
|
258
|
+
|
|
259
|
+
### Transformation Logging
|
|
260
|
+
- Data transformation tracking
|
|
261
|
+
- Before/after transformation capture
|
|
262
|
+
- Transformation rule execution logging
|
|
263
|
+
- Performance impact analysis
|
|
264
|
+
|
|
265
|
+
## Integration Examples
|
|
266
|
+
|
|
267
|
+
### Enhancing LM Studio Provider
|
|
268
|
+
|
|
269
|
+
**Before:**
|
|
270
|
+
```typescript
|
|
271
|
+
export class LMStudioProviderSimple implements ProviderModule {
|
|
272
|
+
async processIncoming(request: any): Promise<any> {
|
|
273
|
+
// Direct processing
|
|
274
|
+
const response = await this.sendChatRequest(request);
|
|
275
|
+
return response;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
**After:**
|
|
281
|
+
```typescript
|
|
282
|
+
export class EnhancedLMStudioProvider implements ProviderModule {
|
|
283
|
+
private enhancedModule: EnhancedModule<this> | null = null;
|
|
284
|
+
private configManager: EnhancementConfigManager;
|
|
285
|
+
|
|
286
|
+
async initialize(): Promise<void> {
|
|
287
|
+
this.enhancedModule = await this.configManager.enhanceModule(
|
|
288
|
+
this,
|
|
289
|
+
this.id,
|
|
290
|
+
'provider'
|
|
291
|
+
);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
async processIncoming(request: any): Promise<any> {
|
|
295
|
+
if (!this.enhancedModule) {
|
|
296
|
+
return this.originalProcessIncoming(request);
|
|
297
|
+
}
|
|
298
|
+
return this.enhancedModule.enhanced.processIncoming(request);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### Progressive Enhancement Pattern
|
|
304
|
+
|
|
305
|
+
```typescript
|
|
306
|
+
class MyModule {
|
|
307
|
+
private enhanced: EnhancedModule<this> | null = null;
|
|
308
|
+
|
|
309
|
+
constructor(private config: ModuleConfig, private dependencies: ModuleDependencies) {
|
|
310
|
+
// Initialize enhancement manager
|
|
311
|
+
this.enhancementManager = new EnhancementConfigManager(
|
|
312
|
+
dependencies.debugCenter
|
|
313
|
+
);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
async initialize(): Promise<void> {
|
|
317
|
+
// Create enhanced version
|
|
318
|
+
this.enhanced = await this.enhancementManager.enhanceModule(
|
|
319
|
+
this,
|
|
320
|
+
this.id,
|
|
321
|
+
'provider'
|
|
322
|
+
);
|
|
323
|
+
|
|
324
|
+
// Continue with original initialization
|
|
325
|
+
await this.originalInitialize();
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
async processIncoming(request: any): Promise<any> {
|
|
329
|
+
// Use enhanced version if available, fallback to original
|
|
330
|
+
if (this.enhanced) {
|
|
331
|
+
return this.enhanced.enhanced.processIncoming(request);
|
|
332
|
+
}
|
|
333
|
+
return this.originalProcessIncoming(request);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
## CLI Tool Usage
|
|
339
|
+
|
|
340
|
+
### Adding Enhancement to a Module
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
# Basic enhancement
|
|
344
|
+
node scripts/enhance-module.js add src/providers/core/runtime/my-provider.ts
|
|
345
|
+
|
|
346
|
+
# With custom module ID and type
|
|
347
|
+
node scripts/enhance-module.js add ./my-module.ts my-module provider
|
|
348
|
+
|
|
349
|
+
# Dry run to see changes
|
|
350
|
+
node scripts/enhance-module.js add ./my-module.ts --dry-run
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
### Managing Enhanced Modules
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
# List all modules
|
|
357
|
+
node scripts/enhance-module.js list
|
|
358
|
+
|
|
359
|
+
# Show configuration
|
|
360
|
+
node scripts/enhance-module.js config
|
|
361
|
+
|
|
362
|
+
# Enable enhancement for a module
|
|
363
|
+
node scripts/enhance-module.js enable my-provider
|
|
364
|
+
|
|
365
|
+
# Disable enhancement for a module
|
|
366
|
+
node scripts/enhance-module.js disable my-provider
|
|
367
|
+
|
|
368
|
+
# Remove enhancement
|
|
369
|
+
node scripts/enhance-module.js remove my-provider
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### Auto-Detection
|
|
373
|
+
|
|
374
|
+
```bash
|
|
375
|
+
# Auto-detect modules for enhancement
|
|
376
|
+
node scripts/enhance-module.js auto-detect
|
|
377
|
+
|
|
378
|
+
# Auto-detect with custom patterns
|
|
379
|
+
node scripts/enhance-module.js auto-detect --config custom-config.json
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
## Templates
|
|
383
|
+
|
|
384
|
+
The system provides templates for common module types:
|
|
385
|
+
|
|
386
|
+
### Provider Template
|
|
387
|
+
```typescript
|
|
388
|
+
import { EnhancedProviderModule } from '../src/modules/enhancement/templates/provider-template.js';
|
|
389
|
+
|
|
390
|
+
export class MyProvider extends EnhancedProviderModule {
|
|
391
|
+
// Automatically gets all debugging capabilities
|
|
392
|
+
// Just implement the provider-specific logic
|
|
393
|
+
}
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
### Pipeline Template
|
|
397
|
+
```typescript
|
|
398
|
+
import { EnhancedPipelineManager } from '../src/modules/enhancement/templates/pipeline-template.js';
|
|
399
|
+
|
|
400
|
+
export class MyPipelineManager extends EnhancedPipelineManager {
|
|
401
|
+
// Enhanced with debugging out of the box
|
|
402
|
+
}
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
## Debugging Integration
|
|
406
|
+
|
|
407
|
+
The enhancement system seamlessly integrates with RouteCodex's debugging infrastructure:
|
|
408
|
+
|
|
409
|
+
### DebugEventBus Integration
|
|
410
|
+
```typescript
|
|
411
|
+
// Enhanced modules automatically publish to DebugEventBus
|
|
412
|
+
const eventBus = DebugEventBus.getInstance();
|
|
413
|
+
eventBus.subscribe(event => {
|
|
414
|
+
console.log('Debug event:', event);
|
|
415
|
+
});
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### DebugCenter Integration
|
|
419
|
+
```typescript
|
|
420
|
+
// All enhanced modules send events to DebugCenter
|
|
421
|
+
debugCenter.processDebugEvent({
|
|
422
|
+
sessionId: 'request-123',
|
|
423
|
+
moduleId: 'my-provider',
|
|
424
|
+
operationId: 'processIncoming',
|
|
425
|
+
timestamp: Date.now(),
|
|
426
|
+
type: 'start',
|
|
427
|
+
position: 'middle',
|
|
428
|
+
data: { /* debug data */ }
|
|
429
|
+
});
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
## Performance Considerations
|
|
433
|
+
|
|
434
|
+
### Minimal Overhead
|
|
435
|
+
- Zero overhead when disabled
|
|
436
|
+
- Conditional logging based on configuration
|
|
437
|
+
- Efficient log rotation and cleanup
|
|
438
|
+
|
|
439
|
+
### Configurable Levels
|
|
440
|
+
```typescript
|
|
441
|
+
const config: EnhancementConfig = {
|
|
442
|
+
enabled: true,
|
|
443
|
+
level: 'basic', // Minimal logging
|
|
444
|
+
consoleLogging: false, // No console output
|
|
445
|
+
debugCenter: true, // Still send to DebugCenter
|
|
446
|
+
maxLogEntries: 100 // Limit memory usage
|
|
447
|
+
};
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
### Production Optimization
|
|
451
|
+
```typescript
|
|
452
|
+
// Production configuration
|
|
453
|
+
const productionConfig: EnhancementConfig = {
|
|
454
|
+
enabled: false, // Completely disabled
|
|
455
|
+
level: 'none',
|
|
456
|
+
consoleLogging: false,
|
|
457
|
+
debugCenter: false
|
|
458
|
+
};
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
## Testing Enhanced Modules
|
|
462
|
+
|
|
463
|
+
```typescript
|
|
464
|
+
import { EnhancedModule } from '../src/modules/enhancement/module-enhancement-factory.js';
|
|
465
|
+
|
|
466
|
+
describe('Enhanced Provider', () => {
|
|
467
|
+
let enhanced: EnhancedModule<MyProvider>;
|
|
468
|
+
|
|
469
|
+
beforeEach(async () => {
|
|
470
|
+
const original = new MyProvider(config, dependencies);
|
|
471
|
+
const factory = new ModuleEnhancementFactory(debugCenter);
|
|
472
|
+
|
|
473
|
+
enhanced = factory.createEnhancedModule(
|
|
474
|
+
original,
|
|
475
|
+
'test-provider',
|
|
476
|
+
'provider',
|
|
477
|
+
{ enabled: true, level: 'verbose' }
|
|
478
|
+
);
|
|
479
|
+
|
|
480
|
+
await enhanced.enhanced.initialize();
|
|
481
|
+
});
|
|
482
|
+
|
|
483
|
+
it('should process requests with debugging', async () => {
|
|
484
|
+
const response = await enhanced.enhanced.processIncoming(testRequest);
|
|
485
|
+
|
|
486
|
+
// Check that debugging occurred
|
|
487
|
+
expect(enhanced.logger.getStatistics().totalLogs).toBeGreaterThan(0);
|
|
488
|
+
|
|
489
|
+
// Verify response
|
|
490
|
+
expect(response).toBeDefined();
|
|
491
|
+
});
|
|
492
|
+
|
|
493
|
+
it('should capture performance metrics', async () => {
|
|
494
|
+
await enhanced.enhanced.processIncoming(testRequest);
|
|
495
|
+
|
|
496
|
+
const stats = enhanced.logger.getStatistics();
|
|
497
|
+
expect(stats.performanceTracking).toBe(true);
|
|
498
|
+
});
|
|
499
|
+
});
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
## Migration Guide
|
|
503
|
+
|
|
504
|
+
### Step 1: Identify Modules to Enhance
|
|
505
|
+
```bash
|
|
506
|
+
# Auto-detect modules
|
|
507
|
+
node scripts/enhance-module.js auto-detect
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
### Step 2: Start with Non-Critical Modules
|
|
511
|
+
```bash
|
|
512
|
+
# Enhance a test module first
|
|
513
|
+
node scripts/enhance-module.js add src/modules/test-module.ts --dry-run
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
### Step 3: Gradually Roll Out
|
|
517
|
+
```bash
|
|
518
|
+
# Enable one by one
|
|
519
|
+
node scripts/enhance-module.js enable module1
|
|
520
|
+
node scripts/enhance-module.js enable module2
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
### Step 4: Monitor and Adjust
|
|
524
|
+
```bash
|
|
525
|
+
# Check logs and performance
|
|
526
|
+
node scripts/enhance-module.js list
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
## Best Practices
|
|
530
|
+
|
|
531
|
+
### 1. Start Small
|
|
532
|
+
- Begin with non-critical modules
|
|
533
|
+
- Use basic logging levels initially
|
|
534
|
+
- Monitor performance impact
|
|
535
|
+
|
|
536
|
+
### 2. Use Environment-Specific Configs
|
|
537
|
+
```typescript
|
|
538
|
+
const config = process.env.NODE_ENV === 'production'
|
|
539
|
+
? productionConfig
|
|
540
|
+
: developmentConfig;
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
### 3. Monitor Log Sizes
|
|
544
|
+
```typescript
|
|
545
|
+
const stats = enhanced.logger.getStatistics();
|
|
546
|
+
if (stats.totalLogs > 10000) {
|
|
547
|
+
enhanced.logger.clearLogs();
|
|
548
|
+
}
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
### 4. Use Selective Enhancement
|
|
552
|
+
```typescript
|
|
553
|
+
// Only enhance specific methods
|
|
554
|
+
const config: EnhancementConfig = {
|
|
555
|
+
enabled: true,
|
|
556
|
+
requestLogging: true,
|
|
557
|
+
errorTracking: true,
|
|
558
|
+
transformationLogging: false // Skip this for performance
|
|
559
|
+
};
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
## Troubleshooting
|
|
563
|
+
|
|
564
|
+
### Common Issues
|
|
565
|
+
|
|
566
|
+
**Module not found in configuration**
|
|
567
|
+
```bash
|
|
568
|
+
# Check configuration
|
|
569
|
+
node scripts/enhance-module.js config
|
|
570
|
+
|
|
571
|
+
# Auto-detect modules
|
|
572
|
+
node scripts/enhance-module.js auto-detect
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
**Performance degradation**
|
|
576
|
+
```typescript
|
|
577
|
+
// Reduce logging level
|
|
578
|
+
const config: EnhancementConfig = {
|
|
579
|
+
enabled: true,
|
|
580
|
+
level: 'basic',
|
|
581
|
+
maxLogEntries: 100
|
|
582
|
+
};
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
**Memory usage high**
|
|
586
|
+
```typescript
|
|
587
|
+
// Clear logs periodically
|
|
588
|
+
enhanced.logger.clearLogs();
|
|
589
|
+
|
|
590
|
+
// Reduce max entries
|
|
591
|
+
const config: EnhancementConfig = {
|
|
592
|
+
maxLogEntries: 500
|
|
593
|
+
};
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
### Debug Mode
|
|
597
|
+
```typescript
|
|
598
|
+
// Enable verbose logging for troubleshooting
|
|
599
|
+
const config: EnhancementConfig = {
|
|
600
|
+
enabled: true,
|
|
601
|
+
level: 'verbose',
|
|
602
|
+
consoleLogging: true,
|
|
603
|
+
debugCenter: true
|
|
604
|
+
};
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
## API Reference
|
|
608
|
+
|
|
609
|
+
### ModuleEnhancementFactory
|
|
610
|
+
|
|
611
|
+
```typescript
|
|
612
|
+
class ModuleEnhancementFactory {
|
|
613
|
+
constructor(debugCenter: DebugCenter);
|
|
614
|
+
|
|
615
|
+
createEnhancedModule<T>(
|
|
616
|
+
module: T,
|
|
617
|
+
moduleId: string,
|
|
618
|
+
moduleType: string,
|
|
619
|
+
config?: EnhancementConfig
|
|
620
|
+
): EnhancedModule<T>;
|
|
621
|
+
}
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
### EnhancementConfigManager
|
|
625
|
+
|
|
626
|
+
```typescript
|
|
627
|
+
class EnhancementConfigManager {
|
|
628
|
+
constructor(debugCenter: DebugCenter, configPath?: string);
|
|
629
|
+
|
|
630
|
+
async enhanceModule<T>(
|
|
631
|
+
module: T,
|
|
632
|
+
moduleId: string,
|
|
633
|
+
moduleType: string,
|
|
634
|
+
config?: EnhancementConfig
|
|
635
|
+
): Promise<EnhancedModule<T>>;
|
|
636
|
+
|
|
637
|
+
async loadConfig(configPath?: string): Promise<void>;
|
|
638
|
+
async saveConfig(config?: EnhancementConfigFile): Promise<void>;
|
|
639
|
+
|
|
640
|
+
getConfig(): EnhancementConfigFile | null;
|
|
641
|
+
getModuleConfig(moduleId: string): ModuleEnhancementConfig | null;
|
|
642
|
+
}
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
### EnhancedModule
|
|
646
|
+
|
|
647
|
+
```typescript
|
|
648
|
+
interface EnhancedModule<T> {
|
|
649
|
+
readonly original: T;
|
|
650
|
+
readonly enhanced: T;
|
|
651
|
+
readonly logger: PipelineDebugLogger;
|
|
652
|
+
readonly config: EnhancementConfig;
|
|
653
|
+
readonly metadata: {
|
|
654
|
+
moduleId: string;
|
|
655
|
+
moduleType: string;
|
|
656
|
+
enhanced: boolean;
|
|
657
|
+
enhancementTime: number;
|
|
658
|
+
};
|
|
659
|
+
}
|
|
660
|
+
```
|
|
661
|
+
|
|
662
|
+
## Conclusion
|
|
663
|
+
|
|
664
|
+
The RouteCodex Progressive Module Enhancement System provides a comprehensive solution for adding debugging capabilities to existing modules incrementally. By using configuration-driven enhancement and maintaining backward compatibility, developers can gradually improve their debugging capabilities without disrupting existing functionality.
|
|
665
|
+
|
|
666
|
+
The system's modular design, type safety, and integration with existing debugging infrastructure make it an essential tool for maintaining and debugging complex RouteCodex applications.
|
package/docs/PORTS.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# 端口与监听地址(输入端口)说明
|
|
2
|
+
|
|
3
|
+
## 配置文件
|
|
4
|
+
|
|
5
|
+
推荐在 `~/.routecodex/config.json` 里配置:
|
|
6
|
+
|
|
7
|
+
```jsonc
|
|
8
|
+
{
|
|
9
|
+
"httpserver": {
|
|
10
|
+
"host": "127.0.0.1",
|
|
11
|
+
"port": 5555
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## CLI 行为差异(rcc vs routecodex)
|
|
17
|
+
|
|
18
|
+
### `rcc`(release 包)
|
|
19
|
+
|
|
20
|
+
- **严格按配置文件端口启动**(`httpserver.port`)
|
|
21
|
+
- 若端口缺失/非法:`rcc start` 直接失败
|
|
22
|
+
|
|
23
|
+
### `routecodex`(dev worktree)
|
|
24
|
+
|
|
25
|
+
- 默认端口固定为 `5555`
|
|
26
|
+
- 可用环境变量覆盖:
|
|
27
|
+
- `ROUTECODEX_PORT` 或 `RCC_PORT`
|
|
28
|
+
- 也可用 `routecodex start --port <port>` 覆盖(dev package only)
|
|
29
|
+
|
|
30
|
+
## 常用排查
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
rcc status
|
|
34
|
+
curl http://127.0.0.1:5555/ready
|
|
35
|
+
```
|
|
36
|
+
|