nolo-cli 0.105.0 → 0.106.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 (115) hide show
  1. package/{_executeModel-JXG5TLPE.js → _executeModel-EP6HAX3W.js} +38 -37
  2. package/{addContentAction-J3DLDV64.js → addContentAction-NZZNAVCB.js} +4 -4
  3. package/{addDialogAgentAction-PHIXJCF2.js → addDialogAgentAction-5HVGEIXI.js} +4 -4
  4. package/{agentDeleteCommand-2AWJGHXG.js → agentDeleteCommand-M25A6UGB.js} +45 -45
  5. package/{agentEmailCommands-VV5OSILE.js → agentEmailCommands-RUL4NL64.js} +46 -46
  6. package/{agentListCommands-OQMRBDWP.js → agentListCommands-KSPFKHFO.js} +23 -24
  7. package/{agentMachineCommands-3VLLR6RL.js → agentMachineCommands-IHBB6PHD.js} +20 -21
  8. package/{agentProviderCommands-XPJYZSCE.js → agentProviderCommands-ND4S2Q6Q.js} +1 -1
  9. package/{agentRecordCommands-GPIARVOW.js → agentRecordCommands-7OKIBN6H.js} +45 -45
  10. package/{agentRunCommand-LRJTZ7IM.js → agentRunCommand-GBKJTQQU.js} +45 -45
  11. package/{agentRuntimeLocal-PV6AZOEU.js → agentRuntimeLocal-E5HXZNXZ.js} +18 -19
  12. package/{agentSlice-6R3JKS6I.js → agentSlice-7T3ZLYET.js} +4 -4
  13. package/{appDeleteCommands-WEX73P5R.js → appDeleteCommands-TTJUYTQN.js} +21 -22
  14. package/{appDeployCommands-7BAXWA4M.js → appDeployCommands-65WYK2TQ.js} +21 -22
  15. package/{appDeployStatusCommands-EJ6A2U4X.js → appDeployStatusCommands-U4XESYYG.js} +21 -22
  16. package/{appGetCommands-SB355OEX.js → appGetCommands-VNHZZC4D.js} +21 -22
  17. package/{appListCommands-TSZDPIKJ.js → appListCommands-O667ZEU6.js} +21 -22
  18. package/{authCommand-5PB3YRVV.js → authCommand-SUHHTVHA.js} +8 -8
  19. package/{builtinSkillRegistry-SBBWTANC.js → builtinSkillRegistry-PUGT65WS.js} +5 -5
  20. package/{chunk-Z5NGE5DH.js → chunk-2NGKYC3L.js} +3 -3
  21. package/{chunk-S2NSK7AZ.js → chunk-3SXZ6SUC.js} +4 -4
  22. package/{chunk-NSBID7PR.js → chunk-3VKDWQMJ.js} +2 -2
  23. package/{chunk-QKTESDWK.js → chunk-4VDS344D.js} +3 -3
  24. package/{chunk-7KVZ5LDQ.js → chunk-5F7UKMLN.js} +8 -4
  25. package/{chunk-BB7LVBTS.js → chunk-6AIURTE7.js} +3 -3
  26. package/{chunk-HP57OUJO.js → chunk-7I25CBT5.js} +31 -5
  27. package/{chunk-NSAFG343.js → chunk-AM4G3LDJ.js} +59 -47
  28. package/{chunk-NTR4SD3P.js → chunk-AZB6HR4I.js} +13 -48
  29. package/{chunk-AFH5QC6R.js → chunk-BIH7KCDJ.js} +3 -3
  30. package/{chunk-UA324D4O.js → chunk-BPLIXNC6.js} +1 -1
  31. package/{chunk-YK5MHOWM.js → chunk-CEQ75WPL.js} +1 -1
  32. package/{chunk-K6U4NKFJ.js → chunk-DBKRC5O2.js} +1 -1
  33. package/{chunk-UWXDA7L5.js → chunk-DJ3JABG5.js} +22 -37
  34. package/{chunk-HYXABXCZ.js → chunk-DSXRVBTA.js} +98 -21
  35. package/{chunk-3Q7NEHAR.js → chunk-EBS4FKW4.js} +1 -1
  36. package/{chunk-ZBHR642M.js → chunk-EHGIEGLI.js} +161 -43
  37. package/{chunk-YVU4XVJD.js → chunk-FJKZSR5P.js} +1 -1
  38. package/{chunk-54VPQTOA.js → chunk-GMP3NBAA.js} +5 -7
  39. package/{chunk-3BXNTXYI.js → chunk-GU7DC2TD.js} +2 -1
  40. package/{chunk-FGSJ3YMD.js → chunk-HNA5KV37.js} +5 -5
  41. package/{chunk-CYSYR67N.js → chunk-I5YMDACN.js} +1 -1
  42. package/{chunk-WJ3B6FX6.js → chunk-IXH3HKY2.js} +0 -8
  43. package/{chunk-Y3PMXGLH.js → chunk-IYIXAIEB.js} +197 -92
  44. package/{chunk-RWX7AY7J.js → chunk-JWNBEIME.js} +1 -1
  45. package/{chunk-VVJ2ENLY.js → chunk-LGWABBTZ.js} +4 -4
  46. package/{chunk-QYUBY3OZ.js → chunk-LOPP5VT6.js} +1 -1
  47. package/{chunk-GSKPJIHY.js → chunk-LUBFABMJ.js} +2 -6
  48. package/{chunk-BNGW5ASC.js → chunk-LYLO5U3H.js} +15 -2
  49. package/{chunk-L5WOICCV.js → chunk-MJ3CRU77.js} +22 -6
  50. package/{chunk-AWVP7PPG.js → chunk-NTNKA5VL.js} +1 -1
  51. package/{chunk-EP7BWZ4B.js → chunk-OAXBDMT7.js} +1 -1
  52. package/{chunk-4DPP773Q.js → chunk-ODTBO4W6.js} +9 -6
  53. package/{chunk-B7APRSPS.js → chunk-OQ5IVGCV.js} +3 -3
  54. package/{chunk-EKPKW6RM.js → chunk-OYTWDOQV.js} +3 -3
  55. package/{chunk-P5GCTVGV.js → chunk-OZ2IIIRP.js} +2 -2
  56. package/{chunk-D2GQE6AF.js → chunk-PFLF4R4E.js} +1 -1
  57. package/{chunk-RILRSUGC.js → chunk-QDH32WF5.js} +1 -1
  58. package/{chunk-VCAQFMVN.js → chunk-QVAWUJAJ.js} +1 -1
  59. package/{chunk-27ONFIEY.js → chunk-SJ7CUF65.js} +2 -2
  60. package/{chunk-CNA27EMD.js → chunk-SYEBIZOF.js} +1 -1
  61. package/{chunk-ZSUDOTPL.js → chunk-TLKXNTQJ.js} +3 -3
  62. package/{chunk-A4SQRTZ6.js → chunk-TLYSGGPG.js} +1 -1
  63. package/chunk-UM7TA3K4.js +1008 -0
  64. package/{chunk-BZ7NPA6G.js → chunk-VBG7GWWR.js} +218 -6
  65. package/{chunk-DZ7R5V3Y.js → chunk-VBQGO5NX.js} +1 -1
  66. package/{chunk-44CU7CKA.js → chunk-VYKXIHRP.js} +181 -34
  67. package/chunk-VZLO4XJD.js +17 -0
  68. package/{chunk-IEJ5YDA4.js → chunk-WMWYWYK2.js} +2 -2
  69. package/{chunk-LWXE6IFU.js → chunk-XDQ7PHU3.js} +31 -196
  70. package/{chunk-AFSY3ZMB.js → chunk-XGOHDYM2.js} +1 -1
  71. package/{chunk-2WJ57RJA.js → chunk-XLWMNFBZ.js} +1 -1
  72. package/{chunk-3F424ASC.js → chunk-YFU5EELM.js} +1 -1
  73. package/{chunk-QMXJ5KDJ.js → chunk-YQFLBS6A.js} +13 -13
  74. package/{chunk-CFHWVEUJ.js → chunk-ZVGXD7UJ.js} +2 -2
  75. package/{chunk-4WMMIL66.js → chunk-ZYM73IHG.js} +3 -2
  76. package/{commandRegistry-QU62WJQX.js → commandRegistry-6QIAUQDS.js} +49 -49
  77. package/{contentThunks-VGV3JJVB.js → contentThunks-5DDMUQ7B.js} +17 -16
  78. package/{createAgentAutomationAction-ZNVLI4WV.js → createAgentAutomationAction-NQ6AZM42.js} +17 -16
  79. package/{createDialogAction-TTUA46DT.js → createDialogAction-QZ6X4A7O.js} +20 -19
  80. package/{createPageAction-KUFSC5XW.js → createPageAction-NCGEJBVK.js} +17 -16
  81. package/{dbSlice-MYEETO73.js → dbSlice-RCZ7NRAF.js} +3 -3
  82. package/{dialogCommands-DRDPEOTL.js → dialogCommands-OGQLEF63.js} +21 -22
  83. package/{dialogSlice-V2SVSTIV.js → dialogSlice-GIKNUHNW.js} +30 -17
  84. package/{docCreateCommands-M26CFDDQ.js → docCreateCommands-RW6LNYT6.js} +20 -21
  85. package/{docDeleteCommands-LRZHCKVX.js → docDeleteCommands-Z742TRNY.js} +21 -22
  86. package/{docReadCommands-6QJSISHK.js → docReadCommands-5DIGA42Y.js} +20 -21
  87. package/{docStore-4RWAFNDM.js → docStore-6GUOZH52.js} +4 -4
  88. package/{docUpdateCommands-W4KU4U5T.js → docUpdateCommands-ZFZ2QEVK.js} +20 -21
  89. package/{getPricing-NMMFT3YI.js → getPricing-QVSNUFZ6.js} +3 -3
  90. package/{handleSendMessageAction-VEWLGB5Z.js → handleSendMessageAction-B2VXOLMM.js} +16 -15
  91. package/index.js +3 -3
  92. package/{machineCommands-AEHHCJEW.js → machineCommands-AI3N7JHQ.js} +44 -44
  93. package/{machineWsRunDispatch-MY2KHS36.js → machineWsRunDispatch-RPF2D6VV.js} +44 -44
  94. package/{memberThunks-EE6TI3TV.js → memberThunks-YICJI4IS.js} +4 -4
  95. package/{models-ZPU5EDF4.js → models-FTNFVO3D.js} +2 -2
  96. package/package.json +1 -1
  97. package/{providerPresetApply-TEBH7FDX.js → providerPresetApply-OJJXQ7NM.js} +6 -6
  98. package/{providerRegistry-CBJLNCET.js → providerRegistry-DXFBDCGQ.js} +6 -6
  99. package/{read-PJIT2YEJ.js → read-XMBM52Y4.js} +2 -2
  100. package/{readDocTool-DRSXHGNL.js → readDocTool-LAQHKCVT.js} +1 -1
  101. package/{readlineWorkspace-7Q6MITLV.js → readlineWorkspace-EPUCVZ73.js} +48 -48
  102. package/{removeDialogAgentAction-IN4WUKJJ.js → removeDialogAgentAction-HDUI2MU3.js} +5 -5
  103. package/{runAgentClientLoop-H2JALUVD.js → runAgentClientLoop-OXQMDGAN.js} +36 -35
  104. package/{setDialogExtraReferencesAction-VDRF7LPK.js → setDialogExtraReferencesAction-ADBVOP4O.js} +5 -5
  105. package/{setPrimaryDialogAgentAction-RO6LIWJ4.js → setPrimaryDialogAgentAction-PXVXQJ62.js} +5 -5
  106. package/{settingThunks-3OPOLOIA.js → settingThunks-G2MJRKUE.js} +6 -6
  107. package/{spaceCommands-UBLL5EF2.js → spaceCommands-Z662QYY6.js} +20 -21
  108. package/{streamAgentChatTurn-FFJWW3FD.js → streamAgentChatTurn-YJYEJHP7.js} +40 -46
  109. package/{switchDialogAgentAction-MVF2JNE7.js → switchDialogAgentAction-Z3RZACGF.js} +4 -4
  110. package/{toolApiClient-EJT6TMFG.js → toolApiClient-AD7CXTA4.js} +3 -2
  111. package/{tools-AZRYLYNK.js → tools-GHI3WBEI.js} +32 -31
  112. package/{tuiSummaryLlmCaller-7S5HJ3MT.js → tuiSummaryLlmCaller-WTC6GCQC.js} +11 -12
  113. package/{updateDialogTitleAction-5WXTRUJM.js → updateDialogTitleAction-GJCNWTPY.js} +17 -16
  114. package/chunk-M7VLQGQP.js +0 -405
  115. package/chunk-NKWIS6G2.js +0 -442
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-VVJ2ENLY.js";
3
+ } from "./chunk-LGWABBTZ.js";
4
4
  import {
5
5
  format,
6
6
  prepareAndPersistMessage,
7
7
  uiAskChoiceFunc,
8
8
  uiAskChoiceFunctionSchema
9
- } from "./chunk-44CU7CKA.js";
9
+ } from "./chunk-VYKXIHRP.js";
10
10
  import {
11
11
  formatISO
12
12
  } from "./chunk-ZRAU6T47.js";
13
13
  import {
14
14
  buildBuiltinObjectSkillReference
15
- } from "./chunk-GSKPJIHY.js";
15
+ } from "./chunk-LUBFABMJ.js";
16
16
  import {
17
17
  read,
18
18
  readAndWait,
19
19
  removeCachedEntity,
20
20
  upsertSSREntity,
21
21
  write
22
- } from "./chunk-4WMMIL66.js";
22
+ } from "./chunk-ZYM73IHG.js";
23
23
  import {
24
24
  PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL,
25
25
  PLATFORM_HOSTED_KIMI_PROVIDER
26
- } from "./chunk-Y3PMXGLH.js";
26
+ } from "./chunk-IYIXAIEB.js";
27
27
  import {
28
28
  extractCustomId
29
29
  } from "./chunk-M2EJHDJP.js";
@@ -4,7 +4,7 @@ import {
4
4
  openrouterModels,
5
5
  platformHostedModels,
6
6
  zaiModels
7
- } from "./chunk-Y3PMXGLH.js";
7
+ } from "./chunk-IYIXAIEB.js";
8
8
 
9
9
  // packages/ai/llm/modelAbility.ts
10
10
  var MODEL_ABILITY_TABLE = {
@@ -16,14 +16,6 @@ var SYSTEM_AGENT_CAPABILITIES = [
16
16
  defaultEnabled: false,
17
17
  icon: "\u{1F578}\uFE0F"
18
18
  },
19
- {
20
- id: "conversation-todo",
21
- label: "\u5BF9\u8BDD Todo",
22
- description: "\u5728\u591A\u6B65\u9AA4\u5BF9\u8BDD\u4E2D\u663E\u793A\u548C\u66F4\u65B0\u4EFB\u52A1\u8FDB\u5EA6\u3002\u5173\u95ED\u540E\uFF0CAgent \u4E0D\u4F1A\u4F7F\u7528\u5BF9\u8BDD\u5185 Todo \u5DE5\u5177\u3002",
23
- tools: ["setTodoList"],
24
- defaultEnabled: true,
25
- icon: "\u2611\uFE0F"
26
- },
27
19
  {
28
20
  id: "agent-orchestration",
29
21
  label: "\u591A agent \u7F16\u6392",
@@ -48,12 +48,20 @@ var PLATFORM_HOSTED_CLAUDE_FABLE_5_MODEL = "anthropic/claude-fable-5";
48
48
  var PLATFORM_HOSTED_CLAUDE_HAIKU_45_MODEL = "anthropic/claude-haiku-4-5";
49
49
  var PLATFORM_HOSTED_CLAUDE_OPUS_5_5_MODEL = "anthropic/claude-opus-5-5";
50
50
  var PLATFORM_HOSTED_CLAUDE_FABLE_5_1_MODEL = "anthropic/claude-fable-5-1";
51
+ var CLOUDFLARE_CLAUDE_SONNET_5_UPSTREAM_MODEL_ID = "anthropic/claude-sonnet-5";
52
+ var CLOUDFLARE_CLAUDE_OPUS_5_UPSTREAM_MODEL_ID = "anthropic/claude-opus-5";
53
+ var CLOUDFLARE_CLAUDE_FABLE_5_UPSTREAM_MODEL_ID = "anthropic/claude-fable-5";
54
+ var CLOUDFLARE_CLAUDE_HAIKU_45_UPSTREAM_MODEL_ID = "anthropic/claude-haiku-4.5";
55
+ var CLOUDFLARE_CLAUDE_OPUS_5_5_UPSTREAM_MODEL_ID = "anthropic/claude-opus-5.5";
56
+ var CLOUDFLARE_CLAUDE_FABLE_5_1_UPSTREAM_MODEL_ID = "anthropic/claude-fable-5.1";
57
+ var CLOUDFLARE_AI_MESSAGES_ENDPOINT_TEMPLATE = "https://api.cloudflare.com/client/v4/accounts/{account}/ai/v1/messages";
51
58
  var PLATFORM_HOSTED_GROK_4_6_MODEL = "grok-4.6";
52
59
  var PLATFORM_HOSTED_GPT_6_ASTRA_MODEL = "gpt-6-astra";
53
60
  var PLATFORM_HOSTED_GPT_6_LUNA_MODEL = "gpt-6-luna";
54
61
  var PLATFORM_HOSTED_GPT_56_SOL_MODEL = "gpt-5.6-sol";
55
62
  var PLATFORM_HOSTED_GPT_56_TERRA_MODEL = "gpt-5.6-terra";
56
63
  var PLATFORM_HOSTED_GPT_56_LUNA_MODEL = "gpt-5.6-luna";
64
+ var PLATFORM_HOSTED_GPT_6_1_SOL_MODEL = "gpt-6.1-sol";
57
65
  var PLATFORM_HOSTED_KIMI_K26_OPENROUTER_MODEL_ID = "qwen/qwen3.8-27b";
58
66
  var PLATFORM_HOSTED_GLM_53_MODEL = "glm-5.3";
59
67
  var PLATFORM_HOSTED_GLM_52_MODEL = "glm-5.2";
@@ -73,6 +81,12 @@ var PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL = "deepseek-flash";
73
81
  var PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL = "deepseek-v4-flash-vision-exp";
74
82
  var PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL = "deepseek-v4-pro";
75
83
  var PLATFORM_HOSTED_LEGACY_DEEPSEEK_V4_FLASH_MODEL = "deepseek-v4-flash";
84
+ var CLOUDFLARE_GPT_6_ASTRA_UPSTREAM_MODEL_ID = "openai/gpt-6-astra";
85
+ var CLOUDFLARE_GPT_6_LUNA_UPSTREAM_MODEL_ID = "openai/gpt-6-luna";
86
+ var CLOUDFLARE_GPT_56_TERRA_UPSTREAM_MODEL_ID = "openai/gpt-5.6-terra";
87
+ var CLOUDFLARE_GPT_56_LUNA_UPSTREAM_MODEL_ID = "openai/gpt-5.6-luna";
88
+ var CLOUDFLARE_GPT_6_1_SOL_UPSTREAM_MODEL_ID = "openai/gpt-6.1-sol";
89
+ var CLOUDFLARE_AI_RESPONSES_ENDPOINT_TEMPLATE = "https://api.cloudflare.com/client/v4/accounts/{account}/ai/v1/responses";
76
90
  var PLATFORM_HOSTED_KIMI_K3_MIN_CLIENT_VERSION = "0.38.0-alpha.4";
77
91
  var PLATFORM_HOSTED_GLM_53_FLASH_MIN_CLIENT_VERSION = "0.33.0-alpha.1";
78
92
  var PLATFORM_HOSTED_ROUTING_TABLE = {
@@ -185,99 +199,113 @@ var PLATFORM_HOSTED_ROUTING_TABLE = {
185
199
  wire: "chat.completions",
186
200
  agentRunHosted: true
187
201
  },
188
- // Claude 系(真实模型):DeepInfra 官方 id 与平台 id 同名,无需重映射。
189
- // 旧批模型无缓存价(rate_per_input_token_cached=null),计费侧对无
190
- // inputCacheHit 的模型按 input 全价计(见 calculatePrice);Fable 5.1 起
191
- // 官方给出缓存读价(输入 1/4),在 platformHosted.ts 的 price 里带
192
- // inputCacheHit。
202
+ // Claude 系(Cloudflare Workers AI 上游,遵循 Anthropic Messages 协议):
203
+ // 端点使用统一 accounts/{account}/ai/v1/messages 占位模板,上游使用官方 Catalog ID;
204
+ // 专用分支按 agentRunHosted 开关放行,缺 CF 凭据/账号在任何 fetch 前显式失败。
193
205
  [PLATFORM_HOSTED_CLAUDE_SONNET_5_MODEL]: {
194
- endpoint: "https://api.deepinfra.com/v1/openai/chat/completions",
195
- usageProvider: "deepinfra",
196
- keyName: "deepinfra",
197
- upstreamModelId: PLATFORM_HOSTED_CLAUDE_SONNET_5_MODEL,
198
- wire: "chat.completions",
206
+ endpoint: CLOUDFLARE_AI_MESSAGES_ENDPOINT_TEMPLATE,
207
+ usageProvider: "cloudflare",
208
+ keyName: "cloudflare",
209
+ upstreamModelId: CLOUDFLARE_CLAUDE_SONNET_5_UPSTREAM_MODEL_ID,
210
+ wire: "anthropic.messages",
199
211
  agentRunHosted: true
200
212
  },
201
213
  [PLATFORM_HOSTED_CLAUDE_OPUS_5_MODEL]: {
202
- endpoint: "https://api.deepinfra.com/v1/openai/chat/completions",
203
- usageProvider: "deepinfra",
204
- keyName: "deepinfra",
205
- upstreamModelId: PLATFORM_HOSTED_CLAUDE_OPUS_5_MODEL,
206
- wire: "chat.completions",
214
+ endpoint: CLOUDFLARE_AI_MESSAGES_ENDPOINT_TEMPLATE,
215
+ usageProvider: "cloudflare",
216
+ keyName: "cloudflare",
217
+ upstreamModelId: CLOUDFLARE_CLAUDE_OPUS_5_UPSTREAM_MODEL_ID,
218
+ wire: "anthropic.messages",
207
219
  agentRunHosted: true
208
220
  },
209
221
  [PLATFORM_HOSTED_CLAUDE_FABLE_5_MODEL]: {
210
- endpoint: "https://api.deepinfra.com/v1/openai/chat/completions",
211
- usageProvider: "deepinfra",
212
- keyName: "deepinfra",
213
- upstreamModelId: PLATFORM_HOSTED_CLAUDE_FABLE_5_MODEL,
214
- wire: "chat.completions",
222
+ endpoint: CLOUDFLARE_AI_MESSAGES_ENDPOINT_TEMPLATE,
223
+ usageProvider: "cloudflare",
224
+ keyName: "cloudflare",
225
+ upstreamModelId: CLOUDFLARE_CLAUDE_FABLE_5_UPSTREAM_MODEL_ID,
226
+ wire: "anthropic.messages",
215
227
  agentRunHosted: true
216
228
  },
217
229
  [PLATFORM_HOSTED_CLAUDE_HAIKU_45_MODEL]: {
218
- endpoint: "https://api.deepinfra.com/v1/openai/chat/completions",
219
- usageProvider: "deepinfra",
220
- keyName: "deepinfra",
221
- upstreamModelId: PLATFORM_HOSTED_CLAUDE_HAIKU_45_MODEL,
222
- wire: "chat.completions",
230
+ endpoint: CLOUDFLARE_AI_MESSAGES_ENDPOINT_TEMPLATE,
231
+ usageProvider: "cloudflare",
232
+ keyName: "cloudflare",
233
+ upstreamModelId: CLOUDFLARE_CLAUDE_HAIKU_45_UPSTREAM_MODEL_ID,
234
+ wire: "anthropic.messages",
223
235
  agentRunHosted: true
224
236
  },
225
- // 新一代 Claude(2026-09-24 收进广场):同 DeepInfra 通道、官方 id 直传。
237
+ // 新一代 Claude(2026-09-24 收进广场):同 Cloudflare 通道、官方 Catalog ID。
226
238
  [PLATFORM_HOSTED_CLAUDE_OPUS_5_5_MODEL]: {
227
- endpoint: "https://api.deepinfra.com/v1/openai/chat/completions",
228
- usageProvider: "deepinfra",
229
- keyName: "deepinfra",
230
- upstreamModelId: PLATFORM_HOSTED_CLAUDE_OPUS_5_5_MODEL,
231
- wire: "chat.completions",
239
+ endpoint: CLOUDFLARE_AI_MESSAGES_ENDPOINT_TEMPLATE,
240
+ usageProvider: "cloudflare",
241
+ keyName: "cloudflare",
242
+ upstreamModelId: CLOUDFLARE_CLAUDE_OPUS_5_5_UPSTREAM_MODEL_ID,
243
+ wire: "anthropic.messages",
232
244
  agentRunHosted: true
233
245
  },
234
246
  [PLATFORM_HOSTED_CLAUDE_FABLE_5_1_MODEL]: {
235
- endpoint: "https://api.deepinfra.com/v1/openai/chat/completions",
236
- usageProvider: "deepinfra",
237
- keyName: "deepinfra",
238
- upstreamModelId: PLATFORM_HOSTED_CLAUDE_FABLE_5_1_MODEL,
239
- wire: "chat.completions",
247
+ endpoint: CLOUDFLARE_AI_MESSAGES_ENDPOINT_TEMPLATE,
248
+ usageProvider: "cloudflare",
249
+ keyName: "cloudflare",
250
+ upstreamModelId: CLOUDFLARE_CLAUDE_FABLE_5_1_UPSTREAM_MODEL_ID,
251
+ wire: "anthropic.messages",
240
252
  agentRunHosted: true
241
253
  },
242
- // GPT-6 / GPT-5.6 系(OpenAI 官方 chat.completions):
243
- // 平台价按短上下文价目定(长上下文档差价由平台吸收),见 platformHosted.ts。
254
+ // GPT-6 / GPT-6.1 / GPT-5.6 文本系(Cloudflare AI 上游,Responses 协议):
255
+ // 平台价仍按短上下文价目定(长上下文档差价由平台吸收),见 platformHosted.ts;
256
+ // 计价口径不随上游迁移变化,对客价目不动。
257
+ //
258
+ // ⚠️ 隔离改动(2026-10-13):catalog-only 路由切换,**未启用生产**。
259
+ // endpoint 是账号作用域占位模板(含字面量 `{account}`),必须由运行时 resolver 用
260
+ // CLOUDFLARE_ACCOUNT_ID 替换、并按 Responses wire 组装请求体;而旧消费者
261
+ // (server agentRun / chatProxy / agent-runtime platformProviderEndpoints)尚未具备该能力
262
+ // —— 它们会把 OpenAI chat.completions 形状的 body POST 到这个模板 URL,或用字面量
263
+ // `{account}` 直接发请求。因此在 wire adapter + account 替换 + 专用 wire 门控合入前,
264
+ // 集成块(2026-10-13)已为 server agentRun 加专用 wire 分支:这 6 条(含兼容别名 id)
265
+ // 的 agentRunHosted 翻为 true,专用分支按该开关放行、token/账号缺一在任何 fetch 前显式失败;
244
266
  [PLATFORM_HOSTED_GPT_6_ASTRA_MODEL]: {
245
- endpoint: "https://api.openai.com/v1/chat/completions",
246
- usageProvider: "openai",
247
- keyName: "openai",
248
- wire: "chat.completions",
267
+ endpoint: CLOUDFLARE_AI_RESPONSES_ENDPOINT_TEMPLATE,
268
+ usageProvider: "cloudflare",
269
+ keyName: "cloudflare",
270
+ upstreamModelId: CLOUDFLARE_GPT_6_ASTRA_UPSTREAM_MODEL_ID,
271
+ wire: "responses",
249
272
  agentRunHosted: true
250
273
  },
251
- // GPT-6 Luna(2026-09-22 随 GPT-6 Sol/Luna 上线;官方模型页
252
- // developers.openai.com/api/docs/models/gpt-6-luna,2026-09-23 核对):
253
- // 官方 id 即 `gpt-6-luna`,Chat Completions 与 Responses 端点均可用;
254
- // 平台托管沿用 GPT-6 系既有 chat.completions 分流(与 astra 同线同源)。
274
+ // GPT-6 Luna(2026-09-22 随 GPT-6 Sol/Luna 上线):CF catalog id `openai/gpt-6-luna`。
255
275
  [PLATFORM_HOSTED_GPT_6_LUNA_MODEL]: {
256
- endpoint: "https://api.openai.com/v1/chat/completions",
257
- usageProvider: "openai",
258
- keyName: "openai",
259
- wire: "chat.completions",
260
- agentRunHosted: true
261
- },
262
- [PLATFORM_HOSTED_GPT_56_SOL_MODEL]: {
263
- endpoint: "https://api.openai.com/v1/chat/completions",
264
- usageProvider: "openai",
265
- keyName: "openai",
266
- wire: "chat.completions",
276
+ endpoint: CLOUDFLARE_AI_RESPONSES_ENDPOINT_TEMPLATE,
277
+ usageProvider: "cloudflare",
278
+ keyName: "cloudflare",
279
+ upstreamModelId: CLOUDFLARE_GPT_6_LUNA_UPSTREAM_MODEL_ID,
280
+ wire: "responses",
267
281
  agentRunHosted: true
268
282
  },
283
+ // gpt-5.6-sol 不再单独建条目:它是 gpt-6.1-sol 的兼容别名
284
+ // (PLATFORM_MODEL_ALIASES),resolvePlatformHostedRouting 解析到 6.1 的条目。
269
285
  [PLATFORM_HOSTED_GPT_56_TERRA_MODEL]: {
270
- endpoint: "https://api.openai.com/v1/chat/completions",
271
- usageProvider: "openai",
272
- keyName: "openai",
273
- wire: "chat.completions",
286
+ endpoint: CLOUDFLARE_AI_RESPONSES_ENDPOINT_TEMPLATE,
287
+ usageProvider: "cloudflare",
288
+ keyName: "cloudflare",
289
+ upstreamModelId: CLOUDFLARE_GPT_56_TERRA_UPSTREAM_MODEL_ID,
290
+ wire: "responses",
274
291
  agentRunHosted: true
275
292
  },
276
293
  [PLATFORM_HOSTED_GPT_56_LUNA_MODEL]: {
277
- endpoint: "https://api.openai.com/v1/chat/completions",
278
- usageProvider: "openai",
279
- keyName: "openai",
280
- wire: "chat.completions",
294
+ endpoint: CLOUDFLARE_AI_RESPONSES_ENDPOINT_TEMPLATE,
295
+ usageProvider: "cloudflare",
296
+ keyName: "cloudflare",
297
+ upstreamModelId: CLOUDFLARE_GPT_56_LUNA_UPSTREAM_MODEL_ID,
298
+ wire: "responses",
299
+ agentRunHosted: true
300
+ },
301
+ // GPT-6.1 Sol(2026-10-13 新增):CF 官方页只声明「Responses, Chat Completions」
302
+ // 两种请求格式与 reasoning_effort;本表按 Responses 统一线走。
303
+ [PLATFORM_HOSTED_GPT_6_1_SOL_MODEL]: {
304
+ endpoint: CLOUDFLARE_AI_RESPONSES_ENDPOINT_TEMPLATE,
305
+ usageProvider: "cloudflare",
306
+ keyName: "cloudflare",
307
+ upstreamModelId: CLOUDFLARE_GPT_6_1_SOL_UPSTREAM_MODEL_ID,
308
+ wire: "responses",
281
309
  agentRunHosted: true
282
310
  },
283
311
  // Grok -> xAI(server agentRun 侧未分流,保持 no upstream route 报错)
@@ -364,10 +392,22 @@ var PLATFORM_HOSTED_ROUTING_TABLE = {
364
392
  agentRunHosted: false
365
393
  }
366
394
  };
367
- function resolvePlatformHostedRouting(model) {
395
+ var PLATFORM_MODEL_ALIASES = {
396
+ [PLATFORM_HOSTED_GPT_56_SOL_MODEL]: {
397
+ aliasOf: PLATFORM_HOSTED_GPT_6_1_SOL_MODEL,
398
+ since: "2026-10-13",
399
+ 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"
400
+ }
401
+ };
402
+ function resolvePlatformEffectiveModel(model) {
368
403
  const normalized = asTrimmedLowercaseString(model);
369
404
  if (!normalized) return void 0;
370
- return PLATFORM_HOSTED_ROUTING_TABLE[normalized];
405
+ return PLATFORM_MODEL_ALIASES[normalized]?.aliasOf ?? normalized;
406
+ }
407
+ function resolvePlatformHostedRouting(model) {
408
+ const effective = resolvePlatformEffectiveModel(model);
409
+ if (!effective) return void 0;
410
+ return PLATFORM_HOSTED_ROUTING_TABLE[effective];
371
411
  }
372
412
  function resolvePlatformHostedMinClientVersion(model) {
373
413
  return resolvePlatformHostedRouting(model)?.minClientVersion;
@@ -535,62 +575,96 @@ var PLATFORM_HOSTED_GLM_PRICE = {
535
575
  var PLATFORM_HOSTED_CLAUDE_FABLE_5_PRICE = {
536
576
  input: toPlatformCredits(10),
537
577
  // 80 credits
538
- output: toPlatformCredits(50)
578
+ output: toPlatformCredits(50),
539
579
  // 400 credits
580
+ cachingWrite: toPlatformCredits(12.5),
581
+ // 100 credits
582
+ cachingRead: toPlatformCredits(1)
583
+ // 8 credits
540
584
  };
541
585
  var PLATFORM_HOSTED_CLAUDE_OPUS_5_PRICE = {
542
586
  input: toPlatformCredits(5),
543
587
  // 40 credits
544
- output: toPlatformCredits(25)
588
+ output: toPlatformCredits(25),
545
589
  // 200 credits
590
+ cachingWrite: toPlatformCredits(6.25),
591
+ // 50 credits
592
+ cachingRead: toPlatformCredits(0.5)
593
+ // 4 credits
546
594
  };
547
595
  var PLATFORM_HOSTED_CLAUDE_SONNET_5_PRICE = {
548
- input: toPlatformCredits(3),
549
- // 24 credits
550
- output: toPlatformCredits(15)
551
- // 120 credits
596
+ input: toPlatformCredits(2),
597
+ // 16 credits
598
+ output: toPlatformCredits(10),
599
+ // 80 credits
600
+ cachingWrite: toPlatformCredits(2.5),
601
+ // 20 credits
602
+ cachingRead: toPlatformCredits(0.2)
603
+ // 1.6 credits
552
604
  };
553
605
  var PLATFORM_HOSTED_CLAUDE_HAIKU_45_PRICE = {
554
606
  input: toPlatformCredits(1),
555
607
  // 8 credits
556
- output: toPlatformCredits(5)
608
+ output: toPlatformCredits(5),
557
609
  // 40 credits
610
+ cachingWrite: toPlatformCredits(1.25),
611
+ // 10 credits
612
+ cachingRead: toPlatformCredits(0.1)
613
+ // 0.8 credits
558
614
  };
559
615
  var PLATFORM_HOSTED_CLAUDE_OPUS_5_5_PRICE = {
560
616
  input: toPlatformCredits(4),
561
617
  // 32 credits
562
- output: toPlatformCredits(20)
618
+ output: toPlatformCredits(20),
563
619
  // 160 credits
620
+ cachingWrite: toPlatformCredits(5),
621
+ // 40 credits
622
+ cachingRead: toPlatformCredits(0.2)
623
+ // 1.6 credits
564
624
  };
565
625
  var PLATFORM_HOSTED_CLAUDE_FABLE_5_1_PRICE = {
566
626
  input: toPlatformCredits(10),
567
627
  // 80 credits
568
- inputCacheHit: toPlatformCredits(2.5),
569
- // 20 credits(官方缓存读 = 输入 1/4)
570
- output: toPlatformCredits(50)
628
+ output: toPlatformCredits(50),
571
629
  // 400 credits
630
+ cachingWrite: toPlatformCredits(12.5),
631
+ // 100 credits
632
+ cachingRead: toPlatformCredits(0.25)
633
+ // 2 credits
572
634
  };
573
635
  var PLATFORM_HOSTED_GPT_6_ASTRA_PRICE = {
574
636
  input: toPlatformCredits(10),
575
637
  // 80 credits
576
638
  inputCacheHit: toPlatformCredits(1),
577
639
  // 8 credits
640
+ cachingRead: toPlatformCredits(1),
641
+ // 8 credits(CF 官方短档 cached in)
642
+ cachingWrite: toPlatformCredits(12),
643
+ // 96 credits(CF 官方短档 cache write)
578
644
  output: toPlatformCredits(50)
579
645
  // 400 credits
580
646
  };
581
647
  var PLATFORM_HOSTED_GPT_56_SOL_PRICE = {
582
- input: toPlatformCredits(4),
583
- // 32 credits
584
- inputCacheHit: toPlatformCredits(0.4),
585
- // 3.2 credits
586
- output: toPlatformCredits(20)
587
- // 160 credits
648
+ input: toPlatformCredits(2),
649
+ // 16 credits
650
+ inputCacheHit: toPlatformCredits(0.25),
651
+ // 2 credits
652
+ cachingRead: toPlatformCredits(0.25),
653
+ // 2 credits(CF 官方短档 cached in)
654
+ cachingWrite: toPlatformCredits(3.125),
655
+ // 25 credits(CF 官方短档 cache write)
656
+ output: toPlatformCredits(10)
657
+ // 80 credits
588
658
  };
589
659
  var PLATFORM_HOSTED_GPT_56_TERRA_PRICE = {
590
660
  input: toPlatformCredits(2),
591
661
  // 16 credits
592
662
  inputCacheHit: toPlatformCredits(0.2),
593
663
  // 1.6 credits
664
+ cachingRead: toPlatformCredits(0.2),
665
+ // 1.6 credits(CF 官方短档 cached in)
666
+ cachingWrite: toPlatformCredits(2.5),
667
+ // 20 credits(CF 官方短档 cache write)
594
668
  output: toPlatformCredits(12)
595
669
  // 96 credits
596
670
  };
@@ -599,6 +673,10 @@ var PLATFORM_HOSTED_GPT_56_LUNA_PRICE = {
599
673
  // 1.6 credits
600
674
  inputCacheHit: toPlatformCredits(0.02),
601
675
  // 0.16 credits
676
+ cachingRead: toPlatformCredits(0.02),
677
+ // 0.16 credits(CF 官方短档 cached in)
678
+ cachingWrite: toPlatformCredits(0.25),
679
+ // 2.0 credits(CF 官方短档 cache write)
602
680
  output: toPlatformCredits(1.2)
603
681
  // 9.6 credits
604
682
  };
@@ -607,9 +685,25 @@ var PLATFORM_HOSTED_GPT_6_LUNA_PRICE = {
607
685
  // 0.8 credits
608
686
  inputCacheHit: toPlatformCredits(0.01),
609
687
  // 0.08 credits
688
+ cachingRead: toPlatformCredits(0.01),
689
+ // 0.08 credits(CF 官方短档 cached in)
690
+ cachingWrite: toPlatformCredits(0.125),
691
+ // 1.0 credits(CF 官方短档 cache write)
610
692
  output: toPlatformCredits(0.5)
611
693
  // 4.0 credits
612
694
  };
695
+ var PLATFORM_HOSTED_GPT_6_1_SOL_PRICE = {
696
+ input: toPlatformCredits(2),
697
+ // 16 credits
698
+ inputCacheHit: toPlatformCredits(0.1),
699
+ // 0.8 credits
700
+ cachingRead: toPlatformCredits(0.1),
701
+ // 0.8 credits(CF 官方短档 cached in)
702
+ cachingWrite: toPlatformCredits(2.5),
703
+ // 20 credits(CF 官方短档 cache write)
704
+ output: toPlatformCredits(10)
705
+ // 80 credits
706
+ };
613
707
  var PLATFORM_HOSTED_GLM_53_FLASH_PRICE = {
614
708
  input: toPlatformCredits(0.1),
615
709
  // 0.8 credits
@@ -926,8 +1020,8 @@ var platformHostedModels = [
926
1020
  supportsTool: true,
927
1021
  supportsReasoningEffort: true
928
1022
  },
929
- // Claude 系(真实 DeepInfra 模型,官方 id 与平台 id 同名):旧批无缓存价,
930
- // 计费按 input 全价(见 calculatePrice);Fable 5.1 带官方缓存读价。
1023
+ // Claude 系(Cloudflare Workers AI 上游):全面支持 5m TTL 缓存写入与命中读取
1024
+ // (cachingWrite / cachingRead);官方 API 统一按 Anthropic Messages 协议暴露。
931
1025
  {
932
1026
  name: PLATFORM_HOSTED_CLAUDE_SONNET_5_MODEL,
933
1027
  displayName: "Claude Sonnet 5",
@@ -1009,15 +1103,24 @@ var platformHostedModels = [
1009
1103
  supportsReasoningEffort: true
1010
1104
  },
1011
1105
  {
1012
- name: PLATFORM_HOSTED_GPT_56_SOL_MODEL,
1013
- displayName: "GPT-5.6 Sol",
1014
- hasVision: true,
1015
- price: { ...PLATFORM_HOSTED_GPT_56_SOL_PRICE },
1016
- maxOutputTokens: 128e3,
1106
+ // GPT-6.1 Sol(2026-10-13 收进广场,上游 Cloudflare AI Responses):
1107
+ // 事实仅取 CF 官方模型页(developers.cloudflare.com/ai/models/openai/gpt-6.1-sol/,
1108
+ // 2026-10-13 核对):上下文 1,050,000 tokens;请求格式 Responses / Chat Completions;
1109
+ // 价格见 PLATFORM_HOSTED_GPT_6_1_SOL_PRICE;示例使用 reasoning.effort。
1110
+ // 未声明视觉能力(官方页无 vision/图像输入声明)→ hasVision: false(声明式缺省,
1111
+ // 不等同于「该模型不支持视觉」这一未经验证的能力主张——待官方页确认前不作断言);
1112
+ // 同理不声明 supportsTool(官方页无模型级 tools 能力声明);
1113
+ // 官方页未给出该模型的 max output → 不填 maxOutputTokens(沿用缺省,不猜数值)。
1114
+ name: PLATFORM_HOSTED_GPT_6_1_SOL_MODEL,
1115
+ displayName: "GPT-6.1 Sol",
1116
+ hasVision: false,
1117
+ price: { ...PLATFORM_HOSTED_GPT_6_1_SOL_PRICE },
1017
1118
  contextWindow: 105e4,
1018
- supportsTool: true,
1019
1119
  supportsReasoningEffort: true
1020
1120
  },
1121
+ // gpt-5.6-sol(2026-10-13):旧 id 是 gpt-6.1-sol 的兼容别名(PLATFORM_MODEL_ALIASES),
1122
+ // 不再作为可选商品上架;平台托管请求透明落到 6.1 的上游与 6.1 目录价。
1123
+ // 旧价目常量 PLATFORM_HOSTED_GPT_56_SOL_PRICE 保留给历史记录只读重放(不追溯)。
1021
1124
  {
1022
1125
  name: PLATFORM_HOSTED_GPT_56_TERRA_MODEL,
1023
1126
  displayName: "GPT-5.6 Terra",
@@ -1205,9 +1308,11 @@ export {
1205
1308
  isNoloHostedProvider,
1206
1309
  isFireworksKimiModel,
1207
1310
  isDeepInfraKimiModel,
1311
+ isPlatformManagedProvider,
1208
1312
  resolveFireworksKimiModel,
1209
1313
  PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL,
1210
1314
  PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL,
1315
+ resolvePlatformEffectiveModel,
1211
1316
  resolvePlatformHostedRouting,
1212
1317
  NOLO_CLIENT_VERSION_HEADER,
1213
1318
  CLIENT_VERSION_TOO_OLD_CODE,
@@ -7,7 +7,7 @@ import {
7
7
  listUserRecordsFromServers,
8
8
  readDbRecordFromServers,
9
9
  readLiveDbRecordAfterTombstoneMerge
10
- } from "./chunk-QYUBY3OZ.js";
10
+ } from "./chunk-LOPP5VT6.js";
11
11
  import {
12
12
  fetchWithTransientRetry,
13
13
  parsePositiveFiniteNumberOrFallback
@@ -7,7 +7,7 @@ import {
7
7
  deleteDialog,
8
8
  runtime_default,
9
9
  toast
10
- } from "./chunk-44CU7CKA.js";
10
+ } from "./chunk-VYKXIHRP.js";
11
11
  import {
12
12
  formatISO
13
13
  } from "./chunk-ZRAU6T47.js";
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-YDH3FDFQ.js";
17
17
  import {
18
18
  isSystemAdmin
19
- } from "./chunk-A4SQRTZ6.js";
19
+ } from "./chunk-TLYSGGPG.js";
20
20
  import {
21
21
  asRecordOrEmpty
22
22
  } from "./chunk-KX6YBIHG.js";
@@ -25,7 +25,7 @@ import {
25
25
  addContentAction,
26
26
  checkSpaceMembership,
27
27
  localSpaceAuthorityPatchStamp
28
- } from "./chunk-3F424ASC.js";
28
+ } from "./chunk-YFU5EELM.js";
29
29
  import {
30
30
  createSpaceKey,
31
31
  normalizeSpaceId
@@ -39,7 +39,7 @@ import {
39
39
  uploadFileAction,
40
40
  upsertSSREntity,
41
41
  write
42
- } from "./chunk-4WMMIL66.js";
42
+ } from "./chunk-ZYM73IHG.js";
43
43
  import {
44
44
  DEVICE_LOCAL_OWNER_ID,
45
45
  getRuntimeServerContext,
@@ -2,7 +2,7 @@ import {
2
2
  deleteDbRecord,
3
3
  queryUserRecords,
4
4
  readDbRecord
5
- } from "./chunk-AFSY3ZMB.js";
5
+ } from "./chunk-XGOHDYM2.js";
6
6
  import {
7
7
  mergeAndDedupUserData
8
8
  } from "./chunk-OXME3PEE.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SYSTEM_AGENT_CAPABILITIES,
3
3
  SYSTEM_AGENT_CAPABILITY_IDS
4
- } from "./chunk-WJ3B6FX6.js";
4
+ } from "./chunk-IXH3HKY2.js";
5
5
  import {
6
6
  buildSkillDocMarkdown
7
7
  } from "./chunk-DMXLXZKL.js";
@@ -53,9 +53,6 @@ var TOOL_PACKS = {
53
53
  // queryModelUsage / queryUserGrowthReport:server-only 工具(web/CLI executor
54
54
  // 直接返回 serverOnlyResult),不随 CORE 常驻——server 端由 agent 显式
55
55
  // tools 配置按需挂载(utilityServerTools 执行器),web 端不再挂死 schema。
56
- // setTodoList 已移至「conversation-todo」系统能力包(defaultEnabled:true)
57
- // 作为唯一 owner——single source of truth:普通 agent 默认仍有 setTodoList,
58
- // 但关闭「对话 Todo」开关即可真正摘掉它(CORE 常驻时该开关形同虚设)。
59
56
  CORE: [
60
57
  "read",
61
58
  "createDoc",
@@ -286,8 +283,7 @@ function resolveEffectiveEnabledPacks(args) {
286
283
  }
287
284
  var SYSTEM_BUILTIN_SKILL_PACK_IDS = SYSTEM_AGENT_CAPABILITY_IDS;
288
285
  var DEFAULT_MOUNT_SYSTEM_CAPABILITY_IDS = [
289
- "agent-orchestration",
290
- "conversation-todo"
286
+ "agent-orchestration"
291
287
  ];
292
288
  function getDefaultSystemCapabilityTools() {
293
289
  const ids = DEFAULT_MOUNT_SYSTEM_CAPABILITY_IDS;
@@ -296,7 +296,20 @@ var BUILTIN_CHROME_OPERATOR_AGENT_KEY = publicAgentKey(BUILTIN_CHROME_OPERATOR_A
296
296
  var BUILTIN_PLATFORM_AGENT_KEYS = builtinPlatformEntries().map(
297
297
  (e) => publicAgentKey(e.id)
298
298
  );
299
- var BUILTIN_PLATFORM_AGENT_KEY_SET = new Set(BUILTIN_PLATFORM_AGENT_KEYS);
299
+ var BUILTIN_PLATFORM_AGENT_ID_SET = new Set(
300
+ builtinPlatformEntries().map((e) => e.id)
301
+ );
302
+ if (builtinPlatformEntries().some((e) => e.id.includes("-"))) {
303
+ throw new Error("builtin platform agent ids must not contain hyphens");
304
+ }
305
+ var parseBuiltinPlatformAgentId = (key) => {
306
+ if (typeof key !== "string") return null;
307
+ if (key !== key.slice(key.lastIndexOf("-") + 1) && !key.startsWith("agent-")) {
308
+ return null;
309
+ }
310
+ const id = key.slice(key.lastIndexOf("-") + 1);
311
+ return BUILTIN_PLATFORM_AGENT_ID_SET.has(id) ? id : null;
312
+ };
300
313
  var PUBLIC_DEEPSEEK_V4_FLASH_AGENT_ID = entry("01DSV4FLASHPB00000000JFPFD").id;
301
314
  var PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY = publicAgentKey(PUBLIC_DEEPSEEK_V4_FLASH_AGENT_ID);
302
315
  var PUBLIC_DEEPSEEK_V4_PRO_AGENT_ID = entry("01DSV4PRONPB00000001VIR3EK").id;
@@ -322,7 +335,7 @@ var SYSTEM_BUILTIN_TRUSTED_AGENT_KEY_SET = new Set(
322
335
  SYSTEM_BUILTIN_TRUSTED_AGENT_KEYS
323
336
  );
324
337
  var isSystemBuiltinTrustedAgentKey = (key) => typeof key === "string" && SYSTEM_BUILTIN_TRUSTED_AGENT_KEY_SET.has(key);
325
- var isBuiltinPlatformAgentKey = (key) => typeof key === "string" && BUILTIN_PLATFORM_AGENT_KEY_SET.has(key);
338
+ var isBuiltinPlatformAgentKey = (key) => parseBuiltinPlatformAgentId(key) !== null;
326
339
 
327
340
  export {
328
341
  builtinAgentCatalogEntryById,