nolo-cli 0.74.0-alpha.1 → 0.74.0
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-YEVZAJYX.js → _executeModel-IULR47HG.js} +20 -20
- package/{agentDeleteCommand-FSIMTL4K.js → agentDeleteCommand-2S4WCDQC.js} +16 -15
- package/{agentEmailCommands-HQT4EUOA.js → agentEmailCommands-V3ADGHX7.js} +30 -28
- package/{agentListCommands-2YWZYH52.js → agentListCommands-EPK3S274.js} +18 -17
- package/{agentMachineCommands-3TR7DVYO.js → agentMachineCommands-XMZWK7P3.js} +16 -15
- package/{agentRecordCommands-TRUY7Z6N.js → agentRecordCommands-WFPWLWOF.js} +29 -27
- package/{agentRunCommand-EHJOESHA.js → agentRunCommand-VUWNWC7C.js} +29 -27
- package/{agentRuntimeLocal-O6DZDTK4.js → agentRuntimeLocal-YRONTDLM.js} +15 -14
- package/{agentSlice-RRZS2UII.js → agentSlice-2P7OJFES.js} +1 -1
- package/{appDeleteCommands-HIJNWSK7.js → appDeleteCommands-YS7UGMP3.js} +17 -16
- package/{appDeployCommands-XULV2ZN6.js → appDeployCommands-XIE5Z4BE.js} +17 -16
- package/{appDeployStatusCommands-ETY4Z7K6.js → appDeployStatusCommands-54UDVYET.js} +17 -16
- package/{appGetCommands-M253LKDA.js → appGetCommands-6XYLBCRN.js} +17 -16
- package/{appListCommands-XYFXJMNP.js → appListCommands-VEGH7SF5.js} +17 -16
- package/{authCommand-EVGFLAHO.js → authCommand-JIEOFHXW.js} +84 -9
- package/{chatQueueReduxAdapter-LSBTGZW2.js → chatQueueReduxAdapter-GPYCH5Z2.js} +5 -5
- package/chromeCommands-VOIRNJBL.js +499 -0
- package/chromeOpsCommands-M7DPCX2T.js +258 -0
- package/{chunk-FARB62OB.js → chunk-3VPDELAP.js} +42 -31
- package/{chunk-CS36XM4N.js → chunk-4SZ37KLL.js} +21 -9
- package/{chunk-FPTQQSS6.js → chunk-73BR2IQT.js} +23 -2
- package/{chunk-PYXL2CJL.js → chunk-7FWPLK4M.js} +1 -1
- package/{chunk-DSRXPQWA.js → chunk-7QVPPOEC.js} +1 -1
- package/{chunk-KIS76A2P.js → chunk-AX7RMXSH.js} +1 -1
- package/{chunk-OXY5PKLG.js → chunk-BKJO7LDP.js} +2 -2
- package/{chunk-Q6FF2MCK.js → chunk-BOYUESO7.js} +1 -1
- package/{chunk-GBPZKFYK.js → chunk-BZNGCVAW.js} +1 -1
- package/{chunk-EXMHJN7C.js → chunk-CADAR6QU.js} +1 -1
- package/{chunk-2QDDKFG5.js → chunk-CQ3WA2NE.js} +77 -0
- package/{chunk-B62OSA77.js → chunk-D6XYLSOS.js} +1 -1
- package/{chunk-TI4CCL34.js → chunk-DM4FBSWG.js} +3 -3
- package/{chunk-JWO3RQSH.js → chunk-DUJWWUGV.js} +1 -1
- package/{chunk-XGZM6BTX.js → chunk-EBKMQULC.js} +66 -120
- package/{chunk-ZLPA7K55.js → chunk-ETLZZQJE.js} +2 -2
- package/chunk-FMODTASJ.js +109 -0
- package/{chunk-T7PQFKJU.js → chunk-FNGAF7C4.js} +2 -2
- package/{chunk-MYU3MJCF.js → chunk-GCJ3IS5M.js} +0 -1
- package/{chunk-XPQJXIF5.js → chunk-GHEJJGJI.js} +125 -25
- package/{chunk-DFY6PUV4.js → chunk-HTMVBPOF.js} +7 -7
- package/{chunk-VOEW2KF3.js → chunk-IDGYOD2O.js} +59 -55
- package/{chunk-YCDWJX45.js → chunk-KC5FAHVS.js} +1 -1
- package/{chunk-2JCTE5UN.js → chunk-KEZNSFGD.js} +3 -3
- package/{chunk-I4UWPYBH.js → chunk-KRMWO2NN.js} +2 -2
- package/{chunk-PGSKWZCB.js → chunk-LHDV2QUI.js} +1 -1
- package/{chunk-UJ63UXGE.js → chunk-MXUSPS2N.js} +289 -2
- package/{chunk-3IT2PFHL.js → chunk-NB5SIWC4.js} +1 -1
- package/{chunk-HXAINXPQ.js → chunk-NFT2AOK5.js} +2 -2
- package/{chunk-AUKZOZFG.js → chunk-NRALD3CC.js} +2 -2
- package/{chunk-CJ23A7U4.js → chunk-PF6O3GR3.js} +533 -57
- package/{chunk-K7AG465Q.js → chunk-PZCTYKGU.js} +3 -1
- package/chunk-QCZX4FTW.js +242 -0
- package/{chunk-QBA5KMJI.js → chunk-RZOJRTKR.js} +29 -15
- package/{chunk-OH5WRY7G.js → chunk-T25L377S.js} +18 -6
- package/{chunk-CMH2SYHX.js → chunk-TMPLPCVX.js} +1 -1
- package/{chunk-3U3EA3BO.js → chunk-U7YP7ECK.js} +3 -3
- package/{chunk-AWPU7GXU.js → chunk-URWDSZRW.js} +2 -2
- package/{chunk-Q4OT2DC7.js → chunk-WL2RKIBF.js} +1 -1
- package/{chunk-IDZTNRP2.js → chunk-X7HHHIOZ.js} +10 -2
- package/{chunk-57VRXRLF.js → chunk-Y3NZYLPG.js} +1 -1
- package/{chunk-V3ZKNK5D.js → chunk-ZVN6I33J.js} +5 -5
- package/{codingSkills-E6KSDNSJ.js → codingSkills-7S6523WH.js} +2 -2
- package/{contentThunks-476Y6CFR.js → contentThunks-THSCADSK.js} +6 -6
- package/{createAgentAutomationAction-DN4SFTP5.js → createAgentAutomationAction-WGN3UQ5A.js} +6 -6
- package/{createDialogAction-2GS4JCMU.js → createDialogAction-3EN2NLH7.js} +8 -8
- package/{createPageAction-44WTUMZ5.js → createPageAction-4VK473QV.js} +6 -6
- package/{dialogCommands-PE5FEFJ5.js → dialogCommands-PS4NWYY7.js} +17 -16
- package/{dialogSlice-7HEVCJFT.js → dialogSlice-CLV7SVOZ.js} +5 -5
- package/{docCreateCommands-IPDFZVPG.js → docCreateCommands-4KANZJR6.js} +16 -15
- package/{docDeleteCommands-VQ4Y66CM.js → docDeleteCommands-F2S2TRUF.js} +17 -16
- package/{docReadCommands-PD33VV27.js → docReadCommands-B2WDPZQE.js} +16 -15
- package/{docStore-LJ7KNKFB.js → docStore-TDLCHWPF.js} +1 -1
- package/{docUpdateCommands-CGUQ2JY3.js → docUpdateCommands-E7TKHRIO.js} +16 -15
- package/{getPricing-HRMSOF3E.js → getPricing-QVTUQQTM.js} +2 -2
- package/{handleSendMessageAction-ETA5QZIN.js → handleSendMessageAction-AHL3ZHE4.js} +5 -5
- package/index.js +118 -54
- package/{machineCommands-INAP62WH.js → machineCommands-OTABVXOA.js} +28 -26
- package/{machineWsRunDispatch-MT7VRNKX.js → machineWsRunDispatch-V4EVQSMZ.js} +28 -26
- package/package.json +1 -1
- package/{readlineWorkspace-5TV6ES57.js → readlineWorkspace-IIT3FQ6I.js} +439 -117
- package/{runAgentClientLoop-2PGZSCET.js → runAgentClientLoop-7TQM7IAR.js} +18 -18
- package/{spaceCommands-Y47DDAQD.js → spaceCommands-FSYH7AL4.js} +16 -15
- package/{streamAgentChatTurn-I6FUM6RV.js → streamAgentChatTurn-6EF6TVFK.js} +22 -22
- package/{tools-KU4X5HGZ.js → tools-R3QNWWTD.js} +15 -13
- package/{tuiSummaryLlmCaller-J5BEPLW5.js → tuiSummaryLlmCaller-PWOXTCBF.js} +5 -5
- package/{updateCommands-AJYSD73Y.js → updateCommands-Y363MC3L.js} +2 -2
- package/{updateDialogTitleAction-E3SNB75W.js → updateDialogTitleAction-F3EUOWOB.js} +6 -6
|
@@ -4,7 +4,12 @@ import {
|
|
|
4
4
|
refreshAntigravityOAuthToken,
|
|
5
5
|
refreshOpenAiCodexToken,
|
|
6
6
|
xaiRefresh
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-BZNGCVAW.js";
|
|
8
|
+
import {
|
|
9
|
+
createChromeConnectorClient,
|
|
10
|
+
createVerifiedChromeConnectorClient,
|
|
11
|
+
executeChromeConnectorTool
|
|
12
|
+
} from "./chunk-QCZX4FTW.js";
|
|
8
13
|
import {
|
|
9
14
|
defaultLoopbackRequest
|
|
10
15
|
} from "./chunk-EADNWBAZ.js";
|
|
@@ -35,7 +40,7 @@ import {
|
|
|
35
40
|
} from "./chunk-DWUCB2A3.js";
|
|
36
41
|
import {
|
|
37
42
|
buildLocalAgentLookupKeys
|
|
38
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-BOYUESO7.js";
|
|
39
44
|
import {
|
|
40
45
|
LOCAL_CODEX_AGENT_ID,
|
|
41
46
|
LOCAL_CODEX_AGENT_KEY,
|
|
@@ -55,11 +60,12 @@ import {
|
|
|
55
60
|
import {
|
|
56
61
|
inlineImageUrlsForCustomProvider,
|
|
57
62
|
prepareTools
|
|
58
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-KRMWO2NN.js";
|
|
59
64
|
import {
|
|
60
65
|
getServerProviderSecret
|
|
61
66
|
} from "./chunk-HS7MLR74.js";
|
|
62
67
|
import {
|
|
68
|
+
CHROME_CONNECTOR_TOOL_NAMES,
|
|
63
69
|
CONTROL_AGENT_RUN_ACTIONS,
|
|
64
70
|
buildControlAgentRunFunctionSchema,
|
|
65
71
|
buildStartAgentRunFunctionSchema,
|
|
@@ -72,7 +78,7 @@ import {
|
|
|
72
78
|
rememberMemoryFunctionSchema,
|
|
73
79
|
resolveAgentRequiredPackIds,
|
|
74
80
|
setTodoListFunc
|
|
75
|
-
} from "./chunk-
|
|
81
|
+
} from "./chunk-RZOJRTKR.js";
|
|
76
82
|
import {
|
|
77
83
|
fetchWithTransientRetry,
|
|
78
84
|
isTransientFetchError
|
|
@@ -95,13 +101,13 @@ import {
|
|
|
95
101
|
prepareTokenUsageData,
|
|
96
102
|
resolveBuiltinPlatformAgentConfig,
|
|
97
103
|
runKeyed
|
|
98
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-IDGYOD2O.js";
|
|
99
105
|
import {
|
|
100
106
|
BUILTIN_TITLE_LLM_CONFIG
|
|
101
107
|
} from "./chunk-EVBFYPDC.js";
|
|
102
108
|
import {
|
|
103
109
|
fetchServerSyncedCredential
|
|
104
|
-
} from "./chunk-
|
|
110
|
+
} from "./chunk-DM4FBSWG.js";
|
|
105
111
|
import {
|
|
106
112
|
require_date_fns
|
|
107
113
|
} from "./chunk-M76ECQRD.js";
|
|
@@ -117,7 +123,7 @@ import {
|
|
|
117
123
|
applySystemBuiltinSkillFilter,
|
|
118
124
|
expandEnabledPacks,
|
|
119
125
|
resolveEffectiveEnabledPacks
|
|
120
|
-
} from "./chunk-
|
|
126
|
+
} from "./chunk-GCJ3IS5M.js";
|
|
121
127
|
import {
|
|
122
128
|
DEFAULT_HYBRID_READ_TIMEOUT_MS,
|
|
123
129
|
Duration_exports,
|
|
@@ -133,6 +139,7 @@ import {
|
|
|
133
139
|
buildLocalWorkspaceToolset,
|
|
134
140
|
buildNoloWorkspaceCliToolExecutors,
|
|
135
141
|
codexStreamFailureStatus,
|
|
142
|
+
createDevinProvider,
|
|
136
143
|
createHybridRecordStore,
|
|
137
144
|
createLocalWorkspaceToolExecutors,
|
|
138
145
|
evaluateFileWritePolicy,
|
|
@@ -153,7 +160,7 @@ import {
|
|
|
153
160
|
resolveOpenAiCompatibleProviderConfig,
|
|
154
161
|
shouldUseGeminiNativeToolRoute,
|
|
155
162
|
summarizeToolArguments
|
|
156
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-PF6O3GR3.js";
|
|
157
164
|
import {
|
|
158
165
|
PlatformStreamInterruptedError,
|
|
159
166
|
buildPlatformChatCompletionRequest,
|
|
@@ -165,40 +172,43 @@ import {
|
|
|
165
172
|
readSseDataValues,
|
|
166
173
|
resolvePlatformChatProviderConfig,
|
|
167
174
|
shouldUsePlatformChatProvider
|
|
168
|
-
} from "./chunk-
|
|
175
|
+
} from "./chunk-NFT2AOK5.js";
|
|
176
|
+
import {
|
|
177
|
+
isDevinOAuthAgent
|
|
178
|
+
} from "./chunk-FMODTASJ.js";
|
|
169
179
|
import {
|
|
170
180
|
resolveAgentRuntimeConfigFromRecord,
|
|
171
181
|
resolveHistoricalToolContentCap
|
|
172
|
-
} from "./chunk-
|
|
182
|
+
} from "./chunk-AX7RMXSH.js";
|
|
173
183
|
import {
|
|
174
184
|
collectStablePromptPrefix,
|
|
175
185
|
convertMessagesToResponsesInput,
|
|
176
186
|
stablePromptCacheKey,
|
|
177
187
|
toResponsesTools
|
|
178
188
|
} from "./chunk-PUOC4YRO.js";
|
|
179
|
-
import {
|
|
180
|
-
isAntigravityOAuthAgent
|
|
181
|
-
} from "./chunk-PGSKWZCB.js";
|
|
182
|
-
import {
|
|
183
|
-
resolvePlatformAuthToken
|
|
184
|
-
} from "./chunk-CMH2SYHX.js";
|
|
185
189
|
import {
|
|
186
190
|
buildNoloWorkspaceOpenAiTools,
|
|
187
191
|
parseNoloWorkspaceToolArguments,
|
|
188
192
|
resolveRuntimeToolSurfaceForAgent
|
|
189
|
-
} from "./chunk-
|
|
193
|
+
} from "./chunk-ZVN6I33J.js";
|
|
190
194
|
import {
|
|
191
195
|
mergeAvailabilityDeadline,
|
|
192
196
|
resolveAvailabilityAction,
|
|
193
197
|
resolveCooldownGate
|
|
194
198
|
} from "./chunk-CJCJF5XB.js";
|
|
199
|
+
import {
|
|
200
|
+
isAntigravityOAuthAgent
|
|
201
|
+
} from "./chunk-LHDV2QUI.js";
|
|
202
|
+
import {
|
|
203
|
+
resolvePlatformAuthToken
|
|
204
|
+
} from "./chunk-TMPLPCVX.js";
|
|
195
205
|
import {
|
|
196
206
|
buildDialogFallbackTitleFromUserInput,
|
|
197
207
|
normalizeDialogTitle
|
|
198
208
|
} from "./chunk-2MBTWINN.js";
|
|
199
209
|
import {
|
|
200
210
|
normalizeUsage
|
|
201
|
-
} from "./chunk-
|
|
211
|
+
} from "./chunk-7QVPPOEC.js";
|
|
202
212
|
import {
|
|
203
213
|
clipCompactText,
|
|
204
214
|
createProviderCallTimingTracker,
|
|
@@ -211,7 +221,7 @@ import {
|
|
|
211
221
|
} from "./chunk-PSCNXBYA.js";
|
|
212
222
|
import {
|
|
213
223
|
isAdaptiveThinkingModelId
|
|
214
|
-
} from "./chunk-
|
|
224
|
+
} from "./chunk-MXUSPS2N.js";
|
|
215
225
|
import {
|
|
216
226
|
compactWhitespace
|
|
217
227
|
} from "./chunk-DWLEOOGR.js";
|
|
@@ -383,17 +393,17 @@ function newlineHint(platform = process.platform) {
|
|
|
383
393
|
var WELCOME_TIPS = {
|
|
384
394
|
en: [
|
|
385
395
|
`Tip: ${newlineHint()} for a newline; /help lists all commands.`,
|
|
386
|
-
"Tip:
|
|
396
|
+
"Tip: drag an image file into the terminal \u2014 nolo sees it. A plain path works too.",
|
|
387
397
|
"Tip: /doc attach <doc> brings a doc into this conversation's context.",
|
|
388
398
|
"Tip: /theme switches colors; terminal mode follows your terminal's day/night.",
|
|
389
399
|
"Tip: /history resumes a recent dialog; /agents lists your agents."
|
|
390
400
|
],
|
|
391
401
|
zh: [
|
|
392
402
|
`\u63D0\u793A\uFF1A${newlineHint()} \u6362\u884C\uFF1B/help \u5217\u51FA\u5168\u90E8\u547D\u4EE4\u3002`,
|
|
393
|
-
"\u63D0\u793A\uFF1A\
|
|
394
|
-
"\u63D0\u793A\uFF1A/doc attach <doc> \u628A\u6587\u6863\u6302\u8FDB\u5F53\u524D\u5BF9\u8BDD\
|
|
395
|
-
"\u63D0\u793A\uFF1A/theme \u5207\u6362\u914D\u8272\
|
|
396
|
-
"\u63D0\u793A\uFF1A/history \
|
|
403
|
+
"\u63D0\u793A\uFF1A\u628A\u56FE\u7247\u6587\u4EF6\u62D6\u8FDB\u7EC8\u7AEF\u6700\u7701\u4E8B\uFF1B\u4E5F\u80FD\u76F4\u63A5\u8F93\u5165\u56FE\u7247\u8DEF\u5F84\u3002",
|
|
404
|
+
"\u63D0\u793A\uFF1A/doc attach <doc> \u628A\u6587\u6863\u6302\u8FDB\u5F53\u524D\u5BF9\u8BDD\u4E0A\u4E0B\u6587\u3002",
|
|
405
|
+
"\u63D0\u793A\uFF1A/theme \u5207\u6362\u914D\u8272\uFF1B\u65E5\u591C\u95F4\u8DDF\u968F\u7EC8\u7AEF\u4E3B\u9898\u3002",
|
|
406
|
+
"\u63D0\u793A\uFF1A/history \u6062\u590D\u6700\u8FD1\u5BF9\u8BDD\uFF1B/agents \u5217\u51FA\u4F60\u7684\u667A\u80FD\u4F53\u3002"
|
|
397
407
|
]
|
|
398
408
|
};
|
|
399
409
|
function dailyWelcomeTip(now = Date.now()) {
|
|
@@ -910,6 +920,23 @@ var STRINGS = {
|
|
|
910
920
|
en: "Agents:",
|
|
911
921
|
zh: "\u667A\u80FD\u4F53\uFF1A"
|
|
912
922
|
},
|
|
923
|
+
// --- Paste / clipboard ------------------------------------------------
|
|
924
|
+
pasteUsage: {
|
|
925
|
+
en: "Usage: /paste (no arguments). Reads your clipboard now: an image becomes an attachment, text lands in the draft. Tip: dragging an image file onto the terminal is the most reliable way to attach a picture.",
|
|
926
|
+
zh: "\u7528\u6CD5\uFF1A/paste\uFF08\u65E0\u53C2\u6570\uFF09\u3002\u7ACB\u5373\u8BFB\u53D6\u526A\u8D34\u677F\uFF1A\u56FE\u7247\u53D8\u9644\u4EF6\uFF0C\u6587\u672C\u8FDB\u8349\u7A3F\u3002\u63D0\u793A\uFF1A\u628A\u56FE\u7247\u6587\u4EF6\u62D6\u8FDB\u7EC8\u7AEF\u662F\u9644\u4E0A\u56FE\u7247\u6700\u53EF\u9760\u7684\u65B9\u5F0F\u3002"
|
|
927
|
+
},
|
|
928
|
+
pasteTextInserted: {
|
|
929
|
+
en: "Pasted {0} characters from the clipboard into the draft.",
|
|
930
|
+
zh: "\u5DF2\u4ECE\u526A\u8D34\u677F\u7C98\u8D34 {0} \u4E2A\u5B57\u7B26\u5230\u8349\u7A3F\u3002"
|
|
931
|
+
},
|
|
932
|
+
pasteStaleDropped: {
|
|
933
|
+
en: "[nolo] Discarded a clipboard read that finished after the draft changed.",
|
|
934
|
+
zh: "[nolo] \u526A\u8D34\u677F\u8BFB\u53D6\u5B8C\u6210\u65F6\u8349\u7A3F\u5DF2\u53D8\u5316\uFF0C\u7ED3\u679C\u5DF2\u4E22\u5F03\u3002"
|
|
935
|
+
},
|
|
936
|
+
pasteFilePathHint: {
|
|
937
|
+
en: "file reference (path only, content not read): {0}",
|
|
938
|
+
zh: "\u6587\u4EF6\u5F15\u7528\uFF08\u4EC5\u8DEF\u5F84\uFF0C\u672A\u8BFB\u53D6\u5185\u5BB9\uFF09\uFF1A{0}"
|
|
939
|
+
},
|
|
913
940
|
agentsTip: {
|
|
914
941
|
en: "Tip: run /switch for the full picker, or /switch list for your private agents too.",
|
|
915
942
|
zh: "\u63D0\u793A\uFF1A\u7528 /switch \u6253\u5F00\u5B8C\u6574\u9009\u62E9\u5668\uFF0C\u6216 /switch list \u8FDE\u4F60\u7684\u79C1\u6709\u667A\u80FD\u4F53\u4E00\u8D77\u5217\u51FA\u3002"
|
|
@@ -931,6 +958,9 @@ var STRINGS = {
|
|
|
931
958
|
" /resume <dialogId> Resume a dialog directly by id",
|
|
932
959
|
" /lang <zh|en> Switch interface language",
|
|
933
960
|
' /copy [all] Copy the last reply (or the full conversation with "all") to the clipboard',
|
|
961
|
+
" /paste Read the clipboard now (image \u2192 attachment, text \u2192 draft)",
|
|
962
|
+
" Drag a file in Drop an image file on the terminal to attach it; other files stay paths",
|
|
963
|
+
" Shift+Enter / Ctrl+J Insert a newline in the draft",
|
|
934
964
|
" /mouse <on|off> Toggle mouse mode (off = drag to select text)",
|
|
935
965
|
" /auto <on|off> Toggle permission auto-approve (skip destructive-shell, external-file & file-write confirms)",
|
|
936
966
|
" /math <on|off> Toggle math formula rendering (Unicode transcription)",
|
|
@@ -969,6 +999,9 @@ var STRINGS = {
|
|
|
969
999
|
" /resume <dialogId> \u6309 id \u76F4\u63A5\u6062\u590D\u5BF9\u8BDD",
|
|
970
1000
|
" /lang <zh|en> \u5207\u6362\u754C\u9762\u8BED\u8A00",
|
|
971
1001
|
" /copy [all] \u590D\u5236\u6700\u540E\u4E00\u6761\u56DE\u590D\u5230\u526A\u8D34\u677F\uFF08\u52A0 all \u590D\u5236\u5B8C\u6574\u5BF9\u8BDD\uFF09",
|
|
1002
|
+
" /paste \u7ACB\u5373\u8BFB\u526A\u8D34\u677F\uFF08\u56FE\u7247\u2192\u9644\u4EF6\uFF0C\u6587\u672C\u2192\u8349\u7A3F\uFF09",
|
|
1003
|
+
" \u62D6\u5165\u6587\u4EF6 \u628A\u56FE\u7247\u6587\u4EF6\u62D6\u8FDB\u7EC8\u7AEF\u5373\u6210\u4E3A\u9644\u4EF6\uFF1B\u5176\u4ED6\u6587\u4EF6\u53EA\u7559\u8DEF\u5F84",
|
|
1004
|
+
" Shift+Enter / Ctrl+J \u5728\u8349\u7A3F\u91CC\u6362\u884C",
|
|
972
1005
|
" /mouse <on|off> \u5207\u6362\u9F20\u6807\u6A21\u5F0F\uFF08off \u540E\u53EF\u76F4\u63A5\u62D6\u9009\u6587\u672C\uFF09",
|
|
973
1006
|
" /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",
|
|
974
1007
|
" /math <on|off> \u5207\u6362\u6570\u5B66\u516C\u5F0F\u6E32\u67D3\uFF08Unicode \u8F6C\u5199\uFF09",
|
|
@@ -1672,6 +1705,17 @@ var LOCAL_SERVER_MEMORY_TOOL_NAME_SET = new Set(
|
|
|
1672
1705
|
);
|
|
1673
1706
|
|
|
1674
1707
|
// packages/cli/client/localRuntimeTools.ts
|
|
1708
|
+
var CLI_CHROME_CONNECTOR_TOOL_NAME_SET = new Set(
|
|
1709
|
+
CHROME_CONNECTOR_TOOL_NAMES
|
|
1710
|
+
);
|
|
1711
|
+
function filterCliChromeConnectorToolNames(toolNames) {
|
|
1712
|
+
return (toolNames ?? []).filter(
|
|
1713
|
+
(name) => CLI_CHROME_CONNECTOR_TOOL_NAME_SET.has(name)
|
|
1714
|
+
);
|
|
1715
|
+
}
|
|
1716
|
+
function buildCliChromeConnectorOpenAiTools(args) {
|
|
1717
|
+
return prepareTools(filterCliChromeConnectorToolNames(args.toolNames));
|
|
1718
|
+
}
|
|
1675
1719
|
function buildOpenAiTools(args) {
|
|
1676
1720
|
const toolset = buildLocalWorkspaceToolsetForEnv(args);
|
|
1677
1721
|
const workspaceToolNames = toolset.toolNames;
|
|
@@ -1719,6 +1763,7 @@ function buildOpenAiTools(args) {
|
|
|
1719
1763
|
toolNames: args.effectiveToolNames ?? workspaceToolNames,
|
|
1720
1764
|
exposeShellTools: toolset.exposeShellTools
|
|
1721
1765
|
}),
|
|
1766
|
+
...buildCliChromeConnectorOpenAiTools({ toolNames: args.toolNames }),
|
|
1722
1767
|
...buildServerPlatformOpenAiTools({ toolNames: args.toolNames }),
|
|
1723
1768
|
...buildNoloWorkspaceOpenAiTools({ toolNames: args.toolNames }),
|
|
1724
1769
|
...buildOrchestrationOpenAiTools({
|
|
@@ -9270,6 +9315,39 @@ var resolveCursorTransport = async (ctx) => {
|
|
|
9270
9315
|
return null;
|
|
9271
9316
|
};
|
|
9272
9317
|
|
|
9318
|
+
// packages/cli/client/providerResolution/devinTransport.ts
|
|
9319
|
+
var resolveDevinTransport = async (ctx) => {
|
|
9320
|
+
const { agentConfig, apiKeyRefResolver } = ctx;
|
|
9321
|
+
if (isDevinOAuthAgent(agentConfig)) {
|
|
9322
|
+
const accessToken = await apiKeyRefResolver("devin");
|
|
9323
|
+
if (!accessToken) {
|
|
9324
|
+
throw new Error(
|
|
9325
|
+
'OAuth credential for "devin" not found locally. Run `nolo auth devin`.'
|
|
9326
|
+
);
|
|
9327
|
+
}
|
|
9328
|
+
const model = agentConfig.model || "swe-2-max";
|
|
9329
|
+
logLocalRuntimeDiagnostic("provider.selected", {
|
|
9330
|
+
agentKey: agentConfig.key,
|
|
9331
|
+
transport: "devin-connect",
|
|
9332
|
+
provider: "devin",
|
|
9333
|
+
model,
|
|
9334
|
+
hasApiKey: true
|
|
9335
|
+
});
|
|
9336
|
+
const devinProvider = createDevinProvider({
|
|
9337
|
+
token: accessToken,
|
|
9338
|
+
model,
|
|
9339
|
+
fetchImpl: ctx.fetchImpl
|
|
9340
|
+
});
|
|
9341
|
+
return {
|
|
9342
|
+
model,
|
|
9343
|
+
complete: async (messages, options) => {
|
|
9344
|
+
return devinProvider.complete(messages, options);
|
|
9345
|
+
}
|
|
9346
|
+
};
|
|
9347
|
+
}
|
|
9348
|
+
return null;
|
|
9349
|
+
};
|
|
9350
|
+
|
|
9273
9351
|
// packages/cli/client/providerResolution/directOpenAiCompatibleTransport.ts
|
|
9274
9352
|
var resolveDirectOpenAiCompatibleTransport = async (ctx) => {
|
|
9275
9353
|
const { agentConfig, deps, fetchImpl, loopbackRequest, additionalToolNames, buildProviderOpenAiTools, recordLocalAvailability, apiKeyRefResolver, credentialBroker, syncFetcher, serverUrl, authToken } = ctx;
|
|
@@ -9663,6 +9741,7 @@ var TRANSPORTS = [
|
|
|
9663
9741
|
resolveAnthropicOAuthTransport,
|
|
9664
9742
|
resolveCodexOAuthTransport,
|
|
9665
9743
|
resolveCursorTransport,
|
|
9744
|
+
resolveDevinTransport,
|
|
9666
9745
|
resolveGeminiNativeToolTransport,
|
|
9667
9746
|
resolvePlatformProxyTransport,
|
|
9668
9747
|
// 兜底必须留在最后。
|
|
@@ -11317,6 +11396,19 @@ function createCliControlAgentRunExecutor(deps = {}) {
|
|
|
11317
11396
|
};
|
|
11318
11397
|
}
|
|
11319
11398
|
|
|
11399
|
+
// packages/cli/client/cliChromeConnectorToolExecutors.ts
|
|
11400
|
+
function buildCliChromeConnectorToolExecutors(args) {
|
|
11401
|
+
const client = createVerifiedChromeConnectorClient({
|
|
11402
|
+
client: args?.client ?? createChromeConnectorClient()
|
|
11403
|
+
});
|
|
11404
|
+
return Object.fromEntries(
|
|
11405
|
+
CHROME_CONNECTOR_TOOL_NAMES.map((toolName) => [
|
|
11406
|
+
toolName,
|
|
11407
|
+
(call) => executeChromeConnectorTool({ client, call })
|
|
11408
|
+
])
|
|
11409
|
+
);
|
|
11410
|
+
}
|
|
11411
|
+
|
|
11320
11412
|
// packages/cli/client/cliLocalToolExecutors.ts
|
|
11321
11413
|
var MAX_PASTED_TEXT_LINES_PER_READ = 200;
|
|
11322
11414
|
var PASTED_TEXT_EXPLICIT_OVERSHOOT_LINES = 20;
|
|
@@ -11603,6 +11695,12 @@ function buildLocalToolExecutors(args) {
|
|
|
11603
11695
|
};
|
|
11604
11696
|
},
|
|
11605
11697
|
...args.pastedTextStore ? { readPastedText: createReadPastedTextExecutor(args.pastedTextStore) } : {},
|
|
11698
|
+
// Nolo Browser Connector: the CLI drives the user's real Chrome through the same verified
|
|
11699
|
+
// client + executor as the desktop runtime (before this, every chrome_* call answered
|
|
11700
|
+
// "only executable in the Nolo desktop local runtime").
|
|
11701
|
+
...buildCliChromeConnectorToolExecutors(
|
|
11702
|
+
args.chromeConnectorClient ? { client: args.chromeConnectorClient } : {}
|
|
11703
|
+
),
|
|
11606
11704
|
...args.localToolExecutors ?? {}
|
|
11607
11705
|
};
|
|
11608
11706
|
}
|
|
@@ -11619,7 +11717,7 @@ var REFRESH_BY_PROVIDER = {
|
|
|
11619
11717
|
cursor: cursorRefresh
|
|
11620
11718
|
};
|
|
11621
11719
|
function isOAuthProvider(value) {
|
|
11622
|
-
return value === "chatgpt" || value === "xai" || value === "antigravity" || value === "claude" || value === "cursor";
|
|
11720
|
+
return value === "chatgpt" || value === "xai" || value === "antigravity" || value === "claude" || value === "cursor" || value === "devin";
|
|
11623
11721
|
}
|
|
11624
11722
|
function createOAuthApiKeyRefResolver(options = {}) {
|
|
11625
11723
|
return async (ref, opts) => {
|
|
@@ -12435,6 +12533,7 @@ function createCliLocalRuntimeAdapter(deps) {
|
|
|
12435
12533
|
workspaceRoot,
|
|
12436
12534
|
env: deps.env,
|
|
12437
12535
|
fetchImpl,
|
|
12536
|
+
...deps.chromeConnectorClient ? { chromeConnectorClient: deps.chromeConnectorClient } : {},
|
|
12438
12537
|
localToolExecutors: deps.localToolExecutors,
|
|
12439
12538
|
readXPost: deps.readXPost,
|
|
12440
12539
|
readXhsProfile: deps.readXhsProfile,
|
|
@@ -12511,6 +12610,7 @@ function createCliLocalRuntimeAdapter(deps) {
|
|
|
12511
12610
|
workspaceRoot,
|
|
12512
12611
|
env: deps.env,
|
|
12513
12612
|
fetchImpl,
|
|
12613
|
+
...deps.chromeConnectorClient ? { chromeConnectorClient: deps.chromeConnectorClient } : {},
|
|
12514
12614
|
localToolExecutors: deps.localToolExecutors,
|
|
12515
12615
|
readXPost: deps.readXPost,
|
|
12516
12616
|
readXhsProfile: deps.readXhsProfile,
|
|
@@ -5,14 +5,14 @@ import {
|
|
|
5
5
|
inlineImageUrlsForCustomProvider,
|
|
6
6
|
prepareTools,
|
|
7
7
|
shouldInlineImageUrlsForAgent
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KRMWO2NN.js";
|
|
9
9
|
import {
|
|
10
10
|
INVALID_TOOL_ARGS_REPLACEMENT,
|
|
11
11
|
buildInvalidToolCallSelfHealResult,
|
|
12
12
|
parseToolCallArguments,
|
|
13
13
|
performFetchRequest,
|
|
14
14
|
sanitizeOutboundMessages
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-4SZ37KLL.js";
|
|
16
16
|
import {
|
|
17
17
|
createSSEParser,
|
|
18
18
|
createToolRunId,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
toolRunSetPending,
|
|
24
24
|
toolRunStarted,
|
|
25
25
|
toolRunSucceeded
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-RZOJRTKR.js";
|
|
27
27
|
import {
|
|
28
28
|
getPublicImageAgentMode
|
|
29
29
|
} from "./chunk-VIDPVFP3.js";
|
|
@@ -35,10 +35,10 @@ import {
|
|
|
35
35
|
messageStreamEnd,
|
|
36
36
|
messageStreaming,
|
|
37
37
|
updateToolMessage
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-IDGYOD2O.js";
|
|
39
39
|
import {
|
|
40
40
|
streamAgentChatTurn
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-DM4FBSWG.js";
|
|
42
42
|
import {
|
|
43
43
|
addActiveController,
|
|
44
44
|
removeActiveController,
|
|
@@ -56,10 +56,10 @@ import {
|
|
|
56
56
|
import {
|
|
57
57
|
EMPTY_ASSISTANT_REPAIR_PROMPT,
|
|
58
58
|
getModelInfo
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-7QVPPOEC.js";
|
|
60
60
|
import {
|
|
61
61
|
getApiEndpoint
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-MXUSPS2N.js";
|
|
63
63
|
import {
|
|
64
64
|
toErrorMessage
|
|
65
65
|
} from "./chunk-HNMXYYJR.js";
|