@jsonstudio/rcc 0.90.252 → 0.90.352

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.
Files changed (335) hide show
  1. package/README.md +16 -16
  2. package/config/providers/ali-coding-plan.json +73 -0
  3. package/dist/build-info.js +2 -2
  4. package/dist/cli/commands/camoufox.js +2 -2
  5. package/dist/cli/commands/camoufox.js.map +1 -1
  6. package/dist/cli/commands/clean.js +4 -3
  7. package/dist/cli/commands/clean.js.map +1 -1
  8. package/dist/cli/commands/config.js +2 -1
  9. package/dist/cli/commands/config.js.map +1 -1
  10. package/dist/cli/commands/env.js +2 -1
  11. package/dist/cli/commands/env.js.map +1 -1
  12. package/dist/cli/commands/init/basic.js +2 -1
  13. package/dist/cli/commands/init/basic.js.map +1 -1
  14. package/dist/cli/commands/init.js +4 -3
  15. package/dist/cli/commands/init.js.map +1 -1
  16. package/dist/cli/commands/launcher-kernel.js +34 -8
  17. package/dist/cli/commands/launcher-kernel.js.map +1 -1
  18. package/dist/cli/commands/port.js +1 -1
  19. package/dist/cli/commands/port.js.map +1 -1
  20. package/dist/cli/commands/restart.js +3 -2
  21. package/dist/cli/commands/restart.js.map +1 -1
  22. package/dist/cli/commands/session-admin.js +46 -8
  23. package/dist/cli/commands/session-admin.js.map +1 -1
  24. package/dist/cli/commands/session-inject.js +43 -4
  25. package/dist/cli/commands/session-inject.js.map +1 -1
  26. package/dist/cli/commands/start.js +4 -3
  27. package/dist/cli/commands/start.js.map +1 -1
  28. package/dist/cli/commands/stop.js +3 -2
  29. package/dist/cli/commands/stop.js.map +1 -1
  30. package/dist/cli/config/bundled-docs.js +2 -6
  31. package/dist/cli/config/bundled-docs.js.map +1 -1
  32. package/dist/cli/config/init-config.d.ts +1 -0
  33. package/dist/cli/config/init-config.js +6 -3
  34. package/dist/cli/config/init-config.js.map +1 -1
  35. package/dist/cli/config/init-provider-catalog.js +4 -4
  36. package/dist/cli/config/init-provider-catalog.js.map +1 -1
  37. package/dist/cli/config/precommand-default-script.js +3 -9
  38. package/dist/cli/config/precommand-default-script.js.map +1 -1
  39. package/dist/cli/guardian/paths.js +2 -3
  40. package/dist/cli/guardian/paths.js.map +1 -1
  41. package/dist/cli.js +10 -2
  42. package/dist/cli.js.map +1 -1
  43. package/dist/commands/camoufox-fp.js +2 -3
  44. package/dist/commands/camoufox-fp.js.map +1 -1
  45. package/dist/commands/migrate-user-config.d.ts +6 -0
  46. package/dist/commands/migrate-user-config.js +53 -0
  47. package/dist/commands/migrate-user-config.js.map +1 -0
  48. package/dist/commands/provider-update.js +9 -9
  49. package/dist/commands/provider-update.js.map +1 -1
  50. package/dist/commands/quota-daemon.js +3 -3
  51. package/dist/commands/quota-daemon.js.map +1 -1
  52. package/dist/commands/quota-status.js +2 -2
  53. package/dist/commands/quota-status.js.map +1 -1
  54. package/dist/commands/token-daemon.js +2 -2
  55. package/dist/commands/token-daemon.js.map +1 -1
  56. package/dist/commands/validate.js +2 -3
  57. package/dist/commands/validate.js.map +1 -1
  58. package/dist/config/auth-file-resolver.js +2 -2
  59. package/dist/config/auth-file-resolver.js.map +1 -1
  60. package/dist/config/provider-v2-loader.js +9 -6
  61. package/dist/config/provider-v2-loader.js.map +1 -1
  62. package/dist/config/routecodex-config-loader.js +2 -2
  63. package/dist/config/routecodex-config-loader.js.map +1 -1
  64. package/dist/config/unified-config-paths.js +33 -11
  65. package/dist/config/unified-config-paths.js.map +1 -1
  66. package/dist/config/user-config-migration.d.ts +42 -0
  67. package/dist/config/user-config-migration.js +188 -0
  68. package/dist/config/user-config-migration.js.map +1 -0
  69. package/dist/config/user-data-paths.d.ts +59 -0
  70. package/dist/config/user-data-paths.js +174 -0
  71. package/dist/config/user-data-paths.js.map +1 -0
  72. package/dist/config/virtual-router-builder.d.ts +1 -1
  73. package/dist/config/virtual-router-builder.js +1 -1
  74. package/dist/daemon-admin-ui/assets/index-Bnx13Byl.js +15 -0
  75. package/dist/daemon-admin-ui/index.html +1 -1
  76. package/dist/docs/daemon-admin-ui.html +9 -9
  77. package/dist/index.js +66 -13
  78. package/dist/index.js.map +1 -1
  79. package/dist/manager/modules/health/index.js +2 -2
  80. package/dist/manager/modules/health/index.js.map +1 -1
  81. package/dist/manager/modules/quota/antigravity-quota-persistence.d.ts +2 -1
  82. package/dist/manager/modules/quota/antigravity-quota-persistence.js +11 -22
  83. package/dist/manager/modules/quota/antigravity-quota-persistence.js.map +1 -1
  84. package/dist/manager/quota/provider-quota-center.js +33 -25
  85. package/dist/manager/quota/provider-quota-center.js.map +1 -1
  86. package/dist/manager/quota/provider-quota-store.js +11 -4
  87. package/dist/manager/quota/provider-quota-store.js.map +1 -1
  88. package/dist/modules/config/pipeline-config-path.js +3 -3
  89. package/dist/modules/config/pipeline-config-path.js.map +1 -1
  90. package/dist/modules/llmswitch/bridge/index.d.ts +1 -1
  91. package/dist/modules/llmswitch/bridge/index.js +1 -1
  92. package/dist/modules/llmswitch/bridge/index.js.map +1 -1
  93. package/dist/modules/llmswitch/bridge/native-exports.d.ts +1 -0
  94. package/dist/modules/llmswitch/bridge/native-exports.js +27 -0
  95. package/dist/modules/llmswitch/bridge/native-exports.js.map +1 -1
  96. package/dist/modules/llmswitch/bridge/snapshot-recorder.js +95 -24
  97. package/dist/modules/llmswitch/bridge/snapshot-recorder.js.map +1 -1
  98. package/dist/modules/llmswitch/bridge/state-integrations.d.ts +18 -0
  99. package/dist/modules/llmswitch/bridge/state-integrations.js +28 -0
  100. package/dist/modules/llmswitch/bridge/state-integrations.js.map +1 -1
  101. package/dist/modules/llmswitch/bridge.d.ts +2 -2
  102. package/dist/modules/llmswitch/bridge.js +2 -2
  103. package/dist/modules/llmswitch/bridge.js.map +1 -1
  104. package/dist/modules/pipeline/utils/colored-logger.d.ts +1 -0
  105. package/dist/modules/pipeline/utils/colored-logger.js +13 -9
  106. package/dist/modules/pipeline/utils/colored-logger.js.map +1 -1
  107. package/dist/providers/auth/antigravity-fingerprint.js +2 -3
  108. package/dist/providers/auth/antigravity-fingerprint.js.map +1 -1
  109. package/dist/providers/auth/antigravity-reauth-state.js +2 -3
  110. package/dist/providers/auth/antigravity-reauth-state.js.map +1 -1
  111. package/dist/providers/auth/antigravity-user-agent.js +2 -2
  112. package/dist/providers/auth/antigravity-user-agent.js.map +1 -1
  113. package/dist/providers/auth/antigravity-warmup.js +2 -3
  114. package/dist/providers/auth/antigravity-warmup.js.map +1 -1
  115. package/dist/providers/auth/deepseek-account-auth.js +4 -3
  116. package/dist/providers/auth/deepseek-account-auth.js.map +1 -1
  117. package/dist/providers/auth/deepseek-account-token-acquirer.js +3 -2
  118. package/dist/providers/auth/deepseek-account-token-acquirer.js.map +1 -1
  119. package/dist/providers/auth/oauth-auth.js +2 -3
  120. package/dist/providers/auth/oauth-auth.js.map +1 -1
  121. package/dist/providers/auth/oauth-lifecycle/path-resolver.js +6 -7
  122. package/dist/providers/auth/oauth-lifecycle/path-resolver.js.map +1 -1
  123. package/dist/providers/auth/oauth-lifecycle.js +4 -4
  124. package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
  125. package/dist/providers/auth/oauth-repair-cooldown.js +2 -3
  126. package/dist/providers/auth/oauth-repair-cooldown.js.map +1 -1
  127. package/dist/providers/auth/token-scanner/index.js +2 -3
  128. package/dist/providers/auth/token-scanner/index.js.map +1 -1
  129. package/dist/providers/auth/token-storage/token-file-resolver.js +8 -7
  130. package/dist/providers/auth/token-storage/token-file-resolver.js.map +1 -1
  131. package/dist/providers/auth/tokenfile-auth.js +5 -6
  132. package/dist/providers/auth/tokenfile-auth.js.map +1 -1
  133. package/dist/providers/core/config/camoufox-launcher.js +3 -4
  134. package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
  135. package/dist/providers/core/config/provider-oauth-configs.js +2 -2
  136. package/dist/providers/core/config/provider-oauth-configs.js.map +1 -1
  137. package/dist/providers/core/hooks/hooks-integration.js +1 -1
  138. package/dist/providers/core/hooks/hooks-integration.js.map +1 -1
  139. package/dist/providers/core/runtime/deepseek-http-provider.js +2 -1
  140. package/dist/providers/core/runtime/deepseek-http-provider.js.map +1 -1
  141. package/dist/providers/core/utils/snapshot-writer.js +2 -1
  142. package/dist/providers/core/utils/snapshot-writer.js.map +1 -1
  143. package/dist/providers/profile/families/anthropic-profile.js +32 -0
  144. package/dist/providers/profile/families/anthropic-profile.js.map +1 -1
  145. package/dist/server/handlers/config-admin-handler.d.ts +1 -1
  146. package/dist/server/handlers/config-admin-handler.js +6 -6
  147. package/dist/server/handlers/config-admin-handler.js.map +1 -1
  148. package/dist/server/handlers/handler-response-utils.js +9 -4
  149. package/dist/server/handlers/handler-response-utils.js.map +1 -1
  150. package/dist/server/runtime/http-server/clock-runtime-hooks.d.ts +2 -0
  151. package/dist/server/runtime/http-server/clock-runtime-hooks.js +91 -0
  152. package/dist/server/runtime/http-server/clock-runtime-hooks.js.map +1 -0
  153. package/dist/server/runtime/http-server/daemon-admin/auth-handler.js +51 -13
  154. package/dist/server/runtime/http-server/daemon-admin/auth-handler.js.map +1 -1
  155. package/dist/server/runtime/http-server/daemon-admin/auth-store.d.ts +1 -9
  156. package/dist/server/runtime/http-server/daemon-admin/auth-store.js +2 -18
  157. package/dist/server/runtime/http-server/daemon-admin/auth-store.js.map +1 -1
  158. package/dist/server/runtime/http-server/daemon-admin/control-handler.js +3 -3
  159. package/dist/server/runtime/http-server/daemon-admin/control-handler.js.map +1 -1
  160. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +2 -2
  161. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
  162. package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js +5 -4
  163. package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js.map +1 -1
  164. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +3 -3
  165. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js.map +1 -1
  166. package/dist/server/runtime/http-server/daemon-admin-routes.d.ts +2 -0
  167. package/dist/server/runtime/http-server/daemon-admin-routes.js +11 -8
  168. package/dist/server/runtime/http-server/daemon-admin-routes.js.map +1 -1
  169. package/dist/server/runtime/http-server/executor/client-injection-flow.js +9 -1
  170. package/dist/server/runtime/http-server/executor/client-injection-flow.js.map +1 -1
  171. package/dist/server/runtime/http-server/executor/provider-response-converter.js +119 -26
  172. package/dist/server/runtime/http-server/executor/provider-response-converter.js.map +1 -1
  173. package/dist/server/runtime/http-server/executor/request-retry-helpers.d.ts +1 -0
  174. package/dist/server/runtime/http-server/executor/request-retry-helpers.js +26 -0
  175. package/dist/server/runtime/http-server/executor/request-retry-helpers.js.map +1 -1
  176. package/dist/server/runtime/http-server/http-server-bootstrap.js +2 -3
  177. package/dist/server/runtime/http-server/http-server-bootstrap.js.map +1 -1
  178. package/dist/server/runtime/http-server/http-server-lifecycle.js +2 -0
  179. package/dist/server/runtime/http-server/http-server-lifecycle.js.map +1 -1
  180. package/dist/server/runtime/http-server/http-server-runtime-setup.js +2 -0
  181. package/dist/server/runtime/http-server/http-server-runtime-setup.js.map +1 -1
  182. package/dist/server/runtime/http-server/http-server-session-daemon.js +9 -299
  183. package/dist/server/runtime/http-server/http-server-session-daemon.js.map +1 -1
  184. package/dist/server/runtime/http-server/middleware.d.ts +7 -0
  185. package/dist/server/runtime/http-server/middleware.js +1 -1
  186. package/dist/server/runtime/http-server/middleware.js.map +1 -1
  187. package/dist/server/runtime/http-server/request-executor.js +36 -51
  188. package/dist/server/runtime/http-server/request-executor.js.map +1 -1
  189. package/dist/server/runtime/http-server/routes.js +10 -3
  190. package/dist/server/runtime/http-server/routes.js.map +1 -1
  191. package/dist/server/runtime/http-server/servertool-admin-state.d.ts +1 -0
  192. package/dist/server/runtime/http-server/servertool-admin-state.js +7 -2
  193. package/dist/server/runtime/http-server/servertool-admin-state.js.map +1 -1
  194. package/dist/server/runtime/http-server/session-client-route-utils.d.ts +1 -0
  195. package/dist/server/runtime/http-server/session-client-route-utils.js +49 -4
  196. package/dist/server/runtime/http-server/session-client-route-utils.js.map +1 -1
  197. package/dist/server/runtime/http-server/session-client-routes.d.ts +5 -1
  198. package/dist/server/runtime/http-server/session-client-routes.js +60 -30
  199. package/dist/server/runtime/http-server/session-client-routes.js.map +1 -1
  200. package/dist/server/runtime/http-server/session-dir.js +6 -12
  201. package/dist/server/runtime/http-server/session-dir.js.map +1 -1
  202. package/dist/server/runtime/http-server/stats-manager.js +4 -3
  203. package/dist/server/runtime/http-server/stats-manager.js.map +1 -1
  204. package/dist/server/utils/non-blocking-error-logger.js +2 -1
  205. package/dist/server/utils/non-blocking-error-logger.js.map +1 -1
  206. package/dist/server/utils/request-log-color.js +10 -3
  207. package/dist/server/utils/request-log-color.js.map +1 -1
  208. package/dist/server/utils/stage-logger.js +71 -9
  209. package/dist/server/utils/stage-logger.js.map +1 -1
  210. package/dist/token-daemon/history-store.js +2 -1
  211. package/dist/token-daemon/history-store.js.map +1 -1
  212. package/dist/token-daemon/leader-lock.js +2 -2
  213. package/dist/token-daemon/leader-lock.js.map +1 -1
  214. package/dist/token-daemon/quota-auth-issue.js +2 -4
  215. package/dist/token-daemon/quota-auth-issue.js.map +1 -1
  216. package/dist/token-daemon/server-utils.js +3 -4
  217. package/dist/token-daemon/server-utils.js.map +1 -1
  218. package/dist/token-daemon/token-daemon.js +6 -6
  219. package/dist/token-daemon/token-daemon.js.map +1 -1
  220. package/dist/token-daemon/token-utils.js +2 -1
  221. package/dist/token-daemon/token-utils.js.map +1 -1
  222. package/dist/token-portal/fingerprint-summary.js +2 -3
  223. package/dist/token-portal/fingerprint-summary.js.map +1 -1
  224. package/dist/token-portal/local-token-portal.js +1 -1
  225. package/dist/token-portal/local-token-portal.js.map +1 -1
  226. package/dist/utils/daemon-stop-intent.js +2 -2
  227. package/dist/utils/daemon-stop-intent.js.map +1 -1
  228. package/dist/utils/errorsamples.js +3 -1
  229. package/dist/utils/errorsamples.js.map +1 -1
  230. package/dist/utils/llms-engine-shadow.js +2 -2
  231. package/dist/utils/llms-engine-shadow.js.map +1 -1
  232. package/dist/utils/managed-server-pids.js +2 -2
  233. package/dist/utils/managed-server-pids.js.map +1 -1
  234. package/dist/utils/process-lifecycle-logger.js +2 -1
  235. package/dist/utils/process-lifecycle-logger.js.map +1 -1
  236. package/dist/utils/runtime-exit-forensics.js +2 -2
  237. package/dist/utils/runtime-exit-forensics.js.map +1 -1
  238. package/dist/utils/session-log-color.js +31 -5
  239. package/dist/utils/session-log-color.js.map +1 -1
  240. package/dist/utils/snapshot-writer.js +2 -1
  241. package/dist/utils/snapshot-writer.js.map +1 -1
  242. package/docs/CODEX_AND_CLAUDE_CODE.md +1 -1
  243. package/docs/CONFIG_ARCHITECTURE.md +7 -7
  244. package/docs/DAEMON_CONTROL_PLANE.md +2 -2
  245. package/docs/INSTALLATION_AND_QUICKSTART.md +2 -2
  246. package/docs/INSTRUCTION_MARKUP.md +2 -2
  247. package/docs/OAUTH.md +6 -6
  248. package/docs/PORTS.md +1 -1
  249. package/docs/PROVIDERS_BUILTIN.md +2 -2
  250. package/docs/QUOTA_MANAGER_V3.md +2 -2
  251. package/docs/ROUTING_POLICY_SCHEMA.md +1 -1
  252. package/docs/SERVERTOOL_CLOCK_DESIGN.md +1 -1
  253. package/docs/SERVERTOOL_PRE_COMMAND_HOOKS.md +4 -4
  254. package/docs/anthropic-request-golden-samples.md +4 -4
  255. package/docs/chat-glm-500-analysis.md +2 -2
  256. package/docs/chat-request-golden-samples.md +4 -4
  257. package/docs/codex-samples-replay.md +3 -3
  258. package/docs/daemon-admin-api-design.md +2 -2
  259. package/docs/daemon-admin-ui.html +9 -9
  260. package/docs/design/servertool-stopmessage-lifecycle.md +5 -0
  261. package/docs/golden-ci-library.md +8 -8
  262. package/docs/monitoring/Design.md +2 -2
  263. package/docs/multi-token-auth-guide.md +6 -6
  264. package/docs/oauth-authentication-guide.md +1 -1
  265. package/docs/oauth-iflow-implementation.md +2 -2
  266. package/docs/pipeline-routing-report.md +1 -1
  267. package/docs/plans/manager-daemon/PLAN.md +1 -1
  268. package/docs/plans/provider-config-v2-plan.md +8 -8
  269. package/docs/plans/provider-runtime-manager-plan.md +4 -4
  270. package/docs/provider-analysis.md +5 -5
  271. package/docs/provider-quota-design.md +2 -2
  272. package/docs/providers/antigravity-fingerprint-ua-warmup.md +5 -5
  273. package/docs/providers/antigravity-gemini-provider-compat.md +3 -3
  274. package/docs/providers/deepseek-web-provider-design.md +1 -1
  275. package/docs/providers/gemini-provider.md +1 -1
  276. package/docs/providers/provider-composite-testing.md +2 -2
  277. package/docs/providers/tabglm-claude-code-compat.md +1 -1
  278. package/docs/replay-evidence-iflow-400.txt +3 -3
  279. package/docs/reports/routing-classification-report.json +6 -6
  280. package/docs/reports/routing-classification-report.md +6 -6
  281. package/docs/reports/thinking-keywords-report.json +6 -6
  282. package/docs/responses/README.md +5 -5
  283. package/docs/responses-generic-provider.md +1 -1
  284. package/docs/responses-passthrough-provider-design.md +7 -7
  285. package/docs/routing-instructions.md +1 -1
  286. package/docs/token-daemon-preview.html +3 -3
  287. package/docs/token-refresh-daemon-plan.md +7 -7
  288. package/docs/verification/modelscope-verify.md +2 -2
  289. package/docs/verified-configs/README.md +2 -2
  290. package/docs/verified-configs/v0.45.0/README.md +5 -5
  291. package/docs/verified-configs/v0.45.0/merged-config.5521.json +3 -3
  292. package/docs/verified-configs/v0.45.0/merged-config.qwen-5522.json +3 -3
  293. package/package.json +3 -2
  294. package/scripts/anthropic-four-config-e2e.mjs +5 -5
  295. package/scripts/anthropic-toolcall.mjs +1 -1
  296. package/scripts/batch-toolcall-report.mjs +1 -1
  297. package/scripts/build-core.mjs +2 -7
  298. package/scripts/claude-e2e-listdir-all.sh +1 -1
  299. package/scripts/claude-e2e-listdir-per-config.sh +4 -4
  300. package/scripts/clean-safe.mjs +1 -1
  301. package/scripts/cleanup-beads-oversized-notes.mjs +182 -0
  302. package/scripts/config-core-compare.ts +1 -1
  303. package/scripts/ensure-llmswitch-mode.mjs +7 -1
  304. package/scripts/glm1210-curl-test.sh +1 -1
  305. package/scripts/install-release.sh +1 -1
  306. package/scripts/mock-provider/capture-from-configs.mjs +1 -1
  307. package/scripts/outbound-network-toolcall.mjs +2 -2
  308. package/scripts/outbound-regression-codex-samples.mjs +1 -1
  309. package/scripts/pack-mode.mjs +14 -1
  310. package/scripts/pack-rcc.mjs +9 -4
  311. package/scripts/provider-v2-smoke.mjs +3 -3
  312. package/scripts/publish-rcc.mjs +8 -3
  313. package/scripts/replay-recorded-toolcall.mjs +1 -2
  314. package/scripts/responses-fai-capture.mjs +1 -1
  315. package/scripts/responses-sse-capture.mjs +1 -1
  316. package/scripts/responses-sse-proxy.mjs +1 -1
  317. package/scripts/responses-sse-replay-golden.mjs +252 -111
  318. package/scripts/run-bg.sh +1 -1
  319. package/scripts/run-fg-gtimeout.sh +1 -1
  320. package/scripts/tests/antigravity-codex-sample-pipeline-compare.mjs +1 -1
  321. package/scripts/tests/antigravity-gemini-dryrun-compare.mjs +1 -1
  322. package/scripts/tests/responses-provider-dry-run.mjs +1 -1
  323. package/scripts/tests/virtual-router-health.mjs +1 -1
  324. package/scripts/update-models.mjs +2 -2
  325. package/scripts/v2-simple-monitor.mjs +1 -1
  326. package/scripts/vendor-core.mjs +12 -7
  327. package/scripts/verify-e2e-gemini-followup-sample.mjs +1 -1
  328. package/scripts/verify-e2e-toolcall.mjs +2 -2
  329. package/scripts/verify-health.mjs +2 -2
  330. package/scripts/verify-sse-loop.mjs +1 -1
  331. package/scripts/virtual-router-dryrun.mjs +2 -2
  332. package/scripts/virtual-router-shadow-v2-real.mjs +3 -3
  333. package/dist/daemon-admin-ui/assets/index-C8vP_c5E.js +0 -15
  334. package/docs/rccx-wasm-migration.md +0 -74
  335. package/scripts/compare-codex-rccx.mjs +0 -326
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-writer.js","sourceRoot":"","sources":["../../src/utils/snapshot-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot-writer.js","sourceRoot":"","sources":["../../src/utils/snapshot-writer.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ model_provider = "tcm"
28
28
  model = "gpt-5.2"
29
29
  ```
30
30
 
31
- 如果你在 `~/.routecodex/config.json` 中设置了服务端访问密钥(`httpserver.apikey`),则需要在环境变量里提供同样的值:
31
+ 如果你在 `~/.rcc/config.json` 中设置了服务端访问密钥(`httpserver.apikey`),则需要在环境变量里提供同样的值:
32
32
 
33
33
  ```bash
34
34
  export ROUTECODEX_APIKEY="your-server-apikey"
@@ -4,7 +4,7 @@
4
4
 
5
5
  ### 1.1 配置层次结构
6
6
  ```
7
- 用户配置层 (~/.routecodex/config.json)
7
+ 用户配置层 (~/.rcc/config.json)
8
8
 
9
9
  系统模块默认 (./config/modules.json)
10
10
 
@@ -26,7 +26,7 @@ VirtualRouterArtifacts (virtualRouter + targetRuntime)
26
26
 
27
27
  ## 2. 配置文件结构
28
28
 
29
- ### 2.1 用户配置文件 (~/.routecodex/config.json)
29
+ ### 2.1 用户配置文件 (~/.rcc/config.json)
30
30
 
31
31
  ```json
32
32
  {
@@ -191,7 +191,7 @@ interface RouteTarget {
191
191
  #### 3.1.2 AuthFile解析
192
192
  ```typescript
193
193
  // AuthFile格式: "authfile-{filename}"
194
- // 密钥文件位置: ~/.routecodex/auth/{filename}
194
+ // 密钥文件位置: ~/.rcc/auth/{filename}
195
195
  interface AuthFileResolver {
196
196
  resolveAuthKey(keyId: string): string;
197
197
  }
@@ -327,7 +327,7 @@ class ConfigManagerModule {
327
327
 
328
328
  #### 5.1.1 密钥文件位置
329
329
  ```
330
- ~/.routecodex/auth/
330
+ ~/.rcc/auth/
331
331
  ├── openai-main
332
332
  ├── openai-backup
333
333
  └── anthropic-main
@@ -335,10 +335,10 @@ class ConfigManagerModule {
335
335
 
336
336
  #### 5.1.2 密钥文件格式
337
337
  ```bash
338
- # ~/.routecodex/auth/openai-main
338
+ # ~/.rcc/auth/openai-main
339
339
  sk-your-actual-openai-key-here
340
340
 
341
- # ~/.routecodex/auth/anthropic-main
341
+ # ~/.rcc/auth/anthropic-main
342
342
  sk-ant-your-actual-anthropic-key-here
343
343
  ```
344
344
 
@@ -346,7 +346,7 @@ sk-ant-your-actual-anthropic-key-here
346
346
 
347
347
  #### 5.2.1 文件权限
348
348
  ```bash
349
- chmod 600 ~/.routecodex/auth/*
349
+ chmod 600 ~/.rcc/auth/*
350
350
  ```
351
351
 
352
352
  #### 5.2.2 密钥缓存
@@ -14,7 +14,7 @@ Returns:
14
14
  - quota snapshot (provider states + antigravity raw snapshot)
15
15
  - `virtualRouterConfig` (current runtime config snapshot)
16
16
  - `policy` + `policyHash` (best-effort read of routing policy from `configPath` on disk; `policy` is a stable, serializable subset of the user config)
17
- - `antigravityAliasLeases` (best-effort read of `~/.routecodex/state/antigravity-alias-leases.json` when present; used for session lease/binding observability)
17
+ - `antigravityAliasLeases` (best-effort read of `~/.rcc/state/antigravity-alias-leases.json` when present; used for session lease/binding observability)
18
18
  - `llmsStats` (llmswitch-core stats center snapshot; includes routing hits)
19
19
 
20
20
  ### `POST /daemon/control/mutate`
@@ -31,5 +31,5 @@ Supported actions:
31
31
  - `runtime.restart` (reload config from disk for current server)
32
32
 
33
33
  ## Discovery
34
- - Uses `~/.routecodex/sessions/*_<port>` + env ports (`ROUTECODEX_PORT/RCC_PORT`) + dev default `5555`.
34
+ - Uses `~/.rcc/sessions/*_<port>` + env ports (`ROUTECODEX_PORT/RCC_PORT`) + dev default `5555`.
35
35
  - Probes `/health` and filters `server=routecodex`.
@@ -16,7 +16,7 @@ npm uninstall -g @jsonstudio/rcc
16
16
 
17
17
  ## 2) 初始化配置(自动生成)
18
18
 
19
- 默认会写入:`~/.routecodex/config.json`
19
+ 默认会写入:`~/.rcc/config.json`
20
20
 
21
21
  交互式(推荐):
22
22
 
@@ -24,7 +24,7 @@ npm uninstall -g @jsonstudio/rcc
24
24
  rcc init
25
25
  ```
26
26
 
27
- 初始化成功后,`rcc init` 会把内置文档复制到:`~/.routecodex/docs`
27
+ 初始化成功后,`rcc init` 会把内置文档复制到:`~/.rcc/docs`
28
28
 
29
29
  非交互式(CI/脚本):
30
30
 
@@ -38,13 +38,13 @@ RouteCodex 支持在用户消息中写入“指令标记”,用于影响 Virtu
38
38
 
39
39
  ### stopMessage 文件引用(file://)
40
40
 
41
- 支持从 `~/.routecodex` 下读取相对路径文件内容作为 stopMessage:
41
+ 支持从 `~/.rcc` 下读取相对路径文件内容作为 stopMessage:
42
42
 
43
43
  ```text
44
44
  <**stopMessage:<file://stopMessage/message1.md>**>
45
45
  ```
46
46
 
47
- 含义:读取 `~/.routecodex/stopMessage/message1.md` 的内容,并把文件内容作为 stopMessage 文本(会按 mtime/size 做缓存)。
47
+ 含义:读取 `~/.rcc/stopMessage/message1.md` 的内容,并把文件内容作为 stopMessage 文本(会按 mtime/size 做缓存)。
48
48
 
49
49
  ## 3) clock(定时任务)
50
50
 
package/docs/OAUTH.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  ### Token 存放位置
10
10
 
11
- 默认目录:`~/.routecodex/auth/`
11
+ 默认目录:`~/.rcc/auth/`
12
12
 
13
13
  常见命名:
14
14
  - `qwen-oauth-<seq>-<alias>.json`
@@ -21,7 +21,7 @@
21
21
  1) **显式路径**(通用,最稳):
22
22
 
23
23
  ```jsonc
24
- "auth": { "type": "qwen-oauth", "tokenFile": "~/.routecodex/auth/qwen-oauth-1-default.json" }
24
+ "auth": { "type": "qwen-oauth", "tokenFile": "~/.rcc/auth/qwen-oauth-1-default.json" }
25
25
  ```
26
26
 
27
27
  2) **alias(仅文件名,不含路径)**:
@@ -32,8 +32,8 @@
32
32
 
33
33
  当前推荐 Qwen 用 alias:`default`。
34
34
 
35
- - 如果存在 `~/.routecodex/auth/qwen-oauth-1-default.json`,会优先使用它(固定文件名,避免“我刚 reauth 但 server 读的是另一个 seq”的坑)
36
- - 否则会回退到 `~/.routecodex/auth/qwen-oauth-*-default.json` 中 seq 最新的那份
35
+ - 如果存在 `~/.rcc/auth/qwen-oauth-1-default.json`,会优先使用它(固定文件名,避免“我刚 reauth 但 server 读的是另一个 seq”的坑)
36
+ - 否则会回退到 `~/.rcc/auth/qwen-oauth-*-default.json` 中 seq 最新的那份
37
37
 
38
38
  ## 2) 认证(授权登录)
39
39
 
@@ -78,7 +78,7 @@ CLI `oauth <selector>` 若发现 quota-manager 已将该 alias 标记为 `verify
78
78
  - 若你希望不提示直接打开:设置 `ROUTECODEX_OAUTH_AUTO_OPEN_VERIFY=1`(或 `RCC_OAUTH_AUTO_OPEN_VERIFY=1`),或在命令上加 `--headful`
79
79
  - 若你只想打印 URL:回答 `n`
80
80
 
81
- > 注:quota-manager 状态文件默认读取 `${ROUTECODEX_HOME:-$HOME}/.routecodex/quota/quota-manager.json`(便于测试/沙盒环境重定向)。
81
+ > 注:quota-manager 状态文件默认读取 `${ROUTECODEX_HOME:-$HOME}/.rcc/quota/quota-manager.json`(便于测试/沙盒环境重定向)。
82
82
 
83
83
  Portal 健康检查(`/health`)默认会等待 **300s**(网络慢时避免过早 timeout),可用环境变量调整:
84
84
 
@@ -157,7 +157,7 @@ ${bin} oauth validate all
157
157
 
158
158
  2) **`auth.type` 与 `tokenFile` 是否对得上**
159
159
  - Qwen:`"type": "qwen-oauth"` + `tokenFile: "default"`(或写全路径)
160
- - 认证生成的文件是否真的在 `~/.routecodex/auth/` 下
160
+ - 认证生成的文件是否真的在 `~/.rcc/auth/` 下
161
161
 
162
162
  3) **token 文件内容是否具备可用字段**
163
163
  - 至少需要 `access_token`(部分 provider 还会有 `api_key`)
package/docs/PORTS.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## 配置文件
4
4
 
5
- 推荐在 `~/.routecodex/config.json` 里配置:
5
+ 推荐在 `~/.rcc/config.json` 里配置:
6
6
 
7
7
  ```jsonc
8
8
  {
@@ -1,6 +1,6 @@
1
1
  # 内置 Provider 配置说明(virtualrouter.providers)
2
2
 
3
- > 本文只描述“用户配置层”的 provider 写法(`~/.routecodex/config.json`)。运行时会被 llmswitch-core 规范化为 Provider V2 Profile 并交给 Provider V2 传输层执行。
3
+ > 本文只描述“用户配置层”的 provider 写法(`~/.rcc/config.json`)。运行时会被 llmswitch-core 规范化为 Provider V2 Profile 并交给 Provider V2 传输层执行。
4
4
 
5
5
  ## 通用字段
6
6
 
@@ -37,7 +37,7 @@
37
37
  ### 3) Cookie(cookieFile)
38
38
 
39
39
  ```jsonc
40
- "auth": { "type": "iflow-cookie", "cookieFile": "~/.routecodex/auth/iflow-work.cookie" }
40
+ "auth": { "type": "iflow-cookie", "cookieFile": "~/.rcc/auth/iflow-work.cookie" }
41
41
  ```
42
42
 
43
43
  ## 各内置 Provider 的参考样本
@@ -50,8 +50,8 @@ You can set the default daily reset time used for **HTTP 402 without upstream `r
50
50
  - Default: `"12:00"` (local)
51
51
 
52
52
  ## Persistence
53
- - Core `QuotaManager` persists via host `QuotaStore` at `~/.routecodex/quota/quota-manager.json`.
54
- - Legacy fallback migration reads `~/.routecodex/quota/provider-quota.json` when the new snapshot is missing.
53
+ - Core `QuotaManager` persists via host `QuotaStore` at `~/.rcc/quota/quota-manager.json`.
54
+ - Legacy fallback migration reads `~/.rcc/quota/provider-quota.json` when the new snapshot is missing.
55
55
  - If both snapshots are missing, or quota-store save fails, host treats quota persistence as degraded:
56
56
  - it does **not** write back into user config;
57
57
  - it proactively clears Antigravity session alias pins (unbind safety) and logs a warning so routing can rebind on next success.
@@ -36,7 +36,7 @@ Canonical snapshot shape:
36
36
  "webSearch": {},
37
37
  "execCommandGuard": {
38
38
  "enabled": true,
39
- "policyFile": "~/.routecodex/policy/exec-command-guard.v1.json"
39
+ "policyFile": "~/.rcc/policy/exec-command-guard.v1.json"
40
40
  },
41
41
  "session": {}
42
42
  }
@@ -214,7 +214,7 @@ type ClockSessionState = {
214
214
 
215
215
  ### 6.1 启动扫描
216
216
 
217
- daemon 启动时扫描 `~/.routecodex/sessions/<serverId>/clock/`:
217
+ daemon 启动时扫描 `~/.rcc/sessions/<serverId>/clock/`:
218
218
 
219
219
  - 对每个 task:
220
220
  - 若 `nowMs > dueAtMs + retentionMs`:删除
@@ -16,7 +16,7 @@
16
16
  - `<**precommand:clear**>`:清除当前 precommand 状态
17
17
  - `<**precommand**>` / `<**precommand:on**>`:加载默认脚本(默认 `default.sh`,可用 `ROUTECODEX_PRECOMMAND_DEFAULT_SCRIPT` 覆盖)
18
18
 
19
- 脚本必须位于 `~/.routecodex/precommand` 下(支持 `ROUTECODEX_USER_DIR` 覆盖根目录)。
19
+ 脚本必须位于 `~/.rcc/precommand` 下(支持 `ROUTECODEX_USER_DIR` 覆盖根目录)。
20
20
 
21
21
  运行时会把 hook event JSON 通过 stdin 和环境变量 `ROUTECODEX_PRE_COMMAND_HOOK_EVENT` 传给脚本:
22
22
 
@@ -25,7 +25,7 @@
25
25
 
26
26
  ## Config file (fallback)
27
27
 
28
- 当未激活 runtime precommand 时,回退读取:`~/.routecodex/hooks/pre-command-hooks.json`
28
+ 当未激活 runtime precommand 时,回退读取:`~/.rcc/hooks/pre-command-hooks.json`
29
29
 
30
30
  可覆盖:
31
31
 
@@ -50,7 +50,7 @@
50
50
  "id": "audit-pre-command",
51
51
  "tool": ["exec_command", "shell"],
52
52
  "priority": 20,
53
- "shell": "cat >> ~/.routecodex/logs/pre-command-audit.jsonl"
53
+ "shell": "cat >> ~/.rcc/logs/pre-command-audit.jsonl"
54
54
  }
55
55
  ]
56
56
  }
@@ -61,7 +61,7 @@
61
61
  可直接用 `jq` 向 hooks 文件追加注册项:
62
62
 
63
63
  ```bash
64
- HOOK_FILE="${ROUTECODEX_PRE_COMMAND_HOOKS_FILE:-$HOME/.routecodex/hooks/pre-command-hooks.json}"
64
+ HOOK_FILE="${ROUTECODEX_PRE_COMMAND_HOOKS_FILE:-$HOME/.rcc/hooks/pre-command-hooks.json}"
65
65
  mkdir -p "$(dirname "$HOOK_FILE")"
66
66
  [ -f "$HOOK_FILE" ] || printf '{"enabled":true,"hooks":[]}' > "$HOOK_FILE"
67
67
 
@@ -1,6 +1,6 @@
1
1
  ### Anthropic Golden Request Samples
2
2
 
3
- 我们把真实 `/v1/messages` 请求快照统一保存在 `~/.routecodex/golden_samples/anthropic_requests/`,每个目录
3
+ 我们把真实 `/v1/messages` 请求快照统一保存在 `~/.rcc/golden_samples/anthropic_requests/`,每个目录
4
4
  包含:
5
5
 
6
6
  ```
@@ -11,7 +11,7 @@
11
11
 
12
12
  > **提示**:仓库内 `samples/chat-blackbox/anthropic/request-basic.json` 为上述样本的版本化拷贝,可在代码评审时直接 diff。
13
13
  > 建议先用真实 provider 生成阶段快照,并把 `body` + `stageFile` 写入
14
- > `~/.routecodex/golden_samples/new/anthropic-messages/<providerId>/`。随后执行
14
+ > `~/.rcc/golden_samples/new/anthropic-messages/<providerId>/`。随后执行
15
15
  > `node scripts/tools/capture-provider-goldens.mjs --update-golden`,脚本会读取这些快照并同步
16
16
  > `provider_golden_samples/`,检测到字段差异时会提示是否覆盖。
17
17
 
@@ -31,14 +31,14 @@
31
31
  curl -s http://127.0.0.1:5555/v1/messages \
32
32
  -H 'Content-Type: application/json' \
33
33
  -H 'Authorization: Bearer test' \
34
- --data @~/.routecodex/golden_samples/anthropic_requests/glm46-toolcall-20251209T223550158-010/request_payload.json
34
+ --data @~/.rcc/golden_samples/anthropic_requests/glm46-toolcall-20251209T223550158-010/request_payload.json
35
35
  ```
36
36
 
37
37
  3. 如果需要切换 provider,只需修改 JSON 中的 `model` 字段或配合用户配置热更(无需 CLI 抓样本)。
38
38
 
39
39
  #### 验证快照
40
40
 
41
- - 设置 `ROUTECODEX_HUB_SNAPSHOTS=1` 后回放,`~/.routecodex/codex-samples/anthropic-messages/` 将刷新对应的
41
+ - 设置 `ROUTECODEX_HUB_SNAPSHOTS=1` 后回放,`~/.rcc/codex-samples/anthropic-messages/` 将刷新对应的
42
42
  `req_*` 与 `resp_*` 阶段文件,可直接 diff。
43
43
  - `anthropic/glm46-toolcall-…` 目录内已有响应黄金样本,可与请求目录交叉比对,确认入站/出站一致性。
44
44
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## 背景
4
4
  - 现象:Chat 通路上游 GLM 返回 500(Operation failed)。
5
- - 最新失败样本目录:`~/.routecodex/codex-samples/openai-chat`
5
+ - 最新失败样本目录:`~/.rcc/codex-samples/openai-chat`
6
6
  - 例:`req_1761955101841_2d71u9w6x_provider-request.json`
7
7
 
8
8
  ## 症状与证据
@@ -50,7 +50,7 @@
50
50
  ```
51
51
  2. 使用失败样本 `*_raw-request.json` 复现
52
52
  ```bash
53
- jq -r '.body' ~/.routecodex/codex-samples/openai-chat/<失败样本>_raw-request.json > /tmp/rc_req_body.json
53
+ jq -r '.body' ~/.rcc/codex-samples/openai-chat/<失败样本>_raw-request.json > /tmp/rc_req_body.json
54
54
  curl -s -o /tmp/rc_resp.json -w "%{http_code}" \
55
55
  -H 'Content-Type: application/json' \
56
56
  --data @/tmp/rc_req_body.json \
@@ -1,10 +1,10 @@
1
1
  ### OpenAI Chat Golden Request Samples
2
2
 
3
- 存放位置:`~/.routecodex/golden_samples/openai_requests/<slug>/`
3
+ 存放位置:`~/.rcc/golden_samples/openai_requests/<slug>/`
4
4
 
5
5
  > **提示**:
6
6
  > - 自 0.87.21 起,chat 入口的 provider 专属样本统一存放在
7
- > `~/.routecodex/golden_samples/new/<entryType>/<providerId>/`(例如 `new/openai-chat/glm`)。
7
+ > `~/.rcc/golden_samples/new/<entryType>/<providerId>/`(例如 `new/openai-chat/glm`)。
8
8
  > 目录内包含 `request.sample.json`(直接从阶段快照复制的 `body`)以及 `meta.json`
9
9
  > (指向原始 `*_stage2_format_build.json` 路径)。`scripts/tools/capture-provider-goldens.mjs`
10
10
  > 会优先读取这些“真实快照”,无需再回放 `samples/chat-blackbox/**/request-basic.json`。
@@ -29,14 +29,14 @@
29
29
  curl -s http://127.0.0.1:5555/v1/chat/completions \
30
30
  -H 'Content-Type: application/json' \
31
31
  -H 'Authorization: Bearer test' \
32
- --data @~/.routecodex/golden_samples/openai_requests/chat-toolcall-20251209T225016004-002/request_payload.json
32
+ --data @~/.rcc/golden_samples/openai_requests/chat-toolcall-20251209T225016004-002/request_payload.json
33
33
  ```
34
34
 
35
35
  该样本会沿 V2 骨架走 chat 入口 → hub → glm provider,可直接用来对比 legacy/chat-provider 行为。
36
36
 
37
37
  #### 如何扩展
38
38
 
39
- 1. 在 `~/.routecodex/golden_samples/openai-chat/req_*_req_inbound_stage1_format_parse.json` 中找到需要的请求负载。
39
+ 1. 在 `~/.rcc/golden_samples/openai-chat/req_*_req_inbound_stage1_format_parse.json` 中找到需要的请求负载。
40
40
  2. 将 `body.payload` 拷贝为新的 `request_payload.json`;注明 slug、描述后写入 `meta.json`。
41
41
  3. 更新本文件表格,描述该样本的用途、对应阶段文件。若需要刷新所有 provider 的黄金请求,可运行
42
42
  `node scripts/tools/capture-provider-goldens.mjs --update-golden`,脚本将自动覆盖 `provider_golden_samples/` 下对应入口的请求副本。
@@ -1,17 +1,17 @@
1
1
  # Codex Samples 回放
2
2
 
3
- `scripts/replay-codex-sample.mjs` 允许我们将 `~/.routecodex/codex-samples/**/*_client-request.json` 等样本重新发送到本地 RouteCodex,确保工具调用、SSE chunk 和最终 JSON 都被完整记录。
3
+ `scripts/replay-codex-sample.mjs` 允许我们将 `~/.rcc/codex-samples/**/*_client-request.json` 等样本重新发送到本地 RouteCodex,确保工具调用、SSE chunk 和最终 JSON 都被完整记录。
4
4
 
5
5
  ## 使用步骤
6
6
 
7
7
  1. 启动 RouteCodex 主包(默认 `http://127.0.0.1:5555`)。
8
8
  2. 准备好想要回放的样本文件,例如:
9
- `~/.routecodex/codex-samples/openai-responses/req_req-v2-1764415000213-z1sxtbhuo_client-request.json`
9
+ `~/.rcc/codex-samples/openai-responses/req_req-v2-1764415000213-z1sxtbhuo_client-request.json`
10
10
  3. 执行:
11
11
 
12
12
  ```bash
13
13
  npm run replay:codex-sample -- \
14
- --sample ~/.routecodex/codex-samples/openai-responses/req_req-v2-1764415000213-z1sxtbhuo_client-request.json \
14
+ --sample ~/.rcc/codex-samples/openai-responses/req_req-v2-1764415000213-z1sxtbhuo_client-request.json \
15
15
  --label first-run
16
16
  ```
17
17
 
@@ -65,7 +65,7 @@
65
65
  "kind": "oauth",
66
66
  "providerFamily": "gemini",
67
67
  "alias": "iflow-186",
68
- "tokenFile": "~/.routecodex/auth/iflow-oauth-1-186.json",
68
+ "tokenFile": "~/.rcc/auth/iflow-oauth-1-186.json",
69
69
  "projectId": "my-project",
70
70
  "expiresAt": 1736500000000,
71
71
  "expiresInSec": 3600,
@@ -90,7 +90,7 @@
90
90
  "kind": "oauth",
91
91
  "providerFamily": "gemini",
92
92
  "alias": "iflow-186",
93
- "tokenFile": "~/.routecodex/auth/iflow-oauth-1-186.json",
93
+ "tokenFile": "~/.rcc/auth/iflow-oauth-1-186.json",
94
94
  "projectId": "my-project",
95
95
  "expiresAt": 1736500000000,
96
96
  "expiresInSec": 3600,
@@ -720,8 +720,8 @@
720
720
  <div class="title">
721
721
  <h1>RouteCodex Daemon Admin</h1>
722
722
  <p>
723
- Writes to <span class="mono">~/.routecodex/config.json</span>. This UI requires an admin password:
724
- first visit will ask you to set one (stored at <span class="mono">~/.routecodex/login</span>), then you login with it.
723
+ Writes to <span class="mono">~/.rcc/config.json</span>. This UI requires an admin password:
724
+ first visit will ask you to set one (stored at <span class="mono">~/.rcc/login</span>), then you login with it.
725
725
  </p>
726
726
  </div>
727
727
  <div class="statusline">
@@ -1039,7 +1039,7 @@
1039
1039
  <input
1040
1040
  id="apikeyValueInput"
1041
1041
  type="password"
1042
- placeholder="will be written to ~/.routecodex/auth/*.key"
1042
+ placeholder="will be written to ~/.rcc/auth/*.key"
1043
1043
  style="flex: 1; min-width: 260px;"
1044
1044
  />
1045
1045
  </div>
@@ -1074,7 +1074,7 @@
1074
1074
  <input
1075
1075
  id="cookieFileInput"
1076
1076
  type="text"
1077
- placeholder="~/.routecodex/auth/iflow-work.cookie"
1077
+ placeholder="~/.rcc/auth/iflow-work.cookie"
1078
1078
  style="flex: 1; min-width: 280px;"
1079
1079
  />
1080
1080
  </div>
@@ -1171,7 +1171,7 @@
1171
1171
  <div class="card" style="box-shadow:none;">
1172
1172
  <p class="section-title">Stats (historical)</p>
1173
1173
  <p class="section-sub">
1174
- Aggregated from <span class="mono">~/.routecodex/logs/provider-stats.jsonl</span> (best-effort).
1174
+ Aggregated from <span class="mono">~/.rcc/logs/provider-stats.jsonl</span> (best-effort).
1175
1175
  </p>
1176
1176
  <div class="notice mono" id="statsHistoricalTotalsBox" style="white-space: pre-wrap;"></div>
1177
1177
  <div class="table-wrap" style="margin-top: 10px;">
@@ -1233,7 +1233,7 @@
1233
1233
  <p class="section-title">Token usage (session + historical)</p>
1234
1234
  <p class="section-sub">
1235
1235
  Session stats reset on server restart. Historical totals are aggregated from
1236
- <span class="mono">~/.routecodex/logs/provider-stats.jsonl</span> (best-effort).
1236
+ <span class="mono">~/.rcc/logs/provider-stats.jsonl</span> (best-effort).
1237
1237
  </p>
1238
1238
  <div class="row" style="margin-bottom: 10px;">
1239
1239
  <button id="refreshTokensBtn" class="primary">Refresh</button>
@@ -1263,7 +1263,7 @@
1263
1263
  <div class="card" style="box-shadow:none;">
1264
1264
  <p class="section-title">Auth Inventory</p>
1265
1265
  <p class="section-sub">
1266
- Token files + API key authfiles in <span class="mono">~/.routecodex/auth</span>.
1266
+ Token files + API key authfiles in <span class="mono">~/.rcc/auth</span>.
1267
1267
  </p>
1268
1268
  <div class="row" style="margin-bottom: 10px;">
1269
1269
  <button id="refreshCredentialsBtn" class="primary">Refresh</button>
@@ -2292,7 +2292,7 @@
2292
2292
  type: "iflow",
2293
2293
  baseURL: "https://apis.iflow.cn/v1",
2294
2294
  compatibilityProfile: "chat:iflow",
2295
- auth: { type: "iflow-cookie", cookieFile: "~/.routecodex/auth/iflow-work.cookie" },
2295
+ auth: { type: "iflow-cookie", cookieFile: "~/.rcc/auth/iflow-work.cookie" },
2296
2296
  models: {}
2297
2297
  };
2298
2298
  }
@@ -3216,7 +3216,7 @@
3216
3216
  if (authMode === "cookie") {
3217
3217
  base.auth = {
3218
3218
  type: "iflow-cookie",
3219
- cookieFile: ($("cookieFileInput").value || "").trim() || "~/.routecodex/auth/iflow.cookie"
3219
+ cookieFile: ($("cookieFileInput").value || "").trim() || "~/.rcc/auth/iflow.cookie"
3220
3220
  };
3221
3221
  }
3222
3222
  if (authMode === "oauth") {
@@ -45,6 +45,11 @@ Design goals:
45
45
  - Normal servertools (e.g. search/vision) may use `reenterPipeline`.
46
46
  - `stopMessage/clock/continue_execution` must use client injection dispatcher only.
47
47
 
48
+ 2. Continue-execution stripping:
49
+ - `continue_execution` 的 tool_call 对客户端必须透明;响应侧在 chat process 的
50
+ `resp_process_stage2_finalize` 统一剥离该 tool_call,并将对应 choice 的
51
+ `finish_reason` 从 `tool_calls` 修正为 `stop`。
52
+
48
53
  2. No fallback:
49
54
  - No old session-based fallback compare.
50
55
  - No daemon-only fallback for stopMessage matching.
@@ -28,10 +28,10 @@ roundtrip/工具校验,而不需要访问真实 provider。
28
28
  命令会按照下面的顺序执行:
29
29
 
30
30
  1. `node scripts/tools/capture-provider-goldens.mjs --custom-only --update-golden`
31
- - 优先读取 `~/.routecodex/golden_samples/new/<entry>/<provider>/`;
31
+ - 优先读取 `~/.rcc/golden_samples/new/<entry>/<provider>/`;
32
32
  - 若用户目录缺失,则自动回退到 `samples/ci-goldens/...`;
33
33
  - 最后才会使用 `samples/chat-blackbox/**/request-basic.json` 做最小回放。
34
- - 结果写入 `~/.routecodex/golden_samples/provider_golden_samples/**`,供 Provider
34
+ - 结果写入 `~/.rcc/golden_samples/provider_golden_samples/**`,供 Provider
35
35
  单测与 mock 回放使用。
36
36
  2. `node scripts/mock-provider/run-regressions.mjs`
37
37
  - 使用仓库内 `samples/mock-provider/_registry` 的样本,通过 mock provider
@@ -39,28 +39,28 @@ roundtrip/工具校验,而不需要访问真实 provider。
39
39
  - 默认启用 `ROUTECODEX_MOCK_ENTRY_FILTER=all`,确保 chat/responses/anthropic
40
40
  都被验证。
41
41
 
42
- 如果检测到 `~/.routecodex/codex-samples`,脚本会提示可以运行
42
+ 如果检测到 `~/.rcc/codex-samples`,脚本会提示可以运行
43
43
  `node scripts/mock-provider/capture-from-configs.mjs` 将真实请求转成 mock 回放样本。
44
- 该命令会根据本地 `~/.routecodex/provider/**/config*.json` 与
45
- `~/.routecodex/golden_samples/new/**` 生成新的 `samples/mock-provider/...`
44
+ 该命令会根据本地 `~/.rcc/provider/**/config*.json` 与
45
+ `~/.rcc/golden_samples/new/**` 生成新的 `samples/mock-provider/...`
46
46
  目录,并刷新 `_registry/index.json`。随后再次执行 `npm run test:golden` 即可把
47
47
  “真实” provider 行为也纳入回归。
48
48
 
49
49
  ### 如何补充新的 provider 样本
50
50
 
51
51
  1. 在本地 `routecodex` 服务上真实跑通一次请求,确认
52
- `~/.routecodex/golden_samples/new/<entry>/<provider>/request.sample.json` 已生成。
52
+ `~/.rcc/golden_samples/new/<entry>/<provider>/request.sample.json` 已生成。
53
53
  2. 运行 `npm run sync:ci-goldens`(或直接执行
54
54
  `node scripts/tools/sync-ci-goldens.mjs --entry <entry> --provider <id>`)把刚产生的
55
55
  样本复制到 `samples/ci-goldens/<entry>/<provider>/`,脚本会自动生成/刷新 `meta.json`
56
56
  并用 `source: "ci-goldens"` 标识。
57
57
  3. 运行 `npm run test:golden`,确认新的样本能够被
58
58
  `capture-provider-goldens.mjs` 消费并写入
59
- `~/.routecodex/golden_samples/provider_golden_samples/<provider>/<entry>/`。
59
+ `~/.rcc/golden_samples/provider_golden_samples/<provider>/<entry>/`。
60
60
  4. 如需把同一份请求加入 mock provider 回放,可执行
61
61
  `node scripts/mock-provider/capture-from-configs.mjs --filter <providerId>`,
62
62
  该命令会复用刚才的 `request.sample` 生成 `samples/mock-provider/...` 记录。
63
63
 
64
64
  > 注意:CI goldens 只存储对齐 chat 入口输入字段的最终 JSON,不包含任何密钥或本地路径。
65
65
  > 如需测试特定机密字段,请在本地运行 `capture-provider-goldens` 并利用私有
66
- > `~/.routecodex/golden_samples/new/**`,不要把敏感样本提交到仓库。
66
+ > `~/.rcc/golden_samples/new/**`,不要把敏感样本提交到仓库。
@@ -19,7 +19,7 @@ This document describes a passive monitoring and replay system for RouteCodex.
19
19
  - ReplayExecutor (future): replay `response.json` or `stream-events.jsonl`
20
20
 
21
21
  ## Storage Layout
22
- Root: `~/.routecodex/monitor/sessions/<YYYYMMDD>/<protocol>/<reqId>/`
22
+ Root: `~/.rcc/monitor/sessions/<YYYYMMDD>/<protocol>/<reqId>/`
23
23
 
24
24
  - `meta.json` — meta + routing snapshot + redaction flags
25
25
  - `request.json` — original input (protocol‑native)
@@ -45,7 +45,7 @@ Root: `~/.routecodex/monitor/sessions/<YYYYMMDD>/<protocol>/<reqId>/`
45
45
 
46
46
  ```bash
47
47
  npm run build
48
- node scripts/virtualrouter-dry-run-matrix.mjs --config ~/.routecodex/config/verified_0.46.32/multi-provider.json
48
+ node scripts/virtualrouter-dry-run-matrix.mjs --config ~/.rcc/config/verified_0.46.32/multi-provider.json
49
49
  ```
50
50
 
51
51
  ## Integration Plan (Phased)
@@ -16,28 +16,28 @@ The `alias` part is optional and ignored by the system - it's just for your refe
16
16
 
17
17
  ## Automatic Discovery
18
18
 
19
- The system automatically scans `~/.routecodex/auth/` for token files matching the pattern and creates multiple provider instances. No manual configuration needed.
19
+ The system automatically scans `~/.rcc/auth/` for token files matching the pattern and creates multiple provider instances. No manual configuration needed.
20
20
 
21
21
  ## Authentication Commands
22
22
 
23
23
  ### Authenticate specific token:
24
24
  ```bash
25
25
  # Token 1
26
- IFLOW_TOKEN_FILE="$HOME/.routecodex/auth/iflow-oauth-1-primary.json" node scripts/auth-iflow-token-direct.mjs
26
+ IFLOW_TOKEN_FILE="$HOME/.rcc/auth/iflow-oauth-1-primary.json" node scripts/auth-iflow-token-direct.mjs
27
27
 
28
28
  # Token 2
29
- IFLOW_TOKEN_FILE="$HOME/.routecodex/auth/iflow-oauth-2-backup.json" node scripts/auth-iflow-token-direct.mjs
29
+ IFLOW_TOKEN_FILE="$HOME/.rcc/auth/iflow-oauth-2-backup.json" node scripts/auth-iflow-token-direct.mjs
30
30
  ```
31
31
 
32
32
  ### Manual authentication (if device flow fails):
33
33
  ```bash
34
- IFLOW_TOKEN_FILE="$HOME/.routecodex/auth/iflow-oauth-1-primary.json" node scripts/auth-iflow-manual.mjs
34
+ IFLOW_TOKEN_FILE="$HOME/.rcc/auth/iflow-oauth-1-primary.json" node scripts/auth-iflow-manual.mjs
35
35
  ```
36
36
 
37
37
  ### Delete and re-authenticate:
38
38
  ```bash
39
- rm ~/.routecodex/auth/iflow-oauth-1-primary.json
40
- IFLOW_TOKEN_FILE="$HOME/.routecodex/auth/iflow-oauth-1-primary.json" node scripts/auth-iflow-token-direct.mjs
39
+ rm ~/.rcc/auth/iflow-oauth-1-primary.json
40
+ IFLOW_TOKEN_FILE="$HOME/.rcc/auth/iflow-oauth-1-primary.json" node scripts/auth-iflow-token-direct.mjs
41
41
  ```
42
42
 
43
43
  ## How It Works
@@ -118,7 +118,7 @@ const provider = new ChatHttpProvider(iflowConfig, dependencies);
118
118
  await provider.initialize(); // → 打开浏览器 → 授权 → 获取 API Key
119
119
 
120
120
  // 3. 后续使用直接读取本地 token 文件
121
- // ~/.routecodex/auth/iflow-oauth.json 包含:
121
+ // ~/.rcc/auth/iflow-oauth.json 包含:
122
122
  // {
123
123
  // "access_token": "...",
124
124
  // "refresh_token": "...",
@@ -102,7 +102,7 @@ const provider = new ChatHttpProvider(iflowConfig, dependencies);
102
102
  await provider.initialize(); // → 打开浏览器 → 授权 → 获取 API Key
103
103
 
104
104
  // 3. 后续使用直接读取本地 token 文件
105
- // ~/.routecodex/auth/iflow-oauth.json 包含:
105
+ // ~/.rcc/auth/iflow-oauth.json 包含:
106
106
  // {
107
107
  // "access_token": "...",
108
108
  // "refresh_token": "...",
@@ -140,7 +140,7 @@ const response = await provider.processIncoming({
140
140
 
141
141
  ```bash
142
142
  # 测试 OAuth 流程
143
- node -e "const { TokenFileAuthProvider } = require('./dist/providers/auth/tokenfile-auth.js'); const provider = new TokenFileAuthProvider({type: 'oauth', tokenFile: '~/.routecodex/auth/iflow-oauth.json'}); provider.initialize().then(() => console.log('✅ iFlow OAuth working:', provider.getStatus()));"
143
+ node -e "const { TokenFileAuthProvider } = require('./dist/providers/auth/tokenfile-auth.js'); const provider = new TokenFileAuthProvider({type: 'oauth', tokenFile: '~/.rcc/auth/iflow-oauth.json'}); provider.initialize().then(() => console.log('✅ iFlow OAuth working:', provider.getStatus()));"
144
144
 
145
145
  # 测试 API Key 提取
146
146
  node -e "const { fetchIFlowUserInfo } = require('./dist/providers/auth/iflow-userinfo-helper.js'); fetchIFlowUserInfo('test_token').catch(e => console.log('✅ Error handling working:', e.message));"