nolo-cli 0.201.0-alpha.2 → 0.202.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.
Files changed (124) hide show
  1. package/{_executeModel-BNYZLAN6.js → _executeModel-IPRTPSW7.js} +34 -33
  2. package/{agentDeleteCommand-4V4YSAXS.js → agentDeleteCommand-6HFA37FH.js} +49 -47
  3. package/{agentEmailCommands-EYIQEH6Z.js → agentEmailCommands-TDBNVIAT.js} +51 -49
  4. package/{agentListCommands-2KGUT7UB.js → agentListCommands-YSQSDQM3.js} +81 -45
  5. package/{agentMachineCommands-WUN47ILO.js → agentMachineCommands-5W23BLFR.js} +28 -26
  6. package/{agentProviderCommands-T6E3JCR6.js → agentProviderCommands-5ALOQLE5.js} +2 -2
  7. package/{agentRecordCommands-XL2CON36.js → agentRecordCommands-SRIMZZFK.js} +47 -45
  8. package/{agentRunCommand-R237ZGMQ.js → agentRunCommand-BLYHIN6S.js} +49 -47
  9. package/{agentRunControl-6HHESKDB.js → agentRunControl-ABDUPJLX.js} +10 -5
  10. package/{agentRuntimeLocal-XLLWFAVI.js → agentRuntimeLocal-FE66EBRC.js} +24 -22
  11. package/{agentSlice-Z5NKGMB7.js → agentSlice-BFDKYW6H.js} +4 -3
  12. package/{appDeleteCommands-IPF2VI3W.js → appDeleteCommands-BEVZGCAG.js} +29 -27
  13. package/{appDeployCommands-IBQ7GUXO.js → appDeployCommands-E7TFCHSP.js} +29 -27
  14. package/{appDeployStatusCommands-6ESVU6XE.js → appDeployStatusCommands-MYY5Z5G3.js} +29 -27
  15. package/{appGetCommands-VTSYTM4V.js → appGetCommands-HNED5JUU.js} +29 -27
  16. package/{appListCommands-VCP5TUX7.js → appListCommands-MSBFWPIY.js} +29 -27
  17. package/{authCommand-RV5MQDWN.js → authCommand-W34UWJGR.js} +14 -13
  18. package/{builtinSkillRegistry-7RAJP7FD.js → builtinSkillRegistry-NJVHQIKY.js} +1 -1
  19. package/{chromeOpsCommands-BA6CS4DI.js → chromeOpsCommands-USKE4B4K.js} +15 -4
  20. package/{chunk-RE3B2OCC.js → chunk-266E37EL.js} +69 -14
  21. package/chunk-2BMURXSB.js +1863 -0
  22. package/{chunk-NABJEYPJ.js → chunk-2Q3LOAFE.js} +38 -3
  23. package/{chunk-EOLPKHSB.js → chunk-326HCB6L.js} +28 -24
  24. package/{chunk-4CEAZRZ4.js → chunk-33W4IFUU.js} +1 -1
  25. package/{chunk-V3MGT3RF.js → chunk-3CWF2EUZ.js} +8 -8
  26. package/{chunk-G6OOUQWJ.js → chunk-4KB6WQUL.js} +2 -0
  27. package/{chunk-DYQXB46J.js → chunk-4KPB3KWX.js} +2 -2
  28. package/{chunk-WAZ6BTSC.js → chunk-5E4FSR4J.js} +1 -1
  29. package/{chunk-PVD7CRYV.js → chunk-6I7ZP7KJ.js} +3 -3
  30. package/chunk-6UBGXX2W.js +12 -0
  31. package/{chunk-ZBCBFOWC.js → chunk-A2ZMIRLN.js} +2 -2
  32. package/{chunk-Z646E5YH.js → chunk-ASG7VWPK.js} +3 -3
  33. package/{chunk-QWVGFBOQ.js → chunk-BLFZULEQ.js} +3 -3
  34. package/{chunk-RRHJJUA3.js → chunk-BRZTSZBG.js} +174 -100
  35. package/{chunk-JIFYXQRD.js → chunk-BTYQAODF.js} +26 -8
  36. package/{chunk-KORCRPLO.js → chunk-C7PKPHK6.js} +334 -12
  37. package/{chunk-6WZQGT5X.js → chunk-CJ37ZMCQ.js} +6 -2
  38. package/{chunk-VHGD6FHV.js → chunk-CKAHAVMK.js} +40 -10
  39. package/{chunk-UNOILAZP.js → chunk-CLTGWJVT.js} +76 -4
  40. package/{chunk-Q6RMLYSA.js → chunk-CMLBKYEI.js} +4 -2
  41. package/{chunk-NVOYW6H4.js → chunk-CQHMBWZH.js} +12 -8
  42. package/{chunk-7KWPNGVJ.js → chunk-CTZ4O3XD.js} +1 -1
  43. package/{chunk-OHRDHS4N.js → chunk-CVCRAO6Q.js} +9 -4
  44. package/{chunk-26CRLZFD.js → chunk-D57YYGMD.js} +2 -2
  45. package/{chunk-TEC5UHQK.js → chunk-DHJXDGC3.js} +2 -2
  46. package/{chunk-QYOB7RVA.js → chunk-DKZJJ2NQ.js} +3 -2
  47. package/{chunk-4YX7VQOC.js → chunk-E2FC5RMU.js} +17 -14
  48. package/{chunk-EH4MNUMF.js → chunk-ETTDZBK5.js} +4 -4
  49. package/{chunk-ZWQUWF6W.js → chunk-G7Y4GXTY.js} +8 -14
  50. package/{chunk-5KTQVMCX.js → chunk-GOO6G4PY.js} +85 -0
  51. package/{chunk-FMOZ57LN.js → chunk-H7HWWNJB.js} +1 -1
  52. package/{chunk-SW5AAI5D.js → chunk-HKMPGHFZ.js} +5 -5
  53. package/{chunk-H44LQSZ2.js → chunk-HKWGI3TM.js} +178 -311
  54. package/{chunk-BBGYSMUE.js → chunk-JH7KMNGT.js} +143 -19
  55. package/{chunk-YXMZHGNA.js → chunk-KDUYNEJ5.js} +33 -16
  56. package/{chunk-FEKMTBKJ.js → chunk-LAYFVGS4.js} +192 -55
  57. package/{chunk-O5V7QQAF.js → chunk-LEX6DEH4.js} +114 -2
  58. package/{chunk-BTBT2566.js → chunk-MNUOMXJH.js} +412 -9
  59. package/{chunk-N7E3LQ4A.js → chunk-MZXWSY4E.js} +1 -1
  60. package/{chunk-ZQ3EAOY3.js → chunk-NTLJGRAT.js} +1 -1
  61. package/{chunk-BUXH3H5M.js → chunk-OIB4GARE.js} +3743 -4848
  62. package/{chunk-WFUIXNKC.js → chunk-P4YLK2OD.js} +3 -3
  63. package/chunk-PRJ473FK.js +63 -0
  64. package/{chunk-2SHLT6JB.js → chunk-Q7GNBUT4.js} +2 -2
  65. package/{chunk-C2UXCAMB.js → chunk-RIKSN62L.js} +3 -3
  66. package/{chunk-GTP6VNWH.js → chunk-RQ22OZD7.js} +3 -3
  67. package/{chunk-H7NIQGTU.js → chunk-RS66RJLA.js} +2 -2
  68. package/{chunk-GC64WGMD.js → chunk-SM3NSZJV.js} +16 -5
  69. package/{chunk-QKDMI22S.js → chunk-SSK4WNJA.js} +1 -1
  70. package/{chunk-6MAFLMAO.js → chunk-SUBNV2JH.js} +3 -3
  71. package/{chunk-HLAL63BZ.js → chunk-T43B7LB2.js} +1 -1
  72. package/{chunk-HTLIKE5U.js → chunk-TWVVTUNG.js} +2 -2
  73. package/{chunk-X3RWBJDQ.js → chunk-U7HTU2S7.js} +1 -1
  74. package/{chunk-76YUTLOT.js → chunk-UIOEHFF6.js} +1 -1
  75. package/{chunk-IIX6VWLW.js → chunk-VCFU3BO5.js} +224 -38
  76. package/{chunk-QU3TLYBR.js → chunk-VEUSD6OF.js} +35 -11
  77. package/{chunk-4YMD7B4Y.js → chunk-WPOKOKZA.js} +2 -2
  78. package/{chunk-A5VR65AE.js → chunk-WPQGLJHU.js} +4 -4
  79. package/{chunk-K6TZSON4.js → chunk-WTKYP6QO.js} +19 -5
  80. package/{chunk-ZSO5B6SW.js → chunk-Y2WUYX4I.js} +9 -0
  81. package/{chunk-A3SXTJDE.js → chunk-YAGFPXOX.js} +14 -14
  82. package/{chunk-TVGX5QIN.js → chunk-YUA6OAH5.js} +2 -2
  83. package/{chunk-NYE2INIO.js → chunk-YV2RSLM4.js} +13 -13
  84. package/{chunk-MJWUBTK7.js → chunk-YZGNKHUM.js} +2 -2
  85. package/{commandRegistry-YFXWA5SF.js → commandRegistry-ZU3RX7A2.js} +87 -67
  86. package/{contentThunks-2BV7CFUP.js → contentThunks-I4IHSDTM.js} +14 -13
  87. package/{cooldownCommands-KRILPXOZ.js → cooldownCommands-5SJ74DNP.js} +1 -1
  88. package/{createAgentAutomationAction-T6CGXCSO.js → createAgentAutomationAction-WQCH5HR2.js} +14 -13
  89. package/{createDialogAction-X27IA3G2.js → createDialogAction-CKMZK5JQ.js} +15 -14
  90. package/{createPageAction-EHDHNW5P.js → createPageAction-QAZHQGY7.js} +14 -13
  91. package/{dialogCommands-XZXH3HSQ.js → dialogCommands-NEQ6NW5H.js} +30 -28
  92. package/{dialogSlice-AZNPVOCU.js → dialogSlice-GEGACCH2.js} +13 -12
  93. package/{docCreateCommands-Z64V5BFZ.js → docCreateCommands-EXV267FP.js} +28 -26
  94. package/{docDeleteCommands-7UFHIM4C.js → docDeleteCommands-TSBILA2Z.js} +29 -27
  95. package/{docReadCommands-NLU7Y67R.js → docReadCommands-AKVYHITD.js} +28 -26
  96. package/{docStore-M37Q6JFO.js → docStore-B4EFT53J.js} +1 -1
  97. package/{docUpdateCommands-S2KGBEG3.js → docUpdateCommands-G6GULDGZ.js} +28 -26
  98. package/{fetchMessages-HWBVATSE.js → fetchMessages-YY4SATNR.js} +1 -1
  99. package/{getPricing-E2PLNWCR.js → getPricing-3PQY3TGI.js} +3 -3
  100. package/{handleSendMessageAction-KUJQZ6B6.js → handleSendMessageAction-4BACQWOG.js} +70 -29
  101. package/index.js +7 -7
  102. package/{lib-4YTWAGY7.js → lib-5KKIBFIT.js} +439 -272
  103. package/{localDialogRead-CT5HGDMC.js → localDialogRead-FUXGZ57B.js} +1 -1
  104. package/{localRuntimeAdapter-5BNHO6JZ.js → localRuntimeAdapter-MTDULOUZ.js} +45 -43
  105. package/{machineCommands-2KDROAVV.js → machineCommands-OGHHBRV3.js} +48 -46
  106. package/{machineWsRunDispatch-4NP5M574.js → machineWsRunDispatch-R6DNC3H7.js} +46 -44
  107. package/{models-UUNO6DOL.js → models-PJBE6JDV.js} +2 -2
  108. package/{oauthTokenStore-PADKLNOC.js → oauthTokenStore-OEERZFUC.js} +2 -1
  109. package/package.json +1 -1
  110. package/{providerPresetApply-JGNMO2KX.js → providerPresetApply-HBBUUVJD.js} +6 -6
  111. package/{providerRegistry-33J3ZYFJ.js → providerRegistry-5LK2NXYE.js} +6 -6
  112. package/{readlineWorkspace-MKUSR6HA.js → readlineWorkspace-NC2O4DQP.js} +290 -121
  113. package/{runAgentClientLoop-J32KRVN7.js → runAgentClientLoop-QKV66PX5.js} +31 -30
  114. package/{runtimeDoctorCommands-NYBOTA6D.js → runtimeDoctorCommands-3VFVTGPI.js} +8 -7
  115. package/{secretCommands-N6CMCJDZ.js → secretCommands-MKU25CDP.js} +311 -3
  116. package/{settingThunks-YRYNPWJM.js → settingThunks-4WU7YE62.js} +2 -2
  117. package/{skillDiscovery-F3TMVQOJ.js → skillDiscovery-BKLWW2EZ.js} +2 -2
  118. package/{spaceCommands-VV4K7TGI.js → spaceCommands-J7BRTTM3.js} +27 -25
  119. package/{streamAgentChatTurn-S2Q7STXS.js → streamAgentChatTurn-GM3UNSLS.js} +46 -43
  120. package/{tools-KOIPW4ZA.js → tools-UJLEQBKI.js} +25 -24
  121. package/{tuiSummaryLlmCaller-FSOADMXK.js → tuiSummaryLlmCaller-73QO3HAD.js} +12 -12
  122. package/{updateCommands-KE6LP3QX.js → updateCommands-RVDAFHBT.js} +3 -3
  123. package/{updateDialogTitleAction-ILS5OIXF.js → updateDialogTitleAction-24QO27NT.js} +14 -13
  124. 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-DYQXB46J.js";
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-X3RWBJDQ.js";
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-GTP6VNWH.js";
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-2SHLT6JB.js";
60
+ } from "./chunk-Q7GNBUT4.js";
61
61
  import {
62
62
  inlineImageUrlsForCustomProvider,
63
63
  prepareTools
64
- } from "./chunk-QWVGFBOQ.js";
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-H44LQSZ2.js";
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-BBGYSMUE.js";
94
+ } from "./chunk-JH7KMNGT.js";
95
95
  import {
96
96
  resolveAgentRequiredPackIds,
97
97
  resolveUserEnabledSkills
98
- } from "./chunk-QYOB7RVA.js";
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-EOLPKHSB.js";
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-EH4MNUMF.js";
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-BUXH3H5M.js";
174
+ } from "./chunk-OIB4GARE.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-IIX6VWLW.js";
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-NVOYW6H4.js";
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-N7E3LQ4A.js";
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-PVD7CRYV.js";
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-OHRDHS4N.js";
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-NABJEYPJ.js";
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-K6TZSON4.js";
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-76YUTLOT.js";
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-ZWQUWF6W.js";
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-QU3TLYBR.js";
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-BTBT2566.js";
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-4YMD7B4Y.js";
343
+ } from "./chunk-WPOKOKZA.js";
347
344
  import {
348
345
  anthropicOAuthModelMaxOutputTokens,
349
346
  findModelConfig,
350
347
  isAdaptiveThinkingModelId
351
- } from "./chunk-GC64WGMD.js";
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-UNOILAZP.js";
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: typeof args.openAiBody.model === "string" ? args.openAiBody.model : args.agentConfig.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/localRuntimeAdapter.ts
4206
- import { dirname as dirname4, extname, join as join6 } from "node:path";
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 ((localMessages.length > 0 || args.strictContinueHistory) && localState?.complete === true) {
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
- throw new Error(`Strict continuation history load failed for ${dialogId}`);
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
- const data = await res.json();
5149
- if (!Array.isArray(data)) throw new Error("getConvMsgs returned invalid history payload");
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 join(homedir2(), ".nolo");
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 ?? join(noloHome, "agent_run_todos.json");
5865
- const oldFilePath = join(noloHome, "todos.json");
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(dirname(filePath), fs);
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(dirname(filePath), fs);
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 join2, relative, resolve as resolve2 } from "node:path";
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(join2(tmpdir(), "nolo-bwrap-seccomp-"));
8819
- const file = join2(dir, "filter.bpf");
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 join3 } from "node:path";
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(join3(args.tmpDir ?? tmpdir2(), "nolo-workspace-delivery-"));
9866
+ const stagingDir = mkdtempSync2(join5(args.tmpDir ?? tmpdir2(), "nolo-workspace-delivery-"));
9781
9867
  const stamp = `${process.pid}-${Date.now()}`;
9782
- const archivePath = join3(stagingDir, `workspace-${stamp}.tar.gz`);
9783
- const bundlePath = join3(stagingDir, `workspace-${stamp}.bundle`);
9784
- const listPath = join3(stagingDir, `filelist-${stamp}.z`);
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 randomUUID3 } from "node:crypto";
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 dirname2, resolve as resolve4, sep } from "node:path";
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(dirname2(target), { recursive: true });
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-${randomUUID3()}`;
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 dirname3, join as join4 } from "node:path";
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 join4(dirname3(normalized || runsDir), "artifacts");
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 = join4(args.runsDir, `${args.record.runId}.artifacts.json`);
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 join5 } from "path";
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() || join5(homedir(), ".nolo");
11895
- const dir = join5(noloHome, "logs");
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
- join5(dir, "raw-usage.jsonl"),
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 currentMetaFile = fileURLToPath(import.meta.url);
12346
- var isJsBundle = extname(currentMetaFile) === ".js";
12347
- var SOURCE_CLI_DIR = isJsBundle ? dirname4(currentMetaFile) : dirname4(dirname4(currentMetaFile));
12348
- var CLI_DIR = isCompiledBinary() ? dirname4(process.execPath) : SOURCE_CLI_DIR;
12349
- var CLI_ENTRYPOINT = isCompiledBinary() ? process.execPath : isJsBundle ? currentMetaFile : join6(SOURCE_CLI_DIR, "index.ts");
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-6HHESKDB.js");
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-6HHESKDB.js");
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
  `);