nolo-cli 0.201.0-alpha.1 → 0.202.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{_executeModel-JGMNIGV2.js → _executeModel-IPRTPSW7.js} +34 -33
- package/{agentDeleteCommand-YUUEASG5.js → agentDeleteCommand-WHT2MMAP.js} +49 -47
- package/{agentEmailCommands-EO2WKZMM.js → agentEmailCommands-4LW2BFLY.js} +51 -49
- package/{agentListCommands-RQB27IJH.js → agentListCommands-2KF47HY6.js} +81 -45
- package/{agentMachineCommands-G3PU5ZEO.js → agentMachineCommands-QQCFQQ4T.js} +28 -26
- package/{agentProviderCommands-T6E3JCR6.js → agentProviderCommands-5ALOQLE5.js} +2 -2
- package/{agentRecordCommands-LY2HNY4R.js → agentRecordCommands-ARVXF2C2.js} +47 -45
- package/{agentRunCommand-6GS6JYDS.js → agentRunCommand-3IL5PW2S.js} +49 -47
- package/{agentRunControl-6HHESKDB.js → agentRunControl-ABDUPJLX.js} +10 -5
- package/{agentRuntimeLocal-75E4BYTF.js → agentRuntimeLocal-YXHJV65L.js} +24 -22
- package/{agentSlice-BCY3LBE4.js → agentSlice-BFDKYW6H.js} +4 -3
- package/{appDeleteCommands-PB6HW4NN.js → appDeleteCommands-OWJO3WFB.js} +29 -27
- package/{appDeployCommands-EF4OELAA.js → appDeployCommands-X7HLT27G.js} +29 -27
- package/{appDeployStatusCommands-CALVQWWC.js → appDeployStatusCommands-CHCZ7ZUD.js} +29 -27
- package/{appGetCommands-KFWCTFRM.js → appGetCommands-AZW2EE4R.js} +29 -27
- package/{appListCommands-Z5PW6DK7.js → appListCommands-YFN6DP6K.js} +29 -27
- package/{authCommand-RV5MQDWN.js → authCommand-W34UWJGR.js} +14 -13
- package/{builtinSkillRegistry-7RAJP7FD.js → builtinSkillRegistry-NJVHQIKY.js} +1 -1
- package/{chromeOpsCommands-BA6CS4DI.js → chromeOpsCommands-USKE4B4K.js} +15 -4
- package/{chunk-RE3B2OCC.js → chunk-266E37EL.js} +69 -14
- package/chunk-2BMURXSB.js +1863 -0
- package/{chunk-7MDGTSNI.js → chunk-2PI4QFAL.js} +174 -100
- package/{chunk-NABJEYPJ.js → chunk-2Q3LOAFE.js} +38 -3
- package/{chunk-OIVKFSFN.js → chunk-326HCB6L.js} +28 -24
- package/{chunk-4CEAZRZ4.js → chunk-33W4IFUU.js} +1 -1
- package/{chunk-V3MGT3RF.js → chunk-3CWF2EUZ.js} +8 -8
- package/{chunk-G6OOUQWJ.js → chunk-4KB6WQUL.js} +2 -0
- package/{chunk-DYQXB46J.js → chunk-4KPB3KWX.js} +2 -2
- package/{chunk-DGFSVNYE.js → chunk-4SH22ZG7.js} +5 -5
- package/{chunk-WAZ6BTSC.js → chunk-5E4FSR4J.js} +1 -1
- package/{chunk-PVD7CRYV.js → chunk-6I7ZP7KJ.js} +3 -3
- package/chunk-6UBGXX2W.js +12 -0
- package/{chunk-ZBCBFOWC.js → chunk-A2ZMIRLN.js} +2 -2
- package/{chunk-BQZNJCW3.js → chunk-ASG7VWPK.js} +3 -3
- package/{chunk-T2LB32MS.js → chunk-BLFZULEQ.js} +3 -3
- package/{chunk-JIFYXQRD.js → chunk-BTYQAODF.js} +26 -8
- package/{chunk-TDTTBXCO.js → chunk-C7PKPHK6.js} +334 -12
- package/{chunk-6WZQGT5X.js → chunk-CJ37ZMCQ.js} +6 -2
- package/{chunk-VHGD6FHV.js → chunk-CKAHAVMK.js} +40 -10
- package/{chunk-UNOILAZP.js → chunk-CLTGWJVT.js} +76 -4
- package/{chunk-Q6RMLYSA.js → chunk-CMLBKYEI.js} +4 -2
- package/{chunk-NVOYW6H4.js → chunk-CQHMBWZH.js} +12 -8
- package/{chunk-7KWPNGVJ.js → chunk-CTZ4O3XD.js} +1 -1
- package/{chunk-OHRDHS4N.js → chunk-CVCRAO6Q.js} +9 -4
- package/{chunk-7XSZNV4Q.js → chunk-D57YYGMD.js} +2 -2
- package/{chunk-TEC5UHQK.js → chunk-DHJXDGC3.js} +2 -2
- package/{chunk-QYOB7RVA.js → chunk-DKZJJ2NQ.js} +3 -2
- package/{chunk-A2LR6ORU.js → chunk-E2FC5RMU.js} +17 -14
- package/{chunk-R5HEP4LL.js → chunk-ETTDZBK5.js} +4 -4
- package/{chunk-LOVRT3E4.js → chunk-FWMOJTGR.js} +3722 -4851
- package/{chunk-ZWQUWF6W.js → chunk-G7Y4GXTY.js} +8 -14
- package/{chunk-5KTQVMCX.js → chunk-GOO6G4PY.js} +85 -0
- package/{chunk-FMOZ57LN.js → chunk-H7HWWNJB.js} +1 -1
- package/{chunk-QXM2ETU2.js → chunk-HJS5EIKS.js} +4 -4
- package/{chunk-EX7OZOYM.js → chunk-HKWGI3TM.js} +178 -311
- package/{chunk-BBGYSMUE.js → chunk-JH7KMNGT.js} +143 -19
- package/{chunk-BGYMAW6B.js → chunk-KDUYNEJ5.js} +43 -26
- package/{chunk-O5V7QQAF.js → chunk-LEX6DEH4.js} +114 -2
- package/{chunk-BTBT2566.js → chunk-MNUOMXJH.js} +412 -9
- package/{chunk-N7E3LQ4A.js → chunk-MZXWSY4E.js} +1 -1
- package/{chunk-ZQ3EAOY3.js → chunk-NTLJGRAT.js} +1 -1
- package/{chunk-WFUIXNKC.js → chunk-P4YLK2OD.js} +3 -3
- package/chunk-PRJ473FK.js +63 -0
- package/{chunk-2SHLT6JB.js → chunk-Q7GNBUT4.js} +2 -2
- package/{chunk-4AUOEYDB.js → chunk-RIKSN62L.js} +3 -3
- package/{chunk-GTP6VNWH.js → chunk-RQ22OZD7.js} +3 -3
- package/{chunk-XKX3NF6X.js → chunk-RS66RJLA.js} +2 -2
- package/{chunk-GC64WGMD.js → chunk-SM3NSZJV.js} +16 -5
- package/{chunk-DKLWAY3C.js → chunk-SSK4WNJA.js} +1 -1
- package/{chunk-LJODCHJO.js → chunk-SUBNV2JH.js} +3 -3
- package/{chunk-HLAL63BZ.js → chunk-T43B7LB2.js} +1 -1
- package/{chunk-HTLIKE5U.js → chunk-TWVVTUNG.js} +2 -2
- package/{chunk-X3RWBJDQ.js → chunk-U7HTU2S7.js} +1 -1
- package/{chunk-76YUTLOT.js → chunk-UIOEHFF6.js} +1 -1
- package/{chunk-IIX6VWLW.js → chunk-VCFU3BO5.js} +224 -38
- package/{chunk-QU3TLYBR.js → chunk-VEUSD6OF.js} +35 -11
- package/{chunk-4YMD7B4Y.js → chunk-WPOKOKZA.js} +2 -2
- package/{chunk-K6TZSON4.js → chunk-WTKYP6QO.js} +19 -5
- package/{chunk-2IVB6BQL.js → chunk-XW6B2RJW.js} +193 -56
- package/{chunk-ZSO5B6SW.js → chunk-Y2WUYX4I.js} +9 -0
- package/{chunk-7L7BVUKH.js → chunk-YAGFPXOX.js} +14 -14
- package/{chunk-TVGX5QIN.js → chunk-YUA6OAH5.js} +2 -2
- package/{chunk-IJBWBWP3.js → chunk-YV2RSLM4.js} +13 -13
- package/{chunk-MJWUBTK7.js → chunk-YZGNKHUM.js} +2 -2
- package/{commandRegistry-4DGK2ONJ.js → commandRegistry-HEBIO2A4.js} +87 -67
- package/{contentThunks-YYLEYO25.js → contentThunks-I4IHSDTM.js} +14 -13
- package/{cooldownCommands-KRILPXOZ.js → cooldownCommands-5SJ74DNP.js} +1 -1
- package/{createAgentAutomationAction-XKZ6TRRO.js → createAgentAutomationAction-WQCH5HR2.js} +14 -13
- package/{createDialogAction-6K5WSBCB.js → createDialogAction-CKMZK5JQ.js} +15 -14
- package/{createPageAction-FFFGCOUV.js → createPageAction-QAZHQGY7.js} +14 -13
- package/{dialogCommands-BFGCWWVT.js → dialogCommands-YMAHICPJ.js} +30 -28
- package/{dialogSlice-AA7672TX.js → dialogSlice-GEGACCH2.js} +13 -12
- package/{docCreateCommands-R3D5LUEG.js → docCreateCommands-SNMAKBXN.js} +28 -26
- package/{docDeleteCommands-7AGLMCJJ.js → docDeleteCommands-K52UESRC.js} +29 -27
- package/{docReadCommands-UVTD4FKH.js → docReadCommands-AG6LLHJ7.js} +28 -26
- package/{docStore-QDK5VGEH.js → docStore-B4EFT53J.js} +1 -1
- package/{docUpdateCommands-R2JHDAG4.js → docUpdateCommands-B5EZ7DYN.js} +28 -26
- package/{fetchMessages-HWBVATSE.js → fetchMessages-YY4SATNR.js} +1 -1
- package/{getPricing-E2PLNWCR.js → getPricing-3PQY3TGI.js} +3 -3
- package/{handleSendMessageAction-24WPHMZR.js → handleSendMessageAction-4BACQWOG.js} +70 -29
- package/index.js +7 -7
- package/{lib-4YTWAGY7.js → lib-5KKIBFIT.js} +439 -272
- package/{localDialogRead-CT5HGDMC.js → localDialogRead-FUXGZ57B.js} +1 -1
- package/{localRuntimeAdapter-4CC5KOMZ.js → localRuntimeAdapter-5CVSCXHI.js} +45 -43
- package/{machineCommands-FWTGWKAN.js → machineCommands-R7L4IBQL.js} +48 -46
- package/{machineWsRunDispatch-MJ5VOB7P.js → machineWsRunDispatch-KZHTW7DW.js} +46 -44
- package/{models-UUNO6DOL.js → models-PJBE6JDV.js} +2 -2
- package/{oauthTokenStore-PADKLNOC.js → oauthTokenStore-OEERZFUC.js} +2 -1
- package/package.json +1 -1
- package/{providerPresetApply-JGNMO2KX.js → providerPresetApply-HBBUUVJD.js} +6 -6
- package/{providerRegistry-33J3ZYFJ.js → providerRegistry-5LK2NXYE.js} +6 -6
- package/{readlineWorkspace-EQV6DNSG.js → readlineWorkspace-PDPEWRSG.js} +295 -137
- package/{runAgentClientLoop-W423XICK.js → runAgentClientLoop-QKV66PX5.js} +31 -30
- package/{runtimeDoctorCommands-NYBOTA6D.js → runtimeDoctorCommands-3VFVTGPI.js} +8 -7
- package/{secretCommands-N6CMCJDZ.js → secretCommands-MKU25CDP.js} +311 -3
- package/{settingThunks-YRYNPWJM.js → settingThunks-4WU7YE62.js} +2 -2
- package/{skillDiscovery-F3TMVQOJ.js → skillDiscovery-BKLWW2EZ.js} +2 -2
- package/{spaceCommands-J4OSJIYA.js → spaceCommands-VD3CZWXM.js} +27 -25
- package/{streamAgentChatTurn-BE3YIENW.js → streamAgentChatTurn-GM3UNSLS.js} +46 -43
- package/{tools-CXSCIKA4.js → tools-UJLEQBKI.js} +25 -24
- package/{tuiSummaryLlmCaller-FSOADMXK.js → tuiSummaryLlmCaller-73QO3HAD.js} +12 -12
- package/{updateCommands-KE6LP3QX.js → updateCommands-RVDAFHBT.js} +3 -3
- package/{updateDialogTitleAction-RCTYD5WV.js → updateDialogTitleAction-24QO27NT.js} +14 -13
- package/{windowsSelfUpdate-26TSFXEZ.js → windowsSelfUpdate-N2VH2OBW.js} +2 -2
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
refreshOpenAiCodexToken,
|
|
6
6
|
resolveServerSyncConfig,
|
|
7
7
|
xaiRefresh
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-4KPB3KWX.js";
|
|
9
9
|
import {
|
|
10
10
|
defaultLoopbackRequest
|
|
11
11
|
} from "./chunk-VP3BINY7.js";
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
OAUTH_PROVIDER_REFS,
|
|
21
21
|
buildLocalAgentLookupKeys
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-U7HTU2S7.js";
|
|
23
23
|
import {
|
|
24
24
|
LOCAL_CODEX_AGENT_ID,
|
|
25
25
|
LOCAL_CODEX_AGENT_KEY,
|
|
@@ -45,7 +45,7 @@ import {
|
|
|
45
45
|
} from "./chunk-7JWW65DU.js";
|
|
46
46
|
import {
|
|
47
47
|
applyPublicAgentCatalogOverride
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-RQ22OZD7.js";
|
|
49
49
|
import {
|
|
50
50
|
CliProviderQuotaError,
|
|
51
51
|
executeCli,
|
|
@@ -57,11 +57,11 @@ import {
|
|
|
57
57
|
import {
|
|
58
58
|
inferCaptureIntent,
|
|
59
59
|
resolveUserSkillRuntime
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-Q7GNBUT4.js";
|
|
61
61
|
import {
|
|
62
62
|
inlineImageUrlsForCustomProvider,
|
|
63
63
|
prepareTools
|
|
64
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-BLFZULEQ.js";
|
|
65
65
|
import {
|
|
66
66
|
getServerProviderSecret
|
|
67
67
|
} from "./chunk-HS7MLR74.js";
|
|
@@ -83,7 +83,7 @@ import {
|
|
|
83
83
|
resolveCliLocalRuntimeKeyCapability,
|
|
84
84
|
resolveCliLocalSpawnDispatch,
|
|
85
85
|
resolveStartAgentRunCwd
|
|
86
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-HKWGI3TM.js";
|
|
87
87
|
import {
|
|
88
88
|
fetchWithTransientRetry,
|
|
89
89
|
isTransientFetchError
|
|
@@ -91,11 +91,11 @@ import {
|
|
|
91
91
|
import {
|
|
92
92
|
deriveCredentialGroup,
|
|
93
93
|
deriveCustomProviderCredentialGroup
|
|
94
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-JH7KMNGT.js";
|
|
95
95
|
import {
|
|
96
96
|
resolveAgentRequiredPackIds,
|
|
97
97
|
resolveUserEnabledSkills
|
|
98
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-DKZJJ2NQ.js";
|
|
99
99
|
import {
|
|
100
100
|
applyBuiltinAgentRuntimeOverride,
|
|
101
101
|
applyTokenUsageToDayStats,
|
|
@@ -104,14 +104,14 @@ import {
|
|
|
104
104
|
resolveBuiltinPlatformAgentConfig,
|
|
105
105
|
runKeyed,
|
|
106
106
|
validateAskChoiceInput
|
|
107
|
-
} from "./chunk-
|
|
107
|
+
} from "./chunk-326HCB6L.js";
|
|
108
108
|
import {
|
|
109
109
|
BUILTIN_DIALOG_LLM_CHAT_FALLBACK_MODEL,
|
|
110
110
|
BUILTIN_TITLE_LLM_CONFIG
|
|
111
111
|
} from "./chunk-523DITKR.js";
|
|
112
112
|
import {
|
|
113
113
|
fetchServerSyncedCredential
|
|
114
|
-
} from "./chunk-
|
|
114
|
+
} from "./chunk-ETTDZBK5.js";
|
|
115
115
|
import {
|
|
116
116
|
getDefaultCliLocalRuntimeDb
|
|
117
117
|
} from "./chunk-P64WRQYV.js";
|
|
@@ -171,7 +171,7 @@ import {
|
|
|
171
171
|
runExecShellGates,
|
|
172
172
|
validateConfiguredRootExecutionLease,
|
|
173
173
|
verifyOwnerRouteAck
|
|
174
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-FWMOJTGR.js";
|
|
175
175
|
import {
|
|
176
176
|
accumulateGeminiChunks,
|
|
177
177
|
buildGeminiGenerateContentRequest,
|
|
@@ -183,7 +183,7 @@ import {
|
|
|
183
183
|
resolveAntigravityFinishReason,
|
|
184
184
|
resolveGeminiModelQuirks,
|
|
185
185
|
shouldUseGeminiNativeToolRoute
|
|
186
|
-
} from "./chunk-
|
|
186
|
+
} from "./chunk-VCFU3BO5.js";
|
|
187
187
|
import {
|
|
188
188
|
PlatformStreamInterruptedError,
|
|
189
189
|
buildPlatformChatCompletionRequest,
|
|
@@ -194,27 +194,27 @@ import {
|
|
|
194
194
|
readPlatformChatSseCompletion,
|
|
195
195
|
resolvePlatformChatProviderConfig,
|
|
196
196
|
shouldUsePlatformChatProvider
|
|
197
|
-
} from "./chunk-
|
|
197
|
+
} from "./chunk-CQHMBWZH.js";
|
|
198
198
|
import {
|
|
199
199
|
readSseDataValues,
|
|
200
200
|
readSseFrames
|
|
201
201
|
} from "./chunk-HNUWUO75.js";
|
|
202
202
|
import {
|
|
203
203
|
resolveAgentRuntimeConfigFromRecord
|
|
204
|
-
} from "./chunk-
|
|
204
|
+
} from "./chunk-MZXWSY4E.js";
|
|
205
205
|
import {
|
|
206
206
|
resolveHistoricalToolContentCap
|
|
207
207
|
} from "./chunk-2WZXXAQD.js";
|
|
208
208
|
import {
|
|
209
209
|
resolveToolImagePolicy
|
|
210
|
-
} from "./chunk-
|
|
210
|
+
} from "./chunk-6I7ZP7KJ.js";
|
|
211
211
|
import {
|
|
212
212
|
collectStablePromptPrefix,
|
|
213
213
|
convertMessagesToResponsesInput,
|
|
214
214
|
findAgentStatePairingIssues,
|
|
215
215
|
stablePromptCacheKey,
|
|
216
216
|
toResponsesTools
|
|
217
|
-
} from "./chunk-
|
|
217
|
+
} from "./chunk-CVCRAO6Q.js";
|
|
218
218
|
import {
|
|
219
219
|
EMPTY_TOOL_RESULT_TEXT,
|
|
220
220
|
createToolImageBudget,
|
|
@@ -230,7 +230,7 @@ import {
|
|
|
230
230
|
parseNoloWorkspaceToolArguments,
|
|
231
231
|
resolveRequestToolSurface,
|
|
232
232
|
resolveRuntimeToolSurfaceForAgent
|
|
233
|
-
} from "./chunk-
|
|
233
|
+
} from "./chunk-2Q3LOAFE.js";
|
|
234
234
|
import {
|
|
235
235
|
isCapacitySaturatedRateLimit,
|
|
236
236
|
mergeAvailabilityDeadline,
|
|
@@ -244,7 +244,7 @@ import {
|
|
|
244
244
|
} from "./chunk-2MBTWINN.js";
|
|
245
245
|
import {
|
|
246
246
|
normalizeUsage
|
|
247
|
-
} from "./chunk-
|
|
247
|
+
} from "./chunk-WTKYP6QO.js";
|
|
248
248
|
import {
|
|
249
249
|
isDevinOAuthAgent
|
|
250
250
|
} from "./chunk-5ZUL4CUO.js";
|
|
@@ -268,7 +268,7 @@ import {
|
|
|
268
268
|
} from "./chunk-TRZP7JZ7.js";
|
|
269
269
|
import {
|
|
270
270
|
createFileCredentialBroker
|
|
271
|
-
} from "./chunk-
|
|
271
|
+
} from "./chunk-UIOEHFF6.js";
|
|
272
272
|
import {
|
|
273
273
|
asRecordOrEmpty
|
|
274
274
|
} from "./chunk-KX6YBIHG.js";
|
|
@@ -283,7 +283,7 @@ import {
|
|
|
283
283
|
isTokenExpired,
|
|
284
284
|
readOAuthCredential,
|
|
285
285
|
resolveFreshAccessToken
|
|
286
|
-
} from "./chunk-
|
|
286
|
+
} from "./chunk-G7Y4GXTY.js";
|
|
287
287
|
import {
|
|
288
288
|
canonicalizeToolNames
|
|
289
289
|
} from "./chunk-AKE53VMW.js";
|
|
@@ -296,10 +296,7 @@ import {
|
|
|
296
296
|
} from "./chunk-LOEO7LRC.js";
|
|
297
297
|
import {
|
|
298
298
|
isAntigravityOAuthAgent
|
|
299
|
-
} from "./chunk-
|
|
300
|
-
import {
|
|
301
|
-
toErrorMessage
|
|
302
|
-
} from "./chunk-HNMXYYJR.js";
|
|
299
|
+
} from "./chunk-VEUSD6OF.js";
|
|
303
300
|
import {
|
|
304
301
|
ackRunRecord,
|
|
305
302
|
appendRunQueue,
|
|
@@ -323,7 +320,7 @@ import {
|
|
|
323
320
|
terminateRunProcess,
|
|
324
321
|
transitionRunToTerminal,
|
|
325
322
|
withQueueLock
|
|
326
|
-
} from "./chunk-
|
|
323
|
+
} from "./chunk-MNUOMXJH.js";
|
|
327
324
|
import {
|
|
328
325
|
TASK_PREVIEW_MAX,
|
|
329
326
|
formatListRunsCard,
|
|
@@ -343,16 +340,19 @@ import {
|
|
|
343
340
|
import {
|
|
344
341
|
buildProviderSessionHeaders,
|
|
345
342
|
resolvePlatformAuthToken
|
|
346
|
-
} from "./chunk-
|
|
343
|
+
} from "./chunk-WPOKOKZA.js";
|
|
347
344
|
import {
|
|
348
345
|
anthropicOAuthModelMaxOutputTokens,
|
|
349
346
|
findModelConfig,
|
|
350
347
|
isAdaptiveThinkingModelId
|
|
351
|
-
} from "./chunk-
|
|
348
|
+
} from "./chunk-SM3NSZJV.js";
|
|
352
349
|
import {
|
|
353
350
|
CLI_PROVIDER_VALUES,
|
|
354
351
|
isCliProvider
|
|
355
352
|
} from "./chunk-5BHQICF2.js";
|
|
353
|
+
import {
|
|
354
|
+
toErrorMessage
|
|
355
|
+
} from "./chunk-HNMXYYJR.js";
|
|
356
356
|
import {
|
|
357
357
|
isRecord
|
|
358
358
|
} from "./chunk-KUG52IAP.js";
|
|
@@ -380,7 +380,7 @@ import {
|
|
|
380
380
|
import {
|
|
381
381
|
agentRunCardLabels,
|
|
382
382
|
t
|
|
383
|
-
} from "./chunk-
|
|
383
|
+
} from "./chunk-CLTGWJVT.js";
|
|
384
384
|
import {
|
|
385
385
|
createTokenDialogIndexKey,
|
|
386
386
|
createTokenKey,
|
|
@@ -2301,7 +2301,7 @@ var resolveCliProviderTransport = async (ctx) => {
|
|
|
2301
2301
|
const prompt = buildPromptForCliProvider(messages);
|
|
2302
2302
|
try {
|
|
2303
2303
|
const reasoningEffortRaw = agentConfig.reasoning_effort;
|
|
2304
|
-
const reasoningEffort = reasoningEffortRaw === "low" || reasoningEffortRaw === "medium" || reasoningEffortRaw === "high" || reasoningEffortRaw === "xhigh" || reasoningEffortRaw === "max" ? reasoningEffortRaw : void 0;
|
|
2304
|
+
const reasoningEffort = reasoningEffortRaw === "low" || reasoningEffortRaw === "medium" || reasoningEffortRaw === "high" || reasoningEffortRaw === "xhigh" || reasoningEffortRaw === "max" || reasoningEffortRaw === "ultra" ? reasoningEffortRaw : void 0;
|
|
2305
2305
|
const cliOptions = {
|
|
2306
2306
|
...agentConfig.model ? { model: agentConfig.model } : {},
|
|
2307
2307
|
...reasoningEffort ? { reasoningEffort } : {},
|
|
@@ -2345,6 +2345,41 @@ var resolveCliProviderTransport = async (ctx) => {
|
|
|
2345
2345
|
// packages/agent-runtime/codexResponsesProvider.ts
|
|
2346
2346
|
import { createHash } from "node:crypto";
|
|
2347
2347
|
import { randomUUID as randomUUID2 } from "node:crypto";
|
|
2348
|
+
|
|
2349
|
+
// packages/agent-runtime/codexOAuthModelAliases.ts
|
|
2350
|
+
var CODEX_OAUTH_MODEL_ALIASES = {
|
|
2351
|
+
// sol 家族最新:gpt-6.1-sol
|
|
2352
|
+
"gpt-6-sol": {
|
|
2353
|
+
aliasOf: "gpt-6.1-sol",
|
|
2354
|
+
since: "2026-11-01",
|
|
2355
|
+
reason: "\u540C\u5BB6\u65CF\u6362\u4EE3\uFF0Cowner \u51B3\u5B9A\u900F\u660E\u91CD\u5B9A\u5411\uFF08sol \u5BB6\u65CF\u6700\u65B0\u4E3A gpt-6.1-sol\uFF09\u3002"
|
|
2356
|
+
},
|
|
2357
|
+
"gpt-5.6-sol": {
|
|
2358
|
+
aliasOf: "gpt-6.1-sol",
|
|
2359
|
+
since: "2026-11-01",
|
|
2360
|
+
reason: "\u540C\u5BB6\u65CF\u6362\u4EE3\uFF0Cowner \u51B3\u5B9A\u900F\u660E\u91CD\u5B9A\u5411\uFF08sol \u5BB6\u65CF\u6700\u65B0\u4E3A gpt-6.1-sol\uFF09\u3002"
|
|
2361
|
+
},
|
|
2362
|
+
// terra 家族最新:gpt-6.1-terra
|
|
2363
|
+
"gpt-5.6-terra": {
|
|
2364
|
+
aliasOf: "gpt-6.1-terra",
|
|
2365
|
+
since: "2026-11-01",
|
|
2366
|
+
reason: "\u540C\u5BB6\u65CF\u6362\u4EE3\uFF0Cowner \u51B3\u5B9A\u900F\u660E\u91CD\u5B9A\u5411\uFF08terra \u5BB6\u65CF\u6700\u65B0\u4E3A gpt-6.1-terra\uFF09\u3002"
|
|
2367
|
+
},
|
|
2368
|
+
// luna 家族最新:gpt-6-luna(上游无 6.1-luna,luna 家族最新即为 gpt-6-luna)
|
|
2369
|
+
"gpt-5.6-luna": {
|
|
2370
|
+
aliasOf: "gpt-6-luna",
|
|
2371
|
+
since: "2026-11-01",
|
|
2372
|
+
reason: "\u540C\u5BB6\u65CF\u6362\u4EE3\uFF0Cowner \u51B3\u5B9A\u900F\u660E\u91CD\u5B9A\u5411\uFF08luna \u5BB6\u65CF\u6700\u65B0\u4E3A gpt-6-luna\uFF09\u3002"
|
|
2373
|
+
}
|
|
2374
|
+
};
|
|
2375
|
+
function resolveCodexOAuthEffectiveModel(model) {
|
|
2376
|
+
const raw = asOptionalTrimmedString(model);
|
|
2377
|
+
if (!raw) return void 0;
|
|
2378
|
+
const normalized = raw.toLowerCase();
|
|
2379
|
+
return CODEX_OAUTH_MODEL_ALIASES[normalized]?.aliasOf ?? raw;
|
|
2380
|
+
}
|
|
2381
|
+
|
|
2382
|
+
// packages/agent-runtime/codexResponsesProvider.ts
|
|
2348
2383
|
var CODEX_RESPONSES_URL = "https://chatgpt.com/backend-api/codex/responses";
|
|
2349
2384
|
var CODEX_CLIENT_VERSION = "0.162.1";
|
|
2350
2385
|
var CODEX_ORIGINATOR = "codex_cli_rs";
|
|
@@ -2469,15 +2504,16 @@ function buildCodexRequestBody(args, identity = createCodexRequestIdentity(), se
|
|
|
2469
2504
|
const role = m && typeof m === "object" ? String(m.role) : "";
|
|
2470
2505
|
return role !== "system" && role !== "developer";
|
|
2471
2506
|
});
|
|
2507
|
+
const rawModel = asOptionalTrimmedString(args.openAiBody.model) ?? asOptionalTrimmedString(args.agentConfig.model) ?? "gpt-5.5";
|
|
2508
|
+
const model = resolveCodexOAuthEffectiveModel(rawModel) ?? rawModel;
|
|
2472
2509
|
const input = convertMessagesToCodexInput(nonSystem, resolveToolImagePolicy({
|
|
2473
2510
|
...args.agentConfig,
|
|
2474
|
-
model
|
|
2511
|
+
model,
|
|
2475
2512
|
routeKind: "codex/responses",
|
|
2476
2513
|
legacySupportsToolImages: false
|
|
2477
2514
|
}));
|
|
2478
2515
|
const instructions = collectInstructions(rawMessages, args.agentConfig.prompt);
|
|
2479
2516
|
const stableInstructions = collectStablePromptPrefix(rawMessages, args.agentConfig.prompt);
|
|
2480
|
-
const model = asOptionalTrimmedString(args.openAiBody.model) ?? asOptionalTrimmedString(args.agentConfig.model) ?? "gpt-5.5";
|
|
2481
2517
|
const tools = toResponsesTools(
|
|
2482
2518
|
Array.isArray(args.openAiBody.tools) ? args.openAiBody.tools : void 0
|
|
2483
2519
|
);
|
|
@@ -4202,9 +4238,16 @@ async function resolveLocalProvider(ctx) {
|
|
|
4202
4238
|
);
|
|
4203
4239
|
}
|
|
4204
4240
|
|
|
4205
|
-
// packages/cli/client/
|
|
4206
|
-
import { dirname
|
|
4241
|
+
// packages/cli/client/localRuntimePaths.ts
|
|
4242
|
+
import { dirname, extname, join } from "node:path";
|
|
4207
4243
|
import { fileURLToPath } from "node:url";
|
|
4244
|
+
function resolveLocalRuntimePaths(moduleUrl, compiled, execPath) {
|
|
4245
|
+
if (compiled) return { cliDir: dirname(execPath), cliEntrypoint: execPath };
|
|
4246
|
+
const modulePath = fileURLToPath(moduleUrl);
|
|
4247
|
+
const extension = extname(modulePath) === ".js" ? ".js" : ".ts";
|
|
4248
|
+
const cliDir = extension === ".js" ? dirname(modulePath) : dirname(dirname(modulePath));
|
|
4249
|
+
return { cliDir, cliEntrypoint: join(cliDir, `index${extension}`) };
|
|
4250
|
+
}
|
|
4208
4251
|
|
|
4209
4252
|
// packages/cli/client/localRunExecutionIsolation.ts
|
|
4210
4253
|
var UNSANDBOXED_HOST_EXECUTION_MESSAGE = "\u672C\u673A\u6267\u884C\u65E0\u6C99\u76D2\u9694\u79BB\uFF0C\u547D\u4EE4\u76F4\u63A5\u4F5C\u7528\u4E8E\u4F60\u7684\u5DE5\u4F5C\u533A";
|
|
@@ -4830,23 +4873,6 @@ async function writeCliDialogHistoryState(args) {
|
|
|
4830
4873
|
return false;
|
|
4831
4874
|
}
|
|
4832
4875
|
}
|
|
4833
|
-
async function markLocalDialogHistoryOriginComplete(args) {
|
|
4834
|
-
const existing = await readCliDialogHistoryState({
|
|
4835
|
-
store: args.store,
|
|
4836
|
-
dialogId: args.dialogId
|
|
4837
|
-
});
|
|
4838
|
-
if (existing) return false;
|
|
4839
|
-
return await writeCliDialogHistoryState({
|
|
4840
|
-
store: args.store,
|
|
4841
|
-
dialogId: args.dialogId,
|
|
4842
|
-
state: {
|
|
4843
|
-
complete: true,
|
|
4844
|
-
reason: "local-origin",
|
|
4845
|
-
...typeof args.messageCount === "number" ? { messageCount: args.messageCount } : {},
|
|
4846
|
-
updatedAt: Date.now()
|
|
4847
|
-
}
|
|
4848
|
-
});
|
|
4849
|
-
}
|
|
4850
4876
|
|
|
4851
4877
|
// packages/cli/client/cliDialogHistoryFallback.ts
|
|
4852
4878
|
var CHAT_ROLES = /* @__PURE__ */ new Set(["user", "assistant", "tool"]);
|
|
@@ -4857,7 +4883,13 @@ async function loadCliDialogHistoryWithSource(args) {
|
|
|
4857
4883
|
const { store, dialogId } = args;
|
|
4858
4884
|
const localMessages = await readDialogMessages({ store, dialogId });
|
|
4859
4885
|
const localState = await readCliDialogHistoryState({ store, dialogId });
|
|
4860
|
-
if (
|
|
4886
|
+
if (args.strictContinueHistory && localMessages.length > 0) {
|
|
4887
|
+
if (localState?.complete === false || localState?.reason === "remote-damaged") {
|
|
4888
|
+
throw new Error(`Strict continuation history load failed for ${dialogId}: local history incomplete (${localState.reason}${localState.reason === "remote-damaged" ? `; damaged remote records, ${localState.issueCount ?? 0} finding(s)` : ""})`);
|
|
4889
|
+
}
|
|
4890
|
+
return { messages: localMessages, source: "local" };
|
|
4891
|
+
}
|
|
4892
|
+
if (localMessages.length > 0 && localState?.complete === true) {
|
|
4861
4893
|
if (localState.reason === "remote-damaged") {
|
|
4862
4894
|
args.log?.(
|
|
4863
4895
|
`[cli] dialog history for ${dialogId} was restored damaged (${localState.issueCount ?? 0} finding(s)); using the local history (source: local)`
|
|
@@ -4883,6 +4915,7 @@ async function loadCliDialogHistoryWithSource(args) {
|
|
|
4883
4915
|
return { messages: [], source: "none" };
|
|
4884
4916
|
}
|
|
4885
4917
|
let analysis = null;
|
|
4918
|
+
let remoteError;
|
|
4886
4919
|
try {
|
|
4887
4920
|
const records = await fetchRemoteDialogMessageRecords({
|
|
4888
4921
|
base,
|
|
@@ -4893,6 +4926,7 @@ async function loadCliDialogHistoryWithSource(args) {
|
|
|
4893
4926
|
});
|
|
4894
4927
|
analysis = analyzeRemoteDialogRecords({ records, dialogId });
|
|
4895
4928
|
} catch (error) {
|
|
4929
|
+
remoteError = error;
|
|
4896
4930
|
args.log?.(
|
|
4897
4931
|
`[cli] dialog history remote fallback failed for ${dialogId}: ${toErrorMessage(error)}`
|
|
4898
4932
|
);
|
|
@@ -4901,7 +4935,18 @@ async function loadCliDialogHistoryWithSource(args) {
|
|
|
4901
4935
|
return { messages: [], source: "remote" };
|
|
4902
4936
|
}
|
|
4903
4937
|
if (args.strictContinueHistory && (!analysis || !analysis.complete)) {
|
|
4904
|
-
|
|
4938
|
+
if (analysis && !analysis.complete || isRecord(remoteError) && remoteError.historyDamaged === true) {
|
|
4939
|
+
await writeCliDialogHistoryState({ store, dialogId, state: {
|
|
4940
|
+
complete: false,
|
|
4941
|
+
reason: "remote-damaged",
|
|
4942
|
+
issueCount: analysis?.issues.length ?? 1,
|
|
4943
|
+
updatedAt: Date.now()
|
|
4944
|
+
} });
|
|
4945
|
+
} else {
|
|
4946
|
+
await persistIncompleteState({ store, dialogId, log: args.log });
|
|
4947
|
+
}
|
|
4948
|
+
const reason = analysis ? `remote history incomplete: ${describeIssues(analysis.issues)}` : toErrorMessage(remoteError);
|
|
4949
|
+
throw new Error(`Strict continuation history load failed for ${dialogId}: ${reason}`);
|
|
4905
4950
|
}
|
|
4906
4951
|
if (!analysis || analysis.messages.length === 0) {
|
|
4907
4952
|
if (analysis && analysis.issues.length > 0) {
|
|
@@ -5145,8 +5190,13 @@ async function fetchRemoteDialogMessageRecords(args) {
|
|
|
5145
5190
|
status: res.status
|
|
5146
5191
|
});
|
|
5147
5192
|
}
|
|
5148
|
-
|
|
5149
|
-
|
|
5193
|
+
let data;
|
|
5194
|
+
try {
|
|
5195
|
+
data = await res.json();
|
|
5196
|
+
} catch (error) {
|
|
5197
|
+
throw Object.assign(new Error(`getConvMsgs returned invalid JSON: ${toErrorMessage(error)}`), { historyDamaged: true });
|
|
5198
|
+
}
|
|
5199
|
+
if (!Array.isArray(data)) throw Object.assign(new Error("getConvMsgs returned invalid history payload"), { historyDamaged: true });
|
|
5150
5200
|
return data;
|
|
5151
5201
|
}
|
|
5152
5202
|
async function fetchRemoteDialogMessageRecordsViaBridge(args) {
|
|
@@ -5519,6 +5569,8 @@ function buildServerPlatformToolExecutors(args) {
|
|
|
5519
5569
|
}
|
|
5520
5570
|
|
|
5521
5571
|
// packages/cli/client/cliAgentRunToolExecutors.ts
|
|
5572
|
+
import { join as join3 } from "node:path";
|
|
5573
|
+
import { randomUUID as randomUUID3 } from "node:crypto";
|
|
5522
5574
|
import * as nodeFs2 from "node:fs";
|
|
5523
5575
|
|
|
5524
5576
|
// packages/agent-runtime/waitForRunTerminal.ts
|
|
@@ -5827,7 +5879,7 @@ function deriveAgentRunTodoStatus(input) {
|
|
|
5827
5879
|
// packages/cli/client/fileSystemStores.ts
|
|
5828
5880
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
5829
5881
|
import { homedir as nodeHomedir } from "node:os";
|
|
5830
|
-
import { dirname, join } from "node:path";
|
|
5882
|
+
import { dirname as dirname2, join as join2 } from "node:path";
|
|
5831
5883
|
var nodeFs = {
|
|
5832
5884
|
mkdirSync,
|
|
5833
5885
|
writeFileSync,
|
|
@@ -5839,7 +5891,7 @@ function resolveNoloHome(env, homedir2) {
|
|
|
5839
5891
|
if (custom && custom.trim()) return custom.trim();
|
|
5840
5892
|
const ambient = process.env.NOLO_HOME?.trim();
|
|
5841
5893
|
if (ambient) return ambient;
|
|
5842
|
-
return
|
|
5894
|
+
return join2(homedir2(), ".nolo");
|
|
5843
5895
|
}
|
|
5844
5896
|
function ensureDir(dir, fs) {
|
|
5845
5897
|
fs.mkdirSync(dir, { recursive: true });
|
|
@@ -5861,8 +5913,8 @@ function createFileSystemTodoStore(opts = {}) {
|
|
|
5861
5913
|
const homedir2 = opts.homedir ?? nodeHomedir;
|
|
5862
5914
|
const fs = opts.fs ?? nodeFs;
|
|
5863
5915
|
const noloHome = resolveNoloHome(env, homedir2);
|
|
5864
|
-
const filePath = opts.filePath ??
|
|
5865
|
-
const oldFilePath =
|
|
5916
|
+
const filePath = opts.filePath ?? join2(noloHome, "agent_run_todos.json");
|
|
5917
|
+
const oldFilePath = join2(noloHome, "todos.json");
|
|
5866
5918
|
const loadMap = () => {
|
|
5867
5919
|
if (!opts.filePath && !fs.existsSync(filePath) && fs.existsSync(oldFilePath)) {
|
|
5868
5920
|
const oldData = readJson(oldFilePath, fs);
|
|
@@ -5887,7 +5939,7 @@ function createFileSystemTodoStore(opts = {}) {
|
|
|
5887
5939
|
}
|
|
5888
5940
|
}
|
|
5889
5941
|
}
|
|
5890
|
-
ensureDir(
|
|
5942
|
+
ensureDir(dirname2(filePath), fs);
|
|
5891
5943
|
writeJson(filePath, { todos: [...map2.values()] }, fs);
|
|
5892
5944
|
return map2;
|
|
5893
5945
|
}
|
|
@@ -5901,7 +5953,7 @@ function createFileSystemTodoStore(opts = {}) {
|
|
|
5901
5953
|
return map;
|
|
5902
5954
|
};
|
|
5903
5955
|
const persist = (map) => {
|
|
5904
|
-
ensureDir(
|
|
5956
|
+
ensureDir(dirname2(filePath), fs);
|
|
5905
5957
|
writeJson(filePath, { todos: [...map.values()] }, fs);
|
|
5906
5958
|
};
|
|
5907
5959
|
return {
|
|
@@ -7231,6 +7283,7 @@ function buildRunStatusPayload(reconciled, deps, opts = {}) {
|
|
|
7231
7283
|
content: JSON.stringify({
|
|
7232
7284
|
runId: reconciled.runId,
|
|
7233
7285
|
found: true,
|
|
7286
|
+
...opts.includeCheckpoint === true ? { checkpoint: reconciled.partialCheckpoint ? { ...reconciled.partialCheckpoint, available: true, final: false } : { available: false, final: false, reason: "checkpoint_missing" } } : {},
|
|
7234
7287
|
status: reconciled.status,
|
|
7235
7288
|
pid: reconciled.pid ?? null,
|
|
7236
7289
|
agentKey: reconciled.agentKey,
|
|
@@ -7379,6 +7432,33 @@ function createCliStartAgentRunExecutor(deps = {}) {
|
|
|
7379
7432
|
const message = buildDelegatedTaskContent(task, args.input);
|
|
7380
7433
|
const payloadMetrics = calculateDelegatedPayloadMetrics(task, args.input, message);
|
|
7381
7434
|
const isReadOnlyTask = args.readOnly === true;
|
|
7435
|
+
const instaboxArgs = [];
|
|
7436
|
+
const instaboxFields = ["instaboxWorkspace", "instaboxManifest", "instaboxArtifactDir", "instaboxAllowRemoteRelease", "instaboxAllowPaid"];
|
|
7437
|
+
if (dispatch.runtimeKey !== "instabox" && instaboxFields.some((key) => args[key] !== void 0)) {
|
|
7438
|
+
throw new Error("instabox \u53C2\u6570\u4EC5\u9002\u7528\u4E8E runtimeKey=instabox");
|
|
7439
|
+
}
|
|
7440
|
+
if (dispatch.runtimeKey === "instabox") {
|
|
7441
|
+
const workspace = args.instaboxWorkspace ?? "empty";
|
|
7442
|
+
if (workspace !== "empty" && workspace !== "snapshot") throw new Error("instaboxWorkspace \u5FC5\u987B\u4E3A empty|snapshot");
|
|
7443
|
+
const manifest = typeof args.instaboxManifest === "string" ? args.instaboxManifest.trim() : "";
|
|
7444
|
+
if (workspace === "snapshot" && !manifest) throw new Error("instaboxWorkspace=snapshot \u5FC5\u987B\u63D0\u4F9B instaboxManifest");
|
|
7445
|
+
if (workspace === "empty" && args.instaboxManifest !== void 0) throw new Error("instaboxWorkspace=empty \u4E0D\u5F97\u63D0\u4F9B instaboxManifest");
|
|
7446
|
+
const artifactDir = args.instaboxArtifactDir ?? join3(
|
|
7447
|
+
resolveRunsDir(deps.env, deps.homedir),
|
|
7448
|
+
"instabox-artifacts",
|
|
7449
|
+
randomUUID3()
|
|
7450
|
+
);
|
|
7451
|
+
if (typeof artifactDir !== "string" || !artifactDir.startsWith("/") || artifactDir.includes("\0") || artifactDir.split("/").includes("..")) {
|
|
7452
|
+
throw new Error("instaboxArtifactDir \u5FC5\u987B\u4E3A\u5408\u6CD5\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u4E0D\u80FD\u5305\u542B .. \u6216\u7A7A\u5B57\u7B26");
|
|
7453
|
+
}
|
|
7454
|
+
for (const key of ["instaboxAllowRemoteRelease", "instaboxAllowPaid"]) {
|
|
7455
|
+
if (args[key] !== void 0 && typeof args[key] !== "boolean") throw new Error(`${key} \u5FC5\u987B\u4E3A boolean`);
|
|
7456
|
+
}
|
|
7457
|
+
instaboxArgs.push("--instabox-workspace", workspace, "--instabox-artifact-dir", artifactDir);
|
|
7458
|
+
if (manifest) instaboxArgs.push("--instabox-manifest", manifest);
|
|
7459
|
+
if (args.instaboxAllowRemoteRelease === true) instaboxArgs.push("--instabox-allow-remote-release");
|
|
7460
|
+
if (args.instaboxAllowPaid === true) instaboxArgs.push("--instabox-allow-paid");
|
|
7461
|
+
}
|
|
7382
7462
|
const rawArgs = [
|
|
7383
7463
|
"--agent",
|
|
7384
7464
|
agentKey,
|
|
@@ -7393,7 +7473,8 @@ function createCliStartAgentRunExecutor(deps = {}) {
|
|
|
7393
7473
|
...isReadOnlyTask ? ["--read-only"] : [],
|
|
7394
7474
|
// 执行后端(默认 docker 沙盒;只读派发留宿主):唯一产出 `--runtime-key`
|
|
7395
7475
|
// 的地方,成对不变式在 buildCliLocalRuntimeForwardArgs 内机械断言。
|
|
7396
|
-
...buildCliLocalRuntimeForwardArgs(dispatch)
|
|
7476
|
+
...buildCliLocalRuntimeForwardArgs(dispatch),
|
|
7477
|
+
...instaboxArgs
|
|
7397
7478
|
];
|
|
7398
7479
|
const agentName = typeof args.agentName === "string" && args.agentName.trim() ? args.agentName.trim() : typeof args.name === "string" && args.name.trim() ? args.name.trim() : (
|
|
7399
7480
|
// 调用方没给名字就回填 agent 记录里的 name:否则 run 卡片只能显示
|
|
@@ -7422,6 +7503,9 @@ function createCliStartAgentRunExecutor(deps = {}) {
|
|
|
7422
7503
|
...batchId ? { batchId } : {},
|
|
7423
7504
|
...credentialGroup ? { credentialGroup } : {},
|
|
7424
7505
|
...parentDialogId ? { parentDialogId } : {},
|
|
7506
|
+
// 续跑目标对话:spawn 时落盘,让"开着这条对话的 TUI"在 running 期间就能
|
|
7507
|
+
// 看到另一边在跑(dock 按 dialogId 也能匹配到这条 run)。
|
|
7508
|
+
...continueDialogId ? { dialogId: continueDialogId } : {},
|
|
7425
7509
|
...dodCommands && dodCommands.length > 0 ? { dodCommands } : {},
|
|
7426
7510
|
cwd: requestedCwd ?? deps.cwd ?? process.cwd(),
|
|
7427
7511
|
message,
|
|
@@ -7514,6 +7598,8 @@ async function spawnContinuationRun(reconciled, userInput, deps) {
|
|
|
7514
7598
|
...agentName ? { agentName } : {},
|
|
7515
7599
|
...continuedTitle ? { title: continuedTitle } : {},
|
|
7516
7600
|
...reconciled.batchId ? { batchId: reconciled.batchId } : {},
|
|
7601
|
+
// 续跑也要在 running 阶段就带上目标对话,否则"开着那条对话的 TUI"看不到它。
|
|
7602
|
+
...reconciled.dialogId ? { dialogId: reconciled.dialogId } : {},
|
|
7517
7603
|
...reconciled.parentDialogId ? { parentDialogId: reconciled.parentDialogId } : {},
|
|
7518
7604
|
// 续跑继承原 run 的凭证组(同一 agent),供并发扇出守卫判定。
|
|
7519
7605
|
...reconciled.credentialGroup ? { credentialGroup: reconciled.credentialGroup } : {},
|
|
@@ -7769,7 +7855,7 @@ function createCliControlAgentRunExecutor(deps = {}) {
|
|
|
7769
7855
|
if (action === "status") {
|
|
7770
7856
|
const reconciled2 = checkStaleRun(record.runId, deps) ?? record;
|
|
7771
7857
|
const logTail = tailLines > 0 ? tailFile(record.logPath, tailLines, resolveFs(deps)) : void 0;
|
|
7772
|
-
return buildRunStatusPayload(reconciled2, deps, { logTail });
|
|
7858
|
+
return buildRunStatusPayload(reconciled2, deps, { logTail, includeCheckpoint: args.includeCheckpoint === true });
|
|
7773
7859
|
}
|
|
7774
7860
|
if (action === "wait") {
|
|
7775
7861
|
const timeoutMs = typeof args.timeoutMs === "number" && args.timeoutMs > 0 ? args.timeoutMs : DEFAULT_WAIT_TIMEOUT_MS;
|
|
@@ -8692,7 +8778,7 @@ import {
|
|
|
8692
8778
|
} from "node:fs";
|
|
8693
8779
|
import { access } from "node:fs/promises";
|
|
8694
8780
|
import { tmpdir } from "node:os";
|
|
8695
|
-
import { isAbsolute as isAbsolute2, join as
|
|
8781
|
+
import { isAbsolute as isAbsolute2, join as join4, relative, resolve as resolve2 } from "node:path";
|
|
8696
8782
|
|
|
8697
8783
|
// packages/agent-runtime/linuxSandboxSeccomp.ts
|
|
8698
8784
|
var AUDIT_ARCH_X86_64 = 3221225534;
|
|
@@ -8815,8 +8901,8 @@ function openRootHandle(path) {
|
|
|
8815
8901
|
}
|
|
8816
8902
|
}
|
|
8817
8903
|
function openSeccompFd(program) {
|
|
8818
|
-
const dir = mkdtempSync(
|
|
8819
|
-
const file =
|
|
8904
|
+
const dir = mkdtempSync(join4(tmpdir(), "nolo-bwrap-seccomp-"));
|
|
8905
|
+
const file = join4(dir, "filter.bpf");
|
|
8820
8906
|
let writer = -1;
|
|
8821
8907
|
let reader = -1;
|
|
8822
8908
|
try {
|
|
@@ -9717,7 +9803,7 @@ import { spawnSync } from "node:child_process";
|
|
|
9717
9803
|
import { mkdtempSync as mkdtempSync2, statSync as statSync2, writeFileSync as writeFileSync2 } from "node:fs";
|
|
9718
9804
|
import { rm } from "node:fs/promises";
|
|
9719
9805
|
import { tmpdir as tmpdir2 } from "node:os";
|
|
9720
|
-
import { join as
|
|
9806
|
+
import { join as join5 } from "node:path";
|
|
9721
9807
|
var runHostCommand = (argv, { cwd }) => {
|
|
9722
9808
|
const result = spawnSync(argv[0], argv.slice(1), {
|
|
9723
9809
|
cwd,
|
|
@@ -9777,11 +9863,11 @@ function prepareHostWorkspaceDelivery(args) {
|
|
|
9777
9863
|
`\u5DE5\u4F5C\u533A\u6587\u4EF6\u6570 ${tracked.length} \u8D85\u8FC7\u4E0A\u9650 ${MAX_DELIVERY_FILE_COUNT}\uFF1A\u7591\u4F3C\u628A node_modules / \u6784\u5EFA\u4EA7\u7269\u6253\u8FDB\u4E86\u5F52\u6863\uFF08\u5F52\u6863\u53EA\u53D6 git ls-files\uFF09\u3002`
|
|
9778
9864
|
);
|
|
9779
9865
|
}
|
|
9780
|
-
const stagingDir = mkdtempSync2(
|
|
9866
|
+
const stagingDir = mkdtempSync2(join5(args.tmpDir ?? tmpdir2(), "nolo-workspace-delivery-"));
|
|
9781
9867
|
const stamp = `${process.pid}-${Date.now()}`;
|
|
9782
|
-
const archivePath =
|
|
9783
|
-
const bundlePath =
|
|
9784
|
-
const listPath =
|
|
9868
|
+
const archivePath = join5(stagingDir, `workspace-${stamp}.tar.gz`);
|
|
9869
|
+
const bundlePath = join5(stagingDir, `workspace-${stamp}.bundle`);
|
|
9870
|
+
const listPath = join5(stagingDir, `filelist-${stamp}.z`);
|
|
9785
9871
|
const removeFile = args.removeFile ?? (async (filePath) => {
|
|
9786
9872
|
await rm(filePath, { force: true });
|
|
9787
9873
|
});
|
|
@@ -10634,12 +10720,12 @@ function describeInstaboxBridgeUnavailable(bridge) {
|
|
|
10634
10720
|
// packages/cli/client/localInstaboxWorkspaceRecovery.ts
|
|
10635
10721
|
import { constants as constants2 } from "node:fs";
|
|
10636
10722
|
import { open as open2 } from "node:fs/promises";
|
|
10637
|
-
import { createHash as createHash4, randomUUID as
|
|
10723
|
+
import { createHash as createHash4, randomUUID as randomUUID4 } from "node:crypto";
|
|
10638
10724
|
|
|
10639
10725
|
// packages/agent-runtime/artifactStore.ts
|
|
10640
10726
|
import { createHash as createHash3, createHmac } from "node:crypto";
|
|
10641
10727
|
import { mkdir, readFile, unlink, writeFile } from "node:fs/promises";
|
|
10642
|
-
import { dirname as
|
|
10728
|
+
import { dirname as dirname3, resolve as resolve4, sep } from "node:path";
|
|
10643
10729
|
var ArtifactStoreError = class extends Error {
|
|
10644
10730
|
code;
|
|
10645
10731
|
key;
|
|
@@ -10708,7 +10794,7 @@ function createLocalArtifactStore(options) {
|
|
|
10708
10794
|
const bytes = toBytes(data);
|
|
10709
10795
|
const target = pathFor(key);
|
|
10710
10796
|
try {
|
|
10711
|
-
await mkdir(
|
|
10797
|
+
await mkdir(dirname3(target), { recursive: true });
|
|
10712
10798
|
await writeFile(target, bytes);
|
|
10713
10799
|
} catch (error) {
|
|
10714
10800
|
if (error instanceof ArtifactStoreError) throw error;
|
|
@@ -10925,7 +11011,7 @@ async function recoverInstaboxWorkspace(args) {
|
|
|
10925
11011
|
root = next;
|
|
10926
11012
|
}
|
|
10927
11013
|
const { mkdir: mkdir2, rename } = await import("node:fs/promises");
|
|
10928
|
-
const id = `instabox-${
|
|
11014
|
+
const id = `instabox-${randomUUID4()}`;
|
|
10929
11015
|
const namespace = `/proc/self/fd/${root.fd}/${id}`;
|
|
10930
11016
|
await mkdir2(namespace, { mode: 448 });
|
|
10931
11017
|
const dir = await open2(namespace, constants2.O_RDONLY | constants2.O_DIRECTORY | constants2.O_NOFOLLOW);
|
|
@@ -11275,7 +11361,7 @@ async function createLocalInstaboxWorkload(args) {
|
|
|
11275
11361
|
|
|
11276
11362
|
// packages/cli/client/localRunArtifactExport.ts
|
|
11277
11363
|
import { mkdirSync as mkdirSync2, writeFileSync as writeFileSync3 } from "node:fs";
|
|
11278
|
-
import { dirname as
|
|
11364
|
+
import { dirname as dirname4, join as join6 } from "node:path";
|
|
11279
11365
|
|
|
11280
11366
|
// packages/agent-runtime/runArtifactExport.ts
|
|
11281
11367
|
var RUN_DIFF_COMMAND = "git add -A && git diff --cached --binary";
|
|
@@ -11483,11 +11569,11 @@ function serializeRunArtifactAudit(record) {
|
|
|
11483
11569
|
// packages/cli/client/localRunArtifactExport.ts
|
|
11484
11570
|
function resolveRunArtifactsRootDir(runsDir) {
|
|
11485
11571
|
const normalized = runsDir.replace(/[/\\]+$/, "");
|
|
11486
|
-
return
|
|
11572
|
+
return join6(dirname4(normalized || runsDir), "artifacts");
|
|
11487
11573
|
}
|
|
11488
11574
|
function writeRunArtifactAudit(args) {
|
|
11489
11575
|
const fs = args.fs ?? { mkdirSync: mkdirSync2, writeFileSync: writeFileSync3 };
|
|
11490
|
-
const path =
|
|
11576
|
+
const path = join6(args.runsDir, `${args.record.runId}.artifacts.json`);
|
|
11491
11577
|
fs.mkdirSync?.(args.runsDir, { recursive: true });
|
|
11492
11578
|
fs.writeFileSync(path, serializeRunArtifactAudit(args.record));
|
|
11493
11579
|
return path;
|
|
@@ -11840,7 +11926,7 @@ function buildTokenDialogIndexOps(args) {
|
|
|
11840
11926
|
// packages/cli/client/localRuntimeDialog.ts
|
|
11841
11927
|
import { appendFileSync, mkdirSync as mkdirSync3 } from "fs";
|
|
11842
11928
|
import { homedir } from "os";
|
|
11843
|
-
import { join as
|
|
11929
|
+
import { join as join7 } from "path";
|
|
11844
11930
|
var diagLog = {
|
|
11845
11931
|
warn: (msg) => getLogger("cli.localRuntimeDialog").warn(msg),
|
|
11846
11932
|
info: (msg) => getLogger("cli.localRuntimeDialog").info(msg)
|
|
@@ -11891,11 +11977,11 @@ function projectRawUsage(usage) {
|
|
|
11891
11977
|
function debugCaptureRawUsage(item) {
|
|
11892
11978
|
if (!process.env.NOLO_DEBUG_RAW_USAGE) return;
|
|
11893
11979
|
try {
|
|
11894
|
-
const noloHome = process.env.NOLO_HOME?.trim() ||
|
|
11895
|
-
const dir =
|
|
11980
|
+
const noloHome = process.env.NOLO_HOME?.trim() || join7(homedir(), ".nolo");
|
|
11981
|
+
const dir = join7(noloHome, "logs");
|
|
11896
11982
|
mkdirSync3(dir, { recursive: true });
|
|
11897
11983
|
appendFileSync(
|
|
11898
|
-
|
|
11984
|
+
join7(dir, "raw-usage.jsonl"),
|
|
11899
11985
|
JSON.stringify({
|
|
11900
11986
|
ts: Date.now(),
|
|
11901
11987
|
model: item.model,
|
|
@@ -12139,18 +12225,6 @@ async function writeDialog(args) {
|
|
|
12139
12225
|
}
|
|
12140
12226
|
}
|
|
12141
12227
|
await args.store.batch(plan.ops);
|
|
12142
|
-
if (!args.input.continueDialogId) {
|
|
12143
|
-
const marked = await markLocalDialogHistoryOriginComplete({
|
|
12144
|
-
store: args.store,
|
|
12145
|
-
dialogId: plan.dialogId,
|
|
12146
|
-
messageCount: args.input.messages.length
|
|
12147
|
-
});
|
|
12148
|
-
if (!marked) {
|
|
12149
|
-
diagLog.info(
|
|
12150
|
-
`dialog-history: local-origin completeness not recorded for ${plan.dialogId} (existing state or write failure)`
|
|
12151
|
-
);
|
|
12152
|
-
}
|
|
12153
|
-
}
|
|
12154
12228
|
if (__perfEnabled) {
|
|
12155
12229
|
const ms = (performance.now() - __perfT0).toFixed(1);
|
|
12156
12230
|
diagLog.info(`perf writeDialog C:store-batch (cumulative): ${ms}ms`);
|
|
@@ -12342,11 +12416,11 @@ function resolveLocalInstaboxToolRoute(args) {
|
|
|
12342
12416
|
}
|
|
12343
12417
|
return { action: "intercept", toolName };
|
|
12344
12418
|
}
|
|
12345
|
-
var
|
|
12346
|
-
|
|
12347
|
-
|
|
12348
|
-
|
|
12349
|
-
|
|
12419
|
+
var { cliDir: CLI_DIR, cliEntrypoint: CLI_ENTRYPOINT } = resolveLocalRuntimePaths(
|
|
12420
|
+
import.meta.url,
|
|
12421
|
+
isCompiledBinary(),
|
|
12422
|
+
process.execPath
|
|
12423
|
+
);
|
|
12350
12424
|
var KNOWN_HINT_LABELS = /* @__PURE__ */ new Map([
|
|
12351
12425
|
["usage_limit_reached", "usage-limit"],
|
|
12352
12426
|
["rate_limit_exceeded", "rate-limit"],
|
|
@@ -12679,7 +12753,7 @@ function createCliLocalRuntimeAdapter(deps) {
|
|
|
12679
12753
|
emitRunIsolationNotice(fact, { runId });
|
|
12680
12754
|
try {
|
|
12681
12755
|
const { writeFileSync: writeFileSync4, mkdirSync: mkdirSync4 } = await import("node:fs");
|
|
12682
|
-
const { resolveRunsDir: resolveRunsDir2 } = await import("./agentRunControl-
|
|
12756
|
+
const { resolveRunsDir: resolveRunsDir2 } = await import("./agentRunControl-ABDUPJLX.js");
|
|
12683
12757
|
recordLocalRunExecutionIsolation({
|
|
12684
12758
|
runId,
|
|
12685
12759
|
runsDir: resolveRunsDir2(deps.env),
|
|
@@ -12704,7 +12778,7 @@ function createCliLocalRuntimeAdapter(deps) {
|
|
|
12704
12778
|
dockerWorkloadReleased = true;
|
|
12705
12779
|
dockerWorkloadLoad = null;
|
|
12706
12780
|
if (loaded) {
|
|
12707
|
-
const { resolveRunsDir: resolveRunsDir2 } = await import("./agentRunControl-
|
|
12781
|
+
const { resolveRunsDir: resolveRunsDir2 } = await import("./agentRunControl-ABDUPJLX.js");
|
|
12708
12782
|
const exportRunDiff = deps.exportDockerRunDiffArtifact ?? exportDockerRunDiffArtifact;
|
|
12709
12783
|
const warn = (message) => process.stderr.write(`[nolo] ${message}
|
|
12710
12784
|
`);
|