nolo-cli 0.148.0-alpha.1 → 0.151.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{_executeModel-NFJAMAGJ.js → _executeModel-XHAFJ2MM.js} +134 -91
- package/accountResolver-7RYB4D2P.js +300 -0
- package/action-SXJD5N5R.js +23 -0
- package/{addContentAction-B2DRF7P6.js → addContentAction-ZV774PHH.js} +20 -14
- package/{addDialogAgentAction-2P2FLTLD.js → addDialogAgentAction-A6SMKAGH.js} +26 -22
- package/{agentDeleteCommand-7IDWF6E3.js → agentDeleteCommand-DPUUS56Z.js} +181 -93
- package/{agentEmailCommands-4KW33JII.js → agentEmailCommands-V4P5EFLP.js} +132 -112
- package/{agentGrantCommands-M3XFO6EN.js → agentGrantCommands-HOJ3JBBQ.js} +3 -3
- package/agentListCommands-TWFLUYIZ.js +802 -0
- package/{agentMachineCommands-CMQR4RQ4.js → agentMachineCommands-MELPAZZI.js} +58 -62
- package/{agentProviderCommands-YK2BIIXZ.js → agentProviderCommands-HL6MBLCL.js} +149 -2
- package/{agentPullCommand-HF4A42D4.js → agentPullCommand-FA43RBRU.js} +7 -7
- package/agentRecordCommands-FSWSSQIO.js +154 -0
- package/agentRunCommand-GDBJVOAT.js +183 -0
- package/{agentRunControl-2SKCR4SB.js → agentRunControl-IFM7IGMG.js} +10 -2
- package/{agentRuntimeLocal-AK2QVJHY.js → agentRuntimeLocal-KKSQJMTE.js} +47 -50
- package/{agentSlice-OZ33K224.js → agentSlice-YO2ZLJMD.js} +23 -16
- package/{appDeleteCommands-N3XEVVYC.js → appDeleteCommands-4PL4KYRN.js} +58 -59
- package/{appDeployCommands-AWFIXYVW.js → appDeployCommands-EEEXCEB6.js} +67 -63
- package/{appDeployStatusCommands-CZRON2FO.js → appDeployStatusCommands-35ZX7T66.js} +56 -56
- package/{appGetCommands-XQIUY4TD.js → appGetCommands-WFCHXJWF.js} +56 -56
- package/{appListCommands-NNG4H36Y.js → appListCommands-XY2U6DPF.js} +57 -59
- package/{authCommand-UBJ4EWYZ.js → authCommand-QYN47CQD.js} +371 -68
- package/{authCommands-H6WKKCRW.js → authCommands-77CHYBGF.js} +12 -9
- package/{builtinSkillRegistry-ZMF6YGNO.js → builtinSkillRegistry-TDQ6JB2E.js} +13 -11
- package/{chromeCommands-2N6MEWRU.js → chromeCommands-OBBNJCLS.js} +314 -13
- package/chromeOpsCommands-3Z34RKSE.js +472 -0
- package/{chunk-ALXHV7NK.js → chunk-2GGXHQIW.js} +43 -4
- package/{localRuntimeAuthority-5W6IJRAD.js → chunk-2IXDJNZI.js} +154 -75
- package/{chunk-IVZJWTDI.js → chunk-36OMEXXR.js} +89 -21
- package/{chunk-H6A6X4EK.js → chunk-3MZAGMYY.js} +16 -0
- package/chunk-3PVYUPXK.js +40 -0
- package/chunk-3SZA4U64.js +1192 -0
- package/{chunk-GNMAFAIS.js → chunk-44WXLHFI.js} +1 -1
- package/{chunk-AGGIDPCZ.js → chunk-4JH2UMJR.js} +6 -0
- package/chunk-4LCOCOR5.js +50 -0
- package/chunk-4YRTZIVN.js +871 -0
- package/chunk-556RW72X.js +14110 -0
- package/{chunk-N7J63Q6C.js → chunk-56GBUMO5.js} +10 -1
- package/{chunk-W7XHHYWM.js → chunk-5BHQICF2.js} +5 -1
- package/{chunk-XUWRURDF.js → chunk-5EBLANFT.js} +1 -1
- package/{chunk-3AH7LNUB.js → chunk-5EMSBTQ6.js} +33 -14
- package/{chunk-YRRASA5Q.js → chunk-5MM7NNO6.js} +113 -52
- package/chunk-5MMAK75Q.js +15 -0
- package/{chunk-M5PVFLD4.js → chunk-64K7WX26.js} +90 -21
- package/{chunk-AKG5W4LG.js → chunk-6CCFTVBP.js} +76 -221
- package/chunk-6MJNEXUU.js +614 -0
- package/{chunk-62IL3KQV.js → chunk-6MXDOUMH.js} +15 -3
- package/{chunk-QOKAKDPE.js → chunk-6Q7UTJKR.js} +6 -94
- package/chunk-6QDYSCPW.js +223 -0
- package/{chunk-HYZIYH2H.js → chunk-74RAWNQN.js} +56 -63
- package/chunk-7DPNBQSV.js +9 -0
- package/chunk-7MOXKPHC.js +119 -0
- package/{chunk-523WHFSL.js → chunk-7XKL25PW.js} +1973 -754
- package/{chunk-IAESIMK7.js → chunk-A4MW3YZL.js} +10 -14
- package/chunk-AGIM7IMJ.js +147 -0
- package/{chunk-7CHC4W22.js → chunk-AIZE5TDM.js} +3 -3
- package/{chunk-P4BX6FFU.js → chunk-AOCM7HPT.js} +214 -51
- package/{chunk-5GVBDNTO.js → chunk-AU7AXHUL.js} +1 -1
- package/{chunk-4H22P2JV.js → chunk-AUIJZACN.js} +2073 -1275
- package/{chunk-CIF4X6ZM.js → chunk-AWVFQMOV.js} +25 -3
- package/{chunk-RYZINGPM.js → chunk-BPMPOFWP.js} +347 -235
- package/{chunk-YUNJN43V.js → chunk-BU2YQBV4.js} +215 -28
- package/{chunk-XPRWFQQK.js → chunk-CBHGZRCE.js} +38 -12
- package/{chunk-Y3PMXGLH.js → chunk-CHCS6XPJ.js} +365 -144
- package/chunk-CHOZJMJS.js +78 -0
- package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
- package/{chunk-3SV7RM24.js → chunk-D2QN6CTI.js} +117 -72
- package/{chunk-5TEEECZM.js → chunk-E2AKSW7L.js} +10 -7
- package/{chunk-RSEEDUMS.js → chunk-EDX5XSJM.js} +2 -2
- package/{chunk-BKWMNZ2X.js → chunk-ES633ZS5.js} +280 -98
- package/{chunk-QDSINZM3.js → chunk-EUGTFFO6.js} +2 -23
- package/{chunk-UNYJU5L6.js → chunk-EYLGAEB4.js} +5 -1
- package/{chunk-CU3QB4HW.js → chunk-EYWJT7A2.js} +12 -12
- package/{chunk-BNGW5ASC.js → chunk-EZVK3N5L.js} +66 -18
- package/{chunk-6FGTMQCL.js → chunk-F32Z66T4.js} +6 -10
- package/chunk-FJMRBOPO.js +11507 -0
- package/{chunk-ZOVKKMF6.js → chunk-FY4SDK2E.js} +1 -1
- package/chunk-G6OOUQWJ.js +417 -0
- package/{chunk-PQWU42UQ.js → chunk-GCKHQECX.js} +6 -6
- package/chunk-GKXCHNTE.js +15 -0
- package/{chunk-T7F46O36.js → chunk-GQN2WLAI.js} +20 -11
- package/{chunk-P6GMCCAT.js → chunk-GQV5KHJU.js} +78 -12
- package/{chunk-B2XUQXQX.js → chunk-HIQ4GF53.js} +191 -68
- package/{chunk-YUWMM4US.js → chunk-HKX3ULQB.js} +34 -22
- package/{chunk-GMZLP5DV.js → chunk-HNUWUO75.js} +30 -19
- package/{chunk-5UTFL4QJ.js → chunk-I2ZMGXXF.js} +10 -5
- package/chunk-I42VC5KR.js +15 -0
- package/{chunk-3BXNTXYI.js → chunk-I4SN4NUQ.js} +1199 -56
- package/chunk-IA7TRNNR.js +11 -0
- package/{chunk-WIWM4FE3.js → chunk-IJERIUXS.js} +55 -748
- package/{chunk-CPUFH46E.js → chunk-ILU2NPWY.js} +10 -10
- package/{chunk-SLLGJZDT.js → chunk-ISQL4V7C.js} +4 -4
- package/chunk-IT3ZZRJE.js +12 -0
- package/{chunk-LPVCRQMM.js → chunk-IZ7OJB6K.js} +20 -16
- package/{chunk-DY7ANLKG.js → chunk-JKMLSTZK.js} +43 -12
- package/{chunk-6TPOEJMQ.js → chunk-JZX2XLKC.js} +64 -23
- package/{chunk-27ONFIEY.js → chunk-K2AER7RX.js} +19 -12
- package/{chunk-O2OWEFII.js → chunk-KFHQQ3NO.js} +1 -1
- package/{chunk-QXGPFY6J.js → chunk-LGN377P3.js} +27 -17
- package/{chunk-L36OWPP3.js → chunk-LIQJTQRN.js} +118 -139
- package/{chunk-FWQEKRTD.js → chunk-LTRUTOHX.js} +36 -31
- package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
- package/{chunk-5J3PYNUP.js → chunk-NYYFIKHI.js} +17 -3
- package/{chunk-6O4IK4V2.js → chunk-OFFL4DCR.js} +1 -1
- package/{chunk-B6SAMB33.js → chunk-OWYYDMGJ.js} +209 -9
- package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
- package/{chunk-CTUQJVQM.js → chunk-P5QACQDK.js} +1 -1
- package/{chunk-DIXLJWCD.js → chunk-PCKVQXYV.js} +274 -93
- package/{chunk-4JMDLJAD.js → chunk-PJNFNEJE.js} +114 -37
- package/{chunk-Z4CSIXYP.js → chunk-PLSVXHSA.js} +3 -3
- package/{chunk-BIDGLJQ3.js → chunk-PLXDDGBK.js} +45 -8
- package/chunk-PWTNI4N7.js +47 -0
- package/chunk-QFEW2ULV.js +42 -0
- package/{chunk-RGNEEJ3Y.js → chunk-QLQ573SU.js} +35 -9
- package/chunk-QQ56R7KS.js +88 -0
- package/chunk-QYPE3TS3.js +43 -0
- package/{chunk-4DPP773Q.js → chunk-RSHPU4PD.js} +59 -11
- package/chunk-RVWMAFIT.js +134 -0
- package/{chunk-ESHYE7WU.js → chunk-S73EPYNC.js} +10 -7
- package/{chunk-UQNS32WZ.js → chunk-SCMHQUMK.js} +1 -1
- package/{chunk-T767MPHB.js → chunk-SMENBO3M.js} +354 -120
- package/{chunk-PCVVZ2MH.js → chunk-SSFDFOVT.js} +26 -31
- package/chunk-SW4S4XYB.js +1794 -0
- package/{chunk-HUFPWXFW.js → chunk-T6X3D7NB.js} +572 -430
- package/chunk-TY3TIUJK.js +89 -0
- package/{chunk-X2QRZXZH.js → chunk-TYJ5XFEA.js} +4 -4
- package/{chunk-ALFH24P3.js → chunk-TYYRSFBG.js} +197 -155
- package/{chunk-7KVZ5LDQ.js → chunk-UBUH2TCC.js} +18 -4
- package/chunk-UEILX4EV.js +15 -0
- package/chunk-UHTDNB5Y.js +140 -0
- package/{chunk-YYLHWIW6.js → chunk-UKZX3NHN.js} +1 -1
- package/{chunk-OHOVNO7I.js → chunk-UOKFKFPO.js} +6 -3
- package/{chunk-XISEYOGH.js → chunk-USHQX6VT.js} +5 -5
- package/chunk-UUPR3TD7.js +53 -0
- package/{chunk-HDLLCBRF.js → chunk-VEA7H5FG.js} +2 -2
- package/chunk-VHGD6FHV.js +116 -0
- package/chunk-VIWDGTDA.js +8 -0
- package/{chunk-GOH6RW6F.js → chunk-VJXHL6MH.js} +34 -11
- package/{chunk-4XEYAFLY.js → chunk-VL5KOY2C.js} +623 -94
- package/{chunk-EADNWBAZ.js → chunk-VP3BINY7.js} +13 -0
- package/{chunk-EOARMOVD.js → chunk-W4S6OTSC.js} +6 -3
- package/chunk-WD4XYDYC.js +567 -0
- package/chunk-WJZOQR2J.js +151 -0
- package/{chunk-AUDNYVRC.js → chunk-XETG4RIX.js} +5 -5
- package/{chunk-MX574M24.js → chunk-XI7DGLUK.js} +4 -4
- package/{chunk-3L2WKC3W.js → chunk-XPWGOTBQ.js} +8 -1
- package/chunk-XRUSXPCQ.js +514 -0
- package/{chunk-I4OPU5TK.js → chunk-XS47QOFV.js} +273 -11
- package/{chunk-S5XGT6GB.js → chunk-XZNCX52W.js} +30 -9
- package/{chunk-2JMMBU6V.js → chunk-Y2DXOPSO.js} +1920 -644
- package/{chunk-5OA5HMTL.js → chunk-YLMMECCH.js} +1 -1
- package/{chunk-CFT5HBGW.js → chunk-YVLQXTUB.js} +448 -12
- package/chunk-YVPQATSC.js +709 -0
- package/{chunk-DCFPQW22.js → chunk-Z7OJUX6S.js} +122 -107
- package/chunk-ZEZC7IIM.js +126 -0
- package/{chunk-ALGORS6Y.js → chunk-ZF6526IQ.js} +43 -8
- package/chunk-ZIWPQEFU.js +165 -0
- package/chunk-ZKZ5X2HS.js +7012 -0
- package/chunk-ZRAU6T47.js +56 -0
- package/{cliExecutor-AWYR3T33.js → cliExecutor-BWBF2MTI.js} +4 -3
- package/{clipboardy-BX4NMYHE.js → clipboardy-GCO3GT3I.js} +3 -8
- package/{commandRegistry-YOEQUA7T.js → commandRegistry-XN7C5GHO.js} +183 -107
- package/contentThunks-5L7YQI3S.js +84 -0
- package/{cooldownCommands-ZLEPIB4A.js → cooldownCommands-JFKTYS2D.js} +2 -2
- package/{createAgentAutomationAction-5EJL6ROU.js → createAgentAutomationAction-QOPOLCRK.js} +53 -44
- package/createDialogAction-MZ66VY5Q.js +76 -0
- package/{createPageAction-75ELC64R.js → createPageAction-VQDJIXMY.js} +65 -54
- package/cursorProvider-YGGNMVWX.js +6123 -0
- package/{db-VQSAOWAO.js → db-2QOTXYGH.js} +11 -5
- package/{dbSlice-DQ32LYTJ.js → dbSlice-J37OGIXH.js} +19 -13
- package/{deleteFile-NX6QHCWZ.js → deleteFile-6JWDDRVP.js} +10 -6
- package/dialogCommands-YZLSJB6X.js +113 -0
- package/{dialogSlice-KSXPGJB2.js → dialogSlice-6RODVYCK.js} +53 -39
- package/{docCreateCommands-ZSLGVBZT.js → docCreateCommands-JB2RRMRJ.js} +54 -57
- package/{docDeleteCommands-5N4GVZBG.js → docDeleteCommands-AQENULNM.js} +56 -58
- package/{docReadCommands-YJSAA7AV.js → docReadCommands-DYD25YLQ.js} +53 -56
- package/{docStore-AROBVRCR.js → docStore-ZZA3OPM5.js} +25 -16
- package/{docUpdateCommands-WEMLSW6W.js → docUpdateCommands-3GVS23QL.js} +54 -57
- package/{fetchMessages-67MEFPZR.js → fetchMessages-IIJWQ3HR.js} +5 -4
- package/{getPricing-NMMFT3YI.js → getPricing-FKK3F5EJ.js} +11 -9
- package/{handleSendMessageAction-EGNWHAUB.js → handleSendMessageAction-DVG5U26T.js} +619 -165
- package/index.js +11 -7
- package/{lib-FRRS27KN.js → lib-4YTWAGY7.js} +581 -248
- package/{localDialogRead-EBRS242U.js → localDialogRead-FSOMOPDZ.js} +2 -2
- package/localRuntimeAdapter-HXRHFKRC.js +244 -0
- package/localRuntimeAuthority-JDAD7CB6.js +16 -0
- package/{localRuntimeDb-3LRMNLCM.js → localRuntimeDb-CVC62PM5.js} +1 -1
- package/{machineCommands-ARZYKGGE.js → machineCommands-5KBF4RCC.js} +503 -161
- package/{machineInfo-66ZFUMLE.js → machineInfo-UKPTZO5Y.js} +2 -2
- package/machineWsRunDispatch-4OQDEDOR.js +169 -0
- package/{memberThunks-5ZXPR63F.js → memberThunks-66DH6ABQ.js} +25 -18
- package/{models-ZPU5EDF4.js → models-LAS4B2B5.js} +2 -2
- package/package.json +1 -1
- package/{providerPresetApply-DD6NGWW6.js → providerPresetApply-MY66I6NT.js} +10 -10
- package/{providerRegistry-XDRLMYGJ.js → providerRegistry-QOE2FT57.js} +13 -9
- package/{read-EPTJRAEF.js → read-DC4NUGN6.js} +12 -8
- package/{readDocTool-W4NDXNEX.js → readDocTool-NCJ5NT25.js} +1 -1
- package/{readlineWorkspace-3XOFVARF.js → readlineWorkspace-RIE62QVZ.js} +5022 -921
- package/{removeDialogAgentAction-OSYNZRX7.js → removeDialogAgentAction-E2H3OZU6.js} +29 -28
- package/{runAgentClientLoop-UMF7VZYZ.js → runAgentClientLoop-KLUUXBZS.js} +154 -97
- package/{runtimeDoctorCommands-ID23PNNZ.js → runtimeDoctorCommands-GIOGC5SC.js} +17 -17
- package/secretCommands-ZXZRLR3R.js +700 -0
- package/setDialogExtraReferencesAction-SITRPMYU.js +37 -0
- package/{setPrimaryDialogAgentAction-WZ7KI3YA.js → setPrimaryDialogAgentAction-U7N45TGC.js} +30 -29
- package/{chunk-SONWNI3L.js → settingThunks-Y7SVJOMZ.js} +223 -928
- package/{skillDiscovery-ZBU76COE.js → skillDiscovery-QC35EQY4.js} +2 -2
- package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
- package/{spaceCommands-UJOVU4XI.js → spaceCommands-ZR5BR3GX.js} +59 -59
- package/{streamAgentChatTurn-GYGMYOSM.js → streamAgentChatTurn-MN2SSPGA.js} +309 -165
- package/{switchDialogAgentAction-GMR7WN3P.js → switchDialogAgentAction-OMGBD3N2.js} +26 -22
- package/{tableCommands-G7RV3RU3.js → tableCommands-U3QDY4L6.js} +19 -17
- package/{toolApiClient-CVGWM4PN.js → toolApiClient-7WSJJJBV.js} +6 -5
- package/tools-W2MOLERY.js +124 -0
- package/tuiSummaryLlmCaller-BM3VSTBU.js +130 -0
- package/{updateCommands-4EHDLF5J.js → updateCommands-NQXAGFM7.js} +3 -3
- package/{updateDialogTitleAction-4U5W4AMH.js → updateDialogTitleAction-Z4JX6REN.js} +102 -57
- package/workloadLifecycle-36DXRZKU.js +320 -0
- package/action-GI44T4DR.js +0 -31
- package/agentListCommands-IW3GQVUP.js +0 -427
- package/agentRecordCommands-4YBSYPIY.js +0 -134
- package/agentRunCommand-5MU5X5OT.js +0 -161
- package/browser-image-compression-MFDTD7K6.js +0 -1763
- package/chatQueueReduxAdapter-HVHA2HPM.js +0 -186
- package/chromeOpsCommands-IXRLN57H.js +0 -289
- package/chunk-42Z3EMC4.js +0 -25363
- package/chunk-CQ3WA2NE.js +0 -299
- package/chunk-CYSYR67N.js +0 -93
- package/chunk-IAG4FHOJ.js +0 -34
- package/chunk-JBTJAPUF.js +0 -35
- package/chunk-K2CSUCHJ.js +0 -620
- package/chunk-LTRXGFMS.js +0 -83
- package/chunk-M76ECQRD.js +0 -13658
- package/chunk-MEYIRKDN.js +0 -8967
- package/chunk-OCZKATRC.js +0 -129
- package/chunk-OTGFTBLI.js +0 -13
- package/chunk-PUOC4YRO.js +0 -394
- package/chunk-QU5A4LYX.js +0 -2415
- package/chunk-URMS4XY2.js +0 -10
- package/chunk-UV6VISQJ.js +0 -20
- package/chunk-VJVNU77E.js +0 -83
- package/chunk-WRMKCKZ3.js +0 -13807
- package/chunk-Y5GCAMGP.js +0 -9
- package/chunk-YPREESF4.js +0 -225
- package/contentThunks-AK2F3KNC.js +0 -73
- package/createDialogAction-F5WEWA47.js +0 -66
- package/dialogCommands-G7YBVAMC.js +0 -102
- package/levelLazyShim-GZBKODGI.js +0 -7
- package/machineWsRunDispatch-I7F4L532.js +0 -149
- package/serverStoreFactory-YMXDF4NI.js +0 -20
- package/setDialogExtraReferencesAction-M32UYNCG.js +0 -30
- package/settingSlice-Q6EKL7EQ.js +0 -204
- package/syncMapping-N6RGXGBW.js +0 -437
- package/tools-DU4JXVAV.js +0 -111
- package/tuiSummaryLlmCaller-3YFNHCTW.js +0 -128
- package/{chunk-SV5IJK6K.js → chunk-NBTY7YJF.js} +3 -3
- package/{chunk-2SYTUTLI.js → chunk-YBNHPX4S.js} +3 -3
- package/{offlineMarxistsAgentCommand-HGXZV4XJ.js → offlineMarxistsAgentCommand-2QTHJCHV.js} +4 -4
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createChatQueueRuntime,
|
|
3
|
-
createTurnRequest
|
|
4
|
-
} from "./chunk-YPREESF4.js";
|
|
5
|
-
import {
|
|
6
|
-
handleSendMessage
|
|
7
|
-
} from "./chunk-42Z3EMC4.js";
|
|
8
|
-
import "./chunk-523DITKR.js";
|
|
9
|
-
import "./chunk-YYLHWIW6.js";
|
|
10
|
-
import "./chunk-6O4IK4V2.js";
|
|
11
|
-
import "./chunk-LPVCRQMM.js";
|
|
12
|
-
import "./chunk-Z4CSIXYP.js";
|
|
13
|
-
import "./chunk-5RGU3J7P.js";
|
|
14
|
-
import "./chunk-M76ECQRD.js";
|
|
15
|
-
import {
|
|
16
|
-
clearPendingUserInputQueue,
|
|
17
|
-
dequeueUserInput,
|
|
18
|
-
enqueueUserInput,
|
|
19
|
-
getLoopStopReason,
|
|
20
|
-
getPendingUserInputQueue
|
|
21
|
-
} from "./chunk-B6SAMB33.js";
|
|
22
|
-
import "./chunk-YDH3FDFQ.js";
|
|
23
|
-
import "./chunk-MX574M24.js";
|
|
24
|
-
import "./chunk-AGGIDPCZ.js";
|
|
25
|
-
import "./chunk-AKG5W4LG.js";
|
|
26
|
-
import "./chunk-RYZINGPM.js";
|
|
27
|
-
import "./chunk-PSCNXBYA.js";
|
|
28
|
-
import "./chunk-L36OWPP3.js";
|
|
29
|
-
import "./chunk-BYXBJQAS.js";
|
|
30
|
-
import "./chunk-DWLEOOGR.js";
|
|
31
|
-
import "./chunk-7KVZ5LDQ.js";
|
|
32
|
-
import "./chunk-HNMXYYJR.js";
|
|
33
|
-
import "./chunk-3BXNTXYI.js";
|
|
34
|
-
import "./chunk-W7XHHYWM.js";
|
|
35
|
-
import "./chunk-RSEEDUMS.js";
|
|
36
|
-
import "./chunk-UAD2WT54.js";
|
|
37
|
-
import "./chunk-ZWQUWF6W.js";
|
|
38
|
-
import "./chunk-CYSYR67N.js";
|
|
39
|
-
import "./chunk-Y3PMXGLH.js";
|
|
40
|
-
import "./chunk-SONWNI3L.js";
|
|
41
|
-
import "./chunk-Y5GCAMGP.js";
|
|
42
|
-
import "./chunk-QDSINZM3.js";
|
|
43
|
-
import "./chunk-KX6YBIHG.js";
|
|
44
|
-
import "./chunk-HYZIYH2H.js";
|
|
45
|
-
import "./chunk-7CHC4W22.js";
|
|
46
|
-
import "./chunk-3AH7LNUB.js";
|
|
47
|
-
import "./chunk-WWC7I6TA.js";
|
|
48
|
-
import "./chunk-QSJ3HFEF.js";
|
|
49
|
-
import "./chunk-IAESIMK7.js";
|
|
50
|
-
import "./chunk-WIWM4FE3.js";
|
|
51
|
-
import "./chunk-QOKAKDPE.js";
|
|
52
|
-
import "./chunk-SEJ5OS6F.js";
|
|
53
|
-
import "./chunk-OW765XBU.js";
|
|
54
|
-
import "./chunk-GBRG75BQ.js";
|
|
55
|
-
import "./chunk-KUG52IAP.js";
|
|
56
|
-
import "./chunk-BNGW5ASC.js";
|
|
57
|
-
import "./chunk-M2EJHDJP.js";
|
|
58
|
-
import "./chunk-3EUW3WEO.js";
|
|
59
|
-
import "./chunk-U6VC4MU4.js";
|
|
60
|
-
import "./chunk-LCBAMY2M.js";
|
|
61
|
-
import "./chunk-4SN6J65J.js";
|
|
62
|
-
import "./chunk-CF7PE763.js";
|
|
63
|
-
import "./chunk-G3SUCT4W.js";
|
|
64
|
-
import "./chunk-4VNS5WPM.js";
|
|
65
|
-
|
|
66
|
-
// packages/chat/queue/chatQueueReduxAdapter.ts
|
|
67
|
-
var ChatQueueReduxAdapter = class {
|
|
68
|
-
runtimes = /* @__PURE__ */ new Map();
|
|
69
|
-
store;
|
|
70
|
-
opts;
|
|
71
|
-
/** Pending drain promises per dialog, so notifyTurnEnd can be awaited. */
|
|
72
|
-
pendingDrains = /* @__PURE__ */ new Map();
|
|
73
|
-
constructor(store, opts = {}) {
|
|
74
|
-
this.store = store;
|
|
75
|
-
this.opts = opts;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Get (or lazily create) the runtime for a dialog. The runtime is seeded from
|
|
79
|
-
* dialogRuntimeStore `pendingUserInputQueue` so we don't lose queued items
|
|
80
|
-
* written before the adapter existed.
|
|
81
|
-
*/
|
|
82
|
-
getRuntime(dialogKey) {
|
|
83
|
-
let rt = this.runtimes.get(dialogKey);
|
|
84
|
-
if (rt) return rt;
|
|
85
|
-
const legacyQueue = getPendingUserInputQueue(dialogKey);
|
|
86
|
-
const seed = {
|
|
87
|
-
running: false,
|
|
88
|
-
queue: Array.isArray(legacyQueue) ? legacyQueue.map((t) => createTurnRequest(t)) : [],
|
|
89
|
-
drainPaused: getLoopStopReason(dialogKey) === "pending",
|
|
90
|
-
lastDrainError: null
|
|
91
|
-
};
|
|
92
|
-
rt = createChatQueueRuntime(seed);
|
|
93
|
-
this.runtimes.set(dialogKey, rt);
|
|
94
|
-
rt.on("drain-ready", ({ text }) => {
|
|
95
|
-
const dispatch = this.store.dispatch;
|
|
96
|
-
const runtime = rt;
|
|
97
|
-
const promise = (async () => {
|
|
98
|
-
try {
|
|
99
|
-
if (this.opts.sendDrainedText) {
|
|
100
|
-
await this.opts.sendDrainedText({ dialogKey, text, dispatch });
|
|
101
|
-
} else {
|
|
102
|
-
await dispatch(
|
|
103
|
-
handleSendMessage({
|
|
104
|
-
dialogKey,
|
|
105
|
-
userInput: text
|
|
106
|
-
})
|
|
107
|
-
);
|
|
108
|
-
}
|
|
109
|
-
runtime.send({ type: "dequeue" });
|
|
110
|
-
dequeueUserInput({ dialogKey });
|
|
111
|
-
} catch (error) {
|
|
112
|
-
const message = error instanceof Error ? error.message : typeof error === "string" ? error : "drain send failed";
|
|
113
|
-
runtime.send({ type: "drain-error", message });
|
|
114
|
-
} finally {
|
|
115
|
-
this.pendingDrains.delete(dialogKey);
|
|
116
|
-
}
|
|
117
|
-
})();
|
|
118
|
-
this.pendingDrains.set(dialogKey, promise);
|
|
119
|
-
});
|
|
120
|
-
return rt;
|
|
121
|
-
}
|
|
122
|
-
/** Drop a dialog's runtime (e.g. when the dialog is closed/deleted). */
|
|
123
|
-
disposeRuntime(dialogKey) {
|
|
124
|
-
const rt = this.runtimes.get(dialogKey);
|
|
125
|
-
if (rt) {
|
|
126
|
-
rt.dispose();
|
|
127
|
-
this.runtimes.delete(dialogKey);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
/** Call when an agent turn starts streaming for this dialog. */
|
|
131
|
-
notifyTurnStart(dialogKey) {
|
|
132
|
-
this.getRuntime(dialogKey).send({ type: "turn-start" });
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Call when an agent turn ends for this dialog.
|
|
136
|
-
* `ok` false without `aborted` keeps the queue (failure stop); `aborted`
|
|
137
|
-
* clears the queue (user abandoned follow-ups) both in the core and in the
|
|
138
|
-
* dialogRuntimeStore shadow.
|
|
139
|
-
*
|
|
140
|
-
* Returns a promise that resolves once any drain triggered by this turn-end
|
|
141
|
-
* has committed (sent + dequeued) or failed. Callers that need to assert on
|
|
142
|
-
* the post-drain state should await it.
|
|
143
|
-
*/
|
|
144
|
-
notifyTurnEnd(dialogKey, outcome) {
|
|
145
|
-
const rt = this.getRuntime(dialogKey);
|
|
146
|
-
rt.send({ type: "turn-end", ...outcome });
|
|
147
|
-
if (outcome.aborted) {
|
|
148
|
-
clearPendingUserInputQueue({ dialogKey });
|
|
149
|
-
}
|
|
150
|
-
const pending = this.pendingDrains.get(dialogKey);
|
|
151
|
-
return pending ? pending.then(() => void 0) : Promise.resolve();
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Enqueue a user input through the adapter. This writes to both the core
|
|
155
|
-
* runtime and the dialogRuntimeStore queue so existing UI hooks keep working
|
|
156
|
-
* during the migration.
|
|
157
|
-
*
|
|
158
|
-
* Order matters: we touch the runtime first (creating it if needed, seeded
|
|
159
|
-
* from the *current* store shadow) and then mirror into the store. Doing it
|
|
160
|
-
* the other way around would let the seed read back the value we just wrote
|
|
161
|
-
* and double-count it.
|
|
162
|
-
*/
|
|
163
|
-
enqueue(dialogKey, text) {
|
|
164
|
-
const runtime = this.getRuntime(dialogKey);
|
|
165
|
-
runtime.send({ type: "enqueue", text });
|
|
166
|
-
enqueueUserInput({ text, dialogKey });
|
|
167
|
-
return {
|
|
168
|
-
accepted: true,
|
|
169
|
-
queueLength: runtime.getState().queue.length
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
/** Current queue snapshot (from the core runtime). */
|
|
173
|
-
getQueue(dialogKey) {
|
|
174
|
-
return this.getRuntime(dialogKey).getState().queue.map((req) => req.text);
|
|
175
|
-
}
|
|
176
|
-
/** Reflect `loopStopReason === "pending"` into the runtime's pause flag. */
|
|
177
|
-
syncDrainPause(dialogKey) {
|
|
178
|
-
const paused = getLoopStopReason(dialogKey) === "pending";
|
|
179
|
-
const rt = this.getRuntime(dialogKey);
|
|
180
|
-
if (paused) rt.send({ type: "pause-drain" });
|
|
181
|
-
else rt.send({ type: "resume-drain" });
|
|
182
|
-
}
|
|
183
|
-
};
|
|
184
|
-
export {
|
|
185
|
-
ChatQueueReduxAdapter
|
|
186
|
-
};
|
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createChromeConnectorClient
|
|
3
|
-
} from "./chunk-YUNJN43V.js";
|
|
4
|
-
import {
|
|
5
|
-
toErrorMessage
|
|
6
|
-
} from "./chunk-HNMXYYJR.js";
|
|
7
|
-
import {
|
|
8
|
-
readOption
|
|
9
|
-
} from "./chunk-A7GB5UGH.js";
|
|
10
|
-
import "./chunk-OLZBQWZU.js";
|
|
11
|
-
import "./chunk-KUG52IAP.js";
|
|
12
|
-
import "./chunk-LCBAMY2M.js";
|
|
13
|
-
import "./chunk-4SN6J65J.js";
|
|
14
|
-
import "./chunk-CF7PE763.js";
|
|
15
|
-
import "./chunk-G3SUCT4W.js";
|
|
16
|
-
import "./chunk-4VNS5WPM.js";
|
|
17
|
-
|
|
18
|
-
// packages/cli/chromeOpsCommands.ts
|
|
19
|
-
import { writeFile } from "node:fs/promises";
|
|
20
|
-
function wantsHelp(args) {
|
|
21
|
-
return args.includes("--help") || args.includes("-h");
|
|
22
|
-
}
|
|
23
|
-
function readTrimmedOption(args, flag) {
|
|
24
|
-
return (readOption(args, flag) ?? "").trim();
|
|
25
|
-
}
|
|
26
|
-
function readAllOptions(args, flag) {
|
|
27
|
-
const values = [];
|
|
28
|
-
for (let i = 0; i < args.length; i++) {
|
|
29
|
-
if (args[i] === flag && i + 1 < args.length) {
|
|
30
|
-
const val = args[i + 1].trim();
|
|
31
|
-
if (val && !val.startsWith("--")) {
|
|
32
|
-
values.push(val);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return values;
|
|
37
|
-
}
|
|
38
|
-
function readIntOption(args, flag, usage) {
|
|
39
|
-
const raw = readOption(args, flag);
|
|
40
|
-
if (raw === void 0) return void 0;
|
|
41
|
-
const value = Number.parseInt(raw, 10);
|
|
42
|
-
if (!Number.isFinite(value)) {
|
|
43
|
-
throw new Error(`Invalid ${flag} <N>. Usage: ${usage}`);
|
|
44
|
-
}
|
|
45
|
-
return value;
|
|
46
|
-
}
|
|
47
|
-
function requireTabId(args, usage) {
|
|
48
|
-
const tabId = readTrimmedOption(args, "--tab");
|
|
49
|
-
if (!tabId) {
|
|
50
|
-
throw new Error(`Missing required --tab <id>. Usage: ${usage}`);
|
|
51
|
-
}
|
|
52
|
-
return tabId;
|
|
53
|
-
}
|
|
54
|
-
function requireTarget(args, usage) {
|
|
55
|
-
const elementRef = readTrimmedOption(args, "--ref");
|
|
56
|
-
const selector = readTrimmedOption(args, "--selector");
|
|
57
|
-
if (!elementRef && !selector) {
|
|
58
|
-
throw new Error(
|
|
59
|
-
`Provide --ref <elementRef> (from read-page) or --selector <css>. Usage: ${usage}`
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
return {
|
|
63
|
-
...elementRef ? { elementRef } : {},
|
|
64
|
-
...selector ? { selector } : {}
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
var CHROME_OPS_SUBCOMMANDS = {
|
|
68
|
-
"list-tabs": {
|
|
69
|
-
action: "list_tabs",
|
|
70
|
-
usage: "nolo chrome list-tabs",
|
|
71
|
-
payload: () => ({})
|
|
72
|
-
},
|
|
73
|
-
"open-tab": {
|
|
74
|
-
action: "open_tab",
|
|
75
|
-
usage: "nolo chrome open-tab --url <url> [--active]",
|
|
76
|
-
payload: (args, usage) => {
|
|
77
|
-
const url = readTrimmedOption(args, "--url");
|
|
78
|
-
if (!url) {
|
|
79
|
-
throw new Error(`Missing required --url <url>. Usage: ${usage}`);
|
|
80
|
-
}
|
|
81
|
-
return { url, active: args.includes("--active") };
|
|
82
|
-
}
|
|
83
|
-
},
|
|
84
|
-
"close-tab": {
|
|
85
|
-
action: "close_tab",
|
|
86
|
-
usage: "nolo chrome close-tab --tab <id>",
|
|
87
|
-
payload: (args, usage) => ({ tabId: requireTabId(args, usage) })
|
|
88
|
-
},
|
|
89
|
-
"read-page": {
|
|
90
|
-
action: "read_page",
|
|
91
|
-
usage: "nolo chrome read-page --tab <id> [--selector <css>] [--detail compact|full] [--max-elements N]",
|
|
92
|
-
payload: (args, usage) => {
|
|
93
|
-
const payload = { tabId: requireTabId(args, usage) };
|
|
94
|
-
const selector = readTrimmedOption(args, "--selector");
|
|
95
|
-
if (selector) payload.selector = selector;
|
|
96
|
-
const detail = readTrimmedOption(args, "--detail");
|
|
97
|
-
if (detail) payload.detail = detail;
|
|
98
|
-
const maxElements = readIntOption(args, "--max-elements", usage);
|
|
99
|
-
if (maxElements !== void 0) payload.maxElements = maxElements;
|
|
100
|
-
return payload;
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
click: {
|
|
104
|
-
action: "click",
|
|
105
|
-
usage: "nolo chrome click --tab <id> (--ref <elementRef> | --selector <css>)",
|
|
106
|
-
payload: (args, usage) => ({
|
|
107
|
-
tabId: requireTabId(args, usage),
|
|
108
|
-
...requireTarget(args, usage)
|
|
109
|
-
})
|
|
110
|
-
},
|
|
111
|
-
type: {
|
|
112
|
-
action: "type",
|
|
113
|
-
usage: "nolo chrome type --tab <id> (--ref <elementRef> | --selector <css>) --text <text> [--append]",
|
|
114
|
-
payload: (args, usage) => {
|
|
115
|
-
const text = readOption(args, "--text");
|
|
116
|
-
if (text === void 0 || text.startsWith("--")) {
|
|
117
|
-
throw new Error(`Missing required --text <text>. Usage: ${usage}`);
|
|
118
|
-
}
|
|
119
|
-
return {
|
|
120
|
-
tabId: requireTabId(args, usage),
|
|
121
|
-
...requireTarget(args, usage),
|
|
122
|
-
text,
|
|
123
|
-
...args.includes("--append") ? { clearFirst: false } : {}
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
upload: {
|
|
128
|
-
action: "set_files",
|
|
129
|
-
usage: "nolo chrome upload --tab <id> (--ref <elementRef> | --selector <css>) --file <path> [--file <path>...]",
|
|
130
|
-
payload: (args, usage) => {
|
|
131
|
-
const files = readAllOptions(args, "--file");
|
|
132
|
-
if (files.length === 0) {
|
|
133
|
-
throw new Error(`Missing required --file <path>. Usage: ${usage}`);
|
|
134
|
-
}
|
|
135
|
-
const target = requireTarget(args, usage);
|
|
136
|
-
const tabId = requireTabId(args, usage);
|
|
137
|
-
return {
|
|
138
|
-
tabId,
|
|
139
|
-
...target,
|
|
140
|
-
...target.elementRef ? { ref: target.elementRef } : {},
|
|
141
|
-
files
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
press: {
|
|
146
|
-
action: "press",
|
|
147
|
-
usage: "nolo chrome press --tab <id> --key <key>",
|
|
148
|
-
payload: (args, usage) => {
|
|
149
|
-
const key = readTrimmedOption(args, "--key");
|
|
150
|
-
if (!key) {
|
|
151
|
-
throw new Error(`Missing required --key <key>. Usage: ${usage}`);
|
|
152
|
-
}
|
|
153
|
-
return { tabId: requireTabId(args, usage), key };
|
|
154
|
-
}
|
|
155
|
-
},
|
|
156
|
-
scroll: {
|
|
157
|
-
action: "scroll",
|
|
158
|
-
usage: "nolo chrome scroll --tab <id> [--delta-x N] [--delta-y N]",
|
|
159
|
-
payload: (args, usage) => {
|
|
160
|
-
const payload = { tabId: requireTabId(args, usage) };
|
|
161
|
-
const deltaX = readIntOption(args, "--delta-x", usage);
|
|
162
|
-
const deltaY = readIntOption(args, "--delta-y", usage);
|
|
163
|
-
if (deltaX !== void 0) payload.deltaX = deltaX;
|
|
164
|
-
if (deltaY !== void 0) payload.deltaY = deltaY;
|
|
165
|
-
return payload;
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
screenshot: {
|
|
169
|
-
action: "screenshot",
|
|
170
|
-
usage: "nolo chrome screenshot --tab <id> [--out <path>] [--full-page]",
|
|
171
|
-
payload: (args, usage) => ({
|
|
172
|
-
tabId: requireTabId(args, usage),
|
|
173
|
-
...args.includes("--full-page") ? { fullPage: true } : {}
|
|
174
|
-
})
|
|
175
|
-
},
|
|
176
|
-
"read-console": {
|
|
177
|
-
action: "read_console",
|
|
178
|
-
usage: "nolo chrome read-console --tab <id> [--limit N]",
|
|
179
|
-
payload: (args, usage) => {
|
|
180
|
-
const payload = { tabId: requireTabId(args, usage) };
|
|
181
|
-
const limit = readIntOption(args, "--limit", usage);
|
|
182
|
-
if (limit !== void 0) payload.limit = limit;
|
|
183
|
-
return payload;
|
|
184
|
-
}
|
|
185
|
-
},
|
|
186
|
-
"read-network": {
|
|
187
|
-
action: "read_network",
|
|
188
|
-
usage: "nolo chrome read-network --tab <id> [--limit N] [--include-assets]",
|
|
189
|
-
payload: (args, usage) => {
|
|
190
|
-
const payload = { tabId: requireTabId(args, usage) };
|
|
191
|
-
const limit = readIntOption(args, "--limit", usage);
|
|
192
|
-
if (limit !== void 0) payload.limit = limit;
|
|
193
|
-
if (args.includes("--include-assets")) payload.includeAssets = true;
|
|
194
|
-
return payload;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
function renderChromeOpsHelp() {
|
|
199
|
-
const lines = [
|
|
200
|
-
"Operate the user's browser (Chrome or Firefox) through the Nolo Browser Connector",
|
|
201
|
-
"(the desktop bridge; the same RPC the browser_* agent tools use \u2014 legacy `chrome_*` names still work).",
|
|
202
|
-
"",
|
|
203
|
-
"Usage:",
|
|
204
|
-
" nolo chrome <subcommand> [flags]",
|
|
205
|
-
"",
|
|
206
|
-
"Subcommands:",
|
|
207
|
-
...Object.values(CHROME_OPS_SUBCOMMANDS).map(
|
|
208
|
-
(spec) => ` ${spec.usage.replace(/^nolo chrome /, "")}`
|
|
209
|
-
),
|
|
210
|
-
"",
|
|
211
|
-
"Notes:",
|
|
212
|
-
" --ref takes an elementRef copied from `nolo chrome read-page` (revision-scoped,",
|
|
213
|
-
" preferred over --selector); --selector takes a CSS selector.",
|
|
214
|
-
" Actions the connector classifies as irreversible (Submit / Delete / Pay ...)",
|
|
215
|
-
" are refused with CONFIRMATION_REQUIRED \u2014 ask the user to perform them.",
|
|
216
|
-
" read-console / read-network / upload work on Chrome only (Firefox lacks chrome.debugger).",
|
|
217
|
-
" Every subcommand prints the connector's raw JSON result; failures exit 1.",
|
|
218
|
-
" Endpoint: NOLO_CHROME_CONNECTOR_RPC_URL or http://127.0.0.1:38947/rpc."
|
|
219
|
-
];
|
|
220
|
-
return lines.join("\n");
|
|
221
|
-
}
|
|
222
|
-
var CHROME_OPS_HELP_TEXT = renderChromeOpsHelp();
|
|
223
|
-
async function runChromeOpsCommand(subcommand, args, deps = {}) {
|
|
224
|
-
const io = {
|
|
225
|
-
stdout: (text) => console.log(text),
|
|
226
|
-
stderr: (text) => console.error(text),
|
|
227
|
-
...deps.io
|
|
228
|
-
};
|
|
229
|
-
const spec = CHROME_OPS_SUBCOMMANDS[subcommand];
|
|
230
|
-
if (!spec) {
|
|
231
|
-
io.stderr(`Unknown chrome subcommand: ${subcommand}
|
|
232
|
-
|
|
233
|
-
${CHROME_OPS_HELP_TEXT}`);
|
|
234
|
-
return 1;
|
|
235
|
-
}
|
|
236
|
-
if (wantsHelp(args)) {
|
|
237
|
-
io.stdout(CHROME_OPS_HELP_TEXT);
|
|
238
|
-
return 0;
|
|
239
|
-
}
|
|
240
|
-
let payload;
|
|
241
|
-
try {
|
|
242
|
-
payload = spec.payload(args, spec.usage);
|
|
243
|
-
} catch (error) {
|
|
244
|
-
io.stderr(toErrorMessage(error));
|
|
245
|
-
return 1;
|
|
246
|
-
}
|
|
247
|
-
let result;
|
|
248
|
-
try {
|
|
249
|
-
const client = deps.client ?? createChromeConnectorClient();
|
|
250
|
-
result = await client.request(spec.action, payload);
|
|
251
|
-
} catch (error) {
|
|
252
|
-
const code = typeof error?.code === "string" ? error.code : "CHROME_COMMAND_FAILED";
|
|
253
|
-
io.stderr(JSON.stringify({ ok: false, error: { code, message: toErrorMessage(error) } }, null, 2));
|
|
254
|
-
return 1;
|
|
255
|
-
}
|
|
256
|
-
if (subcommand === "screenshot") {
|
|
257
|
-
const out = readTrimmedOption(args, "--out");
|
|
258
|
-
const dataUrl = result?.dataUrl;
|
|
259
|
-
if (out && typeof dataUrl === "string") {
|
|
260
|
-
const base64 = dataUrl.includes(",") ? dataUrl.slice(dataUrl.indexOf(",") + 1) : dataUrl;
|
|
261
|
-
const bytes = Buffer.from(base64, "base64");
|
|
262
|
-
try {
|
|
263
|
-
await writeFile(out, bytes);
|
|
264
|
-
} catch (error) {
|
|
265
|
-
io.stderr(
|
|
266
|
-
JSON.stringify(
|
|
267
|
-
{
|
|
268
|
-
ok: false,
|
|
269
|
-
error: { code: "SCREENSHOT_WRITE_FAILED", message: toErrorMessage(error) }
|
|
270
|
-
},
|
|
271
|
-
null,
|
|
272
|
-
2
|
|
273
|
-
)
|
|
274
|
-
);
|
|
275
|
-
return 1;
|
|
276
|
-
}
|
|
277
|
-
io.stdout(JSON.stringify({ ok: true, result: { savedTo: out, bytes: bytes.byteLength } }, null, 2));
|
|
278
|
-
return 0;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
io.stdout(JSON.stringify({ ok: true, result }, null, 2));
|
|
282
|
-
return 0;
|
|
283
|
-
}
|
|
284
|
-
export {
|
|
285
|
-
CHROME_OPS_HELP_TEXT,
|
|
286
|
-
CHROME_OPS_SUBCOMMANDS,
|
|
287
|
-
renderChromeOpsHelp,
|
|
288
|
-
runChromeOpsCommand
|
|
289
|
-
};
|