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.
Files changed (188) hide show
  1. package/README.md +1 -1
  2. package/_executeModel-WRUCQIV5.js +205 -0
  3. package/action-R4M4ORGA.js +28 -0
  4. package/addContentAction-UYFFTEWJ.js +26 -0
  5. package/addDialogAgentAction-OT4XZAVP.js +68 -0
  6. package/agentDeleteCommand-5DD2IM3J.js +327 -0
  7. package/agentEmailCommands-IASM2YBQ.js +628 -0
  8. package/agentListCommands-I6KZYCIG.js +223 -0
  9. package/agentMachineCommands-OUP3YQP7.js +425 -0
  10. package/agentPullCommand-O2MTUAFR.js +122 -0
  11. package/agentRecordCommands-QKGE2JTA.js +96 -0
  12. package/agentRunCommand-TVZXUBQ5.js +114 -0
  13. package/agentRunControl-K4VKNEHF.js +57 -0
  14. package/agentRuntimeLocal-ZYEIPTY4.js +104 -0
  15. package/agentSlice-T4PMW7W6.js +42 -0
  16. package/authCommand-EB5JSOX5.js +581 -0
  17. package/authCommands-XPEHTKSM.js +35 -0
  18. package/chunk-2EHX7F5G.js +1948 -0
  19. package/chunk-2FTTDCD4.js +675 -0
  20. package/chunk-3ASDTTEI.js +1774 -0
  21. package/chunk-3EUW3WEO.js +8 -0
  22. package/chunk-3LY4F7SV.js +9293 -0
  23. package/chunk-4CQLVGRV.js +50 -0
  24. package/chunk-4FBRSEV4.js +573 -0
  25. package/chunk-4IJYA27C.js +342 -0
  26. package/chunk-4QEWT7KD.js +933 -0
  27. package/chunk-4SN6J65J.js +38 -0
  28. package/chunk-4VNS5WPM.js +42 -0
  29. package/chunk-4ZDM73SD.js +34 -0
  30. package/chunk-5CS33IBL.js +301 -0
  31. package/chunk-5KLGBAAR.js +386 -0
  32. package/chunk-5MIDPSSK.js +206 -0
  33. package/chunk-5MMAK75Q.js +15 -0
  34. package/chunk-5W3VUFOX.js +34 -0
  35. package/chunk-63W5N6P3.js +150 -0
  36. package/chunk-6HYVJV7B.js +102 -0
  37. package/chunk-6WD3OOJS.js +20 -0
  38. package/chunk-7DAJ4AI4.js +191 -0
  39. package/chunk-7KCUSYT2.js +354 -0
  40. package/chunk-7T5PWAZN.js +171 -0
  41. package/chunk-AFON4QUU.js +112 -0
  42. package/chunk-AGFH73SK.js +239 -0
  43. package/chunk-ATNTHIZI.js +13 -0
  44. package/chunk-AVMKZHBC.js +85 -0
  45. package/chunk-AZPCASRE.js +36 -0
  46. package/chunk-BBYVOSU2.js +792 -0
  47. package/chunk-BCIOM4NZ.js +1078 -0
  48. package/chunk-C3RUNRHT.js +51 -0
  49. package/chunk-C4FTUXVF.js +146 -0
  50. package/chunk-CF2WZF4N.js +134 -0
  51. package/chunk-CF7PE763.js +10 -0
  52. package/chunk-CKOJQDKR.js +198 -0
  53. package/chunk-CMKUBIGW.js +1550 -0
  54. package/chunk-CWMSB67P.js +34 -0
  55. package/chunk-DCOA4QSN.js +105 -0
  56. package/chunk-DFFIZ25G.js +30 -0
  57. package/chunk-DWLEOOGR.js +8 -0
  58. package/chunk-DZ3XJVET.js +231 -0
  59. package/chunk-EHLHSX7R.js +1433 -0
  60. package/chunk-FM5IVZXO.js +4723 -0
  61. package/chunk-FVYY6MCS.js +1447 -0
  62. package/chunk-G3SUCT4W.js +8 -0
  63. package/chunk-GAKEBQD6.js +30 -0
  64. package/chunk-GBRG75BQ.js +86 -0
  65. package/chunk-GLYVN7EQ.js +238 -0
  66. package/chunk-H33743XH.js +25 -0
  67. package/chunk-HNMXYYJR.js +12 -0
  68. package/chunk-HNW7IJSK.js +71 -0
  69. package/chunk-I42VC5KR.js +15 -0
  70. package/chunk-IDZTNRP2.js +85 -0
  71. package/chunk-IHBCLYEE.js +22310 -0
  72. package/chunk-IJGXKGXW.js +421 -0
  73. package/chunk-ISNCLGUZ.js +146 -0
  74. package/chunk-IWX4UW2E.js +548 -0
  75. package/chunk-JBTJAPUF.js +35 -0
  76. package/chunk-JEXVIMYZ.js +55 -0
  77. package/chunk-JRKKFRAV.js +537 -0
  78. package/chunk-JZPBVBIY.js +94 -0
  79. package/chunk-K6BPOQLF.js +2052 -0
  80. package/chunk-K777STIO.js +478 -0
  81. package/chunk-KKY4B2Q2.js +21 -0
  82. package/chunk-KQHGZWSV.js +63 -0
  83. package/chunk-KUG52IAP.js +8 -0
  84. package/chunk-KX6YBIHG.js +8 -0
  85. package/chunk-LCBAMY2M.js +60 -0
  86. package/chunk-LM6IYQ3F.js +16 -0
  87. package/chunk-LTRXGFMS.js +83 -0
  88. package/chunk-M76ECQRD.js +13658 -0
  89. package/chunk-MNJDFJND.js +222 -0
  90. package/chunk-MRC4Q34M.js +188 -0
  91. package/chunk-MTU75CZ2.js +91 -0
  92. package/chunk-N54XAP77.js +19 -0
  93. package/chunk-O2ZNTTET.js +3272 -0
  94. package/chunk-O4BU24WZ.js +3212 -0
  95. package/chunk-OLZBQWZU.js +6 -0
  96. package/chunk-OPZYGHUC.js +89 -0
  97. package/chunk-OWOHNGCN.js +50 -0
  98. package/chunk-P3PKED2I.js +962 -0
  99. package/chunk-PFTAG6DY.js +1939 -0
  100. package/chunk-PMKQGGGM.js +221 -0
  101. package/chunk-PP4S6RTL.js +175 -0
  102. package/chunk-QJ7FZNYN.js +939 -0
  103. package/chunk-QSJ3HFEF.js +8 -0
  104. package/chunk-RGIM3WLT.js +113 -0
  105. package/chunk-RL776AGR.js +190 -0
  106. package/chunk-ROWQEJRP.js +139 -0
  107. package/chunk-S7Z2HMCN.js +25 -0
  108. package/chunk-SDJDLO5W.js +628 -0
  109. package/chunk-SOTZ6RDN.js +69 -0
  110. package/chunk-TILFE6LV.js +381 -0
  111. package/chunk-TIMLUWQA.js +231 -0
  112. package/chunk-TISCADJH.js +807 -0
  113. package/chunk-U4TRT5V4.js +246 -0
  114. package/chunk-U6VC4MU4.js +8 -0
  115. package/chunk-UAD2WT54.js +64 -0
  116. package/chunk-VC6OZXO5.js +298 -0
  117. package/chunk-VF4K2QE6.js +21 -0
  118. package/chunk-VHBWHNVT.js +59 -0
  119. package/chunk-VIDPVFP3.js +20 -0
  120. package/chunk-VP4WJWKW.js +8882 -0
  121. package/chunk-VVX233PH.js +482 -0
  122. package/chunk-W4NVOSFF.js +37 -0
  123. package/chunk-WI4XWASA.js +208 -0
  124. package/chunk-WWC7I6TA.js +8 -0
  125. package/chunk-WZSRQNQG.js +2587 -0
  126. package/chunk-XBROXIGL.js +3066 -0
  127. package/chunk-XENYHRUE.js +104 -0
  128. package/chunk-Y5GCAMGP.js +9 -0
  129. package/chunk-YN4XDB7B.js +9036 -0
  130. package/chunk-YPRZSPF3.js +148 -0
  131. package/chunk-Z4NR32XR.js +50 -0
  132. package/chunk-Z6EKEXJW.js +138 -0
  133. package/chunk-ZDRZMLKO.js +27339 -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-CCABEOM6.js +866 -0
  138. package/createDialogAction-YPKF5ITI.js +55 -0
  139. package/createPageAction-YEZ7EK5F.js +172 -0
  140. package/db-HCJ5PRB5.js +271 -0
  141. package/dbSlice-QPVZHBOE.js +60 -0
  142. package/deleteFile-SV5MS23W.js +41 -0
  143. package/dialogCommands-4IX4XIZE.js +63 -0
  144. package/dialogSlice-OVTO7QGW.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-ZAYLW2HN.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-TZMZ4EP5.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-M4ZJZIMS.js +781 -0
  160. package/machineInfo-M6KB6HZN.js +10 -0
  161. package/machineWsRunDispatch-TPJAUGLP.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 -23
  166. package/read-EBMWX4Z6.js +17 -0
  167. package/readDocTool-2MWHSTQE.js +16 -0
  168. package/readlineWorkspace-OMCIU3WT.js +5682 -0
  169. package/removeDialogAgentAction-SNZ662NP.js +73 -0
  170. package/runAgentClientLoop-H6NGOUAM.js +293 -0
  171. package/runtimeDoctorCommands-LRHLPDRC.js +289 -0
  172. package/setDialogExtraReferencesAction-XDI2KM2N.js +60 -0
  173. package/setPrimaryDialogAgentAction-PYEC4N4Z.js +80 -0
  174. package/settingSlice-NOWHY2FK.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-QHBPICA2.js +149 -0
  181. package/streamAgentChatTurn-3XTBA2HN.js +4510 -0
  182. package/tableCommands-R5UCM63M.js +1286 -0
  183. package/toolApiClient-QI3YBNWB.js +26 -0
  184. package/tools-GHLZ3XD6.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-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
+ };