nolo-cli 0.156.0-alpha.2 → 0.156.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/{_executeModel-5WS2PA62.js → _executeModel-3FMHTHSS.js} +55 -55
  2. package/{accountResolver-7RYB4D2P.js → accountResolver-55EDKEIK.js} +1 -1
  3. package/{action-ZJYUBXFC.js → action-GPPJC5TI.js} +5 -5
  4. package/{addContentAction-TVHB4526.js → addContentAction-XJQEJ4XW.js} +8 -8
  5. package/{addDialogAgentAction-FDPBU6K6.js → addDialogAgentAction-5WZX5CAY.js} +7 -7
  6. package/{agentDeleteCommand-MDC7OS3I.js → agentDeleteCommand-VRHLJZKX.js} +75 -76
  7. package/{agentEmailCommands-WN4EOPKQ.js → agentEmailCommands-YGBQXOL3.js} +78 -79
  8. package/{agentListCommands-G36AMSBR.js → agentListCommands-GOCGOQUB.js} +36 -36
  9. package/{agentMachineCommands-63GXO27A.js → agentMachineCommands-FBAWZYHI.js} +35 -32
  10. package/{agentProviderCommands-X2HQE6HY.js → agentProviderCommands-CXBHNONN.js} +5 -5
  11. package/{agentPullCommand-FA43RBRU.js → agentPullCommand-GXXEDOSA.js} +4 -4
  12. package/{agentRecordCommands-X4WJRHDW.js → agentRecordCommands-KAK2G56H.js} +72 -73
  13. package/{agentRunCommand-4YMIVVHF.js → agentRunCommand-62P3AGJA.js} +75 -75
  14. package/{agentRunControl-2C5GM3BW.js → agentRunControl-XBSNHHZE.js} +7 -7
  15. package/{agentRuntimeLocal-Q7ZOMZC7.js → agentRuntimeLocal-J6I63NZC.js} +21 -19
  16. package/{agentSlice-E3XS5FTQ.js → agentSlice-IZFU3WWH.js} +8 -8
  17. package/{appDeleteCommands-MMWT54BR.js → appDeleteCommands-KKLAK2UR.js} +31 -29
  18. package/{appDeployCommands-OIFXVDOF.js → appDeployCommands-PXWK4FAX.js} +31 -29
  19. package/{appDeployStatusCommands-OTXMSDFB.js → appDeployStatusCommands-3NGWDZTX.js} +31 -29
  20. package/{appGetCommands-JPY36ANL.js → appGetCommands-APWYPEO3.js} +31 -29
  21. package/{appListCommands-IHJGN36O.js → appListCommands-OP7IRALO.js} +31 -29
  22. package/{authCommand-J3XILHWW.js → authCommand-3Z52KJID.js} +22 -302
  23. package/{authCommands-77CHYBGF.js → authCommands-QOCKVPX3.js} +5 -5
  24. package/{builtinSkillRegistry-A6VSPJEJ.js → builtinSkillRegistry-LJV7FHNI.js} +4 -4
  25. package/{chromeCommands-OBBNJCLS.js → chromeCommands-IY4NVSXZ.js} +17 -10
  26. package/{chunk-SW4S4XYB.js → chunk-2AB2HA4M.js} +84 -34
  27. package/{chunk-H4KACZMG.js → chunk-2QQ7D3P5.js} +271 -138
  28. package/{chunk-C5VPAHIU.js → chunk-32ZKZET7.js} +1 -1
  29. package/{chunk-FPWT3RH2.js → chunk-36IWXF25.js} +22 -22
  30. package/{chunk-XPWGOTBQ.js → chunk-3L2WKC3W.js} +1 -8
  31. package/{chunk-3XZKV7QQ.js → chunk-3L5MSPWX.js} +1 -1
  32. package/{chunk-QLQ573SU.js → chunk-3M52COK5.js} +120 -0
  33. package/{chunk-Z6KQDSZW.js → chunk-43OFVLWJ.js} +6 -6
  34. package/{chunk-7A4LJCDR.js → chunk-4FDDVVCE.js} +5 -5
  35. package/{chunk-TJ2VPCBE.js → chunk-4JCAW7TO.js} +2 -2
  36. package/{chunk-6TF64IF2.js → chunk-4L4K6YR7.js} +16 -2
  37. package/{chunk-ZG73GDYU.js → chunk-5E5VB7PS.js} +332 -59
  38. package/{chunk-HKT6QXP3.js → chunk-5IKRTRRR.js} +5 -5
  39. package/{chunk-P5QACQDK.js → chunk-62TBKWTV.js} +1 -1
  40. package/{chunk-TRW43TSC.js → chunk-6EQD4AQL.js} +41 -1
  41. package/{chunk-RUNKPFM5.js → chunk-6QIBWOPT.js} +12 -8
  42. package/{chunk-YLMMECCH.js → chunk-6XIE5ZGI.js} +1 -1
  43. package/{chunk-7GC3EKUG.js → chunk-7PDNSQZC.js} +3 -3
  44. package/{chunk-DW7MGLMG.js → chunk-7YQQXP42.js} +35 -207
  45. package/{chunk-WZ6OU4NX.js → chunk-BAWAKW7X.js} +2 -2
  46. package/{chunk-UUPR3TD7.js → chunk-BL4HFN6L.js} +2 -4
  47. package/{chunk-2GGXHQIW.js → chunk-BLVSFYQ3.js} +4 -2
  48. package/{chunk-HP6O6LTV.js → chunk-CDLP56BS.js} +9 -9
  49. package/{chunk-4LRK5Q2Z.js → chunk-CI6YDDL2.js} +18 -17
  50. package/{chunk-5MM7NNO6.js → chunk-CNWKLQRL.js} +8 -3
  51. package/{chunk-UTIMX333.js → chunk-DJ2BOPJY.js} +1 -1
  52. package/{chunk-36OMEXXR.js → chunk-DLV3H464.js} +8 -8
  53. package/{chunk-X5SUT4CN.js → chunk-EDJND3FK.js} +6 -6
  54. package/{chunk-CE7PIHQD.js → chunk-ESMZW5PE.js} +3 -3
  55. package/{chunk-PSJWPSKS.js → chunk-EWO77ZGF.js} +9 -43
  56. package/{chunk-ZWG3C7VI.js → chunk-F3SOW2EU.js} +81 -1
  57. package/{chunk-FY4SDK2E.js → chunk-FDLDMJTM.js} +1 -1
  58. package/chunk-FTHF2P2I.js +2685 -0
  59. package/{chunk-7KYVUFDG.js → chunk-G3VYRPTV.js} +5 -267
  60. package/{chunk-NQ64VVAI.js → chunk-GXZZOTDM.js} +826 -689
  61. package/{chunk-6MJNEXUU.js → chunk-HGDKT2D6.js} +4 -0
  62. package/{chunk-6KVZAZJA.js → chunk-HRZW3SQN.js} +7 -7
  63. package/{chunk-B2EGWZJG.js → chunk-I7S63QUU.js} +1 -1
  64. package/{chunk-ROPSATAB.js → chunk-IF7V3CBU.js} +1 -1
  65. package/{chunk-T6CBQ6BN.js → chunk-INFHX73M.js} +1 -1
  66. package/{chunk-YBNHPX4S.js → chunk-IW64YHXL.js} +155 -31
  67. package/{chunk-VSOWPETY.js → chunk-JIAZK434.js} +10 -10
  68. package/{chunk-K43ZF2C3.js → chunk-JPPQ3GUO.js} +1 -1
  69. package/{chunk-TZTWMGE3.js → chunk-JWEXJ573.js} +3 -3
  70. package/{chunk-OH2M7WEU.js → chunk-K3N2DWLT.js} +3 -3
  71. package/{chunk-I2ZMGXXF.js → chunk-KFHREHUQ.js} +1 -1
  72. package/{chunk-3C2QLERX.js → chunk-KMDDG73K.js} +1 -1
  73. package/{chunk-EM3YOZJ4.js → chunk-L2JMH4I5.js} +3 -3
  74. package/{chunk-D4OWHT5Y.js → chunk-MAYW6V3E.js} +2 -2
  75. package/{chunk-IPAW7XLD.js → chunk-MFVOJ6KF.js} +2 -2
  76. package/{chunk-CBHGZRCE.js → chunk-MYOH447Z.js} +1 -1
  77. package/{chunk-6MPAEODB.js → chunk-NHEWV5FD.js} +17 -3
  78. package/{chunk-SUKSWFLP.js → chunk-PIG2IUVZ.js} +1 -1
  79. package/{chunk-WP6RXNE6.js → chunk-PNACBSRF.js} +134 -126
  80. package/{chunk-SEJ5OS6F.js → chunk-PXYBUFDB.js} +4 -0
  81. package/{chunk-SKPPKHD3.js → chunk-Q5LVXPGT.js} +2 -2
  82. package/{chunk-2MTE2PEH.js → chunk-QA2C5NKI.js} +5 -739
  83. package/{chunk-XFKZ3MCV.js → chunk-QFL42TMV.js} +251 -77
  84. package/{chunk-L6EQV5OC.js → chunk-QXZH5UDF.js} +3 -3
  85. package/{chunk-TNIX77YM.js → chunk-R5GO3YZP.js} +34 -1
  86. package/{chunk-4Z245KOA.js → chunk-SH3XD4E2.js} +8 -4
  87. package/{chunk-MM3662RS.js → chunk-SNAWGDXT.js} +263 -4
  88. package/{chunk-JGRPBIZZ.js → chunk-SQX235S2.js} +1 -1
  89. package/chunk-TT644UJD.js +188 -0
  90. package/{chunk-IYBIRCQV.js → chunk-U34KT53V.js} +29 -11
  91. package/{chunk-KOB75UNU.js → chunk-U5U4WAFS.js} +19 -3
  92. package/{chunk-ANJTRG52.js → chunk-ULQAD7ZY.js} +18 -43
  93. package/{chunk-FDT27L7S.js → chunk-UUPXTEZA.js} +19 -17
  94. package/{chunk-QDA4Y5O6.js → chunk-V67W64OY.js} +21 -17
  95. package/{chunk-I2RMFLLH.js → chunk-V7PCFWX3.js} +1 -1
  96. package/{chunk-HXHSTRGH.js → chunk-VYNMQ6HW.js} +0 -27
  97. package/{chunk-G47IPDOK.js → chunk-W7FGZRLK.js} +1 -1
  98. package/{chunk-7BSQK2UC.js → chunk-WRCZXJ4N.js} +2 -2
  99. package/{chunk-KX6LPG7W.js → chunk-WYJTNSVL.js} +9 -9
  100. package/chunk-Y5GCAMGP.js +9 -0
  101. package/{chunk-JZX2XLKC.js → chunk-YCRROBDY.js} +1 -1
  102. package/{chunk-SCJD2PNK.js → chunk-YPG7TUQD.js} +3 -3
  103. package/{chunk-YANF2RR4.js → chunk-ZPKUJROL.js} +1 -1
  104. package/{chunk-TYND6RDQ.js → chunk-ZZDVBZOP.js} +74 -3
  105. package/{commandRegistry-NE2JOCQT.js → commandRegistry-2DDDET7G.js} +88 -96
  106. package/{contentThunks-B3FRQGP7.js → contentThunks-5DNEHJ2Z.js} +21 -21
  107. package/{createAgentAutomationAction-T2YFJ6MY.js → createAgentAutomationAction-4SUS2EFX.js} +21 -21
  108. package/{createDialogAction-2NFGFBXW.js → createDialogAction-JSFXX6JE.js} +25 -25
  109. package/{createPageAction-LDAVZDN7.js → createPageAction-37HHOXZ2.js} +24 -25
  110. package/{dbSlice-5QGKMQLO.js → dbSlice-6PVPY44C.js} +7 -7
  111. package/{deleteFile-EW6QNRRT.js → deleteFile-YM6NDPAR.js} +5 -5
  112. package/{dialogCommands-H3K7PTF6.js → dialogCommands-ZJRMCP4S.js} +35 -32
  113. package/{dialogSlice-64S3J6CP.js → dialogSlice-2Z66AWEW.js} +20 -20
  114. package/{dist-NJC2W7I4.js → dist-Q2JSMAKA.js} +7 -361
  115. package/{docCreateCommands-KP64KMVL.js → docCreateCommands-KQHQNLRX.js} +32 -30
  116. package/{docDeleteCommands-C3F4SZSR.js → docDeleteCommands-O3DWFX2W.js} +33 -31
  117. package/{docReadCommands-7H6BDOUR.js → docReadCommands-2U2BUONC.js} +32 -30
  118. package/{docStore-NIP7OO4I.js → docStore-XMTUF3GX.js} +8 -8
  119. package/{docUpdateCommands-JDW4BRBH.js → docUpdateCommands-MF3C52XI.js} +32 -30
  120. package/{getPricing-TX35D7PI.js → getPricing-XQ3N3RBP.js} +2 -2
  121. package/{handleSendMessageAction-TOKA7ED7.js → handleSendMessageAction-4VFVXTF2.js} +43 -39
  122. package/index.js +8 -8
  123. package/{localRuntimeAdapter-OPPDLUG3.js → localRuntimeAdapter-KKIVRYVN.js} +70 -69
  124. package/{localRuntimeAuthority-JDAD7CB6.js → localRuntimeAuthority-BPN5OAQG.js} +2 -2
  125. package/{localRuntimeDb-CVC62PM5.js → localRuntimeDb-QIVAXMUL.js} +1 -1
  126. package/{machineCommands-OPLQR7XY.js → machineCommands-UHQVCOD3.js} +80 -79
  127. package/{machineWsRunDispatch-PTS42QDK.js → machineWsRunDispatch-TX4X7TOJ.js} +70 -71
  128. package/{memberThunks-KRV5YXOB.js → memberThunks-AZINUM4S.js} +10 -10
  129. package/package.json +6 -2
  130. package/{profileConfig-ZGOFORWV.js → profileConfig-KN3N2BLF.js} +7 -1
  131. package/{providerPresetApply-CRZFMQD5.js → providerPresetApply-PKUOHQJT.js} +5 -5
  132. package/{providerRegistry-7IS43D3X.js → providerRegistry-HNQLIFN2.js} +5 -5
  133. package/{read-5KAZHHDM.js → read-7JPIWRBQ.js} +5 -5
  134. package/{readDocTool-5QO34OSX.js → readDocTool-AAQTB2Y3.js} +1 -1
  135. package/{readlineWorkspace-3XC7SEMZ.js → readlineWorkspace-BFVB2ON5.js} +375 -200
  136. package/{removeDialogAgentAction-6X63HMI3.js → removeDialogAgentAction-RMVRILLK.js} +9 -9
  137. package/{runAgentClientLoop-5QIGEALK.js → runAgentClientLoop-HHLHNMBE.js} +59 -54
  138. package/{runtimeDoctorCommands-56NWKNON.js → runtimeDoctorCommands-MMCP4B4U.js} +12 -12
  139. package/{secretCommands-ZXZRLR3R.js → secretCommands-DNY56NSU.js} +11 -1
  140. package/{setDialogExtraReferencesAction-4MAYKKYW.js → setDialogExtraReferencesAction-L3V7JTMG.js} +8 -8
  141. package/{setPrimaryDialogAgentAction-EGBAMREH.js → setPrimaryDialogAgentAction-X52JQGTJ.js} +9 -9
  142. package/settingThunks-N6XFWPOU.js +923 -0
  143. package/{spaceCommands-JQN7D4FE.js → spaceCommands-NDPGHDMD.js} +29 -27
  144. package/{streamAgentChatTurn-456DWXNY.js → streamAgentChatTurn-KNPOLET7.js} +154 -95
  145. package/{switchDialogAgentAction-YBKTD6DO.js → switchDialogAgentAction-ZJ5CGU7J.js} +7 -7
  146. package/{tableCommands-U3QDY4L6.js → tableCommands-IVC5S7Y3.js} +11 -11
  147. package/{toolApiClient-7WSJJJBV.js → toolApiClient-HGNO53TC.js} +2 -2
  148. package/{tools-IWNXKK4Y.js → tools-ULA7XJQT.js} +43 -44
  149. package/{tuiSummaryLlmCaller-KLK6K3Q3.js → tuiSummaryLlmCaller-FESHBDTT.js} +7 -7
  150. package/{updateCommands-NQXAGFM7.js → updateCommands-FJHGWD3Q.js} +5 -3
  151. package/{updateDialogTitleAction-SX53FZWO.js → updateDialogTitleAction-VUIVBDAS.js} +21 -21
  152. package/{workloadLifecycle-36DXRZKU.js → workloadLifecycle-6O6PMISX.js} +2 -2
  153. package/chunk-IA7TRNNR.js +0 -11
  154. package/chunk-UKZX3NHN.js +0 -48
  155. package/chunk-VAZHH6FO.js +0 -7012
  156. package/chunk-W4S6OTSC.js +0 -35
  157. package/clipboardy-GCO3GT3I.js +0 -11793
  158. package/settingThunks-FTDRZNSJ.js +0 -1371
  159. package/{agentGrantCommands-HOJ3JBBQ.js → agentGrantCommands-5DPHYEKP.js} +3 -3
  160. package/{chromeOpsCommands-3Z34RKSE.js → chromeOpsCommands-GZVVK7HU.js} +4 -4
  161. package/{chunk-XETG4RIX.js → chunk-AETZ7AD6.js} +4 -4
  162. package/{chunk-2IXDJNZI.js → chunk-GAGGEA7D.js} +3 -3
  163. package/{memoryCommands-CUNBFRVS.js → memoryCommands-ZS3VQJAL.js} +3 -3
  164. package/{offlineMarxistsAgentCommand-2QTHJCHV.js → offlineMarxistsAgentCommand-3GLX4QQY.js} +3 -3
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  assembleAgentDiscoveryResult,
3
3
  resolveDiscoveryScope
4
- } from "./chunk-KX6LPG7W.js";
4
+ } from "./chunk-WYJTNSVL.js";
5
5
  import {
6
6
  fetchWithTransientRetry
7
- } from "./chunk-I2ZMGXXF.js";
7
+ } from "./chunk-KFHREHUQ.js";
8
8
  import {
9
9
  getUserDataItemTimestamp,
10
10
  mergeAndDedupUserData
@@ -20,7 +20,7 @@ import {
20
20
  toolRunUpdated,
21
21
  uiCardFallback,
22
22
  waitForAbortableDelay
23
- } from "./chunk-RUNKPFM5.js";
23
+ } from "./chunk-6QIBWOPT.js";
24
24
  import {
25
25
  isGatewayHttpStatus
26
26
  } from "./chunk-NF64D32W.js";
@@ -30,11 +30,11 @@ import {
30
30
  isDrainExhaustedResponse,
31
31
  normalizeNonNegativeMs,
32
32
  parseRetryAfterHeaderMs
33
- } from "./chunk-XPWGOTBQ.js";
33
+ } from "./chunk-3L2WKC3W.js";
34
34
  import {
35
35
  AGENT_UPDATE_FIELD_NAMES,
36
36
  normalizeAgentUpdateFieldList
37
- } from "./chunk-HXHSTRGH.js";
37
+ } from "./chunk-VYNMQ6HW.js";
38
38
  import {
39
39
  ToolApiError,
40
40
  buildToolRequestHeaders,
@@ -42,17 +42,17 @@ import {
42
42
  getRequestConfig,
43
43
  getToolBaseUrl,
44
44
  getToolRequestContext
45
- } from "./chunk-CBHGZRCE.js";
45
+ } from "./chunk-MYOH447Z.js";
46
46
  import {
47
47
  readDocFunc,
48
48
  readDocFunctionSchema,
49
49
  readPageFunc,
50
50
  readPageFunctionSchema,
51
51
  resolvePageReadMarkdown
52
- } from "./chunk-3XZKV7QQ.js";
52
+ } from "./chunk-3L5MSPWX.js";
53
53
  import {
54
54
  markdownToSlate
55
- } from "./chunk-5MM7NNO6.js";
55
+ } from "./chunk-CNWKLQRL.js";
56
56
  import {
57
57
  extractMentionsFromSlate
58
58
  } from "./chunk-AGIM7IMJ.js";
@@ -64,7 +64,7 @@ import {
64
64
  } from "./chunk-VF4K2QE6.js";
65
65
  import {
66
66
  createDocState
67
- } from "./chunk-OH2M7WEU.js";
67
+ } from "./chunk-K3N2DWLT.js";
68
68
  import {
69
69
  addMemberSpace,
70
70
  fetchAuthoritativeRemoteSpace,
@@ -76,16 +76,16 @@ import {
76
76
  setMembershipRejected,
77
77
  setSpaceInitialized,
78
78
  updateMemberSpaceName
79
- } from "./chunk-WZ6OU4NX.js";
79
+ } from "./chunk-BAWAKW7X.js";
80
80
  import {
81
81
  createDialogAction
82
- } from "./chunk-7A4LJCDR.js";
82
+ } from "./chunk-4FDDVVCE.js";
83
83
  import {
84
84
  setDialogExtraReferencesAction
85
- } from "./chunk-ROPSATAB.js";
85
+ } from "./chunk-IF7V3CBU.js";
86
86
  import {
87
87
  shareResourceAction
88
- } from "./chunk-SCJD2PNK.js";
88
+ } from "./chunk-YPG7TUQD.js";
89
89
  import {
90
90
  DEFAULT_COLLAPSED_CATEGORIES,
91
91
  addContentToSpace,
@@ -102,7 +102,7 @@ import {
102
102
  updateContentCategory,
103
103
  updateContentTitle,
104
104
  writeStoredCollapsedCategories
105
- } from "./chunk-VAZHH6FO.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-H4KACZMG.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-X5SUT4CN.js";
129
+ } from "./chunk-EDJND3FK.js";
130
130
  import {
131
131
  getCurrentSpaceId,
132
132
  getCurrentSpaceIdRaw,
@@ -148,12 +148,12 @@ import {
148
148
  import {
149
149
  selectCurrentServer,
150
150
  selectSyncServers
151
- } from "./chunk-C5VPAHIU.js";
151
+ } from "./chunk-32ZKZET7.js";
152
152
  import {
153
153
  UNCATEGORIZED_ID,
154
154
  addContentAction,
155
155
  checkSpaceMembership
156
- } from "./chunk-TZTWMGE3.js";
156
+ } from "./chunk-JWEXJ573.js";
157
157
  import {
158
158
  createSpaceKey,
159
159
  normalizeSpaceId
@@ -169,10 +169,10 @@ import {
169
169
  selectEntities,
170
170
  toTimestampMs,
171
171
  write
172
- } from "./chunk-HP6O6LTV.js";
172
+ } from "./chunk-CDLP56BS.js";
173
173
  import {
174
174
  readAction
175
- } from "./chunk-6MPAEODB.js";
175
+ } from "./chunk-NHEWV5FD.js";
176
176
  import {
177
177
  DEVICE_LOCAL_OWNER_ID,
178
178
  getRuntimeServerContext,
@@ -182,16 +182,16 @@ import {
182
182
  resolveEffectiveSpaceActorId,
183
183
  resolveRecordOwnerUserId,
184
184
  selectRuntimeSnapshot
185
- } from "./chunk-Z6KQDSZW.js";
185
+ } from "./chunk-43OFVLWJ.js";
186
186
  import {
187
187
  createAsyncThunk,
188
188
  noloWriteRequest
189
- } from "./chunk-7BSQK2UC.js";
189
+ } from "./chunk-WRCZXJ4N.js";
190
190
  import {
191
191
  selectIdentityToken,
192
192
  selectIdentityUserBalance,
193
193
  selectIdentityUserId
194
- } from "./chunk-SEJ5OS6F.js";
194
+ } from "./chunk-PXYBUFDB.js";
195
195
  import {
196
196
  buildTombstoneRecord,
197
197
  isTombstoneRecord
@@ -199,10 +199,10 @@ import {
199
199
  import {
200
200
  listBuiltinSkills,
201
201
  resolveBuiltinSkillByName
202
- } from "./chunk-4Z245KOA.js";
202
+ } from "./chunk-SH3XD4E2.js";
203
203
  import {
204
204
  CAPABILITY_PACKS
205
- } from "./chunk-JZX2XLKC.js";
205
+ } from "./chunk-YCRROBDY.js";
206
206
  import {
207
207
  buildSkillDocMarkdown,
208
208
  normalizeSkillModalities,
@@ -210,7 +210,7 @@ import {
210
210
  parseExternalSkillMarkdown,
211
211
  parseSkillDocProtocol,
212
212
  resolvePageSkillMetadata
213
- } from "./chunk-XETG4RIX.js";
213
+ } from "./chunk-AETZ7AD6.js";
214
214
  import {
215
215
  DEFAULT_READ_DIALOG_MAX_RESPONSE_CHARS,
216
216
  NOLO_WORKSPACE_TOOL_NAMES,
@@ -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";
@@ -281,9 +282,6 @@ import {
281
282
  asNonEmptyStringArray,
282
283
  asTrimmedNonEmptyStringArray
283
284
  } from "./chunk-I42VC5KR.js";
284
- import {
285
- asOptionalFiniteNumber
286
- } from "./chunk-WWC7I6TA.js";
287
285
  import {
288
286
  RUN_TITLE_MAX,
289
287
  TASK_PREVIEW_MAX,
@@ -298,11 +296,17 @@ import {
298
296
  normalizeRunTitle,
299
297
  resolveRunLabel
300
298
  } from "./chunk-PJNFNEJE.js";
299
+ import {
300
+ API_ENDPOINTS
301
+ } from "./chunk-LCBAMY2M.js";
302
+ import {
303
+ asOptionalFiniteNumber
304
+ } from "./chunk-WWC7I6TA.js";
301
305
  import {
302
306
  DEFAULT_MODEL,
303
307
  clampReasoningEffort,
304
308
  resolveModelReasoningCapabilityWithCache
305
- } from "./chunk-TRW43TSC.js";
309
+ } from "./chunk-6EQD4AQL.js";
306
310
  import {
307
311
  isRecord
308
312
  } from "./chunk-KUG52IAP.js";
@@ -312,9 +316,6 @@ import {
312
316
  import {
313
317
  toErrorMessage
314
318
  } from "./chunk-HNMXYYJR.js";
315
- import {
316
- API_ENDPOINTS
317
- } from "./chunk-LCBAMY2M.js";
318
319
  import {
319
320
  DEFAULT_LOCAL_API_ORIGIN
320
321
  } from "./chunk-4SN6J65J.js";
@@ -1264,7 +1265,7 @@ var buildPlatformFormDataFromArgs = async (args) => {
1264
1265
  const trimmedModel = toTrimmedString(model);
1265
1266
  const trimmedProvider = toTrimmedString(provider);
1266
1267
  const modelConfig = await findModelConfig(trimmedModel, trimmedProvider);
1267
- const { getModelPricing } = await import("./getPricing-TX35D7PI.js");
1268
+ const { getModelPricing } = await import("./getPricing-XQ3N3RBP.js");
1268
1269
  const normalizedTools = tools ?? [];
1269
1270
  const resolvedRuntimeToolPolicy = runtimeToolPolicy ?? (normalizedTools.includes("execShell") ? HOSTED_EXEC_RUNTIME_TOOL_POLICY : void 0);
1270
1271
  const formData = {
@@ -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-64S3J6CP.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();
@@ -4197,7 +4198,7 @@ var readSkillDocFunctionSchema = {
4197
4198
  }
4198
4199
  };
4199
4200
  async function readSkillDocFunc(args, thunkApi) {
4200
- const { buildReadDocResult } = await import("./readDocTool-5QO34OSX.js");
4201
+ const { buildReadDocResult } = await import("./readDocTool-AAQTB2Y3.js");
4201
4202
  const id = args?.id ?? args?.doc ?? args?.docKey ?? args?.pageKey;
4202
4203
  if (typeof id !== "string" || !id.trim()) {
4203
4204
  throw new Error("readSkillDoc requires id or doc.");
@@ -4467,6 +4468,7 @@ var createInitialState = () => ({
4467
4468
  favoritedAtById: {},
4468
4469
  initialized: false,
4469
4470
  loading: false,
4471
+ snapshotComplete: false,
4470
4472
  error: null
4471
4473
  });
4472
4474
  var state = createInitialState();
@@ -4986,7 +4988,7 @@ var fetchSpaceAction = async (input, thunkAPI) => {
4986
4988
  const spaceKey = createSpaceKey.space(spaceId);
4987
4989
  const readSpace = async (dbKey) => {
4988
4990
  try {
4989
- const { read: read2, readAndWait: readAndWait2 } = await import("./dbSlice-5QGKMQLO.js");
4991
+ const { read: read2, readAndWait: readAndWait2 } = await import("./dbSlice-6PVPY44C.js");
4990
4992
  if (fresh) {
4991
4993
  return await dispatch(readAndWait2(dbKey)).unwrap();
4992
4994
  }
@@ -9297,7 +9299,7 @@ ${preview}`
9297
9299
  // packages/ai/tools/exaSearchTool.ts
9298
9300
  var exaSearchSchema = {
9299
9301
  name: "exa_search",
9300
- description: "\u4F7F\u7528 Exa (\u539F Metaphor) \u667A\u80FD\u641C\u7D22\u5F15\u64CE\u67E5\u627E\u4FE1\u606F\u3002\u8FD9\u662F\u83B7\u53D6\u9AD8\u8D28\u91CF\u3001\u6700\u65B0\u7F51\u7EDC\u4FE1\u606F\u7684\u6700\u4F73\u65B9\u5F0F\u3002",
9302
+ description: "\u4F7F\u7528 Exa \u667A\u80FD\u641C\u7D22\u5F15\u64CE\u67E5\u627E\u4FE1\u606F\u3002\u53EF\u9009\u5730\u6309\u68C0\u7D22\u610F\u56FE\u3001\u5185\u5BB9\u7C7B\u76EE\u3001\u65F6\u95F4\u8303\u56F4\u4E0E\u57DF\u540D\u505A\u6536\u7A84\u3002",
9301
9303
  parameters: {
9302
9304
  type: "object",
9303
9305
  properties: {
@@ -9307,49 +9309,160 @@ var exaSearchSchema = {
9307
9309
  },
9308
9310
  numResults: {
9309
9311
  type: "number",
9310
- description: "\u8FD4\u56DE\u7684\u7ED3\u679C\u6570\u91CF\uFF08\u9ED8\u8BA4\u4E3A 5\uFF09\u3002",
9311
- default: 5
9312
+ description: "\u8FD4\u56DE\u7684\u7ED3\u679C\u6570\u91CF\uFF1B\u4E0D\u586B\u5219\u6309\u670D\u52A1\u7AEF\u5B9A\u6863\u53D6\u503C\u3002"
9312
9313
  },
9313
- useAutoprompt: {
9314
- type: "boolean",
9315
- description: "\u662F\u5426\u8BA9 Exa \u81EA\u52A8\u4F18\u5316\u67E5\u8BE2\u8BCD\uFF08\u63A8\u8350 true\uFF09\u3002",
9316
- default: true
9314
+ intent: {
9315
+ type: "string",
9316
+ enum: ["quick", "research", "exhaustive"],
9317
+ description: "\u68C0\u7D22\u610F\u56FE\u6863\u4F4D\uFF1Aquick\uFF1D\u5FEB\u901F\u626B\u4E00\u773C\uFF08\u9ED8\u8BA4\u6863\uFF0C\u591F\u7528\u5373\u53EF\uFF09\uFF1Bresearch\uFF1D\u6DF1\u5165\u8C03\u7814\uFF0C\u9700\u8981\u66F4\u5B8C\u6574\u7684\u7ED3\u679C\u4E0E\u66F4\u957F\u7684\u6458\u8981\uFF1Bexhaustive\uFF1D\u7A77\u5C3D\u5F0F\u68C0\u7D22\uFF0C\u7ED3\u679C\u6700\u591A\u3001\u5F00\u9500\u4E5F\u6700\u5927\u3002\u7EDD\u5927\u591A\u6570\u60C5\u51B5\u8BF7\u7701\u7565\u672C\u9879\u2014\u2014\u7701\u7565\u5373\u7531\u670D\u52A1\u7AEF\u6309\u573A\u666F\u81EA\u52A8\u5B9A\u6863\uFF0C\u4E0D\u8981\u4E3A\u4E86\u586B\u5B83\u800C\u731C\u6D4B\u3002"
9317
9318
  },
9318
- type: {
9319
+ category: {
9319
9320
  type: "string",
9320
- enum: ["neural", "keyword"],
9321
- description: "\u641C\u7D22\u7C7B\u578B\uFF1A'neural' (\u8BED\u4E49\u641C\u7D22\uFF0C\u9ED8\u8BA4) \u6216 'keyword' (\u7CBE\u786E\u5339\u914D)\u3002",
9322
- default: "neural"
9321
+ description: "\u5185\u5BB9\u7C7B\u76EE\u7B5B\u9009\u3002\u5E38\u89C1\u53D6\u503C\uFF1Apublication\uFF08\u8BBA\u6587/\u51FA\u7248\u7269\uFF09\u3001company\uFF08\u516C\u53F8\u4FE1\u606F\uFF09\u3001people\uFF08\u4EBA\u7269\uFF09\u3001news\uFF08\u65B0\u95FB\u8D44\u8BAF\uFF09\u3002\u4E0D\u786E\u5B9A\u7C7B\u76EE\u5C31\u522B\u586B\uFF0C\u7559\u7A7A\u5373\u53EF\u3002"
9323
9322
  },
9324
- includeContent: {
9325
- type: "boolean",
9326
- description: "\u662F\u5426\u76F4\u63A5\u8FD4\u56DE\u7F51\u9875\u7684\u6587\u672C\u5185\u5BB9\uFF08RAG \u6A21\u5F0F\uFF09\u3002\u5982\u679C\u4E3A true\uFF0C\u4E0D\u4EC5\u8FD4\u56DE\u94FE\u63A5\uFF0C\u8FD8\u4F1A\u8FD4\u56DE\u5DF2\u6E05\u6D17\u7684\u6B63\u6587\u3002",
9327
- default: true
9323
+ timeRange: {
9324
+ type: "string",
9325
+ enum: ["day", "week", "month", "year"],
9326
+ description: "\u53EA\u4FDD\u7559\u8BE5\u65F6\u95F4\u8303\u56F4\u5185\u53D1\u5E03\u7684\u7ED3\u679C\uFF08day\uFF1D24 \u5C0F\u65F6\u5185\uFF0Cweek\uFF1D\u4E00\u5468\u5185\uFF0Cmonth\uFF1D\u4E00\u6708\u5185\uFF0Cyear\uFF1D\u4E00\u5E74\u5185\uFF09\u3002\u4E0D\u586B\u5219\u4E0D\u9650\u65F6\u95F4\u3002"
9327
+ },
9328
+ includeDomains: {
9329
+ type: "array",
9330
+ items: { type: "string" },
9331
+ description: '\u53EA\u4FDD\u7559\u8FD9\u4E9B\u57DF\u540D\u4E0B\u7684\u7ED3\u679C\uFF08\u4F8B\u5982 ["arxiv.org"]\uFF09\u3002\u4E0D\u586B\u5219\u4E0D\u9650\u3002'
9332
+ },
9333
+ excludeDomains: {
9334
+ type: "array",
9335
+ items: { type: "string" },
9336
+ description: '\u6392\u9664\u8FD9\u4E9B\u57DF\u540D\u4E0B\u7684\u7ED3\u679C\uFF08\u4F8B\u5982 ["pinterest.com"]\uFF09\u3002\u4E0D\u586B\u5219\u4E0D\u6392\u9664\u3002'
9328
9337
  }
9329
9338
  },
9330
9339
  required: ["query"]
9331
9340
  }
9332
9341
  };
9333
- var exaSearchFunc = async (input, thunkApi) => {
9334
- const { query, numResults = 5, useAutoprompt = true, type = "neural", includeContent = true } = input;
9335
- const data = await callToolApi(thunkApi, "/api/exa-search", {
9342
+ var EXA_SEARCH_TOOL_NAME = "exa_search";
9343
+ var NON_COMPLETED_TOOL_STATUS = /* @__PURE__ */ new Set(["running", "pending"]);
9344
+ var collectDialogMessages = (state2, dialogId) => {
9345
+ if (!dialogId) return [];
9346
+ const slice = state2?.message ?? state2?.messages;
9347
+ const dialogState = slice?.[dialogId];
9348
+ const msgs = dialogState?.msgs ?? dialogState;
9349
+ if (!msgs || typeof msgs !== "object") return [];
9350
+ const entities = msgs.entities ?? {};
9351
+ const ids = Array.isArray(msgs.ids) ? msgs.ids : Object.keys(entities);
9352
+ const out = [];
9353
+ for (const id of ids) {
9354
+ const m = entities[id];
9355
+ if (m && typeof m === "object") out.push(m);
9356
+ }
9357
+ return out;
9358
+ };
9359
+ var isExaSearchRow = (m) => {
9360
+ if (!m || typeof m !== "object") return false;
9361
+ const payload = m.toolPayload;
9362
+ const name = m.toolName ?? payload?.toolName;
9363
+ const status = payload?.status;
9364
+ if (typeof status === "string" && NON_COMPLETED_TOOL_STATUS.has(status)) {
9365
+ return false;
9366
+ }
9367
+ return name === EXA_SEARCH_TOOL_NAME;
9368
+ };
9369
+ var readResultCount = (m) => {
9370
+ const candidates = [
9371
+ m?.content,
9372
+ m?.toolPayload?.rawData,
9373
+ m?.toolPayload?.output,
9374
+ m?.toolPayload?.result
9375
+ ];
9376
+ for (const candidate of candidates) {
9377
+ let value = candidate;
9378
+ if (typeof value === "string") {
9379
+ try {
9380
+ value = JSON.parse(value);
9381
+ } catch {
9382
+ continue;
9383
+ }
9384
+ }
9385
+ if (!value || typeof value !== "object") continue;
9386
+ const inner = value.rawData ?? value;
9387
+ const results = inner?.results;
9388
+ if (Array.isArray(results)) return results.length;
9389
+ }
9390
+ return void 0;
9391
+ };
9392
+ var resolvePlanSignals = (thunkApi, context2) => {
9393
+ let priorSearches = context2?.priorSearches;
9394
+ let lastResultCount = context2?.lastResultCount;
9395
+ if (priorSearches === void 0) {
9396
+ let rows = [];
9397
+ try {
9398
+ rows = collectDialogMessages(
9399
+ thunkApi?.getState?.(),
9400
+ context2?.dialogId
9401
+ );
9402
+ } catch {
9403
+ rows = [];
9404
+ }
9405
+ if (rows.length > 0) {
9406
+ const history = rows.filter(
9407
+ (m) => isExaSearchRow(m) && (!context2?.parentMessageId || m.parentMessageId !== context2.parentMessageId)
9408
+ );
9409
+ priorSearches = history.length;
9410
+ const last = history[history.length - 1];
9411
+ if (last) lastResultCount = readResultCount(last);
9412
+ }
9413
+ }
9414
+ return {
9415
+ ...typeof priorSearches === "number" && Number.isFinite(priorSearches) ? { priorSearches: Math.max(0, Math.trunc(priorSearches)) } : {},
9416
+ ...typeof lastResultCount === "number" && Number.isFinite(lastResultCount) ? { lastResultCount: Math.max(0, Math.trunc(lastResultCount)) } : {},
9417
+ ...context2?.origin ? { origin: context2.origin } : {}
9418
+ };
9419
+ };
9420
+ var exaSearchFunc = async (input, thunkApi, context2) => {
9421
+ const {
9336
9422
  query,
9337
9423
  numResults,
9338
- useAutoprompt,
9339
- type,
9340
- contents: includeContent ? { text: true } : void 0
9341
- }, { withAuth: true });
9342
- const results = (data.results || []).map((item) => ({
9343
- title: item.title,
9344
- url: item.url,
9345
- publishedDate: item.publishedDate,
9346
- author: item.author,
9347
- content: item.text ? item.text.slice(0, 2500) : void 0
9348
- }));
9424
+ intent,
9425
+ category,
9426
+ timeRange,
9427
+ includeDomains,
9428
+ excludeDomains,
9429
+ includeContent
9430
+ } = input;
9431
+ const body = { query };
9432
+ if (numResults !== void 0) body.numResults = numResults;
9433
+ if (typeof intent === "string" && intent) body.intent = intent;
9434
+ if (typeof category === "string" && category) body.category = category;
9435
+ if (typeof timeRange === "string" && timeRange) body.timeRange = timeRange;
9436
+ if (Array.isArray(includeDomains) && includeDomains.length > 0) {
9437
+ body.includeDomains = includeDomains;
9438
+ }
9439
+ if (Array.isArray(excludeDomains) && excludeDomains.length > 0) {
9440
+ body.excludeDomains = excludeDomains;
9441
+ }
9442
+ if (typeof includeContent === "boolean") body.includeContent = includeContent;
9443
+ const signals = resolvePlanSignals(thunkApi, context2);
9444
+ if (signals.priorSearches !== void 0) body.priorSearches = signals.priorSearches;
9445
+ if (signals.lastResultCount !== void 0) body.lastResultCount = signals.lastResultCount;
9446
+ if (signals.origin) body.origin = signals.origin;
9447
+ const data = await callToolApi(thunkApi, "/api/exa-search", body, { withAuth: true });
9448
+ const results = (data.results || []).map((item) => {
9449
+ const raw = item.text ?? (Array.isArray(item.highlights) ? item.highlights.join("\n") : void 0);
9450
+ return {
9451
+ title: item.title,
9452
+ url: item.url,
9453
+ publishedDate: item.publishedDate,
9454
+ author: item.author,
9455
+ content: typeof raw === "string" ? raw.slice(0, 2500) : void 0
9456
+ };
9457
+ });
9458
+ const warnings = Array.isArray(data.warnings) ? data.warnings : void 0;
9349
9459
  return {
9350
9460
  summary: `Found ${results.length} results for "${query}"`,
9351
9461
  results,
9352
- queryUsed: data.autopromptString || query
9462
+ queryUsed: data.queryUsed || data.autopromptString || query,
9463
+ ...warnings && warnings.length > 0 ? { warnings } : {},
9464
+ // plan.ruleId 让调用方能判断服务端这次命中的定档规则是否合预期。
9465
+ ...data.plan && typeof data.plan === "object" ? { plan: data.plan } : {}
9353
9466
  };
9354
9467
  };
9355
9468
 
@@ -10744,7 +10857,7 @@ var cloudflareCrawlStatusFunctionSchema = {
10744
10857
  async function cloudflareCrawlStatusFunc(args, thunkApi) {
10745
10858
  const { jobId, limit, status, cursor } = args;
10746
10859
  if (!jobId) throw new Error("\u5FC5\u987B\u63D0\u4F9B jobId");
10747
- const { getToolRequestContext: getToolRequestContext2 } = await import("./toolApiClient-7WSJJJBV.js");
10860
+ const { getToolRequestContext: getToolRequestContext2 } = await import("./toolApiClient-HGNO53TC.js");
10748
10861
  const { baseUrl, token } = getToolRequestContext2(thunkApi);
10749
10862
  const params = new URLSearchParams();
10750
10863
  if (limit !== void 0) params.set("limit", String(limit));
@@ -11522,7 +11635,7 @@ var selectUserIdFromState = (state2) => {
11522
11635
  var selectCurrentServerFromState = (state2) => typeof state2?.settings?.currentServer === "string" ? state2.settings.currentServer : null;
11523
11636
  async function addImageContentToSpace(input) {
11524
11637
  const injectedAddContentAction = input.thunkApi?.extra?.addContentAction;
11525
- const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-TVHB4526.js")).addContentAction;
11638
+ const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-XJQEJ4XW.js")).addContentAction;
11526
11639
  await addContentAction2(
11527
11640
  {
11528
11641
  spaceId: input.spaceId,
@@ -13460,6 +13573,7 @@ var runAgentBackground = createAsyncThunk("agent/runBackground", async (args, {
13460
13573
  idempotencyKey,
13461
13574
  ...parentDialogId ? { parentDialogId } : {},
13462
13575
  ...runtimeKey ? { runtimeKey } : {},
13576
+ ...args.subtaskBudgetLimits ? { subtaskBudgetLimits: args.subtaskBudgetLimits } : {},
13463
13577
  ...ephemeral ? { ephemeral: true } : {},
13464
13578
  ...runKind ? { runKind } : {},
13465
13579
  runtimeContext: {
@@ -13773,10 +13887,19 @@ function resolveCliLocalSpawnDispatch(input) {
13773
13887
  ...input,
13774
13888
  host: "cli-local"
13775
13889
  });
13890
+ const plan = resolvePlanForRequestedKey(requested, input.allowHostWrites, input.readOnly);
13891
+ assertExplicitCwdHonoredByDispatchTarget({
13892
+ cwd: input.cwd,
13893
+ target: plan.target,
13894
+ ...plan.runtimeKey !== void 0 ? { runtimeKey: plan.runtimeKey } : {}
13895
+ });
13896
+ return plan;
13897
+ }
13898
+ function resolvePlanForRequestedKey(requested, allowHostWrites, readOnly) {
13776
13899
  if (requested) {
13777
13900
  const capability = resolveCliLocalRuntimeKeyCapability(requested);
13778
13901
  const target = capability.target ?? (isDockerRuntimeKey(requested) ? "docker-sandbox" : "host");
13779
- if (target === "host" && input.allowHostWrites !== true) {
13902
+ if (target === "host" && allowHostWrites !== true) {
13780
13903
  throw new Error(HOST_WRITES_CONFIRMATION_REQUIRED_MESSAGE);
13781
13904
  }
13782
13905
  return {
@@ -13785,7 +13908,7 @@ function resolveCliLocalSpawnDispatch(input) {
13785
13908
  reason: target === "host" ? "requested-host-writes" : "requested"
13786
13909
  };
13787
13910
  }
13788
- if (input.readOnly === true) {
13911
+ if (readOnly === true) {
13789
13912
  return { target: "host", reason: "read-only-host" };
13790
13913
  }
13791
13914
  return {
@@ -13794,6 +13917,36 @@ function resolveCliLocalSpawnDispatch(input) {
13794
13917
  reason: "default-docker-sandbox"
13795
13918
  };
13796
13919
  }
13920
+ function normalizeExplicitHostCwd(rawCwd) {
13921
+ if (typeof rawCwd !== "string") return void 0;
13922
+ const trimmed2 = rawCwd.trim();
13923
+ if (!trimmed2 || !isAbsoluteRunCwd(trimmed2)) return void 0;
13924
+ return trimmed2;
13925
+ }
13926
+ var SANDBOX_DOES_NOT_HONOR_CWD_REASON = `\u6C99\u76D2\u540E\u7AEF\u4E0D\u5151\u73B0\u5BBF\u4E3B cwd\uFF1A\u6C99\u76D2\u91CC\u7684\u4ED3\u5E93\u6302\u5728\u6C99\u76D2\u5185\u81EA\u5DF1\u7684\u8DEF\u5F84\uFF08\u5982 /home/bun/app\uFF09\uFF0C\u4F20\u8FDB\u53BB\u7684 cwd \u4F1A\u88AB\u9759\u9ED8\u66FF\u6362\uFF1B\u5B50 run \u6539\u7684\u6587\u4EF6\u968F\u6C99\u76D2\u505C\u6B62\u4E00\u8D77\u6D88\u5931\uFF0C\u800C\u8C03\u7528\u65B9\u62FF\u5230\u7684\u662F\u300C\u6210\u529F\u300D\uFF082026-10-23 \u4E8B\u6545\uFF09\u3002`;
13927
+ function describeDispatchTarget(target, runtimeKey) {
13928
+ if (target === "docker-sandbox") {
13929
+ return `\u672C\u673A docker \u6C99\u76D2\uFF08runtimeKey="${runtimeKey ?? "docker"}"\uFF09`;
13930
+ }
13931
+ if (target === "instabox") return `Instabox \u6C99\u76D2\uFF08runtimeKey="instabox"\uFF09`;
13932
+ return "\u5BBF\u4E3B\u6267\u884C";
13933
+ }
13934
+ function buildExplicitCwdSandboxConflictMessage(input) {
13935
+ const landing = describeDispatchTarget(input.target, input.runtimeKey);
13936
+ return `startAgentRun \u663E\u5F0F\u4F20\u4E86 cwd="${input.cwd}"\uFF0C\u4F46\u672C\u6B21\u51B3\u7B56\u7684\u843D\u70B9\u662F${landing}\uFF1A` + SANDBOX_DOES_NOT_HONOR_CWD_REASON + `\u5DF2\u62D2\u7EDD\u6D3E\u53D1\uFF0C\u672A\u542F\u52A8\u4EFB\u4F55 run\uFF08\u4E0D\u9759\u9ED8\u66FF\u6362\u8DEF\u5F84\u3001\u4E5F\u4E0D\u9759\u9ED8\u964D\u7EA7\u5230\u5BBF\u4E3B\uFF09\u3002\u8981\u8BA9\u5B83\u771F\u7684\u5728 ${input.cwd} \u4E0A\u52A8\u624B\uFF1A\u6539\u7528 runtimeKey: "local" + allowHostWrites: true\uFF08\u5BBF\u4E3B\u6267\u884C\uFF0Ccwd \u4F1A\u88AB\u5982\u5B9E\u5151\u73B0\uFF09\uFF1B\u6216\u53BB\u6389 cwd\uFF0C\u8BA9\u5B50 run \u5728\u6C99\u76D2\u81EA\u5DF1\u7684\u4ED3\u5E93\u91CC\u5DE5\u4F5C\u3002`;
13937
+ }
13938
+ function assertExplicitCwdHonoredByDispatchTarget(input) {
13939
+ const explicitCwd = normalizeExplicitHostCwd(input.cwd);
13940
+ if (!explicitCwd) return;
13941
+ if (input.target === "host") return;
13942
+ throw new Error(
13943
+ buildExplicitCwdSandboxConflictMessage({
13944
+ cwd: explicitCwd,
13945
+ target: input.target,
13946
+ ...input.runtimeKey !== void 0 ? { runtimeKey: input.runtimeKey } : {}
13947
+ })
13948
+ );
13949
+ }
13797
13950
  function assertCliLocalSpawnArgvInvariant(argv, context2 = "cli-local spawn argv") {
13798
13951
  const indexes = [];
13799
13952
  for (let i = 0; i < argv.length; i += 1) {
@@ -13966,6 +14119,14 @@ function buildStartAgentRunFunctionSchema(opts) {
13966
14119
  type: "boolean",
13967
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'
13968
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
+ },
13969
14130
  ...supportsWait ? {
13970
14131
  wait: {
13971
14132
  type: "boolean",
@@ -14054,6 +14215,10 @@ async function startAgentRunFunc(args, thunkApi, _context) {
14054
14215
  if (!verdict.allowed) throw new Error(verdict.message);
14055
14216
  }
14056
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
+ });
14057
14222
  const payloadMetrics = calculateDelegatedPayloadMetrics(task, input, content);
14058
14223
  const activeDialogKey = getActiveDialogKey();
14059
14224
  const explicitParentDialogId = typeof args.parentDialogId === "string" && args.parentDialogId.trim() ? args.parentDialogId.includes("-") ? extractCustomId(args.parentDialogId) : args.parentDialogId.trim() : void 0;
@@ -14076,6 +14241,8 @@ async function startAgentRunFunc(args, thunkApi, _context) {
14076
14241
  runKind: "subtask",
14077
14242
  runTitle: title,
14078
14243
  runtimeKey: "local",
14244
+ // 已解析的硬预算(子 run 只消费,不再自行读 env)。
14245
+ subtaskBudgetLimits: dispatchedSubtaskBudget.limits,
14079
14246
  allowHostWrites: true,
14080
14247
  ...args.readOnly === true ? { readOnly: true } : {},
14081
14248
  ...parentDialogId ? { parentDialogId } : {}
@@ -14090,6 +14257,8 @@ async function startAgentRunFunc(args, thunkApi, _context) {
14090
14257
  waitForCompletion: wait === true,
14091
14258
  runKind: "subtask",
14092
14259
  runTitle: title,
14260
+ // 已解析的硬预算(子 run 只消费,不再自行读 env)。
14261
+ subtaskBudgetLimits: dispatchedSubtaskBudget.limits,
14093
14262
  ...args.readOnly === true ? { readOnly: true } : {},
14094
14263
  ...parentDialogId ? { parentDialogId } : {},
14095
14264
  ...runtimeKey ? { runtimeKey } : {}
@@ -17758,6 +17927,8 @@ function toAppSummary(record, fallbackServerOrigin) {
17758
17927
  }
17759
17928
 
17760
17929
  // packages/app/utils/myContentItems.ts
17930
+ var dialogSummaryStatus = (value) => value === null || typeof value === "string" && ["pending", "running", "done", "completed", "failed", "cancelled"].includes(value) ? value : void 0;
17931
+ var dialogSummaryUnreadAt = (value) => value === null || typeof value === "number" && Number.isFinite(value) && value > 0 ? value : void 0;
17761
17932
  var MY_CONTENT_USER_DATA_TYPES = [
17762
17933
  "app" /* APP */,
17763
17934
  "page" /* DOC */,
@@ -17837,9 +18008,12 @@ function buildMyContentItemsFromUserData(records, currentServer, spaceNameById,
17837
18008
  fileSize: typeof record.fileSize === "number" ? record.fileSize : void 0,
17838
18009
  originalName: typeof record.originalName === "string" && record.originalName.trim().length > 0 ? record.originalName : void 0,
17839
18010
  contentKey,
18011
+ ...record.type === "dialog" ? { status: dialogSummaryStatus(record.status), unreadAt: dialogSummaryUnreadAt(record.unreadAt) } : {},
17840
18012
  pinned: Boolean(record.pinned),
17841
18013
  createdAt: record.createdAt ?? record.created ?? 0,
17842
18014
  updatedAt: timestamp,
18015
+ ...record.deletedAt !== void 0 ? { deletedAt: record.deletedAt } : {},
18016
+ ...record.restoredAt !== void 0 ? { restoredAt: record.restoredAt } : {},
17843
18017
  spaceId,
17844
18018
  spaceName,
17845
18019
  serverOrigin: typeof record.serverOrigin === "string" && record.serverOrigin.trim().length > 0 ? record.serverOrigin : void 0,
@@ -18079,7 +18253,7 @@ var getMessageSortValue = (message) => {
18079
18253
  const id = normalizeDialogSearchText(message.id);
18080
18254
  return id ? id : normalizeDialogSearchText(message.dbKey);
18081
18255
  };
18082
- async function collectDialogMessages(db, dialogId) {
18256
+ async function collectDialogMessages2(db, dialogId) {
18083
18257
  if (!db?.iterator) return [];
18084
18258
  const { start, end } = dialogMessageRange(dialogId);
18085
18259
  let iterator = db.iterator({
@@ -18128,7 +18302,7 @@ async function fetchDialogMessagesFromServer(args) {
18128
18302
  }));
18129
18303
  }
18130
18304
  async function collectBestAvailableDialogMessages(db, dialogId, thunkApi, scanLimit, dialogKey) {
18131
- const localMessages = await collectDialogMessages(db, dialogId);
18305
+ const localMessages = await collectDialogMessages2(db, dialogId);
18132
18306
  const state2 = thunkApi?.getState?.();
18133
18307
  const runtime = state2 ? selectRuntimeSnapshot(state2) : null;
18134
18308
  const serverBases = Array.from(new Set([
@@ -18307,7 +18481,7 @@ async function updateDocFunc(args, thunkApi) {
18307
18481
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
18308
18482
  };
18309
18483
  await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
18310
- const { getDocState, applyExternalDocUpdate } = await import("./docStore-NIP7OO4I.js");
18484
+ const { getDocState, applyExternalDocUpdate } = await import("./docStore-XMTUF3GX.js");
18311
18485
  if (getDocState().pageKey === id) {
18312
18486
  applyExternalDocUpdate({
18313
18487
  slateData: finalSlateData,
@@ -18332,7 +18506,7 @@ async function updateDocFunc(args, thunkApi) {
18332
18506
  // packages/ai/tools/updateUserPreferenceProfileTool.ts
18333
18507
  async function dispatchSetSettings(thunkApi, changes) {
18334
18508
  const injectedSetSettings = thunkApi?.extra?.setSettings;
18335
- const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingThunks-FTDRZNSJ.js")).setSettings;
18509
+ const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingThunks-N6XFWPOU.js")).setSettings;
18336
18510
  await thunkApi.dispatch(setSettings(changes)).unwrap();
18337
18511
  }
18338
18512
  var updateUserPreferenceProfileFunctionSchema = {
@@ -20155,7 +20329,7 @@ var baseToolDefinitions = [
20155
20329
  executor: exaSearchFunc,
20156
20330
  description: {
20157
20331
  name: "exa_search",
20158
- description: "\u4F7F\u7528 Exa \u795E\u7ECF\u7F51\u7EDC\u641C\u7D22\u5F15\u64CE\u83B7\u53D6\u9AD8\u8D28\u91CF\u3001\u7ED3\u6784\u5316\u7684\u7F51\u7EDC\u4FE1\u606F\uFF08\u5305\u542B\u6B63\u6587\uFF09\u3002",
20332
+ description: "\u4F7F\u7528 Exa \u667A\u80FD\u641C\u7D22\u5F15\u64CE\u83B7\u53D6\u9AD8\u8D28\u91CF\u3001\u7ED3\u6784\u5316\u7684\u7F51\u7EDC\u4FE1\u606F\uFF1B\u53EF\u6309\u68C0\u7D22\u610F\u56FE\u3001\u5185\u5BB9\u7C7B\u76EE\u3001\u65F6\u95F4\u8303\u56F4\u4E0E\u57DF\u540D\u6536\u7A84\uFF0C\u9ED8\u8BA4\u7531\u670D\u52A1\u7AEF\u6309\u573A\u666F\u81EA\u52A8\u5B9A\u6863\u3002",
20159
20333
  category: "\u7F51\u7EDC\u4E0E\u667A\u80FD"
20160
20334
  },
20161
20335
  behavior: "data"