nolo-cli 0.161.0-alpha.1 → 0.163.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.
Files changed (67) hide show
  1. package/{_executeModel-3HHZYHHB.js → _executeModel-3FMHTHSS.js} +15 -15
  2. package/{agentDeleteCommand-74EL5T7G.js → agentDeleteCommand-VRHLJZKX.js} +16 -16
  3. package/{agentEmailCommands-ST7HL3E7.js → agentEmailCommands-YGBQXOL3.js} +17 -17
  4. package/{agentListCommands-L33M3I6V.js → agentListCommands-GOCGOQUB.js} +8 -8
  5. package/{agentMachineCommands-JSQPNSS5.js → agentMachineCommands-FBAWZYHI.js} +6 -6
  6. package/{agentRecordCommands-JWW5NQQ7.js → agentRecordCommands-KAK2G56H.js} +16 -16
  7. package/{agentRunCommand-UTBBUSHP.js → agentRunCommand-62P3AGJA.js} +17 -17
  8. package/{agentRuntimeLocal-XCKO5FVP.js → agentRuntimeLocal-J6I63NZC.js} +3 -3
  9. package/{agentSlice-YT3VCCEW.js → agentSlice-IZFU3WWH.js} +1 -1
  10. package/{appDeleteCommands-2PJFNLAJ.js → appDeleteCommands-KKLAK2UR.js} +7 -7
  11. package/{appDeployCommands-AZCMCMK6.js → appDeployCommands-PXWK4FAX.js} +7 -7
  12. package/{appDeployStatusCommands-HSIKPVJN.js → appDeployStatusCommands-3NGWDZTX.js} +7 -7
  13. package/{appGetCommands-IUZCPAP7.js → appGetCommands-APWYPEO3.js} +7 -7
  14. package/{appListCommands-JLFVS44M.js → appListCommands-OP7IRALO.js} +7 -7
  15. package/{chunk-F5WASHQA.js → chunk-2QQ7D3P5.js} +8 -8
  16. package/{chunk-3GTVM7NJ.js → chunk-36IWXF25.js} +5 -5
  17. package/{chunk-QLQ573SU.js → chunk-3M52COK5.js} +120 -0
  18. package/{chunk-JDKSYQQN.js → chunk-4FDDVVCE.js} +2 -2
  19. package/{chunk-DD2EOI6S.js → chunk-4JCAW7TO.js} +1 -1
  20. package/{chunk-K25WQPP3.js → chunk-5E5VB7PS.js} +80 -3
  21. package/{chunk-KABQ74UQ.js → chunk-5IKRTRRR.js} +1 -1
  22. package/{chunk-FCUKCVKN.js → chunk-6QIBWOPT.js} +2 -2
  23. package/{chunk-FZYKQFBQ.js → chunk-7PDNSQZC.js} +2 -2
  24. package/{chunk-HW7EBEC5.js → chunk-7YQQXP42.js} +3 -3
  25. package/{chunk-7RF4O6AT.js → chunk-BL4HFN6L.js} +1 -1
  26. package/{chunk-OWCHFPWR.js → chunk-CI6YDDL2.js} +4 -4
  27. package/{chunk-RIHQGFFA.js → chunk-DJ2BOPJY.js} +1 -1
  28. package/{chunk-DT7EWFTY.js → chunk-EDJND3FK.js} +3 -3
  29. package/{chunk-YR47Y7CN.js → chunk-FTHF2P2I.js} +1 -1
  30. package/{chunk-BO3ARJRK.js → chunk-GXZZOTDM.js} +9 -9
  31. package/{chunk-BMCPKNL2.js → chunk-HRZW3SQN.js} +2 -2
  32. package/{chunk-QZIOZDM6.js → chunk-JIAZK434.js} +2 -2
  33. package/{chunk-R2KWTENX.js → chunk-K3N2DWLT.js} +2 -2
  34. package/{chunk-FFHV45HO.js → chunk-L2JMH4I5.js} +3 -3
  35. package/{chunk-CXCMXNME.js → chunk-PNACBSRF.js} +9 -9
  36. package/{chunk-OLVOR45M.js → chunk-Q5LVXPGT.js} +2 -2
  37. package/{chunk-2ZYCNT2O.js → chunk-QFL42TMV.js} +28 -10
  38. package/{chunk-ZAV4YVEA.js → chunk-U5U4WAFS.js} +2 -2
  39. package/{chunk-2XDQAWBM.js → chunk-UUPXTEZA.js} +2 -2
  40. package/{chunk-FB5WLEOD.js → chunk-V67W64OY.js} +7 -7
  41. package/{chunk-O2IWR23M.js → chunk-W7FGZRLK.js} +1 -1
  42. package/{chunk-VXS4YYJ2.js → chunk-WYJTNSVL.js} +1 -1
  43. package/{chunk-QI2WVWXV.js → chunk-ZZDVBZOP.js} +1 -1
  44. package/{commandRegistry-HPL2KOVB.js → commandRegistry-2DDDET7G.js} +40 -40
  45. package/{contentThunks-QBL5NK2W.js → contentThunks-5DNEHJ2Z.js} +3 -3
  46. package/{createAgentAutomationAction-5UWBLR2N.js → createAgentAutomationAction-4SUS2EFX.js} +3 -3
  47. package/{createDialogAction-NJ2LE7KC.js → createDialogAction-JSFXX6JE.js} +4 -4
  48. package/{createPageAction-7T3RINS2.js → createPageAction-37HHOXZ2.js} +3 -3
  49. package/{dialogCommands-KMECTGCW.js → dialogCommands-ZJRMCP4S.js} +7 -7
  50. package/{dialogSlice-GQMTD4HR.js → dialogSlice-2Z66AWEW.js} +2 -2
  51. package/{docCreateCommands-4IT5PUAL.js → docCreateCommands-KQHQNLRX.js} +6 -6
  52. package/{docDeleteCommands-QS66YNZV.js → docDeleteCommands-O3DWFX2W.js} +7 -7
  53. package/{docReadCommands-3SAI46YC.js → docReadCommands-2U2BUONC.js} +6 -6
  54. package/{docStore-PM5PYKPZ.js → docStore-XMTUF3GX.js} +1 -1
  55. package/{docUpdateCommands-OGYG5BRC.js → docUpdateCommands-MF3C52XI.js} +6 -6
  56. package/{handleSendMessageAction-EQ3U6K5N.js → handleSendMessageAction-4VFVXTF2.js} +7 -7
  57. package/index.js +3 -3
  58. package/{localRuntimeAdapter-74L7FLMW.js → localRuntimeAdapter-KKIVRYVN.js} +14 -14
  59. package/{machineCommands-BUZTMLYD.js → machineCommands-UHQVCOD3.js} +15 -15
  60. package/{machineWsRunDispatch-CCDVG5AO.js → machineWsRunDispatch-TX4X7TOJ.js} +15 -15
  61. package/package.json +1 -1
  62. package/{readlineWorkspace-MS2ZIQ2P.js → readlineWorkspace-BFVB2ON5.js} +20 -20
  63. package/{runAgentClientLoop-EXIQDX7G.js → runAgentClientLoop-HHLHNMBE.js} +13 -13
  64. package/{spaceCommands-WQMUCGV7.js → spaceCommands-NDPGHDMD.js} +6 -6
  65. package/{streamAgentChatTurn-DI2334G3.js → streamAgentChatTurn-KNPOLET7.js} +15 -15
  66. package/{tools-23VQGJOX.js → tools-ULA7XJQT.js} +9 -9
  67. package/{updateDialogTitleAction-AGAYHWS7.js → updateDialogTitleAction-VUIVBDAS.js} +3 -3
@@ -23,7 +23,7 @@ import {
23
23
  import {
24
24
  OAUTH_PROVIDER_REFS,
25
25
  buildLocalAgentLookupKeys
26
- } from "./chunk-7RF4O6AT.js";
26
+ } from "./chunk-BL4HFN6L.js";
27
27
  import {
28
28
  LOCAL_CODEX_AGENT_ID,
29
29
  LOCAL_CODEX_AGENT_KEY,
@@ -64,7 +64,7 @@ import {
64
64
  import {
65
65
  inlineImageUrlsForCustomProvider,
66
66
  prepareTools
67
- } from "./chunk-OLVOR45M.js";
67
+ } from "./chunk-Q5LVXPGT.js";
68
68
  import {
69
69
  getServerProviderSecret
70
70
  } from "./chunk-HS7MLR74.js";
@@ -86,18 +86,18 @@ import {
86
86
  resolveCliLocalRuntimeKeyCapability,
87
87
  resolveCliLocalSpawnDispatch,
88
88
  resolveStartAgentRunCwd
89
- } from "./chunk-2ZYCNT2O.js";
89
+ } from "./chunk-QFL42TMV.js";
90
90
  import {
91
91
  deriveCredentialGroup,
92
92
  deriveCustomProviderCredentialGroup
93
- } from "./chunk-VXS4YYJ2.js";
93
+ } from "./chunk-WYJTNSVL.js";
94
94
  import {
95
95
  fetchWithTransientRetry,
96
96
  isTransientFetchError
97
97
  } from "./chunk-KFHREHUQ.js";
98
98
  import {
99
99
  resolveAgentRequiredPackIds
100
- } from "./chunk-FCUKCVKN.js";
100
+ } from "./chunk-6QIBWOPT.js";
101
101
  import {
102
102
  applyBuiltinAgentRuntimeOverride,
103
103
  applyTokenUsageToDayStats,
@@ -106,14 +106,14 @@ import {
106
106
  resolveBuiltinPlatformAgentConfig,
107
107
  runKeyed,
108
108
  validateAskChoiceInput
109
- } from "./chunk-F5WASHQA.js";
109
+ } from "./chunk-2QQ7D3P5.js";
110
110
  import {
111
111
  BUILTIN_DIALOG_LLM_CHAT_FALLBACK_MODEL,
112
112
  BUILTIN_TITLE_LLM_CONFIG
113
113
  } from "./chunk-523DITKR.js";
114
114
  import {
115
115
  fetchServerSyncedCredential
116
- } from "./chunk-DT7EWFTY.js";
116
+ } from "./chunk-EDJND3FK.js";
117
117
  import {
118
118
  isTombstoneRecord
119
119
  } from "./chunk-D2MDMY2M.js";
@@ -170,7 +170,7 @@ import {
170
170
  runExecShellGates,
171
171
  validateConfiguredRootExecutionLease,
172
172
  verifyOwnerRouteAck
173
- } from "./chunk-K25WQPP3.js";
173
+ } from "./chunk-5E5VB7PS.js";
174
174
  import {
175
175
  accumulateGeminiChunks,
176
176
  buildGeminiGenerateContentRequest,
@@ -215,7 +215,7 @@ import {
215
215
  buildNoloWorkspaceOpenAiTools,
216
216
  parseNoloWorkspaceToolArguments,
217
217
  resolveRuntimeToolSurfaceForAgent
218
- } from "./chunk-QLQ573SU.js";
218
+ } from "./chunk-3M52COK5.js";
219
219
  import {
220
220
  mergeAvailabilityDeadline,
221
221
  resolveAvailabilityAction,
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-62TBKWTV.js";
7
7
  import {
8
8
  clearCliLocalRuntimePreparedAgentCache
9
- } from "./chunk-BO3ARJRK.js";
9
+ } from "./chunk-GXZZOTDM.js";
10
10
  import {
11
11
  readCredentialAvailability
12
12
  } from "./chunk-6MXDOUMH.js";
@@ -19,7 +19,7 @@ import {
19
19
  resolveAgentRecordFromHybridStore,
20
20
  sanitizeAgentRecordForCliOutput,
21
21
  writeAgentRecord
22
- } from "./chunk-KABQ74UQ.js";
22
+ } from "./chunk-5IKRTRRR.js";
23
23
  import {
24
24
  resolveCliAgentKeyInput
25
25
  } from "./chunk-NBTY7YJF.js";
@@ -2,7 +2,7 @@ import {
2
2
  clipMultilineText,
3
3
  fetchAndSerializeTable,
4
4
  waitForAbortableDelay
5
- } from "./chunk-FCUKCVKN.js";
5
+ } from "./chunk-6QIBWOPT.js";
6
6
  import {
7
7
  isGatewayHttpStatus
8
8
  } from "./chunk-NF64D32W.js";
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-AGIM7IMJ.js";
22
22
  import {
23
23
  fetchAndCacheMessages
24
- } from "./chunk-F5WASHQA.js";
24
+ } from "./chunk-2QQ7D3P5.js";
25
25
  import {
26
26
  createSpaceKey
27
27
  } from "./chunk-UAD2WT54.js";
@@ -333,7 +333,7 @@ async function saveDocState(arg, { dispatch, getState }) {
333
333
  ).unwrap();
334
334
  if (dbSpaceId) {
335
335
  try {
336
- const { updateContentTitle } = await import("./contentThunks-QBL5NK2W.js");
336
+ const { updateContentTitle } = await import("./contentThunks-5DNEHJ2Z.js");
337
337
  await dispatch(
338
338
  updateContentTitle({
339
339
  spaceId: dbSpaceId,
@@ -372,7 +372,7 @@ async function saveDocState(arg, { dispatch, getState }) {
372
372
  }
373
373
  }
374
374
  async function createDocState(args, thunkApi) {
375
- const { createPageAction } = await import("./createPageAction-7T3RINS2.js");
375
+ const { createPageAction } = await import("./createPageAction-37HHOXZ2.js");
376
376
  return createPageAction(args, thunkApi);
377
377
  }
378
378
  function subscribe(listener) {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  listUserRecordsFromServers,
3
3
  readLiveDbRecordAfterTombstoneMerge
4
- } from "./chunk-O2IWR23M.js";
4
+ } from "./chunk-W7FGZRLK.js";
5
5
  import {
6
6
  agentRecordHasConfiguredCredential
7
- } from "./chunk-KABQ74UQ.js";
7
+ } from "./chunk-5IKRTRRR.js";
8
8
  import {
9
9
  deriveCredentialGroup
10
- } from "./chunk-VXS4YYJ2.js";
10
+ } from "./chunk-WYJTNSVL.js";
11
11
  import {
12
12
  isTombstoneRecord
13
13
  } from "./chunk-D2MDMY2M.js";
@@ -9,7 +9,7 @@ import {
9
9
  resolveRawAgentInput,
10
10
  resolveServerUrl,
11
11
  writeUsage
12
- } from "./chunk-ZAV4YVEA.js";
12
+ } from "./chunk-U5U4WAFS.js";
13
13
  import {
14
14
  getReadableCliDb
15
15
  } from "./chunk-62TBKWTV.js";
@@ -27,7 +27,7 @@ import {
27
27
  resolveBoundMachineId,
28
28
  resolveFileWriteGateEnabled,
29
29
  resolveLocalUserId
30
- } from "./chunk-BO3ARJRK.js";
30
+ } from "./chunk-GXZZOTDM.js";
31
31
  import {
32
32
  clearCredentialAvailability,
33
33
  readCredentialEntry,
@@ -60,7 +60,7 @@ import {
60
60
  import {
61
61
  readDbRecord,
62
62
  resolveAgentRecordFromHybridStore
63
- } from "./chunk-KABQ74UQ.js";
63
+ } from "./chunk-5IKRTRRR.js";
64
64
  import {
65
65
  isLocalCliAgentKey
66
66
  } from "./chunk-NBTY7YJF.js";
@@ -75,14 +75,14 @@ import {
75
75
  } from "./chunk-BMQ2MJUK.js";
76
76
  import {
77
77
  resolveCliLocalRuntimeKeyCapability
78
- } from "./chunk-2ZYCNT2O.js";
78
+ } from "./chunk-QFL42TMV.js";
79
79
  import {
80
80
  isTransientFetchError
81
81
  } from "./chunk-KFHREHUQ.js";
82
82
  import {
83
83
  parseUiCard,
84
84
  uiCardFallback
85
- } from "./chunk-FCUKCVKN.js";
85
+ } from "./chunk-6QIBWOPT.js";
86
86
  import {
87
87
  isGatewayHttpStatus
88
88
  } from "./chunk-NF64D32W.js";
@@ -91,7 +91,7 @@ import {
91
91
  chooseMemoryOwners,
92
92
  loadMemoryCandidatesFromDb,
93
93
  resolveAgentMemoryPolicy
94
- } from "./chunk-JDKSYQQN.js";
94
+ } from "./chunk-4FDDVVCE.js";
95
95
  import {
96
96
  API_REPORTED_COST_MULTIPLIER,
97
97
  estimateMessagesTokens,
@@ -99,7 +99,7 @@ import {
99
99
  resolveAgentContextWindow,
100
100
  resolveOccupancy,
101
101
  resolveOccupancyWindow
102
- } from "./chunk-F5WASHQA.js";
102
+ } from "./chunk-2QQ7D3P5.js";
103
103
  import {
104
104
  buildSkillDiscoveryContextLayer
105
105
  } from "./chunk-AU7AXHUL.js";
@@ -111,7 +111,7 @@ import {
111
111
  LOCAL_AGENT_CONFIG_MISSING_CODE,
112
112
  LOCAL_TURN_ABORTED_CODE,
113
113
  readActionGate
114
- } from "./chunk-K25WQPP3.js";
114
+ } from "./chunk-5E5VB7PS.js";
115
115
  import {
116
116
  resolveAgentRuntimeConfigFromRecord
117
117
  } from "./chunk-ULQAD7ZY.js";
@@ -11224,7 +11224,7 @@ function isBalanceExhaustedError(error) {
11224
11224
 
11225
11225
  // packages/cli/client/agentRun.ts
11226
11226
  async function loadRunLocalAgentTurn() {
11227
- const { runLocalAgentTurn } = await import("./agentRuntimeLocal-XCKO5FVP.js");
11227
+ const { runLocalAgentTurn } = await import("./agentRuntimeLocal-J6I63NZC.js");
11228
11228
  return runLocalAgentTurn;
11229
11229
  }
11230
11230
  var stripDebugNoise = (s) => s.replace(/\s*raw="[\s\S]*"/g, "").replace(/\s*raw=\S+/g, "").replace(/\s*headers=\[[^\]]*\]/g, "").replace(/\s*headers=\S+/g, "").trim();
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  toolRegistry
3
- } from "./chunk-2ZYCNT2O.js";
3
+ } from "./chunk-QFL42TMV.js";
4
4
  import {
5
5
  runtime_default
6
- } from "./chunk-F5WASHQA.js";
6
+ } from "./chunk-2QQ7D3P5.js";
7
7
  import {
8
8
  canonicalizeToolNames
9
9
  } from "./chunk-5EBLANFT.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  assembleAgentDiscoveryResult,
3
3
  resolveDiscoveryScope
4
- } from "./chunk-VXS4YYJ2.js";
4
+ } from "./chunk-WYJTNSVL.js";
5
5
  import {
6
6
  fetchWithTransientRetry
7
7
  } from "./chunk-KFHREHUQ.js";
@@ -20,7 +20,7 @@ import {
20
20
  toolRunUpdated,
21
21
  uiCardFallback,
22
22
  waitForAbortableDelay
23
- } from "./chunk-FCUKCVKN.js";
23
+ } from "./chunk-6QIBWOPT.js";
24
24
  import {
25
25
  isGatewayHttpStatus
26
26
  } from "./chunk-NF64D32W.js";
@@ -64,7 +64,7 @@ import {
64
64
  } from "./chunk-VF4K2QE6.js";
65
65
  import {
66
66
  createDocState
67
- } from "./chunk-R2KWTENX.js";
67
+ } from "./chunk-K3N2DWLT.js";
68
68
  import {
69
69
  addMemberSpace,
70
70
  fetchAuthoritativeRemoteSpace,
@@ -79,7 +79,7 @@ import {
79
79
  } from "./chunk-BAWAKW7X.js";
80
80
  import {
81
81
  createDialogAction
82
- } from "./chunk-JDKSYQQN.js";
82
+ } from "./chunk-4FDDVVCE.js";
83
83
  import {
84
84
  setDialogExtraReferencesAction
85
85
  } from "./chunk-IF7V3CBU.js";
@@ -102,7 +102,7 @@ import {
102
102
  updateContentCategory,
103
103
  updateContentTitle,
104
104
  writeStoredCollapsedCategories
105
- } from "./chunk-YR47Y7CN.js";
105
+ } from "./chunk-FTHF2P2I.js";
106
106
  import {
107
107
  buildDatabaseFileContentUrl,
108
108
  deleteDialog,
@@ -115,7 +115,7 @@ import {
115
115
  selectMsgById,
116
116
  uiAskChoiceFunc,
117
117
  uiAskChoiceFunctionSchema
118
- } from "./chunk-F5WASHQA.js";
118
+ } from "./chunk-2QQ7D3P5.js";
119
119
  import {
120
120
  buildMediaToolConfirmation,
121
121
  normalizeMediaConfirmExecutionRevision
@@ -126,7 +126,7 @@ import {
126
126
  runLlm,
127
127
  streamAgentChatTurn,
128
128
  updateAgent
129
- } from "./chunk-DT7EWFTY.js";
129
+ } from "./chunk-EDJND3FK.js";
130
130
  import {
131
131
  getCurrentSpaceId,
132
132
  getCurrentSpaceIdRaw,
@@ -225,10 +225,11 @@ import {
225
225
  normalizeNoloExcludeDialogIds,
226
226
  normalizeNoloSpaceInput,
227
227
  redactAgentRecordForWorkspaceTool,
228
+ resolveDispatchedSubtaskBudget,
228
229
  resolveNoloDialogInput,
229
230
  resolveReadOnlyToolConstraints,
230
231
  verifyNoloDialogSubjectRefQuery
231
- } from "./chunk-QLQ573SU.js";
232
+ } from "./chunk-3M52COK5.js";
232
233
  import {
233
234
  clipCompactText
234
235
  } from "./chunk-5MMAK75Q.js";
@@ -3881,7 +3882,7 @@ async function deleteDialogsFunc(args, thunkApi) {
3881
3882
  const deletedDialogIds = [];
3882
3883
  const deletedDialogKeys = [];
3883
3884
  const failures = [];
3884
- const { deleteDialog: deleteDialog2 } = await import("./dialogSlice-GQMTD4HR.js");
3885
+ const { deleteDialog: deleteDialog2 } = await import("./dialogSlice-2Z66AWEW.js");
3885
3886
  for (const target of targets) {
3886
3887
  try {
3887
3888
  await thunkApi.dispatch(deleteDialog2(target.dbKey)).unwrap();
@@ -13572,6 +13573,7 @@ var runAgentBackground = createAsyncThunk("agent/runBackground", async (args, {
13572
13573
  idempotencyKey,
13573
13574
  ...parentDialogId ? { parentDialogId } : {},
13574
13575
  ...runtimeKey ? { runtimeKey } : {},
13576
+ ...args.subtaskBudgetLimits ? { subtaskBudgetLimits: args.subtaskBudgetLimits } : {},
13575
13577
  ...ephemeral ? { ephemeral: true } : {},
13576
13578
  ...runKind ? { runKind } : {},
13577
13579
  runtimeContext: {
@@ -14117,6 +14119,14 @@ function buildStartAgentRunFunctionSchema(opts) {
14117
14119
  type: "boolean",
14118
14120
  description: '\u53EF\u9009\u3002\u4E3A true \u65F6\u672C\u6B21 run \u4F1A\u88AB\u8BB0\u5F55\u8FDB runtime todo\uFF08~/.nolo/todos.json\uFF09\u3002\u4F20\u4E86 batchId \u65F6\u9ED8\u8BA4\u5373\u8BB0\u5F55\uFF08\u6BCF\u6279\u5BF9\u5E94\u4E00\u9879 todo\uFF09\u3002todo \u72B6\u6001\u7531\u5173\u8054 run \u72B6\u6001 + review \u7ED3\u8BBA\u63A8\u5BFC\uFF0C\u7528 controlAgentRun(action:"todo") \u67E5\u8BE2\u3002'
14119
14121
  },
14122
+ maxToolCalls: {
14123
+ type: "number",
14124
+ description: "\u53EF\u9009\u3002\u8FD9\u6B21\u5B50\u4EFB\u52A1\u7684\u5DE5\u5177\u8C03\u7528\u6388\u6743\u989D\u5EA6\uFF08\u786C\u4E0A\u9650\uFF09\u3002\u4E0D\u4F20\u5219\u7528 runtime \u9ED8\u8BA4 200\u3002\u5230\u9650\u5373\u505C\u6B62\u542F\u52A8\u65B0\u7684\u5DE5\u5177\u4E0E\u6A21\u578B\u8C03\u7528\u3001\u6709\u754C\u6536\u5C3E\uFF0C\u8FD4\u56DE\u4E2D\u95F4\u7ED3\u8BBA\u5E76\u6807\u8BB0 budget-exhausted\uFF08\u4E0D\u7B97 provider \u9519\u8BEF\uFF09\u3002\u5E94\u6309\u4EFB\u52A1\u610F\u56FE\u6536\u7D27\uFF1A\u6539\u4E00\u4E2A\u5E38\u91CF\u7ED9 10~20\uFF0C\u5355\u6587\u4EF6\u4FEE\u590D\u7ED9 40\uFF0C\u5BA1\u67E5\u7ED9 60\u3002\u6CE8\u610F\u9ED8\u8BA4 200 \u53EA\u7528\u6765\u515C\u65E0\u754C\u635F\u5931\uFF0C\u4E0D\u662F\u5931\u63A7\u8BC6\u522B\u2014\u2014\u8DD1\u5230\u4E0A\u9650\u4E0D\u4EE3\u8868\u4EFB\u52A1\u6B63\u5E38\u3002"
14125
+ },
14126
+ maxWallClockMs: {
14127
+ type: "number",
14128
+ description: "\u53EF\u9009\u3002\u8FD9\u6B21\u5B50\u4EFB\u52A1\u7684\u5899\u949F\u786C\u4E0A\u9650\uFF08\u6BEB\u79D2\uFF09\u3002\u4E0D\u4F20\u5219\u7528 runtime \u9ED8\u8BA4 3600000\uFF0860 \u5206\u949F\uFF09\u3002\u4E0E maxToolCalls \u4EFB\u4E00\u5148\u5230\u5373\u7EC8\u6B62\u3002\u4F5C\u7528\u662F\u515C\u4F4F\u300C\u5355\u6B21\u8C03\u7528\u91CC\u5957\u5FAA\u73AF\u300D\u8FD9\u7C7B\u5DE5\u5177\u8BA1\u6570\u6D4B\u4E0D\u51FA\u8017\u65F6\u7684\u573A\u666F\uFF0C\u4F8B\u5982\u4E00\u6761 shell \u91CC `for i in 1 2 3` \u53CD\u590D\u8DD1\u540C\u4E00\u5957\u6D4B\u8BD5\uFF0C\u8C03\u7528\u6570\u53EA\u6709 1 \u4F46\u8017\u65F6\u5F88\u957F\u3002"
14129
+ },
14120
14130
  ...supportsWait ? {
14121
14131
  wait: {
14122
14132
  type: "boolean",
@@ -14205,6 +14215,10 @@ async function startAgentRunFunc(args, thunkApi, _context) {
14205
14215
  if (!verdict.allowed) throw new Error(verdict.message);
14206
14216
  }
14207
14217
  const content = buildDelegatedTaskContent(task, input);
14218
+ const dispatchedSubtaskBudget = resolveDispatchedSubtaskBudget({
14219
+ ...typeof args.maxToolCalls === "number" ? { maxToolCalls: args.maxToolCalls } : {},
14220
+ ...typeof args.maxWallClockMs === "number" ? { maxWallClockMs: args.maxWallClockMs } : {}
14221
+ });
14208
14222
  const payloadMetrics = calculateDelegatedPayloadMetrics(task, input, content);
14209
14223
  const activeDialogKey = getActiveDialogKey();
14210
14224
  const explicitParentDialogId = typeof args.parentDialogId === "string" && args.parentDialogId.trim() ? args.parentDialogId.includes("-") ? extractCustomId(args.parentDialogId) : args.parentDialogId.trim() : void 0;
@@ -14227,6 +14241,8 @@ async function startAgentRunFunc(args, thunkApi, _context) {
14227
14241
  runKind: "subtask",
14228
14242
  runTitle: title,
14229
14243
  runtimeKey: "local",
14244
+ // 已解析的硬预算(子 run 只消费,不再自行读 env)。
14245
+ subtaskBudgetLimits: dispatchedSubtaskBudget.limits,
14230
14246
  allowHostWrites: true,
14231
14247
  ...args.readOnly === true ? { readOnly: true } : {},
14232
14248
  ...parentDialogId ? { parentDialogId } : {}
@@ -14241,6 +14257,8 @@ async function startAgentRunFunc(args, thunkApi, _context) {
14241
14257
  waitForCompletion: wait === true,
14242
14258
  runKind: "subtask",
14243
14259
  runTitle: title,
14260
+ // 已解析的硬预算(子 run 只消费,不再自行读 env)。
14261
+ subtaskBudgetLimits: dispatchedSubtaskBudget.limits,
14244
14262
  ...args.readOnly === true ? { readOnly: true } : {},
14245
14263
  ...parentDialogId ? { parentDialogId } : {},
14246
14264
  ...runtimeKey ? { runtimeKey } : {}
@@ -18463,7 +18481,7 @@ async function updateDocFunc(args, thunkApi) {
18463
18481
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
18464
18482
  };
18465
18483
  await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
18466
- const { getDocState, applyExternalDocUpdate } = await import("./docStore-PM5PYKPZ.js");
18484
+ const { getDocState, applyExternalDocUpdate } = await import("./docStore-XMTUF3GX.js");
18467
18485
  if (getDocState().pageKey === id) {
18468
18486
  applyExternalDocUpdate({
18469
18487
  slateData: finalSlateData,
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-NBTY7YJF.js";
6
6
  import {
7
7
  resolveCliLocalRuntimeKeyCapability
8
- } from "./chunk-2ZYCNT2O.js";
8
+ } from "./chunk-QFL42TMV.js";
9
9
  import {
10
10
  HIGH_RISK_MUTATION_TOOL_NAMES
11
- } from "./chunk-QLQ573SU.js";
11
+ } from "./chunk-3M52COK5.js";
12
12
  import {
13
13
  DEFAULT_NOLO_SERVER_URL
14
14
  } from "./chunk-OLZBQWZU.js";
@@ -7,7 +7,7 @@ import {
7
7
  listUserRecordsFromServers,
8
8
  readDbRecordFromServers,
9
9
  readLiveDbRecordAfterTombstoneMerge
10
- } from "./chunk-O2IWR23M.js";
10
+ } from "./chunk-W7FGZRLK.js";
11
11
  import {
12
12
  parsePositiveFiniteNumberOrFallback
13
13
  } from "./chunk-Y5GCAMGP.js";
@@ -32,7 +32,7 @@ import {
32
32
  boundSummaryText,
33
33
  buildDialogReadEnvelope,
34
34
  projectDialogReadForAgent
35
- } from "./chunk-QLQ573SU.js";
35
+ } from "./chunk-3M52COK5.js";
36
36
  import {
37
37
  asRecordOrEmpty
38
38
  } from "./chunk-KX6YBIHG.js";
@@ -5,7 +5,7 @@ import {
5
5
  inlineImageUrlsForCustomProvider,
6
6
  prepareTools,
7
7
  shouldInlineImageUrlsForAgent
8
- } from "./chunk-OLVOR45M.js";
8
+ } from "./chunk-Q5LVXPGT.js";
9
9
  import {
10
10
  CONFIRMATION_INPUT_KEYS,
11
11
  INVALID_TOOL_ARGS_REPLACEMENT,
@@ -14,16 +14,16 @@ import {
14
14
  performFetchRequest,
15
15
  sanitizeOutboundMessages,
16
16
  stripModelToolArgs
17
- } from "./chunk-HW7EBEC5.js";
17
+ } from "./chunk-7YQQXP42.js";
18
18
  import {
19
19
  findToolExecutor,
20
20
  toolDefinitionsByName
21
- } from "./chunk-2ZYCNT2O.js";
21
+ } from "./chunk-QFL42TMV.js";
22
22
  import {
23
23
  classifyApiError,
24
24
  classifyGenerationError,
25
25
  extractErrorDiagnostics
26
- } from "./chunk-QZIOZDM6.js";
26
+ } from "./chunk-JIAZK434.js";
27
27
  import {
28
28
  createSSEParser,
29
29
  createToolRunId,
@@ -32,7 +32,7 @@ import {
32
32
  toolRunSetPending,
33
33
  toolRunStarted,
34
34
  toolRunSucceeded
35
- } from "./chunk-FCUKCVKN.js";
35
+ } from "./chunk-6QIBWOPT.js";
36
36
  import {
37
37
  getPublicImageAgentMode
38
38
  } from "./chunk-VIDPVFP3.js";
@@ -42,10 +42,10 @@ import {
42
42
  messageStreaming,
43
43
  toolResultNeedsUserConfirmation,
44
44
  updateToolMessage
45
- } from "./chunk-F5WASHQA.js";
45
+ } from "./chunk-2QQ7D3P5.js";
46
46
  import {
47
47
  streamAgentChatTurn
48
- } from "./chunk-DT7EWFTY.js";
48
+ } from "./chunk-EDJND3FK.js";
49
49
  import {
50
50
  getCurrentSpaceId
51
51
  } from "./chunk-ZJ7UHBJS.js";
@@ -2,7 +2,7 @@ import {
2
2
  deleteDbRecord,
3
3
  queryUserRecords,
4
4
  readDbRecord
5
- } from "./chunk-KABQ74UQ.js";
5
+ } from "./chunk-5IKRTRRR.js";
6
6
  import {
7
7
  mergeAndDedupUserData
8
8
  } from "./chunk-OXME3PEE.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-UEILX4EV.js";
4
4
  import {
5
5
  compareAgentSelection
6
- } from "./chunk-QLQ573SU.js";
6
+ } from "./chunk-3M52COK5.js";
7
7
  import {
8
8
  isAgentUnavailableNow
9
9
  } from "./chunk-3MZAGMYY.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AGENT_SELECTION_PRIORITY_INSTRUCTIONS
3
- } from "./chunk-QLQ573SU.js";
3
+ } from "./chunk-3M52COK5.js";
4
4
  import {
5
5
  canonicalizeToolNames
6
6
  } from "./chunk-5EBLANFT.js";