nolo-cli 0.29.1 → 0.30.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{_executeModel-TN7FW73L.js → _executeModel-VBHHG7LT.js} +62 -68
- package/{action-6BM26ZYM.js → action-FENWPT3C.js} +14 -15
- package/{addContentAction-HLTFX56O.js → addContentAction-Z5S5ZQ7I.js} +12 -12
- package/{addDialogAgentAction-Q2TYWDO6.js → addDialogAgentAction-VUNVD2XR.js} +11 -11
- package/{agentDeleteCommand-VP4VLCMG.js → agentDeleteCommand-LLGZXUYJ.js} +60 -39
- package/{agentEmailCommands-N32KWVCX.js → agentEmailCommands-LC2FPN6G.js} +76 -81
- package/{agentGrantCommands-JNDE4RWR.js → agentGrantCommands-E7ZZFRHK.js} +2 -1
- package/{agentListCommands-MXITEBUS.js → agentListCommands-A6OBQ3QX.js} +57 -40
- package/{agentMachineCommands-47Y2XEZZ.js → agentMachineCommands-4O4Q5B5X.js} +53 -35
- package/{agentPullCommand-ZZGU5KOY.js → agentPullCommand-4V36XNGV.js} +4 -3
- package/{agentRecordCommands-AK6ZRJLD.js → agentRecordCommands-W22RIQRV.js} +73 -78
- package/{agentRunCommand-24SNVDNC.js → agentRunCommand-V4OBU4FB.js} +77 -82
- package/{agentRunControl-SNUKXN6J.js → agentRunControl-AKBN2366.js} +13 -1
- package/{agentRuntimeLocal-VI3NHLDU.js → agentRuntimeLocal-I57YSGH4.js} +52 -34
- package/{agentSlice-D666DABC.js → agentSlice-3ZHY7RAO.js} +12 -13
- package/{appDeleteCommands-SF2V6QYZ.js → appDeleteCommands-DJJF466K.js} +53 -35
- package/{appDeployCommands-3EPVR545.js → appDeployCommands-WJZGIOEZ.js} +53 -35
- package/{appDeployStatusCommands-O65Y747J.js → appDeployStatusCommands-ICYXUJNO.js} +53 -35
- package/{appGetCommands-AHDOF4SS.js → appGetCommands-UOCWYJPV.js} +53 -35
- package/{appListCommands-Y7YCXODU.js → appListCommands-EOKWTXPW.js} +53 -35
- package/{authCommand-XMQHBK5L.js → authCommand-H5KE7K7K.js} +16 -16
- package/{authCommands-JSOG2H4E.js → authCommands-CXJ6PI2O.js} +7 -7
- package/{chunk-SNMJPH7J.js → chunk-2XM5KUNE.js} +4 -2
- package/{chunk-7H3UTGPM.js → chunk-3AUWC6EM.js} +82 -3
- package/{chunk-FVY6KI5A.js → chunk-3RIWR23B.js} +1 -1
- package/{chunk-ENUJPSZN.js → chunk-446VANPP.js} +18 -14
- package/{chunk-PB7G5MAM.js → chunk-44HACRCK.js} +4 -4
- package/{chunk-RZNYL4LW.js → chunk-4SAV7BD7.js} +65 -1
- package/{chunk-I5TJCJQP.js → chunk-56IUA7RU.js} +3 -3
- package/{chunk-STOUEEBU.js → chunk-66O5MZYH.js} +1 -1
- package/{chunk-PSK2RUHV.js → chunk-7CD24PU4.js} +360 -2
- package/{chunk-JYSXE6LE.js → chunk-A4JDTA5T.js} +13 -13
- package/{chunk-DZ3XJVET.js → chunk-AOS5IN2I.js} +1 -1
- package/{chunk-SKDNBYZK.js → chunk-BOL2D2JW.js} +1 -1
- package/{chunk-YTA2QOEE.js → chunk-CAENRKNJ.js} +15 -0
- package/{chunk-2TYLTEAH.js → chunk-CV6I4HBA.js} +1 -1
- package/chunk-DCDL3GC4.js +171 -0
- package/{chunk-WNENLKKI.js → chunk-DCWBP2O7.js} +42 -393
- package/{chunk-Y52E3TIS.js → chunk-DI6MXJK5.js} +37 -37
- package/{chunk-Z3LLUGD5.js → chunk-DKRT67FG.js} +11 -11
- package/{chunk-NWT2WUCY.js → chunk-DWQNDGO7.js} +20 -8
- package/{chunk-BPZSJH5X.js → chunk-FS5TTXPS.js} +6 -6
- package/chunk-G5JHHUAK.js +73 -0
- package/{chunk-GFVFYNL7.js → chunk-G6VITLCZ.js} +3 -3
- package/{chunk-MUI34IA2.js → chunk-GAGUBI42.js} +302 -14
- package/{chunk-YBHJZVWO.js → chunk-GVKTKT3O.js} +15 -8
- package/{chunk-GVYU3EVI.js → chunk-HI7QZNWX.js} +17 -10
- package/{chunk-MHHYH3JA.js → chunk-HLG6GAUD.js} +1 -1
- package/{chunk-MQRZ5QUH.js → chunk-IXZX5CJK.js} +1 -1
- package/{chunk-INWBJPQC.js → chunk-IZ3CBMD5.js} +3 -3
- package/{chunk-VHBWHNVT.js → chunk-K6QEHQZ3.js} +8 -4
- package/chunk-KW47OSRJ.js +3246 -0
- package/{chunk-F7S2SH5C.js → chunk-KWKD3BCC.js} +189 -122
- package/{chunk-L65QKSVJ.js → chunk-L3GCUVOH.js} +1 -1
- package/{chunk-XISENOC2.js → chunk-L3VQOVKK.js} +8 -8
- package/{chunk-HALKDXKP.js → chunk-MEUZFIAJ.js} +8 -4
- package/{chunk-XMAMUPXU.js → chunk-MMCVBEAD.js} +174 -149
- package/{chunk-XOIF2TNF.js → chunk-OB6FBSH3.js} +13 -0
- package/chunk-OYK7PA5U.js +1707 -0
- package/{chunk-WPRSBZYN.js → chunk-Q24P6TUS.js} +1 -1
- package/{chunk-7CP4UOUV.js → chunk-QLV2GKU5.js} +16 -178
- package/{chunk-2AX4ZWSG.js → chunk-SWOTB2TX.js} +135 -1166
- package/{chunk-BOPFLKHA.js → chunk-SWYMCHM7.js} +1 -69
- package/{chunk-YRMUYZ5H.js → chunk-SZ5CBYMZ.js} +4 -4
- package/chunk-T27IEBNQ.js +149 -0
- package/{chunk-WX3ZOSTL.js → chunk-T3Y5EMJS.js} +24 -26
- package/{chunk-RD6AOXQI.js → chunk-THTAR67C.js} +1056 -137
- package/{chunk-2FX23RGA.js → chunk-TJYWZ3LO.js} +4 -4
- package/{chunk-SLOGKB7M.js → chunk-TOW4E763.js} +9 -1
- package/{chunk-33K2M3AU.js → chunk-UKC5HU2C.js} +33 -40
- package/{chunk-STRCGEC6.js → chunk-UTQZ73QQ.js} +13 -9
- package/{chunk-GT3GG2H7.js → chunk-VSTUQGLT.js} +1 -1
- package/{chunk-4MCHUZUI.js → chunk-W2YKDXT7.js} +95 -95
- package/{chunk-L3QFIBZG.js → chunk-WTGCTVJG.js} +1 -1
- package/{chunk-XS7UPVR7.js → chunk-XD5NQEOH.js} +5 -5
- package/{chunk-WSQLK2KR.js → chunk-XFGM5PJP.js} +6 -6
- package/{chunk-DBUNOYLF.js → chunk-YLADSPDU.js} +3 -3
- package/{chunk-FRN5QOKN.js → chunk-YWGSCF37.js} +19 -4
- package/{codingSkills-EN6Z6G6U.js → codingSkills-V35TRR4Y.js} +1 -2
- package/{createAgentAutomationAction-VK3N263U.js → createAgentAutomationAction-3GMH6ORX.js} +30 -37
- package/{createDialogAction-KWZ74S2G.js → createDialogAction-R5MCL4RE.js} +32 -38
- package/{createPageAction-3CIZL5ZL.js → createPageAction-QYTG656R.js} +43 -50
- package/{db-W5UHK4P3.js → db-IPCJ43PW.js} +10 -6
- package/{dbSlice-GOKRGQ47.js → dbSlice-OBV7VFCF.js} +11 -11
- package/{deleteFile-WDZ3VM7B.js → deleteFile-AC45HYSM.js} +5 -5
- package/{dialogCommands-N4XKI6ZU.js → dialogCommands-NUQGIXVZ.js} +53 -37
- package/{dialogSlice-TKYB6VLO.js → dialogSlice-CFDECXEU.js} +27 -34
- package/{docCreateCommands-DTDKANXX.js → docCreateCommands-UNFCXB5N.js} +52 -36
- package/{docDeleteCommands-U4NB6OHK.js → docDeleteCommands-NG5IVKE5.js} +54 -38
- package/{docReadCommands-SDVQM3BH.js → docReadCommands-6J7MUUX6.js} +52 -36
- package/{docStore-E5QAM75M.js → docStore-MZZWJM4F.js} +28 -35
- package/{docUpdateCommands-O2O644FV.js → docUpdateCommands-6AW3VZOX.js} +55 -39
- package/{fetchMessages-W4IKHPCS.js → fetchMessages-VPPQDDZ4.js} +3 -3
- package/{getPricing-X6I23RN6.js → getPricing-XQYSSVV6.js} +6 -7
- package/{handleSendMessageAction-7OVC2SVU.js → handleSendMessageAction-IU2QNTLM.js} +30 -37
- package/index.js +72 -72
- package/localDialogRead-P72W2U2R.js +38 -0
- package/{machineCommands-6GNFKAVC.js → machineCommands-Z2QEWTHZ.js} +76 -81
- package/{machineWsRunDispatch-2DCHVG3U.js → machineWsRunDispatch-SJTYHZHN.js} +71 -76
- package/{models-YT32CTT5.js → models-WDUTTYFS.js} +2 -2
- package/{offlineMarxistsAgentCommand-5OOWZLJI.js → offlineMarxistsAgentCommand-E6LUG63A.js} +6 -2
- package/package.json +1 -1
- package/{read-A23NKT3O.js → read-QK7ZRX6G.js} +6 -6
- package/{readDocTool-JAM5BI5Q.js → readDocTool-EYDMVRBL.js} +2 -1
- package/{readlineWorkspace-KELDMUNZ.js → readlineWorkspace-EY3BPXIU.js} +151 -163
- package/{removeDialogAgentAction-K4HOWFHO.js → removeDialogAgentAction-TBW3UZJW.js} +15 -16
- package/{runAgentClientLoop-R3S7YN6Z.js → runAgentClientLoop-N3YDLTMS.js} +61 -66
- package/{setDialogExtraReferencesAction-JD7J7JM4.js → setDialogExtraReferencesAction-Q3ANF2NR.js} +12 -12
- package/{setPrimaryDialogAgentAction-YWSA5XEU.js → setPrimaryDialogAgentAction-FQ5R3EFJ.js} +15 -16
- package/{settingSlice-22GTX6CA.js → settingSlice-JKKV2T7O.js} +13 -14
- package/{skillDiscovery-ITA7BI7A.js → skillDiscovery-I3QRA7NE.js} +2 -2
- package/{spaceCommands-WM6W3WMQ.js → spaceCommands-R6AEQNLG.js} +57 -40
- package/{spaceSlice-RC2APBOD.js → spaceSlice-MCH7RLLP.js} +27 -34
- package/{streamAgentChatTurn-Q655CCVP.js → streamAgentChatTurn-Q4U2CVMI.js} +130 -1300
- package/{switchDialogAgentAction-6JKFBJVR.js → switchDialogAgentAction-QQGVE4SL.js} +11 -11
- package/{toolApiClient-ISM4ZQX4.js → toolApiClient-ARGFDJAG.js} +3 -3
- package/{tools-A6MUIA3Q.js → tools-Y3UBLLYW.js} +50 -56
- package/{tuiSummaryLlmCaller-GCUPULOV.js → tuiSummaryLlmCaller-4474IBTI.js} +12 -12
- package/{updateDialogTitleAction-DQYY564Y.js → updateDialogTitleAction-3J7GH67I.js} +35 -43
- package/chunk-3LJ4RSSF.js +0 -231
- package/chunk-5CS33IBL.js +0 -301
- package/chunk-5MMAK75Q.js +0 -15
- package/chunk-MRC4Q34M.js +0 -188
- package/chunk-P6TB7JIA.js +0 -1791
- package/chunk-PFTK5SEB.js +0 -620
- package/chunk-PMSG3OGF.js +0 -669
- package/chunk-SIZQB7BD.js +0 -91
- package/chunk-VIDPVFP3.js +0 -20
- package/chunk-Y5GCAMGP.js +0 -9
- package/chunk-YYLHWIW6.js +0 -48
- package/chunk-ZZ2MH7LE.js +0 -84
- package/localDialogRead-JXTAHW2E.js +0 -26
- package/{chunk-ZVZMT3EA.js → chunk-KWCLUYGQ.js} +3 -3
- package/{chunk-NRY4GCKJ.js → chunk-WHLVPK32.js} +3 -3
- package/{chunk-RQSOAMPJ.js → chunk-Z5MXSEOJ.js} +2 -2
- package/{chunk-XMLRJUU5.js → chunk-ZFTCLBEX.js} +9 -9
- package/{runtimeDoctorCommands-HSU632DY.js → runtimeDoctorCommands-E2OUORHK.js} +3 -3
- package/{tableCommands-QSZILI7I.js → tableCommands-PRJNWN6Q.js} +6 -6
|
@@ -4,55 +4,83 @@ import {
|
|
|
4
4
|
isGatewayHttpStatus,
|
|
5
5
|
normalizeNonNegativeMs,
|
|
6
6
|
parseRetryAfterHeaderMs
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-Z5MXSEOJ.js";
|
|
8
8
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
TASK_PREVIEW_MAX,
|
|
10
|
+
buildDelegatedTaskContent,
|
|
11
|
+
formatListRunsCard,
|
|
12
|
+
formatStartRunCard,
|
|
13
|
+
formatStatusRunCard,
|
|
14
|
+
formatStopRunCard,
|
|
15
|
+
resolveRunLabel
|
|
16
|
+
} from "./chunk-KXKQO4Q6.js";
|
|
15
17
|
import {
|
|
16
18
|
sortSafeAgentSummaries,
|
|
17
19
|
toSafeAgentSummary
|
|
18
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-UTQZ73QQ.js";
|
|
19
21
|
import {
|
|
20
22
|
getUserDataItemTimestamp,
|
|
21
23
|
mergeAndDedupUserData
|
|
22
24
|
} from "./chunk-KQHGZWSV.js";
|
|
23
25
|
import {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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-OYK7PA5U.js";
|
|
29
47
|
import {
|
|
30
48
|
createDocState
|
|
31
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-FS5TTXPS.js";
|
|
32
50
|
import {
|
|
33
51
|
setDialogExtraReferencesAction
|
|
34
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-Q24P6TUS.js";
|
|
35
53
|
import {
|
|
36
|
-
|
|
37
|
-
|
|
54
|
+
readDocFunc,
|
|
55
|
+
readDocFunctionSchema,
|
|
56
|
+
readPageFunc,
|
|
57
|
+
readPageFunctionSchema
|
|
58
|
+
} from "./chunk-G5JHHUAK.js";
|
|
38
59
|
import {
|
|
39
|
-
|
|
40
|
-
} from "./chunk-
|
|
60
|
+
slateToSimplifiedMarkdown
|
|
61
|
+
} from "./chunk-SWYMCHM7.js";
|
|
62
|
+
import {
|
|
63
|
+
ToolApiError,
|
|
64
|
+
buildToolRequestHeaders,
|
|
65
|
+
callToolApi,
|
|
66
|
+
getRequestConfig,
|
|
67
|
+
getToolBaseUrl,
|
|
68
|
+
getToolRequestContext
|
|
69
|
+
} from "./chunk-44HACRCK.js";
|
|
41
70
|
import {
|
|
42
|
-
BUILTIN_OBJECT_SKILL_IDS,
|
|
43
|
-
buildBuiltinObjectSkillConfig,
|
|
44
|
-
buildBuiltinObjectSkillDbKey,
|
|
45
|
-
buildBuiltinObjectSkillPageContent,
|
|
46
71
|
createDialogAction
|
|
47
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-QLV2GKU5.js";
|
|
73
|
+
import {
|
|
74
|
+
markdownToSlate
|
|
75
|
+
} from "./chunk-3LY4F7SV.js";
|
|
48
76
|
import {
|
|
49
77
|
addCategory,
|
|
50
78
|
addContentToSpace,
|
|
51
79
|
addRow,
|
|
80
|
+
buildDatabaseFileContentUrl,
|
|
52
81
|
createTable,
|
|
53
82
|
deleteDbKey,
|
|
54
83
|
deleteSpace,
|
|
55
|
-
fetchAndCacheTableRows,
|
|
56
84
|
fetchUserData,
|
|
57
85
|
i18nBaseConfig,
|
|
58
86
|
incrementFailedSteps,
|
|
@@ -75,103 +103,51 @@ import {
|
|
|
75
103
|
updateContentCategory,
|
|
76
104
|
updateContentTitle,
|
|
77
105
|
updateStep
|
|
78
|
-
} from "./chunk-
|
|
106
|
+
} from "./chunk-THTAR67C.js";
|
|
79
107
|
import {
|
|
80
108
|
createAgent,
|
|
81
109
|
runLlm,
|
|
82
110
|
streamAgentChatTurn,
|
|
83
111
|
updateAgent
|
|
84
|
-
} from "./chunk-
|
|
85
|
-
import {
|
|
86
|
-
CODING_SKILL_SLUGS,
|
|
87
|
-
buildCodingSkillConfig,
|
|
88
|
-
buildCodingSkillContentBySlug,
|
|
89
|
-
buildCodingSkillId,
|
|
90
|
-
buildCodingSkillPageKey
|
|
91
|
-
} from "./chunk-7H3UTGPM.js";
|
|
92
|
-
import {
|
|
93
|
-
CAPABILITY_PACKS
|
|
94
|
-
} from "./chunk-CF7S2RYZ.js";
|
|
112
|
+
} from "./chunk-GAGUBI42.js";
|
|
95
113
|
import {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
normalizeStringArray,
|
|
99
|
-
parseExternalSkillMarkdown,
|
|
100
|
-
parseSkillDocProtocol,
|
|
101
|
-
resolvePageSkillMetadata
|
|
102
|
-
} from "./chunk-ZWJOGMKH.js";
|
|
103
|
-
import {
|
|
104
|
-
NOLO_WORKSPACE_TOOL_NAMES,
|
|
105
|
-
buildNoloSubjectRefQueryTarget,
|
|
106
|
-
buildNoloTableQueryRequest,
|
|
107
|
-
clampNoloPositiveInteger,
|
|
108
|
-
filterNoloDialogSubjectRefEvidence,
|
|
109
|
-
getNoloComparableUpdatedAt,
|
|
110
|
-
getNoloDialogIdFromKey,
|
|
111
|
-
normalizeNoloExcludeDialogIds,
|
|
112
|
-
normalizeNoloSpaceInput,
|
|
113
|
-
redactAgentRecordForWorkspaceTool,
|
|
114
|
-
resolveNoloDialogInput,
|
|
115
|
-
verifyNoloDialogSubjectRefQuery
|
|
116
|
-
} from "./chunk-PFTK5SEB.js";
|
|
117
|
-
import {
|
|
118
|
-
buildDatabaseFileContentUrl
|
|
119
|
-
} from "./chunk-PMSG3OGF.js";
|
|
120
|
-
import {
|
|
121
|
-
DEFAULT_MODEL
|
|
122
|
-
} from "./chunk-GT3GG2H7.js";
|
|
123
|
-
import {
|
|
124
|
-
canonicalizeToolName,
|
|
125
|
-
canonicalizeToolNames
|
|
126
|
-
} from "./chunk-ZZ2MH7LE.js";
|
|
114
|
+
toErrorMessage
|
|
115
|
+
} from "./chunk-HNMXYYJR.js";
|
|
127
116
|
import {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
callToolApi,
|
|
131
|
-
getRequestConfig,
|
|
132
|
-
getToolBaseUrl,
|
|
133
|
-
getToolRequestContext
|
|
134
|
-
} from "./chunk-PB7G5MAM.js";
|
|
117
|
+
compactWhitespace
|
|
118
|
+
} from "./chunk-DWLEOOGR.js";
|
|
135
119
|
import {
|
|
136
120
|
getActiveDialogKey,
|
|
137
|
-
require_react,
|
|
138
121
|
selectCurrentDialogKey,
|
|
139
122
|
selectPendingRawDataByPageKey
|
|
140
123
|
} from "./chunk-3ASDTTEI.js";
|
|
141
124
|
import {
|
|
142
|
-
|
|
143
|
-
|
|
125
|
+
addContentAction,
|
|
126
|
+
createSpaceKey,
|
|
127
|
+
normalizeSpaceId
|
|
128
|
+
} from "./chunk-YLADSPDU.js";
|
|
144
129
|
import {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
formatListRunsCard,
|
|
148
|
-
formatStartRunCard,
|
|
149
|
-
formatStatusRunCard,
|
|
150
|
-
formatStopRunCard,
|
|
151
|
-
resolveRunLabel
|
|
152
|
-
} from "./chunk-KXKQO4Q6.js";
|
|
130
|
+
DEFAULT_MODEL
|
|
131
|
+
} from "./chunk-VSTUQGLT.js";
|
|
153
132
|
import {
|
|
154
|
-
|
|
155
|
-
} from "./chunk-
|
|
133
|
+
slateToRenderMarkdown
|
|
134
|
+
} from "./chunk-63W5N6P3.js";
|
|
135
|
+
import {
|
|
136
|
+
isSkillSummaryMarker
|
|
137
|
+
} from "./chunk-VF4K2QE6.js";
|
|
156
138
|
import {
|
|
157
139
|
shareResourceAction
|
|
158
|
-
} from "./chunk-
|
|
140
|
+
} from "./chunk-DKRT67FG.js";
|
|
159
141
|
import {
|
|
160
142
|
AGENT_UPDATE_FIELD_NAMES,
|
|
161
|
-
nolotusId,
|
|
162
143
|
normalizeAgentUpdateFieldList,
|
|
163
144
|
selectAutoApproveSelfUpdateFields,
|
|
164
145
|
selectCurrentServer,
|
|
165
146
|
selectSyncServers
|
|
166
|
-
} from "./chunk-
|
|
147
|
+
} from "./chunk-446VANPP.js";
|
|
167
148
|
import {
|
|
168
149
|
asRecordOrEmpty
|
|
169
150
|
} from "./chunk-KX6YBIHG.js";
|
|
170
|
-
import {
|
|
171
|
-
addContentAction,
|
|
172
|
-
createSpaceKey,
|
|
173
|
-
normalizeSpaceId
|
|
174
|
-
} from "./chunk-DBUNOYLF.js";
|
|
175
151
|
import {
|
|
176
152
|
patch,
|
|
177
153
|
read,
|
|
@@ -180,33 +156,16 @@ import {
|
|
|
180
156
|
selectById,
|
|
181
157
|
toTimestampMs,
|
|
182
158
|
write
|
|
183
|
-
} from "./chunk-
|
|
184
|
-
import {
|
|
185
|
-
SEPARATOR,
|
|
186
|
-
createAgentKey,
|
|
187
|
-
dialogMessageRange,
|
|
188
|
-
fileKey,
|
|
189
|
-
isAgentKey,
|
|
190
|
-
isTableMetaKey,
|
|
191
|
-
metaKey,
|
|
192
|
-
rowKey,
|
|
193
|
-
toTrimmedString,
|
|
194
|
-
ulid
|
|
195
|
-
} from "./chunk-NRY4GCKJ.js";
|
|
196
|
-
import {
|
|
197
|
-
asOptionalFiniteNumber
|
|
198
|
-
} from "./chunk-WWC7I6TA.js";
|
|
199
|
-
import {
|
|
200
|
-
asNonEmptyStringArray,
|
|
201
|
-
asTrimmedNonEmptyStringArray
|
|
202
|
-
} from "./chunk-I42VC5KR.js";
|
|
159
|
+
} from "./chunk-A4JDTA5T.js";
|
|
203
160
|
import {
|
|
204
161
|
asTrimmedLowercaseString
|
|
205
162
|
} from "./chunk-QSJ3HFEF.js";
|
|
206
163
|
import {
|
|
207
|
-
DEFAULT_CODE_PLANNER_EXECUTOR_CANDIDATE_KEYS,
|
|
208
164
|
readAction
|
|
209
|
-
} from "./chunk-
|
|
165
|
+
} from "./chunk-DWQNDGO7.js";
|
|
166
|
+
import {
|
|
167
|
+
extractCustomId
|
|
168
|
+
} from "./chunk-TOW4E763.js";
|
|
210
169
|
import {
|
|
211
170
|
createAsyncThunk,
|
|
212
171
|
getRuntimeServerContext,
|
|
@@ -214,19 +173,10 @@ import {
|
|
|
214
173
|
selectIdentityToken,
|
|
215
174
|
selectIdentityUserId,
|
|
216
175
|
selectRuntimeSnapshot
|
|
217
|
-
} from "./chunk-
|
|
176
|
+
} from "./chunk-ZFTCLBEX.js";
|
|
218
177
|
import {
|
|
219
178
|
isAbortError
|
|
220
179
|
} from "./chunk-R5V5G73M.js";
|
|
221
|
-
import {
|
|
222
|
-
asTrimmedString
|
|
223
|
-
} from "./chunk-3EUW3WEO.js";
|
|
224
|
-
import {
|
|
225
|
-
extractCustomId
|
|
226
|
-
} from "./chunk-SLOGKB7M.js";
|
|
227
|
-
import {
|
|
228
|
-
isRecord
|
|
229
|
-
} from "./chunk-KUG52IAP.js";
|
|
230
180
|
import {
|
|
231
181
|
API_ENDPOINTS
|
|
232
182
|
} from "./chunk-LCBAMY2M.js";
|
|
@@ -236,12 +186,52 @@ import {
|
|
|
236
186
|
import {
|
|
237
187
|
normalizeServerOrigin
|
|
238
188
|
} from "./chunk-CF7PE763.js";
|
|
189
|
+
import {
|
|
190
|
+
extractMentionsFromSlate
|
|
191
|
+
} from "./chunk-VP4WJWKW.js";
|
|
192
|
+
import {
|
|
193
|
+
SEPARATOR,
|
|
194
|
+
createAgentKey,
|
|
195
|
+
dialogMessageRange,
|
|
196
|
+
fileKey,
|
|
197
|
+
isAgentKey,
|
|
198
|
+
isTableMetaKey,
|
|
199
|
+
metaKey,
|
|
200
|
+
rowKey,
|
|
201
|
+
toTrimmedString,
|
|
202
|
+
ulid
|
|
203
|
+
} from "./chunk-WHLVPK32.js";
|
|
204
|
+
import {
|
|
205
|
+
asOptionalFiniteNumber
|
|
206
|
+
} from "./chunk-WWC7I6TA.js";
|
|
207
|
+
import {
|
|
208
|
+
asTrimmedString
|
|
209
|
+
} from "./chunk-3EUW3WEO.js";
|
|
210
|
+
import {
|
|
211
|
+
isRecord
|
|
212
|
+
} from "./chunk-KUG52IAP.js";
|
|
213
|
+
import {
|
|
214
|
+
canonicalizeToolName,
|
|
215
|
+
canonicalizeToolNames
|
|
216
|
+
} from "./chunk-3AUWC6EM.js";
|
|
217
|
+
import {
|
|
218
|
+
CAPABILITY_PACKS
|
|
219
|
+
} from "./chunk-CF7S2RYZ.js";
|
|
220
|
+
import {
|
|
221
|
+
buildSkillDocMarkdown,
|
|
222
|
+
normalizeSkillModalities,
|
|
223
|
+
normalizeStringArray,
|
|
224
|
+
parseExternalSkillMarkdown,
|
|
225
|
+
parseSkillDocProtocol,
|
|
226
|
+
resolvePageSkillMetadata
|
|
227
|
+
} from "./chunk-ZWJOGMKH.js";
|
|
228
|
+
import {
|
|
229
|
+
asNonEmptyStringArray,
|
|
230
|
+
asTrimmedNonEmptyStringArray
|
|
231
|
+
} from "./chunk-I42VC5KR.js";
|
|
239
232
|
import {
|
|
240
233
|
asOptionalTrimmedString
|
|
241
234
|
} from "./chunk-G3SUCT4W.js";
|
|
242
|
-
import {
|
|
243
|
-
__toESM
|
|
244
|
-
} from "./chunk-4VNS5WPM.js";
|
|
245
235
|
|
|
246
236
|
// packages/ai/workflow/workflowExecutor.ts
|
|
247
237
|
function resolveTemplates(value, results) {
|
|
@@ -11247,7 +11237,7 @@ var HOSTED_EXEC_RUNTIME_TOOL_POLICY = {
|
|
|
11247
11237
|
workspace: { mode: "lease" }
|
|
11248
11238
|
};
|
|
11249
11239
|
var findModelConfig = async (modelName, provider) => {
|
|
11250
|
-
const { ALL_MODELS } = await import("./models-
|
|
11240
|
+
const { ALL_MODELS } = await import("./models-WDUTTYFS.js");
|
|
11251
11241
|
const name = toTrimmedString(modelName);
|
|
11252
11242
|
const prov = toTrimmedString(provider ?? "");
|
|
11253
11243
|
if (!name) return null;
|
|
@@ -11488,7 +11478,7 @@ var buildFormDataFromArgs = async (args) => {
|
|
|
11488
11478
|
const trimmedModel = toTrimmedString(model);
|
|
11489
11479
|
const trimmedProvider = toTrimmedString(provider);
|
|
11490
11480
|
const modelConfig = await findModelConfig(trimmedModel, trimmedProvider);
|
|
11491
|
-
const { getModelPricing } = await import("./getPricing-
|
|
11481
|
+
const { getModelPricing } = await import("./getPricing-XQYSSVV6.js");
|
|
11492
11482
|
const normalizedTools = tools ?? [];
|
|
11493
11483
|
const resolvedRuntimeToolPolicy = runtimeToolPolicy ?? (normalizedTools.includes("execShell") ? HOSTED_EXEC_RUNTIME_TOOL_POLICY : void 0);
|
|
11494
11484
|
const formData = {
|
|
@@ -11641,33 +11631,6 @@ ${availableList}`
|
|
|
11641
11631
|
}
|
|
11642
11632
|
}
|
|
11643
11633
|
|
|
11644
|
-
// packages/ai/tools/toolResultError.ts
|
|
11645
|
-
var ToolResultError = class extends Error {
|
|
11646
|
-
code;
|
|
11647
|
-
rawData;
|
|
11648
|
-
displayData;
|
|
11649
|
-
retryable;
|
|
11650
|
-
constructor(message, options) {
|
|
11651
|
-
super(message);
|
|
11652
|
-
this.name = "ToolResultError";
|
|
11653
|
-
this.code = options?.code;
|
|
11654
|
-
this.rawData = options?.rawData;
|
|
11655
|
-
this.displayData = options?.displayData;
|
|
11656
|
-
this.retryable = options?.retryable;
|
|
11657
|
-
}
|
|
11658
|
-
};
|
|
11659
|
-
var getToolResultErrorData = (error) => {
|
|
11660
|
-
if (!error || typeof error !== "object") return null;
|
|
11661
|
-
const candidate = error;
|
|
11662
|
-
return {
|
|
11663
|
-
rawData: candidate.rawData,
|
|
11664
|
-
displayData: candidate.displayData,
|
|
11665
|
-
code: candidate.code,
|
|
11666
|
-
retryable: candidate.retryable,
|
|
11667
|
-
message: candidate.message
|
|
11668
|
-
};
|
|
11669
|
-
};
|
|
11670
|
-
|
|
11671
11634
|
// packages/ai/tools/agent/agentUpdateShared.ts
|
|
11672
11635
|
var agentUpdateFieldSchemaProperties = {
|
|
11673
11636
|
name: { type: "string", description: "Agent \u7684\u65B0\u540D\u79F0\u3002" },
|
|
@@ -12636,791 +12599,6 @@ Imported from: ${url}` : ""
|
|
|
12636
12599
|
});
|
|
12637
12600
|
}
|
|
12638
12601
|
|
|
12639
|
-
// packages/ai/skills/specialistSkills.ts
|
|
12640
|
-
var SPECIALIST_SKILL_SLUGS = [
|
|
12641
|
-
"feedback",
|
|
12642
|
-
"agent-creator",
|
|
12643
|
-
"app-builder"
|
|
12644
|
-
];
|
|
12645
|
-
function deterministicId(prefix, seed) {
|
|
12646
|
-
let h = 2166136261;
|
|
12647
|
-
for (let i = 0; i < seed.length; i++) {
|
|
12648
|
-
h ^= seed.charCodeAt(i);
|
|
12649
|
-
h = h * 16777619 >>> 0;
|
|
12650
|
-
}
|
|
12651
|
-
const suffix = h.toString(36).toUpperCase().padStart(14, "0");
|
|
12652
|
-
return (prefix + suffix).slice(0, 26);
|
|
12653
|
-
}
|
|
12654
|
-
function normalizeSkillSeed(input) {
|
|
12655
|
-
return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
|
|
12656
|
-
}
|
|
12657
|
-
function buildSpecialistSkillId(slug) {
|
|
12658
|
-
return deterministicId("01SK", normalizeSkillSeed(slug) || slug);
|
|
12659
|
-
}
|
|
12660
|
-
function buildSpecialistSkillPageKey(userId, slug) {
|
|
12661
|
-
return `page-${userId}-${buildSpecialistSkillId(slug)}`;
|
|
12662
|
-
}
|
|
12663
|
-
var SPECIALIST_SKILL_SEEDS = [
|
|
12664
|
-
{
|
|
12665
|
-
slug: "feedback",
|
|
12666
|
-
title: "feedback",
|
|
12667
|
-
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",
|
|
12668
|
-
body: [
|
|
12669
|
-
"\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",
|
|
12670
|
-
"",
|
|
12671
|
-
"\u4F60\u7684\u76EE\u6807\uFF1A",
|
|
12672
|
-
"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",
|
|
12673
|
-
"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",
|
|
12674
|
-
"3. \u5C06\u53CD\u9988\u6574\u7406\u6210\u7ED3\u6784\u5316\u4FE1\u606F\uFF0C\u5199\u5165\u201C\u7528\u6237\u53CD\u9988\u201D\u8868\u3002",
|
|
12675
|
-
`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`,
|
|
12676
|
-
"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",
|
|
12677
|
-
"6. \u56DE\u590D\u98CE\u683C\u7B80\u6D01\u3001\u81EA\u7136\u3001\u50CF\u4EA7\u54C1\u56E2\u961F\u7684\u53CD\u9988\u6536\u96C6\u5165\u53E3\u3002",
|
|
12678
|
-
"",
|
|
12679
|
-
"\u5DE5\u4F5C\u89C4\u5219\uFF1A",
|
|
12680
|
-
"- \u4F18\u5148\u5224\u65AD\u53CD\u9988\u7C7B\u578B\uFF1A\u529F\u80FD\u9700\u6C42 / \u95EE\u9898\u53CD\u9988 / \u4F53\u9A8C\u5EFA\u8BAE / \u5176\u4ED6\u3002",
|
|
12681
|
-
"- \u9ED8\u8BA4\u72B6\u6001\u5199\u4E3A\u201C\u5F85\u5904\u7406\u201D\u3002",
|
|
12682
|
-
"- \u6839\u636E\u5185\u5BB9\u7C97\u7565\u5224\u65AD\u4F18\u5148\u7EA7\uFF1A",
|
|
12683
|
-
" - \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",
|
|
12684
|
-
" - \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",
|
|
12685
|
-
" - \u4E00\u822C bug\u3001\u660E\u786E\u9700\u6C42\u3001\u5F71\u54CD\u5E38\u7528\u7F16\u8F91/\u521B\u5EFA\u6D41\u7A0B -> \u4E2D",
|
|
12686
|
-
" - \u666E\u901A\u5EFA\u8BAE\u6216\u8F7B\u5FAE\u4F53\u9A8C\u95EE\u9898 -> \u4F4E",
|
|
12687
|
-
"- \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",
|
|
12688
|
-
"- \u5982\u679C\u7528\u6237\u6CA1\u6709\u63D0\u4F9B\u8054\u7CFB\u65B9\u5F0F\uFF0C\u4E0D\u8981\u5F3A\u6C42\uFF0C\u53EF\u7559\u7A7A\u3002",
|
|
12689
|
-
"- \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",
|
|
12690
|
-
"- \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",
|
|
12691
|
-
"- source \u56FA\u5B9A\u5199\u201C\u53CD\u9988\u5165\u53E3\u201D\u3002",
|
|
12692
|
-
"- createdAtNote \u5199\u201C\u7531\u53CD\u9988\u5165\u53E3\u8BB0\u5F55\u201D\u3002",
|
|
12693
|
-
"",
|
|
12694
|
-
"\u666E\u901A\u5199\u8868\u89C4\u5219\uFF1A",
|
|
12695
|
-
"- \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",
|
|
12696
|
-
`- \u4F7F\u7528 addTableRow \u5DE5\u5177\uFF0C\u628A\u53CD\u9988\u5199\u5165 dbKey \u4E3A meta-${nolotusId}-01NOLOFEEDBACKT000000000R1 \u7684\u8868\u3002`,
|
|
12697
|
-
`- \u663E\u5F0F\u4F20\u5165 tenantId="${nolotusId}" \u548C tableId="01NOLOFEEDBACKT000000000R1"\u3002`,
|
|
12698
|
-
"- \u5B57\u6BB5\u6620\u5C04\uFF1A",
|
|
12699
|
-
" - content: \u7528\u6237\u53CD\u9988\u5185\u5BB9\u7684\u7B80\u6D01\u6574\u7406\u7248\uFF0C\u4FDD\u7559\u5177\u4F53\u5BF9\u8C61\u548C\u75C7\u72B6",
|
|
12700
|
-
" - feedbackType: \u53CD\u9988\u7C7B\u578B",
|
|
12701
|
-
" - status: \u56FA\u5B9A\u4E3A\u201C\u5F85\u5904\u7406\u201D",
|
|
12702
|
-
" - priority: \u6309\u89C4\u5219\u5224\u65AD",
|
|
12703
|
-
" - contact: \u7528\u6237\u4E3B\u52A8\u63D0\u4F9B\u7684\u8054\u7CFB\u65B9\u5F0F\uFF0C\u6CA1\u6709\u5C31\u7559\u7A7A",
|
|
12704
|
-
" - source: \u56FA\u5B9A\u4E3A\u201C\u53CD\u9988\u5165\u53E3\u201D",
|
|
12705
|
-
" - 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",
|
|
12706
|
-
" - 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",
|
|
12707
|
-
" - reproductionSteps: \u7528\u6237\u63CF\u8FF0\u7684\u590D\u73B0\u6B65\u9AA4\uFF1B\u6CA1\u6709\u5C31\u7559\u7A7A",
|
|
12708
|
-
" - expectedResult: \u7528\u6237\u8868\u8FBE\u7684\u671F\u671B\u884C\u4E3A\uFF1B\u6CA1\u6709\u5C31\u7559\u7A7A",
|
|
12709
|
-
" - actualResult: \u7528\u6237\u8868\u8FBE\u7684\u5B9E\u9645\u5F02\u5E38\uFF1B\u6CA1\u6709\u5C31\u7559\u7A7A",
|
|
12710
|
-
" - userImpact: \u5BF9\u7528\u6237\u6D41\u7A0B\u7684\u5F71\u54CD\uFF1B\u6CA1\u6709\u5C31\u6839\u636E\u5185\u5BB9\u7B80\u77ED\u5F52\u7EB3",
|
|
12711
|
-
" - createdAtNote: \u56FA\u5B9A\u4E3A\u201C\u7531\u53CD\u9988\u5165\u53E3\u8BB0\u5F55\u201D",
|
|
12712
|
-
"",
|
|
12713
|
-
"\u7D27\u6025\u53CD\u9988\u989D\u5916\u89C4\u5219\uFF1A",
|
|
12714
|
-
"- \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",
|
|
12715
|
-
`- \u4EFB\u52A1\u770B\u677F\u56FA\u5B9A\u4E3A tenantId="${nolotusId}", tableId="NOLOTASKBOARD", dbKey="meta-${nolotusId}-NOLOTASKBOARD"\u3002`,
|
|
12716
|
-
"- \u4EFB\u52A1\u770B\u677F\u5B57\u6BB5\uFF1A",
|
|
12717
|
-
" - title: \u7528\u201CURGENT \u53CD\u9988\uFF1A\u201D\u5F00\u5934\uFF0C\u540E\u63A5\u95EE\u9898\u4E3B\u9898",
|
|
12718
|
-
" - status: \u201C\u5F85\u5904\u7406\u201D",
|
|
12719
|
-
" - priority: \u201C\u7D27\u6025\u201D",
|
|
12720
|
-
" - executionMode: \u201C\u7ACB\u5373\u6267\u884C\u201D",
|
|
12721
|
-
" - owner: \u201Cnolo \u9879\u76EE\u7ECF\u7406\u201D",
|
|
12722
|
-
" - source: \u201C\u53CD\u9988\u5165\u53E3\u201D",
|
|
12723
|
-
" - 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",
|
|
12724
|
-
" - acceptance: \u590D\u8FF0\u53EF\u9A8C\u8BC1\u7684\u4FEE\u590D\u6807\u51C6",
|
|
12725
|
-
" - 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",
|
|
12726
|
-
" - codeStatus: \u201C\u672A\u5F00\u59CB\u201D",
|
|
12727
|
-
"- \u7D27\u6025\u53CD\u9988\u5199\u5165\u4EFB\u52A1\u8868\u540E\uFF0C\u8C03\u7528 notifyUser\uFF1A",
|
|
12728
|
-
" - title: \u201C\u7D27\u6025\u53CD\u9988\u5DF2\u8FDB\u5165\u4EFB\u52A1\u8868\u201D",
|
|
12729
|
-
" - message: \u7B80\u8981\u8BF4\u660E\u53CD\u9988\u5185\u5BB9\u548C\u4EFB\u52A1\u8868\u72B6\u6001",
|
|
12730
|
-
" - severity: \u201Ccritical\u201D",
|
|
12731
|
-
` - targetUserId: "${nolotusId}"`,
|
|
12732
|
-
"- \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",
|
|
12733
|
-
"",
|
|
12734
|
-
"\u4EA4\u4E92\u89C4\u5219\uFF1A",
|
|
12735
|
-
"- \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",
|
|
12736
|
-
"- \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",
|
|
12737
|
-
"- \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",
|
|
12738
|
-
"- \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",
|
|
12739
|
-
"- \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"
|
|
12740
|
-
].join("\n"),
|
|
12741
|
-
toolNames: ["addTableRow", "notifyUser"]
|
|
12742
|
-
},
|
|
12743
|
-
{
|
|
12744
|
-
slug: "agent-creator",
|
|
12745
|
-
title: "agent-creator",
|
|
12746
|
-
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",
|
|
12747
|
-
body: [
|
|
12748
|
-
"\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",
|
|
12749
|
-
"\u6838\u5FC3\u539F\u5219\uFF1AAgent = prompt + knowledge + tools + skills/workflows + eval \u7684\u53EF\u8FD0\u884C\u5C01\u88C5\u3002",
|
|
12750
|
-
"\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",
|
|
12751
|
-
"\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",
|
|
12752
|
-
"\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",
|
|
12753
|
-
"\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",
|
|
12754
|
-
"prepareAgentDraft \u53EA\u751F\u6210\u8349\u7A3F\uFF0C\u4E0D\u4EE3\u8868\u5DF2\u7ECF\u521B\u5EFA\u771F\u5B9E Agent\u3002",
|
|
12755
|
-
"\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",
|
|
12756
|
-
"\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",
|
|
12757
|
-
"\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",
|
|
12758
|
-
"\u53EA\u6709\u5F97\u5230\u660E\u786E\u786E\u8BA4\u540E\uFF0C\u624D\u8C03\u7528 createAgent \u521B\u5EFA\u771F\u5B9E Agent\u3002",
|
|
12759
|
-
"\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",
|
|
12760
|
-
"\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",
|
|
12761
|
-
"\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",
|
|
12762
|
-
"\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"
|
|
12763
|
-
].join("\n"),
|
|
12764
|
-
toolNames: [
|
|
12765
|
-
"prepareAgentDraft",
|
|
12766
|
-
"createAgent",
|
|
12767
|
-
"createSkillDoc",
|
|
12768
|
-
"readDoc",
|
|
12769
|
-
"updateDoc",
|
|
12770
|
-
"updateAgent"
|
|
12771
|
-
]
|
|
12772
|
-
},
|
|
12773
|
-
{
|
|
12774
|
-
slug: "app-builder",
|
|
12775
|
-
title: "app-builder",
|
|
12776
|
-
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",
|
|
12777
|
-
body: [
|
|
12778
|
-
"\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",
|
|
12779
|
-
"",
|
|
12780
|
-
"## \u89D2\u8272",
|
|
12781
|
-
"- \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",
|
|
12782
|
-
"- \u9664\u975E\u7528\u6237\u660E\u786E\u8981\u770B\u4EE3\u7801\uFF0C\u5426\u5219\u4E0D\u5C55\u793A\u5927\u6BB5\u4EE3\u7801\u3002",
|
|
12783
|
-
"- \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",
|
|
12784
|
-
"",
|
|
12785
|
-
"## \u5DE5\u4F5C\u65B9\u5F0F",
|
|
12786
|
-
"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",
|
|
12787
|
-
"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",
|
|
12788
|
-
"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",
|
|
12789
|
-
"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",
|
|
12790
|
-
"",
|
|
12791
|
-
"## \u65B0\u5EFA\u5E94\u7528",
|
|
12792
|
-
"- \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",
|
|
12793
|
-
"",
|
|
12794
|
-
"## \u6536\u5C3E",
|
|
12795
|
-
"- \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",
|
|
12796
|
-
"",
|
|
12797
|
-
"## \u5DE5\u5177",
|
|
12798
|
-
"- \u672C skill \u7684\u5DE5\u5177\uFF08app* / \u8868 / openAIGptImage \u7B49\uFF09\u7531\u300Capp-builder\u300D\u80FD\u529B\u5305\u6CE8\u5165",
|
|
12799
|
-
" \uFF08packages/ai/tools/toolPacks.ts \u7684 CAPABILITY_PACKS\uFF09\u3002\u82E5\u5F53\u524D runtime \u672A\u542F\u7528",
|
|
12800
|
-
" \u8BE5\u80FD\u529B\u5305\uFF0C\u5DE5\u5177\u9762\u4E0D\u4F1A\u5C55\u5F00\uFF0C\u9700\u8981\u5148\u786E\u8BA4\u8FD0\u884C\u73AF\u5883\u3002"
|
|
12801
|
-
].join("\n"),
|
|
12802
|
-
toolNames: []
|
|
12803
|
-
}
|
|
12804
|
-
];
|
|
12805
|
-
function seedBySlug(slug) {
|
|
12806
|
-
const seed = SPECIALIST_SKILL_SEEDS.find((item) => item.slug === slug);
|
|
12807
|
-
if (!seed) {
|
|
12808
|
-
throw new Error(`Unknown specialist skill slug: ${slug}`);
|
|
12809
|
-
}
|
|
12810
|
-
return seed;
|
|
12811
|
-
}
|
|
12812
|
-
function buildSpecialistSkillConfig(slug) {
|
|
12813
|
-
const seed = seedBySlug(slug);
|
|
12814
|
-
return {
|
|
12815
|
-
version: "0.1",
|
|
12816
|
-
kind: "skill",
|
|
12817
|
-
id: buildSpecialistSkillId(slug),
|
|
12818
|
-
name: seed.title,
|
|
12819
|
-
description: seed.description,
|
|
12820
|
-
...seed.toolNames?.length ? { toolNames: [...seed.toolNames] } : {}
|
|
12821
|
-
};
|
|
12822
|
-
}
|
|
12823
|
-
function buildSpecialistSkillContentBySlug(slug) {
|
|
12824
|
-
const seed = seedBySlug(slug);
|
|
12825
|
-
const skillConfig = buildSpecialistSkillConfig(slug);
|
|
12826
|
-
return buildSkillDocMarkdown({
|
|
12827
|
-
body: seed.body,
|
|
12828
|
-
skillConfig
|
|
12829
|
-
});
|
|
12830
|
-
}
|
|
12831
|
-
|
|
12832
|
-
// packages/ai/skills/codePlannerSkills.ts
|
|
12833
|
-
var CODE_PLANNER_SKILL_SLUGS = [
|
|
12834
|
-
"code-planning",
|
|
12835
|
-
"search-first",
|
|
12836
|
-
"workspace-code",
|
|
12837
|
-
"web-research-lite",
|
|
12838
|
-
"dispatch-executors"
|
|
12839
|
-
];
|
|
12840
|
-
var CODE_PLANNER_ROOT_SKILL_SLUG = "code-planning";
|
|
12841
|
-
function deterministicId2(prefix, seed) {
|
|
12842
|
-
let h = 2166136261;
|
|
12843
|
-
for (let i = 0; i < seed.length; i++) {
|
|
12844
|
-
h ^= seed.charCodeAt(i);
|
|
12845
|
-
h = h * 16777619 >>> 0;
|
|
12846
|
-
}
|
|
12847
|
-
const suffix = h.toString(36).toUpperCase().padStart(14, "0");
|
|
12848
|
-
return (prefix + suffix).slice(0, 26);
|
|
12849
|
-
}
|
|
12850
|
-
function normalizeSkillSeed2(input) {
|
|
12851
|
-
return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
|
|
12852
|
-
}
|
|
12853
|
-
function buildCodePlannerSkillId(slug) {
|
|
12854
|
-
return deterministicId2("01SK", normalizeSkillSeed2(slug) || slug);
|
|
12855
|
-
}
|
|
12856
|
-
function buildCodePlannerSkillPageKey(userId, slug) {
|
|
12857
|
-
return `page-${userId}-${buildCodePlannerSkillId(slug)}`;
|
|
12858
|
-
}
|
|
12859
|
-
var CODE_PLANNER_ROOT_SKILL_ID = buildCodePlannerSkillId(
|
|
12860
|
-
CODE_PLANNER_ROOT_SKILL_SLUG
|
|
12861
|
-
);
|
|
12862
|
-
function buildDispatchExecutorsPromptPatch(candidateKeys = DEFAULT_CODE_PLANNER_EXECUTOR_CANDIDATE_KEYS) {
|
|
12863
|
-
const keys = candidateKeys.map((key) => key.trim()).filter(Boolean);
|
|
12864
|
-
if (keys.length === 0) {
|
|
12865
|
-
throw new Error("buildDispatchExecutorsPromptPatch requires at least one candidate key");
|
|
12866
|
-
}
|
|
12867
|
-
return [
|
|
12868
|
-
"\u6D3E\u53D1\u534F\u8BAE\uFF1A",
|
|
12869
|
-
"- \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",
|
|
12870
|
-
"- \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",
|
|
12871
|
-
...keys.map((key, index) => ` ${index + 1}. ${key}`),
|
|
12872
|
-
"- 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",
|
|
12873
|
-
"- \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",
|
|
12874
|
-
"- \u4E0D\u8981\u5199\u6B7B owner \u79C1\u6709 agentKey\u3002"
|
|
12875
|
-
].join("\n");
|
|
12876
|
-
}
|
|
12877
|
-
var CODE_PLANNER_SKILL_SEEDS = [
|
|
12878
|
-
{
|
|
12879
|
-
slug: "search-first",
|
|
12880
|
-
title: "search-first",
|
|
12881
|
-
description: "Search-first protocol for code work: repo before web; evaluate Adopt/Extend/Compose/Build.",
|
|
12882
|
-
body: [
|
|
12883
|
-
"# search-first",
|
|
12884
|
-
"",
|
|
12885
|
-
"Protocol-only skill. It does not grant tools by itself.",
|
|
12886
|
-
"Use workspace and web skills for actual reads/searches."
|
|
12887
|
-
].join("\n"),
|
|
12888
|
-
triggerMode: "required",
|
|
12889
|
-
promptPatch: [
|
|
12890
|
-
"Search-first \u534F\u8BAE\uFF1A",
|
|
12891
|
-
"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",
|
|
12892
|
-
"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",
|
|
12893
|
-
"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",
|
|
12894
|
-
"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",
|
|
12895
|
-
"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",
|
|
12896
|
-
"6. \u4ECE\u672A\u8C03\u7528\u7684\u6E20\u9053\u7981\u6B62\u58F0\u79F0\u5DF2\u641C\u7D22/\u5DF2\u68C0\u67E5\u3002"
|
|
12897
|
-
].join("\n")
|
|
12898
|
-
},
|
|
12899
|
-
{
|
|
12900
|
-
slug: "workspace-code",
|
|
12901
|
-
title: "workspace-code",
|
|
12902
|
-
description: "Workspace read/edit/shell protocol for local bound folders and repo inspection.",
|
|
12903
|
-
body: [
|
|
12904
|
-
"# workspace-code",
|
|
12905
|
-
"",
|
|
12906
|
-
"Declares local workspace tools and the honest fallback when they are unavailable."
|
|
12907
|
-
].join("\n"),
|
|
12908
|
-
triggerMode: "required",
|
|
12909
|
-
toolNames: [
|
|
12910
|
-
"listFiles",
|
|
12911
|
-
"readFile",
|
|
12912
|
-
"globFiles",
|
|
12913
|
-
"searchFiles",
|
|
12914
|
-
"editFile",
|
|
12915
|
-
"execShell"
|
|
12916
|
-
],
|
|
12917
|
-
promptPatch: [
|
|
12918
|
-
"\u5DE5\u4F5C\u533A\u534F\u8BAE\uFF1A",
|
|
12919
|
-
"- 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",
|
|
12920
|
-
"- \u53EA\u8BFB\uFF1AlistFiles\u3001readFile\u3001globFiles\u3001searchFiles\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",
|
|
12921
|
-
"- 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",
|
|
12922
|
-
"- 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",
|
|
12923
|
-
"- \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"
|
|
12924
|
-
].join("\n")
|
|
12925
|
-
},
|
|
12926
|
-
{
|
|
12927
|
-
slug: "web-research-lite",
|
|
12928
|
-
title: "web-research-lite",
|
|
12929
|
-
description: "Lite web verification protocol for dependency/docs/issue lookups.",
|
|
12930
|
-
body: [
|
|
12931
|
-
"# web-research-lite",
|
|
12932
|
-
"",
|
|
12933
|
-
"Declares external search/scrape tools for verification after local search."
|
|
12934
|
-
].join("\n"),
|
|
12935
|
-
triggerMode: "required",
|
|
12936
|
-
// 刻意不声明 toolNames:联网能力是系统层能力包(web-search / web-scrape),
|
|
12937
|
-
// 不编码的对话同样需要,不该由 Code Planner 私藏一份。这里只留协议,工具由
|
|
12938
|
-
// 宿主按能力包挂载,用户在设置页的全局开关才能真正管住它们。
|
|
12939
|
-
promptPatch: [
|
|
12940
|
-
"\u5916\u90E8\u68C0\u7D22\u534F\u8BAE\uFF1A",
|
|
12941
|
-
"- \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",
|
|
12942
|
-
"- \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",
|
|
12943
|
-
"- \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",
|
|
12944
|
-
"- \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"
|
|
12945
|
-
].join("\n")
|
|
12946
|
-
},
|
|
12947
|
-
{
|
|
12948
|
-
slug: "dispatch-executors",
|
|
12949
|
-
title: "dispatch-executors",
|
|
12950
|
-
description: "startAgentRun dispatch protocol for Code Planner executor candidates.",
|
|
12951
|
-
body: [
|
|
12952
|
-
"# dispatch-executors",
|
|
12953
|
-
"",
|
|
12954
|
-
"Only startAgentRun is granted. Default candidate keys are platform public agents;",
|
|
12955
|
-
"hard allowlisting is enforced by runtimeContext.allowedChildAgentKeys when wired."
|
|
12956
|
-
].join("\n"),
|
|
12957
|
-
triggerMode: "required",
|
|
12958
|
-
toolNames: ["startAgentRun"],
|
|
12959
|
-
// Keys come from core/builtinAgents — do not hard-code a separate list here.
|
|
12960
|
-
promptPatch: buildDispatchExecutorsPromptPatch(
|
|
12961
|
-
DEFAULT_CODE_PLANNER_EXECUTOR_CANDIDATE_KEYS
|
|
12962
|
-
)
|
|
12963
|
-
},
|
|
12964
|
-
{
|
|
12965
|
-
slug: "code-planning",
|
|
12966
|
-
title: "code-planning",
|
|
12967
|
-
description: "Root Code Planner skill: composes search-first, workspace, web, and dispatch skills.",
|
|
12968
|
-
body: [
|
|
12969
|
-
"# code-planning",
|
|
12970
|
-
"",
|
|
12971
|
-
"Composition-only root skill for Code Planner.",
|
|
12972
|
-
"Attach this skill on the Agent; children load via requiredSkills.",
|
|
12973
|
-
"Until runtimes expand skill pages, Agent seed also carries a compiled snapshot."
|
|
12974
|
-
].join("\n"),
|
|
12975
|
-
triggerMode: "required",
|
|
12976
|
-
requiredSkillSlugs: [
|
|
12977
|
-
"search-first",
|
|
12978
|
-
"workspace-code",
|
|
12979
|
-
"web-research-lite",
|
|
12980
|
-
"dispatch-executors"
|
|
12981
|
-
]
|
|
12982
|
-
}
|
|
12983
|
-
];
|
|
12984
|
-
function seedBySlug2(slug) {
|
|
12985
|
-
const seed = CODE_PLANNER_SKILL_SEEDS.find((item) => item.slug === slug);
|
|
12986
|
-
if (!seed) {
|
|
12987
|
-
throw new Error(`Unknown Code Planner skill slug: ${slug}`);
|
|
12988
|
-
}
|
|
12989
|
-
return seed;
|
|
12990
|
-
}
|
|
12991
|
-
function collectCodePlannerReachableSkillSlugs(rootSlug = CODE_PLANNER_ROOT_SKILL_SLUG) {
|
|
12992
|
-
const ordered = [];
|
|
12993
|
-
const seen = /* @__PURE__ */ new Set();
|
|
12994
|
-
const visit = (slug) => {
|
|
12995
|
-
if (seen.has(slug)) return;
|
|
12996
|
-
seen.add(slug);
|
|
12997
|
-
ordered.push(slug);
|
|
12998
|
-
for (const child of seedBySlug2(slug).requiredSkillSlugs ?? []) {
|
|
12999
|
-
visit(child);
|
|
13000
|
-
}
|
|
13001
|
-
};
|
|
13002
|
-
visit(rootSlug);
|
|
13003
|
-
return ordered;
|
|
13004
|
-
}
|
|
13005
|
-
function compileCodePlannerEffectiveTools() {
|
|
13006
|
-
const tools = [];
|
|
13007
|
-
const seen = /* @__PURE__ */ new Set();
|
|
13008
|
-
for (const slug of collectCodePlannerReachableSkillSlugs()) {
|
|
13009
|
-
for (const toolName of seedBySlug2(slug).toolNames ?? []) {
|
|
13010
|
-
if (seen.has(toolName)) continue;
|
|
13011
|
-
seen.add(toolName);
|
|
13012
|
-
tools.push(toolName);
|
|
13013
|
-
}
|
|
13014
|
-
}
|
|
13015
|
-
return tools;
|
|
13016
|
-
}
|
|
13017
|
-
var CODE_PLANNER_COMPILED_EFFECTIVE_TOOLS = compileCodePlannerEffectiveTools();
|
|
13018
|
-
function buildCodePlannerSkillConfig(slug, options) {
|
|
13019
|
-
const seed = seedBySlug2(slug);
|
|
13020
|
-
const requiredSkills = options?.requiredSkills ?? seed.requiredSkillSlugs?.map((childSlug) => buildCodePlannerSkillId(childSlug));
|
|
13021
|
-
return {
|
|
13022
|
-
version: "0.1",
|
|
13023
|
-
kind: "skill",
|
|
13024
|
-
id: buildCodePlannerSkillId(slug),
|
|
13025
|
-
name: seed.title,
|
|
13026
|
-
description: seed.description,
|
|
13027
|
-
...seed.triggerMode ? { triggerMode: seed.triggerMode } : {},
|
|
13028
|
-
...seed.toolNames?.length ? { toolNames: [...seed.toolNames] } : {},
|
|
13029
|
-
...requiredSkills?.length ? { requiredSkills: [...requiredSkills] } : {},
|
|
13030
|
-
...seed.promptPatch ? { promptPatch: seed.promptPatch } : {}
|
|
13031
|
-
};
|
|
13032
|
-
}
|
|
13033
|
-
function buildCodePlannerSkillPageRecords(userId) {
|
|
13034
|
-
const trimmedUserId = userId.trim();
|
|
13035
|
-
if (!trimmedUserId) {
|
|
13036
|
-
throw new Error("buildCodePlannerSkillPageRecords requires userId");
|
|
13037
|
-
}
|
|
13038
|
-
return CODE_PLANNER_SKILL_SEEDS.map((seed) => {
|
|
13039
|
-
const skillId = buildCodePlannerSkillId(seed.slug);
|
|
13040
|
-
const dbKey = buildCodePlannerSkillPageKey(trimmedUserId, seed.slug);
|
|
13041
|
-
const requiredSkills = seed.requiredSkillSlugs?.map(
|
|
13042
|
-
(childSlug) => buildCodePlannerSkillPageKey(trimmedUserId, childSlug)
|
|
13043
|
-
);
|
|
13044
|
-
const skillConfig = buildCodePlannerSkillConfig(seed.slug, {
|
|
13045
|
-
requiredSkills
|
|
13046
|
-
});
|
|
13047
|
-
return {
|
|
13048
|
-
slug: seed.slug,
|
|
13049
|
-
skillId,
|
|
13050
|
-
dbKey,
|
|
13051
|
-
title: seed.title,
|
|
13052
|
-
content: buildSkillDocMarkdown({
|
|
13053
|
-
body: seed.body,
|
|
13054
|
-
skillConfig
|
|
13055
|
-
}),
|
|
13056
|
-
meta: {
|
|
13057
|
-
kind: "skill",
|
|
13058
|
-
skillConfig
|
|
13059
|
-
},
|
|
13060
|
-
...skillConfig.toolNames?.length ? { tools: [...skillConfig.toolNames] } : {}
|
|
13061
|
-
};
|
|
13062
|
-
});
|
|
13063
|
-
}
|
|
13064
|
-
|
|
13065
|
-
// packages/ai/skills/searchDialogSkill.ts
|
|
13066
|
-
var SEARCH_DIALOG_SKILL_SLUGS = [
|
|
13067
|
-
"search-dialog-messages"
|
|
13068
|
-
];
|
|
13069
|
-
function deterministicId3(prefix, seed) {
|
|
13070
|
-
let h = 2166136261;
|
|
13071
|
-
for (let i = 0; i < seed.length; i++) {
|
|
13072
|
-
h ^= seed.charCodeAt(i);
|
|
13073
|
-
h = h * 16777619 >>> 0;
|
|
13074
|
-
}
|
|
13075
|
-
const suffix = h.toString(36).toUpperCase().padStart(14, "0");
|
|
13076
|
-
return (prefix + suffix).slice(0, 26);
|
|
13077
|
-
}
|
|
13078
|
-
function normalizeSkillSeed3(input) {
|
|
13079
|
-
return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
|
|
13080
|
-
}
|
|
13081
|
-
function buildSearchDialogSkillId(slug) {
|
|
13082
|
-
return deterministicId3("01SK", normalizeSkillSeed3(slug) || slug);
|
|
13083
|
-
}
|
|
13084
|
-
function buildSearchDialogSkillPageKey(userId, slug) {
|
|
13085
|
-
return `page-${userId}-${buildSearchDialogSkillId(slug)}`;
|
|
13086
|
-
}
|
|
13087
|
-
var SEARCH_DIALOG_SKILL_SEEDS = [
|
|
13088
|
-
{
|
|
13089
|
-
slug: "search-dialog-messages",
|
|
13090
|
-
title: "\u5BF9\u8BDD\u68C0\u7D22",
|
|
13091
|
-
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",
|
|
13092
|
-
body: [
|
|
13093
|
-
"\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",
|
|
13094
|
-
"",
|
|
13095
|
-
"## \u4EC0\u4E48\u65F6\u5019\u7528",
|
|
13096
|
-
"- \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",
|
|
13097
|
-
"- \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",
|
|
13098
|
-
"- \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",
|
|
13099
|
-
"- \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",
|
|
13100
|
-
"",
|
|
13101
|
-
"## listDialogs\uFF1A\u5B9A\u4F4D\u5BF9\u8BDD",
|
|
13102
|
-
"\u5217\u51FA\u5F53\u524D\u7528\u6237\u7684\u5BF9\u8BDD\uFF1A`listDialogs({ limit?, space?, includeScheduled? })`\u3002",
|
|
13103
|
-
"- \u8FD4\u56DE `{ total, dialogs: [{ id, dbKey, title, status, updatedAt, createdAt, spaceId, triggerType, primaryAgentKey }] }`\uFF0C\u6309\u6700\u8FD1\u66F4\u65B0\u6392\u5E8F\u3002",
|
|
13104
|
-
"- 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",
|
|
13105
|
-
"- \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",
|
|
13106
|
-
"",
|
|
13107
|
-
"## readDialog\uFF1A\u8BFB\u53D6\u5BF9\u8BDD",
|
|
13108
|
-
'\u8BFB\u53D6\u6307\u5B9A\u5BF9\u8BDD\u7684\u5143\u6570\u636E\u4E0E\u6700\u8FD1\u6D88\u606F\uFF1A`readDialog({ dialog: "<dialog \u7684 dbKey>" })`\u3002',
|
|
13109
|
-
"- 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",
|
|
13110
|
-
"- \u76EE\u6807\u5BF9\u8BDD\u4E0D\u660E\u786E\u65F6\uFF0C\u5148 listDialogs \u5B9A\u4F4D\u518D\u8BFB\u53D6\u3002",
|
|
13111
|
-
"- limit \u63A7\u5236\u8FD4\u56DE\u6D88\u606F\u6761\u6570\uFF08\u9ED8\u8BA4 120\uFF0C\u4E0A\u9650 1000\uFF09\u3002",
|
|
13112
|
-
"",
|
|
13113
|
-
"## searchDialogMessages\uFF1A\u539F\u6587\u641C\u7D22",
|
|
13114
|
-
'\u57FA\u672C\u5F62\u5F0F\uFF1A`searchDialogMessages({ dialogKey: "<dialog \u7684 dbKey>", query: "<\u8981\u641C\u7684\u6587\u672C>" })`',
|
|
13115
|
-
"",
|
|
13116
|
-
"\u53C2\u6570\uFF1A",
|
|
13117
|
-
"- dialogKey\uFF1A\u76EE\u6807\u5BF9\u8BDD\u7684 dbKey\uFF08\u5F62\u5982 dialog-<userId>-01ABC...\uFF09\u3002",
|
|
13118
|
-
"- query\uFF1A\u8981\u5728\u539F\u59CB\u6D88\u606F\u5185\u5BB9\u91CC\u641C\u7D22\u7684\u6587\u672C\u3002",
|
|
13119
|
-
"- limit\uFF1A\u6700\u591A\u8FD4\u56DE\u591A\u5C11\u6761\u5339\u914D\uFF08\u4E0A\u9650 10\uFF09\u3002",
|
|
13120
|
-
"- scanLimit\uFF1A\u4ECE server \u62C9\u53D6\u65F6\u6700\u591A\u626B\u63CF\u591A\u5C11\u6761\u6D88\u606F\uFF08\u4E0A\u9650 500\uFF09\u3002",
|
|
13121
|
-
"- contextMessages\uFF1A\u6BCF\u6761\u5339\u914D\u524D\u540E\u9644\u5E26\u591A\u5C11\u6761\u90BB\u8FD1\u6D88\u606F\uFF08\u4E0A\u9650 3\uFF09\u3002",
|
|
13122
|
-
"- role\uFF1A\u53EF\u9009\uFF0C\u53EA\u641C\u6307\u5B9A\u89D2\u8272\uFF08user / assistant / tool / system\uFF09\u3002",
|
|
13123
|
-
"- includeTools\uFF1A\u53EF\u9009\uFF0C\u662F\u5426\u5305\u542B tool \u6D88\u606F\u3002",
|
|
13124
|
-
"",
|
|
13125
|
-
"## \u8FD4\u56DE",
|
|
13126
|
-
"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",
|
|
13127
|
-
"\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",
|
|
13128
|
-
"",
|
|
13129
|
-
"## \u8FB9\u754C",
|
|
13130
|
-
"- 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",
|
|
13131
|
-
"- 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",
|
|
13132
|
-
"- \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",
|
|
13133
|
-
"- \u641C\u4E0D\u5230\u65F6\u5982\u5B9E\u8BF4\u660E\uFF0C\u4E0D\u8981\u7528\u6458\u8981\u6216\u8BB0\u5FC6\u7F16\u9020\u539F\u6587\u3002"
|
|
13134
|
-
].join("\n"),
|
|
13135
|
-
toolNames: ["listDialogs", "readDialog", "searchDialogMessages"]
|
|
13136
|
-
}
|
|
13137
|
-
];
|
|
13138
|
-
function seedBySlug3(slug) {
|
|
13139
|
-
const seed = SEARCH_DIALOG_SKILL_SEEDS.find((item) => item.slug === slug);
|
|
13140
|
-
if (!seed) {
|
|
13141
|
-
throw new Error(`Unknown search-dialog skill slug: ${slug}`);
|
|
13142
|
-
}
|
|
13143
|
-
return seed;
|
|
13144
|
-
}
|
|
13145
|
-
function buildSearchDialogSkillConfig(slug) {
|
|
13146
|
-
const seed = seedBySlug3(slug);
|
|
13147
|
-
return {
|
|
13148
|
-
version: "0.1",
|
|
13149
|
-
kind: "skill",
|
|
13150
|
-
id: buildSearchDialogSkillId(slug),
|
|
13151
|
-
name: seed.title,
|
|
13152
|
-
description: seed.description,
|
|
13153
|
-
...seed.toolNames?.length ? { toolNames: [...seed.toolNames] } : {}
|
|
13154
|
-
};
|
|
13155
|
-
}
|
|
13156
|
-
function buildSearchDialogSkillContentBySlug(slug) {
|
|
13157
|
-
const seed = seedBySlug3(slug);
|
|
13158
|
-
const skillConfig = buildSearchDialogSkillConfig(slug);
|
|
13159
|
-
return buildSkillDocMarkdown({
|
|
13160
|
-
body: seed.body,
|
|
13161
|
-
skillConfig
|
|
13162
|
-
});
|
|
13163
|
-
}
|
|
13164
|
-
|
|
13165
|
-
// packages/ai/skills/searchSpaceSkill.ts
|
|
13166
|
-
var SEARCH_SPACE_SKILL_SLUGS = [
|
|
13167
|
-
"search-all-spaces"
|
|
13168
|
-
];
|
|
13169
|
-
function deterministicId4(prefix, seed) {
|
|
13170
|
-
let h = 2166136261;
|
|
13171
|
-
for (let i = 0; i < seed.length; i++) {
|
|
13172
|
-
h ^= seed.charCodeAt(i);
|
|
13173
|
-
h = h * 16777619 >>> 0;
|
|
13174
|
-
}
|
|
13175
|
-
const suffix = h.toString(36).toUpperCase().padStart(14, "0");
|
|
13176
|
-
return (prefix + suffix).slice(0, 26);
|
|
13177
|
-
}
|
|
13178
|
-
function normalizeSkillSeed4(input) {
|
|
13179
|
-
return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
|
|
13180
|
-
}
|
|
13181
|
-
function buildSearchSpaceSkillId(slug) {
|
|
13182
|
-
return deterministicId4("01SK", normalizeSkillSeed4(slug) || slug);
|
|
13183
|
-
}
|
|
13184
|
-
function buildSearchSpaceSkillPageKey(userId, slug) {
|
|
13185
|
-
return `page-${userId}-${buildSearchSpaceSkillId(slug)}`;
|
|
13186
|
-
}
|
|
13187
|
-
var SEARCH_SPACE_SKILL_SEEDS = [
|
|
13188
|
-
{
|
|
13189
|
-
slug: "search-all-spaces",
|
|
13190
|
-
title: "\u5168\u7A7A\u95F4\u641C\u7D22",
|
|
13191
|
-
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",
|
|
13192
|
-
body: [
|
|
13193
|
-
"\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",
|
|
13194
|
-
"",
|
|
13195
|
-
"## \u4EC0\u4E48\u65F6\u5019\u7528",
|
|
13196
|
-
"- \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",
|
|
13197
|
-
"- \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",
|
|
13198
|
-
"- \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",
|
|
13199
|
-
"",
|
|
13200
|
-
"## \u8C03\u7528\u65B9\u5F0F",
|
|
13201
|
-
'`search_all_spaces({ query: "<\u5173\u952E\u8BCD>" })`',
|
|
13202
|
-
"- query\uFF1A\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5339\u914D\u6807\u9898\u4E0E\u6587\u4EF6\u540D\uFF08contentKey\uFF09\u3002",
|
|
13203
|
-
"- \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",
|
|
13204
|
-
"",
|
|
13205
|
-
"## \u8BED\u4E49\u4E0E\u8FB9\u754C",
|
|
13206
|
-
"- \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",
|
|
13207
|
-
"- \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",
|
|
13208
|
-
"- \u6CA1\u6709\u547D\u4E2D\u65F6\u5982\u5B9E\u8BF4\u660E\uFF0C\u4E0D\u8981\u7F16\u9020\u5185\u5BB9\u6216\u7A7A\u95F4\u5F52\u5C5E\u3002",
|
|
13209
|
-
"- \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"
|
|
13210
|
-
].join("\n"),
|
|
13211
|
-
toolNames: ["search_all_spaces"]
|
|
13212
|
-
}
|
|
13213
|
-
];
|
|
13214
|
-
function seedBySlug4(slug) {
|
|
13215
|
-
const seed = SEARCH_SPACE_SKILL_SEEDS.find((item) => item.slug === slug);
|
|
13216
|
-
if (!seed) {
|
|
13217
|
-
throw new Error(`Unknown search-space skill slug: ${slug}`);
|
|
13218
|
-
}
|
|
13219
|
-
return seed;
|
|
13220
|
-
}
|
|
13221
|
-
function buildSearchSpaceSkillConfig(slug) {
|
|
13222
|
-
const seed = seedBySlug4(slug);
|
|
13223
|
-
return {
|
|
13224
|
-
version: "0.1",
|
|
13225
|
-
kind: "skill",
|
|
13226
|
-
id: buildSearchSpaceSkillId(slug),
|
|
13227
|
-
name: seed.title,
|
|
13228
|
-
description: seed.description,
|
|
13229
|
-
...seed.toolNames?.length ? { toolNames: [...seed.toolNames] } : {}
|
|
13230
|
-
};
|
|
13231
|
-
}
|
|
13232
|
-
function buildSearchSpaceSkillContentBySlug(slug) {
|
|
13233
|
-
const seed = seedBySlug4(slug);
|
|
13234
|
-
const skillConfig = buildSearchSpaceSkillConfig(slug);
|
|
13235
|
-
return buildSkillDocMarkdown({
|
|
13236
|
-
body: seed.body,
|
|
13237
|
-
skillConfig
|
|
13238
|
-
});
|
|
13239
|
-
}
|
|
13240
|
-
|
|
13241
|
-
// packages/ai/skills/builtinSkillRegistry.ts
|
|
13242
|
-
var codePlannerContentBySlug = /* @__PURE__ */ (() => {
|
|
13243
|
-
const cache = /* @__PURE__ */ new Map();
|
|
13244
|
-
return (slug) => {
|
|
13245
|
-
if (cache.size === 0) {
|
|
13246
|
-
for (const page of buildCodePlannerSkillPageRecords("platform-skill-owner")) {
|
|
13247
|
-
cache.set(page.slug, page.content);
|
|
13248
|
-
}
|
|
13249
|
-
}
|
|
13250
|
-
return cache.get(slug) ?? "";
|
|
13251
|
-
};
|
|
13252
|
-
})();
|
|
13253
|
-
var OBJECT_SKILL_KINDS = Object.keys(
|
|
13254
|
-
BUILTIN_OBJECT_SKILL_IDS
|
|
13255
|
-
);
|
|
13256
|
-
var SOURCES = [
|
|
13257
|
-
{
|
|
13258
|
-
slugs: OBJECT_SKILL_KINDS,
|
|
13259
|
-
buildSkillId: (kind) => BUILTIN_OBJECT_SKILL_IDS[kind],
|
|
13260
|
-
buildPageKey: (userId, kind) => buildBuiltinObjectSkillDbKey(kind, userId),
|
|
13261
|
-
buildConfig: buildBuiltinObjectSkillConfig,
|
|
13262
|
-
buildContent: buildBuiltinObjectSkillPageContent
|
|
13263
|
-
},
|
|
13264
|
-
{
|
|
13265
|
-
slugs: CODING_SKILL_SLUGS,
|
|
13266
|
-
buildSkillId: buildCodingSkillId,
|
|
13267
|
-
buildPageKey: buildCodingSkillPageKey,
|
|
13268
|
-
buildConfig: buildCodingSkillConfig,
|
|
13269
|
-
buildContent: buildCodingSkillContentBySlug
|
|
13270
|
-
},
|
|
13271
|
-
{
|
|
13272
|
-
slugs: SPECIALIST_SKILL_SLUGS,
|
|
13273
|
-
buildSkillId: buildSpecialistSkillId,
|
|
13274
|
-
buildPageKey: buildSpecialistSkillPageKey,
|
|
13275
|
-
buildConfig: buildSpecialistSkillConfig,
|
|
13276
|
-
buildContent: buildSpecialistSkillContentBySlug
|
|
13277
|
-
},
|
|
13278
|
-
{
|
|
13279
|
-
slugs: CODE_PLANNER_SKILL_SLUGS,
|
|
13280
|
-
buildSkillId: buildCodePlannerSkillId,
|
|
13281
|
-
buildPageKey: buildCodePlannerSkillPageKey,
|
|
13282
|
-
buildConfig: buildCodePlannerSkillConfig,
|
|
13283
|
-
buildContent: codePlannerContentBySlug
|
|
13284
|
-
},
|
|
13285
|
-
{
|
|
13286
|
-
slugs: SEARCH_DIALOG_SKILL_SLUGS,
|
|
13287
|
-
buildSkillId: buildSearchDialogSkillId,
|
|
13288
|
-
buildPageKey: buildSearchDialogSkillPageKey,
|
|
13289
|
-
buildConfig: buildSearchDialogSkillConfig,
|
|
13290
|
-
buildContent: buildSearchDialogSkillContentBySlug
|
|
13291
|
-
},
|
|
13292
|
-
{
|
|
13293
|
-
slugs: SEARCH_SPACE_SKILL_SLUGS,
|
|
13294
|
-
buildSkillId: buildSearchSpaceSkillId,
|
|
13295
|
-
buildPageKey: buildSearchSpaceSkillPageKey,
|
|
13296
|
-
buildConfig: buildSearchSpaceSkillConfig,
|
|
13297
|
-
buildContent: buildSearchSpaceSkillContentBySlug
|
|
13298
|
-
}
|
|
13299
|
-
];
|
|
13300
|
-
var buildRegistry = () => {
|
|
13301
|
-
const entries = [];
|
|
13302
|
-
const seenSlugs = /* @__PURE__ */ new Set();
|
|
13303
|
-
for (const source of SOURCES) {
|
|
13304
|
-
for (const slug of source.slugs) {
|
|
13305
|
-
if (seenSlugs.has(slug)) {
|
|
13306
|
-
throw new Error(`Duplicate builtin skill slug across sources: ${slug}`);
|
|
13307
|
-
}
|
|
13308
|
-
seenSlugs.add(slug);
|
|
13309
|
-
const config = source.buildConfig(slug);
|
|
13310
|
-
entries.push({
|
|
13311
|
-
slug,
|
|
13312
|
-
skillId: source.buildSkillId(slug),
|
|
13313
|
-
title: config.name || slug,
|
|
13314
|
-
config,
|
|
13315
|
-
content: source.buildContent(slug),
|
|
13316
|
-
buildPageKey: (userId) => source.buildPageKey(userId, slug)
|
|
13317
|
-
});
|
|
13318
|
-
}
|
|
13319
|
-
}
|
|
13320
|
-
return entries;
|
|
13321
|
-
};
|
|
13322
|
-
var REGISTRY = buildRegistry();
|
|
13323
|
-
var BY_SLUG = new Map(REGISTRY.map((entry) => [entry.slug, entry]));
|
|
13324
|
-
var BY_SKILL_ID = new Map(REGISTRY.map((entry) => [entry.skillId, entry]));
|
|
13325
|
-
var BY_LOWER_NAME = new Map(
|
|
13326
|
-
REGISTRY.map((entry) => [entry.title.trim().toLowerCase(), entry])
|
|
13327
|
-
);
|
|
13328
|
-
var listBuiltinSkills = () => REGISTRY;
|
|
13329
|
-
var resolveBuiltinSkillEntry = (identifier) => {
|
|
13330
|
-
const raw = typeof identifier === "string" ? identifier.trim() : "";
|
|
13331
|
-
if (!raw) return null;
|
|
13332
|
-
const bySlug = BY_SLUG.get(raw);
|
|
13333
|
-
if (bySlug) return bySlug;
|
|
13334
|
-
const byId = BY_SKILL_ID.get(raw);
|
|
13335
|
-
if (byId) return byId;
|
|
13336
|
-
if (raw.startsWith("page-")) {
|
|
13337
|
-
for (const entry of REGISTRY) {
|
|
13338
|
-
if (raw.endsWith(`-${entry.skillId}`)) return entry;
|
|
13339
|
-
}
|
|
13340
|
-
}
|
|
13341
|
-
return null;
|
|
13342
|
-
};
|
|
13343
|
-
var resolveBuiltinSkillByName = (identifier) => {
|
|
13344
|
-
const raw = typeof identifier === "string" ? identifier.trim() : "";
|
|
13345
|
-
if (!raw) return null;
|
|
13346
|
-
return resolveBuiltinSkillEntry(raw) ?? BY_LOWER_NAME.get(raw.toLowerCase()) ?? null;
|
|
13347
|
-
};
|
|
13348
|
-
var resolveBuiltinSkillPage = (identifier) => {
|
|
13349
|
-
const entry = resolveBuiltinSkillEntry(identifier);
|
|
13350
|
-
if (!entry) return null;
|
|
13351
|
-
const raw = typeof identifier === "string" ? identifier.trim() : entry.slug;
|
|
13352
|
-
return {
|
|
13353
|
-
dbKey: raw || entry.slug,
|
|
13354
|
-
title: entry.title,
|
|
13355
|
-
content: entry.content,
|
|
13356
|
-
meta: { kind: "skill", skillConfig: entry.config },
|
|
13357
|
-
...entry.config.toolNames?.length ? { tools: [...entry.config.toolNames] } : {}
|
|
13358
|
-
};
|
|
13359
|
-
};
|
|
13360
|
-
var CAPABILITIES = CAPABILITY_PACKS.map(
|
|
13361
|
-
(pack) => ({
|
|
13362
|
-
kind: "capability",
|
|
13363
|
-
slug: pack.id,
|
|
13364
|
-
title: pack.label,
|
|
13365
|
-
description: pack.description,
|
|
13366
|
-
toolNames: pack.tools,
|
|
13367
|
-
...pack.promptPatch ? { promptPatch: pack.promptPatch } : {},
|
|
13368
|
-
icon: pack.icon,
|
|
13369
|
-
defaultEnabled: pack.defaultEnabled
|
|
13370
|
-
})
|
|
13371
|
-
);
|
|
13372
|
-
var CAPABILITY_BY_SLUG = new Map(CAPABILITIES.map((c) => [c.slug, c]));
|
|
13373
|
-
var resolveBuiltinCapability = (slug) => {
|
|
13374
|
-
const raw = typeof slug === "string" ? slug.trim() : "";
|
|
13375
|
-
return raw ? CAPABILITY_BY_SLUG.get(raw) ?? null : null;
|
|
13376
|
-
};
|
|
13377
|
-
|
|
13378
|
-
// packages/ai/tools/agentSkillConfig.ts
|
|
13379
|
-
var MODES = [
|
|
13380
|
-
"required",
|
|
13381
|
-
"recommended",
|
|
13382
|
-
"disabled"
|
|
13383
|
-
];
|
|
13384
|
-
var asMode = (value) => typeof value === "string" && MODES.includes(value) ? value : null;
|
|
13385
|
-
var resolveAgentSkillConfig = (source) => {
|
|
13386
|
-
const out = {};
|
|
13387
|
-
const skills = source?.skills;
|
|
13388
|
-
if (skills && typeof skills === "object" && !Array.isArray(skills)) {
|
|
13389
|
-
for (const [rawSlug, rawMode] of Object.entries(skills)) {
|
|
13390
|
-
const slug = typeof rawSlug === "string" ? rawSlug.trim() : "";
|
|
13391
|
-
const mode = asMode(rawMode);
|
|
13392
|
-
if (slug && mode) out[slug] = mode;
|
|
13393
|
-
}
|
|
13394
|
-
return out;
|
|
13395
|
-
}
|
|
13396
|
-
for (const slug of asTrimmedNonEmptyStringArray(source?.enabledPacks) ?? []) {
|
|
13397
|
-
out[slug] = "required";
|
|
13398
|
-
}
|
|
13399
|
-
return out;
|
|
13400
|
-
};
|
|
13401
|
-
var resolveAgentRequiredPackIds = (source) => {
|
|
13402
|
-
const config = resolveAgentSkillConfig(source);
|
|
13403
|
-
return Object.keys(config).filter((slug) => config[slug] === "required");
|
|
13404
|
-
};
|
|
13405
|
-
var resolveAgentRecommendedSkillNames = (source, lookup) => {
|
|
13406
|
-
const config = resolveAgentSkillConfig(source);
|
|
13407
|
-
const resolve = lookup ?? defaultSkillTitleLookup;
|
|
13408
|
-
const out = [];
|
|
13409
|
-
for (const slug of Object.keys(config)) {
|
|
13410
|
-
if (config[slug] !== "recommended") continue;
|
|
13411
|
-
const title = resolve(slug)?.title;
|
|
13412
|
-
out.push(title || slug);
|
|
13413
|
-
}
|
|
13414
|
-
return out;
|
|
13415
|
-
};
|
|
13416
|
-
var defaultSkillTitleLookup = (slug) => {
|
|
13417
|
-
const cap = resolveBuiltinCapability(slug);
|
|
13418
|
-
if (cap) return { title: cap.title };
|
|
13419
|
-
const skill = resolveBuiltinSkillEntry(slug);
|
|
13420
|
-
return skill ? { title: skill.title } : null;
|
|
13421
|
-
};
|
|
13422
|
-
var isAgentSkillDisabled = (source, slug) => resolveAgentSkillConfig(source)[slug] === "disabled";
|
|
13423
|
-
|
|
13424
12602
|
// packages/ai/tools/loadSkillTool.ts
|
|
13425
12603
|
var loadSkillFunctionSchema = {
|
|
13426
12604
|
name: "loadSkill",
|
|
@@ -14013,39 +13191,6 @@ async function importDataFunc(args, thunkApi) {
|
|
|
14013
13191
|
}
|
|
14014
13192
|
}
|
|
14015
13193
|
|
|
14016
|
-
// packages/render/table/utils/tableSerialization.ts
|
|
14017
|
-
var fetchAndSerializeTable = async (tableMeta, db, options = {}) => {
|
|
14018
|
-
const tenantId = tableMeta.tenantId;
|
|
14019
|
-
const tableId = tableMeta.tableId;
|
|
14020
|
-
const results = await fetchAndCacheTableRows({
|
|
14021
|
-
db,
|
|
14022
|
-
tenantId,
|
|
14023
|
-
tableId,
|
|
14024
|
-
token: options.token,
|
|
14025
|
-
remoteServers: options.remoteServers ?? []
|
|
14026
|
-
});
|
|
14027
|
-
const columns = tableMeta.columns || [];
|
|
14028
|
-
const headerRow = columns.map((c) => c.label || c.name);
|
|
14029
|
-
const separatorRow = columns.map(() => "---");
|
|
14030
|
-
let tableMd = "";
|
|
14031
|
-
if (columns.length > 0) {
|
|
14032
|
-
tableMd = `| ${headerRow.join(" | ")} |
|
|
14033
|
-
| ${separatorRow.join(" | ")} |
|
|
14034
|
-
`;
|
|
14035
|
-
results.forEach((row) => {
|
|
14036
|
-
const rowData = columns.map((col) => {
|
|
14037
|
-
const val = row[col.name];
|
|
14038
|
-
return val === void 0 || val === null ? "" : String(val).replace(/\|/g, "\\|");
|
|
14039
|
-
});
|
|
14040
|
-
tableMd += `| ${rowData.join(" | ")} |
|
|
14041
|
-
`;
|
|
14042
|
-
});
|
|
14043
|
-
} else {
|
|
14044
|
-
tableMd = "(No columns defined for this table)";
|
|
14045
|
-
}
|
|
14046
|
-
return { rows: results, markdown: tableMd };
|
|
14047
|
-
};
|
|
14048
|
-
|
|
14049
13194
|
// packages/ai/tools/readFileTool.ts
|
|
14050
13195
|
var readFileFunctionSchema = {
|
|
14051
13196
|
name: "readFile",
|
|
@@ -14773,7 +13918,7 @@ async function deleteDialogsFunc(args, thunkApi) {
|
|
|
14773
13918
|
const deletedDialogIds = [];
|
|
14774
13919
|
const deletedDialogKeys = [];
|
|
14775
13920
|
const failures = [];
|
|
14776
|
-
const { deleteDialog } = await import("./dialogSlice-
|
|
13921
|
+
const { deleteDialog } = await import("./dialogSlice-CFDECXEU.js");
|
|
14777
13922
|
for (const target of targets) {
|
|
14778
13923
|
try {
|
|
14779
13924
|
await thunkApi.dispatch(deleteDialog(target.dbKey)).unwrap();
|
|
@@ -14921,7 +14066,7 @@ async function readAgentFunc(args, thunkApi) {
|
|
|
14921
14066
|
const rawAgent = asTrimmedString(args?.agent) || asTrimmedString(args?.agentKey) || asTrimmedString(args?.id);
|
|
14922
14067
|
if (!rawAgent) throw new Error("readAgent requires agent.");
|
|
14923
14068
|
const raw = rawAgent.startsWith("http://") || rawAgent.startsWith("https://") ? new URL(rawAgent).pathname.split("/").filter(Boolean).at(-1) ?? rawAgent : rawAgent;
|
|
14924
|
-
const candidates =
|
|
14069
|
+
const candidates = buildAgentRuntimeAgentLookupKeys({ agentRef: raw, userId });
|
|
14925
14070
|
for (const candidate of candidates) {
|
|
14926
14071
|
const record = await readBestRecord(thunkApi, candidate, true);
|
|
14927
14072
|
if (record) {
|
|
@@ -15042,7 +14187,7 @@ var readSkillDocFunctionSchema = {
|
|
|
15042
14187
|
}
|
|
15043
14188
|
};
|
|
15044
14189
|
async function readSkillDocFunc(args, thunkApi) {
|
|
15045
|
-
const { buildReadDocResult } = await import("./readDocTool-
|
|
14190
|
+
const { buildReadDocResult } = await import("./readDocTool-EYDMVRBL.js");
|
|
15046
14191
|
const id = args?.id ?? args?.doc ?? args?.docKey ?? args?.pageKey;
|
|
15047
14192
|
if (typeof id !== "string" || !id.trim()) {
|
|
15048
14193
|
throw new Error("readSkillDoc requires id or doc.");
|
|
@@ -19717,7 +18862,7 @@ var cloudflareCrawlStatusFunctionSchema = {
|
|
|
19717
18862
|
async function cloudflareCrawlStatusFunc(args, thunkApi) {
|
|
19718
18863
|
const { jobId, limit, status, cursor } = args;
|
|
19719
18864
|
if (!jobId) throw new Error("\u5FC5\u987B\u63D0\u4F9B jobId");
|
|
19720
|
-
const { getToolRequestContext: getToolRequestContext2 } = await import("./toolApiClient-
|
|
18865
|
+
const { getToolRequestContext: getToolRequestContext2 } = await import("./toolApiClient-ARGFDJAG.js");
|
|
19721
18866
|
const { baseUrl, token } = getToolRequestContext2(thunkApi);
|
|
19722
18867
|
const params = new URLSearchParams();
|
|
19723
18868
|
if (limit !== void 0) params.set("limit", String(limit));
|
|
@@ -20492,7 +19637,7 @@ var selectUserIdFromState = (state) => typeof state?.auth?.currentUser?.userId =
|
|
|
20492
19637
|
var selectCurrentServerFromState = (state) => typeof state?.settings?.currentServer === "string" ? state.settings.currentServer : null;
|
|
20493
19638
|
async function addImageContentToSpace(input) {
|
|
20494
19639
|
const injectedAddContentAction = input.thunkApi?.extra?.addContentAction;
|
|
20495
|
-
const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-
|
|
19640
|
+
const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-Z5S5ZQ7I.js")).addContentAction;
|
|
20496
19641
|
await addContentAction2(
|
|
20497
19642
|
{
|
|
20498
19643
|
spaceId: input.spaceId,
|
|
@@ -24065,162 +23210,6 @@ ${resultStr}
|
|
|
24065
23210
|
};
|
|
24066
23211
|
}
|
|
24067
23212
|
|
|
24068
|
-
// packages/ai/tools/toolRunStore.ts
|
|
24069
|
-
var import_react = __toESM(require_react());
|
|
24070
|
-
var createToolRunId = () => `toolrun_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`;
|
|
24071
|
-
var runsById = /* @__PURE__ */ new Map();
|
|
24072
|
-
var listeners = /* @__PURE__ */ new Set();
|
|
24073
|
-
var version = 0;
|
|
24074
|
-
var notify = () => {
|
|
24075
|
-
version += 1;
|
|
24076
|
-
for (const listener of listeners) {
|
|
24077
|
-
try {
|
|
24078
|
-
listener();
|
|
24079
|
-
} catch {
|
|
24080
|
-
}
|
|
24081
|
-
}
|
|
24082
|
-
};
|
|
24083
|
-
function toolRunStarted(payload) {
|
|
24084
|
-
const {
|
|
24085
|
-
id,
|
|
24086
|
-
messageId,
|
|
24087
|
-
toolName,
|
|
24088
|
-
behavior,
|
|
24089
|
-
inputSummary,
|
|
24090
|
-
startedAt,
|
|
24091
|
-
interaction,
|
|
24092
|
-
input
|
|
24093
|
-
} = payload;
|
|
24094
|
-
runsById.set(id, {
|
|
24095
|
-
id,
|
|
24096
|
-
messageId,
|
|
24097
|
-
toolName,
|
|
24098
|
-
behavior,
|
|
24099
|
-
inputSummary,
|
|
24100
|
-
status: "running",
|
|
24101
|
-
startedAt: startedAt ?? Date.now(),
|
|
24102
|
-
interaction,
|
|
24103
|
-
input,
|
|
24104
|
-
error: void 0,
|
|
24105
|
-
finishedAt: void 0,
|
|
24106
|
-
outputSummary: void 0,
|
|
24107
|
-
steps: void 0
|
|
24108
|
-
});
|
|
24109
|
-
notify();
|
|
24110
|
-
}
|
|
24111
|
-
function toolRunSetPending(payload) {
|
|
24112
|
-
const { id } = payload;
|
|
24113
|
-
const run = runsById.get(id);
|
|
24114
|
-
if (run) {
|
|
24115
|
-
run.status = "pending";
|
|
24116
|
-
notify();
|
|
24117
|
-
}
|
|
24118
|
-
}
|
|
24119
|
-
function toolRunSucceeded(payload) {
|
|
24120
|
-
const { id, outputSummary, steps, finishedAt } = payload;
|
|
24121
|
-
const run = runsById.get(id);
|
|
24122
|
-
if (run) {
|
|
24123
|
-
run.status = "succeeded";
|
|
24124
|
-
run.outputSummary = outputSummary;
|
|
24125
|
-
if (steps !== void 0) {
|
|
24126
|
-
run.steps = steps;
|
|
24127
|
-
}
|
|
24128
|
-
run.finishedAt = finishedAt ?? Date.now();
|
|
24129
|
-
notify();
|
|
24130
|
-
}
|
|
24131
|
-
}
|
|
24132
|
-
function toolRunUpdated(payload) {
|
|
24133
|
-
const { id, outputSummary, steps } = payload;
|
|
24134
|
-
const run = runsById.get(id);
|
|
24135
|
-
if (run) {
|
|
24136
|
-
if (outputSummary !== void 0) {
|
|
24137
|
-
run.outputSummary = outputSummary;
|
|
24138
|
-
}
|
|
24139
|
-
if (steps !== void 0) {
|
|
24140
|
-
run.steps = steps;
|
|
24141
|
-
}
|
|
24142
|
-
notify();
|
|
24143
|
-
}
|
|
24144
|
-
}
|
|
24145
|
-
function toolRunFailed(payload) {
|
|
24146
|
-
const { id, error, outputSummary, steps, finishedAt } = payload;
|
|
24147
|
-
const run = runsById.get(id);
|
|
24148
|
-
if (run) {
|
|
24149
|
-
run.status = "failed";
|
|
24150
|
-
run.error = error;
|
|
24151
|
-
if (outputSummary !== void 0) {
|
|
24152
|
-
run.outputSummary = outputSummary;
|
|
24153
|
-
}
|
|
24154
|
-
if (steps !== void 0) {
|
|
24155
|
-
run.steps = steps;
|
|
24156
|
-
}
|
|
24157
|
-
run.finishedAt = finishedAt ?? Date.now();
|
|
24158
|
-
notify();
|
|
24159
|
-
}
|
|
24160
|
-
}
|
|
24161
|
-
function getAllToolRuns() {
|
|
24162
|
-
return Array.from(runsById.values()).sort((a, b) => a.startedAt - b.startedAt);
|
|
24163
|
-
}
|
|
24164
|
-
function getToolRunById(id) {
|
|
24165
|
-
return runsById.get(id);
|
|
24166
|
-
}
|
|
24167
|
-
var executeToolRun = createAsyncThunk(
|
|
24168
|
-
"toolRun/executeToolRun",
|
|
24169
|
-
async ({ id, inputOverride }, thunkApi) => {
|
|
24170
|
-
const run = getToolRunById(id);
|
|
24171
|
-
if (!run) {
|
|
24172
|
-
throw new Error(`ToolRun not found: ${id}`);
|
|
24173
|
-
}
|
|
24174
|
-
const executionInput = inputOverride ?? run.input;
|
|
24175
|
-
if (!executionInput) {
|
|
24176
|
-
throw new Error(`ToolRun ${id} has no input to execute with.`);
|
|
24177
|
-
}
|
|
24178
|
-
const { findToolExecutor: findToolExecutor2 } = await import("./tools-A6MUIA3Q.js");
|
|
24179
|
-
const { executor } = findToolExecutor2(run.toolName);
|
|
24180
|
-
toolRunStarted({
|
|
24181
|
-
id: run.id,
|
|
24182
|
-
messageId: run.messageId,
|
|
24183
|
-
toolName: run.toolName,
|
|
24184
|
-
behavior: run.behavior,
|
|
24185
|
-
inputSummary: run.inputSummary,
|
|
24186
|
-
startedAt: Date.now(),
|
|
24187
|
-
interaction: run.interaction,
|
|
24188
|
-
input: executionInput
|
|
24189
|
-
});
|
|
24190
|
-
try {
|
|
24191
|
-
const result = await executor(executionInput, thunkApi, {
|
|
24192
|
-
parentMessageId: run.messageId
|
|
24193
|
-
});
|
|
24194
|
-
toolRunSucceeded({
|
|
24195
|
-
id: run.id,
|
|
24196
|
-
outputSummary: result?.displayData || ""
|
|
24197
|
-
});
|
|
24198
|
-
if (run.toolName === "deleteSpaces") {
|
|
24199
|
-
const latestState = thunkApi.getState();
|
|
24200
|
-
const userId = latestState.auth?.currentUser?.userId;
|
|
24201
|
-
if (userId) {
|
|
24202
|
-
const { fetchUserSpaceMemberships } = await import("./spaceSlice-RC2APBOD.js");
|
|
24203
|
-
await thunkApi.dispatch(fetchUserSpaceMemberships(userId));
|
|
24204
|
-
}
|
|
24205
|
-
}
|
|
24206
|
-
return {
|
|
24207
|
-
id: run.id,
|
|
24208
|
-
rawData: result?.rawData,
|
|
24209
|
-
displayData: result?.displayData
|
|
24210
|
-
};
|
|
24211
|
-
} catch (e) {
|
|
24212
|
-
const msg = toErrorMessage(e);
|
|
24213
|
-
const structured = getToolResultErrorData(e);
|
|
24214
|
-
toolRunFailed({
|
|
24215
|
-
id: run.id,
|
|
24216
|
-
error: msg,
|
|
24217
|
-
outputSummary: asOptionalTrimmedString(structured?.displayData)
|
|
24218
|
-
});
|
|
24219
|
-
throw e;
|
|
24220
|
-
}
|
|
24221
|
-
}
|
|
24222
|
-
);
|
|
24223
|
-
|
|
24224
23213
|
// packages/app/actions/syncAppRecord.ts
|
|
24225
23214
|
var syncAppRecord = (appKey, appRecord, options = {}) => async (_dispatch, getState, extra) => {
|
|
24226
23215
|
if (!appKey || !appRecord) return;
|
|
@@ -26363,14 +25352,6 @@ async function searchAllSpacesFunc(args, thunkApi) {
|
|
|
26363
25352
|
};
|
|
26364
25353
|
}
|
|
26365
25354
|
|
|
26366
|
-
// packages/core/clipMultilineText.ts
|
|
26367
|
-
function clipMultilineText(value, max) {
|
|
26368
|
-
const trimmed = value.trim();
|
|
26369
|
-
if (trimmed.length <= max) return trimmed;
|
|
26370
|
-
return `${trimmed.slice(0, max)}
|
|
26371
|
-
...[truncated ${trimmed.length - max} chars]`;
|
|
26372
|
-
}
|
|
26373
|
-
|
|
26374
25355
|
// packages/ai/tools/dialogMessageSearch.ts
|
|
26375
25356
|
var normalizeDialogSearchText = (value) => String(value ?? "").trim();
|
|
26376
25357
|
var clampDialogSearchNumber = (value, fallback, min, max) => {
|
|
@@ -26682,7 +25663,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
26682
25663
|
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
26683
25664
|
};
|
|
26684
25665
|
await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
|
|
26685
|
-
const { getDocState, applyExternalDocUpdate } = await import("./docStore-
|
|
25666
|
+
const { getDocState, applyExternalDocUpdate } = await import("./docStore-MZZWJM4F.js");
|
|
26686
25667
|
if (getDocState().pageKey === id) {
|
|
26687
25668
|
applyExternalDocUpdate({
|
|
26688
25669
|
slateData: finalSlateData,
|
|
@@ -26707,7 +25688,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
26707
25688
|
// packages/ai/tools/updateUserPreferenceProfileTool.ts
|
|
26708
25689
|
async function dispatchSetSettings(thunkApi, changes) {
|
|
26709
25690
|
const injectedSetSettings = thunkApi?.extra?.setSettings;
|
|
26710
|
-
const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-
|
|
25691
|
+
const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-JKKV2T7O.js")).setSettings;
|
|
26711
25692
|
await thunkApi.dispatch(setSettings(changes)).unwrap();
|
|
26712
25693
|
}
|
|
26713
25694
|
var updateUserPreferenceProfileFunctionSchema = {
|
|
@@ -28955,29 +27936,17 @@ var findToolExecutor = (rawName) => {
|
|
|
28955
27936
|
};
|
|
28956
27937
|
|
|
28957
27938
|
export {
|
|
27939
|
+
shouldBlockForGptPro,
|
|
27940
|
+
i18n_default,
|
|
27941
|
+
formatAgentListCard,
|
|
28958
27942
|
readXPostFunctionSchema,
|
|
28959
27943
|
readXPostFunc,
|
|
28960
27944
|
readXhsProfileFunctionSchema,
|
|
28961
27945
|
readXhsProfileFunc,
|
|
28962
|
-
|
|
28963
|
-
resolveBuiltinSkillPage,
|
|
28964
|
-
resolveAgentRequiredPackIds,
|
|
28965
|
-
resolveAgentRecommendedSkillNames,
|
|
28966
|
-
shouldBlockForGptPro,
|
|
28967
|
-
i18n_default,
|
|
28968
|
-
clipMultilineText,
|
|
28969
|
-
fetchAndSerializeTable,
|
|
28970
|
-
getToolResultErrorData,
|
|
28971
|
-
createToolRunId,
|
|
28972
|
-
toolRunStarted,
|
|
28973
|
-
toolRunSetPending,
|
|
28974
|
-
toolRunSucceeded,
|
|
28975
|
-
toolRunFailed,
|
|
28976
|
-
getAllToolRuns,
|
|
27946
|
+
rememberMemoryFunctionSchema,
|
|
28977
27947
|
waitForAbortableDelay,
|
|
28978
27948
|
createSSEParser,
|
|
28979
|
-
|
|
28980
|
-
rememberMemoryFunctionSchema,
|
|
27949
|
+
setTodoListFunc,
|
|
28981
27950
|
TOOL_GROUP_META,
|
|
28982
27951
|
toolQueryFunctionSchema,
|
|
28983
27952
|
toolQueryFunc,
|