nolo-cli 0.54.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-IVEOJ7L6.js → _executeModel-ANY4SIAS.js} +35 -36
- 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-D7AFLKQN.js → agentDeleteCommand-JWIKNWWI.js} +17 -17
- package/{agentEmailCommands-MXFZGF54.js → agentEmailCommands-PL22BEU5.js} +40 -41
- package/{agentListCommands-MP732Q23.js → agentListCommands-6NR7AQEK.js} +19 -19
- package/{agentMachineCommands-352JFJX4.js → agentMachineCommands-TASPU6OA.js} +18 -18
- package/{agentRecordCommands-G6EFHU3G.js → agentRecordCommands-Z64TA63M.js} +39 -40
- package/{agentRunCommand-UUWJMH7J.js → agentRunCommand-4QJQLPRW.js} +40 -41
- package/{agentRuntimeLocal-KWBPJ53H.js → agentRuntimeLocal-PCJJ56J2.js} +17 -17
- package/{agentSlice-V742SNKC.js → agentSlice-KYLDUSNN.js} +6 -6
- package/{appDeleteCommands-GV4TF52A.js → appDeleteCommands-WLHMJAVT.js} +19 -19
- package/{appDeployCommands-EZMUPNSW.js → appDeployCommands-CKON7N2E.js} +19 -19
- package/{appDeployStatusCommands-AAGELKAN.js → appDeployStatusCommands-PXRLDASH.js} +19 -19
- package/{appGetCommands-W37KDAON.js → appGetCommands-RAB5RM4M.js} +19 -19
- package/{appListCommands-IFDWBBNV.js → appListCommands-GU57FB62.js} +19 -19
- package/{authCommand-5HM57KPL.js → authCommand-QOPOEYEK.js} +7 -7
- package/{chatQueueReduxAdapter-ZXXP6E4O.js → chatQueueReduxAdapter-5O2WLITN.js} +17 -17
- 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-ALMVQQPG.js → chunk-3Z3DXZBD.js} +12 -12
- package/{chunk-RO2IUWZE.js → chunk-4NN3EK7H.js} +1 -1
- package/{chunk-WJV3G7BM.js → chunk-56W233KG.js} +1 -1
- package/{chunk-GBXR3CSM.js → chunk-5WADL4O7.js} +1 -1
- package/{chunk-J4Z6UI4C.js → chunk-6BGAQ3KR.js} +20 -15
- package/{chunk-R63FNYSI.js → chunk-6FQ2552G.js} +66 -28
- package/{chunk-6XIE5ZGI.js → chunk-6HIGYUBQ.js} +1 -1
- package/{chunk-MC66ASS6.js → chunk-6SZ52ORL.js} +8 -8
- package/{chunk-CULR4XB4.js → chunk-757BGY6Y.js} +1 -1
- package/{chunk-SQTVMYMU.js → chunk-7APQB6R6.js} +3 -3
- package/{chunk-RBJD33HM.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-BKPUPZ6W.js → chunk-BJLYCOZK.js} +25 -25
- package/{chunk-2T6XO4PK.js → chunk-CVT7L2WZ.js} +1 -1
- package/{chunk-XXZULHJ7.js → chunk-D3JQPONH.js} +1 -1
- package/{chunk-M2CGG6VJ.js → chunk-EVBFYPDC.js} +1 -1
- package/{chunk-KHCLMKZZ.js → chunk-EY7V7REW.js} +280 -6
- package/{chunk-4RXXP6WD.js → chunk-FGEYVPPR.js} +2 -2
- package/{chunk-ZMV5PCRS.js → chunk-GBADO3SM.js} +1 -1
- package/chunk-GLGD2JGY.js +1766 -0
- package/{chunk-W6N3GLUU.js → chunk-GV35EHNA.js} +81 -69
- package/{chunk-HR5XDXYM.js → chunk-H4RYESI6.js} +3 -3
- package/{chunk-FZMM2KZC.js → chunk-IKTHA3JH.js} +2 -2
- package/{chunk-WUMYQ2FE.js → chunk-INXBNYCG.js} +3 -3
- package/{chunk-PTHLNXGY.js → chunk-KUUTWU4I.js} +3 -3
- package/{chunk-RVHPY5PC.js → chunk-LA4IDAK7.js} +12 -12
- package/{chunk-OU7NGN5Y.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-7UFH6THF.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-YFHUQLJF.js → chunk-RU5D3B22.js} +1 -1
- package/{chunk-5Y5G76BJ.js → chunk-SP3DPVBH.js} +2 -2
- package/{chunk-5SXS7T5Q.js → chunk-TI5BCZCH.js} +18 -18
- package/{chunk-K7CNV7GI.js → chunk-U2A47SVI.js} +5 -5
- package/{chunk-45E65JER.js → chunk-U5Z7LFZF.js} +1 -1
- package/{chunk-DIQCV4FR.js → chunk-UITMHBVK.js} +1 -1
- package/{chunk-VM7K5EJL.js → chunk-UW4INMD2.js} +2 -2
- package/{chunk-SUFDWBLV.js → chunk-V4KZGLOI.js} +30 -30
- package/{chunk-ET7BXWAW.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-J7KVJAUQ.js → chunk-WL3UOGYO.js} +0 -1
- package/{chunk-PEMGYJNS.js → chunk-Y7LNKP32.js} +3 -3
- package/{chunk-DMCFF4KE.js → chunk-YBV6QJKM.js} +14 -8
- package/{codingSkills-BYQI6EPT.js → codingSkills-BCQXRZOI.js} +3 -4
- package/{createAgentAutomationAction-LE3ZYDT6.js → createAgentAutomationAction-UJLNFFFC.js} +18 -18
- package/{createDialogAction-2C6SR62D.js → createDialogAction-TJCX6GUE.js} +21 -22
- package/{createPageAction-X4C7K3OD.js → createPageAction-N3IYABHV.js} +19 -20
- package/{dbSlice-FWF5F4L7.js → dbSlice-D5CNGWPD.js} +5 -5
- package/{deleteFile-NPZ64DFN.js → deleteFile-44TUM34Y.js} +3 -3
- package/{dialogCommands-CP2U44A7.js → dialogCommands-35M6RBAC.js} +18 -18
- package/{dialogSlice-2SH5636X.js → dialogSlice-KO7ADD7H.js} +17 -17
- package/{docCreateCommands-A2KIJSF7.js → docCreateCommands-VXHZWQ3P.js} +20 -21
- package/{docDeleteCommands-NZ7XO4Z4.js → docDeleteCommands-4WFAJR6A.js} +20 -21
- package/{docReadCommands-VWVK4ZAR.js → docReadCommands-OYREEFAR.js} +20 -21
- package/{docStore-J6GQYKHS.js → docStore-5BU76DFK.js} +19 -19
- package/{docUpdateCommands-YTUEC6PN.js → docUpdateCommands-A7QERSME.js} +20 -21
- package/{getPricing-I53UFOPH.js → getPricing-HAU62AFM.js} +3 -3
- package/{handleSendMessageAction-MD325XZS.js → handleSendMessageAction-OSGQJQ45.js} +17 -17
- package/index.js +58 -58
- package/{machineCommands-TCNZV2DC.js → machineCommands-J43U3TX5.js} +39 -40
- package/{machineWsRunDispatch-QSX5IWPH.js → machineWsRunDispatch-Z2Z6STXZ.js} +39 -40
- package/{models-E2CYP4IB.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-N3RGX7EK.js → readlineWorkspace-YRPV6JPN.js} +462 -235
- package/{removeDialogAgentAction-RMPISD42.js → removeDialogAgentAction-JYT73FU2.js} +7 -7
- package/{runAgentClientLoop-R3NTOERA.js → runAgentClientLoop-5YM5WMAY.js} +33 -34
- 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-RC7XMYQ7.js → spaceCommands-MY26V52L.js} +17 -17
- package/{spaceSlice-KBVKKO3M.js → spaceSlice-JUIXC365.js} +18 -18
- package/{streamAgentChatTurn-WLWEBWSF.js → streamAgentChatTurn-XV5X5TNQ.js} +37 -38
- package/{switchDialogAgentAction-WGMMQHDI.js → switchDialogAgentAction-CJ5H6SAR.js} +5 -5
- package/{tableCommands-P2TXJ3CF.js → tableCommands-R6WFRDYF.js} +1 -1
- package/{tools-LSLDSUWU.js → tools-MIMELA2Y.js} +28 -29
- package/{tuiSummaryLlmCaller-TPBL4BV2.js → tuiSummaryLlmCaller-XJ5BKNNS.js} +13 -13
- package/{updateDialogTitleAction-4HJEARM7.js → updateDialogTitleAction-EIZUSWHR.js} +18 -18
- 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
|
-
} from "./chunk-
|
|
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";
|
|
@@ -215,9 +216,6 @@ import {
|
|
|
215
216
|
import {
|
|
216
217
|
DEFAULT_NOLO_SERVER_URL
|
|
217
218
|
} from "./chunk-OLZBQWZU.js";
|
|
218
|
-
import {
|
|
219
|
-
PLATFORM_HOSTED_NEMOTRON_35_LIGHTNING_MODEL
|
|
220
|
-
} from "./chunk-J7KVJAUQ.js";
|
|
221
219
|
import {
|
|
222
220
|
createTokenKey,
|
|
223
221
|
createTokenStatsKey,
|
|
@@ -232,7 +230,7 @@ import {
|
|
|
232
230
|
} from "./chunk-QSJ3HFEF.js";
|
|
233
231
|
import {
|
|
234
232
|
isSystemBuiltinTrustedAgentKey
|
|
235
|
-
} from "./chunk-
|
|
233
|
+
} from "./chunk-VULELK4T.js";
|
|
236
234
|
import {
|
|
237
235
|
isRecord
|
|
238
236
|
} from "./chunk-KUG52IAP.js";
|
|
@@ -534,6 +532,11 @@ var STRINGS = {
|
|
|
534
532
|
en: "Draft cleared.",
|
|
535
533
|
zh: "\u8F93\u5165\u8349\u7A3F\u5DF2\u6E05\u7A7A\u3002"
|
|
536
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
|
+
},
|
|
537
540
|
historyNoToken: {
|
|
538
541
|
en: "History requires an auth token. Run `nolo login` or set AUTH_TOKEN.",
|
|
539
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"
|
|
@@ -601,6 +604,10 @@ var STRINGS = {
|
|
|
601
604
|
// --- Tool trace copy ------------------------------------------------------
|
|
602
605
|
// The compact trace shows only status, never timing or output size: a line
|
|
603
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
|
+
},
|
|
604
611
|
toolNeedsAction: {
|
|
605
612
|
en: "needs action",
|
|
606
613
|
zh: "\u5F85\u786E\u8BA4"
|
|
@@ -842,9 +849,8 @@ var STRINGS = {
|
|
|
842
849
|
" /new Clear screen and start a fresh dialog",
|
|
843
850
|
" /compact Compact current dialog and fork a new one",
|
|
844
851
|
" /context Show workspace context and next actions",
|
|
852
|
+
" /cd <path> Change the working directory (takes effect on the next turn)",
|
|
845
853
|
" /runtime <mode> Use auto, local, or server runtime",
|
|
846
|
-
" /tools <mode> Control tool trace: hide, compact, verbose",
|
|
847
|
-
" /thinking <mode> Show or hide live model reasoning",
|
|
848
854
|
" /switch Pick an agent interactively (\u2191\u2193, Enter)",
|
|
849
855
|
" /switch list List agents as text",
|
|
850
856
|
" /switch <name> Switch directly by name, alias, or key (alias: /agent)",
|
|
@@ -854,7 +860,7 @@ var STRINGS = {
|
|
|
854
860
|
" /lang <zh|en> Switch interface language",
|
|
855
861
|
' /copy [all] Copy the last reply (or the full conversation with "all") to the clipboard',
|
|
856
862
|
" /mouse <on|off> Toggle mouse mode (off = drag to select text)",
|
|
857
|
-
" /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)",
|
|
858
864
|
" /math <on|off> Toggle math formula rendering (Unicode transcription)",
|
|
859
865
|
" /altscreen <on|off> Toggle the terminal alternate screen (default on; off shares shell scrollback)",
|
|
860
866
|
" Shift+drag Select text natively even while mouse mode is on (terminal bypass)",
|
|
@@ -881,9 +887,8 @@ var STRINGS = {
|
|
|
881
887
|
" /new \u6E05\u5C4F\u5E76\u5F00\u59CB\u65B0\u5BF9\u8BDD",
|
|
882
888
|
" /compact \u538B\u7F29\u5F53\u524D\u5BF9\u8BDD\u5E76\u5206\u53C9\u51FA\u65B0\u5BF9\u8BDD",
|
|
883
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",
|
|
884
891
|
" /runtime <mode> \u5207\u6362 runtime\uFF1Aauto\u3001local\u3001server",
|
|
885
|
-
" /tools <mode> \u5DE5\u5177\u8F68\u8FF9\u663E\u793A\uFF1Ahide\u3001compact\u3001verbose",
|
|
886
|
-
" /thinking <mode> \u663E\u793A\u6216\u9690\u85CF\u6A21\u578B\u7684\u5B9E\u65F6\u601D\u8003\u8FC7\u7A0B",
|
|
887
892
|
" /switch \u4EA4\u4E92\u5F0F\u9009\u62E9 agent\uFF08\u2191\u2193 \u79FB\u52A8\uFF0CEnter \u786E\u8BA4\uFF09",
|
|
888
893
|
" /switch list \u4EE5\u6587\u672C\u5217\u51FA\u5168\u90E8 agent",
|
|
889
894
|
" /switch <name> \u6309\u540D\u79F0\u3001\u522B\u540D\u6216 key \u76F4\u63A5\u5207\u6362\uFF08\u522B\u540D\uFF1A/agent\uFF09",
|
|
@@ -893,7 +898,7 @@ var STRINGS = {
|
|
|
893
898
|
" /lang <zh|en> \u5207\u6362\u754C\u9762\u8BED\u8A00",
|
|
894
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",
|
|
895
900
|
" /mouse <on|off> \u5207\u6362\u9F20\u6807\u6A21\u5F0F\uFF08off \u540E\u53EF\u76F4\u63A5\u62D6\u9009\u6587\u672C\uFF09",
|
|
896
|
-
" /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",
|
|
897
902
|
" /math <on|off> \u5207\u6362\u6570\u5B66\u516C\u5F0F\u6E32\u67D3\uFF08Unicode \u8F6C\u5199\uFF09",
|
|
898
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",
|
|
899
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",
|
|
@@ -924,21 +929,10 @@ var STRINGS = {
|
|
|
924
929
|
},
|
|
925
930
|
runtimeUsage: { en: "Usage: /runtime <auto|local|server>", zh: "\u7528\u6CD5\uFF1A/runtime <auto|local|server>" },
|
|
926
931
|
runtimeSet: { en: "Runtime: {0}", zh: "\u8FD0\u884C\u6A21\u5F0F\uFF1A{0}" },
|
|
927
|
-
|
|
928
|
-
en: "
|
|
929
|
-
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"
|
|
930
935
|
},
|
|
931
|
-
toolsUsage: { en: "Usage: /tools <normal|pro|hide|verbose>", zh: "\u7528\u6CD5\uFF1A/tools <normal|pro|hide|verbose>" },
|
|
932
|
-
toolsSet: { en: "Tool display: {0}", zh: "\u5DE5\u5177\u663E\u793A\uFF1A{0}" },
|
|
933
|
-
thinkingCurrent: {
|
|
934
|
-
en: "Thinking display: {0} (show | hide)",
|
|
935
|
-
zh: "\u601D\u8003\u663E\u793A\uFF1A{0}\uFF08show | hide\uFF09"
|
|
936
|
-
},
|
|
937
|
-
thinkingUsage: {
|
|
938
|
-
en: "Usage: /thinking <show|hide>",
|
|
939
|
-
zh: "\u7528\u6CD5\uFF1A/thinking <show|hide>"
|
|
940
|
-
},
|
|
941
|
-
thinkingSet: { en: "Thinking display: {0}", zh: "\u601D\u8003\u663E\u793A\uFF1A{0}" },
|
|
942
936
|
tasksRunning: { en: "Running processes ({0}):", zh: "\u8FD0\u884C\u4E2D\u7684\u8FDB\u7A0B\uFF08{0}\uFF09\uFF1A" },
|
|
943
937
|
tasksStopped: { en: "Stopped/exited ({0}):", zh: "\u5DF2\u505C\u6B62/\u5DF2\u9000\u51FA\uFF08{0}\uFF09\uFF1A" },
|
|
944
938
|
tasksNone: { en: "No processes.", zh: "\u6CA1\u6709\u8FD0\u884C\u4E2D\u7684\u8FDB\u7A0B\u3002" },
|
|
@@ -1011,14 +1005,18 @@ Use /switch, /switch list, /switch minimax-m3, or a full agent key.`,
|
|
|
1011
1005
|
},
|
|
1012
1006
|
themeSwitched: { en: "Switched to theme: {0}", zh: "\u5DF2\u5207\u6362\u5230\u4E3B\u9898\uFF1A{0}" },
|
|
1013
1007
|
themeUnknown: { en: "Unknown theme: {0}. Available themes: {1}", zh: "\u672A\u77E5\u4E3B\u9898\uFF1A{0}\u3002\u53EF\u7528\u4E3B\u9898\uFF1A{1}" },
|
|
1014
|
-
|
|
1015
|
-
en: "
|
|
1016
|
-
zh: "\
|
|
1017
|
-
},
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
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"
|
|
1022
1020
|
},
|
|
1023
1021
|
docAttachUsage: { en: "Usage: /doc attach <doc>", zh: "\u7528\u6CD5\uFF1A/doc attach <doc>" },
|
|
1024
1022
|
docList: { en: "Attached docs: {0}", zh: "\u5DF2\u6302\u8F7D\u6587\u6863\uFF1A{0}" },
|
|
@@ -1078,6 +1076,7 @@ Use /switch, /switch list, /switch minimax-m3, or a full agent key.`,
|
|
|
1078
1076
|
en: "Press Enter to run it now. Follow any prompts below, or Ctrl+C to cancel.",
|
|
1079
1077
|
zh: "\u6309 Enter \u7ACB\u5373\u6267\u884C\uFF0C\u6309\u4E0B\u65B9\u63D0\u793A\u64CD\u4F5C\uFF0C\u6216\u6309 Ctrl+C \u53D6\u6D88\u3002"
|
|
1080
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" },
|
|
1081
1080
|
actionGateInteractiveTitle: {
|
|
1082
1081
|
en: "This command requires an interactive terminal.",
|
|
1083
1082
|
zh: "\u8BE5\u547D\u4EE4\u9700\u8981\u4EA4\u4E92\u5F0F\u7EC8\u7AEF"
|
|
@@ -7789,6 +7788,7 @@ async function streamCursorChat(messages, options) {
|
|
|
7789
7788
|
const execCtx = {
|
|
7790
7789
|
tools: buildMcpToolDefinitions(options.tools),
|
|
7791
7790
|
executeTool: options.executeTool,
|
|
7791
|
+
...options.onActionGate ? { onActionGate: options.onActionGate } : {},
|
|
7792
7792
|
...options.searchWorkspace ? { searchWorkspace: options.searchWorkspace } : {},
|
|
7793
7793
|
...options.listWorkspaceEntries ? { listWorkspaceEntries: options.listWorkspaceEntries } : {},
|
|
7794
7794
|
toolCalls,
|
|
@@ -8332,6 +8332,23 @@ function decodeMcpArgValue(value) {
|
|
|
8332
8332
|
}
|
|
8333
8333
|
}
|
|
8334
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
|
+
}
|
|
8335
8352
|
async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
8336
8353
|
const execCase = execMsg.message?.case;
|
|
8337
8354
|
if (execCase === "requestContextArgs") {
|
|
@@ -8372,7 +8389,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8372
8389
|
});
|
|
8373
8390
|
const startedAt = Date.now();
|
|
8374
8391
|
try {
|
|
8375
|
-
const toolResult = await ctx
|
|
8392
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8376
8393
|
id: args.toolCallId,
|
|
8377
8394
|
name: "readFile",
|
|
8378
8395
|
arguments: toolCallArgs
|
|
@@ -8442,7 +8459,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8442
8459
|
});
|
|
8443
8460
|
const startedAt = Date.now();
|
|
8444
8461
|
try {
|
|
8445
|
-
const toolResult = await ctx
|
|
8462
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8446
8463
|
id: args.toolCallId,
|
|
8447
8464
|
name: "execShell",
|
|
8448
8465
|
arguments: toolCallArgs
|
|
@@ -8600,7 +8617,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8600
8617
|
});
|
|
8601
8618
|
const startedAt = Date.now();
|
|
8602
8619
|
try {
|
|
8603
|
-
const toolResult = await ctx
|
|
8620
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8604
8621
|
id: args.toolCallId,
|
|
8605
8622
|
name: "writeFile",
|
|
8606
8623
|
arguments: toolCallArgs
|
|
@@ -8662,7 +8679,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8662
8679
|
});
|
|
8663
8680
|
const startedAt = Date.now();
|
|
8664
8681
|
try {
|
|
8665
|
-
const toolResult = await ctx
|
|
8682
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8666
8683
|
id: args.toolCallId,
|
|
8667
8684
|
name: "deleteFile",
|
|
8668
8685
|
arguments: toolCallArgs
|
|
@@ -8781,7 +8798,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8781
8798
|
});
|
|
8782
8799
|
const startedAt = Date.now();
|
|
8783
8800
|
try {
|
|
8784
|
-
const toolResult = await ctx
|
|
8801
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8785
8802
|
id: args.toolCallId,
|
|
8786
8803
|
name: toolName,
|
|
8787
8804
|
arguments: toolCallArgs
|
|
@@ -8890,6 +8907,7 @@ function createCursorProvider(config) {
|
|
|
8890
8907
|
...options?.onTextDelta ? { onTextDelta: options.onTextDelta } : {},
|
|
8891
8908
|
...options?.onReasoningDelta ? { onReasoningDelta: options.onReasoningDelta } : {},
|
|
8892
8909
|
...options?.onToolEvent ? { onToolEvent: options.onToolEvent } : {},
|
|
8910
|
+
...options?.onActionGate ? { onActionGate: options.onActionGate } : {},
|
|
8893
8911
|
...typeof options?.toolEventRound === "number" ? { toolEventRound: options.toolEventRound } : {}
|
|
8894
8912
|
});
|
|
8895
8913
|
}
|
|
@@ -11433,18 +11451,12 @@ async function generateLocalDialogTitle(input) {
|
|
|
11433
11451
|
} else if (typeof request.init?.body === "object" && request.init?.body !== null) {
|
|
11434
11452
|
parsedBody = request.init.body;
|
|
11435
11453
|
}
|
|
11436
|
-
const patchedBody =
|
|
11454
|
+
const patchedBody = {
|
|
11437
11455
|
...parsedBody,
|
|
11438
|
-
// response_format 与 reasoning_effort 同发会被 RunInfra 400
|
|
11439
|
-
// json mode
|
|
11440
|
-
// 防御:显式置空,防未来 BUILTIN 配置或 requestOptions 残留该字段。
|
|
11456
|
+
// response_format 与 reasoning_effort 同发会被 RunInfra 400 拒绝,
|
|
11457
|
+
// 标题路径统一走 json mode(跳过 thinking,实测 completion 个位数 tokens)。
|
|
11441
11458
|
response_format: { type: "json_object" },
|
|
11442
|
-
max_tokens: 512
|
|
11443
|
-
reasoning_effort: void 0
|
|
11444
|
-
} : {
|
|
11445
|
-
...parsedBody,
|
|
11446
|
-
reasoning_effort: "low",
|
|
11447
|
-
max_tokens: 3072
|
|
11459
|
+
max_tokens: 512
|
|
11448
11460
|
};
|
|
11449
11461
|
const res = await input.fetchImpl(request.url, {
|
|
11450
11462
|
...request.init,
|
|
@@ -11507,9 +11519,10 @@ async function generateLocalDialogTitle(input) {
|
|
|
11507
11519
|
{ role: "system", content: buildTitleSystemPrompt(input.existingTitle) },
|
|
11508
11520
|
{ role: "user", content: compactTranscript }
|
|
11509
11521
|
],
|
|
11510
|
-
//
|
|
11511
|
-
//
|
|
11512
|
-
|
|
11522
|
+
// 标题路径统一 json mode(跳过 thinking);response_format 与
|
|
11523
|
+
// reasoning_effort 同发会被 RunInfra 400 拒绝,故不发 reasoning_effort。
|
|
11524
|
+
response_format: { type: "json_object" },
|
|
11525
|
+
max_tokens: 512,
|
|
11513
11526
|
stream: false
|
|
11514
11527
|
}),
|
|
11515
11528
|
signal: AbortSignal.timeout(timeoutMs)
|
|
@@ -11539,14 +11552,13 @@ function transcriptLength(messages) {
|
|
|
11539
11552
|
}
|
|
11540
11553
|
function buildTitleSystemPrompt(existingTitle) {
|
|
11541
11554
|
const title = existingTitle?.trim();
|
|
11542
|
-
const
|
|
11543
|
-
|
|
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`;
|
|
11544
11557
|
return title ? `${base}
|
|
11545
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;
|
|
11546
11559
|
}
|
|
11547
|
-
var isNemotronTitleModel = () => BUILTIN_TITLE_LLM_CONFIG.model === PLATFORM_HOSTED_NEMOTRON_35_LIGHTNING_MODEL;
|
|
11548
11560
|
function extractTitleFromLlmContent(raw) {
|
|
11549
|
-
if (
|
|
11561
|
+
if (raw.trim().startsWith("{")) {
|
|
11550
11562
|
try {
|
|
11551
11563
|
const parsed = JSON.parse(raw);
|
|
11552
11564
|
if (typeof parsed?.title === "string" && parsed.title.trim()) {
|
|
@@ -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";
|
|
@@ -22,13 +22,14 @@ var CODE_WORK_DISCIPLINE_BODY = `## \u6548\u7387\u4F18\u5148\uFF08\u7701 token\u
|
|
|
22
22
|
- **\u5EFA\u8BAE\u6C47\u62A5**\uFF1A\u4EA4\u4ED8\u65F6\u628A\u8FC7\u7A0B\u4E2D\u53D1\u73B0\u7684**\u4EFB\u4F55\u503C\u5F97\u7528\u6237\u77E5\u9053\u7684\u4E8B**\u90FD\u5217\u51FA\u6765\uFF08\u9884\u5B58\u65E0\u5173\u6539\u52A8\u3001\u65E2\u6709\u6D4B\u8BD5\u9694\u79BB\u95EE\u9898\u3001\u6F5C\u5728\u98CE\u9669\u3001\u540E\u7EED\u53EF\u4F18\u5316\u70B9\u3001\u9700\u7528\u6237\u51B3\u7B56\u7684\u4E8B\u9879\uFF09\uFF0C\u4E0D\u8981\u53EA\u62A5\u300C\u505A\u5B8C\u4E86\u300D\u3002
|
|
23
23
|
|
|
24
24
|
## Review \u7EAA\u5F8B\uFF08commit \u524D\u786C\u95E8\uFF09
|
|
25
|
-
- \
|
|
25
|
+
- **\u9636\u6BB5\u5212\u5206**\uFF1A\u4E25\u683C\u533A\u5206\u300C\u5B9E\u73B0/\u6784\u5EFA/\u5B89\u88C5/\u7528\u6237\u6D4B\u8BD5/\u6839\u636E\u53CD\u9988\u8FED\u4EE3\u300D\u4E0E\u300C\u51C6\u5907\u63D0\u4EA4/\u5408\u5E76\u300D\u9636\u6BB5\u3002UI/\u524D\u7AEF\u53CA\u5176\u4ED6\u9700\u7528\u6237\u9A8C\u6536\u7684\u4EFB\u52A1\uFF0C\u5728\u5B9E\u73B0\u9636\u6BB5\u4E0D\u5F97\u89E6\u53D1\u6216\u7B49\u5F85\u6700\u7EC8\u72EC\u7ACB review\uFF0C\u5E94\u5148\u4EA4\u4ED8\u53EF\u6D4B\u8BD5\u4EA7\u7269\u7B49\u5F85\u7528\u6237\u53CD\u9988\u3002
|
|
26
|
+
- \u6700\u7EC8 review \u4EC5\u5728\u7528\u6237\u660E\u786E\u786E\u8BA4\u51C6\u5907\u63D0\u4EA4/\u5408\u5E76\u65F6\u8FDB\u884C\u3002\u9664 \u22642 \u6B65\u96F6\u903B\u8F91\u98CE\u9669\u7684\u673A\u68B0\u6539\u52A8\uFF08\u9519\u522B\u5B57/\u683C\u5F0F/CSS \u5FAE\u8C03\uFF09\u5916\uFF0C\u6240\u6709\u4EE3\u7801\u53D8\u66F4 commit \u524D\u5FC5\u987B\u5148\u6D3E**\u5176\u4ED6 agent**\uFF08\u4E0D\u540C\u6A21\u578B\u5BB6\u65CF\u4F18\u5148\uFF09review \u5DE5\u4F5C\u533A diff\uFF08\`git diff\`\uFF0C\u672A\u63D0\u4EA4\u7684\u6539\u52A8\uFF09\u3002reviewer \u4E0D\u53EF\u662F\u672C\u6B21\u6539\u52A8\u7684\u4F5C\u8005\uFF08\u7F16\u6392\u8005\u4EE5\u81EA\u8EAB agent \u8EAB\u4EFD\u6D3E\u51FA\u7684\u5168\u65B0\u5B9E\u4F8B\u4E0D\u5171\u4EAB\u7F16\u6392\u8005\u4E0A\u4E0B\u6587\uFF0C\u4E0E\u4F5C\u8005\u8DE8\u6A21\u578B\u5BB6\u65CF\u65F6\u4E0D\u7B97\u300C\u81EA\u5DF1\u300D\uFF0C\u8DE8\u5BB6\u65CF\u4F18\u5148\u975E\u5F3A\u5236\uFF09\u3002\u65E0 review \u4E0D commit\u2014\u2014\u8FD9\u662F\u786C\u95E8\uFF0C\u4E0D\u662F\u5EFA\u8BAE\u3002
|
|
26
27
|
- \u6D3E\u53D1\u8D70 \`startAgentRun(agentKey, task, { ephemeral: true })\`\uFF08web/\u684C\u9762\u7AEF\u6CA1\u6709 nolo CLI\uFF0C\u6240\u6709 host \u90FD\u6709\u8FD9\u4E2A\u5DE5\u5177\uFF09\u3002ephemeral \u8BA9 review \u5B8C\u6210\u540E\u4E0D\u7559 dialog \u8BB0\u5F55\u3002
|
|
27
28
|
- task \u91CC\u5FC5\u987B\u5199\u660E\u5BA1\u67E5\u5BF9\u8C61\uFF08\`git diff\` \u770B\u5DE5\u4F5C\u533A\u6539\u52A8\uFF0C\u6216 \`git diff alpha...HEAD\` \u770B\u5DF2\u63D0\u4EA4\u6539\u52A8\uFF09\uFF0C\u5426\u5219 reviewer \u4E0D\u77E5\u9053\u5BA1\u4EC0\u4E48\u3002
|
|
28
29
|
- \u6309\u89D2\u8272\u52A0\u8F7D\u5BF9\u5E94 skill\uFF1Areviewer \u5148 \`loadSkill("coding-review")\` \u62FF\u901A\u7528\u6D41\u7A0B\uFF0C\u518D\u6309\u89D2\u8272 \`loadSkill("coding-review-<role>")\` \u62FF\u68C0\u67E5\u9879\u3002\u89D2\u8272\u6E05\u5355\uFF1Acode-quality\uFF08**\u5FC5\u8DD1**\uFF09/ architecture\uFF08**\u5355\u72EC\u6D3E\u53D1**\uFF0C\u4E2D\u7EA7\u4EE5\u4E0A\u95EE\u9898\uFF09/ security\uFF08\u6309\u9700 + \u5B89\u5168\u654F\u611F\u89E6\u53D1\u5FC5\u8DD1\uFF09/ frontend-ux\uFF08\u6D89\u53CA UI \u65F6\uFF09/ backend-data\uFF08\u6D89\u53CA server \u65F6\uFF09\u3002\u89D2\u8272\u5207\u5272\u7684\u76EE\u7684\u662F\u6CE8\u610F\u529B\u9694\u79BB\u2014\u2014\u6BCF\u4E2A\u89D2\u8272\u53EA\u76EF\u81EA\u5DF1\u7684\u68C0\u67E5\u9762\uFF0C\u6309\u9700\u542F\u7528\uFF0C\u907F\u514D\u4E00\u4E2A reviewer \u80CC\u6240\u6709\u89D2\u8272\u5BFC\u81F4\u6CE8\u610F\u529B\u7A00\u91CA\u3002
|
|
29
30
|
- Verdict \u6807\u51C6\uFF1AAPPROVE\uFF08\u65E0 CRITICAL \u6216 HIGH\uFF09\u2192 \u53EF commit\uFF1BWARNING\uFF08\u4EC5 HIGH\uFF09\u2192 \u62A5\u544A owner \u51B3\u5B9A\uFF1BBLOCK\uFF08\u6709 CRITICAL\uFF09\u2192 \u5FC5\u987B\u5148\u4FEE\u3002
|
|
30
31
|
- review \u53EF\u80FD\u591A\u8F6E\u6536\u655B\uFF08\u6709 finding\u2192\u4FEE\u2192\u518D\u5BA1\u2192\u76F4\u5230 APPROVE\uFF09\u3002\u6BCF\u8F6E review \u662F\u65E0\u4E0A\u4E0B\u6587\u7684\u2014\u2014reviewer \u53EA\u770B\u5F53\u524D\u5DE5\u4F5C\u533A diff\uFF0C\u4E0D\u5E26\u4E0A\u4E00\u8F6E finding \u8BB0\u5FC6\u3002
|
|
31
|
-
- **\
|
|
32
|
+
- **\u63D0\u4EA4\u524D review \u5FAA\u73AF**\uFF1A\u7528\u6237\u660E\u786E\u786E\u8BA4\u51C6\u5907\u63D0\u4EA4\u540E\u8FDB\u5165 review \u5FAA\u73AF\uFF0C\u6D41\u7A0B\uFF1A\u6D3E reviewer \u5BA1\u5DE5\u4F5C\u533A diff \u2192 \u82E5\u51FA finding \u5C31\u4FEE\u590D \u2192 \u590D\u5BA1 \u2192 \u76F4\u5230 APPROVE \u624D\u63D0\u4EA4\u3002\u5B89\u5168\u5BA1\u8BA1\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u7684\u53EA\u8BFB review \u53EF\u63D0\u524D\u505A\uFF0C\u4F46\u4E0D\u5F97\u963B\u585E\u7528\u6237\u6D4B\u8BD5\u3002\u9664\u975E\u8C03\u7528\u65B9\u660E\u786E\u8BF4\u300C\u53EA\u6539\u4E0D\u5BA1\u300D\u6216\u7528\u6237\u660E\u786E\u8DF3\u8FC7\uFF0C\u5426\u5219\u63D0\u4EA4\u524D\u5FC5\u987B\u8D70\u5B8C\u6574\u5FAA\u73AF\u3002
|
|
32
33
|
- \u82E5\u5904\u4E8E\u5355 Agent \u72EC\u5360\u73AF\u5883\u3001\u5176\u4ED6 agent \u4E0D\u53EF\u8FBE\u3001\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u76F4\u63A5\u63D0\u4EA4\uFF0C\u5141\u8BB8\u5E26\u539F\u56E0\u8DF3\u8FC7\uFF08commit message \u6CE8\u660E [no-review: \u539F\u56E0]\uFF09\uFF0C\u4F46\u9ED8\u8BA4\u5FC5\u987B\u6D3E review\u3002`;
|
|
33
34
|
var buildCodeWorkDiscipline = (heading) => `# ${heading}
|
|
34
35
|
|