nolo-cli 0.15.0 → 0.16.0-alpha.10
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-QAUS6B7J.js → _executeModel-6BR65FSI.js} +29 -28
- package/{action-GUOZYYGN.js → action-F5JACQBG.js} +4 -4
- package/{addContentAction-QDGHGUBH.js → addContentAction-AQXEYRBE.js} +3 -3
- package/{addDialogAgentAction-Z4YCYZIV.js → addDialogAgentAction-EJHHJZWW.js} +2 -2
- package/{agentDeleteCommand-QDO62EZA.js → agentDeleteCommand-PBIUC4FT.js} +18 -17
- package/{agentEmailCommands-UZ5BKX3P.js → agentEmailCommands-KNZY4HXV.js} +35 -34
- package/{agentListCommands-ZC33UDWT.js → agentListCommands-N64PHBXM.js} +20 -19
- package/{agentMachineCommands-RZGZEZRL.js → agentMachineCommands-2AIPJKFM.js} +18 -17
- package/{agentRecordCommands-DGDXE2VH.js → agentRecordCommands-TB4N7YSB.js} +34 -33
- package/{agentRunCommand-SRZWFOPH.js → agentRunCommand-UVW2ZLKT.js} +34 -33
- package/{agentRuntimeLocal-4YCF6IRF.js → agentRuntimeLocal-T6YECTNF.js} +15 -16
- package/{agentSlice-IVE735EV.js → agentSlice-533PEM4O.js} +3 -3
- package/{appDeleteCommands-7I26L64I.js → appDeleteCommands-D6B6Z4ZQ.js} +19 -18
- package/{appDeployCommands-TZLZNTJN.js → appDeployCommands-YMO5FK4T.js} +19 -18
- package/{appDeployStatusCommands-OPPTLHRW.js → appDeployStatusCommands-EO5DWWPQ.js} +19 -18
- package/{appGetCommands-N2S4HYKY.js → appGetCommands-6SMZ3URQ.js} +19 -18
- package/{appListCommands-OBTPPKUM.js → appListCommands-RZXSWR2G.js} +19 -18
- package/{authCommand-YFTR3347.js → authCommand-MSSBXCQ6.js} +8 -2
- package/{chunk-OQMPU2ML.js → chunk-2OUI4TLC.js} +4 -4
- package/{chunk-SFXYKGK2.js → chunk-3S2VOMIF.js} +3 -3
- package/{chunk-JBKVPAYK.js → chunk-6KBBMW4D.js} +2 -2
- package/{chunk-U7LEGLEB.js → chunk-6N4KODMN.js} +1 -1
- package/{chunk-IZ2QRVEU.js → chunk-A7O4KKLZ.js} +3 -3
- package/{chunk-WA6KZL5V.js → chunk-AAODAAUQ.js} +23 -20
- package/{chunk-K53477EY.js → chunk-C4MMO7W4.js} +1 -1
- package/{chunk-YNHQIXX5.js → chunk-CXM4IIUF.js} +21 -21
- package/{chunk-JKWWVF2I.js → chunk-D3HVJJIA.js} +1 -1
- package/{chunk-XGQZFBO5.js → chunk-DBLHEQH7.js} +148 -175
- package/{chunk-TTGAVETO.js → chunk-EABWT43X.js} +2 -2
- package/{chunk-OKSYPTDZ.js → chunk-F3UOACU4.js} +1 -1
- package/{chunk-VE6XMVKG.js → chunk-G2IQGDQZ.js} +163 -53
- package/{chunk-RKM3K52F.js → chunk-GPELDE6I.js} +2 -2
- package/{chunk-OGGHETUE.js → chunk-HQPG2PIV.js} +62 -19
- package/{chunk-XVP3C2KY.js → chunk-IWLUTMYX.js} +1 -1
- package/{chunk-B4KT7RN2.js → chunk-JTMNCCWF.js} +2 -2
- package/chunk-KFEVY3ST.js +255 -0
- package/{chunk-WNLPAOIT.js → chunk-KFHN5NGJ.js} +1 -1
- package/{chunk-P4MJQWWF.js → chunk-KPD4CEQD.js} +2 -2
- package/{chunk-G2MKOQCB.js → chunk-KPJWHHG4.js} +1 -1
- package/{chunk-ISYE6GZB.js → chunk-L6NVTGI7.js} +1 -1
- package/{chunk-O53CP2QR.js → chunk-LCMAJFAD.js} +3 -3
- package/{chunk-UXKQQ2MR.js → chunk-LO6JNGCT.js} +3 -3
- package/{chunk-472E5RMQ.js → chunk-MSA4JAOZ.js} +1 -1
- package/{chunk-HRQCKQA5.js → chunk-MUCU6ATG.js} +8 -257
- package/{chunk-524BDL33.js → chunk-O6W2O2DA.js} +1 -15
- package/{chunk-4QQFLN5C.js → chunk-OVBVEXZ7.js} +4 -4
- package/{chunk-IOQ7IBPU.js → chunk-PU4LXVAC.js} +1 -1
- package/{chunk-Z24FGIU2.js → chunk-R4L524UB.js} +3 -3
- package/{chunk-4IJYA27C.js → chunk-RG2U2MTJ.js} +1 -1
- package/{chunk-6MHDWKOT.js → chunk-RIF3XLXK.js} +9 -5
- package/{chunk-IKXL2HZ3.js → chunk-RK5NYQEL.js} +1 -1
- package/{chunk-JS33TCQ3.js → chunk-RPDGJO4D.js} +2 -2
- package/{chunk-BFRVXJJJ.js → chunk-SI73WO7P.js} +10 -10
- package/{chunk-WRN5EQT7.js → chunk-T26DWCH5.js} +3 -3
- package/{chunk-EHLHSX7R.js → chunk-UB4RYYNQ.js} +9 -2
- package/{chunk-5VMYGIIL.js → chunk-VHXXRWNL.js} +23 -9
- package/{chunk-OOIN7HSO.js → chunk-XJITGCTM.js} +10 -1
- package/{chunk-AWDOJBHW.js → chunk-XJYXSTBK.js} +883 -174
- package/{chunk-V2J635L5.js → chunk-XOIF2TNF.js} +2 -2
- package/{chunk-VPTJB4HM.js → chunk-XPC5C7BK.js} +0 -3
- package/{chunk-NTC6I2FN.js → chunk-XRSPI6CP.js} +1 -1
- package/{chunk-N5424GSW.js → chunk-YJKXGHJ6.js} +1 -1
- package/chunk-ZHXJ6M7T.js +27 -0
- package/{chunk-6565R2TI.js → chunk-ZOQNJXMS.js} +23 -18
- package/{createAgentAutomationAction-TS6NNZ4X.js → createAgentAutomationAction-OARFMDWU.js} +13 -13
- package/{createDialogAction-5HVQ33EX.js → createDialogAction-4E6ALCDK.js} +14 -14
- package/{createPageAction-4F3ZGQJD.js → createPageAction-RS65DDRX.js} +13 -13
- package/{dbSlice-OP6UPXKA.js → dbSlice-7KQH6GOU.js} +2 -2
- package/{dialogCommands-3GEPXHFB.js → dialogCommands-DFY5HJ6M.js} +19 -18
- package/{dialogSlice-FAWUQDJW.js → dialogSlice-MS7OYWHW.js} +13 -13
- package/{docCreateCommands-ZE3S6BCP.js → docCreateCommands-5L76YTI2.js} +18 -17
- package/{docDeleteCommands-TW6PGTRT.js → docDeleteCommands-3GASP3VR.js} +19 -18
- package/{docReadCommands-LDXL3B6J.js → docReadCommands-ALA77AZM.js} +18 -17
- package/{docStore-2UHVWLTV.js → docStore-KYTKNGMU.js} +14 -14
- package/{docUpdateCommands-GYD6XI5O.js → docUpdateCommands-6AZGXE5M.js} +18 -17
- package/{getPricing-UGDJHI7M.js → getPricing-RYY6OBA4.js} +4 -4
- package/{handleSendMessageAction-LJPUYNOH.js → handleSendMessageAction-LHTGYRMN.js} +201 -15
- package/index.js +47 -47
- package/{machineCommands-OKNDYS3M.js → machineCommands-RDQQBA72.js} +33 -32
- package/{machineWsRunDispatch-ZX5AJ6FJ.js → machineWsRunDispatch-27RCTQQF.js} +33 -32
- package/{models-LSCRJJ6P.js → models-5K5G2CZI.js} +2 -2
- package/package.json +1 -1
- package/{read-HXHAZBKH.js → read-CN3TNXIP.js} +1 -1
- package/{readDocTool-VPBDTO4G.js → readDocTool-WF3675ED.js} +1 -1
- package/{readlineWorkspace-MB3ANKHM.js → readlineWorkspace-BTONC7NW.js} +177 -76
- package/{removeDialogAgentAction-HUFVN35S.js → removeDialogAgentAction-YDHBFEGI.js} +5 -5
- package/{runAgentClientLoop-A75BUU6D.js → runAgentClientLoop-Q4CL22BP.js} +26 -25
- package/{setDialogExtraReferencesAction-2VLGWQKG.js → setDialogExtraReferencesAction-LR6MSIXO.js} +2 -2
- package/{setPrimaryDialogAgentAction-VB4UV2CC.js → setPrimaryDialogAgentAction-IIVDCY5C.js} +5 -5
- package/{settingSlice-7JYPQNAC.js → settingSlice-O23YDK2O.js} +3 -3
- package/{spaceCommands-O3KJNCON.js → spaceCommands-AB2D7A2R.js} +18 -17
- package/{spaceSlice-444MFUP6.js → spaceSlice-XLJ4DRG6.js} +13 -13
- package/{streamAgentChatTurn-DJAE7USZ.js → streamAgentChatTurn-YYAAGLZL.js} +30 -32
- package/{tools-YB6LXSVN.js → tools-5UKY65R3.js} +20 -20
- package/{tuiSummaryLlmCaller-QQL3JA5I.js → tuiSummaryLlmCaller-VUNVBRX3.js} +7 -6
- package/{updateDialogTitleAction-6HGFBM64.js → updateDialogTitleAction-VNSUVPUZ.js} +13 -13
- package/chunk-BYXBJQAS.js +0 -0
|
@@ -8,21 +8,21 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
sortSafeAgentSummaries,
|
|
10
10
|
toSafeAgentSummary
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-XJITGCTM.js";
|
|
12
12
|
import {
|
|
13
13
|
getUserDataItemTimestamp,
|
|
14
14
|
mergeAndDedupUserData
|
|
15
15
|
} from "./chunk-KQHGZWSV.js";
|
|
16
16
|
import {
|
|
17
17
|
createDocState
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-LCMAJFAD.js";
|
|
19
19
|
import {
|
|
20
20
|
readDocFunc,
|
|
21
21
|
readDocFunctionSchema,
|
|
22
22
|
readPageFunc,
|
|
23
23
|
readPageFunctionSchema,
|
|
24
24
|
slateToSimplifiedMarkdown
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-6N4KODMN.js";
|
|
26
26
|
import {
|
|
27
27
|
markdownToSlate
|
|
28
28
|
} from "./chunk-3LY4F7SV.js";
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
} from "./chunk-VF4K2QE6.js";
|
|
38
38
|
import {
|
|
39
39
|
createDialogAction
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-R4L524UB.js";
|
|
41
41
|
import {
|
|
42
42
|
buildSkillDocMarkdown,
|
|
43
43
|
normalizeSkillBudgetTier,
|
|
@@ -76,13 +76,13 @@ import {
|
|
|
76
76
|
updateContentCategory,
|
|
77
77
|
updateContentTitle,
|
|
78
78
|
updateStep
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-CXM4IIUF.js";
|
|
80
80
|
import {
|
|
81
81
|
createAgent,
|
|
82
82
|
runLlm,
|
|
83
83
|
streamAgentChatTurn,
|
|
84
84
|
updateAgent
|
|
85
|
-
} from "./chunk-
|
|
85
|
+
} from "./chunk-2OUI4TLC.js";
|
|
86
86
|
import {
|
|
87
87
|
NOLO_WORKSPACE_TOOL_NAMES,
|
|
88
88
|
buildNoloSubjectRefQueryTarget,
|
|
@@ -98,13 +98,13 @@ import {
|
|
|
98
98
|
redactAgentRecordForWorkspaceTool,
|
|
99
99
|
resolveNoloDialogInput,
|
|
100
100
|
verifyNoloDialogSubjectRefQuery
|
|
101
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-JTMNCCWF.js";
|
|
102
102
|
import {
|
|
103
103
|
buildDatabaseFileContentUrl
|
|
104
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-OVBVEXZ7.js";
|
|
105
105
|
import {
|
|
106
106
|
DEFAULT_MODEL
|
|
107
|
-
} from "./chunk-
|
|
107
|
+
} from "./chunk-HQPG2PIV.js";
|
|
108
108
|
import {
|
|
109
109
|
ToolApiError,
|
|
110
110
|
buildToolRequestHeaders,
|
|
@@ -130,7 +130,7 @@ import {
|
|
|
130
130
|
} from "./chunk-HNMXYYJR.js";
|
|
131
131
|
import {
|
|
132
132
|
shareResourceAction
|
|
133
|
-
} from "./chunk-
|
|
133
|
+
} from "./chunk-YJKXGHJ6.js";
|
|
134
134
|
import {
|
|
135
135
|
AGENT_UPDATE_FIELD_NAMES,
|
|
136
136
|
SYSTEM_AGENT_CAPABILITIES,
|
|
@@ -139,7 +139,7 @@ import {
|
|
|
139
139
|
selectAutoApproveSelfUpdateFields,
|
|
140
140
|
selectCurrentServer,
|
|
141
141
|
selectSyncServers
|
|
142
|
-
} from "./chunk-
|
|
142
|
+
} from "./chunk-EABWT43X.js";
|
|
143
143
|
import {
|
|
144
144
|
asRecordOrEmpty
|
|
145
145
|
} from "./chunk-KX6YBIHG.js";
|
|
@@ -147,7 +147,7 @@ import {
|
|
|
147
147
|
addContentAction,
|
|
148
148
|
createSpaceKey,
|
|
149
149
|
normalizeSpaceId
|
|
150
|
-
} from "./chunk-
|
|
150
|
+
} from "./chunk-IWLUTMYX.js";
|
|
151
151
|
import {
|
|
152
152
|
patch,
|
|
153
153
|
read,
|
|
@@ -155,7 +155,7 @@ import {
|
|
|
155
155
|
readAndWaitAction,
|
|
156
156
|
toTimestampMs,
|
|
157
157
|
write
|
|
158
|
-
} from "./chunk-
|
|
158
|
+
} from "./chunk-3S2VOMIF.js";
|
|
159
159
|
import {
|
|
160
160
|
SEPARATOR,
|
|
161
161
|
createAgentKey,
|
|
@@ -180,7 +180,7 @@ import {
|
|
|
180
180
|
} from "./chunk-QSJ3HFEF.js";
|
|
181
181
|
import {
|
|
182
182
|
readAction
|
|
183
|
-
} from "./chunk-
|
|
183
|
+
} from "./chunk-XPC5C7BK.js";
|
|
184
184
|
import {
|
|
185
185
|
createAsyncThunk,
|
|
186
186
|
getRuntimeServerContext,
|
|
@@ -992,7 +992,7 @@ var ai_locale_default = {
|
|
|
992
992
|
params: {
|
|
993
993
|
name: "The name of the Agent, e.g., 'Meeting Minutes Assistant'.",
|
|
994
994
|
model: "The model name to use. Logic: Default 'nolo/glm-5.2'. Complex tasks: 'openai/gpt-5.2'. Cost-saving: 'openai/gpt-5.1'. Aesthetic/Creative: 'gemini-3.6-flash'. Reliable low-cost summary/reasoning: 'deepseek-v4-pro'. Image Generation: 'gemini-3-pro-image-preview' (Best/Expensive), 'gemini-3.1-flash-image-preview' (Ordinary), or 'gemini-3.1-flash-lite-image' (Fastest/Cheapest).",
|
|
995
|
-
provider: "The model provider identifier, must match the selected model, e.g., 'openrouter', '
|
|
995
|
+
provider: "The model provider identifier, must match the selected model, e.g., 'openrouter', 'nolo', 'fireworks', 'mistral', etc.",
|
|
996
996
|
prompt: "System prompt/instruction describing the Agent's role, tone, and usage.",
|
|
997
997
|
introduction: "Introduction displayed in the app market or list, explanatory text for end users.",
|
|
998
998
|
greeting: {
|
|
@@ -1381,7 +1381,7 @@ var ai_locale_default = {
|
|
|
1381
1381
|
params: {
|
|
1382
1382
|
name: "Agent \u7684\u540D\u79F0\uFF0C\u4F8B\u5982\uFF1A'\u4F1A\u8BAE\u7EAA\u8981\u52A9\u624B'\u3002",
|
|
1383
1383
|
model: "\u9ED8\u8BA4\u4F7F\u7528 'nolo/glm-5.2'\u3002\u590D\u6742\u4EFB\u52A1: 'openai/gpt-5.2'\u3002\u7701\u6210\u672C\u4F46\u590D\u6742: 'openai/gpt-5.1'\u3002\u8FFD\u6C42\u7F8E\u89C2/\u521B\u610F: 'gemini-3.6-flash'\u3002\u4F4E\u6210\u672C\u6458\u8981/\u63A8\u7406: 'deepseek-v4-pro'\u3002\u751F\u6210\u56FE\u7247: \u8D35/\u9AD8\u8D28\u91CF\u9009 'gemini-3-pro-image-preview'\uFF0C\u666E\u901A\u9009 'gemini-3.1-flash-image-preview'\uFF0C\u6700\u5FEB\u6700\u4FBF\u5B9C\u9009 'gemini-3.1-flash-lite-image'\u3002",
|
|
1384
|
-
provider: "\u6A21\u578B\u63D0\u4F9B\u65B9\u6807\u8BC6\uFF0C\u5FC5\u987B\u4E0E\u6240\u9009\u6A21\u578B\u76F8\u5339\u914D\uFF0C\u4F8B\u5982 'openrouter'\u3001'
|
|
1384
|
+
provider: "\u6A21\u578B\u63D0\u4F9B\u65B9\u6807\u8BC6\uFF0C\u5FC5\u987B\u4E0E\u6240\u9009\u6A21\u578B\u76F8\u5339\u914D\uFF0C\u4F8B\u5982 'openrouter'\u3001'nolo'\u3001'fireworks'\u3001'mistral' \u7B49\u3002",
|
|
1385
1385
|
prompt: "\u7CFB\u7EDF\u63D0\u793A\u8BCD / \u6307\u4EE4\uFF0C\u63CF\u8FF0\u8FD9\u4E2A Agent \u7684\u89D2\u8272\u3001\u8BED\u6C14\u548C\u4F7F\u7528\u65B9\u5F0F\u3002",
|
|
1386
1386
|
introduction: "\u5728\u5E94\u7528\u5E02\u573A\u6216\u5217\u8868\u4E2D\u5C55\u793A\u7684\u7B80\u4ECB\uFF0C\u9762\u5411\u7EC8\u7AEF\u7528\u6237\u7684\u8BF4\u660E\u6587\u6848\u3002",
|
|
1387
1387
|
greeting: {
|
|
@@ -11483,7 +11483,7 @@ var HOSTED_EXEC_RUNTIME_TOOL_POLICY = {
|
|
|
11483
11483
|
workspace: { mode: "lease" }
|
|
11484
11484
|
};
|
|
11485
11485
|
var findModelConfig = async (modelName, provider) => {
|
|
11486
|
-
const { ALL_MODELS } = await import("./models-
|
|
11486
|
+
const { ALL_MODELS } = await import("./models-5K5G2CZI.js");
|
|
11487
11487
|
const name = toTrimmedString(modelName);
|
|
11488
11488
|
const prov = toTrimmedString(provider ?? "");
|
|
11489
11489
|
if (!name) return null;
|
|
@@ -11724,7 +11724,7 @@ var buildFormDataFromArgs = async (args) => {
|
|
|
11724
11724
|
const trimmedModel = toTrimmedString(model);
|
|
11725
11725
|
const trimmedProvider = toTrimmedString(provider);
|
|
11726
11726
|
const modelConfig = await findModelConfig(trimmedModel, trimmedProvider);
|
|
11727
|
-
const { getModelPricing } = await import("./getPricing-
|
|
11727
|
+
const { getModelPricing } = await import("./getPricing-RYY6OBA4.js");
|
|
11728
11728
|
const normalizedTools = tools ?? [];
|
|
11729
11729
|
const resolvedRuntimeToolPolicy = runtimeToolPolicy ?? (normalizedTools.includes("execShell") ? HOSTED_EXEC_RUNTIME_TOOL_POLICY : void 0);
|
|
11730
11730
|
const formData = {
|
|
@@ -14154,7 +14154,7 @@ async function deleteDialogsFunc(args, thunkApi) {
|
|
|
14154
14154
|
const deletedDialogIds = [];
|
|
14155
14155
|
const deletedDialogKeys = [];
|
|
14156
14156
|
const failures = [];
|
|
14157
|
-
const { deleteDialog } = await import("./dialogSlice-
|
|
14157
|
+
const { deleteDialog } = await import("./dialogSlice-MS7OYWHW.js");
|
|
14158
14158
|
for (const target of targets) {
|
|
14159
14159
|
try {
|
|
14160
14160
|
await thunkApi.dispatch(deleteDialog(target.dbKey)).unwrap();
|
|
@@ -14220,10 +14220,11 @@ function formatAgentListCard(agents, maxDisplay = 20) {
|
|
|
14220
14220
|
const visible = agents.slice(0, maxDisplay);
|
|
14221
14221
|
for (const agent of visible) {
|
|
14222
14222
|
const star = agent.isFavorite ? "\u2605" : " ";
|
|
14223
|
+
const own = agent.isOwned ? "\u25CE" : " ";
|
|
14223
14224
|
const name = agent.name || "(unnamed)";
|
|
14224
14225
|
const model = agent.model || "\u2014";
|
|
14225
14226
|
const source = agent.apiSource || agent.provider || agent.cliProvider || "\u2014";
|
|
14226
|
-
lines.push(`${star} ${name} ${model} ${source}`);
|
|
14227
|
+
lines.push(`${star}${own} ${name} ${model} ${source}`);
|
|
14227
14228
|
}
|
|
14228
14229
|
if (total > maxDisplay) {
|
|
14229
14230
|
lines.push(`\u2026 +${total - maxDisplay} more`);
|
|
@@ -14281,11 +14282,14 @@ async function listAgentsFunc(args, thunkApi) {
|
|
|
14281
14282
|
}
|
|
14282
14283
|
var readAgentFunctionSchema = {
|
|
14283
14284
|
name: "readAgent",
|
|
14284
|
-
description: "Read one Nolo agent
|
|
14285
|
+
description: "Read one agent's full config from the Nolo workspace. Accepts an agent dbKey (agent-xxx), plain id, alias, or agent URL; resolves it (including public agents via agent-pub-<id>; the server runtime also falls back to handle lookup) and returns the runnable agentKey plus a redacted record with fields such as model, provider, apiSource, tools, prompt, inputPrice, outputPrice, and isPublic. Use it before delegation to confirm an agent's identity and capabilities, or to resolve the agentKey that startAgentRun requires.",
|
|
14285
14286
|
parameters: {
|
|
14286
14287
|
type: "object",
|
|
14287
14288
|
properties: {
|
|
14288
|
-
agent: {
|
|
14289
|
+
agent: {
|
|
14290
|
+
type: "string",
|
|
14291
|
+
description: "Agent dbKey (e.g. agent-xxx), agent id, alias, or agent URL."
|
|
14292
|
+
}
|
|
14289
14293
|
},
|
|
14290
14294
|
required: ["agent"]
|
|
14291
14295
|
}
|
|
@@ -14418,7 +14422,7 @@ var readSkillDocFunctionSchema = {
|
|
|
14418
14422
|
}
|
|
14419
14423
|
};
|
|
14420
14424
|
async function readSkillDocFunc(args, thunkApi) {
|
|
14421
|
-
const { buildReadDocResult } = await import("./readDocTool-
|
|
14425
|
+
const { buildReadDocResult } = await import("./readDocTool-WF3675ED.js");
|
|
14422
14426
|
const id = args?.id ?? args?.doc ?? args?.docKey ?? args?.pageKey;
|
|
14423
14427
|
if (typeof id !== "string" || !id.trim()) {
|
|
14424
14428
|
throw new Error("readSkillDoc requires id or doc.");
|
|
@@ -19868,7 +19872,7 @@ var selectUserIdFromState = (state) => typeof state?.auth?.currentUser?.userId =
|
|
|
19868
19872
|
var selectCurrentServerFromState = (state) => typeof state?.settings?.currentServer === "string" ? state.settings.currentServer : null;
|
|
19869
19873
|
async function addImageContentToSpace(input) {
|
|
19870
19874
|
const injectedAddContentAction = input.thunkApi?.extra?.addContentAction;
|
|
19871
|
-
const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-
|
|
19875
|
+
const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-AQXEYRBE.js")).addContentAction;
|
|
19872
19876
|
await addContentAction2(
|
|
19873
19877
|
{
|
|
19874
19878
|
spaceId: input.spaceId,
|
|
@@ -21935,6 +21939,7 @@ var DEFAULT_LABELS = {
|
|
|
21935
21939
|
runStatus: "Run status",
|
|
21936
21940
|
runStarted: "Run started",
|
|
21937
21941
|
runStopped: "Run stopped",
|
|
21942
|
+
runFinished: "Run finished",
|
|
21938
21943
|
logTail: "Log tail:",
|
|
21939
21944
|
runs: (count) => `Runs (${count})`
|
|
21940
21945
|
};
|
|
@@ -21943,48 +21948,136 @@ function resolveLabels(labels) {
|
|
|
21943
21948
|
runStatus: labels?.runStatus ?? DEFAULT_LABELS.runStatus,
|
|
21944
21949
|
runStarted: labels?.runStarted ?? DEFAULT_LABELS.runStarted,
|
|
21945
21950
|
runStopped: labels?.runStopped ?? DEFAULT_LABELS.runStopped,
|
|
21951
|
+
runFinished: labels?.runFinished ?? DEFAULT_LABELS.runFinished,
|
|
21946
21952
|
logTail: labels?.logTail ?? DEFAULT_LABELS.logTail,
|
|
21947
21953
|
runs: labels?.runs ?? DEFAULT_LABELS.runs
|
|
21948
21954
|
};
|
|
21949
21955
|
}
|
|
21956
|
+
function shortRunId(runId) {
|
|
21957
|
+
const trimmed = typeof runId === "string" ? runId.trim() : "";
|
|
21958
|
+
if (!trimmed) return "";
|
|
21959
|
+
const segments = trimmed.split("-").filter(Boolean);
|
|
21960
|
+
let pick = segments[segments.length - 1] ?? trimmed;
|
|
21961
|
+
if (pick.length < 4 && segments.length >= 2) pick = segments.slice(-2).join("-");
|
|
21962
|
+
if (!pick) pick = trimmed;
|
|
21963
|
+
return pick.length > 8 ? pick.slice(-8) : pick;
|
|
21964
|
+
}
|
|
21965
|
+
function clipText(text, max) {
|
|
21966
|
+
const collapsed = text.replace(/\s+/g, " ").trim();
|
|
21967
|
+
return collapsed.length > max ? `${collapsed.slice(0, max - 1)}\u2026` : collapsed;
|
|
21968
|
+
}
|
|
21969
|
+
function formatDuration(ms) {
|
|
21970
|
+
const totalSec = Math.max(0, Math.floor(ms / 1e3));
|
|
21971
|
+
if (totalSec < 60) return `${totalSec}s`;
|
|
21972
|
+
const totalMin = Math.floor(totalSec / 60);
|
|
21973
|
+
if (totalMin < 60) return `${totalMin}m${String(totalSec % 60).padStart(2, "0")}s`;
|
|
21974
|
+
return `${Math.floor(totalMin / 60)}h${String(totalMin % 60).padStart(2, "0")}m`;
|
|
21975
|
+
}
|
|
21976
|
+
function formatRunAge(timing, now = Date.now()) {
|
|
21977
|
+
const startedAt = timing?.startedAt;
|
|
21978
|
+
if (typeof startedAt !== "number" || !Number.isFinite(startedAt) || startedAt <= 0) {
|
|
21979
|
+
return "";
|
|
21980
|
+
}
|
|
21981
|
+
const end = typeof timing?.finishedAt === "number" && Number.isFinite(timing.finishedAt) && timing.finishedAt > 0 ? timing.finishedAt : now;
|
|
21982
|
+
return formatDuration(end - startedAt);
|
|
21983
|
+
}
|
|
21984
|
+
function formatIdentityRow(agentName, runId) {
|
|
21985
|
+
const parts = [];
|
|
21986
|
+
if (!isAgentNameFallback(agentName)) parts.push(agentName);
|
|
21987
|
+
const short = shortRunId(runId);
|
|
21988
|
+
if (short) parts.push(`#${short}`);
|
|
21989
|
+
return parts.join(" ");
|
|
21990
|
+
}
|
|
21950
21991
|
function isAgentNameFallback(agentName) {
|
|
21951
21992
|
const trimmed = typeof agentName === "string" ? agentName.trim() : "";
|
|
21952
21993
|
return !trimmed || trimmed === "agent";
|
|
21953
21994
|
}
|
|
21954
|
-
function
|
|
21955
|
-
const
|
|
21995
|
+
function resolveRunLabel(run) {
|
|
21996
|
+
for (const candidate of [run.agentName, run.name, run.agentKey, run.runId]) {
|
|
21997
|
+
if (typeof candidate === "string" && !isAgentNameFallback(candidate)) {
|
|
21998
|
+
return candidate.trim();
|
|
21999
|
+
}
|
|
22000
|
+
}
|
|
22001
|
+
return "agent";
|
|
22002
|
+
}
|
|
22003
|
+
function formatStartRunCard(agentName, status = "running", opts) {
|
|
22004
|
+
const L = resolveLabels(opts?.labels);
|
|
21956
22005
|
const icon = getAgentRunStatusIcon(status);
|
|
21957
22006
|
const lines = [L.runStarted];
|
|
21958
|
-
|
|
21959
|
-
|
|
22007
|
+
const identity = formatIdentityRow(agentName, opts?.runId);
|
|
22008
|
+
if (identity) {
|
|
22009
|
+
lines.push(` agent ${identity}`);
|
|
21960
22010
|
}
|
|
21961
22011
|
lines.push(` status ${icon} ${status}`);
|
|
22012
|
+
const task = opts?.task?.trim();
|
|
22013
|
+
if (task) {
|
|
22014
|
+
lines.push(` task ${clipText(task, TASK_PREVIEW_MAX)}`);
|
|
22015
|
+
}
|
|
21962
22016
|
return lines.join("\n");
|
|
21963
22017
|
}
|
|
22018
|
+
var TASK_PREVIEW_MAX = 72;
|
|
22019
|
+
var NOTE_PREVIEW_MAX = 72;
|
|
22020
|
+
function formatProgressRow(toolCallCount, lastToolNames) {
|
|
22021
|
+
const parts = [];
|
|
22022
|
+
if (typeof toolCallCount === "number" && Number.isFinite(toolCallCount)) {
|
|
22023
|
+
parts.push(`${toolCallCount} tools`);
|
|
22024
|
+
}
|
|
22025
|
+
if (lastToolNames && lastToolNames.length > 0) {
|
|
22026
|
+
parts.push(lastToolNames.join(", "));
|
|
22027
|
+
}
|
|
22028
|
+
return parts.join(" \xB7 ");
|
|
22029
|
+
}
|
|
21964
22030
|
function formatStatusRunCard(agentName, status = "running", opts) {
|
|
21965
22031
|
const L = resolveLabels(opts?.labels);
|
|
21966
22032
|
const icon = getAgentRunStatusIcon(status);
|
|
21967
|
-
const
|
|
21968
|
-
|
|
21969
|
-
|
|
22033
|
+
const age = formatRunAge(opts?.timing, opts?.now);
|
|
22034
|
+
const lines = [L.runStatus, ` ${icon} ${status}${age ? ` ${age}` : ""}`];
|
|
22035
|
+
const identity = formatIdentityRow(agentName, opts?.runId);
|
|
22036
|
+
if (identity) {
|
|
22037
|
+
lines.push(` agent ${identity}`);
|
|
21970
22038
|
}
|
|
21971
|
-
|
|
21972
|
-
|
|
22039
|
+
const progress = formatProgressRow(opts?.toolCallCount, opts?.lastToolNames);
|
|
22040
|
+
if (progress) {
|
|
22041
|
+
lines.push(` tools ${progress}`);
|
|
21973
22042
|
}
|
|
21974
|
-
|
|
21975
|
-
|
|
22043
|
+
const note = opts?.lastAssistantText?.trim();
|
|
22044
|
+
if (note) {
|
|
22045
|
+
lines.push(` note ${clipText(note, NOTE_PREVIEW_MAX)}`);
|
|
21976
22046
|
}
|
|
21977
|
-
if (opts?.
|
|
21978
|
-
lines.push(`
|
|
22047
|
+
if (opts?.errorMessage?.trim()) {
|
|
22048
|
+
lines.push(` error ${opts.errorMessage.trim()}`);
|
|
21979
22049
|
}
|
|
21980
|
-
if (opts?.
|
|
21981
|
-
lines.push(`
|
|
22050
|
+
if (shouldShowLogTail(status, opts?.includeLogTail, opts?.logLines)) {
|
|
22051
|
+
lines.push("", L.logTail, ...opts.logLines.map((l) => ` ${l}`));
|
|
22052
|
+
}
|
|
22053
|
+
return lines.join("\n");
|
|
22054
|
+
}
|
|
22055
|
+
function runShowsLogTail(status) {
|
|
22056
|
+
return status === "failed" || status === "timeout";
|
|
22057
|
+
}
|
|
22058
|
+
function shouldShowLogTail(status, includeLogTail, logLines) {
|
|
22059
|
+
if (includeLogTail === false) return false;
|
|
22060
|
+
if (!logLines || logLines.length === 0) return false;
|
|
22061
|
+
return runShowsLogTail(status);
|
|
22062
|
+
}
|
|
22063
|
+
function formatFinishedRunCard(agentName, status, opts) {
|
|
22064
|
+
const L = resolveLabels(opts?.labels);
|
|
22065
|
+
const icon = getAgentRunStatusIcon(status);
|
|
22066
|
+
const age = formatRunAge(opts?.timing, opts?.now);
|
|
22067
|
+
const summary = [status, age, formatProgressRow(opts?.toolCallCount, opts?.lastToolNames)].filter(Boolean).join(" \xB7 ");
|
|
22068
|
+
const lines = [L.runFinished, ` ${icon} ${summary}`];
|
|
22069
|
+
const identity = formatIdentityRow(agentName, opts?.runId);
|
|
22070
|
+
if (identity) {
|
|
22071
|
+
lines.push(` agent ${identity}`);
|
|
22072
|
+
}
|
|
22073
|
+
const note = opts?.lastAssistantText?.trim();
|
|
22074
|
+
if (note) {
|
|
22075
|
+
lines.push(` note ${clipText(note, NOTE_PREVIEW_MAX)}`);
|
|
21982
22076
|
}
|
|
21983
22077
|
if (opts?.errorMessage?.trim()) {
|
|
21984
22078
|
lines.push(` error ${opts.errorMessage.trim()}`);
|
|
21985
22079
|
}
|
|
21986
|
-
|
|
21987
|
-
if (includeLog && opts?.logLines && opts.logLines.length > 0) {
|
|
22080
|
+
if (shouldShowLogTail(status, opts?.includeLogTail, opts?.logLines)) {
|
|
21988
22081
|
lines.push("", L.logTail, ...opts.logLines.map((l) => ` ${l}`));
|
|
21989
22082
|
}
|
|
21990
22083
|
return lines.join("\n");
|
|
@@ -22001,8 +22094,7 @@ function formatListRunsCard(runs, labels) {
|
|
|
22001
22094
|
for (const run of runs) {
|
|
22002
22095
|
const status = run.status ?? "\u2014";
|
|
22003
22096
|
const icon = getAgentRunStatusIcon(status);
|
|
22004
|
-
|
|
22005
|
-
lines.push(` ${icon} ${name}`);
|
|
22097
|
+
lines.push(` ${icon} ${resolveRunLabel(run)}`);
|
|
22006
22098
|
}
|
|
22007
22099
|
return lines.join("\n");
|
|
22008
22100
|
}
|
|
@@ -22031,7 +22123,7 @@ var startAgentRunFunctionSchema = {
|
|
|
22031
22123
|
properties: {
|
|
22032
22124
|
agentKey: {
|
|
22033
22125
|
type: "string",
|
|
22034
|
-
description: "\u8981\u542F\u52A8\u7684 Agent \u7684\u53EF\u8FD0\u884C dbKey\uFF08\u4F18\u5148\
|
|
22126
|
+
description: "\u8981\u542F\u52A8\u7684 Agent \u7684\u53EF\u8FD0\u884C dbKey\uFF08\u4F18\u5148\u7528 readAgent \u89E3\u6790\u51FA agentKey\uFF0C\u683C\u5F0F\u5982 agent-xxx\uFF1BreadAgent \u63A5\u53D7 dbKey/id/alias/URL\uFF0C\u4E0D\u8981\u81EA\u5DF1\u62FC key\uFF09\u3002\u5982\u679C\u5DF2\u901A\u8FC7 listAgents/readAgent \u83B7\u53D6\u540D\u79F0\uFF0C\u8BF7\u540C\u65F6\u4F20 agentName\u3002"
|
|
22035
22127
|
},
|
|
22036
22128
|
task: {
|
|
22037
22129
|
type: "string",
|
|
@@ -22076,14 +22168,21 @@ async function startAgentRunFunc(args, thunkApi, _context) {
|
|
|
22076
22168
|
).unwrap();
|
|
22077
22169
|
const runId = bgResult.dialogId;
|
|
22078
22170
|
const status = bgResult.status ?? "pending";
|
|
22079
|
-
const
|
|
22171
|
+
const resolvedName = agentName?.trim() || bgResult.agentName || bgResult.name;
|
|
22172
|
+
const identity = { agentName: resolvedName, agentKey, runId };
|
|
22173
|
+
const taskPreview = task.replace(/\s+/g, " ").trim().slice(0, TASK_PREVIEW_MAX);
|
|
22080
22174
|
return {
|
|
22081
22175
|
rawData: {
|
|
22082
22176
|
runId,
|
|
22083
22177
|
status,
|
|
22084
|
-
|
|
22178
|
+
agentKey,
|
|
22179
|
+
...resolvedName ? { agentName: resolvedName } : {},
|
|
22180
|
+
...taskPreview ? { taskPreview } : {}
|
|
22085
22181
|
},
|
|
22086
|
-
displayData: formatStartRunCard(
|
|
22182
|
+
displayData: formatStartRunCard(resolveRunLabel(identity), status, {
|
|
22183
|
+
task: taskPreview,
|
|
22184
|
+
runId
|
|
22185
|
+
})
|
|
22087
22186
|
};
|
|
22088
22187
|
} catch (e) {
|
|
22089
22188
|
throw new Error(`startAgentRun \u542F\u52A8 Agent [${agentKey}] \u5931\u8D25: ${toErrorMessage(e)}`);
|
|
@@ -22179,13 +22278,16 @@ async function handleStatus(thunkApi, opts) {
|
|
|
22179
22278
|
}
|
|
22180
22279
|
const run = resData.run;
|
|
22181
22280
|
const logLines = resData.logLines;
|
|
22182
|
-
const name = run
|
|
22281
|
+
const name = resolveRunLabel(run);
|
|
22183
22282
|
return {
|
|
22184
22283
|
rawData: { found: true, ...run, ...logLines ? { logLines } : {} },
|
|
22185
22284
|
displayData: formatStatusRunCard(name, run.status, {
|
|
22285
|
+
runId: opts.runId,
|
|
22186
22286
|
lastToolNames: run.lastToolNames,
|
|
22187
22287
|
toolCallCount: run.toolCallCount,
|
|
22288
|
+
lastAssistantText: run.lastAssistantText,
|
|
22188
22289
|
errorMessage: run.errorMessage,
|
|
22290
|
+
timing: { startedAt: run.startedAt, finishedAt: run.finishedAt },
|
|
22189
22291
|
logLines
|
|
22190
22292
|
})
|
|
22191
22293
|
};
|
|
@@ -23404,7 +23506,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
23404
23506
|
if (!executionInput) {
|
|
23405
23507
|
throw new Error(`ToolRun ${id} has no input to execute with.`);
|
|
23406
23508
|
}
|
|
23407
|
-
const { findToolExecutor: findToolExecutor2 } = await import("./tools-
|
|
23509
|
+
const { findToolExecutor: findToolExecutor2 } = await import("./tools-5UKY65R3.js");
|
|
23408
23510
|
const { executor } = findToolExecutor2(run.toolName);
|
|
23409
23511
|
toolRunStarted({
|
|
23410
23512
|
id: run.id,
|
|
@@ -23428,7 +23530,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
23428
23530
|
const latestState = thunkApi.getState();
|
|
23429
23531
|
const userId = latestState.auth?.currentUser?.userId;
|
|
23430
23532
|
if (userId) {
|
|
23431
|
-
const { fetchUserSpaceMemberships } = await import("./spaceSlice-
|
|
23533
|
+
const { fetchUserSpaceMemberships } = await import("./spaceSlice-XLJ4DRG6.js");
|
|
23432
23534
|
await thunkApi.dispatch(fetchUserSpaceMemberships(userId));
|
|
23433
23535
|
}
|
|
23434
23536
|
}
|
|
@@ -25911,7 +26013,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
25911
26013
|
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
25912
26014
|
};
|
|
25913
26015
|
await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
|
|
25914
|
-
const { getDocState, applyExternalDocUpdate } = await import("./docStore-
|
|
26016
|
+
const { getDocState, applyExternalDocUpdate } = await import("./docStore-KYTKNGMU.js");
|
|
25915
26017
|
if (getDocState().pageKey === id) {
|
|
25916
26018
|
applyExternalDocUpdate({
|
|
25917
26019
|
slateData: finalSlateData,
|
|
@@ -25936,7 +26038,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
25936
26038
|
// packages/ai/tools/updateUserPreferenceProfileTool.ts
|
|
25937
26039
|
async function dispatchSetSettings(thunkApi, changes) {
|
|
25938
26040
|
const injectedSetSettings = thunkApi?.extra?.setSettings;
|
|
25939
|
-
const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-
|
|
26041
|
+
const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-O23YDK2O.js")).setSettings;
|
|
25940
26042
|
await thunkApi.dispatch(setSettings(changes)).unwrap();
|
|
25941
26043
|
}
|
|
25942
26044
|
var updateUserPreferenceProfileFunctionSchema = {
|
|
@@ -27353,7 +27455,7 @@ var baseToolDefinitions = [
|
|
|
27353
27455
|
executor: readAgentFunc,
|
|
27354
27456
|
description: {
|
|
27355
27457
|
name: "readAgent",
|
|
27356
|
-
description: "Read a Nolo agent config.",
|
|
27458
|
+
description: "Read a Nolo agent's full config and resolve its runnable agentKey.",
|
|
27357
27459
|
category: "Nolo workspace"
|
|
27358
27460
|
},
|
|
27359
27461
|
behavior: "data",
|
|
@@ -28177,8 +28279,16 @@ export {
|
|
|
28177
28279
|
readXPostFunc,
|
|
28178
28280
|
readXhsProfileFunctionSchema,
|
|
28179
28281
|
readXhsProfileFunc,
|
|
28282
|
+
getAgentRunStatusIcon,
|
|
28283
|
+
shortRunId,
|
|
28284
|
+
formatRunAge,
|
|
28285
|
+
isAgentNameFallback,
|
|
28286
|
+
resolveRunLabel,
|
|
28180
28287
|
formatStartRunCard,
|
|
28288
|
+
TASK_PREVIEW_MAX,
|
|
28181
28289
|
formatStatusRunCard,
|
|
28290
|
+
runShowsLogTail,
|
|
28291
|
+
formatFinishedRunCard,
|
|
28182
28292
|
formatStopRunCard,
|
|
28183
28293
|
formatListRunsCard,
|
|
28184
28294
|
formatNotFoundRunCard,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
platformHostedModels,
|
|
16
16
|
xaiModels,
|
|
17
17
|
zaiModels
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-O6W2O2DA.js";
|
|
19
19
|
import {
|
|
20
20
|
__export
|
|
21
21
|
} from "./chunk-4VNS5WPM.js";
|
|
@@ -78,6 +78,45 @@ var anthropicModels = [
|
|
|
78
78
|
}
|
|
79
79
|
];
|
|
80
80
|
|
|
81
|
+
// packages/integrations/anthropic/anthropicOAuthModels.ts
|
|
82
|
+
var oauthModel = ({ name, displayName, contextWindow, thinkingMode, maxOutputTokens }) => ({
|
|
83
|
+
name,
|
|
84
|
+
displayName,
|
|
85
|
+
hasVision: true,
|
|
86
|
+
description: `OAuth \u8BA2\u9605\u6A21\u578B\uFF08${displayName}\uFF0C${thinkingMode === "adaptive" ? "Adaptive thinking" : "Extended thinking"}\uFF09`,
|
|
87
|
+
contextWindow,
|
|
88
|
+
...maxOutputTokens ? { maxOutputTokens } : {},
|
|
89
|
+
supportsReasoningEffort: true,
|
|
90
|
+
price: { input: 0, output: 0 }
|
|
91
|
+
});
|
|
92
|
+
var anthropicOAuthModels = [
|
|
93
|
+
// 5 代(1M + Adaptive thinking always-on;官方 max output 128k)
|
|
94
|
+
oauthModel({ name: "claude-fable-5", displayName: "Claude Fable 5", contextWindow: 1e6, thinkingMode: "adaptive", maxOutputTokens: 128e3 }),
|
|
95
|
+
oauthModel({ name: "claude-opus-5", displayName: "Claude Opus 5", contextWindow: 1e6, thinkingMode: "adaptive", maxOutputTokens: 128e3 }),
|
|
96
|
+
oauthModel({ name: "claude-sonnet-5", displayName: "Claude Sonnet 5", contextWindow: 1e6, thinkingMode: "adaptive", maxOutputTokens: 128e3 }),
|
|
97
|
+
// 4.6/4.7/4.8 系(Adaptive thinking;context 官方未单列,参照 fuzzy claude-4.6→1M)
|
|
98
|
+
oauthModel({ name: "claude-opus-4-8", displayName: "Claude Opus 4.8", contextWindow: 1e6, thinkingMode: "adaptive" }),
|
|
99
|
+
oauthModel({ name: "claude-opus-4-7", displayName: "Claude Opus 4.7", contextWindow: 1e6, thinkingMode: "adaptive" }),
|
|
100
|
+
oauthModel({ name: "claude-sonnet-4-6", displayName: "Claude Sonnet 4.6", contextWindow: 1e6, thinkingMode: "adaptive" }),
|
|
101
|
+
oauthModel({ name: "claude-opus-4-6", displayName: "Claude Opus 4.6", contextWindow: 1e6, thinkingMode: "adaptive" }),
|
|
102
|
+
// 4.5 系(Extended thinking;官方发布规格 1M)
|
|
103
|
+
oauthModel({ name: "claude-opus-4-5-20251101", displayName: "Claude Opus 4.5", contextWindow: 1e6, thinkingMode: "extended" }),
|
|
104
|
+
oauthModel({ name: "claude-sonnet-4-5-20250929", displayName: "Claude Sonnet 4.5", contextWindow: 1e6, thinkingMode: "extended" }),
|
|
105
|
+
// haiku-4-5(官方明确 context=200k + Extended thinking)
|
|
106
|
+
oauthModel({ name: "claude-haiku-4-5-20251001", displayName: "Claude Haiku 4.5", contextWindow: 2e5, thinkingMode: "extended" })
|
|
107
|
+
];
|
|
108
|
+
var OAUTH_MODEL_THINKING_MODE = new Map(
|
|
109
|
+
anthropicOAuthModels.map((m) => [m.name, m.thinkingMode])
|
|
110
|
+
);
|
|
111
|
+
function isAdaptiveThinkingModelId(model) {
|
|
112
|
+
if (!model) return false;
|
|
113
|
+
const tableMode = OAUTH_MODEL_THINKING_MODE.get(model);
|
|
114
|
+
if (tableMode === "adaptive") return true;
|
|
115
|
+
if (tableMode === "extended") return false;
|
|
116
|
+
const n = model.toLowerCase();
|
|
117
|
+
return n.includes("fable-5") || n.includes("opus-5") || n.includes("sonnet-5") || n.includes("opus-4-8") || n.includes("opus-4-7") || n.includes("sonnet-4-6") || n.includes("opus-4-6");
|
|
118
|
+
}
|
|
119
|
+
|
|
81
120
|
// packages/integrations/qwen/models.ts
|
|
82
121
|
var qwenModels = [
|
|
83
122
|
// ── Qwen3 旗舰 ──
|
|
@@ -402,21 +441,6 @@ var moonshotModels = [
|
|
|
402
441
|
price: { input: 0.6 * 7, output: 2.4 * 7 },
|
|
403
442
|
provider: "moonshot",
|
|
404
443
|
description: "Moonshot \u9AD8\u6027\u80FD\u901A\u7528\u6A21\u578B\u3002"
|
|
405
|
-
},
|
|
406
|
-
// ── 编程 ──
|
|
407
|
-
{
|
|
408
|
-
name: "kimi-k2.7-code",
|
|
409
|
-
displayName: "Kimi K2.7 Code",
|
|
410
|
-
hasVision: false,
|
|
411
|
-
contextWindow: 262144,
|
|
412
|
-
maxOutputTokens: 262144,
|
|
413
|
-
jsonOutput: true,
|
|
414
|
-
fnCall: true,
|
|
415
|
-
supportsTool: true,
|
|
416
|
-
supportsReasoningEffort: true,
|
|
417
|
-
price: { input: 1.2 * 7, output: 4.8 * 7 },
|
|
418
|
-
provider: "moonshot",
|
|
419
|
-
description: "Moonshot \u7F16\u7A0B\u4F18\u5316\u6A21\u578B\uFF0C\u9002\u5408\u4EE3\u7801\u751F\u6210\u4E0E Agent \u7F16\u7A0B\u3002"
|
|
420
444
|
}
|
|
421
445
|
];
|
|
422
446
|
var kimiCodeModels = [
|
|
@@ -4545,6 +4569,9 @@ var NEVER = INVALID;
|
|
|
4545
4569
|
var PROVIDER_REASONING_EFFORT_VALUES = {
|
|
4546
4570
|
openai: ["none", "minimal", "low", "medium", "high", "xhigh", "max"],
|
|
4547
4571
|
deepseek: ["low", "high", "max"],
|
|
4572
|
+
// nolo (Ollama Cloud) 支持 DeepSeek/Kimi/GLM 等 thinking 模型,
|
|
4573
|
+
// reasoning_effort 通过 OpenAI 兼容端点透传到 Ollama Cloud。
|
|
4574
|
+
nolo: ["low", "high", "max"],
|
|
4548
4575
|
xai: ["low", "medium", "high"],
|
|
4549
4576
|
grok: ["low", "medium", "high"],
|
|
4550
4577
|
// none:关闭思考;必须保留,否则上游 clamp 会把 none 抬成 low,
|
|
@@ -4695,7 +4722,7 @@ var MODEL_MAP = {
|
|
|
4695
4722
|
moonshot: moonshotAllModels
|
|
4696
4723
|
};
|
|
4697
4724
|
var MODEL_LOOKUP_MAP = {
|
|
4698
|
-
anthropic: anthropicModels,
|
|
4725
|
+
anthropic: [...anthropicModels, ...anthropicOAuthModels],
|
|
4699
4726
|
xai: xaiModels,
|
|
4700
4727
|
...MODEL_MAP
|
|
4701
4728
|
};
|
|
@@ -4789,8 +4816,9 @@ var API_ENDPOINTS = {
|
|
|
4789
4816
|
default: "https://api.x.ai/v1/chat/completions"
|
|
4790
4817
|
},
|
|
4791
4818
|
deepseek: {
|
|
4792
|
-
|
|
4793
|
-
|
|
4819
|
+
// No `responses` entry: the official DeepSeek provider was retired and no
|
|
4820
|
+
// deepseek model declares endpointKey "responses", so it was unreachable.
|
|
4821
|
+
default: "https://api.deepseek.com/chat/completions"
|
|
4794
4822
|
},
|
|
4795
4823
|
deepinfra: {
|
|
4796
4824
|
default: "https://api.deepinfra.com/v1/openai/chat/completions"
|
|
@@ -4861,10 +4889,24 @@ function getApiEndpoint(agent) {
|
|
|
4861
4889
|
}
|
|
4862
4890
|
return url;
|
|
4863
4891
|
}
|
|
4892
|
+
const OAUTH_API_KEY_REFS = /* @__PURE__ */ new Set([
|
|
4893
|
+
"chatgpt",
|
|
4894
|
+
"xai",
|
|
4895
|
+
"antigravity",
|
|
4896
|
+
"claude",
|
|
4897
|
+
"cursor"
|
|
4898
|
+
]);
|
|
4864
4899
|
if (!effectiveProvider || effectiveProvider.toLowerCase() === "custom" || agent.apiSource === "custom") {
|
|
4865
4900
|
if (agent.useServerProxy) {
|
|
4866
4901
|
return "";
|
|
4867
4902
|
}
|
|
4903
|
+
const apiKeyRef = agent.apiKeyRef;
|
|
4904
|
+
if (apiKeyRef && OAUTH_API_KEY_REFS.has(apiKeyRef)) {
|
|
4905
|
+
return "";
|
|
4906
|
+
}
|
|
4907
|
+
if (effectiveProvider && API_ENDPOINTS[effectiveProvider]) {
|
|
4908
|
+
return "";
|
|
4909
|
+
}
|
|
4868
4910
|
throw new Error(
|
|
4869
4911
|
"Custom provider URL is required when apiSource is 'custom'."
|
|
4870
4912
|
);
|
|
@@ -4889,6 +4931,7 @@ function getApiEndpoint(agent) {
|
|
|
4889
4931
|
}
|
|
4890
4932
|
|
|
4891
4933
|
export {
|
|
4934
|
+
isAdaptiveThinkingModelId,
|
|
4892
4935
|
isModelSupportReasoningEffort,
|
|
4893
4936
|
clampReasoningEffort,
|
|
4894
4937
|
MODEL_LOOKUP_MAP,
|
|
@@ -462,8 +462,8 @@ function buildNoloWorkspaceOpenAiTools(args) {
|
|
|
462
462
|
// listAgentsFunc 另有 limit(默认 100,最大 500)。如后续对齐需在
|
|
463
463
|
// parseAgentListArgs / agentListCommands 增加 --limit 透传。
|
|
464
464
|
});
|
|
465
|
-
add("readAgent", "Read one agent config
|
|
466
|
-
agent: stringToolParam("Agent
|
|
465
|
+
add("readAgent", "Read one agent's full config from the Nolo workspace. Accepts an agent dbKey (agent-xxx), plain id, alias, or agent URL; resolves it (including public agents via agent-pub-<id>; the server runtime also falls back to handle lookup) and returns the runnable agentKey plus a redacted record with fields such as model, provider, apiSource, tools, prompt, inputPrice, outputPrice, and isPublic. Use it before delegation to confirm an agent's identity and capabilities, or to resolve the agentKey that startAgentRun requires.", {
|
|
466
|
+
agent: stringToolParam("Agent dbKey (e.g. agent-xxx), agent id, alias, or agent URL.")
|
|
467
467
|
}, ["agent"]);
|
|
468
468
|
add("listSpaces", "List joined spaces in the Nolo workspace.", {});
|
|
469
469
|
add("readSpace", "Read one space in the Nolo workspace.", {
|