nolo-cli 0.8.0-alpha.21 → 0.8.0-alpha.24

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 (114) hide show
  1. package/{_executeModel-42U3VOVZ.js → _executeModel-2ZAPHFOX.js} +46 -43
  2. package/{action-TLI3V62L.js → action-QM2ONPYZ.js} +9 -9
  3. package/{addContentAction-57RSIIMR.js → addContentAction-UXY3GM53.js} +8 -8
  4. package/{addDialogAgentAction-G3VWEA6E.js → addDialogAgentAction-MUBYOG65.js} +10 -10
  5. package/{agentDeleteCommand-5DD2IM3J.js → agentDeleteCommand-5TFSII4Z.js} +28 -27
  6. package/{agentEmailCommands-6FACJBU4.js → agentEmailCommands-XMXWGUMZ.js} +62 -58
  7. package/{agentListCommands-I6KZYCIG.js → agentListCommands-OWEFQEY4.js} +119 -33
  8. package/{agentMachineCommands-VKLIGMZA.js → agentMachineCommands-DGHYBBFC.js} +27 -26
  9. package/{agentPullCommand-O2MTUAFR.js → agentPullCommand-N6UWRTVL.js} +3 -3
  10. package/{agentRecordCommands-7TZICYDT.js → agentRecordCommands-I433EE5F.js} +53 -49
  11. package/{agentRunCommand-L4OM23KV.js → agentRunCommand-UQSX3IGW.js} +57 -52
  12. package/{agentRunControl-K4VKNEHF.js → agentRunControl-S3G62M6C.js} +3 -3
  13. package/{agentRuntimeLocal-ZYEIPTY4.js → agentRuntimeLocal-73SVOC5U.js} +14 -12
  14. package/{agentSlice-BX7GXSNO.js → agentSlice-JQCS4LR3.js} +9 -9
  15. package/{authCommand-EB5JSOX5.js → authCommand-B6P2XYLN.js} +11 -11
  16. package/{authCommands-XPEHTKSM.js → authCommands-4YKA4GTU.js} +7 -7
  17. package/{chunk-AS4PVWA4.js → chunk-2CVZSC5L.js} +1 -1
  18. package/{chunk-JRKKFRAV.js → chunk-3HPUUWOR.js} +58 -8
  19. package/{chunk-5KLGBAAR.js → chunk-3KGTFX3T.js} +2 -13
  20. package/{chunk-IWX4UW2E.js → chunk-524BDL33.js} +89 -8
  21. package/chunk-6QFNUK2G.js +144 -0
  22. package/{chunk-4QEWT7KD.js → chunk-AISLHYDB.js} +367 -85
  23. package/{chunk-2FTTDCD4.js → chunk-AMJ7LA5D.js} +1 -1
  24. package/{chunk-I6XMPTMR.js → chunk-BFDWXLFF.js} +2 -2
  25. package/{chunk-RL776AGR.js → chunk-BKGNXJAM.js} +1 -1
  26. package/{chunk-RCSJFQPB.js → chunk-BQECZ3Q4.js} +361 -90
  27. package/{chunk-VVX233PH.js → chunk-BT37DVDA.js} +9 -9
  28. package/{chunk-ENOG22KJ.js → chunk-BT57QC5K.js} +18 -20
  29. package/chunk-BYXBJQAS.js +0 -0
  30. package/{chunk-O2ZNTTET.js → chunk-C4DZRHFJ.js} +24 -15
  31. package/{chunk-4XENYTF5.js → chunk-DS3VC4EA.js} +3 -3
  32. package/{chunk-N54XAP77.js → chunk-FVVST32H.js} +1 -1
  33. package/{chunk-P3PKED2I.js → chunk-FZ2G3I4B.js} +11 -13
  34. package/{chunk-AGFH73SK.js → chunk-G7KM6BBZ.js} +1 -1
  35. package/{chunk-2ECQG4YX.js → chunk-GROGNZOA.js} +264 -161
  36. package/chunk-IOQIOZNI.js +42 -0
  37. package/{chunk-AL2KDGR2.js → chunk-IPA2WQGY.js} +201 -98
  38. package/{chunk-7DAJ4AI4.js → chunk-IYMGQ3TN.js} +9 -2
  39. package/{chunk-CKOJQDKR.js → chunk-JEMATI63.js} +1 -1
  40. package/{chunk-7U44LYTR.js → chunk-JTINRTBT.js} +1 -1
  41. package/{chunk-4O3CARJ4.js → chunk-KTHLAJEY.js} +1 -1
  42. package/{chunk-URUUZLPA.js → chunk-L3KWEH3V.js} +8 -8
  43. package/{chunk-XBUBEFNX.js → chunk-L76QNLGU.js} +1 -1
  44. package/{chunk-UB6SN4NJ.js → chunk-LE6JAIXE.js} +6 -6
  45. package/{chunk-2JCXITPK.js → chunk-LRKEOCWY.js} +15 -15
  46. package/{chunk-5EFXE3O7.js → chunk-LTH6AVG7.js} +3 -3
  47. package/{chunk-YPRZSPF3.js → chunk-OCDEWRE2.js} +1 -1
  48. package/{chunk-6KHNO3SK.js → chunk-P2SPC3FT.js} +27 -23
  49. package/{chunk-4IJYA27C.js → chunk-PXZAAB4L.js} +4 -4
  50. package/{chunk-VUW5FBDB.js → chunk-Q7S2ORXX.js} +9 -9
  51. package/{chunk-C3RUNRHT.js → chunk-QWM7YWVT.js} +1 -1
  52. package/{chunk-25LCXTML.js → chunk-RQPZX6KP.js} +2 -2
  53. package/chunk-S3UTETIC.js +4885 -0
  54. package/{chunk-SDJDLO5W.js → chunk-SBVUZC2E.js} +5 -5
  55. package/{chunk-VX3SXJ3N.js → chunk-UBSKX3LP.js} +6 -6
  56. package/{chunk-4ZDM73SD.js → chunk-V2J635L5.js} +1 -1
  57. package/{chunk-DSZUWUYB.js → chunk-VBKJTOAW.js} +1 -1
  58. package/{chunk-FVYY6MCS.js → chunk-VUEXKW6U.js} +17 -17
  59. package/{chunk-7KCUSYT2.js → chunk-WKQGZJVI.js} +7 -7
  60. package/{chunk-GU3PEVGZ.js → chunk-WM7P5OWZ.js} +2639 -1579
  61. package/{chunk-7GNGZRLZ.js → chunk-WTBWWBSF.js} +150 -78
  62. package/{chunk-FSO5B7GH.js → chunk-WVS3GX3B.js} +2 -2
  63. package/chunk-Z3NEXVYE.js +33 -0
  64. package/{createAgentAutomationAction-RJF3N2QY.js → createAgentAutomationAction-GXZNLJZK.js} +26 -24
  65. package/{createDialogAction-DRSPS6CE.js → createDialogAction-KLW42ZGF.js} +26 -24
  66. package/{createPageAction-6B2WMNO3.js → createPageAction-IBJHE6MH.js} +26 -24
  67. package/{dbSlice-Q3TM2FJV.js → dbSlice-R5EJKZBW.js} +7 -7
  68. package/{deleteFile-OW53A6BX.js → deleteFile-WPWVZE4B.js} +5 -5
  69. package/{dialogCommands-4IX4XIZE.js → dialogCommands-7O5PUZRU.js} +23 -22
  70. package/{dialogSlice-3M7KX2TX.js → dialogSlice-GGV7PF53.js} +25 -23
  71. package/{docCreateCommands-SIL3NPGT.js → docCreateCommands-7ZO2NQQF.js} +22 -21
  72. package/{docDeleteCommands-7IOMLUS4.js → docDeleteCommands-YKIXZYBR.js} +23 -22
  73. package/{docReadCommands-FNFXUA5L.js → docReadCommands-5UDONBUL.js} +22 -21
  74. package/{docStore-SV7E34D4.js → docStore-VDWTATFH.js} +25 -23
  75. package/{docUpdateCommands-X2HNDVUC.js → docUpdateCommands-EPZIIQMY.js} +22 -21
  76. package/fetchMessages-KTNM7QAR.js +1 -1
  77. package/{getPricing-3E6UNPKL.js → getPricing-6TOZXPAU.js} +7 -3
  78. package/{handleSendMessageAction-JYETO5RZ.js → handleSendMessageAction-MMATC5V5.js} +30 -28
  79. package/index.js +74 -74
  80. package/{localDialogRead-2VRI24F4.js → localDialogRead-YSKFFRTT.js} +1 -1
  81. package/{machineCommands-RIO3RP5Q.js → machineCommands-PTHPKSIZ.js} +59 -55
  82. package/{machineWsRunDispatch-W7UYLGB5.js → machineWsRunDispatch-M5L2NVWJ.js} +51 -47
  83. package/{memoryCommands-O4MIPIWQ.js → memoryCommands-HG4WKTU7.js} +2 -2
  84. package/{models-4OPOOLFS.js → models-H524GH3U.js} +3 -2
  85. package/package.json +1 -1
  86. package/{read-GW7ZEI23.js → read-5ZMY7FKP.js} +5 -5
  87. package/{readDocTool-HUFU6OCT.js → readDocTool-2NXDK32S.js} +1 -1
  88. package/{readlineWorkspace-27JR7WPW.js → readlineWorkspace-4NXMEOHP.js} +835 -622
  89. package/{removeDialogAgentAction-CXKR4NJI.js → removeDialogAgentAction-KOLQ2R5W.js} +13 -12
  90. package/{runAgentClientLoop-HZFAPJHS.js → runAgentClientLoop-FGUYNGSA.js} +45 -42
  91. package/{runtimeDoctorCommands-LRHLPDRC.js → runtimeDoctorCommands-UWR5UDSM.js} +5 -5
  92. package/{setDialogExtraReferencesAction-6RKUSXHX.js → setDialogExtraReferencesAction-OMTEO7X6.js} +10 -10
  93. package/{setPrimaryDialogAgentAction-T3UTBEFG.js → setPrimaryDialogAgentAction-DOCIS6V4.js} +13 -12
  94. package/{settingSlice-IVKXJXMG.js → settingSlice-UWZJYDOA.js} +8 -8
  95. package/{spaceCommands-E7VOF4LO.js → spaceCommands-S3EB6TOS.js} +29 -28
  96. package/{spaceSlice-TSVROA5U.js → spaceSlice-RG2GSV7K.js} +24 -22
  97. package/{streamAgentChatTurn-3C5RQZJF.js → streamAgentChatTurn-X576C23M.js} +209 -86
  98. package/{tableCommands-O7O2LBEG.js → tableCommands-M3DJUETS.js} +10 -10
  99. package/{toolApiClient-QI3YBNWB.js → toolApiClient-C7P7YSE4.js} +2 -2
  100. package/{tools-EQDEKR6N.js → tools-HURZ2N4O.js} +33 -30
  101. package/{tuiSummaryLlmCaller-RV3THLZF.js → tuiSummaryLlmCaller-DG2LBTBX.js} +8 -6
  102. package/{updateCommands-VOSPKXFF.js → updateCommands-TC5SX42Y.js} +3 -3
  103. package/{updateDialogTitleAction-3XV7VWSZ.js → updateDialogTitleAction-62LVIAUZ.js} +28 -26
  104. package/chunk-BBYVOSU2.js +0 -792
  105. package/chunk-DCOA4QSN.js +0 -105
  106. package/{chunk-DZ3XJVET.js → chunk-3QAF2LTL.js} +3 -3
  107. package/{chunk-EHLHSX7R.js → chunk-5MMZUWSG.js} +3 -3
  108. package/{chunk-ISNCLGUZ.js → chunk-AVMJVOQY.js} +3 -3
  109. package/{chunk-UTLZINAP.js → chunk-DVRHHFEA.js} +10 -10
  110. package/{chunk-4CQLVGRV.js → chunk-ID4G2MAR.js} +3 -3
  111. package/{chunk-5MIDPSSK.js → chunk-JK7VW2FN.js} +3 -3
  112. package/{chunk-TILFE6LV.js → chunk-YOCHZD7D.js} +3 -3
  113. package/{db-HCJ5PRB5.js → db-6QED3ZVO.js} +3 -3
  114. package/{understanding-3CUQQ6SV.js → understanding-ZOESBLF3.js} +3 -3
@@ -0,0 +1,42 @@
1
+ import {
2
+ getModelAbility
3
+ } from "./chunk-Z3NEXVYE.js";
4
+ import {
5
+ cloudflareModels,
6
+ deepSeekModels,
7
+ deepinfraModels,
8
+ fireworksModels,
9
+ gmiModels,
10
+ googleModels,
11
+ openAIModels,
12
+ openrouterModels,
13
+ platformHostedModels,
14
+ xaiModels,
15
+ zaiModels
16
+ } from "./chunk-524BDL33.js";
17
+
18
+ // packages/ai/llm/ollamaCloud.ts
19
+ var ollamaCloudModels = platformHostedModels;
20
+
21
+ // packages/ai/llm/models.ts
22
+ var withProvider = (provider) => (models) => models.map((model) => ({ ...model, provider }));
23
+ var ALL_MODELS = [
24
+ ...withProvider("nolo")(ollamaCloudModels),
25
+ ...withProvider("google")(googleModels),
26
+ ...withProvider("openai")(openAIModels),
27
+ ...withProvider("openrouter")(openrouterModels),
28
+ ...withProvider("xai")(xaiModels),
29
+ ...withProvider("deepseek")(deepSeekModels),
30
+ ...withProvider("deepinfra")(deepinfraModels),
31
+ ...withProvider("fireworks")(fireworksModels),
32
+ ...withProvider("cloudflare")(cloudflareModels),
33
+ ...withProvider("gmi")(gmiModels),
34
+ ...withProvider("zai")(zaiModels)
35
+ ].map((model) => {
36
+ const ability = getModelAbility(model.name);
37
+ return ability ? { ...model, ability } : model;
38
+ });
39
+
40
+ export {
41
+ ALL_MODELS
42
+ };
@@ -3,6 +3,10 @@ import {
3
3
  normalizeNonNegativeMs,
4
4
  parseRetryAfterHeaderMs
5
5
  } from "./chunk-GAKEBQD6.js";
6
+ import {
7
+ sortSafeAgentSummaries,
8
+ toSafeAgentSummary
9
+ } from "./chunk-6QFNUK2G.js";
6
10
  import {
7
11
  getUserDataItemTimestamp,
8
12
  mergeAndDedupUserData
@@ -13,7 +17,7 @@ import {
13
17
  readPageFunc,
14
18
  readPageFunctionSchema,
15
19
  slateToSimplifiedMarkdown
16
- } from "./chunk-AS4PVWA4.js";
20
+ } from "./chunk-2CVZSC5L.js";
17
21
  import {
18
22
  markdownToSlate
19
23
  } from "./chunk-3LY4F7SV.js";
@@ -28,10 +32,10 @@ import {
28
32
  } from "./chunk-VF4K2QE6.js";
29
33
  import {
30
34
  createDocState
31
- } from "./chunk-UB6SN4NJ.js";
35
+ } from "./chunk-LE6JAIXE.js";
32
36
  import {
33
37
  createDialogAction
34
- } from "./chunk-ENOG22KJ.js";
38
+ } from "./chunk-BT57QC5K.js";
35
39
  import {
36
40
  buildSkillDocMarkdown,
37
41
  normalizeSkillBudgetTier,
@@ -41,9 +45,6 @@ import {
41
45
  parseSkillDocProtocol,
42
46
  resolvePageSkillMetadata
43
47
  } from "./chunk-VC6OZXO5.js";
44
- import {
45
- shareResourceAction
46
- } from "./chunk-25LCXTML.js";
47
48
  import {
48
49
  addCategory,
49
50
  addContentToSpace,
@@ -74,20 +75,38 @@ import {
74
75
  updateContentCategory,
75
76
  updateContentTitle,
76
77
  updateStep
77
- } from "./chunk-2ECQG4YX.js";
78
+ } from "./chunk-GROGNZOA.js";
78
79
  import {
79
80
  createAgent,
80
81
  runLlm,
81
82
  streamAgentChatTurn,
82
83
  updateAgent
83
- } from "./chunk-VUW5FBDB.js";
84
+ } from "./chunk-Q7S2ORXX.js";
85
+ import {
86
+ shareResourceAction
87
+ } from "./chunk-RQPZX6KP.js";
88
+ import {
89
+ AGENT_UPDATE_FIELD_NAMES,
90
+ normalizeAgentUpdateFieldList,
91
+ selectAutoApproveSelfUpdateFields,
92
+ selectCurrentServer,
93
+ selectSyncServers
94
+ } from "./chunk-UBSKX3LP.js";
84
95
  import {
85
96
  addContentAction
86
- } from "./chunk-I6XMPTMR.js";
97
+ } from "./chunk-BFDWXLFF.js";
87
98
  import {
88
99
  createSpaceKey,
89
100
  normalizeSpaceId
90
101
  } from "./chunk-UAD2WT54.js";
102
+ import {
103
+ patch,
104
+ read,
105
+ readAndWait,
106
+ readAndWaitAction,
107
+ toTimestampMs,
108
+ write
109
+ } from "./chunk-L3KWEH3V.js";
91
110
  import {
92
111
  NOLO_WORKSPACE_TOOL_NAMES,
93
112
  buildNoloSubjectRefQueryTarget,
@@ -103,48 +122,10 @@ import {
103
122
  redactAgentRecordForWorkspaceTool,
104
123
  resolveNoloDialogInput,
105
124
  verifyNoloDialogSubjectRefQuery
106
- } from "./chunk-P3PKED2I.js";
125
+ } from "./chunk-FZ2G3I4B.js";
107
126
  import {
108
127
  DEFAULT_MODEL
109
- } from "./chunk-BBYVOSU2.js";
110
- import {
111
- ToolApiError,
112
- buildToolRequestHeaders,
113
- callToolApi,
114
- getRequestConfig,
115
- getToolBaseUrl,
116
- getToolRequestContext
117
- } from "./chunk-5MIDPSSK.js";
118
- import {
119
- extractCustomId
120
- } from "./chunk-DFFIZ25G.js";
121
- import {
122
- getActiveDialogKey,
123
- require_react,
124
- selectCurrentDialogKey,
125
- selectPendingRawDataByPageKey
126
- } from "./chunk-3ASDTTEI.js";
127
- import {
128
- compactWhitespace
129
- } from "./chunk-DWLEOOGR.js";
130
- import {
131
- toErrorMessage
132
- } from "./chunk-HNMXYYJR.js";
133
- import {
134
- AGENT_UPDATE_FIELD_NAMES,
135
- normalizeAgentUpdateFieldList,
136
- selectAutoApproveSelfUpdateFields,
137
- selectCurrentServer,
138
- selectSyncServers
139
- } from "./chunk-VX3SXJ3N.js";
140
- import {
141
- patch,
142
- read,
143
- readAndWait,
144
- readAndWaitAction,
145
- toTimestampMs,
146
- write
147
- } from "./chunk-URUUZLPA.js";
128
+ } from "./chunk-S3UTETIC.js";
148
129
  import {
149
130
  asRecordOrEmpty
150
131
  } from "./chunk-KX6YBIHG.js";
@@ -167,12 +148,35 @@ import {
167
148
  import {
168
149
  asOptionalFiniteNumber
169
150
  } from "./chunk-WWC7I6TA.js";
151
+ import {
152
+ ToolApiError,
153
+ buildToolRequestHeaders,
154
+ callToolApi,
155
+ getRequestConfig,
156
+ getToolBaseUrl,
157
+ getToolRequestContext
158
+ } from "./chunk-JK7VW2FN.js";
159
+ import {
160
+ extractCustomId
161
+ } from "./chunk-DFFIZ25G.js";
162
+ import {
163
+ getActiveDialogKey,
164
+ require_react,
165
+ selectCurrentDialogKey,
166
+ selectPendingRawDataByPageKey
167
+ } from "./chunk-3ASDTTEI.js";
170
168
  import {
171
169
  asTrimmedLowercaseString
172
170
  } from "./chunk-QSJ3HFEF.js";
171
+ import {
172
+ compactWhitespace
173
+ } from "./chunk-DWLEOOGR.js";
174
+ import {
175
+ toErrorMessage
176
+ } from "./chunk-HNMXYYJR.js";
173
177
  import {
174
178
  readAction
175
- } from "./chunk-DSZUWUYB.js";
179
+ } from "./chunk-VBKJTOAW.js";
176
180
  import {
177
181
  createAsyncThunk,
178
182
  getRuntimeServerContext,
@@ -180,28 +184,28 @@ import {
180
184
  selectIdentityToken,
181
185
  selectIdentityUserId,
182
186
  selectRuntimeSnapshot
183
- } from "./chunk-UTLZINAP.js";
187
+ } from "./chunk-DVRHHFEA.js";
184
188
  import {
185
189
  isAbortError
186
190
  } from "./chunk-OOSFSFMA.js";
187
191
  import {
188
- DEFAULT_LOCAL_API_ORIGIN
189
- } from "./chunk-4SN6J65J.js";
192
+ asTrimmedString
193
+ } from "./chunk-3EUW3WEO.js";
194
+ import {
195
+ isRecord
196
+ } from "./chunk-KUG52IAP.js";
190
197
  import {
191
198
  API_ENDPOINTS
192
199
  } from "./chunk-LCBAMY2M.js";
193
200
  import {
194
- asTrimmedString
195
- } from "./chunk-3EUW3WEO.js";
201
+ DEFAULT_LOCAL_API_ORIGIN
202
+ } from "./chunk-4SN6J65J.js";
196
203
  import {
197
204
  normalizeServerOrigin
198
205
  } from "./chunk-CF7PE763.js";
199
206
  import {
200
207
  asOptionalTrimmedString
201
208
  } from "./chunk-G3SUCT4W.js";
202
- import {
203
- isRecord
204
- } from "./chunk-KUG52IAP.js";
205
209
  import {
206
210
  __toESM
207
211
  } from "./chunk-4VNS5WPM.js";
@@ -746,7 +750,19 @@ var ai_locale_default = {
746
750
  chat: "Start Chat",
747
751
  public: "Public",
748
752
  byConversation: "Create AI by Conversation",
749
- manualConfiguration: "Manual Configuration"
753
+ manualConfiguration: "Manual Configuration",
754
+ quickCreate: {
755
+ reasoningEffort: "Reasoning Effort",
756
+ reasoningEffortOptions: {
757
+ none: "None",
758
+ minimal: "Minimal",
759
+ low: "Low",
760
+ medium: "Medium",
761
+ high: "High",
762
+ xhigh: "X-High",
763
+ max: "Max"
764
+ }
765
+ }
750
766
  },
751
767
  // RN / local-first create sheet (useTranslation("ai") → localCreate.*)
752
768
  localCreate: {
@@ -851,7 +867,7 @@ var ai_locale_default = {
851
867
  frequencyPenalty: "Reduces word repetition, from -2 to 2. Higher discourages repetition.",
852
868
  presencePenalty: "Reduces topic repetition, from -2 to 2. Higher encourages new topics.",
853
869
  maxTokens: "Limits response length, minimum 1.",
854
- reasoningEffort: "How hard the model thinks before answering (low / medium / high). Only applies to models that support reasoning effort."
870
+ reasoningEffort: "How hard the model thinks before answering. Supported values: none / minimal / low / medium / high / xhigh / max (varies by model/provider). Only applies to models that support reasoning effort."
855
871
  },
856
872
  // Validation Messages
857
873
  validation: {
@@ -869,7 +885,7 @@ var ai_locale_default = {
869
885
  maxTokensMin: "Max Tokens must be at least 1",
870
886
  maxTokensMax: "Max Tokens must be at most 500,000",
871
887
  maxTokensRange: "Max Tokens must be between {{min}} and {{max}}",
872
- reasoningEffortInvalid: "Reasoning effort must be low, medium, or high",
888
+ reasoningEffortInvalid: "Reasoning effort must be none, minimal, low, medium, high, xhigh, or max",
873
889
  thinkingBudgetMin: "Thinking budget must be at least 1024 tokens",
874
890
  thinkingBudgetMax: "Thinking budget must be at most 100,000 tokens",
875
891
  apiKeyRequired: "API Key is required when not using Server Proxy, Ollama or Custom provider",
@@ -1123,7 +1139,19 @@ var ai_locale_default = {
1123
1139
  chat: "\u5F00\u59CB\u804A\u5929",
1124
1140
  public: "\u516C\u5F00",
1125
1141
  byConversation: "\u7528\u5BF9\u8BDD\u521B\u5EFA AI",
1126
- manualConfiguration: "\u624B\u52A8\u914D\u7F6E AI"
1142
+ manualConfiguration: "\u624B\u52A8\u914D\u7F6E AI",
1143
+ quickCreate: {
1144
+ reasoningEffort: "\u63A8\u7406\u5F3A\u5EA6",
1145
+ reasoningEffortOptions: {
1146
+ none: "\u5173\u95ED",
1147
+ minimal: "\u6781\u7B80",
1148
+ low: "\u4F4E",
1149
+ medium: "\u4E2D",
1150
+ high: "\u9AD8",
1151
+ xhigh: "\u8D85\u9AD8",
1152
+ max: "\u6700\u5927"
1153
+ }
1154
+ }
1127
1155
  },
1128
1156
  // RN / local-first create sheet (useTranslation("ai") → localCreate.*)
1129
1157
  localCreate: {
@@ -1227,7 +1255,7 @@ var ai_locale_default = {
1227
1255
  frequencyPenalty: "\u964D\u4F4E\u8BCD\u6C47\u91CD\u590D\u5EA6\uFF0C\u8303\u56F4-2\u52302\u3002\u8D8A\u9AD8\u8D8A\u80FD\u907F\u514D\u91CD\u590D\u7528\u8BCD\u3002",
1228
1256
  presencePenalty: "\u964D\u4F4E\u4E3B\u9898\u91CD\u590D\u5EA6\uFF0C\u8303\u56F4-2\u52302\u3002\u8D8A\u9AD8\u8D8A\u9F13\u52B1\u8C08\u8BBA\u65B0\u4E3B\u9898\u3002",
1229
1257
  maxTokens: "\u9650\u5236\u5355\u6B21\u56DE\u590D\u7684\u957F\u5EA6\uFF0C\u6700\u5C0F\u4E3A1\u3002",
1230
- reasoningEffort: "\u63A7\u5236\u6A21\u578B\u56DE\u7B54\u524D\u7684\u63A8\u7406\u5F3A\u5EA6\uFF08low / medium / high\uFF09\u3002\u4EC5\u5BF9\u652F\u6301\u63A8\u7406\u5F3A\u5EA6\u7684\u6A21\u578B\u751F\u6548\u3002"
1258
+ reasoningEffort: "\u63A7\u5236\u6A21\u578B\u56DE\u7B54\u524D\u7684\u63A8\u7406\u5F3A\u5EA6\u3002\u652F\u6301\u7684\u503C\uFF1Anone / minimal / low / medium / high / xhigh / max\uFF08\u56E0\u6A21\u578B/\u670D\u52A1\u5546\u800C\u5F02\uFF09\u3002\u4EC5\u5BF9\u652F\u6301\u63A8\u7406\u5F3A\u5EA6\u7684\u6A21\u578B\u751F\u6548\u3002"
1231
1259
  },
1232
1260
  // 验证信息
1233
1261
  validation: {
@@ -1245,7 +1273,7 @@ var ai_locale_default = {
1245
1273
  maxTokensMin: "\u6700\u5927Token\u6570\u5FC5\u987B\u81F3\u5C11\u4E3A1",
1246
1274
  maxTokensMax: "\u6700\u5927Token\u6570\u4E0D\u80FD\u8D85\u8FC7500,000",
1247
1275
  maxTokensRange: "\u6700\u5927Token\u6570\u5FC5\u987B\u5728 {{min}} \u548C {{max}} \u4E4B\u95F4",
1248
- reasoningEffortInvalid: "\u63A8\u7406\u5F3A\u5EA6\u5FC5\u987B\u662F low, medium, \u6216 high",
1276
+ reasoningEffortInvalid: "\u63A8\u7406\u5F3A\u5EA6\u5FC5\u987B\u662F none, minimal, low, medium, high, xhigh, \u6216 max",
1249
1277
  thinkingBudgetMin: "\u601D\u8003\u9884\u7B97\u81F3\u5C11\u9700\u8981 1024 \u4E2A Token",
1250
1278
  thinkingBudgetMax: "\u601D\u8003\u9884\u7B97\u4E0D\u80FD\u8D85\u8FC7 100,000 \u4E2A Token",
1251
1279
  apiKeyRequired: "\u672A\u4F7F\u7528\u4EE3\u7406\u6A21\u5F0F\u3001Ollama\u6216\u81EA\u5B9A\u4E49\u670D\u52A1\u5546\u65F6\uFF0CAPI\u5BC6\u94A5\u4E3A\u5FC5\u586B\u9879",
@@ -1500,7 +1528,19 @@ var ai_locale_default = {
1500
1528
  chat: "\u958B\u59CB\u804A\u5929",
1501
1529
  public: "\u516C\u958B",
1502
1530
  byConversation: "\u7528\u5C0D\u8A71\u5EFA\u7ACB AI",
1503
- manualConfiguration: "\u624B\u52D5\u8A2D\u5B9A AI"
1531
+ manualConfiguration: "\u624B\u52D5\u8A2D\u5B9A AI",
1532
+ quickCreate: {
1533
+ reasoningEffort: "\u63A8\u7406\u5F37\u5EA6",
1534
+ reasoningEffortOptions: {
1535
+ none: "\u95DC\u9589",
1536
+ minimal: "\u6975\u7C21",
1537
+ low: "\u4F4E",
1538
+ medium: "\u4E2D",
1539
+ high: "\u9AD8",
1540
+ xhigh: "\u8D85\u9AD8",
1541
+ max: "\u6700\u5927"
1542
+ }
1543
+ }
1504
1544
  },
1505
1545
  // RN / local-first create sheet (useTranslation("ai") → localCreate.*)
1506
1546
  localCreate: {
@@ -1604,7 +1644,7 @@ var ai_locale_default = {
1604
1644
  frequencyPenalty: "\u964D\u4F4E\u8A5E\u5F59\u91CD\u8907\u5EA6\uFF0C\u7BC4\u570D-2\u52302\u3002\u8D8A\u9AD8\u8D8A\u80FD\u907F\u514D\u91CD\u8907\u7528\u8A5E\u3002",
1605
1645
  presencePenalty: "\u964D\u4F4E\u4E3B\u984C\u91CD\u8907\u5EA6\uFF0C\u7BC4\u570D-2\u52302\u3002\u8D8A\u9AD8\u8D8A\u9F13\u52F5\u8AC7\u8AD6\u65B0\u4E3B\u984C\u3002",
1606
1646
  maxTokens: "\u9650\u5236\u55AE\u6B21\u56DE\u8986\u7684\u9577\u5EA6\uFF0C\u6700\u5C0F\u70BA1\u3002",
1607
- reasoningEffort: "\u63A7\u5236\u6A21\u578B\u56DE\u7B54\u524D\u7684\u63A8\u7406\u5F37\u5EA6\uFF08low / medium / high\uFF09\u3002\u50C5\u5C0D\u652F\u63F4\u63A8\u7406\u5F37\u5EA6\u7684\u6A21\u578B\u751F\u6548\u3002"
1647
+ reasoningEffort: "\u63A7\u5236\u6A21\u578B\u56DE\u7B54\u524D\u7684\u63A8\u7406\u5F37\u5EA6\u3002\u652F\u63F4\u7684\u503C\uFF1Anone / minimal / low / medium / high / xhigh / max\uFF08\u56E0\u6A21\u578B/\u670D\u52D9\u5546\u800C\u7570\uFF09\u3002\u50C5\u5C0D\u652F\u63F4\u63A8\u7406\u5F37\u5EA6\u7684\u6A21\u578B\u751F\u6548\u3002"
1608
1648
  },
1609
1649
  // 驗證資訊
1610
1650
  validation: {
@@ -1622,7 +1662,7 @@ var ai_locale_default = {
1622
1662
  maxTokensMin: "\u6700\u5927Token\u6578\u5FC5\u9808\u81F3\u5C11\u70BA1",
1623
1663
  maxTokensMax: "\u6700\u5927Token\u6578\u4E0D\u5F97\u8D85\u904E500,000",
1624
1664
  maxTokensRange: "\u6700\u5927Token\u6578\u5FC5\u9808\u5728 {{min}} \u548C {{max}} \u4E4B\u9593",
1625
- reasoningEffortInvalid: "\u63A8\u7406\u5F37\u5EA6\u5FC5\u9808\u662F low, medium, \u6216 high",
1665
+ reasoningEffortInvalid: "\u63A8\u7406\u5F37\u5EA6\u5FC5\u9808\u662F none, minimal, low, medium, high, xhigh, \u6216 max",
1626
1666
  thinkingBudgetMin: "\u601D\u8003\u9810\u7B97\u81F3\u5C11\u9700\u8981 1024 \u500B Token",
1627
1667
  thinkingBudgetMax: "\u601D\u8003\u9810\u7B97\u4E0D\u80FD\u8D85\u904E 100,000 \u500B Token",
1628
1668
  apiKeyRequired: "\u672A\u4F7F\u7528\u4EE3\u7406\u6A21\u5F0F\u3001Ollama\u6216\u81EA\u8A02\u670D\u52D9\u63D0\u4F9B\u8005\u6642\uFF0CAPI\u91D1\u9470\u70BA\u5FC5\u586B\u9805",
@@ -1799,7 +1839,19 @@ var ai_locale_default = {
1799
1839
  chat: "\u30C1\u30E3\u30C3\u30C8\u3092\u958B\u59CB",
1800
1840
  public: "\u516C\u958B",
1801
1841
  byConversation: "\u4F1A\u8A71\u3067 AI \u3092\u4F5C\u6210",
1802
- manualConfiguration: "\u624B\u52D5\u8A2D\u5B9A\u3067 AI \u3092\u4F5C\u6210"
1842
+ manualConfiguration: "\u624B\u52D5\u8A2D\u5B9A\u3067 AI \u3092\u4F5C\u6210",
1843
+ quickCreate: {
1844
+ reasoningEffort: "\u63A8\u8AD6\u5F37\u5EA6",
1845
+ reasoningEffortOptions: {
1846
+ none: "\u306A\u3057",
1847
+ minimal: "\u6700\u5C0F",
1848
+ low: "\u4F4E",
1849
+ medium: "\u4E2D",
1850
+ high: "\u9AD8",
1851
+ xhigh: "\u8D85\u9AD8",
1852
+ max: "\u6700\u5927"
1853
+ }
1854
+ }
1803
1855
  },
1804
1856
  // RN / local-first create sheet (useTranslation("ai") → localCreate.*)
1805
1857
  localCreate: {
@@ -1904,7 +1956,7 @@ var ai_locale_default = {
1904
1956
  frequencyPenalty: "\u5358\u8A9E\u306E\u7E70\u308A\u8FD4\u3057\u3092\u6E1B\u3089\u3057\u307E\u3059\uFF08\u7BC4\u56F2-2\u301C2\uFF09\u3002\u5024\u304C\u9AD8\u3044\u307B\u3069\u7E70\u308A\u8FD4\u3055\u308C\u306B\u304F\u304F\u306A\u308A\u307E\u3059\u3002",
1905
1957
  presencePenalty: "\u30C8\u30D4\u30C3\u30AF\u306E\u7E70\u308A\u8FD4\u3057\u3092\u6E1B\u3089\u3057\u307E\u3059\uFF08\u7BC4\u56F2-2\u301C2\uFF09\u3002\u5024\u304C\u9AD8\u3044\u307B\u3069\u65B0\u3057\u3044\u30C8\u30D4\u30C3\u30AF\u304C\u4FC3\u3055\u308C\u307E\u3059\u3002",
1906
1958
  maxTokens: "1\u56DE\u306E\u5FDC\u7B54\u306E\u9577\u3055\u3092\u5236\u9650\u3057\u307E\u3059\uFF08\u6700\u5C0F1\uFF09\u3002",
1907
- reasoningEffort: "\u56DE\u7B54\u524D\u306E\u63A8\u8AD6\u306E\u5F37\u3055\uFF08low / medium / high\uFF09\u3002\u63A8\u8AD6\u5F37\u5EA6\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B\u30E2\u30C7\u30EB\u3067\u306E\u307F\u6709\u52B9\u3067\u3059\u3002"
1959
+ reasoningEffort: "\u56DE\u7B54\u524D\u306E\u63A8\u8AD6\u306E\u5F37\u3055\u3002\u30B5\u30DD\u30FC\u30C8\u5024\uFF1Anone / minimal / low / medium / high / xhigh / max\uFF08\u30E2\u30C7\u30EB/\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u306B\u3088\u308A\u7570\u306A\u308B\uFF09\u3002\u63A8\u8AD6\u5F37\u5EA6\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B\u30E2\u30C7\u30EB\u3067\u306E\u307F\u6709\u52B9\u3067\u3059\u3002"
1908
1960
  },
1909
1961
  // バリデーションメッセージ
1910
1962
  validation: {
@@ -1922,7 +1974,7 @@ var ai_locale_default = {
1922
1974
  maxTokensMin: "\u6700\u5927\u30C8\u30FC\u30AF\u30F3\u6570\u306F1\u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
1923
1975
  maxTokensMax: "\u6700\u5927\u30C8\u30FC\u30AF\u30F3\u6570\u306F500,000\u4EE5\u4E0B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
1924
1976
  maxTokensRange: "\u6700\u5927\u30C8\u30FC\u30AF\u30F3\u6570\u306F {{min}} \u301C {{max}} \u306E\u7BC4\u56F2\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
1925
- reasoningEffortInvalid: "\u63A8\u8AD6\u5F37\u5EA6\u306F low, medium, high \u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
1977
+ reasoningEffortInvalid: "\u63A8\u8AD6\u5F37\u5EA6\u306F none, minimal, low, medium, high, xhigh, max \u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
1926
1978
  thinkingBudgetMin: "\u601D\u8003\u4E88\u7B97\u306F1024\u30C8\u30FC\u30AF\u30F3\u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
1927
1979
  thinkingBudgetMax: "\u601D\u8003\u4E88\u7B97\u306F100,000\u30C8\u30FC\u30AF\u30F3\u4EE5\u4E0B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
1928
1980
  apiKeyRequired: "\u30D7\u30ED\u30AD\u30B7\u30E2\u30FC\u30C9\u3001Ollama\u3001\u307E\u305F\u306F\u30AB\u30B9\u30BF\u30E0\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u4F7F\u7528\u3057\u306A\u3044\u5834\u5408\u3001API\u30AD\u30FC\u306F\u5FC5\u9808\u3067\u3059",
@@ -10964,9 +11016,9 @@ var CAPABILITY_PACKS = [
10964
11016
  {
10965
11017
  id: "agent-orchestration",
10966
11018
  label: "\u591A agent \u7F16\u6392",
10967
- description: "\u540E\u53F0\u542F\u52A8\u5176\u4ED6 agent \u6267\u884C\u5B50\u4EFB\u52A1\uFF0C\u5E76\u89C2\u5BDF\u3001\u67E5\u8BE2\u3001\u505C\u6B62\u8FD0\u884C\u4E2D\u7684 agent run\u2014\u2014\u9002\u5408\u5E76\u884C\u6D3E\u53D1\u3001\u957F\u4EFB\u52A1\u8DDF\u8E2A\u3001\u4E2D\u9014\u53EB\u505C\u7B49\u7F16\u6392\u573A\u666F\u3002",
10968
- tools: ["startAgentRun", "controlAgentRun"],
10969
- defaultEnabled: false,
11019
+ description: "\u5148\u6309\u6536\u85CF\u3001\u7B80\u4ECB\u3001\u80FD\u529B\u548C\u6210\u672C\u5217\u51FA\u5B89\u5168 agent \u6458\u8981\uFF0C\u6309\u9700\u8BFB\u53D6\u5019\u9009\u914D\u7F6E\u89E3\u6790\u53EF\u8FD0\u884C key\uFF0C\u518D\u540E\u53F0\u542F\u52A8\u5176\u4ED6 agent \u6267\u884C\u5B50\u4EFB\u52A1\uFF0C\u5E76\u89C2\u5BDF\u3001\u67E5\u8BE2\u3001\u505C\u6B62\u8FD0\u884C\u4E2D\u7684 agent run\u2014\u2014\u9002\u5408\u5E76\u884C\u6D3E\u53D1\u3001\u957F\u4EFB\u52A1\u8DDF\u8E2A\u3001\u4E2D\u9014\u53EB\u505C\u7B49\u7F16\u6392\u573A\u666F\u3002",
11020
+ tools: ["startAgentRun", "controlAgentRun", "listAgents"],
11021
+ defaultEnabled: true,
10970
11022
  icon: "\u{1F9E9}"
10971
11023
  }
10972
11024
  ];
@@ -11035,7 +11087,7 @@ var HOSTED_EXEC_RUNTIME_TOOL_POLICY = {
11035
11087
  workspace: { mode: "lease" }
11036
11088
  };
11037
11089
  var findModelConfig = async (modelName, provider) => {
11038
- const { ALL_MODELS } = await import("./models-4OPOOLFS.js");
11090
+ const { ALL_MODELS } = await import("./models-H524GH3U.js");
11039
11091
  const name = toTrimmedString(modelName);
11040
11092
  const prov = toTrimmedString(provider ?? "");
11041
11093
  if (!name) return null;
@@ -11276,7 +11328,7 @@ var buildFormDataFromArgs = async (args) => {
11276
11328
  const trimmedModel = toTrimmedString(model);
11277
11329
  const trimmedProvider = toTrimmedString(provider);
11278
11330
  const modelConfig = await findModelConfig(trimmedModel, trimmedProvider);
11279
- const { getModelPricing } = await import("./getPricing-3E6UNPKL.js");
11331
+ const { getModelPricing } = await import("./getPricing-6TOZXPAU.js");
11280
11332
  const normalizedTools = tools ?? [];
11281
11333
  const resolvedRuntimeToolPolicy = runtimeToolPolicy ?? (normalizedTools.includes("execShell") ? HOSTED_EXEC_RUNTIME_TOOL_POLICY : void 0);
11282
11334
  const formData = {
@@ -13706,7 +13758,7 @@ async function deleteDialogsFunc(args, thunkApi) {
13706
13758
  const deletedDialogIds = [];
13707
13759
  const deletedDialogKeys = [];
13708
13760
  const failures = [];
13709
- const { deleteDialog } = await import("./dialogSlice-3M7KX2TX.js");
13761
+ const { deleteDialog } = await import("./dialogSlice-GGV7PF53.js");
13710
13762
  for (const target of targets) {
13711
13763
  try {
13712
13764
  await thunkApi.dispatch(deleteDialog(target.dbKey)).unwrap();
@@ -13731,9 +13783,44 @@ async function deleteDialogsFunc(args, thunkApi) {
13731
13783
  displayData: deletedDialogIds.length > 0 ? `\u5DF2\u5220\u9664 ${deletedDialogIds.length} \u4E2A\u5BF9\u8BDD\uFF1A${deletedDialogIds.join(", ")}\u3002` : "\u6CA1\u6709\u5220\u9664\u4EFB\u4F55\u5BF9\u8BDD\u3002"
13732
13784
  };
13733
13785
  }
13786
+ async function fetchUserFavoriteAgentMap(thunkApi) {
13787
+ const runtime = getRuntime2(thunkApi);
13788
+ if (!runtime?.currentServer || !runtime?.currentToken) return {};
13789
+ try {
13790
+ const serverBase = normalizeServerOrigin(runtime.currentServer);
13791
+ if (!serverBase) return {};
13792
+ const response = await fetch(`${serverBase}/rpc/listFavorites`, {
13793
+ method: "POST",
13794
+ headers: {
13795
+ "Content-Type": "application/json",
13796
+ ...authHeaders2(runtime.currentToken)
13797
+ },
13798
+ body: JSON.stringify({ targetType: "agent" })
13799
+ }).catch(() => null);
13800
+ if (!response || !response.ok) return {};
13801
+ const data = await response.json().catch(() => ({}));
13802
+ const favoritedAtByKey = {};
13803
+ const items = Array.isArray(data?.items) ? data.items : [];
13804
+ for (const item of items) {
13805
+ const id = typeof item?.id === "string" ? item.id : "";
13806
+ if (!id) continue;
13807
+ const at = Number(item?.favoritedAt) || 0;
13808
+ favoritedAtByKey[id] = Math.max(favoritedAtByKey[id] ?? 0, at || Date.now());
13809
+ }
13810
+ const ids = Array.isArray(data?.ids) ? data.ids : [];
13811
+ for (const id of ids) {
13812
+ if (typeof id === "string" && id && !(id in favoritedAtByKey)) {
13813
+ favoritedAtByKey[id] = 1;
13814
+ }
13815
+ }
13816
+ return favoritedAtByKey;
13817
+ } catch {
13818
+ return {};
13819
+ }
13820
+ }
13734
13821
  var listAgentsFunctionSchema = {
13735
13822
  name: "listAgents",
13736
- description: "List the current user's Nolo agents.",
13823
+ description: "List the current user's Nolo agents as safe summaries. Use readAgent with the selected id/publicKey to resolve the runnable agentKey before delegation.",
13737
13824
  parameters: {
13738
13825
  type: "object",
13739
13826
  properties: {
@@ -13744,18 +13831,34 @@ var listAgentsFunctionSchema = {
13744
13831
  };
13745
13832
  async function listAgentsFunc(args, thunkApi) {
13746
13833
  const limit = clampNoloPositiveInteger(args?.limit, 100, 500);
13747
- const records = await queryBestRecords(thunkApi, "agent" /* AGENT */, limit);
13748
- const agents = records.sort((left, right) => getNoloComparableUpdatedAt(right) - getNoloComparableUpdatedAt(left)).map((record) => ({
13749
- id: record?.id ?? null,
13750
- privateKey: record?.dbKey ?? null,
13751
- publicKey: typeof record?.id === "string" ? `agent-pub-${record.id}` : null,
13752
- name: record?.name ?? "(unnamed)",
13753
- model: record?.model ?? null,
13754
- provider: record?.provider ?? record?.apiSource ?? null,
13755
- isPublic: record?.isPublic === true,
13756
- updatedAt: record?.updatedAt ?? record?.createdAt ?? null,
13757
- tools: Array.isArray(record?.tools) ? record.tools : []
13758
- })).filter((agent) => args?.publicOnly !== true || agent.isPublic);
13834
+ const userRecords = await queryBestRecords(thunkApi, "agent" /* AGENT */, limit);
13835
+ const favoritesMap = await fetchUserFavoriteAgentMap(thunkApi);
13836
+ const recordsMap = /* @__PURE__ */ new Map();
13837
+ for (const record of userRecords) {
13838
+ const key = record?.dbKey || record?.id || record?.publicKey;
13839
+ if (key) recordsMap.set(key, record);
13840
+ }
13841
+ for (const favKey of Object.keys(favoritesMap)) {
13842
+ const isAlreadyPresent = Array.from(recordsMap.values()).some(
13843
+ (record) => record?.dbKey === favKey || record?.id === favKey || record?.publicKey === favKey || `agent-pub-${record?.id}` === favKey
13844
+ );
13845
+ if (!isAlreadyPresent) {
13846
+ const favRecord = await readBestRecord(thunkApi, favKey).catch(() => null);
13847
+ if (favRecord) {
13848
+ const key = favRecord?.dbKey || favRecord?.id || favKey;
13849
+ recordsMap.set(key, favRecord);
13850
+ }
13851
+ }
13852
+ }
13853
+ const runtime = getRuntime2(thunkApi);
13854
+ const userId = runtime?.currentUserId ?? void 0;
13855
+ let agents = Array.from(recordsMap.values()).map(
13856
+ (record) => toSafeAgentSummary(record, { favoritesMap, userId })
13857
+ );
13858
+ if (args?.publicOnly === true) {
13859
+ agents = agents.filter((agent) => agent.isPublic);
13860
+ }
13861
+ agents = sortSafeAgentSummaries(agents);
13759
13862
  return {
13760
13863
  rawData: { success: true, total: agents.length, agents },
13761
13864
  displayData: jsonPreview({ total: agents.length, agents })
@@ -13900,7 +14003,7 @@ var readSkillDocFunctionSchema = {
13900
14003
  }
13901
14004
  };
13902
14005
  async function readSkillDocFunc(args, thunkApi) {
13903
- const { buildReadDocResult } = await import("./readDocTool-HUFU6OCT.js");
14006
+ const { buildReadDocResult } = await import("./readDocTool-2NXDK32S.js");
13904
14007
  const id = args?.id ?? args?.doc ?? args?.docKey ?? args?.pageKey;
13905
14008
  if (typeof id !== "string" || !id.trim()) {
13906
14009
  throw new Error("readSkillDoc requires id or doc.");
@@ -18513,7 +18616,7 @@ var cloudflareCrawlStatusFunctionSchema = {
18513
18616
  async function cloudflareCrawlStatusFunc(args, thunkApi) {
18514
18617
  const { jobId, limit, status, cursor } = args;
18515
18618
  if (!jobId) throw new Error("\u5FC5\u987B\u63D0\u4F9B jobId");
18516
- const { getToolRequestContext: getToolRequestContext2 } = await import("./toolApiClient-QI3YBNWB.js");
18619
+ const { getToolRequestContext: getToolRequestContext2 } = await import("./toolApiClient-C7P7YSE4.js");
18517
18620
  const { baseUrl, token } = getToolRequestContext2(thunkApi);
18518
18621
  const params = new URLSearchParams();
18519
18622
  if (limit !== void 0) params.set("limit", String(limit));
@@ -19288,7 +19391,7 @@ var selectUserIdFromState = (state) => typeof state?.auth?.currentUser?.userId =
19288
19391
  var selectCurrentServerFromState = (state) => typeof state?.settings?.currentServer === "string" ? state.settings.currentServer : null;
19289
19392
  async function addImageContentToSpace(input) {
19290
19393
  const injectedAddContentAction = input.thunkApi?.extra?.addContentAction;
19291
- const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-57RSIIMR.js")).addContentAction;
19394
+ const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-UXY3GM53.js")).addContentAction;
19292
19395
  await addContentAction2(
19293
19396
  {
19294
19397
  spaceId: input.spaceId,
@@ -21277,7 +21380,7 @@ var startAgentRunFunctionSchema = {
21277
21380
  properties: {
21278
21381
  agentKey: {
21279
21382
  type: "string",
21280
- description: "\u8981\u542F\u52A8\u7684 Agent \u7684\u552F\u4E00 ID\uFF08dbKey\uFF0C\u683C\u5F0F\u5982 agent-xxx\uFF09\u3002"
21383
+ description: "\u8981\u542F\u52A8\u7684 Agent \u7684\u53EF\u8FD0\u884C dbKey\uFF08\u4F18\u5148\u4F7F\u7528 readAgent \u8FD4\u56DE\u7684 agentKey\uFF0C\u683C\u5F0F\u5982 agent-xxx\uFF09\u3002"
21281
21384
  },
21282
21385
  task: {
21283
21386
  type: "string",
@@ -22652,7 +22755,7 @@ var executeToolRun = createAsyncThunk(
22652
22755
  if (!executionInput) {
22653
22756
  throw new Error(`ToolRun ${id} has no input to execute with.`);
22654
22757
  }
22655
- const { findToolExecutor: findToolExecutor2 } = await import("./tools-EQDEKR6N.js");
22758
+ const { findToolExecutor: findToolExecutor2 } = await import("./tools-HURZ2N4O.js");
22656
22759
  const { executor } = findToolExecutor2(run.toolName);
22657
22760
  toolRunStarted({
22658
22761
  id: run.id,
@@ -22676,7 +22779,7 @@ var executeToolRun = createAsyncThunk(
22676
22779
  const latestState = thunkApi.getState();
22677
22780
  const userId = latestState.auth?.currentUser?.userId;
22678
22781
  if (userId) {
22679
- const { fetchUserSpaceMemberships } = await import("./spaceSlice-TSVROA5U.js");
22782
+ const { fetchUserSpaceMemberships } = await import("./spaceSlice-RG2GSV7K.js");
22680
22783
  await thunkApi.dispatch(fetchUserSpaceMemberships(userId));
22681
22784
  }
22682
22785
  }
@@ -25079,7 +25182,7 @@ async function updateDocFunc(args, thunkApi) {
25079
25182
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
25080
25183
  };
25081
25184
  await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
25082
- const { getDocState, applyExternalDocUpdate } = await import("./docStore-SV7E34D4.js");
25185
+ const { getDocState, applyExternalDocUpdate } = await import("./docStore-VDWTATFH.js");
25083
25186
  if (getDocState().pageKey === id) {
25084
25187
  applyExternalDocUpdate({
25085
25188
  slateData: finalSlateData,
@@ -25104,7 +25207,7 @@ async function updateDocFunc(args, thunkApi) {
25104
25207
  // packages/ai/tools/updateUserPreferenceProfileTool.ts
25105
25208
  async function dispatchSetSettings(thunkApi, changes) {
25106
25209
  const injectedSetSettings = thunkApi?.extra?.setSettings;
25107
- const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-IVKXJXMG.js")).setSettings;
25210
+ const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-UWZJYDOA.js")).setSettings;
25108
25211
  await thunkApi.dispatch(setSettings(changes)).unwrap();
25109
25212
  }
25110
25213
  var updateUserPreferenceProfileFunctionSchema = {
@@ -26506,7 +26609,7 @@ var baseToolDefinitions = [
26506
26609
  executor: listAgentsFunc,
26507
26610
  description: {
26508
26611
  name: "listAgents",
26509
- description: "List the current user's Nolo agents.",
26612
+ description: "List the current user's Nolo agents as safe summaries; use readAgent to resolve the runnable agentKey before delegation.",
26510
26613
  category: "Nolo workspace"
26511
26614
  },
26512
26615
  behavior: "data",
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  listUserRecordsFromServers,
3
3
  readLiveDbRecordAfterTombstoneMerge
4
- } from "./chunk-RL776AGR.js";
4
+ } from "./chunk-BKGNXJAM.js";
5
5
  import {
6
6
  agentRecordHasConfiguredCredential
7
- } from "./chunk-SDJDLO5W.js";
7
+ } from "./chunk-SBVUZC2E.js";
8
8
 
9
9
  // packages/cli/agentListHelpers.ts
10
10
  function parseAgentRecordId(privateKey, explicitId) {
@@ -34,6 +34,11 @@ function normalizeListedAgent(record) {
34
34
  publicKey: keys.publicKey,
35
35
  name: typeof record?.name === "string" && record.name ? record.name : "(unnamed)",
36
36
  model: typeof record?.model === "string" && record.model ? record.model : "-",
37
+ ...typeof record?.handle === "string" && record.handle ? { handle: record.handle } : {},
38
+ ...typeof record?.introduction === "string" && record.introduction ? { introduction: record.introduction } : typeof record?.description === "string" && record.description ? { introduction: record.description } : {},
39
+ ...typeof record?.provider === "string" && record.provider ? { provider: record.provider } : {},
40
+ ...typeof record?.inputPrice === "number" && Number.isFinite(record.inputPrice) ? { inputPrice: record.inputPrice } : {},
41
+ ...typeof record?.outputPrice === "number" && Number.isFinite(record.outputPrice) ? { outputPrice: record.outputPrice } : {},
37
42
  updatedAt: typeof record?.updatedAt === "string" || typeof record?.updatedAt === "number" ? record.updatedAt : typeof record?.createdAt === "string" || typeof record?.createdAt === "number" ? record.createdAt : typeof record?.created === "string" || typeof record?.created === "number" ? record.created : null,
38
43
  isPublicFlag: !!record?.isPublic,
39
44
  publicRecordExists: false,
@@ -57,6 +62,7 @@ function sortListedAgents(agents) {
57
62
  function parseAgentListArgs(args) {
58
63
  return {
59
64
  wantJson: args.includes("--json"),
65
+ wantSafe: args.includes("--safe"),
60
66
  publicOnly: args.includes("--public-only"),
61
67
  idsOnly: args.includes("--ids-only")
62
68
  };
@@ -182,6 +188,7 @@ async function decorateAgentsWithPublicStatusAcrossServers(args) {
182
188
  }
183
189
 
184
190
  export {
191
+ normalizeListedAgent,
185
192
  parseAgentListArgs,
186
193
  listLocalCachedAgents,
187
194
  listRemoteAgents,
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-IDZTNRP2.js";
7
7
  import {
8
8
  isCompiledBinary
9
- } from "./chunk-ISNCLGUZ.js";
9
+ } from "./chunk-AVMJVOQY.js";
10
10
  import {
11
11
  DEFAULT_NOLO_SERVER_URL
12
12
  } from "./chunk-OLZBQWZU.js";