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
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
require_requiredArgs,
|
|
5
5
|
require_toDate,
|
|
6
6
|
require_typeof
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-YNIYE47Z.js";
|
|
8
8
|
import {
|
|
9
9
|
__commonJS
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-U67V476Y.js";
|
|
11
11
|
|
|
12
12
|
// node_modules/date-fns/isDate/index.js
|
|
13
13
|
var require_isDate = __commonJS({
|
|
@@ -77,11 +77,57 @@ var buildTombstoneRecord = (record, nowIso) => {
|
|
|
77
77
|
updatedAt: nowIso
|
|
78
78
|
};
|
|
79
79
|
};
|
|
80
|
+
var buildRestorePatch = (nowIso) => ({
|
|
81
|
+
deletedAt: null,
|
|
82
|
+
restoredAt: nowIso,
|
|
83
|
+
updatedAt: nowIso
|
|
84
|
+
});
|
|
85
|
+
var COMPACT_TOMBSTONE_FIELDS = [
|
|
86
|
+
"dbKey",
|
|
87
|
+
"id",
|
|
88
|
+
"contentKey",
|
|
89
|
+
"appKey",
|
|
90
|
+
"appId",
|
|
91
|
+
"type",
|
|
92
|
+
"userId",
|
|
93
|
+
"deletedAt",
|
|
94
|
+
"updatedAt",
|
|
95
|
+
"createdAt",
|
|
96
|
+
"created",
|
|
97
|
+
"title",
|
|
98
|
+
"name",
|
|
99
|
+
"displayName",
|
|
100
|
+
"spaceId",
|
|
101
|
+
"serverOrigin"
|
|
102
|
+
];
|
|
103
|
+
var compactTombstoneRecord = (record) => {
|
|
104
|
+
if (!isTombstoneRecord(record)) return record;
|
|
105
|
+
const compacted = {};
|
|
106
|
+
for (const field of COMPACT_TOMBSTONE_FIELDS) {
|
|
107
|
+
if (field in record) compacted[field] = record[field];
|
|
108
|
+
}
|
|
109
|
+
return compacted;
|
|
110
|
+
};
|
|
111
|
+
var shouldCompactTombstoneRecord = (record, nowMs = Date.now(), retentionMs = TOMBSTONE_DETAIL_RETENTION_MS) => {
|
|
112
|
+
if (!isTombstoneRecord(record)) return false;
|
|
113
|
+
const tombstoneTs = getTombstoneTimestamp(record);
|
|
114
|
+
return tombstoneTs > 0 && nowMs - tombstoneTs >= retentionMs;
|
|
115
|
+
};
|
|
116
|
+
var prepareTombstoneRecordForCache = (record, nowMs = Date.now()) => shouldCompactTombstoneRecord(record, nowMs) ? compactTombstoneRecord(record) : record;
|
|
117
|
+
var canPhysicallyPurgeTombstoneRecord = (record, options = {}) => isTombstoneRecord(record) && options.explicitPurge === true;
|
|
80
118
|
|
|
81
119
|
export {
|
|
120
|
+
TOMBSTONE_DETAIL_RETENTION_MS,
|
|
82
121
|
getRecordTimestamp,
|
|
83
122
|
getTombstoneTimestamp,
|
|
123
|
+
getRestoreTimestamp,
|
|
84
124
|
isTombstoneRecord,
|
|
125
|
+
isRestoredAfterTombstone,
|
|
85
126
|
shouldReplaceWithNextRecord,
|
|
86
|
-
buildTombstoneRecord
|
|
127
|
+
buildTombstoneRecord,
|
|
128
|
+
buildRestorePatch,
|
|
129
|
+
compactTombstoneRecord,
|
|
130
|
+
shouldCompactTombstoneRecord,
|
|
131
|
+
prepareTombstoneRecordForCache,
|
|
132
|
+
canPhysicallyPurgeTombstoneRecord
|
|
87
133
|
};
|
|
@@ -6,11 +6,17 @@ import {
|
|
|
6
6
|
publicAgentKey
|
|
7
7
|
} from "./chunk-M2EJHDJP.js";
|
|
8
8
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
dialogIdFromKey,
|
|
10
|
+
isSupportedDialogId,
|
|
11
|
+
parseDialogPathIdentity,
|
|
12
|
+
splitDialogKeyIdentity
|
|
13
|
+
} from "./chunk-YZMNK53S.js";
|
|
11
14
|
import {
|
|
12
15
|
asNonEmptyStringArray
|
|
13
16
|
} from "./chunk-I42VC5KR.js";
|
|
17
|
+
import {
|
|
18
|
+
isRecord
|
|
19
|
+
} from "./chunk-KUG52IAP.js";
|
|
14
20
|
import {
|
|
15
21
|
asOptionalFiniteNumber
|
|
16
22
|
} from "./chunk-WWC7I6TA.js";
|
|
@@ -614,8 +620,6 @@ var CLOSED_OBJECT_SCHEMA_TOOL_NAMES = /* @__PURE__ */ new Set([
|
|
|
614
620
|
"cloud_probe",
|
|
615
621
|
"cloud_exec"
|
|
616
622
|
]);
|
|
617
|
-
var DIALOG_ID_RE = /^[0-9A-HJKMNP-TV-Z]{26}$/i;
|
|
618
|
-
var DIALOG_PATH_RE = /^\/(?:space\/([^/]+)\/)?dialog-(.+)-([0-9A-HJKMNP-TV-Z]{26})\/?$/i;
|
|
619
623
|
function stringToolParam(description) {
|
|
620
624
|
return { type: "string", description };
|
|
621
625
|
}
|
|
@@ -629,6 +633,8 @@ function buildNoloWorkspaceOpenAiTools(args) {
|
|
|
629
633
|
function: {
|
|
630
634
|
name,
|
|
631
635
|
description,
|
|
636
|
+
// Responses otherwise normalizes optional selectors into required fields.
|
|
637
|
+
...name === "loadSkill" ? { strict: false } : {},
|
|
632
638
|
parameters: {
|
|
633
639
|
type: "object",
|
|
634
640
|
properties,
|
|
@@ -677,11 +683,11 @@ function buildNoloWorkspaceOpenAiTools(args) {
|
|
|
677
683
|
description: "Confirmed dialog ids or dbKeys to delete."
|
|
678
684
|
}
|
|
679
685
|
}, ["query"]);
|
|
680
|
-
add("listAgents", "List agents for delegation. Default scope='
|
|
686
|
+
add("listAgents", "List agents for delegation. Default scope='all' returns the user's favorites, owned, OAuth, custom API, and local agents plus the public marketplace; scope='public' discovers shared/marketplace agents only. Public agents may consume platform credits. Copy the agentKey verbatim; use the runnable agentKey exactly and do not infer it from the display name. publicOnly is deprecated compatibility for scope='public'. All agents in the selected scope are listed; cooldown and quota status are advisory annotations, not dispatch gates.", {
|
|
681
687
|
query: stringToolParam("Optional case-insensitive search substring matching agent name, model, provider, handle, or agentKey."),
|
|
682
|
-
scope: { type: "string", enum: ["
|
|
688
|
+
scope: { type: "string", enum: ["all", "public"], description: "Discovery scope; all is the default and includes the public marketplace." },
|
|
683
689
|
publicOnly: { type: "boolean", description: "Deprecated compatibility alias for scope='public'." },
|
|
684
|
-
showUnavailable: { type: "boolean", description: "
|
|
690
|
+
showUnavailable: { type: "boolean", description: "Deprecated no-op. Agents are always listed regardless of cooldown; availability annotations are advisory only." },
|
|
685
691
|
verbose: { type: "boolean", description: "Return full safe-summary details when supported." },
|
|
686
692
|
compact: { type: "boolean", description: "Return compact projection retaining admission evidence while omitting verbose text." },
|
|
687
693
|
limit: { type: "number", description: "Maximum number of agents to return for pagination." },
|
|
@@ -784,33 +790,32 @@ function clampNoloPositiveInteger(value, fallback, max = 500) {
|
|
|
784
790
|
return Math.min(Math.floor(parsed), max);
|
|
785
791
|
}
|
|
786
792
|
function getNoloDialogIdFromKey(dbKey) {
|
|
787
|
-
|
|
788
|
-
return index >= 0 ? dbKey.slice(index + 1) : dbKey;
|
|
793
|
+
return dialogIdFromKey(dbKey);
|
|
789
794
|
}
|
|
790
795
|
function resolveNoloDialogInput(rawInput, userId) {
|
|
791
796
|
const raw = rawInput.trim();
|
|
792
797
|
if (raw.startsWith("http://") || raw.startsWith("https://")) {
|
|
793
798
|
const url = new URL(raw);
|
|
794
|
-
const
|
|
795
|
-
if (!
|
|
796
|
-
const [, spaceId, ownerId, dialogId] = match;
|
|
799
|
+
const identity = parseDialogPathIdentity(url.pathname);
|
|
800
|
+
if (!identity) throw new Error(`Unsupported dialog URL path: ${url.pathname}`);
|
|
797
801
|
return {
|
|
798
|
-
dbKey: `dialog-${ownerId}-${dialogId}`,
|
|
799
|
-
dialogId,
|
|
800
|
-
ownerId,
|
|
801
|
-
spaceId: spaceId
|
|
802
|
+
dbKey: `dialog-${identity.ownerId}-${identity.dialogId}`,
|
|
803
|
+
dialogId: identity.dialogId,
|
|
804
|
+
ownerId: identity.ownerId,
|
|
805
|
+
spaceId: identity.spaceId
|
|
802
806
|
};
|
|
803
807
|
}
|
|
804
808
|
if (raw.startsWith("dialog-")) {
|
|
805
|
-
const
|
|
809
|
+
const identity = splitDialogKeyIdentity(raw);
|
|
810
|
+
if (!identity) throw new Error(`Unsupported dialog key: ${raw}`);
|
|
806
811
|
return {
|
|
807
812
|
dbKey: raw,
|
|
808
|
-
dialogId,
|
|
809
|
-
ownerId:
|
|
813
|
+
dialogId: identity.dialogId,
|
|
814
|
+
ownerId: identity.userId,
|
|
810
815
|
spaceId: null
|
|
811
816
|
};
|
|
812
817
|
}
|
|
813
|
-
if (!
|
|
818
|
+
if (!isSupportedDialogId(raw)) {
|
|
814
819
|
throw new Error(`Unsupported dialog id: ${raw}`);
|
|
815
820
|
}
|
|
816
821
|
return {
|
|
@@ -1060,7 +1065,6 @@ function buildNoloWorkspaceCommandArgs(call) {
|
|
|
1060
1065
|
const scope = noloStringArg(args.scope);
|
|
1061
1066
|
if (scope) cliArgs.push("--scope", scope);
|
|
1062
1067
|
if (args.publicOnly === true) cliArgs.push("--public-only");
|
|
1063
|
-
if (args.showUnavailable === true) cliArgs.push("--show-unavailable");
|
|
1064
1068
|
if (args.verbose === true) cliArgs.push("--verbose");
|
|
1065
1069
|
if (args.compact === true) cliArgs.push("--compact");
|
|
1066
1070
|
const limitVal = args.limit;
|
|
@@ -1149,119 +1153,53 @@ function buildNoloWorkspaceCommandArgs(call) {
|
|
|
1149
1153
|
}
|
|
1150
1154
|
}
|
|
1151
1155
|
|
|
1152
|
-
// packages/agent
|
|
1153
|
-
var
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
const trimmed = raw.trim();
|
|
1165
|
-
if (!trimmed) return fallback;
|
|
1166
|
-
const parsed = Number(trimmed);
|
|
1167
|
-
if (!Number.isFinite(parsed) || parsed <= 0) return fallback;
|
|
1168
|
-
return Math.floor(parsed);
|
|
1156
|
+
// packages/ai/agent/dispatchSelectionPolicy.ts
|
|
1157
|
+
var MODEL_TIERS = [
|
|
1158
|
+
{ tier: "extreme", models: ["GPT-6 Astra", "Claude Opus 5.5"], pattern: /^(?:gpt-6-astra|claude-opus-5[.-]5)(?:$|[-@])/ },
|
|
1159
|
+
{ tier: "complex", models: ["GPT-6.1 Sol", "Gemini 4 Argon", "Claude Fable 5.1", "Claude Sonnet 5.5", "MiMo V2.6 Pro", "Kimi K3", "Gemini 2.5 Pro"], pattern: /^(?:gpt-6[.-]1-sol|gemini-4-argon|claude-fable-5[.-]1|claude-sonnet-5[.-]5|mimo-v2[.-]6-pro|kimi-k3|gemini-2[.-]5-pro)(?:$|[-@])/ },
|
|
1160
|
+
{ tier: "normal", models: ["DeepSeek Flash\uFF08\u5404\u4EE3\uFF09", "LongCat 2.5", "Gemini 3.8 Flash", "GLM 5.3 Flash"], pattern: /^(?:deepseek-(?:[a-z0-9.-]+-)?flash(?:[-@].*)?|longcat-2[.-]5|gemini-3[.-]8-flash|glm-5[.-]3-flash)(?:$|[-@])/ },
|
|
1161
|
+
{ tier: "easy", models: ["MiniMax M3.1 Flash", "GPT-6 Luna"], pattern: /^(?:(?:minimax-)?m3[.-]1-flash|gpt-6-luna)(?:$|[-@])/ }
|
|
1162
|
+
];
|
|
1163
|
+
var MODEL_TIER_GUIDANCE = MODEL_TIERS.map(({ tier, models }) => `${tier}: ${models.join("\u3001")}`).join("\n");
|
|
1164
|
+
function resolveModelTier(model) {
|
|
1165
|
+
if (typeof model !== "string") return "unknown";
|
|
1166
|
+
const id = model.trim().toLowerCase().split("/").at(-1).replace(/\s+/g, "-");
|
|
1167
|
+
return MODEL_TIERS.find(({ pattern }) => pattern.test(id))?.tier ?? "unknown";
|
|
1169
1168
|
}
|
|
1170
|
-
function
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
return
|
|
1175
|
-
maxToolCalls: typeof explicitToolCalls === "number" ? parseSubtaskBudgetLimit(explicitToolCalls, parseSubtaskBudgetLimit(env?.[SUBTASK_MAX_TOOL_CALLS_ENV], DEFAULT_SUBTASK_MAX_TOOL_CALLS)) : parseSubtaskBudgetLimit(env?.[SUBTASK_MAX_TOOL_CALLS_ENV], DEFAULT_SUBTASK_MAX_TOOL_CALLS),
|
|
1176
|
-
maxWallClockMs: typeof explicitWallClock === "number" ? parseSubtaskBudgetLimit(explicitWallClock, parseSubtaskBudgetLimit(env?.[SUBTASK_MAX_WALL_CLOCK_MS_ENV], DEFAULT_SUBTASK_MAX_WALL_CLOCK_MS)) : parseSubtaskBudgetLimit(env?.[SUBTASK_MAX_WALL_CLOCK_MS_ENV], DEFAULT_SUBTASK_MAX_WALL_CLOCK_MS)
|
|
1177
|
-
};
|
|
1169
|
+
function normalizeDispatchDifficulty(value) {
|
|
1170
|
+
if (value === "easy" || value === "\u7B80\u5355") return "easy";
|
|
1171
|
+
if (value === "complex" || value === "\u590D\u6742") return "complex";
|
|
1172
|
+
if (value === "extreme" || value === "\u6781\u7AEF\u590D\u6742" || value === "\u6781\u5176\u590D\u6742") return "extreme";
|
|
1173
|
+
return "normal";
|
|
1178
1174
|
}
|
|
1179
|
-
function
|
|
1180
|
-
|
|
1181
|
-
const
|
|
1182
|
-
|
|
1183
|
-
return Math.min(parentDeadlineAtMs, ownDeadlineAtMs);
|
|
1184
|
-
}
|
|
1185
|
-
return ownDeadlineAtMs;
|
|
1175
|
+
function normalizeSelectionReason(value) {
|
|
1176
|
+
if (typeof value !== "string") return void 0;
|
|
1177
|
+
const trimmed = value.trim();
|
|
1178
|
+
return trimmed.length > 0 ? trimmed : void 0;
|
|
1186
1179
|
}
|
|
1187
|
-
function
|
|
1188
|
-
const
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
const
|
|
1194
|
-
|
|
1195
|
-
parentDeadlineAtMs: args?.parentDeadlineAtMs ?? null,
|
|
1196
|
-
childStartedAtMs,
|
|
1197
|
-
limits
|
|
1198
|
-
});
|
|
1199
|
-
return {
|
|
1200
|
-
// 父截止更早时,子 run 的墙钟额度被压到「距离父截止的剩余时间」。
|
|
1201
|
-
limits: {
|
|
1202
|
-
maxToolCalls: limits.maxToolCalls,
|
|
1203
|
-
maxWallClockMs: Math.max(1, deadlineAtMs - childStartedAtMs)
|
|
1204
|
-
},
|
|
1205
|
-
deadlineAtMs
|
|
1206
|
-
};
|
|
1180
|
+
function checkDispatchSelection(input) {
|
|
1181
|
+
const dimension = input.dimension === "design_frontend" || input.dimension === "writing" ? input.dimension : "general";
|
|
1182
|
+
const difficulty = normalizeDispatchDifficulty(input.difficulty);
|
|
1183
|
+
const modelTier = resolveModelTier(input.model);
|
|
1184
|
+
const status = modelTier === "unknown" ? "unknown" : modelTier === difficulty ? "matched" : "mismatch";
|
|
1185
|
+
const selectionReason = normalizeSelectionReason(input.selectionReason);
|
|
1186
|
+
const message = status === "matched" ? void 0 : status === "unknown" ? "\u6A21\u578B\u6863\u4F4D\u672A\u77E5\uFF1B\u6309\u9886\u57DF\u4E0E\u53EF\u7528\u6027\u5224\u65AD\uFF0C\u4E0D\u963B\u65AD\uFF0C\u5DF2\u542F\u52A8\u52FF\u81EA\u52A8\u91CD\u6D3E\u3002" : selectionReason ? "\u6863\u4F4D\u4E0E\u96BE\u5EA6\u4E0D\u4E00\u81F4\uFF1B\u5DF2\u7ED9\u51FA\u8DE8\u6863\u7406\u7531\uFF0C\u4E0D\u963B\u65AD\uFF0C\u5DF2\u542F\u52A8\u52FF\u81EA\u52A8\u91CD\u6D3E\u3002" : "\u6863\u4F4D\u4E0E\u96BE\u5EA6\u4E0D\u4E00\u81F4\uFF1B\u8DE8\u6863\u6D3E\u53D1\u9700\u5728 selectionReason \u8BF4\u660E\u7406\u7531\u3002";
|
|
1187
|
+
return { dimension, difficulty, modelTier, status, ...message ? { message } : {}, ...selectionReason ? { selectionReason } : {} };
|
|
1207
1188
|
}
|
|
1208
|
-
function
|
|
1209
|
-
const
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
if (toolCallsExecuted >= options.limits.maxToolCalls) {
|
|
1216
|
-
return {
|
|
1217
|
-
limit: "max-tool-calls",
|
|
1218
|
-
limits: options.limits,
|
|
1219
|
-
toolCallsExecuted,
|
|
1220
|
-
elapsedMs: elapsed,
|
|
1221
|
-
atMs: now()
|
|
1222
|
-
};
|
|
1223
|
-
}
|
|
1224
|
-
if (elapsed >= options.limits.maxWallClockMs) {
|
|
1225
|
-
return {
|
|
1226
|
-
limit: "max-wall-clock-ms",
|
|
1227
|
-
limits: options.limits,
|
|
1228
|
-
toolCallsExecuted,
|
|
1229
|
-
elapsedMs: elapsed,
|
|
1230
|
-
atMs: now()
|
|
1231
|
-
};
|
|
1232
|
-
}
|
|
1233
|
-
return null;
|
|
1234
|
-
};
|
|
1235
|
-
return {
|
|
1236
|
-
limits: options.limits,
|
|
1237
|
-
startedAtMs,
|
|
1238
|
-
get toolCallsExecuted() {
|
|
1239
|
-
return toolCallsExecuted;
|
|
1240
|
-
},
|
|
1241
|
-
elapsedMs,
|
|
1242
|
-
remainingToolCalls: () => Math.max(0, options.limits.maxToolCalls - toolCallsExecuted),
|
|
1243
|
-
isExhausted: () => exhaustion() !== null,
|
|
1244
|
-
exhaustion,
|
|
1245
|
-
recordToolCallExecuted: () => {
|
|
1246
|
-
toolCallsExecuted += 1;
|
|
1247
|
-
return toolCallsExecuted;
|
|
1248
|
-
}
|
|
1189
|
+
function checkDispatchSelectionAdmission(input) {
|
|
1190
|
+
const check = checkDispatchSelection(input);
|
|
1191
|
+
if (check.status !== "mismatch" || check.selectionReason) return { ok: true, check };
|
|
1192
|
+
const error = {
|
|
1193
|
+
code: "selection_reason_required",
|
|
1194
|
+
message: `\u8DE8\u6863\u9009\u62E9\u7F3A\u5C11 selectionReason\uFF1A\u6863\u4F4D ${check.modelTier} \u4E0E\u96BE\u5EA6 ${check.difficulty} \u4E0D\u4E00\u81F4\uFF0C\u8BF7\u8865\u5145\u672C\u6B21\u8DE8\u6863\u7684\u5177\u4F53\u7406\u7531\u540E\u518D\u542F\u52A8\u3002`,
|
|
1195
|
+
hint: "\u8865\u4E00\u53E5\u672C\u6B21\u4E3A\u4EC0\u4E48\u8FD9\u6837\u8DE8\u6863\uFF08\u5982\u9886\u57DF\u4F18\u52BF\u3001\u7528\u6237\u660E\u786E\u6307\u5B9A\uFF09\u5373\u53EF\uFF1B\u53EA\u6821\u9A8C\u7406\u7531\u662F\u5426\u5B58\u5728\uFF0C\u4E0D\u4EE3\u8868\u5DF2\u6838\u5B9E\u7528\u6237\u6388\u6743\u3001\u989D\u5EA6/\u8D39\u7528\u6743\u9650\u6216\u7F51\u7EDC\u53EF\u7528\u6027\u3002"
|
|
1249
1196
|
};
|
|
1197
|
+
return { ok: false, check, error };
|
|
1250
1198
|
}
|
|
1251
|
-
function
|
|
1252
|
-
const
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
)} \u79D2\uFF09`;
|
|
1256
|
-
const recent = (args.recentToolNames ?? []).slice(-5);
|
|
1257
|
-
const recentText = recent.length > 0 ? recent.join("\u3001") : "\uFF08\u672C\u8F6E\u65E0\u5DE5\u5177\u8C03\u7528\uFF09";
|
|
1258
|
-
return [
|
|
1259
|
-
`${SUBTASK_BUDGET_EXHAUSTED_MARKER} \u5DF2\u8FBE\u5B50\u4EFB\u52A1\u9884\u7B97\u4E0A\u9650\uFF08${limitLabel}\uFF09\uFF0C\u672C\u6B21\u5B50\u4EFB\u52A1\u5230\u6B64\u4F18\u96C5\u7EC8\u6B62\u3002`,
|
|
1260
|
-
"\u8FD9\u662F\u4E00\u4EFD**\u4E2D\u95F4\u7ED3\u8BBA**\uFF0C\u4E0D\u662F\u5B8C\u6574\u4EA4\u4ED8\uFF0C\u4E5F\u4E0D\u662F\u5931\u8D25\uFF1A\u4E0A\u6587\u4FDD\u7559\u7684\u662F\u672C\u8F6E\u5DF2\u5B8C\u6210\u7684\u9636\u6BB5\u6027\u6210\u679C\uFF0C\u53EF\u76F4\u63A5\u4F5C\u4E3A\u9636\u6BB5\u4EA4\u63A5\u4F7F\u7528\u3002",
|
|
1261
|
-
`\u5F53\u524D\u5B8C\u6210\u5230\u54EA\u4E00\u6B65\uFF1A\u5DF2\u5B8C\u6210 ${args.roundsCompleted} \u8F6E\u6A21\u578B\u5F80\u8FD4\u3001${exhaustion.toolCallsExecuted} \u6B21\u5DE5\u5177\u8C03\u7528\uFF1B\u6700\u8FD1\u5B8C\u6210\u7684\u5DE5\u5177\uFF1A${recentText}\u3002`,
|
|
1262
|
-
"\u5DF2\u5B8C\u6210\u7684\u5DE5\u5177\u7ED3\u679C\u5168\u90E8\u4FDD\u7559\u5728\u672C\u56DE\u5408\u7684 transcript / \u7ED3\u679C\u4E2D\uFF0C\u6CA1\u6709\u4EFB\u4F55\u56DE\u6EDA\u6216\u4E22\u5F03\u3002",
|
|
1263
|
-
"\u5982\u9700\u7EE7\u7EED\u63A8\u8FDB\uFF0C\u8BF7\u7531\u7236\u65B9\u643A\u5E26\u5F53\u524D\u4E2D\u95F4\u7ED3\u8BBA\u91CD\u65B0\u6D3E\u53D1\uFF08\u53EF\u6309\u9700\u8C03\u9AD8\u9884\u7B97\u4E0A\u9650\uFF09\u3002"
|
|
1264
|
-
].join("\n");
|
|
1199
|
+
function assertDispatchSelectionAdmission(input) {
|
|
1200
|
+
const admission = checkDispatchSelectionAdmission(input);
|
|
1201
|
+
if (!admission.ok && admission.error) throw new Error(`${admission.error.message} ${admission.error.hint}`);
|
|
1202
|
+
return admission.check;
|
|
1265
1203
|
}
|
|
1266
1204
|
|
|
1267
1205
|
// packages/ai/agent/agentSelectionPriority.ts
|
|
@@ -1299,31 +1237,36 @@ function compareAgentSelection(left, right) {
|
|
|
1299
1237
|
const rightUpdated = parseAgentTimestamp(right.updatedAt ?? right.createdAt);
|
|
1300
1238
|
return rightUpdated - leftUpdated;
|
|
1301
1239
|
}
|
|
1302
|
-
var AGENT_SELECTION_PRIORITY_INSTRUCTIONS = ` - \u4F18\u5148\u7EA7\u5951\u7EA6\uFF1A\
|
|
1303
|
-
1. \
|
|
1304
|
-
2. \u6210\u672C\u5F52\u5C5E\u8BC6\u522B\uFF1A\u6839\u636E billingSource \u660E\u786E\u5224\u5B9A\uFF08user_subscription\uFF1A\u7528\u6237\u8BA2\u9605/OAuth\uFF1Buser_api\uFF1A\u7528\u6237\u81EA\u5B9A\u4E49 API\uFF1Blocal\uFF1A\u672C\u5730\u8FD0\u884C\uFF1Bowner_subscription\uFF1A\u975E\u81EA\u6709 Agent\uFF0C\u8DD1\u5176 owner \u7684\u8BA2\u9605\u901A\u9053\u2014\u2014\u4F60\u4E0E\u5E73\u53F0\u90FD\u4E0D\u51FA\u94B1\uFF0C\u4E0D\u9002\u7528\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u544A\u77E5/\u6388\u6743\u95E8\uFF0C\u4E5F\u4E0D\u5360\u4F60\u7684\u989D\u5EA6\uFF0C\u53EF\u76F4\u63A5\u4F7F\u7528\uFF1Bplatform_credits\uFF1A\u5E73\u53F0\u79EF\u5206\uFF09\u3002
|
|
1240
|
+
var AGENT_SELECTION_PRIORITY_INSTRUCTIONS = ` - \u4F18\u5148\u7EA7\u5951\u7EA6\uFF1A\u9009\u4EBA\u5951\u7EA6\uFF08listAgents \u9ED8\u8BA4 scope="all"\uFF09\uFF1A
|
|
1241
|
+
1. \u5019\u9009\u53D1\u73B0\uFF1A\u9ED8\u8BA4\u8C03\u7528 listAgents()\uFF08\u9ED8\u8BA4 scope="all"\uFF09\uFF0C\u4E00\u6B21\u626B\u63CF\u8986\u76D6\u6536\u85CF\u3001\u81EA\u6709\u3001OAuth \u8BA2\u9605\u3001\u81EA\u5B9A\u4E49 API\u3001\u672C\u5730\u4E0E\u516C\u5F00 Agent\u3002
|
|
1242
|
+
2. \u6210\u672C\u5F52\u5C5E\u8BC6\u522B\uFF1A\u6839\u636E billingSource \u660E\u786E\u5224\u5B9A\uFF08user_subscription\uFF1A\u7528\u6237\u8BA2\u9605/OAuth\uFF1Buser_api\uFF1A\u7528\u6237\u81EA\u5B9A\u4E49 API\uFF1Blocal\uFF1A\u672C\u5730\u8FD0\u884C\uFF1Bowner_subscription\uFF1A\u975E\u81EA\u6709 Agent\uFF0C\u8DD1\u5176 owner \u7684\u8BA2\u9605\u901A\u9053\u2014\u2014\u4F60\u4E0E\u5E73\u53F0\u90FD\u4E0D\u51FA\u94B1\uFF0C\u4E0D\u9002\u7528\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u544A\u77E5/\u6388\u6743\u95E8\uFF0C\u4E5F\u4E0D\u5360\u4F60\u7684\u989D\u5EA6\uFF0C\u53EF\u76F4\u63A5\u4F7F\u7528\uFF1Bplatform_credits\uFF1A\u5E73\u53F0\u79EF\u5206\uFF0C\u5FC5\u987B\u5148\u53D6\u5F97\u7528\u6237\u660E\u786E\u6263\u8D39\u6388\u6743\u624D\u80FD\u6D3E\u53D1\uFF09\u3002
|
|
1305
1243
|
3. \u4F18\u5148\u7EA7\u6392\u5E8F\uFF08\u4E0E\u5217\u8868\u6392\u5E8F\u771F\u503C\u4E00\u81F4\uFF09\uFF1A
|
|
1306
1244
|
(1) \u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08billingSource="user_subscription"\uFF0F"owner_subscription" \u6216 "user_api"\uFF0CisFavorite=true\uFF1A\u79C1\u6709\u8BA2\u9605/\u51ED\u636E\u4F18\u5148\uFF09
|
|
1307
1245
|
(2) \u5176\u4ED6\u6536\u85CF Agent\uFF08isFavorite=true\uFF09
|
|
1308
1246
|
(3) \u672A\u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08billingSource="user_subscription"\uFF0F"owner_subscription" \u6216 "user_api"\uFF09
|
|
1309
1247
|
(4) \u5176\u4ED6\u81EA\u5EFA Agent\uFF08isOwned=true\uFF09
|
|
1310
1248
|
(5) \u516C\u5F00 / \u5E73\u53F0 Agent\uFF08billingSource="platform_credits" \u6216\u793E\u533A\u516C\u5F00\uFF09
|
|
1311
|
-
\
|
|
1312
|
-
|
|
1313
|
-
4. \u516C\u5F00 Agent \u53D1\u73B0\uFF1A\u4EC5\u5F53 preferred \u5217\u8868\u4E2D\u6CA1\u6709\u9002\u5408\u4E14\u53EF\u7528\u7684\u5019\u9009\uFF0C\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u63A2\u7D22\u516C\u5F00 Agent \u65F6\uFF0C\u624D\u663E\u5F0F\u8C03\u7528 listAgents({ scope: "public" })\u3002\u516C\u5F00 Agent \u53EF\u80FD\u6D88\u8017 platform_credits\uFF0C\u5FC5\u987B\u5728\u83B7\u5F97\u7528\u6237\u660E\u786E\u6263\u8D39\u6388\u6743\u540E\u624D\u80FD\u8C03\u7528\u3002
|
|
1314
|
-
- \u6536\u85CF\u4F18\u5148\u786C\u95E8\uFF08\u8986\u76D6\u9876\u6863\u6210\u672C\u95E8\uFF09\uFF1A\u5F53\u5B58\u5728\u53EF\u7528\u4E14\u9002\u5408\u4EFB\u52A1\u7684\u6536\u85CF user_subscription / user_api / local Agent \u65F6\uFF0C\u7981\u6B62\u6539\u6D3E platform_credits\u3002favorite + platform_credits \u53EA\u8868\u793A\u7528\u6237\u8868\u8FBE\u8FC7\u504F\u597D\u5E76\u56E0\u6B64\u8FDB\u5165 preferred discovery\uFF0C\u4E0D\u4EE3\u8868\u514D\u8D39\u6216\u514D\u6388\u6743\uFF1B\u4F7F\u7528\u5B83\u4ECD\u987B\u9075\u5B88\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u544A\u77E5/\u6388\u6743\u89C4\u5219\u3002\u4F46\u6CE8\u610F\u533A\u5206\uFF1AbillingSource="owner_subscription" \u7684\u6536\u85CF Agent\uFF08\u975E\u81EA\u6709\u3001\u8DD1 owner \u7684\u8BA2\u9605\u901A\u9053\uFF09\u4E0D\u5C5E\u4E8E\u6B64\u5217\u2014\u2014\u5B83\u662F\u53EF\u76F4\u63A5\u4F7F\u7528\u7684\uFF0C\u4E0D\u4EA7\u751F\u4EFB\u4F55\u6263\u8D39\uFF0C\u4E0D\u8981\u5BF9\u5B83\u7D22\u53D6\u6263\u8D39\u6388\u6743\u3001\u4E5F\u4E0D\u8981\u56E0\u6B64\u6539\u6D3E\u5E73\u53F0 Agent\u3002\u6BCF\u6B21 startAgentRun \u90FD\u521B\u5EFA\u72EC\u7ACB\u7684 run/dialog\uFF1B\u5E76\u884C\u6D3E\u53D1\u65F6\u5FC5\u987B\u7528\u5404\u81EA\u7684 runId\uFF0C\u5E76\u7528 batchId \u7BA1\u7406\u6279\u6B21\uFF0C\u907F\u514D\u7F16\u6392\u5C42\u6DF7\u6DC6\u7ED3\u679C\u3002\u4EC5\u5F53\u6536\u85CF Agent \u786E\u8BA4\u4E0D\u53EF\u7528\u540E\u624D\u5141\u8BB8\u6D3E\u5E73\u53F0 Agent\uFF0C\u4E14\u5FC5\u987B\u5F53\u6B21\u544A\u77E5\u7528\u6237\u5C06\u6D88\u8017\u5E73\u53F0\u79EF\u5206\u3002
|
|
1249
|
+
\u6B64\u6392\u5E8F\u662F\u5019\u9009\u4F18\u5148\u7EA7\u5206\u7EC4\uFF08\u4E0D\u662F\u6A21\u578B\u80FD\u529B tier\uFF09\uFF0C\u4E0D\u4EE3\u8868\u300C\u6392\u7B2C\u4E00\u7684\u5C31\u8BE5\u9009\u300D\uFF1B\u7ED3\u5408\u4E0B\u8FF0\u9886\u57DF\u5339\u914D\u3001\u6863\u4F4D\u53C2\u8003\u4E0E\u5F53\u6B21\u53EF\u7528\u6027\u6311\u9009\uFF08reviewer \u89C1\u300Creviewer \u9009\u4EBA\u300D\uFF09\u3002
|
|
1250
|
+
- \u6536\u85CF\u4F18\u5148\u786C\u95E8\uFF08\u8986\u76D6\u9AD8\u590D\u6742\u5EA6\u6863\u6210\u672C\u95E8\uFF09\uFF1A\u5F53\u5B58\u5728\u53EF\u7528\u4E14\u9002\u5408\u4EFB\u52A1\u7684\u6536\u85CF user_subscription / user_api / local Agent \u65F6\uFF0C\u7981\u6B62\u6539\u6D3E platform_credits\u3002favorite + platform_credits \u53EA\u8868\u793A\u7528\u6237\u8868\u8FBE\u8FC7\u504F\u597D\uFF0C\u4E0D\u4EE3\u8868\u514D\u8D39\u6216\u514D\u6388\u6743\uFF1B\u4F7F\u7528\u5B83\u4ECD\u987B\u9075\u5B88\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u544A\u77E5/\u6388\u6743\u89C4\u5219\u3002\u4F46\u6CE8\u610F\u533A\u5206\uFF1AbillingSource="owner_subscription" \u7684\u6536\u85CF Agent\uFF08\u975E\u81EA\u6709\u3001\u8DD1 owner \u7684\u8BA2\u9605\u901A\u9053\uFF09\u4E0D\u5C5E\u4E8E\u6B64\u5217\u2014\u2014\u5B83\u662F\u53EF\u76F4\u63A5\u4F7F\u7528\u7684\uFF0C\u4E0D\u4EA7\u751F\u4EFB\u4F55\u6263\u8D39\uFF0C\u4E0D\u8981\u5BF9\u5B83\u7D22\u53D6\u6263\u8D39\u6388\u6743\u3001\u4E5F\u4E0D\u8981\u56E0\u6B64\u6539\u6D3E\u5E73\u53F0 Agent\u3002\u6BCF\u6B21 startAgentRun \u90FD\u521B\u5EFA\u72EC\u7ACB\u7684 run/dialog\uFF1B\u5E76\u884C\u6D3E\u53D1\u65F6\u5FC5\u987B\u7528\u5404\u81EA\u7684 runId\uFF0C\u5E76\u7528 batchId \u7BA1\u7406\u6279\u6B21\uFF0C\u907F\u514D\u7F16\u6392\u5C42\u6DF7\u6DC6\u7ED3\u679C\u3002\u4EC5\u5F53\u6536\u85CF Agent \u786E\u8BA4\u4E0D\u53EF\u7528\u540E\u624D\u5141\u8BB8\u6D3E\u5E73\u53F0 Agent\uFF0C\u4E14\u5FC5\u987B\u5F53\u6B21\u544A\u77E5\u7528\u6237\u5C06\u6D88\u8017\u5E73\u53F0\u79EF\u5206\u3002
|
|
1315
1251
|
- \u5339\u914D\u53C2\u8003\uFF1A\u6309\u4EFB\u52A1\u6240\u9700\u80FD\u529B\u7B5B tools \u5B57\u6BB5\uFF1B\u540C\u6863\u5019\u9009\u4F18\u5148\u6210\u672C\u4F4E\uFF08\u4F4E inputPrice\uFF09\u6216\u8D70\u7528\u6237\u79C1\u6709\u51ED\u636E\u7684\u901A\u9053\u3002tools \u5B57\u6BB5\u53EA\u53CD\u6620\u989D\u5916\u80FD\u529B\uFF0C\u4E0D\u53CD\u6620 coding \u80FD\u529B\u2014\u2014\u4EE3\u7801\u5DE5\u5177\u7531 host \u81EA\u52A8\u6CE8\u5165\uFF0Ctools=[] \u4E0D\u4EE3\u8868\u4E0D\u80FD\u5199\u4EE3\u7801\uFF0C\u4E0D\u8981\u636E\u6B64\u6392\u9664\u5019\u9009\u3002
|
|
1316
|
-
- reset-aware economics\uFF08\u53EA\u4F5C\u540C\u6863\u3001\u9002\u5408\u3001\u5F53\u524D\u53EF\u7528\u5019\u9009\u4E4B\u95F4\u7684\u7ECF\u6D4E\u504F\u597D\uFF0C\u4E0D\u8986\u76D6\u6536\u85CF\u786C\u95E8\u3001\u80FD\u529B\u5339\u914D\u6216\u53EF\u7528\u6027\uFF09\uFF1AlistAgents \u5DF2\u66B4\u9732 economics\uFF08\u5B98\u65B9\u5CF0\u8C37\u4EF7\u683C/\u914D\u989D\u500D\u7387\uFF09\u548C quota\uFF08\u4E0A\u6E38\u771F\u5B9E remaining/limit/utilization/resetAt \u7A97\u53E3\uFF09\u3002\u5BF9\u4E8E billingSource="user_subscription"\uFF0C\u82E5 quota \u7A97\u53E3\u540C\u65F6\u7ED9\u51FA\u672A\u7528\u989D\u5EA6\u4FE1\u53F7\uFF08remaining/limit \u6216 utilization\uFF09\u4E14 resetAt \u5728\u672A\u6765\uFF0C\u4E14\u8BE5\u7A97\u53E3\u4EE3\u8868\u8BA2\u9605\u989D\u5EA6\u672C\u8EAB\uFF08\u5982 Claude \u8BA2\u9605\u7684 5h/7d \u914D\u989D\u7A97\u53E3\u8FD9\u7C7B\u4E0D\u7528\u5C31\u4F5C\u5E9F\u7684\u5DF2\u4ED8\u989D\u5EA6\uFF09\uFF0C\u800C\u4E0D\u662F\u7EAF\u541E\u5410\u5BB9\u91CF\uFF0C\u5219\u8FD9\u90E8\u5206\u5DF2\u4ED8\u989D\u5EA6\u4F1A\u5728 reset \u540E\u5931\u6548\uFF1B\u5728\u8D28\u91CF/\u80FD\u529B\u90FD\u8DB3\u591F\u65F6\uFF0Creset \u8D8A\u8FD1\u4E14\u672A\u7528\u989D\u5EA6\u8D8A\u591A\uFF0C\u8D8A\u5E94\u4F18\u5148\u6D88\u8017\uFF0C\u907F\u514D\u628A\u5DF2\u4ED8\u6B3E\u989D\u5EA6\u767D\u767D\u8FC7\u671F\u540E\u518D\u53BB\u4EA7\u751F PAYG / platform \u6210\u672C\u3002\u4E0D\u8981\u56E0\u4E3A\u53EA\u6709 resetAt \u5C31\u63A8\u65AD\u201C\u8FD8\u6709\u53EF\u7528\u989D\u5EA6\u201D\uFF0C\u4E5F\u4E0D\u8981\u628A billingSource="user_api" \u7684 requests/tokens rate-limit reset\u3001nextAvailableAt\uFF08429 \u51B7\u5374\u6062\u590D\uFF09\u8BEF\u5F53\u6210\u201C\u5DF2\u4ED8\u989D\u5EA6\u8FC7\u671F\u201D\uFF1B\u5B83\u4EEC\u662F\u5BB9\u91CF/\u53EF\u7528\u6027\u4FE1\u53F7\uFF0C\u4E0D\u662F\u7ECF\u6D4E\u4F18\u60E0\u3002\u901A\u7528 requests/tokens rate-limit \u5BB9\u91CF\u7A97\u53E3\u5373\u4F7F\u51FA\u73B0\u5728 billingSource="user_subscription" \u901A\u9053\u4E0A\uFF0C\u4E5F\u53EA\u662F\u901F\u7387\u5BB9\u91CF\u800C\u975E\u4F1A\u8FC7\u671F\u7684\u5DF2\u4ED8\u8D44\u4EA7\uFF0C\u4E0D\u5F97\u89E6\u53D1\u8BE5\u504F\u597D\uFF1B\u5206\u4E0D\u6E05\u7A97\u53E3\u8BED\u4E49\u65F6\u6309\u5BB9\u91CF\u5904\u7406\uFF0C\u4E0D\u6309\u7ECF\u6D4E\u8D44\u4EA7\u5904\u7406\u3002owner_subscription \u4E0D\u5360\u5F53\u524D\u7528\u6237\u989D\u5EA6\uFF0C\u4ECD\u6309\u201C\u8C03\u7528\u8005\u4E0E\u5E73\u53F0\u96F6\u65B0\u589E\u6210\u672C\u201D\u7406\u89E3\uFF0C\u4F46\u4E0D\u8981\u628A owner \u7684 quota \u5F53\u6210\u5F53\u524D\u7528\u6237\u9700\u8981\u4E3B\u52A8\u70E7\u5B8C\u7684\u8D44\u4EA7\u3002\u82E5 economics \u663E\u793A\u5373\u5C06\u8DE8 peak/off_peak \u6216 quotaMultiplier/priceMultiplier \u5C06\u53D8\u5316\uFF0C\u628A changesAt \u4E0E\u4EFB\u52A1\u9884\u8BA1\u65F6\u957F\u4E00\u8D77\u8003\u8651\uFF1B\u8BC1\u636E\u4E0D\u8DB3\u65F6\u4FDD\u6301 neutral\uFF0C\u4E0D\u731C\u3002
|
|
1252
|
+
- reset-aware economics\uFF08\u53EA\u4F5C\u540C\u6863\u3001\u9002\u5408\u3001\u5F53\u524D\u53EF\u7528\u5019\u9009\u4E4B\u95F4\u7684\u7ECF\u6D4E\u504F\u597D\uFF0C\u4E0D\u8986\u76D6\u6536\u85CF\u786C\u95E8\u3001\u80FD\u529B\u5339\u914D\u6216\u53EF\u7528\u6027\uFF09\uFF1AlistAgents \u5DF2\u66B4\u9732 economics\uFF08\u5B98\u65B9\u5CF0\u8C37\u4EF7\u683C/\u914D\u989D\u500D\u7387\uFF09\u548C quota\uFF08\u4E0A\u6E38\u771F\u5B9E remaining/limit/utilization/resetAt \u7A97\u53E3\uFF09\u3002\u5BF9\u4E8E billingSource="user_subscription"\uFF0C\u82E5 quota \u7A97\u53E3\u540C\u65F6\u7ED9\u51FA\u672A\u7528\u989D\u5EA6\u4FE1\u53F7\uFF08remaining/limit \u6216 utilization\uFF09\u4E14 resetAt \u5728\u672A\u6765\uFF0C\u4E14\u8BE5\u7A97\u53E3\u4EE3\u8868\u8BA2\u9605\u989D\u5EA6\u672C\u8EAB\uFF08\u5982 Claude \u8BA2\u9605\u7684 5h/7d \u914D\u989D\u7A97\u53E3\u8FD9\u7C7B\u4E0D\u7528\u5C31\u4F5C\u5E9F\u7684\u5DF2\u4ED8\u989D\u5EA6\uFF09\uFF0C\u800C\u4E0D\u662F\u7EAF\u541E\u5410\u5BB9\u91CF\uFF0C\u5219\u8FD9\u90E8\u5206\u5DF2\u4ED8\u989D\u5EA6\u4F1A\u5728 reset \u540E\u5931\u6548\uFF1B\u5728\u8D28\u91CF/\u80FD\u529B\u90FD\u8DB3\u591F\u65F6\uFF0Creset \u8D8A\u8FD1\u4E14\u672A\u7528\u989D\u5EA6\u8D8A\u591A\uFF0C\u8D8A\u5E94\u4F18\u5148\u6D88\u8017\uFF0C\u907F\u514D\u628A\u5DF2\u4ED8\u6B3E\u989D\u5EA6\u767D\u767D\u8FC7\u671F\u540E\u518D\u53BB\u4EA7\u751F PAYG / platform \u6210\u672C\u3002\u4ECD\u6709\u6548\u4E14\u9002\u7528\u4E8E\u672C\u6B21\u8BF7\u6C42\u7684\u5F53\u524D\u7A97\u53E3\u82E5 utilization \u8FBE 1 \u6216 remaining \u4E3A 0\uFF0C\u6309\u5F53\u6B21\u4E0D\u53EF\u7528\u5904\u7406\u3001\u76F4\u63A5\u8DF3\u8FC7\u8BE5\u5019\u9009\uFF0C\u4E0D\u5FC5\u5148\u649E\u4E00\u6B21 429 \u6362\u53D6\u5931\u8D25\u8BC1\u636E\uFF1B\u7A97\u53E3\u5DF2\u8FC7 resetAt \u6216\u72B6\u6001\u4E0D\u660E\u65F6\u6309\u53EF\u7528\u6027\u672A\u77E5\u5904\u7406\uFF0C\u5148\u5237\u65B0\u518D\u5224\u65AD\uFF0C\u4E0D\u8981\u636E\u8FC7\u671F\u5FEB\u7167\u8DF3\u8FC7\uFF1B\u4E0D\u8981\u56E0\u4E3A\u53EA\u6709 resetAt \u5C31\u63A8\u65AD\u201C\u8FD8\u6709\u53EF\u7528\u989D\u5EA6\u201D\uFF0C\u4E5F\u4E0D\u8981\u628A billingSource="user_api" \u7684 requests/tokens rate-limit reset\u3001nextAvailableAt\uFF08429 \u51B7\u5374\u6062\u590D\uFF09\u8BEF\u5F53\u6210\u201C\u5DF2\u4ED8\u989D\u5EA6\u8FC7\u671F\u201D\uFF1B\u5B83\u4EEC\u662F\u5BB9\u91CF/\u53EF\u7528\u6027\u4FE1\u53F7\uFF0C\u4E0D\u662F\u7ECF\u6D4E\u4F18\u60E0\u3002\u901A\u7528 requests/tokens rate-limit \u5BB9\u91CF\u7A97\u53E3\u5373\u4F7F\u51FA\u73B0\u5728 billingSource="user_subscription" \u901A\u9053\u4E0A\uFF0C\u4E5F\u53EA\u662F\u901F\u7387\u5BB9\u91CF\u800C\u975E\u4F1A\u8FC7\u671F\u7684\u5DF2\u4ED8\u8D44\u4EA7\uFF0C\u4E0D\u5F97\u89E6\u53D1\u8BE5\u504F\u597D\uFF1B\u5206\u4E0D\u6E05\u7A97\u53E3\u8BED\u4E49\u65F6\u6309\u5BB9\u91CF\u5904\u7406\uFF0C\u4E0D\u6309\u7ECF\u6D4E\u8D44\u4EA7\u5904\u7406\u3002owner_subscription \u4E0D\u5360\u5F53\u524D\u7528\u6237\u989D\u5EA6\uFF0C\u4ECD\u6309\u201C\u8C03\u7528\u8005\u4E0E\u5E73\u53F0\u96F6\u65B0\u589E\u6210\u672C\u201D\u7406\u89E3\uFF0C\u4F46\u4E0D\u8981\u628A owner \u7684 quota \u5F53\u6210\u5F53\u524D\u7528\u6237\u9700\u8981\u4E3B\u52A8\u70E7\u5B8C\u7684\u8D44\u4EA7\u3002\u82E5 economics \u663E\u793A\u5373\u5C06\u8DE8 peak/off_peak \u6216 quotaMultiplier/priceMultiplier \u5C06\u53D8\u5316\uFF0C\u628A changesAt \u4E0E\u4EFB\u52A1\u9884\u8BA1\u65F6\u957F\u4E00\u8D77\u8003\u8651\uFF1B\u8BC1\u636E\u4E0D\u8DB3\u65F6\u4FDD\u6301 neutral\uFF0C\u4E0D\u731C\u3002
|
|
1317
1253
|
- isOwned=true\u3001isOAuth=true \u6216 apiSource="custom" \u7684\u5019\u9009\u6309\u4F18\u5148\u7EA7\u5951\u7EA6\u5904\u7406\u3002
|
|
1318
1254
|
- \u514D\u8BE2\u95EE\u8FB9\u754C\uFF08\u6307\u9488\uFF09\uFF1A\u6392\u5E8F\u5B8C\u6210\u540E\u76F4\u63A5\u6D3E\u53D1\uFF0C\u4E0D\u56E0\u300C\u9009\u8C01/\u80FD\u4E0D\u80FD\u7528\u300D\u5F81\u8BE2\u7528\u6237\uFF1B\u5931\u8D25\u65F6\u53EA\u5728\u514D\u8D39\u5019\u9009\uFF08user_subscription / owner_subscription / user_api / local\uFF09\u4E4B\u95F4**\u9759\u9ED8**\u6362\u4EE3\uFF08\u4E0D\u5F97\u56E0\u6B64\u9759\u9ED8\u6539\u6D3E platform_credits\uFF09\u3002\u8BE2\u95EE\u8FB9\u754C\u89C1\u300C\u4FDD\u62A4\u7528\u6237\u6CE8\u610F\u529B\u300D\u4E00\u6761\u3002\u672C\u6761\u4E0D\u653E\u5BBD\u4EFB\u4F55\u95F8\u95E8\uFF1A\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u786E\u8BA4\u3001429 \u6539\u6D3E\u544A\u77E5\u3001\u65E0\u6CD5\u786E\u8BA4\u8BA1\u8D39\u5F52\u5C5E\u65F6\u6309\u53EF\u80FD\u6263\u8D39\u5148\u95EE\uFF0C\u5168\u90E8\u7167\u65E7\u3002
|
|
1319
|
-
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
\
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
\
|
|
1326
|
-
|
|
1255
|
+
- \u89C4\u5212\u5373\u9009\u4EBA\uFF1A\u8DE8\u6863\u5199\u5177\u4F53 selectionReason\uFF08\u7528\u6237\u6307\u5B9A/\u9886\u57DF\u4F18\u52BF/\u771F\u5B9E\u901A\u9053\u5931\u8D25/\u65E0\u5408\u9002\u5019\u9009\u7B49\uFF09\uFF0C\u53EA\u6821\u9A8C\u7406\u7531\u5B58\u5728\u3001\u4E0D\u4F2A\u79F0\u5DF2\u6838\u5B9E\u4E8B\u5B9E\uFF0C\u4E0D\u987B\u5148\u5236\u9020\u4F4E\u6863\u5931\u8D25\u3002\u8DE8\u6863 selectionReason \u975E\u7A7A\u5373\u53EF\u653E\u884C\uFF0C\u4E0D\u4F5C\u4E3A\u963B\u65AD\u6216\u81EA\u52A8\u53D6\u6D88\u6D3E\u53D1\u7684\u6761\u4EF6\u3002
|
|
1256
|
+
- \u9009\u4EBA\uFF08\u9886\u57DF\u5339\u914D\u4F18\u5148\u4E8E\u6863\u4F4D\uFF0C\u7528\u6237\u53EF\u8986\u76D6\uFF09\uFF1Adimension \u4E3A general\uFF08\u901A\u7528\uFF09/ design_frontend\uFF08\u8BBE\u8BA1\u524D\u7AEF\uFF09/ writing\uFF08\u5199\u4F5C\uFF09\uFF0C\u4E0D\u540C LLM \u5728\u4E0D\u540C\u9886\u57DF\u5404\u6709\u5F3A\u5F31\uFF0C\u4E0D\u662F\u5355\u7EAF\u5927\u5C0F\u6392\u5E8F\u3002\u5F53\u6B21\u7528\u6237\u70B9\u540D > \u7528\u6237\u8BB0\u5FC6\u4E2D\u7684\u5206\u5DE5/\u7981\u5FCC > \u8FD1\u671F\u540C\u7C7B\u4EFB\u52A1\u5931\u8D25\u8BC1\u636E\uFF1B\u660E\u786E\u4E0D\u9002\u914D\u624D\u6392\u9664\uFF0C\u7F3A\u8BC1\u636E\u4E0D\u7B49\u4E8E\u5F31\u3002
|
|
1257
|
+
difficulty \u4EC5 easy\uFF08\u7B80\u5355\uFF09/ normal\uFF08\u6B63\u5E38\uFF09/ complex\uFF08\u590D\u6742\uFF09/ extreme\uFF08\u6781\u5176\u590D\u6742\uFF1B\u6781\u7AEF\u590D\u6742\u540C\u4E49\uFF09\u56DB\u6863\uFF0C\u672A\u77E5\u6216\u672A\u586B\u9ED8\u8BA4 normal\uFF1B\u8FD9\u662F\u4EFB\u52A1\u96BE\u5EA6\uFF0C\u4E0D\u662F\u5019\u9009\u8D44\u683C\u786C\u95E8\u3002
|
|
1258
|
+
\u80FD\u529B\u6863\u6620\u5C04\uFF08\u5171\u4EAB\u4EBA\u5DE5\u6620\u5C04\uFF0C\u552F\u4E00\u771F\u6E90 dispatchSelectionPolicy.ts\uFF09\uFF1A
|
|
1259
|
+
${MODEL_TIER_GUIDANCE}
|
|
1260
|
+
\u56FE\u50CF\u6A21\u578B\u53EA\u7528\u4E8E\u56FE\u50CF\u4EFB\u52A1\uFF0C\u4E0D\u7528\u4E8E\u4EE3\u7801 / \u6587\u672C\u4EFB\u52A1\u3002
|
|
1261
|
+
\u6A21\u578B\u6863\u4F4D\u53EA\u53D6\u5171\u4EAB\u4EBA\u5DE5\u6620\u5C04\uFF1B\u672A\u77E5\u6A21\u578B\u4FDD\u6301 unknown \u4E14\u4ECD\u53EF\u7528\uFF0C\u4E0D\u7531 LLM \u81EA\u5C01\u6863\u4F4D\uFF0C\u4E0D\u9ED8\u8BA4\u9876\u6863\u3001\u4E0D\u5411\u7528\u6237\u7D22\u8981\u5B9A\u6863\u3002
|
|
1262
|
+
\u9886\u57DF\u5177\u4F53\u504F\u597D\uFF1A\u8BBE\u8BA1 / \u524D\u7AEF\uFF1AClaude \u6A21\u578B\u4F18\u5148\uFF0CClaude \u4E4B\u95F4 Opus \u4F18\u4E8E Sonnet\uFF1B\u4E4B\u540E Gemini\uFF0CPro \u4F18\u4E8E Flash\u3002\u5199\u4F5C\uFF1AGemini \u4F18\u5148\u4E8E\u5176\u4ED6\u6A21\u578B\u3002\u5176\u4F59\u6A21\u578B\u5728\u5BF9\u5E94\u7EF4\u5EA6\u672A\u77E5\uFF0C\u4E0D\u63A8\u5B9A\u5B8C\u6574\u6392\u540D\u3002
|
|
1263
|
+
\u9886\u57DF\u504F\u597D\u53EF\u4F5C\u4E3A\u8DE8\u6863\u9009\u62E9\u7406\u7531\uFF0C\u4E0D\u8868\u793A\u4E0D\u80FD\u6362\u6863\uFF1B\u504F\u597D\u4E0D\u8986\u76D6\u771F\u5B9E\u80FD\u529B\u9650\u5236\u3001\u8D39\u7528\u6388\u6743\u3001\u4F5C\u8005\u56DE\u907F\u4E0E\u5F53\u6B21\u53EF\u7528\u6027\uFF0C\u4E0D\u5F97\u56E0\u4E3A\u300C\u8BBE\u8BA1\u4EFB\u52A1\u504F\u597D Opus\u300D\u5C31\u81EA\u52A8\u6D88\u8017\u5E73\u53F0\u79EF\u5206\u3002
|
|
1264
|
+
\u5DE5\u5177\u4EC5\u8FD4\u56DE\u6863\u4F4D\u5DEE\u5F02\u63D0\u9192\u4E14\u7167\u5E38\u542F\u52A8\uFF0C\u4E0D\u5F3A\u5236\u9009\u4EBA\u3001\u4E0D\u81EA\u52A8\u53D6\u6D88\u91CD\u6D3E\uFF1B\u6D3E\u53D1 Agent \u81EA\u884C\u7ED3\u5408\u9886\u57DF\u4F18\u52BF\u3001\u771F\u5B9E\u989D\u5EA6/\u7F51\u7EDC\u4E0E\u5019\u9009\u53EF\u7528\u6027\u3001\u7528\u6237\u6307\u5B9A\u4F5C\u5224\u65AD\u3002\u901F\u5EA6\u89C4\u5219\u7EDF\u4E00\u89C1\u5E38\u9A7B\u300C\u6D3E\u53D1\u9009\u4EBA \xB7 \u53EF\u7528\u6027\u4E0E\u901F\u5EA6\u300D\uFF0C\u4E0D\u5F97\u636E\u901F\u5EA6\u63A8\u5BFC\u6A21\u578B\u6863\u4F4D\u3002
|
|
1265
|
+
- 429 \u9650\u6D41\u4E0E\u77E5\u60C5\u6743\u5951\u7EA6\uFF1A\u4EFB\u4F55\u7528\u6237\u79C1\u6709\u51ED\u636E\u4E0E\u81EA\u5EFA Agent\uFF08billingSource \u4E3A user_subscription / owner_subscription / user_api / local\uFF0C\u6216 isOwned=true\uFF09\u5728 listAgents \u7684 agents[].availabilityStatus \u4E3A rate_limited \u6216 quota_exhausted \u65F6\uFF0C\u7981\u6B62\u9759\u9ED8\u8DF3\u8FC7\uFF1B\u6539\u6D3E\u5E73\u53F0 Agent\uFF08\u6D88\u8017\u5E73\u53F0\u79EF\u5206\uFF09\u524D\u5FC5\u987B\u5728\u56DE\u590D\u4E2D\u544A\u77E5\u7528\u6237\uFF1A\u54EA\u4E2A\u8BA2\u9605/\u81EA\u5EFA agent \u9650\u6D41\u3001\u9884\u8BA1\u4F55\u65F6\u6062\u590D\uFF08nextAvailableAt\uFF09\u3001\u672C\u6B21\u5C06\u6263\u5E73\u53F0\u79EF\u5206\uFF1BavailabilityStatus \u4E0E nextAvailableAt \u4EC5\u662F\u53C2\u8003\u4FE1\u606F\uFF0C\u4E0D\u62E6\u6D3E\u53D1\uFF0C\u4E0D\u5F97\u4EC5\u51ED\u51B7\u5374\u6807\u6CE8\u6392\u9664\u5019\u9009\uFF1B\u7528\u6237\u4ECD\u53EF\u7167\u5E38\u6D3E\u53D1\u5E76\u83B7\u5F97\u4E0A\u6E38\u771F\u5B9E\u7ED3\u679C\u3002`;
|
|
1266
|
+
|
|
1267
|
+
// packages/agent-runtime/agentThread.ts
|
|
1268
|
+
var AGENT_THREAD_ACTIVE_STATUSES = ["pending", "running"];
|
|
1269
|
+
var AGENT_THREAD_TERMINAL_STATUSES = ["done", "failed", "cancelled", "orphaned"];
|
|
1327
1270
|
|
|
1328
1271
|
export {
|
|
1329
1272
|
DEFAULT_READ_DIALOG_MAX_RESPONSE_CHARS,
|
|
@@ -1351,13 +1294,12 @@ export {
|
|
|
1351
1294
|
verifyNoloDialogSubjectRefQuery,
|
|
1352
1295
|
buildNoloTableQueryRequest,
|
|
1353
1296
|
buildNoloWorkspaceCommandArgs,
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
resolveDispatchedSubtaskBudget,
|
|
1357
|
-
createSubtaskBudgetTracker,
|
|
1358
|
-
buildSubtaskBudgetExhaustedContent,
|
|
1297
|
+
resolveModelTier,
|
|
1298
|
+
assertDispatchSelectionAdmission,
|
|
1359
1299
|
compareAgentSelection,
|
|
1360
1300
|
AGENT_SELECTION_PRIORITY_INSTRUCTIONS,
|
|
1361
1301
|
buildAgentRuntimeAgentLookupKeys,
|
|
1362
|
-
shouldFetchAgentRuntimeRecordRemotely
|
|
1302
|
+
shouldFetchAgentRuntimeRecordRemotely,
|
|
1303
|
+
AGENT_THREAD_ACTIVE_STATUSES,
|
|
1304
|
+
AGENT_THREAD_TERMINAL_STATUSES
|
|
1363
1305
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getRuntimeServerContext,
|
|
3
3
|
scheduleDeleteReplication
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2VUZSVAS.js";
|
|
5
5
|
import {
|
|
6
6
|
fetchFromClientDb
|
|
7
7
|
} from "./chunk-AGP3YSEC.js";
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from "./chunk-PXYBUFDB.js";
|
|
11
11
|
import {
|
|
12
12
|
buildTombstoneRecord
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-BV3FLP2L.js";
|
|
14
14
|
|
|
15
15
|
// packages/database/fileStorage.ts
|
|
16
16
|
var DB_NAME = "nolo-file-storage";
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
load
|
|
3
|
-
} from "./chunk-KHCLMKZZ.js";
|
|
4
1
|
import {
|
|
5
2
|
DEFAULT_SKILL_CATALOG_BUDGET,
|
|
6
3
|
applySkillDescriptionBudget,
|
|
@@ -8,7 +5,10 @@ import {
|
|
|
8
5
|
mapDiscoveredSkillsToCatalogEntries,
|
|
9
6
|
resolveSkillCatalog,
|
|
10
7
|
resolveSkillCatalogSync
|
|
11
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-JWXITTQB.js";
|
|
9
|
+
import {
|
|
10
|
+
load
|
|
11
|
+
} from "./chunk-KHCLMKZZ.js";
|
|
12
12
|
|
|
13
13
|
// packages/agent-runtime/skillDiscovery.ts
|
|
14
14
|
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
refreshSubscriptionQuotas
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QVBXJNZ2.js";
|
|
4
4
|
import {
|
|
5
5
|
getReadableCliDb
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import {
|
|
8
|
-
BIGMODEL_PROVIDER_TARGET,
|
|
9
|
-
buildCredentialUseGrant,
|
|
10
|
-
verifyCredentialUseGrant
|
|
11
|
-
} from "./chunk-XFYFMTOM.js";
|
|
6
|
+
} from "./chunk-YFLVRVYK.js";
|
|
12
7
|
import {
|
|
13
8
|
clearCliLocalRuntimePreparedAgentCache
|
|
14
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-P5ZJRTCH.js";
|
|
15
10
|
import {
|
|
16
11
|
readCredentialAvailability
|
|
17
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-FIYSMXHY.js";
|
|
18
13
|
import {
|
|
19
14
|
buildCreatedAgentRecord,
|
|
20
15
|
buildUpdatedAgentRecord,
|
|
@@ -25,17 +20,22 @@ import {
|
|
|
25
20
|
resolveAgentRecordFromHybridStore,
|
|
26
21
|
sanitizeAgentRecordForCliOutput,
|
|
27
22
|
writeAgentRecord
|
|
28
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-6WU5572L.js";
|
|
24
|
+
import {
|
|
25
|
+
BIGMODEL_PROVIDER_TARGET,
|
|
26
|
+
buildCredentialUseGrant,
|
|
27
|
+
verifyCredentialUseGrant
|
|
28
|
+
} from "./chunk-XFYFMTOM.js";
|
|
29
29
|
import {
|
|
30
30
|
resolveCliAgentKeyInput
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-BR3GT6MR.js";
|
|
32
32
|
import {
|
|
33
33
|
toErrorMessage
|
|
34
34
|
} from "./chunk-HNMXYYJR.js";
|
|
35
35
|
import {
|
|
36
36
|
parseUserIdFromAuthToken,
|
|
37
37
|
resolveAuthToken
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-2THCNKE4.js";
|
|
39
39
|
|
|
40
40
|
// packages/cli/agentRecordCommands.ts
|
|
41
41
|
async function runAgentReadCommand(args, deps = {}) {
|
|
@@ -256,7 +256,7 @@ async function runAgentCreateCommand(args, deps = {}) {
|
|
|
256
256
|
let verifyResult;
|
|
257
257
|
if (parsed.verify) {
|
|
258
258
|
try {
|
|
259
|
-
const { verifyCustomProvider } = await import("./agentProviderCommands-
|
|
259
|
+
const { verifyCustomProvider } = await import("./agentProviderCommands-WKJOAWBP.js");
|
|
260
260
|
const rec = built.nextRecord;
|
|
261
261
|
const verifyCredentialRef = typeof rec.credentialRef === "string" && rec.credentialRef.trim() ? rec.credentialRef.trim() : "";
|
|
262
262
|
if (verifyCredentialRef) {
|
|
@@ -395,7 +395,7 @@ async function runAgentCreateCommand(args, deps = {}) {
|
|
|
395
395
|
const OAUTH_REFS = /* @__PURE__ */ new Set(["claude", "chatgpt", "xai", "antigravity", "cloudflare"]);
|
|
396
396
|
if (apiKeyRef && OAUTH_REFS.has(apiKeyRef)) {
|
|
397
397
|
try {
|
|
398
|
-
const { createOAuthTokenStore } = await import("./oauthTokenStore-
|
|
398
|
+
const { createOAuthTokenStore } = await import("./oauthTokenStore-RUYNYALS.js");
|
|
399
399
|
const store = createOAuthTokenStore();
|
|
400
400
|
if (!store.read(apiKeyRef)) {
|
|
401
401
|
authHint = `Subscription "${apiKeyRef}" is not authorized yet. Run \`nolo auth ${apiKeyRef}\` to log in.`;
|