nolo-cli 0.82.0-alpha.6 → 0.82.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/{_executeModel-225YRU52.js → _executeModel-FHVQOYWX.js} +48 -48
- package/{action-D22U6CTH.js → action-YVYQEAAV.js} +11 -11
- package/{addContentAction-XAPUTGL4.js → addContentAction-O7R66HEX.js} +9 -9
- package/{addDialogAgentAction-M7VLLBZM.js → addDialogAgentAction-74OA7KYP.js} +8 -8
- package/{agentDeleteCommand-ZJNQGVR2.js → agentDeleteCommand-4427YKQF.js} +31 -29
- package/{agentEmailCommands-VLVWFWX2.js → agentEmailCommands-LYDIAUOP.js} +67 -63
- package/{agentGrantCommands-R3VQEZJR.js → agentGrantCommands-M3XFO6EN.js} +2 -2
- package/{agentListCommands-GHQGLAUU.js → agentListCommands-O4AEMQVV.js} +40 -32
- package/{agentMachineCommands-QDXYENZJ.js → agentMachineCommands-F6IHXMPD.js} +31 -29
- package/{agentProviderCommands-65ZC2WB4.js → agentProviderCommands-GNPTL5XR.js} +87 -0
- package/{agentPullCommand-N7L2CT7L.js → agentPullCommand-O5MPVJ5E.js} +3 -3
- package/agentRecordCommands-BDLFOU7E.js +128 -0
- package/{agentRunCommand-YSCD65HH.js → agentRunCommand-HSSYFGMC.js} +65 -61
- package/{agentRunControl-T44MESII.js → agentRunControl-WCTKX5VL.js} +2 -2
- package/{agentRuntimeLocal-ZOHB7OOO.js → agentRuntimeLocal-IW3IM5P6.js} +27 -25
- package/{agentSlice-O2SBU5TK.js → agentSlice-G54NT6PX.js} +10 -10
- package/{appDeleteCommands-PRT6K5N2.js → appDeleteCommands-ZXLXNRHF.js} +31 -29
- package/{appDeployCommands-63ZONFAN.js → appDeployCommands-PWB4YERK.js} +31 -29
- package/{appDeployStatusCommands-AFAYCVR3.js → appDeployStatusCommands-2EZKZP7Y.js} +31 -29
- package/{appGetCommands-TNZDZE36.js → appGetCommands-JNUKOWHO.js} +31 -29
- package/{appListCommands-IA4SPG2X.js → appListCommands-6X3H67SS.js} +31 -29
- package/{authCommand-EVGFLAHO.js → authCommand-F4EFRRX6.js} +164 -24
- package/{authCommands-ILTBI6JV.js → authCommands-RGOGCPP6.js} +4 -5
- package/builtinSkillRegistry-FUAVTRVZ.js +33 -0
- package/{chatQueueReduxAdapter-4SM3DAWX.js → chatQueueReduxAdapter-VJXYSZ2D.js} +24 -24
- package/{chromeCommands-VOIRNJBL.js → chromeCommands-FZYAU75D.js} +1 -1
- package/{chromeOpsCommands-M7DPCX2T.js → chromeOpsCommands-62P2Q2YB.js} +31 -1
- package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
- package/{chunk-QC5LGHYP.js → chunk-2YMRWISD.js} +10 -5
- package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
- package/{chunk-3QPYFHAH.js → chunk-3DII57IT.js} +1 -1
- package/{chunk-NTW5GWDM.js → chunk-3VNWWVKB.js} +2 -0
- package/{chunk-DWUCB2A3.js → chunk-42V6BK2E.js} +1 -1
- package/{chunk-KIS76A2P.js → chunk-4EZHSKTB.js} +38 -4
- package/{chunk-GBPZKFYK.js → chunk-53HEEOTT.js} +4 -4
- package/{chunk-5XTOKQLW.js → chunk-5UTFL4QJ.js} +6 -2
- package/chunk-5ZUL4CUO.js +10 -0
- package/{chunk-E6RGHPDR.js → chunk-6D6VBVEW.js} +4 -6
- package/{chunk-CMH2SYHX.js → chunk-6OZ36FXI.js} +2 -2
- package/{chunk-NRALD3CC.js → chunk-76WEAXJB.js} +49 -10
- package/{chunk-3W2JJOH3.js → chunk-7REEVK4I.js} +3 -3
- package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
- package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
- package/chunk-ACTMNVHM.js +93 -0
- package/{chunk-XWNRAIUL.js → chunk-AFUORTY4.js} +6 -16
- package/{chunk-E36HZARC.js → chunk-ASQYTZTR.js} +46 -9
- package/{chunk-73IOJLK2.js → chunk-AVV3M6CX.js} +10 -10
- package/{chunk-WL2RKIBF.js → chunk-BLJWCTRL.js} +1 -1
- package/chunk-BNGW5ASC.js +344 -0
- package/{chunk-SZLVDREM.js → chunk-BP4XNZRM.js} +3 -3
- package/{chunk-2KDR4CWE.js → chunk-BYMV6QZG.js} +24 -1
- package/{chunk-MYU3MJCF.js → chunk-DHDMC6FO.js} +175 -7
- package/{chunk-FP27MNSX.js → chunk-DL2LVM5E.js} +3 -3
- package/{chunk-EXMHJN7C.js → chunk-EYAQT56M.js} +4 -3
- package/{chunk-5LSS6MFZ.js → chunk-F5OE5KSJ.js} +13 -15
- package/{chunk-CJCJF5XB.js → chunk-FDTR4QJ6.js} +4 -2
- package/{chunk-NJ6WLAPS.js → chunk-FEEHCOBD.js} +1 -1
- package/{chunk-YSKEOTPH.js → chunk-GGMVRZRO.js} +155 -795
- package/{chunk-PYXL2CJL.js → chunk-GPCZ7UXG.js} +1 -1
- package/{chunk-K7AG465Q.js → chunk-GQBOR3G6.js} +4 -2
- package/{chunk-YFADVSZE.js → chunk-H62HCIUP.js} +6 -6
- package/{chunk-PZM3EENV.js → chunk-HJUYAD4A.js} +1 -1
- package/{chunk-A3NNC2LA.js → chunk-HOBJGHLD.js} +1235 -59
- package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
- package/{chunk-6SD5OPQ4.js → chunk-IIBAPOTQ.js} +11 -173
- package/{chunk-ZVN6I33J.js → chunk-IIVGDG4I.js} +6 -5
- package/{chunk-UDQWGU7F.js → chunk-J4MOO56S.js} +1 -1
- package/{chunk-KC5FAHVS.js → chunk-JEDZAO7L.js} +1 -1
- package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
- package/chunk-JRQFUXY7.js +1625 -0
- package/chunk-KQ4ONNQD.js +677 -0
- package/{chunk-CPSZJBLK.js → chunk-L7I247DF.js} +105 -26
- package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
- package/{chunk-BJIRLHJR.js → chunk-M2EJHDJP.js} +4 -0
- package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
- package/{chunk-DSRXPQWA.js → chunk-NEDZDG3M.js} +43 -43
- package/{chunk-UJ63UXGE.js → chunk-OIVSQH2O.js} +1006 -801
- package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
- package/chunk-Q5FJJ6XI.js +103 -0
- package/{chunk-AJHEFRGJ.js → chunk-Q67DOFOO.js} +214 -5
- package/{chunk-UZ6XXCVR.js → chunk-QDSINZM3.js} +15 -2
- package/{chunk-D6XYLSOS.js → chunk-QIAVMDHY.js} +1 -1
- package/{chunk-YWG6EMH3.js → chunk-RG6JBBX5.js} +10 -6
- package/{chunk-YXLXHIT2.js → chunk-RTUYRRBM.js} +6 -6
- package/{chunk-HHLTFENG.js → chunk-SDTTBMBU.js} +907 -317
- package/{chunk-QCZX4FTW.js → chunk-SH43IESU.js} +173 -15
- package/{chunk-LSZXYE64.js → chunk-SL4QHSPQ.js} +756 -80
- package/{chunk-FNGAF7C4.js → chunk-SNPMM7H3.js} +137 -12
- package/{chunk-EM6MPSEI.js → chunk-SPUTJ4DW.js} +52 -30
- package/{chunk-SO7B7NW3.js → chunk-STHU4Y5X.js} +413 -62
- package/{chunk-SPAQ4PVV.js → chunk-SV5IJK6K.js} +1 -1
- package/{chunk-KVDUCO4Q.js → chunk-TDRTS7QW.js} +16 -12
- package/{chunk-BJCWNHVU.js → chunk-TOP2VXOR.js} +2 -2
- package/{chunk-4EJ5QYB5.js → chunk-UKZDAFYT.js} +1 -1
- package/{chunk-PGSKWZCB.js → chunk-UZGQNTVW.js} +1 -1
- package/{chunk-ZZCJUXUI.js → chunk-V4MJDUSR.js} +2 -2
- package/{chunk-JYYZCK2Z.js → chunk-V7E4PXQD.js} +1 -1
- package/{chunk-OZX2IPKM.js → chunk-VLTIYV3X.js} +1 -1
- package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
- package/{chunk-4UW2LDVA.js → chunk-VQW3EKYS.js} +15 -15
- package/{chunk-HH65VA5U.js → chunk-WGR3J4Q6.js} +101 -4
- package/{chunk-5J7W2VWW.js → chunk-WV42OMV7.js} +6 -265
- package/{chunk-Q46HQOW3.js → chunk-XTAZCQUT.js} +7 -7
- package/{chunk-DUJWWUGV.js → chunk-YQTQQX2H.js} +1 -1
- package/{chunk-BOYUESO7.js → chunk-Z77CRGTW.js} +1 -1
- package/{contentThunks-ENAVF2YU.js → contentThunks-D6QQKIPF.js} +25 -25
- package/{cooldownCommands-BSCH2W7P.js → cooldownCommands-REAWYVTY.js} +2 -2
- package/{createAgentAutomationAction-CH6BYC7K.js → createAgentAutomationAction-UIPWW4DG.js} +25 -25
- package/{createDialogAction-23UDOXSO.js → createDialogAction-573VVP3X.js} +28 -28
- package/{createPageAction-J6AEMLHK.js → createPageAction-LRFSS6TD.js} +26 -26
- package/{dbSlice-GKGGFNOB.js → dbSlice-XVWBAGYN.js} +8 -8
- package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
- package/{dialogCommands-BJJGCCQR.js → dialogCommands-KFK2FF5B.js} +35 -31
- package/{dialogSlice-F7RD6PUY.js → dialogSlice-EXLC5XTD.js} +24 -24
- package/{docCreateCommands-53GB2FU3.js → docCreateCommands-V777WOZ7.js} +32 -30
- package/{docDeleteCommands-TAW5JEBU.js → docDeleteCommands-5KHT7Z5Q.js} +33 -31
- package/{docReadCommands-F5N7N5E3.js → docReadCommands-BLROGWP3.js} +32 -30
- package/{docStore-WX4YBGXC.js → docStore-DZNGJXX7.js} +9 -9
- package/{docUpdateCommands-YQ7TRT35.js → docUpdateCommands-QXOZHQ5H.js} +32 -30
- package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
- package/{getPricing-HRMSOF3E.js → getPricing-LUSEABA6.js} +4 -4
- package/{handleSendMessageAction-CW4LULIR.js → handleSendMessageAction-OROTZBPO.js} +24 -24
- package/index.js +102 -85
- package/{localDialogRead-PUQKFI73.js → localDialogRead-BTFJ4V2I.js} +2 -2
- package/{localRuntimeDb-P37ZTX55.js → localRuntimeDb-SYQGUF4U.js} +1 -1
- package/{machineCommands-FIYWY5EU.js → machineCommands-IJWERHRH.js} +64 -60
- package/{machineWsRunDispatch-KQ4OFFNR.js → machineWsRunDispatch-XQ36M4L7.js} +62 -58
- package/{memberThunks-KATHH3F4.js → memberThunks-QGFLFVCI.js} +9 -9
- package/{models-GS72DVJS.js → models-T3SG6MJ5.js} +2 -2
- package/{offlineMarxistsAgentCommand-GEH6SNNA.js → offlineMarxistsAgentCommand-HGXZV4XJ.js} +1 -1
- package/package.json +1 -1
- package/providerPresetApply-FG6NZ57W.js +214 -0
- package/providerRegistry-757OWH3O.js +31 -0
- package/{read-LC6HVYBN.js → read-COE3ZYR6.js} +5 -4
- package/{readDocTool-N3ERJHHF.js → readDocTool-5USN4A6V.js} +1 -1
- package/{readlineWorkspace-QYI6BRNA.js → readlineWorkspace-EB3362L3.js} +144 -108
- package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-IX3MN2ZO.js} +11 -11
- package/{runAgentClientLoop-GZ5VUGAW.js → runAgentClientLoop-3MR2NPWR.js} +47 -47
- package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
- package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-X4HCPNZL.js} +9 -9
- package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-4GMIQLOD.js} +11 -11
- package/{settingSlice-OEJA4NQO.js → settingSlice-ZQZVUPKK.js} +10 -10
- package/{spaceCommands-IYMIXCMC.js → spaceCommands-TIDVUPDV.js} +30 -28
- package/{streamAgentChatTurn-EAXIUJTK.js → streamAgentChatTurn-CLP2JWCQ.js} +59 -58
- package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-N52LRPA3.js} +8 -8
- package/{tableCommands-SUNTHAYX.js → tableCommands-O6NWHFKV.js} +1 -1
- package/{toolApiClient-VGYUB4P5.js → toolApiClient-QVJ6HDNN.js} +2 -2
- package/{tools-QWQOW6J4.js → tools-OXEEBABR.js} +43 -43
- package/tuiSummaryLlmCaller-VJY3YD2Q.js +127 -0
- package/{updateCommands-Y363MC3L.js → updateCommands-2M74UL7P.js} +2 -2
- package/{updateDialogTitleAction-2HCE2M7S.js → updateDialogTitleAction-4YWKF2OE.js} +45 -28
- package/agentRecordCommands-AQFYM5HS.js +0 -124
- package/chunk-3IT2PFHL.js +0 -611
- package/chunk-I42VC5KR.js +0 -15
- package/chunk-NG4UT4K4.js +0 -79
- package/codingSkills-E6KSDNSJ.js +0 -48
- package/tuiSummaryLlmCaller-3Z24VUWM.js +0 -116
- package/{chunk-3RAG2NAD.js → chunk-UKWGR5SS.js} +3 -3
- package/{db-VQSAOWAO.js → db-WK5MDZVN.js} +1 -1
- package/{localRuntimeAuthority-R5UBODT3.js → localRuntimeAuthority-6IR6BBXE.js} +3 -3
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// packages/agent-runtime/devinOAuth.ts
|
|
2
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
var DEVIN_CONNECT_URL = "https://server.codeium.com/exa.api_server_pb.ApiServerService/GetChatMessage";
|
|
6
|
+
function buildDevinAuthUrl(orgId) {
|
|
7
|
+
const cleanOrg = orgId?.trim();
|
|
8
|
+
if (cleanOrg) {
|
|
9
|
+
return `https://app.devin.ai/org/${encodeURIComponent(cleanOrg)}/settings/keys`;
|
|
10
|
+
}
|
|
11
|
+
return "https://app.devin.ai/settings/keys";
|
|
12
|
+
}
|
|
13
|
+
function extractDevinToken(input) {
|
|
14
|
+
const raw = input?.trim();
|
|
15
|
+
if (!raw) return null;
|
|
16
|
+
if (/^https?:\/\//i.test(raw)) {
|
|
17
|
+
try {
|
|
18
|
+
const url = new URL(raw);
|
|
19
|
+
const queryToken = url.searchParams.get("token") || url.searchParams.get("access_token") || url.searchParams.get("auth_token");
|
|
20
|
+
if (queryToken?.trim()) return queryToken.trim();
|
|
21
|
+
if (url.hash) {
|
|
22
|
+
const hashParams = new URLSearchParams(url.hash.replace(/^#/, ""));
|
|
23
|
+
const hashToken = hashParams.get("token") || hashParams.get("access_token") || hashParams.get("auth_token");
|
|
24
|
+
if (hashToken?.trim()) return hashToken.trim();
|
|
25
|
+
}
|
|
26
|
+
} catch {
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return raw || null;
|
|
30
|
+
}
|
|
31
|
+
function parseDevinCredentialsToml(content) {
|
|
32
|
+
for (const line of content.split(/\r?\n/)) {
|
|
33
|
+
const cogMatch = line.match(/(cog_[A-Za-z0-9_-]+)/);
|
|
34
|
+
if (cogMatch?.[1]) {
|
|
35
|
+
return cogMatch[1].trim();
|
|
36
|
+
}
|
|
37
|
+
const match = line.match(
|
|
38
|
+
/^\s*(?:windsurf_api_key|devin_api_key|api_key|api_token|token)\s*=\s*"([^"]+)"\s*$/i
|
|
39
|
+
);
|
|
40
|
+
if (match?.[1]) {
|
|
41
|
+
return match[1].trim();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
function detectLocalDevinCredentials(options) {
|
|
47
|
+
const baseHome = options?.homeDir || homedir();
|
|
48
|
+
const xdgData = process.env.XDG_DATA_HOME;
|
|
49
|
+
const candidateCliPaths = [
|
|
50
|
+
xdgData ? join(xdgData, "devin", "credentials.toml") : null,
|
|
51
|
+
join(baseHome, ".local", "share", "devin", "credentials.toml"),
|
|
52
|
+
process.env.APPDATA ? join(process.env.APPDATA, "devin", "credentials.toml") : null
|
|
53
|
+
].filter((p) => Boolean(p));
|
|
54
|
+
for (const credPath of candidateCliPaths) {
|
|
55
|
+
if (existsSync(credPath)) {
|
|
56
|
+
try {
|
|
57
|
+
const content = readFileSync(credPath, "utf-8");
|
|
58
|
+
const token = parseDevinCredentialsToml(content);
|
|
59
|
+
if (token) {
|
|
60
|
+
return {
|
|
61
|
+
found: true,
|
|
62
|
+
token,
|
|
63
|
+
source: "devin-cli",
|
|
64
|
+
sourcePath: credPath
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
} catch {
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const codeiumPath = join(baseHome, ".codeium", "config.json");
|
|
72
|
+
if (existsSync(codeiumPath)) {
|
|
73
|
+
try {
|
|
74
|
+
const parsed = JSON.parse(readFileSync(codeiumPath, "utf-8"));
|
|
75
|
+
const token = parsed.apiKey || parsed.api_key;
|
|
76
|
+
if (token?.trim()) {
|
|
77
|
+
return {
|
|
78
|
+
found: true,
|
|
79
|
+
token: token.trim(),
|
|
80
|
+
source: "codeium-config",
|
|
81
|
+
sourcePath: codeiumPath
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
} catch {
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return { found: false };
|
|
88
|
+
}
|
|
89
|
+
function buildDevinOAuthCredential(token, now = Date.now()) {
|
|
90
|
+
return {
|
|
91
|
+
provider: "devin",
|
|
92
|
+
accessToken: token.trim(),
|
|
93
|
+
obtainedAt: now
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export {
|
|
98
|
+
DEVIN_CONNECT_URL,
|
|
99
|
+
buildDevinAuthUrl,
|
|
100
|
+
extractDevinToken,
|
|
101
|
+
detectLocalDevinCredentials,
|
|
102
|
+
buildDevinOAuthCredential
|
|
103
|
+
};
|
|
@@ -19,8 +19,20 @@ var FIREWORKS_KIMI_LATEST_MODEL = "accounts/fireworks/models/kimi-latest";
|
|
|
19
19
|
var FIREWORKS_KIMI_CURRENT_MODEL = "accounts/fireworks/models/kimi-k2p7-code";
|
|
20
20
|
var FIREWORKS_KIMI_K2P6_MODEL = "accounts/fireworks/models/kimi-k2p6";
|
|
21
21
|
var DEEPINFRA_KIMI_FALLBACK_MODEL = "moonshotai/Kimi-K2.6";
|
|
22
|
+
var isOllamaCloudKimiModel = (model) => model === PLATFORM_HOSTED_KIMI_K3_MODEL || model === PLATFORM_HOSTED_KIMI_K26_MODEL;
|
|
22
23
|
var isFireworksKimiModel = (model) => model === FIREWORKS_KIMI_LATEST_MODEL || model === FIREWORKS_KIMI_CURRENT_MODEL || model === FIREWORKS_KIMI_K2P6_MODEL;
|
|
23
24
|
var isDeepInfraKimiModel = (model) => model === DEEPINFRA_KIMI_FALLBACK_MODEL;
|
|
25
|
+
var isPlatformKimiProviderModel = (provider, model) => {
|
|
26
|
+
const normalizedProvider = asTrimmedLowercaseString(provider);
|
|
27
|
+
if (normalizedProvider === PLATFORM_HOSTED_KIMI_PROVIDER || normalizedProvider === LEGACY_OLLAMA_CLOUD_PROVIDER) {
|
|
28
|
+
return isOllamaCloudKimiModel(model);
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
};
|
|
32
|
+
var isPlatformManagedProvider = (provider, model) => {
|
|
33
|
+
const normalized = asTrimmedLowercaseString(provider);
|
|
34
|
+
return isNoloHostedProvider(normalized) || normalized === "deepseek" || isPlatformKimiProviderModel(normalized, model);
|
|
35
|
+
};
|
|
24
36
|
var resolveFireworksKimiModel = (model) => {
|
|
25
37
|
if (model === FIREWORKS_KIMI_LATEST_MODEL) {
|
|
26
38
|
return FIREWORKS_KIMI_CURRENT_MODEL;
|
|
@@ -33,8 +45,11 @@ var PLATFORM_HOSTED_CLAUDE_SONNET_5_MODEL = "anthropic/claude-sonnet-5";
|
|
|
33
45
|
var PLATFORM_HOSTED_CLAUDE_OPUS_5_MODEL = "anthropic/claude-opus-5";
|
|
34
46
|
var PLATFORM_HOSTED_CLAUDE_FABLE_5_MODEL = "anthropic/claude-fable-5";
|
|
35
47
|
var PLATFORM_HOSTED_CLAUDE_HAIKU_45_MODEL = "anthropic/claude-haiku-4-5";
|
|
48
|
+
var PLATFORM_HOSTED_CLAUDE_OPUS_5_5_MODEL = "anthropic/claude-opus-5-5";
|
|
49
|
+
var PLATFORM_HOSTED_CLAUDE_FABLE_5_1_MODEL = "anthropic/claude-fable-5-1";
|
|
36
50
|
var PLATFORM_HOSTED_GROK_4_6_MODEL = "grok-4.6";
|
|
37
51
|
var PLATFORM_HOSTED_GPT_6_ASTRA_MODEL = "gpt-6-astra";
|
|
52
|
+
var PLATFORM_HOSTED_GPT_6_LUNA_MODEL = "gpt-6-luna";
|
|
38
53
|
var PLATFORM_HOSTED_GPT_56_SOL_MODEL = "gpt-5.6-sol";
|
|
39
54
|
var PLATFORM_HOSTED_GPT_56_TERRA_MODEL = "gpt-5.6-terra";
|
|
40
55
|
var PLATFORM_HOSTED_GPT_56_LUNA_MODEL = "gpt-5.6-luna";
|
|
@@ -50,6 +65,9 @@ var PLATFORM_HOSTED_GEMINI_FLASH_IMAGE_MODEL = "gemini-3.1-flash-image-preview";
|
|
|
50
65
|
var PLATFORM_HOSTED_GEMINI_PRO_IMAGE_MODEL = "gemini-3-pro-image-preview";
|
|
51
66
|
var PLATFORM_HOSTED_GEMINI_FLASH_LITE_IMAGE_MODEL = "gemini-3.1-flash-lite-image";
|
|
52
67
|
var PLATFORM_HOSTED_OPENAI_IMAGE_MODEL = "gpt-image-2";
|
|
68
|
+
var PLATFORM_HOSTED_MIMO_FLASH_MODEL = "mimo-v2.6-flash";
|
|
69
|
+
var PLATFORM_HOSTED_MIMO_PRO_MODEL = "mimo-v2.6-pro";
|
|
70
|
+
var PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_MODEL = "mimo-v2.6-pro-ultraspeed";
|
|
53
71
|
var PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL = "deepseek-flash";
|
|
54
72
|
var PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL = "deepseek-v4-flash-vision-exp";
|
|
55
73
|
var PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL = "deepseek-v4-pro";
|
|
@@ -167,8 +185,10 @@ var PLATFORM_HOSTED_ROUTING_TABLE = {
|
|
|
167
185
|
agentRunHosted: true
|
|
168
186
|
},
|
|
169
187
|
// Claude 系(真实模型):DeepInfra 官方 id 与平台 id 同名,无需重映射。
|
|
170
|
-
//
|
|
171
|
-
//
|
|
188
|
+
// 旧批模型无缓存价(rate_per_input_token_cached=null),计费侧对无
|
|
189
|
+
// inputCacheHit 的模型按 input 全价计(见 calculatePrice);Fable 5.1 起
|
|
190
|
+
// 官方给出缓存读价(输入 1/4),在 platformHosted.ts 的 price 里带
|
|
191
|
+
// inputCacheHit。
|
|
172
192
|
[PLATFORM_HOSTED_CLAUDE_SONNET_5_MODEL]: {
|
|
173
193
|
endpoint: "https://api.deepinfra.com/v1/openai/chat/completions",
|
|
174
194
|
usageProvider: "deepinfra",
|
|
@@ -201,6 +221,23 @@ var PLATFORM_HOSTED_ROUTING_TABLE = {
|
|
|
201
221
|
wire: "chat.completions",
|
|
202
222
|
agentRunHosted: true
|
|
203
223
|
},
|
|
224
|
+
// 新一代 Claude(2026-09-24 收进广场):同 DeepInfra 通道、官方 id 直传。
|
|
225
|
+
[PLATFORM_HOSTED_CLAUDE_OPUS_5_5_MODEL]: {
|
|
226
|
+
endpoint: "https://api.deepinfra.com/v1/openai/chat/completions",
|
|
227
|
+
usageProvider: "deepinfra",
|
|
228
|
+
keyName: "deepinfra",
|
|
229
|
+
upstreamModelId: PLATFORM_HOSTED_CLAUDE_OPUS_5_5_MODEL,
|
|
230
|
+
wire: "chat.completions",
|
|
231
|
+
agentRunHosted: true
|
|
232
|
+
},
|
|
233
|
+
[PLATFORM_HOSTED_CLAUDE_FABLE_5_1_MODEL]: {
|
|
234
|
+
endpoint: "https://api.deepinfra.com/v1/openai/chat/completions",
|
|
235
|
+
usageProvider: "deepinfra",
|
|
236
|
+
keyName: "deepinfra",
|
|
237
|
+
upstreamModelId: PLATFORM_HOSTED_CLAUDE_FABLE_5_1_MODEL,
|
|
238
|
+
wire: "chat.completions",
|
|
239
|
+
agentRunHosted: true
|
|
240
|
+
},
|
|
204
241
|
// GPT-6 / GPT-5.6 系(OpenAI 官方 chat.completions):
|
|
205
242
|
// 平台价按短上下文价目定(长上下文档差价由平台吸收),见 platformHosted.ts。
|
|
206
243
|
[PLATFORM_HOSTED_GPT_6_ASTRA_MODEL]: {
|
|
@@ -210,6 +247,17 @@ var PLATFORM_HOSTED_ROUTING_TABLE = {
|
|
|
210
247
|
wire: "chat.completions",
|
|
211
248
|
agentRunHosted: true
|
|
212
249
|
},
|
|
250
|
+
// GPT-6 Luna(2026-09-22 随 GPT-6 Sol/Luna 上线;官方模型页
|
|
251
|
+
// developers.openai.com/api/docs/models/gpt-6-luna,2026-09-23 核对):
|
|
252
|
+
// 官方 id 即 `gpt-6-luna`,Chat Completions 与 Responses 端点均可用;
|
|
253
|
+
// 平台托管沿用 GPT-6 系既有 chat.completions 分流(与 astra 同线同源)。
|
|
254
|
+
[PLATFORM_HOSTED_GPT_6_LUNA_MODEL]: {
|
|
255
|
+
endpoint: "https://api.openai.com/v1/chat/completions",
|
|
256
|
+
usageProvider: "openai",
|
|
257
|
+
keyName: "openai",
|
|
258
|
+
wire: "chat.completions",
|
|
259
|
+
agentRunHosted: true
|
|
260
|
+
},
|
|
213
261
|
[PLATFORM_HOSTED_GPT_56_SOL_MODEL]: {
|
|
214
262
|
endpoint: "https://api.openai.com/v1/chat/completions",
|
|
215
263
|
usageProvider: "openai",
|
|
@@ -239,6 +287,39 @@ var PLATFORM_HOSTED_ROUTING_TABLE = {
|
|
|
239
287
|
wire: "chat.completions",
|
|
240
288
|
agentRunHosted: false
|
|
241
289
|
},
|
|
290
|
+
// MiMo V2.6 系 -> 小米官方按量计费 API(api.xiaomimimo.com,key 用 MIMO_API_KEY)。
|
|
291
|
+
// 模型 id 与上游一致,无 upstreamModelId(直传,不做 remap);
|
|
292
|
+
// wire 是 chat.completions(不是 responses 特例,走通用 hostedRoute 分支)。
|
|
293
|
+
//
|
|
294
|
+
// 上游事实(mimo.mi.com 官方文档 /api/chat/openai-api,2026-09-20 版):
|
|
295
|
+
// - `thinking.type` 默认 enabled;平台未显式开启思考时补 {type:"disabled"}
|
|
296
|
+
// (判据同时认 provider=mimo / xiaomimimo.com 端点与下面的托管模型 id);
|
|
297
|
+
// - 同时兼容 `max_tokens` 与 `max_completion_tokens`(实测 200 OK);文档
|
|
298
|
+
// 未提及 `stream_options` / `include_usage`——平台因此不请求
|
|
299
|
+
// include_usage,usage 由响应体自带(含 prompt_tokens_details.cached_tokens,
|
|
300
|
+
// 缓存命中按 inputCacheHit 价计入积分);
|
|
301
|
+
// - 1M 上下文 / 128K 最大输出 / 文本+图+音视频输入(全模态理解)。
|
|
302
|
+
[PLATFORM_HOSTED_MIMO_FLASH_MODEL]: {
|
|
303
|
+
endpoint: "https://api.xiaomimimo.com/v1/chat/completions",
|
|
304
|
+
usageProvider: "mimo",
|
|
305
|
+
keyName: "mimo",
|
|
306
|
+
wire: "chat.completions",
|
|
307
|
+
agentRunHosted: true
|
|
308
|
+
},
|
|
309
|
+
[PLATFORM_HOSTED_MIMO_PRO_MODEL]: {
|
|
310
|
+
endpoint: "https://api.xiaomimimo.com/v1/chat/completions",
|
|
311
|
+
usageProvider: "mimo",
|
|
312
|
+
keyName: "mimo",
|
|
313
|
+
wire: "chat.completions",
|
|
314
|
+
agentRunHosted: true
|
|
315
|
+
},
|
|
316
|
+
[PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_MODEL]: {
|
|
317
|
+
endpoint: "https://api.xiaomimimo.com/v1/chat/completions",
|
|
318
|
+
usageProvider: "mimo",
|
|
319
|
+
keyName: "mimo",
|
|
320
|
+
wire: "chat.completions",
|
|
321
|
+
agentRunHosted: true
|
|
322
|
+
},
|
|
242
323
|
// OpenAI Image -> OpenAI Responses API
|
|
243
324
|
[PLATFORM_HOSTED_OPENAI_IMAGE_MODEL]: {
|
|
244
325
|
endpoint: "https://api.openai.com/v1/responses",
|
|
@@ -415,7 +496,7 @@ function buildClientVersionGateErrorDetail(decision) {
|
|
|
415
496
|
// packages/ai/llm/platformHosted.ts
|
|
416
497
|
var PLATFORM_CREDITS_PER_USD = 8;
|
|
417
498
|
var toPlatformCredits = (usdPerMillion) => Number((usdPerMillion * PLATFORM_CREDITS_PER_USD).toFixed(6));
|
|
418
|
-
var CNY_UPSTREAM_MULTIPLIER = 1.
|
|
499
|
+
var CNY_UPSTREAM_MULTIPLIER = 1.1;
|
|
419
500
|
var toCnyCredits = (cnyPerMillion) => Number((cnyPerMillion * CNY_UPSTREAM_MULTIPLIER).toFixed(6));
|
|
420
501
|
var PLATFORM_HOSTED_GROK_PRICE = {
|
|
421
502
|
input: toPlatformCredits(2),
|
|
@@ -474,6 +555,20 @@ var PLATFORM_HOSTED_CLAUDE_HAIKU_45_PRICE = {
|
|
|
474
555
|
output: toPlatformCredits(5)
|
|
475
556
|
// 40 credits
|
|
476
557
|
};
|
|
558
|
+
var PLATFORM_HOSTED_CLAUDE_OPUS_5_5_PRICE = {
|
|
559
|
+
input: toPlatformCredits(4),
|
|
560
|
+
// 32 credits
|
|
561
|
+
output: toPlatformCredits(20)
|
|
562
|
+
// 160 credits
|
|
563
|
+
};
|
|
564
|
+
var PLATFORM_HOSTED_CLAUDE_FABLE_5_1_PRICE = {
|
|
565
|
+
input: toPlatformCredits(10),
|
|
566
|
+
// 80 credits
|
|
567
|
+
inputCacheHit: toPlatformCredits(2.5),
|
|
568
|
+
// 20 credits(官方缓存读 = 输入 1/4)
|
|
569
|
+
output: toPlatformCredits(50)
|
|
570
|
+
// 400 credits
|
|
571
|
+
};
|
|
477
572
|
var PLATFORM_HOSTED_GPT_6_ASTRA_PRICE = {
|
|
478
573
|
input: toPlatformCredits(10),
|
|
479
574
|
// 80 credits
|
|
@@ -506,6 +601,14 @@ var PLATFORM_HOSTED_GPT_56_LUNA_PRICE = {
|
|
|
506
601
|
output: toPlatformCredits(1.2)
|
|
507
602
|
// 9.6 credits
|
|
508
603
|
};
|
|
604
|
+
var PLATFORM_HOSTED_GPT_6_LUNA_PRICE = {
|
|
605
|
+
input: toPlatformCredits(0.1),
|
|
606
|
+
// 0.8 credits
|
|
607
|
+
inputCacheHit: toPlatformCredits(0.01),
|
|
608
|
+
// 0.08 credits
|
|
609
|
+
output: toPlatformCredits(0.5)
|
|
610
|
+
// 4.0 credits
|
|
611
|
+
};
|
|
509
612
|
var PLATFORM_HOSTED_GLM_53_FLASH_PRICE = {
|
|
510
613
|
input: toPlatformCredits(0.1),
|
|
511
614
|
// 0.8 credits
|
|
@@ -597,6 +700,40 @@ var createPlatformHostedGeminiImageModel = ({
|
|
|
597
700
|
imageGenerationProfiles,
|
|
598
701
|
supportsTool: false
|
|
599
702
|
});
|
|
703
|
+
var PLATFORM_HOSTED_MIMO_MODELS = [
|
|
704
|
+
PLATFORM_HOSTED_MIMO_FLASH_MODEL,
|
|
705
|
+
PLATFORM_HOSTED_MIMO_PRO_MODEL,
|
|
706
|
+
PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_MODEL
|
|
707
|
+
];
|
|
708
|
+
var isPlatformHostedMimoModel = (model) => {
|
|
709
|
+
const m = asTrimmedLowercaseString(model);
|
|
710
|
+
return PLATFORM_HOSTED_MIMO_MODELS.includes(m);
|
|
711
|
+
};
|
|
712
|
+
var isPlatformMimoProviderModel = (provider, model) => isPlatformManagedProvider(provider) && isPlatformHostedMimoModel(model);
|
|
713
|
+
var PLATFORM_HOSTED_MIMO_FLASH_PRICE = {
|
|
714
|
+
input: toCnyCredits(1),
|
|
715
|
+
// ¥1.00
|
|
716
|
+
inputCacheHit: toCnyCredits(0.02),
|
|
717
|
+
// ¥0.02
|
|
718
|
+
output: toCnyCredits(2)
|
|
719
|
+
// ¥2.00
|
|
720
|
+
};
|
|
721
|
+
var PLATFORM_HOSTED_MIMO_PRO_PRICE = {
|
|
722
|
+
input: toCnyCredits(3),
|
|
723
|
+
// ¥3.00
|
|
724
|
+
inputCacheHit: toCnyCredits(0.025),
|
|
725
|
+
// ¥0.025
|
|
726
|
+
output: toCnyCredits(6)
|
|
727
|
+
// ¥6.00
|
|
728
|
+
};
|
|
729
|
+
var PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_PRICE = {
|
|
730
|
+
input: toCnyCredits(30),
|
|
731
|
+
// ¥30.00
|
|
732
|
+
inputCacheHit: toCnyCredits(0.25),
|
|
733
|
+
// ¥0.25
|
|
734
|
+
output: toCnyCredits(60)
|
|
735
|
+
// ¥60.00
|
|
736
|
+
};
|
|
600
737
|
var PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE = {
|
|
601
738
|
input: toCnyCredits(2),
|
|
602
739
|
// ¥2
|
|
@@ -754,8 +891,42 @@ var platformHostedModels = [
|
|
|
754
891
|
supportsReasoningEffort: true,
|
|
755
892
|
minClientVersion: PLATFORM_HOSTED_GLM_53_FLASH_MIN_CLIENT_VERSION
|
|
756
893
|
},
|
|
757
|
-
//
|
|
758
|
-
//
|
|
894
|
+
// MiMo V2.6 系(小米官方按量计费 API,key 用 MIMO_API_KEY):1M 上下文、
|
|
895
|
+
// 最大输出 128K、原生多模态输入(文本/图/音/视频)、函数调用与深度思考。
|
|
896
|
+
// 能力值来源:mimo.mi.com 模型列表页 + 官方模型目录(max_output_length
|
|
897
|
+
// 131072、context 1048576、input_modalities 含 image/audio/video),2026-09-21。
|
|
898
|
+
{
|
|
899
|
+
name: PLATFORM_HOSTED_MIMO_FLASH_MODEL,
|
|
900
|
+
displayName: "MiMo V2.6 Flash",
|
|
901
|
+
hasVision: true,
|
|
902
|
+
price: { ...PLATFORM_HOSTED_MIMO_FLASH_PRICE },
|
|
903
|
+
maxOutputTokens: 131072,
|
|
904
|
+
contextWindow: 1048576,
|
|
905
|
+
supportsTool: true,
|
|
906
|
+
supportsReasoningEffort: true
|
|
907
|
+
},
|
|
908
|
+
{
|
|
909
|
+
name: PLATFORM_HOSTED_MIMO_PRO_MODEL,
|
|
910
|
+
displayName: "MiMo V2.6 Pro",
|
|
911
|
+
hasVision: true,
|
|
912
|
+
price: { ...PLATFORM_HOSTED_MIMO_PRO_PRICE },
|
|
913
|
+
maxOutputTokens: 131072,
|
|
914
|
+
contextWindow: 1048576,
|
|
915
|
+
supportsTool: true,
|
|
916
|
+
supportsReasoningEffort: true
|
|
917
|
+
},
|
|
918
|
+
{
|
|
919
|
+
name: PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_MODEL,
|
|
920
|
+
displayName: "MiMo V2.6 Pro Ultraspeed",
|
|
921
|
+
hasVision: true,
|
|
922
|
+
price: { ...PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_PRICE },
|
|
923
|
+
maxOutputTokens: 131072,
|
|
924
|
+
contextWindow: 1048576,
|
|
925
|
+
supportsTool: true,
|
|
926
|
+
supportsReasoningEffort: true
|
|
927
|
+
},
|
|
928
|
+
// Claude 系(真实 DeepInfra 模型,官方 id 与平台 id 同名):旧批无缓存价,
|
|
929
|
+
// 计费按 input 全价(见 calculatePrice);Fable 5.1 带官方缓存读价。
|
|
759
930
|
{
|
|
760
931
|
name: PLATFORM_HOSTED_CLAUDE_SONNET_5_MODEL,
|
|
761
932
|
displayName: "Claude Sonnet 5",
|
|
@@ -792,6 +963,26 @@ var platformHostedModels = [
|
|
|
792
963
|
contextWindow: 2e5,
|
|
793
964
|
supportsTool: false
|
|
794
965
|
},
|
|
966
|
+
{
|
|
967
|
+
// Claude Opus 5.5(2026-09-22 发布):官方 1M 上下文 / 128K 输出。
|
|
968
|
+
name: PLATFORM_HOSTED_CLAUDE_OPUS_5_5_MODEL,
|
|
969
|
+
displayName: "Claude Opus 5.5",
|
|
970
|
+
hasVision: true,
|
|
971
|
+
price: { ...PLATFORM_HOSTED_CLAUDE_OPUS_5_5_PRICE },
|
|
972
|
+
maxOutputTokens: 128e3,
|
|
973
|
+
contextWindow: 1e6,
|
|
974
|
+
supportsTool: false
|
|
975
|
+
},
|
|
976
|
+
{
|
|
977
|
+
// Claude Fable 5.1:输出上限未获官方数据,沿用 Fable 5 条目口径(4092)。
|
|
978
|
+
name: PLATFORM_HOSTED_CLAUDE_FABLE_5_1_MODEL,
|
|
979
|
+
displayName: "Claude Fable 5.1",
|
|
980
|
+
hasVision: true,
|
|
981
|
+
price: { ...PLATFORM_HOSTED_CLAUDE_FABLE_5_1_PRICE },
|
|
982
|
+
maxOutputTokens: 4092,
|
|
983
|
+
contextWindow: 1e6,
|
|
984
|
+
supportsTool: false
|
|
985
|
+
},
|
|
795
986
|
// GPT-6 / GPT-5.6 系:OpenAI 官方 chat.completions,平台价按短上下文价目。
|
|
796
987
|
{
|
|
797
988
|
name: PLATFORM_HOSTED_GPT_6_ASTRA_MODEL,
|
|
@@ -803,6 +994,19 @@ var platformHostedModels = [
|
|
|
803
994
|
supportsTool: true,
|
|
804
995
|
supportsReasoningEffort: true
|
|
805
996
|
},
|
|
997
|
+
{
|
|
998
|
+
// GPT-6 Luna:官方 1.05M 上下文 / 128k 输出 / 文本+图像输入、文本输出 /
|
|
999
|
+
// reasoning effort none-max(默认 medium);官方 Chat Completions 端点在
|
|
1000
|
+
// reasoning_effort=none 时支持 function calling(与 astra 同线)。
|
|
1001
|
+
name: PLATFORM_HOSTED_GPT_6_LUNA_MODEL,
|
|
1002
|
+
displayName: "GPT-6 Luna",
|
|
1003
|
+
hasVision: true,
|
|
1004
|
+
price: { ...PLATFORM_HOSTED_GPT_6_LUNA_PRICE },
|
|
1005
|
+
maxOutputTokens: 128e3,
|
|
1006
|
+
contextWindow: 105e4,
|
|
1007
|
+
supportsTool: true,
|
|
1008
|
+
supportsReasoningEffort: true
|
|
1009
|
+
},
|
|
806
1010
|
{
|
|
807
1011
|
name: PLATFORM_HOSTED_GPT_56_SOL_MODEL,
|
|
808
1012
|
displayName: "GPT-5.6 Sol",
|
|
@@ -1012,6 +1216,11 @@ export {
|
|
|
1012
1216
|
PLATFORM_HOSTED_GLM_53_FLASH_BASETEN_PRICE,
|
|
1013
1217
|
isPlatformHostedOpenAIImageModel,
|
|
1014
1218
|
isPlatformHostedImageModel,
|
|
1219
|
+
isPlatformMimoProviderModel,
|
|
1220
|
+
PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE,
|
|
1221
|
+
PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE,
|
|
1222
|
+
PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE,
|
|
1223
|
+
PLATFORM_HOSTED_DEEPSEEK_PRO_OFF_PEAK_PRICE,
|
|
1015
1224
|
getPlatformHostedDeepSeekV4Price,
|
|
1016
1225
|
isPlatformHostedDeepseekModel,
|
|
1017
1226
|
isPlatformHostedDeepSeekV4Model,
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BUILTIN_NOLO_AGENT_KEY
|
|
3
|
+
} from "./chunk-BNGW5ASC.js";
|
|
4
|
+
|
|
1
5
|
// packages/ai/tools/agentCapabilities.ts
|
|
2
6
|
var SYSTEM_AGENT_CAPABILITIES = [
|
|
3
7
|
{
|
|
@@ -13,7 +17,7 @@ var SYSTEM_AGENT_CAPABILITIES = [
|
|
|
13
17
|
label: "\u6DF1\u5EA6\u7F51\u9875\u6293\u53D6",
|
|
14
18
|
description: "\u5728\u666E\u901A\u8054\u7F51\u641C\u7D22\u4E4B\u5916\uFF0C\u7528 Firecrawl \u505A\u7ED3\u6784\u5316\u641C\u7D22\u4E0E\u6574\u9875\u6293\u53D6\uFF0C\u9002\u5408\u9700\u8981\u5B8C\u6574\u6B63\u6587\u3001\u6587\u6863\u7AD9\u70B9\u6216\u7AD9\u5185\u68C0\u7D22\u7684\u573A\u666F\u3002",
|
|
15
19
|
tools: ["firecrawl_search", "firecrawl_scrape"],
|
|
16
|
-
defaultEnabled:
|
|
20
|
+
defaultEnabled: false,
|
|
17
21
|
icon: "\u{1F578}\uFE0F"
|
|
18
22
|
},
|
|
19
23
|
{
|
|
@@ -43,8 +47,17 @@ var DEFAULT_SYSTEM_AGENT_CAPABILITIES = Object.fromEntries(
|
|
|
43
47
|
])
|
|
44
48
|
);
|
|
45
49
|
|
|
50
|
+
// packages/core/init.ts
|
|
51
|
+
var nolotusId = "0e95801d90";
|
|
52
|
+
var ADMIN_IDS = /* @__PURE__ */ new Set([nolotusId]);
|
|
53
|
+
var isSystemAdmin = (userId) => userId != null && ADMIN_IDS.has(userId);
|
|
54
|
+
var noloAgentId = BUILTIN_NOLO_AGENT_KEY;
|
|
55
|
+
|
|
46
56
|
export {
|
|
47
57
|
SYSTEM_AGENT_CAPABILITIES,
|
|
48
58
|
SYSTEM_AGENT_CAPABILITY_IDS,
|
|
49
|
-
DEFAULT_SYSTEM_AGENT_CAPABILITIES
|
|
59
|
+
DEFAULT_SYSTEM_AGENT_CAPABILITIES,
|
|
60
|
+
nolotusId,
|
|
61
|
+
isSystemAdmin,
|
|
62
|
+
noloAgentId
|
|
50
63
|
};
|
|
@@ -3,21 +3,21 @@ import {
|
|
|
3
3
|
} from "./chunk-YYLHWIW6.js";
|
|
4
4
|
import {
|
|
5
5
|
compareAgentSelection
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-IIVGDG4I.js";
|
|
7
7
|
import {
|
|
8
8
|
isAntigravityOAuthAgent
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-UZGQNTVW.js";
|
|
10
10
|
import {
|
|
11
11
|
getModelAbility
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-ACTMNVHM.js";
|
|
13
13
|
import {
|
|
14
14
|
isOwnedAgentKey,
|
|
15
15
|
ownedAgentKey,
|
|
16
16
|
publicAgentKey
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-M2EJHDJP.js";
|
|
18
18
|
import {
|
|
19
19
|
fnv1a32Hex
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-UKWGR5SS.js";
|
|
21
21
|
|
|
22
22
|
// packages/ai/agent/agentBilling.ts
|
|
23
23
|
function resolveBillingSource(candidate) {
|
|
@@ -420,6 +420,9 @@ function toSafeAgentSummary(record, options) {
|
|
|
420
420
|
...nextAvailableAt !== void 0 ? { nextAvailableAt } : {},
|
|
421
421
|
...credentialGroup !== void 0 ? { credentialGroup } : {},
|
|
422
422
|
...credentialKind !== void 0 ? { credentialKind } : {},
|
|
423
|
+
// 「未知 ≠ 独立」:无 credentialGroup 时显式 credentialed:false,调用方
|
|
424
|
+
// 不得把缺失解读成独立凭证(并发扇出守卫依赖这个区分)。
|
|
425
|
+
credentialed: credentialGroup !== void 0,
|
|
423
426
|
updatedAt
|
|
424
427
|
};
|
|
425
428
|
}
|
|
@@ -446,7 +449,8 @@ var COMPACT_AGENT_SUMMARY_FIELDS = [
|
|
|
446
449
|
// 所以通常根本不占字节。
|
|
447
450
|
"nextAvailableAt",
|
|
448
451
|
"credentialGroup",
|
|
449
|
-
"credentialKind"
|
|
452
|
+
"credentialKind",
|
|
453
|
+
"credentialed"
|
|
450
454
|
];
|
|
451
455
|
function omitNullishAgentSummaryFields(summary) {
|
|
452
456
|
const result = {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
clearCliLocalRuntimePreparedAgentCache
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SL4QHSPQ.js";
|
|
4
4
|
import {
|
|
5
5
|
getReadableCliDb
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LS2ZANRJ.js";
|
|
7
7
|
import {
|
|
8
8
|
buildCreatedAgentRecord,
|
|
9
9
|
buildUpdatedAgentRecord,
|
|
@@ -12,10 +12,10 @@ import {
|
|
|
12
12
|
resolveAgentRecordFromHybridStore,
|
|
13
13
|
sanitizeAgentRecordForCliOutput,
|
|
14
14
|
writeAgentRecord
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-76WEAXJB.js";
|
|
16
16
|
import {
|
|
17
17
|
resolveCliAgentKeyInput
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-SV5IJK6K.js";
|
|
19
19
|
import {
|
|
20
20
|
toErrorMessage
|
|
21
21
|
} from "./chunk-HNMXYYJR.js";
|
|
@@ -167,7 +167,7 @@ async function runAgentCreateCommand(args, deps = {}) {
|
|
|
167
167
|
}
|
|
168
168
|
if (!parsed) {
|
|
169
169
|
output.write(
|
|
170
|
-
"Usage: nolo agent create <agent> [--model <id>] [--cli-provider <provider>] [--api-source <source>] [--max-concurrent <n>] [--expires-at <iso>] [--prompt <text> | --prompt-file <path> | --prompt-doc <pageKey>] [--tools <json>] [--copy-provider-from <agent>] [--name <name>] [--custom-provider-url <url>] [--api-key <key>|--provider-api-key <key>] [--verify] [--field key=value]\n".replace("[--field key=value]", "[--handle <name>] [--field key=value]")
|
|
170
|
+
"Usage: nolo agent create <agent> [--preset <id>] [--model <id>] [--cli-provider <provider>] [--api-source <source>] [--max-concurrent <n>] [--expires-at <iso>] [--prompt <text> | --prompt-file <path> | --prompt-doc <pageKey>] [--tools <json>] [--copy-provider-from <agent>] [--name <name>] [--custom-provider-url <url>] [--api-key <key>|--provider-api-key <key>] [--verify] [--field key=value]\n" + " --preset <id> resolves a `nolo agent providers` preset (e.g. step-plan) into provider/baseUrl/model; explicit flags override it.\n".replace("[--field key=value]", "[--handle <name>] [--field key=value]")
|
|
171
171
|
);
|
|
172
172
|
return args[0] ? 0 : 1;
|
|
173
173
|
}
|
|
@@ -212,7 +212,7 @@ async function runAgentCreateCommand(args, deps = {}) {
|
|
|
212
212
|
clearCliLocalRuntimePreparedAgentCache();
|
|
213
213
|
let verifyResult;
|
|
214
214
|
if (parsed.verify) {
|
|
215
|
-
const { verifyCustomProvider } = await import("./agentProviderCommands-
|
|
215
|
+
const { verifyCustomProvider } = await import("./agentProviderCommands-GNPTL5XR.js");
|
|
216
216
|
const rec = built.nextRecord;
|
|
217
217
|
verifyResult = await verifyCustomProvider({
|
|
218
218
|
providerUrl: rec.customProviderUrl,
|