nolo-cli 0.93.0-alpha.1 → 0.94.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 (102) hide show
  1. package/{_executeModel-F563Y35P.js → _executeModel-ZLG4RZAE.js} +30 -30
  2. package/{action-5DATYWOM.js → action-YVYQEAAV.js} +7 -7
  3. package/{addContentAction-5OLTVWIE.js → addContentAction-O7R66HEX.js} +5 -5
  4. package/{addDialogAgentAction-BRGMORV4.js → addDialogAgentAction-74OA7KYP.js} +4 -4
  5. package/{agentDeleteCommand-YJXDOMW4.js → agentDeleteCommand-QMHKDCPD.js} +16 -16
  6. package/{agentEmailCommands-LVNRAZWD.js → agentEmailCommands-2PYPQEBT.js} +39 -37
  7. package/{agentGrantCommands-YW6PQAQ2.js → agentGrantCommands-M3XFO6EN.js} +2 -2
  8. package/{agentListCommands-3QXPNIW2.js → agentListCommands-BIRJ4DOB.js} +18 -18
  9. package/{agentMachineCommands-7FN4UTB4.js → agentMachineCommands-YOXS3L6L.js} +16 -16
  10. package/{agentPullCommand-GLOOXJ2E.js → agentPullCommand-O5MPVJ5E.js} +2 -2
  11. package/{agentRecordCommands-RTJWULKJ.js → agentRecordCommands-GF52JMBU.js} +38 -36
  12. package/{agentRunCommand-LPNG7BNB.js → agentRunCommand-K7UHEGNH.js} +39 -37
  13. package/{agentRuntimeLocal-W2SEB6WH.js → agentRuntimeLocal-5BX6PI4X.js} +12 -12
  14. package/{agentSlice-LZFA5LBN.js → agentSlice-XPHS4J7Q.js} +5 -5
  15. package/{appDeleteCommands-BAOVSCQP.js → appDeleteCommands-WAS2H7RE.js} +17 -17
  16. package/{appDeployCommands-ZERJEXGT.js → appDeployCommands-6WFRLUIT.js} +17 -17
  17. package/{appDeployStatusCommands-LAQXCIGR.js → appDeployStatusCommands-4KW67NFE.js} +17 -17
  18. package/{appGetCommands-2LEGP6ZO.js → appGetCommands-BNS25GVI.js} +17 -17
  19. package/{appListCommands-XA3FLSXC.js → appListCommands-NFXXSFG5.js} +17 -17
  20. package/{builtinSkillRegistry-PJU2R6ST.js → builtinSkillRegistry-FUAVTRVZ.js} +5 -5
  21. package/{chatQueueReduxAdapter-KFNYEK7L.js → chatQueueReduxAdapter-OZXTBZCG.js} +12 -12
  22. package/{chunk-TUEPUNFO.js → chunk-3DII57IT.js} +1 -1
  23. package/{chunk-AL57GIWB.js → chunk-3E6FW5VA.js} +14 -14
  24. package/{chunk-HBO5CSMG.js → chunk-3IIEFNGY.js} +1 -1
  25. package/{chunk-NEAX3PNR.js → chunk-3XJJYUIF.js} +5 -5
  26. package/{chunk-6R425QS6.js → chunk-AFUORTY4.js} +2 -2
  27. package/{chunk-W2G2PPK5.js → chunk-BKAPJHLN.js} +3 -3
  28. package/{chunk-3JIXYIXV.js → chunk-BNGW5ASC.js} +12 -2
  29. package/{chunk-2WHQZTB7.js → chunk-BP4XNZRM.js} +1 -1
  30. package/{chunk-MZRO6HYV.js → chunk-C7NSJ5XB.js} +5 -5
  31. package/{chunk-2L3O7RDP.js → chunk-DHDMC6FO.js} +1 -1
  32. package/{chunk-YNNVVLMV.js → chunk-H62HCIUP.js} +3 -3
  33. package/{chunk-46TSVHGZ.js → chunk-HJUYAD4A.js} +1 -1
  34. package/{chunk-PLZSKYQG.js → chunk-IAO6JBYW.js} +2 -2
  35. package/{chunk-IP2RNQU3.js → chunk-IIVGDG4I.js} +1 -1
  36. package/{chunk-HNUNYXYB.js → chunk-J4MOO56S.js} +1 -1
  37. package/{chunk-LBVREL7A.js → chunk-JAXOVNM4.js} +2 -2
  38. package/{chunk-VUHXTHIK.js → chunk-JRQFUXY7.js} +2 -2
  39. package/{chunk-MHGCDRYE.js → chunk-JU2QKT2O.js} +9 -9
  40. package/{chunk-SLBCYLRL.js → chunk-LU3KGODJ.js} +1 -1
  41. package/{chunk-GII32WZW.js → chunk-M2EJHDJP.js} +3 -0
  42. package/{chunk-T5I2N3SE.js → chunk-M6VQO222.js} +1 -1
  43. package/{chunk-XWK7DITR.js → chunk-M766KQDP.js} +29 -29
  44. package/{chunk-7CN36HIQ.js → chunk-MUMCJDGO.js} +1 -1
  45. package/{chunk-WV3VGX42.js → chunk-MWAO7TZZ.js} +7 -7
  46. package/{chunk-FJ53BJAJ.js → chunk-NP6DOV6C.js} +4 -4
  47. package/{chunk-APMXUQQ3.js → chunk-OA6Q2A4I.js} +2 -2
  48. package/{chunk-HVRJWI67.js → chunk-OF7AQZUG.js} +1 -1
  49. package/{chunk-T67757YH.js → chunk-QDSINZM3.js} +1 -1
  50. package/{chunk-LMYZNIHV.js → chunk-QF34JMBP.js} +5 -5
  51. package/{chunk-CJCST55W.js → chunk-R5QBG4V3.js} +481 -16
  52. package/{chunk-P7JENWUV.js → chunk-RMD43DKQ.js} +4 -4
  53. package/{chunk-2NNZWWFU.js → chunk-S2QALHJH.js} +3 -3
  54. package/{chunk-7U4UXFKY.js → chunk-SNTX2MZH.js} +2 -2
  55. package/{chunk-SAFZABH7.js → chunk-SV5IJK6K.js} +1 -1
  56. package/{chunk-CKUJINDU.js → chunk-T235PUMR.js} +20 -20
  57. package/{chunk-PIOIPOSY.js → chunk-TOP2VXOR.js} +2 -2
  58. package/{chunk-HHTJ4Q4S.js → chunk-TV2Z252H.js} +2 -2
  59. package/{chunk-SATOEEL6.js → chunk-UKZDAFYT.js} +1 -1
  60. package/{chunk-G3HFIFGI.js → chunk-UMLR5ZEK.js} +2 -2
  61. package/{chunk-5LRIZC2W.js → chunk-V4MJDUSR.js} +1 -1
  62. package/{chunk-QFMFJZLO.js → chunk-V7E4PXQD.js} +1 -1
  63. package/{chunk-HQCSU3DI.js → chunk-VLTIYV3X.js} +1 -1
  64. package/{chunk-RAYTIPJ5.js → chunk-WADCY6G6.js} +2 -2
  65. package/{chunk-UT5NALV3.js → chunk-WV42OMV7.js} +1 -1
  66. package/{chunk-TBBSYAJI.js → chunk-WZXS25PG.js} +1 -1
  67. package/{chunk-YDEMAQEY.js → chunk-Z77CRGTW.js} +1 -1
  68. package/{chunk-XUSF3HZN.js → chunk-ZSXKMD3Q.js} +8 -8
  69. package/{contentThunks-SWQ7OJBY.js → contentThunks-GZ7647RG.js} +13 -13
  70. package/{createAgentAutomationAction-NT4MFLPF.js → createAgentAutomationAction-KTZ4DPZR.js} +13 -13
  71. package/{createDialogAction-C3OWANIW.js → createDialogAction-ZV6F4MRS.js} +15 -15
  72. package/{createPageAction-I6PQVCKP.js → createPageAction-CTNFMCNK.js} +13 -13
  73. package/{dbSlice-NP52Y5TF.js → dbSlice-XVWBAGYN.js} +4 -4
  74. package/{dialogCommands-URIDALS5.js → dialogCommands-HVDMVPY6.js} +17 -17
  75. package/{dialogSlice-6MTAO4BE.js → dialogSlice-G3DJ2ETV.js} +12 -12
  76. package/{docCreateCommands-6M3ZY3SP.js → docCreateCommands-7W46VBRA.js} +16 -16
  77. package/{docDeleteCommands-6YKAYZBI.js → docDeleteCommands-MTZMDOZO.js} +17 -17
  78. package/{docReadCommands-SMVVD2PW.js → docReadCommands-WL4ZAFEX.js} +16 -16
  79. package/{docStore-QR3S2FUW.js → docStore-BGXVJAEV.js} +5 -5
  80. package/{docUpdateCommands-LFZEAPNZ.js → docUpdateCommands-CALOFWCR.js} +16 -16
  81. package/{handleSendMessageAction-FSPSFUTP.js → handleSendMessageAction-RWGVKMLL.js} +12 -12
  82. package/index.js +47 -47
  83. package/{machineCommands-E3D7X6C3.js → machineCommands-GAUERRDN.js} +37 -35
  84. package/{machineWsRunDispatch-6OQM66WB.js → machineWsRunDispatch-AF5UGAU2.js} +37 -35
  85. package/{memberThunks-XJFHFZ5M.js → memberThunks-QGFLFVCI.js} +5 -5
  86. package/{offlineMarxistsAgentCommand-JEWCIAWM.js → offlineMarxistsAgentCommand-HGXZV4XJ.js} +1 -1
  87. package/package.json +1 -1
  88. package/{read-KFAALANF.js → read-COE3ZYR6.js} +3 -3
  89. package/{readDocTool-XNMCT64I.js → readDocTool-5USN4A6V.js} +1 -1
  90. package/{readlineWorkspace-3OR2MOVO.js → readlineWorkspace-DBU7IZZK.js} +42 -40
  91. package/{removeDialogAgentAction-X3IS7JNU.js → removeDialogAgentAction-IX3MN2ZO.js} +7 -7
  92. package/{runAgentClientLoop-LOQPKDZM.js → runAgentClientLoop-UUKFJYDB.js} +28 -28
  93. package/{setDialogExtraReferencesAction-QTV3ZJNH.js → setDialogExtraReferencesAction-X4HCPNZL.js} +5 -5
  94. package/{setPrimaryDialogAgentAction-EUUISNQ2.js → setPrimaryDialogAgentAction-4GMIQLOD.js} +7 -7
  95. package/{settingSlice-UMATY3PD.js → settingSlice-ZQZVUPKK.js} +6 -6
  96. package/{spaceCommands-UKKLOTXO.js → spaceCommands-ORMILG33.js} +16 -16
  97. package/{streamAgentChatTurn-U3NEGRGE.js → streamAgentChatTurn-IHNKEFHL.js} +31 -31
  98. package/{switchDialogAgentAction-HWFDQNY5.js → switchDialogAgentAction-N52LRPA3.js} +4 -4
  99. package/{toolApiClient-7PSIFQPJ.js → toolApiClient-QVJ6HDNN.js} +2 -2
  100. package/{tools-6IVRFLMV.js → tools-A4CWU6QY.js} +25 -25
  101. package/{tuiSummaryLlmCaller-IKFJ55N4.js → tuiSummaryLlmCaller-T2SHYMDZ.js} +7 -7
  102. package/{updateDialogTitleAction-WEZ5OS6X.js → updateDialogTitleAction-7EWY6G74.js} +13 -13
@@ -40,27 +40,27 @@ import {
40
40
  } from "./chunk-DWUCB2A3.js";
41
41
  import {
42
42
  buildLocalAgentLookupKeys
43
- } from "./chunk-YDEMAQEY.js";
43
+ } from "./chunk-Z77CRGTW.js";
44
44
  import {
45
45
  LOCAL_CODEX_AGENT_ID,
46
46
  LOCAL_CODEX_AGENT_KEY,
47
47
  NOLO_DEFAULT_AGENT_ID,
48
48
  NOLO_DEFAULT_AGENT_KEY
49
- } from "./chunk-SAFZABH7.js";
49
+ } from "./chunk-SV5IJK6K.js";
50
50
  import {
51
51
  CliProviderQuotaError,
52
52
  executeCli
53
53
  } from "./chunk-MP64VFGD.js";
54
54
  import {
55
55
  inferCaptureIntent
56
- } from "./chunk-TUEPUNFO.js";
56
+ } from "./chunk-3DII57IT.js";
57
57
  import {
58
58
  buildCliPrompt
59
59
  } from "./chunk-ATNTHIZI.js";
60
60
  import {
61
61
  inlineImageUrlsForCustomProvider,
62
62
  prepareTools
63
- } from "./chunk-G3HFIFGI.js";
63
+ } from "./chunk-UMLR5ZEK.js";
64
64
  import {
65
65
  getServerProviderSecret
66
66
  } from "./chunk-HS7MLR74.js";
@@ -78,7 +78,7 @@ import {
78
78
  rememberMemoryFunctionSchema,
79
79
  resolveAgentRequiredPackIds,
80
80
  setTodoListFunc
81
- } from "./chunk-XWK7DITR.js";
81
+ } from "./chunk-M766KQDP.js";
82
82
  import {
83
83
  fetchWithTransientRetry,
84
84
  isTransientFetchError
@@ -95,20 +95,23 @@ import {
95
95
  resolveRunLabel,
96
96
  shortRunId
97
97
  } from "./chunk-NTW5GWDM.js";
98
+ import {
99
+ getModelPricing
100
+ } from "./chunk-EYAQT56M.js";
98
101
  import {
99
102
  applyBuiltinAgentRuntimeOverride,
100
103
  applyTokenUsageToDayStats,
101
104
  prepareTokenUsageData,
102
105
  resolveBuiltinPlatformAgentConfig,
103
106
  runKeyed
104
- } from "./chunk-CKUJINDU.js";
107
+ } from "./chunk-T235PUMR.js";
105
108
  import {
106
109
  BUILTIN_DIALOG_LLM_CHAT_FALLBACK_MODEL,
107
110
  BUILTIN_TITLE_LLM_CONFIG
108
111
  } from "./chunk-MC4XLIJ7.js";
109
112
  import {
110
113
  fetchServerSyncedCredential
111
- } from "./chunk-FJ53BJAJ.js";
114
+ } from "./chunk-NP6DOV6C.js";
112
115
  import {
113
116
  require_date_fns
114
117
  } from "./chunk-M76ECQRD.js";
@@ -124,7 +127,7 @@ import {
124
127
  applySystemBuiltinSkillFilter,
125
128
  expandEnabledPacks,
126
129
  resolveEffectiveEnabledPacks
127
- } from "./chunk-2L3O7RDP.js";
130
+ } from "./chunk-DHDMC6FO.js";
128
131
  import {
129
132
  DEFAULT_HYBRID_READ_TIMEOUT_MS,
130
133
  Duration_exports,
@@ -161,7 +164,7 @@ import {
161
164
  resolveOpenAiCompatibleProviderConfig,
162
165
  shouldUseGeminiNativeToolRoute,
163
166
  summarizeToolArguments
164
- } from "./chunk-WV3VGX42.js";
167
+ } from "./chunk-MWAO7TZZ.js";
165
168
  import {
166
169
  PlatformStreamInterruptedError,
167
170
  buildPlatformChatCompletionRequest,
@@ -173,11 +176,11 @@ import {
173
176
  readSseDataValues,
174
177
  resolvePlatformChatProviderConfig,
175
178
  shouldUsePlatformChatProvider
176
- } from "./chunk-HVRJWI67.js";
179
+ } from "./chunk-OF7AQZUG.js";
177
180
  import {
178
181
  resolveAgentRuntimeConfigFromRecord,
179
182
  resolveHistoricalToolContentCap
180
- } from "./chunk-HBO5CSMG.js";
183
+ } from "./chunk-3IIEFNGY.js";
181
184
  import {
182
185
  isDevinOAuthAgent
183
186
  } from "./chunk-5ZUL4CUO.js";
@@ -191,7 +194,7 @@ import {
191
194
  buildNoloWorkspaceOpenAiTools,
192
195
  parseNoloWorkspaceToolArguments,
193
196
  resolveRuntimeToolSurfaceForAgent
194
- } from "./chunk-IP2RNQU3.js";
197
+ } from "./chunk-IIVGDG4I.js";
195
198
  import {
196
199
  mergeAvailabilityDeadline,
197
200
  resolveAvailabilityAction,
@@ -209,18 +212,19 @@ import {
209
212
  } from "./chunk-2MBTWINN.js";
210
213
  import {
211
214
  normalizeUsage
212
- } from "./chunk-LBVREL7A.js";
215
+ } from "./chunk-JAXOVNM4.js";
213
216
  import {
214
217
  clipCompactText,
215
218
  createProviderCallTimingTracker,
216
219
  finalizeProviderCallTiming,
217
220
  observeMeaningfulProviderResponseAt,
218
221
  withProviderCallTimingFields
219
- } from "./chunk-RAYTIPJ5.js";
222
+ } from "./chunk-WADCY6G6.js";
220
223
  import {
221
224
  estimateTokenCount
222
225
  } from "./chunk-PSCNXBYA.js";
223
226
  import {
227
+ getModelConfig,
224
228
  isAdaptiveThinkingModelId
225
229
  } from "./chunk-OIVSQH2O.js";
226
230
  import {
@@ -251,6 +255,10 @@ import {
251
255
  import {
252
256
  DEFAULT_NOLO_SERVER_URL
253
257
  } from "./chunk-OLZBQWZU.js";
258
+ import {
259
+ isNoloHostedProvider,
260
+ isPlatformHostedImageModel
261
+ } from "./chunk-Q67DOFOO.js";
254
262
  import {
255
263
  createTokenKey,
256
264
  createTokenStatsKey,
@@ -261,8 +269,22 @@ import {
261
269
  asTrimmedLowercaseString
262
270
  } from "./chunk-QSJ3HFEF.js";
263
271
  import {
272
+ PUBLIC_DEEPSEEK_V4_FLASH_AGENT_ID,
273
+ PUBLIC_DEEPSEEK_V4_PRO_AGENT_ID,
274
+ PUBLIC_GLM_53_FLASH_AGENT_ID,
275
+ PUBLIC_GPT_IMAGE_2_CONTINUOUS_AGENT_ID,
276
+ PUBLIC_GPT_IMAGE_2_EDITOR_AGENT_ID,
277
+ PUBLIC_GPT_IMAGE_2_GENERATOR_AGENT_ID,
278
+ PUBLIC_NANO_BANANA_2_LITE_AGENT_ID,
279
+ builtinAgentCatalogEntryById,
280
+ isRetiredCatalogEntry,
264
281
  isSystemBuiltinTrustedAgentKey
265
- } from "./chunk-3JIXYIXV.js";
282
+ } from "./chunk-BNGW5ASC.js";
283
+ import {
284
+ parsePublicAgentId,
285
+ parseSystemAgentId,
286
+ publicAgentKey
287
+ } from "./chunk-M2EJHDJP.js";
266
288
  import {
267
289
  isRecord
268
290
  } from "./chunk-KUG52IAP.js";
@@ -10119,6 +10141,446 @@ async function syncLocalDialogEvidenceToRemote(args) {
10119
10141
  return { attempted: true };
10120
10142
  }
10121
10143
 
10144
+ // packages/core/publicAgentSeeds.ts
10145
+ var AGENT_SEED_DEFAULTS = {
10146
+ isPublic: true,
10147
+ allowFork: true,
10148
+ hasVision: false,
10149
+ tools: []
10150
+ };
10151
+ function deterministicId(prefix, seed) {
10152
+ let h = 2166136261;
10153
+ for (let i = 0; i < seed.length; i++) {
10154
+ h ^= seed.charCodeAt(i);
10155
+ h = h * 16777619 >>> 0;
10156
+ }
10157
+ const suffix = h.toString(36).toUpperCase().padStart(14, "0");
10158
+ return (prefix + suffix).slice(0, 26);
10159
+ }
10160
+ function defineAgentSeed(input) {
10161
+ const providerForLookup = isPlatformHostedImageModel(input.model) ? "nolo" : input.provider || "nolo";
10162
+ const tools = input.tools ? [...input.tools] : [...AGENT_SEED_DEFAULTS.tools];
10163
+ const isPublic = input.isPublic ?? AGENT_SEED_DEFAULTS.isPublic;
10164
+ const allowFork = input.allowFork ?? AGENT_SEED_DEFAULTS.allowFork;
10165
+ const tags = input.tags ? [...input.tags] : [];
10166
+ const isPlatformHosted = isNoloHostedProvider(input.provider);
10167
+ const isPlatformPriced = !isPlatformHostedImageModel(input.model) && (isPlatformHosted || input.apiSource === "platform" || input.isPublic === true && !input.apiSource);
10168
+ let inputPrice = isPlatformPriced ? void 0 : input.inputPrice;
10169
+ let outputPrice = isPlatformPriced ? void 0 : input.outputPrice;
10170
+ let hasVision = input.hasVision;
10171
+ const pricesProvided = input.inputPrice !== void 0 || input.outputPrice !== void 0;
10172
+ if (!isPlatformPriced && (inputPrice === void 0 || outputPrice === void 0)) {
10173
+ const pricing = getModelPricing(providerForLookup, input.model);
10174
+ if (!pricing) {
10175
+ throw new Error(`\u672A\u627E\u5230\u6A21\u578B\u4EF7\u683C\u5143\u6570\u636E: ${providerForLookup}/${input.model}`);
10176
+ }
10177
+ if (inputPrice === void 0) inputPrice = pricing.inputPrice;
10178
+ if (outputPrice === void 0) outputPrice = pricing.outputPrice;
10179
+ }
10180
+ if (hasVision === void 0) {
10181
+ if (pricesProvided) {
10182
+ hasVision = AGENT_SEED_DEFAULTS.hasVision;
10183
+ } else {
10184
+ const modelConfig = getModelConfig(providerForLookup, input.model);
10185
+ hasVision = !!modelConfig.hasVision;
10186
+ }
10187
+ }
10188
+ const userVisibleTexts = [
10189
+ ["name", input.name],
10190
+ ["introduction", input.introduction],
10191
+ [
10192
+ "greeting",
10193
+ typeof input.greeting === "string" ? input.greeting : input.greeting?.text
10194
+ ],
10195
+ ["prompt", input.prompt],
10196
+ ...(input.tags ?? []).map((tag) => ["tags", tag])
10197
+ ];
10198
+ for (const [fieldName, text] of userVisibleTexts) {
10199
+ if (!text) continue;
10200
+ const hit = text.match(/平台托管|runinfra|openrouter|ollama/i);
10201
+ if (hit) {
10202
+ throw new Error(
10203
+ `\u516C\u5F00 agent seed\u300C${input.name}\u300D\u7684\u7528\u6237\u53EF\u89C1\u5B57\u6BB5 ${fieldName} \u542B\u4E0A\u6E38\u8DEF\u7531/\u6258\u7BA1\u6E20\u9053\u8BCD\u300C${hit[0]}\u300D\uFF0C\u7981\u6B62\u5199\u5165\uFF08\u6362\u4F9B\u5E94\u5546\u4E0D\u5E94\u7275\u52A8\u7528\u6237\u6587\u6848\uFF1B\u6A21\u578B\u5382\u5546\u540D\u4E0D\u5728\u6B64\u9650\uFF09`
10204
+ );
10205
+ }
10206
+ }
10207
+ const { inputPrice: _strippedInputPrice, outputPrice: _strippedOutputPrice, ...inputRest } = input;
10208
+ const record = {
10209
+ ...inputRest,
10210
+ tools,
10211
+ isPublic,
10212
+ allowFork,
10213
+ tags,
10214
+ hasVision
10215
+ };
10216
+ if (!isPlatformPriced) {
10217
+ record.inputPrice = inputPrice;
10218
+ record.outputPrice = outputPrice;
10219
+ }
10220
+ return record;
10221
+ }
10222
+ var GPT_6_LUNA_DEF = defineAgentSeed({
10223
+ // salt 冻结为历史值 "shared-space-openai-gpt-5-6-luna":deterministicId 由
10224
+ // prefix+salt 哈希得出,改 salt 会换 ID——2026-09-23 Luna 原地换代
10225
+ // (GPT-5.6 Luna → GPT-6 Luna)必须保留稳定 ID,用户收藏/别名/Space
10226
+ // 内容键才不失效。
10227
+ id: deterministicId("01GPT56LUNPB", "shared-space-openai-gpt-5-6-luna"),
10228
+ presetKey: "gpt-6-luna",
10229
+ name: "GPT-6 Luna",
10230
+ // provider 用平台托管命名空间 "nolo"(平台 agent 统一收敛方向):平台价只注册在
10231
+ // nolo 下,agent-run 的托管路由门也只认 nolo。写上游名 "openai" 会让计费落零价
10232
+ // 虚拟模型并绕过 hosted routing(2026-09-24 review CRITICAL)。
10233
+ provider: "nolo",
10234
+ model: "gpt-6-luna",
10235
+ isPublic: true,
10236
+ platformAudit: true,
10237
+ introduction: "OpenAI GPT-6 Luna \u516C\u5F00\u52A9\u624B\uFF08\u8F7B\u91CF\u6863\uFF09\uFF0C\u9002\u5408\u9AD8\u541E\u5410\u3001\u4F4E\u6210\u672C\u3001\u901F\u5EA6\u654F\u611F\u4EFB\u52A1\u3002",
10238
+ greeting: "\u4F60\u597D\uFF0C\u6211\u662F GPT-6 Luna\u3002\u8F7B\u91CF\u6863\u4F4D\uFF0C\u9002\u5408\u5FEB\u901F\u3001\u4F4E\u6210\u672C\u4EFB\u52A1\u3002",
10239
+ prompt: "\u4F18\u5148\u5FEB\u901F\u5B8C\u6210\u4EFB\u52A1\uFF1B\u4FDD\u6301\u56DE\u7B54\u76F4\u63A5\u3001\u7ED3\u8BBA\u660E\u786E\u3002",
10240
+ tools: [],
10241
+ tags: ["openai"]
10242
+ });
10243
+ var DEEPSEEK_V4_FLASH_DEF = defineAgentSeed({
10244
+ id: PUBLIC_DEEPSEEK_V4_FLASH_AGENT_ID,
10245
+ presetKey: "deepseek-v4-flash",
10246
+ name: "DeepSeek Flash",
10247
+ provider: "nolo",
10248
+ model: "deepseek-flash",
10249
+ isPublic: true,
10250
+ introduction: "DeepSeek Flash \u516C\u5F00\u52A9\u624B\uFF0C\u9002\u5408\u9AD8\u6027\u4EF7\u6BD4\u901A\u7528\u95EE\u7B54\u3001\u4EE3\u7801\u4E0E\u957F\u4E0A\u4E0B\u6587\u4EFB\u52A1\u3002",
10251
+ greeting: "\u4F60\u597D\uFF0C\u6211\u662F DeepSeek Flash\u3002\u9002\u5408\u5FEB\u901F\u5904\u7406\u901A\u7528\u95EE\u9898\u3001\u4EE3\u7801\u548C\u957F\u4E0A\u4E0B\u6587\u4EFB\u52A1\u3002",
10252
+ prompt: "\u4F18\u5148\u5FEB\u901F\u3001\u76F4\u63A5\u3001\u7A33\u5B9A\u5730\u5B8C\u6210\u4EFB\u52A1\uFF1B\u9700\u8981\u63A8\u7406\u65F6\u4FDD\u6301\u6B65\u9AA4\u6E05\u6670\u3002",
10253
+ tools: [],
10254
+ tags: ["nolo", "deepseek"]
10255
+ });
10256
+ var DEEPSEEK_V4_PRO_DEF = defineAgentSeed({
10257
+ id: PUBLIC_DEEPSEEK_V4_PRO_AGENT_ID,
10258
+ presetKey: "deepseek-v4-pro",
10259
+ name: "DeepSeek V4 Pro",
10260
+ provider: "nolo",
10261
+ model: "deepseek-v4-pro",
10262
+ hasVision: false,
10263
+ isPublic: true,
10264
+ introduction: "DeepSeek V4 Pro \u516C\u5F00\u52A9\u624B\uFF0C\u9002\u5408\u590D\u6742\u63A8\u7406\u3001\u4EE3\u7801\u3001agentic \u5DE5\u4F5C\u6D41\u4E0E\u957F\u4E0A\u4E0B\u6587\u4EFB\u52A1\u3002",
10265
+ greeting: "\u4F60\u597D\uFF0C\u6211\u662F DeepSeek V4 Pro\u3002\u9002\u5408\u590D\u6742\u63A8\u7406\u3001\u4EE3\u7801\u5206\u6790\u548C\u957F\u4E0A\u4E0B\u6587\u4EFB\u52A1\u3002",
10266
+ prompt: "\u9762\u5BF9\u590D\u6742\u4EFB\u52A1\u4F18\u5148\u62C6\u6E05\u76EE\u6807\u3001\u8BC1\u636E\u548C\u6267\u884C\u8DEF\u5F84\uFF0C\u518D\u7ED9\u51FA\u53EF\u9760\u7ED3\u8BBA\u3002",
10267
+ tools: [],
10268
+ tags: ["nolo", "deepseek"]
10269
+ });
10270
+ var GLM_5_3_DEF = defineAgentSeed({
10271
+ id: "01GLM52DIPB00000000I3E2MY",
10272
+ presetKey: "glm-5.3",
10273
+ name: "GLM 5.3",
10274
+ provider: "nolo",
10275
+ model: "glm-5.3",
10276
+ isPublic: true,
10277
+ hasVision: true,
10278
+ introduction: "GLM 5.3 \u516C\u5F00\u52A9\u624B\uFF0C\u9002\u5408\u590D\u6742\u63A8\u7406\u3001\u957F\u4E0A\u4E0B\u6587\u3001\u4E2D\u6587\u7406\u89E3\u4E0E\u4EE3\u7801\u5206\u6790\u3002",
10279
+ greeting: "\u4F60\u597D\uFF0C\u6211\u662F GLM 5.3\u3002\u9002\u5408\u5904\u7406\u590D\u6742\u5206\u6790\u3001\u9AD8\u8D28\u91CF\u4E2D\u6587\u95EE\u7B54\u4E0E\u4EE3\u7801\u63A8\u7406\u4EFB\u52A1\u3002",
10280
+ prompt: "\u4F18\u5148\u7ED9\u51FA\u76F4\u63A5\u3001\u51C6\u786E\u3001\u53EF\u6267\u884C\u7684\u56DE\u7B54\uFF1B\u590D\u6742\u95EE\u9898\u5148\u7406\u6E05\u76EE\u6807\u548C\u7EA6\u675F\u518D\u63A8\u7406\uFF0C\u4FDD\u6301\u7ED3\u6784\u6E05\u6670\u3001\u4F9D\u636E\u660E\u786E\u3002",
10281
+ tools: [],
10282
+ tags: ["nolo", "glm"]
10283
+ });
10284
+ var GLM_5_3_FLASH_DEF = defineAgentSeed({
10285
+ id: PUBLIC_GLM_53_FLASH_AGENT_ID,
10286
+ presetKey: "glm-5-3-flash",
10287
+ name: "GLM 5.3 Flash",
10288
+ provider: "nolo",
10289
+ model: "glm-5-3-flash",
10290
+ isPublic: true,
10291
+ hasVision: true,
10292
+ introduction: "GLM 5.3 Flash \u516C\u5F00\u52A9\u624B\uFF0C\u5EC9\u4EF7\u5FEB\u6863\uFF0C\u9002\u5408\u9AD8\u9891\u8F7B\u91CF\u95EE\u7B54\u4E0E\u6279\u91CF\u4EFB\u52A1\u3002\u6CE8\u610F\uFF1A\u8BE5\u6A21\u578B\u9ED8\u8BA4\u6DF1\u5EA6\u601D\u8003\uFF0C\u601D\u8003\u8FC7\u7A0B token \u8BA1\u5165\u8F93\u51FA\u8BA1\u8D39\uFF08\u8F93\u51FA 3.2 \u79EF\u5206/\u767E\u4E07 token\uFF09\uFF0C\u5B9E\u9645\u6D88\u8017\u9AD8\u4E8E\u540C\u957F\u5EA6\u53EF\u89C1\u56DE\u590D\uFF1B\u628A agent \u7684 reasoning_effort \u8BBE\u4E3A low \u53EF\u5173\u95ED\u601D\u8003\u2014\u2014\u5355\u8F6E\u95EE\u7B54\u5B9E\u6D4B\u8F93\u51FA token \u964D\u5230\u7EA6 1/5\uFF0C\u591A\u8F6E\u5DE5\u5177\u5FAA\u73AF\u91CC\u7EA6\u964D 4 \u6210\uFF08\u5DE5\u5177\u8F6E\u672C\u8EAB\u601D\u8003\u5C31\u5C11\uFF09\uFF0C\u53EF\u89C1\u56DE\u590D\u957F\u5EA6\u4E0E\u5DE5\u5177\u8C03\u7528\u6B63\u786E\u6027\u5747\u4E0D\u53D8\uFF1Bmedium \u6863 token \u7565\u964D\u4F46\u5EF6\u8FDF\u4E0D\u6539\u5584\u3002",
10293
+ greeting: "\u4F60\u597D\uFF0C\u6211\u662F GLM 5.3 Flash\u3002\u8F7B\u91CF\u5FEB\u901F\u3001\u4EF7\u683C\u4F4E\uFF0C\u9002\u5408\u65E5\u5E38\u95EE\u7B54\u4E0E\u6279\u91CF\u8F7B\u91CF\u4EFB\u52A1\u3002",
10294
+ prompt: "\u76F4\u63A5\u3001\u7B80\u6D01\u5730\u5B8C\u6210\u4EFB\u52A1\uFF1B\u56DE\u7B54\u4FDD\u6301\u7B80\u77ED\uFF0C\u5148\u7ED9\u7ED3\u8BBA\u3002",
10295
+ // 关掉思考:该模型默认档的 reasoning token 计入输出计费,而实测 low 档
10296
+ // reasoning 输出为 0(10/10 样本),单轮问答输出 token 降到约 1/5、多轮工具
10297
+ // 循环降约 4 成,可见回复长度、工具调用正确性与循环完成度均不变。
10298
+ // medium 档只省约 29% token 且延迟不改善,故直接用 low。
10299
+ reasoning_effort: "low",
10300
+ tools: [],
10301
+ tags: ["nolo", "glm", "flash"]
10302
+ });
10303
+ var CLAUDE_FABLE_5_1_DEF = defineAgentSeed({
10304
+ id: deterministicId("01CLDFBL51PB", "shared-space-anthropic-claude-fable-5-1"),
10305
+ presetKey: "claude-fable-5-1",
10306
+ name: "Claude Fable 5.1",
10307
+ provider: "nolo",
10308
+ model: "anthropic/claude-fable-5-1",
10309
+ isPublic: true,
10310
+ hasVision: true,
10311
+ introduction: "Claude Fable 5.1 \u516C\u5F00\u52A9\u624B\uFF0C\u9002\u5408\u590D\u6742\u95EE\u7B54\u3001\u957F\u6587\u5206\u6790\u3001\u4EE3\u7801\u548C\u56FE\u7247\u7406\u89E3\u3002",
10312
+ greeting: "\u4F60\u597D\uFF0C\u6211\u662F Claude Fable 5.1\u3002\u9002\u5408\u590D\u6742\u95EE\u9898\u3001\u957F\u6587\u5206\u6790\u3001\u4EE3\u7801\u548C\u56FE\u7247\u7406\u89E3\u3002",
10313
+ prompt: "\u9762\u5BF9\u590D\u6742\u4EFB\u52A1\u5148\u5398\u6E05\u76EE\u6807\u548C\u7EA6\u675F\uFF0C\u518D\u7ED9\u51FA\u53EF\u9760\u3001\u53EF\u6267\u884C\u3001\u53EF\u590D\u6838\u7684\u7ED3\u679C\u3002",
10314
+ tools: [],
10315
+ tags: ["anthropic", "claude", "fable"]
10316
+ });
10317
+ var CLAUDE_OPUS_5_5_DEF = defineAgentSeed({
10318
+ id: deterministicId("01CLDOPU55PB", "shared-space-anthropic-claude-opus-5-5"),
10319
+ presetKey: "claude-opus-5-5",
10320
+ name: "Claude Opus 5.5",
10321
+ provider: "nolo",
10322
+ model: "anthropic/claude-opus-5-5",
10323
+ isPublic: true,
10324
+ hasVision: true,
10325
+ introduction: "Claude Opus 5.5 \u516C\u5F00\u52A9\u624B\uFF0C\u9002\u5408\u9AD8\u96BE\u63A8\u7406\u3001\u957F\u94FE\u8DEF\u5206\u6790\u548C\u56FE\u7247\u7406\u89E3\u3002",
10326
+ greeting: "\u4F60\u597D\uFF0C\u6211\u662F Claude Opus 5.5\u3002\u9002\u5408\u9AD8\u96BE\u63A8\u7406\u3001\u590D\u6742\u5206\u6790\u548C\u56FE\u7247\u7406\u89E3\u3002",
10327
+ prompt: "\u5148\u786E\u8BA4\u95EE\u9898\u76EE\u6807\u3001\u8BC1\u636E\u548C\u98CE\u9669\uFF0C\u518D\u7ED9\u51FA\u7ED3\u6784\u6E05\u695A\u3001\u7ED3\u8BBA\u660E\u786E\u7684\u56DE\u7B54\u3002",
10328
+ tools: [],
10329
+ tags: ["anthropic", "claude", "opus"]
10330
+ });
10331
+ var GROK_4_6_DEF = defineAgentSeed({
10332
+ id: deterministicId("01GROK46PLAZ", "shared-space-xai-grok-4-6"),
10333
+ presetKey: "grok-4.6",
10334
+ name: "Grok 4.6",
10335
+ provider: "xai",
10336
+ model: "grok-4.6",
10337
+ isPublic: true,
10338
+ hasVision: true,
10339
+ introduction: "xAI Grok 4.6 \u516C\u5F00\u52A9\u624B\uFF0C\u9002\u5408\u5B9E\u65F6\u4FE1\u606F\u5206\u6790\u3001\u590D\u6742\u63A8\u7406\u3001\u4EE3\u7801\u548C\u591A\u6A21\u6001\u4EFB\u52A1\u3002",
10340
+ greeting: "\u4F60\u597D\uFF0C\u6211\u662F Grok 4.6\u3002\u53EF\u4EE5\u5E2E\u4F60\u5206\u6790\u95EE\u9898\u3001\u7F16\u5199\u4EE3\u7801\u3001\u7406\u89E3\u56FE\u7247\u5E76\u5904\u7406\u590D\u6742\u4EFB\u52A1\u3002",
10341
+ prompt: "\u4F18\u5148\u7ED9\u51FA\u76F4\u63A5\u3001\u51C6\u786E\u3001\u53EF\u6267\u884C\u7684\u56DE\u7B54\uFF1B\u9762\u5BF9\u590D\u6742\u95EE\u9898\u5148\u68B3\u7406\u76EE\u6807\u548C\u7EA6\u675F\uFF0C\u518D\u8FDB\u884C\u53EF\u9760\u63A8\u7406\u3002\u5BF9\u4E0D\u786E\u5B9A\u7684\u5185\u5BB9\u660E\u786E\u8BF4\u660E\u4F9D\u636E\u4E0E\u65F6\u6548\u6027\uFF0C\u4E0D\u7F16\u9020\u3002",
10342
+ tools: [],
10343
+ tags: ["xai", "grok"]
10344
+ });
10345
+ var GEMINI_3_8_FLASH_DEF = defineAgentSeed({
10346
+ // 种子串冻结以维持确定性 ID 稳定,勿随版本改名。
10347
+ id: deterministicId("01GEM37FLPB", "shared-space-google-gemini-3-7-flash"),
10348
+ presetKey: "gemini-3.8-flash",
10349
+ name: "Gemini 3.8 Flash",
10350
+ provider: "nolo",
10351
+ model: "gemini-3.8-flash",
10352
+ isPublic: true,
10353
+ introduction: "Gemini 3.8 Flash \u516C\u5F00\u52A9\u624B\uFF0C\u9002\u5408\u5FEB\u901F\u524D\u6CBF\u95EE\u7B54\u3001\u4EE3\u7801\u3001\u591A\u6A21\u6001\u548C\u957F\u4E0A\u4E0B\u6587\u4EFB\u52A1\u3002",
10354
+ greeting: "\u4F60\u597D\uFF0C\u6211\u662F Gemini 3.8 Flash\u3002\u9002\u5408\u5FEB\u901F\u5904\u7406\u957F\u4E0A\u4E0B\u6587\u3001\u591A\u6A21\u6001\u548C\u4EE3\u7801\u4EFB\u52A1\u3002",
10355
+ prompt: "\u4F18\u5148\u76F4\u63A5\u5B8C\u6210\u4EFB\u52A1\uFF1B\u9700\u8981\u63A8\u7406\u6216\u5199\u4EE3\u7801\u65F6\u4FDD\u6301\u6B65\u9AA4\u6E05\u6670\u3001\u7ED3\u8BBA\u53EF\u9760\u3002",
10356
+ tools: [],
10357
+ tags: ["google", "gemini"]
10358
+ });
10359
+ var GPT_IMAGE_2_GENERATOR_DEF = defineAgentSeed({
10360
+ id: PUBLIC_GPT_IMAGE_2_GENERATOR_AGENT_ID,
10361
+ presetKey: "gpt-image-2-generator",
10362
+ name: "GPT Image 2 \u56FE\u7247\u751F\u6210\u5668",
10363
+ provider: "nolo",
10364
+ model: "gpt-6-luna",
10365
+ imageModel: "gpt-image-2",
10366
+ isPublic: true,
10367
+ hasImageOutput: true,
10368
+ imageWorkflow: "generate",
10369
+ imageConfig: { enabled: true },
10370
+ introduction: "\u4E13\u95E8\u8D1F\u8D23 GPT Image 2 \u65B0\u56FE\u751F\u6210\uFF1A\u6587\u672C\u751F\u6210\u65B0\u56FE\u7247\uFF0C\u4E5F\u53EF\u628A\u4E0A\u4F20\u56FE\u7247\u5F53\u4F5C\u53C2\u8003\u56FE\u6765\u751F\u6210\u65B0\u7684\u753B\u9762\u3002",
10371
+ greeting: "\u4F60\u597D\uFF0C\u6211\u662F GPT Image 2 \u56FE\u7247\u751F\u6210\u5668\u3002\u76F4\u63A5\u544A\u8BC9\u6211\u4F60\u60F3\u753B\u4EC0\u4E48\uFF1B\u5982\u679C\u4F60\u4E0A\u4F20\u53C2\u8003\u56FE\uFF0C\u6211\u4F1A\u628A\u5B83\u4EEC\u5F53\u4F5C\u7075\u611F\u53C2\u8003\u6765\u751F\u6210\u4E00\u5F20\u65B0\u7684\u56FE\u7247\u3002",
10372
+ prompt: [
10373
+ "\u5B9A\u4F4D\uFF1A",
10374
+ "- \u4F60\u7684\u4E3B\u4EFB\u52A1\u662F\u6587\u672C\u751F\u6210\u65B0\u56FE\u7247\u3002",
10375
+ "- \u5982\u679C\u7528\u6237\u4E0A\u4F20\u4E86\u53C2\u8003\u56FE\uFF0C\u5B83\u4EEC\u53EA\u7528\u4E8E\u53C2\u8003\u56FE\u5F71\u54CD\u65B0\u56FE\u6784\u56FE\u3001\u98CE\u683C\u3001\u89D2\u8272\u5173\u7CFB\u548C\u89C6\u89C9\u65B9\u5411\u3002",
10376
+ "- \u4E0D\u8981\u628A\u8FD9\u7C7B\u8BF7\u6C42\u5904\u7406\u6210\u591A\u8F6E\u8FDE\u7EED\u7F16\u8F91\u4F1A\u8BDD\uFF1B\u9ED8\u8BA4\u6309\u5355\u6B21\u8BF7\u6C42\u5B8C\u6210\u4E00\u7248\u65B0\u56FE\u3002",
10377
+ "",
10378
+ "\u5DE5\u4F5C\u65B9\u5F0F\uFF1A",
10379
+ "- \u7528\u6237\u7ED9\u51FA\u6E05\u6670\u9700\u6C42\u540E\uFF0C\u76F4\u63A5\u751F\u6210\uFF0C\u4E0D\u5148\u5199\u957F\u7BC7\u89E3\u91CA\u3002",
10380
+ "- prompt \u8981\u660E\u786E\u4E3B\u4F53\u3001\u573A\u666F\u3001\u955C\u5934\u3001\u5149\u7EBF\u3001\u6750\u8D28\u3001\u98CE\u683C\u4E0E\u7981\u6B62\u9879\u3002",
10381
+ "- \u5982\u679C\u7528\u6237\u8981\u6C42\u591A\u7248\u672C\uFF0C\u53EF\u4EE5\u4E00\u6B21\u7ED9\u5C11\u91CF\u5019\u9009\uFF1B\u9ED8\u8BA4\u5148\u7ED9 1 \u5F20\u3002",
10382
+ "- \u5982\u679C\u7528\u6237\u5176\u5B9E\u662F\u5728\u8981\u6C42\u7CBE\u786E\u6539\u56FE\u3001\u5C40\u90E8\u66FF\u6362\u3001\u591A\u56FE\u62FC\u5408\u6216 mask \u4FEE\u6539\uFF0C\u63D0\u9192\u66F4\u9002\u5408\u6539\u7528\u201CGPT Image 2 \u56FE\u7247\u7F16\u8F91\u5668\u201D\u3002",
10383
+ "",
10384
+ "\u56DE\u590D\u65B9\u5F0F\uFF1A",
10385
+ "- \u9ED8\u8BA4\u4E2D\u6587\u8F93\u51FA\uFF0C\u7B80\u77ED\u8BF4\u660E\u7ED3\u679C\uFF0C\u5E76\u7ED9 2-4 \u4E2A\u4E0B\u4E00\u6B65\u53EF\u7EE7\u7EED\u5FAE\u8C03\u7684\u65B9\u5411\u3002"
10386
+ ].join("\n"),
10387
+ tools: ["openAIGptImageGenerate"],
10388
+ tags: ["image", "openai", "gpt-image-2", "generate"]
10389
+ });
10390
+ var GPT_IMAGE_2_EDITOR_DEF = defineAgentSeed({
10391
+ id: PUBLIC_GPT_IMAGE_2_EDITOR_AGENT_ID,
10392
+ presetKey: "gpt-image-2-editor",
10393
+ name: "GPT Image 2 \u56FE\u7247\u7F16\u8F91\u5668",
10394
+ provider: "nolo",
10395
+ model: "gpt-6-luna",
10396
+ imageModel: "gpt-image-2",
10397
+ isPublic: true,
10398
+ hasImageOutput: true,
10399
+ imageWorkflow: "edit",
10400
+ imageConfig: { enabled: true },
10401
+ introduction: "\u4E13\u95E8\u8D1F\u8D23 GPT Image 2 \u5355\u6B21\u8BF7\u6C42\u6539\u56FE\uFF1A\u652F\u6301\u5355\u56FE\u7F16\u8F91\u3001\u591A\u56FE\u53C2\u8003\u5408\u6210\uFF0C\u4EE5\u53CA\u5E26 mask \u7684\u7CBE\u786E\u4FEE\u6539\u3002",
10402
+ greeting: "\u4F60\u597D\uFF0C\u6211\u662F GPT Image 2 \u56FE\u7247\u7F16\u8F91\u5668\u3002\u628A\u8981\u4FEE\u6539\u7684\u56FE\u7247\u3001\u53C2\u8003\u56FE\u6216 mask \u53D1\u7ED9\u6211\uFF0C\u6211\u4F1A\u6309\u5355\u6B21\u8BF7\u6C42\u6539\u56FE\u7684\u65B9\u5F0F\u7ED9\u4F60\u4E00\u7248\u7ED3\u679C\u3002",
10403
+ prompt: [
10404
+ "\u5B9A\u4F4D\uFF1A",
10405
+ "- \u4F60\u7684\u4E3B\u4EFB\u52A1\u662F\u5355\u6B21\u8BF7\u6C42\u6539\u56FE\uFF0C\u4E0D\u662F\u957F\u5BF9\u8BDD\u966A\u4F34\u5F0F\u521B\u4F5C\u3002",
10406
+ "- \u4F60\u652F\u6301\u5355\u56FE\u7F16\u8F91\u3001\u591A\u56FE\u53C2\u8003\u3001\u62FC\u5408\u6784\u56FE\uFF0C\u4EE5\u53CA\u53EF\u9009\u7684 mask \u5C40\u90E8\u4FEE\u6539\u3002",
10407
+ "- \u5982\u679C\u7528\u6237\u8981\u7684\u662F\u6301\u7EED\u51E0\u8F6E\u201C\u7EE7\u7EED\u6539\u3001\u518D\u6765\u4E00\u7248\u3001\u5EF6\u7EED\u4E0A\u4E00\u8F6E\u201D\u7684\u521B\u4F5C\u8FC7\u7A0B\uFF0C\u63D0\u9192\u66F4\u9002\u5408\u201CGPT Image 2 \u8FDE\u7EED\u521B\u4F5C\u52A9\u624B\u201D\u3002",
10408
+ "",
10409
+ "\u5DE5\u4F5C\u65B9\u5F0F\uFF1A",
10410
+ "- \u6536\u5230\u56FE\u7247\u540E\uFF0C\u4F18\u5148\u6309\u5355\u6B21\u8BF7\u6C42\u6539\u56FE\u5B8C\u6210\u5F53\u524D\u76EE\u6807\u3002",
10411
+ "- \u591A\u56FE\u53C2\u8003\u65F6\uFF0C\u8981\u660E\u786E\u6BCF\u5F20\u56FE\u5206\u522B\u627F\u62C5\u4E3B\u4F53\u3001\u98CE\u683C\u3001\u80CC\u666F\u6216\u6784\u56FE\u53C2\u8003\u3002",
10412
+ "- \u5982\u679C\u7528\u6237\u63D0\u4F9B\u4E86 mask\uFF0C\u5C31\u628A mask \u89C6\u4E3A\u5FC5\u987B\u9075\u5B88\u7684\u7F16\u8F91\u8303\u56F4\u3002",
10413
+ "- \u5982\u679C\u7F3A\u5C11\u5173\u952E\u539F\u56FE\u3001\u53C2\u8003\u56FE\u6216 mask\uFF0C\u5148\u7528\u4E00\u53E5\u8BDD\u6307\u51FA\u7F3A\u53E3\uFF0C\u518D\u7B49\u7528\u6237\u8865\u9F50\u3002",
10414
+ "- \u8C03\u7528 openAIGptImageEdit \u65F6\uFF0C\u4F18\u5148\u590D\u7528\u7528\u6237\u5DF2\u4E0A\u4F20\u7684\u539F\u59CB http(s) \u56FE\u7247 URL\uFF1B\u4E0D\u8981\u81EA\u5DF1\u624B\u5199 data URL \u6216\u91CD\u7F16\u7801\u7F29\u7565\u56FE\u3002",
10415
+ "- \u8C03\u7528 openAIGptImageEdit \u65F6\uFF0C\u4E0D\u8981\u4F20 transparent background\uFF1Bbackground \u4E00\u5F8B\u7528 opaque\uFF0C\u9664\u975E\u5E95\u5C42\u80FD\u529B\u4EE5\u540E\u660E\u786E\u652F\u6301\u518D\u8C03\u6574\u3002",
10416
+ "- \u5982\u679C outputFormat \u662F png\uFF08\u6216\u6CA1\u6709\u663E\u5F0F\u6539\u6210 jpeg/webp\uFF09\uFF0C\u4E0D\u8981\u4F20 outputCompression\u3002",
10417
+ "",
10418
+ "\u56DE\u590D\u65B9\u5F0F\uFF1A",
10419
+ "- \u9ED8\u8BA4\u4E2D\u6587\u8F93\u51FA\uFF0C\u7B80\u77ED\u8BF4\u660E\u8FD9\u6B21\u6539\u52A8\uFF0C\u5E76\u7ED9 2-4 \u4E2A\u53EF\u7EE7\u7EED\u7EC6\u5316\u7684\u65B9\u5411\u3002"
10420
+ ].join("\n"),
10421
+ tools: ["openAIGptImageEdit"],
10422
+ tags: ["image", "openai", "gpt-image-2", "edit"]
10423
+ });
10424
+ var GPT_IMAGE_2_CONTINUOUS_DEF = defineAgentSeed({
10425
+ id: PUBLIC_GPT_IMAGE_2_CONTINUOUS_AGENT_ID,
10426
+ presetKey: "gpt-image-2-continuous",
10427
+ name: "GPT Image 2 \u8FDE\u7EED\u521B\u4F5C\u52A9\u624B",
10428
+ provider: "nolo",
10429
+ model: "gpt-6-luna",
10430
+ imageModel: "gpt-image-2",
10431
+ isPublic: true,
10432
+ hasImageOutput: true,
10433
+ imageWorkflow: "continuous",
10434
+ imageConfig: { enabled: true },
10435
+ introduction: "\u4E13\u95E8\u8D1F\u8D23 GPT Image 2 \u591A\u8F6E\u8FDE\u7EED\u521B\u4F5C\uFF1A\u9002\u5408\u5148\u51FA\u4E00\u7248\uFF0C\u518D\u56F4\u7ED5\u4E0A\u4E00\u8F6E\u56FE\u7247\u7EE7\u7EED\u4FEE\u6539\u3001\u7EE7\u7EED\u6269\u5C55\u548C\u7EE7\u7EED\u8FED\u4EE3\u3002",
10436
+ greeting: "\u4F60\u597D\uFF0C\u6211\u662F GPT Image 2 \u8FDE\u7EED\u521B\u4F5C\u52A9\u624B\u3002\u4F60\u53EF\u4EE5\u5148\u8BA9\u6211\u51FA\u4E00\u7248\u56FE\uFF0C\u518D\u56F4\u7ED5\u4E0A\u4E00\u8F6E\u7EE7\u7EED\u4FEE\u6539\u3001\u7EE7\u7EED\u6269\u5C55\u6216\u7EE7\u7EED\u5B9A\u7A3F\u3002",
10437
+ prompt: [
10438
+ "\u5B9A\u4F4D\uFF1A",
10439
+ "- \u4F60\u7684\u4E3B\u4EFB\u52A1\u662F\u591A\u8F6E\u8FDE\u7EED\u521B\u4F5C\u3002",
10440
+ "- \u7528\u6237\u7ECF\u5E38\u4F1A\u57FA\u4E8E\u4E0A\u4E00\u8F6E\u7ED3\u679C\u7EE7\u7EED\u4FEE\u6539\u3001\u7EE7\u7EED\u7EC6\u5316\u3001\u7EE7\u7EED\u6362\u98CE\u683C\u3001\u7EE7\u7EED\u8865\u5143\u7D20\u3002",
10441
+ "- \u4F60\u8981\u628A\u5F53\u524D\u5BF9\u8BDD\u91CC\u7684\u4E0A\u4E00\u8F6E\u56FE\u7247\u89C6\u4F5C\u9ED8\u8BA4\u5EF6\u7EED\u5BF9\u8C61\uFF0C\u800C\u4E0D\u662F\u6BCF\u8F6E\u90FD\u91CD\u65B0\u5F00\u59CB\u3002",
10442
+ "",
10443
+ "\u5DE5\u4F5C\u65B9\u5F0F\uFF1A",
10444
+ "- \u5982\u679C\u5F53\u524D\u8F6E\u7528\u6237\u6CA1\u6709\u4E0A\u4F20\u65B0\u56FE\uFF0C\u4E14\u4E0A\u4E0B\u6587\u91CC\u4E5F\u6CA1\u6709\u4E0A\u4E00\u8F6E\u53EF\u7528\u56FE\u7247\uFF0C\u4F46\u7528\u6237\u662F\u5728\u8981\u6C42\u5148\u51FA\u4E00\u7248\u56FE\uFF0C\u5148\u8C03\u7528 openAIGptImageGenerate \u751F\u6210\u521D\u59CB\u7248\u672C\u3002",
10445
+ "- \u5982\u679C\u5F53\u524D\u8F6E\u7528\u6237\u4E0A\u4F20\u4E86\u65B0\u56FE\uFF0C\u4F18\u5148\u57FA\u4E8E\u65B0\u56FE\u7EE7\u7EED\u521B\u4F5C\u3002",
10446
+ "- \u5982\u679C\u7528\u6237\u6CA1\u6709\u4E0A\u4F20\u65B0\u56FE\uFF0C\u4F46\u4E0A\u4E0B\u6587\u91CC\u5DF2\u6709\u4E0A\u4E00\u8F6E\u53EF\u7528\u56FE\u7247\uFF0C\u9ED8\u8BA4\u6CBF\u7528\u4E0A\u4E00\u8F6E\u7ED3\u679C\u7EE7\u7EED\u4FEE\u6539\u3002",
10447
+ "- \u8C03\u7528 openAIGptImageEdit \u65F6\uFF0C\u4F18\u5148\u590D\u7528\u5F53\u524D\u5BF9\u8BDD\u91CC\u6700\u8FD1\u4E00\u8F6E\u53EF\u7528\u7684\u539F\u59CB http(s) \u56FE\u7247 URL\uFF1B\u4E0D\u8981\u628A\u5DF2\u6709\u56FE\u7247\u91CD\u65B0\u624B\u5199\u6210 data URL \u6216\u4F4E\u4FDD\u771F\u7F29\u7565\u56FE\u3002",
10448
+ "- \u5982\u679C\u7528\u6237\u8BF7\u6C42\u7F16\u8F91\u5374\u6CA1\u6709\u4EFB\u4F55\u53EF\u7528\u56FE\u7247\uFF0C\u5C31\u660E\u786E\u63D0\u793A\u7528\u6237\u5148\u4E0A\u4F20\u4E00\u5F20\u56FE\u7247\u518D\u7EE7\u7EED\u3002",
10449
+ "- \u9ED8\u8BA4\u5148\u7ED9\u5FEB\u901F\u3001\u53EF\u8FED\u4EE3\u7684\u4E00\u7248\uFF1B\u7528\u6237\u660E\u786E\u8BF4\u8981\u6700\u7EC8\u7248\u3001\u9AD8\u6E05\u7248\u65F6\uFF0C\u518D\u63D0\u9AD8\u8D28\u91CF\u3002",
10450
+ "- \u8C03\u7528 openAIGptImageEdit \u65F6\uFF0C\u4E0D\u8981\u4F20 transparent background\uFF1Bbackground \u4E00\u5F8B\u7528 opaque\uFF0C\u9664\u975E\u5E95\u5C42\u80FD\u529B\u4EE5\u540E\u660E\u786E\u652F\u6301\u518D\u8C03\u6574\u3002",
10451
+ "- \u5982\u679C outputFormat \u662F png\uFF08\u6216\u6CA1\u6709\u663E\u5F0F\u6539\u6210 jpeg/webp\uFF09\uFF0C\u4E0D\u8981\u4F20 outputCompression\u3002",
10452
+ "",
10453
+ "\u56DE\u590D\u65B9\u5F0F\uFF1A",
10454
+ "- \u9ED8\u8BA4\u4E2D\u6587\u8F93\u51FA\uFF0C\u4FDD\u6301\u8FDE\u7EED\u534F\u4F5C\u53E3\u543B\uFF0C\u751F\u6210\u540E\u63D0\u793A\u7528\u6237\u53EF\u4EE5\u4ECE\u54EA\u4E9B\u65B9\u5411\u7EE7\u7EED\u7EC6\u5316\u3002"
10455
+ ].join("\n"),
10456
+ tools: ["openAIGptImageGenerate", "openAIGptImageEdit"],
10457
+ tags: ["image", "openai", "gpt-image-2", "continuous"]
10458
+ });
10459
+ var NANO_BANANA_2_LITE_GENERATOR_DEF = defineAgentSeed({
10460
+ id: PUBLIC_NANO_BANANA_2_LITE_AGENT_ID,
10461
+ presetKey: "nano-banana-2-lite-generator",
10462
+ name: "Nano Banana 2 Lite \u6587\u751F\u56FE",
10463
+ provider: "nolo",
10464
+ model: "gemini-3.1-flash-lite-image",
10465
+ isPublic: true,
10466
+ hasImageOutput: true,
10467
+ imageWorkflow: "generate",
10468
+ imageConfig: { enabled: true },
10469
+ introduction: "Nano Banana 2 Lite \u516C\u5F00\u6587\u751F\u56FE\u52A9\u624B\uFF1AGoogle \u6700\u5FEB\u3001\u6700\u4FBF\u5B9C\u7684\u56FE\u7247\u6A21\u578B\uFF0C\u9002\u5408\u5FEB\u901F\u8349\u7A3F\u3001\u6279\u91CF\u751F\u56FE\u548C\u4F4E\u6210\u672C\u89C6\u89C9\u63A2\u7D22\u3002",
10470
+ greeting: "\u4F60\u597D\uFF0C\u6211\u662F Nano Banana 2 Lite \u6587\u751F\u56FE\u52A9\u624B\u3002\u544A\u8BC9\u6211\u4F60\u60F3\u753B\u4EC0\u4E48\uFF0C\u6211\u4F1A\u7528 Google \u6700\u5FEB\u7684\u56FE\u7247\u6A21\u578B\u5FEB\u901F\u751F\u6210\u3002",
10471
+ prompt: [
10472
+ "\u5B9A\u4F4D\uFF1A",
10473
+ "- \u4F60\u7684\u4E3B\u4EFB\u52A1\u662F\u5FEB\u901F\u751F\u6210\u65B0\u56FE\u7247\u3002",
10474
+ "- \u5982\u679C\u7528\u6237\u9700\u8981\u66F4\u7CBE\u81F4\u7684\u7F16\u8F91\u3001\u591A\u56FE\u5408\u6210\u6216\u590D\u6742\u4FEE\u56FE\uFF0C\u5EFA\u8BAE\u4ED6\u4EEC\u53BB\u4F7F\u7528\u201CGPT Image 2 \u56FE\u7247\u7F16\u8F91\u5668\u201D\u6216\u201C\u8BC1\u4EF6\u7167\u5236\u4F5C\u201D\u7B49\u66F4\u5408\u9002\u7684\u5DE5\u5177\u3002",
10475
+ "",
10476
+ "\u5DE5\u4F5C\u65B9\u5F0F\uFF1A",
10477
+ "- \u7528\u6237\u7ED9\u51FA\u6E05\u6670\u9700\u6C42\u540E\uFF0C\u76F4\u63A5\u7528\u5F53\u524D\u6A21\u578B\u751F\u6210\u56FE\u7247\u3002",
10478
+ "- \u5BF9\u7528\u6237\u8BF4\u660E\u65F6\uFF0C\u628A\u5F53\u524D\u56FE\u7247\u6A21\u578B\u79F0\u4E3A\u56FE\u7247\u751F\u6210\u6A21\u578B\uFF0C\u4E0D\u8981\u628A\u6A21\u578B\u8BF4\u6210\u5DE5\u5177\u3002",
10479
+ "- prompt \u8981\u660E\u786E\u4E3B\u4F53\u3001\u573A\u666F\u3001\u98CE\u683C\u3001\u5149\u7EBF\u3001\u6C1B\u56F4\u3002",
10480
+ "- \u5982\u679C\u7528\u6237\u8981\u6C42\u591A\u7248\u672C\uFF0C\u53EF\u4EE5\u4E00\u6B21\u7ED9\u5C11\u91CF\u5019\u9009\uFF1B\u9ED8\u8BA4\u5148\u7ED9 1 \u5F20\u3002",
10481
+ "- \u5982\u679C\u7528\u6237\u4E0A\u4F20\u4E86\u53C2\u8003\u56FE\uFF0C\u8BA9\u6A21\u578B\u53C2\u8003\u6784\u56FE\u6216\u98CE\u683C\u3002",
10482
+ "- \u9ED8\u8BA4\u6BD4\u4F8B 5:4\uFF0C\u9ED8\u8BA4\u5C3A\u5BF8 2K\uFF1B\u7528\u6237\u660E\u786E\u8981\u6C42\u65F6\u6309\u6307\u5B9A\u503C\u4F20\u5165\u3002",
10483
+ "",
10484
+ "\u56DE\u590D\u65B9\u5F0F\uFF1A",
10485
+ "- \u9ED8\u8BA4\u4E2D\u6587\u8F93\u51FA\uFF0C\u7B80\u77ED\u8BF4\u660E\u7ED3\u679C\uFF0C\u5E76\u7ED9 2-4 \u4E2A\u53EF\u7EE7\u7EED\u8C03\u6574\u7684\u65B9\u5411\uFF08\u98CE\u683C\u3001\u6BD4\u4F8B\u3001\u6784\u56FE\u3001\u7EC6\u8282\u7B49\uFF09\u3002"
10486
+ ].join("\n"),
10487
+ tools: [],
10488
+ tags: ["image", "google", "gemini", "nano-banana", "fast", "generate"]
10489
+ });
10490
+ var PUBLIC_AGENT_DEFS = [
10491
+ GPT_6_LUNA_DEF,
10492
+ DEEPSEEK_V4_FLASH_DEF,
10493
+ DEEPSEEK_V4_PRO_DEF,
10494
+ GLM_5_3_DEF,
10495
+ GLM_5_3_FLASH_DEF,
10496
+ CLAUDE_FABLE_5_1_DEF,
10497
+ CLAUDE_OPUS_5_5_DEF,
10498
+ GROK_4_6_DEF,
10499
+ GEMINI_3_8_FLASH_DEF,
10500
+ GPT_IMAGE_2_GENERATOR_DEF,
10501
+ GPT_IMAGE_2_EDITOR_DEF,
10502
+ GPT_IMAGE_2_CONTINUOUS_DEF,
10503
+ NANO_BANANA_2_LITE_GENERATOR_DEF
10504
+ ];
10505
+ var PLATFORM_AUDITED_AGENT_SPECS = PUBLIC_AGENT_DEFS.filter((def) => def.platformAudit).map((def) => ({
10506
+ name: def.name,
10507
+ key: publicAgentKey(def.id)
10508
+ }));
10509
+
10510
+ // packages/agent-runtime/publicAgentCatalogOverride.ts
10511
+ var SEED_BY_ID = new Map(
10512
+ PUBLIC_AGENT_DEFS.map((seed) => [seed.id, seed])
10513
+ );
10514
+ function toPlatformOwnedCatalogId(value) {
10515
+ if (typeof value !== "string") return null;
10516
+ const trimmed = value.trim();
10517
+ if (!trimmed) return null;
10518
+ const parsed = parsePublicAgentId(trimmed);
10519
+ if (parsed) return parsed;
10520
+ const systemId = parseSystemAgentId(trimmed);
10521
+ if (systemId) return systemId;
10522
+ return null;
10523
+ }
10524
+ function readPlatformOwnedKey(record) {
10525
+ const fields = record;
10526
+ for (const value of [fields.dbKey, fields.id]) {
10527
+ if (typeof value !== "string") continue;
10528
+ if (toPlatformOwnedCatalogId(value) === null) continue;
10529
+ return value;
10530
+ }
10531
+ return null;
10532
+ }
10533
+ function resolvePublicAgentCatalogOverride(agentKey) {
10534
+ const id = toPlatformOwnedCatalogId(agentKey);
10535
+ if (!id) return null;
10536
+ const entry = builtinAgentCatalogEntryById(id);
10537
+ if (!entry) return null;
10538
+ if (entry.group !== "public" || isRetiredCatalogEntry(entry)) return null;
10539
+ const seed = SEED_BY_ID.get(entry.id);
10540
+ if (!seed) return null;
10541
+ return {
10542
+ name: entry.name,
10543
+ provider: entry.provider,
10544
+ model: entry.model,
10545
+ introduction: seed.introduction,
10546
+ greeting: seed.greeting,
10547
+ prompt: seed.prompt,
10548
+ tools: [...seed.tools],
10549
+ tags: [...seed.tags]
10550
+ };
10551
+ }
10552
+ function overlayGreeting(recordGreeting, seedGreeting) {
10553
+ const seedText = typeof seedGreeting === "string" ? seedGreeting : isRecord(seedGreeting) ? seedGreeting.text : void 0;
10554
+ if (typeof seedText !== "string" || !seedText) return recordGreeting;
10555
+ if (isRecord(recordGreeting)) {
10556
+ return { ...recordGreeting, text: seedText };
10557
+ }
10558
+ if (recordGreeting === void 0 || recordGreeting === null) {
10559
+ return seedGreeting;
10560
+ }
10561
+ if (typeof recordGreeting === "string") {
10562
+ return seedText;
10563
+ }
10564
+ return recordGreeting;
10565
+ }
10566
+ function applyPublicAgentCatalogOverride(record, agentKey) {
10567
+ const override = resolvePublicAgentCatalogOverride(agentKey) ?? resolvePublicAgentCatalogOverride(readPlatformOwnedKey(record));
10568
+ if (!override) return record;
10569
+ const current = record;
10570
+ const greeting = overlayGreeting(current.greeting, override.greeting);
10571
+ return {
10572
+ ...record,
10573
+ name: override.name,
10574
+ provider: override.provider,
10575
+ model: override.model,
10576
+ introduction: override.introduction,
10577
+ prompt: override.prompt,
10578
+ tools: [...override.tools],
10579
+ tags: [...override.tags],
10580
+ ...greeting !== void 0 ? { greeting } : {}
10581
+ };
10582
+ }
10583
+
10122
10584
  // packages/cli/client/cliLocalAgentRecordReader.ts
10123
10585
  function resolveBuiltinLocalCliAgentConfig(agentRef, userId) {
10124
10586
  const normalized = agentRef.trim();
@@ -10151,7 +10613,10 @@ async function readAgentFromStore(args) {
10151
10613
  if (!record || typeof record !== "object") continue;
10152
10614
  return applyBuiltinAgentRuntimeOverride(
10153
10615
  args.agentRef,
10154
- resolveAgentRuntimeConfigFromRecord(key, record)
10616
+ resolveAgentRuntimeConfigFromRecord(
10617
+ key,
10618
+ applyPublicAgentCatalogOverride(record)
10619
+ )
10155
10620
  );
10156
10621
  }
10157
10622
  return resolveBuiltinPlatformAgentConfig(args.agentRef);
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  listUserRecordsFromServers,
3
3
  readLiveDbRecordAfterTombstoneMerge
4
- } from "./chunk-T5I2N3SE.js";
4
+ } from "./chunk-M6VQO222.js";
5
5
  import {
6
6
  agentRecordHasConfiguredCredential
7
- } from "./chunk-7U4UXFKY.js";
7
+ } from "./chunk-SNTX2MZH.js";
8
8
  import {
9
9
  deriveCredentialGroup,
10
10
  toSafeAgentSummary
11
- } from "./chunk-PLZSKYQG.js";
11
+ } from "./chunk-IAO6JBYW.js";
12
12
  import {
13
13
  PUBLIC_AGENT_KEY_PREFIX,
14
14
  isOwnedAgentKey,
@@ -16,7 +16,7 @@ import {
16
16
  ownedAgentKeyPrefix,
17
17
  parseOwnedAgentId,
18
18
  publicAgentKey
19
- } from "./chunk-GII32WZW.js";
19
+ } from "./chunk-M2EJHDJP.js";
20
20
 
21
21
  // packages/cli/agentListHelpers.ts
22
22
  function parseAgentRecordId(privateKey, explicitId) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  clearCliLocalRuntimePreparedAgentCache
3
- } from "./chunk-CJCST55W.js";
3
+ } from "./chunk-R5QBG4V3.js";
4
4
  import {
5
5
  getReadableCliDb
6
6
  } from "./chunk-LS2ZANRJ.js";
@@ -12,10 +12,10 @@ import {
12
12
  resolveAgentRecordFromHybridStore,
13
13
  sanitizeAgentRecordForCliOutput,
14
14
  writeAgentRecord
15
- } from "./chunk-7U4UXFKY.js";
15
+ } from "./chunk-SNTX2MZH.js";
16
16
  import {
17
17
  resolveCliAgentKeyInput
18
- } from "./chunk-SAFZABH7.js";
18
+ } from "./chunk-SV5IJK6K.js";
19
19
  import {
20
20
  toErrorMessage
21
21
  } from "./chunk-HNMXYYJR.js";