nolo-cli 0.16.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{_executeModel-AVCA2NAV.js → _executeModel-X5PCIZN6.js} +50 -44
- package/{action-F5JACQBG.js → action-LT7BRFLK.js} +10 -9
- package/{addContentAction-AQXEYRBE.js → addContentAction-PL3KKBDH.js} +9 -8
- package/{addDialogAgentAction-EJHHJZWW.js → addDialogAgentAction-FCMSKYAF.js} +8 -7
- package/{agentDeleteCommand-QW5PUMDQ.js → agentDeleteCommand-2BZDQV36.js} +32 -29
- package/{agentEmailCommands-4ORVLGVQ.js → agentEmailCommands-2QJDGRMB.js} +62 -56
- package/{agentListCommands-YWBYRTYC.js → agentListCommands-6VEPTKBI.js} +31 -28
- package/{agentMachineCommands-JSQW4FOA.js → agentMachineCommands-NVVHNWYI.js} +30 -27
- package/{agentPullCommand-6HWUT3SW.js → agentPullCommand-ZZGU5KOY.js} +4 -4
- package/{agentRecordCommands-AASIWOBT.js → agentRecordCommands-4GGRDMD4.js} +57 -51
- package/{agentRunCommand-TB5BHXUH.js → agentRunCommand-XOLQNKBZ.js} +63 -54
- package/{agentRunControl-6ADXVYMR.js → agentRunControl-Y5AFH5PQ.js} +24 -1
- package/{agentRuntimeLocal-QNPNJRVH.js → agentRuntimeLocal-7WYWCGL4.js} +25 -22
- package/{agentSlice-RUNXC62Y.js → agentSlice-EAXPGEYV.js} +9 -8
- package/appDeleteCommands-77KR2RJ4.js +127 -0
- package/appDeployCommands-K7CAHGBI.js +166 -0
- package/appDeployStatusCommands-4OEKLTBT.js +147 -0
- package/appGetCommands-VM2WDLAZ.js +122 -0
- package/appListCommands-GX6BBA6U.js +125 -0
- package/{authCommand-YFTR3347.js → authCommand-DY6UUL6O.js} +16 -9
- package/{authCommands-YXGOXNBZ.js → authCommands-XTBV7OFZ.js} +6 -5
- package/{chunk-DPAB4FQ7.js → chunk-23FZYPLC.js} +1608 -212
- package/{chunk-LPEUV5RE.js → chunk-34WPV75U.js} +23 -2
- package/{chunk-XPC5C7BK.js → chunk-3ND52WIL.js} +2 -2
- package/{chunk-SOTZ6RDN.js → chunk-3Q7WHGCB.js} +1 -1
- package/{chunk-3OIRVWXA.js → chunk-3ZX7PERL.js} +10 -1
- package/{chunk-KKY4B2Q2.js → chunk-4PWB7JRR.js} +4 -1
- package/{chunk-6N4KODMN.js → chunk-4T5F7YZQ.js} +1 -1
- package/chunk-7BUYEZ6U.js +671 -0
- package/{chunk-AS3ZQ3O2.js → chunk-7OBMZCRD.js} +1 -1
- package/{chunk-IGXREZW2.js → chunk-AHCY2S2I.js} +1 -1
- package/{chunk-QLUFR47U.js → chunk-AL2V7U3E.js} +1 -1
- package/{chunk-MTU75CZ2.js → chunk-B5TOXZAK.js} +1 -1
- package/{chunk-AUURUT6L.js → chunk-BV4VEE3W.js} +264 -424
- package/{chunk-FRV6A633.js → chunk-CZ6NYQTV.js} +13 -4
- package/{chunk-PCTUYVUM.js → chunk-DFCFMCY6.js} +10 -3
- package/{chunk-JTMNCCWF.js → chunk-DKZFOK24.js} +16 -87
- package/chunk-DL6EPNIK.js +50 -0
- package/{chunk-ZQBL7LIC.js → chunk-EDV7EBOI.js} +317 -216
- package/{chunk-IWLUTMYX.js → chunk-ELT65PZW.js} +2 -2
- package/chunk-FQZZLA3C.js +223 -0
- package/{chunk-55NSNCFM.js → chunk-FXUSIQC2.js} +1 -1
- package/{chunk-MR6ISAGB.js → chunk-G5U6LDLG.js} +6 -6
- package/chunk-GFUIQ4RY.js +136 -0
- package/{chunk-NVEWUJVX.js → chunk-HEGV7BH3.js} +1 -1
- package/{chunk-BEBNFWDU.js → chunk-HWW2M4SN.js} +3 -3
- package/{chunk-4L2OJPCU.js → chunk-I2ZJKTG5.js} +58 -8
- package/{chunk-Z5JQNBNY.js → chunk-IYEXFJPC.js} +34 -15
- package/{setDialogExtraReferencesAction-LR6MSIXO.js → chunk-JLA4FXYC.js} +2 -17
- package/chunk-KFEVY3ST.js +255 -0
- package/{chunk-4FX6NVDW.js → chunk-L4F3I4SR.js} +3 -136
- package/{chunk-XBS2WYJ2.js → chunk-LLWKHDG4.js} +1 -1
- package/{chunk-3WGLLTK4.js → chunk-LSFAWXKC.js} +100 -3
- package/{chunk-6EVITP2G.js → chunk-MHSGJW4Z.js} +2 -251
- package/{chunk-O6W2O2DA.js → chunk-MKA6QE5E.js} +6 -2
- package/{chunk-DGEYDWEZ.js → chunk-MPVYDS7I.js} +3 -3
- package/{chunk-KFHN5NGJ.js → chunk-MVQ4TBSD.js} +1 -1
- package/{chunk-AVVZUXXC.js → chunk-N54HIJVJ.js} +34 -13
- package/{chunk-EHLHSX7R.js → chunk-OK6YSWLH.js} +9 -2
- package/{chunk-33BJUVK4.js → chunk-PIZYJVHQ.js} +5 -5
- package/{chunk-RLCXU7A5.js → chunk-PJSV3IZ5.js} +1 -1
- package/{chunk-7UKFVQ5W.js → chunk-R35XMF6F.js} +126 -41
- package/{chunk-OOSFSFMA.js → chunk-R5V5G73M.js} +2 -0
- package/{chunk-S2LXHNHG.js → chunk-REA4JLBH.js} +6 -6
- package/chunk-RQN4SEKL.js +107 -0
- package/{chunk-EABWT43X.js → chunk-RVOUXDFU.js} +5 -5
- package/{chunk-NSCHQQPU.js → chunk-SCTYAHYK.js} +470 -325
- package/{chunk-JTINRTBT.js → chunk-SKDNBYZK.js} +2 -2
- package/{chunk-M43KDE25.js → chunk-SWDPIPOY.js} +2 -8
- package/{chunk-KMQPSTMJ.js → chunk-TRT4I4UD.js} +2 -2
- package/{chunk-66X4VSRC.js → chunk-UAIVG4J6.js} +42 -2
- package/{chunk-3663CXZN.js → chunk-UBHAWFQ6.js} +143 -31
- package/{chunk-YJKXGHJ6.js → chunk-UGUW3FHG.js} +4 -4
- package/{chunk-P3RIAYGG.js → chunk-V3ED5AWK.js} +3 -3
- package/chunk-V5R4NZP2.js +78 -0
- package/{chunk-4IJYA27C.js → chunk-VDXCXCXH.js} +1 -1
- package/{chunk-MYMMNKYL.js → chunk-VNAEBGDK.js} +156 -6
- package/{chunk-FY233ZFU.js → chunk-VYHDJEQD.js} +110 -192
- package/{chunk-W4NVOSFF.js → chunk-WFHXMLHZ.js} +1 -1
- package/{chunk-H33743XH.js → chunk-WJRJDX2W.js} +1 -1
- package/chunk-X4Q4UZEY.js +26 -0
- package/{chunk-RPDGJO4D.js → chunk-XHG22OEX.js} +4 -4
- package/{chunk-DVRHHFEA.js → chunk-XMLRJUU5.js} +1 -1
- package/{chunk-3S2VOMIF.js → chunk-XRZJGPFI.js} +7 -7
- package/{chunk-GSINCD4P.js → chunk-YGW4G5W5.js} +25 -12
- package/chunk-ZZ2MH7LE.js +84 -0
- package/{cliExecutor-K3F7DMRO.js → cliExecutor-DNE7TCC4.js} +2 -2
- package/codingSkills-36KN5NQT.js +48 -0
- package/{createAgentAutomationAction-FNHPSKKO.js → createAgentAutomationAction-GNFF524X.js} +20 -19
- package/{createDialogAction-TZCVQ3NU.js → createDialogAction-RB55KCLO.js} +22 -21
- package/{createPageAction-EIGZ3BKT.js → createPageAction-Y7343GLU.js} +26 -25
- package/{db-HCJ5PRB5.js → db-W3O47YGF.js} +38 -12
- package/{dbSlice-7KQH6GOU.js → dbSlice-CGSRFJN3.js} +8 -7
- package/{deleteFile-WPWVZE4B.js → deleteFile-WDZ3VM7B.js} +3 -3
- package/{dialogCommands-FO77J5DQ.js → dialogCommands-IAZK6YHQ.js} +30 -27
- package/{dialogSlice-MM5U4KE2.js → dialogSlice-UQAXF23P.js} +20 -19
- package/{docCreateCommands-I3BS3AZI.js → docCreateCommands-I2EWZGCI.js} +33 -28
- package/{docDeleteCommands-Q2OPV52P.js → docDeleteCommands-IZ45UZKG.js} +32 -27
- package/{docReadCommands-YOOFACYZ.js → docReadCommands-R6Z4QJYU.js} +31 -26
- package/{docStore-NGYQ2JTR.js → docStore-5HOJ4D7D.js} +21 -20
- package/{docUpdateCommands-2B32ITHN.js → docUpdateCommands-2LRBKQPY.js} +32 -27
- package/{fetchMessages-KTNM7QAR.js → fetchMessages-BMGVZVSE.js} +4 -3
- package/{getPricing-P4XRJRZB.js → getPricing-G7DLAST6.js} +3 -3
- package/{handleSendMessageAction-JRZWWBKP.js → handleSendMessageAction-Q4HY35WX.js} +21 -20
- package/index.js +95 -64
- package/{localDialogRead-2VRI24F4.js → localDialogRead-4H3QJFLW.js} +2 -2
- package/{localRuntimeDb-LGDF6FQP.js → localRuntimeDb-THJZGAOJ.js} +1 -1
- package/{machineCommands-WRWF2ICZ.js → machineCommands-PKBPQKTY.js} +63 -57
- package/{machineWsRunDispatch-ZX7Q3TWZ.js → machineWsRunDispatch-UZAW4OXJ.js} +55 -49
- package/{models-WQ5N4OJM.js → models-DJFSJ7SW.js} +2 -2
- package/package.json +1 -1
- package/queryRunOverlay-O4LOMMPO.js +161 -0
- package/{read-CN3TNXIP.js → read-3FMPZPER.js} +3 -3
- package/{readDocTool-WF3675ED.js → readDocTool-VSYHKK3V.js} +1 -1
- package/{readlineWorkspace-ZTGRGW46.js → readlineWorkspace-Y2RDOFZG.js} +762 -218
- package/{removeDialogAgentAction-YDHBFEGI.js → removeDialogAgentAction-OAGA2G3U.js} +10 -9
- package/{runAgentClientLoop-JZCOP7LG.js → runAgentClientLoop-NBPIKJ6J.js} +44 -38
- package/runOverlayPresentation-ZO4VCWEU.js +11 -0
- package/{runtimeDoctorCommands-THIHX2SY.js → runtimeDoctorCommands-E2OUORHK.js} +6 -6
- package/setDialogExtraReferencesAction-JZEXA5SL.js +27 -0
- package/{setPrimaryDialogAgentAction-IIVDCY5C.js → setPrimaryDialogAgentAction-4ZUQQKDG.js} +26 -17
- package/{settingSlice-O23YDK2O.js → settingSlice-7MNKHZ6R.js} +9 -8
- package/{skillDiscovery-6M2BZUFN.js → skillDiscovery-KJWT7JBU.js} +3 -3
- package/{spaceCommands-VV4GTPQK.js → spaceCommands-DHCZ7J5I.js} +31 -28
- package/{spaceSlice-DRWWZJP7.js → spaceSlice-ZXLLG3CR.js} +20 -19
- package/{streamAgentChatTurn-Y6WGATQR.js → streamAgentChatTurn-L3YW6LSB.js} +98 -57
- package/{tableCommands-3P7MJ3PF.js → tableCommands-BEQAGE4I.js} +1 -1
- package/{tools-PUNBY3AH.js → tools-ECGXR5QF.js} +33 -28
- package/{tuiSummaryLlmCaller-F64WLSAF.js → tuiSummaryLlmCaller-OMSCNHXA.js} +6 -5
- package/types-ZSTJ7MPR.js +7 -0
- package/{updateDialogTitleAction-YSR4TCMB.js → updateDialogTitleAction-HQ2EUDFT.js} +23 -22
- package/{chunk-O4BU24WZ.js → chunk-6Y7A3OQQ.js} +3 -3
- package/{chunk-CMKUBIGW.js → chunk-X7W4TNB4.js} +3 -3
- package/{localRuntimeAuthority-TEGCOWX4.js → localRuntimeAuthority-4IXJCHZ7.js} +3 -3
|
@@ -8,45 +8,39 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
sortSafeAgentSummaries,
|
|
10
10
|
toSafeAgentSummary
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-3ZX7PERL.js";
|
|
12
12
|
import {
|
|
13
13
|
getUserDataItemTimestamp,
|
|
14
14
|
mergeAndDedupUserData
|
|
15
15
|
} from "./chunk-KQHGZWSV.js";
|
|
16
|
-
import {
|
|
17
|
-
createDocState
|
|
18
|
-
} from "./chunk-MR6ISAGB.js";
|
|
19
16
|
import {
|
|
20
17
|
readDocFunc,
|
|
21
18
|
readDocFunctionSchema,
|
|
22
19
|
readPageFunc,
|
|
23
20
|
readPageFunctionSchema,
|
|
24
21
|
slateToSimplifiedMarkdown
|
|
25
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-4T5F7YZQ.js";
|
|
26
23
|
import {
|
|
27
24
|
markdownToSlate
|
|
28
25
|
} from "./chunk-3LY4F7SV.js";
|
|
26
|
+
import {
|
|
27
|
+
isSkillSummaryMarker
|
|
28
|
+
} from "./chunk-VF4K2QE6.js";
|
|
29
|
+
import {
|
|
30
|
+
createDocState
|
|
31
|
+
} from "./chunk-G5U6LDLG.js";
|
|
32
|
+
import {
|
|
33
|
+
setDialogExtraReferencesAction
|
|
34
|
+
} from "./chunk-JLA4FXYC.js";
|
|
29
35
|
import {
|
|
30
36
|
extractMentionsFromSlate
|
|
31
37
|
} from "./chunk-VP4WJWKW.js";
|
|
32
38
|
import {
|
|
33
39
|
slateToRenderMarkdown
|
|
34
40
|
} from "./chunk-63W5N6P3.js";
|
|
35
|
-
import {
|
|
36
|
-
isSkillSummaryMarker
|
|
37
|
-
} from "./chunk-VF4K2QE6.js";
|
|
38
41
|
import {
|
|
39
42
|
createDialogAction
|
|
40
|
-
} from "./chunk-
|
|
41
|
-
import {
|
|
42
|
-
buildSkillDocMarkdown,
|
|
43
|
-
normalizeSkillBudgetTier,
|
|
44
|
-
normalizeSkillModalities,
|
|
45
|
-
normalizeStringArray,
|
|
46
|
-
parseExternalSkillMarkdown,
|
|
47
|
-
parseSkillDocProtocol,
|
|
48
|
-
resolvePageSkillMetadata
|
|
49
|
-
} from "./chunk-VC6OZXO5.js";
|
|
43
|
+
} from "./chunk-IYEXFJPC.js";
|
|
50
44
|
import {
|
|
51
45
|
addCategory,
|
|
52
46
|
addContentToSpace,
|
|
@@ -63,6 +57,7 @@ import {
|
|
|
63
57
|
instance,
|
|
64
58
|
loadTableRows,
|
|
65
59
|
normalizeAppRouteId,
|
|
60
|
+
resolveDialogRuntimeAgentKey,
|
|
66
61
|
selectAllMemberSpaces,
|
|
67
62
|
selectAllMsgs,
|
|
68
63
|
selectCurrentDialogConfig,
|
|
@@ -76,19 +71,31 @@ import {
|
|
|
76
71
|
updateContentCategory,
|
|
77
72
|
updateContentTitle,
|
|
78
73
|
updateStep
|
|
79
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-SCTYAHYK.js";
|
|
80
75
|
import {
|
|
81
76
|
createAgent,
|
|
82
77
|
runLlm,
|
|
83
78
|
streamAgentChatTurn,
|
|
84
79
|
updateAgent
|
|
85
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-REA4JLBH.js";
|
|
81
|
+
import {
|
|
82
|
+
buildCodingSkillContentBySlug,
|
|
83
|
+
buildCodingSkillPageKey,
|
|
84
|
+
resolveCodingBuiltinSlug
|
|
85
|
+
} from "./chunk-7BUYEZ6U.js";
|
|
86
|
+
import {
|
|
87
|
+
buildSkillDocMarkdown,
|
|
88
|
+
normalizeSkillBudgetTier,
|
|
89
|
+
normalizeSkillModalities,
|
|
90
|
+
normalizeStringArray,
|
|
91
|
+
parseExternalSkillMarkdown,
|
|
92
|
+
parseSkillDocProtocol,
|
|
93
|
+
resolvePageSkillMetadata
|
|
94
|
+
} from "./chunk-VC6OZXO5.js";
|
|
86
95
|
import {
|
|
87
96
|
NOLO_WORKSPACE_TOOL_NAMES,
|
|
88
97
|
buildNoloSubjectRefQueryTarget,
|
|
89
98
|
buildNoloTableQueryRequest,
|
|
90
|
-
canonicalizeToolName,
|
|
91
|
-
canonicalizeToolNames,
|
|
92
99
|
clampNoloPositiveInteger,
|
|
93
100
|
filterNoloDialogSubjectRefEvidence,
|
|
94
101
|
getNoloComparableUpdatedAt,
|
|
@@ -98,13 +105,25 @@ import {
|
|
|
98
105
|
redactAgentRecordForWorkspaceTool,
|
|
99
106
|
resolveNoloDialogInput,
|
|
100
107
|
verifyNoloDialogSubjectRefQuery
|
|
101
|
-
} from "./chunk-
|
|
108
|
+
} from "./chunk-DKZFOK24.js";
|
|
102
109
|
import {
|
|
103
110
|
buildDatabaseFileContentUrl
|
|
104
|
-
} from "./chunk-
|
|
111
|
+
} from "./chunk-I2ZJKTG5.js";
|
|
105
112
|
import {
|
|
106
113
|
DEFAULT_MODEL
|
|
107
|
-
} from "./chunk-
|
|
114
|
+
} from "./chunk-UAIVG4J6.js";
|
|
115
|
+
import {
|
|
116
|
+
toErrorMessage
|
|
117
|
+
} from "./chunk-HNMXYYJR.js";
|
|
118
|
+
import {
|
|
119
|
+
addContentAction,
|
|
120
|
+
createSpaceKey,
|
|
121
|
+
normalizeSpaceId
|
|
122
|
+
} from "./chunk-ELT65PZW.js";
|
|
123
|
+
import {
|
|
124
|
+
canonicalizeToolName,
|
|
125
|
+
canonicalizeToolNames
|
|
126
|
+
} from "./chunk-ZZ2MH7LE.js";
|
|
108
127
|
import {
|
|
109
128
|
ToolApiError,
|
|
110
129
|
buildToolRequestHeaders,
|
|
@@ -126,11 +145,16 @@ import {
|
|
|
126
145
|
compactWhitespace
|
|
127
146
|
} from "./chunk-DWLEOOGR.js";
|
|
128
147
|
import {
|
|
129
|
-
|
|
130
|
-
|
|
148
|
+
TASK_PREVIEW_MAX,
|
|
149
|
+
formatListRunsCard,
|
|
150
|
+
formatStartRunCard,
|
|
151
|
+
formatStatusRunCard,
|
|
152
|
+
formatStopRunCard,
|
|
153
|
+
resolveRunLabel
|
|
154
|
+
} from "./chunk-FQZZLA3C.js";
|
|
131
155
|
import {
|
|
132
156
|
shareResourceAction
|
|
133
|
-
} from "./chunk-
|
|
157
|
+
} from "./chunk-UGUW3FHG.js";
|
|
134
158
|
import {
|
|
135
159
|
AGENT_UPDATE_FIELD_NAMES,
|
|
136
160
|
SYSTEM_AGENT_CAPABILITIES,
|
|
@@ -139,23 +163,19 @@ import {
|
|
|
139
163
|
selectAutoApproveSelfUpdateFields,
|
|
140
164
|
selectCurrentServer,
|
|
141
165
|
selectSyncServers
|
|
142
|
-
} from "./chunk-
|
|
166
|
+
} from "./chunk-RVOUXDFU.js";
|
|
143
167
|
import {
|
|
144
168
|
asRecordOrEmpty
|
|
145
169
|
} from "./chunk-KX6YBIHG.js";
|
|
146
|
-
import {
|
|
147
|
-
addContentAction,
|
|
148
|
-
createSpaceKey,
|
|
149
|
-
normalizeSpaceId
|
|
150
|
-
} from "./chunk-IWLUTMYX.js";
|
|
151
170
|
import {
|
|
152
171
|
patch,
|
|
153
172
|
read,
|
|
154
173
|
readAndWait,
|
|
155
174
|
readAndWaitAction,
|
|
175
|
+
selectById,
|
|
156
176
|
toTimestampMs,
|
|
157
177
|
write
|
|
158
|
-
} from "./chunk-
|
|
178
|
+
} from "./chunk-XRZJGPFI.js";
|
|
159
179
|
import {
|
|
160
180
|
SEPARATOR,
|
|
161
181
|
createAgentKey,
|
|
@@ -167,20 +187,20 @@ import {
|
|
|
167
187
|
rowKey,
|
|
168
188
|
toTrimmedString,
|
|
169
189
|
ulid
|
|
170
|
-
} from "./chunk-
|
|
190
|
+
} from "./chunk-6Y7A3OQQ.js";
|
|
191
|
+
import {
|
|
192
|
+
asOptionalFiniteNumber
|
|
193
|
+
} from "./chunk-WWC7I6TA.js";
|
|
171
194
|
import {
|
|
172
195
|
asNonEmptyStringArray,
|
|
173
196
|
asTrimmedNonEmptyStringArray
|
|
174
197
|
} from "./chunk-I42VC5KR.js";
|
|
175
|
-
import {
|
|
176
|
-
asOptionalFiniteNumber
|
|
177
|
-
} from "./chunk-WWC7I6TA.js";
|
|
178
198
|
import {
|
|
179
199
|
asTrimmedLowercaseString
|
|
180
200
|
} from "./chunk-QSJ3HFEF.js";
|
|
181
201
|
import {
|
|
182
202
|
readAction
|
|
183
|
-
} from "./chunk-
|
|
203
|
+
} from "./chunk-3ND52WIL.js";
|
|
184
204
|
import {
|
|
185
205
|
createAsyncThunk,
|
|
186
206
|
getRuntimeServerContext,
|
|
@@ -188,10 +208,10 @@ import {
|
|
|
188
208
|
selectIdentityToken,
|
|
189
209
|
selectIdentityUserId,
|
|
190
210
|
selectRuntimeSnapshot
|
|
191
|
-
} from "./chunk-
|
|
211
|
+
} from "./chunk-XMLRJUU5.js";
|
|
192
212
|
import {
|
|
193
213
|
isAbortError
|
|
194
|
-
} from "./chunk-
|
|
214
|
+
} from "./chunk-R5V5G73M.js";
|
|
195
215
|
import {
|
|
196
216
|
asTrimmedString
|
|
197
217
|
} from "./chunk-3EUW3WEO.js";
|
|
@@ -2101,6 +2121,7 @@ var chat_locale_default = {
|
|
|
2101
2121
|
copyContent: "Copy Content",
|
|
2102
2122
|
copyDiagnostics: "Copy diagnostics",
|
|
2103
2123
|
finishReasonLengthNotice: "Response was cut off at the model's output limit",
|
|
2124
|
+
retryProgress: "Auto-retrying {{attempt}}/{{maxAttempts}} \xB7 {{seconds}}s",
|
|
2104
2125
|
copyFailed: "Copy failed",
|
|
2105
2126
|
copySuccess: "Copied successfully",
|
|
2106
2127
|
createDialog: "Create Dialog",
|
|
@@ -2462,6 +2483,7 @@ var chat_locale_default = {
|
|
|
2462
2483
|
copyContent: "\u590D\u5236\u5185\u5BB9",
|
|
2463
2484
|
copyDiagnostics: "\u590D\u5236\u8BCA\u65AD\u4FE1\u606F",
|
|
2464
2485
|
finishReasonLengthNotice: "\u56DE\u7B54\u56E0\u8FBE\u5230\u6A21\u578B\u8F93\u51FA\u4E0A\u9650\u88AB\u622A\u65AD",
|
|
2486
|
+
retryProgress: "\u81EA\u52A8\u91CD\u8BD5 {{attempt}}/{{maxAttempts}} \xB7 {{seconds}}s",
|
|
2465
2487
|
copyFailed: "\u590D\u5236\u5931\u8D25",
|
|
2466
2488
|
copySuccess: "\u590D\u5236\u6210\u529F",
|
|
2467
2489
|
createDialog: "\u521B\u5EFA\u5BF9\u8BDD",
|
|
@@ -2818,6 +2840,7 @@ var chat_locale_default = {
|
|
|
2818
2840
|
copyContent: "\u8907\u88FD\u5167\u5BB9",
|
|
2819
2841
|
copyDiagnostics: "\u8907\u88FD\u8A3A\u65B7\u8CC7\u8A0A",
|
|
2820
2842
|
finishReasonLengthNotice: "\u56DE\u7B54\u56E0\u9054\u5230\u6A21\u578B\u8F38\u51FA\u4E0A\u9650\u88AB\u622A\u65B7",
|
|
2843
|
+
retryProgress: "\u81EA\u52D5\u91CD\u8A66 {{attempt}}/{{maxAttempts}} \xB7 {{seconds}}s",
|
|
2821
2844
|
copyFailed: "\u8907\u88FD\u5931\u6557",
|
|
2822
2845
|
copySuccess: "\u8907\u88FD\u6210\u529F",
|
|
2823
2846
|
createDialog: "\u5275\u5EFA\u5C0D\u8A71",
|
|
@@ -3102,6 +3125,7 @@ var chat_locale_default = {
|
|
|
3102
3125
|
copyContent: "\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30B3\u30D4\u30FC",
|
|
3103
3126
|
copyDiagnostics: "\u8A3A\u65AD\u60C5\u5831\u3092\u30B3\u30D4\u30FC",
|
|
3104
3127
|
finishReasonLengthNotice: "\u30E2\u30C7\u30EB\u306E\u51FA\u529B\u4E0A\u9650\u306B\u9054\u3057\u305F\u305F\u3081\u3001\u56DE\u7B54\u304C\u9014\u4E2D\u3067\u7D42\u4E86\u3057\u307E\u3057\u305F",
|
|
3128
|
+
retryProgress: "\u81EA\u52D5\u30EA\u30C8\u30E9\u30A4 {{attempt}}/{{maxAttempts}} \xB7 {{seconds}}s",
|
|
3105
3129
|
copyFailed: "\u30B3\u30D4\u30FC\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
3106
3130
|
copySuccess: "\u30B3\u30D4\u30FC\u306B\u6210\u529F\u3057\u307E\u3057\u305F",
|
|
3107
3131
|
createDialog: "\u5BFE\u8A71\u3092\u4F5C\u6210",
|
|
@@ -5577,6 +5601,9 @@ var interface_locale_default = {
|
|
|
5577
5601
|
windowsDesc: "One-click installer for Windows.",
|
|
5578
5602
|
linuxTitle: "Linux",
|
|
5579
5603
|
linuxDesc: "Native package for your environment.",
|
|
5604
|
+
linuxTarInstallHint: "Extract and run bin/launcher \u2014 no install needed.",
|
|
5605
|
+
linuxDebInstallHint: "sudo apt install ./nolo-desktop_amd64.deb",
|
|
5606
|
+
linuxRpmInstallHint: "sudo dnf install ./nolo-desktop_x86_64.rpm",
|
|
5580
5607
|
macosTitle: "macOS",
|
|
5581
5608
|
macosDesc: "Optimized for Apple Silicon.",
|
|
5582
5609
|
macosDmgInstaller: {
|
|
@@ -5613,7 +5640,6 @@ var interface_locale_default = {
|
|
|
5613
5640
|
pricingTitle: "Pricing Details",
|
|
5614
5641
|
pricingDesc: "View pricing rules",
|
|
5615
5642
|
guideTitle: "User Guide",
|
|
5616
|
-
guideDesc: "Quick start tips",
|
|
5617
5643
|
downloadClientTitle: "Download Client",
|
|
5618
5644
|
downloadClientDesc: "Install Nolo on desktop and mobile devices",
|
|
5619
5645
|
feedbackTitle: "Give Feedback",
|
|
@@ -6804,6 +6830,9 @@ var interface_locale_default = {
|
|
|
6804
6830
|
windowsDesc: "Windows \u4E00\u952E\u5B89\u88C5\u5305\u3002",
|
|
6805
6831
|
linuxTitle: "Linux",
|
|
6806
6832
|
linuxDesc: "\u9002\u914D\u4F60\u672C\u5730\u73AF\u5883\u7684\u539F\u751F\u5305\u3002",
|
|
6833
|
+
linuxTarInstallHint: "\u89E3\u538B\u540E\u8FD0\u884C bin/launcher\uFF0C\u65E0\u9700\u5B89\u88C5\u3002",
|
|
6834
|
+
linuxDebInstallHint: "sudo apt install ./nolo-desktop_amd64.deb",
|
|
6835
|
+
linuxRpmInstallHint: "sudo dnf install ./nolo-desktop_x86_64.rpm",
|
|
6807
6836
|
macosTitle: "macOS",
|
|
6808
6837
|
macosDesc: "\u4E3A Apple Silicon \u4F18\u5316\u3002",
|
|
6809
6838
|
macosDmgInstaller: {
|
|
@@ -6840,7 +6869,6 @@ var interface_locale_default = {
|
|
|
6840
6869
|
pricingTitle: "\u8BA1\u8D39\u8BE6\u60C5",
|
|
6841
6870
|
pricingDesc: "\u67E5\u770B\u4EF7\u683C\u89C4\u5219",
|
|
6842
6871
|
guideTitle: "\u4F7F\u7528\u6307\u5357",
|
|
6843
|
-
guideDesc: "\u5FEB\u901F\u4E0A\u624B\u6280\u5DE7",
|
|
6844
6872
|
downloadClientTitle: "\u4E0B\u8F7D\u5BA2\u6237\u7AEF",
|
|
6845
6873
|
downloadClientDesc: "\u5B89\u88C5\u684C\u9762\u7AEF\u548C\u79FB\u52A8\u7AEF\uFF0C\u6362\u8BBE\u5907\u4E5F\u80FD\u7EE7\u7EED\u7528",
|
|
6846
6874
|
feedbackTitle: "\u610F\u89C1\u53CD\u9988",
|
|
@@ -8067,7 +8095,6 @@ var interface_locale_default = {
|
|
|
8067
8095
|
pricingTitle: "\u8A08\u8CBB\u8A73\u60C5",
|
|
8068
8096
|
pricingDesc: "\u67E5\u770B\u50F9\u683C\u898F\u5247",
|
|
8069
8097
|
guideTitle: "\u4F7F\u7528\u6307\u5357",
|
|
8070
|
-
guideDesc: "\u5FEB\u901F\u4E0A\u624B\u6280\u5DE7",
|
|
8071
8098
|
downloadClientTitle: "\u4E0B\u8F09\u5BA2\u6236\u7AEF",
|
|
8072
8099
|
downloadClientDesc: "\u5B89\u88DD\u684C\u9762\u7AEF\u548C\u884C\u52D5\u7AEF\uFF0C\u63DB\u88DD\u7F6E\u4E5F\u80FD\u7E7C\u7E8C\u7528",
|
|
8073
8100
|
feedbackTitle: "\u610F\u898B\u56DE\u994B",
|
|
@@ -9216,7 +9243,6 @@ var interface_locale_default = {
|
|
|
9216
9243
|
pricingTitle: "\u6599\u91D1\u8A73\u7D30",
|
|
9217
9244
|
pricingDesc: "\u6599\u91D1\u30EB\u30FC\u30EB\u3092\u78BA\u8A8D",
|
|
9218
9245
|
guideTitle: "\u4F7F\u3044\u65B9\u30AC\u30A4\u30C9",
|
|
9219
|
-
guideDesc: "\u30AF\u30A4\u30C3\u30AF\u30B9\u30BF\u30FC\u30C8\u306E\u30B3\u30C4",
|
|
9220
9246
|
downloadClientTitle: "\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",
|
|
9221
9247
|
downloadClientDesc: "\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7\u3068\u30E2\u30D0\u30A4\u30EB\u306B Nolo \u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",
|
|
9222
9248
|
feedbackTitle: "\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF",
|
|
@@ -11205,7 +11231,7 @@ var i18n_default = instance;
|
|
|
11205
11231
|
var TOOL_PACKS = {
|
|
11206
11232
|
// L1 - 核心:交互 + 自我更新,所有 Agent 必有。
|
|
11207
11233
|
// rememberMemory 已移至「长期记忆」能力包(defaultEnabled:true),用户可单关。
|
|
11208
|
-
CORE: ["
|
|
11234
|
+
CORE: ["ask_user", "read", "searchDialogMessages", "createDoc", "updateDoc", "search_workspace", "search_all_spaces", "updateSelf", "queryModelUsage", "queryUserGrowthReport", "createAgentAutomation", "notifyUser"],
|
|
11209
11235
|
// L2 - 联网搜索:与 CAPABILITY_PACKS「web-search」对齐。
|
|
11210
11236
|
// 社交读工具属于「social-reader」包,不得因 exa_search 被旁路注入。
|
|
11211
11237
|
LIGHT_WEB: ["exa_search", "fetchWebpage"],
|
|
@@ -11226,8 +11252,8 @@ var CAPABILITY_PACKS = [
|
|
|
11226
11252
|
{
|
|
11227
11253
|
id: "long-term-memory",
|
|
11228
11254
|
label: "\u957F\u671F\u8BB0\u5FC6",
|
|
11229
|
-
description: "\
|
|
11230
|
-
tools: ["rememberMemory"],
|
|
11255
|
+
description: "\u5BF9\u8BDD\u524D\u81EA\u52A8\u8F7D\u5165\u9AD8\u76F8\u5173\u8BB0\u5FC6\uFF0C\u5E76\u5141\u8BB8 agent \u6309\u9700\u67E5\u8BE2\u6216\u5199\u5165\u957F\u671F\u8BB0\u5FC6\u3002",
|
|
11256
|
+
tools: ["queryMemory", "rememberMemory"],
|
|
11231
11257
|
defaultEnabled: true,
|
|
11232
11258
|
icon: "\u{1F9E0}"
|
|
11233
11259
|
},
|
|
@@ -11266,7 +11292,30 @@ var CAPABILITY_PACKS = [
|
|
|
11266
11292
|
"listProcesses"
|
|
11267
11293
|
],
|
|
11268
11294
|
defaultEnabled: false,
|
|
11269
|
-
icon: "\u{1F4BB}"
|
|
11295
|
+
icon: "\u{1F4BB}",
|
|
11296
|
+
promptPatch: `# \u4EE3\u7801\u6267\u884C\u80FD\u529B\u5305 \u2014 \u64CD\u4F5C\u7EAA\u5F8B
|
|
11297
|
+
|
|
11298
|
+
## \u6548\u7387\u4F18\u5148\uFF08\u7701 token\uFF09
|
|
11299
|
+
- \u4E0D\u590D\u8FF0\u9700\u6C42\uFF0C\u4E0D\u89E3\u91CA\u300C\u6253\u7B97\u600E\u4E48\u505A\u300D\uFF0C\u76F4\u63A5\u52A8\u624B\u3002\u6539\u5B8C\u53EA\u7528\u4E00\u4E24\u53E5\u8BDD\u8BF4\u6E05\u300C\u6539\u4E86\u4EC0\u4E48\u3001\u53BB\u54EA\u770B\u300D\u3002
|
|
11300
|
+
- \u601D\u8003\u7B80\u77ED\uFF1A\u5B9A\u4F4D\u95EE\u9898\u5373\u53EF\uFF0C\u4E0D\u505A\u957F\u7BC7\u63A8\u6F14\u3002
|
|
11301
|
+
- \u5C0F\u6539\u52A8\u8D70\u6700\u77ED\u8DEF\u5F84\uFF1AsearchFiles/globFiles \u5B9A\u4F4D \u2192 readFile \u786E\u8BA4 \u2192 editFile \u7CBE\u786E\u66FF\u6362\u3002\u80FD\u4E00\u6B21\u547D\u4E2D\u5C31\u4E0D\u8981\u53CD\u590D\u8BFB\u6587\u4EF6\u3002
|
|
11302
|
+
- \u5DF2\u7ECF\u77E5\u9053\u6587\u4EF6\u548C\u4F4D\u7F6E\u65F6\uFF0C\u8DF3\u8FC7\u591A\u4F59\u7684 search/read\uFF0C\u76F4\u63A5 edit\u3002
|
|
11303
|
+
- \u7981\u6B62\u4E3A\u4E00\u4E2A\u5C0F\u6539\u52A8\u6574\u9875\u91CD\u5199\u6216\u8FDE\u5E26\u6539\u52A8\u672A\u547D\u4E2D\u7684\u90E8\u5206\u3002
|
|
11304
|
+
|
|
11305
|
+
## \u4EE3\u7801\u4FEE\u6539\u7EAA\u5F8B
|
|
11306
|
+
- \u7F16\u8F91\u524D\u5148 readFile \u786E\u8BA4\u5F53\u524D\u5185\u5BB9\uFF0C\u907F\u514D stale hash \u9519\u8BEF\u3002
|
|
11307
|
+
- \u53EA\u78B0\u4EFB\u52A1\u4E66\u5217\u51FA\u7684\u6587\u4EF6\uFF1B\u6539\u5B8C\u7528 \`git status --short\` \u81EA\u67E5\uFF0C\u82E5\u6539\u5230\u6E05\u5355\u5916\u6587\u4EF6\uFF0C\u5982\u5B9E\u62A5\u544A\u3002
|
|
11308
|
+
- \u4E0D\u8981 \`git add\` / \`git commit\` / \`git push\` / \`git stash\` / \`git reset\` / \`git checkout\` / \`git clean\`\u2014\u2014\u6539\u52A8\u7559\u5728\u5DE5\u4F5C\u533A\uFF0C\u63D0\u4EA4\u7531\u8C03\u7528\u65B9\u9A8C\u6536\u540E\u5904\u7406\u3002\u4ED3\u5E93\u5E38\u6709\u591A\u4E2A\u4F1A\u8BDD\u5171\u7528\u4E00\u4E2A checkout\uFF0C\u4F60\u4E00\u63D0\u4EA4\u5C31\u4F1A\u628A\u522B\u4EBA\u7684\u5728\u9014\u6587\u4EF6\u5377\u8FDB\u6765\u3002
|
|
11309
|
+
- \u53EA\u8DD1\u4EFB\u52A1\u91CC\u5217\u51FA\u7684\u6D4B\u8BD5\u6587\u4EF6\uFF0C\u4E0D\u8981\u8DD1 broader \u6D4B\u8BD5\uFF08broaden \u6D4B\u8BD5\u7684\u5931\u8D25\u662F\u9884\u5B58\u7684\uFF0C\u548C\u4F60\u7684\u6539\u52A8\u65E0\u5173\uFF09\u3002
|
|
11310
|
+
|
|
11311
|
+
## Review \u7EAA\u5F8B\uFF08commit \u524D\u786C\u95E8\uFF09
|
|
11312
|
+
- \u9664 \u22642 \u6B65\u96F6\u903B\u8F91\u98CE\u9669\u7684\u673A\u68B0\u6539\u52A8\uFF08\u9519\u522B\u5B57/\u683C\u5F0F/CSS \u5FAE\u8C03\uFF09\u5916\uFF0C\u6240\u6709\u4EE3\u7801\u53D8\u66F4 commit \u524D\u5FC5\u987B\u5148\u6D3E**\u5176\u4ED6 agent**\uFF08\u4E0D\u540C\u6A21\u578B\u5BB6\u65CF\u4F18\u5148\uFF09review \u5DE5\u4F5C\u533A diff\uFF08\`git diff\`\uFF0C\u672A\u63D0\u4EA4\u7684\u6539\u52A8\uFF09\u3002reviewer \u4E0D\u53EF\u662F\u81EA\u5DF1\u3002\u65E0 review \u4E0D commit\u2014\u2014\u8FD9\u662F\u786C\u95E8\uFF0C\u4E0D\u662F\u5EFA\u8BAE\u3002
|
|
11313
|
+
- \u6D3E\u53D1\u8D70 \`startAgentRun(agentKey, task, { ephemeral: true })\`\uFF08web/\u684C\u9762\u7AEF\u6CA1\u6709 nolo CLI\uFF0C\u6240\u6709 host \u90FD\u6709\u8FD9\u4E2A\u5DE5\u5177\uFF09\u3002ephemeral \u8BA9 review \u5B8C\u6210\u540E\u4E0D\u7559 dialog \u8BB0\u5F55\u3002
|
|
11314
|
+
- task \u91CC\u5FC5\u987B\u5199\u660E\u5BA1\u67E5\u5BF9\u8C61\uFF08\`git diff\` \u770B\u5DE5\u4F5C\u533A\u6539\u52A8\uFF0C\u6216 \`git diff alpha...HEAD\` \u770B\u5DF2\u63D0\u4EA4\u6539\u52A8\uFF09\uFF0C\u5426\u5219 reviewer \u4E0D\u77E5\u9053\u5BA1\u4EC0\u4E48\u3002
|
|
11315
|
+
- \u6309\u89D2\u8272\u52A0\u8F7D\u5BF9\u5E94 skill\uFF1Areviewer \u5148 \`loadSkill("coding-review")\` \u62FF\u901A\u7528\u6D41\u7A0B\uFF0C\u518D\u6309\u89D2\u8272 \`loadSkill("coding-review-<role>")\` \u62FF\u68C0\u67E5\u9879\u3002\u89D2\u8272\u6E05\u5355\uFF1Acode-quality\uFF08**\u5FC5\u8DD1**\uFF09/ architecture\uFF08**\u5355\u72EC\u6D3E\u53D1**\uFF0C\u4E2D\u7EA7\u4EE5\u4E0A\u95EE\u9898\uFF09/ security\uFF08\u6309\u9700 + \u5B89\u5168\u654F\u611F\u89E6\u53D1\u5FC5\u8DD1\uFF09/ frontend-ux\uFF08\u6D89\u53CA UI \u65F6\uFF09/ backend-data\uFF08\u6D89\u53CA server \u65F6\uFF09\u3002\u89D2\u8272\u5207\u5272\u7684\u76EE\u7684\u662F\u6CE8\u610F\u529B\u9694\u79BB\u2014\u2014\u6BCF\u4E2A\u89D2\u8272\u53EA\u76EF\u81EA\u5DF1\u7684\u68C0\u67E5\u9762\uFF0C\u6309\u9700\u542F\u7528\uFF0C\u907F\u514D\u4E00\u4E2A reviewer \u80CC\u6240\u6709\u89D2\u8272\u5BFC\u81F4\u6CE8\u610F\u529B\u7A00\u91CA\u3002
|
|
11316
|
+
- Verdict \u6807\u51C6\uFF1AAPPROVE\uFF08\u65E0 CRITICAL \u6216 HIGH\uFF09\u2192 \u53EF commit\uFF1BWARNING\uFF08\u4EC5 HIGH\uFF09\u2192 \u62A5\u544A owner \u51B3\u5B9A\uFF1BBLOCK\uFF08\u6709 CRITICAL\uFF09\u2192 \u5FC5\u987B\u5148\u4FEE\u3002
|
|
11317
|
+
- review \u53EF\u80FD\u591A\u8F6E\u6536\u655B\uFF08\u6709 finding\u2192\u4FEE\u2192\u518D\u5BA1\u2192\u76F4\u5230 APPROVE\uFF09\u3002\u6BCF\u8F6E review \u662F\u65E0\u4E0A\u4E0B\u6587\u7684\u2014\u2014reviewer \u53EA\u770B\u5F53\u524D\u5DE5\u4F5C\u533A diff\uFF0C\u4E0D\u5E26\u4E0A\u4E00\u8F6E finding \u8BB0\u5FC6\u3002
|
|
11318
|
+
- \u82E5\u5904\u4E8E\u5355 Agent \u72EC\u5360\u73AF\u5883\u3001\u5176\u4ED6 agent \u4E0D\u53EF\u8FBE\u3001\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u76F4\u63A5\u63D0\u4EA4\uFF0C\u5141\u8BB8\u5E26\u539F\u56E0\u8DF3\u8FC7\uFF08commit message \u6CE8\u660E [no-review: \u539F\u56E0]\uFF09\uFF0C\u4F46\u9ED8\u8BA4\u5FC5\u987B\u6D3E review\u3002`
|
|
11270
11319
|
},
|
|
11271
11320
|
{
|
|
11272
11321
|
id: "skills",
|
|
@@ -11434,7 +11483,7 @@ function appendEnabledPackPromptPatches(prompt, enabledPacks) {
|
|
|
11434
11483
|
|
|
11435
11484
|
${addition}`;
|
|
11436
11485
|
}
|
|
11437
|
-
var FORCED_TOOLS = ["
|
|
11486
|
+
var FORCED_TOOLS = ["ask_user"];
|
|
11438
11487
|
function applyDisabledTools(toolNames, disabledTools) {
|
|
11439
11488
|
if (!Array.isArray(disabledTools) || disabledTools.length === 0) {
|
|
11440
11489
|
return toolNames;
|
|
@@ -11483,7 +11532,7 @@ var HOSTED_EXEC_RUNTIME_TOOL_POLICY = {
|
|
|
11483
11532
|
workspace: { mode: "lease" }
|
|
11484
11533
|
};
|
|
11485
11534
|
var findModelConfig = async (modelName, provider) => {
|
|
11486
|
-
const { ALL_MODELS } = await import("./models-
|
|
11535
|
+
const { ALL_MODELS } = await import("./models-DJFSJ7SW.js");
|
|
11487
11536
|
const name = toTrimmedString(modelName);
|
|
11488
11537
|
const prov = toTrimmedString(provider ?? "");
|
|
11489
11538
|
if (!name) return null;
|
|
@@ -11724,7 +11773,7 @@ var buildFormDataFromArgs = async (args) => {
|
|
|
11724
11773
|
const trimmedModel = toTrimmedString(model);
|
|
11725
11774
|
const trimmedProvider = toTrimmedString(provider);
|
|
11726
11775
|
const modelConfig = await findModelConfig(trimmedModel, trimmedProvider);
|
|
11727
|
-
const { getModelPricing } = await import("./getPricing-
|
|
11776
|
+
const { getModelPricing } = await import("./getPricing-G7DLAST6.js");
|
|
11728
11777
|
const normalizedTools = tools ?? [];
|
|
11729
11778
|
const resolvedRuntimeToolPolicy = runtimeToolPolicy ?? (normalizedTools.includes("execShell") ? HOSTED_EXEC_RUNTIME_TOOL_POLICY : void 0);
|
|
11730
11779
|
const formData = {
|
|
@@ -12386,7 +12435,7 @@ var createSkillDocFunctionSchema = {
|
|
|
12386
12435
|
description: [
|
|
12387
12436
|
"\u521B\u5EFA\u4E00\u4E2A\u672C\u5730 skill \u6587\u6863\uFF0C\u5E76\u81EA\u52A8\u5199\u5165\u9690\u85CF\u7684 skill-config / eval-config \u534F\u8BAE\u5757\u3002",
|
|
12388
12437
|
"\u9002\u5408\u628A\u67D0\u4E2A\u80FD\u529B\u6D41\u7A0B\u6C89\u6DC0\u6210\u53EF\u88AB agent \u5F15\u7528\u7684 skill\uFF0C\u800C\u4E0D\u662F\u624B\u5199\u534F\u8BAE\u6CE8\u91CA\u3002",
|
|
12389
|
-
"\u521B\u5EFA\u6210\u529F\u540E\uFF0C\u5982\u679C\u7528\u6237\u8FD8\u6CA1\u8BF4\u660E\u4E0B\u4E00\u6B65\uFF0C\u4F18\u5148\u8C03\u7528
|
|
12438
|
+
"\u521B\u5EFA\u6210\u529F\u540E\uFF0C\u5982\u679C\u7528\u6237\u8FD8\u6CA1\u8BF4\u660E\u4E0B\u4E00\u6B65\uFF0C\u4F18\u5148\u8C03\u7528 ask_user \u7EE7\u7EED\u8BE2\u95EE\uFF1A\u4EC5\u4FDD\u5B58\u3001\u6302\u5230\u73B0\u6709 Agent\uFF0C\u8FD8\u662F\u65B0\u5EFA\u4E00\u4E2A Agent \u6765\u4F7F\u7528\u5B83\u3002"
|
|
12390
12439
|
].join("\n"),
|
|
12391
12440
|
parameters: {
|
|
12392
12441
|
type: "object",
|
|
@@ -12809,7 +12858,7 @@ var importSkillFunctionSchema = {
|
|
|
12809
12858
|
description: [
|
|
12810
12859
|
"\u4ECE\u5916\u90E8 SKILL.md\u3001GitHub \u5730\u5740\u6216\u539F\u59CB Markdown \u6587\u672C\u5BFC\u5165\u4E00\u4E2A skill\uFF0C\u5E76\u4FDD\u5B58\u4E3A\u5F53\u524D\u7A7A\u95F4\u4E2D\u7684\u666E\u901A\u6587\u6863\u3002",
|
|
12811
12860
|
"\u5BFC\u5165\u540E\u4F1A\u81EA\u52A8\u9644\u52A0\u9690\u85CF\u7684 skill-config \u534F\u8BAE\u5757\uFF1B\u65E0\u6CD5\u6620\u5C04\u7684\u811A\u672C\u73AF\u5883\u4F1A\u964D\u7EA7\u4E3A\u8BF4\u660E\u578B skill\u3002",
|
|
12812
|
-
"\u5BFC\u5165\u6210\u529F\u540E\uFF0C\u5982\u679C\u7528\u6237\u8FD8\u6CA1\u8BF4\u660E\u4E0B\u4E00\u6B65\uFF0C\u4F18\u5148\u8C03\u7528
|
|
12861
|
+
"\u5BFC\u5165\u6210\u529F\u540E\uFF0C\u5982\u679C\u7528\u6237\u8FD8\u6CA1\u8BF4\u660E\u4E0B\u4E00\u6B65\uFF0C\u4F18\u5148\u8C03\u7528 ask_user \u7EE7\u7EED\u8BE2\u95EE\uFF1A\u4EC5\u4FDD\u5B58\u3001\u6302\u5230\u73B0\u6709 Agent\uFF0C\u8FD8\u662F\u65B0\u5EFA\u4E00\u4E2A Agent \u6765\u4F7F\u7528\u5B83\u3002"
|
|
12813
12862
|
].join("\n"),
|
|
12814
12863
|
parameters: {
|
|
12815
12864
|
type: "object",
|
|
@@ -12911,7 +12960,8 @@ var loadSkillFunctionSchema = {
|
|
|
12911
12960
|
description: [
|
|
12912
12961
|
"\u6309\u540D\u79F0\u52A0\u8F7D\u4E00\u4E2A\u5DF2\u4FDD\u5B58\u7684 skill \u6587\u6863\uFF0C\u8FD4\u56DE\u5176\u5B8C\u6574\u6307\u4EE4\u6B63\u6587\u3002",
|
|
12913
12962
|
"name \u4F7F\u7528 skill \u4FDD\u5B58\u65F6\u5199\u5165 skill-config \u7684 name\uFF08\u4E5F\u63A5\u53D7 skillId\uFF09\u3002",
|
|
12914
|
-
"\u627E\u4E0D\u5230\u5BF9\u5E94 skill \u65F6\u8FD4\u56DE\u5F53\u524D\u53EF\u7528\u7684 skill \u540D\u79F0\u5217\u8868\uFF08\u4E0D\u62A5\u9519\uFF09\u3002"
|
|
12963
|
+
"\u627E\u4E0D\u5230\u5BF9\u5E94 skill \u65F6\u8FD4\u56DE\u5F53\u524D\u53EF\u7528\u7684 skill \u540D\u79F0\u5217\u8868\uFF08\u4E0D\u62A5\u9519\uFF09\u3002",
|
|
12964
|
+
'\u7CFB\u7EDF\u5185\u7F6E\u5199\u4EE3\u7801\u6280\u80FD\uFF1A\u5BF9\u8BDD\u8F6C\u5411\u5199\u4EE3\u7801\u65F6\u7528 loadSkill("coding") \u8F7D\u5165\u5199\u4EE3\u7801\u80FD\u529B\u4E0E\u4EE3\u7801\u5BA1\u67E5\u7EAA\u5F8B\uFF08\u542B review \u89D2\u8272\u5207\u5272\uFF09\u3002'
|
|
12915
12965
|
].join("\n"),
|
|
12916
12966
|
parameters: {
|
|
12917
12967
|
type: "object",
|
|
@@ -13003,7 +13053,33 @@ async function loadSkillFunc(args, thunkApi) {
|
|
|
13003
13053
|
const requestedName = asTrimmedString(args?.name);
|
|
13004
13054
|
if (!requestedName) throw new Error("loadSkill \u9700\u8981\u63D0\u4F9B name\u3002");
|
|
13005
13055
|
const candidates = await listSkillCandidates(thunkApi);
|
|
13006
|
-
|
|
13056
|
+
let matched = matchSkillCandidate(candidates, requestedName);
|
|
13057
|
+
const builtinSlug = !matched ? resolveCodingBuiltinSlug(requestedName) : null;
|
|
13058
|
+
if (builtinSlug) {
|
|
13059
|
+
const runtime2 = getRuntime(thunkApi);
|
|
13060
|
+
const userId = runtime2?.currentUserId;
|
|
13061
|
+
const body2 = buildCodingSkillContentBySlug(builtinSlug);
|
|
13062
|
+
const dbKey = userId ? buildCodingSkillPageKey(userId, builtinSlug) : builtinSlug;
|
|
13063
|
+
if (userId) {
|
|
13064
|
+
try {
|
|
13065
|
+
const { ensureCodingSkills } = await import("./codingSkills-36KN5NQT.js");
|
|
13066
|
+
await ensureCodingSkills(userId)(thunkApi?.dispatch ?? (() => Promise.resolve()));
|
|
13067
|
+
} catch {
|
|
13068
|
+
}
|
|
13069
|
+
}
|
|
13070
|
+
await persistLoadedSkillReference(thunkApi, dbKey, requestedName);
|
|
13071
|
+
return {
|
|
13072
|
+
rawData: {
|
|
13073
|
+
success: true,
|
|
13074
|
+
name: requestedName,
|
|
13075
|
+
dbKey,
|
|
13076
|
+
body: body2
|
|
13077
|
+
},
|
|
13078
|
+
displayData: `Skill "${requestedName}" loaded inline. Follow its instructions.
|
|
13079
|
+
|
|
13080
|
+
${body2}`
|
|
13081
|
+
};
|
|
13082
|
+
}
|
|
13007
13083
|
if (!matched) {
|
|
13008
13084
|
const availableNames = Array.from(
|
|
13009
13085
|
new Set(candidates.map((candidate) => candidate.name))
|
|
@@ -13025,6 +13101,7 @@ async function loadSkillFunc(args, thunkApi) {
|
|
|
13025
13101
|
dbKey: matched.dbKey
|
|
13026
13102
|
});
|
|
13027
13103
|
const body = extractSkillBody(page);
|
|
13104
|
+
await persistLoadedSkillReference(thunkApi, matched.dbKey, requestedName);
|
|
13028
13105
|
return {
|
|
13029
13106
|
rawData: {
|
|
13030
13107
|
success: true,
|
|
@@ -13037,6 +13114,27 @@ async function loadSkillFunc(args, thunkApi) {
|
|
|
13037
13114
|
${body}`
|
|
13038
13115
|
};
|
|
13039
13116
|
}
|
|
13117
|
+
async function persistLoadedSkillReference(thunkApi, dbKey, name) {
|
|
13118
|
+
try {
|
|
13119
|
+
const state = thunkApi?.getState?.();
|
|
13120
|
+
const currentDialogKey = getActiveDialogKey();
|
|
13121
|
+
if (!state || !currentDialogKey) return;
|
|
13122
|
+
const dialogConfig = selectById(
|
|
13123
|
+
state,
|
|
13124
|
+
currentDialogKey
|
|
13125
|
+
);
|
|
13126
|
+
const existing = dialogConfig?.extraReferences ?? [];
|
|
13127
|
+
const alreadyMounted = existing.some((ref) => ref.dbKey === dbKey);
|
|
13128
|
+
if (alreadyMounted) return;
|
|
13129
|
+
const newRef = {
|
|
13130
|
+
dbKey,
|
|
13131
|
+
title: name,
|
|
13132
|
+
type: "instruction"
|
|
13133
|
+
};
|
|
13134
|
+
await setDialogExtraReferencesAction([...existing, newRef], thunkApi);
|
|
13135
|
+
} catch {
|
|
13136
|
+
}
|
|
13137
|
+
}
|
|
13040
13138
|
|
|
13041
13139
|
// packages/ai/tools/category/createCategoryTool.ts
|
|
13042
13140
|
var createCategoryFunctionSchema = {
|
|
@@ -14154,7 +14252,7 @@ async function deleteDialogsFunc(args, thunkApi) {
|
|
|
14154
14252
|
const deletedDialogIds = [];
|
|
14155
14253
|
const deletedDialogKeys = [];
|
|
14156
14254
|
const failures = [];
|
|
14157
|
-
const { deleteDialog } = await import("./dialogSlice-
|
|
14255
|
+
const { deleteDialog } = await import("./dialogSlice-UQAXF23P.js");
|
|
14158
14256
|
for (const target of targets) {
|
|
14159
14257
|
try {
|
|
14160
14258
|
await thunkApi.dispatch(deleteDialog(target.dbKey)).unwrap();
|
|
@@ -14233,7 +14331,7 @@ function formatAgentListCard(agents, maxDisplay = 20) {
|
|
|
14233
14331
|
}
|
|
14234
14332
|
var listAgentsFunctionSchema = {
|
|
14235
14333
|
name: "listAgents",
|
|
14236
|
-
description: "List the current user's Nolo agents as safe summaries.
|
|
14334
|
+
description: "List the current user's Nolo agents as safe summaries. The `agents` array in the JSON result carries each agent's runnable `agentKey` (agent-<userId>-<id> for owned, agent-pub-<id> for public) plus model, apiSource, tools, prices, isOwned, isFavorite. Copy `agentKey` verbatim into startAgentRun/callAgent. Prefer isOwned agents (use your own quota, no platform credits).",
|
|
14237
14335
|
parameters: {
|
|
14238
14336
|
type: "object",
|
|
14239
14337
|
properties: {
|
|
@@ -14282,7 +14380,7 @@ async function listAgentsFunc(args, thunkApi) {
|
|
|
14282
14380
|
}
|
|
14283
14381
|
var readAgentFunctionSchema = {
|
|
14284
14382
|
name: "readAgent",
|
|
14285
|
-
description: "Read one agent's full config from the Nolo workspace. Accepts an agent dbKey (agent-xxx), plain id, alias, or agent URL; resolves it (including public agents via agent-pub-<id>; the server runtime also falls back to handle lookup) and returns the runnable agentKey plus a redacted record with fields such as model, provider, apiSource, tools, prompt, inputPrice, outputPrice, and isPublic. Use it
|
|
14383
|
+
description: "Read one agent's full config from the Nolo workspace. Accepts an agent dbKey (agent-xxx), plain id, alias, or agent URL; resolves it (including public agents via agent-pub-<id>; the server runtime also falls back to handle lookup) and returns the runnable agentKey plus a redacted record with fields such as model, provider, apiSource, tools, prompt, inputPrice, outputPrice, and isPublic. Use it to inspect an agent's full capabilities/credential status before delegation. Note: startAgentRun/callAgent take the exact agentKey from listAgents/readAgent; readAgent is not required before every dispatch when listAgents already gave you the key.",
|
|
14286
14384
|
parameters: {
|
|
14287
14385
|
type: "object",
|
|
14288
14386
|
properties: {
|
|
@@ -14422,7 +14520,7 @@ var readSkillDocFunctionSchema = {
|
|
|
14422
14520
|
}
|
|
14423
14521
|
};
|
|
14424
14522
|
async function readSkillDocFunc(args, thunkApi) {
|
|
14425
|
-
const { buildReadDocResult } = await import("./readDocTool-
|
|
14523
|
+
const { buildReadDocResult } = await import("./readDocTool-VSYHKK3V.js");
|
|
14426
14524
|
const id = args?.id ?? args?.doc ?? args?.docKey ?? args?.pageKey;
|
|
14427
14525
|
if (typeof id !== "string" || !id.trim()) {
|
|
14428
14526
|
throw new Error("readSkillDoc requires id or doc.");
|
|
@@ -19872,7 +19970,7 @@ var selectUserIdFromState = (state) => typeof state?.auth?.currentUser?.userId =
|
|
|
19872
19970
|
var selectCurrentServerFromState = (state) => typeof state?.settings?.currentServer === "string" ? state.settings.currentServer : null;
|
|
19873
19971
|
async function addImageContentToSpace(input) {
|
|
19874
19972
|
const injectedAddContentAction = input.thunkApi?.extra?.addContentAction;
|
|
19875
|
-
const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-
|
|
19973
|
+
const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-PL3KKBDH.js")).addContentAction;
|
|
19876
19974
|
await addContentAction2(
|
|
19877
19975
|
{
|
|
19878
19976
|
spaceId: input.spaceId,
|
|
@@ -20624,10 +20722,20 @@ var rememberMemoryFunctionSchema = {
|
|
|
20624
20722
|
"\u53EA\u6709\u91CD\u590D\u51FA\u73B0\u7684\u53EF\u6267\u884C\u6D41\u7A0B/\u6392\u969C\u6B65\u9AA4\u624D\u4F20 kind=procedural\uFF1B\u4E00\u822C\u504F\u597D\u548C\u4E8B\u5B9E\u4FDD\u6301\u9ED8\u8BA4 episodic\u3002",
|
|
20625
20723
|
"scope \u6309\u5185\u5BB9\u6027\u8D28\u9009\uFF0C\u4E0D\u56FA\u5B9A\u4F18\u5148\u67D0\u4E00\u5C42\uFF1A",
|
|
20626
20724
|
" - Space \u534F\u4F5C\u7EA6\u5B9A/\u56E2\u961F\u89C4\u5219 \u2192 scope=space\uFF08\u5F53\u524D dialog \u7ED1\u5B9A space \u65F6\uFF09",
|
|
20627
|
-
" - \u7528\u6237\u4E2A\u4EBA\u8EAB\u4EFD\u6216\u7EAF\u4E2A\u4EBA\u504F\u597D \u2192 scope=
|
|
20628
|
-
" - \u4E0E\u5F53\u524D
|
|
20725
|
+
" - \u7528\u6237\u4E2A\u4EBA\u8EAB\u4EFD\u6216\u7EAF\u4E2A\u4EBA\u504F\u597D \u2192 scope=user\uFF08\u4E25\u683C\u4FDD\u5B58\u4E3A\u7528\u6237\u4E3B\u4F53\uFF09",
|
|
20726
|
+
" - \u4E0E\u5F53\u524D\u52A9\u624B\u5173\u7CFB\u6302\u94A9\u7684\u504F\u597D\u6216\u6709\u6548\u505A\u6CD5 \u2192 scope=auto\uFF08runtime \u4F7F\u7528\u5F53\u524D auto/fixed \u52A9\u624B\u4E3B\u4F53\uFF09",
|
|
20629
20727
|
" - \u5F53\u524D\u4EFB\u52A1\u7684\u4E34\u65F6\u8FDB\u5EA6 \u2192 \u4E0D\u8981\u8C03\u7528\uFF0C\u8D70\u5BF9\u8BDD\u4E0A\u4E0B\u6587",
|
|
20630
|
-
"\u5199\u6210\u4E00\u53E5\u7B80\u6D01\u3001\u672A\u6765\u4ECD\u53EF\u7406\u89E3\u7684\u8BDD\u3002\u9ED8\u8BA4\u9759\u9ED8\u6267\u884C\uFF0C\u4E0D\u7528\u5411\u7528\u6237\u6C47\u62A5\u5DF2\u8BB0\u4F4F\u3002"
|
|
20728
|
+
"\u5199\u6210\u4E00\u53E5\u7B80\u6D01\u3001\u672A\u6765\u4ECD\u53EF\u7406\u89E3\u7684\u8BDD\u3002\u9ED8\u8BA4\u9759\u9ED8\u6267\u884C\uFF0C\u4E0D\u7528\u5411\u7528\u6237\u6C47\u62A5\u5DF2\u8BB0\u4F4F\u3002",
|
|
20729
|
+
"",
|
|
20730
|
+
"\u3010\u5173\u952E\u89C4\u5219\u3011\u8BB0\u5FC6\u4E0D\u53EF\u7269\u7406\u5220\u9664\uFF0C\u53EA\u80FD\u964D\u7EA7/\u5F52\u6863/\u6807\u6CE8\u3002",
|
|
20731
|
+
"\u7269\u7406\u5220\u9664\u4F1A\u5207\u65AD\u89E3\u91CA\u94FE\u2014\u2014\u7CFB\u7EDF\u65E0\u6CD5\u56DE\u7B54'\u4E3A\u4EC0\u4E48\u53D8\u4E86'\u3001'\u66FE\u7ECF\u4FE1\u4EC0\u4E48'\u3002",
|
|
20732
|
+
"\u9519\u8BEF\u7684\u8BB0\u5FC6\u5E94\u901A\u8FC7 rememberMemory \u4FEE\u6B63\u5E76\u964D\u6743\uFF08\u964D\u4F4E\u7F6E\u4FE1\u5EA6\uFF09\uFF0C\u800C\u4E0D\u662F\u5220\u9664\u3002",
|
|
20733
|
+
"",
|
|
20734
|
+
"\u3010\u7F6E\u4FE1\u5EA6\u6765\u6E90\u3011\u6BCF\u6761\u8BB0\u5FC6\u5FC5\u987B\u6807\u6CE8\u6765\u6E90\uFF08\u4F9B\u53EC\u56DE\u65F6\u5224\u65AD\u53EF\u4FE1\u5EA6\uFF09\uFF1A",
|
|
20735
|
+
" - verified\uFF1A\u5DE5\u5177/\u547D\u4EE4\u5B9E\u6D4B\u9A8C\u8BC1\u8FC7\uFF08\u9AD8\u7F6E\u4FE1\u5EA6\uFF09",
|
|
20736
|
+
" - stated\uFF1A\u7528\u6237\u660E\u786E\u9648\u8FF0\uFF08\u4E2D\u9AD8\u7F6E\u4FE1\u5EA6\uFF09",
|
|
20737
|
+
" - inferred\uFF1A\u6A21\u578B\u63A8\u65AD/\u51ED\u5370\u8C61\uFF0C\u672A\u9A8C\u8BC1\uFF08\u4F4E\u7F6E\u4FE1\u5EA6\u2014\u2014\u5BB9\u6613\u7F16\u9020\uFF0C\u4F18\u5148\u6807\u8BB0\u5B58\u7591\uFF09",
|
|
20738
|
+
"\u8C03\u7528\u65F6\u5C3D\u91CF\u660E\u786E\u6765\u6E90\uFF0C\u65E0\u6CD5\u5224\u65AD\u7684\u4FDD\u5B88\u6807 inferred\u3002"
|
|
20631
20739
|
].join("\n"),
|
|
20632
20740
|
parameters: {
|
|
20633
20741
|
type: "object",
|
|
@@ -20639,7 +20747,7 @@ var rememberMemoryFunctionSchema = {
|
|
|
20639
20747
|
scope: {
|
|
20640
20748
|
type: "string",
|
|
20641
20749
|
enum: ["auto", "user", "space"],
|
|
20642
|
-
description: "\u8BB0\u5FC6\u8303\u56F4\
|
|
20750
|
+
description: "\u8BB0\u5FC6\u8303\u56F4\u3002Space \u534F\u4F5C\u5171\u8BC6\u4F20 space\uFF1B\u7528\u6237\u4E2A\u4EBA\u8EAB\u4EFD/\u504F\u597D\u4F20 user\uFF1B\u4E0E\u5F53\u524D\u52A9\u624B\u5173\u7CFB\u6302\u94A9\u7684\u504F\u597D\u4F20 auto\u3002auto \u65F6 runtime \u4F7F\u7528\u5F53\u524D auto/fixed \u52A9\u624B\u4E3B\u4F53\u3002"
|
|
20643
20751
|
},
|
|
20644
20752
|
kind: {
|
|
20645
20753
|
type: "string",
|
|
@@ -20679,6 +20787,52 @@ async function rememberMemoryFunc(args, thunkApi) {
|
|
|
20679
20787
|
};
|
|
20680
20788
|
}
|
|
20681
20789
|
|
|
20790
|
+
// packages/ai/tools/queryMemoryToolSchema.ts
|
|
20791
|
+
var queryMemoryFunctionSchema = {
|
|
20792
|
+
name: "queryMemory",
|
|
20793
|
+
description: [
|
|
20794
|
+
"\u6309\u9700\u67E5\u8BE2\u5F53\u524D\u7528\u6237\u3001Space \u548C\u5F53\u524D auto/fixed \u52A9\u624B\u4E3B\u4F53\u7684\u957F\u671F\u8BB0\u5FC6\u3002",
|
|
20795
|
+
"\u5BF9\u8BDD\u5F00\u59CB\u524D\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u8F7D\u5165\u5C11\u91CF\u9AD8\u76F8\u5173\u8BB0\u5FC6\uFF1B\u53EA\u6709\u9884\u8F7D\u4E0D\u8DB3\u3001\u7528\u6237\u63D0\u5230\u8FC7\u53BB\u7EA6\u5B9A/\u504F\u597D/\u7EA0\u6B63/\u672A\u5B8C\u6210\u4E8B\u9879\u65F6\u624D\u8C03\u7528\u3002",
|
|
20796
|
+
"\u4E0D\u8981\u4E3A\u4E86\u666E\u901A\u4E8B\u5B9E\u95EE\u9898\u67E5\u8BE2\uFF0C\u4E5F\u4E0D\u8981\u5728\u540C\u4E00\u8F6E\u7528\u8FD1\u4E49\u8BCD\u53CD\u590D\u67E5\u8BE2\u3002",
|
|
20797
|
+
"",
|
|
20798
|
+
"\u3010\u53EC\u56DE\u89C4\u5219\u3011\u53EC\u56DE\u7684\u8BB0\u5FC6\u5FC5\u987B\u5E26\u5B8C\u6574\u5386\u53F2\u4E0A\u4E0B\u6587\uFF08\u6765\u6E90\u3001\u7F6E\u4FE1\u5EA6\u3001\u53D8\u66F4\u8BB0\u5F55\uFF09\uFF0C\u7981\u6B62\u81EA\u884C\u63A8\u7406\u586B\u8865\u3002",
|
|
20799
|
+
"\u5982\u679C\u8BB0\u5FC6\u6765\u6E90\u662F inferred\uFF08\u63A8\u65AD\uFF09\uFF0C\u5FC5\u987B\u660E\u786E\u6807\u6CE8\u5B58\u7591\uFF0C\u4E0D\u80FD\u5F53\u6210\u9A8C\u8BC1\u8FC7\u7684\u4E8B\u5B9E\u4F7F\u7528\u3002",
|
|
20800
|
+
"\u9AD8\u7F6E\u4FE1\u5EA6\u8BB0\u5FC6\uFF08verified/stated\uFF09\u4F18\u5148\u4F7F\u7528\uFF1B\u4F4E\u7F6E\u4FE1\u5EA6\u8BB0\u5FC6\uFF08inferred\uFF09\u9700\u9A8C\u8BC1\u540E\u518D\u91C7\u7EB3\u3002"
|
|
20801
|
+
].join("\n"),
|
|
20802
|
+
parameters: {
|
|
20803
|
+
type: "object",
|
|
20804
|
+
properties: {
|
|
20805
|
+
query: {
|
|
20806
|
+
type: "string",
|
|
20807
|
+
description: "\u8981\u4ECE\u957F\u671F\u8BB0\u5FC6\u4E2D\u68C0\u7D22\u7684\u81EA\u7136\u8BED\u8A00\u95EE\u9898\u6216\u5173\u952E\u8BCD\u3002"
|
|
20808
|
+
}
|
|
20809
|
+
},
|
|
20810
|
+
required: ["query"]
|
|
20811
|
+
}
|
|
20812
|
+
};
|
|
20813
|
+
|
|
20814
|
+
// packages/ai/tools/queryMemoryTool.ts
|
|
20815
|
+
async function queryMemoryFunc(args, thunkApi) {
|
|
20816
|
+
const query = String(args.query ?? "").trim();
|
|
20817
|
+
if (!query) throw new Error("queryMemory \u9700\u8981\u975E\u7A7A query\u3002");
|
|
20818
|
+
const state = thunkApi.getState();
|
|
20819
|
+
const dialogKey = getActiveDialogKey();
|
|
20820
|
+
const dialog = dialogKey ? selectById(state, dialogKey) : null;
|
|
20821
|
+
const result = await callToolApi(
|
|
20822
|
+
thunkApi,
|
|
20823
|
+
"/api/memory/query",
|
|
20824
|
+
{
|
|
20825
|
+
agentKey: resolveDialogRuntimeAgentKey(dialog),
|
|
20826
|
+
userInput: query,
|
|
20827
|
+
...selectCurrentSpaceId(state) ? { spaceId: selectCurrentSpaceId(state) } : {}
|
|
20828
|
+
},
|
|
20829
|
+
{ withAuth: true }
|
|
20830
|
+
);
|
|
20831
|
+
const selectedItems = Array.isArray(result?.selectedItems) ? result.selectedItems : [];
|
|
20832
|
+
const displayData = selectedItems.length ? selectedItems.map((item) => String(item?.content ?? "").trim()).filter(Boolean).join("\n") : "\u6CA1\u6709\u627E\u5230\u76F8\u5173\u957F\u671F\u8BB0\u5FC6\u3002";
|
|
20833
|
+
return { rawData: result, displayData };
|
|
20834
|
+
}
|
|
20835
|
+
|
|
20682
20836
|
// packages/ai/tools/execShellTool.ts
|
|
20683
20837
|
var execShellFunctionSchema = {
|
|
20684
20838
|
name: "execShell",
|
|
@@ -21279,7 +21433,7 @@ var callAgentFunctionSchema = {
|
|
|
21279
21433
|
properties: {
|
|
21280
21434
|
agentKey: {
|
|
21281
21435
|
type: "string",
|
|
21282
|
-
description: "\u8981\u8C03\u7528\u7684 Agent \u7684\
|
|
21436
|
+
description: "\u8981\u8C03\u7528\u7684 Agent \u7684\u53EF\u8FD0\u884C dbKey\uFF0C\u5FC5\u987B\u662F listAgents \u8FD4\u56DE\u7684 agentKey \u5B57\u6BB5\uFF08owned: agent-<userId>-<id>\uFF1Bpublic: agent-pub-<id>\uFF09\u6216 readAgent \u8FD4\u56DE\u7684 agentKey\u3002\u53EA\u63A5\u53D7\u7CBE\u786E dbKey\uFF0C\u4E0D\u63A5\u53D7 name/handle/bare id\u3002"
|
|
21283
21437
|
},
|
|
21284
21438
|
task: {
|
|
21285
21439
|
type: "string",
|
|
@@ -21915,124 +22069,6 @@ async function runLlmToolFunc(args, thunkApi, _context) {
|
|
|
21915
22069
|
}
|
|
21916
22070
|
}
|
|
21917
22071
|
|
|
21918
|
-
// packages/ai/tools/agent/agentRunDisplayHelpers.ts
|
|
21919
|
-
function getAgentRunStatusIcon(status) {
|
|
21920
|
-
switch (status) {
|
|
21921
|
-
case "running":
|
|
21922
|
-
case "pending":
|
|
21923
|
-
return "\u23F3";
|
|
21924
|
-
case "done":
|
|
21925
|
-
return "\u2713";
|
|
21926
|
-
case "failed":
|
|
21927
|
-
case "timeout":
|
|
21928
|
-
return "\u2717";
|
|
21929
|
-
case "killed":
|
|
21930
|
-
case "cancelled":
|
|
21931
|
-
case "cancelling":
|
|
21932
|
-
return "\u{1F6D1}";
|
|
21933
|
-
case "not_found":
|
|
21934
|
-
default:
|
|
21935
|
-
return "?";
|
|
21936
|
-
}
|
|
21937
|
-
}
|
|
21938
|
-
var DEFAULT_LABELS = {
|
|
21939
|
-
runStatus: "Run status",
|
|
21940
|
-
runStarted: "Run started",
|
|
21941
|
-
runStopped: "Run stopped",
|
|
21942
|
-
logTail: "Log tail:",
|
|
21943
|
-
runs: (count) => `Runs (${count})`
|
|
21944
|
-
};
|
|
21945
|
-
function resolveLabels(labels) {
|
|
21946
|
-
return {
|
|
21947
|
-
runStatus: labels?.runStatus ?? DEFAULT_LABELS.runStatus,
|
|
21948
|
-
runStarted: labels?.runStarted ?? DEFAULT_LABELS.runStarted,
|
|
21949
|
-
runStopped: labels?.runStopped ?? DEFAULT_LABELS.runStopped,
|
|
21950
|
-
logTail: labels?.logTail ?? DEFAULT_LABELS.logTail,
|
|
21951
|
-
runs: labels?.runs ?? DEFAULT_LABELS.runs
|
|
21952
|
-
};
|
|
21953
|
-
}
|
|
21954
|
-
function isAgentNameFallback(agentName) {
|
|
21955
|
-
const trimmed = typeof agentName === "string" ? agentName.trim() : "";
|
|
21956
|
-
return !trimmed || trimmed === "agent";
|
|
21957
|
-
}
|
|
21958
|
-
function resolveRunLabel(run) {
|
|
21959
|
-
for (const candidate of [run.agentName, run.name, run.agentKey, run.runId]) {
|
|
21960
|
-
if (typeof candidate === "string" && !isAgentNameFallback(candidate)) {
|
|
21961
|
-
return candidate.trim();
|
|
21962
|
-
}
|
|
21963
|
-
}
|
|
21964
|
-
return "agent";
|
|
21965
|
-
}
|
|
21966
|
-
function formatStartRunCard(agentName, status = "running", labels) {
|
|
21967
|
-
const L = resolveLabels(labels);
|
|
21968
|
-
const icon = getAgentRunStatusIcon(status);
|
|
21969
|
-
const lines = [L.runStarted];
|
|
21970
|
-
if (!isAgentNameFallback(agentName)) {
|
|
21971
|
-
lines.push(` agent ${agentName}`);
|
|
21972
|
-
}
|
|
21973
|
-
lines.push(` status ${icon} ${status}`);
|
|
21974
|
-
return lines.join("\n");
|
|
21975
|
-
}
|
|
21976
|
-
function formatStatusRunCard(agentName, status = "running", opts) {
|
|
21977
|
-
const L = resolveLabels(opts?.labels);
|
|
21978
|
-
const icon = getAgentRunStatusIcon(status);
|
|
21979
|
-
const lines = [L.runStatus, ` ${icon} ${status}`];
|
|
21980
|
-
if (!isAgentNameFallback(agentName)) {
|
|
21981
|
-
lines.push(` agent ${agentName}`);
|
|
21982
|
-
}
|
|
21983
|
-
if (opts?.pollCount !== void 0 && opts.pollCount > 0) {
|
|
21984
|
-
lines.push(` polls ${opts.pollCount}`);
|
|
21985
|
-
}
|
|
21986
|
-
if (typeof opts?.elapsedMs === "number" && Number.isFinite(opts.elapsedMs)) {
|
|
21987
|
-
lines.push(` last ${Math.round(opts.elapsedMs)}ms`);
|
|
21988
|
-
}
|
|
21989
|
-
if (opts?.lastToolNames && opts.lastToolNames.length > 0) {
|
|
21990
|
-
lines.push(` lastTools ${opts.lastToolNames.join(", ")}`);
|
|
21991
|
-
}
|
|
21992
|
-
if (opts?.toolCallCount !== void 0) {
|
|
21993
|
-
lines.push(` toolCalls ${opts.toolCallCount}`);
|
|
21994
|
-
}
|
|
21995
|
-
if (opts?.errorMessage?.trim()) {
|
|
21996
|
-
lines.push(` error ${opts.errorMessage.trim()}`);
|
|
21997
|
-
}
|
|
21998
|
-
const includeLog = opts?.includeLogTail !== false;
|
|
21999
|
-
if (includeLog && opts?.logLines && opts.logLines.length > 0) {
|
|
22000
|
-
lines.push("", L.logTail, ...opts.logLines.map((l) => ` ${l}`));
|
|
22001
|
-
}
|
|
22002
|
-
return lines.join("\n");
|
|
22003
|
-
}
|
|
22004
|
-
function formatStopRunCard(status = "killed", labels) {
|
|
22005
|
-
const L = resolveLabels(labels);
|
|
22006
|
-
const icon = getAgentRunStatusIcon(status);
|
|
22007
|
-
return `${L.runStopped}
|
|
22008
|
-
${icon} ${status}`;
|
|
22009
|
-
}
|
|
22010
|
-
function formatListRunsCard(runs, labels) {
|
|
22011
|
-
const L = resolveLabels(labels);
|
|
22012
|
-
const lines = [L.runs(runs.length)];
|
|
22013
|
-
for (const run of runs) {
|
|
22014
|
-
const status = run.status ?? "\u2014";
|
|
22015
|
-
const icon = getAgentRunStatusIcon(status);
|
|
22016
|
-
lines.push(` ${icon} ${resolveRunLabel(run)}`);
|
|
22017
|
-
}
|
|
22018
|
-
return lines.join("\n");
|
|
22019
|
-
}
|
|
22020
|
-
function formatNotFoundRunCard(labels) {
|
|
22021
|
-
const L = resolveLabels(labels);
|
|
22022
|
-
return `${L.runStatus}
|
|
22023
|
-
? not_found`;
|
|
22024
|
-
}
|
|
22025
|
-
var AGENT_RUN_TERMINAL_STATUSES = /* @__PURE__ */ new Set([
|
|
22026
|
-
"done",
|
|
22027
|
-
"failed",
|
|
22028
|
-
"timeout",
|
|
22029
|
-
"killed",
|
|
22030
|
-
"cancelled"
|
|
22031
|
-
]);
|
|
22032
|
-
function isAgentRunTerminalStatus(status) {
|
|
22033
|
-
return typeof status === "string" && AGENT_RUN_TERMINAL_STATUSES.has(status);
|
|
22034
|
-
}
|
|
22035
|
-
|
|
22036
22072
|
// packages/ai/tools/agent/startAgentRunTool.ts
|
|
22037
22073
|
var startAgentRunFunctionSchema = {
|
|
22038
22074
|
name: "startAgentRun",
|
|
@@ -22042,7 +22078,7 @@ var startAgentRunFunctionSchema = {
|
|
|
22042
22078
|
properties: {
|
|
22043
22079
|
agentKey: {
|
|
22044
22080
|
type: "string",
|
|
22045
|
-
description: "\u8981\u542F\u52A8\u7684 Agent \u7684\u53EF\u8FD0\u884C dbKey\
|
|
22081
|
+
description: "\u8981\u542F\u52A8\u7684 Agent \u7684\u53EF\u8FD0\u884C dbKey\uFF0C\u5FC5\u987B\u662F listAgents \u8FD4\u56DE\u7684 agentKey \u5B57\u6BB5\uFF08owned: agent-<userId>-<id>\uFF1Bpublic: agent-pub-<id>\uFF09\u6216 readAgent \u8FD4\u56DE\u7684 agentKey\u3002\u53EA\u63A5\u53D7\u7CBE\u786E dbKey\uFF0C\u4E0D\u63A5\u53D7 name/handle/bare id\u3002"
|
|
22046
22082
|
},
|
|
22047
22083
|
task: {
|
|
22048
22084
|
type: "string",
|
|
@@ -22058,14 +22094,23 @@ var startAgentRunFunctionSchema = {
|
|
|
22058
22094
|
ephemeral: {
|
|
22059
22095
|
type: "boolean",
|
|
22060
22096
|
description: "\u53EF\u9009\u3002\u4E3A true \u65F6\u672C\u6B21 run \u4E0D\u6301\u4E45\u5316 dialog\uFF08\u4E0D\u7559\u8BB0\u5F55\uFF09\u3002\u7528\u4E8E\u4E00\u6B21\u6027\u5BA1\u67E5\uFF08review\uFF09\u7B49\u4E0D\u9700\u7559\u75D5\u7684\u573A\u666F\u3002\u9ED8\u8BA4 false\u3002"
|
|
22097
|
+
},
|
|
22098
|
+
batchId: {
|
|
22099
|
+
type: "string",
|
|
22100
|
+
description: "\u53EF\u9009\u3002\u6279\u6B21 id\uFF0C\u7528\u4E8E\u628A\u591A\u4E2A\u5E76\u884C run \u5F52\u4E3A\u4E00\u7EC4\uFF0C\u4FBF\u4E8E\u540E\u7EED controlAgentRun(list, batchId=...) \u6309\u6279\u67E5\u8BE2\u3002\u672A\u4F20\u65F6\u81EA\u52A8\u751F\u6210\u4E00\u4E2A\u5E76\u5728\u8FD4\u56DE\u503C\u4E2D\u5E26\u56DE\uFF0C\u8C03\u7528\u65B9\u65E0\u9700\u5148\u521B\u5EFA\u3002"
|
|
22101
|
+
},
|
|
22102
|
+
trackTodo: {
|
|
22103
|
+
type: "boolean",
|
|
22104
|
+
description: '\u53EF\u9009\u3002\u4E3A true \u65F6\u672C\u6B21 run \u4F1A\u88AB\u8BB0\u5F55\u8FDB runtime todo\uFF08~/.nolo/todos.json\uFF09\u3002\u4F20\u4E86 batchId \u65F6\u9ED8\u8BA4\u5373\u8BB0\u5F55\uFF08\u6BCF\u6279\u5BF9\u5E94\u4E00\u9879 todo\uFF09\u3002todo \u72B6\u6001\u7531\u5173\u8054 run \u72B6\u6001 + review \u7ED3\u8BBA\u63A8\u5BFC\uFF0C\u7528 controlAgentRun(action:"todo") \u67E5\u8BE2\u3002'
|
|
22061
22105
|
}
|
|
22062
22106
|
},
|
|
22063
22107
|
required: ["agentKey", "task"]
|
|
22064
22108
|
}
|
|
22065
22109
|
};
|
|
22066
22110
|
async function startAgentRunFunc(args, thunkApi, _context) {
|
|
22067
|
-
const { agentKey, task, input, agentName, ephemeral } = args;
|
|
22111
|
+
const { agentKey, task, input, agentName, ephemeral, batchId } = args;
|
|
22068
22112
|
const { dispatch } = thunkApi;
|
|
22113
|
+
const effectiveBatchId = typeof batchId === "string" && batchId.trim() ? batchId.trim() : `batch-${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}-${Math.random().toString(36).slice(2, 8)}`;
|
|
22069
22114
|
if (!agentKey) {
|
|
22070
22115
|
throw new Error("startAgentRun: \u7F3A\u5C11 agentKey \u53C2\u6570\u3002");
|
|
22071
22116
|
}
|
|
@@ -22089,14 +22134,24 @@ async function startAgentRunFunc(args, thunkApi, _context) {
|
|
|
22089
22134
|
const status = bgResult.status ?? "pending";
|
|
22090
22135
|
const resolvedName = agentName?.trim() || bgResult.agentName || bgResult.name;
|
|
22091
22136
|
const identity = { agentName: resolvedName, agentKey, runId };
|
|
22137
|
+
const taskPreview = task.replace(/\s+/g, " ").trim().slice(0, TASK_PREVIEW_MAX);
|
|
22092
22138
|
return {
|
|
22093
22139
|
rawData: {
|
|
22094
22140
|
runId,
|
|
22095
22141
|
status,
|
|
22096
22142
|
agentKey,
|
|
22097
|
-
|
|
22098
|
-
|
|
22099
|
-
|
|
22143
|
+
// batchId is always returned — minted above when the caller didn't
|
|
22144
|
+
// supply one — so controlAgentRun(list, batchId=...) works on every
|
|
22145
|
+
// host. On the server path the id lives in the tool return; on the
|
|
22146
|
+
// CLI local path it is also persisted on the run record.
|
|
22147
|
+
batchId: effectiveBatchId,
|
|
22148
|
+
...resolvedName ? { agentName: resolvedName } : {},
|
|
22149
|
+
...taskPreview ? { taskPreview } : {}
|
|
22150
|
+
},
|
|
22151
|
+
displayData: formatStartRunCard(resolveRunLabel(identity), status, {
|
|
22152
|
+
task: taskPreview,
|
|
22153
|
+
runId
|
|
22154
|
+
})
|
|
22100
22155
|
};
|
|
22101
22156
|
} catch (e) {
|
|
22102
22157
|
throw new Error(`startAgentRun \u542F\u52A8 Agent [${agentKey}] \u5931\u8D25: ${toErrorMessage(e)}`);
|
|
@@ -22106,14 +22161,14 @@ async function startAgentRunFunc(args, thunkApi, _context) {
|
|
|
22106
22161
|
// packages/ai/tools/agent/controlAgentRunTool.ts
|
|
22107
22162
|
var controlAgentRunFunctionSchema = {
|
|
22108
22163
|
name: "controlAgentRun",
|
|
22109
|
-
description: "\u89C2\u5BDF\u548C\u63A7\u5236\u540E\u53F0 agent run\u3002\u4E00\u4E2A\u5DE5\u5177\u4E09\u4E2A action\uFF1Alist\uFF08\u5217\u51FA
|
|
22164
|
+
description: "\u89C2\u5BDF\u548C\u63A7\u5236\u540E\u53F0 agent run\u3002\u4E00\u4E2A\u5DE5\u5177\u4E09\u4E2A action\uFF1Alist\uFF08\u5217\u51FA run\uFF0C\u652F\u6301\u6309\u6279\u6B21/\u72B6\u6001\u8FC7\u6EE4\u4E0E\u5206\u9875\uFF09\u3001status\uFF08\u67E5\u5355\u6761 + \u53EF\u9009\u65E5\u5FD7\uFF09\u3001stop\uFF08\u53D6\u6D88 run\uFF09\u3002\u76F8\u5F53\u4E8E Unix \u7684 wait + signal + /proc\u3002\u7528 startAgentRun \u62FF\u5230 runId \u540E\uFF0C\u7528\u672C\u5DE5\u5177\u8DDF\u8FDB\u5EA6\u6216\u53EB\u505C\u3002list \u9ED8\u8BA4\u53EA\u8FD4\u56DE\u6700\u8FD1 20 \u6761\uFF0C\u907F\u514D\u5168\u91CF\u51B2\u7206\u4E0A\u4E0B\u6587\uFF1B\u7528 status/batchId/limit/offset \u53D6\u6240\u9700\u5206\u9875\u3002\u6CE8\u610F\uFF1A\u7528\u6237\u754C\u9762\u5DF2\u7ECF\u5728\u72EC\u7ACB\u5B9E\u65F6\u663E\u793A\u6BCF\u6761 run \u7684\u72B6\u6001\uFF0C\u672C\u5DE5\u5177\u662F\u7ED9\u4F60\u81EA\u5DF1\u505A\u51B3\u7B56\u7528\u7684\uFF0C\u4E0D\u662F\u7528\u6765\u7ED9\u7528\u6237\u6C47\u62A5\u8FDB\u5EA6\u7684\u2014\u2014\u4E0D\u5FC5\u4E3A\u4E86\u300C\u8BA9\u7528\u6237\u770B\u5230\u72B6\u6001\u300D\u800C\u8F6E\u8BE2\uFF0C\u4E5F\u4E0D\u8981\u628A\u8FD4\u56DE\u503C\u590D\u8FF0\u7ED9\u7528\u6237\u3002",
|
|
22110
22165
|
parameters: {
|
|
22111
22166
|
type: "object",
|
|
22112
22167
|
properties: {
|
|
22113
22168
|
action: {
|
|
22114
22169
|
type: "string",
|
|
22115
|
-
enum: ["list", "status", "stop"],
|
|
22116
|
-
description: "\u8981\u6267\u884C\u7684\u64CD\u4F5C\uFF1Alist=\u5217\u51FA
|
|
22170
|
+
enum: ["list", "status", "stop", "todo"],
|
|
22171
|
+
description: "\u8981\u6267\u884C\u7684\u64CD\u4F5C\uFF1Alist=\u5217\u51FA run\uFF08\u7701\u7565 runId\uFF09\uFF1Bstatus=\u67E5\u5355\u6761 run \u72B6\u6001 + \u53EF\u9009\u65E5\u5FD7\uFF1Bstop=\u53D6\u6D88 run\uFF1Btodo=\u5217\u51FA runtime todo\uFF08\u7531 startAgentRun \u7684 batchId/trackTodo \u4EA7\u751F\uFF0C\u72B6\u6001\u7531\u5173\u8054 run \u63A8\u5BFC\uFF09\u3002"
|
|
22117
22172
|
},
|
|
22118
22173
|
runId: {
|
|
22119
22174
|
type: "string",
|
|
@@ -22121,26 +22176,41 @@ var controlAgentRunFunctionSchema = {
|
|
|
22121
22176
|
},
|
|
22122
22177
|
tailLines: {
|
|
22123
22178
|
type: "number",
|
|
22124
|
-
description: "\u53EF\u9009\u3002action=status \u65F6\uFF1A0=\u53EA\u8FD4\u56DE\u72B6\u6001\u6458\u8981\uFF0C>0=\u540C\u65F6\u8FD4\u56DE\u6700\u8FD1 N \u884C\u65E5\u5FD7\uFF08\u9ED8\u8BA4 0\uFF09\u3002",
|
|
22179
|
+
description: "\u53EF\u9009\u3002action=status \u65F6\uFF1A0=\u53EA\u8FD4\u56DE\u72B6\u6001\u6458\u8981\uFF0C>0=\u540C\u65F6\u8FD4\u56DE\u6700\u8FD1 N \u884C\u65E5\u5FD7\uFF08\u9ED8\u8BA4 0\uFF09\u3002\u672C\u5730 run \u7684\u72B6\u6001\u6458\u8981\u91CC\u5E26 progress\uFF08toolCalls/llmCalls/fileEdits\u3001inFlight=\u6B64\u523B\u5728\u6267\u884C\u4EC0\u4E48\u3001idleMs=\u8DDD\u4E0A\u6B21\u4E8B\u4EF6\u591A\u4E45\uFF09\uFF0C\u8DB3\u4EE5\u5224\u65AD\u300C\u5728\u5E72\u6D3B\u300D\u8FD8\u662F\u300C\u5361\u4F4F\u4E86\u300D\u2014\u2014\u5148\u770B\u5B83\uFF0C\u53EA\u6709\u786E\u5B9E\u53EF\u7591\u6216\u5DF2\u5931\u8D25\u65F6\u624D tailLines>0 \u62C9\u65E5\u5FD7\u3002",
|
|
22125
22180
|
default: 0
|
|
22126
22181
|
},
|
|
22182
|
+
batchId: {
|
|
22183
|
+
type: "string",
|
|
22184
|
+
description: "\u53EF\u9009\u3002action=list \u65F6\u53EA\u8FD4\u56DE\u8BE5\u6279\u6B21\u7684 run\uFF08startAgentRun \u8FD4\u56DE\u503C\u6216\u5165\u53C2\u4E2D\u7684 batchId\uFF09\u3002"
|
|
22185
|
+
},
|
|
22186
|
+
status: {
|
|
22187
|
+
type: "string",
|
|
22188
|
+
description: "\u53EF\u9009\u3002action=list \u65F6\u6309\u72B6\u6001\u8FC7\u6EE4\uFF0C\u652F\u6301\u5355\u503C\u6216\u9017\u53F7\u5206\u9694\u591A\u503C\uFF08\u5982 'running,orphaned'\uFF09\u3002\u4E0E statusFilter \u540C\u4E49\uFF0Cstatus \u4F18\u5148\uFF1B\u53D6\u503C\u5305\u542B orphaned\uFF08pid \u5DF2\u6B7B\u4F46\u8BB0\u5F55\u4ECD running \u7684\u5B64\u513F run\uFF09\u3002\u9ED8\u8BA4 all\uFF08\u4E0D\u8FC7\u6EE4\uFF09\u3002"
|
|
22189
|
+
},
|
|
22127
22190
|
statusFilter: {
|
|
22128
22191
|
type: "string",
|
|
22129
|
-
enum: ["running", "done", "failed", "cancelled", "all"],
|
|
22130
|
-
description: "\u53EF\u9009\u3002action=list \u65F6\u6309\u72B6\u6001\u8FC7\u6EE4\uFF0C\u9ED8\u8BA4 all\u3002"
|
|
22192
|
+
enum: ["running", "done", "failed", "cancelled", "orphaned", "all"],
|
|
22193
|
+
description: "\u53EF\u9009\u3002action=list \u65F6\u6309\u72B6\u6001\u8FC7\u6EE4\uFF0C\u9ED8\u8BA4 all\u3002\u4E0E status \u540C\u4E49\uFF08status \u4F18\u5148\uFF0C\u4E14 status \u652F\u6301\u591A\u503C\uFF09\u3002"
|
|
22131
22194
|
},
|
|
22132
22195
|
limit: {
|
|
22133
22196
|
type: "number",
|
|
22134
|
-
description: "\u53EF\u9009\u3002action=list \u65F6\u9650\u5236\u8FD4\u56DE\u6570\u91CF\uFF0C\u9ED8\u8BA4 20\u3002"
|
|
22197
|
+
description: "\u53EF\u9009\u3002action=list \u65F6\u9650\u5236\u8FD4\u56DE\u6570\u91CF\uFF0C\u9ED8\u8BA4 20\uFF0C\u4E0A\u9650 200\u3002\u4E0D\u5E26\u4EFB\u4F55\u53C2\u6570\u4E0D\u4F1A\u8FD4\u56DE\u5168\u91CF\u3002"
|
|
22198
|
+
},
|
|
22199
|
+
offset: {
|
|
22200
|
+
type: "number",
|
|
22201
|
+
description: "\u53EF\u9009\u3002action=list \u65F6\u8DF3\u8FC7\u524D N \u6761\uFF0C\u914D\u5408 limit \u7FFB\u9875\u3002\u9ED8\u8BA4 0\u3002"
|
|
22135
22202
|
}
|
|
22136
22203
|
},
|
|
22137
22204
|
required: ["action"]
|
|
22138
22205
|
}
|
|
22139
22206
|
};
|
|
22140
22207
|
async function controlAgentRunFunc(args, thunkApi, _context) {
|
|
22141
|
-
const { action, runId, tailLines, statusFilter, limit } = args;
|
|
22208
|
+
const { action, runId, tailLines, batchId, status, statusFilter, limit, offset } = args;
|
|
22142
22209
|
if (action === "list") {
|
|
22143
|
-
return handleList(thunkApi, { statusFilter, limit });
|
|
22210
|
+
return handleList(thunkApi, { batchId, status, statusFilter, limit, offset });
|
|
22211
|
+
}
|
|
22212
|
+
if (action === "todo") {
|
|
22213
|
+
return handleTodo(thunkApi, { status });
|
|
22144
22214
|
}
|
|
22145
22215
|
if (action === "status") {
|
|
22146
22216
|
if (!runId) throw new Error('controlAgentRun(action:"status"): \u7F3A\u5C11 runId\u3002');
|
|
@@ -22155,8 +22225,11 @@ async function controlAgentRunFunc(args, thunkApi, _context) {
|
|
|
22155
22225
|
async function handleList(thunkApi, opts) {
|
|
22156
22226
|
try {
|
|
22157
22227
|
const body = { action: "list" };
|
|
22158
|
-
|
|
22228
|
+
const statusVal = opts.status ?? opts.statusFilter;
|
|
22229
|
+
if (statusVal) body.statusFilter = statusVal;
|
|
22230
|
+
if (opts.batchId) body.batchId = opts.batchId;
|
|
22159
22231
|
if (opts.limit !== void 0) body.limit = opts.limit;
|
|
22232
|
+
if (opts.offset !== void 0) body.offset = opts.offset;
|
|
22160
22233
|
const data = await callToolApi(
|
|
22161
22234
|
thunkApi,
|
|
22162
22235
|
"/api/agent/runs/control",
|
|
@@ -22165,9 +22238,10 @@ async function handleList(thunkApi, opts) {
|
|
|
22165
22238
|
);
|
|
22166
22239
|
const resData = data?.data ?? data;
|
|
22167
22240
|
const runs = resData?.runs ?? [];
|
|
22168
|
-
const
|
|
22241
|
+
const total = typeof resData?.total === "number" ? resData.total : runs.length;
|
|
22242
|
+
const hasMore = typeof resData?.hasMore === "boolean" ? resData.hasMore : false;
|
|
22169
22243
|
return {
|
|
22170
|
-
rawData: { runs, count },
|
|
22244
|
+
rawData: { runs, count: runs.length, total, hasMore },
|
|
22171
22245
|
displayData: formatListRunsCard(runs)
|
|
22172
22246
|
};
|
|
22173
22247
|
} catch (e) {
|
|
@@ -22196,9 +22270,12 @@ async function handleStatus(thunkApi, opts) {
|
|
|
22196
22270
|
return {
|
|
22197
22271
|
rawData: { found: true, ...run, ...logLines ? { logLines } : {} },
|
|
22198
22272
|
displayData: formatStatusRunCard(name, run.status, {
|
|
22273
|
+
runId: opts.runId,
|
|
22199
22274
|
lastToolNames: run.lastToolNames,
|
|
22200
22275
|
toolCallCount: run.toolCallCount,
|
|
22276
|
+
lastAssistantText: run.lastAssistantText,
|
|
22201
22277
|
errorMessage: run.errorMessage,
|
|
22278
|
+
timing: { startedAt: run.startedAt, finishedAt: run.finishedAt },
|
|
22202
22279
|
logLines
|
|
22203
22280
|
})
|
|
22204
22281
|
};
|
|
@@ -22224,6 +22301,28 @@ async function handleStop(thunkApi, opts) {
|
|
|
22224
22301
|
throw new Error(`controlAgentRun(stop) \u5931\u8D25: ${toErrorMessage(e)}`);
|
|
22225
22302
|
}
|
|
22226
22303
|
}
|
|
22304
|
+
async function handleTodo(thunkApi, opts) {
|
|
22305
|
+
try {
|
|
22306
|
+
const body = { action: "todo" };
|
|
22307
|
+
if (opts.status) body.status = opts.status;
|
|
22308
|
+
const data = await callToolApi(
|
|
22309
|
+
thunkApi,
|
|
22310
|
+
"/api/agent/runs/control",
|
|
22311
|
+
body,
|
|
22312
|
+
{ withAuth: true }
|
|
22313
|
+
);
|
|
22314
|
+
const resData = data?.data ?? data;
|
|
22315
|
+
const todos = resData?.todos ?? [];
|
|
22316
|
+
return {
|
|
22317
|
+
rawData: { todos, count: todos.length },
|
|
22318
|
+
displayData: formatListRunsCard(
|
|
22319
|
+
todos.map((t) => ({ agentName: t?.title ?? t?.id, status: t?.status }))
|
|
22320
|
+
)
|
|
22321
|
+
};
|
|
22322
|
+
} catch (e) {
|
|
22323
|
+
throw new Error(`controlAgentRun(todo) \u5931\u8D25: ${toErrorMessage(e)}`);
|
|
22324
|
+
}
|
|
22325
|
+
}
|
|
22227
22326
|
|
|
22228
22327
|
// packages/ai/tools/agent/agentTools.ts
|
|
22229
22328
|
var agentToolDefinitions = [
|
|
@@ -23417,7 +23516,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
23417
23516
|
if (!executionInput) {
|
|
23418
23517
|
throw new Error(`ToolRun ${id} has no input to execute with.`);
|
|
23419
23518
|
}
|
|
23420
|
-
const { findToolExecutor: findToolExecutor2 } = await import("./tools-
|
|
23519
|
+
const { findToolExecutor: findToolExecutor2 } = await import("./tools-ECGXR5QF.js");
|
|
23421
23520
|
const { executor } = findToolExecutor2(run.toolName);
|
|
23422
23521
|
toolRunStarted({
|
|
23423
23522
|
id: run.id,
|
|
@@ -23441,7 +23540,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
23441
23540
|
const latestState = thunkApi.getState();
|
|
23442
23541
|
const userId = latestState.auth?.currentUser?.userId;
|
|
23443
23542
|
if (userId) {
|
|
23444
|
-
const { fetchUserSpaceMemberships } = await import("./spaceSlice-
|
|
23543
|
+
const { fetchUserSpaceMemberships } = await import("./spaceSlice-ZXLLG3CR.js");
|
|
23445
23544
|
await thunkApi.dispatch(fetchUserSpaceMemberships(userId));
|
|
23446
23545
|
}
|
|
23447
23546
|
}
|
|
@@ -25924,7 +26023,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
25924
26023
|
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
25925
26024
|
};
|
|
25926
26025
|
await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
|
|
25927
|
-
const { getDocState, applyExternalDocUpdate } = await import("./docStore-
|
|
26026
|
+
const { getDocState, applyExternalDocUpdate } = await import("./docStore-5HOJ4D7D.js");
|
|
25928
26027
|
if (getDocState().pageKey === id) {
|
|
25929
26028
|
applyExternalDocUpdate({
|
|
25930
26029
|
slateData: finalSlateData,
|
|
@@ -25949,7 +26048,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
25949
26048
|
// packages/ai/tools/updateUserPreferenceProfileTool.ts
|
|
25950
26049
|
async function dispatchSetSettings(thunkApi, changes) {
|
|
25951
26050
|
const injectedSetSettings = thunkApi?.extra?.setSettings;
|
|
25952
|
-
const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-
|
|
26051
|
+
const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-7MNKHZ6R.js")).setSettings;
|
|
25953
26052
|
await thunkApi.dispatch(setSettings(changes)).unwrap();
|
|
25954
26053
|
}
|
|
25955
26054
|
var updateUserPreferenceProfileFunctionSchema = {
|
|
@@ -26546,12 +26645,23 @@ var baseToolDefinitions = [
|
|
|
26546
26645
|
schema: uiAskChoiceFunctionSchema,
|
|
26547
26646
|
executor: uiAskChoiceFunc,
|
|
26548
26647
|
description: {
|
|
26549
|
-
name: "
|
|
26648
|
+
name: "ask_user",
|
|
26550
26649
|
description: "\u5411\u7528\u6237\u63D0\u51FA\u4E00\u4E2A\u5E26\u591A\u4E2A\u9009\u9879\u7684\u95EE\u9898\uFF0C\u8BA9\u754C\u9762\u5C55\u793A\u6309\u94AE\u4F9B\u7528\u6237\u9009\u62E9\u3002",
|
|
26551
26650
|
category: "\u4EA4\u4E92 / UI"
|
|
26552
26651
|
},
|
|
26553
26652
|
behavior: "answer"
|
|
26554
26653
|
},
|
|
26654
|
+
{
|
|
26655
|
+
id: "queryMemory",
|
|
26656
|
+
schema: queryMemoryFunctionSchema,
|
|
26657
|
+
executor: queryMemoryFunc,
|
|
26658
|
+
description: {
|
|
26659
|
+
name: "queryMemory",
|
|
26660
|
+
description: "\u6309\u9700\u67E5\u8BE2\u5F53\u524D\u7528\u6237\u3001Space \u548C\u52A9\u624B\u4E3B\u4F53\u7684\u957F\u671F\u8BB0\u5FC6\u3002",
|
|
26661
|
+
category: "\u8BB0\u5FC6 / \u957F\u671F\u4E0A\u4E0B\u6587"
|
|
26662
|
+
},
|
|
26663
|
+
behavior: "data"
|
|
26664
|
+
},
|
|
26555
26665
|
{
|
|
26556
26666
|
id: "rememberMemory",
|
|
26557
26667
|
schema: rememberMemoryFunctionSchema,
|
|
@@ -28190,17 +28300,8 @@ export {
|
|
|
28190
28300
|
readXPostFunc,
|
|
28191
28301
|
readXhsProfileFunctionSchema,
|
|
28192
28302
|
readXhsProfileFunc,
|
|
28193
|
-
isAgentNameFallback,
|
|
28194
|
-
resolveRunLabel,
|
|
28195
|
-
formatStartRunCard,
|
|
28196
|
-
formatStatusRunCard,
|
|
28197
|
-
formatStopRunCard,
|
|
28198
|
-
formatListRunsCard,
|
|
28199
|
-
formatNotFoundRunCard,
|
|
28200
|
-
isAgentRunTerminalStatus,
|
|
28201
28303
|
TOOL_PACKS,
|
|
28202
28304
|
resolveEffectiveEnabledPacks,
|
|
28203
|
-
getDefaultSystemCapabilityTools,
|
|
28204
28305
|
addDefaultSystemCapabilityTools,
|
|
28205
28306
|
applySystemBuiltinSkillFilter,
|
|
28206
28307
|
expandEnabledPacks,
|