nolo-cli 0.79.0-alpha.2 → 0.79.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 (152) hide show
  1. package/README.md +2 -2
  2. package/{_executeModel-T3FPYFVF.js → _executeModel-U5V7LOJX.js} +46 -46
  3. package/{action-D22U6CTH.js → action-EXQVY3UO.js} +11 -11
  4. package/{addContentAction-XAPUTGL4.js → addContentAction-6IXQSRD2.js} +9 -9
  5. package/{addDialogAgentAction-M7VLLBZM.js → addDialogAgentAction-FZOB4BYM.js} +8 -8
  6. package/{agentDeleteCommand-2TYFURBN.js → agentDeleteCommand-4MIJFQQB.js} +30 -28
  7. package/{agentEmailCommands-7P35ZMUA.js → agentEmailCommands-JUXT36BY.js} +62 -60
  8. package/{agentGrantCommands-R3VQEZJR.js → agentGrantCommands-YW6PQAQ2.js} +2 -2
  9. package/{agentListCommands-IFUOWXP3.js → agentListCommands-MUVKMMZ5.js} +38 -30
  10. package/{agentMachineCommands-G46ZZ2ZQ.js → agentMachineCommands-56FTZLYV.js} +30 -28
  11. package/{agentProviderCommands-65ZC2WB4.js → agentProviderCommands-TOMVKJOV.js} +87 -0
  12. package/{agentPullCommand-N7L2CT7L.js → agentPullCommand-GLOOXJ2E.js} +3 -3
  13. package/{agentRecordCommands-R74LTQEQ.js → agentRecordCommands-FST3KAKG.js} +59 -57
  14. package/{agentRunCommand-UKJAECQ6.js → agentRunCommand-UMUEVIY2.js} +60 -58
  15. package/{agentRunControl-T44MESII.js → agentRunControl-XLGD3UZ5.js} +1 -1
  16. package/{agentRuntimeLocal-PUZINLWJ.js → agentRuntimeLocal-NH6GSGAJ.js} +28 -26
  17. package/{agentSlice-EACXUOWW.js → agentSlice-YZK6KG73.js} +10 -10
  18. package/{appDeleteCommands-U4NTEJYQ.js → appDeleteCommands-U45KXYX7.js} +30 -28
  19. package/{appDeployCommands-FXF45Q7F.js → appDeployCommands-LWQIQCFX.js} +30 -28
  20. package/{appDeployStatusCommands-KONVRM53.js → appDeployStatusCommands-LZO33PGD.js} +30 -28
  21. package/{appGetCommands-3VOGIZ7T.js → appGetCommands-OJSO6BCF.js} +30 -28
  22. package/{appListCommands-A6ROBW7P.js → appListCommands-NE56V7DI.js} +30 -28
  23. package/{authCommand-EVGFLAHO.js → authCommand-U5LA6H4Y.js} +164 -24
  24. package/{authCommands-ILTBI6JV.js → authCommands-RGOGCPP6.js} +4 -5
  25. package/builtinSkillRegistry-4NB7PCOF.js +33 -0
  26. package/{chatQueueReduxAdapter-XEIJO5WR.js → chatQueueReduxAdapter-FRMSYX7N.js} +24 -24
  27. package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
  28. package/{chunk-U6LKJRJB.js → chunk-377KM42Z.js} +42 -26
  29. package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
  30. package/{chunk-AFIWC5NH.js → chunk-3XMOAYRC.js} +1 -1
  31. package/{chunk-UJ63UXGE.js → chunk-4CAPEGHN.js} +1077 -752
  32. package/{chunk-DWPNOYMB.js → chunk-4JBZUECA.js} +1 -1
  33. package/{chunk-NG4UT4K4.js → chunk-4QKBQHPQ.js} +1 -1
  34. package/{chunk-UZ6XXCVR.js → chunk-546FPOW3.js} +15 -2
  35. package/{chunk-5XTOKQLW.js → chunk-5UTFL4QJ.js} +6 -2
  36. package/chunk-5ZUL4CUO.js +10 -0
  37. package/{chunk-E6RGHPDR.js → chunk-6D6VBVEW.js} +4 -6
  38. package/{chunk-G3NT6BM3.js → chunk-7IBK6MYW.js} +142 -59
  39. package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
  40. package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
  41. package/{chunk-H7UKKEIS.js → chunk-AQDH76OK.js} +1 -1
  42. package/{chunk-L2Y24GRM.js → chunk-B4S7MR5S.js} +16 -12
  43. package/{chunk-E36HZARC.js → chunk-BF2K6MRF.js} +3 -3
  44. package/{chunk-MGU5ADIQ.js → chunk-BKP7CFUD.js} +10 -10
  45. package/{chunk-2KDR4CWE.js → chunk-BYMV6QZG.js} +24 -1
  46. package/{chunk-AFIKMMGC.js → chunk-COM7GG76.js} +1 -1
  47. package/{chunk-HH65VA5U.js → chunk-CPH3W5A7.js} +15 -3
  48. package/{chunk-XWNRAIUL.js → chunk-DM4UNXPK.js} +6 -16
  49. package/{chunk-ZLPA7K55.js → chunk-DSX6K7C2.js} +29 -10
  50. package/{chunk-QA6YKM3H.js → chunk-E2NP7ZQU.js} +32 -4
  51. package/{chunk-FSFQ3A7S.js → chunk-E3VQ6S3A.js} +10 -10
  52. package/{chunk-YFADVSZE.js → chunk-F3UTRUDO.js} +6 -6
  53. package/{chunk-KIS76A2P.js → chunk-G5X57NDE.js} +38 -4
  54. package/{chunk-BJIRLHJR.js → chunk-GII32WZW.js} +1 -0
  55. package/{chunk-DSRXPQWA.js → chunk-GRDSMV4V.js} +43 -43
  56. package/{chunk-733J6D44.js → chunk-HGRDL36J.js} +6 -6
  57. package/{chunk-OZX2IPKM.js → chunk-HQCSU3DI.js} +1 -1
  58. package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
  59. package/{chunk-QC5LGHYP.js → chunk-HWZAXNO7.js} +10 -5
  60. package/{chunk-Q6FF2MCK.js → chunk-IIKPWSPX.js} +1 -1
  61. package/{chunk-KC5FAHVS.js → chunk-JEDZAO7L.js} +1 -1
  62. package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
  63. package/{chunk-AJHEFRGJ.js → chunk-JTYPAMGP.js} +155 -1
  64. package/{chunk-UDQWGU7F.js → chunk-KR3YI36B.js} +1 -1
  65. package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
  66. package/{chunk-SZLVDREM.js → chunk-LSSBA2TN.js} +3 -3
  67. package/{chunk-CMH2SYHX.js → chunk-MBEEYLGL.js} +2 -2
  68. package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
  69. package/{chunk-PGSKWZCB.js → chunk-NKIH4Q7W.js} +1 -1
  70. package/{chunk-FPTQQSS6.js → chunk-OH7H6LPC.js} +26 -5
  71. package/{chunk-5J7W2VWW.js → chunk-OOLWKQSM.js} +6 -265
  72. package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
  73. package/chunk-Q5FJJ6XI.js +103 -0
  74. package/{chunk-JYYZCK2Z.js → chunk-QFMFJZLO.js} +1 -1
  75. package/{chunk-P7FA2HMM.js → chunk-QMASIHYZ.js} +13 -15
  76. package/{chunk-ZY4K4CZR.js → chunk-R2YY6MWV.js} +909 -304
  77. package/chunk-RLEWGSM5.js +677 -0
  78. package/{chunk-PYXL2CJL.js → chunk-RZYQMSQA.js} +1 -1
  79. package/{chunk-EOU7ZSTU.js → chunk-S3UI4IUJ.js} +1198 -50
  80. package/{chunk-SPAQ4PVV.js → chunk-SAFZABH7.js} +1 -1
  81. package/{chunk-QRBAZ5PW.js → chunk-SASGLNUD.js} +3 -3
  82. package/{chunk-D74EWXL4.js → chunk-SUERPXJZ.js} +390 -47
  83. package/{chunk-3QPYFHAH.js → chunk-TMAZ3VHN.js} +1 -1
  84. package/{chunk-BJCWNHVU.js → chunk-U47DH2WO.js} +2 -2
  85. package/{chunk-MEVSATIF.js → chunk-UBNV6CS6.js} +66 -792
  86. package/{chunk-EXMHJN7C.js → chunk-UDEFS2PV.js} +4 -3
  87. package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
  88. package/{chunk-4EJ5QYB5.js → chunk-VOOTT7HA.js} +1 -1
  89. package/{chunk-PZM3EENV.js → chunk-W2E6HIIK.js} +1 -1
  90. package/chunk-WKEUHK57.js +1625 -0
  91. package/{chunk-GBPZKFYK.js → chunk-WON762L4.js} +4 -4
  92. package/{chunk-X7Z7U4Z6.js → chunk-WP6BC7OF.js} +15 -15
  93. package/{chunk-QUH3XHL5.js → chunk-X2ZTVRXP.js} +7 -7
  94. package/{chunk-MYU3MJCF.js → chunk-XAQAF25W.js} +175 -7
  95. package/chunk-XGJAR4T5.js +283 -0
  96. package/{chunk-ZZCJUXUI.js → chunk-XLGHBHGP.js} +2 -2
  97. package/{chunk-V3ZKNK5D.js → chunk-YOXYA2GU.js} +10 -10
  98. package/{chunk-ALGK6TIE.js → chunk-YPYMGGPJ.js} +3 -3
  99. package/{chunk-K7AG465Q.js → chunk-ZHUTWJ3N.js} +4 -2
  100. package/{chunk-CDVGNZDA.js → chunk-ZKMYGRO7.js} +11 -173
  101. package/{contentThunks-3SPROFG5.js → contentThunks-TC3AENBY.js} +25 -25
  102. package/{createAgentAutomationAction-EIP2EG3O.js → createAgentAutomationAction-67EOD3WK.js} +25 -25
  103. package/{createDialogAction-RLUSTN4D.js → createDialogAction-4OCQC5MW.js} +28 -28
  104. package/{createPageAction-4Y52G7WG.js → createPageAction-JLGVP57B.js} +26 -26
  105. package/{dbSlice-GKGGFNOB.js → dbSlice-RDGCE5MU.js} +8 -8
  106. package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
  107. package/{dialogCommands-G223U5WU.js → dialogCommands-JHSDKCR5.js} +32 -30
  108. package/{dialogSlice-THY45JWM.js → dialogSlice-I2DK32ZT.js} +24 -24
  109. package/{docCreateCommands-2P47IJDK.js → docCreateCommands-QUL6VWK2.js} +31 -29
  110. package/{docDeleteCommands-N3EGDOIC.js → docDeleteCommands-DMQ2MU6I.js} +32 -30
  111. package/{docReadCommands-6BFV2HI7.js → docReadCommands-FVHENBU6.js} +31 -29
  112. package/{docStore-ZQ3ECOPY.js → docStore-OLC6MD7B.js} +9 -9
  113. package/{docUpdateCommands-ZTMPXHC5.js → docUpdateCommands-VA6V5C6L.js} +31 -29
  114. package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
  115. package/{getPricing-HRMSOF3E.js → getPricing-YYXTEPBP.js} +4 -4
  116. package/{handleSendMessageAction-CE4M5XIE.js → handleSendMessageAction-GRDIRXAK.js} +24 -24
  117. package/index.js +88 -80
  118. package/{localDialogRead-PUQKFI73.js → localDialogRead-BTFJ4V2I.js} +2 -2
  119. package/{localRuntimeDb-P37ZTX55.js → localRuntimeDb-SYQGUF4U.js} +1 -1
  120. package/{machineCommands-4OT7KVCD.js → machineCommands-IJJ66MYU.js} +59 -57
  121. package/{machineWsRunDispatch-TR3EYESP.js → machineWsRunDispatch-PP2ZBS6D.js} +57 -55
  122. package/{memberThunks-KATHH3F4.js → memberThunks-WQGQWYYT.js} +9 -9
  123. package/{models-GS72DVJS.js → models-UN7YGMPM.js} +2 -2
  124. package/{offlineMarxistsAgentCommand-GEH6SNNA.js → offlineMarxistsAgentCommand-JEWCIAWM.js} +1 -1
  125. package/package.json +1 -1
  126. package/providerPresetApply-NO73BG45.js +214 -0
  127. package/providerRegistry-OVY4VKNN.js +31 -0
  128. package/{read-LC6HVYBN.js → read-S4WC2OUK.js} +5 -4
  129. package/{readDocTool-N3ERJHHF.js → readDocTool-PQNM63KV.js} +1 -1
  130. package/{readlineWorkspace-RE3P324X.js → readlineWorkspace-ASJECDJD.js} +192 -109
  131. package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-YJZ6XJV6.js} +11 -11
  132. package/{runAgentClientLoop-NE5EHXSS.js → runAgentClientLoop-KIOQSDRC.js} +45 -45
  133. package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
  134. package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-E6A3WL4E.js} +9 -9
  135. package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-WBLIVICQ.js} +11 -11
  136. package/{settingSlice-OEJA4NQO.js → settingSlice-JR6S7TRD.js} +10 -10
  137. package/{spaceCommands-MRP5U3C3.js → spaceCommands-WDUNCAK5.js} +29 -27
  138. package/{streamAgentChatTurn-A6L6O22P.js → streamAgentChatTurn-EGQDPMAO.js} +57 -56
  139. package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-DTR36ZY2.js} +8 -8
  140. package/{tableCommands-SUNTHAYX.js → tableCommands-O6NWHFKV.js} +1 -1
  141. package/{toolApiClient-VGYUB4P5.js → toolApiClient-7PSIFQPJ.js} +2 -2
  142. package/{tools-JS475NYO.js → tools-AOVE5LKM.js} +41 -39
  143. package/tuiSummaryLlmCaller-XRQCSNYQ.js +127 -0
  144. package/{updateCommands-Y363MC3L.js → updateCommands-2M74UL7P.js} +2 -2
  145. package/{updateDialogTitleAction-GMZUT6RP.js → updateDialogTitleAction-T66TXHIR.js} +45 -28
  146. package/chunk-3IT2PFHL.js +0 -611
  147. package/chunk-I42VC5KR.js +0 -15
  148. package/codingSkills-E6KSDNSJ.js +0 -48
  149. package/tuiSummaryLlmCaller-3Z24VUWM.js +0 -116
  150. package/{chunk-3RAG2NAD.js → chunk-UKWGR5SS.js} +3 -3
  151. package/{db-VQSAOWAO.js → db-WK5MDZVN.js} +1 -1
  152. package/{localRuntimeAuthority-R5UBODT3.js → localRuntimeAuthority-6IR6BBXE.js} +3 -3
@@ -0,0 +1,31 @@
1
+ import {
2
+ ALL_PROVIDER_REGISTRY,
3
+ CUSTOM_API_KEY_TEMPLATES,
4
+ SUBSCRIPTION_OAUTH_PROVIDERS,
5
+ findProviderById,
6
+ isCustomApiKeyTemplate,
7
+ isSubscriptionOAuthProvider
8
+ } from "./chunk-RLEWGSM5.js";
9
+ import "./chunk-NKIH4Q7W.js";
10
+ import "./chunk-MBEEYLGL.js";
11
+ import "./chunk-ZHUTWJ3N.js";
12
+ import "./chunk-4CAPEGHN.js";
13
+ import "./chunk-W7XHHYWM.js";
14
+ import "./chunk-HNMXYYJR.js";
15
+ import "./chunk-JTYPAMGP.js";
16
+ import "./chunk-WWC7I6TA.js";
17
+ import "./chunk-QSJ3HFEF.js";
18
+ import "./chunk-KUG52IAP.js";
19
+ import "./chunk-3EUW3WEO.js";
20
+ import "./chunk-4SN6J65J.js";
21
+ import "./chunk-CF7PE763.js";
22
+ import "./chunk-G3SUCT4W.js";
23
+ import "./chunk-4VNS5WPM.js";
24
+ export {
25
+ ALL_PROVIDER_REGISTRY,
26
+ CUSTOM_API_KEY_TEMPLATES,
27
+ SUBSCRIPTION_OAUTH_PROVIDERS,
28
+ findProviderById,
29
+ isCustomApiKeyTemplate,
30
+ isSubscriptionOAuthProvider
31
+ };
@@ -1,15 +1,16 @@
1
1
  import {
2
2
  readAction
3
- } from "./chunk-5J7W2VWW.js";
4
- import "./chunk-BJIRLHJR.js";
5
- import "./chunk-3RAG2NAD.js";
3
+ } from "./chunk-OOLWKQSM.js";
4
+ import "./chunk-XGJAR4T5.js";
5
+ import "./chunk-GII32WZW.js";
6
+ import "./chunk-UKWGR5SS.js";
6
7
  import "./chunk-QOKAKDPE.js";
7
8
  import "./chunk-OW765XBU.js";
8
9
  import "./chunk-SEJ5OS6F.js";
9
10
  import "./chunk-GBRG75BQ.js";
11
+ import "./chunk-KUG52IAP.js";
10
12
  import "./chunk-3EUW3WEO.js";
11
13
  import "./chunk-U6VC4MU4.js";
12
- import "./chunk-KUG52IAP.js";
13
14
  import "./chunk-LCBAMY2M.js";
14
15
  import "./chunk-4SN6J65J.js";
15
16
  import "./chunk-CF7PE763.js";
@@ -4,7 +4,7 @@ import {
4
4
  readDocFunctionSchema,
5
5
  readPageFunc,
6
6
  readPageFunctionSchema
7
- } from "./chunk-UDQWGU7F.js";
7
+ } from "./chunk-KR3YI36B.js";
8
8
  import "./chunk-HNMXYYJR.js";
9
9
  import "./chunk-4VNS5WPM.js";
10
10
  export {
@@ -1,14 +1,14 @@
1
- import "./chunk-M3JEW6N6.js";
2
1
  import {
3
2
  defaultOpenBrowser,
4
3
  saveTokenLogin
5
- } from "./chunk-E6RGHPDR.js";
4
+ } from "./chunk-6D6VBVEW.js";
6
5
  import {
7
6
  isScheduledDialog,
8
7
  normalizeDialogRecord,
9
8
  readDialogSnapshot,
10
9
  sortDialogs
11
- } from "./chunk-FSFQ3A7S.js";
10
+ } from "./chunk-E3VQ6S3A.js";
11
+ import "./chunk-M3JEW6N6.js";
12
12
  import {
13
13
  ANSI_ESCAPE_REGEX,
14
14
  COLLAPSED_PASTE_PLACEHOLDER_RE,
@@ -72,21 +72,21 @@ import {
72
72
  wrapTextToLines,
73
73
  wrapTranscriptLine,
74
74
  wrapTranscriptLineWithLayout
75
- } from "./chunk-EOU7ZSTU.js";
75
+ } from "./chunk-S3UI4IUJ.js";
76
76
  import "./chunk-S7Z2HMCN.js";
77
+ import "./chunk-QFMFJZLO.js";
77
78
  import {
78
79
  listFavoriteAgentIdsAcrossServers,
79
80
  listLocalCachedAgents,
80
81
  listRemoteAgents,
81
82
  listRemoteAgentsAcrossServers,
82
83
  normalizeListedAgent
83
- } from "./chunk-L2Y24GRM.js";
84
+ } from "./chunk-B4S7MR5S.js";
84
85
  import "./chunk-ID4G2MAR.js";
85
86
  import {
86
87
  listUserRecordsFromServers,
87
88
  readLiveDbRecordAfterTombstoneMerge
88
- } from "./chunk-AFIWC5NH.js";
89
- import "./chunk-JYYZCK2Z.js";
89
+ } from "./chunk-3XMOAYRC.js";
90
90
  import {
91
91
  RUN_WAKE_CHANNEL_ENV,
92
92
  createCliLocalRuntimeAdapter,
@@ -96,31 +96,31 @@ import {
96
96
  readTimestamp,
97
97
  setCliLocale,
98
98
  t
99
- } from "./chunk-G3NT6BM3.js";
100
- import "./chunk-GBPZKFYK.js";
101
- import "./chunk-QCZX4FTW.js";
99
+ } from "./chunk-7IBK6MYW.js";
100
+ import "./chunk-WON762L4.js";
102
101
  import "./chunk-EADNWBAZ.js";
102
+ import "./chunk-QCZX4FTW.js";
103
103
  import {
104
104
  backfillRunRecordParentDialog,
105
105
  checkStaleRun,
106
106
  isRunRecordClaimed,
107
107
  listRunRecords,
108
108
  readRunRecord
109
- } from "./chunk-HH65VA5U.js";
109
+ } from "./chunk-CPH3W5A7.js";
110
110
  import "./chunk-DWUCB2A3.js";
111
111
  import {
112
112
  getReadableCliDb
113
- } from "./chunk-RXX4GDIH.js";
113
+ } from "./chunk-LS2ZANRJ.js";
114
114
  import {
115
115
  deleteDbRecord,
116
116
  queryUserRecords,
117
117
  readDbRecord
118
- } from "./chunk-QA6YKM3H.js";
119
- import "./chunk-Q6FF2MCK.js";
118
+ } from "./chunk-E2NP7ZQU.js";
119
+ import "./chunk-IIKPWSPX.js";
120
120
  import {
121
121
  NOLO_DEFAULT_AGENT_KEY,
122
122
  resolveCliAgentKeyInput
123
- } from "./chunk-SPAQ4PVV.js";
123
+ } from "./chunk-SAFZABH7.js";
124
124
  import {
125
125
  createChatQueueRuntime,
126
126
  createTurnRequest,
@@ -130,18 +130,18 @@ import "./chunk-MP64VFGD.js";
130
130
  import "./chunk-ESHYE7WU.js";
131
131
  import "./chunk-JBTJAPUF.js";
132
132
  import "./chunk-LTRXGFMS.js";
133
- import "./chunk-3QPYFHAH.js";
133
+ import "./chunk-TMAZ3VHN.js";
134
134
  import "./chunk-ATNTHIZI.js";
135
135
  import "./chunk-JEXVIMYZ.js";
136
136
  import {
137
137
  prepareTools
138
- } from "./chunk-ALGK6TIE.js";
138
+ } from "./chunk-YPYMGGPJ.js";
139
139
  import {
140
140
  buildResponseGuidelines
141
141
  } from "./chunk-EOARMOVD.js";
142
142
  import "./chunk-HS7MLR74.js";
143
- import "./chunk-MEVSATIF.js";
144
- import "./chunk-5XTOKQLW.js";
143
+ import "./chunk-UBNV6CS6.js";
144
+ import "./chunk-5UTFL4QJ.js";
145
145
  import "./chunk-NF64D32W.js";
146
146
  import "./chunk-3L2WKC3W.js";
147
147
  import {
@@ -155,79 +155,82 @@ import {
155
155
  runShowsLogTail,
156
156
  shortRunId
157
157
  } from "./chunk-NTW5GWDM.js";
158
- import "./chunk-FPTQQSS6.js";
158
+ import "./chunk-OH7H6LPC.js";
159
159
  import "./chunk-KQHGZWSV.js";
160
- import "./chunk-UDQWGU7F.js";
161
- import "./chunk-PZM3EENV.js";
162
- import "./chunk-OZX2IPKM.js";
163
- import "./chunk-4EJ5QYB5.js";
160
+ import "./chunk-KR3YI36B.js";
161
+ import "./chunk-W2E6HIIK.js";
162
+ import "./chunk-HQCSU3DI.js";
163
+ import "./chunk-VOOTT7HA.js";
164
164
  import "./chunk-N4G4PKQ6.js";
165
165
  import "./chunk-FZGV4FGK.js";
166
166
  import "./chunk-MEYIRKDN.js";
167
167
  import "./chunk-63W5N6P3.js";
168
168
  import "./chunk-VF4K2QE6.js";
169
- import "./chunk-QRBAZ5PW.js";
170
- import "./chunk-CDVGNZDA.js";
171
- import "./chunk-P7FA2HMM.js";
169
+ import "./chunk-SASGLNUD.js";
170
+ import "./chunk-ZKMYGRO7.js";
171
+ import "./chunk-QMASIHYZ.js";
172
172
  import "./chunk-ZJ7UHBJS.js";
173
173
  import {
174
174
  extractReferenceKeysFromMessage
175
- } from "./chunk-D74EWXL4.js";
176
- import "./chunk-EVBFYPDC.js";
177
- import "./chunk-HQUORJTM.js";
175
+ } from "./chunk-SUERPXJZ.js";
176
+ import "./chunk-MC4XLIJ7.js";
177
+ import "./chunk-3BMYXEUW.js";
178
178
  import "./chunk-YYLHWIW6.js";
179
179
  import "./chunk-AGGIDPCZ.js";
180
- import "./chunk-QUH3XHL5.js";
181
- import "./chunk-BJCWNHVU.js";
180
+ import "./chunk-X2ZTVRXP.js";
181
+ import "./chunk-U47DH2WO.js";
182
182
  import "./chunk-5RGU3J7P.js";
183
183
  import "./chunk-6YTOJY35.js";
184
184
  import "./chunk-M76ECQRD.js";
185
185
  import "./chunk-YDH3FDFQ.js";
186
186
  import "./chunk-URMS4XY2.js";
187
187
  import "./chunk-TRV2MIDW.js";
188
- import "./chunk-C3FZR5EC.js";
188
+ import "./chunk-2F7RJC6L.js";
189
189
  import "./chunk-GLKOYSRU.js";
190
190
  import {
191
191
  buildSkillDiscoveryContextBlock,
192
192
  buildSkillDiscoveryContextLayer
193
193
  } from "./chunk-E4MARS3Q.js";
194
- import "./chunk-3IT2PFHL.js";
194
+ import "./chunk-WKEUHK57.js";
195
195
  import {
196
196
  expandEnabledPacks
197
- } from "./chunk-MYU3MJCF.js";
198
- import "./chunk-AETZ7AD6.js";
197
+ } from "./chunk-XAQAF25W.js";
198
+ import "./chunk-Q554LLSI.js";
199
199
  import "./chunk-KHCLMKZZ.js";
200
200
  import {
201
201
  buildLocalWorkspaceOpenAiTools,
202
202
  buildLocalWorkspaceToolset,
203
+ formatToolOverflowMarker,
203
204
  getProcessRegistry,
204
205
  readCommandActionGatePayload
205
- } from "./chunk-ZY4K4CZR.js";
206
+ } from "./chunk-R2YY6MWV.js";
207
+ import "./chunk-HWZAXNO7.js";
208
+ import "./chunk-Q5FJJ6XI.js";
206
209
  import "./chunk-ZNFJWEN4.js";
207
- import "./chunk-QC5LGHYP.js";
208
- import "./chunk-KIS76A2P.js";
210
+ import "./chunk-G5X57NDE.js";
209
211
  import "./chunk-CQ3WA2NE.js";
212
+ import "./chunk-5ZUL4CUO.js";
210
213
  import "./chunk-N7J63Q6C.js";
211
214
  import {
212
215
  buildIdentityBlock,
213
216
  buildRuntimeGuidanceBlocks,
214
217
  resolveToolGuidedSections
215
- } from "./chunk-ZLPA7K55.js";
218
+ } from "./chunk-DSX6K7C2.js";
216
219
  import "./chunk-PUOC4YRO.js";
217
- import "./chunk-PGSKWZCB.js";
218
- import {
219
- resolvePlatformAuthToken
220
- } from "./chunk-CMH2SYHX.js";
221
- import "./chunk-V3ZKNK5D.js";
220
+ import "./chunk-YOXYA2GU.js";
222
221
  import {
223
222
  isQuotaExhaustedError
224
223
  } from "./chunk-CJCJF5XB.js";
224
+ import "./chunk-NKIH4Q7W.js";
225
+ import {
226
+ resolvePlatformAuthToken
227
+ } from "./chunk-MBEEYLGL.js";
225
228
  import "./chunk-2MBTWINN.js";
226
229
  import {
227
230
  DEFAULT_CONTEXT_WINDOW,
228
231
  getModelContextWindow,
229
232
  normalizeUsage
230
- } from "./chunk-DSRXPQWA.js";
233
+ } from "./chunk-GRDSMV4V.js";
231
234
  import {
232
235
  buildCompactionMetricsFromPlan,
233
236
  buildCompactionUserContent,
@@ -237,17 +240,17 @@ import {
237
240
  formatMessagesForSummaryWithTruncation,
238
241
  planCompression,
239
242
  serializeMessageContent
240
- } from "./chunk-E36HZARC.js";
241
- import "./chunk-K7AG465Q.js";
243
+ } from "./chunk-BF2K6MRF.js";
242
244
  import {
243
245
  estimateTokenCount
244
246
  } from "./chunk-PSCNXBYA.js";
247
+ import "./chunk-ZHUTWJ3N.js";
245
248
  import "./chunk-BYXBJQAS.js";
246
- import "./chunk-UJ63UXGE.js";
249
+ import "./chunk-4CAPEGHN.js";
247
250
  import {
248
251
  compactWhitespace
249
252
  } from "./chunk-DWLEOOGR.js";
250
- import "./chunk-3JQ2NRYU.js";
253
+ import "./chunk-HVURBGF3.js";
251
254
  import "./chunk-ONXOABJR.js";
252
255
  import "./chunk-W7XHHYWM.js";
253
256
  import {
@@ -265,11 +268,11 @@ import {
265
268
  import {
266
269
  canonicalizeToolNames
267
270
  } from "./chunk-O6OSWFZQ.js";
268
- import "./chunk-BYEJ7K2Z.js";
271
+ import "./chunk-7S4YWN7P.js";
269
272
  import {
270
273
  checkForCliUpdate,
271
274
  runSelfUpdateDetailed
272
- } from "./chunk-KC5FAHVS.js";
275
+ } from "./chunk-JEDZAO7L.js";
273
276
  import {
274
277
  getAgentSelectionAuditPath,
275
278
  getDefaultProfileConfigPath,
@@ -279,7 +282,7 @@ import {
279
282
  saveProfileAgentSelection,
280
283
  saveProfileLocale,
281
284
  saveProfileTokens
282
- } from "./chunk-2KDR4CWE.js";
285
+ } from "./chunk-BYMV6QZG.js";
283
286
  import {
284
287
  readPipeText,
285
288
  spawnProcess
@@ -293,41 +296,41 @@ import {
293
296
  import {
294
297
  DEFAULT_NOLO_SERVER_URL
295
298
  } from "./chunk-OLZBQWZU.js";
296
- import "./chunk-NG4UT4K4.js";
297
- import "./chunk-AJHEFRGJ.js";
298
- import "./chunk-SZLVDREM.js";
299
- import "./chunk-XWNRAIUL.js";
299
+ import "./chunk-4QKBQHPQ.js";
300
+ import "./chunk-JTYPAMGP.js";
301
+ import "./chunk-LSSBA2TN.js";
302
+ import "./chunk-DM4UNXPK.js";
300
303
  import "./chunk-Y5GCAMGP.js";
301
- import "./chunk-UZ6XXCVR.js";
304
+ import "./chunk-546FPOW3.js";
302
305
  import "./chunk-KX6YBIHG.js";
303
- import "./chunk-ZZCJUXUI.js";
306
+ import "./chunk-XLGHBHGP.js";
304
307
  import "./chunk-UAD2WT54.js";
305
- import "./chunk-YFADVSZE.js";
306
- import "./chunk-NHRQCXIQ.js";
308
+ import "./chunk-F3UTRUDO.js";
309
+ import "./chunk-VMFTFOWF.js";
307
310
  import "./chunk-WWC7I6TA.js";
308
- import "./chunk-I42VC5KR.js";
309
- import "./chunk-SREASRV5.js";
311
+ import "./chunk-ABQYVJBJ.js";
310
312
  import {
311
313
  asTrimmedLowercaseString
312
314
  } from "./chunk-QSJ3HFEF.js";
315
+ import "./chunk-OOLWKQSM.js";
313
316
  import {
314
317
  BUILTIN_NOLO_AGENT_KEY,
315
318
  BUILTIN_NOLO_AGENT_MODEL,
316
319
  BUILTIN_NOLO_AGENT_NAME,
317
320
  builtinAgentCatalogEntryById
318
- } from "./chunk-5J7W2VWW.js";
321
+ } from "./chunk-XGJAR4T5.js";
319
322
  import {
320
323
  extractCustomId,
321
324
  parsePublicAgentId
322
- } from "./chunk-BJIRLHJR.js";
323
- import "./chunk-3RAG2NAD.js";
325
+ } from "./chunk-GII32WZW.js";
326
+ import "./chunk-UKWGR5SS.js";
324
327
  import "./chunk-QOKAKDPE.js";
325
328
  import "./chunk-OW765XBU.js";
326
329
  import "./chunk-SEJ5OS6F.js";
327
330
  import "./chunk-GBRG75BQ.js";
331
+ import "./chunk-KUG52IAP.js";
328
332
  import "./chunk-3EUW3WEO.js";
329
333
  import "./chunk-U6VC4MU4.js";
330
- import "./chunk-KUG52IAP.js";
331
334
  import "./chunk-LCBAMY2M.js";
332
335
  import "./chunk-4SN6J65J.js";
333
336
  import {
@@ -347,7 +350,7 @@ import { stdin as defaultInput, stdout as defaultOutput } from "node:process";
347
350
  import nacl from "tweetnacl";
348
351
 
349
352
  // node_modules/js-base64/base64.mjs
350
- var version = "3.9.3";
353
+ var version = "3.9.4";
351
354
  var VERSION = version;
352
355
  var _TD = typeof TextDecoder === "function" ? new TextDecoder("utf-8", { ignoreBOM: true }) : void 0;
353
356
  var _TE = typeof TextEncoder === "function" ? new TextEncoder() : void 0;
@@ -3887,7 +3890,7 @@ function mergeCatalogEntries(currentKey, platformAgents, privateAgents, favorite
3887
3890
  }
3888
3891
  var agentCatalogCache = null;
3889
3892
  var agentCatalogRefreshInFlight = null;
3890
- var agentCatalogRawLoadInFlight = null;
3893
+ var agentCatalogRawLoadInFlight = /* @__PURE__ */ new Map();
3891
3894
  var AGENT_CATALOG_FRESH_MS = 15e3;
3892
3895
  var AGENT_CATALOG_FOREGROUND_DEADLINE_MS = 2500;
3893
3896
  var AGENT_CATALOG_BACKGROUND_DEADLINE_MS = 8e3;
@@ -3909,6 +3912,9 @@ function filterHealthyServers(serverUrls) {
3909
3912
  });
3910
3913
  return healthy.length > 0 ? healthy : serverUrls;
3911
3914
  }
3915
+ function keepPrimaryServer(serverUrls, primary) {
3916
+ return serverUrls.includes(primary) ? serverUrls : [primary, ...serverUrls];
3917
+ }
3912
3918
  function recordServerFailures(failures) {
3913
3919
  const now = serverHealthNow();
3914
3920
  for (const failure of failures) {
@@ -3982,18 +3988,20 @@ async function loadAgentCatalog(args) {
3982
3988
  return cached.entries;
3983
3989
  }
3984
3990
  let rawData;
3985
- if (agentCatalogRawLoadInFlight) {
3986
- rawData = await agentCatalogRawLoadInFlight;
3991
+ const deadlineKind = args.deadlineKind ?? "foreground";
3992
+ const inFlight = agentCatalogRawLoadInFlight.get(deadlineKind);
3993
+ if (inFlight) {
3994
+ rawData = await inFlight;
3987
3995
  } else {
3988
- const promise = fetchRawCatalogData(args, env);
3989
- agentCatalogRawLoadInFlight = promise;
3996
+ const promise = fetchRawCatalogData({ ...args, deadlineKind }, env);
3997
+ agentCatalogRawLoadInFlight.set(deadlineKind, promise);
3990
3998
  try {
3991
3999
  rawData = await promise;
3992
- } catch (error) {
3993
- agentCatalogRawLoadInFlight = null;
3994
- throw error;
4000
+ } finally {
4001
+ if (agentCatalogRawLoadInFlight.get(deadlineKind) === promise) {
4002
+ agentCatalogRawLoadInFlight.delete(deadlineKind);
4003
+ }
3995
4004
  }
3996
- agentCatalogRawLoadInFlight = null;
3997
4005
  }
3998
4006
  const entries = mergeCatalogEntries(
3999
4007
  args.currentKey,
@@ -4028,7 +4036,7 @@ function prefetchAgentCatalog(args) {
4028
4036
  void (async () => {
4029
4037
  await prefillCatalogFromLocalDb({ env: args.env, getDb: args.getDb }).catch(() => {
4030
4038
  });
4031
- void loadAgentCatalog({ ...args, currentKey: "" }).catch(() => {
4039
+ void loadAgentCatalog({ ...args, currentKey: "", deadlineKind: "background" }).catch(() => {
4032
4040
  });
4033
4041
  })();
4034
4042
  }
@@ -4043,7 +4051,7 @@ async function fetchRawCatalogData(args, env) {
4043
4051
  }
4044
4052
  const serverUrl = resolveServerUrl(env);
4045
4053
  const allServerUrls = resolveServerCandidates([], env, serverUrl);
4046
- const serverUrls = (args.deadlineKind ?? "foreground") === "foreground" ? filterHealthyServers(allServerUrls) : allServerUrls;
4054
+ const serverUrls = (args.deadlineKind ?? "foreground") === "foreground" ? keepPrimaryServer(filterHealthyServers(allServerUrls), serverUrl) : allServerUrls;
4047
4055
  const fetchStartedAt = performance.now();
4048
4056
  let listedAgents = [];
4049
4057
  const favoritesPromise = listFavoriteAgentIdsAcrossServers({
@@ -4072,9 +4080,28 @@ async function fetchRawCatalogData(args, env) {
4072
4080
  recordServerFailures(remoteResult.failures);
4073
4081
  } catch {
4074
4082
  try {
4075
- const db = args.getDb ? await args.getDb() : await getReadableCliDb({ write: () => {
4076
- } });
4077
- listedAgents = await listLocalCachedAgents({ db, userId });
4083
+ const localBudgetMs = Math.max(
4084
+ 500,
4085
+ deadlineMs - (performance.now() - fetchStartedAt)
4086
+ );
4087
+ let localTimer;
4088
+ try {
4089
+ listedAgents = await Promise.race([
4090
+ (async () => {
4091
+ const db = args.getDb ? await args.getDb() : await getReadableCliDb({ write: () => {
4092
+ } });
4093
+ return listLocalCachedAgents({ db, userId });
4094
+ })(),
4095
+ new Promise((_, reject) => {
4096
+ localTimer = setTimeout(
4097
+ () => reject(new Error("local catalog deadline exceeded")),
4098
+ localBudgetMs
4099
+ );
4100
+ })
4101
+ ]);
4102
+ } finally {
4103
+ if (localTimer) clearTimeout(localTimer);
4104
+ }
4078
4105
  } catch {
4079
4106
  try {
4080
4107
  listedAgents = await listRemoteAgents({
@@ -6751,11 +6778,41 @@ function createTurnInjectionInbox() {
6751
6778
  function formatProcessTerminalWakeMessage(notices) {
6752
6779
  return [
6753
6780
  `<background_task_completion count="${notices.length}">`,
6754
- ...notices.map(formatProcessTerminalNoticeLine),
6755
- `\u9700\u8981\u8F93\u51FA/\u8BE6\u60C5\u65F6: taskLogs(taskId) \u6216 tasks`,
6781
+ ...notices.flatMap((notice) => [
6782
+ formatProcessTerminalNoticeLine(notice),
6783
+ ...notice.resultCapsule ? formatProcessResultCapsuleLines(notice.resultCapsule) : []
6784
+ ]),
6756
6785
  `</background_task_completion>`
6757
6786
  ].join("\n");
6758
6787
  }
6788
+ function formatProcessResultCapsuleLines(capsule) {
6789
+ const meta = [];
6790
+ if (capsule.durationMs !== void 0) meta.push(`duration=${capsule.durationMs}ms`);
6791
+ meta.push(capsule.truncated ? "tail-only" : "full");
6792
+ const stream = (name, value) => [
6793
+ `--- ${name} ---`,
6794
+ ...value.trim() ? value.replace(/\n+$/, "").split("\n") : ["(empty)"]
6795
+ ];
6796
+ const omittedChars = capsule.spill ? Math.max(0, capsule.spill.totalChars - capsule.stdout.length - capsule.stderr.length) : 0;
6797
+ return [
6798
+ `result capsule (${meta.join(", ")}):`,
6799
+ ...capsule.captureError ? [`capture error: ${capsule.captureError}`] : [],
6800
+ ...stream("stdout", capsule.stdout),
6801
+ ...stream("stderr", capsule.stderr),
6802
+ // Retrieval pointer reuses the tool-overflow convention: the model learns
6803
+ // one marker for "the tail above is not the whole story, full text lives
6804
+ // here", whether the truncation happened in a foreground tool result or in
6805
+ // a detached task capsule.
6806
+ ...capsule.spill ? [
6807
+ formatToolOverflowMarker({
6808
+ spillRef: capsule.spill.displayPath,
6809
+ totalChars: capsule.spill.totalChars,
6810
+ totalLines: capsule.spill.totalLines,
6811
+ omittedChars
6812
+ }).trim()
6813
+ ] : []
6814
+ ];
6815
+ }
6759
6816
  function formatProcessTerminalNoticeLine(notice) {
6760
6817
  const informative = notice.label && notice.label.trim() !== "" && notice.label !== notice.command;
6761
6818
  const label = informative ? ` (label: "${notice.label.replace(/(["\\])/g, "\\$1")}")` : "";
@@ -6776,7 +6833,20 @@ function buildProcessTaskCompletedTurnEvent(notice) {
6776
6833
  displayText: formatProcessTerminalNoticeLine(notice)
6777
6834
  };
6778
6835
  }
6836
+ var PENDING_NOTICE_PREFIX = "process-notice-v1:";
6837
+ function serializePendingProcessNotice(notice) {
6838
+ return notice.resultCapsule ? `${PENDING_NOTICE_PREFIX}${JSON.stringify(notice)}` : formatProcessTerminalNoticeLine(notice);
6839
+ }
6779
6840
  function parsePendingProcessNoticeLine(line) {
6841
+ if (line.startsWith(PENDING_NOTICE_PREFIX)) {
6842
+ try {
6843
+ const parsed = JSON.parse(line.slice(PENDING_NOTICE_PREFIX.length));
6844
+ if (parsed && typeof parsed.taskId === "string" && parsed.resultCapsule) {
6845
+ return parsed;
6846
+ }
6847
+ } catch {
6848
+ }
6849
+ }
6780
6850
  const taskMatch = line.match(
6781
6851
  /^\[Background task ([^ \]]+?)(?:\s+\(label: "((?:[^"\\]|\\.)*)"\))? finished: status=(\w+)(?: exitCode=(-?\d+))?\]$/
6782
6852
  );
@@ -6836,6 +6906,9 @@ function decideProcessTerminalResume(input) {
6836
6906
  if (!input.owner || !dialogId) {
6837
6907
  return { kind: "notice-only", reason: "unowned", taskId };
6838
6908
  }
6909
+ if (!input.notice.promoted) {
6910
+ return { kind: "notice-only", reason: "not-promoted", taskId };
6911
+ }
6839
6912
  if (input.state.claimedTaskIds.has(taskId)) {
6840
6913
  return { kind: "notice-only", reason: "duplicate", taskId };
6841
6914
  }
@@ -6862,8 +6935,10 @@ function createProcessTerminalAutoResumer(deps) {
6862
6935
  state,
6863
6936
  noteUserTurn: () => state.noteUserTurn(),
6864
6937
  decide: (notice) => {
6938
+ const promoted = notice.promoted ?? deps.isPromoted?.(notice.taskId) ?? false;
6939
+ const effectiveNotice = notice.promoted === promoted ? notice : { ...notice, promoted };
6865
6940
  const decision = decideProcessTerminalResume({
6866
- notice,
6941
+ notice: effectiveNotice,
6867
6942
  owner: deps.readOwner(notice.taskId),
6868
6943
  currentDialogId: deps.getCurrentDialogId(),
6869
6944
  turnActive: deps.isTurnActive(),
@@ -10657,7 +10732,7 @@ async function runTuiWorkspace(options) {
10657
10732
  });
10658
10733
  const pushPendingProcessNotice = (notice) => {
10659
10734
  if (sessionEnded) return;
10660
- const line = formatProcessTerminalNoticeLine(notice);
10735
+ const line = serializePendingProcessNotice(notice);
10661
10736
  state = {
10662
10737
  ...state,
10663
10738
  pendingProcessNotices: [...state.pendingProcessNotices ?? [], line]
@@ -11204,6 +11279,7 @@ async function runTuiWorkspace(options) {
11204
11279
  };
11205
11280
  const processTerminalResumer = createProcessTerminalAutoResumer({
11206
11281
  readOwner: (taskId) => getProcessRegistry().getByTaskId(taskId)?.owner ?? null,
11282
+ isPromoted: (taskId) => getProcessRegistry().getByTaskId(taskId)?.promoted ?? false,
11207
11283
  getCurrentDialogId: () => state.dialogId ?? null,
11208
11284
  isTurnActive: () => busy || fixedInput.isPaused(),
11209
11285
  canDeliver: () => !sessionEnded && !done && runWakeHandler !== null
@@ -11346,8 +11422,36 @@ ${err.message}` : ""}`
11346
11422
  paintFrame(buffer);
11347
11423
  }, 60);
11348
11424
  };
11425
+ const hasNonEmptySelection = () => selectionState.anchor !== null && selectionState.head !== null && !areSelectionPointsEqual(selectionState.anchor, selectionState.head);
11426
+ const copySelectionToClipboard = async (feedbackKey) => {
11427
+ const tty = output;
11428
+ const columns = tty.columns ?? 80;
11429
+ const contentWidth = Math.max(1, columns - 1);
11430
+ const textToCopy = extractSelectedText(
11431
+ history,
11432
+ selectionState.anchor,
11433
+ selectionState.head,
11434
+ contentWidth
11435
+ );
11436
+ clearSelection();
11437
+ if (textToCopy.length > 0) {
11438
+ try {
11439
+ await writeClipboard2(textToCopy);
11440
+ emitCommandOutput(t(feedbackKey));
11441
+ } catch (error) {
11442
+ emitCommandOutput(
11443
+ `[nolo] ${t("copyFailed")}: ${toErrorMessage(error)}`
11444
+ );
11445
+ }
11446
+ }
11447
+ paintFrame(buffer);
11448
+ };
11349
11449
  const handleCtrlCKey = async (busyLock) => {
11350
11450
  if (busyLock && activeTurnAbort) {
11451
+ if (hasNonEmptySelection()) {
11452
+ await copySelectionToClipboard("copiedSelectionBusy");
11453
+ return;
11454
+ }
11351
11455
  const stopBinding = chatQueueBinding;
11352
11456
  if (stopBinding && stopBinding.queueLength() > 0) {
11353
11457
  stopBinding.preemptForStop();
@@ -11357,29 +11461,8 @@ ${err.message}` : ""}`
11357
11461
  return;
11358
11462
  }
11359
11463
  const now = Date.now();
11360
- const hasSelection = selectionState.anchor !== null && selectionState.head !== null && !areSelectionPointsEqual(selectionState.anchor, selectionState.head);
11361
- if (hasSelection) {
11362
- const tty = output;
11363
- const columns = tty.columns ?? 80;
11364
- const contentWidth = Math.max(1, columns - 1);
11365
- const textToCopy = extractSelectedText(
11366
- history,
11367
- selectionState.anchor,
11368
- selectionState.head,
11369
- contentWidth
11370
- );
11371
- clearSelection();
11372
- if (textToCopy.length > 0) {
11373
- try {
11374
- await writeClipboard2(textToCopy);
11375
- emitCommandOutput(t("copiedSelection"));
11376
- } catch (error) {
11377
- emitCommandOutput(
11378
- `[nolo] ${t("copyFailed")}: ${toErrorMessage(error)}`
11379
- );
11380
- }
11381
- }
11382
- paintFrame(buffer);
11464
+ if (hasNonEmptySelection()) {
11465
+ await copySelectionToClipboard("copiedSelection");
11383
11466
  return;
11384
11467
  }
11385
11468
  if (selectionState.anchor) {