nolo-cli 0.212.0-alpha.1 → 0.222.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/README.md +3 -2
- package/{_executeModel-KE6MBNUJ.js → _executeModel-4GGQQHOB.js} +111 -82
- package/{accountResolver-4LKIHEKL.js → accountResolver-EK2S4PWF.js} +6 -6
- package/{action-DF5UYSJF.js → action-CK64LS6S.js} +12 -11
- package/{addContentAction-N2YC5IL3.js → addContentAction-GDHDOF4U.js} +18 -17
- package/{addDialogAgentAction-3NKVQCEC.js → addDialogAgentAction-CAKRU3ZT.js} +21 -20
- package/{agentDeleteCommand-NWK7VU4N.js → agentDeleteCommand-BPV2XZL7.js} +128 -119
- package/{agentEmailCommands-UZ4DHEX2.js → agentEmailCommands-EJOS75YL.js} +132 -124
- package/{agentFavoriteCommands-EDK743YA.js → agentFavoriteCommands-2LKGKSUD.js} +7 -8
- package/{agentGrantCommands-RQWK2TEV.js → agentGrantCommands-QQV4N4JW.js} +5 -5
- package/{agentListCommands-HE7L2A6L.js → agentListCommands-HIZODBF3.js} +196 -124
- package/{agentMachineCommands-6TE4MBMP.js → agentMachineCommands-ZMQ2CY7Y.js} +62 -53
- package/{agentProviderCommands-Q5O33MED.js → agentProviderCommands-WKJOAWBP.js} +5 -5
- package/{agentPullCommand-6EM3URVK.js → agentPullCommand-XN6ZPBUW.js} +7 -7
- package/agentRecordCommands-OMXVDLDX.js +176 -0
- package/agentRunCommand-CB34YWMV.js +206 -0
- package/{agentRunControl-OI3LOENH.js → agentRunControl-JNONH3RP.js} +30 -15
- package/{agentRuntimeLocal-HL526DNQ.js → agentRuntimeLocal-QZPFWMLG.js} +52 -45
- package/{agentSlice-TMYP2UEA.js → agentSlice-RD2CDU7T.js} +20 -19
- package/{appDeleteCommands-ZERW4AXY.js → appDeleteCommands-QCCFDIEQ.js} +61 -52
- package/{appDeployCommands-DUWSMYHL.js → appDeployCommands-V2T7TNMQ.js} +61 -52
- package/{appDeployStatusCommands-N2KIE4BF.js → appDeployStatusCommands-6PGH7ZCG.js} +61 -52
- package/{appGetCommands-YVR4NPVY.js → appGetCommands-3L7WWJA6.js} +61 -52
- package/{appListCommands-JS6HOHZS.js → appListCommands-ENJCK4PO.js} +61 -52
- package/{authCommand-FE2C3ZUM.js → authCommand-6V47SYGK.js} +29 -28
- package/{authCommands-HV3EAU3V.js → authCommands-GAJ3NIXO.js} +14 -13
- package/{builtinSkillRegistry-3YOIGEF6.js → builtinSkillRegistry-2ECA42FC.js} +11 -13
- package/{chromeCommands-REEAH4SX.js → chromeCommands-G5UDKVSV.js} +3 -3
- package/{chromeOpsCommands-HEN5AX2J.js → chromeOpsCommands-YKX2QX3A.js} +20 -10
- package/{chunk-DM6UMOEL.js → chunk-27PCUMJI.js} +2 -2
- package/chunk-2CI3ZFWD.js +97 -0
- package/{chunk-HIRC32DV.js → chunk-2GJKRKI6.js} +543 -29
- package/{chunk-SM3NSZJV.js → chunk-2UCBGYO4.js} +20 -1
- package/{chunk-PYRUW7XN.js → chunk-2VUZSVAS.js} +136 -54
- package/chunk-2YGBI2XB.js +30 -0
- package/chunk-2ZKFCIJJ.js +13 -0
- package/{chunk-CJRONOYL.js → chunk-34J5K2YA.js} +19 -75
- package/{chunk-LOEO7LRC.js → chunk-3IK6ILVW.js} +4 -1
- package/{chunk-CTPXME7U.js → chunk-3LMUPOHG.js} +29 -6
- package/chunk-44X52WOJ.js +1621 -0
- package/{chunk-6VLJ6YA7.js → chunk-4DESLZTK.js} +9 -9
- package/{chunk-MYOH447Z.js → chunk-4JVNURX4.js} +1 -1
- package/chunk-5CHGAKRT.js +364 -0
- package/{chunk-YDH3FDFQ.js → chunk-5FUN7EG4.js} +1 -1
- package/{chunk-LKDF3ATR.js → chunk-5RKUPJYL.js} +1 -1
- package/{chunk-ZC3CMUKU.js → chunk-6OVNSQHN.js} +84 -2
- package/{chunk-IF45XG7K.js → chunk-6WU5572L.js} +40 -24
- package/{chunk-OHNELDTO.js → chunk-7EEZJ6BS.js} +11 -152
- package/{chunk-Y6ORVLSS.js → chunk-7ET2U67U.js} +1 -1
- package/{chunk-G7MLNNEX.js → chunk-7JLY4WYF.js} +5 -5
- package/{chunk-P5L7CXOC.js → chunk-7Z6EW7AH.js} +3 -2
- package/{chunk-IIQ6JGRI.js → chunk-AD5EWDFD.js} +2 -2
- package/{chunk-WXYLV624.js → chunk-AIHYNKGV.js} +4 -4
- package/{chunk-HPFCI4SK.js → chunk-AK5O76CC.js} +3 -3
- package/{chunk-Y63ZSOR6.js → chunk-AL3TYDIF.js} +1 -1
- package/{chunk-PJNFNEJE.js → chunk-AMEOV5VZ.js} +59 -13
- package/chunk-AN74ON4G.js +675 -0
- package/{chunk-HRMJUN5J.js → chunk-AQZ6BMRK.js} +1 -1
- package/{chunk-CQ46IRNN.js → chunk-B4GOW4MT.js} +445 -201
- package/{chunk-4KB6WQUL.js → chunk-BGP2EDFG.js} +1 -1
- package/{chunk-NBTY7YJF.js → chunk-BR3GT6MR.js} +1 -0
- package/{chunk-7RFNTILS.js → chunk-BUDVRYES.js} +2 -2
- package/{chunk-D2MDMY2M.js → chunk-BV3FLP2L.js} +47 -1
- package/{chunk-25JZEIXN.js → chunk-C4VAR65S.js} +92 -150
- package/{chunk-AVTVGMDY.js → chunk-C4WTX5TU.js} +2 -2
- package/{chunk-ZL5RAEEB.js → chunk-CIRB724Q.js} +1 -1
- package/{chunk-F6UUQOG6.js → chunk-CKT6QUE2.js} +4 -4
- package/{chunk-M6RL5JCD.js → chunk-CMZ3Z5PT.js} +14 -14
- package/{secretCommands-4QS3HCA2.js → chunk-D726I5AZ.js} +191 -16
- package/{chunk-INSBKSBB.js → chunk-DNKTQ3IN.js} +4 -4
- package/chunk-DVQH4BTR.js +1137 -0
- package/{chunk-SOHTHFV2.js → chunk-DWX2HEVC.js} +91 -132
- package/{chunk-NOMIGOST.js → chunk-EIAI3PPH.js} +116 -124
- package/chunk-EUCFKKDM.js +247 -0
- package/chunk-EWQ3HGNZ.js +90 -0
- package/{chunk-RPQXPZZF.js → chunk-F3GRJO4Z.js} +908 -13
- package/{chunk-GSQNH63I.js → chunk-FIYSMXHY.js} +3 -19
- package/{chunk-KSTEXKL6.js → chunk-FJ23FZXF.js} +76 -31
- package/{chunk-INN4LTAJ.js → chunk-FJK526XH.js} +2 -2
- package/chunk-FS2XP5D7.js +142 -0
- package/{chunk-QT6PKHYJ.js → chunk-FYF2TONJ.js} +5 -5
- package/{chunk-OXME3PEE.js → chunk-GBWGPTA7.js} +2 -1
- package/{chunk-RU4SD66C.js → chunk-GYVCJABP.js} +30 -254
- package/{chunk-YUXQAVRD.js → chunk-HOCHUZQ7.js} +257 -90
- package/{chunk-Y2WUYX4I.js → chunk-HXER7YJF.js} +4 -4
- package/chunk-HYIETXA6.js +99 -0
- package/{chunk-H2TJUNCH.js → chunk-I4EADJ4P.js} +6 -6
- package/{chunk-TCZHTTUU.js → chunk-I7WBYGBP.js} +8 -8
- package/{chunk-5RYBGBQH.js → chunk-IILMY4W4.js} +14 -9
- package/chunk-JA3ICVJY.js +271 -0
- package/{chunk-ZRSNONOB.js → chunk-JWXITTQB.js} +8 -3
- package/{chunk-JNKSDZFS.js → chunk-KEN3N2TN.js} +310 -66
- package/{chunk-LEC5ALIN.js → chunk-KEPOVMF4.js} +1 -1
- package/{chunk-UHJGXRJ4.js → chunk-KQSYAIZR.js} +3 -3
- package/{chunk-4VJAC32I.js → chunk-L5I543VB.js} +3 -2
- package/chunk-LKA64WH4.js +227 -0
- package/{chunk-6OQUPIQF.js → chunk-LVL6GFCM.js} +4 -4
- package/{chunk-UTV2AYEG.js → chunk-MAIITKBT.js} +2 -2
- package/chunk-MBG66ZBH.js +226 -0
- package/{chunk-YUA6OAH5.js → chunk-MDLS23JK.js} +2 -2
- package/{chunk-VL5KOY2C.js → chunk-MK2Q7ZJD.js} +67 -5
- package/{chunk-B7NJ3T4A.js → chunk-MS4NZNKI.js} +10 -10
- package/{chunk-3AKFVZ2I.js → chunk-MYHNBEXD.js} +3 -3
- package/{chunk-VZKUKCA6.js → chunk-MZLE5HQ3.js} +3673 -241
- package/{chunk-AZMYUSVF.js → chunk-N5Z2V73W.js} +1 -1
- package/chunk-NIZ2BXFD.js +526 -0
- package/{chunk-YPD3VJZW.js → chunk-NWP2OYOX.js} +20 -20
- package/{chunk-3FOQHGHN.js → chunk-O6J3OTOP.js} +4 -4
- package/{chunk-3RQVYR4B.js → chunk-OB6DVWPF.js} +197 -65
- package/{chunk-YWSEPJ7C.js → chunk-OBWT45ZU.js} +3 -3
- package/{chunk-5AQR3DGV.js → chunk-ODJ7BVSI.js} +80 -11
- package/{chunk-XJWWBO34.js → chunk-OJKUU3LP.js} +5 -7
- package/{chunk-GNDJKC4B.js → chunk-ON37YXGX.js} +29 -29
- package/{chunk-D5RCRX4A.js → chunk-P5ZJRTCH.js} +9415 -5169
- package/{chunk-6XIE5ZGI.js → chunk-PDCV7P5W.js} +1 -1
- package/{chunk-EZFQ6XRV.js → chunk-PJCIP64Z.js} +861 -59
- package/{chunk-GPO7FCEZ.js → chunk-PJVKMGPZ.js} +1222 -1719
- package/{chunk-CKAHAVMK.js → chunk-PPJYZRSQ.js} +40 -26
- package/chunk-QHEN7NZ7.js +46 -0
- package/{chunk-4KH4J3G5.js → chunk-QNWG52I4.js} +19 -7
- package/{chunk-YGILMZ7N.js → chunk-QVBXJNZ2.js} +1 -1
- package/chunk-RDH5CQ4T.js +1382 -0
- package/{chunk-C6KNNXWU.js → chunk-RGQ4UUWZ.js} +25 -2
- package/{chunk-OWYYDMGJ.js → chunk-S2NTVGA2.js} +4 -2
- package/{chunk-KC4XDTT3.js → chunk-SOF4OWDM.js} +6 -4
- package/{chunk-IAPCBNEE.js → chunk-SQYIK6HO.js} +1 -1
- package/{chunk-22CIEBYO.js → chunk-SVT62ULE.js} +50 -48
- package/{chunk-KIM6CLW5.js → chunk-SY3C4SQ7.js} +42 -15
- package/{chunk-JY5NGFFH.js → chunk-SYTHYBMI.js} +5 -5
- package/{chunk-6NSSLV67.js → chunk-T6DXNI6Z.js} +52 -50
- package/chunk-TLE77UJ5.js +230 -0
- package/{chunk-4VNS5WPM.js → chunk-U67V476Y.js} +1 -8
- package/{chunk-F7CI2ZC5.js → chunk-UAIHKQIA.js} +2 -1
- package/{chunk-MMNYUVLW.js → chunk-UB3D4TRQ.js} +11 -77
- package/{chunk-WPORQFYN.js → chunk-UVLYNWIE.js} +2 -2
- package/{chunk-YOIW77S2.js → chunk-UYOICCYG.js} +29 -19
- package/{chunk-4I7ERB7F.js → chunk-VREDDN25.js} +1 -1
- package/{chunk-JIT6FSXJ.js → chunk-WAE3GFCJ.js} +3 -3
- package/{chunk-IJXYFTV7.js → chunk-WI67URFP.js} +20 -20
- package/{chunk-7OCO4TDT.js → chunk-WJVYAO6P.js} +1 -1
- package/{chunk-T43B7LB2.js → chunk-WKGQSYTB.js} +1 -1
- package/{chunk-YJMRHHGY.js → chunk-WUUH4LWZ.js} +60 -30
- package/{chunk-PDGKOTO7.js → chunk-X7UF53VA.js} +33 -22
- package/{chunk-TY3TIUJK.js → chunk-XI2BWJM5.js} +65 -0
- package/{chunk-OOF4UPC5.js → chunk-XWVCYUUU.js} +16 -159
- package/{chunk-J5JTMQIA.js → chunk-YFLVRVYK.js} +1 -1
- package/{chunk-EYLGAEB4.js → chunk-YGMBIXCF.js} +132 -0
- package/chunk-YL3EFYL3.js +199 -0
- package/{chunk-MMA3LZ3W.js → chunk-YNIYE47Z.js} +1 -1
- package/{chunk-W4S457LU.js → chunk-YU4ZPWVF.js} +41 -5
- package/{chunk-NJR3WKVP.js → chunk-YWWDC3O7.js} +281 -159
- package/chunk-YZMNK53S.js +68 -0
- package/{chunk-FHU44LN3.js → chunk-Z2PITYZN.js} +2179 -552
- package/{chunk-FY7F4Q6X.js → chunk-Z4PCXPUE.js} +2 -2
- package/{cliAgentConfigHelpers-WJBZQTLW.js → cliAgentConfigHelpers-TKYL43MT.js} +15 -16
- package/{cliAuthorityBrokerClient-PM3U6Q6J.js → cliAuthorityBrokerClient-XHH7MH2P.js} +1 -1
- package/{cliAuthorityStoreDriver-TKLXNNTG.js → cliAuthorityStoreDriver-6FE3BJNB.js} +1 -1
- package/{cliEnvHelpers-BVYTMUPJ.js → cliEnvHelpers-VPSJ4XWC.js} +3 -3
- package/{cliExecutor-BWBF2MTI.js → cliExecutor-4MAX3PZL.js} +2 -2
- package/cliLocalAgentRecordReader-MHHD4T7R.js +90 -0
- package/{commandRegistry-VVMTPFAX.js → commandRegistry-5DA5UP7S.js} +106 -98
- package/{contentThunks-N52O67MI.js → contentThunks-5GUQ7FWJ.js} +47 -43
- package/{cooldownCommands-YXLWOXWR.js → cooldownCommands-X7P5M2V5.js} +5 -4
- package/{createAgentAutomationAction-ZC57YRSV.js → createAgentAutomationAction-UCLTHQRI.js} +51 -49
- package/{createDialogAction-VQW5WDYX.js → createDialogAction-UPN774AF.js} +46 -48
- package/{createPageAction-M5VDA7SC.js → createPageAction-JRQ2TA4O.js} +50 -48
- package/{cursorProvider-YGGNMVWX.js → cursorProvider-2RACMEMF.js} +1 -1
- package/{db-HUCI5R4G.js → db-CS4ZJQKV.js} +1 -1
- package/{dbSlice-HP7G4LX3.js → dbSlice-WNON7TOL.js} +17 -16
- package/{deleteFile-7VQGLK2V.js → deleteFile-Q3YDB4ML.js} +9 -9
- package/{desktopFolderProjects-SFY5EZS3.js → desktopFolderProjects-4POAMVJN.js} +2 -2
- package/{dialogCommands-JHMR2N2Y.js → dialogCommands-VRI7VCXH.js} +64 -57
- package/dialogNotifyCommand-6TMCX4D2.js +36 -0
- package/{dialogSlice-GRSVGDTF.js → dialogSlice-LFNVUSAN.js} +42 -40
- package/{dialogUsageCommand-7KCPYGHG.js → dialogUsageCommand-HTVPR2CX.js} +11 -10
- package/{docCreateCommands-F2K3UPSQ.js → docCreateCommands-AMPXMOX3.js} +61 -54
- package/{docDeleteCommands-XGXB5RFT.js → docDeleteCommands-I5WFAEHP.js} +63 -57
- package/{docReadCommands-7HWZZV6J.js → docReadCommands-X53ELNIE.js} +61 -54
- package/{docStore-KNZK6Y2G.js → docStore-2VAWVLWH.js} +21 -20
- package/{docUpdateCommands-OZZ7NQII.js → docUpdateCommands-6QPNDC7M.js} +64 -57
- package/{fetchMessages-M3QU7ZCQ.js → fetchMessages-TQEUZD7H.js} +8 -7
- package/{getPricing-2MNMXEVG.js → getPricing-MB2GBXOK.js} +6 -6
- package/{handleSendMessageAction-SHIH74GJ.js → handleSendMessageAction-AAJOHXOB.js} +193 -301
- package/{hostCredentialCreate-X64WK4JD.js → hostCredentialCreate-GLMJ22M6.js} +123 -114
- package/index.js +29 -29
- package/{keys-BEGDOTRL.js → keys-RWF7UCB4.js} +5 -4
- package/legacyMigration-TF4SYJCZ.js +19 -0
- package/{lib-5KKIBFIT.js → lib-OT5OTXRU.js} +7087 -6664
- package/{localDialogRead-XRLAH4CZ.js → localDialogRead-SVTPA5GY.js} +3 -3
- package/{localFirstLog-DHNOY2NA.js → localFirstLog-OIETGK66.js} +1 -1
- package/localRecall-2J6QPOK2.js +15 -0
- package/{localRuntimeAdapter-A7K3ABA6.js → localRuntimeAdapter-BMP57P42.js} +119 -110
- package/{localRuntimeAuthority-OYH4AE4G.js → localRuntimeAuthority-IBJAT62G.js} +1 -1
- package/{localRuntimeDb-VBIMCWUC.js → localRuntimeDb-N7KHDXS2.js} +2 -2
- package/{machineCommands-DE3MR7CJ.js → machineCommands-3MLIAK5Q.js} +128 -119
- package/{machineInfo-UKPTZO5Y.js → machineInfo-LWHTEBHJ.js} +1 -1
- package/machineWsRunDispatch-FKIGROQF.js +191 -0
- package/{memberThunks-7WJAY5V6.js → memberThunks-ZGLZ36PK.js} +29 -28
- package/{memoryCommands-ASCE5STX.js → memoryCommands-5WC3T66U.js} +4 -4
- package/models-ULVWLSQ6.js +9 -0
- package/{oauthTokenStore-OEERZFUC.js → oauthTokenStore-RUYNYALS.js} +1 -1
- package/{offlineMarxistsAgentCommand-2QTHJCHV.js → offlineMarxistsAgentCommand-4IC3Y4C6.js} +4 -4
- package/overlay-THLKYIWY.js +11 -0
- package/package.json +2 -2
- package/{pdf-U6KSUEZZ.js → pdf-KE3QI2V7.js} +1 -1
- package/{processSpawn-ZU5QFM43.js → processSpawn-6GEO77KV.js} +1 -1
- package/{profileConfig-KN3N2BLF.js → profileConfig-KOWK4HOG.js} +1 -1
- package/{projectArchive-GGL5HLMD.js → projectArchive-HK63GMF4.js} +52 -50
- package/{providerPresetApply-YXGV6NXB.js → providerPresetApply-OIFQ73LH.js} +19 -12
- package/{providerRegistry-S6UL6UNA.js → providerRegistry-KZ3SDZ3D.js} +10 -10
- package/{read-4VZQODSN.js → read-MRQHJMJ2.js} +10 -10
- package/{readDocTool-AVD32RUJ.js → readDocTool-4BGTXTXA.js} +2 -2
- package/{readlineWorkspace-XKYKNL2I.js → readlineWorkspace-AKAHSCNY.js} +6505 -4634
- package/{removeDialogAgentAction-FKL4BYMR.js → removeDialogAgentAction-B6H7DXFM.js} +23 -22
- package/{runAgentClientLoop-V7E2WBVM.js → runAgentClientLoop-UVAWGEON.js} +81 -79
- package/{runtimeDoctorCommands-QAI3MBKQ.js → runtimeDoctorCommands-FW6XKDUG.js} +12 -12
- package/{runtimeModeArgs-2Y7BALTO.js → runtimeModeArgs-X7DL7PUN.js} +1 -1
- package/secretCommands-LJXOOYA7.js +24 -0
- package/{setDialogExtraReferencesAction-TLIOLWWI.js → setDialogExtraReferencesAction-EVCY3TRW.js} +22 -21
- package/{setPrimaryDialogAgentAction-2OLWRFYR.js → setPrimaryDialogAgentAction-KPFVPHCJ.js} +23 -22
- package/{settingThunks-UGBPCNYF.js → settingThunks-ENOAK2WV.js} +97 -88
- package/{skillDiscovery-XKHROSH2.js → skillDiscovery-B5V23AXP.js} +4 -4
- package/{skillSummaryMarker-42HKSXYY.js → skillSummaryMarker-62UW7HI7.js} +1 -1
- package/{slateToRenderMarkdown-Y5IYN73U.js → slateToRenderMarkdown-R3X74MCX.js} +1 -1
- package/{slateUtils-NGV2NMKM.js → slateUtils-ESQAJ6RN.js} +1 -1
- package/{spaceCommands-4KSLKVNF.js → spaceCommands-DTTNAS2L.js} +61 -53
- package/store-JRVN62NM.js +46 -0
- package/{streamAgentChatTurn-7FR7X2NU.js → streamAgentChatTurn-R5UY25VB.js} +875 -618
- package/{switchDialogAgentAction-UZSAG2N5.js → switchDialogAgentAction-SZ44XDRY.js} +21 -20
- package/{tableCommands-MP6VFSVT.js → tableCommands-HITDSLHS.js} +10 -10
- package/tombstones-FQQMEDOW.js +32 -0
- package/{toolApiClient-HGNO53TC.js → toolApiClient-OGQEBQVX.js} +4 -4
- package/{tools-ZLKCC25W.js → tools-HWFG6GMJ.js} +75 -74
- package/tuiSummaryLlmCaller-HQQZAMYF.js +44 -0
- package/{updateCommands-4744PL3P.js → updateCommands-RJVCRSBP.js} +10 -8
- package/{updateDialogTitleAction-U53ZT7PJ.js → updateDialogTitleAction-KNPOAMVS.js} +48 -46
- package/{usageCommand-F4IPVMIZ.js → usageCommand-FWZCB7AM.js} +11 -10
- package/{usageRebuildCommand-HAW2AD5N.js → usageRebuildCommand-SP2BLNJU.js} +12 -11
- package/userDataMerge-HT2ZVHBJ.js +13 -0
- package/{windowsSelfUpdate-XSQVF2GK.js → windowsSelfUpdate-KERHIAB4.js} +3 -3
- package/{workloadLifecycle-4BEQHMSD.js → workloadLifecycle-DYNEYHV5.js} +7 -6
- package/agentRecordCommands-L3QQ7HZ4.js +0 -167
- package/agentRunCommand-2IFGQHCO.js +0 -196
- package/chunk-3CGG2PAL.js +0 -594
- package/chunk-5XBUWM6I.js +0 -89
- package/chunk-BFM34N54.js +0 -842
- package/chunk-CJEIOP3E.js +0 -0
- package/chunk-CZM5YTZ7.js +0 -977
- package/chunk-EYUBHHFB.js +0 -636
- package/chunk-JTDORD5P.js +0 -415
- package/chunk-NRFKLKRU.js +0 -339
- package/chunk-VPAZOH2D.js +0 -115
- package/chunk-WJZOQR2J.js +0 -151
- package/chunk-ZCWRMUWT.js +0 -89
- package/dist-M676ULYG.js +0 -7314
- package/machineWsRunDispatch-R26P5V36.js +0 -182
- package/models-PJBE6JDV.js +0 -9
- package/tuiSummaryLlmCaller-WC54MVGP.js +0 -160
- package/{chunk-WACI5I6V.js → chunk-2THCNKE4.js} +3 -3
- package/{chunk-2QHFH3DR.js → chunk-47ITIXO7.js} +6 -6
- package/{chunk-GOO6G4PY.js → chunk-CKG3PRZ7.js} +0 -0
- package/{chunk-OQHIVPG4.js → chunk-SNBZZPYH.js} +3 -3
- package/{chunk-AETZ7AD6.js → chunk-W6RFEDN4.js} +3 -3
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
require_differenceInMilliseconds,
|
|
4
4
|
require_differenceInMinutes,
|
|
5
5
|
require_roundingMethods
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-Z4PCXPUE.js";
|
|
7
7
|
import {
|
|
8
8
|
normalizeStats,
|
|
9
9
|
require_addMilliseconds,
|
|
@@ -23,27 +23,27 @@ import {
|
|
|
23
23
|
require_startOfUTCWeek,
|
|
24
24
|
require_subMilliseconds,
|
|
25
25
|
require_toInteger
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-BUDVRYES.js";
|
|
27
27
|
import {
|
|
28
28
|
require_formatISO
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-UVLYNWIE.js";
|
|
30
30
|
import {
|
|
31
31
|
require_addLeadingZeros,
|
|
32
32
|
require_interopRequireDefault,
|
|
33
33
|
require_requiredArgs,
|
|
34
34
|
require_toDate,
|
|
35
35
|
require_typeof
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-YNIYE47Z.js";
|
|
37
37
|
import {
|
|
38
38
|
getDefaultCliLocalRuntimeDb
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-N5Z2V73W.js";
|
|
40
40
|
import {
|
|
41
41
|
createTokenStatsKey
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-SYTHYBMI.js";
|
|
43
43
|
import {
|
|
44
44
|
__commonJS,
|
|
45
45
|
__toESM
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-U67V476Y.js";
|
|
47
47
|
|
|
48
48
|
// node_modules/date-fns/addDays/index.js
|
|
49
49
|
var require_addDays = __commonJS({
|
|
@@ -11658,7 +11658,7 @@ async function runUsageCommand(args, deps) {
|
|
|
11658
11658
|
const output = deps.output ?? process.stdout;
|
|
11659
11659
|
const errorOutput = deps.errorOutput ?? process.stderr;
|
|
11660
11660
|
if (args[0] === "rebuild") {
|
|
11661
|
-
const { runUsageRebuildCommand } = await import("./usageRebuildCommand-
|
|
11661
|
+
const { runUsageRebuildCommand } = await import("./usageRebuildCommand-SP2BLNJU.js");
|
|
11662
11662
|
return runUsageRebuildCommand(args.slice(1), deps);
|
|
11663
11663
|
}
|
|
11664
11664
|
if (hasFlag(args, "-h") || hasFlag(args, "--help")) {
|
|
@@ -11729,7 +11729,7 @@ async function runUsageCommand(args, deps) {
|
|
|
11729
11729
|
return 0;
|
|
11730
11730
|
}
|
|
11731
11731
|
async function resolveUsageUserId(env) {
|
|
11732
|
-
const { resolveLocalUserId } = await import("./cliAgentConfigHelpers-
|
|
11732
|
+
const { resolveLocalUserId } = await import("./cliAgentConfigHelpers-TKYL43MT.js");
|
|
11733
11733
|
return resolveLocalUserId(env);
|
|
11734
11734
|
}
|
|
11735
11735
|
function isLocalDbMissingError(error) {
|
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
import {
|
|
2
|
+
authRoutes
|
|
3
|
+
} from "./chunk-M3JEW6N6.js";
|
|
4
|
+
import {
|
|
5
|
+
BUILTIN_DIALOG_LLM_FALLBACK_MODEL,
|
|
6
|
+
BUILTIN_SUMMARY_LLM_CONFIG
|
|
7
|
+
} from "./chunk-523DITKR.js";
|
|
8
|
+
import {
|
|
9
|
+
buildPlatformChatCompletionRequest,
|
|
10
|
+
canUsePlatformChatProvider,
|
|
11
|
+
parsePlatformChatCompletionResponse,
|
|
12
|
+
resolvePlatformChatProviderConfig
|
|
13
|
+
} from "./chunk-QNWG52I4.js";
|
|
14
|
+
import {
|
|
15
|
+
COMPACTION_SUMMARY_SYSTEM_PROMPT,
|
|
16
|
+
classifySummaryError,
|
|
17
|
+
createSummaryBudget,
|
|
18
|
+
isTruncatedCompletion,
|
|
19
|
+
selectSummaryRoute,
|
|
20
|
+
summaryCompletionTokens
|
|
21
|
+
} from "./chunk-RDH5CQ4T.js";
|
|
22
|
+
import {
|
|
23
|
+
isAbortError
|
|
24
|
+
} from "./chunk-7DPNBQSV.js";
|
|
25
|
+
import {
|
|
26
|
+
resolvePlatformAuthToken,
|
|
27
|
+
resolvePlatformServerUrl
|
|
28
|
+
} from "./chunk-I7WBYGBP.js";
|
|
29
|
+
import {
|
|
30
|
+
PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL
|
|
31
|
+
} from "./chunk-CKG3PRZ7.js";
|
|
32
|
+
import {
|
|
33
|
+
parseUserIdFromAuthToken
|
|
34
|
+
} from "./chunk-2THCNKE4.js";
|
|
35
|
+
|
|
36
|
+
// packages/core/accountSession/fetchAccountProfile.ts
|
|
37
|
+
async function fetchAccountProfile(input) {
|
|
38
|
+
const serverUrl = input.serverUrl?.trim();
|
|
39
|
+
const token = input.token?.trim();
|
|
40
|
+
const userId = input.userId?.trim();
|
|
41
|
+
if (!serverUrl || !token || !userId) {
|
|
42
|
+
throw new Error("missing_profile_request_params");
|
|
43
|
+
}
|
|
44
|
+
const path = authRoutes.users.detail.createPath({ userId });
|
|
45
|
+
const fetchImpl = input.fetchImpl ?? ((url, init) => fetch(url, init));
|
|
46
|
+
const response = await fetchImpl(`${serverUrl}${path}`, {
|
|
47
|
+
method: authRoutes.users.detail.method,
|
|
48
|
+
headers: {
|
|
49
|
+
Authorization: `Bearer ${token}`
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
if (!response.ok) {
|
|
53
|
+
const errorText = await response.text().catch(() => "");
|
|
54
|
+
throw new Error(`profile_fetch_failed: ${response.status} ${errorText}`);
|
|
55
|
+
}
|
|
56
|
+
const profileData = await response.json().catch(() => ({}));
|
|
57
|
+
return {
|
|
58
|
+
userId,
|
|
59
|
+
balance: profileData.balance,
|
|
60
|
+
gptProAccess: profileData.gptProAccess,
|
|
61
|
+
adminPermissions: profileData.adminPermissions
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// packages/cli/client/tuiSummaryLlmCaller.ts
|
|
66
|
+
import { randomUUID } from "node:crypto";
|
|
67
|
+
var TUI_SUMMARY_MAX_OUTPUT_TOKENS = 8192;
|
|
68
|
+
function createTuiSummaryLlmCaller(env, options) {
|
|
69
|
+
const fetchImpl = options?.fetchImpl ?? fetch;
|
|
70
|
+
const configuredTimeout = options?.timeoutMs;
|
|
71
|
+
const timeoutMs = typeof configuredTimeout === "number" && Number.isFinite(configuredTimeout) && configuredTimeout > 0 ? Math.min(configuredTimeout, 3e4) : 3e4;
|
|
72
|
+
const resolveProviderConfig = options?.resolveProviderConfig ?? resolvePlatformChatProviderConfig;
|
|
73
|
+
const caller = async (content, callOptions) => {
|
|
74
|
+
if (callOptions?.signal?.aborted) throw new DOMException("Summary cancelled", "AbortError");
|
|
75
|
+
if (!canUsePlatformChatProvider(env)) return null;
|
|
76
|
+
const requestedOutputTokens = callOptions?.maxOutputTokens;
|
|
77
|
+
if (requestedOutputTokens !== void 0 && (!Number.isFinite(requestedOutputTokens) || requestedOutputTokens < 1)) return null;
|
|
78
|
+
const maxOutputTokens = requestedOutputTokens === void 0 ? TUI_SUMMARY_MAX_OUTPUT_TOKENS : Math.min(TUI_SUMMARY_MAX_OUTPUT_TOKENS, Math.floor(requestedOutputTokens));
|
|
79
|
+
const deadlineMs = Math.min(Date.now() + timeoutMs, callOptions?.deadlineMs ?? Infinity);
|
|
80
|
+
const remainingMs = deadlineMs - Date.now();
|
|
81
|
+
if (!(remainingMs > 0)) return null;
|
|
82
|
+
const controller = new AbortController();
|
|
83
|
+
const parentSignal = callOptions?.signal;
|
|
84
|
+
const onAbort = () => controller.abort(parentSignal?.reason);
|
|
85
|
+
parentSignal?.addEventListener("abort", onAbort, { once: true });
|
|
86
|
+
if (parentSignal?.aborted) onAbort();
|
|
87
|
+
const timer = setTimeout(() => controller.abort(new DOMException("Summary deadline exceeded", "TimeoutError")), remainingMs);
|
|
88
|
+
const signal = controller.signal;
|
|
89
|
+
const attemptId = callOptions?.attemptId ?? randomUUID();
|
|
90
|
+
const attempt = async (model, budgetMs) => {
|
|
91
|
+
if (signal.aborted || !(budgetMs > 0)) return null;
|
|
92
|
+
const attemptController = new AbortController();
|
|
93
|
+
const attemptSignal = attemptController.signal;
|
|
94
|
+
const attemptDeadlineMs = Date.now() + budgetMs;
|
|
95
|
+
const onStop = () => attemptController.abort(signal.reason);
|
|
96
|
+
signal.addEventListener("abort", onStop, { once: true });
|
|
97
|
+
if (signal.aborted) onStop();
|
|
98
|
+
const attemptTimer = setTimeout(() => attemptController.abort(
|
|
99
|
+
new DOMException("Summary attempt budget exceeded", "TimeoutError")
|
|
100
|
+
), budgetMs);
|
|
101
|
+
let onAttemptAbort = () => {
|
|
102
|
+
};
|
|
103
|
+
const stopped = new Promise((resolve) => {
|
|
104
|
+
onAttemptAbort = () => resolve(null);
|
|
105
|
+
if (attemptSignal.aborted) resolve(null);
|
|
106
|
+
else attemptSignal.addEventListener("abort", onAttemptAbort, { once: true });
|
|
107
|
+
});
|
|
108
|
+
const isStopped = () => attemptSignal.aborted || Date.now() >= attemptDeadlineMs;
|
|
109
|
+
let stage = "resolve";
|
|
110
|
+
let operationStage = "resolve";
|
|
111
|
+
let errorKind = null;
|
|
112
|
+
let httpStatus = null;
|
|
113
|
+
const startedAt = Date.now();
|
|
114
|
+
const work = async () => {
|
|
115
|
+
try {
|
|
116
|
+
const providerConfig = await resolveProviderConfig({
|
|
117
|
+
agentConfig: { ...BUILTIN_SUMMARY_LLM_CONFIG, model, key: BUILTIN_SUMMARY_LLM_CONFIG.id },
|
|
118
|
+
env,
|
|
119
|
+
apiKeyRefResolver: options?.apiKeyRefResolver,
|
|
120
|
+
credentialBroker: options?.credentialBroker
|
|
121
|
+
});
|
|
122
|
+
if (isStopped()) return null;
|
|
123
|
+
operationStage = "build";
|
|
124
|
+
if (!providerConfig?.authToken) {
|
|
125
|
+
stage = "auth";
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
stage = "build";
|
|
129
|
+
const messages = [
|
|
130
|
+
{ role: "system", content: COMPACTION_SUMMARY_SYSTEM_PROMPT },
|
|
131
|
+
{ role: "user", content }
|
|
132
|
+
];
|
|
133
|
+
const request = buildPlatformChatCompletionRequest({
|
|
134
|
+
providerConfig: {
|
|
135
|
+
...providerConfig,
|
|
136
|
+
requestOptions: { ...providerConfig.requestOptions, max_tokens: maxOutputTokens, reasoning_effort: "low" }
|
|
137
|
+
},
|
|
138
|
+
messages,
|
|
139
|
+
stream: false,
|
|
140
|
+
requestId: attemptId
|
|
141
|
+
});
|
|
142
|
+
stage = "http";
|
|
143
|
+
operationStage = "http";
|
|
144
|
+
if (isStopped()) return null;
|
|
145
|
+
const response = await fetchImpl(request.url, { ...request.init, signal: attemptSignal });
|
|
146
|
+
httpStatus = response.status;
|
|
147
|
+
if (isStopped() || !response.ok) return null;
|
|
148
|
+
stage = "body";
|
|
149
|
+
operationStage = "body";
|
|
150
|
+
let responseText;
|
|
151
|
+
try {
|
|
152
|
+
responseText = await response.text();
|
|
153
|
+
} catch (error) {
|
|
154
|
+
if (isAbortError(error)) throw error;
|
|
155
|
+
errorKind = "body";
|
|
156
|
+
throw new Error("body-read-failed");
|
|
157
|
+
}
|
|
158
|
+
if (isStopped()) return null;
|
|
159
|
+
operationStage = "parse";
|
|
160
|
+
let data;
|
|
161
|
+
try {
|
|
162
|
+
data = JSON.parse(responseText);
|
|
163
|
+
} catch {
|
|
164
|
+
errorKind = "parse";
|
|
165
|
+
throw new Error("response-json-invalid");
|
|
166
|
+
}
|
|
167
|
+
if (isStopped()) return null;
|
|
168
|
+
stage = "parse";
|
|
169
|
+
const parsed = parsePlatformChatCompletionResponse({ providerConfig, data, trace: [] });
|
|
170
|
+
if (isTruncatedCompletion({
|
|
171
|
+
finishReason: parsed.finish_reason,
|
|
172
|
+
responseStatus: data?.status,
|
|
173
|
+
incompleteReason: data?.incomplete_details?.reason,
|
|
174
|
+
truncated: !!data?.incomplete_details
|
|
175
|
+
})) {
|
|
176
|
+
stage = "truncated";
|
|
177
|
+
throw {
|
|
178
|
+
code: "SUMMARY_TRUNCATED",
|
|
179
|
+
stage: "decode",
|
|
180
|
+
finishReason: parsed.finish_reason,
|
|
181
|
+
responseStatus: data?.status,
|
|
182
|
+
incompleteReason: data?.incomplete_details?.reason,
|
|
183
|
+
maxOutputTokens,
|
|
184
|
+
completionTokens: summaryCompletionTokens(parsed.usage),
|
|
185
|
+
outputChars: parsed.content?.length,
|
|
186
|
+
model,
|
|
187
|
+
provider: "nolo",
|
|
188
|
+
attemptId
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
const summary = parsed?.content?.trim() || null;
|
|
192
|
+
stage = summary ? "done" : "empty";
|
|
193
|
+
return summary;
|
|
194
|
+
} catch (error) {
|
|
195
|
+
if (parentSignal?.aborted || isAbortError(error) && !attemptSignal.aborted) {
|
|
196
|
+
throw new DOMException("Summary cancelled", "AbortError");
|
|
197
|
+
}
|
|
198
|
+
if (error?.code === "SUMMARY_TRUNCATED") {
|
|
199
|
+
const safe = classifySummaryError(error);
|
|
200
|
+
throw Object.assign(new Error(safe.message), safe);
|
|
201
|
+
}
|
|
202
|
+
if (errorKind === null) errorKind = operationStage === "resolve" ? "resolve" : operationStage === "http" ? "http" : null;
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
try {
|
|
207
|
+
const result = await Promise.race([work(), stopped]);
|
|
208
|
+
if (parentSignal?.aborted) throw new DOMException("Summary cancelled", "AbortError");
|
|
209
|
+
if (!result) console.warn("[tuiSummary] summary attempt failed", {
|
|
210
|
+
attemptId,
|
|
211
|
+
model,
|
|
212
|
+
stage: parentSignal?.aborted ? "cancelled" : signal.aborted || Date.now() >= deadlineMs ? "deadline" : isStopped() ? "attempt-budget" : stage,
|
|
213
|
+
operationStage,
|
|
214
|
+
elapsedMs: Math.max(0, Date.now() - startedAt),
|
|
215
|
+
...errorKind ? { errorKind } : {},
|
|
216
|
+
...httpStatus !== null ? { httpStatus } : {}
|
|
217
|
+
});
|
|
218
|
+
return result;
|
|
219
|
+
} finally {
|
|
220
|
+
clearTimeout(attemptTimer);
|
|
221
|
+
signal.removeEventListener("abort", onStop);
|
|
222
|
+
attemptSignal.removeEventListener("abort", onAttemptAbort);
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
try {
|
|
226
|
+
const primary = await attempt(options?.platformPrimary ? PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL : BUILTIN_SUMMARY_LLM_CONFIG.model, deadlineMs - Date.now());
|
|
227
|
+
if (options?.platformPrimary) return primary;
|
|
228
|
+
if (primary || signal.aborted || parentSignal?.aborted || Date.now() >= deadlineMs) return primary;
|
|
229
|
+
return await attempt(BUILTIN_DIALOG_LLM_FALLBACK_MODEL, deadlineMs - Date.now());
|
|
230
|
+
} finally {
|
|
231
|
+
clearTimeout(timer);
|
|
232
|
+
parentSignal?.removeEventListener("abort", onAbort);
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
return Object.assign(caller, {
|
|
236
|
+
complete: async (content, callOptions) => {
|
|
237
|
+
const configured = typeof configuredTimeout === "number" && Number.isFinite(configuredTimeout) && configuredTimeout > 0 ? Date.now() + configuredTimeout : Infinity;
|
|
238
|
+
const budget = createSummaryBudget({
|
|
239
|
+
mode: "manual",
|
|
240
|
+
signal: callOptions?.signal,
|
|
241
|
+
deadlineMs: Math.min(callOptions?.deadlineMs ?? Date.now() + 6e4, configured)
|
|
242
|
+
});
|
|
243
|
+
const model = PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL;
|
|
244
|
+
const attemptId = callOptions?.attemptId ?? randomUUID();
|
|
245
|
+
let stage = "resolve";
|
|
246
|
+
let httpStatus;
|
|
247
|
+
try {
|
|
248
|
+
return await budget.run(async ({ signal, deadlineMs }) => {
|
|
249
|
+
if (!canUsePlatformChatProvider(env)) throw { code: "PLATFORM_AUTH_UNAVAILABLE", stage: "auth" };
|
|
250
|
+
const requested = callOptions?.maxOutputTokens;
|
|
251
|
+
if (requested !== void 0 && (!Number.isFinite(requested) || requested < 1)) throw { code: "INVALID_OUTPUT_BUDGET", stage: "build" };
|
|
252
|
+
const providerConfig = await resolveProviderConfig({
|
|
253
|
+
agentConfig: { ...BUILTIN_SUMMARY_LLM_CONFIG, model, key: BUILTIN_SUMMARY_LLM_CONFIG.id },
|
|
254
|
+
env,
|
|
255
|
+
apiKeyRefResolver: options?.apiKeyRefResolver,
|
|
256
|
+
credentialBroker: options?.credentialBroker
|
|
257
|
+
});
|
|
258
|
+
if (signal.aborted) throw signal.reason;
|
|
259
|
+
if (!providerConfig?.authToken) throw { code: "PLATFORM_AUTH_UNAVAILABLE", stage: "auth" };
|
|
260
|
+
stage = "build";
|
|
261
|
+
const request = buildPlatformChatCompletionRequest({
|
|
262
|
+
providerConfig: {
|
|
263
|
+
...providerConfig,
|
|
264
|
+
requestOptions: { ...providerConfig.requestOptions, max_tokens: Math.min(TUI_SUMMARY_MAX_OUTPUT_TOKENS, Math.floor(requested ?? TUI_SUMMARY_MAX_OUTPUT_TOKENS)), reasoning_effort: "low" }
|
|
265
|
+
},
|
|
266
|
+
messages: [{ role: "system", content: COMPACTION_SUMMARY_SYSTEM_PROMPT }, { role: "user", content }],
|
|
267
|
+
stream: false,
|
|
268
|
+
requestId: attemptId
|
|
269
|
+
});
|
|
270
|
+
stage = "http";
|
|
271
|
+
const response = await fetchImpl(request.url, { ...request.init, signal });
|
|
272
|
+
httpStatus = response.status;
|
|
273
|
+
stage = "body";
|
|
274
|
+
const body = await response.text();
|
|
275
|
+
if (!response.ok) {
|
|
276
|
+
let data2;
|
|
277
|
+
try {
|
|
278
|
+
data2 = JSON.parse(body);
|
|
279
|
+
} catch {
|
|
280
|
+
data2 = {};
|
|
281
|
+
}
|
|
282
|
+
throw {
|
|
283
|
+
status: response.status,
|
|
284
|
+
code: data2?.error?.code ?? data2?.code,
|
|
285
|
+
type: data2?.error?.type ?? data2?.type,
|
|
286
|
+
balanceSource: data2?.balanceSource,
|
|
287
|
+
stage: "http"
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
stage = "decode";
|
|
291
|
+
let data;
|
|
292
|
+
try {
|
|
293
|
+
data = JSON.parse(body);
|
|
294
|
+
} catch {
|
|
295
|
+
throw { code: "INVALID_SUMMARY_JSON" };
|
|
296
|
+
}
|
|
297
|
+
const parsed = parsePlatformChatCompletionResponse({ providerConfig, data, trace: [] });
|
|
298
|
+
return {
|
|
299
|
+
text: parsed.content ?? "",
|
|
300
|
+
finishReason: parsed.finish_reason,
|
|
301
|
+
responseStatus: data?.status,
|
|
302
|
+
incompleteReason: data?.incomplete_details?.reason,
|
|
303
|
+
maxOutputTokens: Math.min(TUI_SUMMARY_MAX_OUTPUT_TOKENS, Math.floor(requested ?? TUI_SUMMARY_MAX_OUTPUT_TOKENS)),
|
|
304
|
+
completionTokens: summaryCompletionTokens(parsed.usage),
|
|
305
|
+
truncated: isTruncatedCompletion({ finishReason: parsed.finish_reason, responseStatus: data?.status, incompleteReason: data?.incomplete_details?.reason, truncated: !!data?.incomplete_details })
|
|
306
|
+
};
|
|
307
|
+
});
|
|
308
|
+
} catch (cause) {
|
|
309
|
+
const safe = classifySummaryError(
|
|
310
|
+
budget.signal.aborted ? budget.signal.reason : cause,
|
|
311
|
+
{ model, provider: "nolo", attemptId, stage }
|
|
312
|
+
);
|
|
313
|
+
if (httpStatus !== void 0 && safe.status === void 0) safe.status = httpStatus;
|
|
314
|
+
throw Object.assign(new Error(safe.message), safe, {
|
|
315
|
+
type: safe.errorType,
|
|
316
|
+
name: safe.category === "cancelled" ? "AbortError" : safe.category === "timeout" ? "TimeoutError" : "SummaryError"
|
|
317
|
+
});
|
|
318
|
+
} finally {
|
|
319
|
+
budget.dispose();
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
preferPlatform: async (callOptions) => {
|
|
323
|
+
if (callOptions?.signal?.aborted) throw new DOMException("Summary cancelled", "AbortError");
|
|
324
|
+
if (!options?.platformPrimary || !canUsePlatformChatProvider(env)) return false;
|
|
325
|
+
const token = resolvePlatformAuthToken(env);
|
|
326
|
+
const userId = parseUserIdFromAuthToken(token);
|
|
327
|
+
if (!userId || userId === "local" || userId === "guest") return false;
|
|
328
|
+
const controller = new AbortController();
|
|
329
|
+
const onAbort = () => controller.abort(callOptions?.signal?.reason);
|
|
330
|
+
callOptions?.signal?.addEventListener("abort", onAbort, { once: true });
|
|
331
|
+
if (callOptions?.signal?.aborted) onAbort();
|
|
332
|
+
const budget = Math.min(5e3, (callOptions?.deadlineMs ?? Infinity) - Date.now());
|
|
333
|
+
const timer = setTimeout(() => controller.abort(), Math.max(0, budget));
|
|
334
|
+
try {
|
|
335
|
+
if (!(budget > 0)) throw new DOMException("Summary deadline exceeded", "TimeoutError");
|
|
336
|
+
const profile = await fetchAccountProfile({
|
|
337
|
+
serverUrl: resolvePlatformServerUrl(env),
|
|
338
|
+
token,
|
|
339
|
+
userId,
|
|
340
|
+
fetchImpl: (url, init) => fetchImpl(url, { ...init, signal: controller.signal })
|
|
341
|
+
});
|
|
342
|
+
return selectSummaryRoute({
|
|
343
|
+
userId,
|
|
344
|
+
authenticated: true,
|
|
345
|
+
platformAvailable: !controller.signal.aborted,
|
|
346
|
+
credits: profile.balance
|
|
347
|
+
}).kind === "platform";
|
|
348
|
+
} catch (error) {
|
|
349
|
+
if (callOptions?.signal?.aborted) throw callOptions.signal.reason ?? new DOMException("Summary cancelled", "AbortError");
|
|
350
|
+
if (Date.now() >= (callOptions?.deadlineMs ?? Infinity)) throw new DOMException("Summary deadline exceeded", "TimeoutError");
|
|
351
|
+
if (isAbortError(error) && !controller.signal.aborted) throw new DOMException("Summary cancelled", "AbortError");
|
|
352
|
+
return false;
|
|
353
|
+
} finally {
|
|
354
|
+
clearTimeout(timer);
|
|
355
|
+
callOptions?.signal?.removeEventListener("abort", onAbort);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
export {
|
|
362
|
+
TUI_SUMMARY_MAX_OUTPUT_TOKENS,
|
|
363
|
+
createTuiSummaryLlmCaller
|
|
364
|
+
};
|
|
@@ -311,12 +311,94 @@ async function chromeConnectorUnavailableFunc() {
|
|
|
311
311
|
throw new Error("Browser connector tools are only executable in the Nolo desktop local runtime.");
|
|
312
312
|
}
|
|
313
313
|
|
|
314
|
+
// packages/agent-runtime/toolNameAliases.ts
|
|
315
|
+
var LEGACY_TOOL_NAME_ALIASES = {
|
|
316
|
+
// Nolo Browser Connector: legacy chrome_* → canonical browser_*
|
|
317
|
+
...CHROME_CONNECTOR_LEGACY_TOOL_ALIASES,
|
|
318
|
+
createPage: "createDoc",
|
|
319
|
+
updatePage: "updateDoc",
|
|
320
|
+
update_page: "updateDoc",
|
|
321
|
+
create_page: "createDoc",
|
|
322
|
+
fetchwebpage: "fetchWebpage",
|
|
323
|
+
fetch_webpage: "fetchWebpage",
|
|
324
|
+
"fetch-page": "fetchWebpage",
|
|
325
|
+
exasearch: "exa_search",
|
|
326
|
+
"exa-search": "exa_search",
|
|
327
|
+
exa_search: "exa_search",
|
|
328
|
+
firecrawlscrape: "firecrawl_scrape",
|
|
329
|
+
"firecrawl-scrape": "firecrawl_scrape",
|
|
330
|
+
firecrawl_scrape: "firecrawl_scrape",
|
|
331
|
+
firecrawlsearch: "firecrawl_search",
|
|
332
|
+
"firecrawl-search": "firecrawl_search",
|
|
333
|
+
firecrawl_search: "firecrawl_search",
|
|
334
|
+
readDoc: "readDoc",
|
|
335
|
+
readpage: "readDoc",
|
|
336
|
+
read_page: "readDoc",
|
|
337
|
+
read_doc: "readDoc",
|
|
338
|
+
createdoc: "createDoc",
|
|
339
|
+
updateDocTool: "updateDoc",
|
|
340
|
+
terminalCommand: "execShell",
|
|
341
|
+
terminal_command: "execShell",
|
|
342
|
+
runCommand: "execShell",
|
|
343
|
+
run_command: "execShell",
|
|
344
|
+
runInBash: "execShell",
|
|
345
|
+
run_in_bash: "execShell",
|
|
346
|
+
executeCommand: "execShell",
|
|
347
|
+
execute_command: "execShell",
|
|
348
|
+
// Codex CLI 风格工具名 → nolo 原生工具名
|
|
349
|
+
bash: "execShell",
|
|
350
|
+
shell: "execShell",
|
|
351
|
+
read: "readFile",
|
|
352
|
+
edit: "editFile",
|
|
353
|
+
write: "writeFile",
|
|
354
|
+
glob: "globFiles",
|
|
355
|
+
// 联网搜索别名
|
|
356
|
+
web_search: "exa_search",
|
|
357
|
+
websearch: "exa_search",
|
|
358
|
+
search_web: "exa_search",
|
|
359
|
+
searchweb: "exa_search",
|
|
360
|
+
webfetch: "fetchWebpage",
|
|
361
|
+
web_fetch: "fetchWebpage",
|
|
362
|
+
fetchweb: "fetchWebpage",
|
|
363
|
+
fetch_web: "fetchWebpage",
|
|
364
|
+
// 模型偶尔会把 loadSkill 幻觉成 readSkill(参数风格 name= 一致),
|
|
365
|
+
// 规范化到 loadSkill,避免 localToolPolicy 把这种调用直接拦死。
|
|
366
|
+
readSkill: "loadSkill"
|
|
367
|
+
};
|
|
368
|
+
var normalizeToolName = (name) => name.replace(/[-_]/g, "").toLowerCase();
|
|
369
|
+
var canonicalizeToolName = (rawName) => {
|
|
370
|
+
const trimmedName = rawName.trim();
|
|
371
|
+
if (!trimmedName) return rawName;
|
|
372
|
+
if (LEGACY_TOOL_NAME_ALIASES[trimmedName]) {
|
|
373
|
+
return LEGACY_TOOL_NAME_ALIASES[trimmedName];
|
|
374
|
+
}
|
|
375
|
+
const normalizedRawName = normalizeToolName(trimmedName);
|
|
376
|
+
const matchedAlias = Object.entries(LEGACY_TOOL_NAME_ALIASES).find(
|
|
377
|
+
([alias]) => normalizeToolName(alias) === normalizedRawName
|
|
378
|
+
);
|
|
379
|
+
return matchedAlias?.[1] ?? trimmedName;
|
|
380
|
+
};
|
|
381
|
+
var canonicalizeToolNames = (toolNames) => Array.from(
|
|
382
|
+
new Set(
|
|
383
|
+
toolNames.filter((toolName) => typeof toolName === "string").map(canonicalizeToolName)
|
|
384
|
+
)
|
|
385
|
+
);
|
|
386
|
+
var prioritizeToolNames = (toolNames, preferredToolNames) => {
|
|
387
|
+
const canonicalTools = canonicalizeToolNames(toolNames);
|
|
388
|
+
const preferred = new Set(canonicalizeToolNames(preferredToolNames));
|
|
389
|
+
const prioritized = canonicalTools.filter((toolName) => preferred.has(toolName));
|
|
390
|
+
const remaining = canonicalTools.filter((toolName) => !preferred.has(toolName));
|
|
391
|
+
return [...prioritized, ...remaining];
|
|
392
|
+
};
|
|
393
|
+
|
|
314
394
|
export {
|
|
315
|
-
CHROME_CONNECTOR_LEGACY_TOOL_ALIASES,
|
|
316
395
|
CHROME_CONNECTOR_ACCEPTED_TOOL_NAMES,
|
|
317
396
|
canonicalizeChromeConnectorToolNames,
|
|
318
397
|
getChromeConnectorToolBehavior,
|
|
319
398
|
getChromeConnectorToolDefaultConsent,
|
|
320
399
|
chromeConnectorToolSchemas,
|
|
321
|
-
chromeConnectorUnavailableFunc
|
|
400
|
+
chromeConnectorUnavailableFunc,
|
|
401
|
+
canonicalizeToolName,
|
|
402
|
+
canonicalizeToolNames,
|
|
403
|
+
prioritizeToolNames
|
|
322
404
|
};
|
|
@@ -1,22 +1,38 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildRestorePatch
|
|
3
|
+
} from "./chunk-BV3FLP2L.js";
|
|
4
|
+
import {
|
|
5
|
+
buildLocalAgentLookupKeys,
|
|
6
|
+
shouldReadAgentKeyRemotely
|
|
7
|
+
} from "./chunk-2ZKFCIJJ.js";
|
|
1
8
|
import {
|
|
2
9
|
resolveCliAgentKeyInput
|
|
3
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-BR3GT6MR.js";
|
|
4
11
|
import {
|
|
5
12
|
createHostCredentialBrokerChain,
|
|
6
13
|
createStrictHostCredentialBroker
|
|
7
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-Z2PITYZN.js";
|
|
8
15
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
16
|
+
collectInvalidAgentSkillModes,
|
|
17
|
+
formatInvalidAgentSkillModeMessage,
|
|
18
|
+
formatInvalidAgentSkillModesFieldMessage,
|
|
19
|
+
isAgentSkillModesFieldShapeValid
|
|
20
|
+
} from "./chunk-FS2XP5D7.js";
|
|
12
21
|
import {
|
|
13
22
|
buildAgentApiKeyCredentialRef,
|
|
14
23
|
migrateAgentSecrets
|
|
15
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-47ITIXO7.js";
|
|
16
25
|
import {
|
|
17
26
|
assertCredentialRef,
|
|
18
27
|
createFileCredentialBroker
|
|
19
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-SNBZZPYH.js";
|
|
29
|
+
import {
|
|
30
|
+
createAgentKey
|
|
31
|
+
} from "./chunk-SYTHYBMI.js";
|
|
32
|
+
import {
|
|
33
|
+
readPipeText,
|
|
34
|
+
spawnProcess
|
|
35
|
+
} from "./chunk-4O22PGNQ.js";
|
|
20
36
|
import {
|
|
21
37
|
toErrorMessage
|
|
22
38
|
} from "./chunk-HNMXYYJR.js";
|
|
@@ -26,14 +42,7 @@ import {
|
|
|
26
42
|
resolveAuthToken,
|
|
27
43
|
resolveServerCandidates,
|
|
28
44
|
resolveServerUrl
|
|
29
|
-
} from "./chunk-
|
|
30
|
-
import {
|
|
31
|
-
readPipeText,
|
|
32
|
-
spawnProcess
|
|
33
|
-
} from "./chunk-4O22PGNQ.js";
|
|
34
|
-
import {
|
|
35
|
-
createAgentKey
|
|
36
|
-
} from "./chunk-JY5NGFFH.js";
|
|
45
|
+
} from "./chunk-2THCNKE4.js";
|
|
37
46
|
|
|
38
47
|
// packages/agent-runtime/sessionCredentialBroker.ts
|
|
39
48
|
function createSessionMemoryCredentialBroker() {
|
|
@@ -108,10 +117,6 @@ function normalizeAgentHandle(value) {
|
|
|
108
117
|
return typeof value === "string" && value.trim() ? value.trim().toLowerCase().replace(/\s+/g, " ") : void 0;
|
|
109
118
|
}
|
|
110
119
|
|
|
111
|
-
// packages/cli/client/localAgentRecords.ts
|
|
112
|
-
var buildLocalAgentLookupKeys = buildAgentRuntimeAgentLookupKeys;
|
|
113
|
-
var shouldReadAgentKeyRemotely = shouldFetchAgentRuntimeRecordRemotely;
|
|
114
|
-
|
|
115
120
|
// packages/cli/agentRecordHelpers.ts
|
|
116
121
|
var PROVIDER_COPY_FIELDS = [
|
|
117
122
|
"apiSource",
|
|
@@ -632,7 +637,7 @@ async function bindVaultCredentialToAgent(args) {
|
|
|
632
637
|
const secret = await broker.get(args.vaultId);
|
|
633
638
|
if (!secret) {
|
|
634
639
|
throw new Error(
|
|
635
|
-
`--api-key received a vault credential id (${args.vaultId}) but no secret is stored for it on this device. Re-paste the key in the chat so the runtime can isolate it again
|
|
640
|
+
`--api-key received a vault credential id (${args.vaultId}) but no secret is stored for it on this device. Re-paste the key in the chat so the runtime can isolate it again.`
|
|
636
641
|
);
|
|
637
642
|
}
|
|
638
643
|
return await storeAgentCredential({ agentKey: args.agentKey, secret, broker: args.broker });
|
|
@@ -691,6 +696,16 @@ function parseAgentUpdateArgs(args) {
|
|
|
691
696
|
}
|
|
692
697
|
updates[entry.slice(0, index)] = parseJsonishValue(entry.slice(index + 1));
|
|
693
698
|
}
|
|
699
|
+
if (Object.prototype.hasOwnProperty.call(updates, "skills")) {
|
|
700
|
+
const skillsField = updates.skills;
|
|
701
|
+
if (!isAgentSkillModesFieldShapeValid(skillsField)) {
|
|
702
|
+
throw new Error(formatInvalidAgentSkillModesFieldMessage());
|
|
703
|
+
}
|
|
704
|
+
const invalidModes = collectInvalidAgentSkillModes(skillsField);
|
|
705
|
+
if (invalidModes.length > 0) {
|
|
706
|
+
throw new Error(formatInvalidAgentSkillModeMessage(invalidModes[0]));
|
|
707
|
+
}
|
|
708
|
+
}
|
|
694
709
|
if (Object.keys(updates).length === 0) {
|
|
695
710
|
if (!promptDoc && !copyProviderFrom && !presetId) {
|
|
696
711
|
throw new Error("No updates provided. Use --model / --cli-provider / --api-source / --field key=value.");
|
|
@@ -748,7 +763,7 @@ async function buildCreatedAgentRecord(args) {
|
|
|
748
763
|
const resolvedAgentInput = resolveCliAgentKeyInput(args.parsed.agentInput);
|
|
749
764
|
const agentKey = resolvedAgentInput.startsWith("agent-") ? resolvedAgentInput : createAgentKey.private(userId || "local", resolvedAgentInput);
|
|
750
765
|
if (args.parsed.presetId) {
|
|
751
|
-
const { resolveProviderPresetFields } = await import("./providerPresetApply-
|
|
766
|
+
const { resolveProviderPresetFields } = await import("./providerPresetApply-OIFQ73LH.js");
|
|
752
767
|
const fields = resolveProviderPresetFields(args.parsed.presetId);
|
|
753
768
|
if (fields.kind === "manual") {
|
|
754
769
|
throw new Error(
|
|
@@ -814,13 +829,15 @@ async function buildCreatedAgentRecord(args) {
|
|
|
814
829
|
void 0,
|
|
815
830
|
!args.hostApproval?.gateId
|
|
816
831
|
);
|
|
832
|
+
const now = Date.now();
|
|
817
833
|
const nextRecord = {
|
|
818
834
|
...args.parsed.updates,
|
|
819
835
|
dbKey: agentKey,
|
|
820
836
|
key: agentKey,
|
|
821
837
|
type: "agent" /* AGENT */,
|
|
822
|
-
|
|
823
|
-
|
|
838
|
+
...buildRestorePatch(new Date(now).toISOString()),
|
|
839
|
+
createdAt: now,
|
|
840
|
+
updatedAt: now,
|
|
824
841
|
userId
|
|
825
842
|
};
|
|
826
843
|
return {
|
|
@@ -909,7 +926,6 @@ async function buildUpdatedAgentRecord(args) {
|
|
|
909
926
|
export {
|
|
910
927
|
getSharedSessionCredentialBroker,
|
|
911
928
|
OAUTH_PROVIDER_REFS,
|
|
912
|
-
buildLocalAgentLookupKeys,
|
|
913
929
|
fetchWithTransportFallback,
|
|
914
930
|
readAgentRecord,
|
|
915
931
|
readDbRecord,
|