w-dispatch-ai 1.0.41 → 1.0.43

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 (50) hide show
  1. package/README.md +8 -1
  2. package/dist/w-dispatch-ai.umd.js +2 -2
  3. package/dist/w-dispatch-ai.umd.js.map +1 -1
  4. package/docs/WDispatchAi.mjs.html +1 -1
  5. package/docs/adapters.mjs.html +1 -1
  6. package/docs/budgetFor.mjs.html +1 -1
  7. package/docs/buildValidator.mjs.html +1 -1
  8. package/docs/castPintOr.mjs.html +1 -1
  9. package/docs/checkTruncation.mjs.html +1 -1
  10. package/docs/describeNonJsonBody.mjs.html +1 -1
  11. package/docs/dfTimeoutMs.mjs.html +1 -1
  12. package/docs/dispatchAi.mjs.html +1 -1
  13. package/docs/dispatchAiFallback.mjs.html +1 -1
  14. package/docs/dispatchAiWkf.mjs.html +1 -1
  15. package/docs/dispatchAntigravity.mjs.html +1 -1
  16. package/docs/dispatchApiOpenaiCompat.mjs.html +1 -1
  17. package/docs/dispatchApiOpenaiResponses.mjs.html +1 -1
  18. package/docs/dispatchApiTypesafeSystemone.mjs.html +1 -1
  19. package/docs/dispatchClaude.mjs.html +1 -1
  20. package/docs/dispatchCodex.mjs.html +1 -1
  21. package/docs/dispatchOpencode.mjs.html +1 -1
  22. package/docs/getCliArgs.mjs.html +1 -1
  23. package/docs/getErrorResult.mjs.html +1 -1
  24. package/docs/getErrorType.mjs.html +1 -1
  25. package/docs/global.html +1 -1
  26. package/docs/index.html +1 -1
  27. package/docs/quota_dfQuotaTimeoutMs.mjs.html +1 -1
  28. package/docs/quota_fetchQuotaJson.mjs.html +1 -1
  29. package/docs/quota_fromCodexUsageHttp.mjs.html +1 -1
  30. package/docs/quota_getQuotaAntigravity.mjs.html +1 -1
  31. package/docs/quota_getQuotaClaude.mjs.html +1 -1
  32. package/docs/quota_getQuotaCodex.mjs.html +1 -1
  33. package/docs/quota_readJsonOrNull.mjs.html +1 -1
  34. package/docs/quota_toQuotaLabel.mjs.html +1 -1
  35. package/docs/quota_toQuotaResult.mjs.html +1 -1
  36. package/docs/quota_toQuotaScopedLabel.mjs.html +1 -1
  37. package/docs/quota_toQuotaWindow.mjs.html +1 -1
  38. package/docs/readEnvFile.mjs.html +1 -1
  39. package/docs/resolveProviders.mjs.html +1 -1
  40. package/docs/wkf_callAiWithFallback.mjs.html +1 -1
  41. package/docs/wkf_createFileStore.mjs.html +1 -1
  42. package/docs/wkf_createUsageCounter.mjs.html +1 -1
  43. package/docs/wkf_extractJsonLoose.mjs.html +1 -1
  44. package/docs/wkf_noSideEffectPrefix.mjs.html +1 -1
  45. package/docs/wkf_runFanout.mjs.html +1 -1
  46. package/docs/wkf_runFanoutPipeline.mjs.html +1 -1
  47. package/docs/wkf_runRolePipeline.mjs.html +1 -1
  48. package/docs/wkf_salvageTruncatedArray.mjs.html +1 -1
  49. package/package.json +1 -1
  50. package/src/providers.mjs +85 -17
package/src/providers.mjs CHANGED
@@ -25,7 +25,8 @@
25
25
  // deepseek-v4-flash-free / laguna-s-2.1-free / ling-3.0-tiny-free / longcat-2.0-free / north-mini-code-free
26
26
  // v1頁有而v2頁未列, 但實測可用: mimo-v2.6-flash-free / jev-1.13-free / muse-spark-1.2與1.3 / nemotron-3.5-lightning-free
27
27
  // 兩頁皆列且實測可用: big-pickle(CLI 7.1s) / mimo-v2.5-free / nemotron-3-ultra-free /
28
- // space-bunny-free(2026-09-24新上線: CLI 8.1s、REST 1.9s)
28
+ // space-bunny-free(2026-09-24新上線: CLI 8.1s、REST 1.9s) /
29
+ // ling-3.1-flash-free、longcat-2.5-preview-free、fledge-alpha-free(2026-10-03查證: CLI 11.5~19.6s、REST皆403)
29
30
  // 故判準固定為: 文件只用於「端點種類與計價」, 「能不能用」一律以/zen/v1/models或`opencode models`加實測為準。
30
31
  //
31
32
  // ★ 核心事實: zen「不是」單一OpenAI相容端點, 端點依模型家族而異 ★
@@ -33,6 +34,7 @@
33
34
  // /zen/v1/chat/completions @ai-sdk/openai-compatible ← 本套件api-openai-compat僅支援此種
34
35
  // mimo-v2.5-free / ling-3.0-flash-fin-free / nemotron-3-ultra-free /
35
36
  // nemotron-3.5-lightning-free / big-pickle / space-bunny-free(2026-09-24查證) /
37
+ // ling-3.1-flash-free / longcat-2.5-preview-free / fledge-alpha-free(2026-10-03查證) /
36
38
  // glm-* / kimi-* / minimax-* / deepseek-v4-*
37
39
  // /zen/v1/responses @ai-sdk/openai (OpenAI Responses API, 非chat/completions)
38
40
  // muse-spark-1.2-contributor-free / muse-spark-1.3-contributor-free / GPT系 / Grok系
@@ -141,6 +143,13 @@
141
143
  // 2026-09-24之漂移: 新增space-bunny-free之兩條目(oc:與zen:, 使用者指示)。官方v1/v2文件〈Pricing〉全Free,
142
144
  // 說明為限時免費之stealth推理模型(供應商零保留、不以資料訓練), 端點/chat/completions; CLI清單與/zen/v1/models皆有。
143
145
  // 與其他對話型免費模型不同, 其REST未被免費層閘門擋下(匿名與帶金鑰皆200), 故兩路皆收; 實測數據見兩條目註解。
146
+ // 2026-10-03之漂移: 新增oc:opencode/ling-3.1-flash-free、longcat-2.5-preview-free、fledge-alpha-free三條(使用者指示)。
147
+ // 三者官方v1/v2文件〈Pricing〉皆Free、端點/chat/completions, CLI清單(--refresh)與/zen/v1/models皆有;
148
+ // REST三者皆403 FreeTierError(匿名與第1把金鑰各2次; 同時段zen:space-bunny-free仍200, 證閘門逐模型套用), 故只收oc:版。
149
+ // 同日移除oc:opencode/muse-spark-1.2-contributor-free(使用者指示): 已自CLI目錄(--refresh)消失, 匿名CLI呼叫持續回
150
+ // UnknownError「Unexpected server error」(2026-09-30起累計4次, 每次2~4s即敗, 帶不帶--variant皆同, 同時段1.3正常)。
151
+ // /zen/v1/models雖仍列(未同時滿足先例之兩條件), 惟CLI為其唯一收錄路徑(zen:版已於09-22移除)且已不可用,
152
+ // 留著只會讓全取者每輪空耗一次失敗。日後CLI目錄重新列出且實測可通時, 依收錄檢核重收即可。
144
153
  //
145
154
  // 【使用方式】
146
155
  // import providers from 'w-dispatch-ai/src/providers.mjs'
@@ -200,13 +209,15 @@ let CLAUDE_READONLY = ['--tools', 'Read,Glob,Grep', '--strict-mcp-config']
200
209
  // (app-server model/list之defaultReasoningEffort, gpt-6.1-sol為low)——明給令條目不隨安裝機之設定而變;
201
210
  // 同日實測--config覆寫優先於config.toml(給low時session記為low)。
202
211
  // opencode --variant: 僅部分模型有檔位, 以`opencode models <provider> --verbose`之variants查(同日opencode 1.18.33:
203
- // muse-spark-1.2/1.3與space-bunny有high; big-pickle、mimo無檔位; agnes-ai、poolside為自訂provider亦無),
212
+ // muse-spark-1.2(2026-10-03已移除)/1.3與space-bunny有high; big-pickle、mimo無檔位; agnes-ai、poolside為自訂provider亦無;
213
+ // 2026-10-03新收之ling-3.1-flash、longcat-2.5-preview、fledge-alpha亦有high, opencode 1.18.34),
204
214
  // 無檔位之條目不帶。同日實測space-bunny之variant low/high推理token為18/71, opencode.db之訊息記錄variant。
205
215
  // REST body.reasoning_effort: 僅zen:space-bunny-free帶——opencode模型目錄宣告其high檔即{reasoningEffort:'high'}
206
216
  // (@ai-sdk/openai-compatible轉為此欄), 與oc:版同參數。agnes接受此欄但同日兩題各兩輪推理token無一致差異,
207
217
  // 視為未生效故不帶(其預設即會思考, usage可見推理token)。poolside之思考為開關(chat_template_kwargs.enable_thinking)
208
218
  // 而非檔位, 同日由關改開(見該條); jev(systemone)為決策模型無此概念。
209
- // agy 以模型slug之檔位表示(gemini-3.8-flash-high), 不另帶--effort(與slug檔位不一致時agy報conflicts)。
219
+ // agy 以模型slug之檔位表示(gemini-3.8-flash-high、claude-sonnet-5-5-high、claude-opus-5-5-high), 不另帶--effort
220
+ // (與slug檔位不一致時agy報conflicts)。
210
221
  // 注意: 條目覆寫extraArgs時須一併帶上本常數(與防寫常數), 否則回退各CLI之預設強度。
211
222
  let EFFORT = 'high'
212
223
  let CLAUDE_EFFORT = ['--effort', EFFORT]
@@ -257,20 +268,6 @@ let providers = [
257
268
  },
258
269
  //oc:opencode/*免費模型: 2026-09-18起改為匿名免費存取(不帶envVar、useStoredAuth:false), 理由見檔頭
259
270
  //【Zen免費層閘門】——帶金鑰反而依該金鑰所屬工作區之模型開關而異(第1把實測Model access is disabled)
260
- {
261
- id: 'oc:opencode/muse-spark-1.2-contributor-free',
262
- model: 'opencode/muse-spark-1.2-contributor-free',
263
- kind: 'opencode',
264
- provider: 'opencode',
265
- useStoredAuth: false,
266
- config: {
267
- permission: OC_READONLY,
268
- },
269
- extraArgs: OC_EFFORT,
270
- //2026-09-03實測8.1s(opencode CLI 1.18.27); 同模型另有zen:REST版, 額度池與故障域各自獨立。
271
- //2026-09-30(opencode 1.18.33)連3次2.0s即失敗: 伺服器回UnknownError「Unexpected server error」, 帶不帶--variant皆同,
272
- //同時1.3正常——屬上游暫時故障, 依套件哲學保留不移除(恢復之偵測即下次再打)
273
- },
274
271
  {
275
272
  id: 'oc:opencode/muse-spark-1.3-contributor-free',
276
273
  model: 'opencode/muse-spark-1.3-contributor-free',
@@ -324,6 +321,54 @@ let providers = [
324
321
  //read工具讀相對路徑13.2s正確、要求寫檔被OC_READONLY擋下未落地。官方〈Privacy〉載明其供應商零保留
325
322
  //且不以資料訓練(與big-pickle及各*-free模型之「可能用於改進模型」不同)。同模型另有zen:REST版(見該條)
326
323
  },
324
+ //以下三條2026-10-03新增(使用者指示): 官方v1/v2文件、CLI清單(--refresh)與/zen/v1/models皆有, 〈Pricing〉全Free,
325
+ //端點/chat/completions; REST不收zen:版——同日匿名與第1把金鑰各2次皆403 FreeTierError(免費層閘門, 見檔頭)。
326
+ //匿名CLI實測皆以opencode 1.18.34、variant high(opencode.db記錄確認): 簡答、推理題(答對)、read工具讀相對路徑(正確)、
327
+ //要求寫檔(被OC_READONLY擋下未落地)四項皆過
328
+ {
329
+ id: 'oc:opencode/ling-3.1-flash-free',
330
+ model: 'opencode/ling-3.1-flash-free',
331
+ kind: 'opencode',
332
+ provider: 'opencode',
333
+ useStoredAuth: false,
334
+ config: {
335
+ permission: OC_READONLY,
336
+ },
337
+ extraArgs: OC_EFFORT,
338
+ //CLI目錄release_date 2026-09-29; 推理模型, context 262144、輸出上限32768、僅文字輸入。
339
+ //實測: 簡答19.6s、推理題14.9s、讀檔13.3s、寫檔金絲雀17.8s。
340
+ //官方〈Privacy〉載明免費期間所收資料可能用於改進模型, 敏感內容勿走此條
341
+ },
342
+ {
343
+ id: 'oc:opencode/longcat-2.5-preview-free',
344
+ model: 'opencode/longcat-2.5-preview-free',
345
+ kind: 'opencode',
346
+ provider: 'opencode',
347
+ useStoredAuth: false,
348
+ config: {
349
+ permission: OC_READONLY,
350
+ },
351
+ extraArgs: OC_EFFORT,
352
+ //CLI目錄release_date 2026-09-25; 推理模型, context 1M、輸出上限131072、可輸入圖片。
353
+ //實測: 簡答12.0s、推理題13.1s、讀檔21.6s、寫檔金絲雀16.1s。
354
+ //官方〈Privacy〉載明其供應商零保留且不以資料訓練(同space-bunny)
355
+ },
356
+ {
357
+ id: 'oc:opencode/fledge-alpha-free',
358
+ model: 'opencode/fledge-alpha-free',
359
+ kind: 'opencode',
360
+ provider: 'opencode',
361
+ useStoredAuth: false,
362
+ config: {
363
+ permission: OC_READONLY,
364
+ },
365
+ extraArgs: OC_EFFORT,
366
+ //CLI目錄release_date 2026-10-01; context 1M、輸出上限131072、可輸入圖片; 目錄標為推理模型(檔位low/high/max),
367
+ //但同日4次之session紀錄tokens_reasoning皆0(另兩條各有推理token), 推理量是否計入回報不明。
368
+ //實測: 簡答11.5s、推理題13.2s、讀檔12.6s、寫檔金絲雀11.0s。
369
+ //官方說明為限時免費(團隊藉此收集回饋改進模型), 〈Privacy〉載明免費期間所收資料可能用於改進模型, 敏感內容勿走此條;
370
+ //alpha限時免費模型可能提前結束(先例: union-alpha收錄隔日即轉付費並自清單消失, 見檔頭漂移紀錄)
371
+ },
327
372
  {
328
373
  id: 'agy:gemini-3.8-flash-high',
329
374
  model: 'gemini-3.8-flash-high', //2026-09-03自3.7升版(agy 1.1.25): 實測12.5s vs 3.7之62.2s, 讀檔14.6s vs 57.6s
@@ -335,6 +380,29 @@ let providers = [
335
380
  //工作流層無害(空回覆過不了validate而自動遞補); 需要寫入能力請於條目覆寫為true
336
381
  skipPermissions: false,
337
382
  },
383
+ //agy之Claude兩條(2026-10-03新增, 使用者指示): agy 1.2.16之`agy models`已列claude-sonnet-5-5與claude-opus-5-5各low/medium/high,
384
+ //取-high符合EFFORT(agy以slug檔位表示)。與下方claude:條目為同模型之不同路徑(id規則②, 屬不同供應商): 走Google帳號之agy額度
385
+ //(`/usage`之「Claude and GPT models」群組, 有5小時與7天窗口, 與Gemini群組分開, 亦與Claude Code之Anthropic訂閱無關),
386
+ //額度池與故障域獨立, claude:路徑受限時仍可遞補。同日實測(防寫與addDirs同agy:gemini條目): --log-file日誌確認送往後端之
387
+ //模型label為「Claude Sonnet 5.5 (High)」/「Claude Opus 5.5 (High)」(--output-format json不帶模型名); 要求寫檔皆被擋未落地;
388
+ //耗時起伏大(10~100s; 同時段Gemini對照組亦10~90s, 屬agy整體狀況); 偶回暫時性503(Eligibility check failed: UNAVAILABLE),
389
+ //重試即成功, 由遞補層換家吸收。日誌開頭之「not logged into Antigravity」「not in local config」於Gemini對照組同樣出現, 屬啟動常態訊息
390
+ {
391
+ id: 'agy:claude-sonnet-5-5-high',
392
+ model: 'claude-sonnet-5-5-high',
393
+ kind: 'antigravity',
394
+ addDirs: ['.'],
395
+ skipPermissions: false,
396
+ //實測: 簡答10.5~100.6s、推理題44.3s答對(但附解題過程, 未照「只回一行」)、讀檔80.5s正確
397
+ },
398
+ {
399
+ id: 'agy:claude-opus-5-5-high',
400
+ model: 'claude-opus-5-5-high',
401
+ kind: 'antigravity',
402
+ addDirs: ['.'],
403
+ skipPermissions: false,
404
+ //實測: 簡答9.8~77.4s、推理題53.5s答對且照格式、讀檔61.9s正確(首次遇503, 重試成功)
405
+ },
338
406
  //claude/codex各兩條: 在前者為預設(全取遞補時先試), 在後者為較強之新模型(2026-09-23使用者指示)
339
407
  {
340
408
  id: 'claude:sonnet', //當前為5.5