nolo-cli 0.8.0-alpha.2 → 0.8.0-alpha.20
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-WRUCQIV5.js +205 -0
- package/action-R4M4ORGA.js +28 -0
- package/addContentAction-UYFFTEWJ.js +26 -0
- package/addDialogAgentAction-OT4XZAVP.js +68 -0
- package/agentDeleteCommand-5DD2IM3J.js +327 -0
- package/agentEmailCommands-IASM2YBQ.js +628 -0
- package/agentListCommands-I6KZYCIG.js +223 -0
- package/agentMachineCommands-OUP3YQP7.js +425 -0
- package/agentPullCommand-O2MTUAFR.js +122 -0
- package/agentRecordCommands-QKGE2JTA.js +96 -0
- package/agentRunCommand-TVZXUBQ5.js +114 -0
- package/agentRunControl-K4VKNEHF.js +57 -0
- package/agentRuntimeLocal-ZYEIPTY4.js +104 -0
- package/agentSlice-T4PMW7W6.js +42 -0
- package/authCommand-EB5JSOX5.js +581 -0
- package/authCommands-XPEHTKSM.js +35 -0
- package/chunk-2EHX7F5G.js +1948 -0
- package/chunk-2FTTDCD4.js +675 -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-4FBRSEV4.js +573 -0
- package/chunk-4IJYA27C.js +342 -0
- package/chunk-4QEWT7KD.js +933 -0
- package/chunk-4SN6J65J.js +38 -0
- package/chunk-4VNS5WPM.js +42 -0
- package/chunk-4ZDM73SD.js +34 -0
- package/chunk-5CS33IBL.js +301 -0
- package/chunk-5KLGBAAR.js +386 -0
- package/chunk-5MIDPSSK.js +206 -0
- package/chunk-5MMAK75Q.js +15 -0
- package/chunk-5W3VUFOX.js +34 -0
- package/chunk-63W5N6P3.js +150 -0
- package/chunk-6HYVJV7B.js +102 -0
- package/chunk-6WD3OOJS.js +20 -0
- package/chunk-7DAJ4AI4.js +191 -0
- package/chunk-7KCUSYT2.js +354 -0
- package/chunk-7T5PWAZN.js +171 -0
- package/chunk-AFON4QUU.js +112 -0
- package/chunk-AGFH73SK.js +239 -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-BCIOM4NZ.js +1078 -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-DWLEOOGR.js +8 -0
- package/chunk-DZ3XJVET.js +231 -0
- package/chunk-EHLHSX7R.js +1433 -0
- package/chunk-FM5IVZXO.js +4723 -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-GLYVN7EQ.js +238 -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-IDZTNRP2.js +85 -0
- package/chunk-IHBCLYEE.js +22310 -0
- package/chunk-IJGXKGXW.js +421 -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-K6BPOQLF.js +2052 -0
- package/chunk-K777STIO.js +478 -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-MNJDFJND.js +222 -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-OPZYGHUC.js +89 -0
- package/chunk-OWOHNGCN.js +50 -0
- package/chunk-P3PKED2I.js +962 -0
- package/chunk-PFTAG6DY.js +1939 -0
- package/chunk-PMKQGGGM.js +221 -0
- package/chunk-PP4S6RTL.js +175 -0
- package/chunk-QJ7FZNYN.js +939 -0
- package/chunk-QSJ3HFEF.js +8 -0
- package/chunk-RGIM3WLT.js +113 -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-TIMLUWQA.js +231 -0
- package/chunk-TISCADJH.js +807 -0
- package/chunk-U4TRT5V4.js +246 -0
- package/chunk-U6VC4MU4.js +8 -0
- package/chunk-UAD2WT54.js +64 -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-VVX233PH.js +482 -0
- package/chunk-W4NVOSFF.js +37 -0
- package/chunk-WI4XWASA.js +208 -0
- package/chunk-WWC7I6TA.js +8 -0
- package/chunk-WZSRQNQG.js +2587 -0
- package/chunk-XBROXIGL.js +3066 -0
- package/chunk-XENYHRUE.js +104 -0
- package/chunk-Y5GCAMGP.js +9 -0
- package/chunk-YN4XDB7B.js +9036 -0
- package/chunk-YPRZSPF3.js +148 -0
- package/chunk-Z4NR32XR.js +50 -0
- package/chunk-Z6EKEXJW.js +138 -0
- package/chunk-ZDRZMLKO.js +27339 -0
- package/chunk-ZNFJWEN4.js +56 -0
- package/cliExecutor-K3F7DMRO.js +36 -0
- package/clipboardy-BVE3LVEH.js +12001 -0
- package/createAgentAutomationAction-CCABEOM6.js +866 -0
- package/createDialogAction-YPKF5ITI.js +55 -0
- package/createPageAction-YEZ7EK5F.js +172 -0
- package/db-HCJ5PRB5.js +271 -0
- package/dbSlice-QPVZHBOE.js +60 -0
- package/deleteFile-SV5MS23W.js +41 -0
- package/dialogCommands-4IX4XIZE.js +63 -0
- package/dialogSlice-OVTO7QGW.js +148 -0
- package/docCreateCommands-SIL3NPGT.js +220 -0
- package/docDeleteCommands-7IOMLUS4.js +181 -0
- package/docReadCommands-FNFXUA5L.js +134 -0
- package/docStore-ZAYLW2HN.js +98 -0
- package/docUpdateCommands-X2HNDVUC.js +318 -0
- package/fetchMessages-KTNM7QAR.js +17 -0
- package/getPricing-3E6UNPKL.js +30 -0
- package/handleSendMessageAction-TZMZ4EP5.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-M4ZJZIMS.js +781 -0
- package/machineInfo-M6KB6HZN.js +10 -0
- package/machineWsRunDispatch-TPJAUGLP.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 -23
- package/read-EBMWX4Z6.js +17 -0
- package/readDocTool-2MWHSTQE.js +16 -0
- package/readlineWorkspace-OMCIU3WT.js +5682 -0
- package/removeDialogAgentAction-SNZ662NP.js +73 -0
- package/runAgentClientLoop-H6NGOUAM.js +293 -0
- package/runtimeDoctorCommands-LRHLPDRC.js +289 -0
- package/setDialogExtraReferencesAction-XDI2KM2N.js +60 -0
- package/setPrimaryDialogAgentAction-PYEC4N4Z.js +80 -0
- package/settingSlice-NOWHY2FK.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-QHBPICA2.js +149 -0
- package/streamAgentChatTurn-3XTBA2HN.js +4510 -0
- package/tableCommands-R5UCM63M.js +1286 -0
- package/toolApiClient-QI3YBNWB.js +26 -0
- package/tools-GHLZ3XD6.js +87 -0
- package/tuiSummaryLlmCaller-RV3THLZF.js +78 -0
- package/understanding-3CUQQ6SV.js +271 -0
- package/updateCommands-VOSPKXFF.js +31 -0
- package/updateDialogTitleAction-XA2OZTLP.js +188 -0
|
@@ -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,138 @@
|
|
|
1
|
+
import {
|
|
2
|
+
selectCurrentServer
|
|
3
|
+
} from "./chunk-K6BPOQLF.js";
|
|
4
|
+
import {
|
|
5
|
+
patch
|
|
6
|
+
} from "./chunk-TISCADJH.js";
|
|
7
|
+
import {
|
|
8
|
+
selectIdentityToken
|
|
9
|
+
} from "./chunk-XBROXIGL.js";
|
|
10
|
+
import {
|
|
11
|
+
getIsDesktopApp
|
|
12
|
+
} from "./chunk-WI4XWASA.js";
|
|
13
|
+
|
|
14
|
+
// packages/ai/agent/cliChatClient.ts
|
|
15
|
+
function getCliChatRequestConfig(thunkApi) {
|
|
16
|
+
const state = thunkApi.getState();
|
|
17
|
+
const currentServer = selectCurrentServer(state);
|
|
18
|
+
const token = selectIdentityToken(state);
|
|
19
|
+
if (!currentServer) throw new Error("\u65E0\u6CD5\u83B7\u53D6\u5F53\u524D\u670D\u52A1\u5668\u5730\u5740\u3002");
|
|
20
|
+
return { currentServer, token };
|
|
21
|
+
}
|
|
22
|
+
function resolveCliChatUrl(currentServer) {
|
|
23
|
+
if (getIsDesktopApp()) return "/api/cli/chat";
|
|
24
|
+
return `${currentServer}/api/cli/chat`;
|
|
25
|
+
}
|
|
26
|
+
async function postCliChat(thunkApi, body, signal) {
|
|
27
|
+
const { currentServer, token } = getCliChatRequestConfig(thunkApi);
|
|
28
|
+
return fetch(resolveCliChatUrl(currentServer), {
|
|
29
|
+
method: "POST",
|
|
30
|
+
headers: {
|
|
31
|
+
"Content-Type": "application/json",
|
|
32
|
+
...token ? { Authorization: `Bearer ${token}` } : {}
|
|
33
|
+
},
|
|
34
|
+
body: JSON.stringify(body),
|
|
35
|
+
signal
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
async function startCliChatSession(thunkApi, args) {
|
|
39
|
+
const response = await postCliChat(thunkApi, {
|
|
40
|
+
action: "start",
|
|
41
|
+
cliProvider: args.cliProvider,
|
|
42
|
+
model: args.model,
|
|
43
|
+
systemPrompt: args.systemPrompt,
|
|
44
|
+
reasoningEffort: args.reasoningEffort,
|
|
45
|
+
temperature: args.temperature,
|
|
46
|
+
topP: args.topP,
|
|
47
|
+
frequencyPenalty: args.frequencyPenalty,
|
|
48
|
+
presencePenalty: args.presencePenalty,
|
|
49
|
+
maxTokens: args.maxTokens,
|
|
50
|
+
enableThinking: args.enableThinking,
|
|
51
|
+
thinkingBudget: args.thinkingBudget
|
|
52
|
+
});
|
|
53
|
+
return response.json();
|
|
54
|
+
}
|
|
55
|
+
async function getCliChatSession(thunkApi, args) {
|
|
56
|
+
const response = await postCliChat(thunkApi, {
|
|
57
|
+
action: "get",
|
|
58
|
+
sessionId: args.sessionId
|
|
59
|
+
});
|
|
60
|
+
return response.json();
|
|
61
|
+
}
|
|
62
|
+
async function closeCliChatSession(thunkApi, args) {
|
|
63
|
+
const response = await postCliChat(thunkApi, {
|
|
64
|
+
action: "close",
|
|
65
|
+
sessionId: args.sessionId
|
|
66
|
+
});
|
|
67
|
+
return response.json();
|
|
68
|
+
}
|
|
69
|
+
function createCliChatTurnStream(thunkApi, args, signal) {
|
|
70
|
+
return postCliChat(
|
|
71
|
+
thunkApi,
|
|
72
|
+
args.sessionId ? {
|
|
73
|
+
action: "turn",
|
|
74
|
+
sessionId: args.sessionId,
|
|
75
|
+
prompt: args.prompt,
|
|
76
|
+
model: args.model,
|
|
77
|
+
reasoningEffort: args.reasoningEffort,
|
|
78
|
+
temperature: args.temperature,
|
|
79
|
+
topP: args.topP,
|
|
80
|
+
frequencyPenalty: args.frequencyPenalty,
|
|
81
|
+
presencePenalty: args.presencePenalty,
|
|
82
|
+
maxTokens: args.maxTokens,
|
|
83
|
+
enableThinking: args.enableThinking,
|
|
84
|
+
thinkingBudget: args.thinkingBudget
|
|
85
|
+
} : {
|
|
86
|
+
prompt: args.prompt,
|
|
87
|
+
model: args.model,
|
|
88
|
+
cliProvider: args.cliProvider,
|
|
89
|
+
systemPrompt: args.systemPrompt,
|
|
90
|
+
reasoningEffort: args.reasoningEffort,
|
|
91
|
+
temperature: args.temperature,
|
|
92
|
+
topP: args.topP,
|
|
93
|
+
frequencyPenalty: args.frequencyPenalty,
|
|
94
|
+
presencePenalty: args.presencePenalty,
|
|
95
|
+
maxTokens: args.maxTokens,
|
|
96
|
+
enableThinking: args.enableThinking,
|
|
97
|
+
thinkingBudget: args.thinkingBudget
|
|
98
|
+
},
|
|
99
|
+
signal
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// packages/chat/dialog/actions/cleanupCliSession.ts
|
|
104
|
+
async function cleanupCliSessionForDialog(thunkApi, dialogConfig) {
|
|
105
|
+
const cliSessionId = dialogConfig?.cliSessionId;
|
|
106
|
+
const dialogKey = dialogConfig?.dbKey;
|
|
107
|
+
if (!cliSessionId || !dialogKey) return;
|
|
108
|
+
try {
|
|
109
|
+
await closeCliChatSession(
|
|
110
|
+
{ getState: thunkApi.getState },
|
|
111
|
+
{ sessionId: cliSessionId }
|
|
112
|
+
);
|
|
113
|
+
} catch {
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
const patchResult = thunkApi.dispatch(
|
|
117
|
+
patch({
|
|
118
|
+
dbKey: dialogKey,
|
|
119
|
+
changes: {
|
|
120
|
+
cliSessionId: null
|
|
121
|
+
}
|
|
122
|
+
})
|
|
123
|
+
);
|
|
124
|
+
if (typeof patchResult?.unwrap === "function") {
|
|
125
|
+
await patchResult.unwrap();
|
|
126
|
+
} else {
|
|
127
|
+
await patchResult;
|
|
128
|
+
}
|
|
129
|
+
} catch {
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export {
|
|
134
|
+
startCliChatSession,
|
|
135
|
+
getCliChatSession,
|
|
136
|
+
createCliChatTurnStream,
|
|
137
|
+
cleanupCliSessionForDialog
|
|
138
|
+
};
|