nolo-cli 0.213.0 → 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-CUJLCFWR.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-WERAONNY.js → addContentAction-GDHDOF4U.js} +18 -17
- package/{addDialogAgentAction-7VI7YRML.js → addDialogAgentAction-CAKRU3ZT.js} +21 -20
- package/{agentDeleteCommand-XJORXPGU.js → agentDeleteCommand-BPV2XZL7.js} +128 -119
- package/{agentEmailCommands-XTYYFR6Z.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-OBLRBLHS.js → agentListCommands-HIZODBF3.js} +155 -92
- package/{agentMachineCommands-5FMT3OT5.js → agentMachineCommands-ZMQ2CY7Y.js} +62 -54
- 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-TAMHJQSR.js → agentRunControl-JNONH3RP.js} +30 -15
- package/{agentRuntimeLocal-SOO2OPJG.js → agentRuntimeLocal-QZPFWMLG.js} +52 -45
- package/{agentSlice-CHR6KOZN.js → agentSlice-RD2CDU7T.js} +20 -19
- package/{appDeleteCommands-GUP6P5YE.js → appDeleteCommands-QCCFDIEQ.js} +61 -53
- package/{appDeployCommands-MH2FX4O5.js → appDeployCommands-V2T7TNMQ.js} +61 -53
- package/{appDeployStatusCommands-SUHN3HPJ.js → appDeployStatusCommands-6PGH7ZCG.js} +61 -53
- package/{appGetCommands-YWDEX6Z4.js → appGetCommands-3L7WWJA6.js} +61 -53
- package/{appListCommands-ZQVMLPAY.js → appListCommands-ENJCK4PO.js} +61 -53
- package/{authCommand-PWX2ZNUP.js → authCommand-6V47SYGK.js} +29 -28
- package/{authCommands-HV3EAU3V.js → authCommands-GAJ3NIXO.js} +14 -13
- package/{builtinSkillRegistry-2QETTQPM.js → builtinSkillRegistry-2ECA42FC.js} +11 -13
- package/{chromeCommands-REEAH4SX.js → chromeCommands-G5UDKVSV.js} +3 -3
- package/{chromeOpsCommands-DIVM2K3T.js → chromeOpsCommands-YKX2QX3A.js} +20 -10
- package/{chunk-CRHOO2ZR.js → chunk-27PCUMJI.js} +2 -2
- package/chunk-2CI3ZFWD.js +97 -0
- package/{chunk-NSAPDIN2.js → chunk-2GJKRKI6.js} +541 -31
- package/{chunk-SM3NSZJV.js → chunk-2UCBGYO4.js} +20 -1
- package/{chunk-PYRUW7XN.js → chunk-2VUZSVAS.js} +136 -54
- package/{chunk-YB3YZK56.js → chunk-2WZXXAQD.js} +1 -67
- package/chunk-2YGBI2XB.js +30 -0
- package/chunk-2ZKFCIJJ.js +13 -0
- package/{chunk-QG4AOSON.js → chunk-34J5K2YA.js} +13 -32
- 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-INUFILG6.js → chunk-5RKUPJYL.js} +1 -1
- package/{chunk-ZC3CMUKU.js → chunk-6OVNSQHN.js} +84 -2
- package/{chunk-MOIJOHA5.js → chunk-6WU5572L.js} +36 -25
- package/{chunk-IXNGOHV5.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-NJLL224W.js → chunk-AD5EWDFD.js} +2 -2
- package/{chunk-J2NHJ7WX.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-ALQ3657A.js → chunk-AMEOV5VZ.js} +32 -12
- package/chunk-AN74ON4G.js +675 -0
- package/{chunk-HRMJUN5J.js → chunk-AQZ6BMRK.js} +1 -1
- package/{chunk-XHQC4PXX.js → chunk-B4GOW4MT.js} +424 -194
- 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-SVYO6AO7.js → chunk-BV3FLP2L.js} +41 -1
- package/{chunk-RZOV7OMV.js → chunk-C4VAR65S.js} +83 -141
- package/{chunk-COFEN36Z.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-X7SDOJUM.js → chunk-CMZ3Z5PT.js} +14 -14
- package/{secretCommands-LXDWOLZ6.js → chunk-D726I5AZ.js} +191 -16
- package/{chunk-TAKB25RM.js → chunk-DNKTQ3IN.js} +4 -4
- package/chunk-DVQH4BTR.js +1137 -0
- package/{chunk-WYDI6TGM.js → chunk-DWX2HEVC.js} +91 -132
- package/{chunk-5MQRBSMW.js → chunk-EIAI3PPH.js} +111 -113
- package/chunk-EUCFKKDM.js +247 -0
- package/chunk-EWQ3HGNZ.js +90 -0
- package/{chunk-RPQXPZZF.js → chunk-F3GRJO4Z.js} +908 -13
- package/{chunk-YTF4WH7J.js → chunk-FIYSMXHY.js} +1 -1
- package/{chunk-75XIDFBW.js → chunk-FJ23FZXF.js} +72 -28
- package/{chunk-INN4LTAJ.js → chunk-FJK526XH.js} +2 -2
- package/chunk-FS2XP5D7.js +142 -0
- package/{chunk-FUGMREBO.js → chunk-FYF2TONJ.js} +5 -5
- package/{chunk-PCLE46CE.js → chunk-GBWGPTA7.js} +2 -1
- package/{chunk-TX5EYMGT.js → chunk-GYVCJABP.js} +30 -254
- package/{chunk-3UKL3HPD.js → chunk-HOCHUZQ7.js} +8 -78
- package/{chunk-EHSZD5OI.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-6DWMYIUY.js → chunk-IILMY4W4.js} +14 -9
- package/chunk-JA3ICVJY.js +271 -0
- package/{chunk-ZRSNONOB.js → chunk-JWXITTQB.js} +8 -3
- package/{chunk-H4UOTUOX.js → chunk-KEN3N2TN.js} +148 -18
- 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-QHPRUL4O.js → chunk-LVL6GFCM.js} +4 -4
- package/{chunk-H5HF7TJA.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-MDB67IWP.js → chunk-MS4NZNKI.js} +10 -10
- package/{chunk-VO4WSAVP.js → chunk-MYHNBEXD.js} +3 -3
- package/{chunk-ZXOUUDCG.js → chunk-MZLE5HQ3.js} +3654 -231
- package/{chunk-AZMYUSVF.js → chunk-N5Z2V73W.js} +1 -1
- package/{chunk-V5Y3R6BT.js → chunk-NIZ2BXFD.js} +213 -210
- package/{chunk-KFLT5KAD.js → chunk-NWP2OYOX.js} +20 -20
- package/{chunk-G2BQWAVT.js → chunk-O6J3OTOP.js} +4 -4
- package/{chunk-VNYYOX3V.js → chunk-OB6DVWPF.js} +141 -48
- package/{chunk-YWSEPJ7C.js → chunk-OBWT45ZU.js} +3 -3
- package/{chunk-ZNWI6OVT.js → chunk-ODJ7BVSI.js} +80 -11
- package/{chunk-XJWWBO34.js → chunk-OJKUU3LP.js} +5 -7
- package/{chunk-HUBHAQK2.js → chunk-ON37YXGX.js} +29 -29
- package/{chunk-UYD5HQ6T.js → chunk-P5ZJRTCH.js} +5429 -1752
- package/{chunk-6XIE5ZGI.js → chunk-PDCV7P5W.js} +1 -1
- package/{chunk-WRYQ35LQ.js → chunk-PJCIP64Z.js} +859 -57
- package/{chunk-7QTZCMKL.js → chunk-PJVKMGPZ.js} +1089 -1639
- package/{chunk-A7TFUNZO.js → chunk-PPJYZRSQ.js} +6 -2
- package/chunk-QHEN7NZ7.js +46 -0
- package/{chunk-OQPKUBPB.js → chunk-QNWG52I4.js} +19 -7
- package/{chunk-YGILMZ7N.js → chunk-QVBXJNZ2.js} +1 -1
- package/{chunk-7BT37FK3.js → chunk-RDH5CQ4T.js} +648 -131
- 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-RLBNLZVC.js → chunk-SQYIK6HO.js} +1 -1
- package/{chunk-YJAFKXMU.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-WMTBPBMP.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-R5O4QAWG.js → chunk-UB3D4TRQ.js} +11 -77
- package/{chunk-WPORQFYN.js → chunk-UVLYNWIE.js} +2 -2
- package/{chunk-NOKUNJON.js → chunk-UYOICCYG.js} +29 -19
- package/{chunk-4I7ERB7F.js → chunk-VREDDN25.js} +1 -1
- package/{chunk-O2TZF4AI.js → chunk-WAE3GFCJ.js} +3 -3
- package/{chunk-H7PPIYWP.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-BBJ22CLB.js → chunk-WUUH4LWZ.js} +60 -30
- package/{chunk-4T2WNOY7.js → chunk-X7UF53VA.js} +33 -22
- package/{chunk-TY3TIUJK.js → chunk-XI2BWJM5.js} +65 -0
- package/{chunk-LLRPJECG.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-7Y4YTDQF.js → chunk-YWWDC3O7.js} +281 -159
- package/chunk-YZMNK53S.js +68 -0
- package/{chunk-RSHTSUEG.js → chunk-Z2PITYZN.js} +2060 -602
- 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-W63CYRZJ.js → commandRegistry-5DA5UP7S.js} +105 -97
- package/{contentThunks-U7PL5MQD.js → contentThunks-5GUQ7FWJ.js} +47 -43
- package/{cooldownCommands-TIGUHXTD.js → cooldownCommands-X7P5M2V5.js} +5 -4
- package/{createAgentAutomationAction-OLBQDD6R.js → createAgentAutomationAction-UCLTHQRI.js} +51 -49
- package/{createDialogAction-SVH6B3SB.js → createDialogAction-UPN774AF.js} +46 -48
- package/{createPageAction-F4DIWZ2Z.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-BVH2YZPQ.js → dbSlice-WNON7TOL.js} +17 -16
- package/{deleteFile-5YOEKV4U.js → deleteFile-Q3YDB4ML.js} +9 -9
- package/{desktopFolderProjects-SFY5EZS3.js → desktopFolderProjects-4POAMVJN.js} +2 -2
- package/{dialogCommands-KHIEPY3M.js → dialogCommands-VRI7VCXH.js} +64 -57
- package/dialogNotifyCommand-6TMCX4D2.js +36 -0
- package/{dialogSlice-ZCTDV2PZ.js → dialogSlice-LFNVUSAN.js} +42 -40
- package/{dialogUsageCommand-7KCPYGHG.js → dialogUsageCommand-HTVPR2CX.js} +11 -10
- package/{docCreateCommands-DPMZI7G5.js → docCreateCommands-AMPXMOX3.js} +61 -55
- package/{docDeleteCommands-IRQQLUBT.js → docDeleteCommands-I5WFAEHP.js} +63 -57
- package/{docReadCommands-LK37XH6L.js → docReadCommands-X53ELNIE.js} +61 -55
- package/{docStore-V2KECILA.js → docStore-2VAWVLWH.js} +21 -20
- package/{docUpdateCommands-O6T3HJHH.js → docUpdateCommands-6QPNDC7M.js} +64 -58
- package/{fetchMessages-NR4KNQLO.js → fetchMessages-TQEUZD7H.js} +8 -7
- package/{getPricing-2MNMXEVG.js → getPricing-MB2GBXOK.js} +6 -6
- package/{handleSendMessageAction-2PE25WM3.js → handleSendMessageAction-AAJOHXOB.js} +194 -302
- package/{hostCredentialCreate-S233UMAP.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-7NNDVVF7.js → localDialogRead-SVTPA5GY.js} +3 -3
- package/{localFirstLog-DHNOY2NA.js → localFirstLog-OIETGK66.js} +1 -1
- package/localRecall-2J6QPOK2.js +15 -0
- package/{localRuntimeAdapter-KY6WXNBR.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-Q6HA3IXF.js → machineCommands-3MLIAK5Q.js} +128 -119
- package/{machineInfo-UKPTZO5Y.js → machineInfo-LWHTEBHJ.js} +1 -1
- package/machineWsRunDispatch-FKIGROQF.js +191 -0
- package/{memberThunks-7EDJADWU.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-DRTDIMEV.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-4V2RMG7N.js → read-MRQHJMJ2.js} +10 -10
- package/{readDocTool-BH6ATGQO.js → readDocTool-4BGTXTXA.js} +2 -2
- package/{readlineWorkspace-2W4WRCOU.js → readlineWorkspace-AKAHSCNY.js} +7982 -6274
- package/{removeDialogAgentAction-LYAZGNKW.js → removeDialogAgentAction-B6H7DXFM.js} +23 -22
- package/{runAgentClientLoop-J2VQBS2Z.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-OCRPGPYH.js → setDialogExtraReferencesAction-EVCY3TRW.js} +22 -21
- package/{setPrimaryDialogAgentAction-HFJDQIBU.js → setPrimaryDialogAgentAction-KPFVPHCJ.js} +23 -22
- package/{settingThunks-RAMHMTGM.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-KVJZVKVO.js → spaceCommands-DTTNAS2L.js} +61 -53
- package/store-JRVN62NM.js +46 -0
- package/{streamAgentChatTurn-GHBMJJ6S.js → streamAgentChatTurn-R5UY25VB.js} +875 -618
- package/{switchDialogAgentAction-EBRMW3RA.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-EWKCPKMS.js → tools-HWFG6GMJ.js} +75 -74
- package/tuiSummaryLlmCaller-HQQZAMYF.js +44 -0
- package/{updateCommands-ZQYU6SCI.js → updateCommands-RJVCRSBP.js} +10 -8
- package/{updateDialogTitleAction-5GGMBTDF.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-257DV2T6.js → windowsSelfUpdate-KERHIAB4.js} +3 -3
- package/{workloadLifecycle-4C42SVBD.js → workloadLifecycle-DYNEYHV5.js} +6 -6
- package/agentRecordCommands-ZQ7SVYGG.js +0 -167
- package/agentRunCommand-WS7IGO2W.js +0 -196
- package/chunk-3CGG2PAL.js +0 -594
- package/chunk-5XBUWM6I.js +0 -89
- package/chunk-CJEIOP3E.js +0 -0
- package/chunk-EHGEOAHI.js +0 -636
- package/chunk-FW6YHHLI.js +0 -842
- package/chunk-GPVRUGGY.js +0 -115
- package/chunk-HSVBJRF4.js +0 -339
- package/chunk-WJZOQR2J.js +0 -151
- package/chunk-ZCWRMUWT.js +0 -89
- package/dist-M676ULYG.js +0 -7314
- package/machineWsRunDispatch-WWJQ6WR3.js +0 -182
- package/models-PJBE6JDV.js +0 -9
- package/tuiSummaryLlmCaller-ALQYUUWB.js +0 -189
- 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,30 +4,23 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
applyTokenUsageToDayStats,
|
|
6
6
|
require_format
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-BUDVRYES.js";
|
|
8
8
|
import {
|
|
9
9
|
buildDialogAttachmentPlan,
|
|
10
10
|
extractFileContentIds
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-KEPOVMF4.js";
|
|
12
12
|
import {
|
|
13
|
-
BUILTIN_DIALOG_LLM_FALLBACK_MODEL,
|
|
14
13
|
BUILTIN_SUMMARY_LLM_CONFIG
|
|
15
14
|
} from "./chunk-523DITKR.js";
|
|
16
15
|
import {
|
|
17
16
|
runLlm
|
|
18
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-NWP2OYOX.js";
|
|
19
18
|
import {
|
|
20
19
|
isMediaToolConfirmation
|
|
21
20
|
} from "./chunk-QYPE3TS3.js";
|
|
22
21
|
import {
|
|
23
22
|
cleanupCliSessionForDialog
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import {
|
|
26
|
-
getApproxPricePerImage
|
|
27
|
-
} from "./chunk-4JH2UMJR.js";
|
|
28
|
-
import {
|
|
29
|
-
addContentAction
|
|
30
|
-
} from "./chunk-GPVRUGGY.js";
|
|
23
|
+
} from "./chunk-AD5EWDFD.js";
|
|
31
24
|
import {
|
|
32
25
|
getActiveDialogAgentId,
|
|
33
26
|
getDialogAgentIds,
|
|
@@ -48,10 +41,16 @@ import {
|
|
|
48
41
|
setActiveDialogKey,
|
|
49
42
|
setDialogConfigError,
|
|
50
43
|
setMediaJobRuntimeActor
|
|
51
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-S2NTVGA2.js";
|
|
52
45
|
import {
|
|
53
46
|
require_react
|
|
54
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-5FUN7EG4.js";
|
|
48
|
+
import {
|
|
49
|
+
fetchMessages
|
|
50
|
+
} from "./chunk-HXER7YJF.js";
|
|
51
|
+
import {
|
|
52
|
+
addContentAction
|
|
53
|
+
} from "./chunk-JA3ICVJY.js";
|
|
55
54
|
import {
|
|
56
55
|
patch,
|
|
57
56
|
read,
|
|
@@ -59,19 +58,24 @@ import {
|
|
|
59
58
|
selectById,
|
|
60
59
|
upload,
|
|
61
60
|
write
|
|
62
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-44X52WOJ.js";
|
|
63
62
|
import {
|
|
64
63
|
getRuntimeServerContext,
|
|
65
64
|
parseOwnerUserIdFromDbKey,
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
resolveUserAuthorityServer,
|
|
66
|
+
scheduleDeleteReplication,
|
|
67
|
+
waitForWriteAck
|
|
68
|
+
} from "./chunk-2VUZSVAS.js";
|
|
68
69
|
import {
|
|
69
70
|
asyncThunkCreator,
|
|
70
71
|
buildCreateSlice,
|
|
71
72
|
createAsyncThunk,
|
|
72
73
|
createEntityAdapter,
|
|
73
74
|
createSelector
|
|
74
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-7Z6EW7AH.js";
|
|
76
|
+
import {
|
|
77
|
+
normalizeTimeFields
|
|
78
|
+
} from "./chunk-AGP3YSEC.js";
|
|
75
79
|
import {
|
|
76
80
|
createClientLogger
|
|
77
81
|
} from "./chunk-QQ56R7KS.js";
|
|
@@ -80,18 +84,16 @@ import {
|
|
|
80
84
|
selectIdentityUser,
|
|
81
85
|
selectIdentityUserId
|
|
82
86
|
} from "./chunk-PXYBUFDB.js";
|
|
83
|
-
import {
|
|
84
|
-
fetchMessages
|
|
85
|
-
} from "./chunk-EHSZD5OI.js";
|
|
86
87
|
import {
|
|
87
88
|
getRecordTimestamp,
|
|
88
89
|
getTombstoneTimestamp,
|
|
89
90
|
isTombstoneRecord,
|
|
90
91
|
shouldReplaceWithNextRecord
|
|
91
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-BV3FLP2L.js";
|
|
92
93
|
import {
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
applyBuiltinAgentRuntimeOverride,
|
|
95
|
+
resolveBuiltinPlatformAgentRecord
|
|
96
|
+
} from "./chunk-HYIETXA6.js";
|
|
95
97
|
import {
|
|
96
98
|
DEFAULT_AUTO_EXECUTION_PROFILE,
|
|
97
99
|
EMPTY_ASSISTANT_FALLBACK_MESSAGE,
|
|
@@ -104,24 +106,29 @@ import {
|
|
|
104
106
|
devinChannelContextWindow,
|
|
105
107
|
extractReferenceKeysFromMessage,
|
|
106
108
|
isCodexOAuthAgent,
|
|
107
|
-
|
|
109
|
+
normalizeAttachmentPart,
|
|
108
110
|
resolveAutoExecutionProfile
|
|
109
|
-
} from "./chunk-
|
|
111
|
+
} from "./chunk-NIZ2BXFD.js";
|
|
112
|
+
import {
|
|
113
|
+
isDevinOAuthAgent
|
|
114
|
+
} from "./chunk-5ZUL4CUO.js";
|
|
110
115
|
import {
|
|
111
116
|
COMPACTION_SUMMARY_SYSTEM_PROMPT,
|
|
112
117
|
DEFAULT_CONTEXT_WINDOW,
|
|
113
118
|
buildBoundedCompactionRequest,
|
|
114
119
|
buildCompactionMetricsFromPlan,
|
|
120
|
+
classifySummaryError,
|
|
115
121
|
computeSummarySourceMetadata,
|
|
122
|
+
createSummaryBudget,
|
|
116
123
|
findModelContextWindow,
|
|
117
124
|
formatCompactionMetricsLog,
|
|
118
125
|
getModelInfo,
|
|
126
|
+
normalizeUsage,
|
|
119
127
|
planCompression,
|
|
128
|
+
runSummaryWithContract,
|
|
129
|
+
selectSummaryRoute,
|
|
120
130
|
serializeMessageContent
|
|
121
|
-
} from "./chunk-
|
|
122
|
-
import {
|
|
123
|
-
isDevinOAuthAgent
|
|
124
|
-
} from "./chunk-5ZUL4CUO.js";
|
|
131
|
+
} from "./chunk-RDH5CQ4T.js";
|
|
125
132
|
import {
|
|
126
133
|
isOAuthApiKeyRef
|
|
127
134
|
} from "./chunk-UKZX3NHN.js";
|
|
@@ -132,27 +139,41 @@ import {
|
|
|
132
139
|
isAbortError
|
|
133
140
|
} from "./chunk-7DPNBQSV.js";
|
|
134
141
|
import {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
isBuiltinPlatformAgentKey
|
|
139
|
-
|
|
140
|
-
} from "./chunk-LOEO7LRC.js";
|
|
142
|
+
nolotusId
|
|
143
|
+
} from "./chunk-7ET2U67U.js";
|
|
144
|
+
import {
|
|
145
|
+
isBuiltinPlatformAgentKey
|
|
146
|
+
} from "./chunk-3IK6ILVW.js";
|
|
141
147
|
import {
|
|
142
148
|
extractCustomId,
|
|
143
|
-
extractUserId
|
|
144
|
-
publicAgentKey
|
|
149
|
+
extractUserId
|
|
145
150
|
} from "./chunk-M2EJHDJP.js";
|
|
151
|
+
import {
|
|
152
|
+
buildDialogAgentListIndexDeleteOps,
|
|
153
|
+
createKey,
|
|
154
|
+
createTokenKey,
|
|
155
|
+
createTokenStatsKey
|
|
156
|
+
} from "./chunk-SYTHYBMI.js";
|
|
157
|
+
import {
|
|
158
|
+
createDialogMessageKeyAndId,
|
|
159
|
+
dialogMessageKey
|
|
160
|
+
} from "./chunk-OJKUU3LP.js";
|
|
161
|
+
import {
|
|
162
|
+
getApproxPricePerImage
|
|
163
|
+
} from "./chunk-4JH2UMJR.js";
|
|
146
164
|
import {
|
|
147
165
|
estimateTokenCount
|
|
148
166
|
} from "./chunk-PSCNXBYA.js";
|
|
149
|
-
import {
|
|
150
|
-
findModelConfig,
|
|
151
|
-
getModelConfig
|
|
152
|
-
} from "./chunk-SM3NSZJV.js";
|
|
153
167
|
import {
|
|
154
168
|
toErrorMessage
|
|
155
169
|
} from "./chunk-HNMXYYJR.js";
|
|
170
|
+
import {
|
|
171
|
+
asTrimmedString
|
|
172
|
+
} from "./chunk-3EUW3WEO.js";
|
|
173
|
+
import {
|
|
174
|
+
findModelConfig,
|
|
175
|
+
getModelConfig
|
|
176
|
+
} from "./chunk-2UCBGYO4.js";
|
|
156
177
|
import {
|
|
157
178
|
isRecord
|
|
158
179
|
} from "./chunk-KUG52IAP.js";
|
|
@@ -173,38 +194,522 @@ import {
|
|
|
173
194
|
isPlatformManagedProvider,
|
|
174
195
|
resolvePlatformEffectiveModel,
|
|
175
196
|
resolvePlatformHostedRouting
|
|
176
|
-
} from "./chunk-
|
|
197
|
+
} from "./chunk-CKG3PRZ7.js";
|
|
177
198
|
import {
|
|
178
199
|
asTrimmedLowercaseString
|
|
179
200
|
} from "./chunk-QSJ3HFEF.js";
|
|
180
|
-
import {
|
|
181
|
-
API_ENDPOINTS
|
|
182
|
-
} from "./chunk-LCBAMY2M.js";
|
|
183
|
-
import {
|
|
184
|
-
normalizeServerOrigin
|
|
185
|
-
} from "./chunk-CF7PE763.js";
|
|
186
|
-
import {
|
|
187
|
-
buildDialogAgentListIndexDeleteOps,
|
|
188
|
-
createKey,
|
|
189
|
-
createTokenKey,
|
|
190
|
-
createTokenStatsKey
|
|
191
|
-
} from "./chunk-JY5NGFFH.js";
|
|
192
|
-
import {
|
|
193
|
-
createDialogMessageKeyAndId,
|
|
194
|
-
dialogMessageKey
|
|
195
|
-
} from "./chunk-XJWWBO34.js";
|
|
196
201
|
import {
|
|
197
202
|
asOptionalFiniteNumber
|
|
198
203
|
} from "./chunk-WWC7I6TA.js";
|
|
199
204
|
import {
|
|
200
|
-
|
|
201
|
-
} from "./chunk-
|
|
205
|
+
API_ENDPOINTS
|
|
206
|
+
} from "./chunk-LCBAMY2M.js";
|
|
202
207
|
import {
|
|
203
208
|
asOptionalTrimmedString
|
|
204
209
|
} from "./chunk-G3SUCT4W.js";
|
|
210
|
+
import {
|
|
211
|
+
normalizeServerOrigin
|
|
212
|
+
} from "./chunk-CF7PE763.js";
|
|
205
213
|
import {
|
|
206
214
|
__toESM
|
|
207
|
-
} from "./chunk-
|
|
215
|
+
} from "./chunk-U67V476Y.js";
|
|
216
|
+
|
|
217
|
+
// packages/chat/messages/userBatchExecution.ts
|
|
218
|
+
function snapshotUserBatchInput(messages) {
|
|
219
|
+
return messages.filter((message) => message.role === "user").map((message) => ({ id: message.id, content: structuredClone(message.content) }));
|
|
220
|
+
}
|
|
221
|
+
function canonicalUserContent(content) {
|
|
222
|
+
const parts = typeof content === "string" ? ["string", content] : Array.isArray(content) ? ["parts", content.map((raw) => {
|
|
223
|
+
const part = raw;
|
|
224
|
+
if (part?.type === "text" && typeof part.text === "string") return ["text", part.text];
|
|
225
|
+
if (part?.type === "image_url") {
|
|
226
|
+
const url = typeof part.image_url === "string" ? part.image_url : part.image_url?.url;
|
|
227
|
+
if (typeof url !== "string") throw new Error("Invalid user batch image; blocked");
|
|
228
|
+
return [
|
|
229
|
+
"image_url",
|
|
230
|
+
url,
|
|
231
|
+
typeof part.image_url === "object" ? part.image_url.detail ?? "auto" : "auto",
|
|
232
|
+
part.google_native?.inlineData?.mimeType ?? null,
|
|
233
|
+
part.google_native?.inlineData?.data ?? null,
|
|
234
|
+
part.google_native?.thoughtSignature ?? null
|
|
235
|
+
];
|
|
236
|
+
}
|
|
237
|
+
if (part?.type === "attachment") {
|
|
238
|
+
const parsed = normalizeAttachmentPart(part);
|
|
239
|
+
if (parsed.status !== "valid") throw new Error("Invalid user batch attachment; blocked");
|
|
240
|
+
const a = parsed.attachment;
|
|
241
|
+
const source = a.source;
|
|
242
|
+
return [a.type, a.v, source.kind, source.kind === "remote-file" ? [source.fileKey] : [source.path, source.machineId, source.workspaceRoot ?? null], a.name, a.mimeType, a.size];
|
|
243
|
+
}
|
|
244
|
+
if (part && typeof part.type === "string" && typeof part.name === "string" && [part.pageKey, part.dialogKey, part.id].some((value) => typeof value === "string" && !!value)) {
|
|
245
|
+
return ["reference", part.type, part.name, part.pageKey ?? null, part.dialogKey ?? null, part.id ?? null];
|
|
246
|
+
}
|
|
247
|
+
throw new Error("Unsupported user batch content; blocked");
|
|
248
|
+
})] : (() => {
|
|
249
|
+
throw new Error("Invalid user batch content; blocked");
|
|
250
|
+
})();
|
|
251
|
+
return JSON.stringify(parts);
|
|
252
|
+
}
|
|
253
|
+
function orderedUserBatchInput(snapshot, ids) {
|
|
254
|
+
return ids.map((id) => {
|
|
255
|
+
const rows = snapshot.filter((row) => row.id === id);
|
|
256
|
+
if (rows.length !== 1) throw new Error("Incomplete user batch content; blocked");
|
|
257
|
+
return canonicalUserContent(rows[0].content);
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
function assertUserBatchInput(expected, actual, ids) {
|
|
261
|
+
const a = orderedUserBatchInput(expected, ids);
|
|
262
|
+
const b = orderedUserBatchInput(actual, ids);
|
|
263
|
+
if (a.some((part, i) => part !== b[i])) throw new Error("User batch authorized content changed; blocked");
|
|
264
|
+
}
|
|
265
|
+
function createUserBatchExecution(signal, owns) {
|
|
266
|
+
let grant;
|
|
267
|
+
let closed = false;
|
|
268
|
+
let inFlight = false;
|
|
269
|
+
const dispose = () => {
|
|
270
|
+
closed = true;
|
|
271
|
+
grant = void 0;
|
|
272
|
+
};
|
|
273
|
+
const valid = () => {
|
|
274
|
+
if (closed || signal.aborted || !owns()) {
|
|
275
|
+
dispose();
|
|
276
|
+
return false;
|
|
277
|
+
}
|
|
278
|
+
return true;
|
|
279
|
+
};
|
|
280
|
+
signal.addEventListener("abort", dispose, { once: true });
|
|
281
|
+
const same = (key, receipt) => grant?.dialogKey === key && grant.receipt.batchId === receipt.batchId && grant.receipt.token === receipt.token && grant.receipt.messageIds.length === receipt.messageIds.length && grant.receipt.messageIds.every((id, index) => id === receipt.messageIds[index]);
|
|
282
|
+
return {
|
|
283
|
+
valid,
|
|
284
|
+
hasGrant: () => valid() && !!grant,
|
|
285
|
+
dispose() {
|
|
286
|
+
dispose();
|
|
287
|
+
signal.removeEventListener("abort", dispose);
|
|
288
|
+
},
|
|
289
|
+
has(key, receipt) {
|
|
290
|
+
return valid() && same(key, receipt);
|
|
291
|
+
},
|
|
292
|
+
authorize(key, receipt, input) {
|
|
293
|
+
if (!valid() || inFlight) throw new Error("User batch execution ownership lost; blocked");
|
|
294
|
+
orderedUserBatchInput(input, receipt.messageIds);
|
|
295
|
+
grant = { dialogKey: key, receipt: { ...receipt, messageIds: [...receipt.messageIds] }, input: structuredClone(input) };
|
|
296
|
+
},
|
|
297
|
+
async start(key, receipt, input, invoke) {
|
|
298
|
+
if (!valid() || !same(key, receipt) || inFlight) {
|
|
299
|
+
dispose();
|
|
300
|
+
throw new Error("User batch execution permission expired or mismatched; blocked");
|
|
301
|
+
}
|
|
302
|
+
inFlight = true;
|
|
303
|
+
try {
|
|
304
|
+
assertUserBatchInput(grant.input, input, receipt.messageIds);
|
|
305
|
+
return await invoke();
|
|
306
|
+
} catch (error) {
|
|
307
|
+
dispose();
|
|
308
|
+
throw error;
|
|
309
|
+
} finally {
|
|
310
|
+
inFlight = false;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
// packages/chat/messages/pendingUserBatchControl.ts
|
|
317
|
+
var isLocalUserBatch = (dialogKey) => dialogKey.startsWith("dialog-local-");
|
|
318
|
+
function userBatchControl(state, dialogKey) {
|
|
319
|
+
const context = getRuntimeServerContext(state);
|
|
320
|
+
const userId = context.currentUserId;
|
|
321
|
+
if (!userId || userId === "local" || !dialogKey.startsWith(`dialog-${userId}-`) || !context.currentToken) {
|
|
322
|
+
throw new Error("User batch authority requires the owning account and token; unsent messages retained");
|
|
323
|
+
}
|
|
324
|
+
const server = resolveUserAuthorityServer({ ownerUserId: userId, registry: context.userAuthorityRegistry }) ?? context.currentServer;
|
|
325
|
+
if (!server) throw new Error("User batch authority unavailable; unsent messages retained");
|
|
326
|
+
const dialogId = dialogKey.slice(`dialog-${userId}-`.length);
|
|
327
|
+
const call = async (body) => {
|
|
328
|
+
let response;
|
|
329
|
+
try {
|
|
330
|
+
response = await fetch(`${server.replace(/\/$/, "")}/api/agent/turns/control`, {
|
|
331
|
+
method: "POST",
|
|
332
|
+
headers: { "Content-Type": "application/json", Authorization: `Bearer ${context.currentToken}` },
|
|
333
|
+
body: JSON.stringify({ ...body, dialogId })
|
|
334
|
+
});
|
|
335
|
+
} catch {
|
|
336
|
+
throw new Error("User batch authority network failure; messages retained, provider not retried");
|
|
337
|
+
}
|
|
338
|
+
let result;
|
|
339
|
+
try {
|
|
340
|
+
result = await response.json();
|
|
341
|
+
} catch {
|
|
342
|
+
throw new Error("User batch authority response unreadable; messages retained, provider not retried");
|
|
343
|
+
}
|
|
344
|
+
if (!result || typeof result !== "object") throw new Error("User batch authority response invalid; messages retained, provider not retried");
|
|
345
|
+
if (!response.ok || result.ok !== true) throw new Error(`User batch authority: ${result.error?.message ?? response.status}`);
|
|
346
|
+
return result.data;
|
|
347
|
+
};
|
|
348
|
+
return {
|
|
349
|
+
call,
|
|
350
|
+
async publish(message) {
|
|
351
|
+
if (message.userId !== userId) throw new Error("User batch message belongs to another account");
|
|
352
|
+
await waitForWriteAck(message.dbKey, { targetServer: server });
|
|
353
|
+
return (await call({ action: "enqueue", message })).message;
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
function readClientReceipt(value, ids, ordered = false) {
|
|
358
|
+
if (!value || value.owner !== "client" || typeof value.batchId !== "string" || !value.batchId || typeof value.token !== "string" || !value.token || !Array.isArray(value.messageIds) || value.messageIds.length !== ids.length || new Set(value.messageIds).size !== ids.length || ids.some((id) => !value.messageIds.includes(id)) || ordered && ids.some((id, i) => value.messageIds[i] !== id) || !["admitted", "requested"].includes(value.phase)) {
|
|
359
|
+
throw new Error("Invalid or foreign user batch receipt; automatic resubmission blocked");
|
|
360
|
+
}
|
|
361
|
+
return value;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
// packages/database-engine/storeBatchCompat.ts
|
|
365
|
+
function writeStoreOps(store, ops) {
|
|
366
|
+
if (typeof store.batchWrite === "function") {
|
|
367
|
+
return store.batchWrite(ops);
|
|
368
|
+
}
|
|
369
|
+
if (typeof store.batch === "function") {
|
|
370
|
+
const result = store.batch(ops);
|
|
371
|
+
if (result && typeof result.then === "function") {
|
|
372
|
+
return result;
|
|
373
|
+
}
|
|
374
|
+
if (result && typeof result.write === "function") {
|
|
375
|
+
for (const op of ops) {
|
|
376
|
+
if (op.type === "put") {
|
|
377
|
+
result.put(op.key, op.value);
|
|
378
|
+
} else {
|
|
379
|
+
result.del(op.key);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
return result.write();
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
throw new Error("Store does not support batch array writes");
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
// packages/core/chat/internalTurnEvent.ts
|
|
389
|
+
function normalizeRunCompletionShape(record) {
|
|
390
|
+
const runId = String(record.runId ?? record.id ?? "");
|
|
391
|
+
const agentKey = String(record.agentKey ?? record.agent ?? "");
|
|
392
|
+
const status = String(record.status ?? "done");
|
|
393
|
+
const counters = record.activity?.counters;
|
|
394
|
+
return {
|
|
395
|
+
runId,
|
|
396
|
+
agentKey,
|
|
397
|
+
...typeof record.agentName === "string" ? { agentName: record.agentName } : {},
|
|
398
|
+
...typeof record.title === "string" && record.title.trim() ? { title: record.title.trim() } : {},
|
|
399
|
+
status,
|
|
400
|
+
...typeof record.exitCode === "number" ? { exitCode: record.exitCode } : {},
|
|
401
|
+
...typeof record.parentDialogId === "string" ? { parentDialogId: record.parentDialogId } : {},
|
|
402
|
+
...typeof record.dialogId === "string" ? { dialogId: record.dialogId } : {},
|
|
403
|
+
...typeof record.resultFile === "string" ? { resultFile: record.resultFile } : {},
|
|
404
|
+
...typeof record.ephemeral === "boolean" ? { ephemeral: record.ephemeral } : {},
|
|
405
|
+
...record.startedAt !== void 0 ? { startedAt: record.startedAt } : {},
|
|
406
|
+
...record.endedAt !== void 0 ? { endedAt: record.endedAt } : {},
|
|
407
|
+
...typeof record.note === "string" ? { note: record.note } : {},
|
|
408
|
+
...typeof record.error === "string" ? { error: record.error } : {},
|
|
409
|
+
...typeof record.ack === "boolean" ? { ack: record.ack } : {},
|
|
410
|
+
...counters ? {
|
|
411
|
+
activity: {
|
|
412
|
+
counters: {
|
|
413
|
+
toolCalls: typeof counters.toolCalls === "number" ? counters.toolCalls : 0,
|
|
414
|
+
llmCalls: typeof counters.llmCalls === "number" ? counters.llmCalls : 0,
|
|
415
|
+
fileEdits: typeof counters.fileEdits === "number" ? counters.fileEdits : 0
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
} : {}
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
function createTurnRequest(input) {
|
|
422
|
+
if (typeof input === "string") {
|
|
423
|
+
return {
|
|
424
|
+
event: { kind: "user", text: input },
|
|
425
|
+
text: input
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
if ("event" in input && typeof input.event === "object" && typeof input.text === "string") {
|
|
429
|
+
return input;
|
|
430
|
+
}
|
|
431
|
+
const event = input;
|
|
432
|
+
return {
|
|
433
|
+
event,
|
|
434
|
+
text: event.text
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
// packages/core/chat/chatQueueMachine.ts
|
|
439
|
+
var initialChatQueueState = {
|
|
440
|
+
running: false,
|
|
441
|
+
queue: [],
|
|
442
|
+
drainPaused: false,
|
|
443
|
+
lastDrainError: null
|
|
444
|
+
};
|
|
445
|
+
function reduceChatQueue(state, event) {
|
|
446
|
+
switch (event.type) {
|
|
447
|
+
case "turn-start":
|
|
448
|
+
if (state.running && state.lastDrainError === null) return state;
|
|
449
|
+
return {
|
|
450
|
+
...state,
|
|
451
|
+
running: true,
|
|
452
|
+
lastDrainError: null
|
|
453
|
+
};
|
|
454
|
+
case "batch-accepted":
|
|
455
|
+
if (state.drainBatch?.id !== event.batchId) return state;
|
|
456
|
+
return {
|
|
457
|
+
...state,
|
|
458
|
+
queue: state.queue.slice(state.drainBatch.requests.length),
|
|
459
|
+
drainBatch: void 0
|
|
460
|
+
};
|
|
461
|
+
case "claim-batch": {
|
|
462
|
+
if (state.drainBatch) return state;
|
|
463
|
+
if (state.drainPaused || state.drainMode === "user-batch" && state.lastDrainError) return state;
|
|
464
|
+
if (!state.queue.length || state.queue[0]?.event.kind !== "user") return state;
|
|
465
|
+
const end = state.queue.findIndex((request) => request.event.kind !== "user");
|
|
466
|
+
const id = (state.batchSequence ?? 0) + 1;
|
|
467
|
+
return {
|
|
468
|
+
...state,
|
|
469
|
+
batchSequence: id,
|
|
470
|
+
drainBatch: { id, requests: state.queue.slice(0, end < 0 ? void 0 : end) }
|
|
471
|
+
};
|
|
472
|
+
}
|
|
473
|
+
case "rollback-batch": {
|
|
474
|
+
if (state.drainBatch?.id === event.batchId) {
|
|
475
|
+
return { ...state, drainBatch: void 0 };
|
|
476
|
+
}
|
|
477
|
+
return { ...state, queue: [...event.requests, ...state.queue] };
|
|
478
|
+
}
|
|
479
|
+
case "batch-failed":
|
|
480
|
+
if (state.drainBatch?.id !== event.batchId) return state;
|
|
481
|
+
return {
|
|
482
|
+
...state,
|
|
483
|
+
drainBatch: void 0,
|
|
484
|
+
drainPaused: true,
|
|
485
|
+
lastDrainError: event.message || "batch admission failed"
|
|
486
|
+
};
|
|
487
|
+
case "turn-end": {
|
|
488
|
+
if (state.drainMode === "user-batch") {
|
|
489
|
+
const next = {
|
|
490
|
+
...state,
|
|
491
|
+
running: false,
|
|
492
|
+
drainPaused: event.aborted ? true : state.drainPaused,
|
|
493
|
+
lastDrainError: !event.ok && !event.aborted ? "previous turn failed" : state.lastDrainError
|
|
494
|
+
};
|
|
495
|
+
if (event.ok && !event.aborted && shouldDrainAfterTurnEnd(next, true) && next.queue[0]?.event.kind === "user") {
|
|
496
|
+
const end = next.queue.findIndex((request) => request.event.kind !== "user");
|
|
497
|
+
const id = (next.batchSequence ?? 0) + 1;
|
|
498
|
+
return {
|
|
499
|
+
...next,
|
|
500
|
+
batchSequence: id,
|
|
501
|
+
drainBatch: { id, requests: next.queue.slice(0, end < 0 ? void 0 : end) }
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
return next;
|
|
505
|
+
}
|
|
506
|
+
return {
|
|
507
|
+
...state,
|
|
508
|
+
running: false,
|
|
509
|
+
queue: event.aborted ? [] : state.queue,
|
|
510
|
+
lastDrainError: !event.ok && !event.aborted ? "previous turn failed" : state.lastDrainError
|
|
511
|
+
};
|
|
512
|
+
}
|
|
513
|
+
case "enqueue": {
|
|
514
|
+
const req = createTurnRequest(event.text);
|
|
515
|
+
if (req.messageId && state.queue.some((item) => item.messageId === req.messageId)) return state;
|
|
516
|
+
if (!req.text.trim() && req.event.kind === "user" && !req.imagePaths?.length && !req.mediaPaths?.length) {
|
|
517
|
+
return state;
|
|
518
|
+
}
|
|
519
|
+
return {
|
|
520
|
+
...state,
|
|
521
|
+
queue: [...state.queue, req]
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
case "steer": {
|
|
525
|
+
if (state.drainBatch) return state;
|
|
526
|
+
const req = createTurnRequest(event.text);
|
|
527
|
+
if (!req.text.trim() && req.event.kind === "user") {
|
|
528
|
+
return state;
|
|
529
|
+
}
|
|
530
|
+
return {
|
|
531
|
+
...state,
|
|
532
|
+
queue: [req, ...state.queue]
|
|
533
|
+
};
|
|
534
|
+
}
|
|
535
|
+
case "dequeue":
|
|
536
|
+
if (state.drainBatch) return state;
|
|
537
|
+
if (state.queue.length === 0) return state;
|
|
538
|
+
return {
|
|
539
|
+
...state,
|
|
540
|
+
queue: state.queue.slice(1)
|
|
541
|
+
};
|
|
542
|
+
case "recall-last":
|
|
543
|
+
if (state.drainBatch) return state;
|
|
544
|
+
if (state.queue.length === 0) return state;
|
|
545
|
+
return {
|
|
546
|
+
...state,
|
|
547
|
+
queue: state.queue.slice(0, -1)
|
|
548
|
+
};
|
|
549
|
+
case "clear":
|
|
550
|
+
if (state.drainBatch) return state;
|
|
551
|
+
if (state.queue.length === 0 && state.lastDrainError === null) return state;
|
|
552
|
+
return {
|
|
553
|
+
...state,
|
|
554
|
+
queue: [],
|
|
555
|
+
lastDrainError: null
|
|
556
|
+
};
|
|
557
|
+
case "pause-drain":
|
|
558
|
+
if (state.drainPaused) return state;
|
|
559
|
+
return {
|
|
560
|
+
...state,
|
|
561
|
+
drainPaused: true
|
|
562
|
+
};
|
|
563
|
+
case "resume-drain":
|
|
564
|
+
if (!state.drainPaused && !(state.drainMode === "user-batch" && state.lastDrainError)) return state;
|
|
565
|
+
return {
|
|
566
|
+
...state,
|
|
567
|
+
drainPaused: false,
|
|
568
|
+
lastDrainError: state.drainMode === "user-batch" ? null : state.lastDrainError
|
|
569
|
+
};
|
|
570
|
+
case "drain-error":
|
|
571
|
+
return {
|
|
572
|
+
...state,
|
|
573
|
+
lastDrainError: event.message || null
|
|
574
|
+
};
|
|
575
|
+
case "clear-drain-error":
|
|
576
|
+
if (state.lastDrainError === null) return state;
|
|
577
|
+
return {
|
|
578
|
+
...state,
|
|
579
|
+
lastDrainError: null
|
|
580
|
+
};
|
|
581
|
+
default:
|
|
582
|
+
return state;
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
function shouldDrainAfterTurnEnd(state, cleanTurnEnd) {
|
|
586
|
+
return cleanTurnEnd && !state.running && !state.drainPaused && !state.drainBatch && (state.drainMode !== "user-batch" || !state.lastDrainError) && state.queue.length > 0;
|
|
587
|
+
}
|
|
588
|
+
function applyChatQueueEvent(state, event) {
|
|
589
|
+
const prevQueue = state.queue;
|
|
590
|
+
const prevQueueLen = prevQueue.length;
|
|
591
|
+
const prevRunning = state.running;
|
|
592
|
+
const prevPaused = state.drainPaused;
|
|
593
|
+
const next = reduceChatQueue(state, event);
|
|
594
|
+
const outgoing = [];
|
|
595
|
+
if (next.queue.length !== prevQueueLen) {
|
|
596
|
+
outgoing.push({ type: "queue-changed", length: next.queue.length });
|
|
597
|
+
}
|
|
598
|
+
if (next.running !== prevRunning) {
|
|
599
|
+
outgoing.push({ type: "running-changed", running: next.running });
|
|
600
|
+
}
|
|
601
|
+
if (next.drainPaused !== prevPaused) {
|
|
602
|
+
outgoing.push({ type: "drain-paused-changed", paused: next.drainPaused });
|
|
603
|
+
}
|
|
604
|
+
if (event.type === "recall-last" && next.queue.length < prevQueueLen) {
|
|
605
|
+
const last = prevQueue[prevQueueLen - 1];
|
|
606
|
+
outgoing.push({ type: "recalled-to-draft", text: last.text, request: last });
|
|
607
|
+
}
|
|
608
|
+
if (event.type === "steer" && next.running && next.queue.length > prevQueueLen) {
|
|
609
|
+
const head = next.queue[0];
|
|
610
|
+
if (head) {
|
|
611
|
+
outgoing.push({ type: "steer-ready", text: head.text, request: head });
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
if (event.type === "turn-end") {
|
|
615
|
+
if (next.drainBatch && next.drainBatch !== state.drainBatch) {
|
|
616
|
+
outgoing.push({ type: "drain-batch-ready", batch: next.drainBatch });
|
|
617
|
+
} else if (event.aborted && prevQueueLen > 0 && state.drainMode !== "user-batch") {
|
|
618
|
+
const first = prevQueue[0];
|
|
619
|
+
outgoing.push({
|
|
620
|
+
type: "aborted-draft-refill",
|
|
621
|
+
text: first.text,
|
|
622
|
+
request: first,
|
|
623
|
+
abortedRequests: [...prevQueue]
|
|
624
|
+
});
|
|
625
|
+
} else if (!event.aborted && event.ok) {
|
|
626
|
+
if (shouldDrainAfterTurnEnd(next, true)) {
|
|
627
|
+
const head = next.queue[0];
|
|
628
|
+
outgoing.push({ type: "drain-ready", text: head.text, request: head });
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
return { state: next, outgoing };
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
// packages/core/chat/chatQueueRuntime.ts
|
|
636
|
+
function createChatQueueRuntime(initialState2 = initialChatQueueState) {
|
|
637
|
+
let state = initialState2;
|
|
638
|
+
const listeners2 = /* @__PURE__ */ new Set();
|
|
639
|
+
const dispatch = (events) => {
|
|
640
|
+
for (const e of events) {
|
|
641
|
+
for (const l of listeners2) l(e);
|
|
642
|
+
}
|
|
643
|
+
};
|
|
644
|
+
return {
|
|
645
|
+
getState: () => state,
|
|
646
|
+
send(event) {
|
|
647
|
+
const result = applyChatQueueEvent(state, event);
|
|
648
|
+
state = result.state;
|
|
649
|
+
dispatch(result.outgoing);
|
|
650
|
+
return state;
|
|
651
|
+
},
|
|
652
|
+
subscribe(listener) {
|
|
653
|
+
listeners2.add(listener);
|
|
654
|
+
return () => {
|
|
655
|
+
listeners2.delete(listener);
|
|
656
|
+
};
|
|
657
|
+
},
|
|
658
|
+
on(type, listener) {
|
|
659
|
+
const wrapped = (e) => {
|
|
660
|
+
if (e.type === type) {
|
|
661
|
+
listener(e);
|
|
662
|
+
}
|
|
663
|
+
};
|
|
664
|
+
listeners2.add(wrapped);
|
|
665
|
+
return () => {
|
|
666
|
+
listeners2.delete(wrapped);
|
|
667
|
+
};
|
|
668
|
+
},
|
|
669
|
+
dispose() {
|
|
670
|
+
listeners2.clear();
|
|
671
|
+
state = initialChatQueueState;
|
|
672
|
+
}
|
|
673
|
+
};
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
// packages/chat/queue/chatQueueReduxAdapter.ts
|
|
677
|
+
async function admitPersistedUserBatch(args) {
|
|
678
|
+
if (args.signal?.aborted || !args.requests.length) return [];
|
|
679
|
+
const runtime = createChatQueueRuntime({
|
|
680
|
+
running: true,
|
|
681
|
+
queue: [...args.requests],
|
|
682
|
+
drainPaused: false,
|
|
683
|
+
lastDrainError: null,
|
|
684
|
+
drainMode: "user-batch"
|
|
685
|
+
});
|
|
686
|
+
let admission = Promise.resolve([]);
|
|
687
|
+
const abort = () => runtime.send({ type: "turn-end", ok: false, aborted: true });
|
|
688
|
+
args.signal?.addEventListener("abort", abort, { once: true });
|
|
689
|
+
runtime.on("drain-batch-ready", ({ batch }) => {
|
|
690
|
+
admission = (async () => {
|
|
691
|
+
try {
|
|
692
|
+
if (args.signal?.aborted) return [];
|
|
693
|
+
await args.persist(batch.requests);
|
|
694
|
+
runtime.send({ type: "batch-accepted", batchId: batch.id });
|
|
695
|
+
return batch.requests;
|
|
696
|
+
} catch (error) {
|
|
697
|
+
runtime.send({
|
|
698
|
+
type: "batch-failed",
|
|
699
|
+
batchId: batch.id,
|
|
700
|
+
message: error instanceof Error ? error.message : String(error)
|
|
701
|
+
});
|
|
702
|
+
throw error;
|
|
703
|
+
}
|
|
704
|
+
})();
|
|
705
|
+
});
|
|
706
|
+
runtime.send({ type: "turn-end", ok: true, aborted: false });
|
|
707
|
+
try {
|
|
708
|
+
return await admission;
|
|
709
|
+
} finally {
|
|
710
|
+
args.signal?.removeEventListener("abort", abort);
|
|
711
|
+
}
|
|
712
|
+
}
|
|
208
713
|
|
|
209
714
|
// packages/chat/dialog/actions/addReferenceKeysAction.ts
|
|
210
715
|
var extractReferenceKeys = (content) => {
|
|
@@ -246,6 +751,15 @@ var addReferenceKeysAction = createAsyncThunk(
|
|
|
246
751
|
}
|
|
247
752
|
);
|
|
248
753
|
|
|
754
|
+
// packages/chat/messages/pendingUserMessages.ts
|
|
755
|
+
function selectPendingUserMessages(messages) {
|
|
756
|
+
return messages.filter((message) => message.role === "user" && message.metadata?.queueState === "pending" && !message.metadata?.userBatchReceipt && !message.metadata?.userBatchPhase);
|
|
757
|
+
}
|
|
758
|
+
function selectAdmittedMessages(messages) {
|
|
759
|
+
const pending = new Set(selectPendingUserMessages(messages).map((message) => message.id));
|
|
760
|
+
return messages.filter((message) => !pending.has(message.id));
|
|
761
|
+
}
|
|
762
|
+
|
|
249
763
|
// packages/chat/messages/messageDialogIdentity.ts
|
|
250
764
|
function inferMessageDialogIdFromDbKey(dbKey) {
|
|
251
765
|
const prefix = `${"dialog" /* DIALOG */}-`;
|
|
@@ -258,6 +772,41 @@ function inferMessageDialogIdFromDbKey(dbKey) {
|
|
|
258
772
|
return dbKey.slice(prefix.length, separatorAt);
|
|
259
773
|
}
|
|
260
774
|
|
|
775
|
+
// packages/core/agentRunStatusKind.ts
|
|
776
|
+
var AGENT_RUN_STATUS_TABLE = {
|
|
777
|
+
pending: { kind: "active" },
|
|
778
|
+
queued: { kind: "active" },
|
|
779
|
+
started: { kind: "active" },
|
|
780
|
+
running: { kind: "active" },
|
|
781
|
+
done: { kind: "succeeded" },
|
|
782
|
+
completed: { kind: "succeeded" },
|
|
783
|
+
failed: { kind: "abnormal", startFailureLabel: true },
|
|
784
|
+
timeout: { kind: "abnormal", startFailureLabel: true },
|
|
785
|
+
killed: { kind: "abnormal", startFailureLabel: true },
|
|
786
|
+
cancelled: { kind: "abnormal", startFailureLabel: true },
|
|
787
|
+
orphaned: { kind: "abnormal", startFailureLabel: true },
|
|
788
|
+
cancelling: { kind: "abnormal" },
|
|
789
|
+
not_found: { kind: "abnormal" },
|
|
790
|
+
unknown: { kind: "abnormal" }
|
|
791
|
+
};
|
|
792
|
+
function normalizeStatus(status) {
|
|
793
|
+
return typeof status === "string" ? status.trim() : "";
|
|
794
|
+
}
|
|
795
|
+
function resolveAgentRunStatusKind(status) {
|
|
796
|
+
const key = normalizeStatus(status);
|
|
797
|
+
if (!key) return "unknown";
|
|
798
|
+
return AGENT_RUN_STATUS_TABLE[key]?.kind ?? "unknown";
|
|
799
|
+
}
|
|
800
|
+
function isAgentRunStatusNormal(status) {
|
|
801
|
+
const kind = resolveAgentRunStatusKind(status);
|
|
802
|
+
return kind === "active" || kind === "succeeded";
|
|
803
|
+
}
|
|
804
|
+
function isAgentRunStartFailureStatus(status) {
|
|
805
|
+
const key = normalizeStatus(status);
|
|
806
|
+
if (!key) return false;
|
|
807
|
+
return AGENT_RUN_STATUS_TABLE[key]?.startFailureLabel === true;
|
|
808
|
+
}
|
|
809
|
+
|
|
261
810
|
// packages/chat/messages/toolPresentation.ts
|
|
262
811
|
var SUMMARY_EMOJI_PREFIX = new RegExp("^(\\p{Emoji_Presentation}|\\p{Extended_Pictographic}|\\[[vx!]\\])\\s*", "u");
|
|
263
812
|
function toolResultNeedsUserConfirmation(toolName, result) {
|
|
@@ -745,16 +1294,16 @@ function resolveOccupancyWindow(ref) {
|
|
|
745
1294
|
|
|
746
1295
|
// packages/ai/context/agentContextWindow.ts
|
|
747
1296
|
function resolveAgentContextWindow(ref) {
|
|
748
|
-
const byModel = resolveOccupancyWindow({ model: ref.model, provider: ref.provider });
|
|
1297
|
+
const byModel = resolveOccupancyWindow({ model: ref.model, provider: ref.provider, apiKeyRef: ref.apiKeyRef });
|
|
749
1298
|
if (byModel !== void 0) return byModel;
|
|
750
|
-
const byName = ref.agentName?.trim() ? resolveOccupancyWindow({ model: ref.agentName, provider: ref.provider }) : void 0;
|
|
1299
|
+
const byName = ref.agentName?.trim() ? resolveOccupancyWindow({ model: ref.agentName, provider: ref.provider, apiKeyRef: ref.apiKeyRef }) : void 0;
|
|
751
1300
|
if (byName !== void 0) return byName;
|
|
752
1301
|
const candidates = [
|
|
753
1302
|
...modelSlugCandidates(ref.agentKey, 2),
|
|
754
1303
|
...modelSlugCandidates(ref.agentName, 1)
|
|
755
1304
|
];
|
|
756
1305
|
for (const candidate of candidates) {
|
|
757
|
-
const window = resolveOccupancyWindow({ model: candidate, provider: ref.provider });
|
|
1306
|
+
const window = resolveOccupancyWindow({ model: candidate, provider: ref.provider, apiKeyRef: ref.apiKeyRef });
|
|
758
1307
|
if (window !== void 0) return window;
|
|
759
1308
|
}
|
|
760
1309
|
return void 0;
|
|
@@ -774,89 +1323,6 @@ function modelSlugCandidates(source, maxDrop) {
|
|
|
774
1323
|
return [...new Set(out.filter(Boolean))];
|
|
775
1324
|
}
|
|
776
1325
|
|
|
777
|
-
// packages/agent-runtime/builtinPlatformAgentRoute.ts
|
|
778
|
-
function resolveBuiltinAgentRuntimeFields(agentKey) {
|
|
779
|
-
if (!isBuiltinPlatformAgentKey(agentKey)) return null;
|
|
780
|
-
const entry = builtinAgentCatalogEntryById(parseBuiltinPlatformAgentId(agentKey));
|
|
781
|
-
if (!entry) return null;
|
|
782
|
-
return { provider: entry.provider, model: entry.model };
|
|
783
|
-
}
|
|
784
|
-
|
|
785
|
-
// packages/agent-runtime/builtinPlatformAgentConfigs.ts
|
|
786
|
-
function buildConfig(e) {
|
|
787
|
-
const key = publicAgentKey(e.id);
|
|
788
|
-
const rawRecord = {
|
|
789
|
-
dbKey: key,
|
|
790
|
-
isPublic: true,
|
|
791
|
-
provider: e.provider,
|
|
792
|
-
model: e.model,
|
|
793
|
-
apiSource: e.apiSource ?? "platform",
|
|
794
|
-
useServerProxy: e.useServerProxy ?? true
|
|
795
|
-
};
|
|
796
|
-
if (e.hasImageOutput) rawRecord.hasImageOutput = true;
|
|
797
|
-
if (e.imageModel) rawRecord.imageModel = e.imageModel;
|
|
798
|
-
if (e.imageWorkflow) rawRecord.imageWorkflow = e.imageWorkflow;
|
|
799
|
-
if (e.imageConfig) rawRecord.imageConfig = e.imageConfig;
|
|
800
|
-
return {
|
|
801
|
-
key,
|
|
802
|
-
name: e.name,
|
|
803
|
-
provider: e.provider,
|
|
804
|
-
model: e.model,
|
|
805
|
-
apiSource: e.apiSource ?? "platform",
|
|
806
|
-
useServerProxy: e.useServerProxy ?? true,
|
|
807
|
-
rawRecord
|
|
808
|
-
};
|
|
809
|
-
}
|
|
810
|
-
var BUILTIN_PLATFORM_AGENT_CONFIGS = Object.fromEntries(
|
|
811
|
-
builtinRuntimeFallbackEntries().map((e) => [publicAgentKey(e.id), buildConfig(e)])
|
|
812
|
-
);
|
|
813
|
-
function resolveBuiltinPlatformAgentConfig(agentRef) {
|
|
814
|
-
return BUILTIN_PLATFORM_AGENT_CONFIGS[agentRef] ?? null;
|
|
815
|
-
}
|
|
816
|
-
function resolveBuiltinPlatformAgentRecord(agentRef) {
|
|
817
|
-
const config = resolveBuiltinPlatformAgentConfig(agentRef);
|
|
818
|
-
if (!config) return null;
|
|
819
|
-
return {
|
|
820
|
-
...config.rawRecord,
|
|
821
|
-
dbKey: agentRef,
|
|
822
|
-
...config.name ? { name: config.name } : {}
|
|
823
|
-
};
|
|
824
|
-
}
|
|
825
|
-
var BUILTIN_RUNTIME_EXTRA_OVERRIDES = {
|
|
826
|
-
[BUILTIN_NOLO_AGENT_KEY]: { reasoningEffort: "max" }
|
|
827
|
-
};
|
|
828
|
-
function applyBuiltinAgentRuntimeOverride(agentKey, record) {
|
|
829
|
-
const fields = resolveBuiltinAgentRuntimeFields(agentKey);
|
|
830
|
-
if (!fields) return record;
|
|
831
|
-
const extraFields = BUILTIN_RUNTIME_EXTRA_OVERRIDES[agentKey];
|
|
832
|
-
const extraNeedsOverride = (target) => {
|
|
833
|
-
if (extraFields == null || target == null || typeof target !== "object") {
|
|
834
|
-
return false;
|
|
835
|
-
}
|
|
836
|
-
const flat = target;
|
|
837
|
-
return Object.entries(extraFields).some(([key, value]) => flat[key] !== value);
|
|
838
|
-
};
|
|
839
|
-
const current = record;
|
|
840
|
-
const rawNeedsOverride = current.rawRecord != null && (current.rawRecord.provider !== fields.provider || current.rawRecord.model !== fields.model || extraNeedsOverride(current.rawRecord));
|
|
841
|
-
if (current.provider === fields.provider && current.model === fields.model && !rawNeedsOverride && !extraNeedsOverride(record)) {
|
|
842
|
-
return record;
|
|
843
|
-
}
|
|
844
|
-
return {
|
|
845
|
-
...record,
|
|
846
|
-
provider: fields.provider,
|
|
847
|
-
model: fields.model,
|
|
848
|
-
...extraFields ?? {},
|
|
849
|
-
...current.rawRecord ? {
|
|
850
|
-
rawRecord: {
|
|
851
|
-
...current.rawRecord,
|
|
852
|
-
provider: fields.provider,
|
|
853
|
-
model: fields.model,
|
|
854
|
-
...extraFields ?? {}
|
|
855
|
-
}
|
|
856
|
-
} : {}
|
|
857
|
-
};
|
|
858
|
-
}
|
|
859
|
-
|
|
860
1326
|
// packages/render/web/ui/toastStore.ts
|
|
861
1327
|
var EXIT_MS = 320;
|
|
862
1328
|
var raf = typeof globalThis.requestAnimationFrame === "function" ? (cb) => globalThis.requestAnimationFrame(cb) : (cb) => {
|
|
@@ -3318,8 +3784,13 @@ var Language = /* @__PURE__ */ ((Language2) => {
|
|
|
3318
3784
|
Language2["ZH_HANT"] = "zh-Hant";
|
|
3319
3785
|
Language2["JA"] = "ja";
|
|
3320
3786
|
Language2["KO"] = "ko";
|
|
3787
|
+
Language2["DE"] = "de";
|
|
3788
|
+
Language2["ES"] = "es";
|
|
3321
3789
|
return Language2;
|
|
3322
3790
|
})(Language || {});
|
|
3791
|
+
var SUPPORTED_LANGUAGES = new Set(
|
|
3792
|
+
Object.values(Language)
|
|
3793
|
+
);
|
|
3323
3794
|
|
|
3324
3795
|
// packages/app/i18n/i18n.base.ts
|
|
3325
3796
|
var i18nBaseConfig = {
|
|
@@ -3332,14 +3803,21 @@ var i18nBaseConfig = {
|
|
|
3332
3803
|
"zh-TW": ["zh-Hant" /* ZH_HANT */],
|
|
3333
3804
|
"zh-HK": ["zh-Hant" /* ZH_HANT */],
|
|
3334
3805
|
"zh-MO": ["zh-Hant" /* ZH_HANT */],
|
|
3806
|
+
de: ["de" /* DE */, "en" /* EN */],
|
|
3807
|
+
es: ["es" /* ES */, "en" /* EN */],
|
|
3335
3808
|
default: ["en" /* EN */]
|
|
3336
3809
|
}
|
|
3337
3810
|
};
|
|
3338
3811
|
|
|
3339
3812
|
// packages/ai/ai.locale.ts
|
|
3813
|
+
var AI_API_KEY_LABEL_DE = "API-Schl\xFCssel";
|
|
3340
3814
|
var ai_locale_default = {
|
|
3341
3815
|
en: {
|
|
3342
3816
|
translation: {
|
|
3817
|
+
providerPreset: {
|
|
3818
|
+
// 厂商官方限制第三方登录的订阅通道:照常可选,只做风险提示。
|
|
3819
|
+
officialRestricted: "Third-party sign-in restricted by the vendor"
|
|
3820
|
+
},
|
|
3343
3821
|
// General Actions & Status
|
|
3344
3822
|
cancel: "Cancel",
|
|
3345
3823
|
update: "Update",
|
|
@@ -4923,27 +5401,805 @@ var ai_locale_default = {
|
|
|
4923
5401
|
}
|
|
4924
5402
|
},
|
|
4925
5403
|
listUserSpaces: {
|
|
4926
|
-
description: "\u73FE\u5728\u306E\u30E6\u30FC\u30B6\u30FC\u304C\u6240\u6709\u307E\u305F\u306F\u53C2\u52A0\u3057\u3066\u3044\u308B\u3059\u3079\u3066\u306E Space \u3092\u4E00\u89A7\u8868\u793A\u3057\u3001Space \u540D\u3001ID\u3001\u30E1\u30F3\u30D0\u30FC\u3067\u306E\u5F79\u5272\u306A\u3069\u3092\u8FD4\u3057\u307E\u3059\u3002",
|
|
5404
|
+
description: "\u73FE\u5728\u306E\u30E6\u30FC\u30B6\u30FC\u304C\u6240\u6709\u307E\u305F\u306F\u53C2\u52A0\u3057\u3066\u3044\u308B\u3059\u3079\u3066\u306E Space \u3092\u4E00\u89A7\u8868\u793A\u3057\u3001Space \u540D\u3001ID\u3001\u30E1\u30F3\u30D0\u30FC\u3067\u306E\u5F79\u5272\u306A\u3069\u3092\u8FD4\u3057\u307E\u3059\u3002",
|
|
5405
|
+
params: {
|
|
5406
|
+
brief: "\u7C21\u6F54\u306A\u60C5\u5831\u306E\u307F\u3092\u8FD4\u3059\u304B\u3069\u3046\u304B\u3002true \u306E\u5834\u5408\u3001\u57FA\u672C\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u307F\u3092\u542B\u307F\u3001\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306E Token \u3092\u7BC0\u7D04\u3067\u304D\u307E\u3059\u3002"
|
|
5407
|
+
}
|
|
5408
|
+
},
|
|
5409
|
+
read: {
|
|
5410
|
+
description: "\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30AD\u30FC\u3092\u6307\u5B9A\u3057\u3066\u4EFB\u610F\u306E\u7A2E\u985E\u306E\u30C7\u30FC\u30BF\u30EC\u30B3\u30FC\u30C9\uFF08\u30DA\u30FC\u30B8\u5185\u5BB9\u3001\u4F1A\u8A71\u5C65\u6B74\u3001\u30C6\u30FC\u30D6\u30EB\u8A2D\u5B9A\u306A\u3069\uFF09\u3092\u8AAD\u307F\u53D6\u308A\u307E\u3059\u3002",
|
|
5411
|
+
params: {
|
|
5412
|
+
dbKey: "\u8AAD\u307F\u53D6\u308B\u30EC\u30B3\u30FC\u30C9\u306E Key\uFF08\u4F8B\uFF1APAGE-xxx, dialog-xxx, table-xxx\uFF09\u3002",
|
|
5413
|
+
waitRemote: "\u30EA\u30E2\u30FC\u30C8\u304B\u3089\u6700\u65B0\u30C7\u30FC\u30BF\u3092\u540C\u671F\u3057\u3066\u304B\u3089\u8FD4\u3059\u304B\u3069\u3046\u304B\u3002\u65E2\u5B9A\u306F false\u3002"
|
|
5414
|
+
}
|
|
5415
|
+
},
|
|
5416
|
+
rememberMemory: {
|
|
5417
|
+
description: "\u9577\u671F\u7684\u306B\u4FDD\u6301\u3059\u308B\u4FA1\u5024\u306E\u3042\u308B\u30E6\u30FC\u30B6\u30FC\u8A2D\u5B9A\u3084\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u5408\u610F\u4E8B\u9805\u3092 episodic memory \u306B\u66F8\u304D\u8FBC\u307F\u3001\u4EE5\u964D\u306E\u4F1A\u8A71\u3067\u9577\u671F\u7684\u306B\u691C\u7D22\u3067\u304D\u308B\u3088\u3046\u306B\u3057\u307E\u3059\u3002",
|
|
5418
|
+
params: {
|
|
5419
|
+
content: "\u5177\u4F53\u7684\u306A\u8A18\u61B6\u5185\u5BB9\uFF08\u4F8B\uFF1A'\u30E6\u30FC\u30B6\u30FC\u306F TypeScript \u3067\u306E\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3092\u597D\u307F\u307E\u3059\u3002'\uFF09\u3002",
|
|
5420
|
+
tags: "\u3053\u306E\u8A18\u61B6\u306B\u4ED8\u3051\u308B\u30BF\u30B0\u306E\u914D\u5217\u3002\u5C06\u6765\u306E\u5206\u985E\u3068\u691C\u7D22\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002"
|
|
5421
|
+
}
|
|
5422
|
+
}
|
|
5423
|
+
},
|
|
5424
|
+
agentSquare: "\u5E83\u5834"
|
|
5425
|
+
}
|
|
5426
|
+
},
|
|
5427
|
+
de: {
|
|
5428
|
+
translation: {
|
|
5429
|
+
cancel: "Abbrechen",
|
|
5430
|
+
update: "Aktualisieren",
|
|
5431
|
+
updating: "Wird aktualisiert...",
|
|
5432
|
+
create: "Erstellen",
|
|
5433
|
+
creating: "Wird erstellt...",
|
|
5434
|
+
edit: "Bearbeiten",
|
|
5435
|
+
delete: "L\xF6schen",
|
|
5436
|
+
favorite: "Favorisieren",
|
|
5437
|
+
unfavorite: "Aus Favoriten entfernen",
|
|
5438
|
+
confirmDelete: "L\xF6schen best\xE4tigen",
|
|
5439
|
+
resetToDefaults: "Auf Standardwerte zur\xFCcksetzen",
|
|
5440
|
+
loading: "Wird geladen...",
|
|
5441
|
+
startChat: "Chat starten",
|
|
5442
|
+
starting: "Wird gestartet...",
|
|
5443
|
+
viewDetails: "Details anzeigen",
|
|
5444
|
+
deleteSuccess: "Erfolgreich gel\xF6scht!",
|
|
5445
|
+
moreActions: "Weitere Aktionen",
|
|
5446
|
+
syncToAccount: "Mit Nolo-Konto synchronisieren",
|
|
5447
|
+
syncedToAccount: "Mit aktuellem Konto synchronisiert",
|
|
5448
|
+
syncToAccountTitle: "Mit Nolo-Konto synchronisieren",
|
|
5449
|
+
syncToAccountConfirm: "Synchronisierung best\xE4tigen",
|
|
5450
|
+
syncToAccountConfirmLead: "Konfiguration dieses lokalen Agent mit dem aktuellen Nolo-Konto synchronisieren?",
|
|
5451
|
+
syncToAccountFactLocalRemains: "Der lokale Agent verbleibt auf diesem Ger\xE4t.",
|
|
5452
|
+
syncToAccountFactSnapshotOnly: "Es wird lediglich ein Konfigurations-Snapshot des Agent hochgeladen.",
|
|
5453
|
+
syncToAccountFactNoDialogs: "Dialoge, Nachrichten und Anh\xE4nge werden nicht hochgeladen.",
|
|
5454
|
+
syncToAccountFactNoSecrets: "Lokale API-Schl\xFCssel und Tokens werden nicht hochgeladen.",
|
|
5455
|
+
syncToAccountFactNoSpaceMembership: "Space-Mitgliedschaften werden in diesem Schritt weder ge\xE4ndert noch synchronisiert.",
|
|
5456
|
+
syncToAccountFactOneTime: "Dies ist ein einmaliger Konfigurations-Upload, keine fortlaufende Synchronisierung.",
|
|
5457
|
+
syncToAccountSuccess: "Mit dem aktuellen Konto synchronisiert (lokaler Agent beibehalten)",
|
|
5458
|
+
syncToAccountError: "Synchronisierung fehlgeschlagen. Bitte versuchen Sie es erneut.",
|
|
5459
|
+
fork: {
|
|
5460
|
+
action: "In meine Liste kopieren",
|
|
5461
|
+
title: "Diesen Agent kopieren",
|
|
5462
|
+
targetAll: "Alle (nicht zu einem Space hinzugef\xFCgt)",
|
|
5463
|
+
targetSpaceLabel: "Zu Space hinzuf\xFCgen",
|
|
5464
|
+
confirm: "Kopieren",
|
|
5465
|
+
success: "In Ihre Agent-Liste kopiert",
|
|
5466
|
+
failed: "Kopieren fehlgeschlagen. Bitte versuchen Sie es erneut.",
|
|
5467
|
+
notAllowed: "Dieser Agent erlaubt kein Kopieren",
|
|
5468
|
+
addToSpaceFailed: "Kopiert, aber Hinzuf\xFCgen zum Space fehlgeschlagen. Sie finden ihn unter \u201EAlle\u201C."
|
|
5469
|
+
},
|
|
5470
|
+
agent: "Agent",
|
|
5471
|
+
unnamed: "Unbenannt",
|
|
5472
|
+
noDescription: "Keine Beschreibung",
|
|
5473
|
+
noIntroduction: "Keine Vorstellung verf\xFCgbar.",
|
|
5474
|
+
notSpecified: "Nicht angegeben",
|
|
5475
|
+
vision: "Bildverarbeitung",
|
|
5476
|
+
textOnly: "Nur Text",
|
|
5477
|
+
details: "Details",
|
|
5478
|
+
price: "Preis",
|
|
5479
|
+
credits: "Credits",
|
|
5480
|
+
modelCost: "Modellkosten",
|
|
5481
|
+
inputCostPerMillionTokens: "Eingabe:",
|
|
5482
|
+
outputCostPerMillionTokens: "Ausgabe:",
|
|
5483
|
+
priceShortInput: "Ein",
|
|
5484
|
+
priceShortCache: "Cache",
|
|
5485
|
+
priceShortOutput: "Aus",
|
|
5486
|
+
inputNoCacheCostLabel: "Eingabe (ohne Cache)",
|
|
5487
|
+
inputCacheHitCostLabel: "Eingabe (Cache-Treffer)",
|
|
5488
|
+
cacheWriteInlineLabel: "Schreiben {{value}}",
|
|
5489
|
+
cacheHitSavingsNote: "~{{percent}}% Ersparnis bei Cache-Treffern",
|
|
5490
|
+
referencePricePerTurn: "Referenzpreis pro Durchgang",
|
|
5491
|
+
defaultImageProfileEstimate: "Standard-Profilsch\xE4tzung",
|
|
5492
|
+
perMillionTokens: "pro 1 Mio. Tokens",
|
|
5493
|
+
perTurn: "pro Durchgang",
|
|
5494
|
+
perImage: "pro Bild",
|
|
5495
|
+
supported: "Unterst\xFCtzt",
|
|
5496
|
+
notSupported: "Nicht unterst\xFCtzt",
|
|
5497
|
+
createdAt: "Erstellt am",
|
|
5498
|
+
loadError: "Fehler beim Laden der Details",
|
|
5499
|
+
createDialogError: "Fehler beim Erstellen des Dialogs",
|
|
5500
|
+
deleteError: "L\xF6schen fehlgeschlagen. Bitte versuchen Sie es erneut.",
|
|
5501
|
+
createAgent: {
|
|
5502
|
+
title: "Agent erstellen",
|
|
5503
|
+
untitled: "Unbenannter Agent",
|
|
5504
|
+
chat: "Chat",
|
|
5505
|
+
public: "\xD6ffentlich",
|
|
5506
|
+
byConversation: "Durch Unterhaltung erstellen",
|
|
5507
|
+
manualConfiguration: "Manuelle Konfiguration",
|
|
5508
|
+
quickCreate: {
|
|
5509
|
+
reasoningEffort: "Denkaufwand",
|
|
5510
|
+
reasoningEffortOptions: {
|
|
5511
|
+
none: "Keine",
|
|
5512
|
+
minimal: "Minimal",
|
|
5513
|
+
low: "Niedrig",
|
|
5514
|
+
medium: "Mittel",
|
|
5515
|
+
high: "Hoch",
|
|
5516
|
+
xhigh: "Sehr hoch",
|
|
5517
|
+
max: "Maximal",
|
|
5518
|
+
ultra: "Ultra"
|
|
5519
|
+
}
|
|
5520
|
+
}
|
|
5521
|
+
},
|
|
5522
|
+
localCreate: {
|
|
5523
|
+
title: "Lokalen Agent erstellen",
|
|
5524
|
+
subtitle: "Verbinden Sie Ihre eigenen Modellanbieter oder lokale Schnittstellen, ohne Tokens auf der Plattform zu verbrauchen",
|
|
5525
|
+
descLabel: "Beschreiben Sie, wie dieser Agent Ihnen helfen soll",
|
|
5526
|
+
descPlaceholder: "z. B. Ein Senior-Frontend-Entwickler, der mir hilft, React-Code zu schreiben, Bugs zu beheben und Architekturentscheidungen zu treffen...",
|
|
5527
|
+
connectionMethod: "Verbindungsmethode",
|
|
5528
|
+
configureLater: "Sp\xE4ter konfigurieren",
|
|
5529
|
+
liveVoice: "Echtzeit-Sprachunterst\xFCtzung",
|
|
5530
|
+
recommendedTokenPlan: "Empfohlener Token-Tarif",
|
|
5531
|
+
apiTemplates: "API-Vorlagen",
|
|
5532
|
+
apiKeyPlaceholder: "API-Schl\xFCssel eingeben",
|
|
5533
|
+
modelPlaceholder: "Modellname eingeben (z. B. gpt-4o, claude-3-5-sonnet)",
|
|
5534
|
+
endpointRequired: "API-Endpunkt ist erforderlich",
|
|
5535
|
+
apiKeyRequired: "API-Schl\xFCssel ist erforderlich",
|
|
5536
|
+
ollamaUrlRequired: "Ollama-URL ist erforderlich",
|
|
5537
|
+
createGlobalFirst: "Lokaler Agent wird standardm\xE4\xDFig global erstellt und kann anschlie\xDFend Spaces zugewiesen werden.",
|
|
5538
|
+
liveVoiceHint: "Dieses Modell unterst\xFCtzt Echtzeit-Sprachinteraktion",
|
|
5539
|
+
ollamaHint: "Standard-Ollama-Adresse: http://localhost:11434. Stellen Sie sicher, dass der Dienst l\xE4uft.",
|
|
5540
|
+
joinSpace: "Space beitreten",
|
|
5541
|
+
noBinding: "Nicht binden (global)",
|
|
5542
|
+
success: "Lokaler Agent erfolgreich erstellt!",
|
|
5543
|
+
failed: "Fehler beim Erstellen des lokalen Agent",
|
|
5544
|
+
defaultNewName: "Neuer Agent",
|
|
5545
|
+
submit: "Erstellen"
|
|
5546
|
+
},
|
|
5547
|
+
editAgent: "Agent bearbeiten",
|
|
5548
|
+
tabs: {
|
|
5549
|
+
basicInfo: "Grundlegende Informationen",
|
|
5550
|
+
references: "Kontext & Referenzen",
|
|
5551
|
+
toolSelection: "F\xE4higkeiten & Werkzeuge",
|
|
5552
|
+
knowledgeTools: "Wissen & Werkzeuge",
|
|
5553
|
+
publishSettings: "Ver\xF6ffentlichungseinstellungen",
|
|
5554
|
+
advancedSettings: "Erweiterte Einstellungen",
|
|
5555
|
+
memory: "Ged\xE4chtnis"
|
|
5556
|
+
},
|
|
5557
|
+
form: {
|
|
5558
|
+
name: "Agent-Name",
|
|
5559
|
+
namePlaceholder: "Namen des Agent eingeben...",
|
|
5560
|
+
provider: "Anbieter",
|
|
5561
|
+
selectProvider: "Anbieter ausw\xE4hlen",
|
|
5562
|
+
model: "Modell",
|
|
5563
|
+
selectModel: "Modell ausw\xE4hlen",
|
|
5564
|
+
customProviderUrl: "Anbieter-URL",
|
|
5565
|
+
customProviderUrlPlaceholder: "z. B. https://api.example.com/v1/chat/completions",
|
|
5566
|
+
apiKey: AI_API_KEY_LABEL_DE,
|
|
5567
|
+
crossDeviceKey: "Auf anderen Ger\xE4ten verwenden",
|
|
5568
|
+
prompt: "Prompt",
|
|
5569
|
+
promptPlaceholder: "Verhalten und Pers\xF6nlichkeit des Agent definieren...",
|
|
5570
|
+
greeting: "Begr\xFC\xDFungsnachricht",
|
|
5571
|
+
introduction: "Selbstvorstellung",
|
|
5572
|
+
introductionPlaceholder: "Selbstvorstellung eingeben",
|
|
5573
|
+
tags: "Tags",
|
|
5574
|
+
tagsPlaceholder: "Tags eingeben und Enter dr\xFCcken",
|
|
5575
|
+
useServerProxy: "Proxy-Modus",
|
|
5576
|
+
enableThinking: "Denkmodus",
|
|
5577
|
+
thinkingBudget: "Denk-Token-Budget",
|
|
5578
|
+
isPublic: "\xD6ffentlich machen",
|
|
5579
|
+
allowFork: "Anderen das Kopieren erlauben",
|
|
5580
|
+
inputPrice: "Eingabepreis",
|
|
5581
|
+
inputPricePlaceholder: "Kosten pro 1 Mio. Eingabe-Tokens",
|
|
5582
|
+
outputPrice: "Ausgabepreis",
|
|
5583
|
+
outputPricePlaceholder: "Kosten pro 1 Mio. Ausgabe-Tokens",
|
|
5584
|
+
apiSource: "API-Quelle",
|
|
5585
|
+
usePlatformApi: "Plattform-API",
|
|
5586
|
+
useCustomApi: "Benutzerdefinierte API",
|
|
5587
|
+
tools: "Werkzeuge",
|
|
5588
|
+
selectTools: "Werkzeuge ausw\xE4hlen",
|
|
5589
|
+
modelParameters: "Modellparameter",
|
|
5590
|
+
temperature: "Temperatur",
|
|
5591
|
+
topP: "Top P",
|
|
5592
|
+
frequencyPenalty: "Frequenzstrafe",
|
|
5593
|
+
presencePenalty: "Pr\xE4senzstrafe",
|
|
5594
|
+
maxTokens: "Max Tokens",
|
|
5595
|
+
maxTokensFollowModelDefault: "Modell-Standardwert folgen (nicht festgelegt)",
|
|
5596
|
+
maxTokensSetCustom: "Benutzerdefiniert",
|
|
5597
|
+
maxTokensClearToDefault: "Modell-Standardwert folgen",
|
|
5598
|
+
maxTokensInputPlaceholder: "Wert eingeben (leer = Modell-Standardwert)",
|
|
5599
|
+
reasoningEffort: "Denkaufwand",
|
|
5600
|
+
defaults: {
|
|
5601
|
+
greeting: "Ich bin ein intelligenter Assistent, der von nolo.chat f\xFCr Sie angepasst wurde. Wie kann ich Ihnen heute helfen?"
|
|
5602
|
+
},
|
|
5603
|
+
customModelName: "Benutzerdefinierter Modellname",
|
|
5604
|
+
customModelNamePlaceholder: "Benutzerdefinierten Modellnamen eingeben"
|
|
5605
|
+
},
|
|
5606
|
+
help: {
|
|
5607
|
+
tags: "Tags helfen Benutzern, Ihren Agent auf dem Marktplatz zu entdecken.",
|
|
5608
|
+
proxy: "Leitet API-Anfragen \xFCber den Plattform-Server weiter, um lokale CORS-Beschr\xE4nkungen zu umgehen.",
|
|
5609
|
+
enableThinking: "Aktiviert den schrittweisen Denkprozess des Modells vor der endg\xFCltigen Antwort.",
|
|
5610
|
+
thinkingBudget: "Begrenzt die maximale Anzahl von Tokens, die f\xFCr den Denkprozess verwendet werden d\xFCrfen.",
|
|
5611
|
+
isPublic: "Nach der Ver\xF6ffentlichung k\xF6nnen andere Benutzer diesen Agent auf dem Marktplatz finden und nutzen.",
|
|
5612
|
+
allowForkAny: "Erlaubt anderen Benutzern, diesen Agent in ihre eigene Liste zu kopieren und anzupassen.",
|
|
5613
|
+
isPublicCustomApi: "\xD6ffentliche Agents mit eigener API verwenden die API-Schl\xFCssel der aufrufenden Benutzer.",
|
|
5614
|
+
apiSourcePlatform: "Nutzt die offiziellen Plattformkan\xE4le; der Tokenverbrauch wird von Ihrem Plattform-Guthaben abgezogen.",
|
|
5615
|
+
apiSourceCustom: "Verwendet Ihre eigenen Modellanbieter und API-Schl\xFCssel; kein Verbrauch von Plattform-Credits.",
|
|
5616
|
+
promptAutomation: "System-Prompts geben dem Agent Anweisungen, Rollen und Verhaltensregeln vor.",
|
|
5617
|
+
tools: "Aktivieren Sie F\xE4higkeiten wie Websuche, Dateioperationen oder benutzerdefinierte Integrationen.",
|
|
5618
|
+
temperature: "Steuert die Zuf\xE4lligkeit: Niedrigere Werte sind pr\xE4ziser, h\xF6here Werte kreativer.",
|
|
5619
|
+
topP: "Nucleus-Sampling: Eine Alternative zur Temperatur, steuert die Vielfalt der Tokenauswahl.",
|
|
5620
|
+
frequencyPenalty: "Verringert die Wahrscheinlichkeit, dass W\xF6rter wiederholt werden.",
|
|
5621
|
+
presencePenalty: "Erh\xF6ht die Wahrscheinlichkeit, neue Themen anzusprechen.",
|
|
5622
|
+
maxTokens: "Die maximale Anzahl der in einer Antwort generierten Tokens.",
|
|
5623
|
+
reasoningEffort: "Steuert die Intensit\xE4t des Denkens bei Modellen mit Denkmodus (z. B. OpenAI o-Serie)."
|
|
5624
|
+
},
|
|
5625
|
+
validation: {
|
|
5626
|
+
nameRequired: "Name des Agent ist erforderlich",
|
|
5627
|
+
nameTooLong: "Der Name darf 50 Zeichen nicht \xFCberschreiten",
|
|
5628
|
+
providerRequired: "Bitte w\xE4hlen Sie einen Modellanbieter aus",
|
|
5629
|
+
modelRequired: "Bitte w\xE4hlen Sie ein Modell aus",
|
|
5630
|
+
invalidUrl: "Bitte geben Sie eine g\xFCltige URL ein",
|
|
5631
|
+
priceMin: "Der Preis darf nicht negativ sein",
|
|
5632
|
+
duplicateReferences: "Doppelte Referenzen gefunden",
|
|
5633
|
+
temperatureRange: "Die Temperatur muss zwischen 0 und 2 liegen",
|
|
5634
|
+
topPRange: "Top P muss zwischen 0 und 1 liegen",
|
|
5635
|
+
frequencyPenaltyRange: "Die Frequenzstrafe muss zwischen -2 und 2 liegen",
|
|
5636
|
+
presencePenaltyRange: "Die Pr\xE4senzstrafe muss zwischen -2 und 2 liegen",
|
|
5637
|
+
maxTokensMin: "Max Tokens muss mindestens 1 sein",
|
|
5638
|
+
maxTokensMax: "Max Tokens darf h\xF6chstens 500,000 betragen",
|
|
5639
|
+
maxTokensRange: "Max Tokens muss zwischen {{min}} und {{max}} liegen",
|
|
5640
|
+
reasoningEffortInvalid: "Ung\xFCltiger Denkaufwand-Wert",
|
|
5641
|
+
thinkingBudgetMin: "Das Denkbudget muss mindestens 1024 betragen",
|
|
5642
|
+
thinkingBudgetMax: "Das Denkbudget darf h\xF6chstens 100,000 Token betragen",
|
|
5643
|
+
apiKeyRequired: "API-Schl\xFCssel ist erforderlich",
|
|
5644
|
+
customUrlRequired: "Benutzerdefinierte API-Adresse ist erforderlich"
|
|
5645
|
+
},
|
|
5646
|
+
errors: {
|
|
5647
|
+
noUserId: "Benutzer-ID nicht gefunden. Bitte melden Sie sich erneut an.",
|
|
5648
|
+
createDialog: "Fehler beim Erstellen der Unterhaltung",
|
|
5649
|
+
delete: "Fehler beim L\xF6schen des Agent"
|
|
5650
|
+
},
|
|
5651
|
+
references: {
|
|
5652
|
+
title: "Kontext & Referenzen",
|
|
5653
|
+
selectTitle: "Referenzen ausw\xE4hlen",
|
|
5654
|
+
selectHelp: "W\xE4hlen Sie Seiten, Dokumente oder Spaces aus, die als Wissensbasis in die Unterhaltung eingebunden werden.",
|
|
5655
|
+
searchCurrentSpace: "Im aktuellen Space suchen...",
|
|
5656
|
+
searchAllSpaces: "In allen Spaces suchen...",
|
|
5657
|
+
clearSearch: "Suche leeren",
|
|
5658
|
+
noResults: "Keine Referenzen gefunden",
|
|
5659
|
+
noContent: "Keine Inhalte verf\xFCgbar",
|
|
5660
|
+
found_one: "{{count}} Ergebnis gefunden",
|
|
5661
|
+
found_other: "{{count}} Ergebnisse gefunden",
|
|
5662
|
+
fromSpace: "Aus: {{spaceName}}",
|
|
5663
|
+
toInstruction: "Als Anweisung festlegen",
|
|
5664
|
+
toKnowledge: "Als Wissen festlegen",
|
|
5665
|
+
selected_one: "{{count}} Referenz ausgew\xE4hlt",
|
|
5666
|
+
selected_other: "{{count}} Referenzen ausgew\xE4hlt",
|
|
5667
|
+
knowledge: "Wissen (Knowledge)",
|
|
5668
|
+
instruction: "Anweisung (Instruction)",
|
|
5669
|
+
enabledContext: "Aktivierter Kontext",
|
|
5670
|
+
linkedSpaces: "Verkn\xFCpfte Spaces",
|
|
5671
|
+
linkedSpacesHelp: "Der Agent kann auf Dokumente und Daten innerhalb der verkn\xFCpften Spaces zugreifen.",
|
|
5672
|
+
noLinkedSpaces: "Keine verkn\xFCpften Spaces",
|
|
5673
|
+
allSpaces: "Alle Spaces",
|
|
5674
|
+
selectSpace: "Space ausw\xE4hlen",
|
|
5675
|
+
selectSpacePlaceholder: "W\xE4hlen Sie einen Space zum Verkn\xFCpfen...",
|
|
5676
|
+
add: "Hinzuf\xFCgen",
|
|
5677
|
+
addSkill: "F\xE4higkeit hinzuf\xFCgen",
|
|
5678
|
+
addKnowledge: "Wissen hinzuf\xFCgen",
|
|
5679
|
+
addInstruction: "Anweisung hinzuf\xFCgen",
|
|
5680
|
+
remove: "Entfernen",
|
|
5681
|
+
skills: "F\xE4higkeiten (Skills)",
|
|
5682
|
+
skillsHelp: "F\xE4higkeiten erweitern die Handlungsm\xF6glichkeiten des Agent um spezialisierte Workflows.",
|
|
5683
|
+
knowledgeHelp: "Wissensdokumente werden bei Bedarf durchsucht und als Hintergrundwissen verwendet.",
|
|
5684
|
+
instructionHelp: "Anweisungen werden dauerhaft in den System-Prompt geladen und steuern das Verhalten.",
|
|
5685
|
+
exploreCommunitySkills: "Community-Skills durchsuchen",
|
|
5686
|
+
noSkillsYet: "Noch keine F\xE4higkeiten hinzugef\xFCgt",
|
|
5687
|
+
noKnowledgeYet: "Noch kein Wissen hinzugef\xFCgt",
|
|
5688
|
+
noInstructionsYet: "Noch keine Anweisungen hinzugef\xFCgt",
|
|
5689
|
+
globalRecommendedSkills: "Global empfohlene Skills",
|
|
5690
|
+
currentViewSkills: "Skills der aktuellen Ansicht",
|
|
5691
|
+
noGlobalRecommendedSkills: "Keine global empfohlenen Skills",
|
|
5692
|
+
noCurrentViewSkills: "Keine Skills in der aktuellen Ansicht",
|
|
5693
|
+
noSkillContent: "Kein Inhalt f\xFCr diesen Skill verf\xFCgbar",
|
|
5694
|
+
globalRecommendedSkillsFallback: "Empfohlene Skills",
|
|
5695
|
+
skillsEmptyHint: "F\xFCgen Sie Skills hinzu, um Ihrem Agent neue F\xE4higkeiten zu verleihen",
|
|
5696
|
+
knowledgeEmptyHint: "F\xFCgen Sie Dokumente oder Notizen als Wissensbasis hinzu",
|
|
5697
|
+
instructionEmptyHint: "F\xFCgen Sie Verhaltensregeln oder Anweisungsdokumente hinzu",
|
|
5698
|
+
previewDoc: "Dokumentvorschau",
|
|
5699
|
+
openInNewTab: "In neuem Tab \xF6ffnen",
|
|
5700
|
+
noAvailableSpaces: "Keine Spaces verf\xFCgbar",
|
|
5701
|
+
contextBudget: "Kontext-Budget",
|
|
5702
|
+
refsTokens: "Referenzen: ~{{val}} Tokens",
|
|
5703
|
+
spacesTokens: "Spaces: ~{{val}} Tokens",
|
|
5704
|
+
budgetWarning: "Vorab zugewiesener Kontext belegt {{percent}}%. Es wird empfohlen, unter {{max}}% zu bleiben, um ausreichend Platz f\xFCr den Unterhaltungsverlauf zu lassen."
|
|
5705
|
+
},
|
|
5706
|
+
toolsTab: {
|
|
5707
|
+
title: "F\xE4higkeiten & Werkzeuge",
|
|
5708
|
+
description: "Konfigurieren Sie die zur Laufzeit verf\xFCgbaren F\xE4higkeiten und Werkzeuge des Agent",
|
|
5709
|
+
modeLabel: "Modus",
|
|
5710
|
+
skillMode: "Skill-Modus (Empfohlen)",
|
|
5711
|
+
toolMode: "Manueller Werkzeugmodus",
|
|
5712
|
+
skillModeTitle: "F\xE4higkeiten-zentriert",
|
|
5713
|
+
skillModeDescription: "Binden Sie strukturierte F\xE4higkeiten ein, die automatisch ben\xF6tigte Werkzeuge und Prompt-Richtlinien mitbringen.",
|
|
5714
|
+
toolModeTitle: "Werkzeug-zentriert",
|
|
5715
|
+
toolModeDescription: "W\xE4hlen Sie einzelne atomare Werkzeuge manuell aus.",
|
|
5716
|
+
summaryTitle: "Konfigurations\xFCbersicht",
|
|
5717
|
+
summaryDescription: "{{skillCount}} eingebundene Skills \xB7 {{toolCount}} Werkzeuge zur Laufzeit verf\xFCgbar",
|
|
5718
|
+
skillDataTitle: "F\xE4higkeitendaten",
|
|
5719
|
+
skillDataDescription: "Verwalten Sie die mit den F\xE4higkeiten verkn\xFCpften Anweisungen und Parameter.",
|
|
5720
|
+
openReferences: "Referenzen \xF6ffnen",
|
|
5721
|
+
noSkillsSelected: "Keine F\xE4higkeiten ausgew\xE4hlt",
|
|
5722
|
+
removeSkill: "F\xE4higkeit entfernen",
|
|
5723
|
+
viewSkillDetail: "Details anzeigen",
|
|
5724
|
+
requiredSkills: "Erforderliche Skills",
|
|
5725
|
+
recommendedSkills: "Empfohlene Skills",
|
|
5726
|
+
recommendedHints: "Empfehlungen basierend auf Ihrer Agent-Konfiguration",
|
|
5727
|
+
runtimeGuidance: "Laufzeit-Hinweise",
|
|
5728
|
+
manualToolsTitle: "Manuelle Werkzeuge",
|
|
5729
|
+
manualToolsDescription: "W\xE4hlen Sie gezielt einzelne Werkzeuge f\xFCr spezielle Anwendungsf\xE4lle aus.",
|
|
5730
|
+
showManualTools: "Manuelle Werkzeuge anzeigen",
|
|
5731
|
+
hideManualTools: "Manuelle Werkzeuge ausblenden",
|
|
5732
|
+
manualToolsCollapsed: "{{count}} manuelle Werkzeuge ausgew\xE4hlt. Ausklappen, um die vollst\xE4ndige Liste zu bearbeiten.",
|
|
5733
|
+
noToolsSelected: "Keine Werkzeuge ausgew\xE4hlt"
|
|
5734
|
+
},
|
|
5735
|
+
tools: {
|
|
5736
|
+
createAgent: {
|
|
5737
|
+
description: "Erstellt einen neuen Agent mit benutzerdefinierter Konfiguration, System-Prompt und Modell.",
|
|
5738
|
+
params: {
|
|
5739
|
+
name: "Der Name des Agent.",
|
|
5740
|
+
model: "Die zu verwendende Modell-ID.",
|
|
5741
|
+
provider: "Der Modellanbieter.",
|
|
5742
|
+
prompt: "Die System-Prompt-Anweisungen.",
|
|
5743
|
+
introduction: "Eine kurze Vorstellung oder Beschreibung des Agent.",
|
|
5744
|
+
greeting: {
|
|
5745
|
+
desc: "Die Begr\xFC\xDFungsnachricht und Einstiegsoptionen des Agent.",
|
|
5746
|
+
stringDesc: "Ein einfacher Begr\xFC\xDFungstext.",
|
|
5747
|
+
objectDesc: "Ein strukturiertes Begr\xFC\xDFungsobjekt mit Text und Optionen.",
|
|
5748
|
+
texts: {
|
|
5749
|
+
text: "Der Inhalt der Begr\xFC\xDFungsnachricht."
|
|
5750
|
+
},
|
|
5751
|
+
menu: {
|
|
5752
|
+
desc: "Eine Liste von anklickbaren Schnellstart-Optionen.",
|
|
5753
|
+
id: "Die eindeutige Kennung der Men\xFCoption.",
|
|
5754
|
+
label: "Der angezeigte Text der Schaltfl\xE4che.",
|
|
5755
|
+
userMessage: "Die Nachricht, die gesendet wird, wenn der Benutzer auf die Option klickt."
|
|
5756
|
+
}
|
|
5757
|
+
},
|
|
5758
|
+
isPublic: "Ob der Agent auf dem Marktplatz \xF6ffentlich sichtbar sein soll.",
|
|
5759
|
+
allowFork: "Ob andere Benutzer diesen Agent kopieren d\xFCrfen.",
|
|
5760
|
+
tags: "Eine Liste von Schlagw\xF6rtern zur Kategorisierung.",
|
|
5761
|
+
tools: "Ein Array von Werkzeugnamen, die der Agent verwenden darf.",
|
|
5762
|
+
linkedSpaces: "Ein Array von Space-IDs, auf die der Agent Zugriff hat.",
|
|
5763
|
+
references: {
|
|
5764
|
+
desc: "Referenzdokumente und Wissensbasis-Eintr\xE4ge f\xFCr den Agent.",
|
|
5765
|
+
dbKey: "Der Datenbankschl\xFCssel des referenzierten Dokuments.",
|
|
5766
|
+
title: "Der Titel des Dokuments.",
|
|
5767
|
+
type: "Die Art der Referenz (knowledge oder instruction)."
|
|
5768
|
+
},
|
|
5769
|
+
temperature: "Steuert die Zuf\xE4lligkeit der Antworten (0 bis 2).",
|
|
5770
|
+
top_p: "Nucleus-Sampling-Parameter (0 bis 1).",
|
|
5771
|
+
frequency_penalty: "Verringert Wortwiederholungen (-2 bis 2).",
|
|
5772
|
+
presence_penalty: "Ermutigt neue Themen (-2 bis 2).",
|
|
5773
|
+
max_tokens: "Maximale Anzahl generierter Tokens.",
|
|
5774
|
+
reasoning_effort: "Denkaufwand f\xFCr Modelle mit Denkmodus (low, medium, high)."
|
|
5775
|
+
}
|
|
5776
|
+
},
|
|
5777
|
+
checkEnv: {
|
|
5778
|
+
description: "Pr\xFCft die aktuelle Ausf\xFChrungsumgebung und verf\xFCgbare Tools.",
|
|
5779
|
+
params: {
|
|
5780
|
+
check: "Art der Pr\xFCfung: 'context' gibt Umgebungsinformationen zur\xFCck, 'build' f\xFChrt einen Build-Check durch.",
|
|
5781
|
+
key: "Optional: Name des zu pr\xFCfenden Werkzeugs (z. B. node, bun, git)."
|
|
5782
|
+
}
|
|
5783
|
+
},
|
|
5784
|
+
deleteSpaces: {
|
|
5785
|
+
description: "Sucht und l\xF6scht Spaces des aktuellen Benutzers nach Name oder ID. Gef\xE4hrliche Aktion: Zeigt zuerst eine Vorschau und erfordert Best\xE4tigung.",
|
|
5786
|
+
params: {
|
|
5787
|
+
query: "Suchbegriff zum Filtern der zu l\xF6schenden Spaces.",
|
|
5788
|
+
matchMode: "Suchmodus: prefix, exact, contains oder spaceId.",
|
|
5789
|
+
confirmedSpaceIds: "Liste der best\xE4tigten Space-IDs zum L\xF6schen."
|
|
5790
|
+
}
|
|
5791
|
+
},
|
|
5792
|
+
listUserSpaces: {
|
|
5793
|
+
description: "Listet alle Spaces auf, die dem Benutzer geh\xF6ren oder denen er beigetreten ist.",
|
|
5794
|
+
params: {
|
|
5795
|
+
brief: "Gibt nur Metadaten zur\xFCck, um Kontext-Tokens zu sparen."
|
|
5796
|
+
}
|
|
5797
|
+
},
|
|
5798
|
+
read: {
|
|
5799
|
+
description: "Liest einen beliebigen Datensatz anhand seines Datenbankschl\xFCssels.",
|
|
5800
|
+
params: {
|
|
5801
|
+
dbKey: "Der Datenbankschl\xFCssel des Datensatzes (z. B. PAGE-xxx, dialog-xxx).",
|
|
5802
|
+
waitRemote: "Ob vor der R\xFCckgabe die neuesten Daten vom Server synchronisiert werden sollen."
|
|
5803
|
+
}
|
|
5804
|
+
},
|
|
5805
|
+
rememberMemory: {
|
|
5806
|
+
description: "Speichert wichtige Benutzerpr\xE4ferenzen oder Vereinbarungen dauerhaft im Langzeitged\xE4chtnis.",
|
|
5807
|
+
params: {
|
|
5808
|
+
content: "Der zu merkende Inhalt.",
|
|
5809
|
+
tags: "Schlagw\xF6rter zur sp\xE4teren Einordnung und Suche."
|
|
5810
|
+
}
|
|
5811
|
+
}
|
|
5812
|
+
},
|
|
5813
|
+
agentSquare: "Marktplatz"
|
|
5814
|
+
}
|
|
5815
|
+
},
|
|
5816
|
+
es: {
|
|
5817
|
+
translation: {
|
|
5818
|
+
cancel: "Cancelar",
|
|
5819
|
+
update: "Actualizar",
|
|
5820
|
+
updating: "Actualizando...",
|
|
5821
|
+
create: "Crear",
|
|
5822
|
+
creating: "Creando...",
|
|
5823
|
+
edit: "Editar",
|
|
5824
|
+
delete: "Eliminar",
|
|
5825
|
+
favorite: "Favorito",
|
|
5826
|
+
unfavorite: "Quitar de favoritos",
|
|
5827
|
+
confirmDelete: "Confirmar eliminaci\xF3n",
|
|
5828
|
+
resetToDefaults: "Restablecer valores predeterminados",
|
|
5829
|
+
loading: "Cargando...",
|
|
5830
|
+
startChat: "Iniciar chat",
|
|
5831
|
+
starting: "Iniciando...",
|
|
5832
|
+
viewDetails: "Ver detalles",
|
|
5833
|
+
deleteSuccess: "\xA1Eliminado correctamente!",
|
|
5834
|
+
moreActions: "M\xE1s acciones",
|
|
5835
|
+
syncToAccount: "Sincronizar con cuenta de Nolo",
|
|
5836
|
+
syncedToAccount: "Sincronizado con la cuenta actual",
|
|
5837
|
+
syncToAccountTitle: "Sincronizar con cuenta de Nolo",
|
|
5838
|
+
syncToAccountConfirm: "Confirmar sincronizaci\xF3n",
|
|
5839
|
+
syncToAccountConfirmLead: "\xBFSincronizar la configuraci\xF3n de este Agent local con la cuenta actual de Nolo?",
|
|
5840
|
+
syncToAccountFactLocalRemains: "El Agent local permanece en este dispositivo.",
|
|
5841
|
+
syncToAccountFactSnapshotOnly: "Solo se sube una instant\xE1nea de la configuraci\xF3n del Agent.",
|
|
5842
|
+
syncToAccountFactNoDialogs: "Los di\xE1logos, mensajes y adjuntos no se suben.",
|
|
5843
|
+
syncToAccountFactNoSecrets: "Las claves API y tokens locales no se suben.",
|
|
5844
|
+
syncToAccountFactNoSpaceMembership: "La pertenencia a espacios no se modifica ni sincroniza en este paso.",
|
|
5845
|
+
syncToAccountFactOneTime: "Esta es una subida puntual de la configuraci\xF3n, no una sincronizaci\xF3n continua.",
|
|
5846
|
+
syncToAccountSuccess: "Sincronizado con la cuenta actual (Agent local conservado)",
|
|
5847
|
+
syncToAccountError: "Error de sincronizaci\xF3n. Int\xE9ntalo de nuevo.",
|
|
5848
|
+
fork: {
|
|
5849
|
+
action: "Copiar a mis Agents",
|
|
5850
|
+
title: "Copiar este Agent",
|
|
5851
|
+
targetAll: "Todos (sin a\xF1adir a un espacio)",
|
|
5852
|
+
targetSpaceLabel: "A\xF1adir al espacio",
|
|
5853
|
+
confirm: "Copiar",
|
|
5854
|
+
success: "Copiado a tu lista de Agents",
|
|
5855
|
+
failed: "Error al copiar. Int\xE9ntalo de nuevo.",
|
|
5856
|
+
notAllowed: "Este Agent no permite copia",
|
|
5857
|
+
addToSpaceFailed: 'Copiado, pero no se pudo a\xF1adir al espacio. Puedes encontrarlo en "Todos".'
|
|
5858
|
+
},
|
|
5859
|
+
agent: "Agent",
|
|
5860
|
+
unnamed: "Sin nombre",
|
|
5861
|
+
noDescription: "Sin descripci\xF3n",
|
|
5862
|
+
noIntroduction: "Sin presentaci\xF3n disponible.",
|
|
5863
|
+
notSpecified: "No especificado",
|
|
5864
|
+
vision: "Visi\xF3n",
|
|
5865
|
+
textOnly: "Solo texto",
|
|
5866
|
+
details: "Detalles",
|
|
5867
|
+
price: "Precio",
|
|
5868
|
+
credits: "Cr\xE9ditos",
|
|
5869
|
+
modelCost: "Coste del modelo",
|
|
5870
|
+
inputCostPerMillionTokens: "Entrada:",
|
|
5871
|
+
outputCostPerMillionTokens: "Salida:",
|
|
5872
|
+
priceShortInput: "Entrada",
|
|
5873
|
+
priceShortCache: "Cach\xE9",
|
|
5874
|
+
priceShortOutput: "Salida",
|
|
5875
|
+
inputNoCacheCostLabel: "Entrada (sin cach\xE9)",
|
|
5876
|
+
inputCacheHitCostLabel: "Entrada (acierto de cach\xE9)",
|
|
5877
|
+
cacheWriteInlineLabel: "escritura {{value}}",
|
|
5878
|
+
cacheHitSavingsNote: "~{{percent}}% de ahorro en aciertos de cach\xE9",
|
|
5879
|
+
referencePricePerTurn: "Precio de referencia por turno",
|
|
5880
|
+
defaultImageProfileEstimate: "Estimaci\xF3n de perfil est\xE1ndar",
|
|
5881
|
+
perMillionTokens: "por 1 M de tokens",
|
|
5882
|
+
perTurn: "por turno",
|
|
5883
|
+
perImage: "por imagen",
|
|
5884
|
+
supported: "Compatible",
|
|
5885
|
+
notSupported: "No compatible",
|
|
5886
|
+
createdAt: "Fecha de creaci\xF3n",
|
|
5887
|
+
loadError: "Error al cargar los detalles",
|
|
5888
|
+
createDialogError: "Error al crear el di\xE1logo",
|
|
5889
|
+
deleteError: "Error al eliminar. Int\xE9ntalo de nuevo.",
|
|
5890
|
+
createAgent: {
|
|
5891
|
+
title: "Crear Agent",
|
|
5892
|
+
untitled: "Agent sin t\xEDtulo",
|
|
5893
|
+
chat: "Chat",
|
|
5894
|
+
public: "P\xFAblico",
|
|
5895
|
+
byConversation: "Crear mediante conversaci\xF3n",
|
|
5896
|
+
manualConfiguration: "Configuraci\xF3n manual",
|
|
5897
|
+
quickCreate: {
|
|
5898
|
+
reasoningEffort: "Esfuerzo de razonamiento",
|
|
5899
|
+
reasoningEffortOptions: {
|
|
5900
|
+
none: "Ninguno",
|
|
5901
|
+
minimal: "M\xEDnimo",
|
|
5902
|
+
low: "Bajo",
|
|
5903
|
+
medium: "Medio",
|
|
5904
|
+
high: "Alto",
|
|
5905
|
+
xhigh: "Muy alto",
|
|
5906
|
+
max: "M\xE1ximo",
|
|
5907
|
+
ultra: "Ultra"
|
|
5908
|
+
}
|
|
5909
|
+
}
|
|
5910
|
+
},
|
|
5911
|
+
localCreate: {
|
|
5912
|
+
title: "Crear Agent local",
|
|
5913
|
+
subtitle: "Conecta tus propios proveedores de modelos o servicios locales sin consumir tokens de la plataforma",
|
|
5914
|
+
descLabel: "Describe c\xF3mo te ayudar\xE1 este Agent",
|
|
5915
|
+
descPlaceholder: "p. ej., Un desarrollador frontend senior que me ayude a escribir c\xF3digo React, resolver errores y tomar decisiones arquitect\xF3nicas...",
|
|
5916
|
+
connectionMethod: "M\xE9todo de conexi\xF3n",
|
|
5917
|
+
configureLater: "Configurar m\xE1s tarde",
|
|
5918
|
+
liveVoice: "Voz en tiempo real",
|
|
5919
|
+
recommendedTokenPlan: "Plan de tokens recomendado",
|
|
5920
|
+
apiTemplates: "Plantillas de API",
|
|
5921
|
+
apiKeyPlaceholder: "Introduce la clave API",
|
|
5922
|
+
modelPlaceholder: "Introduce el nombre del modelo (p. ej., gpt-4o, claude-3-5-sonnet)",
|
|
5923
|
+
endpointRequired: "El punto de enlace de la API es obligatorio",
|
|
5924
|
+
apiKeyRequired: "La clave API es obligatoria",
|
|
5925
|
+
ollamaUrlRequired: "La URL de Ollama es obligatoria",
|
|
5926
|
+
createGlobalFirst: "El Agent local se crea de forma global por defecto y luego puede asignarse a espacios.",
|
|
5927
|
+
liveVoiceHint: "Este modelo es compatible con interacci\xF3n de voz en tiempo real",
|
|
5928
|
+
ollamaHint: "Direcci\xF3n predeterminada de Ollama: http://localhost:11434. Aseg\xFArate de que el servicio est\xE9 en ejecuci\xF3n.",
|
|
5929
|
+
joinSpace: "Unirse a un espacio",
|
|
5930
|
+
noBinding: "Sin vinculaci\xF3n (global)",
|
|
5931
|
+
success: "\xA1Agent local creado correctamente!",
|
|
5932
|
+
failed: "Error al crear el Agent local",
|
|
5933
|
+
defaultNewName: "Nuevo Agent",
|
|
5934
|
+
submit: "Crear"
|
|
5935
|
+
},
|
|
5936
|
+
editAgent: "Editar Agent",
|
|
5937
|
+
tabs: {
|
|
5938
|
+
basicInfo: "Informaci\xF3n b\xE1sica",
|
|
5939
|
+
references: "Contexto y referencias",
|
|
5940
|
+
toolSelection: "Habilidades y herramientas",
|
|
5941
|
+
knowledgeTools: "Conocimiento y herramientas",
|
|
5942
|
+
publishSettings: "Configuraci\xF3n de publicaci\xF3n",
|
|
5943
|
+
advancedSettings: "Configuraci\xF3n avanzada",
|
|
5944
|
+
memory: "Memoria"
|
|
5945
|
+
},
|
|
5946
|
+
form: {
|
|
5947
|
+
name: "Nombre del Agent",
|
|
5948
|
+
namePlaceholder: "Introduce el nombre del Agent...",
|
|
5949
|
+
provider: "Proveedor",
|
|
5950
|
+
selectProvider: "Seleccionar proveedor",
|
|
5951
|
+
model: "Modelo",
|
|
5952
|
+
selectModel: "Seleccionar modelo",
|
|
5953
|
+
customProviderUrl: "URL del proveedor",
|
|
5954
|
+
customProviderUrlPlaceholder: "p. ej., https://api.example.com/v1/chat/completions",
|
|
5955
|
+
apiKey: "Clave API",
|
|
5956
|
+
crossDeviceKey: "Usar en otros dispositivos",
|
|
5957
|
+
prompt: "Prompt",
|
|
5958
|
+
promptPlaceholder: "Define el comportamiento y la personalidad del Agent...",
|
|
5959
|
+
greeting: "Mensaje de bienvenida",
|
|
5960
|
+
introduction: "Presentaci\xF3n",
|
|
5961
|
+
introductionPlaceholder: "Introduce la presentaci\xF3n",
|
|
5962
|
+
tags: "Etiquetas",
|
|
5963
|
+
tagsPlaceholder: "Introduce etiquetas y pulsa Enter",
|
|
5964
|
+
useServerProxy: "Modo proxy",
|
|
5965
|
+
enableThinking: "Modo de razonamiento",
|
|
5966
|
+
thinkingBudget: "Presupuesto de tokens de razonamiento",
|
|
5967
|
+
isPublic: "Hacer p\xFAblico",
|
|
5968
|
+
allowFork: "Permitir que otros copien",
|
|
5969
|
+
inputPrice: "Precio de entrada",
|
|
5970
|
+
inputPricePlaceholder: "Coste por 1 M de tokens de entrada",
|
|
5971
|
+
outputPrice: "Precio de salida",
|
|
5972
|
+
outputPricePlaceholder: "Coste por 1 M de tokens de salida",
|
|
5973
|
+
apiSource: "Origen de la API",
|
|
5974
|
+
usePlatformApi: "API de la plataforma",
|
|
5975
|
+
useCustomApi: "API personalizada",
|
|
5976
|
+
tools: "Herramientas",
|
|
5977
|
+
selectTools: "Seleccionar herramientas",
|
|
5978
|
+
modelParameters: "Par\xE1metros del modelo",
|
|
5979
|
+
temperature: "Temperatura",
|
|
5980
|
+
topP: "Top P",
|
|
5981
|
+
frequencyPenalty: "Penalizaci\xF3n de frecuencia",
|
|
5982
|
+
presencePenalty: "Penalizaci\xF3n de presencia",
|
|
5983
|
+
maxTokens: "M\xE1ximo de tokens",
|
|
5984
|
+
maxTokensFollowModelDefault: "Seguir valor predeterminado del modelo (no establecido)",
|
|
5985
|
+
maxTokensSetCustom: "Personalizado",
|
|
5986
|
+
maxTokensClearToDefault: "Seguir valor predeterminado del modelo",
|
|
5987
|
+
maxTokensInputPlaceholder: "Introduce un valor (vac\xEDo = valor predeterminado del modelo)",
|
|
5988
|
+
reasoningEffort: "Esfuerzo de razonamiento",
|
|
5989
|
+
defaults: {
|
|
5990
|
+
greeting: "Soy un asistente inteligente personalizado para ti por nolo.chat. \xBFEn qu\xE9 puedo ayudarte hoy?"
|
|
5991
|
+
},
|
|
5992
|
+
customModelName: "Nombre de modelo personalizado",
|
|
5993
|
+
customModelNamePlaceholder: "Introduce el nombre del modelo personalizado"
|
|
5994
|
+
},
|
|
5995
|
+
help: {
|
|
5996
|
+
tags: "Las etiquetas ayudan a otros usuarios a encontrar tu Agent en la plaza.",
|
|
5997
|
+
proxy: "Enruta las solicitudes a trav\xE9s del servidor de la plataforma para evitar restricciones locales de CORS.",
|
|
5998
|
+
enableThinking: "Permite que el modelo muestre su proceso de razonamiento paso a paso antes de responder.",
|
|
5999
|
+
thinkingBudget: "Limita la cantidad m\xE1xima de tokens asignados al proceso de pensamiento.",
|
|
6000
|
+
isPublic: "Al publicarse, otros usuarios podr\xE1n encontrar y usar este Agent en la plaza.",
|
|
6001
|
+
allowForkAny: "Permite que otros usuarios copien este Agent a su propia lista y lo personalicen.",
|
|
6002
|
+
isPublicCustomApi: "Los Agents p\xFAblicos con API personalizada requerir\xE1n que los usuarios utilicen sus propias claves.",
|
|
6003
|
+
apiSourcePlatform: "Utiliza los canales oficiales de la plataforma; el consumo se descuenta de tus cr\xE9ditos.",
|
|
6004
|
+
apiSourceCustom: "Utiliza tu propio proveedor de modelos y clave API; sin coste de cr\xE9ditos de la plataforma.",
|
|
6005
|
+
promptAutomation: "El prompt del sistema define la personalidad, las reglas y los objetivos del Agent.",
|
|
6006
|
+
tools: "Activa herramientas para permitir b\xFAsquedas web, lectura de archivos o integraciones.",
|
|
6007
|
+
temperature: "Controla la aleatoriedad: valores m\xE1s bajos son m\xE1s precisos, valores m\xE1s altos m\xE1s creativos.",
|
|
6008
|
+
topP: "Muestreo por n\xFAcleo: alternativa a la temperatura para controlar la diversidad de respuestas.",
|
|
6009
|
+
frequencyPenalty: "Reduce la repetici\xF3n de palabras en la respuesta.",
|
|
6010
|
+
presencePenalty: "Aumenta la probabilidad de introducir temas nuevos.",
|
|
6011
|
+
maxTokens: "N\xFAmero m\xE1ximo de tokens generados en una \xFAnica respuesta.",
|
|
6012
|
+
reasoningEffort: "Ajusta la intensidad de razonamiento en modelos compatibles (p. ej., serie o de OpenAI)."
|
|
6013
|
+
},
|
|
6014
|
+
validation: {
|
|
6015
|
+
nameRequired: "El nombre del Agent es obligatorio",
|
|
6016
|
+
nameTooLong: "El nombre no puede superar los 50 caracteres",
|
|
6017
|
+
providerRequired: "Selecciona un proveedor de modelos",
|
|
6018
|
+
modelRequired: "Selecciona un modelo",
|
|
6019
|
+
invalidUrl: "Introduce una URL v\xE1lida",
|
|
6020
|
+
priceMin: "El precio no puede ser negativo",
|
|
6021
|
+
duplicateReferences: "Se encontraron referencias duplicadas",
|
|
6022
|
+
temperatureRange: "La temperatura debe estar entre 0 y 2",
|
|
6023
|
+
topPRange: "Top P debe estar entre 0 y 1",
|
|
6024
|
+
frequencyPenaltyRange: "La penalizaci\xF3n de frecuencia debe estar entre -2 y 2",
|
|
6025
|
+
presencePenaltyRange: "La penalizaci\xF3n de presencia debe estar entre -2 y 2",
|
|
6026
|
+
maxTokensMin: "El m\xE1ximo de tokens debe ser al menos 1",
|
|
6027
|
+
maxTokensMax: "El m\xE1ximo de tokens no puede superar los 500,000",
|
|
6028
|
+
maxTokensRange: "El m\xE1ximo de tokens debe estar entre {{min}} y {{max}}",
|
|
6029
|
+
reasoningEffortInvalid: "Valor de esfuerzo de razonamiento no v\xE1lido",
|
|
6030
|
+
thinkingBudgetMin: "El presupuesto de razonamiento debe ser de al menos 1024",
|
|
6031
|
+
thinkingBudgetMax: "El presupuesto de razonamiento no puede superar los 100,000 tokens",
|
|
6032
|
+
apiKeyRequired: "La clave API es obligatoria",
|
|
6033
|
+
customUrlRequired: "La URL de la API personalizada es obligatoria"
|
|
6034
|
+
},
|
|
6035
|
+
errors: {
|
|
6036
|
+
noUserId: "No se encontr\xF3 el ID de usuario. Inicia sesi\xF3n de nuevo.",
|
|
6037
|
+
createDialog: "Error al crear la conversaci\xF3n",
|
|
6038
|
+
delete: "Error al eliminar el Agent"
|
|
6039
|
+
},
|
|
6040
|
+
references: {
|
|
6041
|
+
title: "Contexto y referencias",
|
|
6042
|
+
selectTitle: "Seleccionar referencias",
|
|
6043
|
+
selectHelp: "Selecciona p\xE1ginas, documentos o espacios para incluirlos como base de conocimiento en la conversaci\xF3n.",
|
|
6044
|
+
searchCurrentSpace: "Buscar en el espacio actual...",
|
|
6045
|
+
searchAllSpaces: "Buscar en todos los espacios...",
|
|
6046
|
+
clearSearch: "Limpiar b\xFAsqueda",
|
|
6047
|
+
noResults: "No se encontraron referencias",
|
|
6048
|
+
noContent: "Sin contenido disponible",
|
|
6049
|
+
found_one: "Se encontr\xF3 {{count}} resultado",
|
|
6050
|
+
found_other: "Se encontraron {{count}} resultados",
|
|
6051
|
+
fromSpace: "De: {{spaceName}}",
|
|
6052
|
+
toInstruction: "Establecer como instrucci\xF3n",
|
|
6053
|
+
toKnowledge: "Establecer como conocimiento",
|
|
6054
|
+
selected_one: "{{count}} referencia seleccionada",
|
|
6055
|
+
selected_other: "{{count}} referencias seleccionadas",
|
|
6056
|
+
knowledge: "Conocimiento (Knowledge)",
|
|
6057
|
+
instruction: "Instrucci\xF3n (Instruction)",
|
|
6058
|
+
enabledContext: "Contexto activado",
|
|
6059
|
+
linkedSpaces: "Espacios vinculados",
|
|
6060
|
+
linkedSpacesHelp: "El Agent podr\xE1 acceder a documentos y datos dentro de los espacios vinculados.",
|
|
6061
|
+
noLinkedSpaces: "Sin espacios vinculados",
|
|
6062
|
+
allSpaces: "Todos los espacios",
|
|
6063
|
+
selectSpace: "Seleccionar espacio",
|
|
6064
|
+
selectSpacePlaceholder: "Elige un espacio para vincular...",
|
|
6065
|
+
add: "A\xF1adir",
|
|
6066
|
+
addSkill: "A\xF1adir habilidad",
|
|
6067
|
+
addKnowledge: "A\xF1adir conocimiento",
|
|
6068
|
+
addInstruction: "A\xF1adir instrucci\xF3n",
|
|
6069
|
+
remove: "Eliminar",
|
|
6070
|
+
skills: "Habilidades (Skills)",
|
|
6071
|
+
skillsHelp: "Las habilidades ampl\xEDan las capacidades del Agent con flujos de trabajo especializados.",
|
|
6072
|
+
knowledgeHelp: "Los documentos de conocimiento se consultan seg\xFAn sea necesario como contexto de fondo.",
|
|
6073
|
+
instructionHelp: "Las instrucciones se cargan de forma permanente en el prompt del sistema para guiar el comportamiento.",
|
|
6074
|
+
exploreCommunitySkills: "Explorar habilidades de la comunidad",
|
|
6075
|
+
noSkillsYet: "A\xFAn no se han a\xF1adido habilidades",
|
|
6076
|
+
noKnowledgeYet: "A\xFAn no se ha a\xF1adido conocimiento",
|
|
6077
|
+
noInstructionsYet: "A\xFAn no se han a\xF1adido instrucciones",
|
|
6078
|
+
globalRecommendedSkills: "Habilidades recomendadas globales",
|
|
6079
|
+
currentViewSkills: "Habilidades de la vista actual",
|
|
6080
|
+
noGlobalRecommendedSkills: "Sin habilidades recomendadas globales",
|
|
6081
|
+
noCurrentViewSkills: "Sin habilidades en la vista actual",
|
|
6082
|
+
noSkillContent: "Sin contenido para esta habilidad",
|
|
6083
|
+
globalRecommendedSkillsFallback: "Habilidades recomendadas",
|
|
6084
|
+
skillsEmptyHint: "A\xF1ade habilidades para dotar a tu Agent de nuevas funciones",
|
|
6085
|
+
knowledgeEmptyHint: "A\xF1ade documentos o notas como base de conocimiento",
|
|
6086
|
+
instructionEmptyHint: "A\xF1ade pautas de comportamiento o directrices",
|
|
6087
|
+
previewDoc: "Vista previa del documento",
|
|
6088
|
+
openInNewTab: "Abrir en nueva pesta\xF1a",
|
|
6089
|
+
noAvailableSpaces: "No hay espacios disponibles",
|
|
6090
|
+
contextBudget: "Presupuesto de contexto",
|
|
6091
|
+
refsTokens: "Referencias: ~{{val}} tokens",
|
|
6092
|
+
spacesTokens: "Espacios: ~{{val}} tokens",
|
|
6093
|
+
budgetWarning: "El contexto preasignado ocupa el {{percent}}%. Se recomienda mantenerlo por debajo del {{max}}% para dejar espacio al historial de conversaci\xF3n."
|
|
6094
|
+
},
|
|
6095
|
+
toolsTab: {
|
|
6096
|
+
title: "Habilidades y herramientas",
|
|
6097
|
+
description: "Configura las habilidades y herramientas disponibles para el Agent en tiempo de ejecuci\xF3n",
|
|
6098
|
+
modeLabel: "Modo",
|
|
6099
|
+
skillMode: "Modo habilidad (Recomendado)",
|
|
6100
|
+
toolMode: "Modo herramientas manuales",
|
|
6101
|
+
skillModeTitle: "Centrado en habilidades",
|
|
6102
|
+
skillModeDescription: "Integra habilidades estructuradas que incorporan autom\xE1ticamente las herramientas e instrucciones necesarias.",
|
|
6103
|
+
toolModeTitle: "Centrado en herramientas",
|
|
6104
|
+
toolModeDescription: "Selecciona herramientas at\xF3micas individuales de forma manual.",
|
|
6105
|
+
summaryTitle: "Resumen de configuraci\xF3n",
|
|
6106
|
+
summaryDescription: "{{skillCount}} habilidades vinculadas \xB7 {{toolCount}} herramientas disponibles en tiempo de ejecuci\xF3n",
|
|
6107
|
+
skillDataTitle: "Datos de habilidades",
|
|
6108
|
+
skillDataDescription: "Gestiona los par\xE1metros e instrucciones asociados a las habilidades.",
|
|
6109
|
+
openReferences: "Abrir referencias",
|
|
6110
|
+
noSkillsSelected: "No se han seleccionado habilidades",
|
|
6111
|
+
removeSkill: "Eliminar habilidad",
|
|
6112
|
+
viewSkillDetail: "Ver detalles",
|
|
6113
|
+
requiredSkills: "Habilidades obligatorias",
|
|
6114
|
+
recommendedSkills: "Habilidades recomendadas",
|
|
6115
|
+
recommendedHints: "Recomendaciones basadas en la configuraci\xF3n de tu Agent",
|
|
6116
|
+
runtimeGuidance: "Pautas en tiempo de ejecuci\xF3n",
|
|
6117
|
+
manualToolsTitle: "Herramientas manuales",
|
|
6118
|
+
manualToolsDescription: "Selecciona herramientas espec\xEDficas para necesidades particulares.",
|
|
6119
|
+
showManualTools: "Mostrar herramientas manuales",
|
|
6120
|
+
hideManualTools: "Ocultar herramientas manuales",
|
|
6121
|
+
manualToolsCollapsed: "{{count}} herramientas manuales seleccionadas. Expande para editar la lista completa.",
|
|
6122
|
+
noToolsSelected: "No se han seleccionado herramientas"
|
|
6123
|
+
},
|
|
6124
|
+
tools: {
|
|
6125
|
+
createAgent: {
|
|
6126
|
+
description: "Crea un nuevo Agent con configuraci\xF3n personalizada, prompt de sistema y modelo.",
|
|
6127
|
+
params: {
|
|
6128
|
+
name: "Nombre del Agent.",
|
|
6129
|
+
model: "ID del modelo a utilizar.",
|
|
6130
|
+
provider: "Proveedor del modelo.",
|
|
6131
|
+
prompt: "Instrucciones del prompt del sistema.",
|
|
6132
|
+
introduction: "Breve presentaci\xF3n o descripci\xF3n del Agent.",
|
|
6133
|
+
greeting: {
|
|
6134
|
+
desc: "Mensaje de bienvenida y opciones iniciales del Agent.",
|
|
6135
|
+
stringDesc: "Un texto de saludo sencillo.",
|
|
6136
|
+
objectDesc: "Un objeto de bienvenida estructurado con texto y opciones.",
|
|
6137
|
+
texts: {
|
|
6138
|
+
text: "Contenido del mensaje de bienvenida."
|
|
6139
|
+
},
|
|
6140
|
+
menu: {
|
|
6141
|
+
desc: "Lista de opciones de inicio r\xE1pido interactivas.",
|
|
6142
|
+
id: "Identificador \xFAnico de la opci\xF3n de men\xFA.",
|
|
6143
|
+
label: "Texto que se muestra en el bot\xF3n.",
|
|
6144
|
+
userMessage: "Mensaje enviado cuando el usuario hace clic en la opci\xF3n."
|
|
6145
|
+
}
|
|
6146
|
+
},
|
|
6147
|
+
isPublic: "Indica si el Agent debe ser p\xFAblico en la plaza.",
|
|
6148
|
+
allowFork: "Indica si otros usuarios pueden copiar este Agent.",
|
|
6149
|
+
tags: "Lista de etiquetas para categorizaci\xF3n.",
|
|
6150
|
+
tools: "Lista de nombres de herramientas que el Agent puede utilizar.",
|
|
6151
|
+
linkedSpaces: "Lista de IDs de espacios a los que el Agent tiene acceso.",
|
|
6152
|
+
references: {
|
|
6153
|
+
desc: "Documentos de referencia y base de conocimiento para el Agent.",
|
|
6154
|
+
dbKey: "Clave de base de datos del documento referenciado.",
|
|
6155
|
+
title: "T\xEDtulo del documento.",
|
|
6156
|
+
type: "Tipo de referencia (knowledge o instruction)."
|
|
6157
|
+
},
|
|
6158
|
+
temperature: "Controla la aleatoriedad de las respuestas (0 a 2).",
|
|
6159
|
+
top_p: "Par\xE1metro de muestreo por n\xFAcleo (0 a 1).",
|
|
6160
|
+
frequency_penalty: "Penaliza la repetici\xF3n de palabras (-2 a 2).",
|
|
6161
|
+
presence_penalty: "Fomenta la introducci\xF3n de nuevos temas (-2 a 2).",
|
|
6162
|
+
max_tokens: "N\xFAmero m\xE1ximo de tokens a generar.",
|
|
6163
|
+
reasoning_effort: "Esfuerzo de razonamiento para modelos compatibles (low, medium, high)."
|
|
6164
|
+
}
|
|
6165
|
+
},
|
|
6166
|
+
checkEnv: {
|
|
6167
|
+
description: "Comprueba el entorno de ejecuci\xF3n actual y las herramientas disponibles.",
|
|
6168
|
+
params: {
|
|
6169
|
+
check: "Tipo de comprobaci\xF3n: 'context' devuelve informaci\xF3n del entorno, 'build' ejecuta una comprobaci\xF3n de compilaci\xF3n.",
|
|
6170
|
+
key: "Opcional: nombre de la herramienta a comprobar (p. ej., node, bun, git)."
|
|
6171
|
+
}
|
|
6172
|
+
},
|
|
6173
|
+
deleteSpaces: {
|
|
6174
|
+
description: "Busca y elimina espacios del usuario actual por nombre o ID. Acci\xF3n peligrosa: muestra primero una vista previa y requiere confirmaci\xF3n.",
|
|
6175
|
+
params: {
|
|
6176
|
+
query: "T\xE9rmino de b\xFAsqueda para filtrar los espacios a eliminar.",
|
|
6177
|
+
matchMode: "Modo de coincidencia: prefix, exact, contains o spaceId.",
|
|
6178
|
+
confirmedSpaceIds: "Lista de IDs de espacios confirmados para su eliminaci\xF3n."
|
|
6179
|
+
}
|
|
6180
|
+
},
|
|
6181
|
+
listUserSpaces: {
|
|
6182
|
+
description: "Enumera todos los espacios propiedad del usuario o en los que participa.",
|
|
4927
6183
|
params: {
|
|
4928
|
-
brief: "
|
|
6184
|
+
brief: "Devuelve solo metadatos b\xE1sicos para ahorrar tokens de contexto."
|
|
4929
6185
|
}
|
|
4930
6186
|
},
|
|
4931
6187
|
read: {
|
|
4932
|
-
description: "
|
|
6188
|
+
description: "Lee cualquier registro de datos mediante su clave de base de datos.",
|
|
4933
6189
|
params: {
|
|
4934
|
-
dbKey: "
|
|
4935
|
-
waitRemote: "\
|
|
6190
|
+
dbKey: "Clave de base de datos del registro (p. ej., PAGE-xxx, dialog-xxx).",
|
|
6191
|
+
waitRemote: "Indica si sincronizar los datos m\xE1s recientes del servidor remoto antes de devolverlos."
|
|
4936
6192
|
}
|
|
4937
6193
|
},
|
|
4938
6194
|
rememberMemory: {
|
|
4939
|
-
description: "\
|
|
6195
|
+
description: "Guarda preferencias del usuario o acuerdos duraderos en la memoria epis\xF3dica a largo plazo.",
|
|
4940
6196
|
params: {
|
|
4941
|
-
content: "\
|
|
4942
|
-
tags: "
|
|
6197
|
+
content: "Contenido espec\xEDfico del recuerdo.",
|
|
6198
|
+
tags: "Etiquetas para categorizar y buscar el recuerdo en el futuro."
|
|
4943
6199
|
}
|
|
4944
6200
|
}
|
|
4945
6201
|
},
|
|
4946
|
-
agentSquare: "
|
|
6202
|
+
agentSquare: "Plaza"
|
|
4947
6203
|
}
|
|
4948
6204
|
}
|
|
4949
6205
|
};
|
|
@@ -5315,6 +6571,11 @@ var chat_locale_default = {
|
|
|
5315
6571
|
runtimeTarget: {
|
|
5316
6572
|
intentBadge: "Target: {{device}} (intent)"
|
|
5317
6573
|
},
|
|
6574
|
+
spaceContext: {
|
|
6575
|
+
badge: "Space context",
|
|
6576
|
+
spaceFolderTitle: "Space folder: {{path}}",
|
|
6577
|
+
cwdTitle: "Actual working directory: {{path}}"
|
|
6578
|
+
},
|
|
5318
6579
|
gemini: {
|
|
5319
6580
|
title: "Image Generation",
|
|
5320
6581
|
count: "{{count}} images generated"
|
|
@@ -5415,6 +6676,14 @@ var chat_locale_default = {
|
|
|
5415
6676
|
noSummary: "(no summary)"
|
|
5416
6677
|
},
|
|
5417
6678
|
chat: {
|
|
6679
|
+
toolCards: {
|
|
6680
|
+
title: "Tool cards",
|
|
6681
|
+
newFileDiff: "Diff for new files",
|
|
6682
|
+
newFileDiffDesc: "By default, only the file path is shown. Enable to show final content and the Diff switch.",
|
|
6683
|
+
shellTree: "Output of tree commands",
|
|
6684
|
+
shellTreeDesc: "By default, only the command and exit code are shown. Enable to show the directory tree.",
|
|
6685
|
+
shellTreeHidden: "Directory tree output is hidden. You can enable it in chat settings."
|
|
6686
|
+
},
|
|
5418
6687
|
agentBehavior: {
|
|
5419
6688
|
title: "Agent Automation Boundaries",
|
|
5420
6689
|
selfUpdate: {
|
|
@@ -5487,6 +6756,9 @@ var chat_locale_default = {
|
|
|
5487
6756
|
loginToUseAssistants: "Sign in to use page assistants",
|
|
5488
6757
|
noAvailableAgents: "No Agents available",
|
|
5489
6758
|
pageAssistant: "Page assistant",
|
|
6759
|
+
pickerPlatformCredits: "Platform credits",
|
|
6760
|
+
pickerPlatformCreditsTitle: "Billed per token from your platform credits",
|
|
6761
|
+
pickerBillingNote: "Agents marked with the coin icon are billed per token from your platform credits; unmarked ones use that agent's own channel and never touch your platform credits.",
|
|
5490
6762
|
selectAssistant: "Choose an assistant",
|
|
5491
6763
|
switchAssistant: "Switch assistant",
|
|
5492
6764
|
switchAssistantFailed: "Failed to switch assistants. Please try again."
|
|
@@ -5843,6 +7115,11 @@ var chat_locale_default = {
|
|
|
5843
7115
|
runtimeTarget: {
|
|
5844
7116
|
intentBadge: "\u76EE\u6807\uFF1A{{device}}\uFF08\u610F\u56FE\uFF09"
|
|
5845
7117
|
},
|
|
7118
|
+
spaceContext: {
|
|
7119
|
+
badge: "\u7A7A\u95F4\u4E0A\u4E0B\u6587",
|
|
7120
|
+
spaceFolderTitle: "\u7A7A\u95F4\u6587\u4EF6\u5939\uFF1A{{path}}",
|
|
7121
|
+
cwdTitle: "\u5B9E\u9645\u5DE5\u4F5C\u76EE\u5F55\uFF1A{{path}}"
|
|
7122
|
+
},
|
|
5846
7123
|
gemini: {
|
|
5847
7124
|
title: "\u56FE\u50CF\u751F\u6210",
|
|
5848
7125
|
count: "\u751F\u6210\u4E86 {{count}} \u5F20\u56FE\u7247"
|
|
@@ -5943,6 +7220,14 @@ var chat_locale_default = {
|
|
|
5943
7220
|
noSummary: "\uFF08\u65E0\u6458\u8981\uFF09"
|
|
5944
7221
|
},
|
|
5945
7222
|
chat: {
|
|
7223
|
+
toolCards: {
|
|
7224
|
+
title: "\u5DE5\u5177\u5361\u7247",
|
|
7225
|
+
newFileDiff: "\u65B0\u5EFA\u6587\u4EF6\u7684 Diff",
|
|
7226
|
+
newFileDiffDesc: "\u9ED8\u8BA4\u53EA\u663E\u793A\u6587\u4EF6\u8DEF\u5F84\uFF1B\u5F00\u542F\u540E\u663E\u793A\u6700\u7EC8\u5185\u5BB9\u4E0E Diff \u5207\u6362\u3002",
|
|
7227
|
+
shellTree: "\u6267\u884C tree \u7684\u547D\u4EE4\u8F93\u51FA",
|
|
7228
|
+
shellTreeDesc: "\u9ED8\u8BA4\u53EA\u663E\u793A\u547D\u4EE4\u4E0E\u9000\u51FA\u7801\uFF1B\u5F00\u542F\u540E\u663E\u793A\u76EE\u5F55\u6811\u5185\u5BB9\u3002",
|
|
7229
|
+
shellTreeHidden: "\u76EE\u5F55\u6811\u8F93\u51FA\u5DF2\u9690\u85CF\uFF0C\u53EF\u5728\u5BF9\u8BDD\u8BBE\u7F6E\u4E2D\u5F00\u542F\u3002"
|
|
7230
|
+
},
|
|
5946
7231
|
agentBehavior: {
|
|
5947
7232
|
title: "Agent \u81EA\u52A8\u5316\u8FB9\u754C",
|
|
5948
7233
|
selfUpdate: {
|
|
@@ -6015,6 +7300,9 @@ var chat_locale_default = {
|
|
|
6015
7300
|
loginToUseAssistants: "\u767B\u5F55\u540E\u624D\u80FD\u4F7F\u7528\u9875\u9762\u52A9\u624B",
|
|
6016
7301
|
noAvailableAgents: "\u6682\u65E0\u53EF\u7528 Agent",
|
|
6017
7302
|
pageAssistant: "\u9875\u9762\u52A9\u624B",
|
|
7303
|
+
pickerPlatformCredits: "\u5E73\u53F0\u79EF\u5206",
|
|
7304
|
+
pickerPlatformCreditsTitle: "\u6309 token \u4ECE\u4F60\u7684\u5E73\u53F0\u79EF\u5206\u6263\u8D39",
|
|
7305
|
+
pickerBillingNote: "\u5E26\u91D1\u5E01\u6807\u8BB0\u7684 agent \u6309 token \u4ECE\u4F60\u7684\u5E73\u53F0\u79EF\u5206\u6263\u8D39\uFF1B\u6CA1\u6807\u8BB0\u7684\u8D70\u8BE5 agent \u81EA\u5DF1\u7684\u901A\u9053\uFF0C\u4E0D\u6263\u4F60\u7684\u5E73\u53F0\u79EF\u5206\u3002",
|
|
6018
7306
|
selectAssistant: "\u9009\u62E9\u52A9\u624B",
|
|
6019
7307
|
switchAssistant: "\u5207\u6362\u52A9\u624B",
|
|
6020
7308
|
switchAssistantFailed: "\u5207\u6362\u52A9\u624B\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"
|
|
@@ -6371,6 +7659,11 @@ var chat_locale_default = {
|
|
|
6371
7659
|
runtimeTarget: {
|
|
6372
7660
|
intentBadge: "\u76EE\u6A19\uFF1A{{device}}\uFF08\u610F\u5716\uFF09"
|
|
6373
7661
|
},
|
|
7662
|
+
spaceContext: {
|
|
7663
|
+
badge: "\u7A7A\u9593\u4E0A\u4E0B\u6587",
|
|
7664
|
+
spaceFolderTitle: "\u7A7A\u9593\u8CC7\u6599\u593E\uFF1A{{path}}",
|
|
7665
|
+
cwdTitle: "\u5BE6\u969B\u5DE5\u4F5C\u76EE\u9304\uFF1A{{path}}"
|
|
7666
|
+
},
|
|
6374
7667
|
gemini: {
|
|
6375
7668
|
title: "\u5716\u50CF\u751F\u6210",
|
|
6376
7669
|
count: "\u751F\u6210\u4E86 {{count}} \u5F35\u5716\u7247"
|
|
@@ -6471,6 +7764,14 @@ var chat_locale_default = {
|
|
|
6471
7764
|
noSummary: "\uFF08\u7121\u6458\u8981\uFF09"
|
|
6472
7765
|
},
|
|
6473
7766
|
chat: {
|
|
7767
|
+
toolCards: {
|
|
7768
|
+
title: "\u5DE5\u5177\u5361\u7247",
|
|
7769
|
+
newFileDiff: "\u65B0\u589E\u6A94\u6848\u7684 Diff",
|
|
7770
|
+
newFileDiffDesc: "\u9810\u8A2D\u53EA\u986F\u793A\u6A94\u6848\u8DEF\u5F91\uFF1B\u958B\u555F\u5F8C\u986F\u793A\u6700\u7D42\u5167\u5BB9\u8207 Diff \u5207\u63DB\u3002",
|
|
7771
|
+
shellTree: "\u57F7\u884C tree \u7684\u547D\u4EE4\u8F38\u51FA",
|
|
7772
|
+
shellTreeDesc: "\u9810\u8A2D\u53EA\u986F\u793A\u547D\u4EE4\u8207\u7D50\u675F\u4EE3\u78BC\uFF1B\u958B\u555F\u5F8C\u986F\u793A\u76EE\u9304\u6A39\u5167\u5BB9\u3002",
|
|
7773
|
+
shellTreeHidden: "\u76EE\u9304\u6A39\u8F38\u51FA\u5DF2\u96B1\u85CF\uFF0C\u53EF\u5728\u5C0D\u8A71\u8A2D\u5B9A\u4E2D\u958B\u555F\u3002"
|
|
7774
|
+
},
|
|
6474
7775
|
agentBehavior: {
|
|
6475
7776
|
title: "Agent \u81EA\u52D5\u5316\u908A\u754C",
|
|
6476
7777
|
selfUpdate: {
|
|
@@ -6543,6 +7844,9 @@ var chat_locale_default = {
|
|
|
6543
7844
|
loginToUseAssistants: "\u767B\u5165\u5F8C\u624D\u80FD\u4F7F\u7528\u9801\u9762\u52A9\u624B",
|
|
6544
7845
|
noAvailableAgents: "\u66AB\u7121\u53EF\u7528 Agent",
|
|
6545
7846
|
pageAssistant: "\u9801\u9762\u52A9\u624B",
|
|
7847
|
+
pickerPlatformCredits: "\u5E73\u53F0\u7A4D\u5206",
|
|
7848
|
+
pickerPlatformCreditsTitle: "\u6309 token \u5F9E\u4F60\u7684\u5E73\u53F0\u7A4D\u5206\u6263\u8CBB",
|
|
7849
|
+
pickerBillingNote: "\u5E36\u91D1\u5E63\u6A19\u8A18\u7684 agent \u6309 token \u5F9E\u4F60\u7684\u5E73\u53F0\u7A4D\u5206\u6263\u8CBB\uFF1B\u6C92\u6A19\u8A18\u7684\u8D70\u8A72 agent \u81EA\u5DF1\u7684\u901A\u9053\uFF0C\u4E0D\u6263\u4F60\u7684\u5E73\u53F0\u7A4D\u5206\u3002",
|
|
6546
7850
|
selectAssistant: "\u9078\u64C7\u52A9\u624B",
|
|
6547
7851
|
switchAssistant: "\u5207\u63DB\u52A9\u624B",
|
|
6548
7852
|
switchAssistantFailed: "\u5207\u63DB\u52A9\u624B\u5931\u6557\uFF0C\u8ACB\u91CD\u8A66"
|
|
@@ -6905,6 +8209,11 @@ var chat_locale_default = {
|
|
|
6905
8209
|
runtimeTarget: {
|
|
6906
8210
|
intentBadge: "\u30BF\u30FC\u30B2\u30C3\u30C8: {{device}}\uFF08\u610F\u56F3\uFF09"
|
|
6907
8211
|
},
|
|
8212
|
+
spaceContext: {
|
|
8213
|
+
badge: "\u30B9\u30DA\u30FC\u30B9\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",
|
|
8214
|
+
spaceFolderTitle: "\u30B9\u30DA\u30FC\u30B9\u30D5\u30A9\u30EB\u30C0\u30FC: {{path}}",
|
|
8215
|
+
cwdTitle: "\u5B9F\u969B\u306E\u4F5C\u696D\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA: {{path}}"
|
|
8216
|
+
},
|
|
6908
8217
|
gemini: {
|
|
6909
8218
|
title: "\u753B\u50CF\u751F\u6210",
|
|
6910
8219
|
count: "{{count}} \u679A\u306E\u753B\u50CF\u3092\u751F\u6210\u3057\u307E\u3057\u305F"
|
|
@@ -7005,6 +8314,14 @@ var chat_locale_default = {
|
|
|
7005
8314
|
noSummary: "\uFF08\u8981\u7D04\u306A\u3057\uFF09"
|
|
7006
8315
|
},
|
|
7007
8316
|
chat: {
|
|
8317
|
+
toolCards: {
|
|
8318
|
+
title: "\u30C4\u30FC\u30EB\u30AB\u30FC\u30C9",
|
|
8319
|
+
newFileDiff: "\u65B0\u898F\u30D5\u30A1\u30A4\u30EB\u306E Diff",
|
|
8320
|
+
newFileDiffDesc: "\u521D\u671F\u8A2D\u5B9A\u3067\u306F\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u306E\u307F\u8868\u793A\u3057\u307E\u3059\u3002\u6709\u52B9\u306B\u3059\u308B\u3068\u6700\u7D42\u5185\u5BB9\u3068 Diff \u306E\u5207\u308A\u66FF\u3048\u3092\u8868\u793A\u3057\u307E\u3059\u3002",
|
|
8321
|
+
shellTree: "tree \u30B3\u30DE\u30F3\u30C9\u306E\u51FA\u529B",
|
|
8322
|
+
shellTreeDesc: "\u521D\u671F\u8A2D\u5B9A\u3067\u306F\u30B3\u30DE\u30F3\u30C9\u3068\u7D42\u4E86\u30B3\u30FC\u30C9\u306E\u307F\u8868\u793A\u3057\u307E\u3059\u3002\u6709\u52B9\u306B\u3059\u308B\u3068\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30C4\u30EA\u30FC\u3092\u8868\u793A\u3057\u307E\u3059\u3002",
|
|
8323
|
+
shellTreeHidden: "\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30C4\u30EA\u30FC\u306E\u51FA\u529B\u306F\u975E\u8868\u793A\u3067\u3059\u3002\u5BFE\u8A71\u8A2D\u5B9A\u3067\u8868\u793A\u3092\u6709\u52B9\u306B\u3067\u304D\u307E\u3059\u3002"
|
|
8324
|
+
},
|
|
7008
8325
|
agentBehavior: {
|
|
7009
8326
|
title: "Agent \u81EA\u52D5\u5316\u306E\u5883\u754C",
|
|
7010
8327
|
selfUpdate: {
|
|
@@ -7077,10 +8394,1115 @@ var chat_locale_default = {
|
|
|
7077
8394
|
loginToUseAssistants: "\u30DA\u30FC\u30B8\u30A2\u30B7\u30B9\u30BF\u30F3\u30C8\u3092\u5229\u7528\u3059\u308B\u306B\u306F\u30ED\u30B0\u30A4\u30F3\u304C\u5FC5\u8981\u3067\u3059",
|
|
7078
8395
|
noAvailableAgents: "\u5229\u7528\u53EF\u80FD\u306A Agent \u304C\u3042\u308A\u307E\u305B\u3093",
|
|
7079
8396
|
pageAssistant: "\u30DA\u30FC\u30B8\u30A2\u30B7\u30B9\u30BF\u30F3\u30C8",
|
|
8397
|
+
pickerPlatformCredits: "\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u30AF\u30EC\u30B8\u30C3\u30C8",
|
|
8398
|
+
pickerPlatformCreditsTitle: "\u30C8\u30FC\u30AF\u30F3\u3054\u3068\u306B\u3042\u306A\u305F\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u30AF\u30EC\u30B8\u30C3\u30C8\u304B\u3089\u8AB2\u91D1\u3055\u308C\u307E\u3059",
|
|
8399
|
+
pickerBillingNote: "\u30B3\u30A4\u30F3\u30A2\u30A4\u30B3\u30F3\u304C\u4ED8\u3044\u305F agent \u306F\u3001\u30C8\u30FC\u30AF\u30F3\u3054\u3068\u306B\u3042\u306A\u305F\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u30AF\u30EC\u30B8\u30C3\u30C8\u304B\u3089\u8AB2\u91D1\u3055\u308C\u307E\u3059\u3002\u30A2\u30A4\u30B3\u30F3\u306E\u306A\u3044 agent \u306F\u305D\u306E agent \u81EA\u8EAB\u306E\u30C1\u30E3\u30CD\u30EB\u3092\u4F7F\u3044\u3001\u3042\u306A\u305F\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u30AF\u30EC\u30B8\u30C3\u30C8\u306F\u6D88\u8CBB\u3057\u307E\u305B\u3093\u3002",
|
|
7080
8400
|
selectAssistant: "\u30A2\u30B7\u30B9\u30BF\u30F3\u30C8\u3092\u9078\u629E",
|
|
7081
8401
|
switchAssistant: "\u30A2\u30B7\u30B9\u30BF\u30F3\u30C8\u3092\u5207\u308A\u66FF\u3048",
|
|
7082
8402
|
switchAssistantFailed: "\u30A2\u30B7\u30B9\u30BF\u30F3\u30C8\u306E\u5207\u308A\u66FF\u3048\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002"
|
|
7083
8403
|
}
|
|
8404
|
+
},
|
|
8405
|
+
de: {
|
|
8406
|
+
translation: {
|
|
8407
|
+
AddAgent: "Agent hinzuf\xFCgen",
|
|
8408
|
+
mediaJob: {
|
|
8409
|
+
auto: "Automatisch",
|
|
8410
|
+
none: "Keine",
|
|
8411
|
+
languageLine: "Sprache: {{source}} \u2192 {{target}}",
|
|
8412
|
+
sourceLanguage: "Ausgangssprache",
|
|
8413
|
+
targetLanguage: "Zielsprache",
|
|
8414
|
+
autoDetect: "Automatisch erkennen",
|
|
8415
|
+
noTranslate: "Nicht \xFCbersetzen"
|
|
8416
|
+
},
|
|
8417
|
+
selectedAgentsCount: "{{count}} Agent(s) ausgew\xE4hlt",
|
|
8418
|
+
addSelectedAgents: "Ausgew\xE4hlte hinzuf\xFCgen",
|
|
8419
|
+
clearSelection: "Auswahl aufheben",
|
|
8420
|
+
recommended: "Empfohlen",
|
|
8421
|
+
favoriteAgent: "Favorit",
|
|
8422
|
+
myAgent: "Meine",
|
|
8423
|
+
capabilityMatch: "F\xE4higkeits\xFCbereinstimmung",
|
|
8424
|
+
confirm: "Best\xE4tigen",
|
|
8425
|
+
cancel: "Abbrechen",
|
|
8426
|
+
clickHere: "Hier klicken",
|
|
8427
|
+
clearConversation: "Unterhaltung leeren",
|
|
8428
|
+
compressionError: "Bildkomprimierung fehlgeschlagen. Originalbilder werden gesendet.",
|
|
8429
|
+
compressingImages: "Bilder werden komprimiert...",
|
|
8430
|
+
copyContent: "Inhalt kopieren",
|
|
8431
|
+
copyDiagnostics: "Diagnosedaten kopieren",
|
|
8432
|
+
finishReasonLengthNotice: "Antwort wurde am Ausgabelimit des Modells abgeschnitten",
|
|
8433
|
+
retryProgress: "Automatischer Wiederholungsversuch {{attempt}}/{{maxAttempts}} \xB7 {{seconds}}s",
|
|
8434
|
+
sendErrorCard: {
|
|
8435
|
+
title: "Senden fehlgeschlagen",
|
|
8436
|
+
retry: "Wiederholen",
|
|
8437
|
+
compactAndRetry: "Komprimieren & wiederholen",
|
|
8438
|
+
newDialog: "Neue Unterhaltung",
|
|
8439
|
+
switchModel: "Modell wechseln",
|
|
8440
|
+
viewDetails: "Technische Details",
|
|
8441
|
+
hideDetails: "Details ausblenden",
|
|
8442
|
+
suggestion: "Vorschlag",
|
|
8443
|
+
verifyAccount: "Konto best\xE4tigen"
|
|
8444
|
+
},
|
|
8445
|
+
copyFailed: "Kopieren fehlgeschlagen",
|
|
8446
|
+
contextAutoCompressed: "Kontext automatisch komprimiert, um im Modellfenster zu bleiben",
|
|
8447
|
+
contextAutoCompressFailed: "Automatische Kontextkomprimierung fehlgeschlagen",
|
|
8448
|
+
copySuccess: "Erfolgreich kopiert",
|
|
8449
|
+
createDialog: "Dialog erstellen",
|
|
8450
|
+
createDialogFromAI: "Dialog mit KI erstellen",
|
|
8451
|
+
createRobot: "Agent erstellen",
|
|
8452
|
+
customizeYourAI: "Eigene KI anpassen",
|
|
8453
|
+
AgentAddFailed: "Fehler beim Hinzuf\xFCgen des Agent",
|
|
8454
|
+
AgentAddedSuccess: "Agent erfolgreich hinzugef\xFCgt",
|
|
8455
|
+
MultipleAgentsAddedSuccess: "{{count}} Agents erfolgreich hinzugef\xFCgt",
|
|
8456
|
+
AgentRemoveFailed: "Fehler beim Entfernen des Agent",
|
|
8457
|
+
AgentRemovedSuccess: "Agent erfolgreich entfernt",
|
|
8458
|
+
Agents: "Agents",
|
|
8459
|
+
delete: "L\xF6schen",
|
|
8460
|
+
deleteContentConfirmation: "Sind Sie sicher, dass Sie diesen Inhalt l\xF6schen m\xF6chten? Diese Aktion kann nicht r\xFCckg\xE4ngig gemacht werden.",
|
|
8461
|
+
deleteContentTitle: "\u201E{{title}}\u201C l\xF6schen",
|
|
8462
|
+
deleteMovedToTrash: "\u201E{{title}}\u201C in den Papierkorb verschoben",
|
|
8463
|
+
deleteFailed: "L\xF6schen fehlgeschlagen",
|
|
8464
|
+
deleteMessage: "Nachricht l\xF6schen",
|
|
8465
|
+
deleteSuccess: "Erfolgreich gel\xF6scht",
|
|
8466
|
+
confirmDelete: "Klicken Sie erneut, um das L\xF6schen zu best\xE4tigen",
|
|
8467
|
+
dropToUpload: "Dateien zum Hochladen hier ablegen",
|
|
8468
|
+
excelIsEmpty: "Excel-Datei ist leer",
|
|
8469
|
+
excelIsEmptyOrInvalid: "Excel-Datei ist leer oder ung\xFCltig",
|
|
8470
|
+
excelParseError: "Fehler beim Parsen der Excel-Datei",
|
|
8471
|
+
FailedToLoadAgents: "Fehler beim Laden der Agents",
|
|
8472
|
+
fileReadError: "Fehler beim Lesen des Dateiinhalts",
|
|
8473
|
+
First: "Zuerst",
|
|
8474
|
+
Info: "Info",
|
|
8475
|
+
LoadingAgents: "Agents werden geladen...",
|
|
8476
|
+
messageInput: "Nachrichteneingabefeld",
|
|
8477
|
+
messageInputArea: "Nachrichteneingabebereich mit Datei-Upload",
|
|
8478
|
+
messageOrFileHere: "Nachricht eingeben oder Datei hochladen...",
|
|
8479
|
+
pastedTextChip: "Eingef\xFCgter Text #{{id}} \xB7 {{lines}} Zeilen \xB7 {{size}}",
|
|
8480
|
+
removePastedText: "Eingef\xFCgten Text entfernen",
|
|
8481
|
+
expandPastedText: "Eingef\xFCgten Text in die Eingabe \xFCbernehmen",
|
|
8482
|
+
Mode: "Modus",
|
|
8483
|
+
ModeUpdateFailed: "Fehler beim Aktualisieren des Modus",
|
|
8484
|
+
ModeUpdatedSuccess: "Modus erfolgreich aktualisiert",
|
|
8485
|
+
newchat: "Neuer Chat",
|
|
8486
|
+
NoAgents: "Noch keine Agents verf\xFCgbar",
|
|
8487
|
+
NoDescription: "Keine Beschreibung vorhanden",
|
|
8488
|
+
Orchestrated: "Orchestriert",
|
|
8489
|
+
Parallel: "Parallel",
|
|
8490
|
+
playAudio: "Audio abspielen",
|
|
8491
|
+
resend: "Erneut senden",
|
|
8492
|
+
Retry: "Wiederholen",
|
|
8493
|
+
saveContent: "Inhalt speichern",
|
|
8494
|
+
saveFailed: "Speichern fehlgeschlagen",
|
|
8495
|
+
saveSuccess: "Erfolgreich gespeichert",
|
|
8496
|
+
SelectAgentToAdd: "W\xE4hlen Sie einen Agent aus, der zum Dialog hinzugef\xFCgt werden soll",
|
|
8497
|
+
sendFail: "Fehler beim Senden der Nachricht",
|
|
8498
|
+
Sequential: "Sequentiell",
|
|
8499
|
+
ShowDialogConfigInfo: "Dialog-Einstellungen und -Informationen anzeigen",
|
|
8500
|
+
Tokens: "Tokens",
|
|
8501
|
+
Unnamed: "Unbenannt",
|
|
8502
|
+
uploadFile: "Datei hochladen",
|
|
8503
|
+
useServerProxy: "Transit-Dienst verwenden",
|
|
8504
|
+
viewDetails: "f\xFCr weitere Details",
|
|
8505
|
+
fileReadErrorMessage: "Fehler beim Lesen der Datei, bitte versuchen Sie es erneut.",
|
|
8506
|
+
excelEmptyMessage: "Excel-Datei ist leer oder ung\xFCltig.",
|
|
8507
|
+
excelNoDataMessage: "Keine Daten in der Excel-Datei gefunden.",
|
|
8508
|
+
excelParseErrorMessage: "Fehler beim Parsen der Excel-Datei, bitte Format pr\xFCfen.",
|
|
8509
|
+
excelUploadSuccess: "Excel-Datei erfolgreich hochgeladen und konvertiert!",
|
|
8510
|
+
docxUploadSuccess: "DOCX-Datei erfolgreich hochgeladen und konvertiert!",
|
|
8511
|
+
docxUploadError: "Fehler beim Hochladen der DOCX-Datei, bitte Format pr\xFCfen.",
|
|
8512
|
+
pdfUploadSuccess: "PDF-Datei erfolgreich hochgeladen und konvertiert!",
|
|
8513
|
+
pdfUploadError: "Fehler beim Hochladen der PDF-Datei, bitte Format pr\xFCfen.",
|
|
8514
|
+
compressingImagesMessage: "Bilder werden komprimiert, bitte warten...",
|
|
8515
|
+
compressionErrorMessage: "Bildkomprimierung fehlgeschlagen, Originalbilder werden gesendet.",
|
|
8516
|
+
sendFailMessage: "Fehler beim Senden der Nachricht, bitte versuchen Sie es erneut.",
|
|
8517
|
+
insufficientBalanceDetailed: "Unzureichendes Guthaben. Modell: {{modelName}}, maximale Kosten pro Nachricht: {{pricePerMessage}} Credits. Guthaben: {{balance}} Credits.",
|
|
8518
|
+
insufficientBalance: "Unzureichendes Guthaben",
|
|
8519
|
+
insufficientBalanceShortfall: "Sie ben\xF6tigen {{shortfall}} weitere Credits.",
|
|
8520
|
+
agentConfigMissing: "Agent-Konfiguration fehlt",
|
|
8521
|
+
agentConfigLoadFailed: "Fehler beim Laden der Agent-Konfiguration. Bitte versuchen Sie es erneut.",
|
|
8522
|
+
modelPricingMissing: "Informationen zu Modellpreisen fehlen",
|
|
8523
|
+
chooseAnotherModelContinue: "W\xE4hlen Sie ein anderes Modell, um fortzufahren, oder laden Sie Ihr Guthaben auf.",
|
|
8524
|
+
chooseAnotherModelDialogTitle: "Anderes Modell w\xE4hlen",
|
|
8525
|
+
useThisModelContinue: "Mit diesem Modell fortfahren",
|
|
8526
|
+
switchModelContinueSuccess: "Modell gewechselt und Unterhaltung fortgesetzt",
|
|
8527
|
+
contextReprocessingNotice: "Das System muss nach dem Modellwechsel oder dem Bearbeiten fr\xFCherer Nachrichten m\xF6glicherweise Teile dieser Unterhaltung erneut lesen.",
|
|
8528
|
+
switchModelContinueFailed: "Fehler beim Wechseln des Modells. Bitte versuchen Sie es erneut.",
|
|
8529
|
+
noAlternativeModels: "Keine anderen verf\xFCgbaren Modelle",
|
|
8530
|
+
noAvailableAgentMessage: "Keine verf\xFCgbare Agent-Nachricht",
|
|
8531
|
+
creditsUnit: "Credits",
|
|
8532
|
+
dialogUsageTitle: "Sitzungsnutzung",
|
|
8533
|
+
usageInputLabel: "Eingabe",
|
|
8534
|
+
usageOutputLabel: "Ausgabe",
|
|
8535
|
+
contextWindow: "Kontextfenster",
|
|
8536
|
+
contextUsageKnownChip: "{{percent}}%",
|
|
8537
|
+
contextUsageEstimatedChip: "~{{percent}}%",
|
|
8538
|
+
contextUsageUnknownChip: "{{tokens}}",
|
|
8539
|
+
contextUsageUnknownChipEstimated: "\u2248{{tokens}}",
|
|
8540
|
+
contextUsageLoadingChip: "\u2014",
|
|
8541
|
+
contextUsageChipLabel: "Kontextbelegung {{usage}}",
|
|
8542
|
+
contextUsageKnownPanel: "{{tokens}} / {{window}} \xB7 {{percent}}%",
|
|
8543
|
+
contextUsageUnknownPanel: "{{tokens}} Tokens \xB7 Fenster unbekannt",
|
|
8544
|
+
contextUsageUnknownPanelEstimated: "\u2248{{tokens}} Tokens \xB7 Fenster unbekannt",
|
|
8545
|
+
contextUsageUnknownHint: "F\xFCr dieses Modell ist kein Kontextfenster registriert; prozentuale Belegung ist nicht verf\xFCgbar.",
|
|
8546
|
+
contextUsageLoading: "Wird geladen\u2026",
|
|
8547
|
+
contextUsageCompact: "Kontext komprimieren",
|
|
8548
|
+
contextOccupancyEstimated: " (gesch\xE4tzt)",
|
|
8549
|
+
dialogCumulative: "Unterhaltung gesamt",
|
|
8550
|
+
dialogUsageTokensSection: "Sitzungs-Tokens",
|
|
8551
|
+
dialogUsageBillingSection: "Abrechnung",
|
|
8552
|
+
recharge: "Guthaben aufladen",
|
|
8553
|
+
stopAllGeneration: "Alle Generierungen anhalten",
|
|
8554
|
+
allMessagesAborted: "Alle Nachrichten wurden abgebrochen",
|
|
8555
|
+
send: "Senden",
|
|
8556
|
+
guideFromMessage: "Nachricht zitieren",
|
|
8557
|
+
guideSeeded: "In Eingabefeld eingef\xFCgt",
|
|
8558
|
+
guideEmptyContent: "Kein zitierbarer Text in dieser Nachricht",
|
|
8559
|
+
editMessage: "Nachricht bearbeiten",
|
|
8560
|
+
editSeeded: "Nachricht wird bearbeitet",
|
|
8561
|
+
editEmptyContent: "Kein bearbeitbarer Text in dieser Nachricht",
|
|
8562
|
+
editingMessageNotice: "Eine fr\xFChere Nachricht wird bearbeitet. Durch das Senden werden alle nachfolgenden Nachrichten verworfen. Das System muss m\xF6glicherweise Teile dieser Unterhaltung erneut lesen.",
|
|
8563
|
+
cancelEditingMessage: "Nachrichtenbearbeitung abbrechen",
|
|
8564
|
+
branchMessage: "Verzweigen",
|
|
8565
|
+
branchCreated: "Verzweigter Chat erstellt",
|
|
8566
|
+
branchFailed: "Fehler beim Erstellen des verzweigten Chats",
|
|
8567
|
+
stopBeforeDelete: "Generierung vor dem L\xF6schen anhalten",
|
|
8568
|
+
messageQueued: "Nachricht eingereiht; wird nach dem aktuellen Durchgang gesendet",
|
|
8569
|
+
cannotSendFileDuringLoop: "Agent wird ausgef\xFChrt. Bitte warten Sie mit dem Senden von Anh\xE4ngen.",
|
|
8570
|
+
contextChecking: "Kontextfenster dieses Modells wird \xFCberpr\xFCft\u2026",
|
|
8571
|
+
contextCompacting: "Diese Unterhaltung ist lang. Verlauf wird komprimiert\u2026",
|
|
8572
|
+
waitingForModel: "Kontext ist bereit. Warten auf das Modell\u2026",
|
|
8573
|
+
modelWindowReduced: "Zu einem Modell mit kleinerem Kontextfenster gewechselt ({{window}}). Diese Unterhaltung belegt sch\xE4tzungsweise {{percent}}%; die n\xE4chste Nachricht erfordert m\xF6glicherweise eine Komprimierung.",
|
|
8574
|
+
contextWillCompactOnSend: "Diese Unterhaltung \xFCberschreitet den empfohlenen Bereich des neuen Modells. Der Verlauf wird vor dem Senden komprimiert.",
|
|
8575
|
+
currentMessageTooLarge: "Diese Nachricht oder ihre Anh\xE4nge \xFCberschreiten das Kontextfenster des Modells. K\xFCrzen Sie den Inhalt, entfernen Sie Anh\xE4nge oder w\xE4hlen Sie ein Modell mit gr\xF6\xDFerem Kontextfenster.",
|
|
8576
|
+
compactionTimedOut: "Zeit\xFCberschreitung bei der Verlaufskomprimierung; Ihre Nachricht wurde nicht an das Modell \xFCbermittelt. Wiederholen Sie den Vorgang, starten Sie einen neuen Chat oder w\xE4hlen Sie ein Modell mit gr\xF6\xDFerem Kontextfenster.",
|
|
8577
|
+
compactionFailedFallback: "Komprimierung fehlgeschlagen. Fr\xFCherer Verlauf wurde gek\xFCrzt, um fortzufahren; einige fr\xFChere Kontexte sind m\xF6glicherweise nicht verf\xFCgbar.",
|
|
8578
|
+
contextRejected: "Das Modell kann den aktuellen Kontext nicht annehmen. Komprimieren Sie den Chat, starten Sie einen neuen Chat oder w\xE4hlen Sie ein Modell mit gr\xF6\xDFerem Kontextfenster.",
|
|
8579
|
+
sendAlreadyRunning: "Diese Nachricht wird noch verarbeitet. Halten Sie die aktuelle Anfrage an oder reihen Sie eine reine Textnachricht ein.",
|
|
8580
|
+
sendStateRecovered: "Ein veralteter Sendezustand wurde erkannt und bereinigt. Bitte senden Sie die Nachricht erneut.",
|
|
8581
|
+
agentUnavailable: "F\xFCr diesen Chat ist kein Assistent verf\xFCgbar. W\xE4hlen Sie einen aus und versuchen Sie es erneut; Ihre Nachricht wurde behalten.",
|
|
8582
|
+
queuedText: "Nachricht in Warteschlange eingereiht; wird nach dem aktuellen Durchgang gesendet",
|
|
8583
|
+
queuedAttachmentBlocked: "Ein Durchgang l\xE4uft noch. Nachrichten mit Anh\xE4ngen oder mehreren Bildern k\xF6nnen nicht eingereiht werden; senden Sie diese nach Abschluss.",
|
|
8584
|
+
contextUsageEstimate: "gesch\xE4tzt",
|
|
8585
|
+
contextUsagePercentEstimate: "Gesch\xE4tzte Kontextbelegung {{percent}}%",
|
|
8586
|
+
assistantReplyStarting: "Wird verarbeitet\u2026",
|
|
8587
|
+
memorySaved: "Ged\xE4chtnis gespeichert",
|
|
8588
|
+
memorySavedByAssistant: "Ged\xE4chtnis vom Assistenten gespeichert",
|
|
8589
|
+
memoryKindProcedural: "Prozedural",
|
|
8590
|
+
memoryKindEpisodic: "Episodisch",
|
|
8591
|
+
memoryKindSemantic: "Semantisch",
|
|
8592
|
+
memoryVisibilityShared: "Geteilt",
|
|
8593
|
+
memoryVisibilityPublic: "\xD6ffentlich",
|
|
8594
|
+
memoryShowAll: "Alle {{count}} Ged\xE4chtniseintr\xE4ge anzeigen",
|
|
8595
|
+
memoryCollapse: "Einklappen",
|
|
8596
|
+
queueBadgeLabel: "Warteschlangennachrichten",
|
|
8597
|
+
queueBadgeQueued: "in Warteschlange",
|
|
8598
|
+
queueBadgeTitle: "Warteschlangennachrichten",
|
|
8599
|
+
queueBadgeClear: "Leeren",
|
|
8600
|
+
queueBadgeMore: "{{n}} weitere",
|
|
8601
|
+
composerPlaceholderQueuing: "Antwortet\u2026 Ihre Eingabe wird eingereiht",
|
|
8602
|
+
composerPlaceholderDrainPaused: "Warte auf Best\xE4tigung\u2026",
|
|
8603
|
+
composerPlaceholderError: "Senden fehlgeschlagen \u2013 nach Antwort wiederholen",
|
|
8604
|
+
MaxContext: "Max. Kontext",
|
|
8605
|
+
Compression: "Kontextkomprimierung",
|
|
8606
|
+
CompressionTimes: "{{count}} Mal",
|
|
8607
|
+
inheritedContextNotice: "Dieser Chat erbt den Kontext aus einer vorherigen Unterhaltung",
|
|
8608
|
+
inheritedContextNoticeWithTitle: "Dieser Chat erbt den Kontext aus \u201E{{title}}\u201C",
|
|
8609
|
+
openSourceDialog: "Urspr\xFCnglichen Chat \xF6ffnen",
|
|
8610
|
+
loadError: "Fehler beim Laden; einige Nachrichten sind m\xF6glicherweise unvollst\xE4ndig",
|
|
8611
|
+
selectADialog: "W\xE4hlen Sie einen Dialog aus",
|
|
8612
|
+
privateDialogGuestTitle: "Dies ist ein privater Dialog-Link",
|
|
8613
|
+
privateDialogGuestHint: "Die Route /dialog-\u2026 ist nur f\xFCr angemeldete Benutzer mit Zugriffsberechtigung f\xFCr diesen Dialog verf\xFCgbar. Wenn Sie ihn mit jemand anderem teilen m\xF6chten, verwenden Sie stattdessen einen /share/<token>-Link.",
|
|
8614
|
+
thinkingProcess: "Denkprozess",
|
|
8615
|
+
thinkingActive: "Denkt nach\u2026",
|
|
8616
|
+
thinkingDone: "{{seconds}}s nachgedacht",
|
|
8617
|
+
thinkingContent: "Denkinhalt",
|
|
8618
|
+
answerContent: "Antwort",
|
|
8619
|
+
imagePickerError: "Fehler bei der Bildauswahl: {{error}}",
|
|
8620
|
+
shareAttachmentWarning: "Anh\xE4nge f\xFCr Freigabebefehl ignoriert",
|
|
8621
|
+
uploading: "Wird hochgeladen...",
|
|
8622
|
+
mediaFileTooLarge: "Audio-/Videodateien d\xFCrfen maximal 120 MB gro\xDF sein",
|
|
8623
|
+
mediaUploadingPercent: "Wird hochgeladen: {{percent}}%",
|
|
8624
|
+
mediaJobCreating: "Aufgabe wird erstellt\u2026",
|
|
8625
|
+
mediaUploadFailed: "Upload fehlgeschlagen",
|
|
8626
|
+
mediaJobCreateFailed: "Fehler beim Erstellen der Medienaufgabe",
|
|
8627
|
+
mediaUploadRemove: "{{name}} entfernen",
|
|
8628
|
+
mediaUploadFailedShort: "Fehlgeschlagen",
|
|
8629
|
+
uploadSuccess: "Upload abgeschlossen",
|
|
8630
|
+
uploadFailed: "Upload fehlgeschlagen",
|
|
8631
|
+
deleteMessageTitle: "Nachricht l\xF6schen",
|
|
8632
|
+
delConfirm: "Diesen Werkzeug-Output l\xF6schen?",
|
|
8633
|
+
delConfirmMessage: "Diese Nachricht l\xF6schen?",
|
|
8634
|
+
bash: {
|
|
8635
|
+
blockedTitle: "Befehlsausf\xFChrung blockiert",
|
|
8636
|
+
blockedDesc: "Dieser Befehl erfordert eine Best\xE4tigung vor der Ausf\xFChrung",
|
|
8637
|
+
runUnsafe: "Trotzdem ausf\xFChren",
|
|
8638
|
+
exitCode: "Exit-Code: {{code}}",
|
|
8639
|
+
noOutput: "(keine Ausgabe)"
|
|
8640
|
+
},
|
|
8641
|
+
codeEdit: {
|
|
8642
|
+
viewFinal: "Endg\xFCltige Datei anzeigen",
|
|
8643
|
+
viewDiff: "Diff anzeigen",
|
|
8644
|
+
conflictTitle: "\xC4nderungskonflikt erkannt",
|
|
8645
|
+
conflictMsg: "Die Datei wurde extern ge\xE4ndert. M\xF6chten Sie sie \xFCberschreiben?",
|
|
8646
|
+
overwrite: "\xDCberschreiben",
|
|
8647
|
+
confirmOverwritePrompt: "Ein fr\xFCherer Versuch, in {{path}} zu schreiben, ist fehlgeschlagen, da die Datei existiert und \xDCberschreiben nicht gestattet war. Bitte best\xE4tigen Sie, ob Sie die Datei mit dem neuesten Inhalt \xFCberschreiben m\xF6chten."
|
|
8648
|
+
},
|
|
8649
|
+
tool: {
|
|
8650
|
+
failed: "Werkzeugausf\xFChrung fehlgeschlagen",
|
|
8651
|
+
executing: "Werkzeug wird ausgef\xFChrt...",
|
|
8652
|
+
requiresApproval: "Best\xE4tigung erforderlich",
|
|
8653
|
+
resumePrompt: "M\xF6chten Sie fortfahren?",
|
|
8654
|
+
preflightRepairing: "Vorabpr\xFCfung hat {{count}} Problem(e) gefunden, automatische Reparatur\u2026",
|
|
8655
|
+
moreSteps: "{{count}} weitere Schritte\u2026"
|
|
8656
|
+
},
|
|
8657
|
+
toolConfirm: {
|
|
8658
|
+
executing: "Wird ausgef\xFChrt...",
|
|
8659
|
+
patchApplied: "Patch angewendet",
|
|
8660
|
+
executed: "{{name}} ausgef\xFChrt",
|
|
8661
|
+
retryApplyPatch: "Patch erneut anwenden",
|
|
8662
|
+
retryExec: "{{name}} wiederholen",
|
|
8663
|
+
confirmDeleteSpaces: "Sind Sie sicher, dass Sie diese Spaces l\xF6schen m\xF6chten?",
|
|
8664
|
+
applyPatchDanger: "Patch anwenden (potenziell destruktiv)",
|
|
8665
|
+
confirmExec: "{{name}} ausf\xFChren (Best\xE4tigung erforderlich)",
|
|
8666
|
+
successPatch: "\u2705 Patch erfolgreich auf {{path}} angewendet.",
|
|
8667
|
+
successExec: "\u2705 {{name}} erfolgreich ausgef\xFChrt.",
|
|
8668
|
+
failure: "\u274C Ausf\xFChrung fehlgeschlagen: {{error}}",
|
|
8669
|
+
unknownError: "Unbekannter Fehler",
|
|
8670
|
+
confirmDelete: "L\xF6schen von {{entity}} best\xE4tigen",
|
|
8671
|
+
confirmExecGate: "Ausf\xFChrung von {{name}} best\xE4tigen",
|
|
8672
|
+
fallbackDialogs: "Dialoge",
|
|
8673
|
+
fallbackSpaces: "Spaces",
|
|
8674
|
+
failureDialogs: "Fehler beim L\xF6schen der Dialoge",
|
|
8675
|
+
failureSpaces: "Fehler beim L\xF6schen der Spaces",
|
|
8676
|
+
executedDialogs: "Dialoge gel\xF6scht",
|
|
8677
|
+
executedSpaces: "Spaces gel\xF6scht",
|
|
8678
|
+
entityDialog: "Dialog",
|
|
8679
|
+
entitySpace: "Space",
|
|
8680
|
+
deleteLabelMultiple: "{{title}} und {{count}} weitere {{entity}}",
|
|
8681
|
+
fallbackMatched: "Treffer"
|
|
8682
|
+
},
|
|
8683
|
+
toolNames: {
|
|
8684
|
+
tool: "Werkzeug",
|
|
8685
|
+
exa_search: "Suche",
|
|
8686
|
+
firecrawl_scrape: "Firecrawl Scrape",
|
|
8687
|
+
firecrawl_search: "Firecrawl Suche",
|
|
8688
|
+
read_file: "Datei lesen",
|
|
8689
|
+
readFile: "Datei lesen",
|
|
8690
|
+
writeFile: "Datei schreiben",
|
|
8691
|
+
editFile: "Datei bearbeiten",
|
|
8692
|
+
globFiles: "Dateien suchen",
|
|
8693
|
+
searchWorkspace: "Arbeitsbereich durchsuchen",
|
|
8694
|
+
readWorkspaceFile: "Datei lesen",
|
|
8695
|
+
writeWorkspaceFile: "Datei schreiben",
|
|
8696
|
+
replaceWorkspaceText: "Text ersetzen",
|
|
8697
|
+
startPreview: "Vorschau starten",
|
|
8698
|
+
getPreviewStatus: "Vorschaustatus",
|
|
8699
|
+
stopPreview: "Vorschau anhalten",
|
|
8700
|
+
releasePreview: "Vorschau freigeben",
|
|
8701
|
+
captureVisualState: "Screenshot",
|
|
8702
|
+
execShell: "Befehl ausf\xFChren",
|
|
8703
|
+
listAgents: "Agents auflisten",
|
|
8704
|
+
readAgent: "Agent lesen",
|
|
8705
|
+
loadSkill: "F\xE4higkeit laden",
|
|
8706
|
+
startAgentRun: "Subtask starten",
|
|
8707
|
+
controlAgentRun: "Subtask steuern",
|
|
8708
|
+
createAgent: "Agent erstellen",
|
|
8709
|
+
updateAgent: "Agent aktualisieren",
|
|
8710
|
+
queryDialogsBySubjectRef: "Dialogaufzeichnungen abfragen",
|
|
8711
|
+
deleteDialogs: "Dialogaufzeichnungen l\xF6schen",
|
|
8712
|
+
runStreamingAgent: "An Agent \xFCbergeben"
|
|
8713
|
+
},
|
|
8714
|
+
toolVerbs: {
|
|
8715
|
+
readFile: "Lesen",
|
|
8716
|
+
readWorkspaceFile: "Lesen",
|
|
8717
|
+
writeFile: "Schreiben",
|
|
8718
|
+
writeWorkspaceFile: "Schreiben",
|
|
8719
|
+
editFile: "Bearbeiten",
|
|
8720
|
+
replaceWorkspaceText: "Bearbeiten",
|
|
8721
|
+
applyDiff: "Bearbeiten",
|
|
8722
|
+
globFiles: "Dateien suchen",
|
|
8723
|
+
searchWorkspace: "Dateien suchen",
|
|
8724
|
+
codeSearch: "Suche",
|
|
8725
|
+
exa_search: "Websuche",
|
|
8726
|
+
firecrawl_search: "Websuche",
|
|
8727
|
+
fetchWebpage: "Seite abrufen",
|
|
8728
|
+
firecrawl_scrape: "Seite abrufen",
|
|
8729
|
+
execShell: "Befehl",
|
|
8730
|
+
loadSkill: "F\xE4higkeit laden",
|
|
8731
|
+
listAgents: "Agents auflisten",
|
|
8732
|
+
readAgent: "Agent lesen",
|
|
8733
|
+
startAgentRun: "Subtask starten",
|
|
8734
|
+
controlAgentRun: "Subtask steuern",
|
|
8735
|
+
createAgent: "Agent erstellen",
|
|
8736
|
+
updateAgent: "Agent aktualisieren",
|
|
8737
|
+
queryDialogsBySubjectRef: "Dialoge abfragen",
|
|
8738
|
+
deleteDialogs: "Dialoge l\xF6schen",
|
|
8739
|
+
startPreview: "Vorschau starten",
|
|
8740
|
+
getPreviewStatus: "Vorschaustatus",
|
|
8741
|
+
stopPreview: "Vorschau anhalten",
|
|
8742
|
+
releasePreview: "Vorschau freigeben",
|
|
8743
|
+
captureVisualState: "Screenshot",
|
|
8744
|
+
appDeploy: "App bereitstellen",
|
|
8745
|
+
ask_user: "Fragen",
|
|
8746
|
+
runStreamingAgent: "\xDCbergeben"
|
|
8747
|
+
},
|
|
8748
|
+
controlActions: {
|
|
8749
|
+
status: "Statuspr\xFCfung",
|
|
8750
|
+
stop: "Aufgabe anhalten",
|
|
8751
|
+
append: "Anweisung anh\xE4ngen",
|
|
8752
|
+
todo: "Aufgabenliste",
|
|
8753
|
+
list: "Aufgaben\xFCbersicht",
|
|
8754
|
+
wait: "Auf Aufgabe warten"
|
|
8755
|
+
},
|
|
8756
|
+
toolExecLocation: {
|
|
8757
|
+
line: "Ausgef\xFChrt auf {{device}} \xB7 {{root}}",
|
|
8758
|
+
unknown: "Ausf\xFChrungsort unbekannt"
|
|
8759
|
+
},
|
|
8760
|
+
runtimeTarget: {
|
|
8761
|
+
intentBadge: "Ziel: {{device}} (Absicht)"
|
|
8762
|
+
},
|
|
8763
|
+
spaceContext: {
|
|
8764
|
+
badge: "Space-Kontext",
|
|
8765
|
+
spaceFolderTitle: "Space-Ordner: {{path}}",
|
|
8766
|
+
cwdTitle: "Tats\xE4chliches Arbeitsverzeichnis: {{path}}"
|
|
8767
|
+
},
|
|
8768
|
+
gemini: {
|
|
8769
|
+
title: "Bilderzeugung",
|
|
8770
|
+
count: "{{count}} Bilder erzeugt"
|
|
8771
|
+
},
|
|
8772
|
+
page: {
|
|
8773
|
+
untitled: "Unbenannte Seite"
|
|
8774
|
+
},
|
|
8775
|
+
table: {
|
|
8776
|
+
untitled: "Unbenannte Tabelle",
|
|
8777
|
+
export: "Tabelle exportieren",
|
|
8778
|
+
convertToDataTable: "In strukturierte Tabelle umwandeln",
|
|
8779
|
+
converting: "Tabelle wird konvertiert...",
|
|
8780
|
+
convertSuccess: "Tabelle erfolgreich konvertiert!",
|
|
8781
|
+
convertFailed: "Fehler beim Konvertieren der Tabelle",
|
|
8782
|
+
defaultColumnLabel: "Spalte {{index}}",
|
|
8783
|
+
convertedTitle: "Strukturierte Tabelle"
|
|
8784
|
+
},
|
|
8785
|
+
common: {
|
|
8786
|
+
open: "\xD6ffnen",
|
|
8787
|
+
retry: "Wiederholen",
|
|
8788
|
+
run: "Ausf\xFChren"
|
|
8789
|
+
},
|
|
8790
|
+
imgOpts: {
|
|
8791
|
+
defaultName: "Bild {{index}}"
|
|
8792
|
+
},
|
|
8793
|
+
DialogSettings: "Dialog-Einstellungen",
|
|
8794
|
+
collaborativeConversation: "Kollaborative Unterhaltung",
|
|
8795
|
+
childRunObserver: {
|
|
8796
|
+
panelAriaLabel: "Hintergrund-Subtasks",
|
|
8797
|
+
title: "Hintergrund-Subtasks",
|
|
8798
|
+
subtitleLoading: "Subtasks werden geladen\u2026",
|
|
8799
|
+
subtitleCount: "{{count}} Hintergrund-Subtasks",
|
|
8800
|
+
refreshAriaLabel: "Aufgaben aktualisieren",
|
|
8801
|
+
refreshTitle: "Aktualisieren",
|
|
8802
|
+
expandAriaLabel: "Panel erweitern",
|
|
8803
|
+
expandTitle: "Erweitern",
|
|
8804
|
+
collapseAriaLabel: "Panel einklappen",
|
|
8805
|
+
collapseTitle: "Einklappen",
|
|
8806
|
+
loading: "Subtasks werden geladen\u2026",
|
|
8807
|
+
loadFailed: "Fehler beim Laden der Hintergrund-Subtasks",
|
|
8808
|
+
retry: "Wiederholen",
|
|
8809
|
+
empty: "Noch keine Hintergrund-Subtasks in diesem Dialog vorhanden. Sie erscheinen hier nach startAgentRun (asynchrone Zuweisung).",
|
|
8810
|
+
statusPending: "Ausstehend",
|
|
8811
|
+
statusRunning: "Wird ausgef\xFChrt",
|
|
8812
|
+
statusDone: "Abgeschlossen",
|
|
8813
|
+
statusFailed: "Fehlgeschlagen",
|
|
8814
|
+
statusCancelled: "Abgebrochen",
|
|
8815
|
+
statusUnknown: "Unbekannt",
|
|
8816
|
+
defaultTitle: "Subtask",
|
|
8817
|
+
missingDialogId: "Fehlende Subtask-Dialog-ID",
|
|
8818
|
+
detailStatus: "Status",
|
|
8819
|
+
detailAgent: "Agent",
|
|
8820
|
+
detailThread: "Thread",
|
|
8821
|
+
detailLoading: "Subtask-Dialog wird geladen\u2026",
|
|
8822
|
+
detailLoadFailed: "Subtask-Dialog kann nicht geladen werden",
|
|
8823
|
+
detailEmpty: "Noch keine Nachrichten oder Belege vorhanden.",
|
|
8824
|
+
messagesAriaLabel: "Subtask-Dialog-Nachrichten",
|
|
8825
|
+
emptyContent: "(leer)",
|
|
8826
|
+
appendInstructionTitle: "Anweisung anh\xE4ngen",
|
|
8827
|
+
appendInstructionPlaceholder: "Anweisung an laufende Aufgabe anh\xE4ngen\u2026",
|
|
8828
|
+
appendInstructionButton: "Senden",
|
|
8829
|
+
appendInstructionSending: "Wird gesendet\u2026",
|
|
8830
|
+
appendInstructionSuccess: "Eingereiht; wird im n\xE4chsten Durchgang verarbeitet",
|
|
8831
|
+
appendInstructionFailed: "Fehler beim Senden der Anweisung",
|
|
8832
|
+
continueTaskTitle: "Aufgabe fortsetzen",
|
|
8833
|
+
continueTaskPlaceholder: "Anweisung eingeben, um Aufgabe fortzusetzen\u2026",
|
|
8834
|
+
continueTaskButton: "Fortsetzen",
|
|
8835
|
+
continueTaskSuccess: "Fortsetzungsanweisung gesendet",
|
|
8836
|
+
queuedCount: "{{count}} in Warteschlange",
|
|
8837
|
+
queuedCountTitle: "Anzahl der eingereihten Anweisungen"
|
|
8838
|
+
},
|
|
8839
|
+
agentRun: {
|
|
8840
|
+
statusLabel: "Status",
|
|
8841
|
+
statusPending: "Ausstehend",
|
|
8842
|
+
statusRunning: "Wird ausgef\xFChrt",
|
|
8843
|
+
statusDone: "Abgeschlossen",
|
|
8844
|
+
statusFailed: "Fehlgeschlagen",
|
|
8845
|
+
statusCancelled: "Abgebrochen",
|
|
8846
|
+
statusOrphaned: "Verwaist",
|
|
8847
|
+
statusUnknown: "Unbekannt",
|
|
8848
|
+
handoffSummary: "An {{agent}} \xFCbergeben",
|
|
8849
|
+
handoffRunning: "Wird ausgef\xFChrt",
|
|
8850
|
+
handoffFailed: "\xDCbergabe fehlgeschlagen",
|
|
8851
|
+
handoffDone: "\xDCbergeben",
|
|
8852
|
+
noInputSummary: "Keine Eingabezusammenfassung aufgezeichnet",
|
|
8853
|
+
noSeparateDialog: "Kein separater Dialog",
|
|
8854
|
+
childDialogLabel: "Untergeordneter Dialog",
|
|
8855
|
+
targetAgentLabel: "Ziel-Agent",
|
|
8856
|
+
inputSummaryLabel: "Eingabezusammenfassung",
|
|
8857
|
+
agentLabel: "Agent",
|
|
8858
|
+
runLabel: "Durchlauf",
|
|
8859
|
+
resultLabel: "Ergebnis",
|
|
8860
|
+
countLabel: "{{count}} Durchlauf/Durchl\xE4ufe",
|
|
8861
|
+
agentCountLabel: "{{count}} Agent(s)",
|
|
8862
|
+
loadResultLabel: "Ergebnis laden",
|
|
8863
|
+
skillBodyLabel: "Skill-Inhalt",
|
|
8864
|
+
loading: "Wird geladen\u2026",
|
|
8865
|
+
noSummary: "(keine Zusammenfassung)"
|
|
8866
|
+
},
|
|
8867
|
+
chat: {
|
|
8868
|
+
toolCards: {
|
|
8869
|
+
title: "Werkzeugkarten",
|
|
8870
|
+
newFileDiff: "Diff f\xFCr neue Dateien",
|
|
8871
|
+
newFileDiffDesc: "Standardm\xE4\xDFig wird nur der Dateipfad angezeigt. Aktivieren Sie diese Option, um den endg\xFCltigen Inhalt und den Diff-Schalter anzuzeigen.",
|
|
8872
|
+
shellTree: "Ausgabe von tree-Befehlen",
|
|
8873
|
+
shellTreeDesc: "Standardm\xE4\xDFig werden nur Befehl und Exit-Code angezeigt. Aktivieren Sie diese Option, um den Verzeichnisbaum anzuzeigen.",
|
|
8874
|
+
shellTreeHidden: "Verzeichnisbaum-Ausgabe ist ausgeblendet. Sie kann in den Chat-Einstellungen aktiviert werden."
|
|
8875
|
+
},
|
|
8876
|
+
agentBehavior: {
|
|
8877
|
+
title: "Agent-Automatisierungsgrenzen",
|
|
8878
|
+
selfUpdate: {
|
|
8879
|
+
title: "Von updateSelf-Best\xE4tigung ausgenommene Felder",
|
|
8880
|
+
greeting: "Begr\xFC\xDFung",
|
|
8881
|
+
greetingDesc: "Erlaubt dem Agent, seine eigene Begr\xFC\xDFungsnachricht ohne Best\xE4tigung zu aktualisieren",
|
|
8882
|
+
introduction: "Vorstellung",
|
|
8883
|
+
introductionDesc: "Erlaubt dem Agent, seine eigene Vorstellung ohne Best\xE4tigung zu aktualisieren",
|
|
8884
|
+
tags: "Tags",
|
|
8885
|
+
tagsDesc: "Erlaubt dem Agent, seine eigenen Tags ohne Best\xE4tigung zu aktualisieren",
|
|
8886
|
+
prompt: "Prompt",
|
|
8887
|
+
promptDesc: "Erlaubt dem Agent, seinen eigenen System-Prompt ohne Best\xE4tigung zu aktualisieren",
|
|
8888
|
+
references: "Referenzen",
|
|
8889
|
+
referencesDesc: "Erlaubt dem Agent, seine Wissensreferenzen ohne Best\xE4tigung zu aktualisieren",
|
|
8890
|
+
tools: "Werkzeuge",
|
|
8891
|
+
toolsDesc: "Erlaubt dem Agent, seine Werkzeugauswahl ohne Best\xE4tigung zu aktualisieren",
|
|
8892
|
+
model: "Modell",
|
|
8893
|
+
modelDesc: "Erlaubt dem Agent, sein Modell ohne Best\xE4tigung zu \xE4ndern",
|
|
8894
|
+
provider: "Anbieter",
|
|
8895
|
+
providerDesc: "Erlaubt dem Agent, seinen Modellanbieter ohne Best\xE4tigung zu \xE4ndern",
|
|
8896
|
+
public: "\xD6ffentlichkeitsstatus",
|
|
8897
|
+
publicDesc: "Erlaubt dem Agent, seine Sichtbarkeitseinstellungen ohne Best\xE4tigung zu \xE4ndern",
|
|
8898
|
+
temperatureDesc: "Erlaubt dem Agent, seine Temperature-Einstellung ohne Best\xE4tigung zu \xE4ndern",
|
|
8899
|
+
topPDesc: "Erlaubt dem Agent, seine Top-P-Einstellung ohne Best\xE4tigung zu \xE4ndern",
|
|
8900
|
+
frequencyPenaltyDesc: "Erlaubt dem Agent, seine Frequenzstrafe ohne Best\xE4tigung zu \xE4ndern",
|
|
8901
|
+
presencePenaltyDesc: "Erlaubt dem Agent, seine Pr\xE4senzstrafe ohne Best\xE4tigung zu \xE4ndern",
|
|
8902
|
+
maxTokensDesc: "Erlaubt dem Agent, sein Max-Tokens-Limit ohne Best\xE4tigung zu \xE4ndern",
|
|
8903
|
+
reasoningEffort: "Denkaufwand",
|
|
8904
|
+
reasoningEffortDesc: "Erlaubt dem Agent, seinen Denkaufwand ohne Best\xE4tigung zu \xE4ndern",
|
|
8905
|
+
name: "Name",
|
|
8906
|
+
nameDesc: "Erlaubt dem Agent, seinen Namen ohne Best\xE4tigung zu \xE4ndern"
|
|
8907
|
+
},
|
|
8908
|
+
tone: {
|
|
8909
|
+
label: "Antwortstil",
|
|
8910
|
+
default: "Standard",
|
|
8911
|
+
direct: "Direkt",
|
|
8912
|
+
pragmatic: "Pragmatisch",
|
|
8913
|
+
friendly: "Freundlich",
|
|
8914
|
+
professional: "Professionell"
|
|
8915
|
+
},
|
|
8916
|
+
knowledge: {
|
|
8917
|
+
label: "Wissenserstellung",
|
|
8918
|
+
level1: "1: Nie erstellen",
|
|
8919
|
+
level2: "2: Vor dem Erstellen fragen",
|
|
8920
|
+
level3: "3: Nach Antwort Erstellung vorschlagen",
|
|
8921
|
+
level4: "4: Bei hochwertigen Ergebnissen automatisch erstellen"
|
|
8922
|
+
},
|
|
8923
|
+
space: {
|
|
8924
|
+
label: "Aktuellen Space lesen",
|
|
8925
|
+
level1: "1: Nicht automatisch lesen",
|
|
8926
|
+
level2: "2: Nur Struktur und Titel",
|
|
8927
|
+
level3: "3: Leichtes Lesen",
|
|
8928
|
+
level4: "4: Adaptives Lesen"
|
|
8929
|
+
}
|
|
8930
|
+
},
|
|
8931
|
+
scrollButtons: {
|
|
8932
|
+
title: "Schnellscroll-Schaltfl\xE4chen",
|
|
8933
|
+
top: "Nach oben scrollen",
|
|
8934
|
+
bottom: "Nach unten scrollen"
|
|
8935
|
+
}
|
|
8936
|
+
},
|
|
8937
|
+
appAssistantLoadFailed: "Fehler beim Laden des App-Kontexts",
|
|
8938
|
+
appAssistantLoading: "App-Kontext wird geladen\u2026",
|
|
8939
|
+
appAssistantNeedsRecovery: "Diese Version der App ist noch nicht f\xFCr direkte kleine Bearbeitungen bereit. Ich kann die aktuelle Seite zuerst in eine bearbeitbare Version umwandeln und Ihnen dann weiterhelfen.",
|
|
8940
|
+
createSideDialogFailed: "Fehler beim Erstellen des Chats. Bitte versuchen Sie es sp\xE4ter erneut.",
|
|
8941
|
+
favoriteAssistants: "H\xE4ufig genutzte Assistenten",
|
|
8942
|
+
goExplore: "KI-Marktplatz erkunden",
|
|
8943
|
+
goLogin: "Anmelden",
|
|
8944
|
+
loadSideDialogError: "Fehler beim Laden des Chats. Bitte versuchen Sie es sp\xE4ter erneut.",
|
|
8945
|
+
loginToUseAssistants: "Melden Sie sich an, um Seiten-Assistenten zu nutzen",
|
|
8946
|
+
noAvailableAgents: "Keine Agents verf\xFCgbar",
|
|
8947
|
+
pageAssistant: "Seiten-Assistent",
|
|
8948
|
+
pickerPlatformCredits: "Plattform-Credits",
|
|
8949
|
+
pickerPlatformCreditsTitle: "Abrechnung pro Token \xFCber Ihre Plattform-Credits",
|
|
8950
|
+
pickerBillingNote: "Mit M\xFCnzsymbol markierte Agents werden pro Token \xFCber Ihre Plattform-Credits abgerechnet; unmarkierte nutzen den Kanal des jeweiligen Agent und belasten Ihre Plattform-Credits nicht.",
|
|
8951
|
+
selectAssistant: "Assistenten ausw\xE4hlen",
|
|
8952
|
+
switchAssistant: "Assistent wechseln",
|
|
8953
|
+
switchAssistantFailed: "Fehler beim Wechseln des Assistenten. Bitte versuchen Sie es erneut."
|
|
8954
|
+
}
|
|
8955
|
+
},
|
|
8956
|
+
es: {
|
|
8957
|
+
translation: {
|
|
8958
|
+
AddAgent: "A\xF1adir Agent",
|
|
8959
|
+
mediaJob: {
|
|
8960
|
+
auto: "Autom\xE1tico",
|
|
8961
|
+
none: "Ninguno",
|
|
8962
|
+
languageLine: "Idioma: {{source}} \u2192 {{target}}",
|
|
8963
|
+
sourceLanguage: "Idioma de origen",
|
|
8964
|
+
targetLanguage: "Idioma de destino",
|
|
8965
|
+
autoDetect: "Detectar autom\xE1ticamente",
|
|
8966
|
+
noTranslate: "No traducir"
|
|
8967
|
+
},
|
|
8968
|
+
selectedAgentsCount: "{{count}} Agent(s) seleccionado(s)",
|
|
8969
|
+
addSelectedAgents: "A\xF1adir seleccionados",
|
|
8970
|
+
clearSelection: "Limpiar",
|
|
8971
|
+
recommended: "Recomendado",
|
|
8972
|
+
favoriteAgent: "Favorito",
|
|
8973
|
+
myAgent: "M\xEDos",
|
|
8974
|
+
capabilityMatch: "Coincidencia de capacidades",
|
|
8975
|
+
confirm: "Confirmar",
|
|
8976
|
+
cancel: "Cancelar",
|
|
8977
|
+
clickHere: "Haz clic aqu\xED",
|
|
8978
|
+
clearConversation: "Borrar conversaci\xF3n",
|
|
8979
|
+
compressionError: "Error al comprimir im\xE1genes. Se enviar\xE1n las im\xE1genes originales.",
|
|
8980
|
+
compressingImages: "Comprimiendo im\xE1genes...",
|
|
8981
|
+
copyContent: "Copiar contenido",
|
|
8982
|
+
copyDiagnostics: "Copiar diagn\xF3stico",
|
|
8983
|
+
finishReasonLengthNotice: "La respuesta se cort\xF3 al alcanzar el l\xEDmite de salida del modelo",
|
|
8984
|
+
retryProgress: "Reintentando autom\xE1ticamente {{attempt}}/{{maxAttempts}} \xB7 {{seconds}}s",
|
|
8985
|
+
sendErrorCard: {
|
|
8986
|
+
title: "Error al enviar",
|
|
8987
|
+
retry: "Reintentar",
|
|
8988
|
+
compactAndRetry: "Comprimir y reintentar",
|
|
8989
|
+
newDialog: "Nueva conversaci\xF3n",
|
|
8990
|
+
switchModel: "Cambiar de modelo",
|
|
8991
|
+
viewDetails: "Detalles t\xE9cnicos",
|
|
8992
|
+
hideDetails: "Ocultar detalles",
|
|
8993
|
+
suggestion: "Sugerencia",
|
|
8994
|
+
verifyAccount: "Verificar cuenta"
|
|
8995
|
+
},
|
|
8996
|
+
copyFailed: "Error al copiar",
|
|
8997
|
+
contextAutoCompressed: "Contexto comprimido autom\xE1ticamente para ajustarse a la ventana del modelo",
|
|
8998
|
+
contextAutoCompressFailed: "Error al comprimir el contexto autom\xE1ticamente",
|
|
8999
|
+
copySuccess: "Copiado correctamente",
|
|
9000
|
+
createDialog: "Crear di\xE1logo",
|
|
9001
|
+
createDialogFromAI: "Crear di\xE1logo con IA",
|
|
9002
|
+
createRobot: "Crear Agent",
|
|
9003
|
+
customizeYourAI: "Personaliza tu IA",
|
|
9004
|
+
AgentAddFailed: "Error al a\xF1adir el Agent",
|
|
9005
|
+
AgentAddedSuccess: "Agent a\xF1adido correctamente",
|
|
9006
|
+
MultipleAgentsAddedSuccess: "{{count}} Agents a\xF1adidos correctamente",
|
|
9007
|
+
AgentRemoveFailed: "Error al eliminar el Agent",
|
|
9008
|
+
AgentRemovedSuccess: "Agent eliminado correctamente",
|
|
9009
|
+
Agents: "Agents",
|
|
9010
|
+
delete: "Eliminar",
|
|
9011
|
+
deleteContentConfirmation: "\xBFEst\xE1s seguro de que deseas eliminar este contenido? Esta acci\xF3n no se puede deshacer.",
|
|
9012
|
+
deleteContentTitle: 'Eliminar "{{title}}"',
|
|
9013
|
+
deleteMovedToTrash: '"{{title}}" se ha movido a la papelera',
|
|
9014
|
+
deleteFailed: "Error al eliminar",
|
|
9015
|
+
deleteMessage: "Eliminar mensaje",
|
|
9016
|
+
deleteSuccess: "Eliminado correctamente",
|
|
9017
|
+
confirmDelete: "Haz clic de nuevo para confirmar la eliminaci\xF3n",
|
|
9018
|
+
dropToUpload: "Arrastra archivos aqu\xED para subirlos",
|
|
9019
|
+
excelIsEmpty: "El archivo de Excel est\xE1 vac\xEDo",
|
|
9020
|
+
excelIsEmptyOrInvalid: "El archivo de Excel est\xE1 vac\xEDo o no es v\xE1lido",
|
|
9021
|
+
excelParseError: "Error al procesar el archivo de Excel",
|
|
9022
|
+
FailedToLoadAgents: "Error al cargar los Agents",
|
|
9023
|
+
fileReadError: "Error al leer el contenido del archivo",
|
|
9024
|
+
First: "Primero",
|
|
9025
|
+
Info: "Informaci\xF3n",
|
|
9026
|
+
LoadingAgents: "Cargando Agents...",
|
|
9027
|
+
messageInput: "Campo de entrada de mensaje",
|
|
9028
|
+
messageInputArea: "\xC1rea de entrada de mensaje con subida de archivos",
|
|
9029
|
+
messageOrFileHere: "Escribe un mensaje o sube un archivo...",
|
|
9030
|
+
pastedTextChip: "Texto pegado #{{id}} \xB7 {{lines}} l\xEDneas \xB7 {{size}}",
|
|
9031
|
+
removePastedText: "Quitar texto pegado",
|
|
9032
|
+
expandPastedText: "Expandir texto pegado en la entrada",
|
|
9033
|
+
Mode: "Modo",
|
|
9034
|
+
ModeUpdateFailed: "Error al actualizar el modo",
|
|
9035
|
+
ModeUpdatedSuccess: "Modo actualizado correctamente",
|
|
9036
|
+
newchat: "Nuevo chat",
|
|
9037
|
+
NoAgents: "A\xFAn no hay Agents disponibles",
|
|
9038
|
+
NoDescription: "Sin descripci\xF3n",
|
|
9039
|
+
Orchestrated: "Orquestado",
|
|
9040
|
+
Parallel: "Paralelo",
|
|
9041
|
+
playAudio: "Reproducir audio",
|
|
9042
|
+
resend: "Reenviar",
|
|
9043
|
+
Retry: "Reintentar",
|
|
9044
|
+
saveContent: "Guardar contenido",
|
|
9045
|
+
saveFailed: "Error al guardar",
|
|
9046
|
+
saveSuccess: "Guardado correctamente",
|
|
9047
|
+
SelectAgentToAdd: "Selecciona un Agent para a\xF1adir a la conversaci\xF3n",
|
|
9048
|
+
sendFail: "Error al enviar el mensaje",
|
|
9049
|
+
Sequential: "Secuencial",
|
|
9050
|
+
ShowDialogConfigInfo: "Ver configuraci\xF3n e informaci\xF3n del di\xE1logo",
|
|
9051
|
+
Tokens: "Tokens",
|
|
9052
|
+
Unnamed: "Sin nombre",
|
|
9053
|
+
uploadFile: "Subir archivo",
|
|
9054
|
+
useServerProxy: "Usar servicio de tr\xE1nsito",
|
|
9055
|
+
viewDetails: "para m\xE1s detalles",
|
|
9056
|
+
fileReadErrorMessage: "Error al leer el archivo. Int\xE9ntalo de nuevo.",
|
|
9057
|
+
excelEmptyMessage: "El archivo de Excel est\xE1 vac\xEDo o no es v\xE1lido.",
|
|
9058
|
+
excelNoDataMessage: "No se encontraron datos en el archivo de Excel.",
|
|
9059
|
+
excelParseErrorMessage: "Error al procesar el archivo de Excel, comprueba el formato.",
|
|
9060
|
+
excelUploadSuccess: "\xA1Archivo de Excel subido y convertido correctamente!",
|
|
9061
|
+
docxUploadSuccess: "\xA1Archivo DOCX subido y convertido correctamente!",
|
|
9062
|
+
docxUploadError: "Error al subir el archivo DOCX, comprueba el formato.",
|
|
9063
|
+
pdfUploadSuccess: "\xA1Archivo PDF subido y convertido correctamente!",
|
|
9064
|
+
pdfUploadError: "Error al subir el archivo PDF, comprueba el formato.",
|
|
9065
|
+
compressingImagesMessage: "Comprimiendo im\xE1genes, espera por favor...",
|
|
9066
|
+
compressionErrorMessage: "Error al comprimir im\xE1genes, se enviar\xE1n las im\xE1genes originales.",
|
|
9067
|
+
sendFailMessage: "Error al enviar el mensaje. Int\xE9ntalo de nuevo.",
|
|
9068
|
+
insufficientBalanceDetailed: "Saldo insuficiente. Modelo: {{modelName}}, coste m\xE1ximo por mensaje: {{pricePerMessage}} cr\xE9ditos. Saldo: {{balance}} cr\xE9ditos.",
|
|
9069
|
+
insufficientBalance: "Saldo insuficiente",
|
|
9070
|
+
insufficientBalanceShortfall: "Necesitas {{shortfall}} cr\xE9ditos m\xE1s.",
|
|
9071
|
+
agentConfigMissing: "Falta la configuraci\xF3n del Agent",
|
|
9072
|
+
agentConfigLoadFailed: "Error al cargar la configuraci\xF3n del Agent. Int\xE9ntalo de nuevo.",
|
|
9073
|
+
modelPricingMissing: "Falta la informaci\xF3n de precios del modelo",
|
|
9074
|
+
chooseAnotherModelContinue: "Elige otro modelo para continuar o recarga tu saldo.",
|
|
9075
|
+
chooseAnotherModelDialogTitle: "Elegir otro modelo",
|
|
9076
|
+
useThisModelContinue: "Continuar con este modelo",
|
|
9077
|
+
switchModelContinueSuccess: "Se cambi\xF3 de modelo y se continu\xF3 la conversaci\xF3n",
|
|
9078
|
+
contextReprocessingNotice: "Es posible que el sistema deba volver a leer parte de esta conversaci\xF3n despu\xE9s de cambiar de modelo o editar un mensaje anterior.",
|
|
9079
|
+
switchModelContinueFailed: "Error al cambiar de modelo. Int\xE9ntalo de nuevo.",
|
|
9080
|
+
noAlternativeModels: "No hay otros modelos disponibles",
|
|
9081
|
+
noAvailableAgentMessage: "No hay mensajes disponibles del Agent",
|
|
9082
|
+
creditsUnit: "Cr\xE9ditos",
|
|
9083
|
+
dialogUsageTitle: "Uso de la sesi\xF3n",
|
|
9084
|
+
usageInputLabel: "entrada",
|
|
9085
|
+
usageOutputLabel: "salida",
|
|
9086
|
+
contextWindow: "Ventana de contexto",
|
|
9087
|
+
contextUsageKnownChip: "{{percent}}%",
|
|
9088
|
+
contextUsageEstimatedChip: "~{{percent}}%",
|
|
9089
|
+
contextUsageUnknownChip: "{{tokens}}",
|
|
9090
|
+
contextUsageUnknownChipEstimated: "\u2248{{tokens}}",
|
|
9091
|
+
contextUsageLoadingChip: "\u2014",
|
|
9092
|
+
contextUsageChipLabel: "Ocupaci\xF3n de contexto {{usage}}",
|
|
9093
|
+
contextUsageKnownPanel: "{{tokens}} / {{window}} \xB7 {{percent}}%",
|
|
9094
|
+
contextUsageUnknownPanel: "{{tokens}} tokens \xB7 Ventana desconocida",
|
|
9095
|
+
contextUsageUnknownPanelEstimated: "\u2248{{tokens}} tokens \xB7 Ventana desconocida",
|
|
9096
|
+
contextUsageUnknownHint: "Este modelo no tiene registrada una ventana de contexto; el porcentaje de ocupaci\xF3n no est\xE1 disponible.",
|
|
9097
|
+
contextUsageLoading: "Cargando\u2026",
|
|
9098
|
+
contextUsageCompact: "Compactar contexto",
|
|
9099
|
+
contextOccupancyEstimated: " (estimado)",
|
|
9100
|
+
dialogCumulative: "Total de la conversaci\xF3n",
|
|
9101
|
+
dialogUsageTokensSection: "Tokens de la sesi\xF3n",
|
|
9102
|
+
dialogUsageBillingSection: "Facturaci\xF3n",
|
|
9103
|
+
recharge: "Recargar",
|
|
9104
|
+
stopAllGeneration: "Detener todas las generaciones",
|
|
9105
|
+
allMessagesAborted: "Se han cancelado todos los mensajes",
|
|
9106
|
+
send: "Enviar",
|
|
9107
|
+
guideFromMessage: "Citar mensaje",
|
|
9108
|
+
guideSeeded: "Insertado en el campo de entrada",
|
|
9109
|
+
guideEmptyContent: "No hay texto citable en este mensaje",
|
|
9110
|
+
editMessage: "Editar mensaje",
|
|
9111
|
+
editSeeded: "Editando mensaje",
|
|
9112
|
+
editEmptyContent: "No hay texto editable en este mensaje",
|
|
9113
|
+
editingMessageNotice: "Editando un mensaje anterior. Al enviar se descartar\xE1n todos los mensajes posteriores. El sistema puede necesitar releer parte de esta conversaci\xF3n.",
|
|
9114
|
+
cancelEditingMessage: "Cancelar edici\xF3n del mensaje",
|
|
9115
|
+
branchMessage: "Bifurcar",
|
|
9116
|
+
branchCreated: "Chat bifurcado creado",
|
|
9117
|
+
branchFailed: "Error al crear chat bifurcado",
|
|
9118
|
+
stopBeforeDelete: "Det\xE9n la generaci\xF3n antes de eliminar",
|
|
9119
|
+
messageQueued: "Mensaje en cola; se enviar\xE1 tras el turno actual",
|
|
9120
|
+
cannotSendFileDuringLoop: "El Agent est\xE1 ejecut\xE1ndose. Espera antes de enviar adjuntos.",
|
|
9121
|
+
contextChecking: "Comprobando la ventana de contexto de este modelo\u2026",
|
|
9122
|
+
contextCompacting: "Esta conversaci\xF3n es larga. Compactando historial\u2026",
|
|
9123
|
+
waitingForModel: "Contexto listo. Esperando al modelo\u2026",
|
|
9124
|
+
modelWindowReduced: "Se cambi\xF3 a un modelo con menor contexto ({{window}}). Esta conversaci\xF3n ocupa aproximadamente el {{percent}}%; el siguiente mensaje podr\xEDa requerir compactaci\xF3n.",
|
|
9125
|
+
contextWillCompactOnSend: "Esta conversaci\xF3n supera el rango recomendado del nuevo modelo. El historial se compactar\xE1 antes de enviar.",
|
|
9126
|
+
currentMessageTooLarge: "Este mensaje o sus adjuntos superan la ventana de contexto del modelo. Acorta el contenido, retira adjuntos o elige un modelo con mayor contexto.",
|
|
9127
|
+
compactionTimedOut: "Se agot\xF3 el tiempo de espera al compactar el historial; tu mensaje no se envi\xF3 al modelo. Reintenta, inicia un nuevo chat o elige un modelo con mayor contexto.",
|
|
9128
|
+
compactionFailedFallback: "La compactaci\xF3n fall\xF3. Continuando con el historial m\xE1s antiguo recortado; parte del contexto inicial puede no estar disponible.",
|
|
9129
|
+
contextRejected: "El modelo no puede aceptar el contexto actual. Compacta el chat, inicia uno nuevo o elige un modelo con mayor contexto.",
|
|
9130
|
+
sendAlreadyRunning: "Este mensaje a\xFAn se est\xE1 procesando. Det\xE9n la solicitud actual o pon en cola un mensaje de solo texto.",
|
|
9131
|
+
sendStateRecovered: "Se detect\xF3 y borr\xF3 un estado de env\xEDo obsoleto. Env\xEDa de nuevo tu mensaje.",
|
|
9132
|
+
agentUnavailable: "No hay ning\xFAn asistente disponible para este chat. Selecciona uno y reintenta; tu mensaje se ha conservado.",
|
|
9133
|
+
queuedText: "Mensaje puesto en cola; se enviar\xE1 tras finalizar el turno actual",
|
|
9134
|
+
queuedAttachmentBlocked: "Un turno sigue ejecut\xE1ndose. Los mensajes con adjuntos o varias im\xE1genes no se pueden poner en cola; env\xEDalos al finalizar.",
|
|
9135
|
+
contextUsageEstimate: "est.",
|
|
9136
|
+
contextUsagePercentEstimate: "Uso estimado del contexto {{percent}}%",
|
|
9137
|
+
assistantReplyStarting: "Procesando\u2026",
|
|
9138
|
+
memorySaved: "Memoria guardada",
|
|
9139
|
+
memorySavedByAssistant: "Memoria guardada por el asistente",
|
|
9140
|
+
memoryKindProcedural: "Procedimental",
|
|
9141
|
+
memoryKindEpisodic: "Epis\xF3dica",
|
|
9142
|
+
memoryKindSemantic: "Sem\xE1ntica",
|
|
9143
|
+
memoryVisibilityShared: "Compartida",
|
|
9144
|
+
memoryVisibilityPublic: "P\xFAblica",
|
|
9145
|
+
memoryShowAll: "Ver las {{count}} memorias",
|
|
9146
|
+
memoryCollapse: "Contraer",
|
|
9147
|
+
queueBadgeLabel: "Mensajes en cola",
|
|
9148
|
+
queueBadgeQueued: "en cola",
|
|
9149
|
+
queueBadgeTitle: "Mensajes en cola",
|
|
9150
|
+
queueBadgeClear: "Limpiar",
|
|
9151
|
+
queueBadgeMore: "{{n}} m\xE1s",
|
|
9152
|
+
composerPlaceholderQueuing: "Respondiendo\u2026 tu mensaje se pondr\xE1 en cola",
|
|
9153
|
+
composerPlaceholderDrainPaused: "Esperando confirmaci\xF3n\u2026",
|
|
9154
|
+
composerPlaceholderError: "Error al enviar \u2014 reintenta tras finalizar la respuesta",
|
|
9155
|
+
MaxContext: "Contexto m\xE1x.",
|
|
9156
|
+
Compression: "Compresi\xF3n de contexto",
|
|
9157
|
+
CompressionTimes: "{{count}} veces",
|
|
9158
|
+
inheritedContextNotice: "Este chat hereda el contexto de una conversaci\xF3n anterior",
|
|
9159
|
+
inheritedContextNoticeWithTitle: 'Este chat hereda el contexto de "{{title}}"',
|
|
9160
|
+
openSourceDialog: "Abrir chat de origen",
|
|
9161
|
+
loadError: "Error al cargar; algunos mensajes pueden estar incompletos",
|
|
9162
|
+
selectADialog: "Selecciona un di\xE1logo",
|
|
9163
|
+
privateDialogGuestTitle: "Este es un enlace de di\xE1logo privado",
|
|
9164
|
+
privateDialogGuestHint: "La ruta /dialog-\u2026 solo est\xE1 disponible para usuarios autenticados con permiso en este di\xE1logo. Si deseas compartirlo con otra persona, usa un enlace /share/<token>.",
|
|
9165
|
+
thinkingProcess: "Proceso de pensamiento",
|
|
9166
|
+
thinkingActive: "Pensando\u2026",
|
|
9167
|
+
thinkingDone: "Pens\xF3 durante {{seconds}}s",
|
|
9168
|
+
thinkingContent: "Contenido del pensamiento",
|
|
9169
|
+
answerContent: "Respuesta",
|
|
9170
|
+
imagePickerError: "Error al seleccionar imagen: {{error}}",
|
|
9171
|
+
shareAttachmentWarning: "Adjuntos ignorados para el comando de compartir",
|
|
9172
|
+
uploading: "Subiendo...",
|
|
9173
|
+
mediaFileTooLarge: "Los archivos de audio/v\xEDdeo deben ser de 120 MB o menos",
|
|
9174
|
+
mediaUploadingPercent: "Subiendo {{percent}}%",
|
|
9175
|
+
mediaJobCreating: "Creando tarea\u2026",
|
|
9176
|
+
mediaUploadFailed: "Error al subir",
|
|
9177
|
+
mediaJobCreateFailed: "Error al crear la tarea multimedia",
|
|
9178
|
+
mediaUploadRemove: "Eliminar {{name}}",
|
|
9179
|
+
mediaUploadFailedShort: "Fallido",
|
|
9180
|
+
uploadSuccess: "Subida completada",
|
|
9181
|
+
uploadFailed: "Error al subir",
|
|
9182
|
+
deleteMessageTitle: "Eliminar mensaje",
|
|
9183
|
+
delConfirm: "\xBFEliminar la salida de esta herramienta?",
|
|
9184
|
+
delConfirmMessage: "\xBFEliminar este mensaje?",
|
|
9185
|
+
bash: {
|
|
9186
|
+
blockedTitle: "Ejecuci\xF3n de comando bloqueada",
|
|
9187
|
+
blockedDesc: "Este comando requiere confirmaci\xF3n antes de ejecutarse",
|
|
9188
|
+
runUnsafe: "Ejecutar de todos modos",
|
|
9189
|
+
exitCode: "c\xF3digo de salida: {{code}}",
|
|
9190
|
+
noOutput: "(sin salida)"
|
|
9191
|
+
},
|
|
9192
|
+
codeEdit: {
|
|
9193
|
+
viewFinal: "Ver archivo final",
|
|
9194
|
+
viewDiff: "Ver diferencias (diff)",
|
|
9195
|
+
conflictTitle: "Conflicto de edici\xF3n detectado",
|
|
9196
|
+
conflictMsg: "El archivo se modific\xF3 externamente. \xBFDeseas sobrescribirlo?",
|
|
9197
|
+
overwrite: "Sobrescribir",
|
|
9198
|
+
confirmOverwritePrompt: "Un intento anterior de escribir en {{path}} fall\xF3 porque el archivo existe y no se permiti\xF3 la sobrescritura. Confirma si deseas sobrescribirlo con el contenido m\xE1s reciente."
|
|
9199
|
+
},
|
|
9200
|
+
tool: {
|
|
9201
|
+
failed: "Error en la herramienta",
|
|
9202
|
+
executing: "Ejecutando herramienta...",
|
|
9203
|
+
requiresApproval: "Requiere aprobaci\xF3n",
|
|
9204
|
+
resumePrompt: "\xBFDeseas continuar?",
|
|
9205
|
+
preflightRepairing: "La comprobaci\xF3n previa encontr\xF3 {{count}} problema(s), reparando autom\xE1ticamente\u2026",
|
|
9206
|
+
moreSteps: "{{count}} pasos m\xE1s\u2026"
|
|
9207
|
+
},
|
|
9208
|
+
toolConfirm: {
|
|
9209
|
+
executing: "Ejecutando...",
|
|
9210
|
+
patchApplied: "Parche aplicado",
|
|
9211
|
+
executed: "Se ejecut\xF3 {{name}}",
|
|
9212
|
+
retryApplyPatch: "Reintentar aplicar parche",
|
|
9213
|
+
retryExec: "Reintentar {{name}}",
|
|
9214
|
+
confirmDeleteSpaces: "\xBFEst\xE1s seguro de que deseas eliminar estos espacios?",
|
|
9215
|
+
applyPatchDanger: "Aplicar parche (peligro potencial)",
|
|
9216
|
+
confirmExec: "Ejecutar {{name}} (requiere confirmaci\xF3n)",
|
|
9217
|
+
successPatch: "\u2705 Parche aplicado correctamente en {{path}}.",
|
|
9218
|
+
successExec: "\u2705 Se ejecut\xF3 correctamente {{name}}.",
|
|
9219
|
+
failure: "\u274C Error en la ejecuci\xF3n: {{error}}",
|
|
9220
|
+
unknownError: "Error desconocido",
|
|
9221
|
+
confirmDelete: "Confirmar eliminaci\xF3n de {{entity}}",
|
|
9222
|
+
confirmExecGate: "Confirmar ejecuci\xF3n de {{name}}",
|
|
9223
|
+
fallbackDialogs: "Di\xE1logos",
|
|
9224
|
+
fallbackSpaces: "Espacios",
|
|
9225
|
+
failureDialogs: "Error al eliminar di\xE1logos",
|
|
9226
|
+
failureSpaces: "Error al eliminar espacios",
|
|
9227
|
+
executedDialogs: "Di\xE1logos eliminados",
|
|
9228
|
+
executedSpaces: "Espacios eliminados",
|
|
9229
|
+
entityDialog: "di\xE1logo",
|
|
9230
|
+
entitySpace: "espacio",
|
|
9231
|
+
deleteLabelMultiple: "{{title}} y {{count}} m\xE1s {{entity}}",
|
|
9232
|
+
fallbackMatched: "Coincidencias"
|
|
9233
|
+
},
|
|
9234
|
+
toolNames: {
|
|
9235
|
+
tool: "Herramienta",
|
|
9236
|
+
exa_search: "Buscar",
|
|
9237
|
+
firecrawl_scrape: "Extracci\xF3n con Firecrawl",
|
|
9238
|
+
firecrawl_search: "B\xFAsqueda con Firecrawl",
|
|
9239
|
+
read_file: "Leer archivo",
|
|
9240
|
+
readFile: "Leer archivo",
|
|
9241
|
+
writeFile: "Escribir archivo",
|
|
9242
|
+
editFile: "Editar archivo",
|
|
9243
|
+
globFiles: "Buscar archivos",
|
|
9244
|
+
searchWorkspace: "Buscar en espacio de trabajo",
|
|
9245
|
+
readWorkspaceFile: "Leer archivo",
|
|
9246
|
+
writeWorkspaceFile: "Escribir archivo",
|
|
9247
|
+
replaceWorkspaceText: "Reemplazar texto",
|
|
9248
|
+
startPreview: "Iniciar vista previa",
|
|
9249
|
+
getPreviewStatus: "Estado de vista previa",
|
|
9250
|
+
stopPreview: "Detener vista previa",
|
|
9251
|
+
releasePreview: "Liberar vista previa",
|
|
9252
|
+
captureVisualState: "Captura de pantalla",
|
|
9253
|
+
execShell: "Ejecutar comando",
|
|
9254
|
+
listAgents: "Listar agents",
|
|
9255
|
+
readAgent: "Leer agent",
|
|
9256
|
+
loadSkill: "Cargar habilidad",
|
|
9257
|
+
startAgentRun: "Iniciar subtarea",
|
|
9258
|
+
controlAgentRun: "Controlar subtarea",
|
|
9259
|
+
createAgent: "Crear agent",
|
|
9260
|
+
updateAgent: "Actualizar agent",
|
|
9261
|
+
queryDialogsBySubjectRef: "Consultar registros de di\xE1logo",
|
|
9262
|
+
deleteDialogs: "Eliminar registros de di\xE1logo",
|
|
9263
|
+
runStreamingAgent: "Transferir a agent"
|
|
9264
|
+
},
|
|
9265
|
+
toolVerbs: {
|
|
9266
|
+
readFile: "Leer",
|
|
9267
|
+
readWorkspaceFile: "Leer",
|
|
9268
|
+
writeFile: "Escribir",
|
|
9269
|
+
writeWorkspaceFile: "Escribir",
|
|
9270
|
+
editFile: "Editar",
|
|
9271
|
+
replaceWorkspaceText: "Editar",
|
|
9272
|
+
applyDiff: "Editar",
|
|
9273
|
+
globFiles: "Buscar archivos",
|
|
9274
|
+
searchWorkspace: "Buscar archivos",
|
|
9275
|
+
codeSearch: "Buscar",
|
|
9276
|
+
exa_search: "B\xFAsqueda web",
|
|
9277
|
+
firecrawl_search: "B\xFAsqueda web",
|
|
9278
|
+
fetchWebpage: "Obtener p\xE1gina",
|
|
9279
|
+
firecrawl_scrape: "Obtener p\xE1gina",
|
|
9280
|
+
execShell: "Comando",
|
|
9281
|
+
loadSkill: "Cargar habilidad",
|
|
9282
|
+
listAgents: "Listar agents",
|
|
9283
|
+
readAgent: "Leer agent",
|
|
9284
|
+
startAgentRun: "Iniciar subtarea",
|
|
9285
|
+
controlAgentRun: "Controlar subtarea",
|
|
9286
|
+
createAgent: "Crear agent",
|
|
9287
|
+
updateAgent: "Actualizar agent",
|
|
9288
|
+
queryDialogsBySubjectRef: "Consultar di\xE1logos",
|
|
9289
|
+
deleteDialogs: "Eliminar di\xE1logos",
|
|
9290
|
+
startPreview: "Iniciar vista previa",
|
|
9291
|
+
getPreviewStatus: "Estado de vista previa",
|
|
9292
|
+
stopPreview: "Detener vista previa",
|
|
9293
|
+
releasePreview: "Liberar vista previa",
|
|
9294
|
+
captureVisualState: "Captura",
|
|
9295
|
+
appDeploy: "Desplegar aplicaci\xF3n",
|
|
9296
|
+
ask_user: "Preguntar",
|
|
9297
|
+
runStreamingAgent: "Transferir"
|
|
9298
|
+
},
|
|
9299
|
+
controlActions: {
|
|
9300
|
+
status: "Diagn\xF3stico de estado",
|
|
9301
|
+
stop: "Detener tarea",
|
|
9302
|
+
append: "A\xF1adir instrucci\xF3n",
|
|
9303
|
+
todo: "Lista de pendientes",
|
|
9304
|
+
list: "Lista de tareas",
|
|
9305
|
+
wait: "Esperar tarea"
|
|
9306
|
+
},
|
|
9307
|
+
toolExecLocation: {
|
|
9308
|
+
line: "Ejecutado en {{device}} \xB7 {{root}}",
|
|
9309
|
+
unknown: "Ubicaci\xF3n de ejecuci\xF3n desconocida"
|
|
9310
|
+
},
|
|
9311
|
+
runtimeTarget: {
|
|
9312
|
+
intentBadge: "Destino: {{device}} (intenci\xF3n)"
|
|
9313
|
+
},
|
|
9314
|
+
spaceContext: {
|
|
9315
|
+
badge: "Contexto de espacio",
|
|
9316
|
+
spaceFolderTitle: "Carpeta del espacio: {{path}}",
|
|
9317
|
+
cwdTitle: "Directorio de trabajo real: {{path}}"
|
|
9318
|
+
},
|
|
9319
|
+
gemini: {
|
|
9320
|
+
title: "Generaci\xF3n de im\xE1genes",
|
|
9321
|
+
count: "{{count}} im\xE1genes generadas"
|
|
9322
|
+
},
|
|
9323
|
+
page: {
|
|
9324
|
+
untitled: "P\xE1gina sin t\xEDtulo"
|
|
9325
|
+
},
|
|
9326
|
+
table: {
|
|
9327
|
+
untitled: "Tabla sin t\xEDtulo",
|
|
9328
|
+
export: "Exportar tabla",
|
|
9329
|
+
convertToDataTable: "Convertir en tabla estructurada",
|
|
9330
|
+
converting: "Convirtiendo tabla...",
|
|
9331
|
+
convertSuccess: "\xA1Tabla convertida correctamente!",
|
|
9332
|
+
convertFailed: "Error al convertir la tabla",
|
|
9333
|
+
defaultColumnLabel: "Columna {{index}}",
|
|
9334
|
+
convertedTitle: "Tabla estructurada"
|
|
9335
|
+
},
|
|
9336
|
+
common: {
|
|
9337
|
+
open: "Abrir",
|
|
9338
|
+
retry: "Reintentar",
|
|
9339
|
+
run: "Ejecutar"
|
|
9340
|
+
},
|
|
9341
|
+
imgOpts: {
|
|
9342
|
+
defaultName: "Imagen {{index}}"
|
|
9343
|
+
},
|
|
9344
|
+
DialogSettings: "Ajustes del di\xE1logo",
|
|
9345
|
+
collaborativeConversation: "Conversaci\xF3n colaborativa",
|
|
9346
|
+
childRunObserver: {
|
|
9347
|
+
panelAriaLabel: "Subtareas en segundo plano",
|
|
9348
|
+
title: "Subtareas en segundo plano",
|
|
9349
|
+
subtitleLoading: "Cargando subtareas\u2026",
|
|
9350
|
+
subtitleCount: "{{count}} subtareas en segundo plano",
|
|
9351
|
+
refreshAriaLabel: "Actualizar tareas",
|
|
9352
|
+
refreshTitle: "Actualizar",
|
|
9353
|
+
expandAriaLabel: "Expandir panel",
|
|
9354
|
+
expandTitle: "Expandir",
|
|
9355
|
+
collapseAriaLabel: "Contraer panel",
|
|
9356
|
+
collapseTitle: "Contraer",
|
|
9357
|
+
loading: "Cargando subtareas\u2026",
|
|
9358
|
+
loadFailed: "Error al cargar las subtareas en segundo plano",
|
|
9359
|
+
retry: "Reintentar",
|
|
9360
|
+
empty: "A\xFAn no hay subtareas en segundo plano en este di\xE1logo. Aparecer\xE1n aqu\xED tras ejecutar startAgentRun (asignaci\xF3n as\xEDncrona).",
|
|
9361
|
+
statusPending: "Pendiente",
|
|
9362
|
+
statusRunning: "En ejecuci\xF3n",
|
|
9363
|
+
statusDone: "Completado",
|
|
9364
|
+
statusFailed: "Fallido",
|
|
9365
|
+
statusCancelled: "Cancelado",
|
|
9366
|
+
statusUnknown: "Desconocido",
|
|
9367
|
+
defaultTitle: "Subtarea",
|
|
9368
|
+
missingDialogId: "Falta el ID del di\xE1logo secundario",
|
|
9369
|
+
detailStatus: "Estado",
|
|
9370
|
+
detailAgent: "Agent",
|
|
9371
|
+
detailThread: "Hilo",
|
|
9372
|
+
detailLoading: "Cargando di\xE1logo secundario\u2026",
|
|
9373
|
+
detailLoadFailed: "No se puede cargar el di\xE1logo secundario",
|
|
9374
|
+
detailEmpty: "A\xFAn no hay mensajes ni evidencias.",
|
|
9375
|
+
messagesAriaLabel: "Mensajes del di\xE1logo secundario",
|
|
9376
|
+
emptyContent: "(vac\xEDo)",
|
|
9377
|
+
appendInstructionTitle: "A\xF1adir instrucci\xF3n",
|
|
9378
|
+
appendInstructionPlaceholder: "A\xF1adir instrucci\xF3n a la tarea en ejecuci\xF3n\u2026",
|
|
9379
|
+
appendInstructionButton: "Enviar",
|
|
9380
|
+
appendInstructionSending: "Enviando\u2026",
|
|
9381
|
+
appendInstructionSuccess: "En cola; se procesar\xE1 en el siguiente turno",
|
|
9382
|
+
appendInstructionFailed: "Error al enviar la instrucci\xF3n",
|
|
9383
|
+
continueTaskTitle: "Continuar tarea",
|
|
9384
|
+
continueTaskPlaceholder: "Introduce una instrucci\xF3n para continuar la tarea\u2026",
|
|
9385
|
+
continueTaskButton: "Continuar",
|
|
9386
|
+
continueTaskSuccess: "Instrucci\xF3n de continuaci\xF3n enviada",
|
|
9387
|
+
queuedCount: "{{count}} en cola",
|
|
9388
|
+
queuedCountTitle: "N\xFAmero de instrucciones en cola"
|
|
9389
|
+
},
|
|
9390
|
+
agentRun: {
|
|
9391
|
+
statusLabel: "Estado",
|
|
9392
|
+
statusPending: "Pendiente",
|
|
9393
|
+
statusRunning: "En ejecuci\xF3n",
|
|
9394
|
+
statusDone: "Completado",
|
|
9395
|
+
statusFailed: "Fallido",
|
|
9396
|
+
statusCancelled: "Cancelado",
|
|
9397
|
+
statusOrphaned: "Hu\xE9rfano",
|
|
9398
|
+
statusUnknown: "Desconocido",
|
|
9399
|
+
handoffSummary: "Transferido a {{agent}}",
|
|
9400
|
+
handoffRunning: "En ejecuci\xF3n",
|
|
9401
|
+
handoffFailed: "Error en la transferencia",
|
|
9402
|
+
handoffDone: "Transferido",
|
|
9403
|
+
noInputSummary: "Sin resumen de entrada registrado",
|
|
9404
|
+
noSeparateDialog: "Sin di\xE1logo independiente",
|
|
9405
|
+
childDialogLabel: "Di\xE1logo secundario",
|
|
9406
|
+
targetAgentLabel: "Agent de destino",
|
|
9407
|
+
inputSummaryLabel: "Resumen de entrada",
|
|
9408
|
+
agentLabel: "Agent",
|
|
9409
|
+
runLabel: "Ejecuci\xF3n",
|
|
9410
|
+
resultLabel: "Resultado",
|
|
9411
|
+
countLabel: "{{count}} ejecuci\xF3n/ejecuciones",
|
|
9412
|
+
agentCountLabel: "{{count}} agent(s)",
|
|
9413
|
+
loadResultLabel: "Cargar resultado",
|
|
9414
|
+
skillBodyLabel: "Cuerpo de la habilidad",
|
|
9415
|
+
loading: "Cargando\u2026",
|
|
9416
|
+
noSummary: "(sin resumen)"
|
|
9417
|
+
},
|
|
9418
|
+
chat: {
|
|
9419
|
+
toolCards: {
|
|
9420
|
+
title: "Tarjetas de herramientas",
|
|
9421
|
+
newFileDiff: "Diff para archivos nuevos",
|
|
9422
|
+
newFileDiffDesc: "Por defecto solo se muestra la ruta del archivo. Activa esta opci\xF3n para mostrar el contenido final y el conmutador de Diff.",
|
|
9423
|
+
shellTree: "Salida de comandos tree",
|
|
9424
|
+
shellTreeDesc: "Por defecto solo se muestran el comando y el c\xF3digo de salida. Activa esta opci\xF3n para mostrar el \xE1rbol de directorios.",
|
|
9425
|
+
shellTreeHidden: "La salida del \xE1rbol de directorios est\xE1 oculta. Puedes activarla en los ajustes del chat."
|
|
9426
|
+
},
|
|
9427
|
+
agentBehavior: {
|
|
9428
|
+
title: "L\xEDmites de automatizaci\xF3n del Agent",
|
|
9429
|
+
selfUpdate: {
|
|
9430
|
+
title: "Campos exentos de confirmaci\xF3n en updateSelf",
|
|
9431
|
+
greeting: "Mensaje de bienvenida",
|
|
9432
|
+
greetingDesc: "Permite que el Agent actualice su propio mensaje de bienvenida sin confirmaci\xF3n",
|
|
9433
|
+
introduction: "Presentaci\xF3n",
|
|
9434
|
+
introductionDesc: "Permite que el Agent actualice su propia presentaci\xF3n sin confirmaci\xF3n",
|
|
9435
|
+
tags: "Etiquetas",
|
|
9436
|
+
tagsDesc: "Permite que el Agent actualice sus propias etiquetas sin confirmaci\xF3n",
|
|
9437
|
+
prompt: "Prompt",
|
|
9438
|
+
promptDesc: "Permite que el Agent actualice su propio prompt del sistema sin confirmaci\xF3n",
|
|
9439
|
+
references: "Referencias",
|
|
9440
|
+
referencesDesc: "Permite que el Agent actualice sus referencias de conocimiento sin confirmaci\xF3n",
|
|
9441
|
+
tools: "Herramientas",
|
|
9442
|
+
toolsDesc: "Permite que el Agent actualice su selecci\xF3n de herramientas sin confirmaci\xF3n",
|
|
9443
|
+
model: "Modelo",
|
|
9444
|
+
modelDesc: "Permite que el Agent cambie su modelo sin confirmaci\xF3n",
|
|
9445
|
+
provider: "Proveedor",
|
|
9446
|
+
providerDesc: "Permite que el Agent cambie su proveedor de modelos sin confirmaci\xF3n",
|
|
9447
|
+
public: "Estado p\xFAblico",
|
|
9448
|
+
publicDesc: "Permite que el Agent cambie su visibilidad p\xFAblica sin confirmaci\xF3n",
|
|
9449
|
+
temperatureDesc: "Permite que el Agent cambie su temperatura sin confirmaci\xF3n",
|
|
9450
|
+
topPDesc: "Permite que el Agent cambie su valor Top P sin confirmaci\xF3n",
|
|
9451
|
+
frequencyPenaltyDesc: "Permite que el Agent cambie su penalizaci\xF3n de frecuencia sin confirmaci\xF3n",
|
|
9452
|
+
presencePenaltyDesc: "Permite que el Agent cambie su penalizaci\xF3n de presencia sin confirmaci\xF3n",
|
|
9453
|
+
maxTokensDesc: "Permite que el Agent cambie su l\xEDmite de tokens m\xE1ximos sin confirmaci\xF3n",
|
|
9454
|
+
reasoningEffort: "Esfuerzo de razonamiento",
|
|
9455
|
+
reasoningEffortDesc: "Permite que el Agent cambie su esfuerzo de razonamiento sin confirmaci\xF3n",
|
|
9456
|
+
name: "Nombre",
|
|
9457
|
+
nameDesc: "Permite que el Agent cambie su nombre sin confirmaci\xF3n"
|
|
9458
|
+
},
|
|
9459
|
+
tone: {
|
|
9460
|
+
label: "Tono de respuesta",
|
|
9461
|
+
default: "Predeterminado",
|
|
9462
|
+
direct: "Directo",
|
|
9463
|
+
pragmatic: "Pragm\xE1tico",
|
|
9464
|
+
friendly: "Amigable",
|
|
9465
|
+
professional: "Profesional"
|
|
9466
|
+
},
|
|
9467
|
+
knowledge: {
|
|
9468
|
+
label: "Creaci\xF3n de conocimiento",
|
|
9469
|
+
level1: "1: No crear nunca",
|
|
9470
|
+
level2: "2: Preguntarme antes de crear",
|
|
9471
|
+
level3: "3: Sugerir creaci\xF3n despu\xE9s de responder",
|
|
9472
|
+
level4: "4: Crear autom\xE1ticamente ante resultados valiosos"
|
|
9473
|
+
},
|
|
9474
|
+
space: {
|
|
9475
|
+
label: "Lectura del espacio actual",
|
|
9476
|
+
level1: "1: No leer autom\xE1ticamente",
|
|
9477
|
+
level2: "2: Solo estructura y t\xEDtulos",
|
|
9478
|
+
level3: "3: Lectura ligera",
|
|
9479
|
+
level4: "4: Lectura adaptativa"
|
|
9480
|
+
}
|
|
9481
|
+
},
|
|
9482
|
+
scrollButtons: {
|
|
9483
|
+
title: "Botones de desplazamiento r\xE1pido",
|
|
9484
|
+
top: "Desplazarse hacia arriba",
|
|
9485
|
+
bottom: "Desplazarse hacia abajo"
|
|
9486
|
+
}
|
|
9487
|
+
},
|
|
9488
|
+
appAssistantLoadFailed: "Error al cargar el contexto de la aplicaci\xF3n",
|
|
9489
|
+
appAssistantLoading: "Cargando contexto de la aplicaci\xF3n\u2026",
|
|
9490
|
+
appAssistantNeedsRecovery: "Esta versi\xF3n de la aplicaci\xF3n a\xFAn no est\xE1 lista para peque\xF1as ediciones directas. Primero puedo organizar la p\xE1gina actual en una versi\xF3n editable y luego ayudarte a modificarla.",
|
|
9491
|
+
createSideDialogFailed: "Error al crear el chat. Int\xE9ntalo de nuevo m\xE1s tarde.",
|
|
9492
|
+
favoriteAssistants: "Asistentes frecuentes",
|
|
9493
|
+
goExplore: "Explorar la Plaza de IA",
|
|
9494
|
+
goLogin: "Iniciar sesi\xF3n",
|
|
9495
|
+
loadSideDialogError: "Error al cargar el chat. Int\xE9ntalo de nuevo m\xE1s tarde.",
|
|
9496
|
+
loginToUseAssistants: "Inicia sesi\xF3n para usar los asistentes de p\xE1gina",
|
|
9497
|
+
noAvailableAgents: "No hay Agents disponibles",
|
|
9498
|
+
pageAssistant: "Asistente de p\xE1gina",
|
|
9499
|
+
pickerPlatformCredits: "Cr\xE9ditos de la plataforma",
|
|
9500
|
+
pickerPlatformCreditsTitle: "Facturado por token desde tus cr\xE9ditos de la plataforma",
|
|
9501
|
+
pickerBillingNote: "Los agents marcados con el icono de moneda se facturan por token desde tus cr\xE9ditos de la plataforma; los no marcados usan su propio canal y no consumen tus cr\xE9ditos.",
|
|
9502
|
+
selectAssistant: "Seleccionar asistente",
|
|
9503
|
+
switchAssistant: "Cambiar asistente",
|
|
9504
|
+
switchAssistantFailed: "Error al cambiar de asistente. Int\xE9ntalo de nuevo."
|
|
9505
|
+
}
|
|
7084
9506
|
}
|
|
7085
9507
|
};
|
|
7086
9508
|
|
|
@@ -7088,6 +9510,17 @@ var chat_locale_default = {
|
|
|
7088
9510
|
var space_locale_default = {
|
|
7089
9511
|
["en" /* EN */]: {
|
|
7090
9512
|
translation: {
|
|
9513
|
+
workspace_directory_unavailable: "Space directory unavailable; showing loaded items",
|
|
9514
|
+
workspace_directory_count: "Directory: {{directory}}; loaded: {{loaded}}",
|
|
9515
|
+
workspace_toggle: "Collapse or expand {{name}}",
|
|
9516
|
+
workspace_workspaces: "Space workspaces",
|
|
9517
|
+
workspace_uncategorized: "Uncategorized",
|
|
9518
|
+
workspace_loaded_items: "Loaded items",
|
|
9519
|
+
workspace_new_dialog: "New dialog in {{name}}",
|
|
9520
|
+
workspace_open: "Open space: {{name}}",
|
|
9521
|
+
workspace_other: "Other spaces",
|
|
9522
|
+
workspace_unassociated: "Unassociated space",
|
|
9523
|
+
workspace_unassociated_empty: "No content outside spaces yet",
|
|
7091
9524
|
// === 基础操作 ===
|
|
7092
9525
|
create: "Create Space",
|
|
7093
9526
|
name: "Space Name",
|
|
@@ -7124,14 +9557,10 @@ var space_locale_default = {
|
|
|
7124
9557
|
// === 空间选择 ===
|
|
7125
9558
|
default_space: "Default Space",
|
|
7126
9559
|
select_space: "Select Space",
|
|
7127
|
-
no_spaces: "No spaces available",
|
|
7128
9560
|
no_spaces_yet: "No spaces created yet",
|
|
7129
|
-
space_list_failed: "Failed to load spaces \u2014 tap to retry",
|
|
7130
9561
|
space_list: "Space List",
|
|
7131
9562
|
space_dropdown: "Open space menu",
|
|
7132
9563
|
current_space: "Current Space",
|
|
7133
|
-
switch_space: "Switch Space",
|
|
7134
|
-
offline_local_cache: "Offline \xB7 Local cache",
|
|
7135
9564
|
// === 导航相关 ===
|
|
7136
9565
|
home: "Home",
|
|
7137
9566
|
back_to_home: "Back to Home",
|
|
@@ -7415,6 +9844,17 @@ var space_locale_default = {
|
|
|
7415
9844
|
},
|
|
7416
9845
|
["zh-CN" /* ZH_CN */]: {
|
|
7417
9846
|
translation: {
|
|
9847
|
+
workspace_directory_unavailable: "\u7A7A\u95F4\u76EE\u5F55\u6682\u4E0D\u53EF\u7528\uFF0C\u4FDD\u7559\u5DF2\u52A0\u8F7D\u5185\u5BB9",
|
|
9848
|
+
workspace_directory_count: "\u76EE\u5F55 {{directory}} \u9879\uFF1B\u5DF2\u52A0\u8F7D {{loaded}} \u9879",
|
|
9849
|
+
workspace_toggle: "\u6298\u53E0\u6216\u5C55\u5F00{{name}}",
|
|
9850
|
+
workspace_workspaces: "\u7A7A\u95F4\u5DE5\u4F5C\u533A",
|
|
9851
|
+
workspace_uncategorized: "\u672A\u5206\u7C7B",
|
|
9852
|
+
workspace_loaded_items: "\u5DF2\u52A0\u8F7D\u5185\u5BB9\u6570",
|
|
9853
|
+
workspace_new_dialog: "\u5728{{name}}\u65B0\u5EFA\u5BF9\u8BDD",
|
|
9854
|
+
workspace_open: "\u6253\u5F00\u7A7A\u95F4\uFF1A{{name}}",
|
|
9855
|
+
workspace_other: "\u5176\u4ED6\u7A7A\u95F4",
|
|
9856
|
+
workspace_unassociated: "\u7A7A\u95F4\u5916",
|
|
9857
|
+
workspace_unassociated_empty: "\u7A7A\u95F4\u5916\u8FD8\u6CA1\u6709\u5185\u5BB9",
|
|
7418
9858
|
// === 基础操作 ===
|
|
7419
9859
|
create: "\u521B\u5EFA\u7A7A\u95F4",
|
|
7420
9860
|
name: "\u7A7A\u95F4\u540D\u79F0",
|
|
@@ -7451,14 +9891,10 @@ var space_locale_default = {
|
|
|
7451
9891
|
// === 空间选择 ===
|
|
7452
9892
|
default_space: "\u9ED8\u8BA4\u7A7A\u95F4",
|
|
7453
9893
|
select_space: "\u9009\u62E9\u7A7A\u95F4",
|
|
7454
|
-
no_spaces: "\u6682\u65E0\u7A7A\u95F4",
|
|
7455
9894
|
no_spaces_yet: "\u5C1A\u672A\u521B\u5EFA\u4EFB\u4F55\u7A7A\u95F4",
|
|
7456
|
-
space_list_failed: "\u7A7A\u95F4\u5217\u8868\u52A0\u8F7D\u5931\u8D25\uFF0C\u70B9\u51FB\u91CD\u8BD5",
|
|
7457
9895
|
space_list: "\u7A7A\u95F4\u5217\u8868",
|
|
7458
9896
|
space_dropdown: "\u6253\u5F00\u7A7A\u95F4\u83DC\u5355",
|
|
7459
9897
|
current_space: "\u5F53\u524D\u7A7A\u95F4",
|
|
7460
|
-
switch_space: "\u5207\u6362\u7A7A\u95F4",
|
|
7461
|
-
offline_local_cache: "\u79BB\u7EBF \xB7 \u672C\u5730\u7F13\u5B58",
|
|
7462
9898
|
// === 导航相关 ===
|
|
7463
9899
|
home: "\u9996\u9875",
|
|
7464
9900
|
back_to_home: "\u56DE\u5230\u9996\u9875",
|
|
@@ -7742,6 +10178,17 @@ var space_locale_default = {
|
|
|
7742
10178
|
},
|
|
7743
10179
|
["zh-Hant" /* ZH_HANT */]: {
|
|
7744
10180
|
translation: {
|
|
10181
|
+
workspace_directory_unavailable: "\u7A7A\u9593\u76EE\u9304\u66AB\u4E0D\u53EF\u7528\uFF0C\u4FDD\u7559\u5DF2\u8F09\u5165\u5167\u5BB9",
|
|
10182
|
+
workspace_directory_count: "\u76EE\u9304 {{directory}} \u9805\uFF1B\u5DF2\u8F09\u5165 {{loaded}} \u9805",
|
|
10183
|
+
workspace_toggle: "\u647A\u758A\u6216\u5C55\u958B{{name}}",
|
|
10184
|
+
workspace_workspaces: "\u7A7A\u9593\u5DE5\u4F5C\u5340",
|
|
10185
|
+
workspace_uncategorized: "\u672A\u5206\u985E",
|
|
10186
|
+
workspace_loaded_items: "\u5DF2\u8F09\u5165\u5167\u5BB9\u6578",
|
|
10187
|
+
workspace_new_dialog: "\u5728{{name}}\u65B0\u589E\u5C0D\u8A71",
|
|
10188
|
+
workspace_open: "\u958B\u555F\u7A7A\u9593\uFF1A{{name}}",
|
|
10189
|
+
workspace_other: "\u5176\u4ED6\u7A7A\u9593",
|
|
10190
|
+
workspace_unassociated: "\u7A7A\u9593\u5916",
|
|
10191
|
+
workspace_unassociated_empty: "\u7A7A\u9593\u5916\u9084\u6C92\u6709\u5167\u5BB9",
|
|
7745
10192
|
// === 基础操作 ===
|
|
7746
10193
|
create: "\u5275\u5EFA\u7A7A\u9593",
|
|
7747
10194
|
name: "\u7A7A\u9593\u540D\u7A31",
|
|
@@ -7777,14 +10224,10 @@ var space_locale_default = {
|
|
|
7777
10224
|
folder_as_name: "\u5DF2\u7528\u8CC7\u6599\u593E\u540D\u7A31\u4F5C\u70BA\u7A7A\u9593\u540D\u7A31",
|
|
7778
10225
|
default_space: "\u9810\u8A2D\u7A7A\u9593",
|
|
7779
10226
|
select_space: "\u9078\u64C7\u7A7A\u9593",
|
|
7780
|
-
no_spaces: "\u66AB\u7121\u7A7A\u9593",
|
|
7781
10227
|
no_spaces_yet: "\u5C1A\u672A\u5275\u5EFA\u4EFB\u4F55\u7A7A\u9593",
|
|
7782
|
-
space_list_failed: "\u7A7A\u9593\u6E05\u55AE\u8F09\u5165\u5931\u6557\uFF0C\u9EDE\u64CA\u91CD\u8A66",
|
|
7783
10228
|
space_list: "\u7A7A\u9593\u6E05\u55AE",
|
|
7784
10229
|
space_dropdown: "\u958B\u555F\u7A7A\u9593\u9078\u55AE",
|
|
7785
10230
|
current_space: "\u76EE\u524D\u7A7A\u9593",
|
|
7786
|
-
switch_space: "\u5207\u63DB\u7A7A\u9593",
|
|
7787
|
-
offline_local_cache: "\u96E2\u7DDA \xB7 \u672C\u6A5F\u5FEB\u53D6",
|
|
7788
10231
|
// === 导航相关 ===
|
|
7789
10232
|
home: "\u9996\u9801",
|
|
7790
10233
|
back_to_home: "\u8FD4\u56DE\u9996\u9801",
|
|
@@ -8068,6 +10511,17 @@ var space_locale_default = {
|
|
|
8068
10511
|
},
|
|
8069
10512
|
["ja" /* JA */]: {
|
|
8070
10513
|
translation: {
|
|
10514
|
+
workspace_directory_unavailable: "\u30B9\u30DA\u30FC\u30B9\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3002\u8AAD\u307F\u8FBC\u307F\u6E08\u307F\u9805\u76EE\u3092\u8868\u793A\u3057\u307E\u3059",
|
|
10515
|
+
workspace_directory_count: "\u4E00\u89A7 {{directory}} \u4EF6\u3001\u8AAD\u307F\u8FBC\u307F\u6E08\u307F {{loaded}} \u4EF6",
|
|
10516
|
+
workspace_toggle: "{{name}}\u3092\u6298\u308A\u305F\u305F\u3080\u30FB\u5C55\u958B\u3059\u308B",
|
|
10517
|
+
workspace_workspaces: "\u30B9\u30DA\u30FC\u30B9\u4E00\u89A7",
|
|
10518
|
+
workspace_uncategorized: "\u672A\u5206\u985E",
|
|
10519
|
+
workspace_loaded_items: "\u8AAD\u307F\u8FBC\u307F\u6E08\u307F\u9805\u76EE\u6570",
|
|
10520
|
+
workspace_new_dialog: "{{name}}\u3067\u65B0\u3057\u3044\u5BFE\u8A71",
|
|
10521
|
+
workspace_open: "\u30B9\u30DA\u30FC\u30B9\u3092\u958B\u304F\uFF1A{{name}}",
|
|
10522
|
+
workspace_other: "\u305D\u306E\u4ED6\u306E\u30B9\u30DA\u30FC\u30B9",
|
|
10523
|
+
workspace_unassociated: "\u672A\u95A2\u9023\u306E\u30B9\u30DA\u30FC\u30B9",
|
|
10524
|
+
workspace_unassociated_empty: "\u30B9\u30DA\u30FC\u30B9\u5916\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093",
|
|
8071
10525
|
// === 基本操作 ===
|
|
8072
10526
|
create: "\u30B9\u30DA\u30FC\u30B9\u3092\u4F5C\u6210",
|
|
8073
10527
|
name: "\u30B9\u30DA\u30FC\u30B9\u540D",
|
|
@@ -8104,14 +10558,10 @@ var space_locale_default = {
|
|
|
8104
10558
|
// === スペース選択 ===
|
|
8105
10559
|
default_space: "\u30C7\u30D5\u30A9\u30EB\u30C8\u30B9\u30DA\u30FC\u30B9",
|
|
8106
10560
|
select_space: "\u30B9\u30DA\u30FC\u30B9\u3092\u9078\u629E",
|
|
8107
|
-
no_spaces: "\u30B9\u30DA\u30FC\u30B9\u304C\u3042\u308A\u307E\u305B\u3093",
|
|
8108
10561
|
no_spaces_yet: "\u307E\u3060\u30B9\u30DA\u30FC\u30B9\u304C\u4F5C\u6210\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
|
|
8109
|
-
space_list_failed: "\u30B9\u30DA\u30FC\u30B9\u4E00\u89A7\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u30BF\u30C3\u30D7\u3057\u3066\u518D\u8A66\u884C",
|
|
8110
10562
|
space_list: "\u30B9\u30DA\u30FC\u30B9\u4E00\u89A7",
|
|
8111
10563
|
space_dropdown: "\u30B9\u30DA\u30FC\u30B9\u30E1\u30CB\u30E5\u30FC\u3092\u958B\u304F",
|
|
8112
10564
|
current_space: "\u73FE\u5728\u306E\u30B9\u30DA\u30FC\u30B9",
|
|
8113
|
-
switch_space: "\u30B9\u30DA\u30FC\u30B9\u3092\u5207\u308A\u66FF\u3048\u308B",
|
|
8114
|
-
offline_local_cache: "\u30AA\u30D5\u30E9\u30A4\u30F3 \xB7 \u30ED\u30FC\u30AB\u30EB\u30AD\u30E3\u30C3\u30B7\u30E5",
|
|
8115
10565
|
// === ナビゲーション関連 ===
|
|
8116
10566
|
home: "\u30DB\u30FC\u30E0",
|
|
8117
10567
|
back_to_home: "\u30DB\u30FC\u30E0\u306B\u623B\u308B",
|
|
@@ -8393,6 +10843,638 @@ var space_locale_default = {
|
|
|
8393
10843
|
newTable: "\u65B0\u3057\u3044\u30C6\u30FC\u30D6\u30EB"
|
|
8394
10844
|
}
|
|
8395
10845
|
}
|
|
10846
|
+
},
|
|
10847
|
+
de: {
|
|
10848
|
+
translation: {
|
|
10849
|
+
workspace_directory_unavailable: "Space-Verzeichnis nicht verf\xFCgbar; geladene Elemente werden angezeigt",
|
|
10850
|
+
workspace_directory_count: "Verzeichnis: {{directory}}; geladen: {{loaded}}",
|
|
10851
|
+
workspace_toggle: "{{name}} ein- oder ausklappen",
|
|
10852
|
+
workspace_workspaces: "Space-Arbeitsbereiche",
|
|
10853
|
+
workspace_uncategorized: "Nicht kategorisiert",
|
|
10854
|
+
workspace_loaded_items: "Geladene Elemente",
|
|
10855
|
+
workspace_new_dialog: "Neuer Dialog in {{name}}",
|
|
10856
|
+
workspace_open: "Space \xF6ffnen: {{name}}",
|
|
10857
|
+
workspace_other: "Andere Spaces",
|
|
10858
|
+
workspace_unassociated: "Nicht zugeordneter Space",
|
|
10859
|
+
workspace_unassociated_empty: "Noch keine Inhalte au\xDFerhalb von Spaces",
|
|
10860
|
+
create: "Space erstellen",
|
|
10861
|
+
name: "Space-Name",
|
|
10862
|
+
description: "Beschreibung",
|
|
10863
|
+
visibility: "Sichtbarkeit",
|
|
10864
|
+
private: "Privat",
|
|
10865
|
+
public: "\xD6ffentlich",
|
|
10866
|
+
loading: "Wird geladen...",
|
|
10867
|
+
cancel: "Abbrechen",
|
|
10868
|
+
delete: "L\xF6schen",
|
|
10869
|
+
save: "Speichern",
|
|
10870
|
+
edit: "Bearbeiten",
|
|
10871
|
+
clear: "Leeren",
|
|
10872
|
+
name_required: "Space-Name ist erforderlich",
|
|
10873
|
+
name_min_length: "Space-Name muss mindestens 2 Zeichen lang sein",
|
|
10874
|
+
name_max_length: "Space-Name darf 50 Zeichen nicht \xFCberschreiten",
|
|
10875
|
+
name_placeholder: "Space-Namen eingeben",
|
|
10876
|
+
description_placeholder: "Space-Beschreibung eingeben (optional)",
|
|
10877
|
+
description_max_length: "Beschreibung darf 200 Zeichen nicht \xFCberschreiten",
|
|
10878
|
+
description_too_long: "Beschreibung darf 500 Zeichen nicht \xFCberschreiten",
|
|
10879
|
+
create_new_space: "Neuer Space",
|
|
10880
|
+
create_space: "Space erstellen",
|
|
10881
|
+
create_success: "Space erfolgreich erstellt",
|
|
10882
|
+
create_error: "Fehler beim Erstellen des Space",
|
|
10883
|
+
creating: "Space wird erstellt...",
|
|
10884
|
+
pick_folder_failed: "Ordnerauswahl fehlgeschlagen",
|
|
10885
|
+
bound_folder: "Verkn\xFCpfter Ordner",
|
|
10886
|
+
bound_folder_hint: "Einen lokalen Ordner als Space-Quelle verkn\xFCpfen",
|
|
10887
|
+
choose_folder: "Ordner ausw\xE4hlen",
|
|
10888
|
+
change_folder: "\xC4ndern",
|
|
10889
|
+
folder_as_name: "Ordnername als Space-Name verwendet",
|
|
10890
|
+
default_space: "Standard-Space",
|
|
10891
|
+
select_space: "Space ausw\xE4hlen",
|
|
10892
|
+
no_spaces_yet: "Noch keine Spaces erstellt",
|
|
10893
|
+
space_list: "Space-Liste",
|
|
10894
|
+
space_dropdown: "Space-Men\xFC \xF6ffnen",
|
|
10895
|
+
current_space: "Aktueller Space",
|
|
10896
|
+
home: "Startseite",
|
|
10897
|
+
back_to_home: "Zur\xFCck zur Startseite",
|
|
10898
|
+
space_settings: "Space-Einstellungen",
|
|
10899
|
+
unsaved_changes: "Sie haben ungespeicherte \xC4nderungen",
|
|
10900
|
+
unsaved_warning: "Sie haben ungespeicherte \xC4nderungen. M\xF6chten Sie diese vor dem Verlassen speichern?",
|
|
10901
|
+
save_before_leave: "\xC4nderungen speichern",
|
|
10902
|
+
discard_changes: "\xC4nderungen verwerfen",
|
|
10903
|
+
load_error_title: "Fehler beim Laden der Space-Informationen",
|
|
10904
|
+
no_space_data: "Keine Space-Daten gefunden",
|
|
10905
|
+
try_later: "Bitte versuchen Sie es sp\xE4ter erneut",
|
|
10906
|
+
basic_info: "Grundlegende Informationen",
|
|
10907
|
+
manage_basic_info: "Space-Namen, Beschreibung und weitere Basisdaten verwalten",
|
|
10908
|
+
space_details: "Space-Details",
|
|
10909
|
+
view_space_details: "Grundlegende Informationen und Metadaten dieses Space anzeigen",
|
|
10910
|
+
space_id: "Space-ID",
|
|
10911
|
+
created_at: "Erstellt am",
|
|
10912
|
+
updated_at: "Aktualisiert am",
|
|
10913
|
+
member_count: "Mitgliederanzahl",
|
|
10914
|
+
people: "Personen",
|
|
10915
|
+
person: "Person",
|
|
10916
|
+
access_permission: "Zugriffsberechtigungen",
|
|
10917
|
+
manage_access: "Space-Sichtbarkeit und Zugriffseinstellungen verwalten",
|
|
10918
|
+
select_visibility: "Sichtbarkeit ausw\xE4hlen",
|
|
10919
|
+
private_description: "Nur eingeladene Mitglieder k\xF6nnen diesen Space anzeigen und darauf zugreifen",
|
|
10920
|
+
public_description: "Jeder kann diesen Space anzeigen und darauf zugreifen",
|
|
10921
|
+
permission_updated: "Berechtigungen aktualisiert",
|
|
10922
|
+
save_changes: "\xC4nderungen speichern",
|
|
10923
|
+
save_success: "Erfolgreich gespeichert",
|
|
10924
|
+
set_as_default: "Als Standard-Space festlegen",
|
|
10925
|
+
current_default: "Aktueller Standard-Space",
|
|
10926
|
+
cancel_changes: "\xC4nderungen verwerfen",
|
|
10927
|
+
set_default_success: "Als Standard-Space festgelegt",
|
|
10928
|
+
set_default_error: "Fehler beim Festlegen als Standard-Space",
|
|
10929
|
+
clear_default_success: "Standard-Space gel\xF6scht",
|
|
10930
|
+
default_space_description: "Diesen Space beim Starten der App als Standard-Arbeitsbereich festlegen.",
|
|
10931
|
+
this_space: "dieser Space",
|
|
10932
|
+
delete_space: "Space l\xF6schen",
|
|
10933
|
+
delete_confirm_message: "M\xF6chten Sie diesen Space wirklich l\xF6schen? Diese Aktion kann nicht r\xFCckg\xE4ngig gemacht werden, und alle Dateien und Daten im Space werden dauerhaft gel\xF6scht.",
|
|
10934
|
+
remove_space_membership_title: "Space-Mitgliedschaft entfernen",
|
|
10935
|
+
remove_space_membership_action: "Ung\xFCltige Mitgliedschaft entfernen",
|
|
10936
|
+
remove_space_membership_confirm_message: "Space-Daten fehlen. Dadurch wird nur Ihr Mitgliedschaftseintrag f\xFCr diesen Space entfernt, sodass er nicht mehr in der Auswahl erscheint. Diese Aktion kann nicht r\xFCckg\xE4ngig gemacht werden.",
|
|
10937
|
+
remove_space_membership_success: "Mitgliedschaftseintrag entfernt",
|
|
10938
|
+
remove_space_membership_error: "Fehler beim Entfernen des Mitgliedschaftseintrags",
|
|
10939
|
+
delete_description: "Diese Aktion l\xF6scht alle Dateien, Seiten und Daten im Space dauerhaft und kann nicht r\xFCckg\xE4ngig gemacht werden.",
|
|
10940
|
+
delete_warning: "Warnung: Dieser Space hat {{count}} Mitglieder. Bitte stellen Sie sicher, dass alle Mitglieder vor dem L\xF6schen benachrichtigt werden.",
|
|
10941
|
+
delete_input_placeholder: "Geben Sie zur Best\xE4tigung den Space-Namen ein",
|
|
10942
|
+
delete_confirmation_required: "Bitte geben Sie den Space-Namen ein, um das L\xF6schen zu best\xE4tigen",
|
|
10943
|
+
delete_success: "Space gel\xF6scht",
|
|
10944
|
+
delete_error: "Fehler beim L\xF6schen des Space",
|
|
10945
|
+
deleting: "Space wird gel\xF6scht...",
|
|
10946
|
+
update_success: "Space erfolgreich aktualisiert",
|
|
10947
|
+
update_error: "Fehler beim Aktualisieren des Space",
|
|
10948
|
+
updating: "Space wird aktualisiert...",
|
|
10949
|
+
empty_state_title: "Noch keine Spaces",
|
|
10950
|
+
empty_state_description: "Erstellen Sie Ihren ersten Space, um loszulegen",
|
|
10951
|
+
get_started: "Erste Schritte",
|
|
10952
|
+
uncategorized: "Nicht kategorisiert",
|
|
10953
|
+
dragToCategorize: "Elemente hierher ziehen, um sie zu kategorisieren",
|
|
10954
|
+
itemsDeleted: "{{count}} Element(e) gel\xF6scht",
|
|
10955
|
+
createPageFailed: "Fehler beim Erstellen der Seite",
|
|
10956
|
+
categoryCreated: "Kategorie '{{name}}' erfolgreich erstellt",
|
|
10957
|
+
emptyTitle: "Titel darf nicht leer sein",
|
|
10958
|
+
emptyHint: "Titel darf nicht leer sein",
|
|
10959
|
+
createFirstPage: "Erstellen Sie Ihre erste Seite",
|
|
10960
|
+
selectedItemsCount: "{{count}} Element(e) ausgew\xE4hlt",
|
|
10961
|
+
deselectAll: "Auswahl aufheben",
|
|
10962
|
+
selectAll: "Alle ausw\xE4hlen",
|
|
10963
|
+
deleteSelected: "Ausgew\xE4hlte l\xF6schen",
|
|
10964
|
+
cancelSelectionMode: "Auswahlmodus beenden",
|
|
10965
|
+
content: "Inhalt",
|
|
10966
|
+
newPage: "Neue Seite",
|
|
10967
|
+
newCategory: "Neue Kategorie",
|
|
10968
|
+
batchSelect: "Stapelauswahl",
|
|
10969
|
+
expandAll: "Alle ausklappen",
|
|
10970
|
+
collapseAll: "Alle einklappen",
|
|
10971
|
+
contentMoved: "Inhalt verschoben",
|
|
10972
|
+
movedToDesc: "Nach {{space}} verschoben. Wechseln, um fortzufahren?",
|
|
10973
|
+
moveSwitchPrompt: "Inhalt wurde erfolgreich verschoben",
|
|
10974
|
+
switchToSpaceAction: "Zu Space wechseln",
|
|
10975
|
+
switchSpaceFailed: "Fehler beim Wechseln des Space",
|
|
10976
|
+
noOtherSpaces: "Keine anderen Spaces verf\xFCgbar",
|
|
10977
|
+
unnamedSpace: "Unbenannter Space",
|
|
10978
|
+
moveFailed: "Verschieben fehlgeschlagen: {{message}}",
|
|
10979
|
+
unknownError: "Ein unbekannter Fehler ist aufgetreten",
|
|
10980
|
+
titlePlaceholder: "Titel eingeben...",
|
|
10981
|
+
moreActions: "Weitere Aktionen",
|
|
10982
|
+
editTitle: "Titel bearbeiten",
|
|
10983
|
+
pin: "Anheften",
|
|
10984
|
+
unpin: "L\xF6sen",
|
|
10985
|
+
favorite: "Favorisieren",
|
|
10986
|
+
unfavorite: "Aus Favoriten entfernen",
|
|
10987
|
+
favoriteDetailMissingHint: "Detaildaten fehlen",
|
|
10988
|
+
quickAddToRail: "Zur Schnellleiste hinzuf\xFCgen",
|
|
10989
|
+
quickRemoveFromRail: "Aus Schnellleiste entfernen",
|
|
10990
|
+
quickMoveRailUp: "Nach oben verschieben",
|
|
10991
|
+
quickMoveRailDown: "Nach unten verschieben",
|
|
10992
|
+
pinUpdated: "Anheftungsstatus aktualisiert",
|
|
10993
|
+
pinUpdateFailed: "Fehler beim Aktualisieren des Anheftungsstatus",
|
|
10994
|
+
moveToSpace: "In Space verschieben",
|
|
10995
|
+
add_content: "Inhalt hinzuf\xFCgen",
|
|
10996
|
+
create_space_desc: "Einen neuen Space f\xFCr Ihr Team oder Ihre Projekte erstellen",
|
|
10997
|
+
create_new_category: "Neue Kategorie erstellen",
|
|
10998
|
+
create_category_desc: "Eine neue Kategorie zur Organisation Ihrer Inhalte erstellen",
|
|
10999
|
+
select_space_first: "Bitte w\xE4hlen Sie zuerst einen Space aus",
|
|
11000
|
+
addCategorySuccess: "Kategorie erfolgreich hinzugef\xFCgt",
|
|
11001
|
+
addCategoryFailed: "Fehler beim Hinzuf\xFCgen der Kategorie",
|
|
11002
|
+
joinConversation: "Unterhaltung beitreten",
|
|
11003
|
+
addedToConversation: "Zur Unterhaltung hinzugef\xFCgt",
|
|
11004
|
+
all: "Alle",
|
|
11005
|
+
dialogs: "Dialoge",
|
|
11006
|
+
pages: "Seiten",
|
|
11007
|
+
images: "Bilder",
|
|
11008
|
+
documentAttachments: "Dokumentenanh\xE4nge",
|
|
11009
|
+
videos: "Videos",
|
|
11010
|
+
audios: "Audiodateien",
|
|
11011
|
+
files: "Sonstige Anh\xE4nge",
|
|
11012
|
+
filesHub: "Dateien-Hub",
|
|
11013
|
+
file: "Dateien",
|
|
11014
|
+
attachment: "Anhang",
|
|
11015
|
+
otherAttachments: "Sonstige Anh\xE4nge",
|
|
11016
|
+
documentAttachment: "Dokumentenanhang",
|
|
11017
|
+
videoAttachment: "Videoanhang",
|
|
11018
|
+
audioAttachment: "Audioanhang",
|
|
11019
|
+
tables: "Tabellen",
|
|
11020
|
+
apps: "Apps",
|
|
11021
|
+
agents: "Agents",
|
|
11022
|
+
scheduled: "Geplant",
|
|
11023
|
+
no_content_in_tab: "Noch keine {{type}} in diesem Space vorhanden.",
|
|
11024
|
+
no_attachments_in_space: "Noch keine Anh\xE4nge in diesem Space vorhanden.",
|
|
11025
|
+
no_attachments_desc: "Inhalte hochladen oder generieren, um sie hier zu organisieren.",
|
|
11026
|
+
no_scheduled_in_space: "Noch keine geplanten Aufgaben in diesem Space vorhanden.",
|
|
11027
|
+
no_scheduled_desc: "Hier werden Ihre geplanten Automatisierungsaufgaben und der Ausf\xFChrungsverlauf angezeigt. Weisen Sie Ihre KI an oder richten Sie Workflows ein, die automatisch zu festgelegten Zeiten ausgef\xFChrt werden.",
|
|
11028
|
+
no_images_in_space: "Noch keine Bilder in diesem Space vorhanden.",
|
|
11029
|
+
no_images_desc: "Sie k\xF6nnen Bilder hochladen oder in KI-Unterhaltungen generieren.",
|
|
11030
|
+
no_documents_in_space: "Noch keine Dokumentenanh\xE4nge in diesem Space vorhanden.",
|
|
11031
|
+
no_documents_desc: "Sie k\xF6nnen PDFs, Markdown, Word-Dokumente usw. als Referenz und zur Analyse hochladen.",
|
|
11032
|
+
no_videos_in_space: "Noch keine Videos in diesem Space vorhanden.",
|
|
11033
|
+
no_videos_desc: "Sie k\xF6nnen Videodateien hochladen, um sie als Kontext zu referenzieren.",
|
|
11034
|
+
no_audios_in_space: "Noch keine Audiodateien in diesem Space vorhanden.",
|
|
11035
|
+
no_audios_desc: "Sie k\xF6nnen Aufnahmen oder Audiospuren zur Transkription oder Verarbeitung hochladen.",
|
|
11036
|
+
no_tables_in_space: "Noch keine Tabellen in diesem Space vorhanden.",
|
|
11037
|
+
no_tables_desc: "Organisieren und analysieren Sie Ihre Daten in strukturierten Ansichten mit direkter Unterst\xFCtzung f\xFCr KI-Verarbeitung.",
|
|
11038
|
+
no_files_in_space: "Noch keine sonstigen Anh\xE4nge in diesem Space vorhanden.",
|
|
11039
|
+
no_files_desc: "Hier werden sonstige Dateien angezeigt, die nicht als Bilder, Dokumente oder Medien kategorisiert sind.",
|
|
11040
|
+
contentManagement: "Inhaltsverwaltung",
|
|
11041
|
+
deleteFailed: "L\xF6schen fehlgeschlagen",
|
|
11042
|
+
deleteMovedToTrash: '"{{title}}" in den Papierkorb verschoben',
|
|
11043
|
+
deleteMovedToTrashBatch_one: "1 Element in den Papierkorb verschoben",
|
|
11044
|
+
deleteMovedToTrashBatch_other: "{{count}} Elemente in den Papierkorb verschoben",
|
|
11045
|
+
deleteMovedToTrashBatch: "{{count}} Elemente in den Papierkorb verschoben",
|
|
11046
|
+
batchDeleteCancelled: "Stapell\xF6schung abgebrochen",
|
|
11047
|
+
uploadSuccess: "Upload abgeschlossen",
|
|
11048
|
+
uploadFailed: "Upload fehlgeschlagen",
|
|
11049
|
+
uploadPartial: "{{succeeded}} hochgeladen, {{failed}} fehlgeschlagen",
|
|
11050
|
+
retry: "Wiederholen",
|
|
11051
|
+
uploadFile: "Datei hochladen",
|
|
11052
|
+
uploading: "Wird hochgeladen...",
|
|
11053
|
+
selectionCount: "{{count}} ausgew\xE4hlt",
|
|
11054
|
+
gridView: "Rasteransicht",
|
|
11055
|
+
listView: "Listenansicht",
|
|
11056
|
+
confirmDelete: "L\xF6schen best\xE4tigen",
|
|
11057
|
+
confirmDeleteMultiple: "M\xF6chten Sie die ausgew\xE4hlten {{count}} Elemente wirklich l\xF6schen? Dies kann nicht r\xFCckg\xE4ngig gemacht werden.",
|
|
11058
|
+
confirmDeleteSingle: "M\xF6chten Sie dieses Element wirklich l\xF6schen? Dies kann nicht r\xFCckg\xE4ngig gemacht werden.",
|
|
11059
|
+
unnamed: "Unbenannt",
|
|
11060
|
+
preview: "Vorschau",
|
|
11061
|
+
open: "\xD6ffnen",
|
|
11062
|
+
download: "Herunterladen",
|
|
11063
|
+
clearFilters: "Filter zur\xFCcksetzen",
|
|
11064
|
+
totalCount: "{{count}} Elemente",
|
|
11065
|
+
filteredCount: "{{count}} / {{total}} Elemente",
|
|
11066
|
+
backToTop: "Nach oben",
|
|
11067
|
+
latestContent: "Neueste Inhalte",
|
|
11068
|
+
viewTemplate: "Vorlage anzeigen",
|
|
11069
|
+
spaceAgents: "Space-Agents",
|
|
11070
|
+
no_content_desc: "Noch keine Inhalte in diesem Space vorhanden.",
|
|
11071
|
+
no_category_content: "Keine Inhalte in dieser Kategorie",
|
|
11072
|
+
spaceData: "Space-Daten",
|
|
11073
|
+
spaceAgentSection: "Space-Agents",
|
|
11074
|
+
viewMore: "Mehr anzeigen",
|
|
11075
|
+
noAgentInSpace: "Keine Agents im Space vorhanden",
|
|
11076
|
+
noAgentInSpaceTitle: "Noch keine Agents",
|
|
11077
|
+
noAgentInSpaceDesc: "F\xFCgen Sie diesem Space Agents hinzu, um mit der Zusammenarbeit zu beginnen.",
|
|
11078
|
+
createAgent: "Agent erstellen",
|
|
11079
|
+
createAgentHint: "Einen dedizierten Agent f\xFCr diesen Space erstellen",
|
|
11080
|
+
categoryNamePlaceholder: "Kategorienamen eingeben",
|
|
11081
|
+
expand: "Ausklappen",
|
|
11082
|
+
collapse: "Einklappen",
|
|
11083
|
+
selectCategory: "Kategorie {{name}} ausw\xE4hlen",
|
|
11084
|
+
dragToReorder: "Zum Neuanordnen ziehen",
|
|
11085
|
+
editName: "Namen bearbeiten",
|
|
11086
|
+
deleteCategoryConfirm: "M\xF6chten Sie die Kategorie '{{name}}' wirklich l\xF6schen? Diese Aktion kann nicht r\xFCckg\xE4ngig gemacht werden.",
|
|
11087
|
+
deleteCategory: "Kategorie l\xF6schen",
|
|
11088
|
+
search: "Suchen",
|
|
11089
|
+
search_no_results: "Keine passenden Inhalte gefunden",
|
|
11090
|
+
please_login: "Bitte melden Sie sich an, um Inhalte anzuzeigen",
|
|
11091
|
+
search_placeholder: "Inhalte suchen...",
|
|
11092
|
+
allView: {
|
|
11093
|
+
recent: "Zuletzt verwendet",
|
|
11094
|
+
work: "Arbeit",
|
|
11095
|
+
projects: "Projekte",
|
|
11096
|
+
favorites: "Favoriten",
|
|
11097
|
+
shares: "Freigaben",
|
|
11098
|
+
expanded: "Erweitert",
|
|
11099
|
+
back: "Zur\xFCck",
|
|
11100
|
+
viewAll: "Alle anzeigen",
|
|
11101
|
+
noFavorites: "Noch keine Favoriten vorhanden",
|
|
11102
|
+
noShares: "Noch keine freigegebenen Inhalte vorhanden",
|
|
11103
|
+
loadSharesError: "Fehler beim Laden der Freigaben"
|
|
11104
|
+
},
|
|
11105
|
+
delete_space_options_title: "Optionen zum L\xF6schen des Space",
|
|
11106
|
+
delete_space_options_desc: "W\xE4hlen Sie aus, wie mit den Inhalten dieses Space verfahren werden soll",
|
|
11107
|
+
delete_space_move_to_all: "Inhalte nach \u201EAlle\u201C verschieben",
|
|
11108
|
+
delete_space_move_to_all_desc: "Beh\xE4lt Ihre eigenen Inhalte bei und verschiebt sie in die Liste \u201EAlle\u201C",
|
|
11109
|
+
delete_space_move_to_all_success: "Inhalte erfolgreich nach \u201EAlle\u201C verschoben",
|
|
11110
|
+
delete_space_delete_owned_success: "Eigene Inhalte erfolgreich gel\xF6scht",
|
|
11111
|
+
delete_space_with_owned: "Eigene Inhalte ebenfalls l\xF6schen",
|
|
11112
|
+
delete_space_with_owned_desc: "L\xF6scht den Space und alle darin erstellten Inhalte dauerhaft",
|
|
11113
|
+
delete_space_cancel_desc: "Vorgang abgebrochen, es wurden keine Daten gel\xF6scht",
|
|
11114
|
+
manage: "Verwalten",
|
|
11115
|
+
finish: "Fertigstellen",
|
|
11116
|
+
ocrAddToChat: "Zu Dialog hinzuf\xFCgen",
|
|
11117
|
+
newTable: "Neue Tabelle",
|
|
11118
|
+
syncLocalAgents: "Lokale Agents synchronisieren",
|
|
11119
|
+
syncLocalAgentsSectionTitle: "Lokale Agents synchronisieren",
|
|
11120
|
+
syncLocalAgentsSectionDesc: "Laden Sie die Konfiguration der lokalen Agents dieses Ger\xE4ts in das Konto hoch, damit sie auf anderen Ger\xE4ten verwendet werden k\xF6nnen",
|
|
11121
|
+
syncLocalAgentsTitle: "Lokale Agents mit dem Konto synchronisieren",
|
|
11122
|
+
syncLocalAgentsConfirm: "Synchronisierung best\xE4tigen",
|
|
11123
|
+
syncLocalAgentsConfirmLead: "{{count}} lokale Agent-Referenz(en) gefunden. Mit dem aktuellen Konto synchronisieren und diesen Space-Katalog umschreiben?",
|
|
11124
|
+
syncLocalAgentsFactLocalRemains: "Die lokalen Agents verbleiben auf diesem Ger\xE4t.",
|
|
11125
|
+
syncLocalAgentsFactSnapshot: "Es wird lediglich ein Konfigurations-Snapshot der Agents hochgeladen.",
|
|
11126
|
+
syncLocalAgentsFactCatalogRewrite: "Verweise in diesem Space werden auf den Snapshot des Kontos umgestellt.",
|
|
11127
|
+
syncLocalAgentsFactNoDialogs: "Dialoge, Nachrichten und Anh\xE4nge werden nicht hochgeladen.",
|
|
11128
|
+
syncLocalAgentsFactNoSecrets: "Lokale API-Schl\xFCssel und Tokens werden nicht hochgeladen.",
|
|
11129
|
+
syncLocalAgentsFactNoContinuous: "Dies ist ein einmaliger Vorgang ohne fortlaufende Synchronisierung.",
|
|
11130
|
+
syncLocalAgentsSuccess: "{{count}} lokale Agent-Referenz(en) erfolgreich auf Konto-Snapshots umgestellt (lokale Agents beibehalten)",
|
|
11131
|
+
syncLocalAgentsNoop: "In diesem Space sind keine lokalen Agents vorhanden, die synchronisiert werden m\xFCssen (kein Upload)",
|
|
11132
|
+
syncLocalAgentsError: "Synchronisierung fehlgeschlagen. Bitte versuchen Sie es sp\xE4ter erneut.",
|
|
11133
|
+
syncLocalAgentsBlockedTitle: "Lokale Agents k\xF6nnen nicht synchronisiert werden",
|
|
11134
|
+
syncLocalAgentsBlockedLead: "Bei der Vorabpr\xFCfung wurden nicht unterst\xFCtzte oder fehlende lokale Inhalte festgestellt, der Upload wurde blockiert. Bitte beheben Sie folgende Punkte und versuchen Sie es erneut.",
|
|
11135
|
+
syncLocalAgentsBlockedOk: "Verstanden",
|
|
11136
|
+
syncLocalAgentsBlockedReason_unsupported_local_content: "Diese Synchronisierung enth\xE4lt nicht unterst\xFCtzte lokale Inhaltstypen.",
|
|
11137
|
+
syncLocalAgentsBlockedReason_missing_or_tombstoned_record: "Einige referenzierte Datens\xE4tze fehlen oder wurden gel\xF6scht.",
|
|
11138
|
+
syncLocalAgentsBlockedReason_authoritative_type_mismatch: "Der Katalogtyp stimmt nicht mit dem tats\xE4chlichen Datensatztyp \xFCberein.",
|
|
11139
|
+
syncLocalAgentsType_dialog: "Dialog",
|
|
11140
|
+
syncLocalAgentsType_page: "Seite",
|
|
11141
|
+
syncLocalAgentsType_doc: "Dokument",
|
|
11142
|
+
syncLocalAgentsType_table: "Tabelle",
|
|
11143
|
+
syncLocalAgentsType_file: "Datei",
|
|
11144
|
+
syncLocalAgentsType_image: "Bild",
|
|
11145
|
+
syncLocalAgentsType_app: "App",
|
|
11146
|
+
syncLocalAgentsType_task: "Aufgabe",
|
|
11147
|
+
syncLocalAgentsType_unknown: "Unbekannt",
|
|
11148
|
+
myShares: {
|
|
11149
|
+
title: "Meine Freigaben"
|
|
11150
|
+
},
|
|
11151
|
+
agent: {
|
|
11152
|
+
create_agent_manual: "Agent manuell erstellen"
|
|
11153
|
+
},
|
|
11154
|
+
createFailed: "Fehler beim Erstellen der Tabelle",
|
|
11155
|
+
filter_by_type: "Nach Typ filtern",
|
|
11156
|
+
no_items_found: "Keine Inhalte dieses Typs gefunden",
|
|
11157
|
+
userNotFound: "Benutzerinformationen nicht gefunden, Tabelle kann nicht erstellt werden",
|
|
11158
|
+
table: {
|
|
11159
|
+
newTable: "Neue Tabelle"
|
|
11160
|
+
}
|
|
11161
|
+
}
|
|
11162
|
+
},
|
|
11163
|
+
es: {
|
|
11164
|
+
translation: {
|
|
11165
|
+
workspace_directory_unavailable: "Directorio del espacio no disponible; mostrando elementos cargados",
|
|
11166
|
+
workspace_directory_count: "Directorio: {{directory}}; cargados: {{loaded}}",
|
|
11167
|
+
workspace_toggle: "Contraer o expandir {{name}}",
|
|
11168
|
+
workspace_workspaces: "Espacios de trabajo",
|
|
11169
|
+
workspace_uncategorized: "Sin categorizar",
|
|
11170
|
+
workspace_loaded_items: "Elementos cargados",
|
|
11171
|
+
workspace_new_dialog: "Nuevo di\xE1logo en {{name}}",
|
|
11172
|
+
workspace_open: "Abrir espacio: {{name}}",
|
|
11173
|
+
workspace_other: "Otros espacios",
|
|
11174
|
+
workspace_unassociated: "Espacio no asociado",
|
|
11175
|
+
workspace_unassociated_empty: "A\xFAn no hay contenido fuera de los espacios",
|
|
11176
|
+
create: "Crear espacio",
|
|
11177
|
+
name: "Nombre del espacio",
|
|
11178
|
+
description: "Descripci\xF3n",
|
|
11179
|
+
visibility: "Visibilidad",
|
|
11180
|
+
private: "Privado",
|
|
11181
|
+
public: "P\xFAblico",
|
|
11182
|
+
loading: "Cargando...",
|
|
11183
|
+
cancel: "Cancelar",
|
|
11184
|
+
delete: "Eliminar",
|
|
11185
|
+
save: "Guardar",
|
|
11186
|
+
edit: "Editar",
|
|
11187
|
+
clear: "Limpiar",
|
|
11188
|
+
name_required: "El nombre del espacio es obligatorio",
|
|
11189
|
+
name_min_length: "El nombre del espacio debe tener al menos 2 caracteres",
|
|
11190
|
+
name_max_length: "El nombre del espacio no puede superar los 50 caracteres",
|
|
11191
|
+
name_placeholder: "Introduce el nombre del espacio",
|
|
11192
|
+
description_placeholder: "Introduce la descripci\xF3n del espacio (opcional)",
|
|
11193
|
+
description_max_length: "La descripci\xF3n no puede superar los 200 caracteres",
|
|
11194
|
+
description_too_long: "La descripci\xF3n no puede superar los 500 caracteres",
|
|
11195
|
+
create_new_space: "Nuevo espacio",
|
|
11196
|
+
create_space: "Crear espacio",
|
|
11197
|
+
create_success: "Espacio creado correctamente",
|
|
11198
|
+
create_error: "Error al crear el espacio",
|
|
11199
|
+
creating: "Creando espacio...",
|
|
11200
|
+
pick_folder_failed: "Error al seleccionar la carpeta",
|
|
11201
|
+
bound_folder: "Carpeta vinculada",
|
|
11202
|
+
bound_folder_hint: "Vincular una carpeta local como origen del espacio",
|
|
11203
|
+
choose_folder: "Elegir carpeta",
|
|
11204
|
+
change_folder: "Cambiar",
|
|
11205
|
+
folder_as_name: "Nombre de la carpeta usado como nombre del espacio",
|
|
11206
|
+
default_space: "Espacio predeterminado",
|
|
11207
|
+
select_space: "Seleccionar espacio",
|
|
11208
|
+
no_spaces_yet: "A\xFAn no se han creado espacios",
|
|
11209
|
+
space_list: "Lista de espacios",
|
|
11210
|
+
space_dropdown: "Abrir men\xFA de espacios",
|
|
11211
|
+
current_space: "Espacio actual",
|
|
11212
|
+
home: "Inicio",
|
|
11213
|
+
back_to_home: "Volver al inicio",
|
|
11214
|
+
space_settings: "Configuraci\xF3n del espacio",
|
|
11215
|
+
unsaved_changes: "Tienes cambios sin guardar",
|
|
11216
|
+
unsaved_warning: "Tienes cambios sin guardar. \xBFDeseas guardarlos antes de salir?",
|
|
11217
|
+
save_before_leave: "Guardar cambios",
|
|
11218
|
+
discard_changes: "Descartar cambios",
|
|
11219
|
+
load_error_title: "Error al cargar la informaci\xF3n del espacio",
|
|
11220
|
+
no_space_data: "No se encontraron datos del espacio",
|
|
11221
|
+
try_later: "Por favor, int\xE9ntalo de nuevo m\xE1s tarde",
|
|
11222
|
+
basic_info: "Informaci\xF3n b\xE1sica",
|
|
11223
|
+
manage_basic_info: "Gestionar el nombre, la descripci\xF3n y otros datos b\xE1sicos del espacio",
|
|
11224
|
+
space_details: "Detalles del espacio",
|
|
11225
|
+
view_space_details: "Ver informaci\xF3n b\xE1sica y metadatos de este espacio",
|
|
11226
|
+
space_id: "ID del espacio",
|
|
11227
|
+
created_at: "Fecha de creaci\xF3n",
|
|
11228
|
+
updated_at: "Fecha de actualizaci\xF3n",
|
|
11229
|
+
member_count: "N\xFAmero de miembros",
|
|
11230
|
+
people: "personas",
|
|
11231
|
+
person: "persona",
|
|
11232
|
+
access_permission: "Permisos de acceso",
|
|
11233
|
+
manage_access: "Gestionar la visibilidad y los permisos de acceso del espacio",
|
|
11234
|
+
select_visibility: "Seleccionar visibilidad",
|
|
11235
|
+
private_description: "Solo los miembros invitados pueden ver y acceder a este espacio",
|
|
11236
|
+
public_description: "Cualquiera puede ver y acceder a este espacio",
|
|
11237
|
+
permission_updated: "Permisos actualizados",
|
|
11238
|
+
save_changes: "Guardar cambios",
|
|
11239
|
+
save_success: "Guardado correctamente",
|
|
11240
|
+
set_as_default: "Establecer como espacio predeterminado",
|
|
11241
|
+
current_default: "Espacio predeterminado actual",
|
|
11242
|
+
cancel_changes: "Descartar cambios",
|
|
11243
|
+
set_default_success: "Establecido como espacio predeterminado",
|
|
11244
|
+
set_default_error: "Error al establecer como espacio predeterminado",
|
|
11245
|
+
clear_default_success: "Espacio predeterminado borrado",
|
|
11246
|
+
default_space_description: "Establecer este espacio como tu \xE1rea de trabajo predeterminada al iniciar la aplicaci\xF3n.",
|
|
11247
|
+
this_space: "este espacio",
|
|
11248
|
+
delete_space: "Eliminar espacio",
|
|
11249
|
+
delete_confirm_message: "\xBFEst\xE1s seguro de que deseas eliminar este espacio? Esta acci\xF3n no se puede deshacer y todos los archivos y datos del espacio se eliminar\xE1n de forma permanente.",
|
|
11250
|
+
remove_space_membership_title: "Eliminar membres\xEDa del espacio",
|
|
11251
|
+
remove_space_membership_action: "Eliminar membres\xEDa rota",
|
|
11252
|
+
remove_space_membership_confirm_message: "Faltan los datos del espacio. Esto solo eliminar\xE1 tu registro de membres\xEDa de este espacio para que ya no aparezca en el selector. Esta acci\xF3n no se puede deshacer.",
|
|
11253
|
+
remove_space_membership_success: "Registro de membres\xEDa eliminado",
|
|
11254
|
+
remove_space_membership_error: "Error al eliminar el registro de membres\xEDa",
|
|
11255
|
+
delete_description: "Esta acci\xF3n eliminar\xE1 de forma permanente todos los archivos, p\xE1ginas y datos del espacio, y no se podr\xE1 recuperar.",
|
|
11256
|
+
delete_warning: "Advertencia: este espacio tiene {{count}} miembros. Aseg\xFArate de notificar a todos los miembros antes de eliminarlo.",
|
|
11257
|
+
delete_input_placeholder: "Introduce el nombre del espacio para confirmar",
|
|
11258
|
+
delete_confirmation_required: "Introduce el nombre del espacio para confirmar la eliminaci\xF3n",
|
|
11259
|
+
delete_success: "Espacio eliminado",
|
|
11260
|
+
delete_error: "Error al eliminar el espacio",
|
|
11261
|
+
deleting: "Eliminando espacio...",
|
|
11262
|
+
update_success: "Espacio actualizado correctamente",
|
|
11263
|
+
update_error: "Error al actualizar el espacio",
|
|
11264
|
+
updating: "Actualizando espacio...",
|
|
11265
|
+
empty_state_title: "A\xFAn no hay espacios",
|
|
11266
|
+
empty_state_description: "Crea tu primer espacio para comenzar",
|
|
11267
|
+
get_started: "Primeros pasos",
|
|
11268
|
+
uncategorized: "Sin categorizar",
|
|
11269
|
+
dragToCategorize: "Arrastra elementos aqu\xED para categorizarlos",
|
|
11270
|
+
itemsDeleted: "Se ha(n) eliminado {{count}} elemento(s)",
|
|
11271
|
+
createPageFailed: "Error al crear la p\xE1gina",
|
|
11272
|
+
categoryCreated: "Categor\xEDa '{{name}}' creada correctamente",
|
|
11273
|
+
emptyTitle: "El t\xEDtulo no puede estar vac\xEDo",
|
|
11274
|
+
emptyHint: "El t\xEDtulo no puede estar vac\xEDo",
|
|
11275
|
+
createFirstPage: "Crea tu primera p\xE1gina",
|
|
11276
|
+
selectedItemsCount: "{{count}} elemento(s) seleccionado(s)",
|
|
11277
|
+
deselectAll: "Deseleccionar todo",
|
|
11278
|
+
selectAll: "Seleccionar todo",
|
|
11279
|
+
deleteSelected: "Eliminar seleccionados",
|
|
11280
|
+
cancelSelectionMode: "Cancelar modo de selecci\xF3n",
|
|
11281
|
+
content: "Contenido",
|
|
11282
|
+
newPage: "Nueva p\xE1gina",
|
|
11283
|
+
newCategory: "Nueva categor\xEDa",
|
|
11284
|
+
batchSelect: "Selecci\xF3n por lotes",
|
|
11285
|
+
expandAll: "Expandir todo",
|
|
11286
|
+
collapseAll: "Contraer todo",
|
|
11287
|
+
contentMoved: "Contenido movido",
|
|
11288
|
+
movedToDesc: "Movido a {{space}}. \xBFCambiar para continuar?",
|
|
11289
|
+
moveSwitchPrompt: "El contenido se ha movido correctamente",
|
|
11290
|
+
switchToSpaceAction: "Cambiar de espacio",
|
|
11291
|
+
switchSpaceFailed: "Error al cambiar de espacio",
|
|
11292
|
+
noOtherSpaces: "No hay otros espacios disponibles",
|
|
11293
|
+
unnamedSpace: "Espacio sin nombre",
|
|
11294
|
+
moveFailed: "Error al mover: {{message}}",
|
|
11295
|
+
unknownError: "Ha ocurrido un error desconocido",
|
|
11296
|
+
titlePlaceholder: "Introduce un t\xEDtulo...",
|
|
11297
|
+
moreActions: "M\xE1s acciones",
|
|
11298
|
+
editTitle: "Editar t\xEDtulo",
|
|
11299
|
+
pin: "Fijar",
|
|
11300
|
+
unpin: "Desfijar",
|
|
11301
|
+
favorite: "Favorito",
|
|
11302
|
+
unfavorite: "Quitar de favoritos",
|
|
11303
|
+
favoriteDetailMissingHint: "Faltan los datos detallados",
|
|
11304
|
+
quickAddToRail: "A\xF1adir a la barra r\xE1pida",
|
|
11305
|
+
quickRemoveFromRail: "Quitar de la barra r\xE1pida",
|
|
11306
|
+
quickMoveRailUp: "Mover hacia arriba",
|
|
11307
|
+
quickMoveRailDown: "Mover hacia abajo",
|
|
11308
|
+
pinUpdated: "Estado de fijaci\xF3n actualizado",
|
|
11309
|
+
pinUpdateFailed: "Error al actualizar el estado de fijaci\xF3n",
|
|
11310
|
+
moveToSpace: "Mover a otro espacio",
|
|
11311
|
+
add_content: "A\xF1adir contenido",
|
|
11312
|
+
create_space_desc: "Crear un nuevo espacio para tu equipo o proyectos",
|
|
11313
|
+
create_new_category: "Crear nueva categor\xEDa",
|
|
11314
|
+
create_category_desc: "Crear una nueva categor\xEDa para organizar tu contenido",
|
|
11315
|
+
select_space_first: "Por favor, selecciona primero un espacio",
|
|
11316
|
+
addCategorySuccess: "Categor\xEDa a\xF1adida correctamente",
|
|
11317
|
+
addCategoryFailed: "Error al a\xF1adir la categor\xEDa",
|
|
11318
|
+
joinConversation: "Unirse a la conversaci\xF3n",
|
|
11319
|
+
addedToConversation: "A\xF1adido a la conversaci\xF3n",
|
|
11320
|
+
all: "Todo",
|
|
11321
|
+
dialogs: "Di\xE1logos",
|
|
11322
|
+
pages: "P\xE1ginas",
|
|
11323
|
+
images: "Im\xE1genes",
|
|
11324
|
+
documentAttachments: "Documentos adjuntos",
|
|
11325
|
+
videos: "V\xEDdeos",
|
|
11326
|
+
audios: "Audios",
|
|
11327
|
+
files: "Otros adjuntos",
|
|
11328
|
+
filesHub: "Centro de archivos",
|
|
11329
|
+
file: "Archivos",
|
|
11330
|
+
attachment: "Adjunto",
|
|
11331
|
+
otherAttachments: "Otros adjuntos",
|
|
11332
|
+
documentAttachment: "Documento adjunto",
|
|
11333
|
+
videoAttachment: "V\xEDdeo adjunto",
|
|
11334
|
+
audioAttachment: "Audio adjunto",
|
|
11335
|
+
tables: "Tablas",
|
|
11336
|
+
apps: "Aplicaciones",
|
|
11337
|
+
agents: "Agents",
|
|
11338
|
+
scheduled: "Programado",
|
|
11339
|
+
no_content_in_tab: "A\xFAn no hay {{type}} en este espacio.",
|
|
11340
|
+
no_attachments_in_space: "A\xFAn no hay adjuntos en este espacio.",
|
|
11341
|
+
no_attachments_desc: "Sube o genera contenido para organizarlo aqu\xED.",
|
|
11342
|
+
no_scheduled_in_space: "A\xFAn no hay tareas programadas en este espacio.",
|
|
11343
|
+
no_scheduled_desc: "Aqu\xED se muestran tus tareas automatizadas programadas y el historial de ejecuci\xF3n. Indica a tu IA o configura flujos de trabajo para que se ejecuten autom\xE1ticamente en los momentos que elijas.",
|
|
11344
|
+
no_images_in_space: "A\xFAn no hay im\xE1genes en este espacio.",
|
|
11345
|
+
no_images_desc: "Puedes subir im\xE1genes o generarlas en conversaciones de IA.",
|
|
11346
|
+
no_documents_in_space: "A\xFAn no hay documentos adjuntos en este espacio.",
|
|
11347
|
+
no_documents_desc: "Puedes subir PDF, Markdown, documentos de Word, etc. para consulta y an\xE1lisis.",
|
|
11348
|
+
no_videos_in_space: "A\xFAn no hay v\xEDdeos en este espacio.",
|
|
11349
|
+
no_videos_desc: "Puedes subir archivos de v\xEDdeo para referenciarlos como contexto.",
|
|
11350
|
+
no_audios_in_space: "A\xFAn no hay audios en este espacio.",
|
|
11351
|
+
no_audios_desc: "Puedes subir grabaciones o pistas de audio para su transcripci\xF3n o procesamiento.",
|
|
11352
|
+
no_tables_in_space: "A\xFAn no hay tablas en este espacio.",
|
|
11353
|
+
no_tables_desc: "Organiza y analiza tus datos en vistas estructuradas con soporte directo para procesamiento mediante IA.",
|
|
11354
|
+
no_files_in_space: "A\xFAn no hay otros adjuntos en este espacio.",
|
|
11355
|
+
no_files_desc: "Aqu\xED se muestran archivos diversos que no est\xE1n clasificados como im\xE1genes, documentos o medios.",
|
|
11356
|
+
contentManagement: "Gesti\xF3n de contenido",
|
|
11357
|
+
deleteFailed: "Error al eliminar",
|
|
11358
|
+
deleteMovedToTrash: '"{{title}}" se ha movido a la papelera',
|
|
11359
|
+
deleteMovedToTrashBatch_one: "1 elemento movido a la papelera",
|
|
11360
|
+
deleteMovedToTrashBatch_other: "{{count}} elementos movidos a la papelera",
|
|
11361
|
+
deleteMovedToTrashBatch: "{{count}} elementos movidos a la papelera",
|
|
11362
|
+
batchDeleteCancelled: "Eliminaci\xF3n por lotes cancelada",
|
|
11363
|
+
uploadSuccess: "Subida completada",
|
|
11364
|
+
uploadFailed: "Error al subir",
|
|
11365
|
+
uploadPartial: "{{succeeded}} subidos, {{failed}} fallidos",
|
|
11366
|
+
retry: "Reintentar",
|
|
11367
|
+
uploadFile: "Subir archivo",
|
|
11368
|
+
uploading: "Subiendo...",
|
|
11369
|
+
selectionCount: "{{count}} seleccionados",
|
|
11370
|
+
gridView: "Vista de cuadr\xEDcula",
|
|
11371
|
+
listView: "Vista de lista",
|
|
11372
|
+
confirmDelete: "Confirmar eliminaci\xF3n",
|
|
11373
|
+
confirmDeleteMultiple: "\xBFEst\xE1s seguro de que deseas eliminar los {{count}} elementos seleccionados? Esta acci\xF3n no se puede deshacer.",
|
|
11374
|
+
confirmDeleteSingle: "\xBFEst\xE1s seguro de que deseas eliminar este elemento? Esta acci\xF3n no se puede deshacer.",
|
|
11375
|
+
unnamed: "Sin nombre",
|
|
11376
|
+
preview: "Vista previa",
|
|
11377
|
+
open: "Abrir",
|
|
11378
|
+
download: "Descargar",
|
|
11379
|
+
clearFilters: "Limpiar filtros",
|
|
11380
|
+
totalCount: "{{count}} elementos",
|
|
11381
|
+
filteredCount: "{{count}} / {{total}} elementos",
|
|
11382
|
+
backToTop: "Volver arriba",
|
|
11383
|
+
latestContent: "Contenido reciente",
|
|
11384
|
+
viewTemplate: "Ver plantilla",
|
|
11385
|
+
spaceAgents: "Agents del espacio",
|
|
11386
|
+
no_content_desc: "A\xFAn no hay contenido en este espacio.",
|
|
11387
|
+
no_category_content: "No hay contenido en esta categor\xEDa",
|
|
11388
|
+
spaceData: "Datos del espacio",
|
|
11389
|
+
spaceAgentSection: "Agents del espacio",
|
|
11390
|
+
viewMore: "Ver m\xE1s",
|
|
11391
|
+
noAgentInSpace: "No hay ning\xFAn Agent en este espacio",
|
|
11392
|
+
noAgentInSpaceTitle: "A\xFAn no hay Agents",
|
|
11393
|
+
noAgentInSpaceDesc: "A\xF1ade Agents a este espacio para comenzar a colaborar.",
|
|
11394
|
+
createAgent: "Crear Agent",
|
|
11395
|
+
createAgentHint: "Crear un Agent dedicado para este espacio",
|
|
11396
|
+
categoryNamePlaceholder: "Introduce el nombre de la categor\xEDa",
|
|
11397
|
+
expand: "Expandir",
|
|
11398
|
+
collapse: "Contraer",
|
|
11399
|
+
selectCategory: "Seleccionar categor\xEDa {{name}}",
|
|
11400
|
+
dragToReorder: "Arrastrar para reordenar",
|
|
11401
|
+
editName: "Editar nombre",
|
|
11402
|
+
deleteCategoryConfirm: "\xBFEst\xE1s seguro de que deseas eliminar la categor\xEDa '{{name}}'? Esta acci\xF3n no se puede deshacer.",
|
|
11403
|
+
deleteCategory: "Eliminar categor\xEDa",
|
|
11404
|
+
search: "Buscar",
|
|
11405
|
+
search_no_results: "No se encontraron contenidos coincidentes",
|
|
11406
|
+
please_login: "Inicia sesi\xF3n para ver el contenido",
|
|
11407
|
+
search_placeholder: "Buscar contenido...",
|
|
11408
|
+
allView: {
|
|
11409
|
+
recent: "Reciente",
|
|
11410
|
+
work: "Trabajo",
|
|
11411
|
+
projects: "Proyectos",
|
|
11412
|
+
favorites: "Favoritos",
|
|
11413
|
+
shares: "Compartidos",
|
|
11414
|
+
expanded: "Expandido",
|
|
11415
|
+
back: "Atr\xE1s",
|
|
11416
|
+
viewAll: "Ver todo",
|
|
11417
|
+
noFavorites: "A\xFAn no hay favoritos",
|
|
11418
|
+
noShares: "A\xFAn no hay elementos compartidos",
|
|
11419
|
+
loadSharesError: "Error al cargar los elementos compartidos"
|
|
11420
|
+
},
|
|
11421
|
+
delete_space_options_title: "Opciones para eliminar el espacio",
|
|
11422
|
+
delete_space_options_desc: "Elige qu\xE9 hacer con el contenido de este espacio",
|
|
11423
|
+
delete_space_move_to_all: 'Mover el contenido a "Todo"',
|
|
11424
|
+
delete_space_move_to_all_desc: 'Conserva tu contenido creado y mu\xE9velo a la lista "Todo"',
|
|
11425
|
+
delete_space_move_to_all_success: 'Contenido movido correctamente a "Todo"',
|
|
11426
|
+
delete_space_delete_owned_success: "Contenido propio eliminado correctamente",
|
|
11427
|
+
delete_space_with_owned: "Eliminar tambi\xE9n el contenido propio",
|
|
11428
|
+
delete_space_with_owned_desc: "Elimina de forma permanente el espacio y todo el contenido creado en \xE9l",
|
|
11429
|
+
delete_space_cancel_desc: "Operaci\xF3n cancelada, no se ha eliminado ning\xFAn dato",
|
|
11430
|
+
manage: "Gestionar",
|
|
11431
|
+
finish: "Finalizar",
|
|
11432
|
+
ocrAddToChat: "A\xF1adir a di\xE1logo",
|
|
11433
|
+
newTable: "Nueva tabla",
|
|
11434
|
+
syncLocalAgents: "Sincronizar Agents locales",
|
|
11435
|
+
syncLocalAgentsSectionTitle: "Sincronizar Agents locales",
|
|
11436
|
+
syncLocalAgentsSectionDesc: "Sube la configuraci\xF3n de los Agents locales de este dispositivo a tu cuenta para utilizarlos en otros dispositivos",
|
|
11437
|
+
syncLocalAgentsTitle: "Sincronizar Agents locales con la cuenta",
|
|
11438
|
+
syncLocalAgentsConfirm: "Confirmar sincronizaci\xF3n",
|
|
11439
|
+
syncLocalAgentsConfirmLead: "Se han detectado {{count}} referencia(s) de Agents locales. \xBFSincronizarlas con la cuenta actual y actualizar el cat\xE1logo de este espacio?",
|
|
11440
|
+
syncLocalAgentsFactLocalRemains: "Los Agents locales permanecen en este dispositivo.",
|
|
11441
|
+
syncLocalAgentsFactSnapshot: "Solo se sube una instant\xE1nea de la configuraci\xF3n de los Agents.",
|
|
11442
|
+
syncLocalAgentsFactCatalogRewrite: "Las referencias en este espacio se actualizar\xE1n a la instant\xE1nea de la cuenta.",
|
|
11443
|
+
syncLocalAgentsFactNoDialogs: "Los di\xE1logos, mensajes y adjuntos no se suben.",
|
|
11444
|
+
syncLocalAgentsFactNoSecrets: "Las claves API y tokens locales no se suben.",
|
|
11445
|
+
syncLocalAgentsFactNoContinuous: "Esta es una operaci\xF3n puntual y no una sincronizaci\xF3n continua.",
|
|
11446
|
+
syncLocalAgentsSuccess: "Se actualizaron {{count}} referencia(s) de Agents locales a instant\xE1neas de la cuenta (Agents locales conservados)",
|
|
11447
|
+
syncLocalAgentsNoop: "No hay Agents locales en este espacio que requieran sincronizaci\xF3n (sin subida)",
|
|
11448
|
+
syncLocalAgentsError: "Error de sincronizaci\xF3n. Int\xE9ntalo de nuevo m\xE1s tarde.",
|
|
11449
|
+
syncLocalAgentsBlockedTitle: "No se pueden sincronizar los Agents locales",
|
|
11450
|
+
syncLocalAgentsBlockedLead: "La comprobaci\xF3n previa detect\xF3 contenidos locales no compatibles o ausentes y bloque\xF3 la subida. Resuelve los siguientes elementos antes de volver a intentarlo.",
|
|
11451
|
+
syncLocalAgentsBlockedOk: "Entendido",
|
|
11452
|
+
syncLocalAgentsBlockedReason_unsupported_local_content: "Esta sincronizaci\xF3n incluye tipos de contenido local no compatibles.",
|
|
11453
|
+
syncLocalAgentsBlockedReason_missing_or_tombstoned_record: "Faltan algunos registros de referencia o han sido eliminados.",
|
|
11454
|
+
syncLocalAgentsBlockedReason_authoritative_type_mismatch: "El tipo en el cat\xE1logo no coincide con el tipo de registro real.",
|
|
11455
|
+
syncLocalAgentsType_dialog: "Di\xE1logo",
|
|
11456
|
+
syncLocalAgentsType_page: "P\xE1gina",
|
|
11457
|
+
syncLocalAgentsType_doc: "Documento",
|
|
11458
|
+
syncLocalAgentsType_table: "Tabla",
|
|
11459
|
+
syncLocalAgentsType_file: "Archivo",
|
|
11460
|
+
syncLocalAgentsType_image: "Imagen",
|
|
11461
|
+
syncLocalAgentsType_app: "Aplicaci\xF3n",
|
|
11462
|
+
syncLocalAgentsType_task: "Tarea",
|
|
11463
|
+
syncLocalAgentsType_unknown: "Desconocido",
|
|
11464
|
+
myShares: {
|
|
11465
|
+
title: "Mis compartidos"
|
|
11466
|
+
},
|
|
11467
|
+
agent: {
|
|
11468
|
+
create_agent_manual: "Crear Agent manualmente"
|
|
11469
|
+
},
|
|
11470
|
+
createFailed: "Error al crear la tabla",
|
|
11471
|
+
filter_by_type: "Filtrar por tipo",
|
|
11472
|
+
no_items_found: "No se encontraron elementos de este tipo",
|
|
11473
|
+
userNotFound: "No se encontr\xF3 la informaci\xF3n del usuario, no se puede crear la tabla",
|
|
11474
|
+
table: {
|
|
11475
|
+
newTable: "Nueva tabla"
|
|
11476
|
+
}
|
|
11477
|
+
}
|
|
8396
11478
|
}
|
|
8397
11479
|
};
|
|
8398
11480
|
|
|
@@ -8451,28 +11533,58 @@ var getMessagesForDialogFromState = (state, dialogId) => {
|
|
|
8451
11533
|
};
|
|
8452
11534
|
var identityCanonicalName = (name) => name;
|
|
8453
11535
|
var summarizingDialogs = /* @__PURE__ */ new Set();
|
|
11536
|
+
var BudgetRescueError = class extends Error {
|
|
11537
|
+
constructor(code, detail) {
|
|
11538
|
+
super(`budget_rescue ${code}: ${detail}; request not sent`);
|
|
11539
|
+
this.code = code;
|
|
11540
|
+
this.name = "BudgetRescueError";
|
|
11541
|
+
}
|
|
11542
|
+
};
|
|
8454
11543
|
var updateDialogSummaryAction = async (args, thunkApi) => {
|
|
8455
11544
|
const { dialogKey, preFetchedMessages, force = false } = args;
|
|
8456
|
-
if (summarizingDialogs.has(dialogKey))
|
|
11545
|
+
if (summarizingDialogs.has(dialogKey)) {
|
|
11546
|
+
if (args.reason === "budget_rescue") throw new BudgetRescueError("busy", "another summary is in progress");
|
|
11547
|
+
return;
|
|
11548
|
+
}
|
|
8457
11549
|
summarizingDialogs.add(dialogKey);
|
|
8458
|
-
const { dispatch, getState } = thunkApi;
|
|
11550
|
+
const { dispatch, getState, signal } = thunkApi;
|
|
11551
|
+
const budget = createSummaryBudget({ mode: args.reason === "manual" ? "manual" : "automatic", signal, deadlineMs: args.deadlineMs });
|
|
8459
11552
|
try {
|
|
8460
11553
|
const state = getState();
|
|
8461
11554
|
const dialogId = extractCustomId(dialogKey);
|
|
8462
11555
|
const dialogConfig = selectById(state, dialogKey);
|
|
8463
|
-
if (!dialogConfig)
|
|
11556
|
+
if (!dialogConfig) {
|
|
11557
|
+
if (args.reason === "budget_rescue") throw new BudgetRescueError("missing-dialog", "dialog record unavailable");
|
|
11558
|
+
return;
|
|
11559
|
+
}
|
|
11560
|
+
const agentId = getActiveDialogAgentId(dialogConfig);
|
|
11561
|
+
const currentAgent = agentId ? applyBuiltinAgentRuntimeOverride(
|
|
11562
|
+
agentId,
|
|
11563
|
+
selectById(state, agentId) ?? { dbKey: agentId }
|
|
11564
|
+
) : void 0;
|
|
11565
|
+
const session = thunkApi.extra?.accountSession?.getSnapshot();
|
|
11566
|
+
const account = session?.accounts?.find((entry) => entry.userId === session.activeAccountId);
|
|
11567
|
+
const eligibility = {
|
|
11568
|
+
userId: session?.activeAccountId,
|
|
11569
|
+
authenticated: !!session?.activeToken,
|
|
11570
|
+
platformAvailable: !!session?.activeToken,
|
|
11571
|
+
credits: account?.balance
|
|
11572
|
+
};
|
|
11573
|
+
const route = selectSummaryRoute(eligibility);
|
|
11574
|
+
const currentAvailable = !!currentAgent?.model && !!currentAgent?.provider && currentAgent.apiSource !== "cli";
|
|
8464
11575
|
let contextWindow = DEFAULT_CONTEXT_WINDOW;
|
|
8465
11576
|
{
|
|
8466
|
-
const
|
|
8467
|
-
const agent =
|
|
8468
|
-
const resolvedAgent = agent &&
|
|
11577
|
+
const agentId2 = getActiveDialogAgentId(dialogConfig);
|
|
11578
|
+
const agent = agentId2 ? selectById(state, agentId2) : void 0;
|
|
11579
|
+
const resolvedAgent = agent && agentId2 ? applyBuiltinAgentRuntimeOverride(agentId2, agent) : agent;
|
|
8469
11580
|
contextWindow = resolveAgentContextWindow({
|
|
8470
11581
|
model: resolvedAgent?.model,
|
|
8471
11582
|
provider: resolvedAgent?.provider,
|
|
8472
|
-
agentKey:
|
|
11583
|
+
agentKey: agentId2,
|
|
8473
11584
|
agentName: resolvedAgent?.name
|
|
8474
11585
|
}) ?? DEFAULT_CONTEXT_WINDOW;
|
|
8475
11586
|
}
|
|
11587
|
+
contextWindow = args.contextWindow ?? contextWindow;
|
|
8476
11588
|
const allMsgs = preFetchedMessages || getMessagesForDialogFromState(state, dialogId);
|
|
8477
11589
|
const plan = planCompression({
|
|
8478
11590
|
allMsgs,
|
|
@@ -8481,6 +11593,8 @@ var updateDialogSummaryAction = async (args, thunkApi) => {
|
|
|
8481
11593
|
contextWindow,
|
|
8482
11594
|
force,
|
|
8483
11595
|
reason: args.reason,
|
|
11596
|
+
availableHistoryTokens: args.availableHistoryTokens,
|
|
11597
|
+
preserveLatestUserByProjection: args.preserveLatestUserByProjection,
|
|
8484
11598
|
...typeof args.lastRealInputTokens === "number" && args.lastRealInputTokens > 0 && contextWindow > 0 ? {
|
|
8485
11599
|
realContextUsagePercent: Math.min(
|
|
8486
11600
|
1,
|
|
@@ -8488,11 +11602,14 @@ var updateDialogSummaryAction = async (args, thunkApi) => {
|
|
|
8488
11602
|
)
|
|
8489
11603
|
} : {}
|
|
8490
11604
|
});
|
|
8491
|
-
if (!plan.shouldCompress)
|
|
11605
|
+
if (!plan.shouldCompress) {
|
|
11606
|
+
if (args.reason === "budget_rescue") throw new BudgetRescueError("no-compressible-history", "summary plan cannot cover more history");
|
|
11607
|
+
return;
|
|
11608
|
+
}
|
|
8492
11609
|
const previousSummary = dialogConfig.summary || "";
|
|
8493
11610
|
const summaryWindow = Math.min(
|
|
8494
|
-
resolveAgentContextWindow({ model:
|
|
8495
|
-
resolveAgentContextWindow(
|
|
11611
|
+
route.kind === "platform" ? resolveAgentContextWindow({ model: route.model, provider: "nolo" }) ?? 32768 : Infinity,
|
|
11612
|
+
currentAvailable ? resolveAgentContextWindow(currentAgent) ?? 32768 : route.kind === "platform" ? Infinity : 32768
|
|
8496
11613
|
);
|
|
8497
11614
|
const request = buildBoundedCompactionRequest({
|
|
8498
11615
|
msgsToCompress: plan.msgsToCompress,
|
|
@@ -8502,6 +11619,7 @@ var updateDialogSummaryAction = async (args, thunkApi) => {
|
|
|
8502
11619
|
});
|
|
8503
11620
|
if (request.status === "blocked") {
|
|
8504
11621
|
notifyCompressionFailure(new Error(`\u6458\u8981\u8BF7\u6C42\u65E0\u6CD5\u5B89\u5168\u6784\u5EFA\uFF08${request.reason}\uFF09\uFF0C\u539F\u5386\u53F2\u4FDD\u6301\u4E0D\u53D8`));
|
|
11622
|
+
if (args.reason === "budget_rescue") throw new BudgetRescueError("no-summary-input", `bounded summary request blocked: ${request.reason}`);
|
|
8505
11623
|
return;
|
|
8506
11624
|
}
|
|
8507
11625
|
const { coveredMessages, summarizedBeforeId: newSummarizedBeforeId, promptContent, outputTokenBudget } = request;
|
|
@@ -8510,42 +11628,59 @@ var updateDialogSummaryAction = async (args, thunkApi) => {
|
|
|
8510
11628
|
for (const key of extractReferenceKeysFromMessage(msg)) extractedKeys.add(key);
|
|
8511
11629
|
}
|
|
8512
11630
|
try {
|
|
8513
|
-
const runSummaryLlm = (
|
|
8514
|
-
|
|
11631
|
+
const runSummaryLlm = async (platform, context) => {
|
|
11632
|
+
if (context.signal.aborted) throw context.signal.reason;
|
|
11633
|
+
if (!platform && !currentAvailable) throw new Error("Current model textOnly summary channel unavailable");
|
|
11634
|
+
const pending = dispatch(runLlm({
|
|
8515
11635
|
llmConfig: {
|
|
8516
|
-
...BUILTIN_SUMMARY_LLM_CONFIG,
|
|
8517
|
-
...model ? { model } : {},
|
|
11636
|
+
...platform ? { ...BUILTIN_SUMMARY_LLM_CONFIG, model: PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL } : currentAgent,
|
|
8518
11637
|
prompt: COMPACTION_SUMMARY_SYSTEM_PROMPT,
|
|
8519
|
-
max_tokens: outputTokenBudget
|
|
11638
|
+
max_tokens: outputTokenBudget,
|
|
11639
|
+
tools: []
|
|
8520
11640
|
},
|
|
11641
|
+
toolsOverride: [],
|
|
11642
|
+
isStreaming: false,
|
|
11643
|
+
summaryCompletion: true,
|
|
11644
|
+
systemPromptOverride: COMPACTION_SUMMARY_SYSTEM_PROMPT,
|
|
8521
11645
|
content: promptContent,
|
|
8522
11646
|
billingDialogKey: dialogKey
|
|
8523
|
-
})
|
|
8524
|
-
|
|
8525
|
-
|
|
8526
|
-
|
|
8527
|
-
let primaryError;
|
|
8528
|
-
try {
|
|
8529
|
-
newSummary = await runSummaryLlm();
|
|
8530
|
-
} catch (error) {
|
|
8531
|
-
primaryError = error;
|
|
8532
|
-
}
|
|
8533
|
-
if (!isUsableSummary(newSummary)) {
|
|
11647
|
+
}));
|
|
11648
|
+
const onAbort = () => pending.abort?.();
|
|
11649
|
+
context.signal.addEventListener("abort", onAbort, { once: true });
|
|
11650
|
+
if (context.signal.aborted) onAbort();
|
|
8534
11651
|
try {
|
|
8535
|
-
|
|
8536
|
-
}
|
|
8537
|
-
|
|
11652
|
+
return await pending.unwrap();
|
|
11653
|
+
} finally {
|
|
11654
|
+
context.signal.removeEventListener("abort", onAbort);
|
|
11655
|
+
}
|
|
11656
|
+
};
|
|
11657
|
+
const result = await runSummaryWithContract({
|
|
11658
|
+
eligibility,
|
|
11659
|
+
budget,
|
|
11660
|
+
platform: { model: PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL, provider: "nolo", run: (context) => runSummaryLlm(true, context) },
|
|
11661
|
+
current: { model: currentAgent?.model, provider: currentAgent?.provider, run: (context) => runSummaryLlm(false, context) }
|
|
11662
|
+
});
|
|
11663
|
+
if (result.kind !== "success") {
|
|
11664
|
+
if (args.reason === "budget_rescue" && result.kind === "cancelled") {
|
|
11665
|
+
const error = new Error("budget_rescue cancelled");
|
|
11666
|
+
error.name = "AbortError";
|
|
11667
|
+
throw error;
|
|
8538
11668
|
}
|
|
8539
|
-
if (
|
|
8540
|
-
|
|
11669
|
+
if (result.kind !== "cancelled") {
|
|
11670
|
+
notifyCompressionFailure(result.kind === "error" ? result.error : new Error(`Summary ${result.kind}`));
|
|
8541
11671
|
}
|
|
11672
|
+
if (args.reason === "budget_rescue") throw new BudgetRescueError("failed", `summary outcome ${result.kind}`);
|
|
11673
|
+
return result;
|
|
8542
11674
|
}
|
|
11675
|
+
const newSummary = result.text;
|
|
11676
|
+
await budget.run(async () => void 0);
|
|
8543
11677
|
if (newSummary && typeof newSummary === "string" && newSummary.trim()) {
|
|
8544
11678
|
const currentCount = dialogConfig.compressionCount || 0;
|
|
8545
|
-
const sourceMeta = await computeSummarySourceMetadata(
|
|
11679
|
+
const sourceMeta = await budget.run(async () => computeSummarySourceMetadata(
|
|
8546
11680
|
allMsgs,
|
|
8547
11681
|
newSummarizedBeforeId
|
|
8548
|
-
);
|
|
11682
|
+
));
|
|
11683
|
+
if (budget.signal.aborted) throw budget.signal.reason;
|
|
8549
11684
|
await dispatch(
|
|
8550
11685
|
patch({
|
|
8551
11686
|
dbKey: dialogKey,
|
|
@@ -8569,8 +11704,18 @@ var updateDialogSummaryAction = async (args, thunkApi) => {
|
|
|
8569
11704
|
msgsToCompress: coveredMessages,
|
|
8570
11705
|
msgsToKeep: [...plan.msgsToCompress.slice(coveredMessages.length), ...plan.msgsToKeep]
|
|
8571
11706
|
},
|
|
8572
|
-
newSummary: newSummary.trim()
|
|
8573
|
-
|
|
11707
|
+
newSummary: newSummary.trim(),
|
|
11708
|
+
summaryInput: {
|
|
11709
|
+
inputTokens: request.inputTokens,
|
|
11710
|
+
capTokens: request.capTokens,
|
|
11711
|
+
expandedMessages: request.expandedMessages,
|
|
11712
|
+
omittedMessages: request.omittedMessages
|
|
11713
|
+
},
|
|
11714
|
+
planCounts: {
|
|
11715
|
+
pendingMessageCount: plan.diagnostics?.pendingMsgCount,
|
|
11716
|
+
plannedCompressCount: plan.diagnostics?.compressCount
|
|
11717
|
+
}
|
|
11718
|
+
// Compact completion retains finish metadata but does not return usage.
|
|
8574
11719
|
// summaryUsage 需要 runLlm 改造才能获取,当前留空。
|
|
8575
11720
|
});
|
|
8576
11721
|
console.log(formatCompactionMetricsLog(metrics));
|
|
@@ -8579,10 +11724,19 @@ var updateDialogSummaryAction = async (args, thunkApi) => {
|
|
|
8579
11724
|
}
|
|
8580
11725
|
}
|
|
8581
11726
|
} catch (err) {
|
|
8582
|
-
|
|
8583
|
-
|
|
11727
|
+
if (signal?.aborted || isAbortError(err)) {
|
|
11728
|
+
if (args.reason === "budget_rescue") throw err;
|
|
11729
|
+
return;
|
|
11730
|
+
}
|
|
11731
|
+
if (args.reason === "budget_rescue") {
|
|
11732
|
+
if (!(err instanceof BudgetRescueError)) notifyCompressionFailure(classifySummaryError(err));
|
|
11733
|
+
throw err instanceof BudgetRescueError ? err : new BudgetRescueError("failed", "summary operation failed");
|
|
11734
|
+
}
|
|
11735
|
+
console.error("[ContextCompression] Failed:", classifySummaryError(err));
|
|
11736
|
+
notifyCompressionFailure(classifySummaryError(err));
|
|
8584
11737
|
}
|
|
8585
11738
|
} finally {
|
|
11739
|
+
budget.dispose();
|
|
8586
11740
|
summarizingDialogs.delete(dialogKey);
|
|
8587
11741
|
}
|
|
8588
11742
|
};
|
|
@@ -9566,7 +12720,7 @@ function buildFallbackActivity(toolName, args) {
|
|
|
9566
12720
|
function normalizeString(value) {
|
|
9567
12721
|
return asOptionalTrimmedString(value);
|
|
9568
12722
|
}
|
|
9569
|
-
function
|
|
12723
|
+
function normalizeStatus2(value) {
|
|
9570
12724
|
return value === "pending" || value === "running" || value === "success" || value === "failed" ? value : void 0;
|
|
9571
12725
|
}
|
|
9572
12726
|
function normalizeKind(value) {
|
|
@@ -9615,7 +12769,7 @@ function normalizeActivityPhase(value) {
|
|
|
9615
12769
|
const id = normalizeString(value.id) || title.toLowerCase().replace(/\s+/g, "-");
|
|
9616
12770
|
const index = asOptionalFiniteNumber(value.index);
|
|
9617
12771
|
const total = asOptionalFiniteNumber(value.total);
|
|
9618
|
-
const status =
|
|
12772
|
+
const status = normalizeStatus2(value.status);
|
|
9619
12773
|
return {
|
|
9620
12774
|
id,
|
|
9621
12775
|
title,
|
|
@@ -10459,7 +13613,7 @@ var messageSlice = createSliceWithThunks({
|
|
|
10459
13613
|
return rejectWithValue("Missing dialogConfig");
|
|
10460
13614
|
}
|
|
10461
13615
|
const dialogKey = dialogConfig.dbKey || dialogConfig.id;
|
|
10462
|
-
const dialogId = extractCustomId(dialogKey);
|
|
13616
|
+
const dialogId = dialogConfig.id ?? extractCustomId(dialogKey);
|
|
10463
13617
|
const currentAccountUserId = selectIdentityUserId(state) ?? null;
|
|
10464
13618
|
const dialogConfigUserId = dialogConfig.userId;
|
|
10465
13619
|
const { fullMessage } = assemblePersistedUserMessage({
|
|
@@ -10496,13 +13650,201 @@ var messageSlice = createSliceWithThunks({
|
|
|
10496
13650
|
messageActions.prepareAndPersistMessage({
|
|
10497
13651
|
message: {
|
|
10498
13652
|
role: "user",
|
|
10499
|
-
content: userInput
|
|
13653
|
+
content: userInput,
|
|
13654
|
+
...args.pending ? { metadata: { queueState: "pending", source: "web" } } : {}
|
|
10500
13655
|
},
|
|
10501
13656
|
dialogConfig
|
|
10502
13657
|
})
|
|
10503
13658
|
).unwrap();
|
|
10504
13659
|
}
|
|
10505
13660
|
),
|
|
13661
|
+
admitPendingUserMessages: create.asyncThunk(
|
|
13662
|
+
async (args, { dispatch, getState, extra }) => {
|
|
13663
|
+
const dialogId = extractCustomId(args.dialogKey);
|
|
13664
|
+
const pending = selectAllMsgs(getState(), dialogId).filter((message) => selectPendingUserMessages([message]).length > 0 || args.resumeUnrequested && message.role === "user" && message.metadata?.userBatchPhase === "admitted");
|
|
13665
|
+
if (!pending.length || args.signal?.aborted) return [];
|
|
13666
|
+
if (!isLocalUserBatch(args.dialogKey)) {
|
|
13667
|
+
const control = userBatchControl(getState(), args.dialogKey);
|
|
13668
|
+
const durable = await Promise.all(pending.map((message) => extra.db.get(message.dbKey)));
|
|
13669
|
+
if (durable.some((row) => !row || row.role !== "user")) throw new Error("Missing durable pending user message");
|
|
13670
|
+
const existing = durable.find((row) => row.metadata?.userBatchReceipt)?.metadata.userBatchReceipt;
|
|
13671
|
+
const batch = existing ? durable.filter((row) => existing.messageIds.includes(row.id)) : durable;
|
|
13672
|
+
for (const row of batch) {
|
|
13673
|
+
if (args.signal?.aborted) return [];
|
|
13674
|
+
await control.publish(row);
|
|
13675
|
+
}
|
|
13676
|
+
if (args.signal?.aborted) return [];
|
|
13677
|
+
const result = await control.call({ action: "claim", messageIds: batch.map((row) => row.id) });
|
|
13678
|
+
if (!result.authorized) throw new Error("User batch owned by another plane; automatic resubmission blocked");
|
|
13679
|
+
const receipt = readClientReceipt(result.receipt, batch.map((row) => row.id));
|
|
13680
|
+
if (receipt.phase !== "admitted") throw new Error("User batch provider outcome is unknown; automatic resubmission blocked");
|
|
13681
|
+
const accepted = receipt.messageIds.map((id) => batch.find((row) => row.id === id)).map((row) => ({ ...row, metadata: {
|
|
13682
|
+
...row.metadata,
|
|
13683
|
+
queueState: "accepted",
|
|
13684
|
+
acceptedUserBatchId: receipt.batchId,
|
|
13685
|
+
userBatchOwner: receipt.owner,
|
|
13686
|
+
userBatchPhase: receipt.phase,
|
|
13687
|
+
userBatchReceipt: receipt
|
|
13688
|
+
} }));
|
|
13689
|
+
await writeStoreOps(extra.db, accepted.map((row) => ({ type: "put", key: row.dbKey, value: row })));
|
|
13690
|
+
for (const row of accepted) dispatch(messageActions.addUserMessage({ ...row, dialogId }));
|
|
13691
|
+
return args.signal?.aborted ? [] : accepted;
|
|
13692
|
+
}
|
|
13693
|
+
const batchId = pending.map((message) => message.id).join(":");
|
|
13694
|
+
const admitted = await admitPersistedUserBatch({
|
|
13695
|
+
requests: pending.map((message) => ({ ...createTurnRequest(
|
|
13696
|
+
typeof message.content === "string" ? message.content : ""
|
|
13697
|
+
), messageId: message.id, source: "web" })),
|
|
13698
|
+
signal: args.signal,
|
|
13699
|
+
persist: async () => {
|
|
13700
|
+
const db = extra.db;
|
|
13701
|
+
const accepted = await Promise.all(pending.map(async (projected) => {
|
|
13702
|
+
const stored = await db.get(projected.dbKey);
|
|
13703
|
+
if (!stored || stored.id !== projected.id || stored.role !== "user") {
|
|
13704
|
+
throw new Error(`Missing durable pending user message ${projected.id}`);
|
|
13705
|
+
}
|
|
13706
|
+
if (stored.metadata?.queueState !== "pending") return stored;
|
|
13707
|
+
return normalizeTimeFields({ ...stored, metadata: {
|
|
13708
|
+
...stored.metadata,
|
|
13709
|
+
queueState: "accepted",
|
|
13710
|
+
acceptedUserBatchId: batchId,
|
|
13711
|
+
userBatchPhase: "admitted"
|
|
13712
|
+
} });
|
|
13713
|
+
}));
|
|
13714
|
+
if (args.signal?.aborted) return;
|
|
13715
|
+
await writeStoreOps(db, accepted.map((message) => ({ type: "put", key: message.dbKey, value: message })));
|
|
13716
|
+
for (const message of accepted) {
|
|
13717
|
+
await dispatch(patch({ dbKey: message.dbKey, changes: { metadata: message.metadata } })).unwrap();
|
|
13718
|
+
dispatch(messageActions.addUserMessage({ ...message, dialogId }));
|
|
13719
|
+
}
|
|
13720
|
+
}
|
|
13721
|
+
});
|
|
13722
|
+
return admitted.length ? pending : [];
|
|
13723
|
+
}
|
|
13724
|
+
),
|
|
13725
|
+
runPendingUserBatchRequest: create.asyncThunk(
|
|
13726
|
+
async (args, { dispatch, getState, extra }) => {
|
|
13727
|
+
const dialogId = extractCustomId(args.dialogKey);
|
|
13728
|
+
const db = extra.db;
|
|
13729
|
+
const valid = () => !args.signal?.aborted && (args.owns?.() ?? true) && (args.execution?.valid() ?? true);
|
|
13730
|
+
const assertInput = (expected, actual, ids) => {
|
|
13731
|
+
try {
|
|
13732
|
+
assertUserBatchInput(expected, actual, ids);
|
|
13733
|
+
} catch (error) {
|
|
13734
|
+
args.execution?.dispose();
|
|
13735
|
+
throw error;
|
|
13736
|
+
}
|
|
13737
|
+
};
|
|
13738
|
+
if (!isLocalUserBatch(args.dialogKey)) {
|
|
13739
|
+
if (!Array.isArray(args.requestUserInput)) throw new Error("Missing controlled user batch request input; blocked");
|
|
13740
|
+
if (args.execution && !args.execution.valid()) throw new Error("User batch execution expired; blocked");
|
|
13741
|
+
if (!valid()) return void 0;
|
|
13742
|
+
const control = userBatchControl(getState(), args.dialogKey);
|
|
13743
|
+
const history = selectAllMsgs(getState(), dialogId).filter((message) => message.role === "user");
|
|
13744
|
+
const latest = history[history.length - 1];
|
|
13745
|
+
if (latest?.metadata?.queueState === "pending") {
|
|
13746
|
+
if (args.execution?.hasGrant()) throw new Error("New user batch requires its own claim; blocked");
|
|
13747
|
+
await dispatch(messageActions.admitPendingUserMessages({ dialogKey: args.dialogKey, signal: args.signal, resumeUnrequested: true })).unwrap();
|
|
13748
|
+
}
|
|
13749
|
+
if (latest) {
|
|
13750
|
+
const original = await db.get(latest.dbKey);
|
|
13751
|
+
if (original && original.metadata?.queueState !== "pending" && !original.metadata?.userBatchPhase && !original.metadata?.userBatchReceipt) {
|
|
13752
|
+
if (args.execution?.hasGrant()) throw new Error("New user batch requires its own claim; blocked");
|
|
13753
|
+
const published = await control.publish(original);
|
|
13754
|
+
dispatch(messageActions.addUserMessage({ ...published, dialogId }));
|
|
13755
|
+
await dispatch(messageActions.admitPendingUserMessages({ dialogKey: args.dialogKey, signal: args.signal, resumeUnrequested: true })).unwrap();
|
|
13756
|
+
}
|
|
13757
|
+
}
|
|
13758
|
+
const users = selectAllMsgs(getState(), dialogId).filter((message) => message.role === "user");
|
|
13759
|
+
const durable = await Promise.all(users.map((message) => db.get(message.dbKey)));
|
|
13760
|
+
const last = durable[durable.length - 1];
|
|
13761
|
+
if (args.execution && last?.metadata?.userBatchReceipt) {
|
|
13762
|
+
const receipt2 = last.metadata.userBatchReceipt;
|
|
13763
|
+
const batchRows = durable.filter((row) => receipt2.messageIds.includes(row?.id));
|
|
13764
|
+
const checked = readClientReceipt(receipt2, batchRows.map((row) => row.id));
|
|
13765
|
+
if (args.execution.has(args.dialogKey, checked)) {
|
|
13766
|
+
if (durable.some((row) => row?.metadata?.queueState === "pending" && !checked.messageIds.includes(row.id))) {
|
|
13767
|
+
throw new Error("New user batch requires its own claim; blocked");
|
|
13768
|
+
}
|
|
13769
|
+
if (!valid()) {
|
|
13770
|
+
args.execution.dispose();
|
|
13771
|
+
return void 0;
|
|
13772
|
+
}
|
|
13773
|
+
userBatchControl(getState(), args.dialogKey);
|
|
13774
|
+
const input2 = snapshotUserBatchInput(batchRows);
|
|
13775
|
+
assertInput(input2, snapshotUserBatchInput(users), checked.messageIds);
|
|
13776
|
+
assertInput(input2, args.requestUserInput, checked.messageIds);
|
|
13777
|
+
return args.execution.start(args.dialogKey, checked, input2, args.start);
|
|
13778
|
+
}
|
|
13779
|
+
}
|
|
13780
|
+
const admitted = durable.filter((row) => row?.metadata?.userBatchPhase === "admitted");
|
|
13781
|
+
if (!admitted.length) {
|
|
13782
|
+
if (durable.some((row) => row?.metadata?.queueState === "pending" || row?.metadata?.userBatchPhase)) {
|
|
13783
|
+
throw new Error("No admitted authority receipt; automatic resubmission blocked");
|
|
13784
|
+
}
|
|
13785
|
+
throw new Error("Missing user batch receipt; automatic resubmission blocked");
|
|
13786
|
+
}
|
|
13787
|
+
const receipt = readClientReceipt(
|
|
13788
|
+
admitted[0].metadata.userBatchReceipt,
|
|
13789
|
+
admitted.filter((row) => row.metadata?.acceptedUserBatchId === admitted[0].metadata.acceptedUserBatchId).map((row) => row.id)
|
|
13790
|
+
);
|
|
13791
|
+
if (receipt.phase !== "admitted") throw new Error("User batch already requested; automatic resubmission blocked");
|
|
13792
|
+
if (!valid()) return void 0;
|
|
13793
|
+
userBatchControl(getState(), args.dialogKey);
|
|
13794
|
+
const result = await control.call({ action: "requested", batchId: receipt.batchId, token: receipt.token });
|
|
13795
|
+
if (result.authorized && result.receipt?.phase !== "requested") throw new Error("Missing requested authority receipt; automatic resubmission blocked");
|
|
13796
|
+
if (result.receipt) {
|
|
13797
|
+
const returned = readClientReceipt(result.receipt, receipt.messageIds, true);
|
|
13798
|
+
if (returned.batchId !== receipt.batchId || returned.token !== receipt.token) throw new Error("Mismatched user batch receipt");
|
|
13799
|
+
const records = admitted.filter((row) => receipt.messageIds.includes(row.id)).map((row) => ({
|
|
13800
|
+
...row,
|
|
13801
|
+
metadata: { ...row.metadata, userBatchPhase: returned.phase, userBatchReceipt: returned }
|
|
13802
|
+
}));
|
|
13803
|
+
await writeStoreOps(db, records.map((row) => ({ type: "put", key: row.dbKey, value: row })));
|
|
13804
|
+
for (const row of records) dispatch(messageActions.addUserMessage({ ...row, dialogId }));
|
|
13805
|
+
}
|
|
13806
|
+
if (!result.authorized) throw new Error("User batch provider outcome is unknown; automatic resubmission blocked");
|
|
13807
|
+
if (!valid()) return void 0;
|
|
13808
|
+
userBatchControl(getState(), args.dialogKey);
|
|
13809
|
+
if (!Array.isArray(result.messages) || result.messages.length !== receipt.messageIds.length || result.messages.some((row, i) => row?.id !== receipt.messageIds[i] || row.role !== "user")) {
|
|
13810
|
+
throw new Error("Invalid ordered authorized user messages; blocked");
|
|
13811
|
+
}
|
|
13812
|
+
const input = snapshotUserBatchInput(result.messages);
|
|
13813
|
+
const current = await Promise.all(receipt.messageIds.map((id) => db.get(admitted.find((row) => row.id === id).dbKey)));
|
|
13814
|
+
assertInput(input, snapshotUserBatchInput(current), receipt.messageIds);
|
|
13815
|
+
assertInput(input, snapshotUserBatchInput(selectAllMsgs(getState(), dialogId)), receipt.messageIds);
|
|
13816
|
+
assertInput(input, args.requestUserInput, receipt.messageIds);
|
|
13817
|
+
if (!valid()) return void 0;
|
|
13818
|
+
if (args.execution) {
|
|
13819
|
+
args.execution.authorize(args.dialogKey, result.receipt, input);
|
|
13820
|
+
return args.execution.start(args.dialogKey, result.receipt, input, args.start);
|
|
13821
|
+
}
|
|
13822
|
+
return args.start();
|
|
13823
|
+
}
|
|
13824
|
+
const claimed = selectAllMsgs(getState(), dialogId).filter((message) => message.role === "user" && message.metadata?.userBatchPhase === "admitted");
|
|
13825
|
+
const authoritative = await Promise.all(claimed.map((message) => db.get(message.dbKey)));
|
|
13826
|
+
if (authoritative.some((row) => row?.metadata?.userBatchPhase === "requested")) {
|
|
13827
|
+
throw new Error("User batch provider outcome is unknown; automatic resubmission blocked");
|
|
13828
|
+
}
|
|
13829
|
+
const rows = authoritative.filter((row) => row?.metadata?.userBatchPhase === "admitted");
|
|
13830
|
+
const phaseRows = (phase) => rows.map((row) => ({
|
|
13831
|
+
...row,
|
|
13832
|
+
metadata: { ...row.metadata, userBatchPhase: phase }
|
|
13833
|
+
}));
|
|
13834
|
+
const persist = async (phase) => {
|
|
13835
|
+
const records = phaseRows(phase);
|
|
13836
|
+
await writeStoreOps(db, records.map((row) => ({ type: "put", key: row.dbKey, value: row })));
|
|
13837
|
+
for (const row of records) dispatch(messageActions.addUserMessage({ ...row, dialogId }));
|
|
13838
|
+
};
|
|
13839
|
+
if (!valid()) return void 0;
|
|
13840
|
+
if (rows.length) await persist("requested");
|
|
13841
|
+
if (!valid()) {
|
|
13842
|
+
if (rows.length) await persist("admitted");
|
|
13843
|
+
return void 0;
|
|
13844
|
+
}
|
|
13845
|
+
return args.start();
|
|
13846
|
+
}
|
|
13847
|
+
),
|
|
10506
13848
|
/**
|
|
10507
13849
|
* 初始化当前对话消息
|
|
10508
13850
|
*/
|
|
@@ -10777,7 +14119,7 @@ var messageSlice = createSliceWithThunks({
|
|
|
10777
14119
|
* 一条流式回复结束
|
|
10778
14120
|
*/
|
|
10779
14121
|
messageStreamEnd: create.asyncThunk(
|
|
10780
|
-
async (payload, { dispatch, getState }) => {
|
|
14122
|
+
async (payload, { dispatch, getState, extra, signal }) => {
|
|
10781
14123
|
const {
|
|
10782
14124
|
finalContentBuffer,
|
|
10783
14125
|
totalUsage,
|
|
@@ -10914,7 +14256,7 @@ var messageSlice = createSliceWithThunks({
|
|
|
10914
14256
|
// contextWindow 完成,保证分子分母同源(W5 窗口错配)。
|
|
10915
14257
|
lastRealInputTokens: lastInputTokensFromRecords(billingUsageRecords)
|
|
10916
14258
|
},
|
|
10917
|
-
{ dispatch, getState }
|
|
14259
|
+
{ dispatch, getState, extra, signal }
|
|
10918
14260
|
).catch((err) => console.error("Summary update failed:", err));
|
|
10919
14261
|
if (addRefs) {
|
|
10920
14262
|
dispatch(addReferenceKeysAction({
|
|
@@ -11084,7 +14426,7 @@ var messageSlice = createSliceWithThunks({
|
|
|
11084
14426
|
runtimeOptions: args.runtimeOptions
|
|
11085
14427
|
});
|
|
11086
14428
|
if (agentKeyToUse) {
|
|
11087
|
-
const { streamAgentChatTurn } = await import("./agentSlice-
|
|
14429
|
+
const { streamAgentChatTurn } = await import("./agentSlice-RD2CDU7T.js");
|
|
11088
14430
|
await dispatch(
|
|
11089
14431
|
streamAgentChatTurn({
|
|
11090
14432
|
agentKey: agentKeyToUse,
|
|
@@ -11134,6 +14476,8 @@ var {
|
|
|
11134
14476
|
finalizeTransientMessageOnError,
|
|
11135
14477
|
prepareAndPersistMessage,
|
|
11136
14478
|
prepareAndPersistUserMessage,
|
|
14479
|
+
admitPendingUserMessages,
|
|
14480
|
+
runPendingUserBatchRequest,
|
|
11137
14481
|
initMsgs,
|
|
11138
14482
|
loadOlderMessages,
|
|
11139
14483
|
messageStreamEnd,
|
|
@@ -11633,6 +14977,27 @@ var calculatePrice = ({
|
|
|
11633
14977
|
};
|
|
11634
14978
|
};
|
|
11635
14979
|
|
|
14980
|
+
// packages/ai/token/platformBillingGate.ts
|
|
14981
|
+
var trimOrUndefined = (value) => {
|
|
14982
|
+
const trimmed = typeof value === "string" ? value.trim() : "";
|
|
14983
|
+
return trimmed || void 0;
|
|
14984
|
+
};
|
|
14985
|
+
function hasUsableCatalogPrice(provider, model) {
|
|
14986
|
+
if (!provider || !model) return false;
|
|
14987
|
+
const price = findModelConfig(provider, model)?.price;
|
|
14988
|
+
if (!price) return false;
|
|
14989
|
+
return (price.input ?? 0) > 0 || (price.output ?? 0) > 0;
|
|
14990
|
+
}
|
|
14991
|
+
function isTrustedPlatformBillingIdentity(input) {
|
|
14992
|
+
if (trimOrUndefined(input.apiSource) === "platform") return true;
|
|
14993
|
+
if (isBuiltinPlatformAgentKey(trimOrUndefined(input.agentId))) return true;
|
|
14994
|
+
if (trimOrUndefined(input.apiSource) !== void 0) return false;
|
|
14995
|
+
return isPlatformManagedProvider(
|
|
14996
|
+
trimOrUndefined(input.provider) ?? "",
|
|
14997
|
+
trimOrUndefined(input.model) ?? ""
|
|
14998
|
+
);
|
|
14999
|
+
}
|
|
15000
|
+
|
|
11636
15001
|
// packages/ai/token/resolveBillingTarget.ts
|
|
11637
15002
|
var normalizeString2 = (value) => {
|
|
11638
15003
|
const trimmed = asTrimmedString(value);
|
|
@@ -11663,6 +15028,15 @@ var resolveBillingTarget = ({
|
|
|
11663
15028
|
};
|
|
11664
15029
|
|
|
11665
15030
|
// packages/ai/token/prepareTokenUsageData.ts
|
|
15031
|
+
var warnedBillingTargetFallbacks = /* @__PURE__ */ new Set();
|
|
15032
|
+
function warnBillingTargetFallbackOnce(args) {
|
|
15033
|
+
const key = `${args.billedProvider ?? "?"}|${args.billedModel}->${args.fallbackProvider}|${args.fallbackModel}`;
|
|
15034
|
+
if (warnedBillingTargetFallbacks.has(key)) return;
|
|
15035
|
+
warnedBillingTargetFallbacks.add(key);
|
|
15036
|
+
console.warn(
|
|
15037
|
+
`[billing] billed target has no catalog price (provider=${args.billedProvider ?? "?"} model=${args.billedModel}); falling back to agent identity (provider=${args.fallbackProvider} model=${args.fallbackModel}). Fix the upstream billing alias \u2014 platform charges must never resolve to 0.`
|
|
15038
|
+
);
|
|
15039
|
+
}
|
|
11666
15040
|
function resolveTokenUsagePricing(args) {
|
|
11667
15041
|
const { rawUsage, agentConfig, nowMs } = args;
|
|
11668
15042
|
const usage = normalizeUsage(rawUsage);
|
|
@@ -11704,6 +15078,45 @@ function resolveTokenUsagePricing(args) {
|
|
|
11704
15078
|
sharingLevel: agentConfig.sharingLevel,
|
|
11705
15079
|
nowMs
|
|
11706
15080
|
});
|
|
15081
|
+
const agentIdentityModel = typeof agentConfig.model === "string" ? agentConfig.model.trim() : "";
|
|
15082
|
+
const agentIdentityProvider = typeof agentConfig.provider === "string" && agentConfig.provider.trim() ? agentConfig.provider.trim() : void 0;
|
|
15083
|
+
const isTrustedPlatformIdentity = isTrustedPlatformBillingIdentity({
|
|
15084
|
+
provider: agentIdentityProvider,
|
|
15085
|
+
model: agentIdentityModel,
|
|
15086
|
+
apiSource: agentConfig.apiSource,
|
|
15087
|
+
agentId: canonicalAgentId
|
|
15088
|
+
});
|
|
15089
|
+
const sameTarget = agentIdentityProvider === billedProvider && agentIdentityModel === billedModel;
|
|
15090
|
+
if (isTrustedPlatformIdentity && !hasUsableCatalogPrice(billedProvider, billedModel) && agentIdentityModel && !sameTarget && hasUsableCatalogPrice(agentIdentityProvider, agentIdentityModel)) {
|
|
15091
|
+
const agentProvider = agentIdentityProvider;
|
|
15092
|
+
const agentModel = agentIdentityModel;
|
|
15093
|
+
const fallbackPrice = calculatePrice({
|
|
15094
|
+
provider: agentProvider,
|
|
15095
|
+
modelName: agentModel,
|
|
15096
|
+
billingServiceTier: billedServiceTier,
|
|
15097
|
+
usage,
|
|
15098
|
+
externalPrice: void 0,
|
|
15099
|
+
sharingLevel: agentConfig.sharingLevel,
|
|
15100
|
+
nowMs
|
|
15101
|
+
});
|
|
15102
|
+
if (typeof fallbackPrice.cost === "number" && fallbackPrice.cost > 0) {
|
|
15103
|
+
warnBillingTargetFallbackOnce({
|
|
15104
|
+
billedProvider,
|
|
15105
|
+
billedModel,
|
|
15106
|
+
fallbackProvider: agentProvider ?? "",
|
|
15107
|
+
fallbackModel: agentModel
|
|
15108
|
+
});
|
|
15109
|
+
return {
|
|
15110
|
+
usage,
|
|
15111
|
+
billedProvider: agentProvider,
|
|
15112
|
+
billedModel: agentModel,
|
|
15113
|
+
billedServiceTier,
|
|
15114
|
+
cost: fallbackPrice.cost,
|
|
15115
|
+
pay: fallbackPrice.pay,
|
|
15116
|
+
hasExternalPrice
|
|
15117
|
+
};
|
|
15118
|
+
}
|
|
15119
|
+
}
|
|
11707
15120
|
return {
|
|
11708
15121
|
usage,
|
|
11709
15122
|
billedProvider,
|
|
@@ -12083,7 +15496,7 @@ var deleteOwnedDialogAttachments = async (args) => {
|
|
|
12083
15496
|
metadataReadFailures
|
|
12084
15497
|
});
|
|
12085
15498
|
if (!plan.deleteCandidates.length) return plan;
|
|
12086
|
-
const { deleteFileAction } = await import("./deleteFile-
|
|
15499
|
+
const { deleteFileAction } = await import("./deleteFile-Q3YDB4ML.js");
|
|
12087
15500
|
for (const candidate of plan.deleteCandidates) {
|
|
12088
15501
|
if (candidate.fileDbKey) {
|
|
12089
15502
|
await deleteFileAction(candidate.fileDbKey, args.thunkApi);
|
|
@@ -12145,7 +15558,7 @@ var deleteDialogThunk = async (payload, thunkApi) => {
|
|
|
12145
15558
|
}
|
|
12146
15559
|
if (isCurrentDialog) {
|
|
12147
15560
|
await thunkApi.dispatch(resetMsgs());
|
|
12148
|
-
const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-
|
|
15561
|
+
const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-LFNVUSAN.js");
|
|
12149
15562
|
dispatch(clearPendingAttachments2());
|
|
12150
15563
|
}
|
|
12151
15564
|
return { dialogKey, isCurrentDialog, attachmentPlan };
|
|
@@ -12153,39 +15566,39 @@ var deleteDialogThunk = async (payload, thunkApi) => {
|
|
|
12153
15566
|
|
|
12154
15567
|
// packages/chat/dialog/dialogSlice.ts
|
|
12155
15568
|
var runCreateDialogAction = async (args, thunkApi) => {
|
|
12156
|
-
const { createDialogAction } = await import("./createDialogAction-
|
|
15569
|
+
const { createDialogAction } = await import("./createDialogAction-UPN774AF.js");
|
|
12157
15570
|
return createDialogAction(args, thunkApi);
|
|
12158
15571
|
};
|
|
12159
15572
|
var runCreateAgentAutomationAction = async (args, thunkApi) => {
|
|
12160
|
-
const { createAgentAutomationAction } = await import("./createAgentAutomationAction-
|
|
15573
|
+
const { createAgentAutomationAction } = await import("./createAgentAutomationAction-UCLTHQRI.js");
|
|
12161
15574
|
return createAgentAutomationAction(args, thunkApi);
|
|
12162
15575
|
};
|
|
12163
15576
|
var runUpdateDialogTitleAction = async (args, thunkApi) => {
|
|
12164
|
-
const { updateDialogTitleAction } = await import("./updateDialogTitleAction-
|
|
15577
|
+
const { updateDialogTitleAction } = await import("./updateDialogTitleAction-KNPOAMVS.js");
|
|
12165
15578
|
return updateDialogTitleAction(args, thunkApi);
|
|
12166
15579
|
};
|
|
12167
15580
|
var runAddDialogAgentAction = async (args, thunkApi) => {
|
|
12168
|
-
const { addDialogAgentAction } = await import("./addDialogAgentAction-
|
|
15581
|
+
const { addDialogAgentAction } = await import("./addDialogAgentAction-CAKRU3ZT.js");
|
|
12169
15582
|
return addDialogAgentAction(args, thunkApi);
|
|
12170
15583
|
};
|
|
12171
15584
|
var runRemoveDialogAgentAction = async (args, thunkApi) => {
|
|
12172
|
-
const { removeDialogAgentAction } = await import("./removeDialogAgentAction-
|
|
15585
|
+
const { removeDialogAgentAction } = await import("./removeDialogAgentAction-B6H7DXFM.js");
|
|
12173
15586
|
return removeDialogAgentAction(args, thunkApi);
|
|
12174
15587
|
};
|
|
12175
15588
|
var runSetPrimaryDialogAgentAction = async (args, thunkApi) => {
|
|
12176
|
-
const { setPrimaryDialogAgentAction } = await import("./setPrimaryDialogAgentAction-
|
|
15589
|
+
const { setPrimaryDialogAgentAction } = await import("./setPrimaryDialogAgentAction-KPFVPHCJ.js");
|
|
12177
15590
|
return setPrimaryDialogAgentAction(args, thunkApi);
|
|
12178
15591
|
};
|
|
12179
15592
|
var runSwitchDialogAgentAction = async (args, thunkApi) => {
|
|
12180
|
-
const { switchDialogAgentAction } = await import("./switchDialogAgentAction-
|
|
15593
|
+
const { switchDialogAgentAction } = await import("./switchDialogAgentAction-SZ44XDRY.js");
|
|
12181
15594
|
return switchDialogAgentAction(args, thunkApi);
|
|
12182
15595
|
};
|
|
12183
15596
|
var runSetDialogExtraReferencesAction = async (args, thunkApi) => {
|
|
12184
|
-
const { setDialogExtraReferencesAction } = await import("./setDialogExtraReferencesAction-
|
|
15597
|
+
const { setDialogExtraReferencesAction } = await import("./setDialogExtraReferencesAction-EVCY3TRW.js");
|
|
12185
15598
|
return setDialogExtraReferencesAction(args, thunkApi);
|
|
12186
15599
|
};
|
|
12187
15600
|
var runHandleSendMessageAction = async (args, thunkApi) => {
|
|
12188
|
-
const { handleSendMessageAction } = await import("./handleSendMessageAction-
|
|
15601
|
+
const { handleSendMessageAction } = await import("./handleSendMessageAction-AAJOHXOB.js");
|
|
12189
15602
|
return handleSendMessageAction(args, thunkApi);
|
|
12190
15603
|
};
|
|
12191
15604
|
function clearDialogState() {
|
|
@@ -12198,7 +15611,7 @@ var createPageAndAddReference = createAsyncThunk(
|
|
|
12198
15611
|
async (payload, { dispatch, getState, rejectWithValue }) => {
|
|
12199
15612
|
const { slateData, jsonData, title, type, fileId, groupId, dialogKey } = payload;
|
|
12200
15613
|
try {
|
|
12201
|
-
const { createDocState } = await import("./docStore-
|
|
15614
|
+
const { createDocState } = await import("./docStore-2VAWVLWH.js");
|
|
12202
15615
|
const pageKey = await createDocState(
|
|
12203
15616
|
{ slateData, title },
|
|
12204
15617
|
{ dispatch, getState }
|
|
@@ -12363,6 +15776,10 @@ var selectCurrentDialogTokens = createSelector(
|
|
|
12363
15776
|
var selectTotalDialogTokens = selectCurrentDialogTokens;
|
|
12364
15777
|
|
|
12365
15778
|
export {
|
|
15779
|
+
normalizeRunCompletionShape,
|
|
15780
|
+
createTurnRequest,
|
|
15781
|
+
isAgentRunStatusNormal,
|
|
15782
|
+
isAgentRunStartFailureStatus,
|
|
12366
15783
|
uiAskChoiceFunctionSchema,
|
|
12367
15784
|
validateAskChoiceInput,
|
|
12368
15785
|
uiAskChoiceFunc,
|
|
@@ -12374,13 +15791,17 @@ export {
|
|
|
12374
15791
|
resolveOccupancyWindow,
|
|
12375
15792
|
resolveAgentContextWindow,
|
|
12376
15793
|
runtime_default,
|
|
15794
|
+
snapshotUserBatchInput,
|
|
15795
|
+
createUserBatchExecution,
|
|
15796
|
+
initialChatQueueState,
|
|
15797
|
+
createChatQueueRuntime,
|
|
15798
|
+
selectPendingUserMessages,
|
|
15799
|
+
selectAdmittedMessages,
|
|
12377
15800
|
toolResultNeedsUserConfirmation,
|
|
12378
15801
|
isAssistantToolStub,
|
|
12379
15802
|
fetchAndCacheMessages,
|
|
12380
|
-
resolveBuiltinPlatformAgentConfig,
|
|
12381
|
-
resolveBuiltinPlatformAgentRecord,
|
|
12382
|
-
applyBuiltinAgentRuntimeOverride,
|
|
12383
15803
|
toast,
|
|
15804
|
+
updateDialogSummaryAction,
|
|
12384
15805
|
buildDatabaseFileContentUrl,
|
|
12385
15806
|
normalizeAppRouteId,
|
|
12386
15807
|
PERSONALIZATION_DIALOG_CATEGORY,
|
|
@@ -12403,6 +15824,8 @@ export {
|
|
|
12403
15824
|
finalizeTransientMessageOnError,
|
|
12404
15825
|
prepareAndPersistMessage,
|
|
12405
15826
|
prepareAndPersistUserMessage,
|
|
15827
|
+
admitPendingUserMessages,
|
|
15828
|
+
runPendingUserBatchRequest,
|
|
12406
15829
|
initMsgs,
|
|
12407
15830
|
messageStreamEnd,
|
|
12408
15831
|
addToolMessage,
|