nolo-cli 0.149.0-alpha.1 → 0.151.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{_executeModel-OW3H7ICR.js → _executeModel-XHAFJ2MM.js} +134 -91
- package/accountResolver-7RYB4D2P.js +300 -0
- package/action-SXJD5N5R.js +23 -0
- package/{addContentAction-B2DRF7P6.js → addContentAction-ZV774PHH.js} +20 -14
- package/{addDialogAgentAction-2P2FLTLD.js → addDialogAgentAction-A6SMKAGH.js} +26 -22
- package/{agentDeleteCommand-7IDWF6E3.js → agentDeleteCommand-DPUUS56Z.js} +181 -93
- package/{agentEmailCommands-A6XBQZBN.js → agentEmailCommands-V4P5EFLP.js} +132 -112
- package/{agentGrantCommands-M3XFO6EN.js → agentGrantCommands-HOJ3JBBQ.js} +3 -3
- package/agentListCommands-TWFLUYIZ.js +802 -0
- package/{agentMachineCommands-DQPUIMAC.js → agentMachineCommands-MELPAZZI.js} +58 -62
- package/{agentProviderCommands-YK2BIIXZ.js → agentProviderCommands-HL6MBLCL.js} +149 -2
- package/{agentPullCommand-HF4A42D4.js → agentPullCommand-FA43RBRU.js} +7 -7
- package/agentRecordCommands-FSWSSQIO.js +154 -0
- package/agentRunCommand-GDBJVOAT.js +183 -0
- package/{agentRunControl-2SKCR4SB.js → agentRunControl-IFM7IGMG.js} +10 -2
- package/{agentRuntimeLocal-AK2QVJHY.js → agentRuntimeLocal-KKSQJMTE.js} +47 -50
- package/{agentSlice-O4RUQUMT.js → agentSlice-YO2ZLJMD.js} +23 -16
- package/{appDeleteCommands-N3XEVVYC.js → appDeleteCommands-4PL4KYRN.js} +58 -59
- package/{appDeployCommands-AWFIXYVW.js → appDeployCommands-EEEXCEB6.js} +67 -63
- package/{appDeployStatusCommands-CZRON2FO.js → appDeployStatusCommands-35ZX7T66.js} +56 -56
- package/{appGetCommands-XQIUY4TD.js → appGetCommands-WFCHXJWF.js} +56 -56
- package/{appListCommands-NNG4H36Y.js → appListCommands-XY2U6DPF.js} +57 -59
- package/{authCommand-UBJ4EWYZ.js → authCommand-QYN47CQD.js} +371 -68
- package/{authCommands-H6WKKCRW.js → authCommands-77CHYBGF.js} +12 -9
- package/{builtinSkillRegistry-ZMF6YGNO.js → builtinSkillRegistry-TDQ6JB2E.js} +13 -11
- package/{chromeCommands-2N6MEWRU.js → chromeCommands-OBBNJCLS.js} +314 -13
- package/chromeOpsCommands-3Z34RKSE.js +472 -0
- package/{chunk-ALXHV7NK.js → chunk-2GGXHQIW.js} +43 -4
- package/{localRuntimeAuthority-5W6IJRAD.js → chunk-2IXDJNZI.js} +154 -75
- package/{chunk-IVZJWTDI.js → chunk-36OMEXXR.js} +89 -21
- package/{chunk-H6A6X4EK.js → chunk-3MZAGMYY.js} +16 -0
- package/chunk-3PVYUPXK.js +40 -0
- package/chunk-3SZA4U64.js +1192 -0
- package/{chunk-GNMAFAIS.js → chunk-44WXLHFI.js} +1 -1
- package/{chunk-AGGIDPCZ.js → chunk-4JH2UMJR.js} +6 -0
- package/chunk-4LCOCOR5.js +50 -0
- package/chunk-4YRTZIVN.js +871 -0
- package/chunk-556RW72X.js +14110 -0
- package/{chunk-N7J63Q6C.js → chunk-56GBUMO5.js} +10 -1
- package/{chunk-W7XHHYWM.js → chunk-5BHQICF2.js} +5 -1
- package/{chunk-XUWRURDF.js → chunk-5EBLANFT.js} +1 -1
- package/{chunk-3AH7LNUB.js → chunk-5EMSBTQ6.js} +33 -14
- package/{chunk-YRRASA5Q.js → chunk-5MM7NNO6.js} +113 -52
- package/chunk-5MMAK75Q.js +15 -0
- package/{chunk-M5PVFLD4.js → chunk-64K7WX26.js} +90 -21
- package/{chunk-AKG5W4LG.js → chunk-6CCFTVBP.js} +76 -221
- package/chunk-6MJNEXUU.js +614 -0
- package/{chunk-62IL3KQV.js → chunk-6MXDOUMH.js} +15 -3
- package/{chunk-QOKAKDPE.js → chunk-6Q7UTJKR.js} +6 -94
- package/chunk-6QDYSCPW.js +223 -0
- package/{chunk-HYZIYH2H.js → chunk-74RAWNQN.js} +56 -63
- package/chunk-7DPNBQSV.js +9 -0
- package/chunk-7MOXKPHC.js +119 -0
- package/{chunk-ZUEK6A6C.js → chunk-7XKL25PW.js} +1973 -754
- package/{chunk-IAESIMK7.js → chunk-A4MW3YZL.js} +10 -14
- package/chunk-AGIM7IMJ.js +147 -0
- package/{chunk-7CHC4W22.js → chunk-AIZE5TDM.js} +3 -3
- package/{chunk-YAQJJDC2.js → chunk-AOCM7HPT.js} +214 -51
- package/{chunk-5GVBDNTO.js → chunk-AU7AXHUL.js} +1 -1
- package/{chunk-4H22P2JV.js → chunk-AUIJZACN.js} +2073 -1275
- package/{chunk-CIF4X6ZM.js → chunk-AWVFQMOV.js} +25 -3
- package/{chunk-RYZINGPM.js → chunk-BPMPOFWP.js} +347 -235
- package/{chunk-YUNJN43V.js → chunk-BU2YQBV4.js} +215 -28
- package/{chunk-XPRWFQQK.js → chunk-CBHGZRCE.js} +38 -12
- package/{chunk-Y3PMXGLH.js → chunk-CHCS6XPJ.js} +365 -144
- package/chunk-CHOZJMJS.js +78 -0
- package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
- package/{chunk-3SV7RM24.js → chunk-D2QN6CTI.js} +117 -72
- package/{chunk-5TEEECZM.js → chunk-E2AKSW7L.js} +10 -7
- package/{chunk-RSEEDUMS.js → chunk-EDX5XSJM.js} +2 -2
- package/{chunk-ATLTFRYJ.js → chunk-ES633ZS5.js} +280 -98
- package/{chunk-QDSINZM3.js → chunk-EUGTFFO6.js} +2 -23
- package/{chunk-UNYJU5L6.js → chunk-EYLGAEB4.js} +5 -1
- package/{chunk-CU3QB4HW.js → chunk-EYWJT7A2.js} +12 -12
- package/{chunk-BNGW5ASC.js → chunk-EZVK3N5L.js} +66 -18
- package/{chunk-6FGTMQCL.js → chunk-F32Z66T4.js} +6 -10
- package/chunk-FJMRBOPO.js +11507 -0
- package/{chunk-ZOVKKMF6.js → chunk-FY4SDK2E.js} +1 -1
- package/chunk-G6OOUQWJ.js +417 -0
- package/{chunk-PQWU42UQ.js → chunk-GCKHQECX.js} +6 -6
- package/chunk-GKXCHNTE.js +15 -0
- package/{chunk-TXH4IWJL.js → chunk-GQN2WLAI.js} +20 -11
- package/{chunk-P6GMCCAT.js → chunk-GQV5KHJU.js} +78 -12
- package/{chunk-B2XUQXQX.js → chunk-HIQ4GF53.js} +191 -68
- package/{chunk-MST6R3E4.js → chunk-HKX3ULQB.js} +34 -22
- package/{chunk-GMZLP5DV.js → chunk-HNUWUO75.js} +30 -19
- package/{chunk-5UTFL4QJ.js → chunk-I2ZMGXXF.js} +10 -5
- package/chunk-I42VC5KR.js +15 -0
- package/{chunk-3BXNTXYI.js → chunk-I4SN4NUQ.js} +1199 -56
- package/chunk-IA7TRNNR.js +11 -0
- package/{chunk-WIWM4FE3.js → chunk-IJERIUXS.js} +55 -748
- package/{chunk-CPUFH46E.js → chunk-ILU2NPWY.js} +10 -10
- package/{chunk-SLLGJZDT.js → chunk-ISQL4V7C.js} +4 -4
- package/chunk-IT3ZZRJE.js +12 -0
- package/{chunk-TZZ2WRBL.js → chunk-IZ7OJB6K.js} +20 -16
- package/{chunk-DY7ANLKG.js → chunk-JKMLSTZK.js} +43 -12
- package/{chunk-6TPOEJMQ.js → chunk-JZX2XLKC.js} +64 -23
- package/{chunk-27ONFIEY.js → chunk-K2AER7RX.js} +19 -12
- package/{chunk-O2OWEFII.js → chunk-KFHQQ3NO.js} +1 -1
- package/{chunk-QXGPFY6J.js → chunk-LGN377P3.js} +27 -17
- package/{chunk-L36OWPP3.js → chunk-LIQJTQRN.js} +118 -139
- package/{chunk-UASIEDKM.js → chunk-LTRUTOHX.js} +36 -31
- package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
- package/{chunk-5J3PYNUP.js → chunk-NYYFIKHI.js} +17 -3
- package/{chunk-6O4IK4V2.js → chunk-OFFL4DCR.js} +1 -1
- package/{chunk-B6SAMB33.js → chunk-OWYYDMGJ.js} +209 -9
- package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
- package/{chunk-CTUQJVQM.js → chunk-P5QACQDK.js} +1 -1
- package/{chunk-DXHL7G2L.js → chunk-PCKVQXYV.js} +274 -93
- package/{chunk-4JMDLJAD.js → chunk-PJNFNEJE.js} +114 -37
- package/{chunk-Z4CSIXYP.js → chunk-PLSVXHSA.js} +3 -3
- package/{chunk-BIDGLJQ3.js → chunk-PLXDDGBK.js} +45 -8
- package/chunk-PWTNI4N7.js +47 -0
- package/chunk-QFEW2ULV.js +42 -0
- package/{chunk-RGNEEJ3Y.js → chunk-QLQ573SU.js} +35 -9
- package/chunk-QQ56R7KS.js +88 -0
- package/chunk-QYPE3TS3.js +43 -0
- package/{chunk-4DPP773Q.js → chunk-RSHPU4PD.js} +59 -11
- package/chunk-RVWMAFIT.js +134 -0
- package/{chunk-ESHYE7WU.js → chunk-S73EPYNC.js} +10 -7
- package/{chunk-UQNS32WZ.js → chunk-SCMHQUMK.js} +1 -1
- package/{chunk-HTVYCXBP.js → chunk-SMENBO3M.js} +354 -120
- package/{chunk-OMRJYNCI.js → chunk-SSFDFOVT.js} +26 -31
- package/chunk-SW4S4XYB.js +1794 -0
- package/{chunk-TB3MIBRC.js → chunk-T6X3D7NB.js} +572 -430
- package/chunk-TY3TIUJK.js +89 -0
- package/{chunk-X2QRZXZH.js → chunk-TYJ5XFEA.js} +4 -4
- package/{chunk-ALFH24P3.js → chunk-TYYRSFBG.js} +197 -155
- package/{chunk-7KVZ5LDQ.js → chunk-UBUH2TCC.js} +18 -4
- package/chunk-UEILX4EV.js +15 -0
- package/chunk-UHTDNB5Y.js +140 -0
- package/{chunk-YYLHWIW6.js → chunk-UKZX3NHN.js} +1 -1
- package/{chunk-OHOVNO7I.js → chunk-UOKFKFPO.js} +6 -3
- package/{chunk-XISEYOGH.js → chunk-USHQX6VT.js} +5 -5
- package/chunk-UUPR3TD7.js +53 -0
- package/{chunk-HDLLCBRF.js → chunk-VEA7H5FG.js} +2 -2
- package/chunk-VHGD6FHV.js +116 -0
- package/chunk-VIWDGTDA.js +8 -0
- package/{chunk-GOH6RW6F.js → chunk-VJXHL6MH.js} +34 -11
- package/{chunk-4XEYAFLY.js → chunk-VL5KOY2C.js} +623 -94
- package/{chunk-EADNWBAZ.js → chunk-VP3BINY7.js} +13 -0
- package/{chunk-EOARMOVD.js → chunk-W4S6OTSC.js} +6 -3
- package/chunk-WD4XYDYC.js +567 -0
- package/chunk-WJZOQR2J.js +151 -0
- package/{chunk-AUDNYVRC.js → chunk-XETG4RIX.js} +5 -5
- package/{chunk-MX574M24.js → chunk-XI7DGLUK.js} +4 -4
- package/{chunk-3L2WKC3W.js → chunk-XPWGOTBQ.js} +8 -1
- package/chunk-XRUSXPCQ.js +514 -0
- package/{chunk-I4OPU5TK.js → chunk-XS47QOFV.js} +273 -11
- package/{chunk-S5XGT6GB.js → chunk-XZNCX52W.js} +30 -9
- package/{chunk-ID7LNBWR.js → chunk-Y2DXOPSO.js} +1920 -644
- package/{chunk-5OA5HMTL.js → chunk-YLMMECCH.js} +1 -1
- package/{chunk-CFT5HBGW.js → chunk-YVLQXTUB.js} +448 -12
- package/chunk-YVPQATSC.js +709 -0
- package/{chunk-3DAVPNFT.js → chunk-Z7OJUX6S.js} +122 -107
- package/chunk-ZEZC7IIM.js +126 -0
- package/{chunk-ALGORS6Y.js → chunk-ZF6526IQ.js} +43 -8
- package/chunk-ZIWPQEFU.js +165 -0
- package/chunk-ZKZ5X2HS.js +7012 -0
- package/chunk-ZRAU6T47.js +56 -0
- package/{cliExecutor-AWYR3T33.js → cliExecutor-BWBF2MTI.js} +4 -3
- package/{clipboardy-BX4NMYHE.js → clipboardy-GCO3GT3I.js} +3 -8
- package/{commandRegistry-2KBOXZQC.js → commandRegistry-XN7C5GHO.js} +183 -107
- package/contentThunks-5L7YQI3S.js +84 -0
- package/{cooldownCommands-ZLEPIB4A.js → cooldownCommands-JFKTYS2D.js} +2 -2
- package/{createAgentAutomationAction-5UGTB26P.js → createAgentAutomationAction-QOPOLCRK.js} +53 -44
- package/createDialogAction-MZ66VY5Q.js +76 -0
- package/{createPageAction-CDLDKPRM.js → createPageAction-VQDJIXMY.js} +65 -54
- package/cursorProvider-YGGNMVWX.js +6123 -0
- package/{db-VQSAOWAO.js → db-2QOTXYGH.js} +11 -5
- package/{dbSlice-DQ32LYTJ.js → dbSlice-J37OGIXH.js} +19 -13
- package/{deleteFile-NX6QHCWZ.js → deleteFile-6JWDDRVP.js} +10 -6
- package/dialogCommands-YZLSJB6X.js +113 -0
- package/{dialogSlice-N3YB65G5.js → dialogSlice-6RODVYCK.js} +53 -39
- package/{docCreateCommands-ZSLGVBZT.js → docCreateCommands-JB2RRMRJ.js} +54 -57
- package/{docDeleteCommands-5N4GVZBG.js → docDeleteCommands-AQENULNM.js} +56 -58
- package/{docReadCommands-YJSAA7AV.js → docReadCommands-DYD25YLQ.js} +53 -56
- package/{docStore-E3CEOV5Q.js → docStore-ZZA3OPM5.js} +25 -16
- package/{docUpdateCommands-WEMLSW6W.js → docUpdateCommands-3GVS23QL.js} +54 -57
- package/{fetchMessages-67MEFPZR.js → fetchMessages-IIJWQ3HR.js} +5 -4
- package/{getPricing-NMMFT3YI.js → getPricing-FKK3F5EJ.js} +11 -9
- package/{handleSendMessageAction-DQAD5ERJ.js → handleSendMessageAction-DVG5U26T.js} +422 -118
- package/index.js +11 -7
- package/{lib-FRRS27KN.js → lib-4YTWAGY7.js} +581 -248
- package/{localDialogRead-EBRS242U.js → localDialogRead-FSOMOPDZ.js} +2 -2
- package/localRuntimeAdapter-HXRHFKRC.js +244 -0
- package/localRuntimeAuthority-JDAD7CB6.js +16 -0
- package/{localRuntimeDb-3LRMNLCM.js → localRuntimeDb-CVC62PM5.js} +1 -1
- package/{machineCommands-HAP75VSG.js → machineCommands-5KBF4RCC.js} +503 -161
- package/{machineInfo-66ZFUMLE.js → machineInfo-UKPTZO5Y.js} +2 -2
- package/machineWsRunDispatch-4OQDEDOR.js +169 -0
- package/{memberThunks-5ZXPR63F.js → memberThunks-66DH6ABQ.js} +25 -18
- package/{models-ZPU5EDF4.js → models-LAS4B2B5.js} +2 -2
- package/package.json +1 -1
- package/{providerPresetApply-DD6NGWW6.js → providerPresetApply-MY66I6NT.js} +10 -10
- package/{providerRegistry-XDRLMYGJ.js → providerRegistry-QOE2FT57.js} +13 -9
- package/{read-EPTJRAEF.js → read-DC4NUGN6.js} +12 -8
- package/{readDocTool-W4NDXNEX.js → readDocTool-NCJ5NT25.js} +1 -1
- package/{readlineWorkspace-7BC66QSX.js → readlineWorkspace-RIE62QVZ.js} +5022 -921
- package/{removeDialogAgentAction-OSYNZRX7.js → removeDialogAgentAction-E2H3OZU6.js} +29 -28
- package/{runAgentClientLoop-6E6UC3CE.js → runAgentClientLoop-KLUUXBZS.js} +154 -97
- package/{runtimeDoctorCommands-ID23PNNZ.js → runtimeDoctorCommands-GIOGC5SC.js} +17 -17
- package/secretCommands-ZXZRLR3R.js +700 -0
- package/setDialogExtraReferencesAction-SITRPMYU.js +37 -0
- package/{setPrimaryDialogAgentAction-WZ7KI3YA.js → setPrimaryDialogAgentAction-U7N45TGC.js} +30 -29
- package/{chunk-SONWNI3L.js → settingThunks-Y7SVJOMZ.js} +223 -928
- package/{skillDiscovery-ZBU76COE.js → skillDiscovery-QC35EQY4.js} +2 -2
- package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
- package/{spaceCommands-UJOVU4XI.js → spaceCommands-ZR5BR3GX.js} +59 -59
- package/{streamAgentChatTurn-3UXPYFNX.js → streamAgentChatTurn-MN2SSPGA.js} +309 -165
- package/{switchDialogAgentAction-GMR7WN3P.js → switchDialogAgentAction-OMGBD3N2.js} +26 -22
- package/{tableCommands-G7RV3RU3.js → tableCommands-U3QDY4L6.js} +19 -17
- package/{toolApiClient-CVGWM4PN.js → toolApiClient-7WSJJJBV.js} +6 -5
- package/tools-W2MOLERY.js +124 -0
- package/tuiSummaryLlmCaller-BM3VSTBU.js +130 -0
- package/{updateCommands-4EHDLF5J.js → updateCommands-NQXAGFM7.js} +3 -3
- package/{updateDialogTitleAction-UPFV7TDT.js → updateDialogTitleAction-Z4JX6REN.js} +102 -57
- package/workloadLifecycle-36DXRZKU.js +320 -0
- package/action-GI44T4DR.js +0 -31
- package/agentListCommands-IW3GQVUP.js +0 -427
- package/agentRecordCommands-VCA76W6B.js +0 -134
- package/agentRunCommand-YNLDKVR7.js +0 -161
- package/browser-image-compression-MFDTD7K6.js +0 -1763
- package/chatQueueReduxAdapter-TJRMXMYA.js +0 -186
- package/chromeOpsCommands-IXRLN57H.js +0 -289
- package/chunk-36KZDDO5.js +0 -2415
- package/chunk-ACQD6YI2.js +0 -25363
- package/chunk-CQ3WA2NE.js +0 -299
- package/chunk-CYSYR67N.js +0 -93
- package/chunk-JBTJAPUF.js +0 -35
- package/chunk-K2CSUCHJ.js +0 -620
- package/chunk-LTRXGFMS.js +0 -83
- package/chunk-M76ECQRD.js +0 -13658
- package/chunk-MEYIRKDN.js +0 -8967
- package/chunk-OCZKATRC.js +0 -129
- package/chunk-OTGFTBLI.js +0 -13
- package/chunk-PUOC4YRO.js +0 -394
- package/chunk-PZZTFEKK.js +0 -34
- package/chunk-URMS4XY2.js +0 -10
- package/chunk-UV6VISQJ.js +0 -20
- package/chunk-VJVNU77E.js +0 -83
- package/chunk-XYJSY4KG.js +0 -13807
- package/chunk-Y5GCAMGP.js +0 -9
- package/chunk-YPREESF4.js +0 -225
- package/contentThunks-BDIQRZR6.js +0 -73
- package/createDialogAction-B7VGVEVU.js +0 -66
- package/dialogCommands-G7YBVAMC.js +0 -102
- package/levelLazyShim-GZBKODGI.js +0 -7
- package/machineWsRunDispatch-L32G7C4P.js +0 -149
- package/serverStoreFactory-YMXDF4NI.js +0 -20
- package/setDialogExtraReferencesAction-M32UYNCG.js +0 -30
- package/settingSlice-Q6EKL7EQ.js +0 -204
- package/syncMapping-N6RGXGBW.js +0 -437
- package/tools-MKYDMWA4.js +0 -111
- package/tuiSummaryLlmCaller-3YFNHCTW.js +0 -128
- package/{chunk-SV5IJK6K.js → chunk-NBTY7YJF.js} +3 -3
- package/{chunk-2SYTUTLI.js → chunk-YBNHPX4S.js} +3 -3
- package/{offlineMarxistsAgentCommand-HGXZV4XJ.js → offlineMarxistsAgentCommand-2QTHJCHV.js} +4 -4
|
@@ -14,7 +14,7 @@ function buildCliLocalRuntimeDbEnv(env = process.env) {
|
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
async function getDefaultCliLocalRuntimeDb(options = {}) {
|
|
17
|
-
const { getDefaultCliLocalRuntimeDb: getAuthorityBackedDb } = await import("./localRuntimeAuthority-
|
|
17
|
+
const { getDefaultCliLocalRuntimeDb: getAuthorityBackedDb } = await import("./localRuntimeAuthority-JDAD7CB6.js");
|
|
18
18
|
return getAuthorityBackedDb(options);
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
import {
|
|
2
|
+
describeAttachmentForModel
|
|
3
|
+
} from "./chunk-WJZOQR2J.js";
|
|
4
|
+
|
|
5
|
+
// packages/ai/attachments/projectUserPart.ts
|
|
6
|
+
var isRecord = (value) => typeof value === "object" && value !== null;
|
|
7
|
+
var projectUserPartForModel = (part) => {
|
|
8
|
+
if (!isRecord(part) || typeof part.type !== "string") return [];
|
|
9
|
+
if (part.type === "text") {
|
|
10
|
+
return typeof part.text === "string" && part.text.trim() ? [part] : [];
|
|
11
|
+
}
|
|
12
|
+
if (part.type === "image_url") {
|
|
13
|
+
return isRecord(part.image_url) && typeof part.image_url.url === "string" && part.image_url.url.trim() ? [part] : [];
|
|
14
|
+
}
|
|
15
|
+
if (part.type === "attachment") return [{ type: "text", text: describeAttachmentForModel(part) }];
|
|
16
|
+
if (part.type === "media_job") {
|
|
17
|
+
const name = typeof part.name === "string" && part.name.trim() ? part.name.trim() : "\u672A\u547D\u540D\u6587\u4EF6";
|
|
18
|
+
const jobId = typeof part.jobId === "string" ? part.jobId : typeof part.id === "string" ? part.id : "";
|
|
19
|
+
return [{ type: "text", text: `[\u5A92\u4F53\u9644\u4EF6] \u6587\u4EF6=${name}${jobId ? ` jobId=${jobId}` : ""}` }];
|
|
20
|
+
}
|
|
21
|
+
if (typeof part.pageKey === "string" && ["page", "pdf", "docx"].includes(part.type)) return [];
|
|
22
|
+
return [{ type: "text", text: `[\u672A\u8BC6\u522B\u7684\u9644\u4EF6\u7C7B\u578B: ${part.type}]` }];
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// packages/agent-runtime/outboundRequestDiagnostics.ts
|
|
26
|
+
var OUTBOUND_DIAGNOSTIC_PREFIX = "[outbound-diagnostic]";
|
|
27
|
+
var OUTBOUND_DIAGNOSTICS_ENV = "NOLO_OUTBOUND_DIAGNOSTICS";
|
|
28
|
+
var MAX_PROVIDER_TOKEN_LENGTH = 96;
|
|
29
|
+
var MAX_CALL_ID_LENGTH = 128;
|
|
30
|
+
var MAX_UPSTREAM_REQUEST_ID_LENGTH = 128;
|
|
31
|
+
var IDENTIFIER_PATTERN = /^[A-Za-z0-9._:@+/~-]+$/;
|
|
32
|
+
var REQUEST_ID_PATTERN = /^[A-Za-z0-9._:-]+$/;
|
|
33
|
+
var CONTROL_CHAR_PATTERN = /[\u0000-\u001f\u007f]/;
|
|
34
|
+
var UPSTREAM_REQUEST_ID_HEADERS = ["x-request-id", "request-id"];
|
|
35
|
+
var THINKING_VALUES = /* @__PURE__ */ new Set([
|
|
36
|
+
"enabled",
|
|
37
|
+
"disabled",
|
|
38
|
+
"unspecified",
|
|
39
|
+
"other"
|
|
40
|
+
]);
|
|
41
|
+
var REASONING_EFFORT_VALUES = /* @__PURE__ */ new Set([
|
|
42
|
+
"none",
|
|
43
|
+
"minimal",
|
|
44
|
+
"low",
|
|
45
|
+
"medium",
|
|
46
|
+
"high",
|
|
47
|
+
"xhigh",
|
|
48
|
+
"unspecified",
|
|
49
|
+
"other"
|
|
50
|
+
]);
|
|
51
|
+
var ERROR_CATEGORY_VALUES = /* @__PURE__ */ new Set([
|
|
52
|
+
"none",
|
|
53
|
+
"reasoning-contract",
|
|
54
|
+
"invalid-request",
|
|
55
|
+
"authentication",
|
|
56
|
+
"rate-limit",
|
|
57
|
+
"upstream",
|
|
58
|
+
"other"
|
|
59
|
+
]);
|
|
60
|
+
var TERMINAL_OUTCOME_VALUES = /* @__PURE__ */ new Set([
|
|
61
|
+
"completed",
|
|
62
|
+
"http-error",
|
|
63
|
+
"network-error",
|
|
64
|
+
"aborted",
|
|
65
|
+
"stream-error"
|
|
66
|
+
]);
|
|
67
|
+
var SEAM_VALUES = /* @__PURE__ */ new Set([
|
|
68
|
+
"local-runtime",
|
|
69
|
+
"chat",
|
|
70
|
+
"server-loop"
|
|
71
|
+
]);
|
|
72
|
+
var WIRE_VALUES = /* @__PURE__ */ new Set(["chat.completions", "responses"]);
|
|
73
|
+
var HOST_VALUES = /* @__PURE__ */ new Set(["client", "server"]);
|
|
74
|
+
function isRawIdentifierAcceptable(value, maxLength) {
|
|
75
|
+
if (typeof value !== "string") return false;
|
|
76
|
+
if (value.length === 0) return false;
|
|
77
|
+
if (value.length > maxLength) return false;
|
|
78
|
+
if (CONTROL_CHAR_PATTERN.test(value)) return false;
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
function sanitizeProviderModelToken(value) {
|
|
82
|
+
if (!isRawIdentifierAcceptable(value, MAX_PROVIDER_TOKEN_LENGTH)) return "other";
|
|
83
|
+
const normalized = value.trim();
|
|
84
|
+
if (!normalized || !IDENTIFIER_PATTERN.test(normalized)) return "other";
|
|
85
|
+
return normalized;
|
|
86
|
+
}
|
|
87
|
+
function sanitizeCallId(value) {
|
|
88
|
+
if (!isRawIdentifierAcceptable(value, MAX_CALL_ID_LENGTH)) return void 0;
|
|
89
|
+
const normalized = value.trim();
|
|
90
|
+
if (!normalized || !REQUEST_ID_PATTERN.test(normalized)) return void 0;
|
|
91
|
+
return normalized;
|
|
92
|
+
}
|
|
93
|
+
function sanitizeUpstreamRequestId(value) {
|
|
94
|
+
if (!isRawIdentifierAcceptable(value, MAX_UPSTREAM_REQUEST_ID_LENGTH)) return void 0;
|
|
95
|
+
const normalized = value.trim();
|
|
96
|
+
if (!normalized || !REQUEST_ID_PATTERN.test(normalized)) return void 0;
|
|
97
|
+
return normalized;
|
|
98
|
+
}
|
|
99
|
+
function pickUpstreamRequestId(headers) {
|
|
100
|
+
if (!headers || typeof headers.get !== "function") return void 0;
|
|
101
|
+
try {
|
|
102
|
+
for (const name of UPSTREAM_REQUEST_ID_HEADERS) {
|
|
103
|
+
const raw = headers.get(name);
|
|
104
|
+
const safe = sanitizeUpstreamRequestId(raw);
|
|
105
|
+
if (safe) return safe;
|
|
106
|
+
}
|
|
107
|
+
} catch {
|
|
108
|
+
return void 0;
|
|
109
|
+
}
|
|
110
|
+
return void 0;
|
|
111
|
+
}
|
|
112
|
+
function classifyOutboundErrorCategory(status, errorText) {
|
|
113
|
+
const numeric = typeof status === "number" && Number.isFinite(status) ? status : 0;
|
|
114
|
+
if (numeric === 401 || numeric === 403) return "authentication";
|
|
115
|
+
if (numeric === 429) return "rate-limit";
|
|
116
|
+
if (numeric >= 500) return "upstream";
|
|
117
|
+
const text = typeof errorText === "string" ? errorText : "";
|
|
118
|
+
if (numeric >= 400) {
|
|
119
|
+
if (looksLikeReasoningContractError(text)) return "reasoning-contract";
|
|
120
|
+
return "invalid-request";
|
|
121
|
+
}
|
|
122
|
+
if (numeric === 0) return "other";
|
|
123
|
+
return numeric >= 200 && numeric < 300 ? "none" : "other";
|
|
124
|
+
}
|
|
125
|
+
function looksLikeReasoningContractError(text) {
|
|
126
|
+
if (!text) return false;
|
|
127
|
+
if (!/reasoning_content|reasoning/i.test(text)) return false;
|
|
128
|
+
return /expected a sequence|invalid type|serde|deserializ|type error|missing field/i.test(text);
|
|
129
|
+
}
|
|
130
|
+
function createRequestShapingCounts() {
|
|
131
|
+
return {
|
|
132
|
+
assistantToolTurns: 0,
|
|
133
|
+
missingReasoningTurns: 0,
|
|
134
|
+
placeholderInjectedTurns: 0,
|
|
135
|
+
reasoningStrippedTurns: 0
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
function createRequestFacts() {
|
|
139
|
+
return {
|
|
140
|
+
assistantToolTurns: 0,
|
|
141
|
+
missingReasoningTurns: 0,
|
|
142
|
+
// 未观测:只有塑形直连点(collector)能给出「本次注入」。
|
|
143
|
+
placeholderInjectedTurns: null,
|
|
144
|
+
reasoningStrippedTurns: null,
|
|
145
|
+
thinking: "unspecified",
|
|
146
|
+
reasoningEffort: "unspecified",
|
|
147
|
+
projection: { observed: false }
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
function applyShapingCounts(facts, counts) {
|
|
151
|
+
if (!counts) return facts;
|
|
152
|
+
facts.assistantToolTurns = toCount(counts.assistantToolTurns);
|
|
153
|
+
facts.missingReasoningTurns = toCount(counts.missingReasoningTurns);
|
|
154
|
+
facts.placeholderInjectedTurns = toCount(counts.placeholderInjectedTurns);
|
|
155
|
+
facts.reasoningStrippedTurns = toCount(counts.reasoningStrippedTurns);
|
|
156
|
+
return facts;
|
|
157
|
+
}
|
|
158
|
+
function attachProjectionFacts(facts, stats) {
|
|
159
|
+
if (!stats) {
|
|
160
|
+
facts.projection = { observed: false };
|
|
161
|
+
return facts;
|
|
162
|
+
}
|
|
163
|
+
facts.projection = {
|
|
164
|
+
observed: true,
|
|
165
|
+
badArguments: {
|
|
166
|
+
truncated: toCount(stats.badArguments?.truncated),
|
|
167
|
+
malformed: toCount(stats.badArguments?.malformed)
|
|
168
|
+
},
|
|
169
|
+
rewrittenToolCalls: toCount(stats.rewrittenToolCalls),
|
|
170
|
+
rewrittenAssistantMessages: toCount(stats.rewrittenAssistantMessages),
|
|
171
|
+
rewrittenToolMessages: toCount(stats.rewrittenToolMessages)
|
|
172
|
+
};
|
|
173
|
+
return facts;
|
|
174
|
+
}
|
|
175
|
+
function writeThinkingFacts(facts, body) {
|
|
176
|
+
const record = asRecord(body);
|
|
177
|
+
facts.thinking = resolveThinkingEnum(record);
|
|
178
|
+
facts.reasoningEffort = resolveReasoningEffortEnum(record);
|
|
179
|
+
return facts;
|
|
180
|
+
}
|
|
181
|
+
function resolveThinkingEnum(body) {
|
|
182
|
+
const thinking = asRecord(body.thinking);
|
|
183
|
+
if (typeof thinking.type === "string") {
|
|
184
|
+
const type = thinking.type.trim().toLowerCase();
|
|
185
|
+
if (type === "enabled") return "enabled";
|
|
186
|
+
if (type === "disabled") return "disabled";
|
|
187
|
+
return "other";
|
|
188
|
+
}
|
|
189
|
+
const chatTemplateKwargs = asRecord(body.chat_template_kwargs);
|
|
190
|
+
const enableThinking = body.enable_thinking ?? chatTemplateKwargs.enable_thinking;
|
|
191
|
+
if (typeof enableThinking === "boolean") return enableThinking ? "enabled" : "disabled";
|
|
192
|
+
return "unspecified";
|
|
193
|
+
}
|
|
194
|
+
function resolveReasoningEffortEnum(body) {
|
|
195
|
+
const raw = body.reasoning_effort;
|
|
196
|
+
if (typeof raw === "string") {
|
|
197
|
+
const value = raw.trim().toLowerCase();
|
|
198
|
+
if (REASONING_EFFORT_VALUES.has(value)) return value;
|
|
199
|
+
return "other";
|
|
200
|
+
}
|
|
201
|
+
const reasoning = asRecord(body.reasoning);
|
|
202
|
+
if (reasoning.enabled === false) return "none";
|
|
203
|
+
return "unspecified";
|
|
204
|
+
}
|
|
205
|
+
function deriveRequestFactsFromBody(body, shapingCounts) {
|
|
206
|
+
const facts = createRequestFacts();
|
|
207
|
+
writeThinkingFacts(facts, body);
|
|
208
|
+
const messages = extractMessages(body);
|
|
209
|
+
if (messages) {
|
|
210
|
+
for (const message of messages) {
|
|
211
|
+
const record = asRecord(message);
|
|
212
|
+
if (record.role !== "assistant") continue;
|
|
213
|
+
const toolCalls = record.tool_calls;
|
|
214
|
+
if (!Array.isArray(toolCalls) || toolCalls.length === 0) continue;
|
|
215
|
+
facts.assistantToolTurns += 1;
|
|
216
|
+
const reasoning = typeof record.reasoning_content === "string" ? record.reasoning_content : "";
|
|
217
|
+
if (reasoning.length === 0) {
|
|
218
|
+
facts.missingReasoningTurns += 1;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return applyShapingCounts(facts, shapingCounts);
|
|
223
|
+
}
|
|
224
|
+
function extractMessages(body) {
|
|
225
|
+
const record = asRecord(body);
|
|
226
|
+
if (Array.isArray(record.messages)) return record.messages;
|
|
227
|
+
if (Array.isArray(record.input)) return record.input;
|
|
228
|
+
return void 0;
|
|
229
|
+
}
|
|
230
|
+
function resolveOutboundWire(value, explicit) {
|
|
231
|
+
if (explicit) return explicit;
|
|
232
|
+
const text = typeof value === "string" ? value : "";
|
|
233
|
+
return /\/responses(?:[/?#]|$)/.test(text) ? "responses" : "chat.completions";
|
|
234
|
+
}
|
|
235
|
+
function isOutboundDiagnosticsEnabled(env = readProcessEnv()) {
|
|
236
|
+
return env?.[OUTBOUND_DIAGNOSTICS_ENV] === "1";
|
|
237
|
+
}
|
|
238
|
+
function readProcessEnv() {
|
|
239
|
+
if (typeof process === "undefined") return void 0;
|
|
240
|
+
return process.env;
|
|
241
|
+
}
|
|
242
|
+
function createConsoleOutboundDiagnosticSink(log = defaultLog) {
|
|
243
|
+
return (event) => {
|
|
244
|
+
try {
|
|
245
|
+
const serialized = serializeOutboundDiagnosticEvent(event);
|
|
246
|
+
log(`${OUTBOUND_DIAGNOSTIC_PREFIX} ${JSON.stringify(serialized)}`);
|
|
247
|
+
} catch {
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
function defaultLog(...args) {
|
|
252
|
+
console.log(...args);
|
|
253
|
+
}
|
|
254
|
+
function resolveOutboundDiagnosticSink(option) {
|
|
255
|
+
if (option?.sink) return option.sink;
|
|
256
|
+
if (option?.enabled === false) return void 0;
|
|
257
|
+
if (option?.enabled === true) return createConsoleOutboundDiagnosticSink();
|
|
258
|
+
if (isOutboundDiagnosticsEnabled()) return createConsoleOutboundDiagnosticSink();
|
|
259
|
+
return void 0;
|
|
260
|
+
}
|
|
261
|
+
function createOutboundDiagnosticCallId() {
|
|
262
|
+
return `obd_${Math.random().toString(36).slice(2, 10)}${Date.now().toString(36)}`;
|
|
263
|
+
}
|
|
264
|
+
function createOutboundDiagnosticCall(args) {
|
|
265
|
+
const callId = sanitizeCallId(args.callId) ?? createOutboundDiagnosticCallId();
|
|
266
|
+
const base = {
|
|
267
|
+
callId,
|
|
268
|
+
seam: args.seam,
|
|
269
|
+
host: args.host,
|
|
270
|
+
wire: args.wire,
|
|
271
|
+
provider: sanitizeProviderModelToken(args.provider),
|
|
272
|
+
model: sanitizeProviderModelToken(args.model)
|
|
273
|
+
};
|
|
274
|
+
return {
|
|
275
|
+
callId,
|
|
276
|
+
dispatch(attempt, facts) {
|
|
277
|
+
emitOutboundDiagnostic(args.sink, {
|
|
278
|
+
...base,
|
|
279
|
+
version: 1,
|
|
280
|
+
phase: "dispatch",
|
|
281
|
+
attempt: toAttempt(attempt),
|
|
282
|
+
facts
|
|
283
|
+
});
|
|
284
|
+
},
|
|
285
|
+
httpResult(attempt, result) {
|
|
286
|
+
const upstreamRequestId = pickUpstreamRequestId(result.headers);
|
|
287
|
+
const providerCallId = sanitizeCallId(result.providerCallId);
|
|
288
|
+
emitOutboundDiagnostic(args.sink, {
|
|
289
|
+
...base,
|
|
290
|
+
version: 1,
|
|
291
|
+
phase: "http-result",
|
|
292
|
+
attempt: toAttempt(attempt),
|
|
293
|
+
status: toStatus(result.status),
|
|
294
|
+
errorCategory: result.errorCategory ?? classifyOutboundErrorCategory(result.status),
|
|
295
|
+
...providerCallId ? { providerCallId } : {},
|
|
296
|
+
...upstreamRequestId ? { upstreamRequestId } : {}
|
|
297
|
+
});
|
|
298
|
+
},
|
|
299
|
+
terminal(attempt, outcome, providerCallId) {
|
|
300
|
+
const safeProviderCallId = sanitizeCallId(providerCallId);
|
|
301
|
+
emitOutboundDiagnostic(args.sink, {
|
|
302
|
+
...base,
|
|
303
|
+
version: 1,
|
|
304
|
+
phase: "terminal",
|
|
305
|
+
attempt: toAttempt(attempt),
|
|
306
|
+
outcome,
|
|
307
|
+
...safeProviderCallId ? { providerCallId: safeProviderCallId } : {}
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
function emitOutboundDiagnostic(sink, event) {
|
|
313
|
+
if (!sink) return;
|
|
314
|
+
try {
|
|
315
|
+
sink(event);
|
|
316
|
+
} catch {
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
function serializeOutboundDiagnosticEvent(event) {
|
|
320
|
+
const record = event;
|
|
321
|
+
const out = {
|
|
322
|
+
version: 1,
|
|
323
|
+
phase: toEnum(record.phase, /* @__PURE__ */ new Set(["dispatch", "http-result", "terminal"]), "dispatch"),
|
|
324
|
+
callId: sanitizeCallId(record.callId) ?? "unknown",
|
|
325
|
+
attempt: toAttempt(record.attempt),
|
|
326
|
+
seam: toEnum(record.seam, SEAM_VALUES, void 0) ?? void 0,
|
|
327
|
+
host: toEnum(record.host, HOST_VALUES, void 0) ?? void 0,
|
|
328
|
+
wire: toEnum(record.wire, WIRE_VALUES, void 0) ?? void 0,
|
|
329
|
+
provider: sanitizeProviderModelToken(record.provider),
|
|
330
|
+
model: sanitizeProviderModelToken(record.model)
|
|
331
|
+
};
|
|
332
|
+
const providerCallId = sanitizeCallId(record.providerCallId);
|
|
333
|
+
if (providerCallId) out.providerCallId = providerCallId;
|
|
334
|
+
if (out.phase === "dispatch") {
|
|
335
|
+
out.facts = serializeRequestFacts(record.facts);
|
|
336
|
+
} else if (out.phase === "http-result") {
|
|
337
|
+
out.status = toStatus(record.status);
|
|
338
|
+
out.errorCategory = toEnum(
|
|
339
|
+
record.errorCategory,
|
|
340
|
+
ERROR_CATEGORY_VALUES,
|
|
341
|
+
"other"
|
|
342
|
+
);
|
|
343
|
+
const upstreamRequestId = sanitizeUpstreamRequestId(record.upstreamRequestId);
|
|
344
|
+
if (upstreamRequestId) out.upstreamRequestId = upstreamRequestId;
|
|
345
|
+
} else {
|
|
346
|
+
out.outcome = toEnum(record.outcome, TERMINAL_OUTCOME_VALUES, "other");
|
|
347
|
+
}
|
|
348
|
+
for (const key of Object.keys(out)) {
|
|
349
|
+
if (out[key] === void 0) delete out[key];
|
|
350
|
+
}
|
|
351
|
+
return out;
|
|
352
|
+
}
|
|
353
|
+
function serializeRequestFacts(value) {
|
|
354
|
+
const record = asRecord(value);
|
|
355
|
+
const projection = asRecord(record.projection);
|
|
356
|
+
const output = {
|
|
357
|
+
assistantToolTurns: toCount(record.assistantToolTurns),
|
|
358
|
+
missingReasoningTurns: toCount(record.missingReasoningTurns),
|
|
359
|
+
placeholderInjectedTurns: typeof record.placeholderInjectedTurns === "number" ? toCount(record.placeholderInjectedTurns) : null,
|
|
360
|
+
reasoningStrippedTurns: typeof record.reasoningStrippedTurns === "number" ? toCount(record.reasoningStrippedTurns) : null,
|
|
361
|
+
thinking: toEnum(record.thinking, THINKING_VALUES, "unspecified"),
|
|
362
|
+
reasoningEffort: toEnum(
|
|
363
|
+
record.reasoningEffort,
|
|
364
|
+
REASONING_EFFORT_VALUES,
|
|
365
|
+
"unspecified"
|
|
366
|
+
)
|
|
367
|
+
};
|
|
368
|
+
if (projection.observed === true) {
|
|
369
|
+
const bad = asRecord(projection.badArguments);
|
|
370
|
+
output.projection = {
|
|
371
|
+
observed: true,
|
|
372
|
+
badArguments: {
|
|
373
|
+
truncated: toCount(bad.truncated),
|
|
374
|
+
malformed: toCount(bad.malformed)
|
|
375
|
+
},
|
|
376
|
+
rewrittenToolCalls: toCount(projection.rewrittenToolCalls),
|
|
377
|
+
rewrittenAssistantMessages: toCount(projection.rewrittenAssistantMessages),
|
|
378
|
+
rewrittenToolMessages: toCount(projection.rewrittenToolMessages)
|
|
379
|
+
};
|
|
380
|
+
} else {
|
|
381
|
+
output.projection = { observed: false };
|
|
382
|
+
}
|
|
383
|
+
return output;
|
|
384
|
+
}
|
|
385
|
+
function toCount(value) {
|
|
386
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value < 0) return 0;
|
|
387
|
+
return Math.floor(value);
|
|
388
|
+
}
|
|
389
|
+
function toAttempt(value) {
|
|
390
|
+
const count = toCount(value);
|
|
391
|
+
return count > 0 ? count : 1;
|
|
392
|
+
}
|
|
393
|
+
function toStatus(value) {
|
|
394
|
+
if (typeof value !== "number" || !Number.isFinite(value)) return 0;
|
|
395
|
+
return Math.floor(value);
|
|
396
|
+
}
|
|
397
|
+
function toEnum(value, allowed, fallback) {
|
|
398
|
+
if (typeof value === "string" && allowed.has(value)) return value;
|
|
399
|
+
return fallback;
|
|
400
|
+
}
|
|
401
|
+
function asRecord(value) {
|
|
402
|
+
return value && typeof value === "object" ? value : {};
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
export {
|
|
406
|
+
projectUserPartForModel,
|
|
407
|
+
classifyOutboundErrorCategory,
|
|
408
|
+
createRequestShapingCounts,
|
|
409
|
+
createRequestFacts,
|
|
410
|
+
applyShapingCounts,
|
|
411
|
+
attachProjectionFacts,
|
|
412
|
+
writeThinkingFacts,
|
|
413
|
+
deriveRequestFactsFromBody,
|
|
414
|
+
resolveOutboundWire,
|
|
415
|
+
resolveOutboundDiagnosticSink,
|
|
416
|
+
createOutboundDiagnosticCall
|
|
417
|
+
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
findModelConfig,
|
|
3
3
|
getProviderByModelName
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import {
|
|
6
|
-
asTrimmedLowercaseString
|
|
7
|
-
} from "./chunk-QSJ3HFEF.js";
|
|
4
|
+
} from "./chunk-I4SN4NUQ.js";
|
|
8
5
|
import {
|
|
9
6
|
asOptionalTrimmedString
|
|
10
7
|
} from "./chunk-G3SUCT4W.js";
|
|
8
|
+
import {
|
|
9
|
+
asTrimmedLowercaseString
|
|
10
|
+
} from "./chunk-QSJ3HFEF.js";
|
|
11
11
|
|
|
12
12
|
// packages/ai/agent/toolOutputPolicy.ts
|
|
13
13
|
var MAX_IN_TURN_TOOL_CONTENT_CHARS = 4e3;
|
|
@@ -23,8 +23,8 @@ var TOOL_OUTPUT_PROFILES = {
|
|
|
23
23
|
execShell: { maxChars: 4e3, headRatio: 0.35 },
|
|
24
24
|
runCommand: { maxChars: 4e3, headRatio: 0.35 },
|
|
25
25
|
launchProcess: { maxChars: 2800, headRatio: 0.35 },
|
|
26
|
-
editFile: { maxChars:
|
|
27
|
-
writeFile: { maxChars:
|
|
26
|
+
editFile: { maxChars: 1200, headRatio: 0.62 },
|
|
27
|
+
writeFile: { maxChars: 1e3, headRatio: 0.62 },
|
|
28
28
|
readPastedText: { maxChars: 4800, headRatio: 0.5, historicalMaxChars: 4800 }
|
|
29
29
|
};
|
|
30
30
|
function resolveToolOutputProfile(toolName) {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BUILTIN_NOLO_AGENT_KEY
|
|
3
|
+
} from "./chunk-EZVK3N5L.js";
|
|
4
|
+
|
|
5
|
+
// packages/core/init.ts
|
|
6
|
+
var nolotusId = "0e95801d90";
|
|
7
|
+
var ADMIN_IDS = /* @__PURE__ */ new Set([nolotusId]);
|
|
8
|
+
var isSystemAdmin = (userId) => userId != null && ADMIN_IDS.has(userId);
|
|
9
|
+
var noloAgentId = BUILTIN_NOLO_AGENT_KEY;
|
|
10
|
+
|
|
11
|
+
export {
|
|
12
|
+
nolotusId,
|
|
13
|
+
isSystemAdmin,
|
|
14
|
+
noloAgentId
|
|
15
|
+
};
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
formatISO
|
|
3
|
+
} from "./chunk-ZRAU6T47.js";
|
|
4
4
|
import {
|
|
5
5
|
require_react
|
|
6
6
|
} from "./chunk-YDH3FDFQ.js";
|
|
7
|
-
import {
|
|
8
|
-
toErrorMessage
|
|
9
|
-
} from "./chunk-HNMXYYJR.js";
|
|
10
7
|
import {
|
|
11
8
|
patch,
|
|
12
9
|
readAndWait
|
|
13
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-74RAWNQN.js";
|
|
11
|
+
import {
|
|
12
|
+
toErrorMessage
|
|
13
|
+
} from "./chunk-HNMXYYJR.js";
|
|
14
14
|
import {
|
|
15
15
|
asOptionalTrimmedString
|
|
16
16
|
} from "./chunk-G3SUCT4W.js";
|
|
@@ -20,7 +20,6 @@ import {
|
|
|
20
20
|
|
|
21
21
|
// packages/render/page/docStore.ts
|
|
22
22
|
var import_react = __toESM(require_react(), 1);
|
|
23
|
-
var import_date_fns = __toESM(require_date_fns(), 1);
|
|
24
23
|
var createInitialState = () => ({
|
|
25
24
|
content: null,
|
|
26
25
|
slateData: null,
|
|
@@ -52,6 +51,7 @@ var createInitialState = () => ({
|
|
|
52
51
|
var listeners = /* @__PURE__ */ new Set();
|
|
53
52
|
var version = 0;
|
|
54
53
|
var state = createInitialState();
|
|
54
|
+
var latestInitRequestKey = null;
|
|
55
55
|
var notify = () => {
|
|
56
56
|
for (const listener of listeners) {
|
|
57
57
|
try {
|
|
@@ -102,6 +102,9 @@ function getDocField(selector) {
|
|
|
102
102
|
function getDocPageKey() {
|
|
103
103
|
return state.pageKey;
|
|
104
104
|
}
|
|
105
|
+
function isDocStateForPage(state2, pageKey) {
|
|
106
|
+
return Boolean(pageKey) && state2.pageKey === pageKey;
|
|
107
|
+
}
|
|
105
108
|
function getDocIsInitialized() {
|
|
106
109
|
return state.isInitialized;
|
|
107
110
|
}
|
|
@@ -143,6 +146,7 @@ function updateDocTags(tags) {
|
|
|
143
146
|
setState((prev) => ({ ...prev, tags }));
|
|
144
147
|
}
|
|
145
148
|
function resetDocState() {
|
|
149
|
+
latestInitRequestKey = null;
|
|
146
150
|
setState(createInitialState());
|
|
147
151
|
}
|
|
148
152
|
function previewDocState(payload) {
|
|
@@ -190,6 +194,7 @@ function applyExternalDocUpdate(payload) {
|
|
|
190
194
|
}
|
|
191
195
|
async function initDocState(args, { dispatch }) {
|
|
192
196
|
const { pageKey, isReadOnly } = args;
|
|
197
|
+
latestInitRequestKey = pageKey;
|
|
193
198
|
setState((prev) => ({
|
|
194
199
|
...createInitialState(),
|
|
195
200
|
isLoading: true,
|
|
@@ -198,6 +203,7 @@ async function initDocState(args, { dispatch }) {
|
|
|
198
203
|
}));
|
|
199
204
|
try {
|
|
200
205
|
const readAction = await dispatch(readAndWait(pageKey));
|
|
206
|
+
if (latestInitRequestKey !== pageKey) return;
|
|
201
207
|
if (readAndWait.fulfilled.match(readAction) && readAction.payload) {
|
|
202
208
|
const data = readAction.payload;
|
|
203
209
|
if (data.type !== "page" /* DOC */) {
|
|
@@ -247,6 +253,7 @@ async function initDocState(args, { dispatch }) {
|
|
|
247
253
|
}));
|
|
248
254
|
}
|
|
249
255
|
} catch (e) {
|
|
256
|
+
if (latestInitRequestKey !== pageKey) return;
|
|
250
257
|
setState((prev) => ({
|
|
251
258
|
...prev,
|
|
252
259
|
isLoading: false,
|
|
@@ -300,7 +307,7 @@ async function saveDocState(arg, { dispatch, getState }) {
|
|
|
300
307
|
{ slateToRenderMarkdown },
|
|
301
308
|
{ buildSkillSummaryMarker }
|
|
302
309
|
] = await Promise.all([
|
|
303
|
-
import("./slateUtils-
|
|
310
|
+
import("./slateUtils-NGV2NMKM.js"),
|
|
304
311
|
import("./slateToRenderMarkdown-Y5IYN73U.js"),
|
|
305
312
|
import("./skillSummaryMarker-42HKSXYY.js")
|
|
306
313
|
]);
|
|
@@ -309,7 +316,7 @@ async function saveDocState(arg, { dispatch, getState }) {
|
|
|
309
316
|
const skillSummary = buildSkillSummaryMarker(meta);
|
|
310
317
|
const content = slateToRenderMarkdown(slateData);
|
|
311
318
|
const now = /* @__PURE__ */ new Date();
|
|
312
|
-
const updatedAt =
|
|
319
|
+
const updatedAt = formatISO(now);
|
|
313
320
|
await dispatch(
|
|
314
321
|
patch({
|
|
315
322
|
dbKey: pageKey,
|
|
@@ -326,7 +333,7 @@ async function saveDocState(arg, { dispatch, getState }) {
|
|
|
326
333
|
).unwrap();
|
|
327
334
|
if (dbSpaceId) {
|
|
328
335
|
try {
|
|
329
|
-
const { updateContentTitle } = await import("./contentThunks-
|
|
336
|
+
const { updateContentTitle } = await import("./contentThunks-5L7YQI3S.js");
|
|
330
337
|
await dispatch(
|
|
331
338
|
updateContentTitle({
|
|
332
339
|
spaceId: dbSpaceId,
|
|
@@ -365,7 +372,7 @@ async function saveDocState(arg, { dispatch, getState }) {
|
|
|
365
372
|
}
|
|
366
373
|
}
|
|
367
374
|
async function createDocState(args, thunkApi) {
|
|
368
|
-
const { createPageAction } = await import("./createPageAction-
|
|
375
|
+
const { createPageAction } = await import("./createPageAction-VQDJIXMY.js");
|
|
369
376
|
return createPageAction(args, thunkApi);
|
|
370
377
|
}
|
|
371
378
|
function subscribe(listener) {
|
|
@@ -387,6 +394,7 @@ function useDocField(selector) {
|
|
|
387
394
|
}
|
|
388
395
|
function resetDocStoreForTests() {
|
|
389
396
|
state = createInitialState();
|
|
397
|
+
latestInitRequestKey = null;
|
|
390
398
|
bump();
|
|
391
399
|
}
|
|
392
400
|
|
|
@@ -394,6 +402,7 @@ export {
|
|
|
394
402
|
getDocState,
|
|
395
403
|
getDocField,
|
|
396
404
|
getDocPageKey,
|
|
405
|
+
isDocStateForPage,
|
|
397
406
|
getDocIsInitialized,
|
|
398
407
|
getDocIsReadOnly,
|
|
399
408
|
getDocHasPendingChanges,
|