nolo-cli 0.157.0-alpha.1 → 0.157.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{_executeModel-5WS2PA62.js → _executeModel-ZIQHOREX.js} +55 -55
- package/{accountResolver-7RYB4D2P.js → accountResolver-55EDKEIK.js} +1 -1
- package/{action-ZJYUBXFC.js → action-GPPJC5TI.js} +5 -5
- package/{addContentAction-TVHB4526.js → addContentAction-XJQEJ4XW.js} +8 -8
- package/{addDialogAgentAction-FDPBU6K6.js → addDialogAgentAction-5WZX5CAY.js} +7 -7
- package/{agentDeleteCommand-Q6M4F3U6.js → agentDeleteCommand-LQSOJEXY.js} +75 -76
- package/{agentEmailCommands-FNH6FEHS.js → agentEmailCommands-HTPKXONW.js} +78 -79
- package/{agentListCommands-JUNMFS6E.js → agentListCommands-GOCGOQUB.js} +36 -36
- package/{agentMachineCommands-VNLDEKNT.js → agentMachineCommands-T7DAZG77.js} +35 -32
- package/{agentProviderCommands-X2HQE6HY.js → agentProviderCommands-CXBHNONN.js} +5 -5
- package/{agentPullCommand-FA43RBRU.js → agentPullCommand-GXXEDOSA.js} +4 -4
- package/{agentRecordCommands-47XXRVPI.js → agentRecordCommands-HSW3RJ4H.js} +72 -73
- package/{agentRunCommand-QEXFJUXQ.js → agentRunCommand-TIRJ57DK.js} +75 -75
- package/{agentRunControl-2C5GM3BW.js → agentRunControl-QWFFIAQY.js} +9 -7
- package/{agentRuntimeLocal-O5GDAFTN.js → agentRuntimeLocal-J6I63NZC.js} +21 -19
- package/{agentSlice-E3XS5FTQ.js → agentSlice-JNM3HF3V.js} +8 -8
- package/{appDeleteCommands-C2J5RQ3I.js → appDeleteCommands-KKLAK2UR.js} +31 -29
- package/{appDeployCommands-3YRK7PSU.js → appDeployCommands-PXWK4FAX.js} +31 -29
- package/{appDeployStatusCommands-FPAX7MOK.js → appDeployStatusCommands-3NGWDZTX.js} +31 -29
- package/{appGetCommands-XAC2V766.js → appGetCommands-APWYPEO3.js} +31 -29
- package/{appListCommands-ZJL2W5O7.js → appListCommands-OP7IRALO.js} +31 -29
- package/{authCommand-J3XILHWW.js → authCommand-3Z52KJID.js} +22 -302
- package/{authCommands-77CHYBGF.js → authCommands-QOCKVPX3.js} +5 -5
- package/{builtinSkillRegistry-A6VSPJEJ.js → builtinSkillRegistry-LJV7FHNI.js} +4 -4
- package/{chromeCommands-OBBNJCLS.js → chromeCommands-IY4NVSXZ.js} +17 -10
- package/{chunk-SW4S4XYB.js → chunk-2AB2HA4M.js} +84 -34
- package/{chunk-C5VPAHIU.js → chunk-32ZKZET7.js} +1 -1
- package/{chunk-XPWGOTBQ.js → chunk-3L2WKC3W.js} +1 -8
- package/{chunk-3XZKV7QQ.js → chunk-3L5MSPWX.js} +1 -1
- package/{chunk-QLQ573SU.js → chunk-3M52COK5.js} +120 -0
- package/{chunk-VSOWPETY.js → chunk-4226O6F7.js} +10 -10
- package/{chunk-Z6KQDSZW.js → chunk-43OFVLWJ.js} +6 -6
- package/{chunk-TJ2VPCBE.js → chunk-4JCAW7TO.js} +2 -2
- package/{chunk-6TF64IF2.js → chunk-4L4K6YR7.js} +16 -2
- package/{chunk-PEO24UB5.js → chunk-5E5VB7PS.js} +324 -57
- package/{chunk-ZD2BLOY6.js → chunk-5EDQTOUR.js} +7 -7
- package/{chunk-HKT6QXP3.js → chunk-5IKRTRRR.js} +5 -5
- package/{chunk-P5QACQDK.js → chunk-62TBKWTV.js} +1 -1
- package/{chunk-TRW43TSC.js → chunk-6EQD4AQL.js} +41 -1
- package/{chunk-YLMMECCH.js → chunk-6XIE5ZGI.js} +1 -1
- package/{chunk-OH2M7WEU.js → chunk-6Y3ETA2Y.js} +3 -3
- package/{chunk-7A4LJCDR.js → chunk-B3ZIFOFI.js} +5 -5
- package/{chunk-WZ6OU4NX.js → chunk-BAWAKW7X.js} +2 -2
- package/{chunk-UUPR3TD7.js → chunk-BL4HFN6L.js} +2 -4
- package/{chunk-2GGXHQIW.js → chunk-BLVSFYQ3.js} +4 -2
- package/{chunk-HP6O6LTV.js → chunk-CDLP56BS.js} +9 -9
- package/{chunk-UTIMX333.js → chunk-DJ2BOPJY.js} +1 -1
- package/{chunk-36OMEXXR.js → chunk-DLV3H464.js} +8 -8
- package/{chunk-CE7PIHQD.js → chunk-ESMZW5PE.js} +3 -3
- package/{chunk-PSJWPSKS.js → chunk-EWO77ZGF.js} +9 -43
- package/{chunk-ZWG3C7VI.js → chunk-F3SOW2EU.js} +81 -1
- package/{chunk-FY4SDK2E.js → chunk-FDLDMJTM.js} +1 -1
- package/{chunk-KOB75UNU.js → chunk-FHG46N5C.js} +53 -4
- package/{chunk-7KYVUFDG.js → chunk-G3VYRPTV.js} +5 -267
- package/{chunk-DW7MGLMG.js → chunk-GGUTTH6C.js} +35 -207
- package/{chunk-6MJNEXUU.js → chunk-HGDKT2D6.js} +4 -0
- package/{chunk-B2EGWZJG.js → chunk-I7S63QUU.js} +1 -1
- package/{chunk-ROPSATAB.js → chunk-IF7V3CBU.js} +1 -1
- package/chunk-IKOKYBYJ.js +2685 -0
- package/{chunk-T6CBQ6BN.js → chunk-INFHX73M.js} +1 -1
- package/{chunk-YBNHPX4S.js → chunk-IW64YHXL.js} +155 -31
- package/{chunk-K43ZF2C3.js → chunk-JPPQ3GUO.js} +1 -1
- package/{chunk-TZTWMGE3.js → chunk-JWEXJ573.js} +3 -3
- package/{chunk-RUNKPFM5.js → chunk-K6Y5T4GE.js} +12 -8
- package/{chunk-MVJVF4ED.js → chunk-KESKU5BG.js} +18 -17
- package/{chunk-I2ZMGXXF.js → chunk-KFHREHUQ.js} +1 -1
- package/{chunk-3C2QLERX.js → chunk-KMDDG73K.js} +1 -1
- package/{chunk-5MM7NNO6.js → chunk-KSTEXKL6.js} +78 -39
- package/{chunk-EM3YOZJ4.js → chunk-L2JMH4I5.js} +3 -3
- package/{chunk-MM3662RS.js → chunk-LPO6AMQU.js} +780 -64
- package/{chunk-D4OWHT5Y.js → chunk-MAYW6V3E.js} +2 -2
- package/{chunk-IPAW7XLD.js → chunk-MFVOJ6KF.js} +2 -2
- package/{chunk-FDT27L7S.js → chunk-MLEANT7D.js} +19 -17
- package/{chunk-7GC3EKUG.js → chunk-MMSQTZCJ.js} +3 -3
- package/{chunk-XFKZ3MCV.js → chunk-MR3ITQEV.js} +344 -88
- package/{chunk-CBHGZRCE.js → chunk-MYOH447Z.js} +1 -1
- package/{chunk-6MPAEODB.js → chunk-NHEWV5FD.js} +17 -3
- package/{chunk-ZEHTARJA.js → chunk-NLFTBC6S.js} +321 -150
- package/{chunk-SKPPKHD3.js → chunk-OLUKIUX6.js} +2 -2
- package/{chunk-SUKSWFLP.js → chunk-PIG2IUVZ.js} +1 -1
- package/{chunk-SEJ5OS6F.js → chunk-PXYBUFDB.js} +4 -0
- package/{chunk-2MTE2PEH.js → chunk-QA2C5NKI.js} +5 -739
- package/{chunk-L6EQV5OC.js → chunk-QXZH5UDF.js} +3 -3
- package/{chunk-TNIX77YM.js → chunk-R5GO3YZP.js} +34 -1
- package/{chunk-X5SUT4CN.js → chunk-R7GCGOGZ.js} +6 -6
- package/{chunk-4Z245KOA.js → chunk-SH3XD4E2.js} +8 -4
- package/{chunk-JGRPBIZZ.js → chunk-SQX235S2.js} +1 -1
- package/chunk-TT644UJD.js +188 -0
- package/{chunk-IYBIRCQV.js → chunk-U34KT53V.js} +29 -11
- package/{chunk-ANJTRG52.js → chunk-ULQAD7ZY.js} +18 -43
- package/{chunk-QDA4Y5O6.js → chunk-UVYSBQ2M.js} +21 -17
- package/{chunk-I2RMFLLH.js → chunk-V7PCFWX3.js} +1 -1
- package/{chunk-HXHSTRGH.js → chunk-VYNMQ6HW.js} +0 -27
- package/{chunk-G47IPDOK.js → chunk-W7FGZRLK.js} +1 -1
- package/{chunk-7BSQK2UC.js → chunk-WRCZXJ4N.js} +2 -2
- package/{chunk-KX6LPG7W.js → chunk-WYJTNSVL.js} +9 -9
- package/{chunk-H4KACZMG.js → chunk-XZIW3Q5B.js} +271 -138
- package/chunk-Y5GCAMGP.js +9 -0
- package/{chunk-JZX2XLKC.js → chunk-YCRROBDY.js} +1 -1
- package/{chunk-FPWT3RH2.js → chunk-YN5DT4JS.js} +22 -22
- package/{chunk-SCJD2PNK.js → chunk-YPG7TUQD.js} +3 -3
- package/{chunk-EJU23ST5.js → chunk-ZKVS36H3.js} +5069 -3730
- package/{chunk-YANF2RR4.js → chunk-ZPKUJROL.js} +1 -1
- package/{chunk-TYND6RDQ.js → chunk-ZZDVBZOP.js} +74 -3
- package/{commandRegistry-OUBQIF62.js → commandRegistry-DR2RPWK6.js} +88 -96
- package/{contentThunks-B3FRQGP7.js → contentThunks-CSJDJDEJ.js} +21 -21
- package/{createAgentAutomationAction-T2YFJ6MY.js → createAgentAutomationAction-ISEUEQSY.js} +21 -21
- package/{createDialogAction-2NFGFBXW.js → createDialogAction-HUCFOZY3.js} +25 -25
- package/{createPageAction-LDAVZDN7.js → createPageAction-DT5CYXCL.js} +24 -25
- package/{dbSlice-5QGKMQLO.js → dbSlice-6PVPY44C.js} +7 -7
- package/{deleteFile-EW6QNRRT.js → deleteFile-YM6NDPAR.js} +5 -5
- package/{dialogCommands-ZLBEAQHE.js → dialogCommands-3W6AIUXT.js} +35 -32
- package/{dialogSlice-64S3J6CP.js → dialogSlice-WJEEPG4W.js} +20 -20
- package/{dist-NJC2W7I4.js → dist-Q2JSMAKA.js} +7 -361
- package/{docCreateCommands-XOG5BBFQ.js → docCreateCommands-KQHQNLRX.js} +32 -30
- package/{docDeleteCommands-NCW3BBRX.js → docDeleteCommands-O3DWFX2W.js} +33 -31
- package/{docReadCommands-OT7X44Y3.js → docReadCommands-2U2BUONC.js} +32 -30
- package/{docStore-NIP7OO4I.js → docStore-7JPYT25V.js} +8 -8
- package/{docUpdateCommands-JW7OWW2J.js → docUpdateCommands-MF3C52XI.js} +32 -30
- package/{getPricing-TX35D7PI.js → getPricing-XQ3N3RBP.js} +2 -2
- package/{handleSendMessageAction-TOKA7ED7.js → handleSendMessageAction-BV5FMID4.js} +43 -39
- package/index.js +8 -8
- package/{localRuntimeAdapter-EQM6LFYC.js → localRuntimeAdapter-6FBEJJ4D.js} +70 -69
- package/{localRuntimeAuthority-JDAD7CB6.js → localRuntimeAuthority-BPN5OAQG.js} +2 -2
- package/{localRuntimeDb-CVC62PM5.js → localRuntimeDb-QIVAXMUL.js} +1 -1
- package/{machineCommands-WJ7FZ67T.js → machineCommands-WCAFDI5N.js} +80 -79
- package/{machineWsRunDispatch-BQT4DEA2.js → machineWsRunDispatch-ZF6BBQ3X.js} +70 -71
- package/{memberThunks-KRV5YXOB.js → memberThunks-AZINUM4S.js} +10 -10
- package/package.json +6 -2
- package/{profileConfig-ZGOFORWV.js → profileConfig-KN3N2BLF.js} +7 -1
- package/{providerPresetApply-CRZFMQD5.js → providerPresetApply-PKUOHQJT.js} +5 -5
- package/{providerRegistry-7IS43D3X.js → providerRegistry-HNQLIFN2.js} +5 -5
- package/{read-5KAZHHDM.js → read-7JPIWRBQ.js} +5 -5
- package/{readDocTool-5QO34OSX.js → readDocTool-AAQTB2Y3.js} +1 -1
- package/{readlineWorkspace-JHJSU5DS.js → readlineWorkspace-I5MHMEUE.js} +375 -200
- package/{removeDialogAgentAction-6X63HMI3.js → removeDialogAgentAction-RMVRILLK.js} +9 -9
- package/{runAgentClientLoop-5QIGEALK.js → runAgentClientLoop-TSNSRQEP.js} +59 -54
- package/{runtimeDoctorCommands-56NWKNON.js → runtimeDoctorCommands-MMCP4B4U.js} +12 -12
- package/{secretCommands-ZXZRLR3R.js → secretCommands-DNY56NSU.js} +11 -1
- package/{setDialogExtraReferencesAction-4MAYKKYW.js → setDialogExtraReferencesAction-L3V7JTMG.js} +8 -8
- package/{setPrimaryDialogAgentAction-EGBAMREH.js → setPrimaryDialogAgentAction-X52JQGTJ.js} +9 -9
- package/settingThunks-N6XFWPOU.js +923 -0
- package/{spaceCommands-ZWDPTURU.js → spaceCommands-NDPGHDMD.js} +29 -27
- package/{streamAgentChatTurn-456DWXNY.js → streamAgentChatTurn-RJLDV4WZ.js} +154 -95
- package/{switchDialogAgentAction-YBKTD6DO.js → switchDialogAgentAction-ZJ5CGU7J.js} +7 -7
- package/{tableCommands-U3QDY4L6.js → tableCommands-IVC5S7Y3.js} +11 -11
- package/{toolApiClient-7WSJJJBV.js → toolApiClient-HGNO53TC.js} +2 -2
- package/{tools-IWNXKK4Y.js → tools-X6QNIYFJ.js} +43 -44
- package/{tuiSummaryLlmCaller-KLK6K3Q3.js → tuiSummaryLlmCaller-FESHBDTT.js} +7 -7
- package/{updateCommands-NQXAGFM7.js → updateCommands-FJHGWD3Q.js} +5 -3
- package/{updateDialogTitleAction-SX53FZWO.js → updateDialogTitleAction-6LURCTMG.js} +21 -21
- package/{workloadLifecycle-36DXRZKU.js → workloadLifecycle-6O6PMISX.js} +2 -2
- package/chunk-IA7TRNNR.js +0 -11
- package/chunk-UKZX3NHN.js +0 -48
- package/chunk-VAZHH6FO.js +0 -7012
- package/chunk-W4S6OTSC.js +0 -35
- package/clipboardy-GCO3GT3I.js +0 -11793
- package/settingThunks-FTDRZNSJ.js +0 -1371
- package/{agentGrantCommands-HOJ3JBBQ.js → agentGrantCommands-5DPHYEKP.js} +3 -3
- package/{chromeOpsCommands-3Z34RKSE.js → chromeOpsCommands-GZVVK7HU.js} +4 -4
- package/{chunk-XETG4RIX.js → chunk-AETZ7AD6.js} +4 -4
- package/{chunk-2IXDJNZI.js → chunk-GAGGEA7D.js} +3 -3
- package/{memoryCommands-CUNBFRVS.js → memoryCommands-ZS3VQJAL.js} +3 -3
- package/{offlineMarxistsAgentCommand-2QTHJCHV.js → offlineMarxistsAgentCommand-3GLX4QQY.js} +3 -3
|
@@ -296,21 +296,49 @@ var STRINGS = {
|
|
|
296
296
|
en: "Usage: /altscreen <on|off>",
|
|
297
297
|
zh: "\u7528\u6CD5\uFF1A/altscreen <on|off>"
|
|
298
298
|
},
|
|
299
|
-
autoCurrent: {
|
|
300
|
-
en: "Permission auto-approve: {0}",
|
|
301
|
-
zh: "\u6743\u9650\u81EA\u52A8\u5316\uFF1A{0}"
|
|
302
|
-
},
|
|
303
299
|
autoUsage: {
|
|
304
|
-
en: "Usage: /auto <on|off>",
|
|
305
|
-
zh: "\u7528\u6CD5\uFF1A/auto <on|off>"
|
|
300
|
+
en: "Usage: /auto [local|remote] <on|off> \xB7 /auto reset (clear both)",
|
|
301
|
+
zh: "\u7528\u6CD5\uFF1A/auto [local|remote] <on|off> \xB7 /auto reset\uFF08\u4E24\u6876\u6E05\u96F6\uFF09"
|
|
302
|
+
},
|
|
303
|
+
autoStateLine: {
|
|
304
|
+
en: "Local-run grant: {0} \xB7 Remote-origin shell grant: {1}",
|
|
305
|
+
zh: "\u672C\u673A run \u6388\u6743\uFF1A{0} \xB7 \u8FDC\u7A0B\u6765\u6E90\u5728\u672C\u673A\u6267\u884C shell \u6388\u6743\uFF1A{1}"
|
|
306
|
+
},
|
|
307
|
+
autoStateOnPersisted: {
|
|
308
|
+
en: "granted (saved)",
|
|
309
|
+
zh: "\u5DF2\u6388\u6743\uFF08\u5DF2\u4FDD\u5B58\uFF09"
|
|
310
|
+
},
|
|
311
|
+
autoStateOff: {
|
|
312
|
+
en: "ask every time",
|
|
313
|
+
zh: "\u9010\u6B21\u8BE2\u95EE"
|
|
314
|
+
},
|
|
315
|
+
autoKindLocal: {
|
|
316
|
+
en: "local-run confirmations (destructive shell / outside-workspace files / file writes)",
|
|
317
|
+
zh: "\u672C\u673A run \u7684\u786E\u8BA4\uFF08\u7834\u574F\u6027\u547D\u4EE4 / \u5DE5\u4F5C\u533A\u5916\u6587\u4EF6 / \u5199\u6587\u4EF6\uFF09"
|
|
318
|
+
},
|
|
319
|
+
autoKindRemote: {
|
|
320
|
+
en: "a remote origin running shell on this machine",
|
|
321
|
+
zh: "\u8FDC\u7A0B\u6765\u6E90\u5728\u672C\u673A\u6267\u884C shell"
|
|
322
|
+
},
|
|
323
|
+
autoGrantOn: {
|
|
324
|
+
en: "Approved and saved: {0}. That class no longer asks (this session and future starts). Undo with {1}.",
|
|
325
|
+
zh: "\u5DF2\u6279\u51C6\u5E76\u4FDD\u5B58\uFF1A{0}\u3002\u8BE5\u7C7B\u786E\u8BA4\u4E0D\u518D\u8BE2\u95EE\uFF08\u672C\u6B21\u4E0E\u540E\u7EED\u542F\u52A8\u90FD\u751F\u6548\uFF09\u3002\u64A4\u9500\u7528 {1}\u3002"
|
|
306
326
|
},
|
|
307
|
-
|
|
308
|
-
en: "
|
|
309
|
-
zh: "\
|
|
327
|
+
autoGrantOff: {
|
|
328
|
+
en: "Revoked and saved: {0}. Those confirmations ask again (this session and future starts). Re-enable with {1}.",
|
|
329
|
+
zh: "\u5DF2\u64A4\u9500\u5E76\u4FDD\u5B58\uFF1A{0}\u3002\u8BE5\u7C7B\u786E\u8BA4\u6062\u590D\u9010\u6B21\u8BE2\u95EE\uFF08\u672C\u4F1A\u8BDD\u4E0E\u540E\u7EED\u542F\u52A8\u90FD\u751F\u6548\uFF09\u3002\u91CD\u65B0\u5F00\u542F\u7528 {1}\u3002"
|
|
310
330
|
},
|
|
311
|
-
|
|
312
|
-
en: "
|
|
313
|
-
zh: "\u6743\
|
|
331
|
+
autoReset: {
|
|
332
|
+
en: "Cleared and saved: both permission buckets are reset \u2014 every confirmation asks again.",
|
|
333
|
+
zh: "\u5DF2\u6E05\u7A7A\u5E76\u4FDD\u5B58\uFF1A\u672C\u673A\u4E0E\u8FDC\u7A0B\u4E24\u6876\u6388\u6743\u90FD\u6E05\u96F6\uFF0C\u6240\u6709\u786E\u8BA4\u6062\u590D\u9010\u6B21\u8BE2\u95EE\u3002"
|
|
334
|
+
},
|
|
335
|
+
autoPersistFailed: {
|
|
336
|
+
en: "This grant applies to this session only \u2014 it could not be saved to your config (no profile?).",
|
|
337
|
+
zh: "\u8BE5\u6388\u6743\u4EC5\u672C\u6B21\u4F1A\u8BDD\u6709\u6548\uFF1A\u672A\u80FD\u4FDD\u5B58\u5230\u914D\u7F6E\uFF08\u53EF\u80FD\u8FD8\u6CA1\u6709 profile\uFF09\u3002"
|
|
338
|
+
},
|
|
339
|
+
autoPersistedStartup: {
|
|
340
|
+
en: "Approved from your saved config: {0}. Those confirmations are skipped; undo with /auto reset.",
|
|
341
|
+
zh: "\u5DF2\u4ECE\u4FDD\u5B58\u7684\u914D\u7F6E\u751F\u6548\u7684\u6388\u6743\uFF1A{0}\u3002\u8FD9\u4E9B\u786E\u8BA4\u5DF2\u88AB\u8DF3\u8FC7\uFF1B\u64A4\u9500\u7528 /auto reset\u3002"
|
|
314
342
|
},
|
|
315
343
|
langSwitched: {
|
|
316
344
|
en: "Language switched to English.",
|
|
@@ -580,40 +608,52 @@ var STRINGS = {
|
|
|
580
608
|
zh: "\uFF08\u2191\u2193 \u79FB\u52A8 \xB7 Enter \u9009\u62E9 \xB7 Esc \u53D6\u6D88\uFF09"
|
|
581
609
|
},
|
|
582
610
|
dialogConfirmTitle: {
|
|
583
|
-
en: "
|
|
584
|
-
zh: "\
|
|
611
|
+
en: "Allow destructive shell commands from local runs?",
|
|
612
|
+
zh: "\u5141\u8BB8\u672C\u673A run \u6267\u884C\u7834\u574F\u6027 shell \u547D\u4EE4\u5417\uFF1F"
|
|
585
613
|
},
|
|
586
614
|
dialogConfirmBody: {
|
|
587
|
-
en: "This command may delete or reset user content
|
|
588
|
-
zh: "\u8BE5\u547D\u4EE4\u53EF\u80FD\u5220\u9664\u6216\u91CD\u7F6E\u7528\u6237\u5185\u5BB9\uFF0C\
|
|
615
|
+
en: "This command may delete or reset user content \u2014 a local-run destructive shell command.",
|
|
616
|
+
zh: "\u8BE5\u547D\u4EE4\u53EF\u80FD\u5220\u9664\u6216\u91CD\u7F6E\u7528\u6237\u5185\u5BB9\uFF0C\u5C5E\u4E8E\u672C\u673A run \u7684\u7834\u574F\u6027 shell \u547D\u4EE4\u3002"
|
|
589
617
|
},
|
|
590
618
|
dialogConfirmExternalFileTitle: {
|
|
591
|
-
en: "
|
|
592
|
-
zh: "\
|
|
619
|
+
en: "Allow reading files outside the workspace?",
|
|
620
|
+
zh: "\u5141\u8BB8\u8BFB\u53D6\u5DE5\u4F5C\u533A\u5916\u90E8\u6587\u4EF6\u5417\uFF1F"
|
|
593
621
|
},
|
|
594
622
|
dialogConfirmExternalFileBody: {
|
|
595
|
-
en: "This path is outside the current workspace
|
|
596
|
-
zh: "\u8BE5\u8DEF\u5F84\u4F4D\u4E8E\u5F53\u524D\u5DE5\u4F5C\u533A\u4E4B\u5916\
|
|
623
|
+
en: "This path is outside the current workspace \u2014 a local-run outside-workspace file access.",
|
|
624
|
+
zh: "\u8BE5\u8DEF\u5F84\u4F4D\u4E8E\u5F53\u524D\u5DE5\u4F5C\u533A\u4E4B\u5916\uFF0C\u5C5E\u4E8E\u672C\u673A run \u7684\u5DE5\u4F5C\u533A\u5916\u6587\u4EF6\u8BBF\u95EE\u3002"
|
|
625
|
+
},
|
|
626
|
+
dialogConfirmFileWriteTitle: {
|
|
627
|
+
en: "Allow writing files from local runs?",
|
|
628
|
+
zh: "\u5141\u8BB8\u672C\u673A run \u5199\u5165\u6587\u4EF6\u5417\uFF1F"
|
|
629
|
+
},
|
|
630
|
+
dialogConfirmFileWriteBody: {
|
|
631
|
+
en: "This action writes into the workspace \u2014 a local-run file-write confirmation.",
|
|
632
|
+
zh: "\u8BE5\u64CD\u4F5C\u4F1A\u5199\u5165\u5DE5\u4F5C\u533A\u6587\u4EF6\uFF0C\u5C5E\u4E8E\u672C\u673A run \u7684\u5199\u6587\u4EF6\u786E\u8BA4\u3002"
|
|
633
|
+
},
|
|
634
|
+
dialogConfirmRememberLocal: {
|
|
635
|
+
en: "Approving covers all three local-run classes (destructive shell / outside-workspace files / file writes) and is saved, so they stop asking \u2014 this session and future starts. Undo with /auto local off or /auto reset.",
|
|
636
|
+
zh: "\u6279\u51C6\u540E\u672C\u673A run \u7684\u4E09\u7C7B\u786E\u8BA4\uFF08\u7834\u574F\u6027\u547D\u4EE4 / \u5DE5\u4F5C\u533A\u5916\u6587\u4EF6 / \u5199\u6587\u4EF6\uFF09\u90FD\u4E0D\u518D\u8BE2\u95EE\uFF0C\u5E76\u4FDD\u5B58\u5230\u914D\u7F6E\uFF08\u672C\u6B21\u4E0E\u540E\u7EED\u542F\u52A8\u90FD\u751F\u6548\uFF09\u3002\u64A4\u9500\u7528 /auto local off \u6216 /auto reset\u3002"
|
|
597
637
|
},
|
|
598
638
|
dialogConfirmCommandTruncated: {
|
|
599
639
|
en: "(truncated)",
|
|
600
640
|
zh: "\uFF08\u5DF2\u622A\u65AD\uFF09"
|
|
601
641
|
},
|
|
602
642
|
dialogConfirmAllowLabel: {
|
|
603
|
-
en: "
|
|
604
|
-
zh: "\
|
|
643
|
+
en: "Approve & remember",
|
|
644
|
+
zh: "\u6279\u51C6\u5E76\u8BB0\u4F4F"
|
|
605
645
|
},
|
|
606
646
|
dialogConfirmAllowDetail: {
|
|
607
|
-
en: "
|
|
608
|
-
zh: "\
|
|
647
|
+
en: "stop asking for this class (saved)",
|
|
648
|
+
zh: "\u540C\u7C7B\u786E\u8BA4\u4E0D\u518D\u8BE2\u95EE\uFF08\u5DF2\u4FDD\u5B58\uFF09"
|
|
609
649
|
},
|
|
610
650
|
dialogConfirmCancelLabel: {
|
|
611
|
-
en: "
|
|
612
|
-
zh: "\
|
|
651
|
+
en: "Reject",
|
|
652
|
+
zh: "\u62D2\u7EDD"
|
|
613
653
|
},
|
|
614
654
|
dialogConfirmCancelDetail: {
|
|
615
|
-
en: "
|
|
616
|
-
zh: "\
|
|
655
|
+
en: "do not run it; ask again next time",
|
|
656
|
+
zh: "\u4E0D\u6267\u884C\uFF0C\u4E0B\u6B21\u4ECD\u4F1A\u8BE2\u95EE"
|
|
617
657
|
},
|
|
618
658
|
// --- Ask choice (ask_user) ------------------------------------------
|
|
619
659
|
askChoiceTitle: {
|
|
@@ -859,7 +899,7 @@ var STRINGS = {
|
|
|
859
899
|
" Drag a file in Drop an image file on the terminal to attach it; audio/video transcribes; other files stay paths",
|
|
860
900
|
" Shift+Enter / Ctrl+J Insert a newline in the draft",
|
|
861
901
|
" /mouse <on|off> Toggle mouse mode (off = drag to select text)",
|
|
862
|
-
" /auto <on|off>
|
|
902
|
+
" /auto [local|remote] <on|off> Approve one permission bucket (local-run confirms / remote-origin shell) so it stops asking; saved to your config. /auto reset clears both",
|
|
863
903
|
" /shell-revoke Revoke this session's shell grant; the next shell call re-asks (works while a reply runs; does not interrupt a running command)",
|
|
864
904
|
" /math <on|off> Toggle math formula rendering (Unicode transcription)",
|
|
865
905
|
" /altscreen <on|off> Toggle the terminal alternate screen (default on; off shares shell scrollback)",
|
|
@@ -905,7 +945,7 @@ var STRINGS = {
|
|
|
905
945
|
" \u62D6\u5165\u6587\u4EF6 \u628A\u56FE\u7247\u6587\u4EF6\u62D6\u8FDB\u7EC8\u7AEF\u5373\u6210\u4E3A\u9644\u4EF6\uFF1B\u97F3\u89C6\u9891\u81EA\u52A8\u8F6C\u5199\uFF1B\u5176\u4ED6\u6587\u4EF6\u53EA\u7559\u8DEF\u5F84",
|
|
906
946
|
" Shift+Enter / Ctrl+J \u5728\u8349\u7A3F\u91CC\u6362\u884C",
|
|
907
947
|
" /mouse <on|off> \u5207\u6362\u9F20\u6807\u6A21\u5F0F\uFF08off \u540E\u53EF\u76F4\u63A5\u62D6\u9009\u6587\u672C\uFF09",
|
|
908
|
-
" /auto <on|off>
|
|
948
|
+
" /auto [local|remote] <on|off> \u6388\u6743\u67D0\u4E00\u6876\uFF08\u672C\u673A run \u786E\u8BA4 / \u8FDC\u7A0B\u6765\u6E90 shell\uFF09\u4E0D\u518D\u9010\u6B21\u8BE2\u95EE\uFF0C\u5E76\u4FDD\u5B58\u5230\u914D\u7F6E\uFF1B/auto reset \u4E24\u6876\u6E05\u96F6",
|
|
909
949
|
" /shell-revoke \u64A4\u9500\u672C\u4F1A\u8BDD\u7684 shell \u6267\u884C\u6388\u6743\uFF0C\u4E0B\u4E00\u6B21 shell \u8C03\u7528\u91CD\u65B0\u786E\u8BA4\uFF08\u56DE\u590D\u8FDB\u884C\u4E2D\u4E5F\u53EF\u7528\uFF1B\u4E0D\u4E2D\u65AD\u5DF2\u653E\u884C\u7684\u547D\u4EE4\uFF09",
|
|
910
950
|
" /math <on|off> \u5207\u6362\u6570\u5B66\u516C\u5F0F\u6E32\u67D3\uFF08Unicode \u8F6C\u5199\uFF09",
|
|
911
951
|
" /altscreen <on|off> \u5207\u6362\u7EC8\u7AEF\u5907\u7528\u5C4F\uFF08\u9ED8\u8BA4 on\uFF1Boff \u6539\u4E3A\u4E0E shell \u5171\u7528\u56DE\u6EDA\uFF09",
|
|
@@ -1567,13 +1607,23 @@ Use /switch, /switch list, /switch minimax-m3, or a full agent key.`,
|
|
|
1567
1607
|
// 分享 OAuth agent 的 shell 会话授权确认(块 D):首次 execShell/
|
|
1568
1608
|
// launchProcess 前弹。必须把三件事说清——这是谁的 agent / 命令在哪台
|
|
1569
1609
|
// 设备哪个工作区跑 / 任意 shell 可读写该用户可访问的资源。
|
|
1610
|
+
// 子 run 的 per-call shell 确认(远程来源在本机跑一条命令):与会话授权同一套
|
|
1611
|
+
// 语义,参数为 runId / agentKey / owner / device / workspace / 权限提示。
|
|
1612
|
+
"shellPerCall.title": {
|
|
1613
|
+
en: "Allow a remote origin to run this command on this machine?",
|
|
1614
|
+
zh: "\u5141\u8BB8\u8FDC\u7A0B\u6765\u6E90\u5728\u672C\u673A\u6267\u884C\u8FD9\u6761\u547D\u4EE4\u5417\uFF1F"
|
|
1615
|
+
},
|
|
1616
|
+
"shellPerCall.body": {
|
|
1617
|
+
en: "A remote origin asked to run one shell command on this device.\nRun: {0}\nAgent: {1}\nOwner: {2}\nDevice: {3}\nWorkspace: {4}\n{5}\n\nShell commands can read/write anything this user can access. Approving covers this whole class: remote-origin shell confirmations stop asking one by one (this session and future starts). Undo with /shell-revoke or /auto remote off.",
|
|
1618
|
+
zh: "\u8FDC\u7A0B\u6765\u6E90\u8BF7\u6C42\u5728\u672C\u673A\u6267\u884C\u4E00\u6761 shell \u547D\u4EE4\u3002\nRun\uFF1A{0}\nAgent\uFF1A{1}\n\u4E3B\u4EBA\uFF1A{2}\n\u8BBE\u5907\uFF1A{3}\n\u5DE5\u4F5C\u533A\uFF1A{4}\n{5}\n\n\u4EFB\u610F shell \u547D\u4EE4\u53EF\u8BFB\u5199\u672C\u673A\u8BE5\u7528\u6237\u80FD\u8BBF\u95EE\u7684\u8D44\u6E90\u3002\u6279\u51C6\u540E\u300C\u8FDC\u7A0B\u6765\u6E90\u5728\u672C\u673A\u6267\u884C shell\u300D\u8FD9\u4E00\u7C7B\u786E\u8BA4\u4E0D\u518D\u9010\u6761\u8BE2\u95EE\uFF08\u672C\u6B21\u4E0E\u540E\u7EED\u542F\u52A8\u90FD\u751F\u6548\uFF09\u3002\u64A4\u9500\uFF1A/shell-revoke \u6216 /auto remote off\u3002"
|
|
1619
|
+
},
|
|
1570
1620
|
"shellGrant.confirmTitle": {
|
|
1571
|
-
en: "Allow shell commands
|
|
1572
|
-
zh: "\u5141\u8BB8\
|
|
1621
|
+
en: "Allow remote agent {0} to run shell commands on this machine?",
|
|
1622
|
+
zh: "\u5141\u8BB8\u8FDC\u7A0B agent {0} \u5728\u672C\u673A\u6267\u884C shell \u547D\u4EE4\u5417\uFF1F"
|
|
1573
1623
|
},
|
|
1574
1624
|
"shellGrant.confirmBody": {
|
|
1575
|
-
en: "
|
|
1576
|
-
zh: "\
|
|
1625
|
+
en: "Remote agent {0} (owner {1}) requested to run a shell command on this machine.\nDevice: {2} ({3})\nWorkspace: {4}\nCommand: {5}\n\nShell commands can read/write anything this user can access. Approving covers this whole class: remote-origin shell confirmations stop asking one by one (this session and future starts). Undo with /shell-revoke (this session) or /auto remote off (also clears the saved grant).",
|
|
1626
|
+
zh: "\u8FDC\u7A0B agent {0}\uFF08\u4E3B\u4EBA {1}\uFF09\u8BF7\u6C42\u5728\u672C\u673A\u6267\u884C shell \u547D\u4EE4\u3002\n\u8BBE\u5907\uFF1A{2}\uFF08{3}\uFF09\n\u5DE5\u4F5C\u533A\uFF1A{4}\n\u547D\u4EE4\uFF1A{5}\n\n\u4EFB\u610F shell \u547D\u4EE4\u53EF\u8BFB\u5199\u672C\u673A\u8BE5\u7528\u6237\u80FD\u8BBF\u95EE\u7684\u8D44\u6E90\u3002\u6279\u51C6\u540E\u300C\u8FDC\u7A0B\u6765\u6E90\u5728\u672C\u673A\u6267\u884C shell\u300D\u8FD9\u4E00\u7C7B\u786E\u8BA4\u4E0D\u518D\u9010\u6761\u8BE2\u95EE\uFF08\u672C\u6B21\u4E0E\u540E\u7EED\u542F\u52A8\u90FD\u751F\u6548\uFF09\u3002\u64A4\u9500\uFF1A/shell-revoke\uFF08\u672C\u4F1A\u8BDD\uFF09\u6216 /auto remote off\uFF08\u540C\u65F6\u6E05\u9664\u6301\u4E45\u6388\u6743\uFF09\u3002"
|
|
1577
1627
|
},
|
|
1578
1628
|
"shellGrant.revoked": {
|
|
1579
1629
|
en: "[nolo] Shell permission revoked for shared agents in this session.",
|
|
@@ -24,12 +24,6 @@ async function isDrainExhaustedResponse(response) {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
// packages/core/positiveFiniteNumberOrFallback.ts
|
|
28
|
-
function parsePositiveFiniteNumberOrFallback(value, fallback) {
|
|
29
|
-
const parsed = Number(value);
|
|
30
|
-
return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
27
|
// packages/core/retryAfterMs.ts
|
|
34
28
|
function normalizeNonNegativeMs(value, fallbackMs) {
|
|
35
29
|
const parsed = Number(value);
|
|
@@ -57,6 +51,5 @@ export {
|
|
|
57
51
|
createDrainExhaustedResponse,
|
|
58
52
|
isDrainExhaustedResponse,
|
|
59
53
|
normalizeNonNegativeMs,
|
|
60
|
-
parseRetryAfterHeaderMs
|
|
61
|
-
parsePositiveFiniteNumberOrFallback
|
|
54
|
+
parseRetryAfterHeaderMs
|
|
62
55
|
};
|
|
@@ -206,7 +206,7 @@ async function readDocFunc(args, thunkApi) {
|
|
|
206
206
|
throw new Error(`\u65E0\u6548\u7684\u9875\u9762 ID: ${id}\u3002\u9875\u9762 ID \u901A\u5E38\u4EE5 "page-" \u5F00\u5934\u3002`);
|
|
207
207
|
}
|
|
208
208
|
try {
|
|
209
|
-
const { readAction } = await import("./read-
|
|
209
|
+
const { readAction } = await import("./read-7JPIWRBQ.js");
|
|
210
210
|
const pageData = await readAction({ dbKey: id }, thunkApi);
|
|
211
211
|
if (!pageData) {
|
|
212
212
|
throw new Error(`\u672A\u627E\u5230 ID \u4E3A ${id} \u7684\u9875\u9762\u3002`);
|
|
@@ -1239,6 +1239,121 @@ function buildNoloWorkspaceCommandArgs(call) {
|
|
|
1239
1239
|
}
|
|
1240
1240
|
}
|
|
1241
1241
|
|
|
1242
|
+
// packages/agent-runtime/subtaskBudget.ts
|
|
1243
|
+
var DEFAULT_SUBTASK_MAX_TOOL_CALLS = 200;
|
|
1244
|
+
var DEFAULT_SUBTASK_MAX_WALL_CLOCK_MS = 60 * 60 * 1e3;
|
|
1245
|
+
var SUBTASK_MAX_TOOL_CALLS_ENV = "NOLO_SUBTASK_MAX_TOOL_CALLS";
|
|
1246
|
+
var SUBTASK_MAX_WALL_CLOCK_MS_ENV = "NOLO_SUBTASK_MAX_WALL_CLOCK_MS";
|
|
1247
|
+
var SUBTASK_BUDGET_EXHAUSTED_MARKER = "[budget-exhausted]";
|
|
1248
|
+
function parseSubtaskBudgetLimit(raw, fallback) {
|
|
1249
|
+
if (typeof raw === "number") {
|
|
1250
|
+
if (!Number.isFinite(raw) || raw <= 0) return fallback;
|
|
1251
|
+
return Math.floor(raw);
|
|
1252
|
+
}
|
|
1253
|
+
if (typeof raw !== "string") return fallback;
|
|
1254
|
+
const trimmed = raw.trim();
|
|
1255
|
+
if (!trimmed) return fallback;
|
|
1256
|
+
const parsed = Number(trimmed);
|
|
1257
|
+
if (!Number.isFinite(parsed) || parsed <= 0) return fallback;
|
|
1258
|
+
return Math.floor(parsed);
|
|
1259
|
+
}
|
|
1260
|
+
function resolveSubtaskBudgetLimits(options) {
|
|
1261
|
+
const env = options?.env ?? (typeof process !== "undefined" ? process.env : {});
|
|
1262
|
+
const explicitToolCalls = options?.maxToolCalls;
|
|
1263
|
+
const explicitWallClock = options?.maxWallClockMs;
|
|
1264
|
+
return {
|
|
1265
|
+
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),
|
|
1266
|
+
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)
|
|
1267
|
+
};
|
|
1268
|
+
}
|
|
1269
|
+
function resolveSubtaskBudgetDeadlineMs(args) {
|
|
1270
|
+
const ownDeadlineAtMs = args.childStartedAtMs + args.limits.maxWallClockMs;
|
|
1271
|
+
const parentDeadlineAtMs = args.parentDeadlineAtMs;
|
|
1272
|
+
if (typeof parentDeadlineAtMs === "number" && Number.isFinite(parentDeadlineAtMs)) {
|
|
1273
|
+
return Math.min(parentDeadlineAtMs, ownDeadlineAtMs);
|
|
1274
|
+
}
|
|
1275
|
+
return ownDeadlineAtMs;
|
|
1276
|
+
}
|
|
1277
|
+
function resolveDispatchedSubtaskBudget(args) {
|
|
1278
|
+
const limits = resolveSubtaskBudgetLimits({
|
|
1279
|
+
...typeof args?.maxToolCalls === "number" ? { maxToolCalls: args.maxToolCalls } : {},
|
|
1280
|
+
...typeof args?.maxWallClockMs === "number" ? { maxWallClockMs: args.maxWallClockMs } : {},
|
|
1281
|
+
...args?.env ? { env: args.env } : {}
|
|
1282
|
+
});
|
|
1283
|
+
const childStartedAtMs = args?.childStartedAtMs ?? Date.now();
|
|
1284
|
+
const deadlineAtMs = resolveSubtaskBudgetDeadlineMs({
|
|
1285
|
+
parentDeadlineAtMs: args?.parentDeadlineAtMs ?? null,
|
|
1286
|
+
childStartedAtMs,
|
|
1287
|
+
limits
|
|
1288
|
+
});
|
|
1289
|
+
return {
|
|
1290
|
+
// 父截止更早时,子 run 的墙钟额度被压到「距离父截止的剩余时间」。
|
|
1291
|
+
limits: {
|
|
1292
|
+
maxToolCalls: limits.maxToolCalls,
|
|
1293
|
+
maxWallClockMs: Math.max(1, deadlineAtMs - childStartedAtMs)
|
|
1294
|
+
},
|
|
1295
|
+
deadlineAtMs
|
|
1296
|
+
};
|
|
1297
|
+
}
|
|
1298
|
+
function createSubtaskBudgetTracker(options) {
|
|
1299
|
+
const now = options.now ?? (() => Date.now());
|
|
1300
|
+
const startedAtMs = options.startedAtMs ?? now();
|
|
1301
|
+
let toolCallsExecuted = 0;
|
|
1302
|
+
const elapsedMs = () => Math.max(0, now() - startedAtMs);
|
|
1303
|
+
const exhaustion = () => {
|
|
1304
|
+
const elapsed = elapsedMs();
|
|
1305
|
+
if (toolCallsExecuted >= options.limits.maxToolCalls) {
|
|
1306
|
+
return {
|
|
1307
|
+
limit: "max-tool-calls",
|
|
1308
|
+
limits: options.limits,
|
|
1309
|
+
toolCallsExecuted,
|
|
1310
|
+
elapsedMs: elapsed,
|
|
1311
|
+
atMs: now()
|
|
1312
|
+
};
|
|
1313
|
+
}
|
|
1314
|
+
if (elapsed >= options.limits.maxWallClockMs) {
|
|
1315
|
+
return {
|
|
1316
|
+
limit: "max-wall-clock-ms",
|
|
1317
|
+
limits: options.limits,
|
|
1318
|
+
toolCallsExecuted,
|
|
1319
|
+
elapsedMs: elapsed,
|
|
1320
|
+
atMs: now()
|
|
1321
|
+
};
|
|
1322
|
+
}
|
|
1323
|
+
return null;
|
|
1324
|
+
};
|
|
1325
|
+
return {
|
|
1326
|
+
limits: options.limits,
|
|
1327
|
+
startedAtMs,
|
|
1328
|
+
get toolCallsExecuted() {
|
|
1329
|
+
return toolCallsExecuted;
|
|
1330
|
+
},
|
|
1331
|
+
elapsedMs,
|
|
1332
|
+
remainingToolCalls: () => Math.max(0, options.limits.maxToolCalls - toolCallsExecuted),
|
|
1333
|
+
isExhausted: () => exhaustion() !== null,
|
|
1334
|
+
exhaustion,
|
|
1335
|
+
recordToolCallExecuted: () => {
|
|
1336
|
+
toolCallsExecuted += 1;
|
|
1337
|
+
return toolCallsExecuted;
|
|
1338
|
+
}
|
|
1339
|
+
};
|
|
1340
|
+
}
|
|
1341
|
+
function buildSubtaskBudgetExhaustedContent(args) {
|
|
1342
|
+
const { exhaustion } = args;
|
|
1343
|
+
const limitLabel = exhaustion.limit === "max-tool-calls" ? `\u5DE5\u5177\u8C03\u7528\u4E0A\u9650\uFF08\u5DF2\u6267\u884C ${exhaustion.toolCallsExecuted}/${exhaustion.limits.maxToolCalls} \u6B21\uFF09` : `\u5899\u949F\u4E0A\u9650\uFF08\u5DF2\u8FD0\u884C ${Math.round(exhaustion.elapsedMs / 1e3)} \u79D2 / \u4E0A\u9650 ${Math.round(
|
|
1344
|
+
exhaustion.limits.maxWallClockMs / 1e3
|
|
1345
|
+
)} \u79D2\uFF09`;
|
|
1346
|
+
const recent = (args.recentToolNames ?? []).slice(-5);
|
|
1347
|
+
const recentText = recent.length > 0 ? recent.join("\u3001") : "\uFF08\u672C\u8F6E\u65E0\u5DE5\u5177\u8C03\u7528\uFF09";
|
|
1348
|
+
return [
|
|
1349
|
+
`${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`,
|
|
1350
|
+
"\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",
|
|
1351
|
+
`\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`,
|
|
1352
|
+
"\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",
|
|
1353
|
+
"\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"
|
|
1354
|
+
].join("\n");
|
|
1355
|
+
}
|
|
1356
|
+
|
|
1242
1357
|
// packages/ai/agent/agentSelectionPriority.ts
|
|
1243
1358
|
function parseAgentTimestamp(value) {
|
|
1244
1359
|
if (typeof value === "number" && Number.isFinite(value)) return value;
|
|
@@ -1328,6 +1443,11 @@ export {
|
|
|
1328
1443
|
verifyNoloDialogSubjectRefQuery,
|
|
1329
1444
|
buildNoloTableQueryRequest,
|
|
1330
1445
|
buildNoloWorkspaceCommandArgs,
|
|
1446
|
+
DEFAULT_SUBTASK_MAX_TOOL_CALLS,
|
|
1447
|
+
DEFAULT_SUBTASK_MAX_WALL_CLOCK_MS,
|
|
1448
|
+
resolveDispatchedSubtaskBudget,
|
|
1449
|
+
createSubtaskBudgetTracker,
|
|
1450
|
+
buildSubtaskBudgetExhaustedContent,
|
|
1331
1451
|
compareAgentSelection,
|
|
1332
1452
|
AGENT_SELECTION_PRIORITY_INSTRUCTIONS,
|
|
1333
1453
|
buildAgentRuntimeAgentLookupKeys,
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
clipMultilineText,
|
|
3
3
|
fetchAndSerializeTable,
|
|
4
4
|
waitForAbortableDelay
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-K6Y5T4GE.js";
|
|
6
6
|
import {
|
|
7
7
|
isGatewayHttpStatus
|
|
8
8
|
} from "./chunk-NF64D32W.js";
|
|
@@ -11,34 +11,37 @@ import {
|
|
|
11
11
|
isCoreDrainingBody,
|
|
12
12
|
normalizeNonNegativeMs,
|
|
13
13
|
parseRetryAfterHeaderMs
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-3L2WKC3W.js";
|
|
15
15
|
import {
|
|
16
16
|
resolvePageReadMarkdown,
|
|
17
17
|
slateToSimplifiedMarkdown
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-3L5MSPWX.js";
|
|
19
19
|
import {
|
|
20
20
|
extractCategorizedMentions
|
|
21
21
|
} from "./chunk-AGIM7IMJ.js";
|
|
22
22
|
import {
|
|
23
23
|
fetchAndCacheMessages
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-XZIW3Q5B.js";
|
|
25
25
|
import {
|
|
26
26
|
createSpaceKey
|
|
27
27
|
} from "./chunk-UAD2WT54.js";
|
|
28
28
|
import {
|
|
29
29
|
read
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-CDLP56BS.js";
|
|
31
31
|
import {
|
|
32
32
|
getRuntimeServerContext
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-43OFVLWJ.js";
|
|
34
34
|
import {
|
|
35
35
|
extractRuntimePageCapabilities,
|
|
36
36
|
resolveBuiltinSkillPage,
|
|
37
37
|
resolveSkillGraphFromRoots
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-SH3XD4E2.js";
|
|
39
39
|
import {
|
|
40
40
|
isAbortError
|
|
41
41
|
} from "./chunk-7DPNBQSV.js";
|
|
42
|
+
import {
|
|
43
|
+
wrapHistoricalSummaryWithReplayGuard
|
|
44
|
+
} from "./chunk-4VJAC32I.js";
|
|
42
45
|
import {
|
|
43
46
|
extractCustomId
|
|
44
47
|
} from "./chunk-M2EJHDJP.js";
|
|
@@ -51,9 +54,6 @@ import {
|
|
|
51
54
|
import {
|
|
52
55
|
asTrimmedString
|
|
53
56
|
} from "./chunk-3EUW3WEO.js";
|
|
54
|
-
import {
|
|
55
|
-
wrapHistoricalSummaryWithReplayGuard
|
|
56
|
-
} from "./chunk-4VJAC32I.js";
|
|
57
57
|
|
|
58
58
|
// packages/ai/chat/errorDiagnostics.ts
|
|
59
59
|
var record = (value) => value !== null && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
noloUploadRequest,
|
|
9
9
|
noloWriteRequest,
|
|
10
10
|
syncWithServers
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-WRCZXJ4N.js";
|
|
12
12
|
import {
|
|
13
13
|
getAllServers,
|
|
14
14
|
getIsDesktopApp
|
|
@@ -17,20 +17,20 @@ import {
|
|
|
17
17
|
selectIdentityToken,
|
|
18
18
|
selectIdentityUser,
|
|
19
19
|
selectIdentityUserId
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-PXYBUFDB.js";
|
|
21
21
|
import {
|
|
22
22
|
asOptionalPositiveFiniteNumber
|
|
23
23
|
} from "./chunk-U6VC4MU4.js";
|
|
24
|
+
import {
|
|
25
|
+
SERVERS,
|
|
26
|
+
normalizeKnownServerOrigin
|
|
27
|
+
} from "./chunk-LCBAMY2M.js";
|
|
24
28
|
import {
|
|
25
29
|
isRecord
|
|
26
30
|
} from "./chunk-KUG52IAP.js";
|
|
27
31
|
import {
|
|
28
32
|
asTrimmedString
|
|
29
33
|
} from "./chunk-3EUW3WEO.js";
|
|
30
|
-
import {
|
|
31
|
-
SERVERS,
|
|
32
|
-
normalizeKnownServerOrigin
|
|
33
|
-
} from "./chunk-LCBAMY2M.js";
|
|
34
34
|
import {
|
|
35
35
|
isLocalServerUrl
|
|
36
36
|
} from "./chunk-4SN6J65J.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getModelContextWindow
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QA2C5NKI.js";
|
|
4
4
|
import {
|
|
5
5
|
isRecord
|
|
6
6
|
} from "./chunk-KUG52IAP.js";
|
|
@@ -854,6 +854,8 @@ var STREAM_USAGE_PROVIDERS = /* @__PURE__ */ new Set([
|
|
|
854
854
|
// kimi-code CLI also sends include_usage). Custom agents pointing at the
|
|
855
855
|
// same endpoint are covered by the endpoint check below, not here.
|
|
856
856
|
"kimi-code",
|
|
857
|
+
// MiniMax 官方 API(api.minimaxi.com):OpenAI 兼容流式端点,支持 stream_options.include_usage。
|
|
858
|
+
"minimax",
|
|
857
859
|
// OpenDesign (open-design.ai) and OpenCode Go (opencode.ai): OpenAI-compatible
|
|
858
860
|
// aggregation / subscription endpoints. Verified to emit terminal usage with
|
|
859
861
|
// prompt_tokens_details.cached_tokens.
|
|
@@ -862,10 +864,22 @@ var STREAM_USAGE_PROVIDERS = /* @__PURE__ */ new Set([
|
|
|
862
864
|
"opencode-go"
|
|
863
865
|
]);
|
|
864
866
|
var KIMI_CODE_ENDPOINT_MARKER = "api.kimi.com";
|
|
867
|
+
function extractHostname(endpoint) {
|
|
868
|
+
try {
|
|
869
|
+
const raw = endpoint.includes("://") ? endpoint : `https://${endpoint}`;
|
|
870
|
+
return new URL(raw).hostname.toLowerCase();
|
|
871
|
+
} catch {
|
|
872
|
+
return null;
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
var isMiniMaxEndpoint = (endpoint) => {
|
|
876
|
+
const host = extractHostname(endpoint);
|
|
877
|
+
return host === "api.minimaxi.com" || host === "api.minimax.chat";
|
|
878
|
+
};
|
|
865
879
|
var isSupportedCustomEndpoint = (endpoint) => {
|
|
866
880
|
if (typeof endpoint !== "string") return false;
|
|
867
881
|
const ep = endpoint.toLowerCase();
|
|
868
|
-
return ep.includes(KIMI_CODE_ENDPOINT_MARKER) || ep.includes("open-design.ai") || ep.includes("opencode.ai") || isOllamaEndpoint(endpoint);
|
|
882
|
+
return isMiniMaxEndpoint(endpoint) || ep.includes(KIMI_CODE_ENDPOINT_MARKER) || ep.includes("open-design.ai") || ep.includes("opencode.ai") || isOllamaEndpoint(endpoint);
|
|
869
883
|
};
|
|
870
884
|
var EXTRA_USAGE_FIELD_PROVIDERS = /* @__PURE__ */ new Set(["openrouter"]);
|
|
871
885
|
var normalizeProviderName = (providerName) => asTrimmedLowercaseString(providerName);
|