nolo-cli 0.10.0 → 0.12.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-YAXYAUOK.js → _executeModel-MWAY74HA.js} +47 -44
- package/{action-TLI3V62L.js → action-RAXNQQKC.js} +9 -10
- package/{addContentAction-PLWJSCOZ.js → addContentAction-ZHI7TVV3.js} +8 -10
- package/{addDialogAgentAction-BJ6SB76X.js → addDialogAgentAction-JWXPKXNC.js} +7 -8
- package/{agentDeleteCommand-2VYX73U5.js → agentDeleteCommand-LXR5A5FV.js} +36 -26
- package/{agentEmailCommands-3GDZIX64.js → agentEmailCommands-DXRAP7BB.js} +63 -58
- package/{agentListCommands-UWVBT3LH.js → agentListCommands-ZFMS5ZLY.js} +132 -35
- package/{agentMachineCommands-WOKMUG2Y.js → agentMachineCommands-ZJLYVV52.js} +40 -29
- package/{agentPullCommand-O2MTUAFR.js → agentPullCommand-KRBRIFIY.js} +6 -6
- package/{agentRecordCommands-MVNZRH3U.js → agentRecordCommands-DFS626TB.js} +55 -50
- package/{agentRunCommand-K7THIJLA.js → agentRunCommand-GWBIE2TS.js} +60 -56
- package/{agentRunControl-K4VKNEHF.js → agentRunControl-IX4F5W2C.js} +3 -3
- package/{agentRuntimeLocal-WJIGU24U.js → agentRuntimeLocal-YNZSHMZC.js} +29 -14
- package/{agentSlice-LL5TKZEO.js → agentSlice-T2PXOEPQ.js} +9 -10
- package/{authCommand-TC2SW2CQ.js → authCommand-DMW336GT.js} +13 -13
- package/{authCommands-XPEHTKSM.js → authCommands-GH5T6RYV.js} +6 -6
- package/{chunk-5JGGZCZL.js → chunk-3HHTVM6G.js} +64 -5
- package/chunk-3QKO4EHV.js +112 -0
- package/{chunk-AUQ747NZ.js → chunk-43UD5ZP7.js} +76 -15
- package/{chunk-6SLCD4RB.js → chunk-4BTHUYMY.js} +596 -67
- package/{chunk-T7R3NGUU.js → chunk-4EH7AR52.js} +13 -13
- package/{chunk-C3RUNRHT.js → chunk-4GBNEA5B.js} +1 -1
- package/{chunk-4IJYA27C.js → chunk-4LG74DRG.js} +1 -1
- package/{chunk-2FTTDCD4.js → chunk-4ON5AV72.js} +2 -1
- package/{chunk-IWX4UW2E.js → chunk-524BDL33.js} +89 -8
- package/{chunk-EXXFGKF7.js → chunk-5ITRDSHY.js} +1400 -119
- package/{chunk-ISNCLGUZ.js → chunk-5NBHQD4D.js} +4 -3
- package/{chunk-7KNKFIRO.js → chunk-6LMFFG3K.js} +3 -3
- package/{chunk-PAKN26FP.js → chunk-6OVCRC72.js} +1 -1
- package/{chunk-CKOJQDKR.js → chunk-7JJCGV7N.js} +146 -3
- package/{chunk-KBKYAONQ.js → chunk-7MYHLZ3F.js} +2 -2
- package/{chunk-PIVFPOW6.js → chunk-AM53Q2SD.js} +175 -2541
- package/chunk-BYXBJQAS.js +0 -0
- package/{chunk-CL3IOKGK.js → chunk-DE5BA4O6.js} +20 -2
- package/{chunk-6KUOUWMP.js → chunk-DRMGJFGQ.js} +300 -89
- package/{chunk-QAALPJS7.js → chunk-EBH7G34M.js} +20 -7
- package/{chunk-HJGEVL7C.js → chunk-G3B356GF.js} +15 -17
- package/{chunk-OZMMKDBI.js → chunk-GDBCUWQ3.js} +26 -20
- package/{chunk-I5URP43I.js → chunk-GPZM7QH6.js} +9 -9
- package/chunk-IKXL2HZ3.js +70 -0
- package/{chunk-AS4PVWA4.js → chunk-IVAOVLM7.js} +1 -1
- package/{chunk-TNPIMII7.js → chunk-JUN3HFMN.js} +221 -81
- package/{chunk-HFASY3WO.js → chunk-JZDIW766.js} +1 -1
- package/{chunk-6JJWFVZ6.js → chunk-LHSJMY5V.js} +17 -17
- package/chunk-LTRXGFMS.js +83 -0
- package/{chunk-YIHFXH5Q.js → chunk-MEVCDATU.js} +3 -3
- package/{chunk-TILFE6LV.js → chunk-NCGFB7NN.js} +5 -3
- package/{chunk-BE2OOJ5P.js → chunk-NITP2JDG.js} +42 -11
- package/{chunk-YPRZSPF3.js → chunk-OCDEWRE2.js} +1 -1
- package/{chunk-VVX233PH.js → chunk-OHEKYYJF.js} +9 -9
- package/chunk-OOIN7HSO.js +146 -0
- package/{chunk-WPE4F4Z6.js → chunk-OPKKB25T.js} +1 -1
- package/{chunk-OR2XR25C.js → chunk-QCA3EPYK.js} +8 -8
- package/{chunk-SL35K7AH.js → chunk-QLUFR47U.js} +13 -83
- package/{chunk-CDTLMEB3.js → chunk-RNQ5BLR2.js} +1 -1
- package/{chunk-AVMKZHBC.js → chunk-RSEUHW6T.js} +3 -2
- package/{chunk-TYSCFY6S.js → chunk-RZ735TLX.js} +762 -167
- package/chunk-S3UTETIC.js +4885 -0
- package/chunk-S73OEOHH.js +2286 -0
- package/{chunk-JRKKFRAV.js → chunk-TSKWE74T.js} +58 -8
- package/{chunk-A67QFHAA.js → chunk-UG3WOFU6.js} +1 -1
- package/{chunk-4ZDM73SD.js → chunk-V2J635L5.js} +1 -1
- package/chunk-VC6OZXO5.js +298 -0
- package/{chunk-7U44LYTR.js → chunk-WPHL6ALY.js} +1 -1
- package/{chunk-4SIMLBEU.js → chunk-WTYKCU4W.js} +9 -9
- package/{chunk-NPVBXJY2.js → chunk-WWU275LU.js} +9 -9
- package/{chunk-ZQ2UM4KG.js → chunk-WZSRQNQG.js} +1 -292
- package/{chunk-DSZUWUYB.js → chunk-XHQWJUW4.js} +2 -2
- package/{chunk-GAKEBQD6.js → chunk-YDCZVUFP.js} +4 -0
- package/{chunk-2O4IZNTG.js → chunk-YTQLJYLB.js} +2 -2
- package/{chunk-3Y3HW5PX.js → chunk-ZPFRLGIZ.js} +1512 -935
- package/{chunk-5KLGBAAR.js → chunk-ZR4VHQ5D.js} +14 -13
- package/cliEnvHelpers-VYC2OPTB.js +30 -0
- package/{cliExecutor-DNE7TCC4.js → cliExecutor-K3F7DMRO.js} +2 -2
- package/{createAgentAutomationAction-CCE7CWGQ.js → createAgentAutomationAction-G32GKDGV.js} +22 -23
- package/{createDialogAction-QTRR4AT7.js → createDialogAction-TISANRZK.js} +25 -25
- package/{createPageAction-Y4KQOAJE.js → createPageAction-O7KOYNV4.js} +27 -27
- package/{dbSlice-WWNV2SGX.js → dbSlice-WDP2ZZHK.js} +7 -8
- package/{deleteFile-OW53A6BX.js → deleteFile-M7UNIUOO.js} +5 -5
- package/{dialogCommands-SMKIAC3Y.js → dialogCommands-6JPB3YQY.js} +33 -23
- package/{dialogSlice-PT7YBWNE.js → dialogSlice-PRHHYSP5.js} +21 -22
- package/{docCreateCommands-RFNA4HNM.js → docCreateCommands-75E6TZNN.js} +36 -25
- package/{docDeleteCommands-4YZ325M6.js → docDeleteCommands-EJHLN7LW.js} +37 -27
- package/{docReadCommands-RT6VAFFG.js → docReadCommands-RJYBC4FS.js} +36 -25
- package/{docStore-QUQZAFZF.js → docStore-H5VWKT5D.js} +22 -23
- package/{docUpdateCommands-EKKKNYPW.js → docUpdateCommands-MG4CNISV.js} +36 -25
- package/fetchMessages-KTNM7QAR.js +1 -1
- package/{getPricing-3E6UNPKL.js → getPricing-6TOZXPAU.js} +7 -3
- package/{handleSendMessageAction-5NSYAS53.js → handleSendMessageAction-QTUGICSZ.js} +22 -23
- package/index.js +77 -76
- package/{machineCommands-DOOSIUKG.js → machineCommands-MAV7M3TK.js} +67 -60
- package/{machineWsRunDispatch-PIOIQRBW.js → machineWsRunDispatch-ZOEGTKHC.js} +54 -49
- package/{memoryCommands-O4MIPIWQ.js → memoryCommands-AFMES3LN.js} +5 -5
- package/{models-4OPOOLFS.js → models-LSCRJJ6P.js} +2 -2
- package/package.json +1 -1
- package/{read-GW7ZEI23.js → read-2MIMRBZ2.js} +5 -5
- package/{readDocTool-HUFU6OCT.js → readDocTool-QHVGQHUJ.js} +1 -1
- package/{readlineWorkspace-QEAOH5EP.js → readlineWorkspace-SWQKC7ZS.js} +1126 -678
- package/{removeDialogAgentAction-OHMCNSSD.js → removeDialogAgentAction-GTX5AN54.js} +11 -11
- package/{runAgentClientLoop-AIGLXC3R.js → runAgentClientLoop-P25HACXX.js} +42 -40
- package/{runtimeDoctorCommands-LRHLPDRC.js → runtimeDoctorCommands-QNF3J3UV.js} +6 -6
- package/{setDialogExtraReferencesAction-YJUM5BWQ.js → setDialogExtraReferencesAction-WFQ63KYO.js} +7 -8
- package/{setPrimaryDialogAgentAction-EBAREZDM.js → setPrimaryDialogAgentAction-P57FXTSU.js} +11 -11
- package/{settingSlice-UW4IUI5L.js → settingSlice-CK5YZGNI.js} +8 -9
- package/skillDiscovery-ZYHSX7VD.js +16 -0
- package/{spaceCommands-BKHSPR73.js → spaceCommands-6O5EFEM5.js} +41 -33
- package/{spaceSlice-TYNWE3OC.js → spaceSlice-4EXTYXS4.js} +25 -24
- package/{streamAgentChatTurn-HRMFFA7E.js → streamAgentChatTurn-Q3FJAHG2.js} +205 -107
- package/{tableCommands-O7O2LBEG.js → tableCommands-E4SQWDOX.js} +10 -10
- package/{tools-3JNDS3WH.js → tools-AHNQE4GP.js} +33 -31
- package/{tuiSummaryLlmCaller-RV3THLZF.js → tuiSummaryLlmCaller-TXLF4MEI.js} +8 -6
- package/{updateCommands-VOSPKXFF.js → updateCommands-XZDOOYFH.js} +13 -5
- package/{updateDialogTitleAction-OCETSKCP.js → updateDialogTitleAction-XZDVLKVX.js} +25 -25
- package/chunk-5MMAK75Q.js +0 -15
- package/chunk-AZPCASRE.js +0 -36
- package/chunk-BBYVOSU2.js +0 -792
- package/chunk-DCOA4QSN.js +0 -105
- package/chunk-UAD2WT54.js +0 -64
- package/{chunk-DZ3XJVET.js → chunk-3QAF2LTL.js} +3 -3
- package/{chunk-X7W4TNB4.js → chunk-CMKUBIGW.js} +3 -3
- package/{chunk-4CQLVGRV.js → chunk-ID4G2MAR.js} +3 -3
- package/{chunk-5CS33IBL.js → chunk-PDL2AV3E.js} +3 -3
- package/{chunk-EHLHSX7R.js → chunk-TOILAPLH.js} +3 -3
- package/{chunk-UTLZINAP.js → chunk-TSUJOM6N.js} +10 -10
- package/{offlineMarxistsAgentCommand-BCPJITJL.js → offlineMarxistsAgentCommand-5OOWZLJI.js} +3 -3
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
|
+
CORE_DRAIN_REASON,
|
|
2
3
|
isGatewayHttpStatus,
|
|
3
4
|
normalizeNonNegativeMs,
|
|
4
5
|
parseRetryAfterHeaderMs
|
|
5
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YDCZVUFP.js";
|
|
7
|
+
import {
|
|
8
|
+
sortSafeAgentSummaries,
|
|
9
|
+
toSafeAgentSummary
|
|
10
|
+
} from "./chunk-OOIN7HSO.js";
|
|
6
11
|
import {
|
|
7
12
|
getUserDataItemTimestamp,
|
|
8
13
|
mergeAndDedupUserData
|
|
@@ -13,7 +18,7 @@ import {
|
|
|
13
18
|
readPageFunc,
|
|
14
19
|
readPageFunctionSchema,
|
|
15
20
|
slateToSimplifiedMarkdown
|
|
16
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-IVAOVLM7.js";
|
|
17
22
|
import {
|
|
18
23
|
markdownToSlate
|
|
19
24
|
} from "./chunk-3LY4F7SV.js";
|
|
@@ -23,12 +28,15 @@ import {
|
|
|
23
28
|
import {
|
|
24
29
|
slateToRenderMarkdown
|
|
25
30
|
} from "./chunk-63W5N6P3.js";
|
|
31
|
+
import {
|
|
32
|
+
isSkillSummaryMarker
|
|
33
|
+
} from "./chunk-VF4K2QE6.js";
|
|
26
34
|
import {
|
|
27
35
|
createDocState
|
|
28
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-MEVCDATU.js";
|
|
29
37
|
import {
|
|
30
38
|
createDialogAction
|
|
31
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-G3B356GF.js";
|
|
32
40
|
import {
|
|
33
41
|
buildSkillDocMarkdown,
|
|
34
42
|
normalizeSkillBudgetTier,
|
|
@@ -37,12 +45,11 @@ import {
|
|
|
37
45
|
parseExternalSkillMarkdown,
|
|
38
46
|
parseSkillDocProtocol,
|
|
39
47
|
resolvePageSkillMetadata
|
|
40
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-VC6OZXO5.js";
|
|
41
49
|
import {
|
|
42
50
|
addCategory,
|
|
43
51
|
addContentToSpace,
|
|
44
52
|
addRow,
|
|
45
|
-
buildDatabaseFileContentUrl,
|
|
46
53
|
createTable,
|
|
47
54
|
deleteDbKey,
|
|
48
55
|
deleteSpace,
|
|
@@ -68,20 +75,13 @@ import {
|
|
|
68
75
|
updateContentCategory,
|
|
69
76
|
updateContentTitle,
|
|
70
77
|
updateStep
|
|
71
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-AM53Q2SD.js";
|
|
72
79
|
import {
|
|
73
80
|
createAgent,
|
|
74
81
|
runLlm,
|
|
75
82
|
streamAgentChatTurn,
|
|
76
83
|
updateAgent
|
|
77
|
-
} from "./chunk-
|
|
78
|
-
import {
|
|
79
|
-
addContentAction
|
|
80
|
-
} from "./chunk-5JGGZCZL.js";
|
|
81
|
-
import {
|
|
82
|
-
createSpaceKey,
|
|
83
|
-
normalizeSpaceId
|
|
84
|
-
} from "./chunk-UAD2WT54.js";
|
|
84
|
+
} from "./chunk-GPZM7QH6.js";
|
|
85
85
|
import {
|
|
86
86
|
NOLO_WORKSPACE_TOOL_NAMES,
|
|
87
87
|
buildNoloSubjectRefQueryTarget,
|
|
@@ -97,10 +97,13 @@ import {
|
|
|
97
97
|
redactAgentRecordForWorkspaceTool,
|
|
98
98
|
resolveNoloDialogInput,
|
|
99
99
|
verifyNoloDialogSubjectRefQuery
|
|
100
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-43UD5ZP7.js";
|
|
101
|
+
import {
|
|
102
|
+
buildDatabaseFileContentUrl
|
|
103
|
+
} from "./chunk-S73OEOHH.js";
|
|
101
104
|
import {
|
|
102
105
|
DEFAULT_MODEL
|
|
103
|
-
} from "./chunk-
|
|
106
|
+
} from "./chunk-S3UTETIC.js";
|
|
104
107
|
import {
|
|
105
108
|
ToolApiError,
|
|
106
109
|
buildToolRequestHeaders,
|
|
@@ -118,22 +121,30 @@ import {
|
|
|
118
121
|
selectCurrentDialogKey,
|
|
119
122
|
selectPendingRawDataByPageKey
|
|
120
123
|
} from "./chunk-3ASDTTEI.js";
|
|
121
|
-
import {
|
|
122
|
-
compactWhitespace
|
|
123
|
-
} from "./chunk-DWLEOOGR.js";
|
|
124
124
|
import {
|
|
125
125
|
toErrorMessage
|
|
126
126
|
} from "./chunk-HNMXYYJR.js";
|
|
127
|
+
import {
|
|
128
|
+
compactWhitespace
|
|
129
|
+
} from "./chunk-DWLEOOGR.js";
|
|
127
130
|
import {
|
|
128
131
|
shareResourceAction
|
|
129
|
-
} from "./chunk-
|
|
132
|
+
} from "./chunk-7MYHLZ3F.js";
|
|
130
133
|
import {
|
|
131
134
|
AGENT_UPDATE_FIELD_NAMES,
|
|
132
135
|
normalizeAgentUpdateFieldList,
|
|
133
136
|
selectAutoApproveSelfUpdateFields,
|
|
134
137
|
selectCurrentServer,
|
|
135
138
|
selectSyncServers
|
|
136
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-WTYKCU4W.js";
|
|
140
|
+
import {
|
|
141
|
+
asRecordOrEmpty
|
|
142
|
+
} from "./chunk-KX6YBIHG.js";
|
|
143
|
+
import {
|
|
144
|
+
addContentAction,
|
|
145
|
+
createSpaceKey,
|
|
146
|
+
normalizeSpaceId
|
|
147
|
+
} from "./chunk-3HHTVM6G.js";
|
|
137
148
|
import {
|
|
138
149
|
patch,
|
|
139
150
|
read,
|
|
@@ -141,10 +152,7 @@ import {
|
|
|
141
152
|
readAndWaitAction,
|
|
142
153
|
toTimestampMs,
|
|
143
154
|
write
|
|
144
|
-
} from "./chunk-
|
|
145
|
-
import {
|
|
146
|
-
asRecordOrEmpty
|
|
147
|
-
} from "./chunk-KX6YBIHG.js";
|
|
155
|
+
} from "./chunk-NITP2JDG.js";
|
|
148
156
|
import {
|
|
149
157
|
SEPARATOR,
|
|
150
158
|
createAgentKey,
|
|
@@ -169,7 +177,7 @@ import {
|
|
|
169
177
|
} from "./chunk-QSJ3HFEF.js";
|
|
170
178
|
import {
|
|
171
179
|
readAction
|
|
172
|
-
} from "./chunk-
|
|
180
|
+
} from "./chunk-XHQWJUW4.js";
|
|
173
181
|
import {
|
|
174
182
|
createAsyncThunk,
|
|
175
183
|
getRuntimeServerContext,
|
|
@@ -177,28 +185,28 @@ import {
|
|
|
177
185
|
selectIdentityToken,
|
|
178
186
|
selectIdentityUserId,
|
|
179
187
|
selectRuntimeSnapshot
|
|
180
|
-
} from "./chunk-
|
|
188
|
+
} from "./chunk-TSUJOM6N.js";
|
|
181
189
|
import {
|
|
182
190
|
isAbortError
|
|
183
191
|
} from "./chunk-OOSFSFMA.js";
|
|
184
192
|
import {
|
|
185
|
-
|
|
186
|
-
} from "./chunk-
|
|
193
|
+
isRecord
|
|
194
|
+
} from "./chunk-KUG52IAP.js";
|
|
195
|
+
import {
|
|
196
|
+
asTrimmedString
|
|
197
|
+
} from "./chunk-3EUW3WEO.js";
|
|
187
198
|
import {
|
|
188
199
|
API_ENDPOINTS
|
|
189
200
|
} from "./chunk-LCBAMY2M.js";
|
|
190
201
|
import {
|
|
191
|
-
|
|
192
|
-
} from "./chunk-
|
|
202
|
+
DEFAULT_LOCAL_API_ORIGIN
|
|
203
|
+
} from "./chunk-4SN6J65J.js";
|
|
193
204
|
import {
|
|
194
205
|
normalizeServerOrigin
|
|
195
206
|
} from "./chunk-CF7PE763.js";
|
|
196
207
|
import {
|
|
197
208
|
asOptionalTrimmedString
|
|
198
209
|
} from "./chunk-G3SUCT4W.js";
|
|
199
|
-
import {
|
|
200
|
-
isRecord
|
|
201
|
-
} from "./chunk-KUG52IAP.js";
|
|
202
210
|
import {
|
|
203
211
|
__toESM
|
|
204
212
|
} from "./chunk-4VNS5WPM.js";
|
|
@@ -743,7 +751,19 @@ var ai_locale_default = {
|
|
|
743
751
|
chat: "Start Chat",
|
|
744
752
|
public: "Public",
|
|
745
753
|
byConversation: "Create AI by Conversation",
|
|
746
|
-
manualConfiguration: "Manual Configuration"
|
|
754
|
+
manualConfiguration: "Manual Configuration",
|
|
755
|
+
quickCreate: {
|
|
756
|
+
reasoningEffort: "Reasoning Effort",
|
|
757
|
+
reasoningEffortOptions: {
|
|
758
|
+
none: "None",
|
|
759
|
+
minimal: "Minimal",
|
|
760
|
+
low: "Low",
|
|
761
|
+
medium: "Medium",
|
|
762
|
+
high: "High",
|
|
763
|
+
xhigh: "X-High",
|
|
764
|
+
max: "Max"
|
|
765
|
+
}
|
|
766
|
+
}
|
|
747
767
|
},
|
|
748
768
|
// RN / local-first create sheet (useTranslation("ai") → localCreate.*)
|
|
749
769
|
localCreate: {
|
|
@@ -848,7 +868,7 @@ var ai_locale_default = {
|
|
|
848
868
|
frequencyPenalty: "Reduces word repetition, from -2 to 2. Higher discourages repetition.",
|
|
849
869
|
presencePenalty: "Reduces topic repetition, from -2 to 2. Higher encourages new topics.",
|
|
850
870
|
maxTokens: "Limits response length, minimum 1.",
|
|
851
|
-
reasoningEffort: "How hard the model thinks before answering
|
|
871
|
+
reasoningEffort: "How hard the model thinks before answering. Supported values: none / minimal / low / medium / high / xhigh / max (varies by model/provider). Only applies to models that support reasoning effort."
|
|
852
872
|
},
|
|
853
873
|
// Validation Messages
|
|
854
874
|
validation: {
|
|
@@ -866,7 +886,7 @@ var ai_locale_default = {
|
|
|
866
886
|
maxTokensMin: "Max Tokens must be at least 1",
|
|
867
887
|
maxTokensMax: "Max Tokens must be at most 500,000",
|
|
868
888
|
maxTokensRange: "Max Tokens must be between {{min}} and {{max}}",
|
|
869
|
-
reasoningEffortInvalid: "Reasoning effort must be low, medium, or
|
|
889
|
+
reasoningEffortInvalid: "Reasoning effort must be none, minimal, low, medium, high, xhigh, or max",
|
|
870
890
|
thinkingBudgetMin: "Thinking budget must be at least 1024 tokens",
|
|
871
891
|
thinkingBudgetMax: "Thinking budget must be at most 100,000 tokens",
|
|
872
892
|
apiKeyRequired: "API Key is required when not using Server Proxy, Ollama or Custom provider",
|
|
@@ -1120,7 +1140,19 @@ var ai_locale_default = {
|
|
|
1120
1140
|
chat: "\u5F00\u59CB\u804A\u5929",
|
|
1121
1141
|
public: "\u516C\u5F00",
|
|
1122
1142
|
byConversation: "\u7528\u5BF9\u8BDD\u521B\u5EFA AI",
|
|
1123
|
-
manualConfiguration: "\u624B\u52A8\u914D\u7F6E AI"
|
|
1143
|
+
manualConfiguration: "\u624B\u52A8\u914D\u7F6E AI",
|
|
1144
|
+
quickCreate: {
|
|
1145
|
+
reasoningEffort: "\u63A8\u7406\u5F3A\u5EA6",
|
|
1146
|
+
reasoningEffortOptions: {
|
|
1147
|
+
none: "\u5173\u95ED",
|
|
1148
|
+
minimal: "\u6781\u7B80",
|
|
1149
|
+
low: "\u4F4E",
|
|
1150
|
+
medium: "\u4E2D",
|
|
1151
|
+
high: "\u9AD8",
|
|
1152
|
+
xhigh: "\u8D85\u9AD8",
|
|
1153
|
+
max: "\u6700\u5927"
|
|
1154
|
+
}
|
|
1155
|
+
}
|
|
1124
1156
|
},
|
|
1125
1157
|
// RN / local-first create sheet (useTranslation("ai") → localCreate.*)
|
|
1126
1158
|
localCreate: {
|
|
@@ -1224,7 +1256,7 @@ var ai_locale_default = {
|
|
|
1224
1256
|
frequencyPenalty: "\u964D\u4F4E\u8BCD\u6C47\u91CD\u590D\u5EA6\uFF0C\u8303\u56F4-2\u52302\u3002\u8D8A\u9AD8\u8D8A\u80FD\u907F\u514D\u91CD\u590D\u7528\u8BCD\u3002",
|
|
1225
1257
|
presencePenalty: "\u964D\u4F4E\u4E3B\u9898\u91CD\u590D\u5EA6\uFF0C\u8303\u56F4-2\u52302\u3002\u8D8A\u9AD8\u8D8A\u9F13\u52B1\u8C08\u8BBA\u65B0\u4E3B\u9898\u3002",
|
|
1226
1258
|
maxTokens: "\u9650\u5236\u5355\u6B21\u56DE\u590D\u7684\u957F\u5EA6\uFF0C\u6700\u5C0F\u4E3A1\u3002",
|
|
1227
|
-
reasoningEffort: "\u63A7\u5236\u6A21\u578B\u56DE\u7B54\u524D\u7684\u63A8\u7406\u5F3A\u5EA6\
|
|
1259
|
+
reasoningEffort: "\u63A7\u5236\u6A21\u578B\u56DE\u7B54\u524D\u7684\u63A8\u7406\u5F3A\u5EA6\u3002\u652F\u6301\u7684\u503C\uFF1Anone / minimal / low / medium / high / xhigh / max\uFF08\u56E0\u6A21\u578B/\u670D\u52A1\u5546\u800C\u5F02\uFF09\u3002\u4EC5\u5BF9\u652F\u6301\u63A8\u7406\u5F3A\u5EA6\u7684\u6A21\u578B\u751F\u6548\u3002"
|
|
1228
1260
|
},
|
|
1229
1261
|
// 验证信息
|
|
1230
1262
|
validation: {
|
|
@@ -1242,7 +1274,7 @@ var ai_locale_default = {
|
|
|
1242
1274
|
maxTokensMin: "\u6700\u5927Token\u6570\u5FC5\u987B\u81F3\u5C11\u4E3A1",
|
|
1243
1275
|
maxTokensMax: "\u6700\u5927Token\u6570\u4E0D\u80FD\u8D85\u8FC7500,000",
|
|
1244
1276
|
maxTokensRange: "\u6700\u5927Token\u6570\u5FC5\u987B\u5728 {{min}} \u548C {{max}} \u4E4B\u95F4",
|
|
1245
|
-
reasoningEffortInvalid: "\u63A8\u7406\u5F3A\u5EA6\u5FC5\u987B\u662F low, medium, \u6216
|
|
1277
|
+
reasoningEffortInvalid: "\u63A8\u7406\u5F3A\u5EA6\u5FC5\u987B\u662F none, minimal, low, medium, high, xhigh, \u6216 max",
|
|
1246
1278
|
thinkingBudgetMin: "\u601D\u8003\u9884\u7B97\u81F3\u5C11\u9700\u8981 1024 \u4E2A Token",
|
|
1247
1279
|
thinkingBudgetMax: "\u601D\u8003\u9884\u7B97\u4E0D\u80FD\u8D85\u8FC7 100,000 \u4E2A Token",
|
|
1248
1280
|
apiKeyRequired: "\u672A\u4F7F\u7528\u4EE3\u7406\u6A21\u5F0F\u3001Ollama\u6216\u81EA\u5B9A\u4E49\u670D\u52A1\u5546\u65F6\uFF0CAPI\u5BC6\u94A5\u4E3A\u5FC5\u586B\u9879",
|
|
@@ -1497,7 +1529,19 @@ var ai_locale_default = {
|
|
|
1497
1529
|
chat: "\u958B\u59CB\u804A\u5929",
|
|
1498
1530
|
public: "\u516C\u958B",
|
|
1499
1531
|
byConversation: "\u7528\u5C0D\u8A71\u5EFA\u7ACB AI",
|
|
1500
|
-
manualConfiguration: "\u624B\u52D5\u8A2D\u5B9A AI"
|
|
1532
|
+
manualConfiguration: "\u624B\u52D5\u8A2D\u5B9A AI",
|
|
1533
|
+
quickCreate: {
|
|
1534
|
+
reasoningEffort: "\u63A8\u7406\u5F37\u5EA6",
|
|
1535
|
+
reasoningEffortOptions: {
|
|
1536
|
+
none: "\u95DC\u9589",
|
|
1537
|
+
minimal: "\u6975\u7C21",
|
|
1538
|
+
low: "\u4F4E",
|
|
1539
|
+
medium: "\u4E2D",
|
|
1540
|
+
high: "\u9AD8",
|
|
1541
|
+
xhigh: "\u8D85\u9AD8",
|
|
1542
|
+
max: "\u6700\u5927"
|
|
1543
|
+
}
|
|
1544
|
+
}
|
|
1501
1545
|
},
|
|
1502
1546
|
// RN / local-first create sheet (useTranslation("ai") → localCreate.*)
|
|
1503
1547
|
localCreate: {
|
|
@@ -1601,7 +1645,7 @@ var ai_locale_default = {
|
|
|
1601
1645
|
frequencyPenalty: "\u964D\u4F4E\u8A5E\u5F59\u91CD\u8907\u5EA6\uFF0C\u7BC4\u570D-2\u52302\u3002\u8D8A\u9AD8\u8D8A\u80FD\u907F\u514D\u91CD\u8907\u7528\u8A5E\u3002",
|
|
1602
1646
|
presencePenalty: "\u964D\u4F4E\u4E3B\u984C\u91CD\u8907\u5EA6\uFF0C\u7BC4\u570D-2\u52302\u3002\u8D8A\u9AD8\u8D8A\u9F13\u52F5\u8AC7\u8AD6\u65B0\u4E3B\u984C\u3002",
|
|
1603
1647
|
maxTokens: "\u9650\u5236\u55AE\u6B21\u56DE\u8986\u7684\u9577\u5EA6\uFF0C\u6700\u5C0F\u70BA1\u3002",
|
|
1604
|
-
reasoningEffort: "\u63A7\u5236\u6A21\u578B\u56DE\u7B54\u524D\u7684\u63A8\u7406\u5F37\u5EA6\
|
|
1648
|
+
reasoningEffort: "\u63A7\u5236\u6A21\u578B\u56DE\u7B54\u524D\u7684\u63A8\u7406\u5F37\u5EA6\u3002\u652F\u63F4\u7684\u503C\uFF1Anone / minimal / low / medium / high / xhigh / max\uFF08\u56E0\u6A21\u578B/\u670D\u52D9\u5546\u800C\u7570\uFF09\u3002\u50C5\u5C0D\u652F\u63F4\u63A8\u7406\u5F37\u5EA6\u7684\u6A21\u578B\u751F\u6548\u3002"
|
|
1605
1649
|
},
|
|
1606
1650
|
// 驗證資訊
|
|
1607
1651
|
validation: {
|
|
@@ -1619,7 +1663,7 @@ var ai_locale_default = {
|
|
|
1619
1663
|
maxTokensMin: "\u6700\u5927Token\u6578\u5FC5\u9808\u81F3\u5C11\u70BA1",
|
|
1620
1664
|
maxTokensMax: "\u6700\u5927Token\u6578\u4E0D\u5F97\u8D85\u904E500,000",
|
|
1621
1665
|
maxTokensRange: "\u6700\u5927Token\u6578\u5FC5\u9808\u5728 {{min}} \u548C {{max}} \u4E4B\u9593",
|
|
1622
|
-
reasoningEffortInvalid: "\u63A8\u7406\u5F37\u5EA6\u5FC5\u9808\u662F low, medium, \u6216
|
|
1666
|
+
reasoningEffortInvalid: "\u63A8\u7406\u5F37\u5EA6\u5FC5\u9808\u662F none, minimal, low, medium, high, xhigh, \u6216 max",
|
|
1623
1667
|
thinkingBudgetMin: "\u601D\u8003\u9810\u7B97\u81F3\u5C11\u9700\u8981 1024 \u500B Token",
|
|
1624
1668
|
thinkingBudgetMax: "\u601D\u8003\u9810\u7B97\u4E0D\u80FD\u8D85\u904E 100,000 \u500B Token",
|
|
1625
1669
|
apiKeyRequired: "\u672A\u4F7F\u7528\u4EE3\u7406\u6A21\u5F0F\u3001Ollama\u6216\u81EA\u8A02\u670D\u52D9\u63D0\u4F9B\u8005\u6642\uFF0CAPI\u91D1\u9470\u70BA\u5FC5\u586B\u9805",
|
|
@@ -1796,7 +1840,19 @@ var ai_locale_default = {
|
|
|
1796
1840
|
chat: "\u30C1\u30E3\u30C3\u30C8\u3092\u958B\u59CB",
|
|
1797
1841
|
public: "\u516C\u958B",
|
|
1798
1842
|
byConversation: "\u4F1A\u8A71\u3067 AI \u3092\u4F5C\u6210",
|
|
1799
|
-
manualConfiguration: "\u624B\u52D5\u8A2D\u5B9A\u3067 AI \u3092\u4F5C\u6210"
|
|
1843
|
+
manualConfiguration: "\u624B\u52D5\u8A2D\u5B9A\u3067 AI \u3092\u4F5C\u6210",
|
|
1844
|
+
quickCreate: {
|
|
1845
|
+
reasoningEffort: "\u63A8\u8AD6\u5F37\u5EA6",
|
|
1846
|
+
reasoningEffortOptions: {
|
|
1847
|
+
none: "\u306A\u3057",
|
|
1848
|
+
minimal: "\u6700\u5C0F",
|
|
1849
|
+
low: "\u4F4E",
|
|
1850
|
+
medium: "\u4E2D",
|
|
1851
|
+
high: "\u9AD8",
|
|
1852
|
+
xhigh: "\u8D85\u9AD8",
|
|
1853
|
+
max: "\u6700\u5927"
|
|
1854
|
+
}
|
|
1855
|
+
}
|
|
1800
1856
|
},
|
|
1801
1857
|
// RN / local-first create sheet (useTranslation("ai") → localCreate.*)
|
|
1802
1858
|
localCreate: {
|
|
@@ -1901,7 +1957,7 @@ var ai_locale_default = {
|
|
|
1901
1957
|
frequencyPenalty: "\u5358\u8A9E\u306E\u7E70\u308A\u8FD4\u3057\u3092\u6E1B\u3089\u3057\u307E\u3059\uFF08\u7BC4\u56F2-2\u301C2\uFF09\u3002\u5024\u304C\u9AD8\u3044\u307B\u3069\u7E70\u308A\u8FD4\u3055\u308C\u306B\u304F\u304F\u306A\u308A\u307E\u3059\u3002",
|
|
1902
1958
|
presencePenalty: "\u30C8\u30D4\u30C3\u30AF\u306E\u7E70\u308A\u8FD4\u3057\u3092\u6E1B\u3089\u3057\u307E\u3059\uFF08\u7BC4\u56F2-2\u301C2\uFF09\u3002\u5024\u304C\u9AD8\u3044\u307B\u3069\u65B0\u3057\u3044\u30C8\u30D4\u30C3\u30AF\u304C\u4FC3\u3055\u308C\u307E\u3059\u3002",
|
|
1903
1959
|
maxTokens: "1\u56DE\u306E\u5FDC\u7B54\u306E\u9577\u3055\u3092\u5236\u9650\u3057\u307E\u3059\uFF08\u6700\u5C0F1\uFF09\u3002",
|
|
1904
|
-
reasoningEffort: "\u56DE\u7B54\u524D\u306E\u63A8\u8AD6\u306E\u5F37\u3055\
|
|
1960
|
+
reasoningEffort: "\u56DE\u7B54\u524D\u306E\u63A8\u8AD6\u306E\u5F37\u3055\u3002\u30B5\u30DD\u30FC\u30C8\u5024\uFF1Anone / minimal / low / medium / high / xhigh / max\uFF08\u30E2\u30C7\u30EB/\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u306B\u3088\u308A\u7570\u306A\u308B\uFF09\u3002\u63A8\u8AD6\u5F37\u5EA6\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B\u30E2\u30C7\u30EB\u3067\u306E\u307F\u6709\u52B9\u3067\u3059\u3002"
|
|
1905
1961
|
},
|
|
1906
1962
|
// バリデーションメッセージ
|
|
1907
1963
|
validation: {
|
|
@@ -1919,7 +1975,7 @@ var ai_locale_default = {
|
|
|
1919
1975
|
maxTokensMin: "\u6700\u5927\u30C8\u30FC\u30AF\u30F3\u6570\u306F1\u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
|
|
1920
1976
|
maxTokensMax: "\u6700\u5927\u30C8\u30FC\u30AF\u30F3\u6570\u306F500,000\u4EE5\u4E0B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
|
|
1921
1977
|
maxTokensRange: "\u6700\u5927\u30C8\u30FC\u30AF\u30F3\u6570\u306F {{min}} \u301C {{max}} \u306E\u7BC4\u56F2\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
1922
|
-
reasoningEffortInvalid: "\u63A8\u8AD6\u5F37\u5EA6\u306F low, medium, high \u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
|
|
1978
|
+
reasoningEffortInvalid: "\u63A8\u8AD6\u5F37\u5EA6\u306F none, minimal, low, medium, high, xhigh, max \u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
|
|
1923
1979
|
thinkingBudgetMin: "\u601D\u8003\u4E88\u7B97\u306F1024\u30C8\u30FC\u30AF\u30F3\u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
|
|
1924
1980
|
thinkingBudgetMax: "\u601D\u8003\u4E88\u7B97\u306F100,000\u30C8\u30FC\u30AF\u30F3\u4EE5\u4E0B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
|
|
1925
1981
|
apiKeyRequired: "\u30D7\u30ED\u30AD\u30B7\u30E2\u30FC\u30C9\u3001Ollama\u3001\u307E\u305F\u306F\u30AB\u30B9\u30BF\u30E0\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u4F7F\u7528\u3057\u306A\u3044\u5834\u5408\u3001API\u30AD\u30FC\u306F\u5FC5\u9808\u3067\u3059",
|
|
@@ -2074,6 +2130,9 @@ var chat_locale_default = {
|
|
|
2074
2130
|
messageInput: "Message input field",
|
|
2075
2131
|
messageInputArea: "Message input area with file upload",
|
|
2076
2132
|
messageOrFileHere: "Type a message or upload a file...",
|
|
2133
|
+
pastedTextChip: "Pasted text #{{id}} \xB7 {{lines}} lines \xB7 {{size}}",
|
|
2134
|
+
removePastedText: "Remove pasted text",
|
|
2135
|
+
expandPastedText: "Expand pasted text into the input",
|
|
2077
2136
|
Mode: "Mode",
|
|
2078
2137
|
ModeUpdateFailed: "Failed to update mode",
|
|
2079
2138
|
ModeUpdatedSuccess: "Mode updated successfully",
|
|
@@ -2204,6 +2263,32 @@ var chat_locale_default = {
|
|
|
2204
2263
|
preflightRepairing: "Preflight found {{count}} issue(s), auto-repairing\u2026",
|
|
2205
2264
|
moreSteps: "{{count}} more steps\u2026"
|
|
2206
2265
|
},
|
|
2266
|
+
toolConfirm: {
|
|
2267
|
+
executing: "Executing\u2026",
|
|
2268
|
+
patchApplied: "Patch applied",
|
|
2269
|
+
executed: "Executed {{name}}",
|
|
2270
|
+
retryApplyPatch: "Retry applying patch",
|
|
2271
|
+
retryExec: "Retry {{name}}",
|
|
2272
|
+
confirmDeleteSpaces: "Confirm deleting these Spaces",
|
|
2273
|
+
applyPatchDanger: "Apply this patch (dangerous)",
|
|
2274
|
+
confirmExec: "Run {{name}} (confirmation required)",
|
|
2275
|
+
successPatch: "\u2705 Successfully applied patch to {{path}}.",
|
|
2276
|
+
successExec: "\u2705 Successfully executed {{name}}.",
|
|
2277
|
+
failure: "\u274C Execution failed: {{error}}",
|
|
2278
|
+
unknownError: "Unknown error",
|
|
2279
|
+
confirmDelete: "Confirm deleting {{entity}}",
|
|
2280
|
+
confirmExecGate: "Confirm running {{name}}",
|
|
2281
|
+
fallbackDialogs: "Matching dialogs",
|
|
2282
|
+
fallbackSpaces: "Matching spaces",
|
|
2283
|
+
failureDialogs: "Failed to delete dialogs",
|
|
2284
|
+
failureSpaces: "Failed to delete spaces",
|
|
2285
|
+
executedDialogs: "deleteDialogs executed",
|
|
2286
|
+
executedSpaces: "deleteSpaces executed",
|
|
2287
|
+
entityDialog: "dialog",
|
|
2288
|
+
entitySpace: "space",
|
|
2289
|
+
deleteLabelMultiple: "{{title}} and {{count}} more {{entity}}",
|
|
2290
|
+
fallbackMatched: "Matches"
|
|
2291
|
+
},
|
|
2207
2292
|
toolNames: {
|
|
2208
2293
|
tool: "Tool",
|
|
2209
2294
|
exa_search: "Search",
|
|
@@ -2228,6 +2313,7 @@ var chat_locale_default = {
|
|
|
2228
2313
|
execShell: "Run command",
|
|
2229
2314
|
listAgents: "List agents",
|
|
2230
2315
|
readAgent: "Read agent",
|
|
2316
|
+
loadSkill: "Load skill",
|
|
2231
2317
|
callAgent: "Call agent"
|
|
2232
2318
|
},
|
|
2233
2319
|
gemini: {
|
|
@@ -2404,6 +2490,9 @@ var chat_locale_default = {
|
|
|
2404
2490
|
messageInput: "\u6D88\u606F\u8F93\u5165\u6846",
|
|
2405
2491
|
messageInputArea: "\u6D88\u606F\u8F93\u5165\u533A\uFF0C\u652F\u6301\u6587\u4EF6\u4E0A\u4F20",
|
|
2406
2492
|
messageOrFileHere: "\u8F93\u5165\u6D88\u606F\u6216\u4E0A\u4F20\u6587\u4EF6...",
|
|
2493
|
+
pastedTextChip: "\u5DF2\u7C98\u8D34\u6587\u672C #{{id}} \xB7 {{lines}} \u884C \xB7 {{size}}",
|
|
2494
|
+
removePastedText: "\u79FB\u9664\u7C98\u8D34\u6587\u672C",
|
|
2495
|
+
expandPastedText: "\u5C55\u5F00\u7C98\u8D34\u6587\u672C\u5230\u8F93\u5165\u6846",
|
|
2407
2496
|
Mode: "\u6A21\u5F0F",
|
|
2408
2497
|
ModeUpdateFailed: "\u6A21\u5F0F\u66F4\u65B0\u5931\u8D25",
|
|
2409
2498
|
ModeUpdatedSuccess: "\u6A21\u5F0F\u66F4\u65B0\u6210\u529F",
|
|
@@ -2528,6 +2617,33 @@ var chat_locale_default = {
|
|
|
2528
2617
|
preflightRepairing: "\u9884\u68C0\u53D1\u73B0 {{count}} \u4E2A\u95EE\u9898\uFF0C\u6B63\u5728\u81EA\u52A8\u4FEE\u590D\u2026",
|
|
2529
2618
|
moreSteps: "\u8FD8\u6709 {{count}} \u6B65\u2026"
|
|
2530
2619
|
},
|
|
2620
|
+
toolConfirm: {
|
|
2621
|
+
executing: "\u6B63\u5728\u6267\u884C\u2026",
|
|
2622
|
+
patchApplied: "\u8865\u4E01\u5DF2\u5E94\u7528",
|
|
2623
|
+
executed: "\u5DF2\u6267\u884C {{name}}",
|
|
2624
|
+
retryApplyPatch: "\u91CD\u8BD5\u5E94\u7528\u8865\u4E01",
|
|
2625
|
+
retryExec: "\u91CD\u8BD5\u6267\u884C {{name}}",
|
|
2626
|
+
confirmDeleteSpaces: "\u786E\u8BA4\u5220\u9664\u8FD9\u4E9B Space",
|
|
2627
|
+
applyPatchDanger: "\u5E94\u7528\u8FD9\u4E2A\u8865\u4E01\uFF08\u5371\u9669\u64CD\u4F5C\uFF09",
|
|
2628
|
+
confirmExec: "\u6267\u884C {{name}}\uFF08\u9700\u8981\u786E\u8BA4\uFF09",
|
|
2629
|
+
successPatch: "\u2705 \u5DF2\u6210\u529F\u5C06\u8865\u4E01\u5E94\u7528\u5230 {{path}}\u3002",
|
|
2630
|
+
successExec: "\u2705 \u5DF2\u6210\u529F\u6267\u884C {{name}}\u3002",
|
|
2631
|
+
failure: "\u274C \u6267\u884C\u5931\u8D25\uFF1A{{error}}",
|
|
2632
|
+
unknownError: "\u672A\u77E5\u9519\u8BEF",
|
|
2633
|
+
confirmDelete: "\u786E\u8BA4\u5220\u9664{{entity}}",
|
|
2634
|
+
confirmExecGate: "\u786E\u8BA4\u6267\u884C {{name}}",
|
|
2635
|
+
fallbackDialogs: "\u5339\u914D\u7684\u5BF9\u8BDD",
|
|
2636
|
+
fallbackSpaces: "\u5339\u914D\u7684\u7A7A\u95F4",
|
|
2637
|
+
failureDialogs: "\u5220\u9664\u5BF9\u8BDD\u6267\u884C\u5931\u8D25",
|
|
2638
|
+
failureSpaces: "\u5220\u9664\u7A7A\u95F4\u6267\u884C\u5931\u8D25",
|
|
2639
|
+
// executedSummary 仅写入 toolMessage 内部记录,不直接展示给用户,故保留英文标识符(zh/zh-Hant/ja 同)
|
|
2640
|
+
executedDialogs: "deleteDialogs executed",
|
|
2641
|
+
executedSpaces: "deleteSpaces executed",
|
|
2642
|
+
entityDialog: "\u5BF9\u8BDD",
|
|
2643
|
+
entitySpace: "\u7A7A\u95F4",
|
|
2644
|
+
deleteLabelMultiple: "{{title}} \u7B49 {{count}} \u4E2A{{entity}}",
|
|
2645
|
+
fallbackMatched: "\u5339\u914D\u9879"
|
|
2646
|
+
},
|
|
2531
2647
|
toolNames: {
|
|
2532
2648
|
tool: "\u5DE5\u5177",
|
|
2533
2649
|
exa_search: "\u641C\u7D22",
|
|
@@ -2552,6 +2668,7 @@ var chat_locale_default = {
|
|
|
2552
2668
|
execShell: "\u8FD0\u884C\u547D\u4EE4",
|
|
2553
2669
|
listAgents: "\u5217\u51FA\u52A9\u624B",
|
|
2554
2670
|
readAgent: "\u8BFB\u53D6\u52A9\u624B",
|
|
2671
|
+
loadSkill: "\u52A0\u8F7D\u6280\u80FD",
|
|
2555
2672
|
callAgent: "\u8C03\u7528\u52A9\u624B"
|
|
2556
2673
|
},
|
|
2557
2674
|
gemini: {
|
|
@@ -2728,6 +2845,9 @@ var chat_locale_default = {
|
|
|
2728
2845
|
messageInput: "\u8A0A\u606F\u8F38\u5165\u6846",
|
|
2729
2846
|
messageInputArea: "\u8A0A\u606F\u8F38\u5165\u5340\uFF0C\u652F\u6301\u6A94\u6848\u4E0A\u50B3",
|
|
2730
2847
|
messageOrFileHere: "\u8F38\u5165\u8A0A\u606F\u6216\u4E0A\u50B3\u6A94\u6848...",
|
|
2848
|
+
pastedTextChip: "\u5DF2\u8CBC\u4E0A\u6587\u5B57 #{{id}} \xB7 {{lines}} \u884C \xB7 {{size}}",
|
|
2849
|
+
removePastedText: "\u79FB\u9664\u8CBC\u4E0A\u6587\u5B57",
|
|
2850
|
+
expandPastedText: "\u5C55\u958B\u8CBC\u4E0A\u6587\u5B57\u5230\u8F38\u5165\u6846",
|
|
2731
2851
|
Mode: "\u6A21\u5F0F",
|
|
2732
2852
|
ModeUpdateFailed: "\u6A21\u5F0F\u66F4\u65B0\u5931\u6557",
|
|
2733
2853
|
ModeUpdatedSuccess: "\u6A21\u5F0F\u66F4\u65B0\u6210\u529F",
|
|
@@ -2842,6 +2962,33 @@ var chat_locale_default = {
|
|
|
2842
2962
|
preflightRepairing: "\u9810\u6AA2\u767C\u73FE {{count}} \u500B\u554F\u984C\uFF0C\u6B63\u5728\u81EA\u52D5\u4FEE\u5FA9\u2026",
|
|
2843
2963
|
moreSteps: "\u9084\u6709 {{count}} \u6B65\u2026"
|
|
2844
2964
|
},
|
|
2965
|
+
toolConfirm: {
|
|
2966
|
+
executing: "\u6B63\u5728\u57F7\u884C\u2026",
|
|
2967
|
+
patchApplied: "\u4FEE\u88DC\u5DF2\u5957\u7528",
|
|
2968
|
+
executed: "\u5DF2\u57F7\u884C {{name}}",
|
|
2969
|
+
retryApplyPatch: "\u91CD\u8A66\u5957\u7528\u4FEE\u88DC",
|
|
2970
|
+
retryExec: "\u91CD\u8A66\u57F7\u884C {{name}}",
|
|
2971
|
+
confirmDeleteSpaces: "\u78BA\u8A8D\u522A\u9664\u9019\u4E9B Space",
|
|
2972
|
+
applyPatchDanger: "\u5957\u7528\u9019\u500B\u4FEE\u88DC\uFF08\u5371\u96AA\u64CD\u4F5C\uFF09",
|
|
2973
|
+
confirmExec: "\u57F7\u884C {{name}}\uFF08\u9700\u8981\u78BA\u8A8D\uFF09",
|
|
2974
|
+
successPatch: "\u2705 \u5DF2\u6210\u529F\u5C07\u4FEE\u88DC\u5957\u7528\u5230 {{path}}\u3002",
|
|
2975
|
+
successExec: "\u2705 \u5DF2\u6210\u529F\u57F7\u884C {{name}}\u3002",
|
|
2976
|
+
failure: "\u274C \u57F7\u884C\u5931\u6557\uFF1A{{error}}",
|
|
2977
|
+
unknownError: "\u672A\u77E5\u932F\u8AA4",
|
|
2978
|
+
confirmDelete: "\u78BA\u8A8D\u522A\u9664{{entity}}",
|
|
2979
|
+
confirmExecGate: "\u78BA\u8A8D\u57F7\u884C {{name}}",
|
|
2980
|
+
fallbackDialogs: "\u7B26\u5408\u7684\u5C0D\u8A71",
|
|
2981
|
+
fallbackSpaces: "\u7B26\u5408\u7684\u7A7A\u9593",
|
|
2982
|
+
failureDialogs: "\u522A\u9664\u5C0D\u8A71\u57F7\u884C\u5931\u6557",
|
|
2983
|
+
failureSpaces: "\u522A\u9664\u7A7A\u9593\u57F7\u884C\u5931\u6557",
|
|
2984
|
+
// executedSummary 仅写入 toolMessage 内部记录,不直接展示给用户,故保留英文标识符
|
|
2985
|
+
executedDialogs: "deleteDialogs executed",
|
|
2986
|
+
executedSpaces: "deleteSpaces executed",
|
|
2987
|
+
entityDialog: "\u5C0D\u8A71",
|
|
2988
|
+
entitySpace: "\u7A7A\u9593",
|
|
2989
|
+
deleteLabelMultiple: "{{title}} \u7B49 {{count}} \u500B{{entity}}",
|
|
2990
|
+
fallbackMatched: "\u7B26\u5408\u9805"
|
|
2991
|
+
},
|
|
2845
2992
|
toolNames: {
|
|
2846
2993
|
tool: "\u5DE5\u5177",
|
|
2847
2994
|
exa_search: "\u641C\u5C0B",
|
|
@@ -2866,6 +3013,7 @@ var chat_locale_default = {
|
|
|
2866
3013
|
execShell: "\u57F7\u884C\u547D\u4EE4",
|
|
2867
3014
|
listAgents: "\u5217\u51FA\u52A9\u624B",
|
|
2868
3015
|
readAgent: "\u8B80\u53D6\u52A9\u624B",
|
|
3016
|
+
loadSkill: "\u8F09\u5165\u6280\u80FD",
|
|
2869
3017
|
callAgent: "\u547C\u53EB\u52A9\u624B"
|
|
2870
3018
|
},
|
|
2871
3019
|
gemini: {
|
|
@@ -2980,6 +3128,9 @@ var chat_locale_default = {
|
|
|
2980
3128
|
messageInput: "\u30E1\u30C3\u30BB\u30FC\u30B8\u5165\u529B\u6B04",
|
|
2981
3129
|
messageInputArea: "\u30D5\u30A1\u30A4\u30EB\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u5BFE\u5FDC\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u5165\u529B\u30A8\u30EA\u30A2",
|
|
2982
3130
|
messageOrFileHere: "\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u5165\u529B\u307E\u305F\u306F\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9...",
|
|
3131
|
+
pastedTextChip: "\u8CBC\u308A\u4ED8\u3051\u30C6\u30AD\u30B9\u30C8 #{{id}} \xB7 {{lines}} \u884C \xB7 {{size}}",
|
|
3132
|
+
removePastedText: "\u8CBC\u308A\u4ED8\u3051\u30C6\u30AD\u30B9\u30C8\u3092\u524A\u9664",
|
|
3133
|
+
expandPastedText: "\u8CBC\u308A\u4ED8\u3051\u30C6\u30AD\u30B9\u30C8\u3092\u5165\u529B\u6B04\u306B\u5C55\u958B",
|
|
2983
3134
|
Mode: "\u30E2\u30FC\u30C9",
|
|
2984
3135
|
ModeUpdateFailed: "\u30E2\u30FC\u30C9\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
2985
3136
|
ModeUpdatedSuccess: "\u30E2\u30FC\u30C9\u3092\u66F4\u65B0\u3057\u307E\u3057\u305F",
|
|
@@ -3100,6 +3251,33 @@ var chat_locale_default = {
|
|
|
3100
3251
|
preflightRepairing: "\u30D7\u30EA\u30D5\u30E9\u30A4\u30C8\u3067 {{count}} \u4EF6\u306E\u554F\u984C\u3092\u691C\u51FA\u3001\u81EA\u52D5\u4FEE\u5FA9\u4E2D\u2026",
|
|
3101
3252
|
moreSteps: "\u4ED6 {{count}} \u30B9\u30C6\u30C3\u30D7\u2026"
|
|
3102
3253
|
},
|
|
3254
|
+
toolConfirm: {
|
|
3255
|
+
executing: "\u5B9F\u884C\u4E2D\u2026",
|
|
3256
|
+
patchApplied: "\u30D1\u30C3\u30C1\u3092\u9069\u7528\u3057\u307E\u3057\u305F",
|
|
3257
|
+
executed: "{{name}} \u3092\u5B9F\u884C\u3057\u307E\u3057\u305F",
|
|
3258
|
+
retryApplyPatch: "\u30D1\u30C3\u30C1\u9069\u7528\u3092\u518D\u8A66\u884C",
|
|
3259
|
+
retryExec: "{{name}} \u306E\u5B9F\u884C\u3092\u518D\u8A66\u884C",
|
|
3260
|
+
confirmDeleteSpaces: "\u3053\u308C\u3089\u306E Space \u3092\u524A\u9664\u3057\u307E\u3059\u304B",
|
|
3261
|
+
applyPatchDanger: "\u3053\u306E\u30D1\u30C3\u30C1\u3092\u9069\u7528\uFF08\u5371\u967A\u306A\u64CD\u4F5C\uFF09",
|
|
3262
|
+
confirmExec: "{{name}} \u3092\u5B9F\u884C\uFF08\u78BA\u8A8D\u304C\u5FC5\u8981\uFF09",
|
|
3263
|
+
successPatch: "\u2705 \u30D1\u30C3\u30C1\u3092 {{path}} \u306B\u9069\u7528\u3057\u307E\u3057\u305F\u3002",
|
|
3264
|
+
successExec: "\u2705 {{name}} \u3092\u5B9F\u884C\u3057\u307E\u3057\u305F\u3002",
|
|
3265
|
+
failure: "\u274C \u5B9F\u884C\u5931\u6557\uFF1A{{error}}",
|
|
3266
|
+
unknownError: "\u4E0D\u660E\u306A\u30A8\u30E9\u30FC",
|
|
3267
|
+
confirmDelete: "{{entity}}\u306E\u524A\u9664\u3092\u78BA\u8A8D",
|
|
3268
|
+
confirmExecGate: "{{name}} \u306E\u5B9F\u884C\u3092\u78BA\u8A8D",
|
|
3269
|
+
fallbackDialogs: "\u4E00\u81F4\u3059\u308B\u5BFE\u8A71",
|
|
3270
|
+
fallbackSpaces: "\u4E00\u81F4\u3059\u308B\u30B9\u30DA\u30FC\u30B9",
|
|
3271
|
+
failureDialogs: "\u5BFE\u8A71\u306E\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
3272
|
+
failureSpaces: "\u30B9\u30DA\u30FC\u30B9\u306E\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
3273
|
+
// executedSummary 仅写入 toolMessage 内部记录,不直接展示给用户,故保留英文标识符
|
|
3274
|
+
executedDialogs: "deleteDialogs executed",
|
|
3275
|
+
executedSpaces: "deleteSpaces executed",
|
|
3276
|
+
entityDialog: "\u5BFE\u8A71",
|
|
3277
|
+
entitySpace: "\u30B9\u30DA\u30FC\u30B9",
|
|
3278
|
+
deleteLabelMultiple: "{{title}} \u306A\u3069 {{count}} \u4EF6\u306E{{entity}}",
|
|
3279
|
+
fallbackMatched: "\u4E00\u81F4\u9805\u76EE"
|
|
3280
|
+
},
|
|
3103
3281
|
toolNames: {
|
|
3104
3282
|
tool: "\u30C4\u30FC\u30EB",
|
|
3105
3283
|
exa_search: "\u691C\u7D22",
|
|
@@ -3124,6 +3302,7 @@ var chat_locale_default = {
|
|
|
3124
3302
|
execShell: "\u30B3\u30DE\u30F3\u30C9\u5B9F\u884C",
|
|
3125
3303
|
listAgents: "\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u4E00\u89A7",
|
|
3126
3304
|
readAgent: "\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u8AAD\u307F\u53D6\u308A",
|
|
3305
|
+
loadSkill: "\u30B9\u30AD\u30EB\u3092\u8AAD\u307F\u8FBC\u307F",
|
|
3127
3306
|
callAgent: "\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u547C\u3073\u51FA\u3057"
|
|
3128
3307
|
},
|
|
3129
3308
|
gemini: {
|
|
@@ -3247,12 +3426,6 @@ var space_locale_default = {
|
|
|
3247
3426
|
discard_changes: "Discard Changes",
|
|
3248
3427
|
load_error_title: "Failed to Load Space Information",
|
|
3249
3428
|
no_space_data: "Space data not found",
|
|
3250
|
-
try_repair: "Try to Repair",
|
|
3251
|
-
repair_success: "Repair operation completed successfully",
|
|
3252
|
-
repair_space: "Repair Space",
|
|
3253
|
-
repair_count_warn: "This space has {{count}} content items. Repair will re-deduplicate and remove orphaned references. Continue?",
|
|
3254
|
-
repair: "Repair",
|
|
3255
|
-
repair_error: "Repair operation failed",
|
|
3256
3429
|
try_later: "Please try again later",
|
|
3257
3430
|
// === 基本信息 ===
|
|
3258
3431
|
basic_info: "Basic Information",
|
|
@@ -3562,12 +3735,6 @@ var space_locale_default = {
|
|
|
3562
3735
|
discard_changes: "\u653E\u5F03\u66F4\u6539",
|
|
3563
3736
|
load_error_title: "\u52A0\u8F7D\u7A7A\u95F4\u4FE1\u606F\u5931\u8D25",
|
|
3564
3737
|
no_space_data: "\u672A\u627E\u5230\u7A7A\u95F4\u6570\u636E",
|
|
3565
|
-
try_repair: "\u5C1D\u8BD5\u4FEE\u590D",
|
|
3566
|
-
repair_success: "\u4FEE\u590D\u64CD\u4F5C\u6210\u529F\u5B8C\u6210",
|
|
3567
|
-
repair_space: "\u4FEE\u590D\u7A7A\u95F4",
|
|
3568
|
-
repair_count_warn: "\u6B64\u7A7A\u95F4\u6709 {{count}} \u9879\u5185\u5BB9\u3002\u4FEE\u590D\u5C06\u91CD\u65B0\u53BB\u91CD\u5E76\u6E05\u9664\u5B64\u7ACB\u7684\u5F15\u7528\u3002\u662F\u5426\u7EE7\u7EED\uFF1F",
|
|
3569
|
-
repair: "\u4FEE\u590D",
|
|
3570
|
-
repair_error: "\u4FEE\u590D\u64CD\u4F5C\u5931\u8D25",
|
|
3571
3738
|
try_later: "\u8BF7\u7A0D\u540E\u91CD\u8BD5",
|
|
3572
3739
|
// === 基本信息 ===
|
|
3573
3740
|
basic_info: "\u57FA\u672C\u4FE1\u606F",
|
|
@@ -3876,12 +4043,6 @@ var space_locale_default = {
|
|
|
3876
4043
|
discard_changes: "\u653E\u68C4\u8B8A\u66F4",
|
|
3877
4044
|
load_error_title: "\u8F09\u5165\u7A7A\u9593\u8CC7\u8A0A\u5931\u6557",
|
|
3878
4045
|
no_space_data: "\u672A\u627E\u5230\u7A7A\u9593\u8CC7\u6599",
|
|
3879
|
-
try_repair: "\u5617\u8A66\u4FEE\u5FA9",
|
|
3880
|
-
repair_success: "\u4FEE\u5FA9\u64CD\u4F5C\u6210\u529F\u5B8C\u6210",
|
|
3881
|
-
repair_space: "\u4FEE\u5FA9\u7A7A\u9593",
|
|
3882
|
-
repair_count_warn: "\u6B64\u7A7A\u9593\u6709 {{count}} \u9805\u5167\u5BB9\u3002\u4FEE\u5FA9\u5C07\u91CD\u65B0\u53BB\u91CD\u4E26\u6E05\u9664\u5B64\u7ACB\u7684\u5F15\u7528\u3002\u662F\u5426\u7E7C\u7E8C\uFF1F",
|
|
3883
|
-
repair: "\u4FEE\u5FA9",
|
|
3884
|
-
repair_error: "\u4FEE\u5FA9\u64CD\u4F5C\u5931\u6557",
|
|
3885
4046
|
try_later: "\u8ACB\u7A0D\u5F8C\u91CD\u8A66",
|
|
3886
4047
|
// === 基本信息 ===
|
|
3887
4048
|
basic_info: "\u57FA\u672C\u8CC7\u8A0A",
|
|
@@ -4183,12 +4344,6 @@ var space_locale_default = {
|
|
|
4183
4344
|
discard_changes: "\u5909\u66F4\u3092\u7834\u68C4",
|
|
4184
4345
|
load_error_title: "\u30B9\u30DA\u30FC\u30B9\u60C5\u5831\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
4185
4346
|
no_space_data: "\u30B9\u30DA\u30FC\u30B9\u30C7\u30FC\u30BF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",
|
|
4186
|
-
try_repair: "\u4FEE\u5FA9\u3092\u8A66\u884C",
|
|
4187
|
-
repair_success: "\u4FEE\u5FA9\u64CD\u4F5C\u304C\u6B63\u5E38\u306B\u5B8C\u4E86\u3057\u307E\u3057\u305F",
|
|
4188
|
-
repair_space: "\u30B9\u30DA\u30FC\u30B9\u3092\u4FEE\u5FA9",
|
|
4189
|
-
repair_count_warn: "\u3053\u306E\u30B9\u30DA\u30FC\u30B9\u306B\u306F {{count}} \u4EF6\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u304C\u3042\u308A\u307E\u3059\u3002\u4FEE\u5FA9\u306F\u91CD\u8907\u3092\u6574\u7406\u3057\u3001\u5B64\u7ACB\u3057\u305F\u53C2\u7167\u3092\u524A\u9664\u3057\u307E\u3059\u3002\u7D9A\u884C\u3057\u307E\u3059\u304B\uFF1F",
|
|
4190
|
-
repair: "\u4FEE\u5FA9",
|
|
4191
|
-
repair_error: "\u4FEE\u5FA9\u64CD\u4F5C\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
4192
4347
|
try_later: "\u3057\u3070\u3089\u304F\u3057\u3066\u304B\u3089\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044",
|
|
4193
4348
|
// === 基本情報 ===
|
|
4194
4349
|
basic_info: "\u57FA\u672C\u60C5\u5831",
|
|
@@ -10969,10 +11124,90 @@ var CAPABILITY_PACKS = [
|
|
|
10969
11124
|
{
|
|
10970
11125
|
id: "agent-orchestration",
|
|
10971
11126
|
label: "\u591A agent \u7F16\u6392",
|
|
10972
|
-
description: "\u540E\u53F0\u542F\u52A8\u5176\u4ED6 agent \u6267\u884C\u5B50\u4EFB\u52A1\uFF0C\u5E76\u89C2\u5BDF\u3001\u67E5\u8BE2\u3001\u505C\u6B62\u8FD0\u884C\u4E2D\u7684 agent run\u2014\u2014\u9002\u5408\u5E76\u884C\u6D3E\u53D1\u3001\u957F\u4EFB\u52A1\u8DDF\u8E2A\u3001\u4E2D\u9014\u53EB\u505C\u7B49\u7F16\u6392\u573A\u666F\u3002",
|
|
10973
|
-
tools: ["startAgentRun", "controlAgentRun"],
|
|
10974
|
-
defaultEnabled:
|
|
11127
|
+
description: "\u5148\u6309\u6536\u85CF\u3001\u7B80\u4ECB\u3001\u80FD\u529B\u548C\u6210\u672C\u5217\u51FA\u5B89\u5168 agent \u6458\u8981\uFF0C\u6309\u9700\u8BFB\u53D6\u5019\u9009\u914D\u7F6E\u89E3\u6790\u53EF\u8FD0\u884C key\uFF0C\u518D\u540E\u53F0\u542F\u52A8\u5176\u4ED6 agent \u6267\u884C\u5B50\u4EFB\u52A1\uFF0C\u5E76\u89C2\u5BDF\u3001\u67E5\u8BE2\u3001\u505C\u6B62\u8FD0\u884C\u4E2D\u7684 agent run\u2014\u2014\u9002\u5408\u5E76\u884C\u6D3E\u53D1\u3001\u957F\u4EFB\u52A1\u8DDF\u8E2A\u3001\u4E2D\u9014\u53EB\u505C\u7B49\u7F16\u6392\u573A\u666F\u3002",
|
|
11128
|
+
tools: ["startAgentRun", "controlAgentRun", "listAgents"],
|
|
11129
|
+
defaultEnabled: true,
|
|
10975
11130
|
icon: "\u{1F9E9}"
|
|
11131
|
+
},
|
|
11132
|
+
{
|
|
11133
|
+
id: "skills",
|
|
11134
|
+
label: "\u6280\u80FD\u52A0\u8F7D",
|
|
11135
|
+
description: "\u6309\u540D\u52A0\u8F7D\u5DE5\u4F5C\u533A\u6280\u80FD\uFF08SKILL.md\uFF09\u5E76\u8BFB\u53D6\u6280\u80FD\u6587\u6863\u2014\u2014\u8BA9 agent \u5728\u9700\u8981\u65F6\u628A\u5BF9\u5E94\u6280\u80FD\u7684\u65B9\u6CD5\u8BBA\u3001\u547D\u4EE4\u548C\u6D41\u7A0B\u62C9\u8FDB\u4E0A\u4E0B\u6587\u518D\u6267\u884C\u3002",
|
|
11136
|
+
tools: ["loadSkill", "readSkillDoc"],
|
|
11137
|
+
defaultEnabled: true,
|
|
11138
|
+
icon: "\u{1F4DA}"
|
|
11139
|
+
},
|
|
11140
|
+
{
|
|
11141
|
+
id: "app-builder",
|
|
11142
|
+
label: "\u5E94\u7528\u6784\u5EFA",
|
|
11143
|
+
description: "\u6784\u5EFA/\u4FEE\u6539/\u53D1\u5E03 Web \u5E94\u7528\uFF1A\u8BFB\u53D6\u5E94\u7528\u6E90\u7801\u3001\u5B9A\u70B9\u4FEE\u6539\u3001\u9884\u68C0\u3001\u90E8\u7F72\uFF0C\u65E0\u9700\u7F16\u7A0B\u7ECF\u9A8C\u3002",
|
|
11144
|
+
tools: [
|
|
11145
|
+
"appRead",
|
|
11146
|
+
"appFileList",
|
|
11147
|
+
"appFileSearch",
|
|
11148
|
+
"appFileRead",
|
|
11149
|
+
"appFileReplace",
|
|
11150
|
+
"appFileWrite",
|
|
11151
|
+
"appPreflight",
|
|
11152
|
+
"appDeploy",
|
|
11153
|
+
"appList",
|
|
11154
|
+
"appDelete",
|
|
11155
|
+
"createTable",
|
|
11156
|
+
"addTableRow",
|
|
11157
|
+
"addTableRows",
|
|
11158
|
+
"queryTableRows",
|
|
11159
|
+
"updateTableRow",
|
|
11160
|
+
"deleteTableRow",
|
|
11161
|
+
"openAIGptImage"
|
|
11162
|
+
],
|
|
11163
|
+
defaultEnabled: false,
|
|
11164
|
+
icon: "\u{1F5A5}",
|
|
11165
|
+
promptPatch: `# \u5E94\u7528\u6784\u5EFA\u80FD\u529B\u5305 \u2014 \u64CD\u4F5C\u7EAA\u5F8B
|
|
11166
|
+
|
|
11167
|
+
## \u6548\u7387\u4F18\u5148\uFF08\u7701 token\uFF09
|
|
11168
|
+
- \u4E0D\u590D\u8FF0\u7528\u6237\u9700\u6C42\uFF0C\u4E0D\u89E3\u91CA\u4F60\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
|
|
11169
|
+
- \u601D\u8003\u7B80\u77ED\uFF1A\u5B9A\u4F4D\u95EE\u9898\u5373\u53EF\uFF0C\u4E0D\u505A\u957F\u7BC7\u63A8\u6F14\u3002
|
|
11170
|
+
- \u5C0F\u6539\u52A8\uFF08\u6539\u6587\u5B57\u3001\u989C\u8272\u3001\u95F4\u8DDD\u3001\u5706\u89D2\u3001\u5355\u4E2A\u7EC4\u4EF6\uFF09\u8D70\u6700\u77ED\u8DEF\u5F84\uFF1A\`appFileSearch\` \u6216 \`appFileRead\` \u5B9A\u4F4D \u2192 \`appFileReplace\` \u7CBE\u786E\u66FF\u6362 \u2192 \`appPreflight\` \u2192 \`appDeploy\`\u3002\u80FD\u4E00\u6B21\u547D\u4E2D\u5C31\u4E0D\u8981\u53CD\u590D\u8BFB\u6587\u4EF6\u3002
|
|
11171
|
+
- \u5DF2\u7ECF\u77E5\u9053\u6587\u4EF6\u548C\u4F4D\u7F6E\u65F6\uFF0C\u8DF3\u8FC7\u591A\u4F59\u7684 search/read\uFF0C\u76F4\u63A5 replace\u3002
|
|
11172
|
+
- \u7981\u6B62\u4E3A\u4E00\u4E2A\u5C0F\u6539\u52A8\u6574\u9875\u91CD\u5199\u6216\u8FDE\u5E26\u6539\u52A8\u672A\u547D\u4E2D\u7684\u90E8\u5206\u3002
|
|
11173
|
+
|
|
11174
|
+
## \u5B9A\u70B9\u4FEE\u6539
|
|
11175
|
+
- \u5982\u679C\u4E0A\u4E0B\u6587\u91CC\u5E26\u6709\u7528\u6237\u300C\u9009\u4E2D\u7684\u5143\u7D20\u300D\uFF08cssPath / HTML \u7247\u6BB5 / \u6E90\u7801\u4F4D\u7F6E\uFF09\uFF0C\u76F4\u63A5\u636E\u6B64\u5B9A\u4F4D\uFF0C\u4E0D\u8981\u518D\u5168\u5C40\u641C\u7D22\u3002
|
|
11176
|
+
- \u4FEE\u6539\u6536\u655B\u5728\u547D\u4E2D\u7684\u5143\u7D20\u53CA\u5176\u6837\u5F0F\u6765\u6E90\uFF08\u7EC4\u4EF6 / \u7C7B / design token\uFF09\u3002
|
|
11177
|
+
|
|
11178
|
+
## \u6301\u7EED\u8FED\u4EE3\u6D41\u7A0B
|
|
11179
|
+
- \u7528\u6237\u8981\u6539\u529F\u80FD\u6216\u6837\u5F0F\u65F6\uFF0C\u5148\u7528 appList \u627E\u5230\u76EE\u6807\u5E94\u7528\uFF0C\u518D\u7528 appRead \u5224\u65AD\u5F53\u524D\u662F\u6E90\u7801\u5DE5\u4F5C\u533A\u8FD8\u662F\u90E8\u7F72\u4EA7\u7269\uFF1B\u4E00\u65E6\u62FF\u5230 appId\uFF0C\u540E\u7EED\u90FD\u5FC5\u987B\u590D\u7528\u540C\u4E00\u4E2A appId\u3002
|
|
11180
|
+
- \u6BCF\u6B21\u4FEE\u6539\u540E\uFF1AappPreflight \u2192 appDeploy\uFF1BappDeploy \u5FC5\u987B\u7EE7\u7EED\u4F20\u540C\u4E00\u4E2A appId\u3002
|
|
11181
|
+
- \u6536\u5230 repairPlan \u5C31\u76F4\u63A5\u4FEE\uFF1A\u6309\u8FD4\u56DE issues \u5B9A\u70B9\u4FEE\u590D\u5E76\u91CD\u65B0\u9884\u68C0\uFF0C\u4E0D\u8981\u6574\u7AD9\u91CD\u5199\uFF0C\u4E5F\u4E0D\u8981\u5148\u95EE\u7528\u6237\u8981\u4E0D\u8981\u4FEE\u3002
|
|
11182
|
+
|
|
11183
|
+
## Nolo React SSR \u7EF4\u62A4\u7EAA\u5F8B\uFF08\u5F53\u524D\u9ED8\u8BA4\u8DEF\u5F84\uFF09
|
|
11184
|
+
- \u65B0\u5EFA\u548C\u7EF4\u62A4\u7684\u5E94\u7528\u4F18\u5148\u8D70 Nolo React SSR\uFF08framework: "nolo-react", renderMode: "ssr"\uFF09\u3002
|
|
11185
|
+
- \u5F53 appRead \u8FD4\u56DE workspaceRef / sourceFiles / sourceOmitted \u65F6\uFF0C\u4E0D\u8981\u6574\u7AD9\u91CD\u5199\uFF1B\u4F7F\u7528\u53D7\u9650 workspace \u6587\u4EF6\u5DE5\u5177\uFF1AappFileList / appFileSearch / appFileRead / appFileReplace / appFileWrite\u3002
|
|
11186
|
+
- \u5C0F\u6539\u52A8\u5FC5\u987B\u4F18\u5148 appFileReplace\uFF1B\u53EA\u6709\u65B0\u5EFA\u6587\u4EF6\u6216\u786E\u5B9E\u9700\u8981\u6574\u6587\u4EF6\u91CD\u5199\u65F6\u624D appFileWrite\u3002
|
|
11187
|
+
- \u4E0D\u8981\u9759\u9ED8\u628A nolo-react \u5E94\u7528\u9000\u56DE react-spa \u6216\u5355\u6587\u4EF6 Worker\u3002
|
|
11188
|
+
- \u89C6\u89C9\u5FAE\u8C03\u4F18\u5148\u6539 theme / tokens / design system\uFF1B\u65E7\u5199\u6CD5\u5E94\u7528\u53EF\u5148\u505A\u6700\u5C0F token \u8FC1\u79FB\uFF0C\u518D\u6539\u89C6\u89C9\u53C2\u6570\u3002
|
|
11189
|
+
|
|
11190
|
+
## \u8868\u5355 / \u6570\u636E\u6536\u96C6
|
|
11191
|
+
- \u7559\u8A00\u3001\u8054\u7CFB\u8868\u5355\u3001\u9884\u7EA6\u3001\u8BA2\u9605\u3001\u53CD\u9988\u6536\u96C6\u4F18\u5148\u7528\u8868\u5DE5\u5177\uFF0C\u4E0D\u8981\u81EA\u5DF1\u53D1\u660E JSON \u6587\u4EF6\u5B58\u50A8\u3002
|
|
11192
|
+
- \u516C\u5F00\u7F51\u9875\u8868\u5355\u5148 createTable\uFF0C\u5E76\u914D\u7F6E publicIntake\uFF08enabled\u3001slug\u3001allowedFields\u3001requiredFields\u3001\u53EF\u9009 honeypotField\uFF09\u3002
|
|
11193
|
+
- \u516C\u5F00\u8BBF\u5BA2\u63D0\u4EA4\u53EA\u80FD\u8C03\u7528 /api/table/public-submit\uFF1B\u4E0D\u8981\u628A tenantId\u3001tableId\u3001token \u5199\u8FDB\u516C\u5F00\u5E94\u7528\u4EE3\u7801\u3002
|
|
11194
|
+
|
|
11195
|
+
## \u9879\u76EE\u7D20\u6750
|
|
11196
|
+
- \u9996\u9875\u63D2\u753B\u3001\u5C01\u9762\u3001\u6A2A\u5E45\u3001\u6309\u94AE\u56FE\u6807\u7B49\u89C6\u89C9\u7D20\u6750\uFF0C\u4F18\u5148 openAIGptImage\uFF0C\u518D\u63A5\u5165\u5E94\u7528\u3002
|
|
11197
|
+
|
|
11198
|
+
## \u901A\u9053\u5F02\u5E38\u6B62\u635F
|
|
11199
|
+
- \u5982\u679C\u5DE5\u5177\u8FD4\u56DE HTML / \u975E JSON / transport failure / retryable=false\uFF0C\u505C\u6B62\u81EA\u52A8\u91CD\u8BD5\uFF0C\u8BF4\u660E\u662F\u5E73\u53F0\u901A\u9053\u5F02\u5E38\u3002
|
|
11200
|
+
|
|
11201
|
+
## \u7F3A\u5C11\u6E90\u7801\u8981\u8BF4\u660E\u98CE\u9669
|
|
11202
|
+
- \u5982\u679C appRead \u8BFB\u51FA\u6765\u7684\u662F HTML \u58F3\u3001importmap\u3001\u538B\u7F29 bundle\uFF0C\u5FC5\u987B\u5148\u544A\u77E5\u7528\u6237\u5F53\u524D\u66F4\u50CF\u90E8\u7F72\u4EA7\u7269\u800C\u4E0D\u662F\u53EF\u7EF4\u62A4\u6E90\u7801\uFF0C\u5F97\u5230\u786E\u8BA4\u540E\u518D\u7EE7\u7EED\u5927\u6539\u3002
|
|
11203
|
+
|
|
11204
|
+
## \u90E8\u7F72\u5E94\u7B54\u6A21\u677F
|
|
11205
|
+
\u90E8\u7F72\u6210\u529F\u540E\uFF1A
|
|
11206
|
+
"\u2705 \u4F60\u7684\u5E94\u7528\u5DF2\u7ECF\u597D\u4E86\uFF01
|
|
11207
|
+
|
|
11208
|
+
\u{1F517} \u8BBF\u95EE\u94FE\u63A5\uFF1A[URL]
|
|
11209
|
+
|
|
11210
|
+
\u8FD9\u4E2A\u5E94\u7528\u53EF\u4EE5\u5E2E\u4F60 [\u4E00\u53E5\u8BDD\u529F\u80FD\u63CF\u8FF0]\u3002\u60F3\u8981\u4FEE\u6539\u6216\u6DFB\u52A0\u529F\u80FD\uFF0C\u76F4\u63A5\u544A\u8BC9\u6211\u5C31\u884C\uFF01"`
|
|
10976
11211
|
}
|
|
10977
11212
|
];
|
|
10978
11213
|
var CAPABILITY_PACK_BY_ID = CAPABILITY_PACKS.reduce(
|
|
@@ -10992,6 +11227,20 @@ function expandEnabledPacks(enabledPacks, explicitTools = []) {
|
|
|
10992
11227
|
const packTools = (enabledPacks ?? []).map((id) => CAPABILITY_PACK_BY_ID[id]?.tools ?? []).flat();
|
|
10993
11228
|
return [.../* @__PURE__ */ new Set([...packTools, ...explicitTools ?? []])];
|
|
10994
11229
|
}
|
|
11230
|
+
function expandEnabledPackPromptPatches(enabledPacks) {
|
|
11231
|
+
return (enabledPacks ?? []).map((id) => CAPABILITY_PACK_BY_ID[id]?.promptPatch).filter((patch2) => typeof patch2 === "string" && patch2.length > 0);
|
|
11232
|
+
}
|
|
11233
|
+
function appendEnabledPackPromptPatches(prompt, enabledPacks) {
|
|
11234
|
+
const patches = expandEnabledPackPromptPatches(enabledPacks);
|
|
11235
|
+
if (patches.length === 0) return prompt ?? void 0;
|
|
11236
|
+
const base = typeof prompt === "string" ? prompt.trim() : "";
|
|
11237
|
+
const addition = patches.join("\n\n");
|
|
11238
|
+
if (!base) return addition;
|
|
11239
|
+
if (base.includes(addition)) return base;
|
|
11240
|
+
return `${base}
|
|
11241
|
+
|
|
11242
|
+
${addition}`;
|
|
11243
|
+
}
|
|
10995
11244
|
var FORCED_TOOLS = ["ui_ask_choice"];
|
|
10996
11245
|
function applyDisabledTools(toolNames, disabledTools) {
|
|
10997
11246
|
if (!Array.isArray(disabledTools) || disabledTools.length === 0) {
|
|
@@ -11040,7 +11289,7 @@ var HOSTED_EXEC_RUNTIME_TOOL_POLICY = {
|
|
|
11040
11289
|
workspace: { mode: "lease" }
|
|
11041
11290
|
};
|
|
11042
11291
|
var findModelConfig = async (modelName, provider) => {
|
|
11043
|
-
const { ALL_MODELS } = await import("./models-
|
|
11292
|
+
const { ALL_MODELS } = await import("./models-LSCRJJ6P.js");
|
|
11044
11293
|
const name = toTrimmedString(modelName);
|
|
11045
11294
|
const prov = toTrimmedString(provider ?? "");
|
|
11046
11295
|
if (!name) return null;
|
|
@@ -11281,7 +11530,7 @@ var buildFormDataFromArgs = async (args) => {
|
|
|
11281
11530
|
const trimmedModel = toTrimmedString(model);
|
|
11282
11531
|
const trimmedProvider = toTrimmedString(provider);
|
|
11283
11532
|
const modelConfig = await findModelConfig(trimmedModel, trimmedProvider);
|
|
11284
|
-
const { getModelPricing } = await import("./getPricing-
|
|
11533
|
+
const { getModelPricing } = await import("./getPricing-6TOZXPAU.js");
|
|
11285
11534
|
const normalizedTools = tools ?? [];
|
|
11286
11535
|
const resolvedRuntimeToolPolicy = runtimeToolPolicy ?? (normalizedTools.includes("execShell") ? HOSTED_EXEC_RUNTIME_TOOL_POLICY : void 0);
|
|
11287
11536
|
const formData = {
|
|
@@ -12462,6 +12711,139 @@ Imported from: ${url}` : ""
|
|
|
12462
12711
|
});
|
|
12463
12712
|
}
|
|
12464
12713
|
|
|
12714
|
+
// packages/ai/tools/loadSkillTool.ts
|
|
12715
|
+
var loadSkillFunctionSchema = {
|
|
12716
|
+
name: "loadSkill",
|
|
12717
|
+
description: [
|
|
12718
|
+
"\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",
|
|
12719
|
+
"name \u4F7F\u7528 skill \u4FDD\u5B58\u65F6\u5199\u5165 skill-config \u7684 name\uFF08\u4E5F\u63A5\u53D7 skillId\uFF09\u3002",
|
|
12720
|
+
"\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"
|
|
12721
|
+
].join("\n"),
|
|
12722
|
+
parameters: {
|
|
12723
|
+
type: "object",
|
|
12724
|
+
properties: {
|
|
12725
|
+
name: {
|
|
12726
|
+
type: "string",
|
|
12727
|
+
description: "\u8981\u52A0\u8F7D\u7684 skill \u540D\u79F0\u3002"
|
|
12728
|
+
}
|
|
12729
|
+
},
|
|
12730
|
+
required: ["name"]
|
|
12731
|
+
}
|
|
12732
|
+
};
|
|
12733
|
+
var getRuntime = (thunkApi) => {
|
|
12734
|
+
const state = thunkApi?.getState?.();
|
|
12735
|
+
return state ? selectRuntimeSnapshot(state) : null;
|
|
12736
|
+
};
|
|
12737
|
+
var authHeaders = (token) => token ? { Authorization: `Bearer ${token}` } : {};
|
|
12738
|
+
async function readRemoteRecord(args) {
|
|
12739
|
+
const serverBase = normalizeServerOrigin(args.serverBase);
|
|
12740
|
+
if (!serverBase || !args.token) return null;
|
|
12741
|
+
const response = await fetch(
|
|
12742
|
+
`${serverBase}/api/v1/db/read/${encodeURIComponent(args.dbKey)}?includeDeleted=true`,
|
|
12743
|
+
{ headers: authHeaders(args.token) }
|
|
12744
|
+
);
|
|
12745
|
+
if (!response.ok) return null;
|
|
12746
|
+
const payload = await response.json().catch(() => null);
|
|
12747
|
+
return payload?.data ?? payload;
|
|
12748
|
+
}
|
|
12749
|
+
function matchSkillCandidate(candidates, requestedName) {
|
|
12750
|
+
return candidates.find(
|
|
12751
|
+
(candidate) => candidate.name === requestedName || candidate.skillId === requestedName
|
|
12752
|
+
);
|
|
12753
|
+
}
|
|
12754
|
+
function collectSkillCandidatesFromSpace(space) {
|
|
12755
|
+
if (!space?.contents || typeof space.contents !== "object") return [];
|
|
12756
|
+
const candidates = [];
|
|
12757
|
+
for (const [entryKey, value] of Object.entries(space.contents)) {
|
|
12758
|
+
if (!isRecord(value)) continue;
|
|
12759
|
+
const skillSummary = value.skillSummary;
|
|
12760
|
+
if (!isSkillSummaryMarker(skillSummary)) continue;
|
|
12761
|
+
const name = asTrimmedString(skillSummary.name);
|
|
12762
|
+
if (!name) continue;
|
|
12763
|
+
candidates.push({
|
|
12764
|
+
dbKey: entryKey,
|
|
12765
|
+
name,
|
|
12766
|
+
skillId: asOptionalTrimmedString(skillSummary.skillId) ?? void 0
|
|
12767
|
+
});
|
|
12768
|
+
}
|
|
12769
|
+
return candidates;
|
|
12770
|
+
}
|
|
12771
|
+
function extractSkillBody(page) {
|
|
12772
|
+
return parseSkillDocProtocol(page?.content ?? "").content;
|
|
12773
|
+
}
|
|
12774
|
+
async function listSkillCandidates(thunkApi) {
|
|
12775
|
+
const runtime = getRuntime(thunkApi);
|
|
12776
|
+
const serverBase = runtime?.currentServer;
|
|
12777
|
+
const token = runtime?.currentToken;
|
|
12778
|
+
const userId = runtime?.currentUserId;
|
|
12779
|
+
if (!serverBase || !token || !userId) return [];
|
|
12780
|
+
const membershipsResponse = await fetch(
|
|
12781
|
+
`${normalizeServerOrigin(serverBase)}/rpc/getUserSpaceMemberships`,
|
|
12782
|
+
{
|
|
12783
|
+
method: "POST",
|
|
12784
|
+
headers: {
|
|
12785
|
+
"Content-Type": "application/json",
|
|
12786
|
+
...authHeaders(token)
|
|
12787
|
+
},
|
|
12788
|
+
body: JSON.stringify({ userId })
|
|
12789
|
+
}
|
|
12790
|
+
).catch(() => null);
|
|
12791
|
+
if (!membershipsResponse?.ok) return [];
|
|
12792
|
+
const memberships = await membershipsResponse.json().catch(() => []);
|
|
12793
|
+
if (!Array.isArray(memberships)) return [];
|
|
12794
|
+
const candidates = [];
|
|
12795
|
+
for (const membership of memberships) {
|
|
12796
|
+
const spaceId = asTrimmedString(membership?.spaceId);
|
|
12797
|
+
if (!spaceId) continue;
|
|
12798
|
+
const space = await readRemoteRecord({
|
|
12799
|
+
serverBase,
|
|
12800
|
+
token,
|
|
12801
|
+
dbKey: createSpaceKey.space(spaceId)
|
|
12802
|
+
});
|
|
12803
|
+
if (!space) continue;
|
|
12804
|
+
candidates.push(...collectSkillCandidatesFromSpace(space));
|
|
12805
|
+
}
|
|
12806
|
+
return candidates;
|
|
12807
|
+
}
|
|
12808
|
+
async function loadSkillFunc(args, thunkApi) {
|
|
12809
|
+
const requestedName = asTrimmedString(args?.name);
|
|
12810
|
+
if (!requestedName) throw new Error("loadSkill \u9700\u8981\u63D0\u4F9B name\u3002");
|
|
12811
|
+
const candidates = await listSkillCandidates(thunkApi);
|
|
12812
|
+
const matched = matchSkillCandidate(candidates, requestedName);
|
|
12813
|
+
if (!matched) {
|
|
12814
|
+
const availableNames = Array.from(
|
|
12815
|
+
new Set(candidates.map((candidate) => candidate.name))
|
|
12816
|
+
);
|
|
12817
|
+
const availableText = availableNames.length ? availableNames.join(", ") : "(none)";
|
|
12818
|
+
return {
|
|
12819
|
+
rawData: {
|
|
12820
|
+
success: false,
|
|
12821
|
+
name: requestedName,
|
|
12822
|
+
availableSkills: availableNames
|
|
12823
|
+
},
|
|
12824
|
+
displayData: `Skill "${requestedName}" not found. Available skills: ${availableText}`
|
|
12825
|
+
};
|
|
12826
|
+
}
|
|
12827
|
+
const runtime = getRuntime(thunkApi);
|
|
12828
|
+
const page = await readRemoteRecord({
|
|
12829
|
+
serverBase: runtime?.currentServer,
|
|
12830
|
+
token: runtime?.currentToken,
|
|
12831
|
+
dbKey: matched.dbKey
|
|
12832
|
+
});
|
|
12833
|
+
const body = extractSkillBody(page);
|
|
12834
|
+
return {
|
|
12835
|
+
rawData: {
|
|
12836
|
+
success: true,
|
|
12837
|
+
name: requestedName,
|
|
12838
|
+
dbKey: matched.dbKey,
|
|
12839
|
+
body
|
|
12840
|
+
},
|
|
12841
|
+
displayData: `Skill "${requestedName}" loaded inline. Follow its instructions.
|
|
12842
|
+
|
|
12843
|
+
${body}`
|
|
12844
|
+
};
|
|
12845
|
+
}
|
|
12846
|
+
|
|
12465
12847
|
// packages/ai/tools/category/createCategoryTool.ts
|
|
12466
12848
|
var createCategoryFunctionSchema = {
|
|
12467
12849
|
// 已从 'create_category' 更新为 'createCategory'
|
|
@@ -13269,18 +13651,18 @@ var jsonPreview = (value, maxLength = 1800) => {
|
|
|
13269
13651
|
return text.length <= maxLength ? text : `${text.slice(0, maxLength)}
|
|
13270
13652
|
...(truncated)`;
|
|
13271
13653
|
};
|
|
13272
|
-
var
|
|
13654
|
+
var getRuntime2 = (thunkApi) => {
|
|
13273
13655
|
const state = thunkApi?.getState?.();
|
|
13274
13656
|
return state ? selectRuntimeSnapshot(state) : null;
|
|
13275
13657
|
};
|
|
13276
|
-
var
|
|
13277
|
-
async function
|
|
13658
|
+
var authHeaders2 = (token) => token ? { Authorization: `Bearer ${token}` } : {};
|
|
13659
|
+
async function readRemoteRecord2(args) {
|
|
13278
13660
|
const serverBase = normalizeServerOrigin(args.serverBase);
|
|
13279
13661
|
if (!serverBase || !args.token) return null;
|
|
13280
13662
|
const query = args.includeDeleted ? "?includeDeleted=true" : "";
|
|
13281
13663
|
const response = await fetch(
|
|
13282
13664
|
`${serverBase}/api/v1/db/read/${encodeURIComponent(args.dbKey)}${query}`,
|
|
13283
|
-
{ headers:
|
|
13665
|
+
{ headers: authHeaders2(args.token) }
|
|
13284
13666
|
);
|
|
13285
13667
|
if (!response.ok) return null;
|
|
13286
13668
|
const payload = await response.json().catch(() => null);
|
|
@@ -13295,7 +13677,7 @@ async function queryRemoteUserRecords(args) {
|
|
|
13295
13677
|
method: "POST",
|
|
13296
13678
|
headers: {
|
|
13297
13679
|
"Content-Type": "application/json",
|
|
13298
|
-
...
|
|
13680
|
+
...authHeaders2(args.token)
|
|
13299
13681
|
},
|
|
13300
13682
|
body: JSON.stringify({
|
|
13301
13683
|
type: args.type,
|
|
@@ -13308,7 +13690,7 @@ async function queryRemoteUserRecords(args) {
|
|
|
13308
13690
|
return Array.isArray(payload?.data?.data) ? payload.data.data : Array.isArray(payload?.data) ? payload.data : [];
|
|
13309
13691
|
}
|
|
13310
13692
|
async function queryBestRecords(thunkApi, type, limit) {
|
|
13311
|
-
const runtime =
|
|
13693
|
+
const runtime = getRuntime2(thunkApi);
|
|
13312
13694
|
const remoteRecords = await queryRemoteUserRecords({
|
|
13313
13695
|
serverBase: runtime?.currentServer,
|
|
13314
13696
|
token: runtime?.currentToken,
|
|
@@ -13319,8 +13701,8 @@ async function queryBestRecords(thunkApi, type, limit) {
|
|
|
13319
13701
|
return remoteRecords;
|
|
13320
13702
|
}
|
|
13321
13703
|
async function readBestRecord(thunkApi, dbKey, includeDeleted = false) {
|
|
13322
|
-
const runtime =
|
|
13323
|
-
return
|
|
13704
|
+
const runtime = getRuntime2(thunkApi);
|
|
13705
|
+
return readRemoteRecord2({
|
|
13324
13706
|
serverBase: runtime?.currentServer,
|
|
13325
13707
|
token: runtime?.currentToken,
|
|
13326
13708
|
dbKey,
|
|
@@ -13421,7 +13803,7 @@ var deleteDialogsFunctionSchema = {
|
|
|
13421
13803
|
}
|
|
13422
13804
|
};
|
|
13423
13805
|
async function queryDialogsBySubjectRefFunc(args, thunkApi) {
|
|
13424
|
-
const runtime =
|
|
13806
|
+
const runtime = getRuntime2(thunkApi);
|
|
13425
13807
|
const target = buildNoloSubjectRefQueryTarget(args ?? {});
|
|
13426
13808
|
if (!target) throw new Error("queryDialogsBySubjectRef requires rowDbKey or subjectKind plus subjectId.");
|
|
13427
13809
|
const queryLimit = clampNoloPositiveInteger(args?.queryLimit, 500, 500);
|
|
@@ -13467,7 +13849,7 @@ async function queryDialogsBySubjectRefFunc(args, thunkApi) {
|
|
|
13467
13849
|
};
|
|
13468
13850
|
}
|
|
13469
13851
|
async function readDialogFunc(args, thunkApi) {
|
|
13470
|
-
const runtime =
|
|
13852
|
+
const runtime = getRuntime2(thunkApi);
|
|
13471
13853
|
const userId = runtime?.currentUserId;
|
|
13472
13854
|
if (!userId) throw new Error("readDialog requires a signed-in user.");
|
|
13473
13855
|
const rawDialog = asTrimmedString(args?.dialog) || asTrimmedString(args?.dialogId) || asTrimmedString(args?.id);
|
|
@@ -13482,7 +13864,7 @@ async function readDialogFunc(args, thunkApi) {
|
|
|
13482
13864
|
method: "POST",
|
|
13483
13865
|
headers: {
|
|
13484
13866
|
"Content-Type": "application/json",
|
|
13485
|
-
...
|
|
13867
|
+
...authHeaders2(runtime.currentToken)
|
|
13486
13868
|
},
|
|
13487
13869
|
body: JSON.stringify({ dialogId: resolved.dialogId, limit })
|
|
13488
13870
|
}).catch(() => null);
|
|
@@ -13532,7 +13914,7 @@ var formatDeleteDialogsPreview = (preview) => {
|
|
|
13532
13914
|
return lines.join("\n");
|
|
13533
13915
|
};
|
|
13534
13916
|
var loadDeleteDialogsPreview = async (args, thunkApi) => {
|
|
13535
|
-
const runtime =
|
|
13917
|
+
const runtime = getRuntime2(thunkApi);
|
|
13536
13918
|
const userId = runtime?.currentUserId;
|
|
13537
13919
|
if (!userId) throw new Error("deleteDialogs requires a signed-in user.");
|
|
13538
13920
|
const query = asTrimmedString(args?.query);
|
|
@@ -13578,7 +13960,7 @@ async function deleteDialogsFunc(args, thunkApi) {
|
|
|
13578
13960
|
const deletedDialogIds = [];
|
|
13579
13961
|
const deletedDialogKeys = [];
|
|
13580
13962
|
const failures = [];
|
|
13581
|
-
const { deleteDialog } = await import("./dialogSlice-
|
|
13963
|
+
const { deleteDialog } = await import("./dialogSlice-PRHHYSP5.js");
|
|
13582
13964
|
for (const target of targets) {
|
|
13583
13965
|
try {
|
|
13584
13966
|
await thunkApi.dispatch(deleteDialog(target.dbKey)).unwrap();
|
|
@@ -13603,9 +13985,60 @@ async function deleteDialogsFunc(args, thunkApi) {
|
|
|
13603
13985
|
displayData: deletedDialogIds.length > 0 ? `\u5DF2\u5220\u9664 ${deletedDialogIds.length} \u4E2A\u5BF9\u8BDD\uFF1A${deletedDialogIds.join(", ")}\u3002` : "\u6CA1\u6709\u5220\u9664\u4EFB\u4F55\u5BF9\u8BDD\u3002"
|
|
13604
13986
|
};
|
|
13605
13987
|
}
|
|
13988
|
+
async function fetchUserFavoriteAgentMap(thunkApi) {
|
|
13989
|
+
const runtime = getRuntime2(thunkApi);
|
|
13990
|
+
if (!runtime?.currentServer || !runtime?.currentToken) return {};
|
|
13991
|
+
try {
|
|
13992
|
+
const serverBase = normalizeServerOrigin(runtime.currentServer);
|
|
13993
|
+
if (!serverBase) return {};
|
|
13994
|
+
const response = await fetch(`${serverBase}/rpc/listFavorites`, {
|
|
13995
|
+
method: "POST",
|
|
13996
|
+
headers: {
|
|
13997
|
+
"Content-Type": "application/json",
|
|
13998
|
+
...authHeaders2(runtime.currentToken)
|
|
13999
|
+
},
|
|
14000
|
+
body: JSON.stringify({ targetType: "agent" })
|
|
14001
|
+
}).catch(() => null);
|
|
14002
|
+
if (!response || !response.ok) return {};
|
|
14003
|
+
const data = await response.json().catch(() => ({}));
|
|
14004
|
+
const favoritedAtByKey = {};
|
|
14005
|
+
const items = Array.isArray(data?.items) ? data.items : [];
|
|
14006
|
+
for (const item of items) {
|
|
14007
|
+
const id = typeof item?.id === "string" ? item.id : "";
|
|
14008
|
+
if (!id) continue;
|
|
14009
|
+
const at = Number(item?.favoritedAt) || 0;
|
|
14010
|
+
favoritedAtByKey[id] = Math.max(favoritedAtByKey[id] ?? 0, at || Date.now());
|
|
14011
|
+
}
|
|
14012
|
+
const ids = Array.isArray(data?.ids) ? data.ids : [];
|
|
14013
|
+
for (const id of ids) {
|
|
14014
|
+
if (typeof id === "string" && id && !(id in favoritedAtByKey)) {
|
|
14015
|
+
favoritedAtByKey[id] = 1;
|
|
14016
|
+
}
|
|
14017
|
+
}
|
|
14018
|
+
return favoritedAtByKey;
|
|
14019
|
+
} catch {
|
|
14020
|
+
return {};
|
|
14021
|
+
}
|
|
14022
|
+
}
|
|
14023
|
+
function formatAgentListCard(agents, maxDisplay = 20) {
|
|
14024
|
+
const total = agents.length;
|
|
14025
|
+
const lines = [`Agents (${total})`];
|
|
14026
|
+
const visible = agents.slice(0, maxDisplay);
|
|
14027
|
+
for (const agent of visible) {
|
|
14028
|
+
const star = agent.isFavorite ? "\u2605" : " ";
|
|
14029
|
+
const name = agent.name || "(unnamed)";
|
|
14030
|
+
const model = agent.model || "\u2014";
|
|
14031
|
+
const source = agent.apiSource || agent.provider || agent.cliProvider || "\u2014";
|
|
14032
|
+
lines.push(`${star} ${name} ${model} ${source}`);
|
|
14033
|
+
}
|
|
14034
|
+
if (total > maxDisplay) {
|
|
14035
|
+
lines.push(`\u2026 +${total - maxDisplay} more`);
|
|
14036
|
+
}
|
|
14037
|
+
return lines.join("\n");
|
|
14038
|
+
}
|
|
13606
14039
|
var listAgentsFunctionSchema = {
|
|
13607
14040
|
name: "listAgents",
|
|
13608
|
-
description: "List the current user's Nolo agents.",
|
|
14041
|
+
description: "List the current user's Nolo agents as safe summaries. Use readAgent with the selected id/publicKey to resolve the runnable agentKey before delegation.",
|
|
13609
14042
|
parameters: {
|
|
13610
14043
|
type: "object",
|
|
13611
14044
|
properties: {
|
|
@@ -13616,21 +14049,40 @@ var listAgentsFunctionSchema = {
|
|
|
13616
14049
|
};
|
|
13617
14050
|
async function listAgentsFunc(args, thunkApi) {
|
|
13618
14051
|
const limit = clampNoloPositiveInteger(args?.limit, 100, 500);
|
|
13619
|
-
const
|
|
13620
|
-
const
|
|
13621
|
-
|
|
13622
|
-
|
|
13623
|
-
|
|
13624
|
-
|
|
13625
|
-
|
|
13626
|
-
|
|
13627
|
-
|
|
13628
|
-
|
|
13629
|
-
|
|
13630
|
-
|
|
14052
|
+
const userRecords = await queryBestRecords(thunkApi, "agent" /* AGENT */, limit);
|
|
14053
|
+
const favoritesMap = await fetchUserFavoriteAgentMap(thunkApi);
|
|
14054
|
+
const recordsMap = /* @__PURE__ */ new Map();
|
|
14055
|
+
for (const record of userRecords) {
|
|
14056
|
+
const key = record?.dbKey || record?.id || record?.publicKey;
|
|
14057
|
+
if (key) recordsMap.set(key, record);
|
|
14058
|
+
}
|
|
14059
|
+
for (const favKey of Object.keys(favoritesMap)) {
|
|
14060
|
+
const isAlreadyPresent = Array.from(recordsMap.values()).some(
|
|
14061
|
+
(record) => record?.dbKey === favKey || record?.id === favKey || record?.publicKey === favKey || `agent-pub-${record?.id}` === favKey
|
|
14062
|
+
);
|
|
14063
|
+
if (!isAlreadyPresent) {
|
|
14064
|
+
const favRecord = await readBestRecord(thunkApi, favKey).catch(() => null);
|
|
14065
|
+
if (favRecord) {
|
|
14066
|
+
const key = favRecord?.dbKey || favRecord?.id || favKey;
|
|
14067
|
+
recordsMap.set(key, favRecord);
|
|
14068
|
+
}
|
|
14069
|
+
}
|
|
14070
|
+
}
|
|
14071
|
+
const runtime = getRuntime2(thunkApi);
|
|
14072
|
+
const userId = runtime?.currentUserId ?? void 0;
|
|
14073
|
+
let agents = Array.from(recordsMap.values()).map(
|
|
14074
|
+
(record) => toSafeAgentSummary(record, {
|
|
14075
|
+
favoritesMap,
|
|
14076
|
+
userId
|
|
14077
|
+
})
|
|
14078
|
+
);
|
|
14079
|
+
if (args?.publicOnly === true) {
|
|
14080
|
+
agents = agents.filter((agent) => agent.isPublic);
|
|
14081
|
+
}
|
|
14082
|
+
agents = sortSafeAgentSummaries(agents);
|
|
13631
14083
|
return {
|
|
13632
14084
|
rawData: { success: true, total: agents.length, agents },
|
|
13633
|
-
displayData:
|
|
14085
|
+
displayData: formatAgentListCard(agents)
|
|
13634
14086
|
};
|
|
13635
14087
|
}
|
|
13636
14088
|
var readAgentFunctionSchema = {
|
|
@@ -13645,7 +14097,7 @@ var readAgentFunctionSchema = {
|
|
|
13645
14097
|
}
|
|
13646
14098
|
};
|
|
13647
14099
|
async function readAgentFunc(args, thunkApi) {
|
|
13648
|
-
const runtime =
|
|
14100
|
+
const runtime = getRuntime2(thunkApi);
|
|
13649
14101
|
const userId = runtime?.currentUserId;
|
|
13650
14102
|
if (!userId) throw new Error("readAgent requires a signed-in user.");
|
|
13651
14103
|
const rawAgent = asTrimmedString(args?.agent) || asTrimmedString(args?.agentKey) || asTrimmedString(args?.id);
|
|
@@ -13679,14 +14131,14 @@ var listSpacesFunctionSchema = {
|
|
|
13679
14131
|
}
|
|
13680
14132
|
};
|
|
13681
14133
|
async function listSpacesFunc(_args, thunkApi) {
|
|
13682
|
-
const runtime =
|
|
14134
|
+
const runtime = getRuntime2(thunkApi);
|
|
13683
14135
|
const serverBase = normalizeServerOrigin(runtime?.currentServer);
|
|
13684
14136
|
if (serverBase && runtime?.currentToken && runtime?.currentUserId) {
|
|
13685
14137
|
const response = await fetch(`${serverBase}/rpc/getUserSpaceMemberships`, {
|
|
13686
14138
|
method: "POST",
|
|
13687
14139
|
headers: {
|
|
13688
14140
|
"Content-Type": "application/json",
|
|
13689
|
-
...
|
|
14141
|
+
...authHeaders2(runtime.currentToken)
|
|
13690
14142
|
},
|
|
13691
14143
|
body: JSON.stringify({ userId: runtime.currentUserId })
|
|
13692
14144
|
}).catch(() => null);
|
|
@@ -13772,7 +14224,7 @@ var readSkillDocFunctionSchema = {
|
|
|
13772
14224
|
}
|
|
13773
14225
|
};
|
|
13774
14226
|
async function readSkillDocFunc(args, thunkApi) {
|
|
13775
|
-
const { buildReadDocResult } = await import("./readDocTool-
|
|
14227
|
+
const { buildReadDocResult } = await import("./readDocTool-QHVGQHUJ.js");
|
|
13776
14228
|
const id = args?.id ?? args?.doc ?? args?.docKey ?? args?.pageKey;
|
|
13777
14229
|
if (typeof id !== "string" || !id.trim()) {
|
|
13778
14230
|
throw new Error("readSkillDoc requires id or doc.");
|
|
@@ -13788,7 +14240,7 @@ var cliWhoamiFunctionSchema = {
|
|
|
13788
14240
|
parameters: { type: "object", properties: {} }
|
|
13789
14241
|
};
|
|
13790
14242
|
async function cliWhoamiFunc(_args, thunkApi) {
|
|
13791
|
-
const runtime =
|
|
14243
|
+
const runtime = getRuntime2(thunkApi);
|
|
13792
14244
|
const result = {
|
|
13793
14245
|
success: true,
|
|
13794
14246
|
runtime: "browser",
|
|
@@ -13804,7 +14256,7 @@ var cliDoctorFunctionSchema = {
|
|
|
13804
14256
|
parameters: { type: "object", properties: {} }
|
|
13805
14257
|
};
|
|
13806
14258
|
async function cliDoctorFunc(_args, thunkApi) {
|
|
13807
|
-
const runtime =
|
|
14259
|
+
const runtime = getRuntime2(thunkApi);
|
|
13808
14260
|
const result = {
|
|
13809
14261
|
success: true,
|
|
13810
14262
|
runtime: "browser",
|
|
@@ -19160,7 +19612,7 @@ var selectUserIdFromState = (state) => typeof state?.auth?.currentUser?.userId =
|
|
|
19160
19612
|
var selectCurrentServerFromState = (state) => typeof state?.settings?.currentServer === "string" ? state.settings.currentServer : null;
|
|
19161
19613
|
async function addImageContentToSpace(input) {
|
|
19162
19614
|
const injectedAddContentAction = input.thunkApi?.extra?.addContentAction;
|
|
19163
|
-
const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-
|
|
19615
|
+
const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-ZHI7TVV3.js")).addContentAction;
|
|
19164
19616
|
await addContentAction2(
|
|
19165
19617
|
{
|
|
19166
19618
|
spaceId: input.spaceId,
|
|
@@ -20243,6 +20695,26 @@ var resolveRetryAfterMs = (headers, fallbackMs, bodyRetryAfterMs) => {
|
|
|
20243
20695
|
return normalizeNonNegativeMs(bodyRetryAfterMs, fallbackMs);
|
|
20244
20696
|
};
|
|
20245
20697
|
|
|
20698
|
+
// packages/core/abortableDelay.ts
|
|
20699
|
+
function waitForAbortableDelay(ms, signal) {
|
|
20700
|
+
const delayMs = Number.isFinite(ms) && ms >= 0 ? Math.round(ms) : 0;
|
|
20701
|
+
if (signal?.aborted) {
|
|
20702
|
+
return Promise.reject(new DOMException("Aborted", "AbortError"));
|
|
20703
|
+
}
|
|
20704
|
+
return new Promise((resolve, reject) => {
|
|
20705
|
+
const onAbort = () => {
|
|
20706
|
+
clearTimeout(timeoutId);
|
|
20707
|
+
signal?.removeEventListener("abort", onAbort);
|
|
20708
|
+
reject(new DOMException("Aborted", "AbortError"));
|
|
20709
|
+
};
|
|
20710
|
+
const timeoutId = setTimeout(() => {
|
|
20711
|
+
signal?.removeEventListener("abort", onAbort);
|
|
20712
|
+
resolve();
|
|
20713
|
+
}, delayMs);
|
|
20714
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
20715
|
+
});
|
|
20716
|
+
}
|
|
20717
|
+
|
|
20246
20718
|
// packages/ai/chat/parseMultilineSSE.ts
|
|
20247
20719
|
function createSSEParser() {
|
|
20248
20720
|
let buffer = "";
|
|
@@ -20306,6 +20778,7 @@ var parseMultilineSSE = createSSEParser();
|
|
|
20306
20778
|
var MAX_SSE_RETRIES = 3;
|
|
20307
20779
|
var SSE_RETRY_DELAY_MS = 1500;
|
|
20308
20780
|
var MAX_RUN_START_RETRIES = 1;
|
|
20781
|
+
var MAX_RUN_START_CORE_DRAINING_RETRIES = 30;
|
|
20309
20782
|
function createRetryableError(message, retryAfterMs) {
|
|
20310
20783
|
return Object.assign(new Error(message), {
|
|
20311
20784
|
retryable: true,
|
|
@@ -20320,20 +20793,7 @@ function createSubscriptionError(status, hasBody, retryAfterMs) {
|
|
|
20320
20793
|
return createRetryableError(message, retryAfterMs);
|
|
20321
20794
|
}
|
|
20322
20795
|
async function waitForRetryDelay(retryAfterMs, signal) {
|
|
20323
|
-
|
|
20324
|
-
await new Promise((resolve, reject) => {
|
|
20325
|
-
let timeoutId;
|
|
20326
|
-
const onAbort = () => {
|
|
20327
|
-
clearTimeout(timeoutId);
|
|
20328
|
-
signal.removeEventListener("abort", onAbort);
|
|
20329
|
-
reject(new DOMException("Aborted", "AbortError"));
|
|
20330
|
-
};
|
|
20331
|
-
timeoutId = setTimeout(() => {
|
|
20332
|
-
signal.removeEventListener("abort", onAbort);
|
|
20333
|
-
resolve();
|
|
20334
|
-
}, retryAfterMs);
|
|
20335
|
-
signal.addEventListener("abort", onAbort, { once: true });
|
|
20336
|
-
});
|
|
20796
|
+
await waitForAbortableDelay(retryAfterMs, signal);
|
|
20337
20797
|
}
|
|
20338
20798
|
function parseRetryableJson(text) {
|
|
20339
20799
|
try {
|
|
@@ -20419,7 +20879,7 @@ async function listenToDialogEvents(dialogId, currentServer, authHeader, signal,
|
|
|
20419
20879
|
});
|
|
20420
20880
|
}
|
|
20421
20881
|
var runAgentBackground = createAsyncThunk("agent/runBackground", async (args, { getState, signal: thunkSignal }) => {
|
|
20422
|
-
const { agentKey, userInput, serverBase, spaceId, onStatusChange, onDone, onFailed } = args;
|
|
20882
|
+
const { agentKey, userInput, serverBase, spaceId, parentDialogId, onStatusChange, onDone, onFailed } = args;
|
|
20423
20883
|
const state = getState();
|
|
20424
20884
|
const currentServer = normalizeServerOrigin(serverBase) || selectCurrentServer(state);
|
|
20425
20885
|
const token = selectIdentityToken(state);
|
|
@@ -20427,7 +20887,8 @@ var runAgentBackground = createAsyncThunk("agent/runBackground", async (args, {
|
|
|
20427
20887
|
const authHeader = token ? `Bearer ${token}` : "";
|
|
20428
20888
|
const effectiveSignal = args.signal ?? thunkSignal;
|
|
20429
20889
|
let runResponse = null;
|
|
20430
|
-
|
|
20890
|
+
let maxRunStartRetries = MAX_RUN_START_RETRIES;
|
|
20891
|
+
for (let attempt = 0; attempt <= maxRunStartRetries; attempt++) {
|
|
20431
20892
|
const runRes = await fetch(`${currentServer}/api/agent/run`, {
|
|
20432
20893
|
method: "POST",
|
|
20433
20894
|
headers: {
|
|
@@ -20439,12 +20900,14 @@ var runAgentBackground = createAsyncThunk("agent/runBackground", async (args, {
|
|
|
20439
20900
|
userInput,
|
|
20440
20901
|
spaceId,
|
|
20441
20902
|
background: true,
|
|
20903
|
+
...parentDialogId ? { parentDialogId } : {},
|
|
20442
20904
|
runtimeContext: {
|
|
20443
20905
|
surface: "web",
|
|
20444
20906
|
host: "browser",
|
|
20445
20907
|
runtime: "react",
|
|
20446
20908
|
entrypoint: "background-agent-run",
|
|
20447
|
-
capabilities: ["background", "sse-events"]
|
|
20909
|
+
capabilities: ["background", "sse-events"],
|
|
20910
|
+
...parentDialogId ? { parentThreadId: parentDialogId } : {}
|
|
20448
20911
|
}
|
|
20449
20912
|
}),
|
|
20450
20913
|
signal: effectiveSignal
|
|
@@ -20460,8 +20923,12 @@ var runAgentBackground = createAsyncThunk("agent/runBackground", async (args, {
|
|
|
20460
20923
|
SSE_RETRY_DELAY_MS,
|
|
20461
20924
|
payload?.retryAfterMs
|
|
20462
20925
|
);
|
|
20463
|
-
const
|
|
20464
|
-
|
|
20926
|
+
const isCoreDraining = payload?.reason === CORE_DRAIN_REASON;
|
|
20927
|
+
const retryable = payload?.retryable === true || isCoreDraining || isGatewayHttpStatus(runRes.status);
|
|
20928
|
+
if (isCoreDraining) {
|
|
20929
|
+
maxRunStartRetries = MAX_RUN_START_CORE_DRAINING_RETRIES;
|
|
20930
|
+
}
|
|
20931
|
+
if (retryable && attempt < maxRunStartRetries) {
|
|
20465
20932
|
await waitForRetryDelay(retryAfterMs, effectiveSignal);
|
|
20466
20933
|
continue;
|
|
20467
20934
|
}
|
|
@@ -20555,12 +21022,15 @@ async function callAgentFunc(args, thunkApi, context) {
|
|
|
20555
21022
|
throw new Error("callAgent: \u7F3A\u5C11\u6709\u6548\u7684 task \u6587\u672C\u63CF\u8FF0\u3002");
|
|
20556
21023
|
}
|
|
20557
21024
|
const content = buildDelegatedTaskContent(task, input);
|
|
21025
|
+
const activeDialogKey = getActiveDialogKey();
|
|
21026
|
+
const parentDialogId = activeDialogKey ? extractCustomId(activeDialogKey) : void 0;
|
|
20558
21027
|
try {
|
|
20559
21028
|
const bgResult = await dispatch(
|
|
20560
21029
|
runAgentBackground({
|
|
20561
21030
|
agentKey,
|
|
20562
21031
|
userInput: content,
|
|
20563
|
-
...background === true ? { waitForCompletion: false } : {}
|
|
21032
|
+
...background === true ? { waitForCompletion: false } : {},
|
|
21033
|
+
...parentDialogId ? { parentDialogId } : {}
|
|
20564
21034
|
})
|
|
20565
21035
|
).unwrap();
|
|
20566
21036
|
if (background === true) {
|
|
@@ -21140,6 +21610,117 @@ async function runLlmToolFunc(args, thunkApi, _context) {
|
|
|
21140
21610
|
}
|
|
21141
21611
|
}
|
|
21142
21612
|
|
|
21613
|
+
// packages/ai/tools/agent/agentRunDisplayHelpers.ts
|
|
21614
|
+
function getAgentRunStatusIcon(status) {
|
|
21615
|
+
switch (status) {
|
|
21616
|
+
case "running":
|
|
21617
|
+
case "pending":
|
|
21618
|
+
return "\u23F3";
|
|
21619
|
+
case "done":
|
|
21620
|
+
return "\u2713";
|
|
21621
|
+
case "failed":
|
|
21622
|
+
case "timeout":
|
|
21623
|
+
return "\u2717";
|
|
21624
|
+
case "killed":
|
|
21625
|
+
case "cancelled":
|
|
21626
|
+
case "cancelling":
|
|
21627
|
+
return "\u{1F6D1}";
|
|
21628
|
+
case "not_found":
|
|
21629
|
+
default:
|
|
21630
|
+
return "?";
|
|
21631
|
+
}
|
|
21632
|
+
}
|
|
21633
|
+
var DEFAULT_LABELS = {
|
|
21634
|
+
runStatus: "Run status",
|
|
21635
|
+
runStarted: "Run started",
|
|
21636
|
+
runStopped: "Run stopped",
|
|
21637
|
+
logTail: "Log tail:",
|
|
21638
|
+
runs: (count) => `Runs (${count})`
|
|
21639
|
+
};
|
|
21640
|
+
function resolveLabels(labels) {
|
|
21641
|
+
return {
|
|
21642
|
+
runStatus: labels?.runStatus ?? DEFAULT_LABELS.runStatus,
|
|
21643
|
+
runStarted: labels?.runStarted ?? DEFAULT_LABELS.runStarted,
|
|
21644
|
+
runStopped: labels?.runStopped ?? DEFAULT_LABELS.runStopped,
|
|
21645
|
+
logTail: labels?.logTail ?? DEFAULT_LABELS.logTail,
|
|
21646
|
+
runs: labels?.runs ?? DEFAULT_LABELS.runs
|
|
21647
|
+
};
|
|
21648
|
+
}
|
|
21649
|
+
function isAgentNameFallback(agentName) {
|
|
21650
|
+
const trimmed = typeof agentName === "string" ? agentName.trim() : "";
|
|
21651
|
+
return !trimmed || trimmed === "agent";
|
|
21652
|
+
}
|
|
21653
|
+
function formatStartRunCard(agentName, status = "running", labels) {
|
|
21654
|
+
const L = resolveLabels(labels);
|
|
21655
|
+
const icon = getAgentRunStatusIcon(status);
|
|
21656
|
+
const lines = [L.runStarted];
|
|
21657
|
+
if (!isAgentNameFallback(agentName)) {
|
|
21658
|
+
lines.push(` agent ${agentName}`);
|
|
21659
|
+
}
|
|
21660
|
+
lines.push(` status ${icon} ${status}`);
|
|
21661
|
+
return lines.join("\n");
|
|
21662
|
+
}
|
|
21663
|
+
function formatStatusRunCard(agentName, status = "running", opts) {
|
|
21664
|
+
const L = resolveLabels(opts?.labels);
|
|
21665
|
+
const icon = getAgentRunStatusIcon(status);
|
|
21666
|
+
const lines = [L.runStatus, ` ${icon} ${status}`];
|
|
21667
|
+
if (!isAgentNameFallback(agentName)) {
|
|
21668
|
+
lines.push(` agent ${agentName}`);
|
|
21669
|
+
}
|
|
21670
|
+
if (opts?.pollCount !== void 0 && opts.pollCount > 0) {
|
|
21671
|
+
lines.push(` polls ${opts.pollCount}`);
|
|
21672
|
+
}
|
|
21673
|
+
if (typeof opts?.elapsedMs === "number" && Number.isFinite(opts.elapsedMs)) {
|
|
21674
|
+
lines.push(` last ${Math.round(opts.elapsedMs)}ms`);
|
|
21675
|
+
}
|
|
21676
|
+
if (opts?.lastToolNames && opts.lastToolNames.length > 0) {
|
|
21677
|
+
lines.push(` lastTools ${opts.lastToolNames.join(", ")}`);
|
|
21678
|
+
}
|
|
21679
|
+
if (opts?.toolCallCount !== void 0) {
|
|
21680
|
+
lines.push(` toolCalls ${opts.toolCallCount}`);
|
|
21681
|
+
}
|
|
21682
|
+
if (opts?.errorMessage?.trim()) {
|
|
21683
|
+
lines.push(` error ${opts.errorMessage.trim()}`);
|
|
21684
|
+
}
|
|
21685
|
+
const includeLog = opts?.includeLogTail !== false;
|
|
21686
|
+
if (includeLog && opts?.logLines && opts.logLines.length > 0) {
|
|
21687
|
+
lines.push("", L.logTail, ...opts.logLines.map((l) => ` ${l}`));
|
|
21688
|
+
}
|
|
21689
|
+
return lines.join("\n");
|
|
21690
|
+
}
|
|
21691
|
+
function formatStopRunCard(status = "killed", labels) {
|
|
21692
|
+
const L = resolveLabels(labels);
|
|
21693
|
+
const icon = getAgentRunStatusIcon(status);
|
|
21694
|
+
return `${L.runStopped}
|
|
21695
|
+
${icon} ${status}`;
|
|
21696
|
+
}
|
|
21697
|
+
function formatListRunsCard(runs, labels) {
|
|
21698
|
+
const L = resolveLabels(labels);
|
|
21699
|
+
const lines = [L.runs(runs.length)];
|
|
21700
|
+
for (const run of runs) {
|
|
21701
|
+
const status = run.status ?? "\u2014";
|
|
21702
|
+
const icon = getAgentRunStatusIcon(status);
|
|
21703
|
+
const name = run.agentName || run.name || "agent";
|
|
21704
|
+
lines.push(` ${icon} ${name}`);
|
|
21705
|
+
}
|
|
21706
|
+
return lines.join("\n");
|
|
21707
|
+
}
|
|
21708
|
+
function formatNotFoundRunCard(labels) {
|
|
21709
|
+
const L = resolveLabels(labels);
|
|
21710
|
+
return `${L.runStatus}
|
|
21711
|
+
? not_found`;
|
|
21712
|
+
}
|
|
21713
|
+
var AGENT_RUN_TERMINAL_STATUSES = /* @__PURE__ */ new Set([
|
|
21714
|
+
"done",
|
|
21715
|
+
"failed",
|
|
21716
|
+
"timeout",
|
|
21717
|
+
"killed",
|
|
21718
|
+
"cancelled"
|
|
21719
|
+
]);
|
|
21720
|
+
function isAgentRunTerminalStatus(status) {
|
|
21721
|
+
return typeof status === "string" && AGENT_RUN_TERMINAL_STATUSES.has(status);
|
|
21722
|
+
}
|
|
21723
|
+
|
|
21143
21724
|
// packages/ai/tools/agent/startAgentRunTool.ts
|
|
21144
21725
|
var startAgentRunFunctionSchema = {
|
|
21145
21726
|
name: "startAgentRun",
|
|
@@ -21149,7 +21730,7 @@ var startAgentRunFunctionSchema = {
|
|
|
21149
21730
|
properties: {
|
|
21150
21731
|
agentKey: {
|
|
21151
21732
|
type: "string",
|
|
21152
|
-
description: "\u8981\u542F\u52A8\u7684 Agent \u7684\
|
|
21733
|
+
description: "\u8981\u542F\u52A8\u7684 Agent \u7684\u53EF\u8FD0\u884C dbKey\uFF08\u4F18\u5148\u4F7F\u7528 readAgent \u8FD4\u56DE\u7684 agentKey\uFF0C\u683C\u5F0F\u5982 agent-xxx\uFF09\u3002"
|
|
21153
21734
|
},
|
|
21154
21735
|
task: {
|
|
21155
21736
|
type: "string",
|
|
@@ -21172,22 +21753,27 @@ async function startAgentRunFunc(args, thunkApi, _context) {
|
|
|
21172
21753
|
throw new Error("startAgentRun: \u7F3A\u5C11\u6709\u6548\u7684 task \u6587\u672C\u63CF\u8FF0\u3002");
|
|
21173
21754
|
}
|
|
21174
21755
|
const content = buildDelegatedTaskContent(task, input);
|
|
21756
|
+
const activeDialogKey = getActiveDialogKey();
|
|
21757
|
+
const parentDialogId = activeDialogKey ? extractCustomId(activeDialogKey) : void 0;
|
|
21175
21758
|
try {
|
|
21176
21759
|
const bgResult = await dispatch(
|
|
21177
21760
|
runAgentBackground({
|
|
21178
21761
|
agentKey,
|
|
21179
21762
|
userInput: content,
|
|
21180
|
-
waitForCompletion: false
|
|
21763
|
+
waitForCompletion: false,
|
|
21764
|
+
...parentDialogId ? { parentDialogId } : {}
|
|
21181
21765
|
})
|
|
21182
21766
|
).unwrap();
|
|
21183
21767
|
const runId = bgResult.dialogId;
|
|
21184
21768
|
const status = bgResult.status ?? "pending";
|
|
21769
|
+
const name = bgResult.agentName || bgResult.name || "agent";
|
|
21185
21770
|
return {
|
|
21186
21771
|
rawData: {
|
|
21187
21772
|
runId,
|
|
21188
|
-
status
|
|
21773
|
+
status,
|
|
21774
|
+
...bgResult.agentName ? { agentName: bgResult.agentName } : {}
|
|
21189
21775
|
},
|
|
21190
|
-
displayData:
|
|
21776
|
+
displayData: formatStartRunCard(name, status)
|
|
21191
21777
|
};
|
|
21192
21778
|
} catch (e) {
|
|
21193
21779
|
throw new Error(`startAgentRun \u542F\u52A8 Agent [${agentKey}] \u5931\u8D25: ${toErrorMessage(e)}`);
|
|
@@ -21257,11 +21843,9 @@ async function handleList(thunkApi, opts) {
|
|
|
21257
21843
|
const resData = data?.data ?? data;
|
|
21258
21844
|
const runs = resData?.runs ?? [];
|
|
21259
21845
|
const count = resData?.count ?? runs.length;
|
|
21260
|
-
const summary = runs.map((t) => `${t.runId} [${t.status}] ${t.agentKey ?? "unknown"}`).join("\n");
|
|
21261
21846
|
return {
|
|
21262
21847
|
rawData: { runs, count },
|
|
21263
|
-
displayData: runs
|
|
21264
|
-
${summary}` : "\u{1F4CB} \u6CA1\u6709\u627E\u5230 run\u3002"
|
|
21848
|
+
displayData: formatListRunsCard(runs)
|
|
21265
21849
|
};
|
|
21266
21850
|
} catch (e) {
|
|
21267
21851
|
throw new Error(`controlAgentRun(list) \u5931\u8D25: ${toErrorMessage(e)}`);
|
|
@@ -21279,24 +21863,21 @@ async function handleStatus(thunkApi, opts) {
|
|
|
21279
21863
|
if (!resData || resData.found === false || !resData.run) {
|
|
21280
21864
|
return {
|
|
21281
21865
|
rawData: { runId: opts.runId, found: false },
|
|
21282
|
-
displayData:
|
|
21866
|
+
displayData: `Run status
|
|
21867
|
+
? not_found`
|
|
21283
21868
|
};
|
|
21284
21869
|
}
|
|
21285
21870
|
const run = resData.run;
|
|
21286
21871
|
const logLines = resData.logLines;
|
|
21287
|
-
const
|
|
21288
|
-
`\u{1F4CA} run ${run.runId}`,
|
|
21289
|
-
` \u72B6\u6001: ${run.status}`,
|
|
21290
|
-
` Agent: ${run.agentKey ?? "unknown"}`,
|
|
21291
|
-
...run.lastToolNames?.length ? [` \u6700\u8FD1\u5DE5\u5177: ${run.lastToolNames.join(", ")}`] : [],
|
|
21292
|
-
...run.toolCallCount !== void 0 ? [` \u5DE5\u5177\u8C03\u7528\u6570: ${run.toolCallCount}`] : [],
|
|
21293
|
-
...run.lastAssistantText ? [` \u6700\u8FD1\u8F93\u51FA: ${run.lastAssistantText.slice(0, 200)}`] : [],
|
|
21294
|
-
...run.errorMessage ? [` \u9519\u8BEF: ${run.errorMessage}`] : [],
|
|
21295
|
-
...logLines?.length ? [` \u65E5\u5FD7(\u6700\u8FD1 ${logLines.length} \u884C):`, ...logLines.map((l) => ` ${l}`)] : []
|
|
21296
|
-
];
|
|
21872
|
+
const name = run.agentName || run.name || "agent";
|
|
21297
21873
|
return {
|
|
21298
21874
|
rawData: { found: true, ...run, ...logLines ? { logLines } : {} },
|
|
21299
|
-
displayData:
|
|
21875
|
+
displayData: formatStatusRunCard(name, run.status, {
|
|
21876
|
+
lastToolNames: run.lastToolNames,
|
|
21877
|
+
toolCallCount: run.toolCallCount,
|
|
21878
|
+
errorMessage: run.errorMessage,
|
|
21879
|
+
logLines
|
|
21880
|
+
})
|
|
21300
21881
|
};
|
|
21301
21882
|
} catch (e) {
|
|
21302
21883
|
throw new Error(`controlAgentRun(status) \u5931\u8D25: ${toErrorMessage(e)}`);
|
|
@@ -21311,21 +21892,10 @@ async function handleStop(thunkApi, opts) {
|
|
|
21311
21892
|
{ withAuth: true }
|
|
21312
21893
|
);
|
|
21313
21894
|
const result = data?.data ?? data;
|
|
21314
|
-
const wasActive = result?.wasActive ?? false;
|
|
21315
21895
|
const status = result?.status ?? "cancelled";
|
|
21316
|
-
let statusText;
|
|
21317
|
-
if (status === "cancelling") {
|
|
21318
|
-
statusText = `\u{1F6D1} \u5DF2\u53D1\u51FA\u53D6\u6D88\u4FE1\u53F7\uFF0Crun ${opts.runId} \u6B63\u5728\u4E2D\u6B62\u3002`;
|
|
21319
|
-
} else if (status === "cancelled" && !wasActive) {
|
|
21320
|
-
statusText = `\u{1F6D1} run ${opts.runId} \u6CA1\u6709\u6D3B\u8DC3\u8FDB\u7A0B\uFF0C\u5DF2\u6807\u8BB0\u4E3A\u5DF2\u53D6\u6D88\u3002`;
|
|
21321
|
-
} else if (status === "cancelled") {
|
|
21322
|
-
statusText = `\u{1F6D1} run ${opts.runId} \u5DF2\u6210\u529F\u53D6\u6D88\u3002`;
|
|
21323
|
-
} else {
|
|
21324
|
-
statusText = `\u2139\uFE0F run ${opts.runId} \u5DF2\u5904\u4E8E\u72B6\u6001 "${status}"\u3002${wasActive ? "\u6267\u884C\u5DF2\u505C\u6B62\u3002" : "\u6CA1\u6709\u6D3B\u8DC3\u8FDB\u7A0B\u3002"}`;
|
|
21325
|
-
}
|
|
21326
21896
|
return {
|
|
21327
|
-
rawData: { runId: opts.runId, status, wasActive },
|
|
21328
|
-
displayData:
|
|
21897
|
+
rawData: { runId: opts.runId, status, wasActive: result?.wasActive ?? false },
|
|
21898
|
+
displayData: formatStopRunCard(status)
|
|
21329
21899
|
};
|
|
21330
21900
|
} catch (e) {
|
|
21331
21901
|
throw new Error(`controlAgentRun(stop) \u5931\u8D25: ${toErrorMessage(e)}`);
|
|
@@ -22524,7 +23094,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
22524
23094
|
if (!executionInput) {
|
|
22525
23095
|
throw new Error(`ToolRun ${id} has no input to execute with.`);
|
|
22526
23096
|
}
|
|
22527
|
-
const { findToolExecutor: findToolExecutor2 } = await import("./tools-
|
|
23097
|
+
const { findToolExecutor: findToolExecutor2 } = await import("./tools-AHNQE4GP.js");
|
|
22528
23098
|
const { executor } = findToolExecutor2(run.toolName);
|
|
22529
23099
|
toolRunStarted({
|
|
22530
23100
|
id: run.id,
|
|
@@ -22548,7 +23118,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
22548
23118
|
const latestState = thunkApi.getState();
|
|
22549
23119
|
const userId = latestState.auth?.currentUser?.userId;
|
|
22550
23120
|
if (userId) {
|
|
22551
|
-
const { fetchUserSpaceMemberships } = await import("./spaceSlice-
|
|
23121
|
+
const { fetchUserSpaceMemberships } = await import("./spaceSlice-4EXTYXS4.js");
|
|
22552
23122
|
await thunkApi.dispatch(fetchUserSpaceMemberships(userId));
|
|
22553
23123
|
}
|
|
22554
23124
|
}
|
|
@@ -24951,7 +25521,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
24951
25521
|
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
24952
25522
|
};
|
|
24953
25523
|
await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
|
|
24954
|
-
const { getDocState, applyExternalDocUpdate } = await import("./docStore-
|
|
25524
|
+
const { getDocState, applyExternalDocUpdate } = await import("./docStore-H5VWKT5D.js");
|
|
24955
25525
|
if (getDocState().pageKey === id) {
|
|
24956
25526
|
applyExternalDocUpdate({
|
|
24957
25527
|
slateData: finalSlateData,
|
|
@@ -24976,7 +25546,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
24976
25546
|
// packages/ai/tools/updateUserPreferenceProfileTool.ts
|
|
24977
25547
|
async function dispatchSetSettings(thunkApi, changes) {
|
|
24978
25548
|
const injectedSetSettings = thunkApi?.extra?.setSettings;
|
|
24979
|
-
const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-
|
|
25549
|
+
const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-CK5YZGNI.js")).setSettings;
|
|
24980
25550
|
await thunkApi.dispatch(setSettings(changes)).unwrap();
|
|
24981
25551
|
}
|
|
24982
25552
|
var updateUserPreferenceProfileFunctionSchema = {
|
|
@@ -25783,6 +26353,21 @@ var baseToolDefinitions = [
|
|
|
25783
26353
|
costLevel: "medium",
|
|
25784
26354
|
defaultConsent: "ask"
|
|
25785
26355
|
},
|
|
26356
|
+
{
|
|
26357
|
+
id: "loadSkill",
|
|
26358
|
+
schema: loadSkillFunctionSchema,
|
|
26359
|
+
executor: loadSkillFunc,
|
|
26360
|
+
description: {
|
|
26361
|
+
name: "loadSkill",
|
|
26362
|
+
description: "\u6309\u540D\u79F0\u52A0\u8F7D\u5DF2\u4FDD\u5B58\u7684 skill \u6587\u6863\uFF0C\u8FD4\u56DE\u5B8C\u6574\u6307\u4EE4\u6B63\u6587\u3002",
|
|
26363
|
+
category: "\u5185\u5BB9\u7BA1\u7406"
|
|
26364
|
+
},
|
|
26365
|
+
behavior: "data",
|
|
26366
|
+
uiGroup: "content",
|
|
26367
|
+
capability: "space_context",
|
|
26368
|
+
riskLevel: "low",
|
|
26369
|
+
costLevel: "low"
|
|
26370
|
+
},
|
|
25786
26371
|
{
|
|
25787
26372
|
id: "wereadGateway",
|
|
25788
26373
|
schema: wereadGatewayFunctionSchema,
|
|
@@ -26363,7 +26948,7 @@ var baseToolDefinitions = [
|
|
|
26363
26948
|
executor: listAgentsFunc,
|
|
26364
26949
|
description: {
|
|
26365
26950
|
name: "listAgents",
|
|
26366
|
-
description: "List the current user's Nolo agents.",
|
|
26951
|
+
description: "List the current user's Nolo agents as safe summaries; use readAgent to resolve the runnable agentKey before delegation.",
|
|
26367
26952
|
category: "Nolo workspace"
|
|
26368
26953
|
},
|
|
26369
26954
|
behavior: "data",
|
|
@@ -27166,8 +27751,16 @@ export {
|
|
|
27166
27751
|
readXPostFunc,
|
|
27167
27752
|
readXhsProfileFunctionSchema,
|
|
27168
27753
|
readXhsProfileFunc,
|
|
27754
|
+
formatStartRunCard,
|
|
27755
|
+
formatStatusRunCard,
|
|
27756
|
+
formatStopRunCard,
|
|
27757
|
+
formatListRunsCard,
|
|
27758
|
+
formatNotFoundRunCard,
|
|
27759
|
+
isAgentRunTerminalStatus,
|
|
27169
27760
|
TOOL_PACKS,
|
|
27170
27761
|
expandEnabledPacks,
|
|
27762
|
+
expandEnabledPackPromptPatches,
|
|
27763
|
+
appendEnabledPackPromptPatches,
|
|
27171
27764
|
FORCED_TOOLS,
|
|
27172
27765
|
applyDisabledTools,
|
|
27173
27766
|
addDefaultLightWebToolsForConfiguredAgents,
|
|
@@ -27183,7 +27776,9 @@ export {
|
|
|
27183
27776
|
toolRunSucceeded,
|
|
27184
27777
|
toolRunFailed,
|
|
27185
27778
|
getAllToolRuns,
|
|
27779
|
+
waitForAbortableDelay,
|
|
27186
27780
|
createSSEParser,
|
|
27781
|
+
formatAgentListCard,
|
|
27187
27782
|
TOOL_GROUP_META,
|
|
27188
27783
|
toolQueryFunctionSchema,
|
|
27189
27784
|
toolQueryFunc,
|