mslxdff 0.1.197 → 0.1.200
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/bin/mslxdff.js +3 -3
- package/docs/cli_help_mini.md +146 -0
- package/package.json +1 -1
- package/src/auto.js +254 -254
- package/src/bench/cline-bench.js +42 -42
- package/src/bench/probe.js +70 -70
- package/src/bench/report.js +162 -162
- package/src/bench/runner.js +77 -77
- package/src/bench/via-probe.js +124 -124
- package/src/bench/via-routes.js +87 -87
- package/src/bench/workbuddy-bench.js +54 -54
- package/src/chat/engine.js +160 -160
- package/src/chat/gateway.js +163 -163
- package/src/chat/orchestrator.js +234 -234
- package/src/chat/prompt.js +70 -70
- package/src/chat/repl.js +88 -88
- package/src/chat/terminal.js +135 -135
- package/src/chat/tools.js +306 -306
- package/src/chat-pipeline/index.js +173 -173
- package/src/chat-pipeline/policy.js +84 -84
- package/src/chat-pipeline/serial-trial.js +8 -6
- package/src/cli/commands/group.js +249 -249
- package/src/cli/commands/model/picks.js +50 -50
- package/src/cli/commands/provider/bench-via.js +247 -247
- package/src/cli/commands/provider/bench.js +141 -141
- package/src/cli/commands/provider/index.js +137 -136
- package/src/cli/commands/provider/models.js +145 -145
- package/src/cli/commands/provider/qwenwork-login.js +119 -119
- package/src/cli/commands/provider/raccoon-login.js +29 -1
- package/src/cli/commands/provider/raccoon-password.js +162 -0
- package/src/cli/commands/sync.js +310 -310
- package/src/cli/status.js +279 -279
- package/src/daemon.js +232 -232
- package/src/model-capabilities/enrich.js +86 -86
- package/src/model-capabilities/index.js +183 -183
- package/src/model-capabilities/parse.js +70 -70
- package/src/models.js +225 -225
- package/src/providers/AGENTS.md +49 -0
- package/src/providers/cline/auth.js +228 -228
- package/src/providers/cline/chat.js +307 -307
- package/src/providers/cline.js +2 -2
- package/src/providers/codearts/chat.js +182 -182
- package/src/providers/globalqwenwork/cosy.js +123 -123
- package/src/providers/globalqwenwork/crypto.js +218 -218
- package/src/providers/globalqwenwork/http.js +20 -20
- package/src/providers/globalqwenwork/rsa.js +54 -54
- package/src/providers/globalqwenwork/sse.js +268 -268
- package/src/providers/globalqwenwork/stream.js +130 -130
- package/src/providers/globalqwenwork/upstream.js +122 -122
- package/src/providers/keyring.js +60 -60
- package/src/providers/qoder/chat.js +203 -203
- package/src/providers/qoder/index.js +249 -249
- package/src/providers/qoder/sse.js +145 -145
- package/src/providers/qwenwork/account-store.js +133 -133
- package/src/providers/qwenwork/constants.js +67 -67
- package/src/providers/qwenwork/cosy.js +120 -120
- package/src/providers/qwenwork/crypto.js +218 -218
- package/src/providers/qwenwork/http.js +20 -20
- package/src/providers/qwenwork/index.js +337 -337
- package/src/providers/qwenwork/payload.js +144 -144
- package/src/providers/qwenwork/rsa.js +54 -54
- package/src/providers/qwenwork/sse.js +268 -268
- package/src/providers/qwenwork/stream.js +130 -130
- package/src/providers/qwenwork/upstream.js +120 -120
- package/src/providers/qwenwork.js +1 -1
- package/src/providers/raccoon/const.js +25 -0
- package/src/providers/raccoon/password-login.js +87 -0
- package/src/providers/registry.js +79 -79
- package/src/providers/workbuddy/chat.js +264 -264
- package/src/providers/workbuddy/reshape.js +152 -152
- package/src/providers/workbuddy.js +2 -2
- package/src/reasoning.js +32 -32
- package/src/routes/AGENTS.md +37 -0
- package/src/routes/chat/gateway.js +46 -46
- package/src/routes/chat/relay-pipeline.js +282 -282
- package/src/routes/chat/via-route-handler.js +146 -146
- package/src/routes/hedge.js +260 -260
- package/src/routes/models-route.js +167 -167
- package/src/routes/peers.js +335 -335
- package/src/routes/stream.js +347 -347
- package/src/runtime/bootstrap.js +67 -67
- package/src/runtime/provider-gate.js +36 -36
- package/src/runtime/providers-setup.js +168 -168
- package/src/server.js +78 -78
- package/src/state/schemas/allowlist.js +92 -92
- package/src/sync-opencode.js +280 -280
- package/src/transport/index.js +244 -244
- package/src/transport/pool.js +56 -56
- package/src/transport/retry.js +24 -24
- package/src/transport/sse.js +93 -93
- package/src/upstream-engine/index.js +4 -2
- package/src/upstream-probe/display.js +52 -52
- package/src/upstream-probe/probe.js +49 -49
- package/src/upstream-probe/rotate.js +110 -110
- package/src/upstream-probe/start.js +45 -45
- package/src/upstream.js +345 -293
- package/src/v6pool/rotate.js +24 -0
package/src/v6pool/rotate.js
CHANGED
|
@@ -195,6 +195,30 @@ export function createV6Dispatcher({
|
|
|
195
195
|
/** 手动换某个槽的源地址(供运维/测试;正常路径由配额信号触发)。 */
|
|
196
196
|
swap,
|
|
197
197
|
|
|
198
|
+
/**
|
|
199
|
+
* G1a(ADR-0061):**请求内**换出口——撞出口池级 429 后由 upstream.js await 这一发,
|
|
200
|
+
* 把该会话粘的槽换新源地址,返回**换址完成后**的新 Agent 供同一请求立刻重发。
|
|
201
|
+
* 与 onTap 的 fire-and-forget 换址(只救下一个请求)不同,这里救的是**在飞请求**。
|
|
202
|
+
* 仅 v6 池提供本方法:换源地址成本≈0(bind/ip addr add);WARP 的换出口=重注册设备
|
|
203
|
+
* (6s~600s,会被 CF 限流),绝不允许在请求内做——白等 N 分钟换不来更快收场。
|
|
204
|
+
* 空池/全槽换址中/该槽被并发占走 ⇒ 返回 null(调用方正常收场,绝不黑洞)。
|
|
205
|
+
* 粘性安全:swap 是**原地**换 e.addr/e.agent(index 不变),session→slot 映射不失效。
|
|
206
|
+
* @param {string} sessionKey x-opencode-session 值(无 key 时由轮转游标挑槽)
|
|
207
|
+
* @returns {Promise<null | {agent: object, addr: string, from: string}>}
|
|
208
|
+
*/
|
|
209
|
+
async rotateFor(sessionKey = "") {
|
|
210
|
+
if (!list.length) return null;
|
|
211
|
+
const avail = availableIndexes();
|
|
212
|
+
if (!avail.length) return null;
|
|
213
|
+
const index = selector.pick(avail, strategy === "session" ? sessionKey : "");
|
|
214
|
+
const e = list[index];
|
|
215
|
+
if (!e) return null;
|
|
216
|
+
const r = await swap(index, { kind: "in-request-rotate", status: 429, forced: true });
|
|
217
|
+
if (r.skipped) return null;
|
|
218
|
+
const slot = list[index];
|
|
219
|
+
return { agent: slot.agent, addr: slot.addr, from: r.from };
|
|
220
|
+
},
|
|
221
|
+
|
|
198
222
|
/** 只读快照(含已退休出口的最终计数——"换址到底有没有换来新额度"看这里)。 */
|
|
199
223
|
stats() {
|
|
200
224
|
const t = now();
|