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.
Files changed (188) hide show
  1. package/README.md +1 -1
  2. package/_executeModel-42U3VOVZ.js +205 -0
  3. package/action-TLI3V62L.js +28 -0
  4. package/addContentAction-57RSIIMR.js +26 -0
  5. package/addDialogAgentAction-G3VWEA6E.js +68 -0
  6. package/agentDeleteCommand-5DD2IM3J.js +327 -0
  7. package/agentEmailCommands-6FACJBU4.js +628 -0
  8. package/agentListCommands-I6KZYCIG.js +223 -0
  9. package/agentMachineCommands-VKLIGMZA.js +425 -0
  10. package/agentPullCommand-O2MTUAFR.js +122 -0
  11. package/agentRecordCommands-7TZICYDT.js +96 -0
  12. package/agentRunCommand-L4OM23KV.js +114 -0
  13. package/agentRunControl-K4VKNEHF.js +57 -0
  14. package/agentRuntimeLocal-ZYEIPTY4.js +104 -0
  15. package/agentSlice-BX7GXSNO.js +42 -0
  16. package/authCommand-EB5JSOX5.js +581 -0
  17. package/authCommands-XPEHTKSM.js +35 -0
  18. package/chunk-25LCXTML.js +175 -0
  19. package/chunk-2ECQG4YX.js +22296 -0
  20. package/chunk-2FTTDCD4.js +675 -0
  21. package/chunk-2JCXITPK.js +1078 -0
  22. package/chunk-3ASDTTEI.js +1774 -0
  23. package/chunk-3EUW3WEO.js +8 -0
  24. package/chunk-3LY4F7SV.js +9293 -0
  25. package/chunk-4CQLVGRV.js +50 -0
  26. package/chunk-4IJYA27C.js +342 -0
  27. package/chunk-4O3CARJ4.js +231 -0
  28. package/chunk-4QEWT7KD.js +933 -0
  29. package/chunk-4SN6J65J.js +38 -0
  30. package/chunk-4VNS5WPM.js +42 -0
  31. package/chunk-4XENYTF5.js +222 -0
  32. package/chunk-4ZDM73SD.js +34 -0
  33. package/chunk-5CS33IBL.js +301 -0
  34. package/chunk-5EFXE3O7.js +138 -0
  35. package/chunk-5KLGBAAR.js +386 -0
  36. package/chunk-5MIDPSSK.js +206 -0
  37. package/chunk-5MMAK75Q.js +15 -0
  38. package/chunk-63W5N6P3.js +150 -0
  39. package/chunk-6HYVJV7B.js +102 -0
  40. package/chunk-6KHNO3SK.js +1948 -0
  41. package/chunk-6WD3OOJS.js +20 -0
  42. package/chunk-7DAJ4AI4.js +191 -0
  43. package/chunk-7GNGZRLZ.js +1939 -0
  44. package/chunk-7KCUSYT2.js +354 -0
  45. package/chunk-7U44LYTR.js +238 -0
  46. package/chunk-AFON4QUU.js +112 -0
  47. package/chunk-AGFH73SK.js +239 -0
  48. package/chunk-AL2KDGR2.js +27339 -0
  49. package/chunk-AS4PVWA4.js +221 -0
  50. package/chunk-ATNTHIZI.js +13 -0
  51. package/chunk-AVMKZHBC.js +85 -0
  52. package/chunk-AZPCASRE.js +36 -0
  53. package/chunk-BBYVOSU2.js +792 -0
  54. package/chunk-C3RUNRHT.js +51 -0
  55. package/chunk-C4FTUXVF.js +146 -0
  56. package/chunk-CF2WZF4N.js +134 -0
  57. package/chunk-CF7PE763.js +10 -0
  58. package/chunk-CKOJQDKR.js +198 -0
  59. package/chunk-CMKUBIGW.js +1550 -0
  60. package/chunk-CWMSB67P.js +34 -0
  61. package/chunk-DCOA4QSN.js +105 -0
  62. package/chunk-DFFIZ25G.js +30 -0
  63. package/chunk-DSZUWUYB.js +478 -0
  64. package/chunk-DWLEOOGR.js +8 -0
  65. package/chunk-DZ3XJVET.js +231 -0
  66. package/chunk-EHLHSX7R.js +1433 -0
  67. package/chunk-ENOG22KJ.js +939 -0
  68. package/chunk-FSO5B7GH.js +171 -0
  69. package/chunk-FVYY6MCS.js +1447 -0
  70. package/chunk-G3SUCT4W.js +8 -0
  71. package/chunk-GAKEBQD6.js +30 -0
  72. package/chunk-GBRG75BQ.js +86 -0
  73. package/chunk-GU3PEVGZ.js +4723 -0
  74. package/chunk-H33743XH.js +25 -0
  75. package/chunk-HNMXYYJR.js +12 -0
  76. package/chunk-HNW7IJSK.js +71 -0
  77. package/chunk-I42VC5KR.js +15 -0
  78. package/chunk-I6XMPTMR.js +113 -0
  79. package/chunk-IDZTNRP2.js +85 -0
  80. package/chunk-ISNCLGUZ.js +146 -0
  81. package/chunk-IWX4UW2E.js +548 -0
  82. package/chunk-JBTJAPUF.js +35 -0
  83. package/chunk-JEXVIMYZ.js +55 -0
  84. package/chunk-JRKKFRAV.js +537 -0
  85. package/chunk-JZPBVBIY.js +94 -0
  86. package/chunk-KKY4B2Q2.js +21 -0
  87. package/chunk-KQHGZWSV.js +63 -0
  88. package/chunk-KUG52IAP.js +8 -0
  89. package/chunk-KX6YBIHG.js +8 -0
  90. package/chunk-LCBAMY2M.js +60 -0
  91. package/chunk-LM6IYQ3F.js +16 -0
  92. package/chunk-LTRXGFMS.js +83 -0
  93. package/chunk-M76ECQRD.js +13658 -0
  94. package/chunk-MRC4Q34M.js +188 -0
  95. package/chunk-MTU75CZ2.js +91 -0
  96. package/chunk-N54XAP77.js +19 -0
  97. package/chunk-O2ZNTTET.js +3272 -0
  98. package/chunk-O4BU24WZ.js +3212 -0
  99. package/chunk-OLZBQWZU.js +6 -0
  100. package/chunk-OOSFSFMA.js +271 -0
  101. package/chunk-OPZYGHUC.js +89 -0
  102. package/chunk-OWOHNGCN.js +50 -0
  103. package/chunk-P3PKED2I.js +962 -0
  104. package/chunk-QSJ3HFEF.js +8 -0
  105. package/chunk-RCSJFQPB.js +9036 -0
  106. package/chunk-RL776AGR.js +190 -0
  107. package/chunk-ROWQEJRP.js +139 -0
  108. package/chunk-S7Z2HMCN.js +25 -0
  109. package/chunk-SDJDLO5W.js +628 -0
  110. package/chunk-SOTZ6RDN.js +69 -0
  111. package/chunk-TILFE6LV.js +381 -0
  112. package/chunk-U4TRT5V4.js +246 -0
  113. package/chunk-U6VC4MU4.js +8 -0
  114. package/chunk-UAD2WT54.js +64 -0
  115. package/chunk-UB6SN4NJ.js +421 -0
  116. package/chunk-URUUZLPA.js +807 -0
  117. package/chunk-UTLZINAP.js +3066 -0
  118. package/chunk-VC6OZXO5.js +298 -0
  119. package/chunk-VF4K2QE6.js +21 -0
  120. package/chunk-VHBWHNVT.js +59 -0
  121. package/chunk-VIDPVFP3.js +20 -0
  122. package/chunk-VP4WJWKW.js +8882 -0
  123. package/chunk-VUW5FBDB.js +573 -0
  124. package/chunk-VVX233PH.js +482 -0
  125. package/chunk-VX3SXJ3N.js +2052 -0
  126. package/chunk-W4NVOSFF.js +37 -0
  127. package/chunk-WWC7I6TA.js +8 -0
  128. package/chunk-WZSRQNQG.js +2587 -0
  129. package/chunk-XBUBEFNX.js +34 -0
  130. package/chunk-XENYHRUE.js +104 -0
  131. package/chunk-Y5GCAMGP.js +9 -0
  132. package/chunk-YPRZSPF3.js +148 -0
  133. package/chunk-Z4NR32XR.js +50 -0
  134. package/chunk-ZNFJWEN4.js +56 -0
  135. package/cliExecutor-K3F7DMRO.js +36 -0
  136. package/clipboardy-BVE3LVEH.js +12001 -0
  137. package/createAgentAutomationAction-RJF3N2QY.js +866 -0
  138. package/createDialogAction-DRSPS6CE.js +55 -0
  139. package/createPageAction-6B2WMNO3.js +172 -0
  140. package/db-HCJ5PRB5.js +271 -0
  141. package/dbSlice-Q3TM2FJV.js +60 -0
  142. package/deleteFile-OW53A6BX.js +41 -0
  143. package/dialogCommands-4IX4XIZE.js +63 -0
  144. package/dialogSlice-3M7KX2TX.js +148 -0
  145. package/docCreateCommands-SIL3NPGT.js +220 -0
  146. package/docDeleteCommands-7IOMLUS4.js +181 -0
  147. package/docReadCommands-FNFXUA5L.js +134 -0
  148. package/docStore-SV7E34D4.js +98 -0
  149. package/docUpdateCommands-X2HNDVUC.js +318 -0
  150. package/fetchMessages-KTNM7QAR.js +17 -0
  151. package/getPricing-3E6UNPKL.js +30 -0
  152. package/handleSendMessageAction-JYETO5RZ.js +185 -0
  153. package/index.js +188 -112958
  154. package/lib-FYYBQIXS.js +19839 -0
  155. package/localDialogRead-2VRI24F4.js +26 -0
  156. package/localFirstLog-DHNOY2NA.js +19 -0
  157. package/localRuntimeAuthority-TEGCOWX4.js +471 -0
  158. package/localRuntimeDb-LGDF6FQP.js +12 -0
  159. package/machineCommands-RIO3RP5Q.js +781 -0
  160. package/machineInfo-M6KB6HZN.js +10 -0
  161. package/machineWsRunDispatch-W7UYLGB5.js +112 -0
  162. package/memoryCommands-O4MIPIWQ.js +476 -0
  163. package/models-4OPOOLFS.js +9 -0
  164. package/offlineMarxistsAgentCommand-BCPJITJL.js +242 -0
  165. package/package.json +4 -24
  166. package/read-GW7ZEI23.js +17 -0
  167. package/readDocTool-HUFU6OCT.js +16 -0
  168. package/readlineWorkspace-27JR7WPW.js +5682 -0
  169. package/removeDialogAgentAction-CXKR4NJI.js +73 -0
  170. package/runAgentClientLoop-HZFAPJHS.js +293 -0
  171. package/runtimeDoctorCommands-LRHLPDRC.js +289 -0
  172. package/setDialogExtraReferencesAction-6RKUSXHX.js +60 -0
  173. package/setPrimaryDialogAgentAction-T3UTBEFG.js +80 -0
  174. package/settingSlice-IVKXJXMG.js +199 -0
  175. package/skillDiscovery-UGSQGX2U.js +16 -0
  176. package/skillSummaryMarker-42HKSXYY.js +9 -0
  177. package/slateToRenderMarkdown-Y5IYN73U.js +7 -0
  178. package/slateUtils-2M7MUTWX.js +19 -0
  179. package/spaceCommands-E7VOF4LO.js +450 -0
  180. package/spaceSlice-TSVROA5U.js +149 -0
  181. package/streamAgentChatTurn-3C5RQZJF.js +4510 -0
  182. package/tableCommands-O7O2LBEG.js +1286 -0
  183. package/toolApiClient-QI3YBNWB.js +26 -0
  184. package/tools-EQDEKR6N.js +87 -0
  185. package/tuiSummaryLlmCaller-RV3THLZF.js +78 -0
  186. package/understanding-3CUQQ6SV.js +271 -0
  187. package/updateCommands-VOSPKXFF.js +31 -0
  188. 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
+ };