nolo-cli 0.106.0-alpha.1 → 0.106.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 (210) hide show
  1. package/README.md +1 -1
  2. package/{_executeModel-C5ZUOC7O.js → _executeModel-EP6HAX3W.js} +77 -69
  3. package/action-GVA5ARSJ.js +20 -0
  4. package/{addContentAction-O7R66HEX.js → addContentAction-NZZNAVCB.js} +13 -12
  5. package/{addDialogAgentAction-74OA7KYP.js → addDialogAgentAction-5HVGEIXI.js} +19 -20
  6. package/{agentDeleteCommand-YB3S2LPY.js → agentDeleteCommand-M25A6UGB.js} +118 -43
  7. package/{agentEmailCommands-YBCBTG6X.js → agentEmailCommands-RUL4NL64.js} +99 -89
  8. package/agentListCommands-KSPFKHFO.js +741 -0
  9. package/{agentMachineCommands-QHYLBTVW.js → agentMachineCommands-IHBB6PHD.js} +48 -44
  10. package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-ND4S2Q6Q.js} +97 -2
  11. package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-B4T2DJ5H.js} +1 -1
  12. package/agentRecordCommands-7OKIBN6H.js +138 -0
  13. package/agentRunCommand-GBKJTQQU.js +167 -0
  14. package/{agentRunControl-AVJR4JW4.js → agentRunControl-3HWA2LLQ.js} +2 -2
  15. package/{agentRuntimeLocal-FRUE5P2V.js → agentRuntimeLocal-E5HXZNXZ.js} +44 -40
  16. package/{agentSlice-7OEXULAY.js → agentSlice-7T3ZLYET.js} +15 -14
  17. package/{appDeleteCommands-JPWTSFID.js → appDeleteCommands-TTJUYTQN.js} +46 -42
  18. package/{appDeployCommands-YCVY2UYO.js → appDeployCommands-65WYK2TQ.js} +46 -42
  19. package/{appDeployStatusCommands-JMCEIKTI.js → appDeployStatusCommands-U4XESYYG.js} +46 -42
  20. package/{appGetCommands-EXWT3QAE.js → appGetCommands-VNHZZC4D.js} +46 -42
  21. package/{appListCommands-PKRLSWRE.js → appListCommands-O667ZEU6.js} +46 -42
  22. package/{authCommand-F4EFRRX6.js → authCommand-SUHHTVHA.js} +118 -24
  23. package/{authCommands-RGOGCPP6.js → authCommands-5RTUDYZW.js} +7 -5
  24. package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-PUGT65WS.js} +11 -9
  25. package/{chromeCommands-FZYAU75D.js → chromeCommands-AU5ZJXBG.js} +289 -37
  26. package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-ZYTCMNHG.js} +156 -22
  27. package/{chunk-ZNV445LB.js → chunk-2NGKYC3L.js} +29 -9
  28. package/{chunk-JEDZAO7L.js → chunk-2SYTUTLI.js} +257 -37
  29. package/{chunk-HVURBGF3.js → chunk-2U3NHADM.js} +6 -6
  30. package/{chunk-XA2FJW4L.js → chunk-3SXZ6SUC.js} +11 -9
  31. package/{chunk-UKZDAFYT.js → chunk-3VKDWQMJ.js} +6 -10
  32. package/chunk-4LCOCOR5.js +50 -0
  33. package/{chunk-JPGCXHNM.js → chunk-4LKMZ3RR.js} +1 -1
  34. package/{chunk-PQFHGD77.js → chunk-4VDS344D.js} +161 -14
  35. package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
  36. package/{chunk-6D6VBVEW.js → chunk-4W24JM32.js} +80 -14
  37. package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
  38. package/{chunk-GQBOR3G6.js → chunk-5F7UKMLN.js} +8 -4
  39. package/{chunk-E4MARS3Q.js → chunk-5GVBDNTO.js} +1 -1
  40. package/chunk-5MMAK75Q.js +15 -0
  41. package/{chunk-7S4YWN7P.js → chunk-5UUIGN6I.js} +4 -4
  42. package/{chunk-42V6BK2E.js → chunk-62IL3KQV.js} +4 -34
  43. package/{chunk-YCJN2RA3.js → chunk-6AIURTE7.js} +20 -11
  44. package/{chunk-VLTIYV3X.js → chunk-7I25CBT5.js} +34 -8
  45. package/chunk-AGIM7IMJ.js +147 -0
  46. package/{chunk-S4VLC46A.js → chunk-AM4G3LDJ.js} +66 -54
  47. package/{chunk-5UTFL4QJ.js → chunk-AOTBKDRK.js} +7 -0
  48. package/{chunk-TJGWNDGO.js → chunk-AZB6HR4I.js} +846 -276
  49. package/{chunk-L5UXH3B2.js → chunk-BIH7KCDJ.js} +58 -9
  50. package/{chunk-UZGQNTVW.js → chunk-BPLIXNC6.js} +8 -6
  51. package/chunk-CEQ75WPL.js +915 -0
  52. package/chunk-CHOZJMJS.js +78 -0
  53. package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
  54. package/{chunk-GPCZ7UXG.js → chunk-DBKRC5O2.js} +1 -1
  55. package/chunk-DJ3JABG5.js +7990 -0
  56. package/{chunk-Q554LLSI.js → chunk-DMXLXZKL.js} +1 -1
  57. package/{chunk-UOBDA2JS.js → chunk-DSXRVBTA.js} +118 -90
  58. package/{chunk-3VNWWVKB.js → chunk-E3YWHWCR.js} +50 -18
  59. package/{chunk-HJUYAD4A.js → chunk-EBS4FKW4.js} +5 -5
  60. package/{chunk-LC43IGO4.js → chunk-EHGIEGLI.js} +834 -962
  61. package/{chunk-ABQYVJBJ.js → chunk-EV235ILT.js} +5 -5
  62. package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
  63. package/{chunk-TOP2VXOR.js → chunk-FJKZSR5P.js} +5 -5
  64. package/{chunk-2F7RJC6L.js → chunk-FOXQ7BAB.js} +1 -1
  65. package/{chunk-SH43IESU.js → chunk-GGC55Q32.js} +199 -29
  66. package/{chunk-ZCYXJSTU.js → chunk-GMP3NBAA.js} +65 -95
  67. package/chunk-GMZLP5DV.js +82 -0
  68. package/{chunk-OIVSQH2O.js → chunk-GU7DC2TD.js} +300 -5
  69. package/{chunk-FDTR4QJ6.js → chunk-H6A6X4EK.js} +32 -1
  70. package/{chunk-DVINR3PL.js → chunk-HDLLCBRF.js} +1 -1
  71. package/{chunk-QOKAKDPE.js → chunk-HIM3FCLF.js} +0 -1
  72. package/{chunk-RJXZDT2P.js → chunk-HNA5KV37.js} +23 -28
  73. package/{chunk-ONXOABJR.js → chunk-HNGRBWYF.js} +3 -0
  74. package/{chunk-ACTMNVHM.js → chunk-I5YMDACN.js} +1 -1
  75. package/{chunk-O6OSWFZQ.js → chunk-IHPDK6UD.js} +6 -0
  76. package/{chunk-QDSINZM3.js → chunk-IXH3HKY2.js} +1 -22
  77. package/{chunk-Q67DOFOO.js → chunk-IYIXAIEB.js} +199 -92
  78. package/{chunk-BP4XNZRM.js → chunk-JIXGJTBU.js} +4 -4
  79. package/{chunk-OEVAY4J6.js → chunk-JWNBEIME.js} +18 -20
  80. package/{chunk-Z77CRGTW.js → chunk-KA5O5KQL.js} +1 -1
  81. package/{chunk-JZL6EHZR.js → chunk-LGWABBTZ.js} +47 -67
  82. package/{chunk-LS2ZANRJ.js → chunk-LOCNXNOU.js} +1 -1
  83. package/{chunk-GEPUP7OO.js → chunk-LOPP5VT6.js} +3 -3
  84. package/{chunk-DHDMC6FO.js → chunk-LUBFABMJ.js} +15 -14
  85. package/chunk-LWLNLZC5.js +265 -0
  86. package/{chunk-BNGW5ASC.js → chunk-LYLO5U3H.js} +15 -2
  87. package/{chunk-4OEFYTWL.js → chunk-MJ3CRU77.js} +85 -50
  88. package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
  89. package/{chunk-NA35QHCF.js → chunk-NTNKA5VL.js} +1 -1
  90. package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
  91. package/chunk-NWENLDMM.js +42 -0
  92. package/chunk-O7SVKKLY.js +875 -0
  93. package/{chunk-FM2YTE6D.js → chunk-OAXBDMT7.js} +1 -1
  94. package/chunk-OCZKATRC.js +129 -0
  95. package/{chunk-EYAQT56M.js → chunk-ODTBO4W6.js} +9 -6
  96. package/{chunk-VMFTFOWF.js → chunk-OKGVNZTL.js} +35 -8
  97. package/{chunk-EEGDMATE.js → chunk-OQ5IVGCV.js} +86 -81
  98. package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
  99. package/{chunk-KQ4ONNQD.js → chunk-OYTWDOQV.js} +155 -8
  100. package/{chunk-JRQFUXY7.js → chunk-OZ2IIIRP.js} +99 -22
  101. package/{chunk-WV42OMV7.js → chunk-PFLF4R4E.js} +8 -8
  102. package/{chunk-J4MOO56S.js → chunk-QDH32WF5.js} +10 -2
  103. package/{chunk-3DII57IT.js → chunk-QVAWUJAJ.js} +1 -1
  104. package/{chunk-3BMYXEUW.js → chunk-R5AJODNI.js} +1 -1
  105. package/{chunk-6OZ36FXI.js → chunk-SJ7CUF65.js} +22 -4
  106. package/{chunk-IIVGDG4I.js → chunk-SJKULPGX.js} +13 -7
  107. package/{chunk-ETI2NYVF.js → chunk-SYEBIZOF.js} +4 -4
  108. package/{chunk-J3WULTWA.js → chunk-TLKXNTQJ.js} +19 -17
  109. package/chunk-TLYSGGPG.js +15 -0
  110. package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
  111. package/chunk-TY3TIUJK.js +89 -0
  112. package/{chunk-I3TQJXQ7.js → chunk-U3C3IA32.js} +9 -2
  113. package/{chunk-YYLHWIW6.js → chunk-UKZX3NHN.js} +1 -1
  114. package/chunk-UM7TA3K4.js +1008 -0
  115. package/{chunk-6YTOJY35.js → chunk-VBG7GWWR.js} +253 -8
  116. package/chunk-VBQGO5NX.js +164 -0
  117. package/chunk-VIWDGTDA.js +8 -0
  118. package/chunk-VJVNU77E.js +83 -0
  119. package/{chunk-UKWGR5SS.js → chunk-VY6VFGKR.js} +194 -1144
  120. package/chunk-VYKXIHRP.js +13692 -0
  121. package/chunk-VZLO4XJD.js +17 -0
  122. package/{chunk-DNCEALKX.js → chunk-WMWYWYK2.js} +22 -29
  123. package/{chunk-H56FOERC.js → chunk-XDQ7PHU3.js} +567 -684
  124. package/{chunk-AEOE4Z6Q.js → chunk-XGOHDYM2.js} +39 -15
  125. package/{chunk-53HEEOTT.js → chunk-XLWMNFBZ.js} +83 -16
  126. package/{chunk-V4MJDUSR.js → chunk-YFU5EELM.js} +2 -2
  127. package/{chunk-IUTWFZOX.js → chunk-YQFLBS6A.js} +68 -46
  128. package/chunk-YV25TM3R.js +780 -0
  129. package/chunk-ZRAU6T47.js +56 -0
  130. package/{chunk-5H7KJX7J.js → chunk-ZVGXD7UJ.js} +5 -5
  131. package/{chunk-H62HCIUP.js → chunk-ZYM73IHG.js} +36 -22
  132. package/commandRegistry-6QIAUQDS.js +833 -0
  133. package/{contentThunks-AZVYDLM4.js → contentThunks-5DDMUQ7B.js} +39 -36
  134. package/{cooldownCommands-REAWYVTY.js → cooldownCommands-ZLEPIB4A.js} +2 -2
  135. package/{createAgentAutomationAction-V55DNYCE.js → createAgentAutomationAction-NQ6AZM42.js} +40 -37
  136. package/createDialogAction-QZ6X4A7O.js +70 -0
  137. package/{createPageAction-I3HH23O3.js → createPageAction-NCGEJBVK.js} +47 -43
  138. package/{chunk-GDNQO3QR.js → cursorProvider-YGGNMVWX.js} +2751 -10172
  139. package/{dbSlice-XVWBAGYN.js → dbSlice-RCZ7NRAF.js} +12 -11
  140. package/{deleteFile-YG6QMJLU.js → deleteFile-KESP65GC.js} +7 -6
  141. package/{dialogCommands-YVMHDEOX.js → dialogCommands-OGQLEF63.js} +49 -46
  142. package/{dialogSlice-LVJ67QWE.js → dialogSlice-GIKNUHNW.js} +57 -37
  143. package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
  144. package/{docCreateCommands-7UTWDYJU.js → docCreateCommands-RW6LNYT6.js} +48 -44
  145. package/{docDeleteCommands-GG6BJ4PS.js → docDeleteCommands-Z742TRNY.js} +49 -45
  146. package/{docReadCommands-QHMQVSLP.js → docReadCommands-5DIGA42Y.js} +47 -43
  147. package/{docStore-UJNL6SBT.js → docStore-6GUOZH52.js} +17 -13
  148. package/{docUpdateCommands-QPL6IVUK.js → docUpdateCommands-ZFZ2QEVK.js} +48 -44
  149. package/{fetchMessages-EIU7UFFK.js → fetchMessages-3PXAHKCR.js} +5 -5
  150. package/{getPricing-LUSEABA6.js → getPricing-QVSNUFZ6.js} +4 -4
  151. package/{handleSendMessageAction-CCL7ETCL.js → handleSendMessageAction-B2VXOLMM.js} +109 -42
  152. package/index.js +87 -884
  153. package/{lib-FRRS27KN.js → lib-PU2G2MSO.js} +523 -191
  154. package/{localDialogRead-BTFJ4V2I.js → localDialogRead-UYCKO7YZ.js} +2 -2
  155. package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-TU6OBC76.js} +9 -6
  156. package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-VKWVOPPI.js} +1 -1
  157. package/{machineCommands-2QNINBNI.js → machineCommands-AI3N7JHQ.js} +93 -83
  158. package/machineWsRunDispatch-RPF2D6VV.js +154 -0
  159. package/{memberThunks-QGFLFVCI.js → memberThunks-YICJI4IS.js} +20 -18
  160. package/{models-T3SG6MJ5.js → models-FTNFVO3D.js} +2 -2
  161. package/oauthTokenStore-ITEB663N.js +23 -0
  162. package/package.json +1 -1
  163. package/pdf-U6KSUEZZ.js +26435 -0
  164. package/processSpawn-SOAV3FEV.js +11 -0
  165. package/profileConfig-ZGOFORWV.js +43 -0
  166. package/{providerPresetApply-FG6NZ57W.js → providerPresetApply-OJJXQ7NM.js} +7 -7
  167. package/{providerRegistry-757OWH3O.js → providerRegistry-DXFBDCGQ.js} +11 -7
  168. package/{read-COE3ZYR6.js → read-XMBM52Y4.js} +8 -7
  169. package/{readDocTool-5USN4A6V.js → readDocTool-LAQHKCVT.js} +5 -3
  170. package/{readlineWorkspace-4GULS23D.js → readlineWorkspace-EPUCVZ73.js} +2594 -2030
  171. package/{removeDialogAgentAction-IX3MN2ZO.js → removeDialogAgentAction-HDUI2MU3.js} +22 -26
  172. package/{runAgentClientLoop-MUMLW2SA.js → runAgentClientLoop-OXQMDGAN.js} +78 -71
  173. package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-PIVSBZRZ.js} +4 -4
  174. package/runtimeModeArgs-2Y7BALTO.js +31 -0
  175. package/{setDialogExtraReferencesAction-X4HCPNZL.js → setDialogExtraReferencesAction-ADBVOP4O.js} +16 -14
  176. package/{setPrimaryDialogAgentAction-4GMIQLOD.js → setPrimaryDialogAgentAction-PXVXQJ62.js} +23 -27
  177. package/{chunk-AFUORTY4.js → settingThunks-G2MJRKUE.js} +226 -940
  178. package/{skillDiscovery-CYUCJMAG.js → skillDiscovery-ZBU76COE.js} +3 -3
  179. package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
  180. package/{spaceCommands-BMXKR7H6.js → spaceCommands-Z662QYY6.js} +51 -47
  181. package/{streamAgentChatTurn-6EOS5PNG.js → streamAgentChatTurn-YJYEJHP7.js} +214 -114
  182. package/{switchDialogAgentAction-N52LRPA3.js → switchDialogAgentAction-Z3RZACGF.js} +19 -20
  183. package/{tableCommands-O6NWHFKV.js → tableCommands-6U4BMLRR.js} +10 -10
  184. package/{toolApiClient-QVJ6HDNN.js → toolApiClient-AD7CXTA4.js} +4 -3
  185. package/tools-GHI3WBEI.js +117 -0
  186. package/{tuiSummaryLlmCaller-WFRWERGK.js → tuiSummaryLlmCaller-WTC6GCQC.js} +25 -23
  187. package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
  188. package/{updateDialogTitleAction-4YUVCBDU.js → updateDialogTitleAction-GJCNWTPY.js} +84 -45
  189. package/action-YVYQEAAV.js +0 -31
  190. package/agentListCommands-3GWH4E4G.js +0 -410
  191. package/agentRecordCommands-P76DPWKV.js +0 -128
  192. package/agentRunCommand-EQPL4F4K.js +0 -156
  193. package/browser-image-compression-MFDTD7K6.js +0 -1763
  194. package/chatQueueReduxAdapter-ZBDDI2E5.js +0 -186
  195. package/chunk-CQ3WA2NE.js +0 -299
  196. package/chunk-M76ECQRD.js +0 -13658
  197. package/chunk-MEYIRKDN.js +0 -8967
  198. package/chunk-PUOC4YRO.js +0 -394
  199. package/chunk-Q5FJJ6XI.js +0 -103
  200. package/chunk-S7Z2HMCN.js +0 -25
  201. package/chunk-WC6UUQ2C.js +0 -20923
  202. package/chunk-Y5GCAMGP.js +0 -9
  203. package/chunk-YPREESF4.js +0 -225
  204. package/createDialogAction-H6URYLIZ.js +0 -65
  205. package/machineWsRunDispatch-S3XXOKR7.js +0 -144
  206. package/settingSlice-ZQZVUPKK.js +0 -204
  207. package/syncMapping-N6RGXGBW.js +0 -437
  208. package/tools-4AJZHAK3.js +0 -110
  209. package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
  210. package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
@@ -5,20 +5,18 @@ import {
5
5
  } from "./chunk-ZJ7UHBJS.js";
6
6
  import {
7
7
  deleteDialog,
8
- i18nBaseConfig,
9
- initReactI18next,
10
- instance,
8
+ runtime_default,
11
9
  toast
12
- } from "./chunk-WC6UUQ2C.js";
10
+ } from "./chunk-VYKXIHRP.js";
13
11
  import {
14
- require_date_fns
15
- } from "./chunk-M76ECQRD.js";
12
+ formatISO
13
+ } from "./chunk-ZRAU6T47.js";
16
14
  import {
17
15
  require_react
18
16
  } from "./chunk-YDH3FDFQ.js";
19
17
  import {
20
18
  isSystemAdmin
21
- } from "./chunk-QDSINZM3.js";
19
+ } from "./chunk-TLYSGGPG.js";
22
20
  import {
23
21
  asRecordOrEmpty
24
22
  } from "./chunk-KX6YBIHG.js";
@@ -27,7 +25,7 @@ import {
27
25
  addContentAction,
28
26
  checkSpaceMembership,
29
27
  localSpaceAuthorityPatchStamp
30
- } from "./chunk-V4MJDUSR.js";
28
+ } from "./chunk-YFU5EELM.js";
31
29
  import {
32
30
  createSpaceKey,
33
31
  normalizeSpaceId
@@ -41,7 +39,24 @@ import {
41
39
  uploadFileAction,
42
40
  upsertSSREntity,
43
41
  write
44
- } from "./chunk-H62HCIUP.js";
42
+ } from "./chunk-ZYM73IHG.js";
43
+ import {
44
+ DEVICE_LOCAL_OWNER_ID,
45
+ getRuntimeServerContext,
46
+ isDeviceLocalSpaceBody,
47
+ resolveReplicationServers,
48
+ scheduleDeleteReplication,
49
+ scheduleWriteReplication
50
+ } from "./chunk-O7SVKKLY.js";
51
+ import {
52
+ buildTombstoneRecord
53
+ } from "./chunk-D2MDMY2M.js";
54
+ import {
55
+ extractUserId
56
+ } from "./chunk-M2EJHDJP.js";
57
+ import {
58
+ isRecord
59
+ } from "./chunk-KUG52IAP.js";
45
60
  import {
46
61
  SEPARATOR,
47
62
  asTrimmedNonEmptyStringArray,
@@ -53,41 +68,26 @@ import {
53
68
  rowKey,
54
69
  splitKey,
55
70
  ulid
56
- } from "./chunk-VMFTFOWF.js";
71
+ } from "./chunk-OKGVNZTL.js";
57
72
  import {
58
73
  asOptionalFiniteNumber
59
74
  } from "./chunk-WWC7I6TA.js";
60
75
  import {
61
- extractUserId
62
- } from "./chunk-M2EJHDJP.js";
63
- import {
64
- DEVICE_LOCAL_OWNER_ID,
65
- createAsyncThunk,
66
- getRuntimeServerContext,
67
- isDeviceLocalSpaceBody,
68
- resolveReplicationServers,
69
- scheduleDeleteReplication,
70
- scheduleWriteReplication
71
- } from "./chunk-UKWGR5SS.js";
76
+ createAsyncThunk
77
+ } from "./chunk-VY6VFGKR.js";
72
78
  import {
73
79
  createClientLogger,
74
80
  isAbortError
75
- } from "./chunk-QOKAKDPE.js";
81
+ } from "./chunk-HIM3FCLF.js";
76
82
  import {
77
83
  selectIdentityUserId
78
84
  } from "./chunk-SEJ5OS6F.js";
79
85
  import {
80
- buildTombstoneRecord
81
- } from "./chunk-GBRG75BQ.js";
82
- import {
83
- isRecord
84
- } from "./chunk-KUG52IAP.js";
86
+ asOptionalPositiveFiniteNumber
87
+ } from "./chunk-U6VC4MU4.js";
85
88
  import {
86
89
  asTrimmedString
87
90
  } from "./chunk-3EUW3WEO.js";
88
- import {
89
- asOptionalPositiveFiniteNumber
90
- } from "./chunk-U6VC4MU4.js";
91
91
  import {
92
92
  asOptionalTrimmedString
93
93
  } from "./chunk-G3SUCT4W.js";
@@ -97,7 +97,6 @@ import {
97
97
 
98
98
  // packages/render/table/tableStore.ts
99
99
  var import_react = __toESM(require_react(), 1);
100
- var import_date_fns2 = __toESM(require_date_fns(), 1);
101
100
  import { ulid as ulid3 } from "ulid";
102
101
 
103
102
  // packages/render/table/fetchAndCacheTableRows.ts
@@ -434,25 +433,7 @@ function addColumnOptionInMeta(meta, input, deps) {
434
433
  }
435
434
 
436
435
  // packages/render/table/createTableAction.ts
437
- var import_date_fns = __toESM(require_date_fns(), 1);
438
436
  import { ulid as ulid2 } from "ulid";
439
-
440
- // packages/app/i18n/client.ts
441
- instance.use(initReactI18next).init({
442
- ...i18nBaseConfig,
443
- lng: "zh-CN" /* ZH_CN */,
444
- fallbackLng: {
445
- ["en" /* EN */]: ["en" /* EN */],
446
- ["zh-CN" /* ZH_CN */]: ["zh-CN" /* ZH_CN */, "en" /* EN */],
447
- ["zh-Hant" /* ZH_HANT */]: ["zh-Hant" /* ZH_HANT */, "zh-CN" /* ZH_CN */, "en" /* EN */],
448
- ["ja" /* JA */]: ["ja" /* JA */, "en" /* EN */],
449
- default: ["en" /* EN */]
450
- },
451
- compatibilityJSON: "v3"
452
- });
453
- var client_default = instance;
454
-
455
- // packages/render/table/createTableAction.ts
456
437
  var DEFAULT_COLUMNS = [
457
438
  {
458
439
  name: "title",
@@ -554,9 +535,9 @@ var createTableAction = async ({
554
535
  const spaceId = customSpaceId ?? getCurrentSpaceId();
555
536
  const tableId = ulid2();
556
537
  const now = /* @__PURE__ */ new Date();
557
- const nowIso = (0, import_date_fns.formatISO)(now);
538
+ const nowIso = formatISO(now);
558
539
  const dbKey = metaKey(userId, tableId);
559
- const defaultTitle = client_default.t("space:newTable", {
540
+ const defaultTitle = runtime_default.t("space:newTable", {
560
541
  defaultValue: "\u65B0\u5EFA\u8868\u683C"
561
542
  });
562
543
  const title = asOptionalTrimmedString(customTitle) ?? defaultTitle;
@@ -924,7 +905,7 @@ var addRow = createTableCommand(
924
905
  });
925
906
  try {
926
907
  const { dbKey, rowId } = rowKey.create(tenantId, tableId);
927
- const nowIso = (0, import_date_fns2.formatISO)(/* @__PURE__ */ new Date());
908
+ const nowIso = formatISO(/* @__PURE__ */ new Date());
928
909
  const row = {
929
910
  dbKey,
930
911
  tenantId,
@@ -985,7 +966,7 @@ var deleteRow = createTableCommand(
985
966
  if (!row) {
986
967
  throw new Error(`\u5F53\u524D\u8868\u4E2D\u627E\u4E0D\u5230\u8981\u5220\u9664\u7684\u884C\uFF1A${dbKey}`);
987
968
  }
988
- const nowIso = (0, import_date_fns2.formatISO)(/* @__PURE__ */ new Date());
969
+ const nowIso = formatISO(/* @__PURE__ */ new Date());
989
970
  const tombstoneRow = {
990
971
  ...row,
991
972
  deletedAt: nowIso,
@@ -1063,7 +1044,7 @@ var addColumn = createTableCommand(
1063
1044
  const result = addColumnToMeta(
1064
1045
  meta,
1065
1046
  { columnName },
1066
- { id: ulid3(), nowIso: (0, import_date_fns2.formatISO)(/* @__PURE__ */ new Date()) }
1047
+ { id: ulid3(), nowIso: formatISO(/* @__PURE__ */ new Date()) }
1067
1048
  );
1068
1049
  if (!result.ok) {
1069
1050
  throw new Error(result.error);
@@ -1104,7 +1085,7 @@ var deleteColumn = createTableCommand(
1104
1085
  meta,
1105
1086
  state.rows,
1106
1087
  { columnName },
1107
- { nowIso: (0, import_date_fns2.formatISO)(/* @__PURE__ */ new Date()) }
1088
+ { nowIso: formatISO(/* @__PURE__ */ new Date()) }
1108
1089
  );
1109
1090
  if (!result.ok) {
1110
1091
  throw new Error(result.error);
@@ -1146,7 +1127,7 @@ var reorderColumn = createTableCommand(
1146
1127
  const result = reorderColumnInMeta(
1147
1128
  meta,
1148
1129
  { fromIndex, toIndex },
1149
- { nowIso: (0, import_date_fns2.formatISO)(/* @__PURE__ */ new Date()) }
1130
+ { nowIso: formatISO(/* @__PURE__ */ new Date()) }
1150
1131
  );
1151
1132
  if (!result.ok) {
1152
1133
  throw new Error(result.error);
@@ -1187,7 +1168,7 @@ var renameColumnLabel = createTableCommand(
1187
1168
  const result = renameColumnLabelInMeta(
1188
1169
  meta,
1189
1170
  { columnId, label: newLabel },
1190
- { nowIso: (0, import_date_fns2.formatISO)(/* @__PURE__ */ new Date()) }
1171
+ { nowIso: formatISO(/* @__PURE__ */ new Date()) }
1191
1172
  );
1192
1173
  if (!result.ok) {
1193
1174
  throw new Error(result.error);
@@ -1225,7 +1206,7 @@ var updateColumnWidth = createTableCommand(
1225
1206
  const result = updateColumnWidthInMeta(
1226
1207
  meta,
1227
1208
  { columnId, width },
1228
- { nowIso: (0, import_date_fns2.formatISO)(/* @__PURE__ */ new Date()) }
1209
+ { nowIso: formatISO(/* @__PURE__ */ new Date()) }
1229
1210
  );
1230
1211
  if (!result.ok) {
1231
1212
  throw new Error(result.error);
@@ -1263,7 +1244,7 @@ var addColumnOption = createTableCommand(
1263
1244
  const result = addColumnOptionInMeta(
1264
1245
  meta,
1265
1246
  { columnId, option },
1266
- { nowIso: (0, import_date_fns2.formatISO)(/* @__PURE__ */ new Date()) }
1247
+ { nowIso: formatISO(/* @__PURE__ */ new Date()) }
1267
1248
  );
1268
1249
  if (!result.ok) {
1269
1250
  throw new Error(result.error);
@@ -1305,7 +1286,7 @@ var renameTable = createTableCommand(
1305
1286
  if (!meta || meta.tenantId !== tenantId || meta.tableId !== tableId) {
1306
1287
  throw new Error("\u5F53\u524D\u6CA1\u6709\u52A0\u8F7D\u5BF9\u5E94\u7684\u8868\u5B9A\u4E49");
1307
1288
  }
1308
- const nowIso = (0, import_date_fns2.formatISO)(/* @__PURE__ */ new Date());
1289
+ const nowIso = formatISO(/* @__PURE__ */ new Date());
1309
1290
  setState((s) => ({ ...s, error: null }));
1310
1291
  try {
1311
1292
  if (dispatch) {
@@ -1346,7 +1327,7 @@ var updateTableIcon = createTableCommand(
1346
1327
  if (!meta || meta.tenantId !== tenantId || meta.tableId !== tableId) {
1347
1328
  throw new Error("\u5F53\u524D\u6CA1\u6709\u52A0\u8F7D\u5BF9\u5E94\u7684\u8868\u5B9A\u4E49");
1348
1329
  }
1349
- const nowIso = (0, import_date_fns2.formatISO)(/* @__PURE__ */ new Date());
1330
+ const nowIso = formatISO(/* @__PURE__ */ new Date());
1350
1331
  setState((s) => ({ ...s, error: null }));
1351
1332
  try {
1352
1333
  if (dispatch) {
@@ -1384,7 +1365,7 @@ var updateCell = createTableCommand(
1384
1365
  const { dbKey, columnName, value } = args;
1385
1366
  setState((s) => ({ ...s, error: null }));
1386
1367
  try {
1387
- const nowIso = (0, import_date_fns2.formatISO)(/* @__PURE__ */ new Date());
1368
+ const nowIso = formatISO(/* @__PURE__ */ new Date());
1388
1369
  if (dispatch) {
1389
1370
  await safeDispatch(
1390
1371
  dispatch,
@@ -1453,11 +1434,11 @@ var ENTITY_DELETE_STRATEGIES = {
1453
1434
  await dispatch(deleteTable({ dbKey: key })).unwrap();
1454
1435
  },
1455
1436
  file: async (key, { thunkAPI }) => {
1456
- const { deleteFileAction } = await import("./deleteFile-YG6QMJLU.js");
1437
+ const { deleteFileAction } = await import("./deleteFile-KESP65GC.js");
1457
1438
  await deleteFileAction(key, thunkAPI);
1458
1439
  },
1459
1440
  image: async (key, { thunkAPI }) => {
1460
- const { deleteFileAction } = await import("./deleteFile-YG6QMJLU.js");
1441
+ const { deleteFileAction } = await import("./deleteFile-KESP65GC.js");
1461
1442
  await deleteFileAction(key, thunkAPI);
1462
1443
  },
1463
1444
  agent: async (key, { dispatch, userId, sourceServerOrigin }) => {
@@ -2097,11 +2078,11 @@ var uploadAndAddFileToSpaceAction = async (payload, thunkAPI) => {
2097
2078
  const state3 = getState();
2098
2079
  const userId = selectIdentityUserId(state3);
2099
2080
  if (!userId) {
2100
- console.warn("[uploadAndAddFileToSpace] Warning: No userId found in state. Uploading as anonymous/unknown might cause issues.");
2081
+ throw new Error("Cannot upload a file to a space without an authenticated user.");
2101
2082
  }
2102
2083
  try {
2103
2084
  const id = ulid();
2104
- const dbKey = fileKey.single(userId || "unknown", id);
2085
+ const dbKey = fileKey.single(userId, id);
2105
2086
  const contentType = "file" /* FILE */;
2106
2087
  const fileCategory = resolveFileCategory({
2107
2088
  mimeType: file.type,
@@ -2391,7 +2372,6 @@ var updateContentCategory = createAsyncThunk(
2391
2372
 
2392
2373
  export {
2393
2374
  fetchAndCacheTableRows,
2394
- client_default,
2395
2375
  getTableState,
2396
2376
  loadTableRows,
2397
2377
  addRow,
@@ -4,7 +4,7 @@ import {
4
4
 
5
5
  // packages/cli/agentCommandSupport.ts
6
6
  async function getDefaultCliDb() {
7
- const { getDefaultCliLocalRuntimeDb } = await import("./localRuntimeDb-SYQGUF4U.js");
7
+ const { getDefaultCliLocalRuntimeDb } = await import("./localRuntimeDb-VKWVOPPI.js");
8
8
  return getDefaultCliLocalRuntimeDb();
9
9
  }
10
10
  function createNullCliDb() {
@@ -2,16 +2,16 @@ import {
2
2
  deleteDbRecord,
3
3
  queryUserRecords,
4
4
  readDbRecord
5
- } from "./chunk-AEOE4Z6Q.js";
5
+ } from "./chunk-XGOHDYM2.js";
6
6
  import {
7
7
  mergeAndDedupUserData
8
- } from "./chunk-KQHGZWSV.js";
8
+ } from "./chunk-OXME3PEE.js";
9
9
  import {
10
10
  toErrorMessage
11
11
  } from "./chunk-HNMXYYJR.js";
12
12
  import {
13
13
  isTombstoneRecord
14
- } from "./chunk-GBRG75BQ.js";
14
+ } from "./chunk-D2MDMY2M.js";
15
15
 
16
16
  // packages/cli/globalRecordOperations.ts
17
17
  async function listUserRecordsFromServers(args) {
@@ -1,13 +1,16 @@
1
- import {
2
- buildSkillDocMarkdown
3
- } from "./chunk-Q554LLSI.js";
4
1
  import {
5
2
  SYSTEM_AGENT_CAPABILITIES,
6
3
  SYSTEM_AGENT_CAPABILITY_IDS
7
- } from "./chunk-QDSINZM3.js";
4
+ } from "./chunk-IXH3HKY2.js";
5
+ import {
6
+ buildSkillDocMarkdown
7
+ } from "./chunk-DMXLXZKL.js";
8
+ import {
9
+ CHROME_CONNECTOR_ACCEPTED_TOOL_NAMES
10
+ } from "./chunk-LWLNLZC5.js";
8
11
  import {
9
12
  createKey
10
- } from "./chunk-VMFTFOWF.js";
13
+ } from "./chunk-OKGVNZTL.js";
11
14
 
12
15
  // packages/ai/tools/codeWorkDiscipline.ts
13
16
  var CODE_WORK_DISCIPLINE_BODY = `## \u6548\u7387\u4F18\u5148\uFF08\u7701 token\uFF09
@@ -30,7 +33,7 @@ var CODE_WORK_DISCIPLINE_BODY = `## \u6548\u7387\u4F18\u5148\uFF08\u7701 token\u
30
33
  - \u6309\u89D2\u8272\u52A0\u8F7D\u5BF9\u5E94 skill\uFF1Areviewer \u5148 \`loadSkill("coding-review")\` \u62FF\u901A\u7528\u6D41\u7A0B\uFF0C\u518D\u6309\u89D2\u8272 \`loadSkill("coding-review-<role>")\` \u62FF\u68C0\u67E5\u9879\u3002\u89D2\u8272\u6E05\u5355\uFF1Acode-quality\uFF08**\u5FC5\u8DD1**\uFF09/ architecture\uFF08**\u5355\u72EC\u6D3E\u53D1**\uFF0C\u4E2D\u7EA7\u4EE5\u4E0A\u95EE\u9898\uFF09/ security\uFF08\u6309\u9700 + \u5B89\u5168\u654F\u611F\u89E6\u53D1\u5FC5\u8DD1\uFF09/ frontend-ux\uFF08\u6D89\u53CA UI \u65F6\uFF09/ backend-data\uFF08\u6D89\u53CA server \u65F6\uFF09\u3002\u89D2\u8272\u5207\u5272\u7684\u76EE\u7684\u662F\u6CE8\u610F\u529B\u9694\u79BB\u2014\u2014\u6BCF\u4E2A\u89D2\u8272\u53EA\u76EF\u81EA\u5DF1\u7684\u68C0\u67E5\u9762\uFF0C\u6309\u9700\u542F\u7528\uFF0C\u907F\u514D\u4E00\u4E2A reviewer \u80CC\u6240\u6709\u89D2\u8272\u5BFC\u81F4\u6CE8\u610F\u529B\u7A00\u91CA\u3002
31
34
  - Verdict \u6807\u51C6\uFF1AAPPROVE\uFF08\u65E0 CRITICAL \u6216 HIGH\uFF09\u2192 \u53EF commit\uFF1BWARNING\uFF08\u4EC5 HIGH\uFF09\u2192 \u62A5\u544A owner \u51B3\u5B9A\uFF1BBLOCK\uFF08\u6709 CRITICAL\uFF09\u2192 \u5FC5\u987B\u5148\u4FEE\u3002
32
35
  - review \u662F\u591A\u8F6E\u6536\u655B\u7684\uFF1A\u6D3E reviewer \u5BA1\u5DE5\u4F5C\u533A diff \u2192 \u51FA finding \u5C31\u4FEE \u2192 \u590D\u5BA1\uFF0C\u76F4\u5230 APPROVE \u624D\u63D0\u4EA4\u3002\u6BCF\u8F6E review \u65E0\u4E0A\u4E0B\u6587\u2014\u2014reviewer \u53EA\u770B\u5F53\u524D\u5DE5\u4F5C\u533A diff\uFF0C\u4E0D\u5E26\u4E0A\u4E00\u8F6E finding \u8BB0\u5FC6\u3002
33
- - \u82E5\u5904\u4E8E\u5355 Agent \u72EC\u5360\u73AF\u5883\u3001\u5176\u4ED6 agent \u4E0D\u53EF\u8FBE\u3001\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u76F4\u63A5\u63D0\u4EA4\uFF0C\u5141\u8BB8\u5E26\u539F\u56E0\u8DF3\u8FC7\uFF08commit message \u6CE8\u660E [no-review: \u539F\u56E0]\uFF09\uFF0C\u4F46\u9ED8\u8BA4\u5FC5\u987B\u6D3E review\u3002`;
36
+ - \u82E5\u5904\u4E8E\u5355 Agent \u72EC\u5360\u73AF\u5883\u3001\u5176\u4ED6 agent \u4E0D\u53EF\u8FBE\u3001\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u76F4\u63A5\u63D0\u4EA4\uFF1A\u4E0D\u8981\u8865\u5199\u6216\u4F2A\u9020 review \u8BC1\u636E\uFF0C\u4E5F**\u4E0D\u8981\u7528 [no-review: \u539F\u56E0] \u8FD9\u7C7B\u5199\u6CD5**\u2014\u2014\u5B83\u4EFB\u4F55\u5224\u636E\u90FD\u89E3\u6790\u4E0D\u4E86\uFF0C\u5199\u4E86\u7167\u6837\u88AB\u62E6\u3002\u81EA\u6709\u95F8\u95E8\u8BA4\u7684\u5F62\u5F0F\u662F Reviewed-by: <\u975E\u7A7A\u7F72\u540D> \u52A0 Review: \u5E26\u7ED3\u8BBA\uFF08APPROVE / Approved / WARNING\uFF0C\u5360\u4F4D\u7B26\u5982 <pending> \u4E0D\u7B97\uFF09\uFF0Ccommit-msg \u4E0E pre-push / pre-merge \u90FD\u8D70\u8FD9\u4E00\u6761\u6B63\u5219\u3002pre-push / pre-merge **\u53E6**\u8BA4\u4E00\u6761 owner-only \u8C41\u514D\uFF1A\u6B63\u6587\u5199 No-Review: <\u539F\u56E0> \u4E14 commit author email \u547D\u4E2D packages/nolo-ci/core/src/mapping.ts \u7684 NO_REVIEW_OWNER_EMAILS \u767D\u540D\u5355\u2014\u2014agent \u8EAB\u4EFD\uFF08\u5982 app-builder@nolo.local\uFF09\u4E0D\u9002\u7528\u3002\u771F\u88AB\u5361\u4F4F\u5C31\u5982\u5B9E\u4E0A\u62A5\u5361\u70B9\u3001\u7531 owner \u51B3\u5B9A\uFF1Bgit push --no-verify \u4EC5\u9650\u7BA1\u7406\u5458/\u7D27\u6025\u6062\u590D\uFF0C\u670D\u52A1\u7AEF G2 \u4E0D\u53EF\u7ED5\u8FC7\u3002`;
34
37
  var buildCodeWorkDiscipline = (heading) => `# ${heading}
35
38
 
36
39
  ${CODE_WORK_DISCIPLINE_BODY}`;
@@ -50,9 +53,6 @@ var TOOL_PACKS = {
50
53
  // queryModelUsage / queryUserGrowthReport:server-only 工具(web/CLI executor
51
54
  // 直接返回 serverOnlyResult),不随 CORE 常驻——server 端由 agent 显式
52
55
  // tools 配置按需挂载(utilityServerTools 执行器),web 端不再挂死 schema。
53
- // setTodoList 已移至「conversation-todo」系统能力包(defaultEnabled:true)
54
- // 作为唯一 owner——single source of truth:普通 agent 默认仍有 setTodoList,
55
- // 但关闭「对话 Todo」开关即可真正摘掉它(CORE 常驻时该开关形同虚设)。
56
56
  CORE: [
57
57
  "read",
58
58
  "createDoc",
@@ -61,6 +61,8 @@ var TOOL_PACKS = {
61
61
  "updateSelf",
62
62
  "ask_user",
63
63
  "createAgentAutomation",
64
+ "updateAgentAutomation",
65
+ "deleteAgentAutomation",
64
66
  "notifyUser"
65
67
  ],
66
68
  // L2 - 联网搜索:与 CAPABILITY_PACKS「web-search」对齐。
@@ -236,7 +238,7 @@ var CAPABILITY_PACKS = [
236
238
  {
237
239
  id: "video-transcription",
238
240
  label: "\u89C6\u9891\u8F6C\u5199",
239
- description: "\u8D34\u89C6\u9891\u94FE\u63A5\u5373\u53EF\u8F6C\u5199\u4E3A\u5E26\u6807\u70B9\u6587\u672C\u4E0E SRT\u3002\u652F\u6301 B \u7AD9\u5206 P\uFF08\u9ED8\u8BA4\u5168\u90E8\u5904\u7406\uFF09\u3001YouTube \u7B49\uFF1B\u6296\u97F3\u8BF7\u5728\u684C\u9762\u7AEF\u6D4F\u89C8\u5668\u4F7F\u7528\u3002",
241
+ description: "\u8D34\u89C6\u9891\u94FE\u63A5\u5373\u53EF\u8F6C\u5199\u4E3A\u5E26\u6807\u70B9\u6587\u672C\u4E0E SRT\u3002\u652F\u6301 B \u7AD9\u5206 P\uFF08\u9ED8\u8BA4\u5168\u90E8\u5904\u7406\uFF09\u3001YouTube \u7B49\uFF1B\u652F\u6301\u6296\u97F3\u5206\u4EAB\u6587\u6848/\u77ED\u94FE\uFF0C\u628A\u5206\u4EAB\u6587\u5B57\u91CC\u7684\u94FE\u63A5\u4F20\u7ED9 url\u3002",
240
242
  tools: ["transcribeVideo"],
241
243
  defaultEnabled: false,
242
244
  icon: "\u{1F3AC}",
@@ -246,7 +248,7 @@ var CAPABILITY_PACKS = [
246
248
  - \u7528\u6237\u8D34\u4E0A\u89C6\u9891\u94FE\u63A5\u65F6\uFF0C\u76F4\u63A5\u8C03\u7528 \`transcribeVideo({ url })\`\uFF0C\u4E0D\u8981\u5148\u95EE\u8981\u4E0D\u8981\u8F6C\u5199\u3002
247
249
  - B \u7AD9\u5206 P / \u5408\u96C6\uFF1A\u7F3A\u7701\u5904\u7406\u5168\u90E8\uFF1B\u82E5\u7528\u6237\u6307\u5B9A\u300C\u53EA\u8981\u7B2C 3\u30014 \u96C6\u300D\u5219\u4F20 \`p: [3, 4]\`\u3002
248
250
  - \u8FD4\u56DE\u91CC\u7684 \`processedParts\` / \`availableParts\` \u5FC5\u987B\u5411\u7528\u6237\u8BF4\u6E05\u695A\uFF0C\u907F\u514D\u9759\u9ED8\u4E22\u5206 P\u3002
249
- - \u6296\u97F3\u82E5\u62A5\u300C\u8BE5\u5E73\u53F0\u9700\u8981\u767B\u5F55\u6001\uFF0C\u8BF7\u5728\u684C\u9762\u7AEF\u6D4F\u89C8\u5668\u4E2D\u4F7F\u7528\u300D\uFF0C\u63D0\u793A\u7528\u6237\u6539\u8D70\u684C\u9762\u7AEF\u6D4F\u89C8\u80FD\u529B\uFF0C\u4E0D\u8981\u5C1D\u8BD5\u4F20 cookie\u3002
251
+ - \u652F\u6301\u6296\u97F3\u5206\u4EAB\u6587\u6848/\u77ED\u94FE\uFF0C\u628A\u5206\u4EAB\u6587\u5B57\u91CC\u7684\u94FE\u63A5\u4F20\u7ED9 url\u3002
250
252
  `
251
253
  }
252
254
  ];
@@ -281,8 +283,7 @@ function resolveEffectiveEnabledPacks(args) {
281
283
  }
282
284
  var SYSTEM_BUILTIN_SKILL_PACK_IDS = SYSTEM_AGENT_CAPABILITY_IDS;
283
285
  var DEFAULT_MOUNT_SYSTEM_CAPABILITY_IDS = [
284
- "agent-orchestration",
285
- "conversation-todo"
286
+ "agent-orchestration"
286
287
  ];
287
288
  function getDefaultSystemCapabilityTools() {
288
289
  const ids = DEFAULT_MOUNT_SYSTEM_CAPABILITY_IDS;
@@ -353,7 +354,7 @@ function isWebSearchTool(name) {
353
354
  return WEB_SEARCH_TOOL_NAMES.has(name);
354
355
  }
355
356
  function isBrowserTool(name) {
356
- return name.startsWith("browser_");
357
+ return name.startsWith("browser_") && !CHROME_CONNECTOR_ACCEPTED_TOOL_NAMES.includes(name);
357
358
  }
358
359
  function addDefaultLightWebToolsForConfiguredAgents(toolNames, agentConfig) {
359
360
  const explicitToolNames = Array.isArray(
@@ -0,0 +1,265 @@
1
+ // packages/ai/tools/chromeConnectorTools.ts
2
+ var CHROME_CONNECTOR_TOOL_NAMES = [
3
+ "browser_list_tabs",
4
+ "browser_open_tab",
5
+ "browser_close_tab",
6
+ "browser_read_page",
7
+ "browser_click_element",
8
+ "browser_type",
9
+ "browser_press",
10
+ "browser_scroll",
11
+ "browser_screenshot",
12
+ "browser_read_console",
13
+ "browser_read_network"
14
+ ];
15
+ var CHROME_CONNECTOR_LEGACY_TOOL_ALIASES = {
16
+ chrome_list_tabs: "browser_list_tabs",
17
+ chrome_open_tab: "browser_open_tab",
18
+ chrome_close_tab: "browser_close_tab",
19
+ chrome_read_page: "browser_read_page",
20
+ chrome_click: "browser_click_element",
21
+ chrome_type: "browser_type",
22
+ chrome_press: "browser_press",
23
+ chrome_scroll: "browser_scroll",
24
+ chrome_screenshot: "browser_screenshot",
25
+ chrome_read_console: "browser_read_console",
26
+ chrome_read_network: "browser_read_network"
27
+ };
28
+ var CHROME_CONNECTOR_LEGACY_TOOL_NAMES = Object.keys(
29
+ CHROME_CONNECTOR_LEGACY_TOOL_ALIASES
30
+ );
31
+ var CHROME_CONNECTOR_ACCEPTED_TOOL_NAMES = [
32
+ ...CHROME_CONNECTOR_TOOL_NAMES,
33
+ ...CHROME_CONNECTOR_LEGACY_TOOL_NAMES
34
+ ];
35
+ function resolveChromeConnectorToolName(name) {
36
+ if (CHROME_CONNECTOR_TOOL_NAMES.includes(name)) {
37
+ return name;
38
+ }
39
+ return CHROME_CONNECTOR_LEGACY_TOOL_ALIASES[name];
40
+ }
41
+ function canonicalizeChromeConnectorToolNames(toolNames) {
42
+ const out = [];
43
+ for (const name of toolNames ?? []) {
44
+ const resolved = typeof name === "string" ? resolveChromeConnectorToolName(name) : void 0;
45
+ if (resolved && !out.includes(resolved)) out.push(resolved);
46
+ }
47
+ return out;
48
+ }
49
+ var CONNECTOR_TARGET_PROPERTY = {
50
+ type: "string",
51
+ enum: ["chrome", "firefox"],
52
+ description: `Which browser's connector serves this call: "chrome" or "firefox". Omit for the default endpoint.`
53
+ };
54
+ var CHROME_CONNECTOR_READ_TOOL_NAMES = [
55
+ "browser_list_tabs",
56
+ "browser_read_page",
57
+ "browser_screenshot",
58
+ "browser_read_console",
59
+ "browser_read_network"
60
+ ];
61
+ var getChromeConnectorToolBehavior = (name) => CHROME_CONNECTOR_READ_TOOL_NAMES.includes(resolveChromeConnectorToolName(name)) ? "data" : "action";
62
+ var getChromeConnectorToolDefaultConsent = (name) => CHROME_CONNECTOR_READ_TOOL_NAMES.includes(resolveChromeConnectorToolName(name)) ? "auto" : "ask";
63
+ function baseSchema(name, description, properties, required = []) {
64
+ return {
65
+ name,
66
+ description,
67
+ parameters: {
68
+ type: "object",
69
+ properties: { ...properties, target: CONNECTOR_TARGET_PROPERTY },
70
+ required
71
+ }
72
+ };
73
+ }
74
+ var tabId = {
75
+ type: "string",
76
+ description: "Browser tab id returned by browser_list_tabs or browser_open_tab."
77
+ };
78
+ var elementRef = {
79
+ type: "string",
80
+ description: "Revision-scoped ref like 1a2b3c4d-e2, copied verbatim from browser_read_page; preferred over selector when available."
81
+ };
82
+ var selector = {
83
+ type: "string",
84
+ description: "CSS selector for the visible page element to operate on; fallback when no elementRef is available."
85
+ };
86
+ var chromeListTabsFunctionSchema = baseSchema(
87
+ "browser_list_tabs",
88
+ "List controllable browser tabs from the user's browser profile through the Nolo Browser Connector.",
89
+ {}
90
+ );
91
+ var chromeOpenTabFunctionSchema = baseSchema(
92
+ "browser_open_tab",
93
+ "Open a URL in the user's browser (Chrome or Firefox) through the Nolo Browser Connector.",
94
+ {
95
+ url: {
96
+ type: "string",
97
+ description: "HTTP or HTTPS URL to open in the browser."
98
+ },
99
+ active: {
100
+ type: "boolean",
101
+ description: "Whether to focus the new browser tab. Defaults to true."
102
+ }
103
+ },
104
+ ["url"]
105
+ );
106
+ var chromeCloseTabFunctionSchema = baseSchema(
107
+ "browser_close_tab",
108
+ "Close a browser tab through the Nolo Browser Connector. Prefer closing the tabs your own run opened with browser_open_tab, and ask the user before closing a tab they are using. Pinned tabs are refused (TAB_PINNED); unknown tab ids fail (TAB_NOT_FOUND).",
109
+ {
110
+ tabId
111
+ },
112
+ ["tabId"]
113
+ );
114
+ var chromeReadPageFunctionSchema = baseSchema(
115
+ "browser_read_page",
116
+ "Read a compact view of a browser tab: visible text (hard cap 6000 chars) plus short-lived elementRefs (hard cap 35) and a pageRevision. Reuse those refs for browser_click_element and browser_type instead of guessing selectors; use region to focus a big page. When the element list exceeds one page, continue by passing the returned nextOffset as offset. Does not read cookies or profile databases.",
117
+ {
118
+ tabId,
119
+ region: {
120
+ type: "string",
121
+ description: "Optional CSS selector limiting the read to part of the page."
122
+ },
123
+ maxChars: {
124
+ type: "number",
125
+ description: "Optional text character budget; the connector clamps it to a hard maximum."
126
+ },
127
+ detail: {
128
+ type: "string",
129
+ enum: ["compact", "full"],
130
+ description: "compact (default) returns budgeted text; full raises the budget and adds capped HTML."
131
+ },
132
+ offset: {
133
+ type: "integer",
134
+ minimum: 0,
135
+ description: "Optional element offset for paging. When an element list exceeds one page, continue by passing the returned nextOffset as offset."
136
+ },
137
+ viewportOnly: {
138
+ type: "boolean",
139
+ description: "Optional. When true, only elements intersecting the current viewport are listed."
140
+ }
141
+ },
142
+ ["tabId"]
143
+ );
144
+ var chromeClickFunctionSchema = baseSchema(
145
+ "browser_click_element",
146
+ "Click a visible element in a browser tab by elementRef from browser_read_page, or by CSS selector. Controls whose name indicates an irreversible external action (payment, send, delete, publish, permission change) are refused with SENSITIVE_ACTION_REQUIRES_CONFIRMATION: this desktop runtime has no approval channel, so name the control and ask the user to activate it themselves.",
147
+ {
148
+ tabId,
149
+ elementRef,
150
+ selector
151
+ },
152
+ ["tabId"]
153
+ );
154
+ var chromeTypeFunctionSchema = baseSchema(
155
+ "browser_type",
156
+ "Type text into a browser page element identified by elementRef from browser_read_page or by CSS selector. Typing into a control whose name indicates an irreversible external action is refused with SENSITIVE_ACTION_REQUIRES_CONFIRMATION, same as clicking it.",
157
+ {
158
+ tabId,
159
+ elementRef,
160
+ selector,
161
+ text: {
162
+ type: "string",
163
+ description: "Text to type into the selected element."
164
+ },
165
+ clearFirst: {
166
+ type: "boolean",
167
+ description: "Whether to clear the field before typing. Defaults to true."
168
+ }
169
+ },
170
+ ["tabId", "text"]
171
+ );
172
+ var chromePressFunctionSchema = baseSchema(
173
+ "browser_press",
174
+ "Send a keyboard key or shortcut to a browser tab. Enter-like keys are refused with SENSITIVE_ACTION_REQUIRES_CONFIRMATION when the focused control is an irreversible action.",
175
+ {
176
+ tabId,
177
+ key: {
178
+ type: "string",
179
+ description: "Key or shortcut, for example Enter, Escape, ArrowDown, or Meta+L."
180
+ }
181
+ },
182
+ ["tabId", "key"]
183
+ );
184
+ var chromeScrollFunctionSchema = baseSchema(
185
+ "browser_scroll",
186
+ "Scroll a browser tab by pixel deltas.",
187
+ {
188
+ tabId,
189
+ deltaX: {
190
+ type: "number",
191
+ description: "Horizontal scroll delta in pixels."
192
+ },
193
+ deltaY: {
194
+ type: "number",
195
+ description: "Vertical scroll delta in pixels."
196
+ }
197
+ },
198
+ ["tabId"]
199
+ );
200
+ var chromeScreenshotFunctionSchema = baseSchema(
201
+ "browser_screenshot",
202
+ "Capture a screenshot from a browser tab through the Nolo Browser Connector.",
203
+ {
204
+ tabId,
205
+ fullPage: {
206
+ type: "boolean",
207
+ description: "Whether to capture the full page. Defaults to false."
208
+ }
209
+ },
210
+ ["tabId"]
211
+ );
212
+ var chromeReadConsoleFunctionSchema = baseSchema(
213
+ "browser_read_console",
214
+ "Read recent console messages from a browser tab using debugger-backed connector state.",
215
+ {
216
+ tabId,
217
+ limit: {
218
+ type: "number",
219
+ description: "Maximum number of recent console messages to return."
220
+ }
221
+ },
222
+ ["tabId"]
223
+ );
224
+ var chromeReadNetworkFunctionSchema = baseSchema(
225
+ "browser_read_network",
226
+ "Read a deduplicated recent network summary from a browser tab using debugger-backed connector state. Static assets are filtered unless includeAssets is set.",
227
+ {
228
+ tabId,
229
+ limit: {
230
+ type: "number",
231
+ description: "Maximum number of recent network entries to return."
232
+ },
233
+ includeAssets: {
234
+ type: "boolean",
235
+ description: "Include images, CSS, fonts and other static assets. Defaults to false."
236
+ }
237
+ },
238
+ ["tabId"]
239
+ );
240
+ var chromeConnectorToolSchemas = [
241
+ chromeListTabsFunctionSchema,
242
+ chromeOpenTabFunctionSchema,
243
+ chromeCloseTabFunctionSchema,
244
+ chromeReadPageFunctionSchema,
245
+ chromeClickFunctionSchema,
246
+ chromeTypeFunctionSchema,
247
+ chromePressFunctionSchema,
248
+ chromeScrollFunctionSchema,
249
+ chromeScreenshotFunctionSchema,
250
+ chromeReadConsoleFunctionSchema,
251
+ chromeReadNetworkFunctionSchema
252
+ ];
253
+ async function chromeConnectorUnavailableFunc() {
254
+ throw new Error("Browser connector tools are only executable in the Nolo desktop local runtime.");
255
+ }
256
+
257
+ export {
258
+ CHROME_CONNECTOR_LEGACY_TOOL_ALIASES,
259
+ CHROME_CONNECTOR_ACCEPTED_TOOL_NAMES,
260
+ canonicalizeChromeConnectorToolNames,
261
+ getChromeConnectorToolBehavior,
262
+ getChromeConnectorToolDefaultConsent,
263
+ chromeConnectorToolSchemas,
264
+ chromeConnectorUnavailableFunc
265
+ };