nolo-cli 0.32.0 → 0.33.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/README.md +6 -12
- package/{_executeModel-LTMSIBS4.js → _executeModel-YXWAXPWQ.js} +77 -67
- package/{action-HI3VRQLP.js → action-OQWPNKAH.js} +17 -15
- package/{addContentAction-NCURJ6PK.js → addContentAction-YVINZQTF.js} +14 -13
- package/{addDialogAgentAction-RCY4ECF4.js → addDialogAgentAction-6IOCIEPI.js} +14 -13
- package/{agentDeleteCommand-D3MYZK6E.js → agentDeleteCommand-VGHWJN5T.js} +44 -60
- package/{agentEmailCommands-6BXS574I.js → agentEmailCommands-ZLRF35I3.js} +91 -81
- package/{agentGrantCommands-E7ZZFRHK.js → agentGrantCommands-2LEZDADN.js} +2 -2
- package/{agentListCommands-SF3HEUTT.js → agentListCommands-OHZJ7AFP.js} +75 -79
- package/{agentMachineCommands-YARVXRR6.js → agentMachineCommands-62PHPGTK.js} +43 -59
- package/{agentPullCommand-ARSIDNVC.js → agentPullCommand-TSWAJPS2.js} +5 -5
- package/agentRecordCommands-CW2JWERD.js +113 -0
- package/agentRunCommand-O4HV7YWA.js +131 -0
- package/{agentRuntimeLocal-ATGJY6WC.js → agentRuntimeLocal-4PSBNUOE.js} +37 -51
- package/{agentSlice-4XWW344Y.js → agentSlice-OUTQ5O72.js} +16 -14
- package/{appDeleteCommands-63JO7RXS.js → appDeleteCommands-VTDBVHYR.js} +40 -56
- package/{appDeployCommands-Y7EWYUGM.js → appDeployCommands-WOUP7MDA.js} +40 -56
- package/{appDeployStatusCommands-ZBEY3DWB.js → appDeployStatusCommands-N2NWZKEN.js} +40 -56
- package/{appGetCommands-QSSOSEYL.js → appGetCommands-GYKLWWCA.js} +40 -56
- package/{appListCommands-PH3XWNDX.js → appListCommands-RUWBSEJK.js} +40 -56
- package/{authCommand-BBDHMSO6.js → authCommand-YVXVH25I.js} +21 -20
- package/{authCommands-4UDEKRE6.js → authCommands-WTW6MEYS.js} +10 -10
- package/chatQueueReduxAdapter-2QJAD4KQ.js +181 -0
- package/{chunk-EEF23OOK.js → chunk-266VUBLK.js} +7 -7
- package/{chunk-TEYN42N3.js → chunk-2IVEXF7P.js} +11 -4
- package/{chunk-2HXKAPH7.js → chunk-2QLAVHVK.js} +6 -6
- package/{chunk-WTGCTVJG.js → chunk-2QTEYCR7.js} +3 -6
- package/{chunk-DOISARTV.js → chunk-2UECQ7RE.js} +1 -1
- package/{chunk-E3APEOIM.js → chunk-3GZXL6FM.js} +4 -19
- package/{chunk-KGEVMUMI.js → chunk-3RUW3ONU.js} +11 -11
- package/{chunk-RXVX5LFR.js → chunk-3UG2IIZ3.js} +1 -1
- package/{chunk-O5OMJPPF.js → chunk-3WXRAHCG.js} +6 -5
- package/{chunk-V54H24CQ.js → chunk-4F5M2MW5.js} +3 -3
- package/{chunk-2ZRP5RUG.js → chunk-4OV7DXFJ.js} +12 -11
- package/{chunk-W367V5CH.js → chunk-54BAYVCY.js} +404 -117
- package/{chunk-GAF5X6B7.js → chunk-5QW3O3ET.js} +284 -310
- package/{chunk-DLWCWUNW.js → chunk-64OVNZXE.js} +1197 -757
- package/{chunk-ODS2MVMU.js → chunk-66CWPJK2.js} +19 -303
- package/{chunk-PTHDLIRB.js → chunk-6KOS7ZBZ.js} +1 -1
- package/{chunk-MXFQHRSS.js → chunk-6XIE5ZGI.js} +1 -1
- package/{chunk-ATK5WJOA.js → chunk-6YXDOOSH.js} +4 -4
- package/{chunk-SWYMCHM7.js → chunk-75U775RZ.js} +69 -1
- package/{chunk-UDA3ZYLW.js → chunk-7YYHKBJP.js} +31 -72
- package/chunk-ADLYMQB6.js +642 -0
- package/{chunk-ZWJOGMKH.js → chunk-AETZ7AD6.js} +1 -1
- package/{chunk-43EPBPZ2.js → chunk-ASDXPOJH.js} +2 -2
- package/{chunk-44HACRCK.js → chunk-BANYWEYY.js} +4 -4
- package/chunk-BFPSVRCQ.js +1799 -0
- package/{chunk-TOW4E763.js → chunk-BJIRLHJR.js} +2 -0
- package/{chunk-ZJ2WITOO.js → chunk-BQXOGBFN.js} +2 -2
- package/{chunk-4PNU7W7K.js → chunk-C7H5GMXT.js} +107 -125
- package/chunk-CPYYM4RJ.js +98 -0
- package/{chunk-3GZT3L6F.js → chunk-DDVIBKIB.js} +326 -481
- package/{chunk-2K4NDPT5.js → chunk-DFUPZE6V.js} +20 -12
- package/{chunk-BGTUGS3T.js → chunk-DKMOY3QI.js} +4 -30
- package/chunk-EGRJC4ZN.js +91 -0
- package/{chunk-K6QEHQZ3.js → chunk-EKLRRZIN.js} +1 -1
- package/{chunk-6HYVJV7B.js → chunk-ESHYE7WU.js} +2 -1
- package/{chunk-XFG3BAKN.js → chunk-FMEVI5TG.js} +65 -0
- package/{chunk-U4TRT5V4.js → chunk-GEPHJJW4.js} +1 -1
- package/chunk-GJXRIOLS.js +241 -0
- package/{chunk-VP4WJWKW.js → chunk-GM6PU7B6.js} +431 -345
- package/chunk-HS7MLR74.js +38 -0
- package/{chunk-3AUWC6EM.js → chunk-HUCT7HID.js} +5 -84
- package/chunk-IDAU4UFS.js +437 -0
- package/{chunk-Q76I4SXI.js → chunk-IHEC7VBF.js} +1 -1
- package/{chunk-OWHNFZNW.js → chunk-IKWTTKWG.js} +4 -4
- package/{chunk-3LY4F7SV.js → chunk-INZZJSQF.js} +348 -331
- package/{chunk-ZJH3LKEW.js → chunk-IR6W62Q6.js} +102 -15
- package/{chunk-RH53LMEJ.js → chunk-J44TVX2O.js} +2 -4
- package/{chunk-CF2WZF4N.js → chunk-J6WH4PYZ.js} +0 -8
- package/chunk-KHCLMKZZ.js +3062 -0
- package/{chunk-WHLVPK32.js → chunk-KMSZPTM6.js} +27 -3
- package/{chunk-L3GCUVOH.js → chunk-KSRFVP36.js} +1 -1
- package/{chunk-XDHHF73Q.js → chunk-LUIHOUZC.js} +95 -95
- package/{chunk-UOJRKY5J.js → chunk-M2YMQOLC.js} +44 -53
- package/chunk-M3JEW6N6.js +193 -0
- package/{chunk-MITD7CON.js → chunk-MDIAECHA.js} +1461 -301
- package/{chunk-IXZX5CJK.js → chunk-MQRZ5QUH.js} +1 -1
- package/{chunk-3ASDTTEI.js → chunk-MRWGHF56.js} +2 -0
- package/{chunk-Q3CSL43H.js → chunk-N4XRDM26.js} +1 -1
- package/{chunk-D34RI6NI.js → chunk-NNWHHCVP.js} +75 -1
- package/{chunk-CAENRKNJ.js → chunk-OR2HNLVO.js} +126 -88
- package/chunk-OW765XBU.js +10 -0
- package/{chunk-VMWR7VNI.js → chunk-PRMMCFIN.js} +13 -9
- package/{chunk-JZPBVBIY.js → chunk-QTZD6HBK.js} +18 -8
- package/chunk-RCFIB45Q.js +28 -0
- package/{chunk-7S54ZGF6.js → chunk-RJKIB55Y.js} +256 -12
- package/chunk-RPRRIFXV.js +231 -0
- package/chunk-RQFO3CAF.js +300 -0
- package/chunk-RY57GLGW.js +188 -0
- package/{chunk-YHGHADBQ.js → chunk-SCUETSRP.js} +4 -4
- package/{chunk-TA6EA2A3.js → chunk-TFK3HUNQ.js} +182 -20
- package/{chunk-LAXMH7JY.js → chunk-UM4H3URE.js} +18 -15
- package/{chunk-6YABCOFU.js → chunk-UNHKVD2N.js} +1 -1
- package/{chunk-G5GVZAXF.js → chunk-UNOTBWZZ.js} +15 -19
- package/{chunk-GE6IWA5N.js → chunk-UNZDCI3O.js} +126 -1
- package/chunk-URMS4XY2.js +10 -0
- package/{chunk-SFWZUTCI.js → chunk-VBUQYOX7.js} +2 -2
- package/{chunk-FXFGNOT2.js → chunk-VFVCYIRQ.js} +1 -1
- package/chunk-VIDPVFP3.js +20 -0
- package/{chunk-5RDLGLAP.js → chunk-WJSW43QZ.js} +4 -7
- package/{chunk-CF7S2RYZ.js → chunk-WLH5BAKX.js} +6 -6
- package/{chunk-VVEH6XUE.js → chunk-X2DAEZ3X.js} +1 -1
- package/{chunk-2IJAKBK2.js → chunk-X664KVEV.js} +426 -246
- package/{chunk-3FCNXC2J.js → chunk-XRO5VGQ6.js} +3735 -1394
- package/chunk-Y5GCAMGP.js +9 -0
- package/{chunk-O3JR45Q2.js → chunk-YBMI5JAH.js} +44 -44
- package/{chunk-V42OE5HT.js → chunk-YDTYDA5W.js} +3 -3
- package/chunk-YYLHWIW6.js +48 -0
- package/{chunk-AOS5IN2I.js → chunk-ZHYK3N56.js} +1 -1
- package/{chunk-PJ2DDQQM.js → chunk-ZURFOV5J.js} +2 -2
- package/{chunk-3UGKATZQ.js → chunk-ZWS6DUHX.js} +26 -435
- package/chunk-ZZ2MH7LE.js +84 -0
- package/{cliExecutor-BBUVQU4L.js → cliExecutor-DW3PHGEL.js} +2 -2
- package/{clipboardy-BVE3LVEH.js → clipboardy-MMBYVRLF.js} +166 -372
- package/{codingSkills-V35TRR4Y.js → codingSkills-DY5MINPG.js} +5 -4
- package/{createAgentAutomationAction-WLRNE7C4.js → createAgentAutomationAction-H6ZRPXBR.js} +41 -31
- package/createDialogAction-UJ6LFJYM.js +61 -0
- package/{createPageAction-7YROVZ3W.js → createPageAction-KVPT3IRK.js} +57 -47
- package/{db-6DPSJ6WT.js → db-3H3JECGY.js} +45 -5
- package/{dbSlice-BBL3PEVW.js → dbSlice-UI2VCBLG.js} +13 -12
- package/{deleteFile-RJTEPOT4.js → deleteFile-XQXPBFFB.js} +7 -6
- package/dialogCommands-6ASXJP3H.js +82 -0
- package/{dialogSlice-N4HPG6HM.js → dialogSlice-B7KCGHMY.js} +37 -29
- package/{docCreateCommands-GRA5BHSA.js → docCreateCommands-S4E4MKVC.js} +42 -56
- package/{docDeleteCommands-ONIJM5MD.js → docDeleteCommands-M7XLKWRM.js} +44 -58
- package/{docReadCommands-H55VQ2US.js → docReadCommands-LSCMW2FR.js} +42 -56
- package/{docStore-B5AHDNW5.js → docStore-ZYWZWIRB.js} +40 -30
- package/{docUpdateCommands-ZQIQVGC2.js → docUpdateCommands-OMRBAFOB.js} +45 -59
- package/{fetchMessages-VPPQDDZ4.js → fetchMessages-7QRCCRYK.js} +3 -3
- package/{getPricing-QO5TYNCK.js → getPricing-L2ENXWHV.js} +7 -6
- package/{handleSendMessageAction-IN5XX5U7.js → handleSendMessageAction-Y2XKODRT.js} +39 -31
- package/index.js +74 -74
- package/{lib-FYYBQIXS.js → lib-2ZTNRXR4.js} +432 -183
- package/{localDialogRead-3DBXVYXS.js → localDialogRead-SLMPV5SK.js} +2 -2
- package/{localRuntimeAuthority-NDUA2D7Y.js → localRuntimeAuthority-S77B5QVB.js} +10 -4
- package/{localRuntimeDb-GKYRBWLQ.js → localRuntimeDb-N3H3HQ7G.js} +1 -1
- package/{machineCommands-H3UMKE76.js → machineCommands-62RUZVSW.js} +95 -85
- package/{machineInfo-M6KB6HZN.js → machineInfo-66ZFUMLE.js} +1 -1
- package/machineWsRunDispatch-L3HD3FSF.js +129 -0
- package/{models-WDUTTYFS.js → models-OX2S5C6Q.js} +2 -2
- package/{offlineMarxistsAgentCommand-E6LUG63A.js → offlineMarxistsAgentCommand-GEH6SNNA.js} +1 -1
- package/package.json +1 -4
- package/{read-64OQDO3I.js → read-2VHEHCAN.js} +8 -7
- package/{readDocTool-MXM3T6PE.js → readDocTool-CSWD6NPC.js} +1 -2
- package/{readlineWorkspace-XVJZDCSC.js → readlineWorkspace-3MOJWFM7.js} +3358 -3409
- package/{removeDialogAgentAction-NEKVAMSH.js → removeDialogAgentAction-2T7BPM3T.js} +19 -17
- package/{runAgentClientLoop-H7U53QB6.js → runAgentClientLoop-Y5UW544I.js} +73 -64
- package/{runtimeDoctorCommands-WI2YZUSJ.js → runtimeDoctorCommands-KHGQKT3B.js} +6 -6
- package/{setDialogExtraReferencesAction-WTOHQDIV.js → setDialogExtraReferencesAction-GPT37HTW.js} +15 -14
- package/{setPrimaryDialogAgentAction-LDJOYC4F.js → setPrimaryDialogAgentAction-3746P7IW.js} +19 -17
- package/{settingSlice-4M37TN7V.js → settingSlice-FIFOQ6OR.js} +16 -14
- package/{skillDiscovery-5U6RYAHN.js → skillDiscovery-KLLKXPUO.js} +4 -4
- package/{slateUtils-2M7MUTWX.js → slateUtils-VO2FU36K.js} +1 -1
- package/{spaceCommands-7VVKJBDV.js → spaceCommands-NKSBD5G3.js} +45 -241
- package/{spaceSlice-T6YK6D34.js → spaceSlice-L44CI2QR.js} +39 -61
- package/{streamAgentChatTurn-RQ63QFQ7.js → streamAgentChatTurn-7DU4Z2VJ.js} +1262 -150
- package/{switchDialogAgentAction-XVWGKR2Z.js → switchDialogAgentAction-MQTUTQHL.js} +14 -13
- package/syncMapping-RK2MANUX.js +43 -0
- package/{tableCommands-RJZ3V4TF.js → tableCommands-64FZBAI3.js} +9 -8
- package/{toolApiClient-ARGFDJAG.js → toolApiClient-B2MFXMEG.js} +3 -3
- package/tools-2JI52WJP.js +99 -0
- package/{tuiSummaryLlmCaller-SRZ4QQUP.js → tuiSummaryLlmCaller-EAWQ3IZX.js} +25 -21
- package/{updateCommands-AK2RDOFR.js → updateCommands-MNDUIKN7.js} +2 -2
- package/{updateDialogTitleAction-BBDSWHNG.js → updateDialogTitleAction-HW33OIJI.js} +49 -38
- package/agentRecordCommands-JFZRQJQ4.js +0 -103
- package/agentRunCommand-NOX5FLKO.js +0 -121
- package/chunk-AYMOSAHE.js +0 -3158
- package/chunk-D2BPX6DQ.js +0 -1707
- package/chunk-DCDL3GC4.js +0 -171
- package/chunk-F3MP7CP6.js +0 -73
- package/chunk-WZSRQNQG.js +0 -2587
- package/createDialogAction-Y6YV64QB.js +0 -52
- package/dialogCommands-XLO5CAHZ.js +0 -95
- package/machineWsRunDispatch-HONRUK3R.js +0 -119
- package/tools-KYZX3BGO.js +0 -90
- package/{chunk-Z5MXSEOJ.js → chunk-RQSOAMPJ.js} +2 -2
- package/{chunk-JDSUTNYY.js → chunk-SAQQLJZ5.js} +3 -3
|
@@ -14,7 +14,7 @@ function buildCliLocalRuntimeDbEnv(env = process.env) {
|
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
async function getDefaultCliLocalRuntimeDb(options = {}) {
|
|
17
|
-
const { getDefaultCliLocalRuntimeDb: getAuthorityBackedDb } = await import("./localRuntimeAuthority-
|
|
17
|
+
const { getDefaultCliLocalRuntimeDb: getAuthorityBackedDb } = await import("./localRuntimeAuthority-S77B5QVB.js");
|
|
18
18
|
return getAuthorityBackedDb(options);
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
asTrimmedLowercaseString
|
|
3
|
+
} from "./chunk-QSJ3HFEF.js";
|
|
1
4
|
import {
|
|
2
5
|
isRecord
|
|
3
6
|
} from "./chunk-KUG52IAP.js";
|
|
@@ -5,6 +8,60 @@ import {
|
|
|
5
8
|
asOptionalTrimmedString
|
|
6
9
|
} from "./chunk-G3SUCT4W.js";
|
|
7
10
|
|
|
11
|
+
// packages/ai/llm/usageRequestOptions.ts
|
|
12
|
+
var STREAM_USAGE_PROVIDERS = /* @__PURE__ */ new Set([
|
|
13
|
+
"google",
|
|
14
|
+
"openrouter",
|
|
15
|
+
"xai",
|
|
16
|
+
"openai",
|
|
17
|
+
"fireworks",
|
|
18
|
+
"mistral",
|
|
19
|
+
"cloudflare",
|
|
20
|
+
"gmi",
|
|
21
|
+
// OpenAI-compatible hosted providers expose the terminal usage chunk when
|
|
22
|
+
// requested, including DeepInfra and Vultr. Keep this capability decision
|
|
23
|
+
// in the shared seam so proxy and local runtimes cannot drift.
|
|
24
|
+
"deepinfra",
|
|
25
|
+
"vultr",
|
|
26
|
+
// Explicit local-runtime providers with OpenAI-compatible streaming: both
|
|
27
|
+
// DeepSeek official and Ollama honor stream_options.include_usage on their
|
|
28
|
+
// chat.completions endpoints. Without them, locally-configured agents lose
|
|
29
|
+
// token statistics / local billing (the whitelist replaced the previous
|
|
30
|
+
// always-on include_usage).
|
|
31
|
+
"deepseek",
|
|
32
|
+
"ollama",
|
|
33
|
+
// Platform Kimi K3 remap (provider=nolo + kimi-k3) routes to crof.ai, an
|
|
34
|
+
// OpenAI-compatible /v1/chat/completions endpoint; the hosted branch passes
|
|
35
|
+
// "crof" as the usage provider so K3 streams request the terminal usage
|
|
36
|
+
// chunk (same capability decision as deepinfra/vultr).
|
|
37
|
+
"crof"
|
|
38
|
+
]);
|
|
39
|
+
var EXTRA_USAGE_FIELD_PROVIDERS = /* @__PURE__ */ new Set(["openrouter"]);
|
|
40
|
+
var normalizeProviderName = (providerName) => asTrimmedLowercaseString(providerName);
|
|
41
|
+
var getUsageRequestOptions = (providerName, options) => {
|
|
42
|
+
const normalizedProvider = normalizeProviderName(providerName);
|
|
43
|
+
const api = options?.api ?? "chat-completions";
|
|
44
|
+
if (api === "responses") {
|
|
45
|
+
return EXTRA_USAGE_FIELD_PROVIDERS.has(normalizedProvider) ? {
|
|
46
|
+
usage: {
|
|
47
|
+
include: true
|
|
48
|
+
}
|
|
49
|
+
} : {};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
...STREAM_USAGE_PROVIDERS.has(normalizedProvider) ? {
|
|
53
|
+
stream_options: {
|
|
54
|
+
include_usage: true
|
|
55
|
+
}
|
|
56
|
+
} : {},
|
|
57
|
+
...EXTRA_USAGE_FIELD_PROVIDERS.has(normalizedProvider) ? {
|
|
58
|
+
usage: {
|
|
59
|
+
include: true
|
|
60
|
+
}
|
|
61
|
+
} : {}
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
|
|
8
65
|
// packages/agent-runtime/openAiCompatibleMessages.ts
|
|
9
66
|
function preserveAgentStateFields(source, target, options) {
|
|
10
67
|
const mutableTarget = target;
|
|
@@ -35,7 +92,7 @@ function shouldStripReasoningContentForOutbound(provider, model) {
|
|
|
35
92
|
const m = model?.trim().toLowerCase();
|
|
36
93
|
if (!p || !m) return false;
|
|
37
94
|
if (p === "deepseek" || p === "nolo") {
|
|
38
|
-
return m === "deepseek-v4-flash" || m === "deepseek-v4-pro";
|
|
95
|
+
return m === "deepseek-v4-flash" || m === "deepseek-v4-flash-vision-exp" || m === "deepseek-v4-pro";
|
|
39
96
|
}
|
|
40
97
|
return false;
|
|
41
98
|
}
|
|
@@ -183,6 +240,21 @@ var extractTextFromResponseOutput = (response) => {
|
|
|
183
240
|
}
|
|
184
241
|
return parts.join("");
|
|
185
242
|
};
|
|
243
|
+
var extractReasoningFromResponseOutput = (response) => {
|
|
244
|
+
const parts = [];
|
|
245
|
+
for (const item of response?.output ?? []) {
|
|
246
|
+
if (item?.type !== "reasoning") continue;
|
|
247
|
+
if (typeof item.content === "string") {
|
|
248
|
+
parts.push(item.content);
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
for (const content of item.content ?? []) {
|
|
252
|
+
if (typeof content === "string") parts.push(content);
|
|
253
|
+
else if (typeof content?.text === "string") parts.push(content.text);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return parts.join("");
|
|
257
|
+
};
|
|
186
258
|
var toDataUrl = (base64Data, mimeType) => {
|
|
187
259
|
const normalizedMimeType = asOptionalTrimmedString(mimeType) ?? "image/png";
|
|
188
260
|
return `data:${normalizedMimeType};base64,${base64Data}`;
|
|
@@ -252,6 +324,7 @@ function hasImageParts(messages) {
|
|
|
252
324
|
}
|
|
253
325
|
|
|
254
326
|
export {
|
|
327
|
+
getUsageRequestOptions,
|
|
255
328
|
isImageUrlPart,
|
|
256
329
|
hasImageParts,
|
|
257
330
|
preserveAgentStateFields,
|
|
@@ -260,6 +333,7 @@ export {
|
|
|
260
333
|
toResponsesTools,
|
|
261
334
|
convertMessagesToResponsesInput,
|
|
262
335
|
extractTextFromResponseOutput,
|
|
336
|
+
extractReasoningFromResponseOutput,
|
|
263
337
|
extractImagePartsFromResponseOutput,
|
|
264
338
|
extractToolCallsFromResponseOutput
|
|
265
339
|
};
|
|
@@ -401,8 +401,12 @@ var DEEPINFRA_CLAUDE_SONNET_PRICE = {
|
|
|
401
401
|
output: 15 * 9
|
|
402
402
|
};
|
|
403
403
|
var DEEPINFRA_CLAUDE_OPUS_PRICE = {
|
|
404
|
-
input: 5 *
|
|
405
|
-
output: 25 *
|
|
404
|
+
input: 5 * 8,
|
|
405
|
+
output: 25 * 8
|
|
406
|
+
};
|
|
407
|
+
var DEEPINFRA_CLAUDE_FABLE_PRICE = {
|
|
408
|
+
input: 10 * 8,
|
|
409
|
+
output: 50 * 8
|
|
406
410
|
};
|
|
407
411
|
var deepinfraModels = [
|
|
408
412
|
{
|
|
@@ -424,13 +428,22 @@ var deepinfraModels = [
|
|
|
424
428
|
supportsTool: false
|
|
425
429
|
},
|
|
426
430
|
{
|
|
427
|
-
name: "anthropic/claude-opus-
|
|
428
|
-
displayName: "Anthropic: Claude Opus
|
|
431
|
+
name: "anthropic/claude-opus-5",
|
|
432
|
+
displayName: "Anthropic: Claude Opus 5",
|
|
429
433
|
hasVision: true,
|
|
430
434
|
price: { ...DEEPINFRA_CLAUDE_OPUS_PRICE },
|
|
431
435
|
contextWindow: 976e3,
|
|
432
436
|
maxOutputTokens: 4092,
|
|
433
437
|
supportsTool: false
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
name: "anthropic/claude-fable-5",
|
|
441
|
+
displayName: "Anthropic: Claude Fable 5",
|
|
442
|
+
hasVision: true,
|
|
443
|
+
price: { ...DEEPINFRA_CLAUDE_FABLE_PRICE },
|
|
444
|
+
contextWindow: 976e3,
|
|
445
|
+
maxOutputTokens: 4092,
|
|
446
|
+
supportsTool: false
|
|
434
447
|
}
|
|
435
448
|
];
|
|
436
449
|
|
|
@@ -464,24 +477,6 @@ var fireworksModels = [
|
|
|
464
477
|
}
|
|
465
478
|
];
|
|
466
479
|
|
|
467
|
-
// packages/ai/llm/cloudflare.ts
|
|
468
|
-
var getCloudflareWorkersAiChatCompletionsUrl = (accountId = process.env.CLOUDFLARE_ACCOUNT_ID?.trim()) => {
|
|
469
|
-
if (!accountId) {
|
|
470
|
-
throw new Error(
|
|
471
|
-
"CLOUDFLARE_ACCOUNT_ID is required for Cloudflare Workers AI chat completions"
|
|
472
|
-
);
|
|
473
|
-
}
|
|
474
|
-
return `https://api.cloudflare.com/client/v4/accounts/${accountId}/ai/v1/chat/completions`;
|
|
475
|
-
};
|
|
476
|
-
var cloudflareModels = [];
|
|
477
|
-
|
|
478
|
-
// packages/ai/llm/gmi.ts
|
|
479
|
-
var GMI_CHAT_COMPLETIONS_URL = "https://api.gmi-serving.com/v1/chat/completions";
|
|
480
|
-
var gmiModels = [];
|
|
481
|
-
|
|
482
|
-
// packages/ai/llm/zai.ts
|
|
483
|
-
var zaiModels = [];
|
|
484
|
-
|
|
485
480
|
// packages/ai/llm/kimi.ts
|
|
486
481
|
var PLATFORM_HOSTED_KIMI_K3_MODEL = "kimi-k3";
|
|
487
482
|
var PLATFORM_HOSTED_KIMI_K26_MODEL = "kimi-k2.6";
|
|
@@ -506,52 +501,77 @@ var resolveFireworksKimiModel = (model) => {
|
|
|
506
501
|
|
|
507
502
|
// packages/ai/llm/platformHosted.ts
|
|
508
503
|
var PLATFORM_HOSTED_CLAUDE_SONNET_5_MODEL = "anthropic/claude-sonnet-5";
|
|
509
|
-
var
|
|
504
|
+
var PLATFORM_HOSTED_CLAUDE_OPUS_5_MODEL = "anthropic/claude-opus-5";
|
|
505
|
+
var PLATFORM_HOSTED_CLAUDE_FABLE_5_MODEL = "anthropic/claude-fable-5";
|
|
510
506
|
var PLATFORM_HOSTED_CLAUDE_MODELS = [
|
|
511
507
|
PLATFORM_HOSTED_CLAUDE_SONNET_5_MODEL,
|
|
512
|
-
|
|
508
|
+
PLATFORM_HOSTED_CLAUDE_OPUS_5_MODEL,
|
|
509
|
+
PLATFORM_HOSTED_CLAUDE_FABLE_5_MODEL
|
|
513
510
|
];
|
|
514
511
|
var isPlatformHostedClaudeModel = (model) => PLATFORM_HOSTED_CLAUDE_MODELS.some(
|
|
515
512
|
(m) => asTrimmedLowercaseString(model) === m
|
|
516
513
|
);
|
|
514
|
+
var PLATFORM_CREDITS_PER_USD = 8;
|
|
515
|
+
var toPlatformCredits = (usdPerMillion) => Number((usdPerMillion * PLATFORM_CREDITS_PER_USD).toFixed(6));
|
|
517
516
|
var PLATFORM_HOSTED_GROK_4_6_MODEL = "grok-4.6";
|
|
518
517
|
var isPlatformHostedGrokModel = (model) => asTrimmedLowercaseString(model) === PLATFORM_HOSTED_GROK_4_6_MODEL;
|
|
519
|
-
var
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
);
|
|
518
|
+
var PLATFORM_HOSTED_GROK_PRICE = {
|
|
519
|
+
input: toPlatformCredits(2),
|
|
520
|
+
// 16 credits
|
|
521
|
+
output: toPlatformCredits(6)
|
|
522
|
+
// 48 credits
|
|
523
|
+
};
|
|
524
|
+
var isPlatformHostedKimiK26Model = (model) => asTrimmedLowercaseString(model) === PLATFORM_HOSTED_KIMI_K26_MODEL;
|
|
527
525
|
var PLATFORM_HOSTED_KIMI_PRICE = {
|
|
528
|
-
input: toPlatformCredits(0.
|
|
529
|
-
|
|
526
|
+
input: toPlatformCredits(0.4),
|
|
527
|
+
// 3.2 credits
|
|
528
|
+
// 缺了这一项时 calculatePrice 的 nolo 分支会退回 calculateSimpleCost,
|
|
529
|
+
// 把 cache_read_input_tokens 按 input 全价收 —— agentic 循环每轮重放整个
|
|
530
|
+
// 上下文,实测 92% 的 input 是缓存读取,等于按原价重复收 10 倍以上。
|
|
531
|
+
inputCacheHit: toPlatformCredits(0.04),
|
|
532
|
+
// 0.32 credits
|
|
533
|
+
output: toPlatformCredits(3)
|
|
534
|
+
// 24.0 credits (3 * 8 = 24)
|
|
530
535
|
};
|
|
531
536
|
var PLATFORM_HOSTED_KIMI_K3_PRICE = {
|
|
532
537
|
input: 16,
|
|
533
|
-
// crof $2 × 8
|
|
538
|
+
// crof $2 × 8
|
|
534
539
|
inputCacheHit: 2,
|
|
535
540
|
// crof $0.25 × 8
|
|
536
541
|
output: 64
|
|
537
542
|
// crof $8 × 8
|
|
538
543
|
};
|
|
544
|
+
var PLATFORM_HOSTED_GLM_53_MODEL = "glm-5.3";
|
|
545
|
+
var PLATFORM_HOSTED_GLM_52_MODEL = "glm-5.2";
|
|
546
|
+
var isPlatformHostedGlmModel = (model) => {
|
|
547
|
+
const m = asTrimmedLowercaseString(model);
|
|
548
|
+
return m === PLATFORM_HOSTED_GLM_53_MODEL || m === PLATFORM_HOSTED_GLM_52_MODEL;
|
|
549
|
+
};
|
|
539
550
|
var PLATFORM_HOSTED_GLM_PRICE = {
|
|
540
551
|
input: toPlatformCredits(1.4),
|
|
552
|
+
// 11.2 credits
|
|
541
553
|
inputCacheHit: toPlatformCredits(0.26),
|
|
554
|
+
// 2.08 credits
|
|
542
555
|
output: toPlatformCredits(4.4)
|
|
556
|
+
// 35.2 credits (4.4 * 8 = 35.2)
|
|
543
557
|
};
|
|
544
|
-
var PLATFORM_HOSTED_GLM_52_MODEL = "glm-5.2";
|
|
545
558
|
var PLATFORM_HOSTED_GEMINI_37_FLASH_MODEL = "gemini-3.7-flash";
|
|
546
559
|
var PLATFORM_HOSTED_GEMINI_37_FLASH_PRICE = {
|
|
547
560
|
input: toPlatformCredits(0.75),
|
|
561
|
+
// 6.0 credits
|
|
548
562
|
output: toPlatformCredits(3.75),
|
|
563
|
+
// 30.0 credits
|
|
549
564
|
cachingWrite: toPlatformCredits(0.075),
|
|
565
|
+
// 0.6 credits
|
|
550
566
|
cachingRead: toPlatformCredits(0.075)
|
|
567
|
+
// 0.6 credits
|
|
551
568
|
};
|
|
569
|
+
var isPlatformHostedGeminiModel = (model) => asTrimmedLowercaseString(model) === PLATFORM_HOSTED_GEMINI_37_FLASH_MODEL;
|
|
570
|
+
var PLATFORM_HOSTED_QWEN_37_FLASH_MODEL = "qwen3.7-flash";
|
|
571
|
+
var isPlatformHostedQwen37FlashModel = (model) => asTrimmedLowercaseString(model) === PLATFORM_HOSTED_QWEN_37_FLASH_MODEL;
|
|
552
572
|
var PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL = "deepseek-v4-flash";
|
|
573
|
+
var PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL = "deepseek-v4-flash-vision-exp";
|
|
553
574
|
var PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL = "deepseek-v4-pro";
|
|
554
|
-
var DEEPSEEK_V4_PRICING_EFFECTIVE_AT_MS = Date.UTC(2026, 7, 16, 16);
|
|
555
575
|
var PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE = {
|
|
556
576
|
input: 3,
|
|
557
577
|
inputCacheHit: 0.1,
|
|
@@ -562,16 +582,6 @@ var PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE = {
|
|
|
562
582
|
inputCacheHit: 0.3,
|
|
563
583
|
output: 27
|
|
564
584
|
};
|
|
565
|
-
var PLATFORM_HOSTED_DEEPSEEK_FLASH_PRICE = {
|
|
566
|
-
input: 1,
|
|
567
|
-
inputCacheHit: 0.02,
|
|
568
|
-
output: 2
|
|
569
|
-
};
|
|
570
|
-
var PLATFORM_HOSTED_DEEPSEEK_PRO_PRICE = {
|
|
571
|
-
input: 3,
|
|
572
|
-
inputCacheHit: 0.025,
|
|
573
|
-
output: 6
|
|
574
|
-
};
|
|
575
585
|
var PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE = {
|
|
576
586
|
input: 1.5,
|
|
577
587
|
inputCacheHit: 0.05,
|
|
@@ -582,25 +592,19 @@ var PLATFORM_HOSTED_DEEPSEEK_PRO_OFF_PEAK_PRICE = {
|
|
|
582
592
|
inputCacheHit: 0.15,
|
|
583
593
|
output: 13.5
|
|
584
594
|
};
|
|
595
|
+
var isDeepSeekOffPeakBeijingTime = (nowMs = Date.now()) => {
|
|
596
|
+
const beijingHour = (new Date(nowMs).getUTCHours() + 8 + 24) % 24;
|
|
597
|
+
return beijingHour >= 0 && beijingHour < 8;
|
|
598
|
+
};
|
|
585
599
|
var getPlatformHostedDeepSeekV4Price = (model, nowMs = Date.now()) => {
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
const hour = Number(
|
|
590
|
-
new Intl.DateTimeFormat("en-US", {
|
|
591
|
-
timeZone: "Asia/Shanghai",
|
|
592
|
-
hour: "numeric",
|
|
593
|
-
hourCycle: "h23"
|
|
594
|
-
}).format(new Date(nowMs))
|
|
595
|
-
);
|
|
596
|
-
const peak = hour >= 9 && hour < 12 || hour >= 14 && hour < 18;
|
|
597
|
-
if (!peak) {
|
|
598
|
-
return model === PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL ? PLATFORM_HOSTED_DEEPSEEK_PRO_OFF_PEAK_PRICE : PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE;
|
|
600
|
+
const isOffPeak = isDeepSeekOffPeakBeijingTime(nowMs);
|
|
601
|
+
if (model === PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL) {
|
|
602
|
+
return isOffPeak ? PLATFORM_HOSTED_DEEPSEEK_PRO_OFF_PEAK_PRICE : PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE;
|
|
599
603
|
}
|
|
600
|
-
return
|
|
604
|
+
return isOffPeak ? PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE : PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE;
|
|
601
605
|
};
|
|
602
|
-
var isPlatformHostedDeepSeekV4Model = (model) => model === PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL || model === PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL;
|
|
603
|
-
var
|
|
606
|
+
var isPlatformHostedDeepSeekV4Model = (model) => model === PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL || model === PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL || model === PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL;
|
|
607
|
+
var isPlatformHostedDeepseekModel = (model) => model === PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL || model === PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL || model === PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL;
|
|
604
608
|
var platformHostedModels = [
|
|
605
609
|
{
|
|
606
610
|
name: PLATFORM_HOSTED_KIMI_K3_MODEL,
|
|
@@ -622,12 +626,12 @@ var platformHostedModels = [
|
|
|
622
626
|
supportsTool: true
|
|
623
627
|
},
|
|
624
628
|
{
|
|
625
|
-
name:
|
|
626
|
-
displayName: "GLM 5.
|
|
629
|
+
name: PLATFORM_HOSTED_GLM_53_MODEL,
|
|
630
|
+
displayName: "GLM 5.3",
|
|
627
631
|
hasVision: false,
|
|
628
632
|
price: { ...PLATFORM_HOSTED_GLM_PRICE },
|
|
629
633
|
maxOutputTokens: 131072,
|
|
630
|
-
contextWindow:
|
|
634
|
+
contextWindow: 105e4,
|
|
631
635
|
supportsTool: true,
|
|
632
636
|
supportsReasoningEffort: true
|
|
633
637
|
},
|
|
@@ -645,7 +649,21 @@ var platformHostedModels = [
|
|
|
645
649
|
name: PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL,
|
|
646
650
|
displayName: "DeepSeek V4 Flash",
|
|
647
651
|
hasVision: false,
|
|
648
|
-
price: { ...
|
|
652
|
+
price: { ...PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE },
|
|
653
|
+
peakPrice: { ...PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE },
|
|
654
|
+
offPeakPrice: { ...PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE },
|
|
655
|
+
maxOutputTokens: 384e3,
|
|
656
|
+
contextWindow: 1e6,
|
|
657
|
+
supportsTool: true,
|
|
658
|
+
supportsReasoningEffort: true
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
name: PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL,
|
|
662
|
+
displayName: "DeepSeek V4 Flash Vision Exp",
|
|
663
|
+
hasVision: true,
|
|
664
|
+
price: { ...PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE },
|
|
665
|
+
peakPrice: { ...PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE },
|
|
666
|
+
offPeakPrice: { ...PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE },
|
|
649
667
|
maxOutputTokens: 384e3,
|
|
650
668
|
contextWindow: 1e6,
|
|
651
669
|
supportsTool: true,
|
|
@@ -655,7 +673,9 @@ var platformHostedModels = [
|
|
|
655
673
|
name: PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL,
|
|
656
674
|
displayName: "DeepSeek V4 Pro",
|
|
657
675
|
hasVision: false,
|
|
658
|
-
price: { ...
|
|
676
|
+
price: { ...PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE },
|
|
677
|
+
peakPrice: { ...PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE },
|
|
678
|
+
offPeakPrice: { ...PLATFORM_HOSTED_DEEPSEEK_PRO_OFF_PEAK_PRICE },
|
|
659
679
|
maxOutputTokens: 384e3,
|
|
660
680
|
contextWindow: 1e6,
|
|
661
681
|
supportsTool: true,
|
|
@@ -671,39 +691,52 @@ var platformHostedModels = [
|
|
|
671
691
|
supportsTool: false
|
|
672
692
|
},
|
|
673
693
|
{
|
|
674
|
-
name:
|
|
675
|
-
displayName: "Claude Opus
|
|
694
|
+
name: PLATFORM_HOSTED_CLAUDE_OPUS_5_MODEL,
|
|
695
|
+
displayName: "Claude Opus 5",
|
|
676
696
|
hasVision: true,
|
|
677
697
|
price: { ...DEEPINFRA_CLAUDE_OPUS_PRICE },
|
|
678
698
|
maxOutputTokens: 4092,
|
|
679
699
|
contextWindow: 976e3,
|
|
680
700
|
supportsTool: false
|
|
681
701
|
},
|
|
702
|
+
{
|
|
703
|
+
name: PLATFORM_HOSTED_CLAUDE_FABLE_5_MODEL,
|
|
704
|
+
displayName: "Claude Fable 5",
|
|
705
|
+
hasVision: true,
|
|
706
|
+
price: { ...DEEPINFRA_CLAUDE_FABLE_PRICE },
|
|
707
|
+
maxOutputTokens: 4092,
|
|
708
|
+
contextWindow: 976e3,
|
|
709
|
+
supportsTool: false
|
|
710
|
+
},
|
|
682
711
|
{
|
|
683
712
|
name: PLATFORM_HOSTED_GROK_4_6_MODEL,
|
|
684
713
|
displayName: "Grok 4.6",
|
|
685
714
|
hasVision: true,
|
|
686
|
-
|
|
687
|
-
price: { input: 2 * 7, output: 6 * 7 },
|
|
715
|
+
price: { ...PLATFORM_HOSTED_GROK_PRICE },
|
|
688
716
|
maxOutputTokens: 1e5,
|
|
689
717
|
contextWindow: 5e5,
|
|
690
718
|
supportsTool: true
|
|
691
|
-
},
|
|
692
|
-
{
|
|
693
|
-
name: PLATFORM_HOSTED_QWEN_37_FLASH_MODEL,
|
|
694
|
-
displayName: "Qwen 3.7 Flash",
|
|
695
|
-
hasVision: true,
|
|
696
|
-
// 上游 OpenRouter:$0.03/$0.13 per 1M → nolo 8 折 ×7
|
|
697
|
-
price: {
|
|
698
|
-
input: toPlatformCredits(0.03),
|
|
699
|
-
output: toPlatformCredits(0.13)
|
|
700
|
-
},
|
|
701
|
-
maxOutputTokens: 65536,
|
|
702
|
-
contextWindow: 1e6,
|
|
703
|
-
supportsTool: true
|
|
704
719
|
}
|
|
705
720
|
];
|
|
706
721
|
|
|
722
|
+
// packages/ai/llm/cloudflare.ts
|
|
723
|
+
var getCloudflareWorkersAiChatCompletionsUrl = (accountId = process.env.CLOUDFLARE_ACCOUNT_ID?.trim()) => {
|
|
724
|
+
if (!accountId) {
|
|
725
|
+
throw new Error(
|
|
726
|
+
"CLOUDFLARE_ACCOUNT_ID is required for Cloudflare Workers AI chat completions"
|
|
727
|
+
);
|
|
728
|
+
}
|
|
729
|
+
return `https://api.cloudflare.com/client/v4/accounts/${accountId}/ai/v1/chat/completions`;
|
|
730
|
+
};
|
|
731
|
+
var cloudflareModels = [];
|
|
732
|
+
|
|
733
|
+
// packages/ai/llm/gmi.ts
|
|
734
|
+
var GMI_CHAT_COMPLETIONS_URL = "https://api.gmi-serving.com/v1/chat/completions";
|
|
735
|
+
var gmiModels = [];
|
|
736
|
+
|
|
737
|
+
// packages/ai/llm/zai.ts
|
|
738
|
+
var zaiModels = [];
|
|
739
|
+
|
|
707
740
|
export {
|
|
708
741
|
googleModels,
|
|
709
742
|
openAIModels,
|
|
@@ -711,7 +744,7 @@ export {
|
|
|
711
744
|
deepinfraModels,
|
|
712
745
|
xaiModels,
|
|
713
746
|
fireworksModels,
|
|
714
|
-
|
|
747
|
+
PLATFORM_HOSTED_KIMI_K3_MODEL,
|
|
715
748
|
PLATFORM_HOSTED_KIMI_PROVIDER,
|
|
716
749
|
isNoloHostedProvider,
|
|
717
750
|
isFireworksKimiModel,
|
|
@@ -719,12 +752,17 @@ export {
|
|
|
719
752
|
resolveFireworksKimiModel,
|
|
720
753
|
isPlatformHostedClaudeModel,
|
|
721
754
|
isPlatformHostedGrokModel,
|
|
755
|
+
isPlatformHostedKimiK26Model,
|
|
756
|
+
isPlatformHostedGlmModel,
|
|
757
|
+
isPlatformHostedGeminiModel,
|
|
722
758
|
PLATFORM_HOSTED_QWEN_37_FLASH_MODEL,
|
|
759
|
+
isPlatformHostedQwen37FlashModel,
|
|
723
760
|
PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL,
|
|
724
|
-
|
|
761
|
+
PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL,
|
|
762
|
+
PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE,
|
|
725
763
|
getPlatformHostedDeepSeekV4Price,
|
|
726
764
|
isPlatformHostedDeepSeekV4Model,
|
|
727
|
-
|
|
765
|
+
isPlatformHostedDeepseekModel,
|
|
728
766
|
platformHostedModels,
|
|
729
767
|
getCloudflareWorkersAiChatCompletionsUrl,
|
|
730
768
|
cloudflareModels,
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// packages/database/levelNotFoundError.ts
|
|
2
|
+
function isLevelNotFoundError(error) {
|
|
3
|
+
if (!error || typeof error !== "object") return false;
|
|
4
|
+
const e = error;
|
|
5
|
+
return e.notFound === true || e.name === "NotFoundError" || e.code === "LEVEL_NOT_FOUND" || e.code === "LEVEL_NOT_FOUND_ERROR" || e.message === "NotFound";
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export {
|
|
9
|
+
isLevelNotFoundError
|
|
10
|
+
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveMachineId
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ESHYE7WU.js";
|
|
4
4
|
import {
|
|
5
5
|
getDefaultCliLocalRuntimeDb
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-N4XRDM26.js";
|
|
7
7
|
import {
|
|
8
8
|
buildCliRuntimeEnv,
|
|
9
9
|
clearProfileAuthToken,
|
|
@@ -11,28 +11,28 @@ import {
|
|
|
11
11
|
getDefaultProfileConfigPath,
|
|
12
12
|
loadProfileConfig,
|
|
13
13
|
saveDefaultProfile
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-UNZDCI3O.js";
|
|
15
15
|
import {
|
|
16
16
|
resolveAuthTokenFromEnv
|
|
17
17
|
} from "./chunk-A7GB5UGH.js";
|
|
18
18
|
import {
|
|
19
19
|
DEFAULT_NOLO_SERVER_URL
|
|
20
20
|
} from "./chunk-OLZBQWZU.js";
|
|
21
|
-
import {
|
|
22
|
-
normalizeServerOrigin
|
|
23
|
-
} from "./chunk-CF7PE763.js";
|
|
24
21
|
import {
|
|
25
22
|
createMemoryKey,
|
|
26
23
|
createMemoryOwnerIndexKey,
|
|
27
24
|
createMemorySubjectKindIndexKey,
|
|
28
25
|
memoryOwnerRange
|
|
29
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-KMSZPTM6.js";
|
|
27
|
+
import {
|
|
28
|
+
asTrimmedNonEmptyStringArray
|
|
29
|
+
} from "./chunk-I42VC5KR.js";
|
|
30
30
|
import {
|
|
31
31
|
asTrimmedString
|
|
32
32
|
} from "./chunk-3EUW3WEO.js";
|
|
33
33
|
import {
|
|
34
|
-
|
|
35
|
-
} from "./chunk-
|
|
34
|
+
normalizeServerOrigin
|
|
35
|
+
} from "./chunk-CF7PE763.js";
|
|
36
36
|
|
|
37
37
|
// packages/cli/authCommands.ts
|
|
38
38
|
import { createInterface } from "node:readline/promises";
|
|
@@ -66,6 +66,10 @@ var matchesFilters = (item, filters) => {
|
|
|
66
66
|
if (!itemTags.has(tag)) return false;
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
+
const contentSub = asTrimmedString(filters.contentSubstring);
|
|
70
|
+
if (contentSub && !(item.content ?? "").toLowerCase().includes(contentSub.toLowerCase())) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
69
73
|
return true;
|
|
70
74
|
};
|
|
71
75
|
var deleteMemoryItemWithIndexesInBatch = (batch, item) => {
|
|
@@ -7,14 +7,24 @@ import {
|
|
|
7
7
|
unlinkSync,
|
|
8
8
|
writeFileSync
|
|
9
9
|
} from "node:fs";
|
|
10
|
+
import { join as join2 } from "node:path";
|
|
11
|
+
|
|
12
|
+
// packages/agent-runtime/noloStateDir.ts
|
|
10
13
|
import { homedir } from "node:os";
|
|
11
14
|
import { join } from "node:path";
|
|
15
|
+
function resolveNoloStateDir(name, homeDir) {
|
|
16
|
+
if (homeDir) return join(homeDir, ".nolo", name);
|
|
17
|
+
const noloHome = process.env.NOLO_HOME?.trim();
|
|
18
|
+
return noloHome ? join(noloHome, name) : join(homedir(), ".nolo", name);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// packages/agent-runtime/oauthTokenStore.ts
|
|
12
22
|
var DEFAULT_REFRESH_SKEW_MS = 5 * 60 * 1e3;
|
|
13
|
-
function getCredentialsDir(homeDir
|
|
14
|
-
return
|
|
23
|
+
function getCredentialsDir(homeDir) {
|
|
24
|
+
return resolveNoloStateDir("credentials", homeDir);
|
|
15
25
|
}
|
|
16
|
-
function getCredentialPath(provider, homeDir
|
|
17
|
-
return
|
|
26
|
+
function getCredentialPath(provider, homeDir) {
|
|
27
|
+
return join2(getCredentialsDir(homeDir), `${provider}.json`);
|
|
18
28
|
}
|
|
19
29
|
function ensurePrivateDir(dir) {
|
|
20
30
|
mkdirSync(dir, { recursive: true, mode: 448 });
|
|
@@ -30,7 +40,7 @@ function writePrivateFile(path, body) {
|
|
|
30
40
|
} catch {
|
|
31
41
|
}
|
|
32
42
|
}
|
|
33
|
-
function readOAuthCredential(provider, homeDir
|
|
43
|
+
function readOAuthCredential(provider, homeDir) {
|
|
34
44
|
const path = getCredentialPath(provider, homeDir);
|
|
35
45
|
if (!existsSync(path)) return null;
|
|
36
46
|
const raw = readFileSync(path, "utf8");
|
|
@@ -42,18 +52,18 @@ function readOAuthCredential(provider, homeDir = homedir()) {
|
|
|
42
52
|
return null;
|
|
43
53
|
}
|
|
44
54
|
}
|
|
45
|
-
function writeOAuthCredential(provider, credential, homeDir
|
|
55
|
+
function writeOAuthCredential(provider, credential, homeDir) {
|
|
46
56
|
const path = getCredentialPath(provider, homeDir);
|
|
47
57
|
ensurePrivateDir(getCredentialsDir(homeDir));
|
|
48
58
|
writePrivateFile(path, `${JSON.stringify(credential, null, 2)}
|
|
49
59
|
`);
|
|
50
60
|
}
|
|
51
|
-
function removeOAuthCredential(provider, homeDir
|
|
61
|
+
function removeOAuthCredential(provider, homeDir) {
|
|
52
62
|
const path = getCredentialPath(provider, homeDir);
|
|
53
63
|
if (!existsSync(path)) return;
|
|
54
64
|
unlinkSync(path);
|
|
55
65
|
}
|
|
56
|
-
function createOAuthTokenStore(homeDir
|
|
66
|
+
function createOAuthTokenStore(homeDir) {
|
|
57
67
|
return {
|
|
58
68
|
read(provider) {
|
|
59
69
|
return readOAuthCredential(provider, homeDir);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// packages/chat/dialog/actions/builtinDialogLlm.ts
|
|
2
|
+
var BASE_BUILTIN_DIALOG_LLM_CONFIG = {
|
|
3
|
+
apiSource: "platform",
|
|
4
|
+
useServerProxy: true
|
|
5
|
+
};
|
|
6
|
+
var BUILTIN_TITLE_LLM_CONFIG = {
|
|
7
|
+
...BASE_BUILTIN_DIALOG_LLM_CONFIG,
|
|
8
|
+
provider: "nolo",
|
|
9
|
+
id: "builtin-dialog-title-llm",
|
|
10
|
+
name: "Builtin Dialog Title LLM",
|
|
11
|
+
model: "deepseek-v4-flash",
|
|
12
|
+
prompt: "You are a title generator for chat history. \u4F60\u53EA\u505A\u4E00\u4EF6\u4E8B\uFF1A\u6839\u636E\u5BF9\u8BDD\u5185\u5BB9\u8F93\u51FA\u6700\u7EC8\u6807\u9898\u3002\u786C\u6027\u89C4\u5219\uFF1A1) \u53EA\u8F93\u51FA\u6807\u9898\u8FD9\u4E00\u884C\uFF1B\u4E25\u7981\u8F93\u51FA\u63A8\u7406\u3001\u5206\u6790\u3001\u6B65\u9AA4\u3001\u89E3\u91CA\u3001\u524D\u8A00\u3001\u540E\u8BB0\u3001\u7FFB\u8BD1\u3001\u81F4\u6B49\u6216\u4EFB\u4F55\u989D\u5916\u8BF4\u660E\u30022) \u4E0D\u8981\u56DE\u7B54\u7528\u6237\u8BF7\u6C42\uFF0C\u4E0D\u8981\u5199\u6458\u8981\uFF0C\u53EA\u7ED9\u6807\u9898\u7ED3\u679C\u30023) \u6807\u9898\u5C3D\u91CF\u77ED\uFF1A\u901A\u5E38 2-5 \u4E2A\u8BCD\uFF0C\u82F1\u6587\u4E0D\u8D85\u8FC7 6 \u4E2A\u8BCD\u30024) \u4F7F\u7528\u5BF9\u8BDD\u4E3B\u8BED\u8A00\uFF1B\u6DF7\u5408\u8BED\u8A00\u65F6\u4F18\u5148\u7528\u6237\u4E3B\u8981\u8BED\u8A00\u30025) \u4F18\u5148\u590D\u7528\u5BF9\u8BDD\u4E2D\u7684\u5177\u4F53\u4E3B\u9898\u8BCD\uFF0C\u907F\u514D issue\u3001help\u3001discussion\u3001analysis\u3001update \u8FD9\u7C7B\u7A7A\u6CDB\u8BCD\u30026) \u5FFD\u7565 tool JSON\u3001\u51FD\u6570\u540D\u3001branch label\u3001agent \u540D\u3001\u7CFB\u7EDF\u6307\u4EE4\u548C\u7F16\u6392\u75D5\u8FF9\uFF08\u5982 GPT\u3001Claude\u3001Gemini\uFF09\uFF1B\u6807\u9898\u8981\u843D\u5728\u7528\u6237\u771F\u6B63\u8BA8\u8BBA\u7684\u5BF9\u8C61\u6216\u51B3\u7B56\u4E0A\u30027) \u66F4\u504F\u597D\u201C\u5BF9\u8C61 + \u52A8\u4F5C/\u5224\u65AD\u201D\u7684\u77ED\u6807\u9898\uFF0C\u4F8B\u5982\u201CAI \u90AE\u4EF6\u52A9\u624B\u53D6\u820D\u201D\u201C\u4E1C\u4EAC\u56DB\u65E5\u6162\u65C5\u884C\u201D\u201C\u91CD\u590D\u6263\u8D39\u9000\u6B3E\u201D\u30028) \u7EAF\u6587\u672C\uFF0C\u4E0D\u8981\u9879\u76EE\u7B26\u53F7\u3001\u7F16\u53F7\u3001markdown\u3001emoji\u3002\u6700\u7EC8\u53EA\u8FD4\u56DE\u6807\u9898\u6587\u672C\u3002 Output only the title text."
|
|
13
|
+
};
|
|
14
|
+
var BUILTIN_SUMMARY_LLM_CONFIG = {
|
|
15
|
+
...BASE_BUILTIN_DIALOG_LLM_CONFIG,
|
|
16
|
+
provider: "nolo",
|
|
17
|
+
id: "builtin-dialog-summary-llm",
|
|
18
|
+
name: "Builtin Dialog Summary LLM",
|
|
19
|
+
model: "deepseek-v4-flash",
|
|
20
|
+
// @deprecated 用 COMPACTION_SUMMARY_SYSTEM_PROMPT(packages/ai/context/compactionShared.ts)。
|
|
21
|
+
// 生产代码已全部迁移;此旧两段式 prompt 仅被 scripts/probes/dialog 探针脚本使用,待探针迁移后删除。
|
|
22
|
+
prompt: "\u4F60\u662F\u4E00\u4E2A\u4E13\u4E1A\u7684\u5BF9\u8BDD\u8BB0\u5FC6\u52A9\u7406\u3002\u8BF7\u57FA\u4E8E\u3010\u73B0\u6709\u8BB0\u5FC6\u3011\u548C\u3010\u65B0\u589E\u5BF9\u8BDD\u3011\uFF0C\u8F93\u51FA\u4E00\u4EFD\u66F4\u65B0\u540E\u7684\u5BF9\u8BDD\u8BB0\u5FC6\u6863\u6848\u3002\u4E25\u683C\u53EA\u8F93\u51FA\u4E0B\u9762\u4E24\u90E8\u5206\uFF0C\u6807\u9898\u5FC5\u987B\u5B8C\u5168\u4E00\u81F4\uFF1A\n\u5173\u952E\u4E8B\u5B9E\u6863\u6848\n- ...\n\u5BF9\u8BDD\u5267\u60C5\u6458\u8981\n- ...\n\u8981\u6C42\uFF1A1) \u4F7F\u7528\u5BF9\u8BDD\u4E3B\u8BED\u8A00\uFF1B\u6DF7\u5408\u8BED\u8A00\u65F6\u4F18\u5148\u8DDF\u968F\u7528\u6237\u4E3B\u8981\u8BED\u8A00\uFF0C\u4E13\u6709\u540D\u8BCD\u4FDD\u7559\u539F\u6587\u30022) \u5173\u952E\u4E8B\u5B9E\u6863\u6848\u53EA\u4FDD\u7559\u4E4B\u540E\u7EE7\u7EED\u5BF9\u8BDD\u4ECD\u6709\u4EF7\u503C\u7684\u4FE1\u606F\uFF0C\u4F8B\u5982\u7528\u6237\u504F\u597D\u3001\u76EE\u6807\u3001\u7EA6\u675F\u3001\u6280\u672F\u6808\u3001\u786E\u5B9A\u7684\u6587\u4EF6\u540D/\u53D8\u91CF\u540D\u3001\u6838\u5FC3\u51B3\u7B56\u3001\u5F85\u529E\u4E8B\u9879\u30023) \u5BF9\u8BDD\u5267\u60C5\u6458\u8981\u5148\u6781\u7B80\u6982\u62EC\u65E7\u4E0A\u4E0B\u6587\uFF0C\u518D\u66F4\u8BE6\u7EC6\u8BB0\u5F55\u6700\u8FD1\u65B0\u589E\u7684\u8FDB\u5C55\u3001\u5206\u6B67\u3001\u7ED3\u8BBA\u548C\u4E0B\u4E00\u6B65\u30024) \u5FFD\u7565\u5BD2\u6684\u3001\u91CD\u590D\u5C1D\u8BD5\u3001\u5DF2\u653E\u5F03\u65B9\u6848\u548C\u65E0\u4EF7\u503C\u5E9F\u8BDD\u30025) \u4E0D\u8981\u7F16\u9020\u672A\u51FA\u73B0\u7684\u4FE1\u606F\uFF0C\u4E0D\u8981\u8F93\u51FA\u5F00\u573A\u767D\u3001\u7ED3\u675F\u8BED\u3001markdown \u4EE3\u7801\u5757\u6216\u989D\u5916\u7AE0\u8282\u3002"
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export {
|
|
26
|
+
BUILTIN_TITLE_LLM_CONFIG,
|
|
27
|
+
BUILTIN_SUMMARY_LLM_CONFIG
|
|
28
|
+
};
|