nolo-cli 0.32.0 → 0.33.0-alpha.3
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 +6 -12
- package/{_executeModel-LTMSIBS4.js → _executeModel-RWPVI3YV.js} +76 -67
- package/{action-HI3VRQLP.js → action-SMLG6OTB.js} +17 -15
- package/{addContentAction-NCURJ6PK.js → addContentAction-SFO244QN.js} +14 -13
- package/{addDialogAgentAction-RCY4ECF4.js → addDialogAgentAction-W44ZCEHB.js} +14 -13
- package/{agentDeleteCommand-D3MYZK6E.js → agentDeleteCommand-KU2RXQPP.js} +42 -59
- package/{agentEmailCommands-6BXS574I.js → agentEmailCommands-MPCMDENS.js} +89 -80
- package/{agentGrantCommands-E7ZZFRHK.js → agentGrantCommands-2LEZDADN.js} +2 -2
- package/{agentListCommands-SF3HEUTT.js → agentListCommands-EPD4N6FX.js} +73 -78
- package/{agentMachineCommands-YARVXRR6.js → agentMachineCommands-AF7C3YRT.js} +40 -57
- package/{agentPullCommand-ARSIDNVC.js → agentPullCommand-YH5GEBK4.js} +5 -5
- package/agentRecordCommands-EYE6MZZG.js +112 -0
- package/agentRunCommand-LL22SGTN.js +130 -0
- package/{agentRuntimeLocal-ATGJY6WC.js → agentRuntimeLocal-JX34G47Z.js} +35 -50
- package/{agentSlice-4XWW344Y.js → agentSlice-TNMFQQOV.js} +15 -13
- package/{appDeleteCommands-63JO7RXS.js → appDeleteCommands-43K5VXQB.js} +38 -55
- package/{appDeployCommands-Y7EWYUGM.js → appDeployCommands-FEEJSVDZ.js} +38 -55
- package/{appDeployStatusCommands-ZBEY3DWB.js → appDeployStatusCommands-H76CG45R.js} +38 -55
- package/{appGetCommands-QSSOSEYL.js → appGetCommands-MDZYFTYZ.js} +38 -55
- package/{appListCommands-PH3XWNDX.js → appListCommands-TUJJXPWG.js} +38 -55
- package/{authCommand-BBDHMSO6.js → authCommand-T7UK4CWS.js} +18 -18
- package/{authCommands-4UDEKRE6.js → authCommands-EAPFGNHN.js} +8 -8
- package/chatQueueReduxAdapter-LVQXC4ZY.js +180 -0
- package/chunk-2H3XIBY4.js +239 -0
- package/{chunk-TEYN42N3.js → chunk-2IVEXF7P.js} +11 -4
- package/{chunk-WTGCTVJG.js → chunk-2QTEYCR7.js} +3 -6
- package/{chunk-DOISARTV.js → chunk-2UECQ7RE.js} +1 -1
- package/{chunk-SWYMCHM7.js → chunk-37V5LNEQ.js} +69 -1
- package/{chunk-E3APEOIM.js → chunk-3GZXL6FM.js} +4 -19
- package/{chunk-O3JR45Q2.js → chunk-3VAQHAXT.js} +44 -44
- package/{chunk-O5OMJPPF.js → chunk-3WXRAHCG.js} +6 -5
- package/{chunk-LAXMH7JY.js → chunk-57QJXIB6.js} +18 -15
- package/chunk-5CS33IBL.js +301 -0
- package/{chunk-3UGKATZQ.js → chunk-5SBK2MTI.js} +8 -369
- package/chunk-6PO2SYCS.js +1800 -0
- package/{chunk-TA6EA2A3.js → chunk-6SXC35F4.js} +182 -20
- package/{chunk-MXFQHRSS.js → chunk-6XIE5ZGI.js} +1 -1
- package/{chunk-3GZT3L6F.js → chunk-73GINUCW.js} +326 -481
- package/{chunk-VMWR7VNI.js → chunk-7E72JMBB.js} +7 -7
- package/{chunk-4PNU7W7K.js → chunk-AAGCMVFT.js} +106 -124
- package/chunk-ADLYMQB6.js +642 -0
- package/{chunk-ZWJOGMKH.js → chunk-AETZ7AD6.js} +1 -1
- package/{chunk-UDA3ZYLW.js → chunk-AFV4FOT2.js} +70 -24
- package/{chunk-BGTUGS3T.js → chunk-AOXVOC6D.js} +4 -30
- package/{chunk-2ZRP5RUG.js → chunk-B2BSG6QQ.js} +12 -11
- package/{chunk-44HACRCK.js → chunk-BANYWEYY.js} +4 -4
- package/{chunk-TOW4E763.js → chunk-BJIRLHJR.js} +2 -0
- package/{chunk-ZJ2WITOO.js → chunk-BQXOGBFN.js} +2 -2
- package/{chunk-G5GVZAXF.js → chunk-CLP2K7U4.js} +15 -19
- package/{chunk-2K4NDPT5.js → chunk-DFUPZE6V.js} +20 -12
- package/{chunk-YHGHADBQ.js → chunk-DPMBNHOJ.js} +4 -4
- package/chunk-EGRJC4ZN.js +91 -0
- package/{chunk-K6QEHQZ3.js → chunk-EKLRRZIN.js} +1 -1
- package/{chunk-XFG3BAKN.js → chunk-FMEVI5TG.js} +65 -0
- package/{chunk-RH53LMEJ.js → chunk-FSSX3XRY.js} +2 -4
- package/{chunk-VP4WJWKW.js → chunk-GM6PU7B6.js} +431 -345
- package/{chunk-EEF23OOK.js → chunk-GMXWYXAF.js} +7 -7
- package/{chunk-SFWZUTCI.js → chunk-GTYM4HKV.js} +1 -1
- package/{chunk-MITD7CON.js → chunk-HDKRSRYU.js} +1461 -301
- package/chunk-HS7MLR74.js +38 -0
- package/{chunk-3AUWC6EM.js → chunk-HUCT7HID.js} +5 -84
- package/{chunk-PTHDLIRB.js → chunk-I6N2UVVY.js} +1 -1
- package/chunk-IDAU4UFS.js +437 -0
- package/{chunk-Q76I4SXI.js → chunk-IHEC7VBF.js} +1 -1
- package/{chunk-OWHNFZNW.js → chunk-IL545V3E.js} +4 -4
- package/{chunk-3LY4F7SV.js → chunk-INZZJSQF.js} +348 -331
- package/{chunk-CF2WZF4N.js → chunk-J6WH4PYZ.js} +0 -8
- package/{chunk-2HXKAPH7.js → chunk-JMPYDFHY.js} +6 -6
- package/{chunk-V54H24CQ.js → chunk-JTSGWTYZ.js} +3 -3
- package/{chunk-ATK5WJOA.js → chunk-JZ5AMMXU.js} +4 -4
- package/chunk-KHCLMKZZ.js +3062 -0
- package/{chunk-WHLVPK32.js → chunk-KMSZPTM6.js} +27 -3
- package/{chunk-L3GCUVOH.js → chunk-KSRFVP36.js} +1 -1
- package/{chunk-DLWCWUNW.js → chunk-LOD75GOS.js} +336 -32
- package/{chunk-UOJRKY5J.js → chunk-M2YMQOLC.js} +44 -53
- package/chunk-M3JEW6N6.js +193 -0
- package/{chunk-XDHHF73Q.js → chunk-M4NC7NF6.js} +95 -95
- package/{chunk-3FCNXC2J.js → chunk-MPZJVZDC.js} +3735 -1394
- package/{chunk-IXZX5CJK.js → chunk-MQRZ5QUH.js} +1 -1
- package/{chunk-3ASDTTEI.js → chunk-MRWGHF56.js} +2 -0
- package/{chunk-D34RI6NI.js → chunk-NNWHHCVP.js} +75 -1
- package/{chunk-6YABCOFU.js → chunk-NUO3QFWD.js} +1 -1
- package/{chunk-GAF5X6B7.js → chunk-O6GEBMIY.js} +269 -309
- package/{chunk-CAENRKNJ.js → chunk-OR2HNLVO.js} +126 -88
- package/chunk-OW765XBU.js +10 -0
- package/chunk-PREQU5QV.js +231 -0
- package/{chunk-Q3CSL43H.js → chunk-Q5ITEGIN.js} +1 -1
- package/{chunk-7S54ZGF6.js → chunk-RAZOLMJR.js} +256 -12
- package/chunk-RCFIB45Q.js +28 -0
- package/chunk-RY57GLGW.js +188 -0
- package/{chunk-KGEVMUMI.js → chunk-TFPUAELY.js} +11 -11
- package/{chunk-ZJH3LKEW.js → chunk-UK5JGQVU.js} +94 -15
- package/chunk-URMS4XY2.js +10 -0
- package/{chunk-RXVX5LFR.js → chunk-VH2F7ZB6.js} +1 -1
- package/chunk-VIDPVFP3.js +20 -0
- package/{chunk-W367V5CH.js → chunk-WHD6BG7M.js} +400 -115
- package/{chunk-5RDLGLAP.js → chunk-WJSW43QZ.js} +4 -7
- package/{chunk-CF7S2RYZ.js → chunk-WLH5BAKX.js} +6 -6
- package/{chunk-VVEH6XUE.js → chunk-X2DAEZ3X.js} +1 -1
- package/{chunk-2IJAKBK2.js → chunk-X664KVEV.js} +426 -246
- package/{chunk-43EPBPZ2.js → chunk-XCCGU6QB.js} +2 -2
- package/chunk-Y5GCAMGP.js +9 -0
- package/{chunk-V42OE5HT.js → chunk-YDTYDA5W.js} +3 -3
- package/chunk-YYLHWIW6.js +48 -0
- package/{chunk-AOS5IN2I.js → chunk-ZHYK3N56.js} +1 -1
- package/{chunk-ODS2MVMU.js → chunk-ZJMME4DS.js} +19 -303
- package/{chunk-PJ2DDQQM.js → chunk-ZURFOV5J.js} +2 -2
- package/chunk-ZZ2MH7LE.js +84 -0
- package/{cliExecutor-BBUVQU4L.js → cliExecutor-DW3PHGEL.js} +2 -2
- package/{clipboardy-BVE3LVEH.js → clipboardy-MMBYVRLF.js} +166 -372
- package/{codingSkills-V35TRR4Y.js → codingSkills-DY5MINPG.js} +5 -4
- package/{createAgentAutomationAction-WLRNE7C4.js → createAgentAutomationAction-INQT23LX.js} +40 -31
- package/createDialogAction-LDCPDI73.js +60 -0
- package/{createPageAction-7YROVZ3W.js → createPageAction-5YXOG2M4.js} +56 -47
- package/{db-6DPSJ6WT.js → db-3H3JECGY.js} +45 -5
- package/{dbSlice-BBL3PEVW.js → dbSlice-3SD5L5H2.js} +13 -12
- package/{deleteFile-RJTEPOT4.js → deleteFile-XQXPBFFB.js} +7 -6
- package/dialogCommands-CHJO47AX.js +81 -0
- package/{dialogSlice-N4HPG6HM.js → dialogSlice-DOWKOILN.js} +36 -29
- package/{docCreateCommands-GRA5BHSA.js → docCreateCommands-OVZARUFX.js} +40 -55
- package/{docDeleteCommands-ONIJM5MD.js → docDeleteCommands-E2XJ62LD.js} +42 -57
- package/{docReadCommands-H55VQ2US.js → docReadCommands-I7OSREPJ.js} +40 -55
- package/{docStore-B5AHDNW5.js → docStore-UAWSKZ2Y.js} +39 -30
- package/{docUpdateCommands-ZQIQVGC2.js → docUpdateCommands-X4Z26VJM.js} +43 -58
- package/{fetchMessages-VPPQDDZ4.js → fetchMessages-7QRCCRYK.js} +3 -3
- package/{getPricing-QO5TYNCK.js → getPricing-L2ENXWHV.js} +7 -6
- package/{handleSendMessageAction-IN5XX5U7.js → handleSendMessageAction-C3TSDWKH.js} +38 -31
- package/index.js +67 -67
- package/{lib-FYYBQIXS.js → lib-2ZTNRXR4.js} +432 -183
- package/{localDialogRead-3DBXVYXS.js → localDialogRead-SLMPV5SK.js} +2 -2
- package/{localRuntimeAuthority-NDUA2D7Y.js → localRuntimeAuthority-E3R24J4T.js} +4 -2
- package/{localRuntimeDb-GKYRBWLQ.js → localRuntimeDb-DDZCJFQZ.js} +1 -1
- package/{machineCommands-H3UMKE76.js → machineCommands-BUOIYJAD.js} +93 -84
- package/{machineWsRunDispatch-HONRUK3R.js → machineWsRunDispatch-7CRWAA6O.js} +83 -74
- package/{models-WDUTTYFS.js → models-OX2S5C6Q.js} +2 -2
- package/{offlineMarxistsAgentCommand-E6LUG63A.js → offlineMarxistsAgentCommand-GEH6SNNA.js} +1 -1
- package/package.json +1 -4
- package/{read-64OQDO3I.js → read-6G73BMEY.js} +8 -7
- package/{readDocTool-MXM3T6PE.js → readDocTool-DK4EI2GA.js} +1 -2
- package/{readlineWorkspace-XVJZDCSC.js → readlineWorkspace-ZDWEASJV.js} +265 -428
- package/{removeDialogAgentAction-NEKVAMSH.js → removeDialogAgentAction-E7H557UO.js} +19 -17
- package/{runAgentClientLoop-H7U53QB6.js → runAgentClientLoop-U7HYA3O5.js} +72 -64
- package/{runtimeDoctorCommands-WI2YZUSJ.js → runtimeDoctorCommands-KIKM6BIO.js} +5 -5
- package/{setDialogExtraReferencesAction-WTOHQDIV.js → setDialogExtraReferencesAction-RMMGBR5F.js} +15 -14
- package/{setPrimaryDialogAgentAction-LDJOYC4F.js → setPrimaryDialogAgentAction-FWBKKLVA.js} +19 -17
- package/{settingSlice-4M37TN7V.js → settingSlice-73PV4KG4.js} +16 -14
- package/{skillDiscovery-5U6RYAHN.js → skillDiscovery-KLLKXPUO.js} +4 -4
- package/{slateUtils-2M7MUTWX.js → slateUtils-VO2FU36K.js} +1 -1
- package/{spaceCommands-7VVKJBDV.js → spaceCommands-GEWZXGHM.js} +43 -240
- package/{spaceSlice-T6YK6D34.js → spaceSlice-B6MOVY4N.js} +38 -61
- package/{streamAgentChatTurn-RQ63QFQ7.js → streamAgentChatTurn-T527EQTT.js} +1261 -150
- package/{switchDialogAgentAction-XVWGKR2Z.js → switchDialogAgentAction-US6QNL3N.js} +14 -13
- package/syncMapping-RK2MANUX.js +43 -0
- package/{tableCommands-RJZ3V4TF.js → tableCommands-QE47K72R.js} +8 -7
- package/{toolApiClient-ARGFDJAG.js → toolApiClient-B2MFXMEG.js} +3 -3
- package/tools-XMWCVMPM.js +98 -0
- package/{tuiSummaryLlmCaller-SRZ4QQUP.js → tuiSummaryLlmCaller-NCAJSVSD.js} +24 -21
- package/{updateDialogTitleAction-BBDSWHNG.js → updateDialogTitleAction-XPJZRJEL.js} +48 -38
- package/agentRecordCommands-JFZRQJQ4.js +0 -103
- package/agentRunCommand-NOX5FLKO.js +0 -121
- package/chunk-AYMOSAHE.js +0 -3158
- package/chunk-D2BPX6DQ.js +0 -1707
- package/chunk-DCDL3GC4.js +0 -171
- package/chunk-F3MP7CP6.js +0 -73
- package/chunk-WZSRQNQG.js +0 -2587
- package/createDialogAction-Y6YV64QB.js +0 -52
- package/dialogCommands-XLO5CAHZ.js +0 -95
- package/tools-KYZX3BGO.js +0 -90
- package/{chunk-Z5MXSEOJ.js → chunk-RQSOAMPJ.js} +2 -2
- package/{chunk-JDSUTNYY.js → chunk-SAQQLJZ5.js} +3 -3
|
@@ -4,75 +4,48 @@ import {
|
|
|
4
4
|
isGatewayHttpStatus,
|
|
5
5
|
normalizeNonNegativeMs,
|
|
6
6
|
parseRetryAfterHeaderMs
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import {
|
|
9
|
-
TASK_PREVIEW_MAX,
|
|
10
|
-
buildDelegatedTaskContent,
|
|
11
|
-
formatListRunsCard,
|
|
12
|
-
formatStartRunCard,
|
|
13
|
-
formatStatusRunCard,
|
|
14
|
-
formatStopRunCard,
|
|
15
|
-
resolveRunLabel
|
|
16
|
-
} from "./chunk-KXKQO4Q6.js";
|
|
7
|
+
} from "./chunk-RQSOAMPJ.js";
|
|
17
8
|
import {
|
|
9
|
+
isAgentUnavailableNow,
|
|
18
10
|
sortSafeAgentSummaries,
|
|
19
11
|
toSafeAgentSummary
|
|
20
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-2IVEXF7P.js";
|
|
21
13
|
import {
|
|
22
14
|
getUserDataItemTimestamp,
|
|
23
15
|
mergeAndDedupUserData
|
|
24
16
|
} from "./chunk-KQHGZWSV.js";
|
|
25
|
-
import {
|
|
26
|
-
NOLO_WORKSPACE_TOOL_NAMES,
|
|
27
|
-
ToolResultError,
|
|
28
|
-
buildAgentRuntimeAgentLookupKeys,
|
|
29
|
-
buildNoloSubjectRefQueryTarget,
|
|
30
|
-
buildNoloTableQueryRequest,
|
|
31
|
-
clampNoloPositiveInteger,
|
|
32
|
-
clipMultilineText,
|
|
33
|
-
fetchAndSerializeTable,
|
|
34
|
-
filterNoloDialogSubjectRefEvidence,
|
|
35
|
-
getNoloComparableUpdatedAt,
|
|
36
|
-
getNoloDialogIdFromKey,
|
|
37
|
-
isAgentSkillDisabled,
|
|
38
|
-
listBuiltinSkills,
|
|
39
|
-
normalizeNoloExcludeDialogIds,
|
|
40
|
-
normalizeNoloSpaceInput,
|
|
41
|
-
redactAgentRecordForWorkspaceTool,
|
|
42
|
-
resolveBuiltinSkillByName,
|
|
43
|
-
resolveNoloDialogInput,
|
|
44
|
-
toolRunUpdated,
|
|
45
|
-
verifyNoloDialogSubjectRefQuery
|
|
46
|
-
} from "./chunk-D2BPX6DQ.js";
|
|
47
|
-
import {
|
|
48
|
-
createDocState
|
|
49
|
-
} from "./chunk-EEF23OOK.js";
|
|
50
|
-
import {
|
|
51
|
-
setDialogExtraReferencesAction
|
|
52
|
-
} from "./chunk-43EPBPZ2.js";
|
|
53
17
|
import {
|
|
54
18
|
readDocFunc,
|
|
55
19
|
readDocFunctionSchema,
|
|
56
20
|
readPageFunc,
|
|
57
|
-
readPageFunctionSchema
|
|
58
|
-
} from "./chunk-F3MP7CP6.js";
|
|
59
|
-
import {
|
|
21
|
+
readPageFunctionSchema,
|
|
60
22
|
slateToSimplifiedMarkdown
|
|
61
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-37V5LNEQ.js";
|
|
62
24
|
import {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
callToolApi,
|
|
66
|
-
getRequestConfig,
|
|
67
|
-
getToolBaseUrl,
|
|
68
|
-
getToolRequestContext
|
|
69
|
-
} from "./chunk-44HACRCK.js";
|
|
25
|
+
markdownToSlate
|
|
26
|
+
} from "./chunk-INZZJSQF.js";
|
|
70
27
|
import {
|
|
71
|
-
|
|
72
|
-
} from "./chunk-
|
|
28
|
+
extractMentionsFromSlate
|
|
29
|
+
} from "./chunk-GM6PU7B6.js";
|
|
73
30
|
import {
|
|
74
|
-
|
|
75
|
-
} from "./chunk-
|
|
31
|
+
slateToRenderMarkdown
|
|
32
|
+
} from "./chunk-63W5N6P3.js";
|
|
33
|
+
import {
|
|
34
|
+
isSkillSummaryMarker
|
|
35
|
+
} from "./chunk-VF4K2QE6.js";
|
|
36
|
+
import {
|
|
37
|
+
createDocState
|
|
38
|
+
} from "./chunk-GMXWYXAF.js";
|
|
39
|
+
import {
|
|
40
|
+
setDialogExtraReferencesAction
|
|
41
|
+
} from "./chunk-XCCGU6QB.js";
|
|
42
|
+
import {
|
|
43
|
+
BUILTIN_OBJECT_SKILL_IDS,
|
|
44
|
+
buildBuiltinObjectSkillConfig,
|
|
45
|
+
buildBuiltinObjectSkillDbKey,
|
|
46
|
+
buildBuiltinObjectSkillPageContent,
|
|
47
|
+
createDialogAction
|
|
48
|
+
} from "./chunk-6SXC35F4.js";
|
|
76
49
|
import {
|
|
77
50
|
addCategory,
|
|
78
51
|
addContentToSpace,
|
|
@@ -80,16 +53,19 @@ import {
|
|
|
80
53
|
createTable,
|
|
81
54
|
deleteDbKey,
|
|
82
55
|
deleteSpace,
|
|
56
|
+
fetchAndCacheTableRows,
|
|
83
57
|
fetchUserData,
|
|
58
|
+
getAllMemberSpaces,
|
|
59
|
+
getCurrentSpaceId,
|
|
60
|
+
getCurrentSpaceIdRaw,
|
|
61
|
+
getViewMode,
|
|
84
62
|
i18nBaseConfig,
|
|
85
63
|
initReactI18next,
|
|
86
64
|
instance,
|
|
87
65
|
loadTableRows,
|
|
88
|
-
selectAllMemberSpaces,
|
|
89
|
-
selectCurrentSpaceId,
|
|
90
66
|
updateContentCategory,
|
|
91
67
|
updateContentTitle
|
|
92
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-MPZJVZDC.js";
|
|
93
69
|
import {
|
|
94
70
|
incrementFailedSteps,
|
|
95
71
|
incrementStepsExecuted,
|
|
@@ -103,54 +79,104 @@ import {
|
|
|
103
79
|
uiAskChoiceFunc,
|
|
104
80
|
uiAskChoiceFunctionSchema,
|
|
105
81
|
updateStep
|
|
106
|
-
} from "./chunk-
|
|
107
|
-
import {
|
|
108
|
-
buildDatabaseFileContentUrl
|
|
109
|
-
} from "./chunk-BGTUGS3T.js";
|
|
82
|
+
} from "./chunk-73GINUCW.js";
|
|
110
83
|
import {
|
|
111
84
|
createAgent,
|
|
112
85
|
runLlm,
|
|
113
86
|
streamAgentChatTurn,
|
|
114
87
|
updateAgent
|
|
115
|
-
} from "./chunk-
|
|
88
|
+
} from "./chunk-ZJMME4DS.js";
|
|
116
89
|
import {
|
|
117
|
-
|
|
118
|
-
|
|
90
|
+
NOLO_WORKSPACE_TOOL_NAMES,
|
|
91
|
+
buildAgentRuntimeAgentLookupKeys,
|
|
92
|
+
buildNoloSubjectRefQueryTarget,
|
|
93
|
+
buildNoloTableQueryRequest,
|
|
94
|
+
clampNoloPositiveInteger,
|
|
95
|
+
filterNoloDialogSubjectRefEvidence,
|
|
96
|
+
getNoloComparableUpdatedAt,
|
|
97
|
+
getNoloDialogIdFromKey,
|
|
98
|
+
normalizeNoloExcludeDialogIds,
|
|
99
|
+
normalizeNoloSpaceInput,
|
|
100
|
+
redactAgentRecordForWorkspaceTool,
|
|
101
|
+
resolveNoloDialogInput,
|
|
102
|
+
verifyNoloDialogSubjectRefQuery
|
|
103
|
+
} from "./chunk-ADLYMQB6.js";
|
|
119
104
|
import {
|
|
120
|
-
|
|
121
|
-
} from "./chunk-
|
|
105
|
+
buildDatabaseFileContentUrl
|
|
106
|
+
} from "./chunk-AOXVOC6D.js";
|
|
107
|
+
import {
|
|
108
|
+
DEFAULT_MODEL
|
|
109
|
+
} from "./chunk-DFUPZE6V.js";
|
|
110
|
+
import {
|
|
111
|
+
CODING_SKILL_SLUGS,
|
|
112
|
+
buildCodingSkillConfig,
|
|
113
|
+
buildCodingSkillContentBySlug,
|
|
114
|
+
buildCodingSkillId,
|
|
115
|
+
buildCodingSkillPageKey
|
|
116
|
+
} from "./chunk-HUCT7HID.js";
|
|
117
|
+
import {
|
|
118
|
+
CAPABILITY_PACKS
|
|
119
|
+
} from "./chunk-WLH5BAKX.js";
|
|
120
|
+
import {
|
|
121
|
+
buildSkillDocMarkdown,
|
|
122
|
+
normalizeSkillModalities,
|
|
123
|
+
normalizeStringArray,
|
|
124
|
+
parseExternalSkillMarkdown,
|
|
125
|
+
parseSkillDocProtocol,
|
|
126
|
+
resolvePageSkillMetadata
|
|
127
|
+
} from "./chunk-AETZ7AD6.js";
|
|
128
|
+
import {
|
|
129
|
+
canonicalizeToolName,
|
|
130
|
+
canonicalizeToolNames
|
|
131
|
+
} from "./chunk-ZZ2MH7LE.js";
|
|
132
|
+
import {
|
|
133
|
+
ToolApiError,
|
|
134
|
+
buildToolRequestHeaders,
|
|
135
|
+
callToolApi,
|
|
136
|
+
getRequestConfig,
|
|
137
|
+
getToolBaseUrl,
|
|
138
|
+
getToolRequestContext
|
|
139
|
+
} from "./chunk-BANYWEYY.js";
|
|
122
140
|
import {
|
|
123
141
|
getActiveDialogKey,
|
|
142
|
+
require_react,
|
|
124
143
|
selectCurrentDialogKey,
|
|
125
144
|
selectPendingRawDataByPageKey
|
|
126
|
-
} from "./chunk-
|
|
145
|
+
} from "./chunk-MRWGHF56.js";
|
|
127
146
|
import {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
normalizeSpaceId
|
|
131
|
-
} from "./chunk-V54H24CQ.js";
|
|
132
|
-
import {
|
|
133
|
-
DEFAULT_MODEL
|
|
134
|
-
} from "./chunk-2K4NDPT5.js";
|
|
147
|
+
compactWhitespace
|
|
148
|
+
} from "./chunk-DWLEOOGR.js";
|
|
135
149
|
import {
|
|
136
|
-
|
|
137
|
-
|
|
150
|
+
TASK_PREVIEW_MAX,
|
|
151
|
+
buildDelegatedTaskContent,
|
|
152
|
+
formatListRunsCard,
|
|
153
|
+
formatStartRunCard,
|
|
154
|
+
formatStatusRunCard,
|
|
155
|
+
formatStopRunCard,
|
|
156
|
+
resolveRunLabel
|
|
157
|
+
} from "./chunk-KXKQO4Q6.js";
|
|
138
158
|
import {
|
|
139
|
-
|
|
140
|
-
} from "./chunk-
|
|
159
|
+
toErrorMessage
|
|
160
|
+
} from "./chunk-HNMXYYJR.js";
|
|
141
161
|
import {
|
|
142
162
|
shareResourceAction
|
|
143
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-TFPUAELY.js";
|
|
144
164
|
import {
|
|
145
165
|
AGENT_UPDATE_FIELD_NAMES,
|
|
166
|
+
nolotusId,
|
|
146
167
|
normalizeAgentUpdateFieldList,
|
|
147
168
|
selectAutoApproveSelfUpdateFields,
|
|
148
169
|
selectCurrentServer,
|
|
149
170
|
selectSyncServers
|
|
150
|
-
} from "./chunk-
|
|
171
|
+
} from "./chunk-CLP2K7U4.js";
|
|
151
172
|
import {
|
|
152
173
|
asRecordOrEmpty
|
|
153
174
|
} from "./chunk-KX6YBIHG.js";
|
|
175
|
+
import {
|
|
176
|
+
addContentAction,
|
|
177
|
+
createSpaceKey,
|
|
178
|
+
normalizeSpaceId
|
|
179
|
+
} from "./chunk-JTSGWTYZ.js";
|
|
154
180
|
import {
|
|
155
181
|
patch,
|
|
156
182
|
read,
|
|
@@ -159,16 +185,33 @@ import {
|
|
|
159
185
|
selectById,
|
|
160
186
|
toTimestampMs,
|
|
161
187
|
write
|
|
162
|
-
} from "./chunk-
|
|
188
|
+
} from "./chunk-57QJXIB6.js";
|
|
189
|
+
import {
|
|
190
|
+
SEPARATOR,
|
|
191
|
+
createAgentKey,
|
|
192
|
+
dialogMessageRange,
|
|
193
|
+
fileKey,
|
|
194
|
+
isAgentKey,
|
|
195
|
+
isTableMetaKey,
|
|
196
|
+
metaKey,
|
|
197
|
+
rowKey,
|
|
198
|
+
toTrimmedString,
|
|
199
|
+
ulid
|
|
200
|
+
} from "./chunk-KMSZPTM6.js";
|
|
201
|
+
import {
|
|
202
|
+
asOptionalFiniteNumber
|
|
203
|
+
} from "./chunk-WWC7I6TA.js";
|
|
204
|
+
import {
|
|
205
|
+
asNonEmptyStringArray,
|
|
206
|
+
asTrimmedNonEmptyStringArray
|
|
207
|
+
} from "./chunk-I42VC5KR.js";
|
|
163
208
|
import {
|
|
164
209
|
asTrimmedLowercaseString
|
|
165
210
|
} from "./chunk-QSJ3HFEF.js";
|
|
166
211
|
import {
|
|
212
|
+
DEFAULT_CODE_PLANNER_EXECUTOR_CANDIDATE_KEYS,
|
|
167
213
|
readAction
|
|
168
|
-
} from "./chunk-
|
|
169
|
-
import {
|
|
170
|
-
extractCustomId
|
|
171
|
-
} from "./chunk-TOW4E763.js";
|
|
214
|
+
} from "./chunk-UK5JGQVU.js";
|
|
172
215
|
import {
|
|
173
216
|
createAsyncThunk,
|
|
174
217
|
getRuntimeServerContext,
|
|
@@ -177,65 +220,34 @@ import {
|
|
|
177
220
|
selectIdentityUserBalance,
|
|
178
221
|
selectIdentityUserId,
|
|
179
222
|
selectRuntimeSnapshot
|
|
180
|
-
} from "./chunk-
|
|
223
|
+
} from "./chunk-X664KVEV.js";
|
|
181
224
|
import {
|
|
182
225
|
isAbortError
|
|
183
|
-
} from "./chunk-
|
|
184
|
-
import {
|
|
185
|
-
API_ENDPOINTS
|
|
186
|
-
} from "./chunk-LCBAMY2M.js";
|
|
187
|
-
import {
|
|
188
|
-
DEFAULT_LOCAL_API_ORIGIN
|
|
189
|
-
} from "./chunk-4SN6J65J.js";
|
|
190
|
-
import {
|
|
191
|
-
normalizeServerOrigin
|
|
192
|
-
} from "./chunk-CF7PE763.js";
|
|
193
|
-
import {
|
|
194
|
-
extractMentionsFromSlate
|
|
195
|
-
} from "./chunk-VP4WJWKW.js";
|
|
196
|
-
import {
|
|
197
|
-
SEPARATOR,
|
|
198
|
-
createAgentKey,
|
|
199
|
-
dialogMessageRange,
|
|
200
|
-
fileKey,
|
|
201
|
-
isAgentKey,
|
|
202
|
-
isTableMetaKey,
|
|
203
|
-
metaKey,
|
|
204
|
-
rowKey,
|
|
205
|
-
toTrimmedString,
|
|
206
|
-
ulid
|
|
207
|
-
} from "./chunk-WHLVPK32.js";
|
|
208
|
-
import {
|
|
209
|
-
asOptionalFiniteNumber
|
|
210
|
-
} from "./chunk-WWC7I6TA.js";
|
|
226
|
+
} from "./chunk-WJSW43QZ.js";
|
|
211
227
|
import {
|
|
212
228
|
asTrimmedString
|
|
213
229
|
} from "./chunk-3EUW3WEO.js";
|
|
230
|
+
import {
|
|
231
|
+
extractCustomId
|
|
232
|
+
} from "./chunk-BJIRLHJR.js";
|
|
214
233
|
import {
|
|
215
234
|
isRecord
|
|
216
235
|
} from "./chunk-KUG52IAP.js";
|
|
217
236
|
import {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
} from "./chunk-3AUWC6EM.js";
|
|
221
|
-
import {
|
|
222
|
-
CAPABILITY_PACKS
|
|
223
|
-
} from "./chunk-CF7S2RYZ.js";
|
|
237
|
+
API_ENDPOINTS
|
|
238
|
+
} from "./chunk-LCBAMY2M.js";
|
|
224
239
|
import {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
normalizeStringArray,
|
|
228
|
-
parseExternalSkillMarkdown,
|
|
229
|
-
parseSkillDocProtocol,
|
|
230
|
-
resolvePageSkillMetadata
|
|
231
|
-
} from "./chunk-ZWJOGMKH.js";
|
|
240
|
+
DEFAULT_LOCAL_API_ORIGIN
|
|
241
|
+
} from "./chunk-4SN6J65J.js";
|
|
232
242
|
import {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
} from "./chunk-I42VC5KR.js";
|
|
243
|
+
normalizeServerOrigin
|
|
244
|
+
} from "./chunk-CF7PE763.js";
|
|
236
245
|
import {
|
|
237
246
|
asOptionalTrimmedString
|
|
238
247
|
} from "./chunk-G3SUCT4W.js";
|
|
248
|
+
import {
|
|
249
|
+
__toESM
|
|
250
|
+
} from "./chunk-4VNS5WPM.js";
|
|
239
251
|
|
|
240
252
|
// packages/ai/workflow/workflowExecutor.ts
|
|
241
253
|
function resolveTemplates(value, results) {
|
|
@@ -521,10 +533,16 @@ async function createWorkflowFunc(args, thunkApi) {
|
|
|
521
533
|
// packages/ai/tools/modelUsageTools.ts
|
|
522
534
|
var queryModelUsageFunctionSchema = {
|
|
523
535
|
name: "queryModelUsage",
|
|
524
|
-
description: "\u67E5\u8BE2\u6A21\u578B/API \u7528\u91CF\u4E0E\u8D39\u7528\u3002\u666E\u901A\u7528\u6237\u53EA\u80FD\u67E5\u81EA\u5DF1\u7684\u7528\u91CF\uFF1B\u7CFB\u7EDF\u7BA1\u7406\u5458\u53EF\u4EE5\u67E5\u6307\u5B9A\u7528\u6237\u6216\u5168\u7AD9\u3002\u8D39\u7528\u9ED8\u8BA4\u8FD4\u56DE credits\uFF0C\u4E5F\u53EF\u9644\u5E26 USD \u6362\u7B97\u3002",
|
|
536
|
+
description: "\u67E5\u8BE2\u6A21\u578B/API \u7528\u91CF\u4E0E\u8D39\u7528\uFF0C\u4EE5\u53CA token \u4F7F\u7528\u91CF\u7684\u5206\u6790\u89C6\u56FE\uFF08cache hit rate\u3001output/input ratio\u3001\u6309\u6A21\u578B/agent/\u5165\u53E3\u5207\u7247\u3001pricing what-if \u6A21\u62DF\u3001break-even cache hit \u8BA1\u7B97\uFF09\u3002\u666E\u901A\u7528\u6237\u53EA\u80FD\u67E5\u81EA\u5DF1\u7684\u7528\u91CF\uFF1B\u7CFB\u7EDF\u7BA1\u7406\u5458\u53EF\u4EE5\u67E5\u6307\u5B9A\u7528\u6237\u6216\u5168\u7AD9\u3002\u8D39\u7528\u9ED8\u8BA4\u8FD4\u56DE credits\uFF0C\u4E5F\u53EF\u9644\u5E26 USD \u6362\u7B97\u3002\u6570\u636E\u6765\u6E90\u662F TokenRecord \u7684\u53EA\u8BFB\u6295\u5F71\uFF0C\u4E0D\u5F71\u54CD\u8BA1\u8D39\u3002",
|
|
525
537
|
parameters: {
|
|
526
538
|
type: "object",
|
|
527
539
|
properties: {
|
|
540
|
+
analysisType: {
|
|
541
|
+
type: "string",
|
|
542
|
+
enum: ["billing", "workload", "cacheBreakdown", "pricingReplay", "breakEven", "prefixChurn"],
|
|
543
|
+
description: "\u5206\u6790\u7C7B\u578B\u3002billing=\u7528\u91CF\u8D39\u7528\u7EDF\u8BA1\uFF08\u9ED8\u8BA4\uFF0C\u5411\u540E\u517C\u5BB9\uFF09\uFF1Bworkload=cache hit/output-input ratio \u6307\u7EB9\uFF1BcacheBreakdown=\u6309\u6A21\u578B/agent/\u5165\u53E3\u7684 cache hit \u5206\u7EC4\uFF1BpricingReplay=\u8F93\u5165\u5B9A\u4EF7\u65B9\u6848 \xD7 \u5386\u53F2 workload = counterfactual \u6210\u672C\u5BF9\u6BD4\uFF1BbreakEven=\u4E24\u4E2A\u5B9A\u4EF7\u65B9\u6848\u7684 break-even cache hit rate\uFF1BprefixChurn=stable prefix \u53D8\u66F4\u8BCA\u65AD\u3002",
|
|
544
|
+
default: "billing"
|
|
545
|
+
},
|
|
528
546
|
scope: {
|
|
529
547
|
type: "string",
|
|
530
548
|
enum: ["user", "all", "space"],
|
|
@@ -576,6 +594,43 @@ var queryModelUsageFunctionSchema = {
|
|
|
576
594
|
thresholdUsd: {
|
|
577
595
|
type: "number",
|
|
578
596
|
description: "\u53EF\u9009\u9608\u503C\uFF0C\u5355\u4F4D USD\uFF1B\u4F1A\u6309 creditsPerUsd \u6362\u7B97\uFF0C\u5E76\u8FD4\u56DE 0-100 \u7684 threshold.usedPercent\u3002"
|
|
597
|
+
},
|
|
598
|
+
groupBy: {
|
|
599
|
+
type: "string",
|
|
600
|
+
enum: ["model", "agent", "entry_path", "day"],
|
|
601
|
+
description: "cacheBreakdown \u7684\u5206\u7EC4\u7EF4\u5EA6\u3002\u9ED8\u8BA4 model\u3002"
|
|
602
|
+
},
|
|
603
|
+
pricingScenarios: {
|
|
604
|
+
type: "array",
|
|
605
|
+
description: "pricingReplay \u7528\u7684\u5B9A\u4EF7\u65B9\u6848\u5217\u8868\u3002\u6BCF\u4E2A\u65B9\u6848\u542B name \u548C\u4E09\u4E2A\u5355\u4EF7\u3002",
|
|
606
|
+
items: {
|
|
607
|
+
type: "object",
|
|
608
|
+
properties: {
|
|
609
|
+
name: { type: "string", description: "\u65B9\u6848\u540D\u79F0\uFF0C\u4F8B\u5982 A\u3001B\u3001C \u6216 provider \u540D" },
|
|
610
|
+
inputPerMillion: { type: "number", description: "miss input tokens \u6BCF\u767E\u4E07\u5355\u4EF7\uFF08USD\uFF09" },
|
|
611
|
+
cachedInputPerMillion: { type: "number", description: "cache hit tokens \u6BCF\u767E\u4E07\u5355\u4EF7\uFF08USD\uFF09" },
|
|
612
|
+
outputPerMillion: { type: "number", description: "output tokens \u6BCF\u767E\u4E07\u5355\u4EF7\uFF08USD\uFF09" }
|
|
613
|
+
},
|
|
614
|
+
required: ["name", "inputPerMillion", "cachedInputPerMillion", "outputPerMillion"]
|
|
615
|
+
}
|
|
616
|
+
},
|
|
617
|
+
pricingA: {
|
|
618
|
+
type: "object",
|
|
619
|
+
description: "breakEven \u5206\u6790\u7684\u65B9\u6848 A\u3002",
|
|
620
|
+
properties: {
|
|
621
|
+
inputPerMillion: { type: "number" },
|
|
622
|
+
cachedInputPerMillion: { type: "number" },
|
|
623
|
+
outputPerMillion: { type: "number" }
|
|
624
|
+
}
|
|
625
|
+
},
|
|
626
|
+
pricingB: {
|
|
627
|
+
type: "object",
|
|
628
|
+
description: "breakEven \u5206\u6790\u7684\u65B9\u6848 B\u3002",
|
|
629
|
+
properties: {
|
|
630
|
+
inputPerMillion: { type: "number" },
|
|
631
|
+
cachedInputPerMillion: { type: "number" },
|
|
632
|
+
outputPerMillion: { type: "number" }
|
|
633
|
+
}
|
|
579
634
|
}
|
|
580
635
|
}
|
|
581
636
|
}
|
|
@@ -5093,6 +5148,53 @@ var interface_locale_default = {
|
|
|
5093
5148
|
goToProfile: "My profile",
|
|
5094
5149
|
recharge: "Recharge",
|
|
5095
5150
|
usage_dashboard: "Usage statistics",
|
|
5151
|
+
usage_spike_tip: "Abnormal spike \xB7 {{ratio}}\xD7 daily average",
|
|
5152
|
+
cache_saved_title: "Cache savings",
|
|
5153
|
+
cache_saved_hit_rate: "Hit rate",
|
|
5154
|
+
cache_saved_hit_tokens: "Cache hits",
|
|
5155
|
+
cache_saved_write_tokens: "Cache writes",
|
|
5156
|
+
cache_saved_estimate: "Est. saved",
|
|
5157
|
+
cache_saved_empty: "No cache usage in this range",
|
|
5158
|
+
cache_saved_note: "Estimated from billed model prices; not the final bill",
|
|
5159
|
+
cache_saved_unknown: "No price data for {{models}}",
|
|
5160
|
+
cache_saved_billable_note: "Savings cover billed platform usage only; OAuth/CLI/own-API usage is counted but not charged",
|
|
5161
|
+
dialog_usage_title: "Top dialogs by usage",
|
|
5162
|
+
dialog_usage_empty: "No dialog usage in this range",
|
|
5163
|
+
dialog_usage_calls: "calls",
|
|
5164
|
+
dialog_usage_total: "{{count}} dialogs total",
|
|
5165
|
+
dialog_usage_click: "Open dialog",
|
|
5166
|
+
billing_detail_click: "Click for billing details",
|
|
5167
|
+
billing_detail_tokens: "Token",
|
|
5168
|
+
billing_detail_input: "Input",
|
|
5169
|
+
billing_detail_output: "Output",
|
|
5170
|
+
billing_detail_cache_read: "Cache hit",
|
|
5171
|
+
billing_detail_cache_write: "Cache write",
|
|
5172
|
+
billing_detail_miss: "miss",
|
|
5173
|
+
billing_detail_prices: "Price /1M",
|
|
5174
|
+
billing_detail_breakdown: "Split",
|
|
5175
|
+
billing_detail_charged: "Charged",
|
|
5176
|
+
billing_detail_status: "Billing",
|
|
5177
|
+
billing_detail_not_billed: "Not charged (OAuth/CLI/own-API)",
|
|
5178
|
+
billing_detail_call_ids: "Upstream call",
|
|
5179
|
+
billing_detail_failed: "Not charged",
|
|
5180
|
+
billing_detail_failed_full: "Failed \xB7 not charged",
|
|
5181
|
+
billing_detail_error: "Failure reason",
|
|
5182
|
+
budget_title: "Monthly budget",
|
|
5183
|
+
budget_set: "Monthly budget threshold",
|
|
5184
|
+
budget_placeholder: "e.g. 50",
|
|
5185
|
+
budget_save: "Save",
|
|
5186
|
+
budget_not_set: "Not set",
|
|
5187
|
+
budget_off: "Off",
|
|
5188
|
+
budget_current: "Current: {{threshold}} credits",
|
|
5189
|
+
budget_note: "You'll be notified when monthly spend exceeds the threshold",
|
|
5190
|
+
budget_zero_note: "; set 0 to disable",
|
|
5191
|
+
budget_saved: "Saved",
|
|
5192
|
+
budget_invalid: "Enter a valid budget amount",
|
|
5193
|
+
budget_save_failed: "Save failed, please retry",
|
|
5194
|
+
cache_saved_col_model: "Model",
|
|
5195
|
+
cache_saved_col_read: "Read",
|
|
5196
|
+
cache_saved_col_write: "Write",
|
|
5197
|
+
cache_saved_col_saved: "Saved",
|
|
5096
5198
|
switchToThisAccount: "Switch to this account",
|
|
5097
5199
|
showAppAssistant: "Open app AI",
|
|
5098
5200
|
hideAppAssistant: "Hide app AI",
|
|
@@ -5487,18 +5589,7 @@ var interface_locale_default = {
|
|
|
5487
5589
|
createDialogFailed: "Failed to create conversation",
|
|
5488
5590
|
initDialogFailed: "Failed to initialize conversation",
|
|
5489
5591
|
sendMessageFailed: "Failed to send first message",
|
|
5490
|
-
agentSelector: {
|
|
5491
|
-
triggerLabel: "Choose default agent for the quick chat",
|
|
5492
|
-
popoverLabel: "Favorite agents",
|
|
5493
|
-
hint: "Pick the default agent used by the home quick chat.",
|
|
5494
|
-
systemDefault: "System default",
|
|
5495
|
-
empty: "No favorite agents yet. Browse and favorite one to get started."
|
|
5496
|
-
},
|
|
5497
5592
|
placeholderAuto: "Type a message and we will pick the best model",
|
|
5498
|
-
placeholderCode: "Describe a code goal, e.g. 'implement login and add tests'",
|
|
5499
|
-
placeholderResearch: "Describe market, competitors, or facts to investigate",
|
|
5500
|
-
placeholderBalanced: "Use {{name}} for deep reasoning",
|
|
5501
|
-
placeholderQuality: "Use {{name}} for in-depth analysis",
|
|
5502
5593
|
emptyPlaceholder: "Tell me your goal, e.g. 'help me organize my thoughts'",
|
|
5503
5594
|
defaultAgentName: "nolo",
|
|
5504
5595
|
chipBrainstorm: "Brainstorm",
|
|
@@ -5510,31 +5601,11 @@ var interface_locale_default = {
|
|
|
5510
5601
|
chipCreateAgentPrompt: "Help me create an agent",
|
|
5511
5602
|
chipCreateAppPrompt: "Help me create an app",
|
|
5512
5603
|
mode: {
|
|
5513
|
-
triggerLabel: "Choose quick chat mode"
|
|
5514
|
-
popoverLabel: "Choose quick chat mode",
|
|
5515
|
-
hint: "Choose quick chat mode",
|
|
5516
|
-
auto: "Auto",
|
|
5517
|
-
autoDesc: "Picks the best model based on your message",
|
|
5518
|
-
code: "Code",
|
|
5519
|
-
codeDesc: "Read the project, search first, then plan and execute",
|
|
5520
|
-
research: "Research",
|
|
5521
|
-
researchDesc: "Market, competitors, product, and external fact-finding",
|
|
5522
|
-
custom: "Custom",
|
|
5523
|
-
customDesc: "Assign an agent per scenario",
|
|
5524
|
-
customTitle: "Custom agents",
|
|
5525
|
-
customHint: "Choose the agent to use for each scenario",
|
|
5526
|
-
back: "Back",
|
|
5527
|
-
tierFlash: "Fast",
|
|
5528
|
-
tierBalanced: "Balanced",
|
|
5529
|
-
tierQuality: "Quality",
|
|
5530
|
-
tierImage: "Image",
|
|
5531
|
-
selectAgentHint: "Favorited agents",
|
|
5532
|
-
systemDefault: "System default",
|
|
5533
|
-
noFavorites: "No favorited agents yet"
|
|
5604
|
+
triggerLabel: "Choose quick chat mode"
|
|
5534
5605
|
},
|
|
5535
5606
|
autoAgent: {
|
|
5536
|
-
label: "
|
|
5537
|
-
default: "
|
|
5607
|
+
label: "Default model / switch agent",
|
|
5608
|
+
default: "Nolo's default model \u2014 text and images",
|
|
5538
5609
|
empty: "No favorite agents yet"
|
|
5539
5610
|
},
|
|
5540
5611
|
personalization: {
|
|
@@ -5784,6 +5855,10 @@ var interface_locale_default = {
|
|
|
5784
5855
|
community_loading: "Loading\u2026",
|
|
5785
5856
|
community_loading_more: "Loading\u2026",
|
|
5786
5857
|
community_load_more: "Load more",
|
|
5858
|
+
export_csv: "Export CSV",
|
|
5859
|
+
exporting: "Exporting\u2026",
|
|
5860
|
+
export_failed: "Export failed, please retry later",
|
|
5861
|
+
export_truncated: "Over 10,000 records \u2014 CSV contains only the first 10,000",
|
|
5787
5862
|
community_load_error: "Failed to load community content",
|
|
5788
5863
|
community_empty: "No content yet",
|
|
5789
5864
|
openApp: "Open App",
|
|
@@ -6323,6 +6398,53 @@ var interface_locale_default = {
|
|
|
6323
6398
|
goToProfile: "\u6211\u7684\u4E3B\u9875",
|
|
6324
6399
|
recharge: "\u5145\u503C",
|
|
6325
6400
|
usage_dashboard: "\u7528\u91CF\u7EDF\u8BA1",
|
|
6401
|
+
usage_spike_tip: "\u5F02\u5E38\u5C16\u5CF0 \xB7 \u9AD8\u4E8E\u65E5\u5747 {{ratio}} \u500D",
|
|
6402
|
+
cache_saved_title: "\u7F13\u5B58\u7701\u94B1",
|
|
6403
|
+
cache_saved_hit_rate: "\u547D\u4E2D\u7387",
|
|
6404
|
+
cache_saved_hit_tokens: "\u7F13\u5B58\u547D\u4E2D",
|
|
6405
|
+
cache_saved_write_tokens: "\u7F13\u5B58\u5199\u5165",
|
|
6406
|
+
cache_saved_estimate: "\u4F30\u7B97\u8282\u7701",
|
|
6407
|
+
cache_saved_empty: "\u8BE5\u533A\u95F4\u6CA1\u6709\u7F13\u5B58\u7528\u91CF",
|
|
6408
|
+
cache_saved_note: "\u6309\u6A21\u578B\u8BA1\u8D39\u5355\u4EF7\u4F30\u7B97\uFF0C\u975E\u6700\u7EC8\u8D26\u5355",
|
|
6409
|
+
cache_saved_unknown: "{{models}} \u6682\u65E0\u4EF7\u683C\u6570\u636E",
|
|
6410
|
+
cache_saved_billable_note: "\u8282\u7701\u4EC5\u6309\u5E73\u53F0\u8BA1\u8D39\u8BB0\u5F55\u4F30\u7B97\uFF1BOAuth/CLI/\u81EA\u6709 API \u7528\u91CF\u53EA\u7EDF\u8BA1\u4E0D\u8BA1\u8D39",
|
|
6411
|
+
dialog_usage_title: "\u5BF9\u8BDD\u6D88\u8017\u6392\u884C",
|
|
6412
|
+
dialog_usage_empty: "\u8BE5\u533A\u95F4\u6CA1\u6709\u5BF9\u8BDD\u7528\u91CF",
|
|
6413
|
+
dialog_usage_calls: "\u6B21\u8C03\u7528",
|
|
6414
|
+
dialog_usage_total: "\u5171 {{count}} \u4E2A\u5BF9\u8BDD",
|
|
6415
|
+
dialog_usage_click: "\u70B9\u51FB\u67E5\u770B\u5BF9\u8BDD",
|
|
6416
|
+
billing_detail_click: "\u70B9\u51FB\u67E5\u770B\u8BA1\u8D39\u4F9D\u636E",
|
|
6417
|
+
billing_detail_tokens: "Token",
|
|
6418
|
+
billing_detail_input: "\u8F93\u5165",
|
|
6419
|
+
billing_detail_output: "\u8F93\u51FA",
|
|
6420
|
+
billing_detail_cache_read: "\u7F13\u5B58\u547D\u4E2D",
|
|
6421
|
+
billing_detail_cache_write: "\u7F13\u5B58\u5199\u5165",
|
|
6422
|
+
billing_detail_miss: "\u672A\u547D\u4E2D",
|
|
6423
|
+
billing_detail_prices: "\u5355\u4EF7\uFF08/\u767E\u4E07\uFF09",
|
|
6424
|
+
billing_detail_breakdown: "\u62C6\u5206",
|
|
6425
|
+
billing_detail_charged: "\u5B9E\u9645\u6263\u8D39",
|
|
6426
|
+
billing_detail_status: "\u8BA1\u8D39",
|
|
6427
|
+
billing_detail_not_billed: "\u672A\u8BA1\u8D39\uFF08OAuth/CLI/\u81EA\u6709 API\uFF09",
|
|
6428
|
+
billing_detail_call_ids: "\u4E0A\u6E38\u8C03\u7528",
|
|
6429
|
+
billing_detail_failed: "\u672A\u8BA1\u8D39",
|
|
6430
|
+
billing_detail_failed_full: "\u5931\u8D25 \xB7 \u672A\u8BA1\u8D39",
|
|
6431
|
+
billing_detail_error: "\u5931\u8D25\u539F\u56E0",
|
|
6432
|
+
budget_title: "\u6708\u5EA6\u9884\u7B97",
|
|
6433
|
+
budget_set: "\u672C\u6708\u9884\u7B97\u9608\u503C",
|
|
6434
|
+
budget_placeholder: "\u5982 50",
|
|
6435
|
+
budget_save: "\u4FDD\u5B58",
|
|
6436
|
+
budget_not_set: "\u672A\u8BBE\u7F6E",
|
|
6437
|
+
budget_off: "\u5DF2\u5173\u95ED",
|
|
6438
|
+
budget_current: "\u5F53\u524D\uFF1A{{threshold}} credits",
|
|
6439
|
+
budget_note: "\u5F53\u6708\u5EA6\u6D88\u8017\u8D85\u8FC7\u9608\u503C\u65F6\u901A\u77E5\u4F60",
|
|
6440
|
+
budget_zero_note: "\uFF1B\u8BBE\u4E3A 0 \u5173\u95ED\u9884\u7B97\u63D0\u9192",
|
|
6441
|
+
budget_saved: "\u5DF2\u4FDD\u5B58",
|
|
6442
|
+
budget_invalid: "\u8BF7\u8F93\u5165\u6709\u6548\u7684\u9884\u7B97\u91D1\u989D",
|
|
6443
|
+
budget_save_failed: "\u4FDD\u5B58\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5",
|
|
6444
|
+
cache_saved_col_model: "\u6A21\u578B",
|
|
6445
|
+
cache_saved_col_read: "\u547D\u4E2D",
|
|
6446
|
+
cache_saved_col_write: "\u5199\u5165",
|
|
6447
|
+
cache_saved_col_saved: "\u8282\u7701",
|
|
6326
6448
|
switchToThisAccount: "\u5207\u6362\u5230\u8BE5\u8D26\u53F7",
|
|
6327
6449
|
showAppAssistant: "\u6253\u5F00\u5E94\u7528 AI",
|
|
6328
6450
|
hideAppAssistant: "\u9690\u85CF\u5E94\u7528 AI",
|
|
@@ -6717,18 +6839,7 @@ var interface_locale_default = {
|
|
|
6717
6839
|
createDialogFailed: "\u521B\u5EFA\u5BF9\u8BDD\u5931\u8D25",
|
|
6718
6840
|
initDialogFailed: "\u521D\u59CB\u5316\u5BF9\u8BDD\u5931\u8D25",
|
|
6719
6841
|
sendMessageFailed: "\u53D1\u9001\u9996\u6761\u6D88\u606F\u5931\u8D25",
|
|
6720
|
-
agentSelector: {
|
|
6721
|
-
triggerLabel: "\u9009\u62E9\u9996\u9875\u9ED8\u8BA4\u667A\u80FD\u4F53",
|
|
6722
|
-
popoverLabel: "\u6536\u85CF\u7684\u667A\u80FD\u4F53",
|
|
6723
|
-
hint: "\u9009\u62E9\u9996\u9875\u5FEB\u6377\u5BF9\u8BDD\u9ED8\u8BA4\u4F7F\u7528\u7684\u667A\u80FD\u4F53\u3002",
|
|
6724
|
-
systemDefault: "\u7CFB\u7EDF\u9ED8\u8BA4",
|
|
6725
|
-
empty: "\u8FD8\u6CA1\u6709\u6536\u85CF\u7684\u667A\u80FD\u4F53\uFF0C\u53BB\u901B\u901B\u6536\u85CF\u4E00\u4E2A\u5427\u3002"
|
|
6726
|
-
},
|
|
6727
6842
|
placeholderAuto: "\u8F93\u5165\u6D88\u606F\uFF0C\u81EA\u52A8\u5339\u914D\u6700\u4F18\u6A21\u578B",
|
|
6728
|
-
placeholderCode: "\u63CF\u8FF0\u4EE3\u7801\u76EE\u6807\uFF0C\u4F8B\u5982\u300C\u5B9E\u73B0\u767B\u5F55\u63A5\u53E3\u5E76\u8865\u6D4B\u8BD5\u300D",
|
|
6729
|
-
placeholderResearch: "\u63CF\u8FF0\u8981\u8C03\u67E5\u7684\u5E02\u573A\u3001\u7ADE\u54C1\u6216\u4E8B\u5B9E\uFF0C\u4F8B\u5982\u300C\u5BF9\u6BD4\u4E09\u5BB6\u7ADE\u54C1\u5B9A\u4EF7\u300D",
|
|
6730
|
-
placeholderBalanced: "\u7528 {{name}} \u6DF1\u5EA6\u63A8\u7406",
|
|
6731
|
-
placeholderQuality: "\u7528 {{name}} \u6DF1\u5165\u5206\u6790",
|
|
6732
6843
|
emptyPlaceholder: "\u76F4\u63A5\u8BF4\u4F60\u7684\u76EE\u6807\uFF0C\u6BD4\u5982\u300C\u5E2E\u6211\u6574\u7406\u4E00\u4E0B\u601D\u8DEF\u300D",
|
|
6733
6844
|
defaultAgentName: "nolo",
|
|
6734
6845
|
chipBrainstorm: "\u5934\u8111\u98CE\u66B4",
|
|
@@ -6740,31 +6851,11 @@ var interface_locale_default = {
|
|
|
6740
6851
|
chipCreateAgentPrompt: "\u5E2E\u6211\u521B\u5EFA\u4E00\u4E2AAgent",
|
|
6741
6852
|
chipCreateAppPrompt: "\u5E2E\u6211\u521B\u5EFA\u4E00\u4E2A\u5E94\u7528",
|
|
6742
6853
|
mode: {
|
|
6743
|
-
triggerLabel: "\u9009\u62E9\u5BF9\u8BDD\u6A21\u5F0F"
|
|
6744
|
-
popoverLabel: "\u9009\u62E9\u5BF9\u8BDD\u6A21\u5F0F",
|
|
6745
|
-
hint: "\u9009\u62E9\u5BF9\u8BDD\u6A21\u5F0F",
|
|
6746
|
-
auto: "\u81EA\u52A8",
|
|
6747
|
-
autoDesc: "\u6839\u636E\u6D88\u606F\u81EA\u52A8\u5207\u6362\u6700\u4F18\u6A21\u578B",
|
|
6748
|
-
code: "\u4EE3\u7801",
|
|
6749
|
-
codeDesc: "\u8BFB\u53D6\u9879\u76EE\u3001\u5148\u641C\u7D22\u518D\u89C4\u5212\u6267\u884C",
|
|
6750
|
-
research: "\u8C03\u7814",
|
|
6751
|
-
researchDesc: "\u5E02\u573A\u3001\u7ADE\u54C1\u3001\u4EA7\u54C1\u4E0E\u5916\u90E8\u4E8B\u5B9E\u8C03\u67E5",
|
|
6752
|
-
custom: "\u5B9A\u5236",
|
|
6753
|
-
customDesc: "\u4E3A\u6BCF\u79CD\u573A\u666F\u6307\u5B9A\u667A\u80FD\u4F53",
|
|
6754
|
-
customTitle: "\u5B9A\u5236\u667A\u80FD\u4F53",
|
|
6755
|
-
customHint: "\u4E3A\u6BCF\u79CD\u573A\u666F\u9009\u62E9\u8981\u4F7F\u7528\u7684\u667A\u80FD\u4F53",
|
|
6756
|
-
back: "\u8FD4\u56DE",
|
|
6757
|
-
tierFlash: "\u5FEB\u901F",
|
|
6758
|
-
tierBalanced: "\u5E73\u8861",
|
|
6759
|
-
tierQuality: "\u8D28\u91CF",
|
|
6760
|
-
tierImage: "\u56FE\u7247",
|
|
6761
|
-
selectAgentHint: "\u6536\u85CF\u7684\u667A\u80FD\u4F53",
|
|
6762
|
-
systemDefault: "\u7CFB\u7EDF\u9ED8\u8BA4",
|
|
6763
|
-
noFavorites: "\u6682\u65E0\u6536\u85CF\u7684\u667A\u80FD\u4F53"
|
|
6854
|
+
triggerLabel: "\u9009\u62E9\u5BF9\u8BDD\u6A21\u5F0F"
|
|
6764
6855
|
},
|
|
6765
6856
|
autoAgent: {
|
|
6766
|
-
label: "\
|
|
6767
|
-
default: "\u9ED8\u8BA4",
|
|
6857
|
+
label: "\u9ED8\u8BA4\u6A21\u578B / \u5207\u6362 Agent",
|
|
6858
|
+
default: "Nolo \u9ED8\u8BA4\u6A21\u578B\uFF0C\u56FE\u6587\u90FD\u80FD\u804A",
|
|
6768
6859
|
empty: "\u6682\u65E0\u6536\u85CF\u7684 Agent"
|
|
6769
6860
|
},
|
|
6770
6861
|
personalization: {
|
|
@@ -7014,6 +7105,10 @@ var interface_locale_default = {
|
|
|
7014
7105
|
community_loading: "\u52A0\u8F7D\u4E2D\u2026",
|
|
7015
7106
|
community_loading_more: "\u52A0\u8F7D\u4E2D\u2026",
|
|
7016
7107
|
community_load_more: "\u52A0\u8F7D\u66F4\u591A",
|
|
7108
|
+
export_csv: "\u5BFC\u51FA CSV",
|
|
7109
|
+
exporting: "\u5BFC\u51FA\u4E2D\u2026",
|
|
7110
|
+
export_failed: "\u5BFC\u51FA\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",
|
|
7111
|
+
export_truncated: "\u660E\u7EC6\u8D85\u8FC7 1 \u4E07\u6761\uFF0CCSV \u4EC5\u542B\u524D 1 \u4E07\u6761",
|
|
7017
7112
|
community_load_error: "\u52A0\u8F7D\u793E\u533A\u5185\u5BB9\u5931\u8D25",
|
|
7018
7113
|
community_empty: "\u6682\u65E0\u5185\u5BB9",
|
|
7019
7114
|
openApp: "\u6253\u5F00\u5E94\u7528",
|
|
@@ -7553,6 +7648,53 @@ var interface_locale_default = {
|
|
|
7553
7648
|
goToProfile: "\u6211\u7684\u4E3B\u9801",
|
|
7554
7649
|
recharge: "\u5145\u503C",
|
|
7555
7650
|
usage_dashboard: "\u7528\u91CF\u7D71\u8A08",
|
|
7651
|
+
usage_spike_tip: "\u7570\u5E38\u5C16\u5CF0 \xB7 \u9AD8\u65BC\u65E5\u5747 {{ratio}} \u500D",
|
|
7652
|
+
cache_saved_title: "\u7DE9\u5B58\u7701\u9322",
|
|
7653
|
+
cache_saved_hit_rate: "\u547D\u4E2D\u7387",
|
|
7654
|
+
cache_saved_hit_tokens: "\u7DE9\u5B58\u547D\u4E2D",
|
|
7655
|
+
cache_saved_write_tokens: "\u7DE9\u5B58\u5BEB\u5165",
|
|
7656
|
+
cache_saved_estimate: "\u4F30\u7B97\u7BC0\u7701",
|
|
7657
|
+
cache_saved_empty: "\u8A72\u5340\u9593\u6C92\u6709\u7DE9\u5B58\u7528\u91CF",
|
|
7658
|
+
cache_saved_note: "\u6309\u6A21\u578B\u8A08\u8CBB\u55AE\u50F9\u4F30\u7B97\uFF0C\u975E\u6700\u7D42\u5E33\u55AE",
|
|
7659
|
+
cache_saved_unknown: "{{models}} \u66AB\u7121\u50F9\u683C\u6578\u64DA",
|
|
7660
|
+
cache_saved_billable_note: "\u7BC0\u7701\u50C5\u6309\u5E73\u53F0\u8A08\u8CBB\u8A18\u9304\u4F30\u7B97\uFF1BOAuth/CLI/\u81EA\u6709 API \u7528\u91CF\u50C5\u7D71\u8A08\u4E0D\u8A08\u8CBB",
|
|
7661
|
+
dialog_usage_title: "\u5C0D\u8A71\u6D88\u8017\u6392\u884C",
|
|
7662
|
+
dialog_usage_empty: "\u8A72\u5340\u9593\u6C92\u6709\u5C0D\u8A71\u7528\u91CF",
|
|
7663
|
+
dialog_usage_calls: "\u6B21\u8ABF\u7528",
|
|
7664
|
+
dialog_usage_total: "\u5171 {{count}} \u500B\u5C0D\u8A71",
|
|
7665
|
+
dialog_usage_click: "\u9EDE\u64CA\u67E5\u770B\u5C0D\u8A71",
|
|
7666
|
+
billing_detail_click: "\u9EDE\u64CA\u67E5\u770B\u8A08\u8CBB\u4F9D\u64DA",
|
|
7667
|
+
billing_detail_tokens: "Token",
|
|
7668
|
+
billing_detail_input: "\u8F38\u5165",
|
|
7669
|
+
billing_detail_output: "\u8F38\u51FA",
|
|
7670
|
+
billing_detail_cache_read: "\u7DE9\u5B58\u547D\u4E2D",
|
|
7671
|
+
billing_detail_cache_write: "\u7DE9\u5B58\u5BEB\u5165",
|
|
7672
|
+
billing_detail_miss: "\u672A\u547D\u4E2D",
|
|
7673
|
+
billing_detail_prices: "\u55AE\u50F9\uFF08/\u767E\u842C\uFF09",
|
|
7674
|
+
billing_detail_breakdown: "\u62C6\u5206",
|
|
7675
|
+
billing_detail_charged: "\u5BE6\u969B\u6263\u8CBB",
|
|
7676
|
+
billing_detail_status: "\u8A08\u8CBB",
|
|
7677
|
+
billing_detail_not_billed: "\u672A\u8A08\u8CBB\uFF08OAuth/CLI/\u81EA\u6709 API\uFF09",
|
|
7678
|
+
billing_detail_call_ids: "\u4E0A\u6E38\u8ABF\u7528",
|
|
7679
|
+
billing_detail_failed: "\u672A\u8A08\u8CBB",
|
|
7680
|
+
billing_detail_failed_full: "\u5931\u6557 \xB7 \u672A\u8A08\u8CBB",
|
|
7681
|
+
billing_detail_error: "\u5931\u6557\u539F\u56E0",
|
|
7682
|
+
budget_title: "\u6708\u5EA6\u9810\u7B97",
|
|
7683
|
+
budget_set: "\u672C\u6708\u9810\u7B97\u95BE\u503C",
|
|
7684
|
+
budget_placeholder: "\u5982 50",
|
|
7685
|
+
budget_save: "\u5132\u5B58",
|
|
7686
|
+
budget_not_set: "\u672A\u8A2D\u5B9A",
|
|
7687
|
+
budget_off: "\u5DF2\u95DC\u9589",
|
|
7688
|
+
budget_current: "\u76EE\u524D\uFF1A{{threshold}} credits",
|
|
7689
|
+
budget_note: "\u7576\u6708\u5EA6\u6D88\u8017\u8D85\u904E\u95BE\u503C\u6642\u901A\u77E5\u4F60",
|
|
7690
|
+
budget_zero_note: "\uFF1B\u8A2D\u70BA 0 \u95DC\u9589\u9810\u7B97\u63D0\u9192",
|
|
7691
|
+
budget_saved: "\u5DF2\u5132\u5B58",
|
|
7692
|
+
budget_invalid: "\u8ACB\u8F38\u5165\u6709\u6548\u7684\u9810\u7B97\u91D1\u984D",
|
|
7693
|
+
budget_save_failed: "\u5132\u5B58\u5931\u6557\uFF0C\u8ACB\u91CD\u8A66",
|
|
7694
|
+
cache_saved_col_model: "\u6A21\u578B",
|
|
7695
|
+
cache_saved_col_read: "\u547D\u4E2D",
|
|
7696
|
+
cache_saved_col_write: "\u5BEB\u5165",
|
|
7697
|
+
cache_saved_col_saved: "\u7BC0\u7701",
|
|
7556
7698
|
switchToThisAccount: "\u5207\u63DB\u5230\u8A72\u5E33\u865F",
|
|
7557
7699
|
showAppAssistant: "\u6253\u958B\u61C9\u7528 AI",
|
|
7558
7700
|
hideAppAssistant: "\u96B1\u85CF\u61C9\u7528 AI",
|
|
@@ -7947,18 +8089,7 @@ var interface_locale_default = {
|
|
|
7947
8089
|
createDialogFailed: "\u5EFA\u7ACB\u5C0D\u8A71\u5931\u6557",
|
|
7948
8090
|
initDialogFailed: "\u521D\u59CB\u5316\u5C0D\u8A71\u5931\u6557",
|
|
7949
8091
|
sendMessageFailed: "\u767C\u9001\u9996\u689D\u8A0A\u606F\u5931\u6557",
|
|
7950
|
-
agentSelector: {
|
|
7951
|
-
triggerLabel: "\u9078\u64C7\u9996\u9801\u9810\u8A2D\u667A\u6167\u9AD4",
|
|
7952
|
-
popoverLabel: "\u6536\u85CF\u7684\u667A\u6167\u9AD4",
|
|
7953
|
-
hint: "\u9078\u64C7\u9996\u9801\u5FEB\u6377\u5C0D\u8A71\u9810\u8A2D\u4F7F\u7528\u7684\u667A\u6167\u9AD4\u3002",
|
|
7954
|
-
systemDefault: "\u7CFB\u7D71\u9810\u8A2D",
|
|
7955
|
-
empty: "\u9084\u6C92\u6709\u6536\u85CF\u7684\u667A\u6167\u9AD4\uFF0C\u53BB\u901B\u901B\u6536\u85CF\u4E00\u500B\u5427\u3002"
|
|
7956
|
-
},
|
|
7957
8092
|
placeholderAuto: "\u8F38\u5165\u8A0A\u606F\uFF0C\u81EA\u52D5\u5339\u914D\u6700\u512A\u6A21\u578B",
|
|
7958
|
-
placeholderCode: "\u63CF\u8FF0\u7A0B\u5F0F\u76EE\u6A19\uFF0C\u4F8B\u5982\u300C\u5BE6\u4F5C\u767B\u5165\u4ECB\u9762\u4E26\u88DC\u6E2C\u8A66\u300D",
|
|
7959
|
-
placeholderResearch: "\u63CF\u8FF0\u8981\u8ABF\u67E5\u7684\u5E02\u5834\u3001\u7AF6\u54C1\u6216\u4E8B\u5BE6\uFF0C\u4F8B\u5982\u300C\u5C0D\u6BD4\u4E09\u5BB6\u7AF6\u54C1\u5B9A\u50F9\u300D",
|
|
7960
|
-
placeholderBalanced: "\u7528 {{name}} \u6DF1\u5EA6\u63A8\u7406",
|
|
7961
|
-
placeholderQuality: "\u7528 {{name}} \u6DF1\u5165\u5206\u6790",
|
|
7962
8093
|
emptyPlaceholder: "\u76F4\u63A5\u8AAA\u4F60\u7684\u76EE\u6A19\uFF0C\u4F8B\u5982\u300C\u5E6B\u6211\u6574\u7406\u4E00\u4E0B\u601D\u8DEF\u300D",
|
|
7963
8094
|
defaultAgentName: "nolo",
|
|
7964
8095
|
chipBrainstorm: "\u8166\u529B\u6FC0\u76EA",
|
|
@@ -7970,31 +8101,11 @@ var interface_locale_default = {
|
|
|
7970
8101
|
chipCreateAgentPrompt: "\u5E6B\u6211\u5275\u5EFA\u4E00\u500BAgent",
|
|
7971
8102
|
chipCreateAppPrompt: "\u5E6B\u6211\u5275\u5EFA\u4E00\u500B\u61C9\u7528",
|
|
7972
8103
|
mode: {
|
|
7973
|
-
triggerLabel: "\u9078\u64C7\u5C0D\u8A71\u6A21\u5F0F"
|
|
7974
|
-
popoverLabel: "\u9078\u64C7\u5C0D\u8A71\u6A21\u5F0F",
|
|
7975
|
-
hint: "\u9078\u64C7\u5C0D\u8A71\u6A21\u5F0F",
|
|
7976
|
-
auto: "\u81EA\u52D5",
|
|
7977
|
-
autoDesc: "\u4F9D\u8A0A\u606F\u81EA\u52D5\u5207\u63DB\u6700\u5408\u9069\u7684\u6A21\u578B",
|
|
7978
|
-
code: "\u7A0B\u5F0F",
|
|
7979
|
-
codeDesc: "\u8B80\u53D6\u5C08\u6848\u3001\u5148\u641C\u5C0B\u518D\u898F\u5283\u57F7\u884C",
|
|
7980
|
-
research: "\u8ABF\u7814",
|
|
7981
|
-
researchDesc: "\u5E02\u5834\u3001\u7AF6\u54C1\u3001\u7522\u54C1\u8207\u5916\u90E8\u4E8B\u5BE6\u8ABF\u67E5",
|
|
7982
|
-
custom: "\u81EA\u8A02",
|
|
7983
|
-
customDesc: "\u70BA\u6BCF\u7A2E\u60C5\u5883\u6307\u5B9A\u667A\u6167\u9AD4",
|
|
7984
|
-
customTitle: "\u81EA\u8A02\u667A\u6167\u9AD4",
|
|
7985
|
-
customHint: "\u70BA\u6BCF\u7A2E\u60C5\u5883\u9078\u64C7\u8981\u4F7F\u7528\u7684\u667A\u6167\u9AD4",
|
|
7986
|
-
back: "\u8FD4\u56DE",
|
|
7987
|
-
tierFlash: "\u5FEB\u901F",
|
|
7988
|
-
tierBalanced: "\u5E73\u8861",
|
|
7989
|
-
tierQuality: "\u54C1\u8CEA",
|
|
7990
|
-
tierImage: "\u5716\u7247",
|
|
7991
|
-
selectAgentHint: "\u6536\u85CF\u7684\u667A\u6167\u9AD4",
|
|
7992
|
-
systemDefault: "\u7CFB\u7D71\u9810\u8A2D",
|
|
7993
|
-
noFavorites: "\u5C1A\u7121\u6536\u85CF\u7684\u667A\u6167\u9AD4"
|
|
8104
|
+
triggerLabel: "\u9078\u64C7\u5C0D\u8A71\u6A21\u5F0F"
|
|
7994
8105
|
},
|
|
7995
8106
|
autoAgent: {
|
|
7996
|
-
label: "\
|
|
7997
|
-
default: "\u9810\u8A2D",
|
|
8107
|
+
label: "\u9810\u8A2D\u6A21\u578B / \u5207\u63DB Agent",
|
|
8108
|
+
default: "Nolo \u9810\u8A2D\u6A21\u578B\uFF0C\u5716\u6587\u90FD\u80FD\u804A",
|
|
7998
8109
|
empty: "\u66AB\u7121\u6536\u85CF\u7684 Agent"
|
|
7999
8110
|
},
|
|
8000
8111
|
personalization: {
|
|
@@ -8240,6 +8351,10 @@ var interface_locale_default = {
|
|
|
8240
8351
|
community_loading: "\u8F09\u5165\u4E2D\u2026",
|
|
8241
8352
|
community_loading_more: "\u8F09\u5165\u4E2D\u2026",
|
|
8242
8353
|
community_load_more: "\u8F09\u5165\u66F4\u591A",
|
|
8354
|
+
export_csv: "\u532F\u51FA CSV",
|
|
8355
|
+
exporting: "\u532F\u51FA\u4E2D\u2026",
|
|
8356
|
+
export_failed: "\u532F\u51FA\u5931\u6557\uFF0C\u8ACB\u7A0D\u5F8C\u91CD\u8A66",
|
|
8357
|
+
export_truncated: "\u660E\u7D30\u8D85\u904E 1 \u842C\u7B46\uFF0CCSV \u50C5\u542B\u524D 1 \u842C\u7B46",
|
|
8243
8358
|
community_load_error: "\u8F09\u5165\u793E\u7FA4\u5167\u5BB9\u5931\u6557",
|
|
8244
8359
|
community_empty: "\u5C1A\u7121\u5167\u5BB9",
|
|
8245
8360
|
openApp: "\u958B\u555F\u61C9\u7528",
|
|
@@ -8705,6 +8820,53 @@ var interface_locale_default = {
|
|
|
8705
8820
|
goToProfile: "\u30DE\u30A4\u30D7\u30ED\u30D5\u30A3\u30FC\u30EB",
|
|
8706
8821
|
recharge: "\u30C1\u30E3\u30FC\u30B8",
|
|
8707
8822
|
usage_dashboard: "\u5229\u7528\u7D71\u8A08",
|
|
8823
|
+
usage_spike_tip: "\u7570\u5E38\u306A\u30B9\u30D1\u30A4\u30AF \xB7 \u65E5\u5E73\u5747\u306E{{ratio}}\u500D",
|
|
8824
|
+
cache_saved_title: "\u30AD\u30E3\u30C3\u30B7\u30E5\u7BC0\u7D04",
|
|
8825
|
+
cache_saved_hit_rate: "\u30D2\u30C3\u30C8\u7387",
|
|
8826
|
+
cache_saved_hit_tokens: "\u30AD\u30E3\u30C3\u30B7\u30E5\u30D2\u30C3\u30C8",
|
|
8827
|
+
cache_saved_write_tokens: "\u30AD\u30E3\u30C3\u30B7\u30E5\u66F8\u304D\u8FBC\u307F",
|
|
8828
|
+
cache_saved_estimate: "\u7BC0\u7D04\u898B\u8FBC\u307F",
|
|
8829
|
+
cache_saved_empty: "\u3053\u306E\u671F\u9593\u306B\u30AD\u30E3\u30C3\u30B7\u30E5\u5229\u7528\u306F\u3042\u308A\u307E\u305B\u3093",
|
|
8830
|
+
cache_saved_note: "\u30E2\u30C7\u30EB\u306E\u8ACB\u6C42\u5358\u4FA1\u306B\u3088\u308B\u6982\u7B97\u3067\u3059\u3002\u6700\u7D42\u8ACB\u6C42\u3067\u306F\u3042\u308A\u307E\u305B\u3093",
|
|
8831
|
+
cache_saved_unknown: "{{models}} \u306E\u4FA1\u683C\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093",
|
|
8832
|
+
cache_saved_billable_note: "\u7BC0\u7D04\u306F\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u8ACB\u6C42\u8A18\u9332\u306E\u307F\u3067\u7B97\u51FA\u3002OAuth/CLI/\u81EA\u524DAPI\u306E\u5229\u7528\u306F\u7D71\u8A08\u306E\u307F\u3067\u8AB2\u91D1\u3055\u308C\u307E\u305B\u3093",
|
|
8833
|
+
dialog_usage_title: "\u4F1A\u8A71\u3054\u3068\u306E\u5229\u7528\u30E9\u30F3\u30AD\u30F3\u30B0",
|
|
8834
|
+
dialog_usage_empty: "\u3053\u306E\u671F\u9593\u306E\u4F1A\u8A71\u5229\u7528\u306F\u3042\u308A\u307E\u305B\u3093",
|
|
8835
|
+
dialog_usage_calls: "\u56DE",
|
|
8836
|
+
dialog_usage_total: "\u5408\u8A08 {{count}} \u4EF6\u306E\u4F1A\u8A71",
|
|
8837
|
+
dialog_usage_click: "\u4F1A\u8A71\u3092\u958B\u304F",
|
|
8838
|
+
billing_detail_click: "\u30AF\u30EA\u30C3\u30AF\u3067\u8ACB\u6C42\u660E\u7D30",
|
|
8839
|
+
billing_detail_tokens: "Token",
|
|
8840
|
+
billing_detail_input: "\u5165\u529B",
|
|
8841
|
+
billing_detail_output: "\u51FA\u529B",
|
|
8842
|
+
billing_detail_cache_read: "\u30AD\u30E3\u30C3\u30B7\u30E5\u30D2\u30C3\u30C8",
|
|
8843
|
+
billing_detail_cache_write: "\u30AD\u30E3\u30C3\u30B7\u30E5\u66F8\u304D\u8FBC\u307F",
|
|
8844
|
+
billing_detail_miss: "\u672A\u30D2\u30C3\u30C8",
|
|
8845
|
+
billing_detail_prices: "\u5358\u4FA1\uFF08/\u767E\u4E07\uFF09",
|
|
8846
|
+
billing_detail_breakdown: "\u5185\u8A33",
|
|
8847
|
+
billing_detail_charged: "\u5B9F\u969B\u306E\u8ACB\u6C42",
|
|
8848
|
+
billing_detail_status: "\u8ACB\u6C42",
|
|
8849
|
+
billing_detail_not_billed: "\u8AB2\u91D1\u306A\u3057\uFF08OAuth/CLI/\u81EA\u524DAPI\uFF09",
|
|
8850
|
+
billing_detail_call_ids: "\u4E0A\u6D41\u547C\u3073\u51FA\u3057",
|
|
8851
|
+
billing_detail_failed: "\u8AB2\u91D1\u306A\u3057",
|
|
8852
|
+
billing_detail_failed_full: "\u5931\u6557 \xB7 \u8AB2\u91D1\u306A\u3057",
|
|
8853
|
+
billing_detail_error: "\u5931\u6557\u7406\u7531",
|
|
8854
|
+
budget_title: "\u6708\u9593\u4E88\u7B97",
|
|
8855
|
+
budget_set: "\u6708\u9593\u4E88\u7B97\u306E\u95BE\u5024",
|
|
8856
|
+
budget_placeholder: "\u4F8B\uFF1A50",
|
|
8857
|
+
budget_save: "\u4FDD\u5B58",
|
|
8858
|
+
budget_not_set: "\u672A\u8A2D\u5B9A",
|
|
8859
|
+
budget_off: "\u30AA\u30D5",
|
|
8860
|
+
budget_current: "\u73FE\u5728\uFF1A{{threshold}} credits",
|
|
8861
|
+
budget_note: "\u6708\u9593\u6D88\u8CBB\u304C\u95BE\u5024\u3092\u8D85\u3048\u308B\u3068\u901A\u77E5\u3057\u307E\u3059",
|
|
8862
|
+
budget_zero_note: "\uFF1B0 \u3067\u4E88\u7B97\u901A\u77E5\u3092\u7121\u52B9\u5316",
|
|
8863
|
+
budget_saved: "\u4FDD\u5B58\u3057\u307E\u3057\u305F",
|
|
8864
|
+
budget_invalid: "\u6709\u52B9\u306A\u4E88\u7B97\u984D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
8865
|
+
budget_save_failed: "\u4FDD\u5B58\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
8866
|
+
cache_saved_col_model: "\u30E2\u30C7\u30EB",
|
|
8867
|
+
cache_saved_col_read: "\u30D2\u30C3\u30C8",
|
|
8868
|
+
cache_saved_col_write: "\u66F8\u304D\u8FBC\u307F",
|
|
8869
|
+
cache_saved_col_saved: "\u7BC0\u7D04",
|
|
8708
8870
|
switchToThisAccount: "\u3053\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u5207\u308A\u66FF\u3048",
|
|
8709
8871
|
showAppAssistant: "\u30A2\u30D7\u30EA AI \u3092\u958B\u304F",
|
|
8710
8872
|
hideAppAssistant: "\u30A2\u30D7\u30EA AI \u3092\u96A0\u3059",
|
|
@@ -9096,18 +9258,7 @@ var interface_locale_default = {
|
|
|
9096
9258
|
createDialogFailed: "\u4F1A\u8A71\u306E\u4F5C\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
9097
9259
|
initDialogFailed: "\u4F1A\u8A71\u306E\u521D\u671F\u5316\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
9098
9260
|
sendMessageFailed: "\u6700\u521D\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u9001\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
9099
|
-
agentSelector: {
|
|
9100
|
-
triggerLabel: "\u30DB\u30FC\u30E0\u306E\u30AF\u30A4\u30C3\u30AF\u30C1\u30E3\u30C3\u30C8\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u9078\u629E",
|
|
9101
|
-
popoverLabel: "\u304A\u6C17\u306B\u5165\u308A\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",
|
|
9102
|
-
hint: "\u30DB\u30FC\u30E0\u306E\u30AF\u30A4\u30C3\u30AF\u30C1\u30E3\u30C3\u30C8\u3067\u4F7F\u3046\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u9078\u629E\u3057\u307E\u3059\u3002",
|
|
9103
|
-
systemDefault: "\u30B7\u30B9\u30C6\u30E0\u65E2\u5B9A",
|
|
9104
|
-
empty: "\u307E\u3060\u304A\u6C17\u306B\u5165\u308A\u306E\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002"
|
|
9105
|
-
},
|
|
9106
9261
|
placeholderAuto: "\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u5165\u529B\u3059\u308C\u3070\u3001\u6700\u9069\u306A\u30E2\u30C7\u30EB\u3092\u81EA\u52D5\u3067\u9078\u3073\u307E\u3059",
|
|
9107
|
-
placeholderCode: "\u30B3\u30FC\u30C9\u306E\u76EE\u6A19\u3092\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B\uFF1A\u30ED\u30B0\u30A4\u30F3\u5B9F\u88C5\u3068\u30C6\u30B9\u30C8\u8FFD\u52A0\uFF09",
|
|
9108
|
-
placeholderResearch: "\u8ABF\u67FB\u3057\u305F\u3044\u5E02\u5834\u30FB\u7AF6\u5408\u30FB\u4E8B\u5B9F\u3092\u66F8\u3044\u3066\u304F\u3060\u3055\u3044",
|
|
9109
|
-
placeholderBalanced: "{{name}} \u3067\u6DF1\u304F\u63A8\u8AD6",
|
|
9110
|
-
placeholderQuality: "{{name}} \u3067\u6DF1\u304F\u5206\u6790",
|
|
9111
9262
|
emptyPlaceholder: "\u76EE\u6A19\u3092\u76F4\u63A5\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B\uFF1A\u300C\u8003\u3048\u3092\u6574\u7406\u3059\u308B\u306E\u3092\u624B\u4F1D\u3063\u3066\u300D\uFF09",
|
|
9112
9263
|
defaultAgentName: "nolo",
|
|
9113
9264
|
chipBrainstorm: "\u30D6\u30EC\u30A4\u30F3\u30B9\u30C8\u30FC\u30DF\u30F3\u30B0",
|
|
@@ -9119,31 +9270,11 @@ var interface_locale_default = {
|
|
|
9119
9270
|
chipCreateAgentPrompt: "\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u4F5C\u308B\u306E\u3092\u624B\u4F1D\u3063\u3066",
|
|
9120
9271
|
chipCreateAppPrompt: "\u30A2\u30D7\u30EA\u3092\u4F5C\u308B\u306E\u3092\u624B\u4F1D\u3063\u3066",
|
|
9121
9272
|
mode: {
|
|
9122
|
-
triggerLabel: "\u30AF\u30A4\u30C3\u30AF\u30C1\u30E3\u30C3\u30C8\u306E\u30E2\u30FC\u30C9\u3092\u9078\u629E"
|
|
9123
|
-
popoverLabel: "\u30AF\u30A4\u30C3\u30AF\u30C1\u30E3\u30C3\u30C8\u306E\u30E2\u30FC\u30C9\u3092\u9078\u629E",
|
|
9124
|
-
hint: "\u30AF\u30A4\u30C3\u30AF\u30C1\u30E3\u30C3\u30C8\u306E\u30E2\u30FC\u30C9\u3092\u9078\u629E",
|
|
9125
|
-
auto: "\u81EA\u52D5",
|
|
9126
|
-
autoDesc: "\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u5FDC\u3058\u3066\u6700\u9069\u306A\u30E2\u30C7\u30EB\u3092\u9078\u3076",
|
|
9127
|
-
code: "\u30B3\u30FC\u30C9",
|
|
9128
|
-
codeDesc: "\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u8AAD\u307F\u3001\u691C\u7D22\u3057\u3066\u304B\u3089\u8A08\u753B\u30FB\u5B9F\u884C",
|
|
9129
|
-
research: "\u30EA\u30B5\u30FC\u30C1",
|
|
9130
|
-
researchDesc: "\u5E02\u5834\u30FB\u7AF6\u5408\u30FB\u88FD\u54C1\u3068\u5916\u90E8\u4E8B\u5B9F\u306E\u8ABF\u67FB",
|
|
9131
|
-
custom: "\u30AB\u30B9\u30BF\u30E0",
|
|
9132
|
-
customDesc: "\u30B7\u30FC\u30F3\u3054\u3068\u306B\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u6307\u5B9A",
|
|
9133
|
-
customTitle: "\u30AB\u30B9\u30BF\u30E0\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",
|
|
9134
|
-
customHint: "\u30B7\u30FC\u30F3\u3054\u3068\u306B\u4F7F\u3046\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u9078\u629E",
|
|
9135
|
-
back: "\u623B\u308B",
|
|
9136
|
-
tierFlash: "\u9AD8\u901F",
|
|
9137
|
-
tierBalanced: "\u30D0\u30E9\u30F3\u30B9",
|
|
9138
|
-
tierQuality: "\u9AD8\u54C1\u8CEA",
|
|
9139
|
-
tierImage: "\u753B\u50CF",
|
|
9140
|
-
selectAgentHint: "\u304A\u6C17\u306B\u5165\u308A\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",
|
|
9141
|
-
systemDefault: "\u30B7\u30B9\u30C6\u30E0\u65E2\u5B9A",
|
|
9142
|
-
noFavorites: "\u304A\u6C17\u306B\u5165\u308A\u306E\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093"
|
|
9273
|
+
triggerLabel: "\u30AF\u30A4\u30C3\u30AF\u30C1\u30E3\u30C3\u30C8\u306E\u30E2\u30FC\u30C9\u3092\u9078\u629E"
|
|
9143
9274
|
},
|
|
9144
9275
|
autoAgent: {
|
|
9145
|
-
label: "\
|
|
9146
|
-
default: "\
|
|
9276
|
+
label: "\u65E2\u5B9A\u30E2\u30C7\u30EB / Agent \u5207\u308A\u66FF\u3048",
|
|
9277
|
+
default: "Nolo \u306E\u65E2\u5B9A\u30E2\u30C7\u30EB\uFF08\u30C6\u30AD\u30B9\u30C8\u3068\u753B\u50CF\uFF09",
|
|
9147
9278
|
empty: "\u304A\u6C17\u306B\u5165\u308A\u306E Agent \u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093"
|
|
9148
9279
|
},
|
|
9149
9280
|
personalization: {
|
|
@@ -9389,6 +9520,10 @@ var interface_locale_default = {
|
|
|
9389
9520
|
community_loading: "\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026",
|
|
9390
9521
|
community_loading_more: "\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026",
|
|
9391
9522
|
community_load_more: "\u3055\u3089\u306B\u8AAD\u307F\u8FBC\u3080",
|
|
9523
|
+
export_csv: "CSV \u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",
|
|
9524
|
+
exporting: "\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u4E2D\u2026",
|
|
9525
|
+
export_failed: "\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u5F8C\u3067\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044",
|
|
9526
|
+
export_truncated: "\u660E\u7D30\u304C 1 \u4E07\u4EF6\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002CSV \u306F\u5148\u982D 1 \u4E07\u4EF6\u306E\u307F\u542B\u307F\u307E\u3059",
|
|
9392
9527
|
community_load_error: "\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
9393
9528
|
community_empty: "\u30B3\u30F3\u30C6\u30F3\u30C4\u304C\u3042\u308A\u307E\u305B\u3093",
|
|
9394
9529
|
openApp: "\u30A2\u30D7\u30EA\u3092\u958B\u304F",
|
|
@@ -11248,7 +11383,7 @@ var HOSTED_EXEC_RUNTIME_TOOL_POLICY = {
|
|
|
11248
11383
|
workspace: { mode: "lease" }
|
|
11249
11384
|
};
|
|
11250
11385
|
var findModelConfig = async (modelName, provider) => {
|
|
11251
|
-
const { ALL_MODELS } = await import("./models-
|
|
11386
|
+
const { ALL_MODELS } = await import("./models-OX2S5C6Q.js");
|
|
11252
11387
|
const name = toTrimmedString(modelName);
|
|
11253
11388
|
const prov = toTrimmedString(provider ?? "");
|
|
11254
11389
|
if (!name) return null;
|
|
@@ -11489,7 +11624,7 @@ var buildFormDataFromArgs = async (args) => {
|
|
|
11489
11624
|
const trimmedModel = toTrimmedString(model);
|
|
11490
11625
|
const trimmedProvider = toTrimmedString(provider);
|
|
11491
11626
|
const modelConfig = await findModelConfig(trimmedModel, trimmedProvider);
|
|
11492
|
-
const { getModelPricing } = await import("./getPricing-
|
|
11627
|
+
const { getModelPricing } = await import("./getPricing-L2ENXWHV.js");
|
|
11493
11628
|
const normalizedTools = tools ?? [];
|
|
11494
11629
|
const resolvedRuntimeToolPolicy = runtimeToolPolicy ?? (normalizedTools.includes("execShell") ? HOSTED_EXEC_RUNTIME_TOOL_POLICY : void 0);
|
|
11495
11630
|
const formData = {
|
|
@@ -11551,7 +11686,7 @@ async function createAgentToolFunc(args, thunkApi) {
|
|
|
11551
11686
|
const state = thunkApi.getState();
|
|
11552
11687
|
const currentUserId = selectIdentityUserId(state);
|
|
11553
11688
|
const currentBalance = selectIdentityUserBalance(state);
|
|
11554
|
-
const allSpaces =
|
|
11689
|
+
const allSpaces = getAllMemberSpaces();
|
|
11555
11690
|
if (!currentUserId) {
|
|
11556
11691
|
throw new Error("\u521B\u5EFA Agent \u5931\u8D25\uFF1A\u5F53\u524D\u672A\u767B\u5F55\u6216\u7F3A\u5C11 userId\u3002");
|
|
11557
11692
|
}
|
|
@@ -11642,6 +11777,33 @@ ${availableList}`
|
|
|
11642
11777
|
}
|
|
11643
11778
|
}
|
|
11644
11779
|
|
|
11780
|
+
// packages/ai/tools/toolResultError.ts
|
|
11781
|
+
var ToolResultError = class extends Error {
|
|
11782
|
+
code;
|
|
11783
|
+
rawData;
|
|
11784
|
+
displayData;
|
|
11785
|
+
retryable;
|
|
11786
|
+
constructor(message, options) {
|
|
11787
|
+
super(message);
|
|
11788
|
+
this.name = "ToolResultError";
|
|
11789
|
+
this.code = options?.code;
|
|
11790
|
+
this.rawData = options?.rawData;
|
|
11791
|
+
this.displayData = options?.displayData;
|
|
11792
|
+
this.retryable = options?.retryable;
|
|
11793
|
+
}
|
|
11794
|
+
};
|
|
11795
|
+
var getToolResultErrorData = (error) => {
|
|
11796
|
+
if (!error || typeof error !== "object") return null;
|
|
11797
|
+
const candidate = error;
|
|
11798
|
+
return {
|
|
11799
|
+
rawData: candidate.rawData,
|
|
11800
|
+
displayData: candidate.displayData,
|
|
11801
|
+
code: candidate.code,
|
|
11802
|
+
retryable: candidate.retryable,
|
|
11803
|
+
message: candidate.message
|
|
11804
|
+
};
|
|
11805
|
+
};
|
|
11806
|
+
|
|
11645
11807
|
// packages/ai/tools/agent/agentUpdateShared.ts
|
|
11646
11808
|
var agentUpdateFieldSchemaProperties = {
|
|
11647
11809
|
name: { type: "string", description: "Agent \u7684\u65B0\u540D\u79F0\u3002" },
|
|
@@ -11973,7 +12135,7 @@ async function createDocFunc(args, thunkApi) {
|
|
|
11973
12135
|
const rawCategoryId = (args.categoryId ?? "").trim();
|
|
11974
12136
|
const categoryId = rawCategoryId || void 0;
|
|
11975
12137
|
const explicitSpaceId = (args.spaceId ?? "").trim() || void 0;
|
|
11976
|
-
const currentSpaceId =
|
|
12138
|
+
const currentSpaceId = getCurrentSpaceId() || void 0;
|
|
11977
12139
|
const spaceId = explicitSpaceId ?? currentSpaceId;
|
|
11978
12140
|
const rawContent = (args.content ?? "").trim();
|
|
11979
12141
|
const content = rawContent || void 0;
|
|
@@ -12202,7 +12364,7 @@ async function createSkillDocFunc(args, thunkApi) {
|
|
|
12202
12364
|
const state = getState();
|
|
12203
12365
|
const { title, content, skillConfig, evalConfig } = buildSkillDocFromArgs(args);
|
|
12204
12366
|
const explicitSpaceId = (args.spaceId ?? "").trim() || void 0;
|
|
12205
|
-
const currentSpaceId =
|
|
12367
|
+
const currentSpaceId = getCurrentSpaceId() || void 0;
|
|
12206
12368
|
const spaceId = explicitSpaceId ?? currentSpaceId;
|
|
12207
12369
|
const categoryId = (args.categoryId ?? "").trim() || void 0;
|
|
12208
12370
|
const id = await createDocState(
|
|
@@ -12587,7 +12749,7 @@ Imported from: ${url}` : ""
|
|
|
12587
12749
|
skillConfig
|
|
12588
12750
|
});
|
|
12589
12751
|
const explicitSpaceId = (args.spaceId ?? "").trim() || void 0;
|
|
12590
|
-
const currentSpaceId =
|
|
12752
|
+
const currentSpaceId = getCurrentSpaceId() || void 0;
|
|
12591
12753
|
const spaceId = explicitSpaceId ?? currentSpaceId;
|
|
12592
12754
|
const categoryId = (args.categoryId ?? "").trim() || void 0;
|
|
12593
12755
|
const id = await createDocState(
|
|
@@ -12610,6 +12772,789 @@ Imported from: ${url}` : ""
|
|
|
12610
12772
|
});
|
|
12611
12773
|
}
|
|
12612
12774
|
|
|
12775
|
+
// packages/ai/skills/specialistSkills.ts
|
|
12776
|
+
var SPECIALIST_SKILL_SLUGS = [
|
|
12777
|
+
"feedback",
|
|
12778
|
+
"agent-creator",
|
|
12779
|
+
"app-builder"
|
|
12780
|
+
];
|
|
12781
|
+
function deterministicId(prefix, seed) {
|
|
12782
|
+
let h = 2166136261;
|
|
12783
|
+
for (let i = 0; i < seed.length; i++) {
|
|
12784
|
+
h ^= seed.charCodeAt(i);
|
|
12785
|
+
h = h * 16777619 >>> 0;
|
|
12786
|
+
}
|
|
12787
|
+
const suffix = h.toString(36).toUpperCase().padStart(14, "0");
|
|
12788
|
+
return (prefix + suffix).slice(0, 26);
|
|
12789
|
+
}
|
|
12790
|
+
function normalizeSkillSeed(input) {
|
|
12791
|
+
return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
|
|
12792
|
+
}
|
|
12793
|
+
function buildSpecialistSkillId(slug) {
|
|
12794
|
+
return deterministicId("01SK", normalizeSkillSeed(slug) || slug);
|
|
12795
|
+
}
|
|
12796
|
+
function buildSpecialistSkillPageKey(userId, slug) {
|
|
12797
|
+
return `page-${userId}-${buildSpecialistSkillId(slug)}`;
|
|
12798
|
+
}
|
|
12799
|
+
var SPECIALIST_SKILL_SEEDS = [
|
|
12800
|
+
{
|
|
12801
|
+
slug: "feedback",
|
|
12802
|
+
title: "feedback",
|
|
12803
|
+
description: "\u53CD\u9988\u6536\u96C6\uFF1A\u628A\u7528\u6237\u7684\u529F\u80FD\u9700\u6C42\u3001\u95EE\u9898\u53CD\u9988\u548C\u4F53\u9A8C\u5EFA\u8BAE\u89C4\u8303\u8BB0\u5F55\u5230\u7528\u6237\u53CD\u9988\u8868\uFF1B\u7D27\u6025\u53CD\u9988\u540C\u65F6\u5199\u5165\u4EFB\u52A1\u770B\u677F\u5E76\u901A\u77E5\u3002",
|
|
12804
|
+
body: [
|
|
12805
|
+
"\u4F60\u662F\u201C\u53CD\u9988\u5165\u53E3\u201DAgent\uFF0C\u8D1F\u8D23\u6536\u96C6\u7528\u6237\u7684\u65B0\u529F\u80FD\u9700\u6C42\u3001\u95EE\u9898\u53CD\u9988\u548C\u4F53\u9A8C\u5EFA\u8BAE\uFF0C\u5E76\u5C06\u5176\u89C4\u8303\u8BB0\u5F55\u5230\u6307\u5B9A\u8868\u683C\u4E2D\u3002",
|
|
12806
|
+
"",
|
|
12807
|
+
"\u4F60\u7684\u76EE\u6807\uFF1A",
|
|
12808
|
+
"1. \u4E3B\u52A8\u5F15\u5BFC\u7528\u6237\u63CF\u8FF0\u9047\u5230\u7684\u95EE\u9898\u3001\u60F3\u8981\u7684\u65B0\u529F\u80FD\u6216\u6539\u8FDB\u5EFA\u8BAE\u3002",
|
|
12809
|
+
"2. \u6BCF\u6B21\u6536\u5230\u53CD\u9988\u540E\uFF0C\u5148\u505A\u6781\u7B80\u6F84\u6E05\uFF1B\u5982\u679C\u4FE1\u606F\u5DF2\u7ECF\u8DB3\u591F\uFF0C\u5C31\u4E0D\u8981\u8FFD\u95EE\u8FC7\u591A\u3002",
|
|
12810
|
+
"3. \u5C06\u53CD\u9988\u6574\u7406\u6210\u7ED3\u6784\u5316\u4FE1\u606F\uFF0C\u5199\u5165\u201C\u7528\u6237\u53CD\u9988\u201D\u8868\u3002",
|
|
12811
|
+
`4. \u5982\u679C\u53CD\u9988\u8FBE\u5230\u201C\u7D27\u6025\u201D\u7EA7\u522B\uFF0C\u9664\u5199\u5165\u7528\u6237\u53CD\u9988\u8868\u5916\uFF0C\u8FD8\u8981\u76F4\u63A5\u5199\u5165 Nolo \u4EFB\u52A1\u770B\u677F\uFF0C\u5E76\u901A\u77E5\u7528\u6237 ${nolotusId}\u3002`,
|
|
12812
|
+
"5. \u8BB0\u5F55\u63D0\u4EA4\u53CD\u9988\u7684\u7528\u6237 ID\uFF0C\u65B9\u4FBF\u4EFB\u52A1\u5B8C\u6210\u6216\u8FDB\u5165 main \u540E\u901A\u77E5\u539F\u7528\u6237\u3002",
|
|
12813
|
+
"6. \u56DE\u590D\u98CE\u683C\u7B80\u6D01\u3001\u81EA\u7136\u3001\u50CF\u4EA7\u54C1\u56E2\u961F\u7684\u53CD\u9988\u6536\u96C6\u5165\u53E3\u3002",
|
|
12814
|
+
"",
|
|
12815
|
+
"\u5DE5\u4F5C\u89C4\u5219\uFF1A",
|
|
12816
|
+
"- \u4F18\u5148\u5224\u65AD\u53CD\u9988\u7C7B\u578B\uFF1A\u529F\u80FD\u9700\u6C42 / \u95EE\u9898\u53CD\u9988 / \u4F53\u9A8C\u5EFA\u8BAE / \u5176\u4ED6\u3002",
|
|
12817
|
+
"- \u9ED8\u8BA4\u72B6\u6001\u5199\u4E3A\u201C\u5F85\u5904\u7406\u201D\u3002",
|
|
12818
|
+
"- \u6839\u636E\u5185\u5BB9\u7C97\u7565\u5224\u65AD\u4F18\u5148\u7EA7\uFF1A",
|
|
12819
|
+
" - \u6570\u636E\u4E22\u5931\u3001\u65E0\u6CD5\u767B\u5F55\u3001\u65E0\u6CD5\u6253\u5F00\u4E3B\u5165\u53E3\u3001\u6838\u5FC3\u7F16\u8F91/\u521B\u5EFA/\u652F\u4ED8/\u4FDD\u5B58\u5B8C\u5168\u4E0D\u53EF\u7528\u3001\u963B\u65AD\u5927\u90E8\u5206\u7528\u6237\u6838\u5FC3\u6D41\u7A0B -> \u7D27\u6025",
|
|
12820
|
+
" - \u660E\u663E\u5F71\u54CD\u6B63\u5E38\u4F7F\u7528\u3001\u65E0\u6CD5\u5B8C\u6210\u67D0\u4E2A\u6838\u5FC3\u6D41\u7A0B\u3001\u4E25\u91CD\u4FDD\u5B58\u5931\u8D25 -> \u9AD8",
|
|
12821
|
+
" - \u4E00\u822C bug\u3001\u660E\u786E\u9700\u6C42\u3001\u5F71\u54CD\u5E38\u7528\u7F16\u8F91/\u521B\u5EFA\u6D41\u7A0B -> \u4E2D",
|
|
12822
|
+
" - \u666E\u901A\u5EFA\u8BAE\u6216\u8F7B\u5FAE\u4F53\u9A8C\u95EE\u9898 -> \u4F4E",
|
|
12823
|
+
"- \u5982\u679C\u7CFB\u7EDF\u6216\u5DE5\u5177\u4E0A\u4E0B\u6587\u80FD\u63D0\u4F9B\u5F53\u524D\u7528\u6237 ID\uFF0C\u628A\u5B83\u5199\u5165 submitterUserId\uFF1B\u5982\u679C\u770B\u4E0D\u5230\u7528\u6237 ID\uFF0C\u53EF\u4EE5\u7559\u7A7A\uFF0C\u670D\u52A1\u7AEF\u4F1A\u515C\u5E95\u8865\u5199\u3002",
|
|
12824
|
+
"- \u5982\u679C\u7528\u6237\u6CA1\u6709\u63D0\u4F9B\u8054\u7CFB\u65B9\u5F0F\uFF0C\u4E0D\u8981\u5F3A\u6C42\uFF0C\u53EF\u7559\u7A7A\u3002",
|
|
12825
|
+
"- \u5982\u679C\u7528\u6237\u63D0\u4F9B\u4E86\u7AEF\u3001\u9875\u9762\u3001\u7248\u672C\u3001\u670D\u52A1\u5668\u3001\u6D4F\u89C8\u5668\u3001\u622A\u56FE\u8BF4\u660E\u3001\u590D\u73B0\u6B65\u9AA4\u3001\u671F\u671B\u7ED3\u679C\u3001\u5B9E\u9645\u7ED3\u679C\uFF0C\u8981\u5C3D\u91CF\u5199\u8FDB\u5BF9\u5E94\u5B57\u6BB5\u3002",
|
|
12826
|
+
"- \u5982\u679C\u7F3A\u5C11\u5173\u952E\u4FE1\u606F\u4F46\u4ECD\u80FD\u7406\u89E3\u6838\u5FC3\u53CD\u9988\uFF0C\u5148\u8BB0\u5F55\uFF0C\u4E0D\u8981\u56E0\u4E3A\u5B57\u6BB5\u4E0D\u5168\u800C\u963B\u585E\u3002",
|
|
12827
|
+
"- source \u56FA\u5B9A\u5199\u201C\u53CD\u9988\u5165\u53E3\u201D\u3002",
|
|
12828
|
+
"- createdAtNote \u5199\u201C\u7531\u53CD\u9988\u5165\u53E3\u8BB0\u5F55\u201D\u3002",
|
|
12829
|
+
"",
|
|
12830
|
+
"\u666E\u901A\u5199\u8868\u89C4\u5219\uFF1A",
|
|
12831
|
+
"- \u975E\u7D27\u6025\u53CD\u9988\u53EA\u8C03\u7528\u4E00\u6B21 addTableRow\uFF0C\u5199\u5165\u7528\u6237\u53CD\u9988\u8868\uFF1B\u6210\u529F\u5199\u5165\u540E\u4E0D\u8981\u91CD\u590D\u5199\u5165\u540C\u4E00\u5185\u5BB9\u3002",
|
|
12832
|
+
`- \u4F7F\u7528 addTableRow \u5DE5\u5177\uFF0C\u628A\u53CD\u9988\u5199\u5165 dbKey \u4E3A meta-${nolotusId}-01NOLOFEEDBACKT000000000R1 \u7684\u8868\u3002`,
|
|
12833
|
+
`- \u663E\u5F0F\u4F20\u5165 tenantId="${nolotusId}" \u548C tableId="01NOLOFEEDBACKT000000000R1"\u3002`,
|
|
12834
|
+
"- \u5B57\u6BB5\u6620\u5C04\uFF1A",
|
|
12835
|
+
" - content: \u7528\u6237\u53CD\u9988\u5185\u5BB9\u7684\u7B80\u6D01\u6574\u7406\u7248\uFF0C\u4FDD\u7559\u5177\u4F53\u5BF9\u8C61\u548C\u75C7\u72B6",
|
|
12836
|
+
" - feedbackType: \u53CD\u9988\u7C7B\u578B",
|
|
12837
|
+
" - status: \u56FA\u5B9A\u4E3A\u201C\u5F85\u5904\u7406\u201D",
|
|
12838
|
+
" - priority: \u6309\u89C4\u5219\u5224\u65AD",
|
|
12839
|
+
" - contact: \u7528\u6237\u4E3B\u52A8\u63D0\u4F9B\u7684\u8054\u7CFB\u65B9\u5F0F\uFF0C\u6CA1\u6709\u5C31\u7559\u7A7A",
|
|
12840
|
+
" - source: \u56FA\u5B9A\u4E3A\u201C\u53CD\u9988\u5165\u53E3\u201D",
|
|
12841
|
+
" - submitterUserId: \u5F53\u524D\u63D0\u4EA4\u53CD\u9988\u7684\u7528\u6237 ID\uFF1B\u770B\u4E0D\u5230\u5C31\u7559\u7A7A\uFF0C\u670D\u52A1\u7AEF\u4F1A\u8865\u5199",
|
|
12842
|
+
" - environment: \u7528\u6237\u4E3B\u52A8\u63D0\u5230\u7684\u7AEF\u3001\u670D\u52A1\u5668\u3001\u9875\u9762\u3001\u6D4F\u89C8\u5668\u3001\u7CFB\u7EDF\u6216\u7248\u672C\uFF1B\u6CA1\u6709\u5C31\u7559\u7A7A",
|
|
12843
|
+
" - reproductionSteps: \u7528\u6237\u63CF\u8FF0\u7684\u590D\u73B0\u6B65\u9AA4\uFF1B\u6CA1\u6709\u5C31\u7559\u7A7A",
|
|
12844
|
+
" - expectedResult: \u7528\u6237\u8868\u8FBE\u7684\u671F\u671B\u884C\u4E3A\uFF1B\u6CA1\u6709\u5C31\u7559\u7A7A",
|
|
12845
|
+
" - actualResult: \u7528\u6237\u8868\u8FBE\u7684\u5B9E\u9645\u5F02\u5E38\uFF1B\u6CA1\u6709\u5C31\u7559\u7A7A",
|
|
12846
|
+
" - userImpact: \u5BF9\u7528\u6237\u6D41\u7A0B\u7684\u5F71\u54CD\uFF1B\u6CA1\u6709\u5C31\u6839\u636E\u5185\u5BB9\u7B80\u77ED\u5F52\u7EB3",
|
|
12847
|
+
" - createdAtNote: \u56FA\u5B9A\u4E3A\u201C\u7531\u53CD\u9988\u5165\u53E3\u8BB0\u5F55\u201D",
|
|
12848
|
+
"",
|
|
12849
|
+
"\u7D27\u6025\u53CD\u9988\u989D\u5916\u89C4\u5219\uFF1A",
|
|
12850
|
+
"- \u5F53 priority \u5224\u65AD\u4E3A\u201C\u7D27\u6025\u201D\u65F6\uFF0C\u5141\u8BB8\u989D\u5916\u8C03\u7528\u4E00\u6B21 addTableRow\uFF0C\u628A\u540C\u4E00\u4E8B\u9879\u76F4\u63A5\u5199\u5165 Nolo \u4EFB\u52A1\u770B\u677F\u3002",
|
|
12851
|
+
`- \u4EFB\u52A1\u770B\u677F\u56FA\u5B9A\u4E3A tenantId="${nolotusId}", tableId="NOLOTASKBOARD", dbKey="meta-${nolotusId}-NOLOTASKBOARD"\u3002`,
|
|
12852
|
+
"- \u4EFB\u52A1\u770B\u677F\u5B57\u6BB5\uFF1A",
|
|
12853
|
+
" - title: \u7528\u201CURGENT \u53CD\u9988\uFF1A\u201D\u5F00\u5934\uFF0C\u540E\u63A5\u95EE\u9898\u4E3B\u9898",
|
|
12854
|
+
" - status: \u201C\u5F85\u5904\u7406\u201D",
|
|
12855
|
+
" - priority: \u201C\u7D27\u6025\u201D",
|
|
12856
|
+
" - executionMode: \u201C\u7ACB\u5373\u6267\u884C\u201D",
|
|
12857
|
+
" - owner: \u201Cnolo \u9879\u76EE\u7ECF\u7406\u201D",
|
|
12858
|
+
" - source: \u201C\u53CD\u9988\u5165\u53E3\u201D",
|
|
12859
|
+
" - feedbackSubmitterUserId: \u5F53\u524D\u63D0\u4EA4\u53CD\u9988\u7684\u7528\u6237 ID\uFF1B\u770B\u4E0D\u5230\u5C31\u7559\u7A7A\uFF0C\u670D\u52A1\u7AEF\u4F1A\u8865\u5199",
|
|
12860
|
+
" - acceptance: \u590D\u8FF0\u53EF\u9A8C\u8BC1\u7684\u4FEE\u590D\u6807\u51C6",
|
|
12861
|
+
" - progress: \u201C\u7531\u53CD\u9988\u5165\u53E3\u6839\u636E\u7D27\u6025\u53CD\u9988\u81EA\u52A8\u5165\u8868\uFF0C\u7B49\u5F85\u9879\u76EE\u7ECF\u7406\u5206\u6D3E\u3002\u201D",
|
|
12862
|
+
" - codeStatus: \u201C\u672A\u5F00\u59CB\u201D",
|
|
12863
|
+
"- \u7D27\u6025\u53CD\u9988\u5199\u5165\u4EFB\u52A1\u8868\u540E\uFF0C\u8C03\u7528 notifyUser\uFF1A",
|
|
12864
|
+
" - title: \u201C\u7D27\u6025\u53CD\u9988\u5DF2\u8FDB\u5165\u4EFB\u52A1\u8868\u201D",
|
|
12865
|
+
" - message: \u7B80\u8981\u8BF4\u660E\u53CD\u9988\u5185\u5BB9\u548C\u4EFB\u52A1\u8868\u72B6\u6001",
|
|
12866
|
+
" - severity: \u201Ccritical\u201D",
|
|
12867
|
+
` - targetUserId: "${nolotusId}"`,
|
|
12868
|
+
"- \u5982\u679C notifyUser \u5DE5\u5177\u8FD4\u56DE\u9519\u8BEF\uFF0C\u4E0D\u8981\u91CD\u590D\u5199\u4EFB\u52A1\u8868\uFF1B\u5728\u56DE\u590D\u4E2D\u8BF4\u660E\u201C\u5DF2\u8FDB\u5165\u4EFB\u52A1\u8868\uFF0C\u901A\u77E5\u53D1\u9001\u5931\u8D25/\u5F85\u91CD\u8BD5\u201D\u3002",
|
|
12869
|
+
"",
|
|
12870
|
+
"\u4EA4\u4E92\u89C4\u5219\uFF1A",
|
|
12871
|
+
"- \u5982\u679C\u7528\u6237\u53EA\u8BF4\u201C\u6709\u95EE\u9898\u201D\u201C\u60F3\u63D0\u9700\u6C42\u201D\u8FD9\u7C7B\u4E0D\u5B8C\u6574\u8868\u8FBE\uFF0C\u5148\u7528\u4E00\u53E5\u8BDD\u8FFD\u95EE\u6700\u5173\u952E\u7684\u4FE1\u606F\u3002",
|
|
12872
|
+
"- \u5982\u679C\u7528\u6237\u5DF2\u7ECF\u6E05\u695A\u63CF\u8FF0\u95EE\u9898\u6216\u9700\u6C42\uFF0C\u76F4\u63A5\u8BB0\u5F55\uFF0C\u4E0D\u8981\u8FDB\u884C\u5197\u957F\u5206\u6790\u3002",
|
|
12873
|
+
"- \u6210\u529F\u8BB0\u5F55\u540E\uFF0C\u660E\u786E\u544A\u8BC9\u7528\u6237\u201C\u5DF2\u7ECF\u5E2E\u4F60\u8BB0\u4E0B\u201D\uFF0C\u5E76\u7528\u4E00\u53E5\u8BDD\u590D\u8FF0\u6838\u5FC3\u5185\u5BB9\u3002",
|
|
12874
|
+
"- \u7D27\u6025\u53CD\u9988\u6210\u529F\u8FDB\u5165\u4EFB\u52A1\u8868\u540E\uFF0C\u544A\u8BC9\u7528\u6237\u201C\u5DF2\u6309\u7D27\u6025\u53CD\u9988\u8FDB\u5165\u4EFB\u52A1\u8868\u201D\u3002",
|
|
12875
|
+
"- \u4E0D\u8981\u627F\u8BFA\u4E00\u5B9A\u4FEE\u590D\u3001\u4E00\u5B9A\u5F00\u53D1\uFF0C\u53EA\u627F\u8BFA\u201C\u5DF2\u8BB0\u5F55\u53CD\u9988\u201D\u6216\u201C\u5DF2\u8FDB\u5165\u4EFB\u52A1\u8868\u201D\u3002"
|
|
12876
|
+
].join("\n"),
|
|
12877
|
+
toolNames: ["addTableRow", "notifyUser"]
|
|
12878
|
+
},
|
|
12879
|
+
{
|
|
12880
|
+
slug: "agent-creator",
|
|
12881
|
+
title: "agent-creator",
|
|
12882
|
+
description: "\u521B\u5EFA Agent\uFF1A\u901A\u8FC7\u5BF9\u8BDD\u628A\u7528\u6237\u7684\u60F3\u6CD5\u62C6\u6210 prompt\u3001\u77E5\u8BC6\u3001\u5DE5\u5177\u3001skill/workflow \u548C eval\uFF0C\u751F\u6210\u53EF\u9884\u89C8\u8349\u7A3F\u5E76\u5728\u7528\u6237\u786E\u8BA4\u540E\u521B\u5EFA\u771F\u5B9E Agent\u3002",
|
|
12883
|
+
body: [
|
|
12884
|
+
"\u4F60\u662F Nolo \u7684 AI \u521B\u5EFA\u52A9\u624B\uFF0C\u53EA\u8D1F\u8D23\u901A\u8FC7\u5BF9\u8BDD\u5E2E\u52A9\u7528\u6237\u521B\u5EFA\u6216\u8C03\u6574\u4E00\u4E2A\u65B0\u7684 Agent\u3002",
|
|
12885
|
+
"\u6838\u5FC3\u539F\u5219\uFF1AAgent = prompt + knowledge + tools + skills/workflows + eval \u7684\u53EF\u8FD0\u884C\u5C01\u88C5\u3002",
|
|
12886
|
+
"\u521B\u5EFA\u6D41\u7A0B\u8981\u5E2E\u52A9\u7528\u6237\u628A\u4E13\u4E1A\u7ECF\u9A8C\u62C6\u5230\u5DF2\u6709\u8D44\u4EA7\u91CC\uFF0C\u4E0D\u8981\u628A\u6240\u6709\u7ECF\u9A8C\u90FD\u585E\u8FDB prompt\u3002",
|
|
12887
|
+
"\u5148\u7406\u89E3\u7528\u6237\u60F3\u8BA9\u8FD9\u4E2A AI \u670D\u52A1\u8C01\u3001\u5B8C\u6210\u4EC0\u4E48\u4EFB\u52A1\u3001\u4F7F\u7528\u4EC0\u4E48\u8BED\u6C14\u3001\u9700\u8981\u54EA\u4E9B\u80FD\u529B\u3001\u662F\u5426\u9700\u8981\u77E5\u8BC6\u5F15\u7528\uFF0C\u4EE5\u53CA\u662F\u5426\u9002\u5408\u516C\u5F00\u3002",
|
|
12888
|
+
"\u62C6\u89E3\u80FD\u529B\u65F6\u533A\u5206\uFF1Aprompt \u8D1F\u8D23\u89D2\u8272\u548C\u884C\u4E3A\u8FB9\u754C\uFF1Bknowledge/references \u8D1F\u8D23\u8D44\u6599\u6765\u6E90\uFF1Btools \u8D1F\u8D23\u52A8\u4F5C\uFF1Bskills/workflows \u8D1F\u8D23\u7A33\u5B9A\u6D41\u7A0B\u548C\u4E13\u5BB6\u65B9\u6CD5\uFF1Beval \u8D1F\u8D23\u6210\u529F/\u5931\u8D25\u6837\u4F8B\u548C\u9A8C\u6536\u3002",
|
|
12889
|
+
"\u5F53\u4FE1\u606F\u8DB3\u591F\u5F62\u6210\u521D\u7248\u914D\u7F6E\u65F6\uFF0C\u5148\u8C03\u7528 prepareAgentDraft\uFF0C\u751F\u6210\u53EF\u9884\u89C8\u8349\u7A3F\uFF1B\u4FE1\u606F\u4E0D\u8DB3\u65F6\u6BCF\u6B21\u53EA\u95EE\u4E00\u4E2A\u5173\u952E\u95EE\u9898\u3002",
|
|
12890
|
+
"prepareAgentDraft \u53EA\u751F\u6210\u8349\u7A3F\uFF0C\u4E0D\u4EE3\u8868\u5DF2\u7ECF\u521B\u5EFA\u771F\u5B9E Agent\u3002",
|
|
12891
|
+
"\u5982\u679C\u7528\u6237\u63CF\u8FF0\u4E86\u7A33\u5B9A\u6D41\u7A0B\u3001\u4E13\u5BB6\u65B9\u6CD5\u6216\u64CD\u4F5C\u6B65\u9AA4\uFF0C\u5148\u653E\u8FDB suggestedSkillIdeas / suggestedWorkflowIdeas\uFF1B\u7528\u6237\u660E\u786E\u786E\u8BA4\u8981\u6C89\u6DC0\u6D41\u7A0B\u540E\uFF0C\u624D\u53EF\u7528 createSkillDoc \u6216 updateDoc \u521B\u5EFA/\u66F4\u65B0 skill \u6216 workflow \u6587\u6863\uFF0C\u518D\u7528 updateAgent \u6302\u5230 references\u3002",
|
|
12892
|
+
"\u5982\u679C\u7528\u6237\u63CF\u8FF0\u4E86\u9A8C\u6536\u3001\u5931\u8D25\u8FB9\u754C\u6216\u771F\u5B9E\u6848\u4F8B\uFF0C\u5148\u653E\u8FDB suggestedEvalCases\uFF1B\u9ED8\u8BA4\u53EA\u751F\u6210 eval case \u8349\u7A3F\uFF0C\u4E0D\u8981\u81EA\u52A8\u8DD1 live eval\uFF0C\u4E5F\u4E0D\u8981\u6697\u4E2D\u4EA7\u751F\u4ED8\u8D39\u8BC4\u4F30\u3002",
|
|
12893
|
+
"\u8349\u7A3F\u5C55\u793A\u540E\uFF0C\u7B49\u5F85\u7528\u6237\u660E\u786E\u786E\u8BA4\uFF0C\u4F8B\u5982\u201C\u786E\u8BA4\u521B\u5EFA\u201D\u201C\u5C31\u6309\u8FD9\u4E2A\u521B\u5EFA\u201D\u201C\u521B\u5EFA\u8FD9\u4E2A AI\u201D\u3002",
|
|
12894
|
+
"\u53EA\u6709\u5F97\u5230\u660E\u786E\u786E\u8BA4\u540E\uFF0C\u624D\u8C03\u7528 createAgent \u521B\u5EFA\u771F\u5B9E Agent\u3002",
|
|
12895
|
+
"\u7528\u6237\u53EA\u662F\u8BA8\u8BBA\u3001\u8865\u5145\u3001\u4FEE\u6539\u6216\u8BF4\u201C\u5148\u770B\u770B\u201D\u65F6\uFF0C\u4E0D\u8981\u8C03\u7528 createAgent\u3002",
|
|
12896
|
+
"\u9ED8\u8BA4\u6A21\u578B\u4F7F\u7528 provider=nolo, model=deepseek-v4-flash\uFF1B\u9664\u975E\u7528\u6237\u660E\u786E\u8981\u6C42\u4E14\u5E73\u53F0\u5DF2\u77E5\u652F\u6301\uFF0C\u4E0D\u8981\u9009\u62E9 Claude/Anthropic \u7B49\u5F53\u524D runtime \u4E0D\u652F\u6301\u7684 provider\u3002",
|
|
12897
|
+
"\u516C\u5F00\u72B6\u6001\u4FDD\u6301\u4FDD\u5B88\uFF1A\u4F60\u53EF\u4EE5\u5EFA\u8BAE\u516C\u5F00\uFF0C\u4F46\u53EA\u6709\u7528\u6237\u660E\u786E\u8981\u6C42\u516C\u5F00\u53D1\u5E03\u65F6\uFF0CcreateAgent \u7684 isPublic \u624D\u80FD\u4E3A true\u3002",
|
|
12898
|
+
"\u5982\u679C\u7528\u6237\u60F3\u624B\u52A8\u5FAE\u8C03\u6A21\u578B\u3001\u5DE5\u5177\u3001\u77E5\u8BC6\u5F15\u7528\u6216\u53D1\u5E03\u72B6\u6001\uFF0C\u53EF\u4EE5\u5F15\u5BFC\u7528\u6237\u8FDB\u5165 /create/agent \u9AD8\u7EA7\u7F16\u8F91\u9875\u3002"
|
|
12899
|
+
].join("\n"),
|
|
12900
|
+
toolNames: [
|
|
12901
|
+
"prepareAgentDraft",
|
|
12902
|
+
"createAgent",
|
|
12903
|
+
"createSkillDoc",
|
|
12904
|
+
"readDoc",
|
|
12905
|
+
"updateDoc",
|
|
12906
|
+
"updateAgent"
|
|
12907
|
+
]
|
|
12908
|
+
},
|
|
12909
|
+
{
|
|
12910
|
+
slug: "app-builder",
|
|
12911
|
+
title: "app-builder",
|
|
12912
|
+
description: "\u5E94\u7528\u6784\u5EFA\uFF1A\u5E2E\u7528\u6237\u6784\u5EFA\u548C\u4FEE\u6539 Web \u5E94\u7528\uFF08\u54C1\u724C\u7AD9\u3001\u535A\u5BA2\u3001\u9884\u7EA6\u7AD9\u3001\u4F5C\u54C1\u96C6\u3001\u77E5\u8BC6\u7AD9\u3001\u8F7B\u5DE5\u5177\uFF09\uFF0C\u652F\u6301\u5BF9\u8BDD\u521B\u5EFA\u3001\u8FED\u4EE3\u4FEE\u6539\u3001\u9884\u68C0\u548C\u53D1\u5E03\uFF0C\u65E0\u9700\u7F16\u7A0B\u7ECF\u9A8C\u3002",
|
|
12913
|
+
body: [
|
|
12914
|
+
"\u4F60\u662F\u300C\u5E94\u7528\u6784\u5EFA\u52A9\u624B\u300D\uFF0C\u5E2E\u7528\u6237\u6784\u5EFA\u548C\u4FEE\u6539 Web \u5E94\u7528\u3002\u6838\u5FC3\u539F\u5219\uFF1A**\u7528\u6700\u5C11\u7684\u6B65\u9AA4\u548C\u6700\u5C11\u7684\u8BDD\u628A\u4E8B\u505A\u6210**\u3002",
|
|
12915
|
+
"",
|
|
12916
|
+
"## \u89D2\u8272",
|
|
12917
|
+
"- \u670D\u52A1\u5BF9\u8C61\uFF1A\u6CA1\u6709\u7F16\u7A0B\u7ECF\u9A8C\u7684\u7528\u6237\u3002\u8BED\u6C14\u8F7B\u677E\u53CB\u597D\uFF0C\u907F\u514D\u6280\u672F\u672F\u8BED\uFF08Worker\u3001JavaScript\u3001API \u7B49\uFF09\u3002",
|
|
12918
|
+
"- \u9664\u975E\u7528\u6237\u660E\u786E\u8981\u770B\u4EE3\u7801\uFF0C\u5426\u5219\u4E0D\u5C55\u793A\u5927\u6BB5\u4EE3\u7801\u3002",
|
|
12919
|
+
"- \u4F18\u5148\u6536\u655B\u6210\u5185\u5BB9\u9A71\u52A8\u7684\u7F51\u7AD9\u578B\u5C0F\u5E94\u7528\uFF1A\u54C1\u724C\u7AD9\u3001\u535A\u5BA2\u3001\u9884\u7EA6\u7AD9\u3001\u4F5C\u54C1\u96C6\u3001\u77E5\u8BC6\u7AD9\u3001\u8F7B\u5DE5\u5177\u3002",
|
|
12920
|
+
"",
|
|
12921
|
+
"## \u5DE5\u4F5C\u65B9\u5F0F",
|
|
12922
|
+
"1. \u7406\u89E3\u9700\u6C42\uFF1A\u7528\u7B80\u5355\u5BF9\u8BDD\u4E86\u89E3\u7528\u6237\u60F3\u8981\u4EC0\u4E48\uFF0C\u6700\u591A\u95EE 1-2 \u4E2A\u5173\u952E\u95EE\u9898\u3002",
|
|
12923
|
+
"2. \u81EA\u52A8\u6784\u5EFA\uFF1A\u6839\u636E\u63CF\u8FF0\u751F\u6210\u6216\u4FEE\u6539\u5E94\u7528\uFF0C\u7528\u6237\u9ED8\u8BA4\u4E0D\u9700\u8981\u770B\u5230\u4EE3\u7801\u3002",
|
|
12924
|
+
"3. \u7ED9\u51FA\u7ED3\u679C\uFF1A\u90E8\u7F72\u6210\u529F\u540E\u7ACB\u5373\u544A\u8BC9\u7528\u6237\u53EF\u8BBF\u95EE\u94FE\u63A5\uFF0C1-2 \u53E5\u8BDD\u8BF4\u660E\u5E94\u7528\u80FD\u505A\u4EC0\u4E48\u3002",
|
|
12925
|
+
"4. \u6301\u7EED\u8FED\u4EE3\uFF1A\u8981\u6539\u529F\u80FD\u6216\u6837\u5F0F\u65F6\uFF0C\u5148\u7528 appList \u627E\u5230\u76EE\u6807\u5E94\u7528\uFF0C\u518D\u6309\u300C\u5E94\u7528\u6784\u5EFA\u80FD\u529B\u5305\u300D\u7684\u64CD\u4F5C\u7EAA\u5F8B\u6267\u884C\uFF08\u6548\u7387\u4F18\u5148\u3001\u5B9A\u70B9\u4FEE\u6539\u3001SSR \u7EF4\u62A4\u3001\u9884\u68C0\u90E8\u7F72\uFF09\u3002",
|
|
12926
|
+
"",
|
|
12927
|
+
"## \u65B0\u5EFA\u5E94\u7528",
|
|
12928
|
+
"- \u63CF\u8FF0\u6E05\u6670\u5C31\u76F4\u63A5\u6784\u5EFA\u5E76\u90E8\u7F72\uFF0C\u7ED9\u51FA\u53EF\u8BBF\u95EE\u94FE\u63A5\u3002\u4E0D\u8981\u53CD\u95EE\u4E00\u5806\u7EC6\u8282\uFF0C\u5148\u505A\u51FA\u53EF\u7528\u7684\u7B2C\u4E00\u7248\u518D\u8FED\u4EE3\u3002",
|
|
12929
|
+
"",
|
|
12930
|
+
"## \u6536\u5C3E",
|
|
12931
|
+
"- \u90E8\u7F72\u6210\u529F\u540E\u4E00\u53E5\u8BDD\u7ED9\u94FE\u63A5\u5373\u53EF\u3002\u5931\u8D25\u5219\u6309\u8FD4\u56DE\u7684 issues \u5B9A\u70B9\u4FEE\u590D\u540E\u91CD\u8BD5\uFF0C\u4E0D\u8981\u505C\u4E0B\u6765\u95EE\u3002",
|
|
12932
|
+
"",
|
|
12933
|
+
"## \u5DE5\u5177",
|
|
12934
|
+
"- \u672C skill \u7684\u5DE5\u5177\uFF08app* / \u8868 / openAIGptImage \u7B49\uFF09\u7531\u300Capp-builder\u300D\u80FD\u529B\u5305\u6CE8\u5165",
|
|
12935
|
+
" \uFF08packages/ai/tools/toolPacks.ts \u7684 CAPABILITY_PACKS\uFF09\u3002\u82E5\u5F53\u524D runtime \u672A\u542F\u7528",
|
|
12936
|
+
" \u8BE5\u80FD\u529B\u5305\uFF0C\u5DE5\u5177\u9762\u4E0D\u4F1A\u5C55\u5F00\uFF0C\u9700\u8981\u5148\u786E\u8BA4\u8FD0\u884C\u73AF\u5883\u3002"
|
|
12937
|
+
].join("\n"),
|
|
12938
|
+
toolNames: []
|
|
12939
|
+
}
|
|
12940
|
+
];
|
|
12941
|
+
function seedBySlug(slug) {
|
|
12942
|
+
const seed = SPECIALIST_SKILL_SEEDS.find((item) => item.slug === slug);
|
|
12943
|
+
if (!seed) {
|
|
12944
|
+
throw new Error(`Unknown specialist skill slug: ${slug}`);
|
|
12945
|
+
}
|
|
12946
|
+
return seed;
|
|
12947
|
+
}
|
|
12948
|
+
function buildSpecialistSkillConfig(slug) {
|
|
12949
|
+
const seed = seedBySlug(slug);
|
|
12950
|
+
return {
|
|
12951
|
+
version: "0.1",
|
|
12952
|
+
kind: "skill",
|
|
12953
|
+
id: buildSpecialistSkillId(slug),
|
|
12954
|
+
name: seed.title,
|
|
12955
|
+
description: seed.description,
|
|
12956
|
+
...seed.toolNames?.length ? { toolNames: [...seed.toolNames] } : {}
|
|
12957
|
+
};
|
|
12958
|
+
}
|
|
12959
|
+
function buildSpecialistSkillContentBySlug(slug) {
|
|
12960
|
+
const seed = seedBySlug(slug);
|
|
12961
|
+
const skillConfig = buildSpecialistSkillConfig(slug);
|
|
12962
|
+
return buildSkillDocMarkdown({
|
|
12963
|
+
body: seed.body,
|
|
12964
|
+
skillConfig
|
|
12965
|
+
});
|
|
12966
|
+
}
|
|
12967
|
+
|
|
12968
|
+
// packages/ai/skills/codePlannerSkills.ts
|
|
12969
|
+
var CODE_PLANNER_SKILL_SLUGS = [
|
|
12970
|
+
"code-planning",
|
|
12971
|
+
"search-first",
|
|
12972
|
+
"workspace-code",
|
|
12973
|
+
"web-research-lite",
|
|
12974
|
+
"dispatch-executors"
|
|
12975
|
+
];
|
|
12976
|
+
var CODE_PLANNER_ROOT_SKILL_SLUG = "code-planning";
|
|
12977
|
+
function deterministicId2(prefix, seed) {
|
|
12978
|
+
let h = 2166136261;
|
|
12979
|
+
for (let i = 0; i < seed.length; i++) {
|
|
12980
|
+
h ^= seed.charCodeAt(i);
|
|
12981
|
+
h = h * 16777619 >>> 0;
|
|
12982
|
+
}
|
|
12983
|
+
const suffix = h.toString(36).toUpperCase().padStart(14, "0");
|
|
12984
|
+
return (prefix + suffix).slice(0, 26);
|
|
12985
|
+
}
|
|
12986
|
+
function normalizeSkillSeed2(input) {
|
|
12987
|
+
return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
|
|
12988
|
+
}
|
|
12989
|
+
function buildCodePlannerSkillId(slug) {
|
|
12990
|
+
return deterministicId2("01SK", normalizeSkillSeed2(slug) || slug);
|
|
12991
|
+
}
|
|
12992
|
+
function buildCodePlannerSkillPageKey(userId, slug) {
|
|
12993
|
+
return `page-${userId}-${buildCodePlannerSkillId(slug)}`;
|
|
12994
|
+
}
|
|
12995
|
+
var CODE_PLANNER_ROOT_SKILL_ID = buildCodePlannerSkillId(
|
|
12996
|
+
CODE_PLANNER_ROOT_SKILL_SLUG
|
|
12997
|
+
);
|
|
12998
|
+
function buildDispatchExecutorsPromptPatch(candidateKeys = DEFAULT_CODE_PLANNER_EXECUTOR_CANDIDATE_KEYS) {
|
|
12999
|
+
const keys = candidateKeys.map((key) => key.trim()).filter(Boolean);
|
|
13000
|
+
if (keys.length === 0) {
|
|
13001
|
+
throw new Error("buildDispatchExecutorsPromptPatch requires at least one candidate key");
|
|
13002
|
+
}
|
|
13003
|
+
return [
|
|
13004
|
+
"\u6D3E\u53D1\u534F\u8BAE\uFF1A",
|
|
13005
|
+
"- \u552F\u4E00\u771F\u5B9E\u5206\u6D3E\u901A\u9053\u662F startAgentRun\u3002\u7981\u6B62\u58F0\u79F0\u4F7F\u7528\u4E86\u672C\u673A CLI \u6216 nolo agent run\uFF08\u9664\u975E\u7528\u6237\u5F53\u524D\u4F1A\u8BDD\u672C\u8EAB\u5C31\u662F CLI\uFF09\u3002",
|
|
13006
|
+
"- \u9ED8\u8BA4\u6267\u884C\u5019\u9009\u662F\u4E0B\u5217\u5E73\u53F0\u516C\u5F00 Agent key\uFF08\u65E0\u56FA\u5B9A\u89D2\u8272\u3001\u65E0\u6253\u5206\uFF09\uFF0C\u6309\u987A\u5E8F\u4F18\u5148\u8003\u8651\uFF1B\u65E0\u9700\u5148\u505A\u53D1\u73B0\u8C03\u7528\uFF1A",
|
|
13007
|
+
...keys.map((key, index) => ` ${index + 1}. ${key}`),
|
|
13008
|
+
"- started \u2260 completed\uFF1AstartAgentRun \u6210\u529F\u8FD4\u56DE\u771F\u5B9E runId\uFF08\u540C\u6B65 wait:true \u5219\u8FD4\u56DE\u7ED3\u679C\uFF09\u540E\u624D\u80FD\u8BF4\u300C\u5DF2\u542F\u52A8\u300D\uFF1B\u5F02\u6B65\u6D3E\u53D1\u6210\u529F\u53EA\u8868\u793A started\u3002",
|
|
13009
|
+
"- \u591A\u6587\u4EF6\u5B9E\u73B0\u3001\u5927\u91CD\u6784\u3001\u65B0\u5EFA\u6A21\u5757\u5E94\u6D3E\u53D1\u6267\u884C\u8005\uFF1B\u5355\u70B9\u5C0F\u6539\u53EF\u76F4\u63A5\u7528\u5DE5\u4F5C\u533A\u5DE5\u5177\u5B8C\u6210\u3002",
|
|
13010
|
+
"- \u4E0D\u8981\u5199\u6B7B owner \u79C1\u6709 agentKey\u3002"
|
|
13011
|
+
].join("\n");
|
|
13012
|
+
}
|
|
13013
|
+
var CODE_PLANNER_SKILL_SEEDS = [
|
|
13014
|
+
{
|
|
13015
|
+
slug: "search-first",
|
|
13016
|
+
title: "search-first",
|
|
13017
|
+
description: "Search-first protocol for code work: repo before web; evaluate Adopt/Extend/Compose/Build.",
|
|
13018
|
+
body: [
|
|
13019
|
+
"# search-first",
|
|
13020
|
+
"",
|
|
13021
|
+
"Protocol-only skill. It does not grant tools by itself.",
|
|
13022
|
+
"Use workspace and web skills for actual reads/searches."
|
|
13023
|
+
].join("\n"),
|
|
13024
|
+
triggerMode: "required",
|
|
13025
|
+
promptPatch: [
|
|
13026
|
+
"Search-first \u534F\u8BAE\uFF1A",
|
|
13027
|
+
"1. \u5148\u5728\u7ED1\u5B9A\u5DE5\u4F5C\u533A/\u4ED3\u5E93\u5185\u641C\u7D22\u76F8\u5173\u6A21\u5757\u3001\u6D4B\u8BD5\u3001guidance\u3001\u65E2\u6709 helper \u4E0E\u6A21\u5F0F\u3002",
|
|
13028
|
+
"2. \u4EC5\u5F53\u4ED3\u5E93\u5185\u4FE1\u606F\u4E0D\u8DB3\uFF0C\u6216\u9700\u8981\u6838\u5BF9 API/\u7248\u672C/\u5DF2\u77E5 issue \u65F6\uFF0C\u518D\u67E5\u4F9D\u8D56\u6E90\u7801\u3001\u5B98\u65B9\u6587\u6863\u3001GitHub\u3001Web\u3002",
|
|
13029
|
+
"3. \u8BC4\u4EF7\u8DEF\u5F84\uFF1AAdopt / Extend / Compose / Build\u3002\u9ED8\u8BA4\u4F18\u5148 Adopt/Extend/Compose\uFF1BBuild \u9700\u8BF4\u660E\u4E3A\u4F55\u4E0D\u591F\u3002",
|
|
13030
|
+
"4. \u4EA7\u51FA\u53EF\u6267\u884C\u8BA1\u5212\uFF1A\u76EE\u6807\u3001\u8FB9\u754C\u3001\u5173\u952E\u6587\u4EF6\u3001\u9A8C\u8BC1\u65B9\u5F0F\u3001\u98CE\u9669\uFF1B\u518D\u6309\u7528\u6237\u610F\u56FE\u51B3\u5B9A\u53EA\u7ED9\u8BA1\u5212\u3001\u81EA\u5DF1\u5C0F\u6539\uFF0C\u8FD8\u662F startAgentRun \u6D3E\u53D1\u3002",
|
|
13031
|
+
"5. \u5DE5\u5177\u9884\u7B97\uFF1A\u7B80\u5355\u95EE\u7B54\u5C3D\u91CF \u22645 \u6B21\u5DE5\u5177\u8C03\u7528\uFF1B\u7981\u6B62\u65E0\u76EE\u6807\u8FDE\u8BFB\u5927\u91CF\u6587\u4EF6\u3002",
|
|
13032
|
+
"6. \u4ECE\u672A\u8C03\u7528\u7684\u6E20\u9053\u7981\u6B62\u58F0\u79F0\u5DF2\u641C\u7D22/\u5DF2\u68C0\u67E5\u3002"
|
|
13033
|
+
].join("\n")
|
|
13034
|
+
},
|
|
13035
|
+
{
|
|
13036
|
+
slug: "workspace-code",
|
|
13037
|
+
title: "workspace-code",
|
|
13038
|
+
description: "Workspace read/edit/shell protocol for local bound folders and repo inspection.",
|
|
13039
|
+
body: [
|
|
13040
|
+
"# workspace-code",
|
|
13041
|
+
"",
|
|
13042
|
+
"Declares local workspace tools and the honest fallback when they are unavailable."
|
|
13043
|
+
].join("\n"),
|
|
13044
|
+
triggerMode: "required",
|
|
13045
|
+
toolNames: [
|
|
13046
|
+
"readFile",
|
|
13047
|
+
"globFiles",
|
|
13048
|
+
"editFile",
|
|
13049
|
+
"execShell"
|
|
13050
|
+
],
|
|
13051
|
+
promptPatch: [
|
|
13052
|
+
"\u5DE5\u4F5C\u533A\u534F\u8BAE\uFF1A",
|
|
13053
|
+
"- Desktop/Space \u4EE3\u7801\u5BF9\u8BDD\u4E2D\uFF0C\u7528\u6237\u8BF4\u300C\u5F53\u524D\u4EE3\u7801\u300D\u300C\u5F53\u524D\u6539\u52A8\u300D\u300C\u5F53\u524D\u5DE5\u4F5C\u533A\u300D\u300C\u8FD9\u4E2A\u9879\u76EE\u300D\u300C\u4ED3\u5E93\u91CC\u300D\uFF0C\u6216\u70B9\u540D\u4ED3\u5E93\u7EC4\u4EF6\uFF08\u5982\u300CCLI \u76F8\u5173\u300D\uFF09\u65F6\uFF0C\u9ED8\u8BA4\u6307\u7ED1\u5B9A\u5DE5\u4F5C\u533A\uFF1B\u7ACB\u5373\u7528\u5DE5\u4F5C\u533A/shell \u5DE5\u5177\u68C0\u67E5\u3002\u4EE3\u7801\u6539\u52A8 review \u65F6\u5148\u4ECE git status -sb\u3001diff/stat\u3001\u76F8\u5173 guidance/tests \u5165\u624B\u3002\u4E0D\u8981\u8981\u6C42\u7528\u6237\u7C98\u8D34\u4EE3\u7801/diff\uFF0C\u9664\u975E\u5DE5\u4F5C\u533A\u5DE5\u5177\u786E\u5B9E\u4E0D\u53EF\u7528\u3001\u6CA1\u6709\u7ED1\u5B9A\u6587\u4EF6\u5939\uFF0C\u6216\u8BBF\u95EE/\u547D\u4EE4\u5931\u8D25\u2014\u2014\u5148\u62AB\u9732\u5931\u8D25\u518D\u9000\u56DE\u7C98\u8D34\u3002",
|
|
13054
|
+
"- \u53EA\u8BFB\uFF1AreadFile\u3001globFiles\u3002\u76EE\u5F55\u7ED3\u6784\u4E0E\u6587\u4EF6\u5217\u8868\u4F18\u5148\u4F7F\u7528 execShell \u8FD0\u884C ls/find\uFF0C\u4EE3\u7801/\u6587\u672C\u641C\u7D22\u4F18\u5148\u4F7F\u7528 execShell \u8FD0\u884C rg/git grep\u3002\u6CA1\u6709\u6210\u529F\u7ED3\u679C\u65F6\uFF0C\u7981\u6B62\u58F0\u79F0\u300C\u5DF2\u68C0\u67E5\u4ED3\u5E93/\u5DE5\u4F5C\u533A/\u6587\u4EF6\u300D\u3002",
|
|
13055
|
+
"- editFile\uFF1A\u5C0F\u8303\u56F4\u7CBE\u786E\u66FF\u6362\u3002edit \u524D\u5148 readFile \u62FF exact oldText\uFF1B\u9ED8\u8BA4 expectedReplacements=1\uFF0C\u5339\u914D\u6570\u4E0D\u7B26\u65F6\u505C\u5E76\u62A5\u544A blocker\u3002\u6CA1\u6709 writeFile\u2014\u2014\u9700\u8981\u65B0\u5EFA\u6587\u4EF6\u6216\u6574\u6587\u4EF6\u91CD\u5199\u65F6 startAgentRun \u6D3E\u53D1\u3002",
|
|
13056
|
+
"- execShell\uFF1A\u4F18\u5148\u53EA\u8BFB/\u8BCA\u65AD\u3002git \u72B6\u6001\u7528 shell\uFF08\u5982 git status -sb\uFF09\uFF0C\u7981\u6B62\u7528 readFile \u6316 .git \u4EE3\u66FF\u3002\u7834\u574F\u6027\u547D\u4EE4\u4E0E\u672A\u6279\u51C6\u7684 push/\u5408\u5E76\u7981\u6B62\u3002",
|
|
13057
|
+
"- \u5DE5\u4F5C\u533A\u5DE5\u5177\u4E0D\u53EF\u7528\uFF08\u975E Desktop\u3001\u672A\u7ED1\u5B9A boundFolder\u3001\u5DE5\u5177\u5931\u8D25\uFF09\u65F6\u5FC5\u987B\u62AB\u9732\uFF0C\u5E76\u53EA\u57FA\u4E8E\u7528\u6237\u7C98\u8D34\u5185\u5BB9\u4E0E\u4ECD\u53EF\u7528\u6E20\u9053\u7EE7\u7EED\u3002"
|
|
13058
|
+
].join("\n")
|
|
13059
|
+
},
|
|
13060
|
+
{
|
|
13061
|
+
slug: "web-research-lite",
|
|
13062
|
+
title: "web-research-lite",
|
|
13063
|
+
description: "Lite web verification protocol for dependency/docs/issue lookups.",
|
|
13064
|
+
body: [
|
|
13065
|
+
"# web-research-lite",
|
|
13066
|
+
"",
|
|
13067
|
+
"Declares external search/scrape tools for verification after local search."
|
|
13068
|
+
].join("\n"),
|
|
13069
|
+
triggerMode: "required",
|
|
13070
|
+
// 刻意不声明 toolNames:联网能力是系统层能力包(web-search / web-scrape),
|
|
13071
|
+
// 不编码的对话同样需要,不该由 Code Planner 私藏一份。这里只留协议,工具由
|
|
13072
|
+
// 宿主按能力包挂载,用户在设置页的全局开关才能真正管住它们。
|
|
13073
|
+
promptPatch: [
|
|
13074
|
+
"\u5916\u90E8\u68C0\u7D22\u534F\u8BAE\uFF1A",
|
|
13075
|
+
"- \u8054\u7F51\u5DE5\u5177\u7531\u5E73\u53F0\u80FD\u529B\u5305\u63D0\u4F9B\uFF08\u8054\u7F51\u641C\u7D22 / \u6DF1\u5EA6\u7F51\u9875\u6293\u53D6\uFF09\uFF0C\u7528\u6237\u53EF\u80FD\u5DF2\u5168\u5C40\u5173\u95ED\u3002",
|
|
13076
|
+
"- \u53EA\u4F7F\u7528\u672C\u8F6E\u5B9E\u9645\u62FF\u5230\u7684\u5DE5\u5177\uFF1B\u5DE5\u5177\u4E0D\u5728\u624B\u4E0A\u65F6\u5982\u5B9E\u8BF4\u660E\u300C\u8054\u7F51\u80FD\u529B\u672A\u5F00\u542F\u300D\uFF0C\u4E0D\u8981\u81C6\u9020\u8C03\u7528\u3002",
|
|
13077
|
+
"- \u6CA1\u6709\u6210\u529F\u7ED3\u679C\u65F6\uFF0C\u7981\u6B62\u58F0\u79F0\u300C\u5DF2\u641C\u7D22\u4F9D\u8D56/\u5B98\u65B9\u6587\u6863/GitHub/Web\u300D\u3002",
|
|
13078
|
+
"- \u6E20\u9053\u5931\u8D25\u6216\u4E0D\u53EF\u7528\u65F6\u5FC5\u987B\u62AB\u9732\u7F3A\u53E3\uFF0C\u6539\u7528\u4ECD\u53EF\u7528\u5DE5\u5177\uFF1B\u4E0D\u8981\u5047\u88C5\u5DF2\u6838\u5B9E\u3002"
|
|
13079
|
+
].join("\n")
|
|
13080
|
+
},
|
|
13081
|
+
{
|
|
13082
|
+
slug: "dispatch-executors",
|
|
13083
|
+
title: "dispatch-executors",
|
|
13084
|
+
description: "startAgentRun dispatch protocol for Code Planner executor candidates.",
|
|
13085
|
+
body: [
|
|
13086
|
+
"# dispatch-executors",
|
|
13087
|
+
"",
|
|
13088
|
+
"Only startAgentRun is granted. Default candidate keys are platform public agents;",
|
|
13089
|
+
"hard allowlisting is enforced by runtimeContext.allowedChildAgentKeys when wired."
|
|
13090
|
+
].join("\n"),
|
|
13091
|
+
triggerMode: "required",
|
|
13092
|
+
toolNames: ["startAgentRun"],
|
|
13093
|
+
// Keys come from core/builtinAgents — do not hard-code a separate list here.
|
|
13094
|
+
promptPatch: buildDispatchExecutorsPromptPatch(
|
|
13095
|
+
DEFAULT_CODE_PLANNER_EXECUTOR_CANDIDATE_KEYS
|
|
13096
|
+
)
|
|
13097
|
+
},
|
|
13098
|
+
{
|
|
13099
|
+
slug: "code-planning",
|
|
13100
|
+
title: "code-planning",
|
|
13101
|
+
description: "Root Code Planner skill: composes search-first, workspace, web, and dispatch skills.",
|
|
13102
|
+
body: [
|
|
13103
|
+
"# code-planning",
|
|
13104
|
+
"",
|
|
13105
|
+
"Composition-only root skill for Code Planner.",
|
|
13106
|
+
"Attach this skill on the Agent; children load via requiredSkills.",
|
|
13107
|
+
"Until runtimes expand skill pages, Agent seed also carries a compiled snapshot."
|
|
13108
|
+
].join("\n"),
|
|
13109
|
+
triggerMode: "required",
|
|
13110
|
+
requiredSkillSlugs: [
|
|
13111
|
+
"search-first",
|
|
13112
|
+
"workspace-code",
|
|
13113
|
+
"web-research-lite",
|
|
13114
|
+
"dispatch-executors"
|
|
13115
|
+
]
|
|
13116
|
+
}
|
|
13117
|
+
];
|
|
13118
|
+
function seedBySlug2(slug) {
|
|
13119
|
+
const seed = CODE_PLANNER_SKILL_SEEDS.find((item) => item.slug === slug);
|
|
13120
|
+
if (!seed) {
|
|
13121
|
+
throw new Error(`Unknown Code Planner skill slug: ${slug}`);
|
|
13122
|
+
}
|
|
13123
|
+
return seed;
|
|
13124
|
+
}
|
|
13125
|
+
function collectCodePlannerReachableSkillSlugs(rootSlug = CODE_PLANNER_ROOT_SKILL_SLUG) {
|
|
13126
|
+
const ordered = [];
|
|
13127
|
+
const seen = /* @__PURE__ */ new Set();
|
|
13128
|
+
const visit = (slug) => {
|
|
13129
|
+
if (seen.has(slug)) return;
|
|
13130
|
+
seen.add(slug);
|
|
13131
|
+
ordered.push(slug);
|
|
13132
|
+
for (const child of seedBySlug2(slug).requiredSkillSlugs ?? []) {
|
|
13133
|
+
visit(child);
|
|
13134
|
+
}
|
|
13135
|
+
};
|
|
13136
|
+
visit(rootSlug);
|
|
13137
|
+
return ordered;
|
|
13138
|
+
}
|
|
13139
|
+
function compileCodePlannerEffectiveTools() {
|
|
13140
|
+
const tools = [];
|
|
13141
|
+
const seen = /* @__PURE__ */ new Set();
|
|
13142
|
+
for (const slug of collectCodePlannerReachableSkillSlugs()) {
|
|
13143
|
+
for (const toolName of seedBySlug2(slug).toolNames ?? []) {
|
|
13144
|
+
if (seen.has(toolName)) continue;
|
|
13145
|
+
seen.add(toolName);
|
|
13146
|
+
tools.push(toolName);
|
|
13147
|
+
}
|
|
13148
|
+
}
|
|
13149
|
+
return tools;
|
|
13150
|
+
}
|
|
13151
|
+
var CODE_PLANNER_COMPILED_EFFECTIVE_TOOLS = compileCodePlannerEffectiveTools();
|
|
13152
|
+
function buildCodePlannerSkillConfig(slug, options) {
|
|
13153
|
+
const seed = seedBySlug2(slug);
|
|
13154
|
+
const requiredSkills = options?.requiredSkills ?? seed.requiredSkillSlugs?.map((childSlug) => buildCodePlannerSkillId(childSlug));
|
|
13155
|
+
return {
|
|
13156
|
+
version: "0.1",
|
|
13157
|
+
kind: "skill",
|
|
13158
|
+
id: buildCodePlannerSkillId(slug),
|
|
13159
|
+
name: seed.title,
|
|
13160
|
+
description: seed.description,
|
|
13161
|
+
...seed.triggerMode ? { triggerMode: seed.triggerMode } : {},
|
|
13162
|
+
...seed.toolNames?.length ? { toolNames: [...seed.toolNames] } : {},
|
|
13163
|
+
...requiredSkills?.length ? { requiredSkills: [...requiredSkills] } : {},
|
|
13164
|
+
...seed.promptPatch ? { promptPatch: seed.promptPatch } : {}
|
|
13165
|
+
};
|
|
13166
|
+
}
|
|
13167
|
+
function buildCodePlannerSkillPageRecords(userId) {
|
|
13168
|
+
const trimmedUserId = userId.trim();
|
|
13169
|
+
if (!trimmedUserId) {
|
|
13170
|
+
throw new Error("buildCodePlannerSkillPageRecords requires userId");
|
|
13171
|
+
}
|
|
13172
|
+
return CODE_PLANNER_SKILL_SEEDS.map((seed) => {
|
|
13173
|
+
const skillId = buildCodePlannerSkillId(seed.slug);
|
|
13174
|
+
const dbKey = buildCodePlannerSkillPageKey(trimmedUserId, seed.slug);
|
|
13175
|
+
const requiredSkills = seed.requiredSkillSlugs?.map(
|
|
13176
|
+
(childSlug) => buildCodePlannerSkillPageKey(trimmedUserId, childSlug)
|
|
13177
|
+
);
|
|
13178
|
+
const skillConfig = buildCodePlannerSkillConfig(seed.slug, {
|
|
13179
|
+
requiredSkills
|
|
13180
|
+
});
|
|
13181
|
+
return {
|
|
13182
|
+
slug: seed.slug,
|
|
13183
|
+
skillId,
|
|
13184
|
+
dbKey,
|
|
13185
|
+
title: seed.title,
|
|
13186
|
+
content: buildSkillDocMarkdown({
|
|
13187
|
+
body: seed.body,
|
|
13188
|
+
skillConfig
|
|
13189
|
+
}),
|
|
13190
|
+
meta: {
|
|
13191
|
+
kind: "skill",
|
|
13192
|
+
skillConfig
|
|
13193
|
+
},
|
|
13194
|
+
...skillConfig.toolNames?.length ? { tools: [...skillConfig.toolNames] } : {}
|
|
13195
|
+
};
|
|
13196
|
+
});
|
|
13197
|
+
}
|
|
13198
|
+
|
|
13199
|
+
// packages/ai/skills/searchDialogSkill.ts
|
|
13200
|
+
var SEARCH_DIALOG_SKILL_SLUGS = [
|
|
13201
|
+
"search-dialog-messages"
|
|
13202
|
+
];
|
|
13203
|
+
function deterministicId3(prefix, seed) {
|
|
13204
|
+
let h = 2166136261;
|
|
13205
|
+
for (let i = 0; i < seed.length; i++) {
|
|
13206
|
+
h ^= seed.charCodeAt(i);
|
|
13207
|
+
h = h * 16777619 >>> 0;
|
|
13208
|
+
}
|
|
13209
|
+
const suffix = h.toString(36).toUpperCase().padStart(14, "0");
|
|
13210
|
+
return (prefix + suffix).slice(0, 26);
|
|
13211
|
+
}
|
|
13212
|
+
function normalizeSkillSeed3(input) {
|
|
13213
|
+
return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
|
|
13214
|
+
}
|
|
13215
|
+
function buildSearchDialogSkillId(slug) {
|
|
13216
|
+
return deterministicId3("01SK", normalizeSkillSeed3(slug) || slug);
|
|
13217
|
+
}
|
|
13218
|
+
function buildSearchDialogSkillPageKey(userId, slug) {
|
|
13219
|
+
return `page-${userId}-${buildSearchDialogSkillId(slug)}`;
|
|
13220
|
+
}
|
|
13221
|
+
var SEARCH_DIALOG_SKILL_SEEDS = [
|
|
13222
|
+
{
|
|
13223
|
+
slug: "search-dialog-messages",
|
|
13224
|
+
title: "\u5BF9\u8BDD\u68C0\u7D22",
|
|
13225
|
+
description: "\u5BF9\u8BDD\u68C0\u7D22\uFF1AlistDialogs \u5217\u51FA\u5F53\u524D\u7528\u6237\u7684\u5BF9\u8BDD\uFF08\u9ED8\u8BA4 100 \u6761\u3001\u4E0A\u9650 500\uFF09\uFF0C\u7528\u4E8E\u5728\u76EE\u6807\u5BF9\u8BDD\u4E0D\u660E\u786E\u65F6\u5148\u5B9A\u4F4D\uFF1BreadDialog \u8BFB\u53D6\u6307\u5B9A\u5BF9\u8BDD\u7684\u5143\u6570\u636E\u4E0E\u6700\u8FD1\u6D88\u606F\uFF08dialog \u4F18\u5148\u4F20\u5B8C\u6574 dbKey dialog-<userId>-<id> \u6216\u5BF9\u8BDD URL\uFF0C\u88F8 ID \u4EC5\u5BF9\u5F53\u524D\u767B\u5F55\u7528\u6237\u6709\u6548\uFF09\uFF1BsearchDialogMessages \u5728\u6307\u5B9A\u5BF9\u8BDD\u7684\u539F\u59CB\u6D88\u606F\u4E2D\u6309\u7CBE\u786E\u6216\u6A21\u7CCA\u6587\u672C\u641C\u7D22\uFF0C\u8FD4\u56DE\u5339\u914D\u7684 messageId\u3001\u89D2\u8272\u3001\u88C1\u526A\u540E\u7684\u539F\u6587\u7247\u6BB5\u4E0E\u90BB\u8FD1\u4E0A\u4E0B\u6587\uFF0C\u4E0D\u628A\u6574\u6BB5\u5BF9\u8BDD\u704C\u8FDB\u6A21\u578B\u4E0A\u4E0B\u6587\u3002",
|
|
13226
|
+
body: [
|
|
13227
|
+
"\u4F60\u662F\u300C\u5BF9\u8BDD\u68C0\u7D22\u300D\u80FD\u529B\u7684\u4F7F\u7528\u8005\uFF1A\u9700\u8981\u8BFB\u53D6\u6216\u53D6\u8BC1\u67D0\u6BB5\u5BF9\u8BDD\u65F6\uFF0C\u5728\u672C skill \u7684 listDialogs\u3001readDialog \u4E0E searchDialogMessages \u4E09\u4E2A\u5DE5\u5177\u4E2D\u9009\u62E9\u5408\u9002\u7684\u90A3\u4E2A\u3002",
|
|
13228
|
+
"",
|
|
13229
|
+
"## \u4EC0\u4E48\u65F6\u5019\u7528",
|
|
13230
|
+
"- \u7528\u6237\u8981\u7CBE\u786E\u7684\u65E7\u6D88\u606F\u3001\u539F\u6587\u63AA\u8F9E\u3001\u8C01\u8BF4\u4E86\u4EC0\u4E48\u3001\u67D0\u4E2A\u51B3\u7B56\u4E3A\u4EC0\u4E48\u505A\u51FA\u3001\u65E9\u671F\u5386\u53F2\u7EC6\u8282\u3002",
|
|
13231
|
+
"- \u9700\u8981\u6587\u4EF6/\u5DE5\u5177\u8BC1\u636E\u3001\u5931\u8D25\u5C1D\u8BD5\u3001\u6216\u4E0E\u4E4B\u524D\u5DE5\u4F5C\u7684\u5BF9\u6BD4\uFF08\u6765\u81EA\u88AB\u5F15\u7528\u5BF9\u8BDD\uFF09\u3002",
|
|
13232
|
+
"- \u76EE\u6807\u5BF9\u8BDD\u4E0D\u660E\u786E\u3001\u9700\u8981\u5148\u5217\u51FA\u5019\u9009\u5BF9\u8BDD\uFF08\u5F53\u524D\u7528\u6237\u7684\u5BF9\u8BDD\u5217\u8868\uFF09\u65F6\uFF0C\u7528 listDialogs\u3002",
|
|
13233
|
+
"- \u5F53\u524D\u4E0A\u4E0B\u6587\u53EA\u6709\u6709\u635F\u7684\u5BF9\u8BDD\u6458\u8981\uFF0C\u800C\u7528\u6237\u9700\u8981\u8BC1\u636E\u3001\u51FA\u5904\u6216\u5177\u4F53\u5386\u53F2\u7EC6\u8282\u65F6\u2014\u2014\u4F18\u5148\u7528\u672C skill\uFF0C\u4E0D\u8981\u51ED\u6458\u8981\u731C\u3002",
|
|
13234
|
+
"",
|
|
13235
|
+
"## listDialogs\uFF1A\u5B9A\u4F4D\u5BF9\u8BDD",
|
|
13236
|
+
"\u5217\u51FA\u5F53\u524D\u7528\u6237\u7684\u5BF9\u8BDD\uFF1A`listDialogs({ limit?, space?, includeScheduled? })`\u3002",
|
|
13237
|
+
"- \u8FD4\u56DE `{ total, dialogs: [{ id, dbKey, title, status, updatedAt, createdAt, spaceId, triggerType, primaryAgentKey }] }`\uFF0C\u6309\u6700\u8FD1\u66F4\u65B0\u6392\u5E8F\u3002",
|
|
13238
|
+
"- limit \u63A7\u5236\u8FD4\u56DE\u6761\u6570\uFF08\u9ED8\u8BA4 100\uFF0C\u4E0A\u9650 500\uFF09\uFF1Bspace \u53EF\u4F20 space id \u6216 URL \u6536\u7A84\u8303\u56F4\uFF1BincludeScheduled \u63A7\u5236\u662F\u5426\u5305\u542B\u5B9A\u65F6/\u540E\u53F0\u8FD0\u884C\u5BF9\u8BDD\uFF08\u9ED8\u8BA4\u4E0D\u542B\uFF09\u3002",
|
|
13239
|
+
"- \u76EE\u6807\u5BF9\u8BDD\u4E0D\u660E\u786E\u65F6\u5148\u7528\u5B83\u5B9A\u4F4D\uFF1A\u4ECE\u7ED3\u679C\u91CC\u53D6 dbKey \u6216 URL \u4EA4\u7ED9 readDialog / searchDialogMessages\uFF0C\u4E0D\u8981\u7528\u88F8 ID\u3002",
|
|
13240
|
+
"",
|
|
13241
|
+
"## readDialog\uFF1A\u8BFB\u53D6\u5BF9\u8BDD",
|
|
13242
|
+
'\u8BFB\u53D6\u6307\u5B9A\u5BF9\u8BDD\u7684\u5143\u6570\u636E\u4E0E\u6700\u8FD1\u6D88\u606F\uFF1A`readDialog({ dialog: "<dialog \u7684 dbKey>" })`\u3002',
|
|
13243
|
+
"- dialog \u4F18\u5148\u4F20\u5B8C\u6574 dbKey\uFF08dialog-<userId>-<id>\uFF09\u6216\u5BF9\u8BDD URL\uFF1B\u88F8 ID \u53EA\u5BF9\u5F53\u524D\u767B\u5F55\u7528\u6237\u6709\u6548\uFF0C\u4E0D\u80FD\u53EF\u9760\u8BFB\u53D6\u5176\u4ED6\u7528\u6237\u6216\u8DE8\u670D\u52A1\u5668\u7684\u5BF9\u8BDD\u3002",
|
|
13244
|
+
"- \u76EE\u6807\u5BF9\u8BDD\u4E0D\u660E\u786E\u65F6\uFF0C\u5148 listDialogs \u5B9A\u4F4D\u518D\u8BFB\u53D6\u3002",
|
|
13245
|
+
"- limit \u63A7\u5236\u8FD4\u56DE\u6D88\u606F\u6761\u6570\uFF08\u9ED8\u8BA4 120\uFF0C\u4E0A\u9650 1000\uFF09\u3002",
|
|
13246
|
+
"",
|
|
13247
|
+
"## searchDialogMessages\uFF1A\u539F\u6587\u641C\u7D22",
|
|
13248
|
+
'\u57FA\u672C\u5F62\u5F0F\uFF1A`searchDialogMessages({ dialogKey: "<dialog \u7684 dbKey>", query: "<\u8981\u641C\u7684\u6587\u672C>" })`',
|
|
13249
|
+
"",
|
|
13250
|
+
"\u53C2\u6570\uFF1A",
|
|
13251
|
+
"- dialogKey\uFF1A\u76EE\u6807\u5BF9\u8BDD\u7684 dbKey\uFF08\u5F62\u5982 dialog-<userId>-01ABC...\uFF09\u3002",
|
|
13252
|
+
"- query\uFF1A\u8981\u5728\u539F\u59CB\u6D88\u606F\u5185\u5BB9\u91CC\u641C\u7D22\u7684\u6587\u672C\u3002",
|
|
13253
|
+
"- limit\uFF1A\u6700\u591A\u8FD4\u56DE\u591A\u5C11\u6761\u5339\u914D\uFF08\u4E0A\u9650 10\uFF09\u3002",
|
|
13254
|
+
"- scanLimit\uFF1A\u4ECE server \u62C9\u53D6\u65F6\u6700\u591A\u626B\u63CF\u591A\u5C11\u6761\u6D88\u606F\uFF08\u4E0A\u9650 500\uFF09\u3002",
|
|
13255
|
+
"- contextMessages\uFF1A\u6BCF\u6761\u5339\u914D\u524D\u540E\u9644\u5E26\u591A\u5C11\u6761\u90BB\u8FD1\u6D88\u606F\uFF08\u4E0A\u9650 3\uFF09\u3002",
|
|
13256
|
+
"- role\uFF1A\u53EF\u9009\uFF0C\u53EA\u641C\u6307\u5B9A\u89D2\u8272\uFF08user / assistant / tool / system\uFF09\u3002",
|
|
13257
|
+
"- includeTools\uFF1A\u53EF\u9009\uFF0C\u662F\u5426\u5305\u542B tool \u6D88\u606F\u3002",
|
|
13258
|
+
"",
|
|
13259
|
+
"## \u8FD4\u56DE",
|
|
13260
|
+
"searchDialogMessages \u8FD4\u56DE\u5339\u914D\u7684 messageId\u3001\u89D2\u8272\u3001\u88C1\u526A\u540E\u7684\u539F\u6587\u5185\u5BB9\u7247\u6BB5\u4EE5\u53CA\u90BB\u8FD1\u4E0A\u4E0B\u6587\u3002",
|
|
13261
|
+
"\u57FA\u4E8E\u8FD4\u56DE\u7684\u539F\u6587\u7247\u6BB5\u56DE\u7B54\u7528\u6237\uFF0C\u5F15\u7528\u65F6\u4FDD\u6301\u539F\u6587\uFF1B\u7247\u6BB5\u88AB\u88C1\u526A\u65F6\uFF0C\u5982\u9700\u66F4\u5B8C\u6574\u5185\u5BB9\u518D\u9488\u5BF9\u6027\u7F29\u5C0F\u67E5\u8BE2\u6216\u6362\u5173\u952E\u8BCD\u3002",
|
|
13262
|
+
"",
|
|
13263
|
+
"## \u8FB9\u754C",
|
|
13264
|
+
"- searchDialogMessages \u53EA\u641C**\u4E00\u4E2A**\u6307\u5B9A\u5BF9\u8BDD\u7684\u539F\u59CB\u6D88\u606F\uFF1B\u8DE8\u5BF9\u8BDD\u6216\u6309\u4E3B\u9898\u805A\u5408\u8BF7\u7528 queryDialogsBySubjectRef\u3002",
|
|
13265
|
+
"- listDialogs \u53EA\u5217**\u5F53\u524D\u767B\u5F55\u7528\u6237**\u7684\u5BF9\u8BDD\uFF08\u9ED8\u8BA4\u4E0D\u542B\u5B9A\u65F6/\u540E\u53F0\u8FD0\u884C\u5BF9\u8BDD\uFF0C\u9664\u975E includeScheduled\uFF09\uFF1B\u8DE8\u7528\u6237/\u8DE8\u670D\u52A1\u5668\u68C0\u7D22\u4E0D\u53D7\u652F\u6301\u3002",
|
|
13266
|
+
"- \u4E0D\u8981\u4E3A\u4E86\u300C\u591A\u62FF\u70B9\u4E0A\u4E0B\u6587\u300D\u800C\u7528\u5927 scanLimit/limit \u4EE3\u66FF readDialog \u7684\u5B8C\u6574\u8BFB\u53D6\u8BED\u4E49\uFF1B\u672C skill \u91CC readDialog \u8D1F\u8D23\u5B8C\u6574\u8BFB\u53D6\uFF0CsearchDialogMessages \u7684\u4EF7\u503C\u662F\u5B9A\u70B9\u53D6\u8BC1\u3002",
|
|
13267
|
+
"- \u641C\u4E0D\u5230\u65F6\u5982\u5B9E\u8BF4\u660E\uFF0C\u4E0D\u8981\u7528\u6458\u8981\u6216\u8BB0\u5FC6\u7F16\u9020\u539F\u6587\u3002"
|
|
13268
|
+
].join("\n"),
|
|
13269
|
+
toolNames: ["listDialogs", "readDialog", "searchDialogMessages"]
|
|
13270
|
+
}
|
|
13271
|
+
];
|
|
13272
|
+
function seedBySlug3(slug) {
|
|
13273
|
+
const seed = SEARCH_DIALOG_SKILL_SEEDS.find((item) => item.slug === slug);
|
|
13274
|
+
if (!seed) {
|
|
13275
|
+
throw new Error(`Unknown search-dialog skill slug: ${slug}`);
|
|
13276
|
+
}
|
|
13277
|
+
return seed;
|
|
13278
|
+
}
|
|
13279
|
+
function buildSearchDialogSkillConfig(slug) {
|
|
13280
|
+
const seed = seedBySlug3(slug);
|
|
13281
|
+
return {
|
|
13282
|
+
version: "0.1",
|
|
13283
|
+
kind: "skill",
|
|
13284
|
+
id: buildSearchDialogSkillId(slug),
|
|
13285
|
+
name: seed.title,
|
|
13286
|
+
description: seed.description,
|
|
13287
|
+
...seed.toolNames?.length ? { toolNames: [...seed.toolNames] } : {}
|
|
13288
|
+
};
|
|
13289
|
+
}
|
|
13290
|
+
function buildSearchDialogSkillContentBySlug(slug) {
|
|
13291
|
+
const seed = seedBySlug3(slug);
|
|
13292
|
+
const skillConfig = buildSearchDialogSkillConfig(slug);
|
|
13293
|
+
return buildSkillDocMarkdown({
|
|
13294
|
+
body: seed.body,
|
|
13295
|
+
skillConfig
|
|
13296
|
+
});
|
|
13297
|
+
}
|
|
13298
|
+
|
|
13299
|
+
// packages/ai/skills/searchSpaceSkill.ts
|
|
13300
|
+
var SEARCH_SPACE_SKILL_SLUGS = [
|
|
13301
|
+
"search-all-spaces"
|
|
13302
|
+
];
|
|
13303
|
+
function deterministicId4(prefix, seed) {
|
|
13304
|
+
let h = 2166136261;
|
|
13305
|
+
for (let i = 0; i < seed.length; i++) {
|
|
13306
|
+
h ^= seed.charCodeAt(i);
|
|
13307
|
+
h = h * 16777619 >>> 0;
|
|
13308
|
+
}
|
|
13309
|
+
const suffix = h.toString(36).toUpperCase().padStart(14, "0");
|
|
13310
|
+
return (prefix + suffix).slice(0, 26);
|
|
13311
|
+
}
|
|
13312
|
+
function normalizeSkillSeed4(input) {
|
|
13313
|
+
return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
|
|
13314
|
+
}
|
|
13315
|
+
function buildSearchSpaceSkillId(slug) {
|
|
13316
|
+
return deterministicId4("01SK", normalizeSkillSeed4(slug) || slug);
|
|
13317
|
+
}
|
|
13318
|
+
function buildSearchSpaceSkillPageKey(userId, slug) {
|
|
13319
|
+
return `page-${userId}-${buildSearchSpaceSkillId(slug)}`;
|
|
13320
|
+
}
|
|
13321
|
+
var SEARCH_SPACE_SKILL_SEEDS = [
|
|
13322
|
+
{
|
|
13323
|
+
slug: "search-all-spaces",
|
|
13324
|
+
title: "\u5168\u7A7A\u95F4\u641C\u7D22",
|
|
13325
|
+
description: "\u5168\u7A7A\u95F4\u641C\u7D22\uFF1A\u4F7F\u7528 search_all_spaces \u5728\u5F53\u524D\u8BBE\u5907\u5DF2\u540C\u6B65\u7684\u5168\u90E8\u5185\u5BB9\u4E2D\u641C\u7D22\u5F53\u524D\u7528\u6237\u7684\u6570\u636E\uFF08\u7B49\u540C\u4E8E\u5168\u90E8\u89C6\u56FE Recent \u7684\u5185\u5BB9\u8BED\u4E49\uFF09\uFF0C\u5E76\u8FD4\u56DE\u6240\u5C5E\u7A7A\u95F4\uFF08\u5982\u6709\uFF09\u3002\u9002\u5408\u5728\u5168\u90E8\u89C6\u56FE\uFF08All View\uFF09\u6216\u9700\u8981\u8DE8\u7A7A\u95F4\u68C0\u7D22\u65F6\u4F7F\u7528\u3002",
|
|
13326
|
+
body: [
|
|
13327
|
+
"\u4F60\u662F\u300C\u5168\u7A7A\u95F4\u641C\u7D22\u300D\u80FD\u529B\u7684\u4F7F\u7528\u8005\uFF1A\u9700\u8981\u8DE8\u7A7A\u95F4\u3001\u6216\u5728\u6CA1\u6709\u300C\u5F53\u524D\u7A7A\u95F4\u300D\u8BED\u4E49\u7684\u4E0A\u4E0B\u6587\u4E2D\u68C0\u7D22\u7528\u6237\u5185\u5BB9\u65F6\uFF0C\u4F7F\u7528\u672C skill \u7684 search_all_spaces \u5DE5\u5177\u3002",
|
|
13328
|
+
"",
|
|
13329
|
+
"## \u4EC0\u4E48\u65F6\u5019\u7528",
|
|
13330
|
+
"- \u7528\u6237\u8981\u8DE8\u7A7A\u95F4\u67E5\u627E\u5185\u5BB9\uFF08\u9875\u9762\u3001\u8868\u683C\u3001\u5BF9\u8BDD\u7B49\uFF09\uFF0C\u4E14\u4E0D\u9650\u5B9A\u5728\u67D0\u4E2A\u5177\u4F53\u7A7A\u95F4\u3002",
|
|
13331
|
+
"- \u5F53\u524D\u89C6\u56FE\u662F\u5168\u90E8\u89C6\u56FE\uFF08All View\uFF09\uFF1A\u6CA1\u6709\u5F53\u524D\u7A7A\u95F4\uFF0Csearch_workspace \u4E0D\u9002\u7528\uFF0C\u4F18\u5148\u7528\u672C skill\u3002",
|
|
13332
|
+
"- \u9700\u8981\u786E\u8BA4\u67D0\u6761\u5185\u5BB9\u5C5E\u4E8E\u54EA\u4E2A\u7A7A\u95F4\uFF08\u8FD4\u56DE\u7ED3\u679C\u5E26 spaceId / spaceName\uFF09\u65F6\u3002",
|
|
13333
|
+
"",
|
|
13334
|
+
"## \u8C03\u7528\u65B9\u5F0F",
|
|
13335
|
+
'`search_all_spaces({ query: "<\u5173\u952E\u8BCD>" })`',
|
|
13336
|
+
"- query\uFF1A\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5339\u914D\u6807\u9898\u4E0E\u6587\u4EF6\u540D\uFF08contentKey\uFF09\u3002",
|
|
13337
|
+
"- \u8FD4\u56DE rawData.contents\uFF1A\u6BCF\u9879\u5305\u542B title\u3001type\u3001contentKey\u3001spaceId\u3001spaceName\uFF08\u5982\u6709\uFF09\u3001createdAt / updatedAt\u3001serverOrigin\uFF08\u5982\u6709\uFF09\u3002",
|
|
13338
|
+
"",
|
|
13339
|
+
"## \u8BED\u4E49\u4E0E\u8FB9\u754C",
|
|
13340
|
+
"- \u641C\u7D22\u8303\u56F4 = \u5F53\u524D\u8BBE\u5907\u5DF2\u540C\u6B65\u7684 user-data \u5185\u5BB9\uFF08\u4E0E\u300C\u5168\u90E8\u89C6\u56FE Recent\u300D\u540C\u4E00\u5957\u8BED\u4E49\uFF09\uFF0C\u4E0D\u662F\u8FDC\u7A0B\u6570\u636E\u5E93\u7684\u5168\u91CF\u68C0\u7D22\u3002",
|
|
13341
|
+
"- \u7ED3\u679C\u53EF\u80FD\u8DE8\u591A\u4E2A\u7A7A\u95F4\uFF0C\u6309\u5185\u5BB9\u9010\u6761\u8FD4\u56DE\uFF0C\u4E0D\u9700\u8981\u5728\u8FD4\u56DE\u540E\u4E8C\u6B21\u641C\u7D22\u3002",
|
|
13342
|
+
"- \u6CA1\u6709\u547D\u4E2D\u65F6\u5982\u5B9E\u8BF4\u660E\uFF0C\u4E0D\u8981\u7F16\u9020\u5185\u5BB9\u6216\u7A7A\u95F4\u5F52\u5C5E\u3002",
|
|
13343
|
+
"- \u5206\u7C7B\u89C6\u56FE\uFF08categories\uFF09\u4E0B\u7528\u6237\u53EA\u95EE\u5F53\u524D\u7A7A\u95F4\u5185\u5BB9\u65F6\uFF0C\u4F18\u5148\u7528\u5E38\u9A7B\u7684 search_workspace\uFF1B\u9700\u8981\u8DE8\u7A7A\u95F4\u624D loadSkill \u672C skill\u3002"
|
|
13344
|
+
].join("\n"),
|
|
13345
|
+
toolNames: ["search_all_spaces"]
|
|
13346
|
+
}
|
|
13347
|
+
];
|
|
13348
|
+
function seedBySlug4(slug) {
|
|
13349
|
+
const seed = SEARCH_SPACE_SKILL_SEEDS.find((item) => item.slug === slug);
|
|
13350
|
+
if (!seed) {
|
|
13351
|
+
throw new Error(`Unknown search-space skill slug: ${slug}`);
|
|
13352
|
+
}
|
|
13353
|
+
return seed;
|
|
13354
|
+
}
|
|
13355
|
+
function buildSearchSpaceSkillConfig(slug) {
|
|
13356
|
+
const seed = seedBySlug4(slug);
|
|
13357
|
+
return {
|
|
13358
|
+
version: "0.1",
|
|
13359
|
+
kind: "skill",
|
|
13360
|
+
id: buildSearchSpaceSkillId(slug),
|
|
13361
|
+
name: seed.title,
|
|
13362
|
+
description: seed.description,
|
|
13363
|
+
...seed.toolNames?.length ? { toolNames: [...seed.toolNames] } : {}
|
|
13364
|
+
};
|
|
13365
|
+
}
|
|
13366
|
+
function buildSearchSpaceSkillContentBySlug(slug) {
|
|
13367
|
+
const seed = seedBySlug4(slug);
|
|
13368
|
+
const skillConfig = buildSearchSpaceSkillConfig(slug);
|
|
13369
|
+
return buildSkillDocMarkdown({
|
|
13370
|
+
body: seed.body,
|
|
13371
|
+
skillConfig
|
|
13372
|
+
});
|
|
13373
|
+
}
|
|
13374
|
+
|
|
13375
|
+
// packages/ai/skills/builtinSkillRegistry.ts
|
|
13376
|
+
var codePlannerContentBySlug = /* @__PURE__ */ (() => {
|
|
13377
|
+
const cache = /* @__PURE__ */ new Map();
|
|
13378
|
+
return (slug) => {
|
|
13379
|
+
if (cache.size === 0) {
|
|
13380
|
+
for (const page of buildCodePlannerSkillPageRecords("platform-skill-owner")) {
|
|
13381
|
+
cache.set(page.slug, page.content);
|
|
13382
|
+
}
|
|
13383
|
+
}
|
|
13384
|
+
return cache.get(slug) ?? "";
|
|
13385
|
+
};
|
|
13386
|
+
})();
|
|
13387
|
+
var OBJECT_SKILL_KINDS = Object.keys(
|
|
13388
|
+
BUILTIN_OBJECT_SKILL_IDS
|
|
13389
|
+
);
|
|
13390
|
+
var SOURCES = [
|
|
13391
|
+
{
|
|
13392
|
+
slugs: OBJECT_SKILL_KINDS,
|
|
13393
|
+
buildSkillId: (kind) => BUILTIN_OBJECT_SKILL_IDS[kind],
|
|
13394
|
+
buildPageKey: (userId, kind) => buildBuiltinObjectSkillDbKey(kind, userId),
|
|
13395
|
+
buildConfig: buildBuiltinObjectSkillConfig,
|
|
13396
|
+
buildContent: buildBuiltinObjectSkillPageContent
|
|
13397
|
+
},
|
|
13398
|
+
{
|
|
13399
|
+
slugs: CODING_SKILL_SLUGS,
|
|
13400
|
+
buildSkillId: buildCodingSkillId,
|
|
13401
|
+
buildPageKey: buildCodingSkillPageKey,
|
|
13402
|
+
buildConfig: buildCodingSkillConfig,
|
|
13403
|
+
buildContent: buildCodingSkillContentBySlug
|
|
13404
|
+
},
|
|
13405
|
+
{
|
|
13406
|
+
slugs: SPECIALIST_SKILL_SLUGS,
|
|
13407
|
+
buildSkillId: buildSpecialistSkillId,
|
|
13408
|
+
buildPageKey: buildSpecialistSkillPageKey,
|
|
13409
|
+
buildConfig: buildSpecialistSkillConfig,
|
|
13410
|
+
buildContent: buildSpecialistSkillContentBySlug
|
|
13411
|
+
},
|
|
13412
|
+
{
|
|
13413
|
+
slugs: CODE_PLANNER_SKILL_SLUGS,
|
|
13414
|
+
buildSkillId: buildCodePlannerSkillId,
|
|
13415
|
+
buildPageKey: buildCodePlannerSkillPageKey,
|
|
13416
|
+
buildConfig: buildCodePlannerSkillConfig,
|
|
13417
|
+
buildContent: codePlannerContentBySlug
|
|
13418
|
+
},
|
|
13419
|
+
{
|
|
13420
|
+
slugs: SEARCH_DIALOG_SKILL_SLUGS,
|
|
13421
|
+
buildSkillId: buildSearchDialogSkillId,
|
|
13422
|
+
buildPageKey: buildSearchDialogSkillPageKey,
|
|
13423
|
+
buildConfig: buildSearchDialogSkillConfig,
|
|
13424
|
+
buildContent: buildSearchDialogSkillContentBySlug
|
|
13425
|
+
},
|
|
13426
|
+
{
|
|
13427
|
+
slugs: SEARCH_SPACE_SKILL_SLUGS,
|
|
13428
|
+
buildSkillId: buildSearchSpaceSkillId,
|
|
13429
|
+
buildPageKey: buildSearchSpaceSkillPageKey,
|
|
13430
|
+
buildConfig: buildSearchSpaceSkillConfig,
|
|
13431
|
+
buildContent: buildSearchSpaceSkillContentBySlug
|
|
13432
|
+
}
|
|
13433
|
+
];
|
|
13434
|
+
var buildRegistry = () => {
|
|
13435
|
+
const entries = [];
|
|
13436
|
+
const seenSlugs = /* @__PURE__ */ new Set();
|
|
13437
|
+
for (const source of SOURCES) {
|
|
13438
|
+
for (const slug of source.slugs) {
|
|
13439
|
+
if (seenSlugs.has(slug)) {
|
|
13440
|
+
throw new Error(`Duplicate builtin skill slug across sources: ${slug}`);
|
|
13441
|
+
}
|
|
13442
|
+
seenSlugs.add(slug);
|
|
13443
|
+
const config = source.buildConfig(slug);
|
|
13444
|
+
entries.push({
|
|
13445
|
+
slug,
|
|
13446
|
+
skillId: source.buildSkillId(slug),
|
|
13447
|
+
title: config.name || slug,
|
|
13448
|
+
config,
|
|
13449
|
+
content: source.buildContent(slug),
|
|
13450
|
+
buildPageKey: (userId) => source.buildPageKey(userId, slug)
|
|
13451
|
+
});
|
|
13452
|
+
}
|
|
13453
|
+
}
|
|
13454
|
+
return entries;
|
|
13455
|
+
};
|
|
13456
|
+
var REGISTRY = buildRegistry();
|
|
13457
|
+
var BY_SLUG = new Map(REGISTRY.map((entry) => [entry.slug, entry]));
|
|
13458
|
+
var BY_SKILL_ID = new Map(REGISTRY.map((entry) => [entry.skillId, entry]));
|
|
13459
|
+
var BY_LOWER_NAME = new Map(
|
|
13460
|
+
REGISTRY.map((entry) => [entry.title.trim().toLowerCase(), entry])
|
|
13461
|
+
);
|
|
13462
|
+
var listBuiltinSkills = () => REGISTRY;
|
|
13463
|
+
var resolveBuiltinSkillEntry = (identifier) => {
|
|
13464
|
+
const raw = typeof identifier === "string" ? identifier.trim() : "";
|
|
13465
|
+
if (!raw) return null;
|
|
13466
|
+
const bySlug = BY_SLUG.get(raw);
|
|
13467
|
+
if (bySlug) return bySlug;
|
|
13468
|
+
const byId = BY_SKILL_ID.get(raw);
|
|
13469
|
+
if (byId) return byId;
|
|
13470
|
+
if (raw.startsWith("page-")) {
|
|
13471
|
+
for (const entry of REGISTRY) {
|
|
13472
|
+
if (raw.endsWith(`-${entry.skillId}`)) return entry;
|
|
13473
|
+
}
|
|
13474
|
+
}
|
|
13475
|
+
return null;
|
|
13476
|
+
};
|
|
13477
|
+
var resolveBuiltinSkillByName = (identifier) => {
|
|
13478
|
+
const raw = typeof identifier === "string" ? identifier.trim() : "";
|
|
13479
|
+
if (!raw) return null;
|
|
13480
|
+
return resolveBuiltinSkillEntry(raw) ?? BY_LOWER_NAME.get(raw.toLowerCase()) ?? null;
|
|
13481
|
+
};
|
|
13482
|
+
var resolveBuiltinSkillPage = (identifier) => {
|
|
13483
|
+
const entry = resolveBuiltinSkillEntry(identifier);
|
|
13484
|
+
if (!entry) return null;
|
|
13485
|
+
const raw = typeof identifier === "string" ? identifier.trim() : entry.slug;
|
|
13486
|
+
return {
|
|
13487
|
+
dbKey: raw || entry.slug,
|
|
13488
|
+
title: entry.title,
|
|
13489
|
+
content: entry.content,
|
|
13490
|
+
meta: { kind: "skill", skillConfig: entry.config },
|
|
13491
|
+
...entry.config.toolNames?.length ? { tools: [...entry.config.toolNames] } : {}
|
|
13492
|
+
};
|
|
13493
|
+
};
|
|
13494
|
+
var CAPABILITIES = CAPABILITY_PACKS.map(
|
|
13495
|
+
(pack) => ({
|
|
13496
|
+
kind: "capability",
|
|
13497
|
+
slug: pack.id,
|
|
13498
|
+
title: pack.label,
|
|
13499
|
+
description: pack.description,
|
|
13500
|
+
toolNames: pack.tools,
|
|
13501
|
+
...pack.promptPatch ? { promptPatch: pack.promptPatch } : {},
|
|
13502
|
+
icon: pack.icon,
|
|
13503
|
+
defaultEnabled: pack.defaultEnabled
|
|
13504
|
+
})
|
|
13505
|
+
);
|
|
13506
|
+
var CAPABILITY_BY_SLUG = new Map(CAPABILITIES.map((c) => [c.slug, c]));
|
|
13507
|
+
var resolveBuiltinCapability = (slug) => {
|
|
13508
|
+
const raw = typeof slug === "string" ? slug.trim() : "";
|
|
13509
|
+
return raw ? CAPABILITY_BY_SLUG.get(raw) ?? null : null;
|
|
13510
|
+
};
|
|
13511
|
+
|
|
13512
|
+
// packages/ai/tools/agentSkillConfig.ts
|
|
13513
|
+
var MODES = [
|
|
13514
|
+
"required",
|
|
13515
|
+
"recommended",
|
|
13516
|
+
"disabled"
|
|
13517
|
+
];
|
|
13518
|
+
var asMode = (value) => typeof value === "string" && MODES.includes(value) ? value : null;
|
|
13519
|
+
var resolveAgentSkillConfig = (source) => {
|
|
13520
|
+
const out = {};
|
|
13521
|
+
const skills = source?.skills;
|
|
13522
|
+
if (skills && typeof skills === "object" && !Array.isArray(skills)) {
|
|
13523
|
+
for (const [rawSlug, rawMode] of Object.entries(skills)) {
|
|
13524
|
+
const slug = typeof rawSlug === "string" ? rawSlug.trim() : "";
|
|
13525
|
+
const mode = asMode(rawMode);
|
|
13526
|
+
if (slug && mode) out[slug] = mode;
|
|
13527
|
+
}
|
|
13528
|
+
return out;
|
|
13529
|
+
}
|
|
13530
|
+
for (const slug of asTrimmedNonEmptyStringArray(source?.enabledPacks) ?? []) {
|
|
13531
|
+
out[slug] = "required";
|
|
13532
|
+
}
|
|
13533
|
+
return out;
|
|
13534
|
+
};
|
|
13535
|
+
var resolveAgentRequiredPackIds = (source) => {
|
|
13536
|
+
const config = resolveAgentSkillConfig(source);
|
|
13537
|
+
return Object.keys(config).filter((slug) => config[slug] === "required");
|
|
13538
|
+
};
|
|
13539
|
+
var resolveAgentRecommendedSkillNames = (source, lookup) => {
|
|
13540
|
+
const config = resolveAgentSkillConfig(source);
|
|
13541
|
+
const resolve = lookup ?? defaultSkillTitleLookup;
|
|
13542
|
+
const out = [];
|
|
13543
|
+
for (const slug of Object.keys(config)) {
|
|
13544
|
+
if (config[slug] !== "recommended") continue;
|
|
13545
|
+
const title = resolve(slug)?.title;
|
|
13546
|
+
out.push(title || slug);
|
|
13547
|
+
}
|
|
13548
|
+
return out;
|
|
13549
|
+
};
|
|
13550
|
+
var defaultSkillTitleLookup = (slug) => {
|
|
13551
|
+
const cap = resolveBuiltinCapability(slug);
|
|
13552
|
+
if (cap) return { title: cap.title };
|
|
13553
|
+
const skill = resolveBuiltinSkillEntry(slug);
|
|
13554
|
+
return skill ? { title: skill.title } : null;
|
|
13555
|
+
};
|
|
13556
|
+
var isAgentSkillDisabled = (source, slug) => resolveAgentSkillConfig(source)[slug] === "disabled";
|
|
13557
|
+
|
|
12613
13558
|
// packages/ai/tools/loadSkillTool.ts
|
|
12614
13559
|
var loadSkillFunctionSchema = {
|
|
12615
13560
|
name: "loadSkill",
|
|
@@ -12860,7 +13805,7 @@ async function createCategoryFunc(args, thunkApi) {
|
|
|
12860
13805
|
const { getState } = thunkApi;
|
|
12861
13806
|
const dispatch = thunkApi.dispatch.bind(thunkApi);
|
|
12862
13807
|
const state = getState();
|
|
12863
|
-
const spaceId =
|
|
13808
|
+
const spaceId = getCurrentSpaceId();
|
|
12864
13809
|
if (!spaceId) {
|
|
12865
13810
|
throw new Error("\u65E0\u6CD5\u521B\u5EFA\u5206\u7C7B\uFF0C\u56E0\u4E3A\u5F53\u524D\u7A7A\u95F4\u672A\u8BBE\u5B9A\u3002");
|
|
12866
13811
|
}
|
|
@@ -12904,7 +13849,7 @@ async function updateContentCategoryFunc(args, thunkApi) {
|
|
|
12904
13849
|
const { getState } = thunkApi;
|
|
12905
13850
|
const dispatch = thunkApi.dispatch.bind(thunkApi);
|
|
12906
13851
|
const state = getState();
|
|
12907
|
-
const spaceId =
|
|
13852
|
+
const spaceId = getCurrentSpaceId();
|
|
12908
13853
|
if (!spaceId) {
|
|
12909
13854
|
throw new Error("\u65E0\u6CD5\u66F4\u65B0\u5206\u7C7B\uFF0C\u56E0\u4E3A\u5F53\u524D\u7A7A\u95F4\u672A\u8BBE\u5B9A\u3002");
|
|
12910
13855
|
}
|
|
@@ -12950,7 +13895,7 @@ var queryContentsByCategoryFunctionSchema = {
|
|
|
12950
13895
|
async function queryContentsByCategoryFunc(args, thunkApi) {
|
|
12951
13896
|
const { getState } = thunkApi;
|
|
12952
13897
|
const state = getState();
|
|
12953
|
-
const spaceId =
|
|
13898
|
+
const spaceId = getCurrentSpaceId();
|
|
12954
13899
|
if (!spaceId) {
|
|
12955
13900
|
throw new Error("\u65E0\u6CD5\u67E5\u8BE2\u5185\u5BB9\uFF0C\u56E0\u4E3A\u5F53\u524D\u7A7A\u95F4\u672A\u8BBE\u5B9A\u3002");
|
|
12956
13901
|
}
|
|
@@ -13202,6 +14147,39 @@ async function importDataFunc(args, thunkApi) {
|
|
|
13202
14147
|
}
|
|
13203
14148
|
}
|
|
13204
14149
|
|
|
14150
|
+
// packages/render/table/utils/tableSerialization.ts
|
|
14151
|
+
var fetchAndSerializeTable = async (tableMeta, db, options = {}) => {
|
|
14152
|
+
const tenantId = tableMeta.tenantId;
|
|
14153
|
+
const tableId = tableMeta.tableId;
|
|
14154
|
+
const results = await fetchAndCacheTableRows({
|
|
14155
|
+
db,
|
|
14156
|
+
tenantId,
|
|
14157
|
+
tableId,
|
|
14158
|
+
token: options.token,
|
|
14159
|
+
remoteServers: options.remoteServers ?? []
|
|
14160
|
+
});
|
|
14161
|
+
const columns = tableMeta.columns || [];
|
|
14162
|
+
const headerRow = columns.map((c) => c.label || c.name);
|
|
14163
|
+
const separatorRow = columns.map(() => "---");
|
|
14164
|
+
let tableMd = "";
|
|
14165
|
+
if (columns.length > 0) {
|
|
14166
|
+
tableMd = `| ${headerRow.join(" | ")} |
|
|
14167
|
+
| ${separatorRow.join(" | ")} |
|
|
14168
|
+
`;
|
|
14169
|
+
results.forEach((row) => {
|
|
14170
|
+
const rowData = columns.map((col) => {
|
|
14171
|
+
const val = row[col.name];
|
|
14172
|
+
return val === void 0 || val === null ? "" : String(val).replace(/\|/g, "\\|");
|
|
14173
|
+
});
|
|
14174
|
+
tableMd += `| ${rowData.join(" | ")} |
|
|
14175
|
+
`;
|
|
14176
|
+
});
|
|
14177
|
+
} else {
|
|
14178
|
+
tableMd = "(No columns defined for this table)";
|
|
14179
|
+
}
|
|
14180
|
+
return { rows: results, markdown: tableMd };
|
|
14181
|
+
};
|
|
14182
|
+
|
|
13205
14183
|
// packages/ai/tools/readFileTool.ts
|
|
13206
14184
|
var readFileFunctionSchema = {
|
|
13207
14185
|
name: "readFile",
|
|
@@ -13491,7 +14469,7 @@ async function listUserSpacesFunc(args, thunkApi, context) {
|
|
|
13491
14469
|
try {
|
|
13492
14470
|
const { getState } = thunkApi;
|
|
13493
14471
|
const state = getState();
|
|
13494
|
-
let memberSpaces =
|
|
14472
|
+
let memberSpaces = getAllMemberSpaces();
|
|
13495
14473
|
if (ownedOnly) {
|
|
13496
14474
|
memberSpaces = memberSpaces.filter((ms) => ms.role === "owner");
|
|
13497
14475
|
}
|
|
@@ -13929,7 +14907,7 @@ async function deleteDialogsFunc(args, thunkApi) {
|
|
|
13929
14907
|
const deletedDialogIds = [];
|
|
13930
14908
|
const deletedDialogKeys = [];
|
|
13931
14909
|
const failures = [];
|
|
13932
|
-
const { deleteDialog } = await import("./dialogSlice-
|
|
14910
|
+
const { deleteDialog } = await import("./dialogSlice-DOWKOILN.js");
|
|
13933
14911
|
for (const target of targets) {
|
|
13934
14912
|
try {
|
|
13935
14913
|
await thunkApi.dispatch(deleteDialog(target.dbKey)).unwrap();
|
|
@@ -14009,12 +14987,13 @@ function formatAgentListCard(agents, maxDisplay = 8) {
|
|
|
14009
14987
|
}
|
|
14010
14988
|
var listAgentsFunctionSchema = {
|
|
14011
14989
|
name: "listAgents",
|
|
14012
|
-
description: "List the current user's Nolo agents as safe summaries. The `agents` array in the JSON result carries each agent's runnable `agentKey` (agent-<userId>-<id> for owned, agent-pub-<id> for public) plus model, apiSource, tools, prices, isOwned, isOAuth, nextAvailableAt (epoch ms when temporarily unavailable), isFavorite. Copy `agentKey` verbatim into startAgentRun. Results prioritize favorites; within that, user OAuth/custom agents first, then other owned agents, then public agents.",
|
|
14990
|
+
description: "List the current user's Nolo agents as safe summaries. The `agents` array in the JSON result carries each agent's runnable `agentKey` (agent-<userId>-<id> for owned, agent-pub-<id> for public) plus model, apiSource, tools, prices, isOwned, isOAuth, nextAvailableAt (epoch ms when temporarily unavailable), isFavorite. Copy `agentKey` verbatim into startAgentRun. Results prioritize favorites; within that, user OAuth/custom agents first, then other owned agents, then public agents. Agents currently rate-limited (429, nextAvailableAt in the future) are hidden by default so a caller won't pick one that can't run right now; set `showUnavailable: true` to include them. The response carries an `unavailableCount` for the number of hidden rate-limited agents.",
|
|
14013
14991
|
parameters: {
|
|
14014
14992
|
type: "object",
|
|
14015
14993
|
properties: {
|
|
14016
14994
|
limit: { type: "integer", description: "Maximum agents to return. Default 100, max 500." },
|
|
14017
|
-
publicOnly: { type: "boolean", description: "Only show public agents." }
|
|
14995
|
+
publicOnly: { type: "boolean", description: "Only show public agents." },
|
|
14996
|
+
showUnavailable: { type: "boolean", description: "Include agents currently rate-limited (429). Default false." }
|
|
14018
14997
|
}
|
|
14019
14998
|
}
|
|
14020
14999
|
};
|
|
@@ -14047,12 +15026,17 @@ async function listAgentsFunc(args, thunkApi) {
|
|
|
14047
15026
|
userId
|
|
14048
15027
|
})
|
|
14049
15028
|
);
|
|
15029
|
+
const now = Date.now();
|
|
14050
15030
|
if (args?.publicOnly === true) {
|
|
14051
15031
|
agents = agents.filter((agent) => agent.isPublic);
|
|
14052
15032
|
}
|
|
15033
|
+
const unavailableCount = agents.filter((a) => isAgentUnavailableNow(a, now)).length;
|
|
15034
|
+
if (args?.showUnavailable !== true) {
|
|
15035
|
+
agents = agents.filter((a) => !isAgentUnavailableNow(a, now));
|
|
15036
|
+
}
|
|
14053
15037
|
agents = sortSafeAgentSummaries(agents);
|
|
14054
15038
|
return {
|
|
14055
|
-
rawData: { success: true, total: agents.length, agents },
|
|
15039
|
+
rawData: { success: true, total: agents.length, unavailableCount, agents },
|
|
14056
15040
|
displayData: formatAgentListCard(agents)
|
|
14057
15041
|
};
|
|
14058
15042
|
}
|
|
@@ -14198,7 +15182,7 @@ var readSkillDocFunctionSchema = {
|
|
|
14198
15182
|
}
|
|
14199
15183
|
};
|
|
14200
15184
|
async function readSkillDocFunc(args, thunkApi) {
|
|
14201
|
-
const { buildReadDocResult } = await import("./readDocTool-
|
|
15185
|
+
const { buildReadDocResult } = await import("./readDocTool-DK4EI2GA.js");
|
|
14202
15186
|
const id = args?.id ?? args?.doc ?? args?.docKey ?? args?.pageKey;
|
|
14203
15187
|
if (typeof id !== "string" || !id.trim()) {
|
|
14204
15188
|
throw new Error("readSkillDoc requires id or doc.");
|
|
@@ -14357,7 +15341,7 @@ var deleteSpacesFunctionSchema = {
|
|
|
14357
15341
|
};
|
|
14358
15342
|
var defaultDeps = {
|
|
14359
15343
|
selectCurrentUserId: selectIdentityUserId,
|
|
14360
|
-
selectMemberSpaces: (state) =>
|
|
15344
|
+
selectMemberSpaces: (state) => getAllMemberSpaces(),
|
|
14361
15345
|
readSpaceRecord: async (thunkApi, spaceId) => {
|
|
14362
15346
|
try {
|
|
14363
15347
|
const record = await thunkApi.dispatch(
|
|
@@ -18878,7 +19862,7 @@ var cloudflareCrawlStatusFunctionSchema = {
|
|
|
18878
19862
|
async function cloudflareCrawlStatusFunc(args, thunkApi) {
|
|
18879
19863
|
const { jobId, limit, status, cursor } = args;
|
|
18880
19864
|
if (!jobId) throw new Error("\u5FC5\u987B\u63D0\u4F9B jobId");
|
|
18881
|
-
const { getToolRequestContext: getToolRequestContext2 } = await import("./toolApiClient-
|
|
19865
|
+
const { getToolRequestContext: getToolRequestContext2 } = await import("./toolApiClient-B2MFXMEG.js");
|
|
18882
19866
|
const { baseUrl, token } = getToolRequestContext2(thunkApi);
|
|
18883
19867
|
const params = new URLSearchParams();
|
|
18884
19868
|
if (limit !== void 0) params.set("limit", String(limit));
|
|
@@ -19653,7 +20637,7 @@ var selectUserIdFromState = (state) => typeof state?.auth?.currentUser?.userId =
|
|
|
19653
20637
|
var selectCurrentServerFromState = (state) => typeof state?.settings?.currentServer === "string" ? state.settings.currentServer : null;
|
|
19654
20638
|
async function addImageContentToSpace(input) {
|
|
19655
20639
|
const injectedAddContentAction = input.thunkApi?.extra?.addContentAction;
|
|
19656
|
-
const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-
|
|
20640
|
+
const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-SFO244QN.js")).addContentAction;
|
|
19657
20641
|
await addContentAction2(
|
|
19658
20642
|
{
|
|
19659
20643
|
spaceId: input.spaceId,
|
|
@@ -20120,7 +21104,7 @@ var runOpenAIImageTool = async (args, thunkApi, model) => {
|
|
|
20120
21104
|
},
|
|
20121
21105
|
{ withAuth: true }
|
|
20122
21106
|
);
|
|
20123
|
-
const spaceId =
|
|
21107
|
+
const spaceId = getCurrentSpaceId();
|
|
20124
21108
|
const userId = selectIdentityUserId(state);
|
|
20125
21109
|
const currentServer = selectCurrentServer(state);
|
|
20126
21110
|
if (spaceId && userId && result?.files?.length) {
|
|
@@ -20239,7 +21223,7 @@ var chatgptWebImageGenerateFunc = async (args, thunkApi) => {
|
|
|
20239
21223
|
},
|
|
20240
21224
|
{ withAuth: true, agentKey }
|
|
20241
21225
|
);
|
|
20242
|
-
const spaceId =
|
|
21226
|
+
const spaceId = getCurrentSpaceId();
|
|
20243
21227
|
const userId = selectIdentityUserId(state);
|
|
20244
21228
|
const currentServer = selectCurrentServer(state);
|
|
20245
21229
|
if (spaceId && userId && result?.files?.length) {
|
|
@@ -20345,7 +21329,7 @@ var remotionRenderVideoFunc = async (args, thunkApi) => {
|
|
|
20345
21329
|
);
|
|
20346
21330
|
const state = thunkApi.getState();
|
|
20347
21331
|
const userId = selectIdentityUserId(state);
|
|
20348
|
-
const spaceId =
|
|
21332
|
+
const spaceId = getCurrentSpaceId();
|
|
20349
21333
|
const currentServer = selectCurrentServer(state);
|
|
20350
21334
|
const fileId = result?.fileId;
|
|
20351
21335
|
const metadata = result?.metadata || {};
|
|
@@ -20445,7 +21429,7 @@ var rememberMemoryFunctionSchema = {
|
|
|
20445
21429
|
// packages/ai/tools/rememberMemoryTool.ts
|
|
20446
21430
|
async function rememberMemoryFunc(args, thunkApi) {
|
|
20447
21431
|
const state = thunkApi.getState();
|
|
20448
|
-
const spaceId =
|
|
21432
|
+
const spaceId = getCurrentSpaceId() || void 0;
|
|
20449
21433
|
const content = String(args.content ?? "").trim();
|
|
20450
21434
|
const scope = args.scope ?? "auto";
|
|
20451
21435
|
const kind = args.kind ?? "episodic";
|
|
@@ -20507,7 +21491,7 @@ async function queryMemoryFunc(args, thunkApi) {
|
|
|
20507
21491
|
{
|
|
20508
21492
|
agentKey: resolveDialogRuntimeAgentKey(dialog),
|
|
20509
21493
|
userInput: query,
|
|
20510
|
-
...
|
|
21494
|
+
...getCurrentSpaceId() ? { spaceId: getCurrentSpaceId() } : {}
|
|
20511
21495
|
},
|
|
20512
21496
|
{ withAuth: true }
|
|
20513
21497
|
);
|
|
@@ -23231,6 +24215,162 @@ ${resultStr}
|
|
|
23231
24215
|
};
|
|
23232
24216
|
}
|
|
23233
24217
|
|
|
24218
|
+
// packages/ai/tools/toolRunStore.ts
|
|
24219
|
+
var import_react = __toESM(require_react());
|
|
24220
|
+
var createToolRunId = () => `toolrun_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`;
|
|
24221
|
+
var runsById = /* @__PURE__ */ new Map();
|
|
24222
|
+
var listeners = /* @__PURE__ */ new Set();
|
|
24223
|
+
var version = 0;
|
|
24224
|
+
var notify = () => {
|
|
24225
|
+
version += 1;
|
|
24226
|
+
for (const listener of listeners) {
|
|
24227
|
+
try {
|
|
24228
|
+
listener();
|
|
24229
|
+
} catch {
|
|
24230
|
+
}
|
|
24231
|
+
}
|
|
24232
|
+
};
|
|
24233
|
+
function toolRunStarted(payload) {
|
|
24234
|
+
const {
|
|
24235
|
+
id,
|
|
24236
|
+
messageId,
|
|
24237
|
+
toolName,
|
|
24238
|
+
behavior,
|
|
24239
|
+
inputSummary,
|
|
24240
|
+
startedAt,
|
|
24241
|
+
interaction,
|
|
24242
|
+
input
|
|
24243
|
+
} = payload;
|
|
24244
|
+
runsById.set(id, {
|
|
24245
|
+
id,
|
|
24246
|
+
messageId,
|
|
24247
|
+
toolName,
|
|
24248
|
+
behavior,
|
|
24249
|
+
inputSummary,
|
|
24250
|
+
status: "running",
|
|
24251
|
+
startedAt: startedAt ?? Date.now(),
|
|
24252
|
+
interaction,
|
|
24253
|
+
input,
|
|
24254
|
+
error: void 0,
|
|
24255
|
+
finishedAt: void 0,
|
|
24256
|
+
outputSummary: void 0,
|
|
24257
|
+
steps: void 0
|
|
24258
|
+
});
|
|
24259
|
+
notify();
|
|
24260
|
+
}
|
|
24261
|
+
function toolRunSetPending(payload) {
|
|
24262
|
+
const { id } = payload;
|
|
24263
|
+
const run = runsById.get(id);
|
|
24264
|
+
if (run) {
|
|
24265
|
+
run.status = "pending";
|
|
24266
|
+
notify();
|
|
24267
|
+
}
|
|
24268
|
+
}
|
|
24269
|
+
function toolRunSucceeded(payload) {
|
|
24270
|
+
const { id, outputSummary, steps, finishedAt } = payload;
|
|
24271
|
+
const run = runsById.get(id);
|
|
24272
|
+
if (run) {
|
|
24273
|
+
run.status = "succeeded";
|
|
24274
|
+
run.outputSummary = outputSummary;
|
|
24275
|
+
if (steps !== void 0) {
|
|
24276
|
+
run.steps = steps;
|
|
24277
|
+
}
|
|
24278
|
+
run.finishedAt = finishedAt ?? Date.now();
|
|
24279
|
+
notify();
|
|
24280
|
+
}
|
|
24281
|
+
}
|
|
24282
|
+
function toolRunUpdated(payload) {
|
|
24283
|
+
const { id, outputSummary, steps } = payload;
|
|
24284
|
+
const run = runsById.get(id);
|
|
24285
|
+
if (run) {
|
|
24286
|
+
if (outputSummary !== void 0) {
|
|
24287
|
+
run.outputSummary = outputSummary;
|
|
24288
|
+
}
|
|
24289
|
+
if (steps !== void 0) {
|
|
24290
|
+
run.steps = steps;
|
|
24291
|
+
}
|
|
24292
|
+
notify();
|
|
24293
|
+
}
|
|
24294
|
+
}
|
|
24295
|
+
function toolRunFailed(payload) {
|
|
24296
|
+
const { id, error, outputSummary, steps, finishedAt } = payload;
|
|
24297
|
+
const run = runsById.get(id);
|
|
24298
|
+
if (run) {
|
|
24299
|
+
run.status = "failed";
|
|
24300
|
+
run.error = error;
|
|
24301
|
+
if (outputSummary !== void 0) {
|
|
24302
|
+
run.outputSummary = outputSummary;
|
|
24303
|
+
}
|
|
24304
|
+
if (steps !== void 0) {
|
|
24305
|
+
run.steps = steps;
|
|
24306
|
+
}
|
|
24307
|
+
run.finishedAt = finishedAt ?? Date.now();
|
|
24308
|
+
notify();
|
|
24309
|
+
}
|
|
24310
|
+
}
|
|
24311
|
+
function getAllToolRuns() {
|
|
24312
|
+
return Array.from(runsById.values()).sort((a, b) => a.startedAt - b.startedAt);
|
|
24313
|
+
}
|
|
24314
|
+
function getToolRunById(id) {
|
|
24315
|
+
return runsById.get(id);
|
|
24316
|
+
}
|
|
24317
|
+
var executeToolRun = createAsyncThunk(
|
|
24318
|
+
"toolRun/executeToolRun",
|
|
24319
|
+
async ({ id, inputOverride }, thunkApi) => {
|
|
24320
|
+
const run = getToolRunById(id);
|
|
24321
|
+
if (!run) {
|
|
24322
|
+
throw new Error(`ToolRun not found: ${id}`);
|
|
24323
|
+
}
|
|
24324
|
+
const executionInput = inputOverride ?? run.input;
|
|
24325
|
+
if (!executionInput) {
|
|
24326
|
+
throw new Error(`ToolRun ${id} has no input to execute with.`);
|
|
24327
|
+
}
|
|
24328
|
+
const { findToolExecutor: findToolExecutor2 } = await import("./tools-XMWCVMPM.js");
|
|
24329
|
+
const { executor } = findToolExecutor2(run.toolName);
|
|
24330
|
+
toolRunStarted({
|
|
24331
|
+
id: run.id,
|
|
24332
|
+
messageId: run.messageId,
|
|
24333
|
+
toolName: run.toolName,
|
|
24334
|
+
behavior: run.behavior,
|
|
24335
|
+
inputSummary: run.inputSummary,
|
|
24336
|
+
startedAt: Date.now(),
|
|
24337
|
+
interaction: run.interaction,
|
|
24338
|
+
input: executionInput
|
|
24339
|
+
});
|
|
24340
|
+
try {
|
|
24341
|
+
const result = await executor(executionInput, thunkApi, {
|
|
24342
|
+
parentMessageId: run.messageId
|
|
24343
|
+
});
|
|
24344
|
+
toolRunSucceeded({
|
|
24345
|
+
id: run.id,
|
|
24346
|
+
outputSummary: result?.displayData || ""
|
|
24347
|
+
});
|
|
24348
|
+
if (run.toolName === "deleteSpaces") {
|
|
24349
|
+
const latestState = thunkApi.getState();
|
|
24350
|
+
const userId = latestState.auth?.currentUser?.userId;
|
|
24351
|
+
if (userId) {
|
|
24352
|
+
const { fetchUserSpaceMemberships } = await import("./spaceSlice-B6MOVY4N.js");
|
|
24353
|
+
await thunkApi.dispatch(fetchUserSpaceMemberships(userId));
|
|
24354
|
+
}
|
|
24355
|
+
}
|
|
24356
|
+
return {
|
|
24357
|
+
id: run.id,
|
|
24358
|
+
rawData: result?.rawData,
|
|
24359
|
+
displayData: result?.displayData
|
|
24360
|
+
};
|
|
24361
|
+
} catch (e) {
|
|
24362
|
+
const msg = toErrorMessage(e);
|
|
24363
|
+
const structured = getToolResultErrorData(e);
|
|
24364
|
+
toolRunFailed({
|
|
24365
|
+
id: run.id,
|
|
24366
|
+
error: msg,
|
|
24367
|
+
outputSummary: asOptionalTrimmedString(structured?.displayData)
|
|
24368
|
+
});
|
|
24369
|
+
throw e;
|
|
24370
|
+
}
|
|
24371
|
+
}
|
|
24372
|
+
);
|
|
24373
|
+
|
|
23234
24374
|
// packages/app/actions/syncAppRecord.ts
|
|
23235
24375
|
var syncAppRecord = (appKey, appRecord, options = {}) => async (_dispatch, getState, extra) => {
|
|
23236
24376
|
if (!appKey || !appRecord) return;
|
|
@@ -23640,7 +24780,7 @@ function decideAppDeploySpaceId(params) {
|
|
|
23640
24780
|
}
|
|
23641
24781
|
async function resolveAppDeploySpaceId(args, thunkApi) {
|
|
23642
24782
|
const state = thunkApi?.getState?.();
|
|
23643
|
-
const rawSpaceId =
|
|
24783
|
+
const rawSpaceId = getViewMode() === "all" ? null : getCurrentSpaceIdRaw();
|
|
23644
24784
|
const currentSpaceId = asOptionalTrimmedString(rawSpaceId);
|
|
23645
24785
|
if (!args.appId) {
|
|
23646
24786
|
return decideAppDeploySpaceId({
|
|
@@ -25041,7 +26181,7 @@ var updateContentTitleTool = {
|
|
|
25041
26181
|
var updateContentTitleFunc = async (args, thunkApi) => {
|
|
25042
26182
|
const { dispatch, getState } = thunkApi;
|
|
25043
26183
|
const state = getState();
|
|
25044
|
-
const spaceId =
|
|
26184
|
+
const spaceId = getCurrentSpaceId();
|
|
25045
26185
|
const { contentId, title } = args;
|
|
25046
26186
|
console.log(
|
|
25047
26187
|
`[updateContentTitleFunc] spaceId: ${spaceId}, contentId: ${contentId}, title: ${title}`
|
|
@@ -25246,7 +26386,7 @@ function buildMyContentItemsFromUserData(records, currentServer, spaceNameById,
|
|
|
25246
26386
|
var selectCurrentSpaceIdFromState2 = (state) => state.space.currentSpaceId;
|
|
25247
26387
|
var selectCurrentSpaceFromState = (state) => state.space.currentSpace;
|
|
25248
26388
|
var selectAllMemberSpacesFromState = (state) => {
|
|
25249
|
-
const memberSpaces =
|
|
26389
|
+
const memberSpaces = getAllMemberSpaces();
|
|
25250
26390
|
return [...memberSpaces].sort((a, b) => {
|
|
25251
26391
|
const aUpdatedAt = a.spaceUpdatedAt ?? a.memberUpdatedAt ?? a.updatedAt ?? a.createdAt ?? a.joinedAt ?? 0;
|
|
25252
26392
|
const bUpdatedAt = b.spaceUpdatedAt ?? b.memberUpdatedAt ?? b.updatedAt ?? b.createdAt ?? b.joinedAt ?? 0;
|
|
@@ -25373,6 +26513,14 @@ async function searchAllSpacesFunc(args, thunkApi) {
|
|
|
25373
26513
|
};
|
|
25374
26514
|
}
|
|
25375
26515
|
|
|
26516
|
+
// packages/core/clipMultilineText.ts
|
|
26517
|
+
function clipMultilineText(value, max) {
|
|
26518
|
+
const trimmed = value.trim();
|
|
26519
|
+
if (trimmed.length <= max) return trimmed;
|
|
26520
|
+
return `${trimmed.slice(0, max)}
|
|
26521
|
+
...[truncated ${trimmed.length - max} chars]`;
|
|
26522
|
+
}
|
|
26523
|
+
|
|
25376
26524
|
// packages/ai/tools/dialogMessageSearch.ts
|
|
25377
26525
|
var normalizeDialogSearchText = (value) => String(value ?? "").trim();
|
|
25378
26526
|
var clampDialogSearchNumber = (value, fallback, min, max) => {
|
|
@@ -25684,7 +26832,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
25684
26832
|
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
25685
26833
|
};
|
|
25686
26834
|
await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
|
|
25687
|
-
const { getDocState, applyExternalDocUpdate } = await import("./docStore-
|
|
26835
|
+
const { getDocState, applyExternalDocUpdate } = await import("./docStore-UAWSKZ2Y.js");
|
|
25688
26836
|
if (getDocState().pageKey === id) {
|
|
25689
26837
|
applyExternalDocUpdate({
|
|
25690
26838
|
slateData: finalSlateData,
|
|
@@ -25709,7 +26857,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
25709
26857
|
// packages/ai/tools/updateUserPreferenceProfileTool.ts
|
|
25710
26858
|
async function dispatchSetSettings(thunkApi, changes) {
|
|
25711
26859
|
const injectedSetSettings = thunkApi?.extra?.setSettings;
|
|
25712
|
-
const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-
|
|
26860
|
+
const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-73PV4KG4.js")).setSettings;
|
|
25713
26861
|
await thunkApi.dispatch(setSettings(changes)).unwrap();
|
|
25714
26862
|
}
|
|
25715
26863
|
var updateUserPreferenceProfileFunctionSchema = {
|
|
@@ -26078,7 +27226,7 @@ async function runZiweiChart(input) {
|
|
|
26078
27226
|
const gender = normalizeGender(input.gender);
|
|
26079
27227
|
const fixLeap = input.fixLeap !== false;
|
|
26080
27228
|
const isLeapMonth = input.isLeapMonth === true;
|
|
26081
|
-
const { astro } = await import("./lib-
|
|
27229
|
+
const { astro } = await import("./lib-2ZTNRXR4.js");
|
|
26082
27230
|
const rawChart = calendarType === "lunar" ? astro.byLunar(dateStr, timeIndex, gender, isLeapMonth, fixLeap, language) : astro.bySolar(dateStr, timeIndex, gender, fixLeap, language);
|
|
26083
27231
|
const palaces = rawChart.palaces.map((palace) => ({
|
|
26084
27232
|
index: palace.index,
|
|
@@ -27957,17 +29105,29 @@ var findToolExecutor = (rawName) => {
|
|
|
27957
29105
|
};
|
|
27958
29106
|
|
|
27959
29107
|
export {
|
|
27960
|
-
shouldBlockForGptPro,
|
|
27961
|
-
i18n_default,
|
|
27962
|
-
formatAgentListCard,
|
|
27963
29108
|
readXPostFunctionSchema,
|
|
27964
29109
|
readXPostFunc,
|
|
27965
29110
|
readXhsProfileFunctionSchema,
|
|
27966
29111
|
readXhsProfileFunc,
|
|
27967
|
-
|
|
29112
|
+
setTodoListFunc,
|
|
29113
|
+
resolveBuiltinSkillPage,
|
|
29114
|
+
resolveAgentRequiredPackIds,
|
|
29115
|
+
resolveAgentRecommendedSkillNames,
|
|
29116
|
+
shouldBlockForGptPro,
|
|
29117
|
+
i18n_default,
|
|
29118
|
+
clipMultilineText,
|
|
29119
|
+
fetchAndSerializeTable,
|
|
29120
|
+
getToolResultErrorData,
|
|
29121
|
+
createToolRunId,
|
|
29122
|
+
toolRunStarted,
|
|
29123
|
+
toolRunSetPending,
|
|
29124
|
+
toolRunSucceeded,
|
|
29125
|
+
toolRunFailed,
|
|
29126
|
+
getAllToolRuns,
|
|
27968
29127
|
waitForAbortableDelay,
|
|
27969
29128
|
createSSEParser,
|
|
27970
|
-
|
|
29129
|
+
formatAgentListCard,
|
|
29130
|
+
rememberMemoryFunctionSchema,
|
|
27971
29131
|
TOOL_GROUP_META,
|
|
27972
29132
|
toolQueryFunctionSchema,
|
|
27973
29133
|
toolQueryFunc,
|