nolo-cli 0.8.0-alpha.2 → 0.8.0-alpha.21
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 +1 -1
- package/_executeModel-42U3VOVZ.js +205 -0
- package/action-TLI3V62L.js +28 -0
- package/addContentAction-57RSIIMR.js +26 -0
- package/addDialogAgentAction-G3VWEA6E.js +68 -0
- package/agentDeleteCommand-5DD2IM3J.js +327 -0
- package/agentEmailCommands-6FACJBU4.js +628 -0
- package/agentListCommands-I6KZYCIG.js +223 -0
- package/agentMachineCommands-VKLIGMZA.js +425 -0
- package/agentPullCommand-O2MTUAFR.js +122 -0
- package/agentRecordCommands-7TZICYDT.js +96 -0
- package/agentRunCommand-L4OM23KV.js +114 -0
- package/agentRunControl-K4VKNEHF.js +57 -0
- package/agentRuntimeLocal-ZYEIPTY4.js +104 -0
- package/agentSlice-BX7GXSNO.js +42 -0
- package/authCommand-EB5JSOX5.js +581 -0
- package/authCommands-XPEHTKSM.js +35 -0
- package/chunk-25LCXTML.js +175 -0
- package/chunk-2ECQG4YX.js +22296 -0
- package/chunk-2FTTDCD4.js +675 -0
- package/chunk-2JCXITPK.js +1078 -0
- package/chunk-3ASDTTEI.js +1774 -0
- package/chunk-3EUW3WEO.js +8 -0
- package/chunk-3LY4F7SV.js +9293 -0
- package/chunk-4CQLVGRV.js +50 -0
- package/chunk-4IJYA27C.js +342 -0
- package/chunk-4O3CARJ4.js +231 -0
- package/chunk-4QEWT7KD.js +933 -0
- package/chunk-4SN6J65J.js +38 -0
- package/chunk-4VNS5WPM.js +42 -0
- package/chunk-4XENYTF5.js +222 -0
- package/chunk-4ZDM73SD.js +34 -0
- package/chunk-5CS33IBL.js +301 -0
- package/chunk-5EFXE3O7.js +138 -0
- package/chunk-5KLGBAAR.js +386 -0
- package/chunk-5MIDPSSK.js +206 -0
- package/chunk-5MMAK75Q.js +15 -0
- package/chunk-63W5N6P3.js +150 -0
- package/chunk-6HYVJV7B.js +102 -0
- package/chunk-6KHNO3SK.js +1948 -0
- package/chunk-6WD3OOJS.js +20 -0
- package/chunk-7DAJ4AI4.js +191 -0
- package/chunk-7GNGZRLZ.js +1939 -0
- package/chunk-7KCUSYT2.js +354 -0
- package/chunk-7U44LYTR.js +238 -0
- package/chunk-AFON4QUU.js +112 -0
- package/chunk-AGFH73SK.js +239 -0
- package/chunk-AL2KDGR2.js +27339 -0
- package/chunk-AS4PVWA4.js +221 -0
- package/chunk-ATNTHIZI.js +13 -0
- package/chunk-AVMKZHBC.js +85 -0
- package/chunk-AZPCASRE.js +36 -0
- package/chunk-BBYVOSU2.js +792 -0
- package/chunk-C3RUNRHT.js +51 -0
- package/chunk-C4FTUXVF.js +146 -0
- package/chunk-CF2WZF4N.js +134 -0
- package/chunk-CF7PE763.js +10 -0
- package/chunk-CKOJQDKR.js +198 -0
- package/chunk-CMKUBIGW.js +1550 -0
- package/chunk-CWMSB67P.js +34 -0
- package/chunk-DCOA4QSN.js +105 -0
- package/chunk-DFFIZ25G.js +30 -0
- package/chunk-DSZUWUYB.js +478 -0
- package/chunk-DWLEOOGR.js +8 -0
- package/chunk-DZ3XJVET.js +231 -0
- package/chunk-EHLHSX7R.js +1433 -0
- package/chunk-ENOG22KJ.js +939 -0
- package/chunk-FSO5B7GH.js +171 -0
- package/chunk-FVYY6MCS.js +1447 -0
- package/chunk-G3SUCT4W.js +8 -0
- package/chunk-GAKEBQD6.js +30 -0
- package/chunk-GBRG75BQ.js +86 -0
- package/chunk-GU3PEVGZ.js +4723 -0
- package/chunk-H33743XH.js +25 -0
- package/chunk-HNMXYYJR.js +12 -0
- package/chunk-HNW7IJSK.js +71 -0
- package/chunk-I42VC5KR.js +15 -0
- package/chunk-I6XMPTMR.js +113 -0
- package/chunk-IDZTNRP2.js +85 -0
- package/chunk-ISNCLGUZ.js +146 -0
- package/chunk-IWX4UW2E.js +548 -0
- package/chunk-JBTJAPUF.js +35 -0
- package/chunk-JEXVIMYZ.js +55 -0
- package/chunk-JRKKFRAV.js +537 -0
- package/chunk-JZPBVBIY.js +94 -0
- package/chunk-KKY4B2Q2.js +21 -0
- package/chunk-KQHGZWSV.js +63 -0
- package/chunk-KUG52IAP.js +8 -0
- package/chunk-KX6YBIHG.js +8 -0
- package/chunk-LCBAMY2M.js +60 -0
- package/chunk-LM6IYQ3F.js +16 -0
- package/chunk-LTRXGFMS.js +83 -0
- package/chunk-M76ECQRD.js +13658 -0
- package/chunk-MRC4Q34M.js +188 -0
- package/chunk-MTU75CZ2.js +91 -0
- package/chunk-N54XAP77.js +19 -0
- package/chunk-O2ZNTTET.js +3272 -0
- package/chunk-O4BU24WZ.js +3212 -0
- package/chunk-OLZBQWZU.js +6 -0
- package/chunk-OOSFSFMA.js +271 -0
- package/chunk-OPZYGHUC.js +89 -0
- package/chunk-OWOHNGCN.js +50 -0
- package/chunk-P3PKED2I.js +962 -0
- package/chunk-QSJ3HFEF.js +8 -0
- package/chunk-RCSJFQPB.js +9036 -0
- package/chunk-RL776AGR.js +190 -0
- package/chunk-ROWQEJRP.js +139 -0
- package/chunk-S7Z2HMCN.js +25 -0
- package/chunk-SDJDLO5W.js +628 -0
- package/chunk-SOTZ6RDN.js +69 -0
- package/chunk-TILFE6LV.js +381 -0
- package/chunk-U4TRT5V4.js +246 -0
- package/chunk-U6VC4MU4.js +8 -0
- package/chunk-UAD2WT54.js +64 -0
- package/chunk-UB6SN4NJ.js +421 -0
- package/chunk-URUUZLPA.js +807 -0
- package/chunk-UTLZINAP.js +3066 -0
- package/chunk-VC6OZXO5.js +298 -0
- package/chunk-VF4K2QE6.js +21 -0
- package/chunk-VHBWHNVT.js +59 -0
- package/chunk-VIDPVFP3.js +20 -0
- package/chunk-VP4WJWKW.js +8882 -0
- package/chunk-VUW5FBDB.js +573 -0
- package/chunk-VVX233PH.js +482 -0
- package/chunk-VX3SXJ3N.js +2052 -0
- package/chunk-W4NVOSFF.js +37 -0
- package/chunk-WWC7I6TA.js +8 -0
- package/chunk-WZSRQNQG.js +2587 -0
- package/chunk-XBUBEFNX.js +34 -0
- package/chunk-XENYHRUE.js +104 -0
- package/chunk-Y5GCAMGP.js +9 -0
- package/chunk-YPRZSPF3.js +148 -0
- package/chunk-Z4NR32XR.js +50 -0
- package/chunk-ZNFJWEN4.js +56 -0
- package/cliExecutor-K3F7DMRO.js +36 -0
- package/clipboardy-BVE3LVEH.js +12001 -0
- package/createAgentAutomationAction-RJF3N2QY.js +866 -0
- package/createDialogAction-DRSPS6CE.js +55 -0
- package/createPageAction-6B2WMNO3.js +172 -0
- package/db-HCJ5PRB5.js +271 -0
- package/dbSlice-Q3TM2FJV.js +60 -0
- package/deleteFile-OW53A6BX.js +41 -0
- package/dialogCommands-4IX4XIZE.js +63 -0
- package/dialogSlice-3M7KX2TX.js +148 -0
- package/docCreateCommands-SIL3NPGT.js +220 -0
- package/docDeleteCommands-7IOMLUS4.js +181 -0
- package/docReadCommands-FNFXUA5L.js +134 -0
- package/docStore-SV7E34D4.js +98 -0
- package/docUpdateCommands-X2HNDVUC.js +318 -0
- package/fetchMessages-KTNM7QAR.js +17 -0
- package/getPricing-3E6UNPKL.js +30 -0
- package/handleSendMessageAction-JYETO5RZ.js +185 -0
- package/index.js +188 -112958
- package/lib-FYYBQIXS.js +19839 -0
- package/localDialogRead-2VRI24F4.js +26 -0
- package/localFirstLog-DHNOY2NA.js +19 -0
- package/localRuntimeAuthority-TEGCOWX4.js +471 -0
- package/localRuntimeDb-LGDF6FQP.js +12 -0
- package/machineCommands-RIO3RP5Q.js +781 -0
- package/machineInfo-M6KB6HZN.js +10 -0
- package/machineWsRunDispatch-W7UYLGB5.js +112 -0
- package/memoryCommands-O4MIPIWQ.js +476 -0
- package/models-4OPOOLFS.js +9 -0
- package/offlineMarxistsAgentCommand-BCPJITJL.js +242 -0
- package/package.json +4 -24
- package/read-GW7ZEI23.js +17 -0
- package/readDocTool-HUFU6OCT.js +16 -0
- package/readlineWorkspace-27JR7WPW.js +5682 -0
- package/removeDialogAgentAction-CXKR4NJI.js +73 -0
- package/runAgentClientLoop-HZFAPJHS.js +293 -0
- package/runtimeDoctorCommands-LRHLPDRC.js +289 -0
- package/setDialogExtraReferencesAction-6RKUSXHX.js +60 -0
- package/setPrimaryDialogAgentAction-T3UTBEFG.js +80 -0
- package/settingSlice-IVKXJXMG.js +199 -0
- package/skillDiscovery-UGSQGX2U.js +16 -0
- package/skillSummaryMarker-42HKSXYY.js +9 -0
- package/slateToRenderMarkdown-Y5IYN73U.js +7 -0
- package/slateUtils-2M7MUTWX.js +19 -0
- package/spaceCommands-E7VOF4LO.js +450 -0
- package/spaceSlice-TSVROA5U.js +149 -0
- package/streamAgentChatTurn-3C5RQZJF.js +4510 -0
- package/tableCommands-O7O2LBEG.js +1286 -0
- package/toolApiClient-QI3YBNWB.js +26 -0
- package/tools-EQDEKR6N.js +87 -0
- package/tuiSummaryLlmCaller-RV3THLZF.js +78 -0
- package/understanding-3CUQQ6SV.js +271 -0
- package/updateCommands-VOSPKXFF.js +31 -0
- package/updateDialogTitleAction-3XV7VWSZ.js +188 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import {
|
|
2
|
+
fetchReferenceContents,
|
|
3
|
+
resolveReferenceAssets
|
|
4
|
+
} from "./chunk-7GNGZRLZ.js";
|
|
5
|
+
|
|
6
|
+
// packages/ai/agent/fetchAgentContexts.ts
|
|
7
|
+
async function fetchAgentContexts(references, dispatch) {
|
|
8
|
+
if (!Array.isArray(references)) {
|
|
9
|
+
return { botInstructionsContext: "", botKnowledgeContext: "" };
|
|
10
|
+
}
|
|
11
|
+
const { references: normalizedRefs, contentByKey } = await resolveReferenceAssets(references, dispatch);
|
|
12
|
+
const instructionKeys = /* @__PURE__ */ new Set();
|
|
13
|
+
const knowledgeKeys = /* @__PURE__ */ new Set();
|
|
14
|
+
normalizedRefs.forEach((ref) => {
|
|
15
|
+
if (!ref.dbKey) return;
|
|
16
|
+
ref.type === "instruction" ? instructionKeys.add(ref.dbKey) : knowledgeKeys.add(ref.dbKey);
|
|
17
|
+
});
|
|
18
|
+
const [instructionsMap, knowledgeMap] = await Promise.all([
|
|
19
|
+
fetchReferenceContents(Array.from(instructionKeys), dispatch, {
|
|
20
|
+
preloaded: contentByKey
|
|
21
|
+
}),
|
|
22
|
+
fetchReferenceContents(Array.from(knowledgeKeys), dispatch, {
|
|
23
|
+
preloaded: contentByKey
|
|
24
|
+
})
|
|
25
|
+
]);
|
|
26
|
+
return {
|
|
27
|
+
botInstructionsContext: Array.from(instructionsMap.values()).join(""),
|
|
28
|
+
botKnowledgeContext: Array.from(knowledgeMap.values()).join("")
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export {
|
|
33
|
+
fetchAgentContexts
|
|
34
|
+
};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createMemoryKey,
|
|
3
|
+
memoryOwnerRange,
|
|
4
|
+
memorySubjectKindRange
|
|
5
|
+
} from "./chunk-O4BU24WZ.js";
|
|
6
|
+
|
|
7
|
+
// packages/ai/memory/queryShared.ts
|
|
8
|
+
var chooseMemoryOwners = (input) => {
|
|
9
|
+
const owners = [];
|
|
10
|
+
if (input.userId) {
|
|
11
|
+
owners.push({ ownerType: "user", ownerId: input.userId });
|
|
12
|
+
}
|
|
13
|
+
if (input.spaceId) {
|
|
14
|
+
owners.push({ ownerType: "space", ownerId: input.spaceId });
|
|
15
|
+
}
|
|
16
|
+
return owners;
|
|
17
|
+
};
|
|
18
|
+
var loadOwnerItemsFromDb = async (db, owner, limit) => {
|
|
19
|
+
const range = memoryOwnerRange(owner.ownerType, owner.ownerId);
|
|
20
|
+
const refs = [];
|
|
21
|
+
for await (const [, value] of db.iterator({
|
|
22
|
+
gte: range.start,
|
|
23
|
+
lte: range.end,
|
|
24
|
+
reverse: true
|
|
25
|
+
})) {
|
|
26
|
+
refs.push(value ?? {});
|
|
27
|
+
if (refs.length >= limit) break;
|
|
28
|
+
}
|
|
29
|
+
const items = await Promise.all(
|
|
30
|
+
refs.map(
|
|
31
|
+
(ref) => typeof ref?.memoryId === "string" ? db.get(createMemoryKey(owner.ownerType, owner.ownerId, ref.memoryId)).catch(() => null) : Promise.resolve(null)
|
|
32
|
+
)
|
|
33
|
+
);
|
|
34
|
+
return items.filter((item) => !!item);
|
|
35
|
+
};
|
|
36
|
+
var loadSubjectKindItemsFromDb = async (db, subject, kind, limit) => {
|
|
37
|
+
const range = memorySubjectKindRange(subject.subjectType, subject.subjectId, kind);
|
|
38
|
+
const refs = [];
|
|
39
|
+
for await (const [, value] of db.iterator({
|
|
40
|
+
gte: range.start,
|
|
41
|
+
lte: range.end,
|
|
42
|
+
reverse: true
|
|
43
|
+
})) {
|
|
44
|
+
refs.push(value ?? {});
|
|
45
|
+
if (refs.length >= limit) break;
|
|
46
|
+
}
|
|
47
|
+
const items = await Promise.all(
|
|
48
|
+
refs.map(
|
|
49
|
+
(ref) => typeof ref?.memoryKey === "string" ? db.get(ref.memoryKey).catch(() => null) : Promise.resolve(null)
|
|
50
|
+
)
|
|
51
|
+
);
|
|
52
|
+
return items.filter((item) => !!item);
|
|
53
|
+
};
|
|
54
|
+
var loadMemoryCandidatesFromDb = async (db, input) => {
|
|
55
|
+
const kinds = input.kinds ?? ["episodic", "semantic", "procedural"];
|
|
56
|
+
const ownerLimit = input.ownerLimit ?? 12;
|
|
57
|
+
const ownerFallback = input.ownerFallback ?? "onSubjectMiss";
|
|
58
|
+
const ownerKeySet = new Set(
|
|
59
|
+
input.owners.filter((owner) => owner.ownerId).map((owner) => `${owner.ownerType}:${owner.ownerId}`)
|
|
60
|
+
);
|
|
61
|
+
const subjects = input.subjects.filter(
|
|
62
|
+
(subject) => !!subject.subjectId
|
|
63
|
+
);
|
|
64
|
+
const subjectResults = subjects.length > 0 ? await Promise.all(
|
|
65
|
+
subjects.flatMap(
|
|
66
|
+
(subject) => kinds.map(
|
|
67
|
+
(kind) => loadSubjectKindItemsFromDb(db, subject, kind, ownerLimit)
|
|
68
|
+
)
|
|
69
|
+
)
|
|
70
|
+
) : [];
|
|
71
|
+
const subjectHitCount = subjectResults.reduce((sum, items) => sum + items.length, 0);
|
|
72
|
+
const shouldLoadOwnerFallback = ownerFallback !== "never" && (subjects.length === 0 || subjectHitCount === 0 || ownerFallback === "always");
|
|
73
|
+
const results = shouldLoadOwnerFallback ? await Promise.all(
|
|
74
|
+
[
|
|
75
|
+
...subjectResults,
|
|
76
|
+
...input.owners.map((owner) => loadOwnerItemsFromDb(db, owner, ownerLimit))
|
|
77
|
+
]
|
|
78
|
+
) : subjectResults;
|
|
79
|
+
const kindSet = new Set(kinds);
|
|
80
|
+
const seen = /* @__PURE__ */ new Set();
|
|
81
|
+
const merged = [];
|
|
82
|
+
for (const items of results) {
|
|
83
|
+
for (const item of items) {
|
|
84
|
+
if (seen.has(item.id)) continue;
|
|
85
|
+
if (!kindSet.has(item.kind)) continue;
|
|
86
|
+
if (ownerKeySet.size > 0 && !ownerKeySet.has(`${item.ownerType}:${item.ownerId}`)) {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if (!shouldLoadOwnerFallback && subjects.length > 0 && !subjects.some(
|
|
90
|
+
(subject) => subject.subjectType === item.subjectType && subject.subjectId === item.subjectId
|
|
91
|
+
)) {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
seen.add(item.id);
|
|
95
|
+
merged.push(item);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return merged;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
export {
|
|
102
|
+
chooseMemoryOwners,
|
|
103
|
+
loadMemoryCandidatesFromDb
|
|
104
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// packages/core/positiveFiniteNumberOrFallback.ts
|
|
2
|
+
function parsePositiveFiniteNumberOrFallback(value, fallback) {
|
|
3
|
+
const parsed = Number(value);
|
|
4
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export {
|
|
8
|
+
parsePositiveFiniteNumberOrFallback
|
|
9
|
+
};
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getPublicImageAgentDefaultProfile
|
|
3
|
+
} from "./chunk-VIDPVFP3.js";
|
|
4
|
+
import {
|
|
5
|
+
getApproxPricePerImage
|
|
6
|
+
} from "./chunk-CWMSB67P.js";
|
|
7
|
+
import {
|
|
8
|
+
getModelConfig
|
|
9
|
+
} from "./chunk-BBYVOSU2.js";
|
|
10
|
+
import {
|
|
11
|
+
asOptionalFiniteNumber
|
|
12
|
+
} from "./chunk-WWC7I6TA.js";
|
|
13
|
+
import {
|
|
14
|
+
asOptionalPositiveFiniteNumber
|
|
15
|
+
} from "./chunk-U6VC4MU4.js";
|
|
16
|
+
|
|
17
|
+
// packages/ai/llm/getPricing.ts
|
|
18
|
+
var MAX_OUTPUT_TOKENS = 8192;
|
|
19
|
+
var getModelPricing = (provider, modelName, _requestedServiceTier) => {
|
|
20
|
+
let model;
|
|
21
|
+
try {
|
|
22
|
+
model = getModelConfig(provider, modelName);
|
|
23
|
+
} catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
if (!model?.price) return null;
|
|
27
|
+
return getModelPricingForModel(provider, modelName, model);
|
|
28
|
+
};
|
|
29
|
+
var getModelPricingForModel = (provider, modelName, model) => {
|
|
30
|
+
if (!model.price) return null;
|
|
31
|
+
return {
|
|
32
|
+
inputPrice: model.price.input,
|
|
33
|
+
inputCacheHitPrice: typeof model.price.inputCacheHit === "number" ? model.price.inputCacheHit : 0,
|
|
34
|
+
outputPrice: model.price.output
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
var hasExplicitAgentPricing = (config) => [config?.inputPrice, config?.outputPrice].some(
|
|
38
|
+
(value) => asOptionalPositiveFiniteNumber(value) !== void 0
|
|
39
|
+
);
|
|
40
|
+
var getPrices = (config, serverPrices) => ({
|
|
41
|
+
agentInput: Number(config?.inputPrice ?? 0),
|
|
42
|
+
agentOutput: Number(config?.outputPrice ?? 0),
|
|
43
|
+
serverInput: Number(serverPrices?.inputPrice ?? 0),
|
|
44
|
+
serverOutput: Number(serverPrices?.outputPrice ?? 0)
|
|
45
|
+
});
|
|
46
|
+
var getFinalPrice = (prices) => {
|
|
47
|
+
const rawValues = Object.values(prices);
|
|
48
|
+
const validValues = rawValues.flatMap((value) => {
|
|
49
|
+
const finite = asOptionalFiniteNumber(value);
|
|
50
|
+
return finite === void 0 ? [] : [finite];
|
|
51
|
+
});
|
|
52
|
+
if (validValues.length === 0) {
|
|
53
|
+
return 0;
|
|
54
|
+
}
|
|
55
|
+
const maxPricePerMillion = Math.max(...validValues);
|
|
56
|
+
const maxPricePerToken = maxPricePerMillion / 1e6;
|
|
57
|
+
return maxPricePerToken * MAX_OUTPUT_TOKENS;
|
|
58
|
+
};
|
|
59
|
+
var TYPICAL_INPUT_TOKENS = 500;
|
|
60
|
+
var TYPICAL_OUTPUT_TOKENS = 300;
|
|
61
|
+
var trimTrailingZeros = (value) => {
|
|
62
|
+
if (!value.includes(".")) return value;
|
|
63
|
+
return value.replace(/\.?0+$/, "");
|
|
64
|
+
};
|
|
65
|
+
var getAgentPriceHint = (agent) => {
|
|
66
|
+
const imagePriceModel = agent.imageModel ?? agent.model;
|
|
67
|
+
if (agent.imageConfig?.enabled && agent.provider && imagePriceModel) {
|
|
68
|
+
try {
|
|
69
|
+
const model = getModelConfig(agent.provider, imagePriceModel);
|
|
70
|
+
const mode = agent.imageWorkflow;
|
|
71
|
+
if (mode === "generate") {
|
|
72
|
+
const defaultProfile = getPublicImageAgentDefaultProfile("generate");
|
|
73
|
+
const pricePerImage = getApproxPricePerImage(model, "1K");
|
|
74
|
+
if (typeof pricePerImage === "number") {
|
|
75
|
+
return {
|
|
76
|
+
type: "per_image",
|
|
77
|
+
amount: pricePerImage,
|
|
78
|
+
labelKey: "defaultImageProfileEstimate",
|
|
79
|
+
profileLabel: `${defaultProfile.quality} \xB7 ${defaultProfile.size}`
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
} else {
|
|
83
|
+
const pricePerImage = getApproxPricePerImage(
|
|
84
|
+
model,
|
|
85
|
+
agent.imageConfig?.imageSize
|
|
86
|
+
);
|
|
87
|
+
if (typeof pricePerImage === "number") {
|
|
88
|
+
return { type: "per_image", amount: pricePerImage };
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
} catch {
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
const inputPrice = agent.inputPrice ?? 0;
|
|
95
|
+
const outputPrice = agent.outputPrice ?? 0;
|
|
96
|
+
if (inputPrice === 0 && outputPrice === 0) return null;
|
|
97
|
+
const amount = (inputPrice * TYPICAL_INPUT_TOKENS + outputPrice * TYPICAL_OUTPUT_TOKENS) / 1e6;
|
|
98
|
+
return { type: "per_turn", amount };
|
|
99
|
+
};
|
|
100
|
+
var formatPriceAmount = (amount) => {
|
|
101
|
+
if (amount >= 0.1) return amount.toFixed(2);
|
|
102
|
+
if (amount >= 0.01) return amount.toFixed(3);
|
|
103
|
+
if (amount >= 1e-3) return amount.toFixed(4);
|
|
104
|
+
if (amount >= 1e-4) return amount.toFixed(5);
|
|
105
|
+
return amount.toFixed(6);
|
|
106
|
+
};
|
|
107
|
+
var formatModelCostPerMillion = (value, creditsUnit = "\u79EF\u5206") => {
|
|
108
|
+
const finite = asOptionalFiniteNumber(value);
|
|
109
|
+
if (finite === void 0) return "\u672A\u77E5";
|
|
110
|
+
if (finite === 0) return "\u514D\u8D39";
|
|
111
|
+
const decimals = Math.abs(finite) < 1 ? 3 : 2;
|
|
112
|
+
const amount = finite.toFixed(decimals).replace(/\.0+$/, "").replace(/(\.\d*?[1-9])0+$/, "$1");
|
|
113
|
+
return `${amount} ${creditsUnit}`;
|
|
114
|
+
};
|
|
115
|
+
var formatCompactTurnPrice = (amount) => {
|
|
116
|
+
if (amount <= 0) {
|
|
117
|
+
return { amountText: "0", unitCount: 1 };
|
|
118
|
+
}
|
|
119
|
+
if (amount >= 0.01) {
|
|
120
|
+
return {
|
|
121
|
+
amountText: trimTrailingZeros(formatPriceAmount(amount)),
|
|
122
|
+
unitCount: 1
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
const perHundred = amount * 100;
|
|
126
|
+
if (perHundred >= 0.01) {
|
|
127
|
+
return {
|
|
128
|
+
amountText: trimTrailingZeros(formatPriceAmount(perHundred)),
|
|
129
|
+
unitCount: 100
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
amountText: trimTrailingZeros(formatPriceAmount(amount * 1e3)),
|
|
134
|
+
unitCount: 1e3
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
export {
|
|
139
|
+
getModelPricing,
|
|
140
|
+
getModelPricingForModel,
|
|
141
|
+
hasExplicitAgentPricing,
|
|
142
|
+
getPrices,
|
|
143
|
+
getFinalPrice,
|
|
144
|
+
getAgentPriceHint,
|
|
145
|
+
formatPriceAmount,
|
|
146
|
+
formatModelCostPerMillion,
|
|
147
|
+
formatCompactTurnPrice
|
|
148
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {
|
|
2
|
+
asOptionalTrimmedString
|
|
3
|
+
} from "./chunk-G3SUCT4W.js";
|
|
4
|
+
|
|
5
|
+
// packages/chat/dialog/dialogAgents.ts
|
|
6
|
+
var normalizeAgentId = (value) => asOptionalTrimmedString(value) ?? null;
|
|
7
|
+
var dedupeAgentIds = (agentIds) => {
|
|
8
|
+
const seen = /* @__PURE__ */ new Set();
|
|
9
|
+
const result = [];
|
|
10
|
+
for (const agentId of agentIds) {
|
|
11
|
+
const normalized = normalizeAgentId(agentId);
|
|
12
|
+
if (!normalized || seen.has(normalized)) continue;
|
|
13
|
+
seen.add(normalized);
|
|
14
|
+
result.push(normalized);
|
|
15
|
+
}
|
|
16
|
+
return result;
|
|
17
|
+
};
|
|
18
|
+
var getDialogAgentIds = (dialogConfig) => {
|
|
19
|
+
if (!dialogConfig) return [];
|
|
20
|
+
const primaryAgentKey = normalizeAgentId(dialogConfig.primaryAgentKey);
|
|
21
|
+
if (Array.isArray(dialogConfig.cybots)) {
|
|
22
|
+
return dedupeAgentIds([primaryAgentKey, ...dialogConfig.cybots]);
|
|
23
|
+
}
|
|
24
|
+
if (primaryAgentKey) {
|
|
25
|
+
return [primaryAgentKey];
|
|
26
|
+
}
|
|
27
|
+
const legacyAgentId = normalizeAgentId(dialogConfig.llmId);
|
|
28
|
+
if (legacyAgentId) {
|
|
29
|
+
return [legacyAgentId];
|
|
30
|
+
}
|
|
31
|
+
return [];
|
|
32
|
+
};
|
|
33
|
+
var getPrimaryDialogAgentId = (dialogConfig) => getDialogAgentIds(dialogConfig)[0] ?? null;
|
|
34
|
+
var addDialogAgentIds = (existingAgentIds, nextAgentIds) => {
|
|
35
|
+
const merged = [...existingAgentIds, ...nextAgentIds];
|
|
36
|
+
return merged.filter((id, index) => merged.indexOf(id) === index);
|
|
37
|
+
};
|
|
38
|
+
var replacePrimaryDialogAgentId = (existingAgentIds, nextPrimaryAgentId) => [
|
|
39
|
+
nextPrimaryAgentId,
|
|
40
|
+
...existingAgentIds.filter((id) => id !== nextPrimaryAgentId)
|
|
41
|
+
];
|
|
42
|
+
var removeDialogAgentId = (existingAgentIds, agentIdToRemove) => existingAgentIds.filter((id) => id !== agentIdToRemove);
|
|
43
|
+
|
|
44
|
+
export {
|
|
45
|
+
getDialogAgentIds,
|
|
46
|
+
getPrimaryDialogAgentId,
|
|
47
|
+
addDialogAgentIds,
|
|
48
|
+
replacePrimaryDialogAgentId,
|
|
49
|
+
removeDialogAgentId
|
|
50
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// packages/agent-runtime/runtimeDecision.ts
|
|
2
|
+
function uniqueCapabilities(capabilities) {
|
|
3
|
+
return [...new Set(capabilities.filter(Boolean))];
|
|
4
|
+
}
|
|
5
|
+
function localMissingCapabilities(input) {
|
|
6
|
+
const missing = [...input.missingLocalCapabilities ?? []];
|
|
7
|
+
if (!input.hasLocalAgentConfig) missing.push("agent-config");
|
|
8
|
+
if (!input.hasLocalProvider) missing.push("provider");
|
|
9
|
+
if (!input.hasLocalPersistence) missing.push("persistence");
|
|
10
|
+
if (input.requiresServer) missing.push("server-required");
|
|
11
|
+
if (input.host === "web") missing.push("local-host-adapter");
|
|
12
|
+
return uniqueCapabilities(missing);
|
|
13
|
+
}
|
|
14
|
+
function resolveAgentRuntimeDecision(input) {
|
|
15
|
+
const requestedMode = input.requestedMode ?? "auto";
|
|
16
|
+
const missingLocalCapabilities = localMissingCapabilities(input);
|
|
17
|
+
const localRunnable = missingLocalCapabilities.length === 0;
|
|
18
|
+
if (requestedMode === "server") {
|
|
19
|
+
return {
|
|
20
|
+
mode: "server",
|
|
21
|
+
runnable: input.serverFallbackAvailable,
|
|
22
|
+
reason: input.serverFallbackAvailable ? "server runtime was requested" : "server runtime was requested but no server fallback is available",
|
|
23
|
+
missingLocalCapabilities,
|
|
24
|
+
syncAfterRun: false
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (requestedMode === "local") {
|
|
28
|
+
return {
|
|
29
|
+
mode: "local",
|
|
30
|
+
runnable: localRunnable,
|
|
31
|
+
reason: localRunnable ? "local runtime was requested and all local capabilities are available" : "local runtime was requested but local capabilities are missing",
|
|
32
|
+
missingLocalCapabilities,
|
|
33
|
+
syncAfterRun: localRunnable && Boolean(input.syncRequested)
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
if (localRunnable) {
|
|
37
|
+
return {
|
|
38
|
+
mode: "local",
|
|
39
|
+
runnable: true,
|
|
40
|
+
reason: "local runtime capabilities are available",
|
|
41
|
+
missingLocalCapabilities,
|
|
42
|
+
syncAfterRun: Boolean(input.syncRequested)
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
mode: "server",
|
|
47
|
+
runnable: input.serverFallbackAvailable,
|
|
48
|
+
reason: input.serverFallbackAvailable ? "local runtime capabilities are missing; using server fallback" : "local runtime capabilities are missing and no server fallback is available",
|
|
49
|
+
missingLocalCapabilities,
|
|
50
|
+
syncAfterRun: false
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export {
|
|
55
|
+
resolveAgentRuntimeDecision
|
|
56
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CLI_PROBE_BINARIES,
|
|
3
|
+
CliProviderQuotaError,
|
|
4
|
+
buildCliProcessEnv,
|
|
5
|
+
closeCliSession,
|
|
6
|
+
detectCliProviderQuotaLimit,
|
|
7
|
+
executeCli,
|
|
8
|
+
executeCliSessionTurn,
|
|
9
|
+
executeCliSessionTurnStreaming,
|
|
10
|
+
executeCliStreaming,
|
|
11
|
+
getCliSession,
|
|
12
|
+
isBufferedCliStreamingProvider,
|
|
13
|
+
materializeCliImageInputs,
|
|
14
|
+
startCliSession
|
|
15
|
+
} from "./chunk-CMKUBIGW.js";
|
|
16
|
+
import "./chunk-JBTJAPUF.js";
|
|
17
|
+
import {
|
|
18
|
+
buildCliPrompt
|
|
19
|
+
} from "./chunk-ATNTHIZI.js";
|
|
20
|
+
import "./chunk-4VNS5WPM.js";
|
|
21
|
+
export {
|
|
22
|
+
CLI_PROBE_BINARIES,
|
|
23
|
+
CliProviderQuotaError,
|
|
24
|
+
buildCliProcessEnv,
|
|
25
|
+
buildCliPrompt,
|
|
26
|
+
closeCliSession,
|
|
27
|
+
detectCliProviderQuotaLimit,
|
|
28
|
+
executeCli,
|
|
29
|
+
executeCliSessionTurn,
|
|
30
|
+
executeCliSessionTurnStreaming,
|
|
31
|
+
executeCliStreaming,
|
|
32
|
+
getCliSession,
|
|
33
|
+
isBufferedCliStreamingProvider,
|
|
34
|
+
materializeCliImageInputs,
|
|
35
|
+
startCliSession
|
|
36
|
+
};
|