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,124 +1,141 @@
|
|
|
1
|
+
import {
|
|
2
|
+
fetchAgentContexts,
|
|
3
|
+
responsesJsonToChatCompletions,
|
|
4
|
+
updateAgentTokens
|
|
5
|
+
} from "./chunk-7MOXKPHC.js";
|
|
1
6
|
import {
|
|
2
7
|
filterAndCleanMessages,
|
|
3
8
|
sendOpenAICompletionsRequest
|
|
4
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-PCKVQXYV.js";
|
|
5
10
|
import "./chunk-JEXVIMYZ.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-OCZKATRC.js";
|
|
8
|
-
import {
|
|
9
|
-
fetchAgentContexts
|
|
10
|
-
} from "./chunk-IAG4FHOJ.js";
|
|
11
|
+
import "./chunk-Z7OJUX6S.js";
|
|
11
12
|
import {
|
|
12
13
|
generateRequestBody,
|
|
13
14
|
performFetchRequest,
|
|
15
|
+
resolveAgentCallPlan,
|
|
16
|
+
resolveClientWire,
|
|
14
17
|
sanitizeOutboundBody
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-AOCM7HPT.js";
|
|
19
|
+
import "./chunk-W4S6OTSC.js";
|
|
17
20
|
import "./chunk-HS7MLR74.js";
|
|
21
|
+
import "./chunk-Y2DXOPSO.js";
|
|
22
|
+
import "./chunk-JKMLSTZK.js";
|
|
23
|
+
import "./chunk-I2ZMGXXF.js";
|
|
24
|
+
import "./chunk-OXME3PEE.js";
|
|
18
25
|
import {
|
|
19
26
|
mergeReferences
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-DY7ANLKG.js";
|
|
23
|
-
import "./chunk-5UTFL4QJ.js";
|
|
24
|
-
import "./chunk-KQHGZWSV.js";
|
|
25
|
-
import "./chunk-BKWMNZ2X.js";
|
|
27
|
+
} from "./chunk-SMENBO3M.js";
|
|
28
|
+
import "./chunk-ES633ZS5.js";
|
|
26
29
|
import "./chunk-NF64D32W.js";
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-XPWGOTBQ.js";
|
|
31
|
+
import "./chunk-ZIWPQEFU.js";
|
|
32
|
+
import "./chunk-CBHGZRCE.js";
|
|
33
|
+
import "./chunk-SCMHQUMK.js";
|
|
34
|
+
import "./chunk-VIDPVFP3.js";
|
|
35
|
+
import "./chunk-5MM7NNO6.js";
|
|
36
|
+
import "./chunk-IA7TRNNR.js";
|
|
37
|
+
import "./chunk-AGIM7IMJ.js";
|
|
32
38
|
import "./chunk-63W5N6P3.js";
|
|
33
39
|
import "./chunk-VF4K2QE6.js";
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
38
|
-
import "./chunk-
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-ZJ7UHBJS.js";
|
|
40
|
+
import "./chunk-GQN2WLAI.js";
|
|
41
|
+
import "./chunk-ILU2NPWY.js";
|
|
42
|
+
import "./chunk-SSFDFOVT.js";
|
|
43
|
+
import "./chunk-F32Z66T4.js";
|
|
44
|
+
import "./chunk-EYWJT7A2.js";
|
|
45
|
+
import "./chunk-ZKZ5X2HS.js";
|
|
41
46
|
import {
|
|
42
47
|
selectAllMsgs,
|
|
43
|
-
selectCurrentDialogConfig
|
|
44
|
-
|
|
45
|
-
} from "./chunk-42Z3EMC4.js";
|
|
48
|
+
selectCurrentDialogConfig
|
|
49
|
+
} from "./chunk-556RW72X.js";
|
|
46
50
|
import "./chunk-523DITKR.js";
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-
|
|
49
|
-
import "./chunk-
|
|
50
|
-
import "./chunk-
|
|
51
|
+
import "./chunk-UKZX3NHN.js";
|
|
52
|
+
import "./chunk-OFFL4DCR.js";
|
|
53
|
+
import "./chunk-QYPE3TS3.js";
|
|
54
|
+
import "./chunk-IZ7OJB6K.js";
|
|
55
|
+
import "./chunk-4JH2UMJR.js";
|
|
56
|
+
import "./chunk-ZJ7UHBJS.js";
|
|
57
|
+
import "./chunk-BYXBJQAS.js";
|
|
58
|
+
import "./chunk-PLSVXHSA.js";
|
|
51
59
|
import "./chunk-5RGU3J7P.js";
|
|
52
|
-
import "./chunk-
|
|
53
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-OWYYDMGJ.js";
|
|
61
|
+
import "./chunk-ZRAU6T47.js";
|
|
62
|
+
import "./chunk-4LCOCOR5.js";
|
|
54
63
|
import "./chunk-YDH3FDFQ.js";
|
|
55
|
-
import "./chunk-MX574M24.js";
|
|
56
|
-
import "./chunk-VIDPVFP3.js";
|
|
57
|
-
import "./chunk-AGGIDPCZ.js";
|
|
58
|
-
import "./chunk-CU3QB4HW.js";
|
|
59
|
-
import "./chunk-B2XUQXQX.js";
|
|
60
|
-
import "./chunk-6TPOEJMQ.js";
|
|
61
|
-
import "./chunk-AUDNYVRC.js";
|
|
62
|
-
import "./chunk-KHCLMKZZ.js";
|
|
63
|
-
import "./chunk-N7J63Q6C.js";
|
|
64
|
-
import "./chunk-K2CSUCHJ.js";
|
|
65
|
-
import "./chunk-PUOC4YRO.js";
|
|
66
|
-
import "./chunk-RGNEEJ3Y.js";
|
|
67
|
-
import "./chunk-H6A6X4EK.js";
|
|
68
|
-
import "./chunk-S5XGT6GB.js";
|
|
69
|
-
import "./chunk-27ONFIEY.js";
|
|
70
|
-
import "./chunk-AKG5W4LG.js";
|
|
71
|
-
import "./chunk-RYZINGPM.js";
|
|
72
|
-
import "./chunk-PSCNXBYA.js";
|
|
73
|
-
import "./chunk-L36OWPP3.js";
|
|
74
|
-
import "./chunk-BYXBJQAS.js";
|
|
75
|
-
import "./chunk-DWLEOOGR.js";
|
|
76
|
-
import "./chunk-7KVZ5LDQ.js";
|
|
77
|
-
import "./chunk-HNMXYYJR.js";
|
|
78
|
-
import {
|
|
79
|
-
getApiEndpoint
|
|
80
|
-
} from "./chunk-3BXNTXYI.js";
|
|
81
|
-
import "./chunk-W7XHHYWM.js";
|
|
82
|
-
import "./chunk-RSEEDUMS.js";
|
|
83
|
-
import "./chunk-UAD2WT54.js";
|
|
84
|
-
import "./chunk-ZWQUWF6W.js";
|
|
85
|
-
import "./chunk-4VJAC32I.js";
|
|
86
|
-
import "./chunk-XUWRURDF.js";
|
|
87
|
-
import "./chunk-5J3PYNUP.js";
|
|
88
|
-
import "./chunk-CYSYR67N.js";
|
|
89
|
-
import "./chunk-Y3PMXGLH.js";
|
|
90
64
|
import {
|
|
91
65
|
selectCurrentServer
|
|
92
|
-
} from "./chunk-
|
|
93
|
-
import "./chunk-
|
|
94
|
-
import "./chunk-
|
|
95
|
-
import "./chunk-
|
|
66
|
+
} from "./chunk-QFEW2ULV.js";
|
|
67
|
+
import "./chunk-XI7DGLUK.js";
|
|
68
|
+
import "./chunk-EDX5XSJM.js";
|
|
69
|
+
import "./chunk-UAD2WT54.js";
|
|
96
70
|
import {
|
|
97
71
|
read
|
|
98
|
-
} from "./chunk-
|
|
99
|
-
import "./chunk-
|
|
100
|
-
import "./chunk-
|
|
101
|
-
import "./chunk-
|
|
102
|
-
import "./chunk-
|
|
103
|
-
import "./chunk-
|
|
104
|
-
import "./chunk-
|
|
105
|
-
import "./chunk-
|
|
72
|
+
} from "./chunk-74RAWNQN.js";
|
|
73
|
+
import "./chunk-3PVYUPXK.js";
|
|
74
|
+
import "./chunk-A4MW3YZL.js";
|
|
75
|
+
import "./chunk-AIZE5TDM.js";
|
|
76
|
+
import "./chunk-4YRTZIVN.js";
|
|
77
|
+
import "./chunk-UEILX4EV.js";
|
|
78
|
+
import "./chunk-IJERIUXS.js";
|
|
79
|
+
import "./chunk-6Q7UTJKR.js";
|
|
80
|
+
import "./chunk-QQ56R7KS.js";
|
|
81
|
+
import "./chunk-OW765XBU.js";
|
|
106
82
|
import {
|
|
107
83
|
selectIdentityToken
|
|
108
84
|
} from "./chunk-SEJ5OS6F.js";
|
|
109
|
-
import "./chunk-
|
|
110
|
-
import "./chunk-
|
|
111
|
-
import "./chunk-
|
|
112
|
-
import "./chunk-
|
|
85
|
+
import "./chunk-D2MDMY2M.js";
|
|
86
|
+
import "./chunk-HIQ4GF53.js";
|
|
87
|
+
import "./chunk-JZX2XLKC.js";
|
|
88
|
+
import "./chunk-EUGTFFO6.js";
|
|
89
|
+
import "./chunk-XETG4RIX.js";
|
|
90
|
+
import "./chunk-GKXCHNTE.js";
|
|
91
|
+
import "./chunk-G6OOUQWJ.js";
|
|
92
|
+
import "./chunk-56GBUMO5.js";
|
|
93
|
+
import "./chunk-WJZOQR2J.js";
|
|
94
|
+
import "./chunk-WD4XYDYC.js";
|
|
95
|
+
import "./chunk-3SZA4U64.js";
|
|
96
|
+
import "./chunk-QLQ573SU.js";
|
|
97
|
+
import "./chunk-3MZAGMYY.js";
|
|
98
|
+
import "./chunk-6CCFTVBP.js";
|
|
99
|
+
import "./chunk-BPMPOFWP.js";
|
|
100
|
+
import "./chunk-5MMAK75Q.js";
|
|
101
|
+
import "./chunk-DWLEOOGR.js";
|
|
102
|
+
import "./chunk-LIQJTQRN.js";
|
|
103
|
+
import "./chunk-UHTDNB5Y.js";
|
|
104
|
+
import "./chunk-KX6YBIHG.js";
|
|
105
|
+
import "./chunk-7DPNBQSV.js";
|
|
106
|
+
import "./chunk-5EBLANFT.js";
|
|
107
|
+
import "./chunk-NYYFIKHI.js";
|
|
108
|
+
import "./chunk-EZVK3N5L.js";
|
|
113
109
|
import {
|
|
114
110
|
extractCustomId
|
|
115
111
|
} from "./chunk-M2EJHDJP.js";
|
|
116
|
-
import "./chunk-
|
|
112
|
+
import "./chunk-5EMSBTQ6.js";
|
|
113
|
+
import "./chunk-I42VC5KR.js";
|
|
117
114
|
import "./chunk-U6VC4MU4.js";
|
|
115
|
+
import "./chunk-TYYRSFBG.js";
|
|
116
|
+
import "./chunk-XZNCX52W.js";
|
|
117
|
+
import "./chunk-WWC7I6TA.js";
|
|
118
|
+
import "./chunk-PJNFNEJE.js";
|
|
119
|
+
import "./chunk-PSCNXBYA.js";
|
|
120
|
+
import "./chunk-K2AER7RX.js";
|
|
121
|
+
import "./chunk-UBUH2TCC.js";
|
|
122
|
+
import {
|
|
123
|
+
getApiEndpoint
|
|
124
|
+
} from "./chunk-I4SN4NUQ.js";
|
|
125
|
+
import "./chunk-5BHQICF2.js";
|
|
126
|
+
import "./chunk-KUG52IAP.js";
|
|
127
|
+
import "./chunk-3EUW3WEO.js";
|
|
128
|
+
import "./chunk-HNMXYYJR.js";
|
|
118
129
|
import "./chunk-LCBAMY2M.js";
|
|
119
130
|
import "./chunk-4SN6J65J.js";
|
|
120
131
|
import "./chunk-CF7PE763.js";
|
|
121
132
|
import "./chunk-G3SUCT4W.js";
|
|
133
|
+
import "./chunk-RVWMAFIT.js";
|
|
134
|
+
import "./chunk-CHCS6XPJ.js";
|
|
135
|
+
import "./chunk-QSJ3HFEF.js";
|
|
136
|
+
import "./chunk-ZWQUWF6W.js";
|
|
137
|
+
import "./chunk-KHCLMKZZ.js";
|
|
138
|
+
import "./chunk-4VJAC32I.js";
|
|
122
139
|
import "./chunk-4VNS5WPM.js";
|
|
123
140
|
|
|
124
141
|
// packages/integrations/openai/chatCompletionStreamMode.ts
|
|
@@ -131,6 +148,24 @@ var applyChatCompletionsStreamMode = (body, stream) => {
|
|
|
131
148
|
};
|
|
132
149
|
|
|
133
150
|
// packages/ai/agent/_executeModel.ts
|
|
151
|
+
var parseCompletionByOutboundWire = (raw, agentConfig) => {
|
|
152
|
+
const responsesWire = resolveClientWire(resolveAgentCallPlan(agentConfig)) === "responses";
|
|
153
|
+
if (!responsesWire) return { chatJson: raw, responsesWire };
|
|
154
|
+
return { chatJson: responsesJsonToChatCompletions(raw), responsesWire };
|
|
155
|
+
};
|
|
156
|
+
var describeResponseShape = (raw) => {
|
|
157
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
|
|
158
|
+
return `type=${Array.isArray(raw) ? "array" : typeof raw}`;
|
|
159
|
+
}
|
|
160
|
+
const record = raw;
|
|
161
|
+
return [
|
|
162
|
+
`object=${typeof record.object === "string" ? record.object : "-"}`,
|
|
163
|
+
`status=${typeof record.status === "string" ? record.status : "-"}`,
|
|
164
|
+
`output=${Array.isArray(record.output) ? "array" : typeof record.output}`,
|
|
165
|
+
`choices=${Array.isArray(record.choices) ? "array" : typeof record.choices}`,
|
|
166
|
+
`keys=${Object.keys(record).slice(0, 8).join("|")}`
|
|
167
|
+
].join(" ");
|
|
168
|
+
};
|
|
134
169
|
var _executeModel = async (options, args, thunkApi) => {
|
|
135
170
|
const { isStreaming, withAgentContext, withChatHistory, agentConfigOverrides } = options;
|
|
136
171
|
const { getState, dispatch, rejectWithValue } = thunkApi;
|
|
@@ -202,16 +237,24 @@ var _executeModel = async (options, args, thunkApi) => {
|
|
|
202
237
|
}
|
|
203
238
|
throw new Error(message);
|
|
204
239
|
}
|
|
205
|
-
const
|
|
240
|
+
const rawResult = await response.json();
|
|
241
|
+
const { chatJson: result, responsesWire } = parseCompletionByOutboundWire(
|
|
242
|
+
rawResult,
|
|
243
|
+
resolvedAgentConfig
|
|
244
|
+
);
|
|
206
245
|
const content2 = result?.choices?.[0]?.message?.content;
|
|
207
246
|
if (typeof content2 !== "string") {
|
|
208
|
-
const upstreamMessage = typeof
|
|
247
|
+
const upstreamMessage = typeof rawResult?.error?.message === "string" ? rawResult.error.message : "";
|
|
209
248
|
throw new Error(
|
|
210
|
-
upstreamMessage.trim() ||
|
|
249
|
+
upstreamMessage.trim() || (responsesWire ? (
|
|
250
|
+
// 保留既有错误契约前缀(调用方/测试按此后缀识别「模型没给出可消费内容」),
|
|
251
|
+
// 其后附 Responses wire 的原因与形状线索 —— 上游失败回包的可见原因不能丢。
|
|
252
|
+
`Model response missing choices[0].message.content\uFF1AResponses wire \u56DE\u5305\u65E0\u6CD5\u5F52\u4E00\u6210 chat \u5F62\u72B6\uFF08error \u5E27 / status \u975E completed / \u7F3A output\uFF09\uFF1A${describeResponseShape(rawResult)}`
|
|
253
|
+
) : `Model response missing choices[0].message.content\uFF1A${describeResponseShape(result)}`)
|
|
211
254
|
);
|
|
212
255
|
}
|
|
213
256
|
if (args.billingDialogKey && result?.usage) {
|
|
214
|
-
await
|
|
257
|
+
await updateAgentTokens(
|
|
215
258
|
{
|
|
216
259
|
dialogId: extractCustomId(args.billingDialogKey),
|
|
217
260
|
dialogKey: args.billingDialogKey,
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createChromeConnectorClientResolver
|
|
3
|
+
} from "./chunk-BU2YQBV4.js";
|
|
4
|
+
import {
|
|
5
|
+
FileDockerQuotaKvStore,
|
|
6
|
+
defaultRunSbx,
|
|
7
|
+
resolveMaxActiveSandboxesFromEnv
|
|
8
|
+
} from "./chunk-YVPQATSC.js";
|
|
9
|
+
import "./chunk-KUG52IAP.js";
|
|
10
|
+
import "./chunk-HNMXYYJR.js";
|
|
11
|
+
import "./chunk-TNIX77YM.js";
|
|
12
|
+
import "./chunk-4VNS5WPM.js";
|
|
13
|
+
|
|
14
|
+
// packages/agent-runtime/docker/accountResolver.ts
|
|
15
|
+
import { homedir } from "node:os";
|
|
16
|
+
import { join, resolve } from "node:path";
|
|
17
|
+
|
|
18
|
+
// packages/agent-runtime/dockerBrowserQuota.ts
|
|
19
|
+
var DOCKER_USAGE_PAGE_URL = "https://agentic-platform.docker.com/usage";
|
|
20
|
+
var DOCKER_USAGE_HOST = "agentic-platform.docker.com";
|
|
21
|
+
var DOCKER_USAGE_PATH = "/usage";
|
|
22
|
+
function parseExactDecimalToNanoUsd(val) {
|
|
23
|
+
if (typeof val !== "string") return null;
|
|
24
|
+
const str = val.trim().replace(/^\$/, "");
|
|
25
|
+
if (!str || str.length > 30) return null;
|
|
26
|
+
if (!/^-?\d+(\.\d+)?$/.test(str)) return null;
|
|
27
|
+
const negative = str.startsWith("-");
|
|
28
|
+
const abs = negative ? str.slice(1) : str;
|
|
29
|
+
const [wholeStr, fracStr = ""] = abs.split(".");
|
|
30
|
+
if (wholeStr.length > 15) return null;
|
|
31
|
+
if (fracStr.length > 9) return null;
|
|
32
|
+
const paddedFrac = fracStr.padEnd(9, "0");
|
|
33
|
+
try {
|
|
34
|
+
const whole = BigInt(wholeStr);
|
|
35
|
+
const frac = BigInt(paddedFrac);
|
|
36
|
+
const nano = whole * 1000000000n + frac;
|
|
37
|
+
return negative ? -nano : nano;
|
|
38
|
+
} catch {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function isMatchingDockerUsageUrl(rawUrl) {
|
|
43
|
+
try {
|
|
44
|
+
const parsed = new URL(rawUrl);
|
|
45
|
+
if (parsed.username || parsed.password) return false;
|
|
46
|
+
if (parsed.protocol !== "https:") return false;
|
|
47
|
+
if (parsed.hostname.toLowerCase() !== DOCKER_USAGE_HOST) return false;
|
|
48
|
+
if (parsed.port !== "" && parsed.port !== "443") return false;
|
|
49
|
+
if (parsed.pathname.replace(/\/+$/, "") !== DOCKER_USAGE_PATH) return false;
|
|
50
|
+
return true;
|
|
51
|
+
} catch {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function extractMediumRuntimeRate(text) {
|
|
56
|
+
const lines = text.split(/\r?\n/);
|
|
57
|
+
const matchedRates = [];
|
|
58
|
+
for (const line of lines) {
|
|
59
|
+
if (!/Compute\s*-\s*Medium/i.test(line) || !/Runtime\s+Seconds/i.test(line)) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const parts = line.split(/\t+|\s{2,}/).map((p) => p.trim()).filter(Boolean);
|
|
63
|
+
if (parts.length >= 3) {
|
|
64
|
+
const rawRate = parts[2].replace(/^\$/, "").trim();
|
|
65
|
+
const nano = parseExactDecimalToNanoUsd(rawRate);
|
|
66
|
+
if (nano !== null) {
|
|
67
|
+
matchedRates.push({
|
|
68
|
+
rateUsd: rawRate,
|
|
69
|
+
rateNanoUsd: nano,
|
|
70
|
+
unit: "second"
|
|
71
|
+
});
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const colMatch = line.match(
|
|
76
|
+
/Compute\s*-\s*Medium\s*\|\s*Runtime\s+Seconds[^\d]*[0-9,]+(?:\.[0-9]+)?\s+\$?([0-9]+(?:\.[0-9]+)?)/i
|
|
77
|
+
);
|
|
78
|
+
if (colMatch) {
|
|
79
|
+
const rawRate = colMatch[1];
|
|
80
|
+
const nano = parseExactDecimalToNanoUsd(rawRate);
|
|
81
|
+
if (nano !== null) {
|
|
82
|
+
matchedRates.push({
|
|
83
|
+
rateUsd: rawRate,
|
|
84
|
+
rateNanoUsd: nano,
|
|
85
|
+
unit: "second"
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (matchedRates.length === 0) return void 0;
|
|
91
|
+
if (matchedRates.length > 1) {
|
|
92
|
+
const firstRate = matchedRates[0].rateNanoUsd;
|
|
93
|
+
const allSame = matchedRates.every((r) => r.rateNanoUsd === firstRate);
|
|
94
|
+
if (!allSame) return void 0;
|
|
95
|
+
}
|
|
96
|
+
return matchedRates[0];
|
|
97
|
+
}
|
|
98
|
+
function parseDockerUsageContent(content) {
|
|
99
|
+
if (!isMatchingDockerUsageUrl(content.url)) {
|
|
100
|
+
return {
|
|
101
|
+
error: "URL_MISMATCH",
|
|
102
|
+
message: "Tab URL does not match official Docker usage endpoint."
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
if (content.truncated) {
|
|
106
|
+
return {
|
|
107
|
+
error: "PAGE_TRUNCATED",
|
|
108
|
+
message: "Page observation was truncated; refusal to parse partial billing text."
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
const text = content.text;
|
|
112
|
+
if (/sign\s*in|log\s*in|welcome to docker|create account|docker id to continue/i.test(text) && !/available to spend/i.test(text)) {
|
|
113
|
+
return {
|
|
114
|
+
error: "UNAUTHENTICATED",
|
|
115
|
+
message: "Docker usage page is not authenticated or prompts for login."
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
const poolMatches = [...text.matchAll(/available\s+to\s+spend/gi)];
|
|
119
|
+
if (poolMatches.length === 0) {
|
|
120
|
+
return {
|
|
121
|
+
error: "PARSE_FAILED",
|
|
122
|
+
message: "Missing 'Available to spend' label on usage page."
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
if (poolMatches.length > 1) {
|
|
126
|
+
return {
|
|
127
|
+
error: "AMBIGUOUS_POOL",
|
|
128
|
+
message: "Multiple 'Available to spend' sections detected; refusing ambiguous pool parsing."
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const availMatch = text.match(/Available\s+to\s+spend[^\d$]*\$?\s*([0-9]+\.[0-9]+)/i);
|
|
132
|
+
if (!availMatch) {
|
|
133
|
+
return {
|
|
134
|
+
error: "PARSE_FAILED",
|
|
135
|
+
message: "Could not extract valid currency amount from 'Available to spend'."
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
const availableUsd = availMatch[1];
|
|
139
|
+
const availableNanoUsd = parseExactDecimalToNanoUsd(availableUsd);
|
|
140
|
+
if (availableNanoUsd === null) {
|
|
141
|
+
return {
|
|
142
|
+
error: "PARSE_FAILED",
|
|
143
|
+
message: "Failed to parse available balance decimal or precision exceeds bounds (>9 decimals)."
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
const mediumRate = extractMediumRuntimeRate(text);
|
|
147
|
+
return {
|
|
148
|
+
availableUsd,
|
|
149
|
+
availableNanoUsd,
|
|
150
|
+
mediumRate
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
async function getDockerBrowserQuota(config) {
|
|
154
|
+
const browser = config.browser;
|
|
155
|
+
const resolver = config.testOverrideResolver ?? createChromeConnectorClientResolver();
|
|
156
|
+
const client = config.testOverrideClient ?? resolver(browser);
|
|
157
|
+
let tabsResult;
|
|
158
|
+
try {
|
|
159
|
+
tabsResult = await client.request("list_tabs", {});
|
|
160
|
+
} catch {
|
|
161
|
+
return {
|
|
162
|
+
ok: false,
|
|
163
|
+
code: "CONNECTOR_UNAVAILABLE",
|
|
164
|
+
message: `Failed to communicate with ${browser} connector RPC.`
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
const tabs = Array.isArray(tabsResult?.tabs) ? tabsResult.tabs : [];
|
|
168
|
+
const matchingTabs = tabs.filter((t) => t.url && isMatchingDockerUsageUrl(t.url));
|
|
169
|
+
if (matchingTabs.length === 0) {
|
|
170
|
+
return {
|
|
171
|
+
ok: false,
|
|
172
|
+
code: "USAGE_TAB_NOT_FOUND",
|
|
173
|
+
message: `No open tab found matching ${DOCKER_USAGE_PAGE_URL}. Automatic tab opening is disabled in this phase.`
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
if (matchingTabs.length > 1) {
|
|
177
|
+
return {
|
|
178
|
+
ok: false,
|
|
179
|
+
code: "AMBIGUOUS_TAB",
|
|
180
|
+
message: `Multiple (${matchingTabs.length}) Docker usage tabs open; cannot disambiguate account. Please keep only one usage tab open.`
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
const matchingTab = matchingTabs[0];
|
|
184
|
+
let readResult;
|
|
185
|
+
const tabId = String(matchingTab.id);
|
|
186
|
+
try {
|
|
187
|
+
readResult = await client.request("read_page", { tabId, detail: "compact" });
|
|
188
|
+
} catch {
|
|
189
|
+
return {
|
|
190
|
+
ok: false,
|
|
191
|
+
code: "CONNECTOR_UNAVAILABLE",
|
|
192
|
+
message: `Failed to read page from ${browser} connector tab ${tabId}.`
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
const observation = readResult;
|
|
196
|
+
if (!observation || observation.ok === false) {
|
|
197
|
+
return {
|
|
198
|
+
ok: false,
|
|
199
|
+
code: "PARSE_FAILED",
|
|
200
|
+
message: "Failed to obtain compact page observation."
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
const parsed = parseDockerUsageContent({
|
|
204
|
+
url: String(observation.url || ""),
|
|
205
|
+
text: String(observation.text || ""),
|
|
206
|
+
truncated: Boolean(observation.truncated)
|
|
207
|
+
});
|
|
208
|
+
if ("error" in parsed) {
|
|
209
|
+
return {
|
|
210
|
+
ok: false,
|
|
211
|
+
code: parsed.error,
|
|
212
|
+
message: parsed.message
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
ok: true,
|
|
217
|
+
source: "docker-agentic-platform-browser",
|
|
218
|
+
browser,
|
|
219
|
+
observedAt: Date.now(),
|
|
220
|
+
usageLagWarning: "Docker confirmed compute usage may have up to 24-48h billing lag. observedAt is browser read timestamp, not real-time billing ledger time.",
|
|
221
|
+
availableToSpendUsd: parsed.availableUsd,
|
|
222
|
+
availableToSpendNanoUsd: parsed.availableNanoUsd,
|
|
223
|
+
mediumRuntimeRate: parsed.mediumRate
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// packages/agent-runtime/docker/quotaProvider.ts
|
|
228
|
+
function createDockerQuotaProvider(deps) {
|
|
229
|
+
return async () => {
|
|
230
|
+
try {
|
|
231
|
+
const browser = deps.env.DOCKER_BROWSER_TARGET === "firefox" ? "firefox" : "chrome";
|
|
232
|
+
const result = await getDockerBrowserQuota({ browser });
|
|
233
|
+
if (!result.ok) return { ok: false, reason: result.code || "quota_unverifiable" };
|
|
234
|
+
return {
|
|
235
|
+
ok: true,
|
|
236
|
+
availableNanoUsd: result.availableToSpendNanoUsd,
|
|
237
|
+
rateNanoUsd: result.mediumRuntimeRate?.rateNanoUsd ?? 77780n,
|
|
238
|
+
observedAt: result.observedAt
|
|
239
|
+
};
|
|
240
|
+
} catch {
|
|
241
|
+
return { ok: false, reason: "quota_fetch_failed" };
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
// packages/agent-runtime/docker/accountResolver.ts
|
|
247
|
+
var DockerAccountResolutionError = class extends Error {
|
|
248
|
+
code;
|
|
249
|
+
constructor(code, message) {
|
|
250
|
+
super(message ? `${code}: ${message}` : code);
|
|
251
|
+
this.name = "DockerAccountResolutionError";
|
|
252
|
+
this.code = code;
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
function createEnvQuotaStore(env) {
|
|
256
|
+
const mode = env.DOCKER_QUOTA_STORAGE || "auto";
|
|
257
|
+
if (mode !== "local" && mode !== "remote" && mode !== "auto") {
|
|
258
|
+
throw new DockerAccountResolutionError("docker_quota_storage_invalid");
|
|
259
|
+
}
|
|
260
|
+
const serverUrl = (env.NOLO_SERVER || env.BASE_URL || "").trim();
|
|
261
|
+
const authToken = (env.AUTH_TOKEN || env.AUTH || "").trim();
|
|
262
|
+
if (mode === "remote" && (!serverUrl || !authToken)) {
|
|
263
|
+
throw new DockerAccountResolutionError("docker_quota_remote_not_configured");
|
|
264
|
+
}
|
|
265
|
+
if (mode !== "local" && serverUrl && authToken) {
|
|
266
|
+
throw new DockerAccountResolutionError("docker_quota_remote_store_injection_required");
|
|
267
|
+
}
|
|
268
|
+
return new FileDockerQuotaKvStore(join(env.NOLO_HOME || resolve(homedir(), ".nolo"), "docker-quota.json"));
|
|
269
|
+
}
|
|
270
|
+
function createDockerAccountResolver(deps) {
|
|
271
|
+
const env = deps.env;
|
|
272
|
+
return (binding) => {
|
|
273
|
+
if (!binding?.authorizedOwner || !binding.dockerAccount || !binding.credentialContextId) {
|
|
274
|
+
throw new DockerAccountResolutionError("docker_binding_invalid", "Missing required Docker account binding fields");
|
|
275
|
+
}
|
|
276
|
+
const expected = deps.providerDockerAccount ?? env.DOCKER_ACCOUNT;
|
|
277
|
+
if (expected && expected !== binding.dockerAccount || env.DOCKER_ACCOUNT && env.DOCKER_ACCOUNT !== binding.dockerAccount) {
|
|
278
|
+
throw new DockerAccountResolutionError("docker_quota_account_mismatch");
|
|
279
|
+
}
|
|
280
|
+
const probe = deps.quotaProvider ?? createDockerQuotaProvider({ env });
|
|
281
|
+
return {
|
|
282
|
+
runSbx: deps.runSbx ?? defaultRunSbx,
|
|
283
|
+
kvStore: deps.kvStore ?? createEnvQuotaStore(env),
|
|
284
|
+
quotaProvider: async () => {
|
|
285
|
+
if (env.DOCKER_ACCOUNT && env.DOCKER_ACCOUNT !== binding.dockerAccount) {
|
|
286
|
+
return { ok: false, reason: "docker_quota_account_mismatch" };
|
|
287
|
+
}
|
|
288
|
+
return probe();
|
|
289
|
+
},
|
|
290
|
+
owner: binding.authorizedOwner,
|
|
291
|
+
dockerAccount: binding.dockerAccount,
|
|
292
|
+
maxOutputChars: 4e4,
|
|
293
|
+
maxActiveSandboxesPerAccount: resolveMaxActiveSandboxesFromEnv(env) ?? void 0
|
|
294
|
+
};
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
export {
|
|
298
|
+
DockerAccountResolutionError,
|
|
299
|
+
createDockerAccountResolver
|
|
300
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {
|
|
2
|
+
shareResourceAction
|
|
3
|
+
} from "./chunk-EYWJT7A2.js";
|
|
4
|
+
import "./chunk-QFEW2ULV.js";
|
|
5
|
+
import "./chunk-IJERIUXS.js";
|
|
6
|
+
import "./chunk-6Q7UTJKR.js";
|
|
7
|
+
import "./chunk-QQ56R7KS.js";
|
|
8
|
+
import "./chunk-OW765XBU.js";
|
|
9
|
+
import "./chunk-SEJ5OS6F.js";
|
|
10
|
+
import "./chunk-7DPNBQSV.js";
|
|
11
|
+
import "./chunk-5EMSBTQ6.js";
|
|
12
|
+
import "./chunk-I42VC5KR.js";
|
|
13
|
+
import "./chunk-U6VC4MU4.js";
|
|
14
|
+
import "./chunk-WWC7I6TA.js";
|
|
15
|
+
import "./chunk-3EUW3WEO.js";
|
|
16
|
+
import "./chunk-LCBAMY2M.js";
|
|
17
|
+
import "./chunk-4SN6J65J.js";
|
|
18
|
+
import "./chunk-CF7PE763.js";
|
|
19
|
+
import "./chunk-G3SUCT4W.js";
|
|
20
|
+
import "./chunk-4VNS5WPM.js";
|
|
21
|
+
export {
|
|
22
|
+
shareResourceAction
|
|
23
|
+
};
|
|
@@ -1,27 +1,33 @@
|
|
|
1
1
|
import {
|
|
2
2
|
addContentAction
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EDX5XSJM.js";
|
|
4
4
|
import "./chunk-UAD2WT54.js";
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-74RAWNQN.js";
|
|
6
|
+
import "./chunk-3PVYUPXK.js";
|
|
7
|
+
import "./chunk-A4MW3YZL.js";
|
|
8
|
+
import "./chunk-AIZE5TDM.js";
|
|
9
|
+
import "./chunk-4YRTZIVN.js";
|
|
10
|
+
import "./chunk-UEILX4EV.js";
|
|
11
|
+
import "./chunk-IJERIUXS.js";
|
|
12
|
+
import "./chunk-6Q7UTJKR.js";
|
|
13
|
+
import "./chunk-QQ56R7KS.js";
|
|
14
14
|
import "./chunk-OW765XBU.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-SEJ5OS6F.js";
|
|
16
|
+
import "./chunk-D2MDMY2M.js";
|
|
17
|
+
import "./chunk-7DPNBQSV.js";
|
|
18
|
+
import "./chunk-EZVK3N5L.js";
|
|
18
19
|
import "./chunk-M2EJHDJP.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-5EMSBTQ6.js";
|
|
21
|
+
import "./chunk-I42VC5KR.js";
|
|
20
22
|
import "./chunk-U6VC4MU4.js";
|
|
23
|
+
import "./chunk-WWC7I6TA.js";
|
|
24
|
+
import "./chunk-KUG52IAP.js";
|
|
25
|
+
import "./chunk-3EUW3WEO.js";
|
|
21
26
|
import "./chunk-LCBAMY2M.js";
|
|
22
27
|
import "./chunk-4SN6J65J.js";
|
|
23
28
|
import "./chunk-CF7PE763.js";
|
|
24
29
|
import "./chunk-G3SUCT4W.js";
|
|
30
|
+
import "./chunk-QSJ3HFEF.js";
|
|
25
31
|
import "./chunk-4VNS5WPM.js";
|
|
26
32
|
export {
|
|
27
33
|
addContentAction
|