nolo-cli 0.53.0-alpha.1 → 0.54.0-alpha.2
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.
- package/{_executeModel-36GKPAEZ.js → _executeModel-ANY4SIAS.js} +34 -35
- package/{action-IU6ON7ZB.js → action-Q4W5JPI5.js} +7 -7
- package/{addContentAction-5V5CCI3I.js → addContentAction-O25HFR37.js} +6 -6
- package/{addDialogAgentAction-KF3KZZNZ.js → addDialogAgentAction-GH7AUPPB.js} +5 -5
- package/{agentDeleteCommand-SBODEUPE.js → agentDeleteCommand-JWIKNWWI.js} +17 -17
- package/{agentEmailCommands-ME7BCY5S.js → agentEmailCommands-PL22BEU5.js} +39 -40
- package/{agentListCommands-QBWPKN5D.js → agentListCommands-6NR7AQEK.js} +19 -19
- package/{agentMachineCommands-KFFUPELZ.js → agentMachineCommands-TASPU6OA.js} +18 -18
- package/{agentRecordCommands-4BF6JIHS.js → agentRecordCommands-Z64TA63M.js} +38 -39
- package/{agentRunCommand-4MA7D6SV.js → agentRunCommand-4QJQLPRW.js} +39 -40
- package/{agentRuntimeLocal-RD52NPCG.js → agentRuntimeLocal-PCJJ56J2.js} +17 -17
- package/{agentSlice-AJABGQHU.js → agentSlice-KYLDUSNN.js} +6 -6
- package/{appDeleteCommands-I42NL3LP.js → appDeleteCommands-WLHMJAVT.js} +19 -19
- package/{appDeployCommands-CZWHXVPU.js → appDeployCommands-CKON7N2E.js} +19 -19
- package/{appDeployStatusCommands-PIQYXACM.js → appDeployStatusCommands-PXRLDASH.js} +19 -19
- package/{appGetCommands-CI2OWLT7.js → appGetCommands-RAB5RM4M.js} +19 -19
- package/{appListCommands-LWLSHPCP.js → appListCommands-GU57FB62.js} +19 -19
- package/{authCommand-WLWOEVYI.js → authCommand-QOPOEYEK.js} +7 -7
- package/{chatQueueReduxAdapter-V37RK3A6.js → chatQueueReduxAdapter-5O2WLITN.js} +16 -16
- package/chunk-2BWU4ORW.js +2574 -0
- package/{chunk-SG65C33A.js → chunk-32I5RVMY.js} +4 -4
- package/{chunk-X7S7OFUX.js → chunk-3QJTD6DO.js} +4 -4
- package/{chunk-CY5KIIPU.js → chunk-3Z3DXZBD.js} +12 -12
- package/{chunk-RO2IUWZE.js → chunk-4NN3EK7H.js} +1 -1
- package/{chunk-Y7TGWSUN.js → chunk-56W233KG.js} +1 -1
- package/{chunk-C2WF2OY7.js → chunk-5WADL4O7.js} +1 -1
- package/{chunk-QTH72J3N.js → chunk-6BGAQ3KR.js} +116 -23
- package/{chunk-67Q6IHM5.js → chunk-6FQ2552G.js} +142 -62
- package/{chunk-6XIE5ZGI.js → chunk-6HIGYUBQ.js} +1 -1
- package/{chunk-XPW6JLOB.js → chunk-6SZ52ORL.js} +8 -8
- package/{chunk-4ZL2KBI7.js → chunk-757BGY6Y.js} +1 -1
- package/{chunk-SQTVMYMU.js → chunk-7APQB6R6.js} +3 -3
- package/{chunk-QF27IZB3.js → chunk-7K5VMB4Q.js} +3 -3
- package/{chunk-V2IPBG5U.js → chunk-AA564GBL.js} +2 -2
- package/{chunk-76UA7376.js → chunk-AV6KQCM5.js} +6 -6
- package/{chunk-PGKZ2KGE.js → chunk-BJLYCOZK.js} +24 -24
- package/{chunk-VKSBVRGP.js → chunk-CVT7L2WZ.js} +1 -1
- package/{chunk-JVKFKKYN.js → chunk-D3JQPONH.js} +1 -1
- package/{chunk-KHCLMKZZ.js → chunk-EY7V7REW.js} +280 -6
- package/{chunk-4RXXP6WD.js → chunk-FGEYVPPR.js} +2 -2
- package/{chunk-AZ6DT2UD.js → chunk-GBADO3SM.js} +1 -1
- package/chunk-GLGD2JGY.js +1766 -0
- package/{chunk-POLE2QLO.js → chunk-GV35EHNA.js} +126 -59
- package/{chunk-HR5XDXYM.js → chunk-H4RYESI6.js} +3 -3
- package/{chunk-W3RZLXMA.js → chunk-IKTHA3JH.js} +2 -2
- package/{chunk-XB7ACJFH.js → chunk-INXBNYCG.js} +3 -3
- package/{chunk-F22JQTSX.js → chunk-KUUTWU4I.js} +3 -3
- package/{chunk-DFY6O64O.js → chunk-LA4IDAK7.js} +12 -12
- package/{chunk-IVKEJD7I.js → chunk-LN3OQJGG.js} +1 -1
- package/{chunk-YZ2WE6CW.js → chunk-MFI4FGHX.js} +2 -2
- package/{chunk-LGUQHYAL.js → chunk-O5FLGN2L.js} +3 -2
- package/{chunk-HCBQVVFZ.js → chunk-PAHILFNT.js} +1 -1
- package/{chunk-HHBXCRJS.js → chunk-PYKV6FSC.js} +1 -1
- package/{chunk-BO3YFOZR.js → chunk-QDHZCAH3.js} +1 -1
- package/{chunk-L3JWI7WX.js → chunk-QOKAKDPE.js} +15 -11
- package/{chunk-B54WOZ77.js → chunk-RTLJUGQH.js} +1 -1
- package/{chunk-Z7A54NFZ.js → chunk-RU5D3B22.js} +1 -1
- package/{chunk-JBL24PK6.js → chunk-SP3DPVBH.js} +2 -2
- package/{chunk-TZRB2I2M.js → chunk-TI5BCZCH.js} +18 -18
- package/{chunk-KOZ2G3ZG.js → chunk-U2A47SVI.js} +5 -5
- package/{chunk-3YVCM5PE.js → chunk-U5Z7LFZF.js} +1 -1
- package/{chunk-DIQCV4FR.js → chunk-UITMHBVK.js} +1 -1
- package/{chunk-H5QLIP6S.js → chunk-UW4INMD2.js} +2 -2
- package/{chunk-5SLTA66C.js → chunk-V4KZGLOI.js} +30 -30
- package/{chunk-AV4Z57LV.js → chunk-VRJUIUIY.js} +2 -2
- package/{chunk-5XCW6RQG.js → chunk-VRZIH5JO.js} +1 -1
- package/{chunk-2JYSSXLY.js → chunk-VULELK4T.js} +2 -2
- package/{chunk-VFN256RI.js → chunk-WL3UOGYO.js} +25 -0
- package/{chunk-PJASTA2U.js → chunk-Y7LNKP32.js} +3 -3
- package/{chunk-OZKJBDG4.js → chunk-YBV6QJKM.js} +14 -8
- package/{codingSkills-BYQI6EPT.js → codingSkills-BCQXRZOI.js} +3 -4
- package/{createAgentAutomationAction-5OZIWOK4.js → createAgentAutomationAction-UJLNFFFC.js} +17 -17
- package/{createDialogAction-334CHPJF.js → createDialogAction-TJCX6GUE.js} +20 -21
- package/{createPageAction-LXY22WTA.js → createPageAction-N3IYABHV.js} +18 -19
- package/{dbSlice-FWF5F4L7.js → dbSlice-D5CNGWPD.js} +5 -5
- package/{deleteFile-NPZ64DFN.js → deleteFile-44TUM34Y.js} +3 -3
- package/{dialogCommands-4MGUHAJI.js → dialogCommands-35M6RBAC.js} +18 -18
- package/{dialogSlice-76W7S3C4.js → dialogSlice-KO7ADD7H.js} +16 -16
- package/{docCreateCommands-346W5443.js → docCreateCommands-VXHZWQ3P.js} +20 -21
- package/{docDeleteCommands-FKEEPUUS.js → docDeleteCommands-4WFAJR6A.js} +20 -21
- package/{docReadCommands-AACI4DVO.js → docReadCommands-OYREEFAR.js} +20 -21
- package/{docStore-N7QTPHAX.js → docStore-5BU76DFK.js} +18 -18
- package/{docUpdateCommands-WHWVZ2XE.js → docUpdateCommands-A7QERSME.js} +20 -21
- package/{getPricing-JNOCWYDH.js → getPricing-HAU62AFM.js} +3 -3
- package/{handleSendMessageAction-EAXEX5AX.js → handleSendMessageAction-OSGQJQ45.js} +16 -16
- package/index.js +58 -58
- package/{machineCommands-XNWLQVTN.js → machineCommands-J43U3TX5.js} +38 -39
- package/{machineWsRunDispatch-56HWQ67L.js → machineWsRunDispatch-Z2Z6STXZ.js} +38 -39
- package/{models-N4NXQ44D.js → models-4QF4BJVY.js} +2 -2
- package/package.json +2 -3
- package/{read-J7RVVCHH.js → read-RGNPI5H2.js} +3 -3
- package/{readDocTool-G2WBM4IH.js → readDocTool-6ESWKTXD.js} +1 -1
- package/{readlineWorkspace-AXTB7DJC.js → readlineWorkspace-YRPV6JPN.js} +485 -222
- package/{removeDialogAgentAction-RMPISD42.js → removeDialogAgentAction-JYT73FU2.js} +7 -7
- package/{runAgentClientLoop-PU3R3UXA.js → runAgentClientLoop-5YM5WMAY.js} +32 -33
- package/{setDialogExtraReferencesAction-7BUTHDAL.js → setDialogExtraReferencesAction-D564LMYQ.js} +6 -6
- package/{setPrimaryDialogAgentAction-WCYIBGZ4.js → setPrimaryDialogAgentAction-ACY3BLYA.js} +7 -7
- package/{settingSlice-7NN2MI6Y.js → settingSlice-MKI3MNZJ.js} +6 -6
- package/{skillDiscovery-COX56OBO.js → skillDiscovery-GPUDHDTZ.js} +1 -2
- package/{spaceCommands-JYI3X4N2.js → spaceCommands-MY26V52L.js} +17 -17
- package/{spaceSlice-ERZ3RGWC.js → spaceSlice-JUIXC365.js} +17 -17
- package/{streamAgentChatTurn-2IH4MTQC.js → streamAgentChatTurn-XV5X5TNQ.js} +36 -37
- package/{switchDialogAgentAction-WGMMQHDI.js → switchDialogAgentAction-CJ5H6SAR.js} +5 -5
- package/{tableCommands-P2TXJ3CF.js → tableCommands-R6WFRDYF.js} +1 -1
- package/{tools-DJUTQEMP.js → tools-MIMELA2Y.js} +27 -28
- package/{tuiSummaryLlmCaller-U4EGD2SX.js → tuiSummaryLlmCaller-XJ5BKNNS.js} +12 -12
- package/{updateDialogTitleAction-OVOPGTC3.js → updateDialogTitleAction-EIZUSWHR.js} +17 -17
- package/chunk-AETZ7AD6.js +0 -274
- package/chunk-EUG45QJR.js +0 -6104
- package/chunk-OFZPJ3NT.js +0 -114
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
refreshAntigravityOAuthToken,
|
|
5
5
|
refreshOpenAiCodexToken,
|
|
6
6
|
xaiRefresh
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-U5Z7LFZF.js";
|
|
8
8
|
import {
|
|
9
9
|
defaultLoopbackRequest
|
|
10
10
|
} from "./chunk-EADNWBAZ.js";
|
|
@@ -49,14 +49,14 @@ import {
|
|
|
49
49
|
} from "./chunk-WHVQA7PJ.js";
|
|
50
50
|
import {
|
|
51
51
|
inferCaptureIntent
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-4NN3EK7H.js";
|
|
53
53
|
import {
|
|
54
54
|
buildCliPrompt
|
|
55
55
|
} from "./chunk-ATNTHIZI.js";
|
|
56
56
|
import {
|
|
57
57
|
inlineImageUrlsForCustomProvider,
|
|
58
58
|
prepareTools
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-UW4INMD2.js";
|
|
60
60
|
import {
|
|
61
61
|
getServerProviderSecret
|
|
62
62
|
} from "./chunk-HS7MLR74.js";
|
|
@@ -65,7 +65,7 @@ import {
|
|
|
65
65
|
isAntigravityOAuthAgent,
|
|
66
66
|
readAntigravityProjectId,
|
|
67
67
|
resolveAntigravityCloudCodeBaseUrl
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-757BGY6Y.js";
|
|
69
69
|
import {
|
|
70
70
|
deleteMemoryFunctionSchema,
|
|
71
71
|
readXPostFunc,
|
|
@@ -75,7 +75,7 @@ import {
|
|
|
75
75
|
rememberMemoryFunctionSchema,
|
|
76
76
|
resolveAgentRequiredPackIds,
|
|
77
77
|
setTodoListFunc
|
|
78
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-V4KZGLOI.js";
|
|
79
79
|
import {
|
|
80
80
|
fetchWithTransientRetry,
|
|
81
81
|
isTransientFetchError
|
|
@@ -98,13 +98,13 @@ import {
|
|
|
98
98
|
prepareTokenUsageData,
|
|
99
99
|
resolveBuiltinPlatformAgentConfig,
|
|
100
100
|
runKeyed
|
|
101
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-BJLYCOZK.js";
|
|
102
102
|
import {
|
|
103
103
|
BUILTIN_TITLE_LLM_CONFIG
|
|
104
104
|
} from "./chunk-EVBFYPDC.js";
|
|
105
105
|
import {
|
|
106
106
|
fetchServerSyncedCredential
|
|
107
|
-
} from "./chunk-
|
|
107
|
+
} from "./chunk-U2A47SVI.js";
|
|
108
108
|
import {
|
|
109
109
|
require_date_fns
|
|
110
110
|
} from "./chunk-M76ECQRD.js";
|
|
@@ -120,7 +120,7 @@ import {
|
|
|
120
120
|
applySystemBuiltinSkillFilter,
|
|
121
121
|
expandEnabledPacks,
|
|
122
122
|
resolveEffectiveEnabledPacks
|
|
123
|
-
} from "./chunk-
|
|
123
|
+
} from "./chunk-O5FLGN2L.js";
|
|
124
124
|
import {
|
|
125
125
|
aggregateResponsesStream,
|
|
126
126
|
buildLoadSkillExecutor,
|
|
@@ -131,6 +131,7 @@ import {
|
|
|
131
131
|
codexStreamFailureStatus,
|
|
132
132
|
createHybridRecordStore,
|
|
133
133
|
createLocalWorkspaceToolExecutors,
|
|
134
|
+
evaluateFileWritePolicy,
|
|
134
135
|
executeLocalToolWithPolicy,
|
|
135
136
|
executeOpenAiCompatibleChatCompletion,
|
|
136
137
|
filterRetainedLedgerRecords,
|
|
@@ -143,7 +144,7 @@ import {
|
|
|
143
144
|
parseSyncServersEnv,
|
|
144
145
|
resolveOpenAiCompatibleProviderConfig,
|
|
145
146
|
summarizeToolArguments
|
|
146
|
-
} from "./chunk-
|
|
147
|
+
} from "./chunk-6BGAQ3KR.js";
|
|
147
148
|
import {
|
|
148
149
|
buildPlatformChatCompletionRequest,
|
|
149
150
|
canUsePlatformChatProvider,
|
|
@@ -155,18 +156,18 @@ import {
|
|
|
155
156
|
resolvePlatformChatProviderConfig,
|
|
156
157
|
shouldUsePlatformChatProvider,
|
|
157
158
|
streamSseDataValues
|
|
158
|
-
} from "./chunk-
|
|
159
|
+
} from "./chunk-INXBNYCG.js";
|
|
159
160
|
import {
|
|
160
161
|
resolveAgentRuntimeConfigFromRecord,
|
|
161
162
|
resolveHistoricalToolContentCap
|
|
162
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-CVT7L2WZ.js";
|
|
163
164
|
import {
|
|
164
165
|
convertMessagesToResponsesInput,
|
|
165
166
|
toResponsesTools
|
|
166
167
|
} from "./chunk-6BYAXNH5.js";
|
|
167
168
|
import {
|
|
168
169
|
resolvePlatformAuthToken
|
|
169
|
-
} from "./chunk-
|
|
170
|
+
} from "./chunk-SP3DPVBH.js";
|
|
170
171
|
import {
|
|
171
172
|
buildNoloWorkspaceOpenAiTools,
|
|
172
173
|
parseNoloWorkspaceToolArguments,
|
|
@@ -183,7 +184,7 @@ import {
|
|
|
183
184
|
} from "./chunk-2MBTWINN.js";
|
|
184
185
|
import {
|
|
185
186
|
clipCompactText
|
|
186
|
-
} from "./chunk-
|
|
187
|
+
} from "./chunk-H4RYESI6.js";
|
|
187
188
|
import {
|
|
188
189
|
createFileCredentialBroker,
|
|
189
190
|
resolveCurrentRunRuntimeToolPolicy,
|
|
@@ -198,7 +199,7 @@ import {
|
|
|
198
199
|
} from "./chunk-FD36SCCD.js";
|
|
199
200
|
import {
|
|
200
201
|
isAdaptiveThinkingModelId
|
|
201
|
-
} from "./chunk-
|
|
202
|
+
} from "./chunk-QDHZCAH3.js";
|
|
202
203
|
import {
|
|
203
204
|
compactWhitespace
|
|
204
205
|
} from "./chunk-DWLEOOGR.js";
|
|
@@ -229,7 +230,7 @@ import {
|
|
|
229
230
|
} from "./chunk-QSJ3HFEF.js";
|
|
230
231
|
import {
|
|
231
232
|
isSystemBuiltinTrustedAgentKey
|
|
232
|
-
} from "./chunk-
|
|
233
|
+
} from "./chunk-VULELK4T.js";
|
|
233
234
|
import {
|
|
234
235
|
isRecord
|
|
235
236
|
} from "./chunk-KUG52IAP.js";
|
|
@@ -531,6 +532,11 @@ var STRINGS = {
|
|
|
531
532
|
en: "Draft cleared.",
|
|
532
533
|
zh: "\u8F93\u5165\u8349\u7A3F\u5DF2\u6E05\u7A7A\u3002"
|
|
533
534
|
},
|
|
535
|
+
// 空草稿按 Backspace 逐个撤销附件(composer 附件条)。
|
|
536
|
+
attachmentRemovedHint: {
|
|
537
|
+
en: "Removed attachment {0}, {1} remaining",
|
|
538
|
+
zh: "\u5DF2\u79FB\u9664\u9644\u4EF6 {0}\uFF0C\u5269\u4F59 {1} \u5F20"
|
|
539
|
+
},
|
|
534
540
|
historyNoToken: {
|
|
535
541
|
en: "History requires an auth token. Run `nolo login` or set AUTH_TOKEN.",
|
|
536
542
|
zh: "\u67E5\u770B\u5386\u53F2\u5BF9\u8BDD\u9700\u8981\u767B\u5F55\u51ED\u8BC1\u3002\u8BF7\u8FD0\u884C `nolo login` \u6216\u8BBE\u7F6E AUTH_TOKEN\u3002"
|
|
@@ -598,6 +604,10 @@ var STRINGS = {
|
|
|
598
604
|
// --- Tool trace copy ------------------------------------------------------
|
|
599
605
|
// The compact trace shows only status, never timing or output size: a line
|
|
600
606
|
// count told the user nothing actionable and the ms figure read as noise.
|
|
607
|
+
thinkingTraceLine: {
|
|
608
|
+
en: "\u273B Thought for {0}",
|
|
609
|
+
zh: "\u273B \u601D\u8003 {0}"
|
|
610
|
+
},
|
|
601
611
|
toolNeedsAction: {
|
|
602
612
|
en: "needs action",
|
|
603
613
|
zh: "\u5F85\u786E\u8BA4"
|
|
@@ -639,6 +649,12 @@ var STRINGS = {
|
|
|
639
649
|
en: "Log tail:",
|
|
640
650
|
zh: "\u65E5\u5FD7\u5C3E\u90E8\uFF1A"
|
|
641
651
|
},
|
|
652
|
+
// Normal-mode safe projection: the raw errorMessage/logLines of a failed run
|
|
653
|
+
// stay in pro/verbose; normal mode names the failure and points at pro.
|
|
654
|
+
runDiagnosticsHidden: {
|
|
655
|
+
en: "run failed \u2014 full diagnostics in pro mode",
|
|
656
|
+
zh: "\u8FD0\u884C\u5931\u8D25\u2014\u2014\u5B8C\u6574\u8BCA\u65AD\u89C1 pro \u6A21\u5F0F"
|
|
657
|
+
},
|
|
642
658
|
runsListLabel: {
|
|
643
659
|
en: "Runs ({0})",
|
|
644
660
|
zh: "\u8FD0\u884C ({0})"
|
|
@@ -833,9 +849,8 @@ var STRINGS = {
|
|
|
833
849
|
" /new Clear screen and start a fresh dialog",
|
|
834
850
|
" /compact Compact current dialog and fork a new one",
|
|
835
851
|
" /context Show workspace context and next actions",
|
|
852
|
+
" /cd <path> Change the working directory (takes effect on the next turn)",
|
|
836
853
|
" /runtime <mode> Use auto, local, or server runtime",
|
|
837
|
-
" /tools <mode> Control tool trace: hide, compact, verbose",
|
|
838
|
-
" /thinking <mode> Show or hide live model reasoning",
|
|
839
854
|
" /switch Pick an agent interactively (\u2191\u2193, Enter)",
|
|
840
855
|
" /switch list List agents as text",
|
|
841
856
|
" /switch <name> Switch directly by name, alias, or key (alias: /agent)",
|
|
@@ -845,7 +860,7 @@ var STRINGS = {
|
|
|
845
860
|
" /lang <zh|en> Switch interface language",
|
|
846
861
|
' /copy [all] Copy the last reply (or the full conversation with "all") to the clipboard',
|
|
847
862
|
" /mouse <on|off> Toggle mouse mode (off = drag to select text)",
|
|
848
|
-
" /auto <on|off> Toggle permission auto-approve (skip destructive-shell
|
|
863
|
+
" /auto <on|off> Toggle permission auto-approve (skip destructive-shell, external-file & file-write confirms)",
|
|
849
864
|
" /math <on|off> Toggle math formula rendering (Unicode transcription)",
|
|
850
865
|
" /altscreen <on|off> Toggle the terminal alternate screen (default on; off shares shell scrollback)",
|
|
851
866
|
" Shift+drag Select text natively even while mouse mode is on (terminal bypass)",
|
|
@@ -872,9 +887,8 @@ var STRINGS = {
|
|
|
872
887
|
" /new \u6E05\u5C4F\u5E76\u5F00\u59CB\u65B0\u5BF9\u8BDD",
|
|
873
888
|
" /compact \u538B\u7F29\u5F53\u524D\u5BF9\u8BDD\u5E76\u5206\u53C9\u51FA\u65B0\u5BF9\u8BDD",
|
|
874
889
|
" /context \u67E5\u770B\u5DE5\u4F5C\u533A\u4E0A\u4E0B\u6587\u4E0E\u540E\u7EED\u64CD\u4F5C",
|
|
890
|
+
" /cd <path> \u5207\u6362\u5DE5\u4F5C\u76EE\u5F55\uFF08\u4E0B\u4E2A turn \u751F\u6548\uFF09",
|
|
875
891
|
" /runtime <mode> \u5207\u6362 runtime\uFF1Aauto\u3001local\u3001server",
|
|
876
|
-
" /tools <mode> \u5DE5\u5177\u8F68\u8FF9\u663E\u793A\uFF1Ahide\u3001compact\u3001verbose",
|
|
877
|
-
" /thinking <mode> \u663E\u793A\u6216\u9690\u85CF\u6A21\u578B\u7684\u5B9E\u65F6\u601D\u8003\u8FC7\u7A0B",
|
|
878
892
|
" /switch \u4EA4\u4E92\u5F0F\u9009\u62E9 agent\uFF08\u2191\u2193 \u79FB\u52A8\uFF0CEnter \u786E\u8BA4\uFF09",
|
|
879
893
|
" /switch list \u4EE5\u6587\u672C\u5217\u51FA\u5168\u90E8 agent",
|
|
880
894
|
" /switch <name> \u6309\u540D\u79F0\u3001\u522B\u540D\u6216 key \u76F4\u63A5\u5207\u6362\uFF08\u522B\u540D\uFF1A/agent\uFF09",
|
|
@@ -884,7 +898,7 @@ var STRINGS = {
|
|
|
884
898
|
" /lang <zh|en> \u5207\u6362\u754C\u9762\u8BED\u8A00",
|
|
885
899
|
" /copy [all] \u590D\u5236\u6700\u540E\u4E00\u6761\u56DE\u590D\u5230\u526A\u8D34\u677F\uFF08\u52A0 all \u590D\u5236\u5B8C\u6574\u5BF9\u8BDD\uFF09",
|
|
886
900
|
" /mouse <on|off> \u5207\u6362\u9F20\u6807\u6A21\u5F0F\uFF08off \u540E\u53EF\u76F4\u63A5\u62D6\u9009\u6587\u672C\uFF09",
|
|
887
|
-
" /auto <on|off> \u5207\u6362\u6743\u9650\u81EA\u52A8\u5316\uFF08\u81EA\u52A8\u653E\u884C\u7834\u574F\u6027 shell
|
|
901
|
+
" /auto <on|off> \u5207\u6362\u6743\u9650\u81EA\u52A8\u5316\uFF08\u81EA\u52A8\u653E\u884C\u7834\u574F\u6027 shell\u3001\u5916\u90E8\u6587\u4EF6\u4E0E\u5199\u6587\u4EF6\u786E\u8BA4\uFF09",
|
|
888
902
|
" /math <on|off> \u5207\u6362\u6570\u5B66\u516C\u5F0F\u6E32\u67D3\uFF08Unicode \u8F6C\u5199\uFF09",
|
|
889
903
|
" /altscreen <on|off> \u5207\u6362\u7EC8\u7AEF\u5907\u7528\u5C4F\uFF08\u9ED8\u8BA4 on\uFF1Boff \u6539\u4E3A\u4E0E shell \u5171\u7528\u56DE\u6EDA\uFF09",
|
|
890
904
|
" Shift+\u62D6\u62FD \u9F20\u6807\u6A21\u5F0F\u5F00\u542F\u65F6\u4E5F\u53EF\u539F\u751F\u9009\u4E2D\u6587\u672C\uFF08\u7EC8\u7AEF\u7ED5\u8FC7\u4FEE\u9970\u952E\uFF09",
|
|
@@ -915,21 +929,10 @@ var STRINGS = {
|
|
|
915
929
|
},
|
|
916
930
|
runtimeUsage: { en: "Usage: /runtime <auto|local|server>", zh: "\u7528\u6CD5\uFF1A/runtime <auto|local|server>" },
|
|
917
931
|
runtimeSet: { en: "Runtime: {0}", zh: "\u8FD0\u884C\u6A21\u5F0F\uFF1A{0}" },
|
|
918
|
-
|
|
919
|
-
en: "
|
|
920
|
-
zh: "\
|
|
932
|
+
displayFixedHint: {
|
|
933
|
+
en: "The TUI now ships a single built-in display default, no switching needed. Power users can fall back to environment variables (applied on restart): NOLO_CLI_TOOLS=normal|pro|verbose|hide controls the tool trace, NOLO_CLI_THINKING=show|hide controls reasoning visibility.",
|
|
934
|
+
zh: "TUI \u73B0\u5728\u53EA\u6709\u4E00\u5957\u5185\u7F6E\u9ED8\u8BA4\u663E\u793A\uFF0C\u65E0\u9700\u5207\u6362\u3002\u4E13\u4E1A\u7EC6\u8282\u53EF\u7528\u73AF\u5883\u53D8\u91CF\u515C\u5E95\uFF08\u91CD\u542F\u751F\u6548\uFF09\uFF1ANOLO_CLI_TOOLS=normal|pro|verbose|hide \u63A7\u5236\u5DE5\u5177\u8F68\u8FF9\uFF0CNOLO_CLI_THINKING=show|hide \u63A7\u5236\u601D\u8003\u8FC7\u7A0B\u3002"
|
|
921
935
|
},
|
|
922
|
-
toolsUsage: { en: "Usage: /tools <normal|pro|hide|verbose>", zh: "\u7528\u6CD5\uFF1A/tools <normal|pro|hide|verbose>" },
|
|
923
|
-
toolsSet: { en: "Tool display: {0}", zh: "\u5DE5\u5177\u663E\u793A\uFF1A{0}" },
|
|
924
|
-
thinkingCurrent: {
|
|
925
|
-
en: "Thinking display: {0} (show | hide)",
|
|
926
|
-
zh: "\u601D\u8003\u663E\u793A\uFF1A{0}\uFF08show | hide\uFF09"
|
|
927
|
-
},
|
|
928
|
-
thinkingUsage: {
|
|
929
|
-
en: "Usage: /thinking <show|hide>",
|
|
930
|
-
zh: "\u7528\u6CD5\uFF1A/thinking <show|hide>"
|
|
931
|
-
},
|
|
932
|
-
thinkingSet: { en: "Thinking display: {0}", zh: "\u601D\u8003\u663E\u793A\uFF1A{0}" },
|
|
933
936
|
tasksRunning: { en: "Running processes ({0}):", zh: "\u8FD0\u884C\u4E2D\u7684\u8FDB\u7A0B\uFF08{0}\uFF09\uFF1A" },
|
|
934
937
|
tasksStopped: { en: "Stopped/exited ({0}):", zh: "\u5DF2\u505C\u6B62/\u5DF2\u9000\u51FA\uFF08{0}\uFF09\uFF1A" },
|
|
935
938
|
tasksNone: { en: "No processes.", zh: "\u6CA1\u6709\u8FD0\u884C\u4E2D\u7684\u8FDB\u7A0B\u3002" },
|
|
@@ -1002,14 +1005,18 @@ Use /switch, /switch list, /switch minimax-m3, or a full agent key.`,
|
|
|
1002
1005
|
},
|
|
1003
1006
|
themeSwitched: { en: "Switched to theme: {0}", zh: "\u5DF2\u5207\u6362\u5230\u4E3B\u9898\uFF1A{0}" },
|
|
1004
1007
|
themeUnknown: { en: "Unknown theme: {0}. Available themes: {1}", zh: "\u672A\u77E5\u4E3B\u9898\uFF1A{0}\u3002\u53EF\u7528\u4E3B\u9898\uFF1A{1}" },
|
|
1005
|
-
|
|
1006
|
-
en: "
|
|
1007
|
-
zh: "\
|
|
1008
|
-
},
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1008
|
+
cdUsage: {
|
|
1009
|
+
en: "Usage: /cd <path> (relative, absolute, ~, or -; takes effect on the next turn)",
|
|
1010
|
+
zh: "\u7528\u6CD5\uFF1A/cd <path>\uFF08\u76F8\u5BF9\u3001\u7EDD\u5BF9\u3001~ \u6216 - \u8DEF\u5F84\uFF1B\u4E0B\u4E2A turn \u751F\u6548\uFF09"
|
|
1011
|
+
},
|
|
1012
|
+
cdCurrent: { en: "Current directory: {0}", zh: "\u5F53\u524D\u76EE\u5F55\uFF1A{0}" },
|
|
1013
|
+
cdSwitched: { en: "Working directory: {0}", zh: "\u5DE5\u4F5C\u76EE\u5F55\uFF1A{0}" },
|
|
1014
|
+
cdNotFound: { en: "Directory not found: {0}", zh: "\u76EE\u5F55\u4E0D\u5B58\u5728\uFF1A{0}" },
|
|
1015
|
+
cdNotDir: { en: "Not a directory: {0}", zh: "\u4E0D\u662F\u76EE\u5F55\uFF1A{0}" },
|
|
1016
|
+
cdNoPrevious: { en: "No previous directory.", zh: "\u6CA1\u6709\u4E0A\u4E00\u4E2A\u76EE\u5F55\u3002" },
|
|
1017
|
+
cdSwitchedMessage: {
|
|
1018
|
+
en: "Working directory changed: {0} \u2192 {1}. Subsequent tool execution and file operations use the new directory.",
|
|
1019
|
+
zh: "\u5DE5\u4F5C\u76EE\u5F55\u5DF2\u5207\u6362\uFF1A{0} \u2192 {1}\u3002\u540E\u7EED\u5DE5\u5177\u6267\u884C\u4E0E\u6587\u4EF6\u64CD\u4F5C\u4EE5\u65B0\u76EE\u5F55\u4E3A\u51C6\u3002"
|
|
1013
1020
|
},
|
|
1014
1021
|
docAttachUsage: { en: "Usage: /doc attach <doc>", zh: "\u7528\u6CD5\uFF1A/doc attach <doc>" },
|
|
1015
1022
|
docList: { en: "Attached docs: {0}", zh: "\u5DF2\u6302\u8F7D\u6587\u6863\uFF1A{0}" },
|
|
@@ -1069,6 +1076,7 @@ Use /switch, /switch list, /switch minimax-m3, or a full agent key.`,
|
|
|
1069
1076
|
en: "Press Enter to run it now. Follow any prompts below, or Ctrl+C to cancel.",
|
|
1070
1077
|
zh: "\u6309 Enter \u7ACB\u5373\u6267\u884C\uFF0C\u6309\u4E0B\u65B9\u63D0\u793A\u64CD\u4F5C\uFF0C\u6216\u6309 Ctrl+C \u53D6\u6D88\u3002"
|
|
1071
1078
|
},
|
|
1079
|
+
actionGateConfirmHint: { en: "Enter=approve, n=cancel (or type y/yes).", zh: "Enter=\u6279\u51C6\uFF0Cn=\u53D6\u6D88\uFF08\u4E5F\u53EF\u8F93\u5165 y/yes\uFF09\u3002" },
|
|
1072
1080
|
actionGateInteractiveTitle: {
|
|
1073
1081
|
en: "This command requires an interactive terminal.",
|
|
1074
1082
|
zh: "\u8BE5\u547D\u4EE4\u9700\u8981\u4EA4\u4E92\u5F0F\u7EC8\u7AEF"
|
|
@@ -7780,6 +7788,7 @@ async function streamCursorChat(messages, options) {
|
|
|
7780
7788
|
const execCtx = {
|
|
7781
7789
|
tools: buildMcpToolDefinitions(options.tools),
|
|
7782
7790
|
executeTool: options.executeTool,
|
|
7791
|
+
...options.onActionGate ? { onActionGate: options.onActionGate } : {},
|
|
7783
7792
|
...options.searchWorkspace ? { searchWorkspace: options.searchWorkspace } : {},
|
|
7784
7793
|
...options.listWorkspaceEntries ? { listWorkspaceEntries: options.listWorkspaceEntries } : {},
|
|
7785
7794
|
toolCalls,
|
|
@@ -8323,6 +8332,23 @@ function decodeMcpArgValue(value) {
|
|
|
8323
8332
|
}
|
|
8324
8333
|
}
|
|
8325
8334
|
}
|
|
8335
|
+
async function executeCursorTool(ctx, call) {
|
|
8336
|
+
if ((call.name === "writeFile" || call.name === "editFile") && ctx.onActionGate) {
|
|
8337
|
+
let path = "the requested file";
|
|
8338
|
+
try {
|
|
8339
|
+
const parsed = JSON.parse(call.arguments);
|
|
8340
|
+
if (typeof parsed.path === "string" && parsed.path.trim()) path = parsed.path.trim();
|
|
8341
|
+
} catch {
|
|
8342
|
+
}
|
|
8343
|
+
const policy = evaluateFileWritePolicy({ tool: call.name, path, sessionApproved: false });
|
|
8344
|
+
if (policy.permissionDecision !== "ask") return ctx.executeTool ? ctx.executeTool(call) : { content: "tool execution unavailable" };
|
|
8345
|
+
const gate = { ...policy.permissionRequest, kind: "confirm", toolName: call.name, toolCallId: call.id };
|
|
8346
|
+
const result = await ctx.onActionGate(gate);
|
|
8347
|
+
if (result?.metadata?.actionGateResult?.status !== "completed") return result ?? { content: `${call.name} cancelled: file write confirmation was not approved.`, metadata: { cancelled: true, actionGateResult: { gateId: gate.id, status: "cancelled" } } };
|
|
8348
|
+
ctx.onActionGate = void 0;
|
|
8349
|
+
}
|
|
8350
|
+
return ctx.executeTool ? ctx.executeTool(call) : { content: "tool execution unavailable" };
|
|
8351
|
+
}
|
|
8326
8352
|
async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
8327
8353
|
const execCase = execMsg.message?.case;
|
|
8328
8354
|
if (execCase === "requestContextArgs") {
|
|
@@ -8363,7 +8389,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8363
8389
|
});
|
|
8364
8390
|
const startedAt = Date.now();
|
|
8365
8391
|
try {
|
|
8366
|
-
const toolResult = await ctx
|
|
8392
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8367
8393
|
id: args.toolCallId,
|
|
8368
8394
|
name: "readFile",
|
|
8369
8395
|
arguments: toolCallArgs
|
|
@@ -8433,7 +8459,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8433
8459
|
});
|
|
8434
8460
|
const startedAt = Date.now();
|
|
8435
8461
|
try {
|
|
8436
|
-
const toolResult = await ctx
|
|
8462
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8437
8463
|
id: args.toolCallId,
|
|
8438
8464
|
name: "execShell",
|
|
8439
8465
|
arguments: toolCallArgs
|
|
@@ -8591,7 +8617,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8591
8617
|
});
|
|
8592
8618
|
const startedAt = Date.now();
|
|
8593
8619
|
try {
|
|
8594
|
-
const toolResult = await ctx
|
|
8620
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8595
8621
|
id: args.toolCallId,
|
|
8596
8622
|
name: "writeFile",
|
|
8597
8623
|
arguments: toolCallArgs
|
|
@@ -8653,7 +8679,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8653
8679
|
});
|
|
8654
8680
|
const startedAt = Date.now();
|
|
8655
8681
|
try {
|
|
8656
|
-
const toolResult = await ctx
|
|
8682
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8657
8683
|
id: args.toolCallId,
|
|
8658
8684
|
name: "deleteFile",
|
|
8659
8685
|
arguments: toolCallArgs
|
|
@@ -8772,7 +8798,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8772
8798
|
});
|
|
8773
8799
|
const startedAt = Date.now();
|
|
8774
8800
|
try {
|
|
8775
|
-
const toolResult = await ctx
|
|
8801
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8776
8802
|
id: args.toolCallId,
|
|
8777
8803
|
name: toolName,
|
|
8778
8804
|
arguments: toolCallArgs
|
|
@@ -8881,6 +8907,7 @@ function createCursorProvider(config) {
|
|
|
8881
8907
|
...options?.onTextDelta ? { onTextDelta: options.onTextDelta } : {},
|
|
8882
8908
|
...options?.onReasoningDelta ? { onReasoningDelta: options.onReasoningDelta } : {},
|
|
8883
8909
|
...options?.onToolEvent ? { onToolEvent: options.onToolEvent } : {},
|
|
8910
|
+
...options?.onActionGate ? { onActionGate: options.onActionGate } : {},
|
|
8884
8911
|
...typeof options?.toolEventRound === "number" ? { toolEventRound: options.toolEventRound } : {}
|
|
8885
8912
|
});
|
|
8886
8913
|
}
|
|
@@ -11390,9 +11417,10 @@ async function generateLocalDialogTitle(input) {
|
|
|
11390
11417
|
const content = m.content.length > 500 ? `${m.content.slice(0, 500)}...` : m.content;
|
|
11391
11418
|
return { role: m.role, content };
|
|
11392
11419
|
});
|
|
11393
|
-
while (visibleMessages.length > 1 &&
|
|
11420
|
+
while (visibleMessages.length > 1 && transcriptLength(visibleMessages) > 4e3) {
|
|
11394
11421
|
visibleMessages.shift();
|
|
11395
11422
|
}
|
|
11423
|
+
const compactTranscript = buildTitleTranscript(visibleMessages);
|
|
11396
11424
|
if (visibleMessages.length === 0) {
|
|
11397
11425
|
return { title: fallbackTitle, source: "fallback" };
|
|
11398
11426
|
}
|
|
@@ -11408,11 +11436,11 @@ async function generateLocalDialogTitle(input) {
|
|
|
11408
11436
|
messages: [
|
|
11409
11437
|
{
|
|
11410
11438
|
role: "system",
|
|
11411
|
-
content:
|
|
11439
|
+
content: buildTitleSystemPrompt(input.existingTitle)
|
|
11412
11440
|
},
|
|
11413
11441
|
{
|
|
11414
11442
|
role: "user",
|
|
11415
|
-
content:
|
|
11443
|
+
content: compactTranscript
|
|
11416
11444
|
}
|
|
11417
11445
|
],
|
|
11418
11446
|
stream: false
|
|
@@ -11425,7 +11453,9 @@ async function generateLocalDialogTitle(input) {
|
|
|
11425
11453
|
}
|
|
11426
11454
|
const patchedBody = {
|
|
11427
11455
|
...parsedBody,
|
|
11428
|
-
reasoning_effort
|
|
11456
|
+
// response_format 与 reasoning_effort 同发会被 RunInfra 400 拒绝,
|
|
11457
|
+
// 标题路径统一走 json mode(跳过 thinking,实测 completion 个位数 tokens)。
|
|
11458
|
+
response_format: { type: "json_object" },
|
|
11429
11459
|
max_tokens: 512
|
|
11430
11460
|
};
|
|
11431
11461
|
const res = await input.fetchImpl(request.url, {
|
|
@@ -11438,7 +11468,9 @@ async function generateLocalDialogTitle(input) {
|
|
|
11438
11468
|
const data = safeParseJson(raw);
|
|
11439
11469
|
if (data) {
|
|
11440
11470
|
const parsed = input.parseResponse({ providerConfig, data });
|
|
11441
|
-
const generated = normalizeDialogTitle(
|
|
11471
|
+
const generated = normalizeDialogTitle(
|
|
11472
|
+
extractTitleFromLlmContent(parsed.content)
|
|
11473
|
+
);
|
|
11442
11474
|
if (generated) {
|
|
11443
11475
|
return { title: generated, source: "llm" };
|
|
11444
11476
|
}
|
|
@@ -11484,11 +11516,12 @@ async function generateLocalDialogTitle(input) {
|
|
|
11484
11516
|
body: JSON.stringify({
|
|
11485
11517
|
model: directConfig.model || input.agentConfig?.model || BUILTIN_TITLE_LLM_CONFIG.model,
|
|
11486
11518
|
messages: [
|
|
11487
|
-
{ role: "system", content:
|
|
11488
|
-
{ role: "user", content:
|
|
11519
|
+
{ role: "system", content: buildTitleSystemPrompt(input.existingTitle) },
|
|
11520
|
+
{ role: "user", content: compactTranscript }
|
|
11489
11521
|
],
|
|
11490
|
-
//
|
|
11491
|
-
reasoning_effort
|
|
11522
|
+
// 标题路径统一 json mode(跳过 thinking);response_format 与
|
|
11523
|
+
// reasoning_effort 同发会被 RunInfra 400 拒绝,故不发 reasoning_effort。
|
|
11524
|
+
response_format: { type: "json_object" },
|
|
11492
11525
|
max_tokens: 512,
|
|
11493
11526
|
stream: false
|
|
11494
11527
|
}),
|
|
@@ -11498,7 +11531,9 @@ async function generateLocalDialogTitle(input) {
|
|
|
11498
11531
|
const raw = await res.text().catch(() => "");
|
|
11499
11532
|
const data = safeParseJson(raw);
|
|
11500
11533
|
const rawContent = data?.choices?.[0]?.message?.content ?? "";
|
|
11501
|
-
const generated = normalizeDialogTitle(
|
|
11534
|
+
const generated = normalizeDialogTitle(
|
|
11535
|
+
extractTitleFromLlmContent(rawContent)
|
|
11536
|
+
);
|
|
11502
11537
|
if (generated) {
|
|
11503
11538
|
return { title: generated, source: "llm" };
|
|
11504
11539
|
}
|
|
@@ -11509,6 +11544,33 @@ async function generateLocalDialogTitle(input) {
|
|
|
11509
11544
|
}
|
|
11510
11545
|
return { title: fallbackTitle, source: "fallback" };
|
|
11511
11546
|
}
|
|
11547
|
+
function buildTitleTranscript(messages) {
|
|
11548
|
+
return messages.map((message) => `${message.role === "user" ? "User" : "Assistant"}: ${message.content}`).join("\n");
|
|
11549
|
+
}
|
|
11550
|
+
function transcriptLength(messages) {
|
|
11551
|
+
return buildTitleTranscript(messages).length;
|
|
11552
|
+
}
|
|
11553
|
+
function buildTitleSystemPrompt(existingTitle) {
|
|
11554
|
+
const title = existingTitle?.trim();
|
|
11555
|
+
const base = `${BUILTIN_TITLE_LLM_CONFIG.prompt}
|
|
11556
|
+
\u8F93\u51FA\u683C\u5F0F\uFF1A\u8FD4\u56DE JSON \u5BF9\u8C61 {"title": "<\u6807\u9898>"}\uFF0C\u9664\u6B64\u4E4B\u5916\u4E0D\u8981\u6709\u4EFB\u4F55\u5B57\u7B26\u3002`;
|
|
11557
|
+
return title ? `${base}
|
|
11558
|
+
\u5F53\u524D\u6807\u9898\uFF1A${title}\u3002\u5982\u679C\u5BF9\u8BDD\u4ECD\u5728\u8BA8\u8BBA\u540C\u4E00\u4E3B\u9898\uFF0C\u5FC5\u987B\u539F\u6837\u8F93\u51FA\u5F53\u524D\u6807\u9898\uFF0C\u4E0D\u8981\u6539\u5199\uFF1B\u53EA\u6709\u5F53\u5BF9\u8BDD\u660E\u786E\u8F6C\u5411\u4E86\u4E0D\u540C\u4E3B\u9898\u65F6\u624D\u751F\u6210\u65B0\u6807\u9898\u3002` : base;
|
|
11559
|
+
}
|
|
11560
|
+
function extractTitleFromLlmContent(raw) {
|
|
11561
|
+
if (raw.trim().startsWith("{")) {
|
|
11562
|
+
try {
|
|
11563
|
+
const parsed = JSON.parse(raw);
|
|
11564
|
+
if (typeof parsed?.title === "string" && parsed.title.trim()) {
|
|
11565
|
+
return parsed.title;
|
|
11566
|
+
}
|
|
11567
|
+
return "";
|
|
11568
|
+
} catch {
|
|
11569
|
+
return raw;
|
|
11570
|
+
}
|
|
11571
|
+
}
|
|
11572
|
+
return raw;
|
|
11573
|
+
}
|
|
11512
11574
|
function extractText(content) {
|
|
11513
11575
|
if (typeof content === "string") return content;
|
|
11514
11576
|
if (Array.isArray(content)) {
|
|
@@ -11580,6 +11642,7 @@ function createLocalDialogTitleGenerator(deps, ctx) {
|
|
|
11580
11642
|
return async (input) => {
|
|
11581
11643
|
const result = await generateLocalDialogTitle({
|
|
11582
11644
|
messages: input.messages,
|
|
11645
|
+
existingTitle: input.existingTitle,
|
|
11583
11646
|
env: deps.env,
|
|
11584
11647
|
fetchImpl: async (url, init) => fetchWithTransientRetry(
|
|
11585
11648
|
deps.fetchImpl ?? fetch,
|
|
@@ -11730,7 +11793,11 @@ async function writeDialog(args) {
|
|
|
11730
11793
|
if (needsTitleUpdate && args.titleGenerator) {
|
|
11731
11794
|
const rawLastUserText = extractLastUserText(args.input.messages);
|
|
11732
11795
|
const fallbackTitle = buildDialogFallbackTitleFromUserInput(rawLastUserText) || "Local agent run";
|
|
11733
|
-
titlePromise = args.titleGenerator({
|
|
11796
|
+
titlePromise = args.titleGenerator({
|
|
11797
|
+
messages: args.input.messages,
|
|
11798
|
+
fallbackTitle,
|
|
11799
|
+
existingTitle: existingTitle || void 0
|
|
11800
|
+
}).catch(() => null);
|
|
11734
11801
|
}
|
|
11735
11802
|
const plan = buildLocalDialogWritePlan({
|
|
11736
11803
|
input: args.input,
|
|
@@ -3,13 +3,13 @@ import {
|
|
|
3
3
|
} from "./chunk-DWLEOOGR.js";
|
|
4
4
|
import {
|
|
5
5
|
addContentAction
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-FGEYVPPR.js";
|
|
7
7
|
import {
|
|
8
8
|
upload
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-AV6KQCM5.js";
|
|
10
10
|
import {
|
|
11
11
|
getRuntimeServerContext
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-PYKV6FSC.js";
|
|
13
13
|
import {
|
|
14
14
|
API_ENDPOINTS
|
|
15
15
|
} from "./chunk-LCBAMY2M.js";
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
} from "./chunk-AGGIDPCZ.js";
|
|
7
7
|
import {
|
|
8
8
|
getModelConfig
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QDHZCAH3.js";
|
|
10
10
|
import {
|
|
11
11
|
isPlatformHostedImageModel
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-WL3UOGYO.js";
|
|
13
13
|
import {
|
|
14
14
|
asOptionalFiniteNumber
|
|
15
15
|
} from "./chunk-WWC7I6TA.js";
|
|
@@ -33,13 +33,13 @@ import {
|
|
|
33
33
|
resolvePlatformAuthToken,
|
|
34
34
|
resolvePlatformServerUrl,
|
|
35
35
|
resolveProviderTransportDecision
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-SP3DPVBH.js";
|
|
37
37
|
import {
|
|
38
38
|
clipCompactText
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-H4RYESI6.js";
|
|
40
40
|
import {
|
|
41
41
|
NOLO_CLIENT_VERSION_HEADER
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-WL3UOGYO.js";
|
|
43
43
|
import {
|
|
44
44
|
isRecord
|
|
45
45
|
} from "./chunk-KUG52IAP.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MODEL_LOOKUP_MAP
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QDHZCAH3.js";
|
|
4
4
|
import {
|
|
5
5
|
ALL_MODELS
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-56W233KG.js";
|
|
7
7
|
import {
|
|
8
8
|
PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VULELK4T.js";
|
|
10
10
|
|
|
11
11
|
// packages/ai/llm/getModelContextWindow.ts
|
|
12
12
|
var DEFAULT_CONTEXT_WINDOW = 256e3;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
deleteDialog,
|
|
3
3
|
toast
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BJLYCOZK.js";
|
|
5
5
|
import {
|
|
6
6
|
deleteServerSyncedCredential
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-U2A47SVI.js";
|
|
8
8
|
import {
|
|
9
9
|
require_date_fns
|
|
10
10
|
} from "./chunk-M76ECQRD.js";
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
} from "./chunk-HNMXYYJR.js";
|
|
20
20
|
import {
|
|
21
21
|
isSystemAdmin
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-3QJTD6DO.js";
|
|
23
23
|
import {
|
|
24
24
|
asRecordOrEmpty
|
|
25
25
|
} from "./chunk-KX6YBIHG.js";
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
createSpaceKey,
|
|
31
31
|
localSpaceAuthorityPatchStamp,
|
|
32
32
|
normalizeSpaceId
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-FGEYVPPR.js";
|
|
34
34
|
import {
|
|
35
35
|
patch,
|
|
36
36
|
read,
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
uploadFileAction,
|
|
44
44
|
upsertSSREntity,
|
|
45
45
|
write
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-AV6KQCM5.js";
|
|
47
47
|
import {
|
|
48
48
|
DB_PREFIX,
|
|
49
49
|
SEPARATOR,
|
|
@@ -72,7 +72,7 @@ import {
|
|
|
72
72
|
} from "./chunk-I42VC5KR.js";
|
|
73
73
|
import {
|
|
74
74
|
readAction
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-VULELK4T.js";
|
|
76
76
|
import {
|
|
77
77
|
extractUserId
|
|
78
78
|
} from "./chunk-BJIRLHJR.js";
|
|
@@ -91,13 +91,13 @@ import {
|
|
|
91
91
|
scheduleWriteReplication,
|
|
92
92
|
selectIdentityUserId,
|
|
93
93
|
selectRuntimeSnapshot
|
|
94
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-PYKV6FSC.js";
|
|
95
95
|
import {
|
|
96
96
|
createClientLogger,
|
|
97
97
|
fetchFromServer,
|
|
98
98
|
getAllServers,
|
|
99
99
|
logger
|
|
100
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-QOKAKDPE.js";
|
|
101
101
|
import {
|
|
102
102
|
buildTombstoneRecord,
|
|
103
103
|
isTombstoneRecord
|
|
@@ -4659,11 +4659,11 @@ var ENTITY_DELETE_STRATEGIES = {
|
|
|
4659
4659
|
await dispatch(deleteTable({ dbKey: key })).unwrap();
|
|
4660
4660
|
},
|
|
4661
4661
|
file: async (key, { thunkAPI }) => {
|
|
4662
|
-
const { deleteFileAction } = await import("./deleteFile-
|
|
4662
|
+
const { deleteFileAction } = await import("./deleteFile-44TUM34Y.js");
|
|
4663
4663
|
await deleteFileAction(key, thunkAPI);
|
|
4664
4664
|
},
|
|
4665
4665
|
image: async (key, { thunkAPI }) => {
|
|
4666
|
-
const { deleteFileAction } = await import("./deleteFile-
|
|
4666
|
+
const { deleteFileAction } = await import("./deleteFile-44TUM34Y.js");
|
|
4667
4667
|
await deleteFileAction(key, thunkAPI);
|
|
4668
4668
|
},
|
|
4669
4669
|
agent: async (key, { dispatch, userId, sourceServerOrigin }) => {
|
|
@@ -7053,7 +7053,7 @@ var fetchSpaceAction = async (input, thunkAPI) => {
|
|
|
7053
7053
|
const spaceKey = createSpaceKey.space(spaceId);
|
|
7054
7054
|
const readSpace = async (dbKey) => {
|
|
7055
7055
|
try {
|
|
7056
|
-
const { read: read2, readAndWait: readAndWait2 } = await import("./dbSlice-
|
|
7056
|
+
const { read: read2, readAndWait: readAndWait2 } = await import("./dbSlice-D5CNGWPD.js");
|
|
7057
7057
|
if (fresh) {
|
|
7058
7058
|
return await dispatch(readAndWait2(dbKey)).unwrap();
|
|
7059
7059
|
}
|
|
@@ -7467,7 +7467,7 @@ var spaceSlice = createSliceWithThunks2({
|
|
|
7467
7467
|
markDialogRead: create.asyncThunk(
|
|
7468
7468
|
async (payload, thunkAPI) => {
|
|
7469
7469
|
if (payload.dialogKey) {
|
|
7470
|
-
const { patch: patch2 } = await import("./dbSlice-
|
|
7470
|
+
const { patch: patch2 } = await import("./dbSlice-D5CNGWPD.js");
|
|
7471
7471
|
try {
|
|
7472
7472
|
await thunkAPI.dispatch(
|
|
7473
7473
|
patch2({ dbKey: payload.dialogKey, changes: { unreadAt: null } })
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getRuntimeServerContext,
|
|
3
3
|
scheduleDeleteReplication
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PYKV6FSC.js";
|
|
5
5
|
import {
|
|
6
6
|
fetchFromClientDb
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-QOKAKDPE.js";
|
|
8
8
|
import {
|
|
9
9
|
buildTombstoneRecord
|
|
10
10
|
} from "./chunk-GBRG75BQ.js";
|