nolo-cli 0.201.0-alpha.2 → 0.202.0-alpha.1

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 (124) hide show
  1. package/{_executeModel-BNYZLAN6.js → _executeModel-IPRTPSW7.js} +34 -33
  2. package/{agentDeleteCommand-4V4YSAXS.js → agentDeleteCommand-WHT2MMAP.js} +49 -47
  3. package/{agentEmailCommands-EYIQEH6Z.js → agentEmailCommands-4LW2BFLY.js} +51 -49
  4. package/{agentListCommands-2KGUT7UB.js → agentListCommands-2KF47HY6.js} +81 -45
  5. package/{agentMachineCommands-WUN47ILO.js → agentMachineCommands-QQCFQQ4T.js} +28 -26
  6. package/{agentProviderCommands-T6E3JCR6.js → agentProviderCommands-5ALOQLE5.js} +2 -2
  7. package/{agentRecordCommands-XL2CON36.js → agentRecordCommands-ARVXF2C2.js} +47 -45
  8. package/{agentRunCommand-R237ZGMQ.js → agentRunCommand-3IL5PW2S.js} +49 -47
  9. package/{agentRunControl-6HHESKDB.js → agentRunControl-ABDUPJLX.js} +10 -5
  10. package/{agentRuntimeLocal-XLLWFAVI.js → agentRuntimeLocal-YXHJV65L.js} +24 -22
  11. package/{agentSlice-Z5NKGMB7.js → agentSlice-BFDKYW6H.js} +4 -3
  12. package/{appDeleteCommands-IPF2VI3W.js → appDeleteCommands-OWJO3WFB.js} +29 -27
  13. package/{appDeployCommands-IBQ7GUXO.js → appDeployCommands-X7HLT27G.js} +29 -27
  14. package/{appDeployStatusCommands-6ESVU6XE.js → appDeployStatusCommands-CHCZ7ZUD.js} +29 -27
  15. package/{appGetCommands-VTSYTM4V.js → appGetCommands-AZW2EE4R.js} +29 -27
  16. package/{appListCommands-VCP5TUX7.js → appListCommands-YFN6DP6K.js} +29 -27
  17. package/{authCommand-RV5MQDWN.js → authCommand-W34UWJGR.js} +14 -13
  18. package/{builtinSkillRegistry-7RAJP7FD.js → builtinSkillRegistry-NJVHQIKY.js} +1 -1
  19. package/{chromeOpsCommands-BA6CS4DI.js → chromeOpsCommands-USKE4B4K.js} +15 -4
  20. package/{chunk-RE3B2OCC.js → chunk-266E37EL.js} +69 -14
  21. package/chunk-2BMURXSB.js +1863 -0
  22. package/{chunk-RRHJJUA3.js → chunk-2PI4QFAL.js} +174 -100
  23. package/{chunk-NABJEYPJ.js → chunk-2Q3LOAFE.js} +38 -3
  24. package/{chunk-EOLPKHSB.js → chunk-326HCB6L.js} +28 -24
  25. package/{chunk-4CEAZRZ4.js → chunk-33W4IFUU.js} +1 -1
  26. package/{chunk-V3MGT3RF.js → chunk-3CWF2EUZ.js} +8 -8
  27. package/{chunk-G6OOUQWJ.js → chunk-4KB6WQUL.js} +2 -0
  28. package/{chunk-DYQXB46J.js → chunk-4KPB3KWX.js} +2 -2
  29. package/{chunk-SW5AAI5D.js → chunk-4SH22ZG7.js} +5 -5
  30. package/{chunk-WAZ6BTSC.js → chunk-5E4FSR4J.js} +1 -1
  31. package/{chunk-PVD7CRYV.js → chunk-6I7ZP7KJ.js} +3 -3
  32. package/chunk-6UBGXX2W.js +12 -0
  33. package/{chunk-ZBCBFOWC.js → chunk-A2ZMIRLN.js} +2 -2
  34. package/{chunk-Z646E5YH.js → chunk-ASG7VWPK.js} +3 -3
  35. package/{chunk-QWVGFBOQ.js → chunk-BLFZULEQ.js} +3 -3
  36. package/{chunk-JIFYXQRD.js → chunk-BTYQAODF.js} +26 -8
  37. package/{chunk-KORCRPLO.js → chunk-C7PKPHK6.js} +334 -12
  38. package/{chunk-6WZQGT5X.js → chunk-CJ37ZMCQ.js} +6 -2
  39. package/{chunk-VHGD6FHV.js → chunk-CKAHAVMK.js} +40 -10
  40. package/{chunk-UNOILAZP.js → chunk-CLTGWJVT.js} +76 -4
  41. package/{chunk-Q6RMLYSA.js → chunk-CMLBKYEI.js} +4 -2
  42. package/{chunk-NVOYW6H4.js → chunk-CQHMBWZH.js} +12 -8
  43. package/{chunk-7KWPNGVJ.js → chunk-CTZ4O3XD.js} +1 -1
  44. package/{chunk-OHRDHS4N.js → chunk-CVCRAO6Q.js} +9 -4
  45. package/{chunk-26CRLZFD.js → chunk-D57YYGMD.js} +2 -2
  46. package/{chunk-TEC5UHQK.js → chunk-DHJXDGC3.js} +2 -2
  47. package/{chunk-QYOB7RVA.js → chunk-DKZJJ2NQ.js} +3 -2
  48. package/{chunk-4YX7VQOC.js → chunk-E2FC5RMU.js} +17 -14
  49. package/{chunk-EH4MNUMF.js → chunk-ETTDZBK5.js} +4 -4
  50. package/{chunk-BUXH3H5M.js → chunk-FWMOJTGR.js} +3722 -4851
  51. package/{chunk-ZWQUWF6W.js → chunk-G7Y4GXTY.js} +8 -14
  52. package/{chunk-5KTQVMCX.js → chunk-GOO6G4PY.js} +85 -0
  53. package/{chunk-FMOZ57LN.js → chunk-H7HWWNJB.js} +1 -1
  54. package/{chunk-A5VR65AE.js → chunk-HJS5EIKS.js} +4 -4
  55. package/{chunk-H44LQSZ2.js → chunk-HKWGI3TM.js} +178 -311
  56. package/{chunk-BBGYSMUE.js → chunk-JH7KMNGT.js} +143 -19
  57. package/{chunk-YXMZHGNA.js → chunk-KDUYNEJ5.js} +33 -16
  58. package/{chunk-O5V7QQAF.js → chunk-LEX6DEH4.js} +114 -2
  59. package/{chunk-BTBT2566.js → chunk-MNUOMXJH.js} +412 -9
  60. package/{chunk-N7E3LQ4A.js → chunk-MZXWSY4E.js} +1 -1
  61. package/{chunk-ZQ3EAOY3.js → chunk-NTLJGRAT.js} +1 -1
  62. package/{chunk-WFUIXNKC.js → chunk-P4YLK2OD.js} +3 -3
  63. package/chunk-PRJ473FK.js +63 -0
  64. package/{chunk-2SHLT6JB.js → chunk-Q7GNBUT4.js} +2 -2
  65. package/{chunk-C2UXCAMB.js → chunk-RIKSN62L.js} +3 -3
  66. package/{chunk-GTP6VNWH.js → chunk-RQ22OZD7.js} +3 -3
  67. package/{chunk-H7NIQGTU.js → chunk-RS66RJLA.js} +2 -2
  68. package/{chunk-GC64WGMD.js → chunk-SM3NSZJV.js} +16 -5
  69. package/{chunk-QKDMI22S.js → chunk-SSK4WNJA.js} +1 -1
  70. package/{chunk-6MAFLMAO.js → chunk-SUBNV2JH.js} +3 -3
  71. package/{chunk-HLAL63BZ.js → chunk-T43B7LB2.js} +1 -1
  72. package/{chunk-HTLIKE5U.js → chunk-TWVVTUNG.js} +2 -2
  73. package/{chunk-X3RWBJDQ.js → chunk-U7HTU2S7.js} +1 -1
  74. package/{chunk-76YUTLOT.js → chunk-UIOEHFF6.js} +1 -1
  75. package/{chunk-IIX6VWLW.js → chunk-VCFU3BO5.js} +224 -38
  76. package/{chunk-QU3TLYBR.js → chunk-VEUSD6OF.js} +35 -11
  77. package/{chunk-4YMD7B4Y.js → chunk-WPOKOKZA.js} +2 -2
  78. package/{chunk-K6TZSON4.js → chunk-WTKYP6QO.js} +19 -5
  79. package/{chunk-FEKMTBKJ.js → chunk-XW6B2RJW.js} +192 -55
  80. package/{chunk-ZSO5B6SW.js → chunk-Y2WUYX4I.js} +9 -0
  81. package/{chunk-A3SXTJDE.js → chunk-YAGFPXOX.js} +14 -14
  82. package/{chunk-TVGX5QIN.js → chunk-YUA6OAH5.js} +2 -2
  83. package/{chunk-NYE2INIO.js → chunk-YV2RSLM4.js} +13 -13
  84. package/{chunk-MJWUBTK7.js → chunk-YZGNKHUM.js} +2 -2
  85. package/{commandRegistry-YFXWA5SF.js → commandRegistry-HEBIO2A4.js} +87 -67
  86. package/{contentThunks-2BV7CFUP.js → contentThunks-I4IHSDTM.js} +14 -13
  87. package/{cooldownCommands-KRILPXOZ.js → cooldownCommands-5SJ74DNP.js} +1 -1
  88. package/{createAgentAutomationAction-T6CGXCSO.js → createAgentAutomationAction-WQCH5HR2.js} +14 -13
  89. package/{createDialogAction-X27IA3G2.js → createDialogAction-CKMZK5JQ.js} +15 -14
  90. package/{createPageAction-EHDHNW5P.js → createPageAction-QAZHQGY7.js} +14 -13
  91. package/{dialogCommands-XZXH3HSQ.js → dialogCommands-YMAHICPJ.js} +30 -28
  92. package/{dialogSlice-AZNPVOCU.js → dialogSlice-GEGACCH2.js} +13 -12
  93. package/{docCreateCommands-Z64V5BFZ.js → docCreateCommands-SNMAKBXN.js} +28 -26
  94. package/{docDeleteCommands-7UFHIM4C.js → docDeleteCommands-K52UESRC.js} +29 -27
  95. package/{docReadCommands-NLU7Y67R.js → docReadCommands-AG6LLHJ7.js} +28 -26
  96. package/{docStore-M37Q6JFO.js → docStore-B4EFT53J.js} +1 -1
  97. package/{docUpdateCommands-S2KGBEG3.js → docUpdateCommands-B5EZ7DYN.js} +28 -26
  98. package/{fetchMessages-HWBVATSE.js → fetchMessages-YY4SATNR.js} +1 -1
  99. package/{getPricing-E2PLNWCR.js → getPricing-3PQY3TGI.js} +3 -3
  100. package/{handleSendMessageAction-KUJQZ6B6.js → handleSendMessageAction-4BACQWOG.js} +70 -29
  101. package/index.js +7 -7
  102. package/{lib-4YTWAGY7.js → lib-5KKIBFIT.js} +439 -272
  103. package/{localDialogRead-CT5HGDMC.js → localDialogRead-FUXGZ57B.js} +1 -1
  104. package/{localRuntimeAdapter-5BNHO6JZ.js → localRuntimeAdapter-5CVSCXHI.js} +45 -43
  105. package/{machineCommands-2KDROAVV.js → machineCommands-R7L4IBQL.js} +48 -46
  106. package/{machineWsRunDispatch-4NP5M574.js → machineWsRunDispatch-KZHTW7DW.js} +46 -44
  107. package/{models-UUNO6DOL.js → models-PJBE6JDV.js} +2 -2
  108. package/{oauthTokenStore-PADKLNOC.js → oauthTokenStore-OEERZFUC.js} +2 -1
  109. package/package.json +1 -1
  110. package/{providerPresetApply-JGNMO2KX.js → providerPresetApply-HBBUUVJD.js} +6 -6
  111. package/{providerRegistry-33J3ZYFJ.js → providerRegistry-5LK2NXYE.js} +6 -6
  112. package/{readlineWorkspace-MKUSR6HA.js → readlineWorkspace-PDPEWRSG.js} +290 -121
  113. package/{runAgentClientLoop-J32KRVN7.js → runAgentClientLoop-QKV66PX5.js} +31 -30
  114. package/{runtimeDoctorCommands-NYBOTA6D.js → runtimeDoctorCommands-3VFVTGPI.js} +8 -7
  115. package/{secretCommands-N6CMCJDZ.js → secretCommands-MKU25CDP.js} +311 -3
  116. package/{settingThunks-YRYNPWJM.js → settingThunks-4WU7YE62.js} +2 -2
  117. package/{skillDiscovery-F3TMVQOJ.js → skillDiscovery-BKLWW2EZ.js} +2 -2
  118. package/{spaceCommands-VV4K7TGI.js → spaceCommands-VD3CZWXM.js} +27 -25
  119. package/{streamAgentChatTurn-S2Q7STXS.js → streamAgentChatTurn-GM3UNSLS.js} +46 -43
  120. package/{tools-KOIPW4ZA.js → tools-UJLEQBKI.js} +25 -24
  121. package/{tuiSummaryLlmCaller-FSOADMXK.js → tuiSummaryLlmCaller-73QO3HAD.js} +12 -12
  122. package/{updateCommands-KE6LP3QX.js → updateCommands-RVDAFHBT.js} +3 -3
  123. package/{updateDialogTitleAction-ILS5OIXF.js → updateDialogTitleAction-24QO27NT.js} +14 -13
  124. package/{windowsSelfUpdate-26TSFXEZ.js → windowsSelfUpdate-N2VH2OBW.js} +2 -2
@@ -1,3 +1,7 @@
1
+ import {
2
+ resolveNoloStateDir
3
+ } from "./chunk-6UBGXX2W.js";
4
+
1
5
  // packages/agent-runtime/oauthTokenStore.ts
2
6
  import {
3
7
  chmodSync as chmodSync2,
@@ -7,8 +11,8 @@ import {
7
11
  unlinkSync as unlinkSync2,
8
12
  writeFileSync as writeFileSync2
9
13
  } from "node:fs";
10
- import { homedir as homedir2 } from "node:os";
11
- import { join as join3 } from "node:path";
14
+ import { homedir } from "node:os";
15
+ import { join as join2 } from "node:path";
12
16
 
13
17
  // packages/agent-runtime/credentialLocationMigration.ts
14
18
  import {
@@ -97,22 +101,13 @@ function migrateLegacyCredentialFile(args) {
97
101
  }
98
102
  }
99
103
 
100
- // packages/agent-runtime/noloStateDir.ts
101
- import { homedir } from "node:os";
102
- import { join as join2 } from "node:path";
103
- function resolveNoloStateDir(name, homeDir) {
104
- if (homeDir) return join2(homeDir, ".nolo", name);
105
- const noloHome = process.env.NOLO_HOME?.trim();
106
- return noloHome ? join2(noloHome, name) : join2(homedir(), ".nolo", name);
107
- }
108
-
109
104
  // packages/agent-runtime/oauthTokenStore.ts
110
105
  var DEFAULT_REFRESH_SKEW_MS = 5 * 60 * 1e3;
111
106
  function getCredentialsDir(homeDir) {
112
107
  return resolveNoloStateDir("credentials", homeDir);
113
108
  }
114
109
  function getCredentialPath(provider, homeDir) {
115
- return join3(getCredentialsDir(homeDir), `${provider}.json`);
110
+ return join2(getCredentialsDir(homeDir), `${provider}.json`);
116
111
  }
117
112
  function ensurePrivateDir2(dir) {
118
113
  mkdirSync2(dir, { recursive: true, mode: 448 });
@@ -138,7 +133,7 @@ function isValidOAuthCredential(raw, provider) {
138
133
  }
139
134
  function migrateOAuthCredentialIfNeeded(provider, homeDir, migration) {
140
135
  if (homeDir !== void 0 || !migration?.enableLegacyMigration) return;
141
- const legacyHomeDir = migration.legacyHomeDir ?? homedir2();
136
+ const legacyHomeDir = migration.legacyHomeDir ?? homedir();
142
137
  const canonicalPath = getCredentialPath(provider);
143
138
  migrateLegacyCredentialFile({
144
139
  canonicalPath,
@@ -235,7 +230,6 @@ async function resolveFreshAccessToken(args) {
235
230
  }
236
231
 
237
232
  export {
238
- resolveNoloStateDir,
239
233
  getLegacyCredentialPath,
240
234
  migrateLegacyCredentialFile,
241
235
  DEFAULT_REFRESH_SKEW_MS,
@@ -62,10 +62,12 @@ var CLOUDFLARE_AI_MESSAGES_ENDPOINT_TEMPLATE = "https://api.cloudflare.com/clien
62
62
  var PLATFORM_HOSTED_GROK_4_6_MODEL = "grok-4.6";
63
63
  var PLATFORM_HOSTED_GPT_6_ASTRA_MODEL = "gpt-6-astra";
64
64
  var PLATFORM_HOSTED_GPT_6_LUNA_MODEL = "gpt-6-luna";
65
+ var PLATFORM_HOSTED_GPT_6_SOL_MODEL = "gpt-6-sol";
65
66
  var PLATFORM_HOSTED_GPT_56_SOL_MODEL = "gpt-5.6-sol";
66
67
  var PLATFORM_HOSTED_GPT_56_TERRA_MODEL = "gpt-5.6-terra";
67
68
  var PLATFORM_HOSTED_GPT_56_LUNA_MODEL = "gpt-5.6-luna";
68
69
  var PLATFORM_HOSTED_GPT_6_1_SOL_MODEL = "gpt-6.1-sol";
70
+ var PLATFORM_HOSTED_GPT_6_1_TERRA_MODEL = "gpt-6.1-terra";
69
71
  var PLATFORM_HOSTED_KIMI_K26_OPENROUTER_MODEL_ID = "qwen/qwen3.8-27b";
70
72
  var PLATFORM_HOSTED_GLM_53_MODEL = "glm-5.3";
71
73
  var PLATFORM_HOSTED_GLM_52_MODEL = "glm-5.2";
@@ -91,6 +93,7 @@ var CLOUDFLARE_GPT_6_LUNA_UPSTREAM_MODEL_ID = "openai/gpt-6-luna";
91
93
  var CLOUDFLARE_GPT_56_TERRA_UPSTREAM_MODEL_ID = "openai/gpt-5.6-terra";
92
94
  var CLOUDFLARE_GPT_56_LUNA_UPSTREAM_MODEL_ID = "openai/gpt-5.6-luna";
93
95
  var CLOUDFLARE_GPT_6_1_SOL_UPSTREAM_MODEL_ID = "openai/gpt-6.1-sol";
96
+ var CLOUDFLARE_GPT_6_1_TERRA_UPSTREAM_MODEL_ID = "openai/gpt-6.1-terra";
94
97
  var CLOUDFLARE_AI_RESPONSES_ENDPOINT_TEMPLATE = "https://api.cloudflare.com/client/v4/accounts/{account}/ai/v1/responses";
95
98
  var PLATFORM_HOSTED_KIMI_K3_MIN_CLIENT_VERSION = "0.38.0-alpha.4";
96
99
  var PLATFORM_HOSTED_GLM_53_FLASH_MIN_CLIENT_VERSION = "0.33.0-alpha.1";
@@ -344,6 +347,17 @@ var PLATFORM_HOSTED_ROUTING_TABLE = {
344
347
  wire: "responses",
345
348
  agentRunHosted: true
346
349
  },
350
+ // GPT-6.1 Terra(2026-11-01 新增):与 6.1 Sol 同一条 Responses 线(CF 官方页同样
351
+ // 只声明「Responses, Chat Completions」与 reasoning.effort);上游是独立 catalog id,
352
+ // 不得与 sol 混用。不是任何模型的别名 —— gpt-5.6-terra 仍指它自己的 5.6 上游。
353
+ [PLATFORM_HOSTED_GPT_6_1_TERRA_MODEL]: {
354
+ endpoint: CLOUDFLARE_AI_RESPONSES_ENDPOINT_TEMPLATE,
355
+ usageProvider: "cloudflare",
356
+ keyName: "cloudflare",
357
+ upstreamModelId: CLOUDFLARE_GPT_6_1_TERRA_UPSTREAM_MODEL_ID,
358
+ wire: "responses",
359
+ agentRunHosted: true
360
+ },
347
361
  // Grok -> xAI(server agentRun 侧未分流,保持 no upstream route 报错)
348
362
  [PLATFORM_HOSTED_GROK_4_6_MODEL]: {
349
363
  endpoint: "https://api.x.ai/v1/chat/completions",
@@ -435,6 +449,24 @@ var PLATFORM_MODEL_ALIASES = {
435
449
  aliasOf: PLATFORM_HOSTED_GPT_6_1_SOL_MODEL,
436
450
  since: "2026-10-13",
437
451
  reason: "CF \u5B98\u65B9\u76EE\u5F55\u6362\u4EE3\uFF1Agpt-5.6-sol \u7531 gpt-6.1-sol \u627F\u63A5\uFF08owner \u6388\u6743\u900F\u660E\u6620\u5C04\uFF0C\u6309 6.1 \u8BA1\u8D39\uFF09\u3002"
452
+ },
453
+ // 家族内换代(owner 2026-11-01 决定):每个模型指向**自己家族的最新版本**,
454
+ // 不跨家族合并——故 luna 仍落 luna(不并到 terra,避免廉价档被抬到 10 倍价),
455
+ // astra 家族无新版、保持独立。
456
+ [PLATFORM_HOSTED_GPT_56_TERRA_MODEL]: {
457
+ aliasOf: PLATFORM_HOSTED_GPT_6_1_TERRA_MODEL,
458
+ since: "2026-11-01",
459
+ reason: "\u540C\u5BB6\u65CF\u6362\u4EE3\uFF08owner 2026-11-01 \u51B3\u5B9A\uFF09\uFF1Agpt-5.6-terra \u6307\u5411\u540C\u5BB6\u65CF\u6700\u65B0\u4EE3 gpt-6.1-terra\uFF0C\u900F\u660E\u6620\u5C04\uFF0C\u6309 6.1 Terra \u8BA1\u8D39\u3002"
460
+ },
461
+ [PLATFORM_HOSTED_GPT_56_LUNA_MODEL]: {
462
+ aliasOf: PLATFORM_HOSTED_GPT_6_LUNA_MODEL,
463
+ since: "2026-11-01",
464
+ reason: "\u540C\u5BB6\u65CF\u6362\u4EE3\uFF08owner 2026-11-01 \u51B3\u5B9A\uFF09\uFF1Agpt-5.6-luna \u6307\u5411\u540C\u5BB6\u65CF\u6700\u65B0\u4EE3 gpt-6-luna\uFF08\u4E0A\u6E38\u65E0 6.1-luna\uFF09\uFF0C\u900F\u660E\u6620\u5C04\uFF0C\u6309 6 Luna \u8BA1\u8D39\u3002"
465
+ },
466
+ [PLATFORM_HOSTED_GPT_6_SOL_MODEL]: {
467
+ aliasOf: PLATFORM_HOSTED_GPT_6_1_SOL_MODEL,
468
+ since: "2026-11-01",
469
+ reason: "\u540C\u5BB6\u65CF\u6362\u4EE3\uFF08owner 2026-11-01 \u51B3\u5B9A\uFF09\uFF1Agpt-6-sol \u6307\u5411\u540C\u5BB6\u65CF\u6700\u65B0\u4EE3 gpt-6.1-sol\uFF0C\u900F\u660E\u6620\u5C04\uFF0C\u6309 6.1 Sol \u8BA1\u8D39\u3002"
438
470
  }
439
471
  };
440
472
  function resolvePlatformEffectiveModel(model) {
@@ -799,6 +831,30 @@ var PLATFORM_HOSTED_GPT_6_1_SOL_LONG_CONTEXT_PRICE = {
799
831
  output: toPlatformCredits(15)
800
832
  // 120 credits
801
833
  };
834
+ var PLATFORM_HOSTED_GPT_6_1_TERRA_PRICE = {
835
+ input: toPlatformCredits(1),
836
+ // 8 credits
837
+ inputCacheHit: toPlatformCredits(0.05),
838
+ // 0.4 credits
839
+ cachingRead: toPlatformCredits(0.05),
840
+ // 0.4 credits(CF 官方短档 cached in)
841
+ cachingWrite: toPlatformCredits(1.25),
842
+ // 10 credits(CF 官方短档 cache write)
843
+ output: toPlatformCredits(5)
844
+ // 40 credits
845
+ };
846
+ var PLATFORM_HOSTED_GPT_6_1_TERRA_LONG_CONTEXT_PRICE = {
847
+ input: toPlatformCredits(2),
848
+ // 16 credits
849
+ inputCacheHit: toPlatformCredits(0.1),
850
+ // 0.8 credits
851
+ cachingRead: toPlatformCredits(0.1),
852
+ // 0.8 credits(CF 官方长档 cached in)
853
+ cachingWrite: toPlatformCredits(2.5),
854
+ // 20 credits(CF 官方长档 cache write)
855
+ output: toPlatformCredits(7.5)
856
+ // 60 credits
857
+ };
802
858
  var PLATFORM_HOSTED_GLM_53_FLASH_PRICE = {
803
859
  input: toPlatformCredits(0.1),
804
860
  // 0.8 credits
@@ -1254,6 +1310,35 @@ var platformHostedModels = [
1254
1310
  contextWindow: 105e4,
1255
1311
  supportsReasoningEffort: true
1256
1312
  },
1313
+ {
1314
+ // GPT-6.1 Terra(2026-11-01 收进广场,上游 Cloudflare AI Responses):
1315
+ // 事实仅取 CF 官方模型页(developers.cloudflare.com/ai/models/openai/gpt-6.1-terra/,
1316
+ // 2026-11-01 核对):上下文 1,050,000 tokens;请求格式 Responses / Chat Completions;
1317
+ // 官方示例使用 reasoning.effort(→ supportsReasoningEffort);价格见
1318
+ // PLATFORM_HOSTED_GPT_6_1_TERRA_PRICE。
1319
+ // hasVision:官方页模型描述明写「visual reasoning」「match product photos to catalog
1320
+ // entries / interpret technical drawings」= 官方声明了图像理解,故为 true(有文字依据,
1321
+ // 不是猜测;与 6.1 Sol 的 false 是按同一口径——Sol 页无任何视觉声明)。
1322
+ // 同 6.1 Sol:官方页无模型级 tools 能力与 max output 声明 → 不声明 supportsTool、
1323
+ // 不填 maxOutputTokens(沿用缺省,不猜数值)。
1324
+ name: PLATFORM_HOSTED_GPT_6_1_TERRA_MODEL,
1325
+ displayName: "GPT-6.1 Terra",
1326
+ hasVision: true,
1327
+ price: { ...PLATFORM_HOSTED_GPT_6_1_TERRA_PRICE },
1328
+ pricingStrategy: {
1329
+ type: "tiered_context",
1330
+ tiers: [
1331
+ {
1332
+ minContext: PLATFORM_HOSTED_GPT_LONG_CONTEXT_MIN_TOKENS,
1333
+ price: { ...PLATFORM_HOSTED_GPT_6_1_TERRA_LONG_CONTEXT_PRICE }
1334
+ }
1335
+ ]
1336
+ },
1337
+ // 2026-11-01 收进广场(= 平台上架日):CF 官方页未给发布日,故不冒称发布日。
1338
+ releasedAtMs: catalogReleasedAt(2026, 11, 1),
1339
+ contextWindow: 105e4,
1340
+ supportsReasoningEffort: true
1341
+ },
1257
1342
  // gpt-5.6-sol(2026-10-13):旧 id 是 gpt-6.1-sol 的兼容别名(PLATFORM_MODEL_ALIASES),
1258
1343
  // 不再作为可选商品上架;平台托管请求透明落到 6.1 的上游与 6.1 目录价。
1259
1344
  // 旧价目常量 PLATFORM_HOSTED_GPT_56_SOL_PRICE 保留给历史记录只读重放(不追溯)。
@@ -2,7 +2,7 @@ import {
2
2
  deleteDbRecord,
3
3
  queryUserRecords,
4
4
  readDbRecord
5
- } from "./chunk-6WZQGT5X.js";
5
+ } from "./chunk-CJ37ZMCQ.js";
6
6
  import {
7
7
  mergeAndDedupUserData
8
8
  } from "./chunk-OXME3PEE.js";
@@ -13,10 +13,10 @@ import {
13
13
  resolveAgentRecordFromHybridStore,
14
14
  sanitizeAgentRecordForCliOutput,
15
15
  writeAgentRecord
16
- } from "./chunk-6WZQGT5X.js";
16
+ } from "./chunk-CJ37ZMCQ.js";
17
17
  import {
18
18
  clearCliLocalRuntimePreparedAgentCache
19
- } from "./chunk-RRHJJUA3.js";
19
+ } from "./chunk-2PI4QFAL.js";
20
20
  import {
21
21
  readCredentialAvailability
22
22
  } from "./chunk-HAB2UDLT.js";
@@ -244,7 +244,7 @@ async function runAgentCreateCommand(args, deps = {}) {
244
244
  let verifyResult;
245
245
  if (parsed.verify) {
246
246
  try {
247
- const { verifyCustomProvider } = await import("./agentProviderCommands-T6E3JCR6.js");
247
+ const { verifyCustomProvider } = await import("./agentProviderCommands-5ALOQLE5.js");
248
248
  const rec = built.nextRecord;
249
249
  verifyResult = await verifyCustomProvider({
250
250
  providerUrl: rec.customProviderUrl,
@@ -268,7 +268,7 @@ async function runAgentCreateCommand(args, deps = {}) {
268
268
  const OAUTH_REFS = /* @__PURE__ */ new Set(["claude", "chatgpt", "xai", "antigravity", "cloudflare"]);
269
269
  if (apiKeyRef && OAUTH_REFS.has(apiKeyRef)) {
270
270
  try {
271
- const { createOAuthTokenStore } = await import("./oauthTokenStore-PADKLNOC.js");
271
+ const { createOAuthTokenStore } = await import("./oauthTokenStore-OEERZFUC.js");
272
272
  const store = createOAuthTokenStore();
273
273
  if (!store.read(apiKeyRef)) {
274
274
  authHint = `Subscription "${apiKeyRef}" is not authorized yet. Run \`nolo auth ${apiKeyRef}\` to log in.`;