nolo-cli 0.72.0-alpha.1 → 0.74.0-alpha.1

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 (38) hide show
  1. package/{_executeModel-TKD22VDA.js → _executeModel-YEVZAJYX.js} +11 -11
  2. package/{agentEmailCommands-G53VVKIL.js → agentEmailCommands-HQT4EUOA.js} +9 -9
  3. package/{agentMachineCommands-A7D55KN2.js → agentMachineCommands-3TR7DVYO.js} +1 -1
  4. package/{agentRecordCommands-UVU5UPJB.js → agentRecordCommands-TRUY7Z6N.js} +9 -9
  5. package/{agentRunCommand-PDKUP3L4.js → agentRunCommand-EHJOESHA.js} +9 -9
  6. package/{agentSlice-FZBFYKP3.js → agentSlice-RRZS2UII.js} +1 -1
  7. package/{chatQueueReduxAdapter-E2D4NR2W.js → chatQueueReduxAdapter-LSBTGZW2.js} +2 -2
  8. package/{chunk-JWXTOIGR.js → chunk-2JCTE5UN.js} +2 -2
  9. package/{chunk-ZDB5QFH4.js → chunk-57VRXRLF.js} +1 -1
  10. package/{chunk-I5O24WHB.js → chunk-AWPU7GXU.js} +2 -2
  11. package/{chunk-U4N7NIN3.js → chunk-CS36XM4N.js} +4 -4
  12. package/{chunk-S2RB4LMB.js → chunk-DFY6PUV4.js} +5 -5
  13. package/{chunk-EDKF7RX4.js → chunk-EOARMOVD.js} +2 -0
  14. package/{chunk-4NI7LU7J.js → chunk-FARB62OB.js} +5573 -342
  15. package/{chunk-AOKRQAUQ.js → chunk-I4UWPYBH.js} +2 -2
  16. package/{chunk-S4IVP3JA.js → chunk-OH5WRY7G.js} +7 -3
  17. package/{chunk-7GCIXOQA.js → chunk-OXY5PKLG.js} +1 -1
  18. package/{chunk-R5NCDOHB.js → chunk-QBA5KMJI.js} +8 -8
  19. package/{chunk-RVCBKVIR.js → chunk-TI4CCL34.js} +3 -3
  20. package/{chunk-3LBE76GR.js → chunk-VOEW2KF3.js} +52 -16
  21. package/{chunk-R4XZMDRV.js → chunk-XGZM6BTX.js} +1 -1
  22. package/{chunk-SV63E2UZ.js → chunk-XPQJXIF5.js} +50 -4
  23. package/{contentThunks-QLAU2LGJ.js → contentThunks-476Y6CFR.js} +3 -3
  24. package/{createAgentAutomationAction-JUSLLNYE.js → createAgentAutomationAction-DN4SFTP5.js} +3 -3
  25. package/{createDialogAction-B52IPGBY.js → createDialogAction-2GS4JCMU.js} +4 -4
  26. package/{createPageAction-ACAIWRDQ.js → createPageAction-44WTUMZ5.js} +3 -3
  27. package/{dialogSlice-RM3EW5AO.js → dialogSlice-7HEVCJFT.js} +2 -2
  28. package/{docStore-Q45M4B2I.js → docStore-LJ7KNKFB.js} +1 -1
  29. package/{handleSendMessageAction-I6KFXKDM.js → handleSendMessageAction-ETA5QZIN.js} +2 -2
  30. package/index.js +15 -15
  31. package/{machineCommands-QEYH5J5E.js → machineCommands-INAP62WH.js} +9 -9
  32. package/{machineWsRunDispatch-MFYQADTQ.js → machineWsRunDispatch-MT7VRNKX.js} +9 -9
  33. package/package.json +1 -1
  34. package/{readlineWorkspace-WQZX3WSK.js → readlineWorkspace-5TV6ES57.js} +10 -10
  35. package/{runAgentClientLoop-SLKSZWCS.js → runAgentClientLoop-2PGZSCET.js} +9 -9
  36. package/{streamAgentChatTurn-FLA6GTFJ.js → streamAgentChatTurn-I6FUM6RV.js} +10 -10
  37. package/{tools-NA2SK5QX.js → tools-KU4X5HGZ.js} +6 -6
  38. package/{updateDialogTitleAction-55Q3R6RJ.js → updateDialogTitleAction-E3SNB75W.js} +3 -3
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  toolRegistry
3
- } from "./chunk-R5NCDOHB.js";
3
+ } from "./chunk-QBA5KMJI.js";
4
4
  import {
5
5
  i18n_default
6
- } from "./chunk-3LBE76GR.js";
6
+ } from "./chunk-VOEW2KF3.js";
7
7
  import {
8
8
  canonicalizeToolNames
9
9
  } from "./chunk-O6OSWFZQ.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createCliLocalRuntimeAdapter,
3
3
  summarizeEndpoint
4
- } from "./chunk-SV63E2UZ.js";
4
+ } from "./chunk-XPQJXIF5.js";
5
5
  import {
6
6
  clipMultilineText
7
- } from "./chunk-R5NCDOHB.js";
7
+ } from "./chunk-QBA5KMJI.js";
8
8
  import {
9
9
  runLocalAgentTurn
10
10
  } from "./chunk-CJ23A7U4.js";
@@ -141,8 +141,12 @@ async function runGit(args, cwd, options = {}) {
141
141
  stderr: "pipe",
142
142
  stdin: "ignore"
143
143
  });
144
- const [stdout, exitCode] = await Promise.all([
144
+ const [stdout, , exitCode] = await Promise.all([
145
145
  readPipeText(proc.stdout),
146
+ // git 在非仓库目录对 diff 系子命令会向 stderr 打印整段 usage(数十 KB):
147
+ // 不消费 stderr 会让 git 阻塞在写满的 stderr 管道上永不退出(bun:child_process),
148
+ // proc.exited 随之永不 resolve——connector 收尾整体挂死(2026-09-16 实测)。
149
+ readPipeText(proc.stderr),
146
150
  proc.exited
147
151
  ]);
148
152
  if (exitCode !== 0) return null;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  clearCliLocalRuntimePreparedAgentCache
3
- } from "./chunk-SV63E2UZ.js";
3
+ } from "./chunk-XPQJXIF5.js";
4
4
  import {
5
5
  getReadableCliDb
6
6
  } from "./chunk-RXX4GDIH.js";
@@ -81,14 +81,14 @@ import {
81
81
  } from "./chunk-VF4K2QE6.js";
82
82
  import {
83
83
  createDocState
84
- } from "./chunk-I5O24WHB.js";
84
+ } from "./chunk-AWPU7GXU.js";
85
85
  import {
86
86
  BUILTIN_OBJECT_SKILL_IDS,
87
87
  buildBuiltinObjectSkillConfig,
88
88
  buildBuiltinObjectSkillDbKey,
89
89
  buildBuiltinObjectSkillPageContent,
90
90
  createDialogAction
91
- } from "./chunk-JWXTOIGR.js";
91
+ } from "./chunk-2JCTE5UN.js";
92
92
  import {
93
93
  DEFAULT_COLLAPSED_CATEGORIES,
94
94
  addContentToSpace,
@@ -106,7 +106,7 @@ import {
106
106
  updateContentCategory,
107
107
  updateContentTitle,
108
108
  writeStoredCollapsedCategories
109
- } from "./chunk-R4XZMDRV.js";
109
+ } from "./chunk-XGZM6BTX.js";
110
110
  import {
111
111
  getCurrentSpaceId,
112
112
  getCurrentSpaceIdRaw,
@@ -128,14 +128,14 @@ import {
128
128
  selectMsgById,
129
129
  uiAskChoiceFunc,
130
130
  uiAskChoiceFunctionSchema
131
- } from "./chunk-3LBE76GR.js";
131
+ } from "./chunk-VOEW2KF3.js";
132
132
  import {
133
133
  createAgent,
134
134
  deleteServerSyncedCredential,
135
135
  runLlm,
136
136
  streamAgentChatTurn,
137
137
  updateAgent
138
- } from "./chunk-RVCBKVIR.js";
138
+ } from "./chunk-TI4CCL34.js";
139
139
  import {
140
140
  getActiveDialogKey,
141
141
  selectCurrentDialogKey,
@@ -4672,7 +4672,7 @@ async function deleteDialogsFunc(args, thunkApi) {
4672
4672
  const deletedDialogIds = [];
4673
4673
  const deletedDialogKeys = [];
4674
4674
  const failures = [];
4675
- const { deleteDialog: deleteDialog2 } = await import("./dialogSlice-RM3EW5AO.js");
4675
+ const { deleteDialog: deleteDialog2 } = await import("./dialogSlice-7HEVCJFT.js");
4676
4676
  for (const target of targets) {
4677
4677
  try {
4678
4678
  await thunkApi.dispatch(deleteDialog2(target.dbKey)).unwrap();
@@ -15533,7 +15533,7 @@ var executeToolRun = createAsyncThunk(
15533
15533
  if (!executionInput) {
15534
15534
  throw new Error(`ToolRun ${id} has no input to execute with.`);
15535
15535
  }
15536
- const { findToolExecutor: findToolExecutor2 } = await import("./tools-NA2SK5QX.js");
15536
+ const { findToolExecutor: findToolExecutor2 } = await import("./tools-KU4X5HGZ.js");
15537
15537
  const { executor } = findToolExecutor2(run.toolName);
15538
15538
  toolRunStarted({
15539
15539
  id: run.id,
@@ -18040,7 +18040,7 @@ async function updateDocFunc(args, thunkApi) {
18040
18040
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
18041
18041
  };
18042
18042
  await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
18043
- const { getDocState, applyExternalDocUpdate } = await import("./docStore-Q45M4B2I.js");
18043
+ const { getDocState, applyExternalDocUpdate } = await import("./docStore-LJ7KNKFB.js");
18044
18044
  if (getDocState().pageKey === id) {
18045
18045
  applyExternalDocUpdate({
18046
18046
  slateData: finalSlateData,
@@ -304,7 +304,7 @@ var slice = createSliceWithThunks({
304
304
  const overrides = {};
305
305
  if (args.systemPromptOverride !== void 0) overrides.prompt = args.systemPromptOverride;
306
306
  if (args.toolsOverride !== void 0) overrides.tools = args.toolsOverride;
307
- const { _executeModel } = await import("./_executeModel-TKD22VDA.js");
307
+ const { _executeModel } = await import("./_executeModel-YEVZAJYX.js");
308
308
  return _executeModel(
309
309
  {
310
310
  isStreaming: args.isStreaming ?? false,
@@ -325,7 +325,7 @@ var slice = createSliceWithThunks({
325
325
  * - 循环直到无工具调用或触发其他运行时停止条件
326
326
  */
327
327
  runAgent: create.asyncThunk(async (args, thunkApi) => {
328
- const { runAgentClientLoop } = await import("./runAgentClientLoop-SLKSZWCS.js");
328
+ const { runAgentClientLoop } = await import("./runAgentClientLoop-2PGZSCET.js");
329
329
  const { content: loopContent, toolCallCount } = await runAgentClientLoop(
330
330
  {
331
331
  agentKey: args.agentKey,
@@ -341,7 +341,7 @@ var slice = createSliceWithThunks({
341
341
  * 聊天轮次流式 Agent 调用
342
342
  */
343
343
  streamAgentChatTurn: create.asyncThunk(async (args, thunkApi) => {
344
- const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-FLA6GTFJ.js");
344
+ const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-I6FUM6RV.js");
345
345
  return streamAgentChatTurnHandler(args, thunkApi);
346
346
  }),
347
347
  /**
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-AGGIDPCZ.js";
14
14
  import {
15
15
  runLlm
16
- } from "./chunk-RVCBKVIR.js";
16
+ } from "./chunk-TI4CCL34.js";
17
17
  import {
18
18
  cleanupCliSessionForDialog
19
19
  } from "./chunk-BJCWNHVU.js";
@@ -13760,7 +13760,7 @@ var privacy_locale_default = {
13760
13760
  translation: {
13761
13761
  privacy: {
13762
13762
  title: "Privacy Policy",
13763
- lastUpdated: "Last updated: August 24, 2026",
13763
+ lastUpdated: "Last updated: September 16, 2026",
13764
13764
  intro: 'Welcome to Nolo (hereinafter referred to as "we" or "our"). We take your privacy and data security very seriously. This Privacy Policy outlines how we handle and protect your personal information.',
13765
13765
  section1: {
13766
13766
  title: "1. Information We Collect",
@@ -13790,8 +13790,17 @@ var privacy_locale_default = {
13790
13790
  title: "5. User Rights",
13791
13791
  desc: "You retain full rights to access, export, rectify, or request the deletion of your account and personal data at any time by contacting us."
13792
13792
  },
13793
+ browserExtension: {
13794
+ title: "6. Browser Extension (Nolo Browser Connector)",
13795
+ desc: "The optional Nolo Browser Connector extension lets the Nolo Desktop app on the same computer drive the Chrome tabs you ask about. For those tabs only, it processes:",
13796
+ page: "Page content: visible text, interactive elements, and the value of visible non-password fields, used to act and to verify that typing worked.",
13797
+ debug: "Debug data: console messages and network request metadata (URL, method, resource type) for a tab you are debugging, plus a screenshot when one is requested.",
13798
+ tabs: "Tab metadata: id, title, URL, and whether the connector opened the tab.",
13799
+ local: "This data goes to the Nolo Desktop app over a token-protected connection on 127.0.0.1. The extension does not send data to our servers, has no analytics, never reads cookies, passwords, the Chrome profile database or session stores, and keeps nothing beyond the current browser session (buffers are capped; element references expire after two minutes).",
13800
+ irreversible: "Irreversible actions such as payments, sending, deleting, publishing or permission changes are refused: those steps stay with you."
13801
+ },
13793
13802
  section6: {
13794
- title: "6. Contact Us",
13803
+ title: "7. Contact Us",
13795
13804
  desc: "For any questions or privacy inquiries, please contact us at s@nolotus.com (Brand: Nolo)."
13796
13805
  }
13797
13806
  }
@@ -13801,7 +13810,7 @@ var privacy_locale_default = {
13801
13810
  translation: {
13802
13811
  privacy: {
13803
13812
  title: "\u9690\u79C1\u653F\u7B56 (Privacy Policy)",
13804
- lastUpdated: "\u6700\u540E\u66F4\u65B0\u65E5\u671F\uFF1A2026\u5E748\u670824\u65E5",
13813
+ lastUpdated: "\u6700\u540E\u66F4\u65B0\u65E5\u671F\uFF1A2026\u5E749\u670816\u65E5",
13805
13814
  intro: "\u6B22\u8FCE\u4F7F\u7528 Nolo\uFF08\u4EE5\u4E0B\u7B80\u79F0\u201C\u6211\u4EEC\u201D\uFF09\u3002\u6211\u4EEC\u9AD8\u5EA6\u91CD\u89C6\u60A8\u7684\u9690\u79C1\u4E0E\u4E2A\u4EBA\u4FE1\u606F\u5B89\u5168\u3002\u672C\u9690\u79C1\u653F\u7B56\u8BF4\u660E\u6211\u4EEC\u5728\u60A8\u4F7F\u7528\u672C\u670D\u52A1\u65F6\u5982\u4F55\u5904\u7406\u4E0E\u4FDD\u62A4\u60A8\u7684\u4FE1\u606F\u3002",
13806
13815
  section1: {
13807
13816
  title: "1. \u6211\u4EEC\u6536\u96C6\u7684\u4FE1\u606F",
@@ -13831,8 +13840,17 @@ var privacy_locale_default = {
13831
13840
  title: "5. \u60A8\u7684\u6570\u636E\u6743\u5229",
13832
13841
  desc: "\u60A8\u6709\u6743\u968F\u65F6\u8054\u7CFB\u6211\u4EEC\u67E5\u8BE2\u3001\u66F4\u6B63\u3001\u5BFC\u51FA\u6216\u7533\u8BF7\u5220\u9664\u60A8\u7684\u4E2A\u4EBA\u6570\u636E\u53CA\u6CE8\u9500\u8D26\u6237\u3002"
13833
13842
  },
13843
+ browserExtension: {
13844
+ title: "6. \u6D4F\u89C8\u5668\u6269\u5C55\uFF08Nolo Browser Connector\uFF09",
13845
+ desc: "\u53EF\u9009\u7684 Nolo Browser Connector \u6269\u5C55\u7528\u4E8E\u8BA9\u540C\u4E00\u53F0\u7535\u8111\u4E0A\u7684 Nolo Desktop \u5E94\u7528\u64CD\u4F5C\u4F60\u6307\u5B9A\u7684 Chrome \u6807\u7B7E\u9875\u3002\u4EC5\u9488\u5BF9\u8FD9\u4E9B\u6807\u7B7E\u9875\uFF0C\u5B83\u4F1A\u5904\u7406\uFF1A",
13846
+ page: "\u9875\u9762\u5185\u5BB9\uFF1A\u53EF\u89C1\u6587\u672C\u3001\u53EF\u4EA4\u4E92\u5143\u7D20\uFF0C\u4EE5\u53CA\u53EF\u89C1\u7684\u975E\u5BC6\u7801\u8F93\u5165\u6846\u7684\u503C\uFF0C\u7528\u4E8E\u6267\u884C\u64CD\u4F5C\u5E76\u9A8C\u8BC1\u8F93\u5165\u662F\u5426\u751F\u6548\u3002",
13847
+ debug: "\u8C03\u8BD5\u6570\u636E\uFF1A\u4F60\u6B63\u5728\u8C03\u8BD5\u7684\u6807\u7B7E\u9875\u7684 console \u6D88\u606F\u4E0E\u7F51\u7EDC\u8BF7\u6C42\u5143\u4FE1\u606F\uFF08URL\u3001\u65B9\u6CD5\u3001\u8D44\u6E90\u7C7B\u578B\uFF09\uFF0C\u4EE5\u53CA\u5728\u4F60\u8981\u6C42\u65F6\u622A\u53D6\u7684\u9875\u9762\u622A\u56FE\u3002",
13848
+ tabs: "\u6807\u7B7E\u9875\u5143\u4FE1\u606F\uFF1Aid\u3001\u6807\u9898\u3001URL\uFF0C\u4EE5\u53CA\u8BE5\u6807\u7B7E\u9875\u662F\u5426\u7531\u8FDE\u63A5\u5668\u6253\u5F00\u3002",
13849
+ local: "\u8FD9\u4E9B\u6570\u636E\u53EA\u901A\u8FC7 127.0.0.1 \u4E0A\u5E26\u4EE4\u724C\u4FDD\u62A4\u7684\u8FDE\u63A5\u53D1\u9001\u7ED9\u672C\u673A\u7684 Nolo Desktop \u5E94\u7528\u3002\u6269\u5C55\u4E0D\u4F1A\u628A\u6570\u636E\u53D1\u9001\u5230\u6211\u4EEC\u7684\u670D\u52A1\u5668\uFF0C\u4E0D\u542B\u4EFB\u4F55\u7EDF\u8BA1\u4EE3\u7801\uFF0C\u4ECE\u4E0D\u8BFB\u53D6 Cookie\u3001\u5BC6\u7801\u3001Chrome profile \u6570\u636E\u5E93\u6216 session \u5B58\u50A8\uFF0C\u5E76\u4E14\u9664\u5F53\u524D\u6D4F\u89C8\u5668\u4F1A\u8BDD\u5916\u4E0D\u4FDD\u7559\u4EFB\u4F55\u6570\u636E\uFF08\u7F13\u51B2\u533A\u6709\u4E0A\u9650\uFF0C\u5143\u7D20\u5F15\u7528\u4E24\u5206\u949F\u540E\u5931\u6548\uFF09\u3002",
13850
+ irreversible: "\u652F\u4ED8\u3001\u53D1\u9001\u3001\u5220\u9664\u3001\u53D1\u5E03\u3001\u6743\u9650\u53D8\u66F4\u7B49\u4E0D\u53EF\u9006\u64CD\u4F5C\u4F1A\u88AB\u62D2\u7EDD\u6267\u884C\uFF1A\u8FD9\u4E9B\u6B65\u9AA4\u7531\u4F60\u81EA\u5DF1\u5B8C\u6210\u3002"
13851
+ },
13834
13852
  section6: {
13835
- title: "6. \u8054\u7CFB\u6211\u4EEC",
13853
+ title: "7. \u8054\u7CFB\u6211\u4EEC",
13836
13854
  desc: "\u5982\u6709\u4EFB\u4F55\u7591\u95EE\u6216\u9690\u79C1\u8BC9\u6C42\uFF0C\u8BF7\u8054\u7CFB\u6211\u4EEC\uFF08\u90AE\u7BB1\uFF1As@nolotus.com\uFF0C\u54C1\u724C\uFF1ANolo\uFF09\u3002"
13837
13855
  }
13838
13856
  }
@@ -13842,7 +13860,7 @@ var privacy_locale_default = {
13842
13860
  translation: {
13843
13861
  privacy: {
13844
13862
  title: "\u96B1\u79C1\u6B0A\u653F\u7B56 (Privacy Policy)",
13845
- lastUpdated: "\u6700\u5F8C\u66F4\u65B0\u65E5\u671F\uFF1A2026\u5E748\u670824\u65E5",
13863
+ lastUpdated: "\u6700\u5F8C\u66F4\u65B0\u65E5\u671F\uFF1A2026\u5E749\u670816\u65E5",
13846
13864
  intro: "\u6B61\u8FCE\u4F7F\u7528 Nolo\uFF08\u4EE5\u4E0B\u7C21\u7A31\u201C\u6211\u5011\u201D\uFF09\u3002\u6211\u5011\u9AD8\u5EA6\u91CD\u8996\u60A8\u7684\u96B1\u79C1\u8207\u500B\u4EBA\u8CC7\u8A0A\u5B89\u5168\u3002\u672C\u96B1\u79C1\u6B0A\u653F\u7B56\u8AAA\u660E\u6211\u5011\u5728\u60A8\u4F7F\u7528\u672C\u670D\u52D9\u6642\u5982\u4F55\u8655\u7406\u8207\u4FDD\u8B77\u60A8\u7684\u8CC7\u8A0A\u3002",
13847
13865
  section1: {
13848
13866
  title: "1. \u6211\u5011\u6536\u96C6\u7684\u8CC7\u8A0A",
@@ -13872,8 +13890,17 @@ var privacy_locale_default = {
13872
13890
  title: "5. \u60A8\u7684\u8CC7\u6599\u6B0A\u5229",
13873
13891
  desc: "\u60A8\u6709\u6B0A\u96A8\u6642\u806F\u7D61\u6211\u5011\u67E5\u8A62\u3001\u66F4\u6B63\u3001\u532F\u51FA\u6216\u7533\u8ACB\u522A\u9664\u60A8\u7684\u500B\u4EBA\u8CC7\u6599\u53CA\u8A3B\u92B7\u5E33\u865F\u3002"
13874
13892
  },
13893
+ browserExtension: {
13894
+ title: "6. \u700F\u89BD\u5668\u64F4\u5145\u529F\u80FD\uFF08Nolo Browser Connector\uFF09",
13895
+ desc: "\u53EF\u9078\u7684 Nolo Browser Connector \u64F4\u5145\u529F\u80FD\u8B93\u540C\u4E00\u53F0\u96FB\u8166\u4E0A\u7684 Nolo Desktop \u61C9\u7528\u7A0B\u5F0F\u64CD\u4F5C\u4F60\u6307\u5B9A\u7684 Chrome \u5206\u9801\u3002\u50C5\u91DD\u5C0D\u9019\u4E9B\u5206\u9801\uFF0C\u5B83\u6703\u8655\u7406\uFF1A",
13896
+ page: "\u9801\u9762\u5167\u5BB9\uFF1A\u53EF\u898B\u6587\u5B57\u3001\u53EF\u4E92\u52D5\u5143\u7D20\uFF0C\u4EE5\u53CA\u53EF\u898B\u7684\u975E\u5BC6\u78BC\u6B04\u4F4D\u503C\uFF0C\u7528\u65BC\u57F7\u884C\u52D5\u4F5C\u4E26\u9A57\u8B49\u8F38\u5165\u662F\u5426\u751F\u6548\u3002",
13897
+ debug: "\u9664\u932F\u8CC7\u6599\uFF1A\u4F60\u6B63\u5728\u5075\u932F\u7684\u5206\u9801\u7684 console \u8A0A\u606F\u8207\u7DB2\u8DEF\u8ACB\u6C42\u4E2D\u4ECB\u8CC7\u6599\uFF08URL\u3001\u65B9\u6CD5\u3001\u8CC7\u6E90\u985E\u578B\uFF09\uFF0C\u4EE5\u53CA\u4F60\u8981\u6C42\u6642\u64F7\u53D6\u7684\u5206\u9801\u622A\u5716\u3002",
13898
+ tabs: "\u5206\u9801\u4E2D\u4ECB\u8CC7\u6599\uFF1Aid\u3001\u6A19\u984C\u3001URL\uFF0C\u4EE5\u53CA\u8A72\u5206\u9801\u662F\u5426\u7531\u9023\u63A5\u5668\u958B\u555F\u3002",
13899
+ local: "\u9019\u4E9B\u8CC7\u6599\u50C5\u900F\u904E 127.0.0.1 \u4E0A\u53D7\u6B0A\u6756\u4FDD\u8B77\u7684\u9023\u7DDA\u50B3\u9001\u7D66\u672C\u6A5F\u7684 Nolo Desktop \u61C9\u7528\u7A0B\u5F0F\u3002\u64F4\u5145\u529F\u80FD\u4E0D\u6703\u5C07\u8CC7\u6599\u50B3\u9001\u81F3\u6211\u5011\u7684\u4F3A\u670D\u5668\uFF0C\u4E0D\u542B\u4EFB\u4F55\u5206\u6790\u7A0B\u5F0F\u78BC\uFF0C\u5F9E\u4E0D\u8B80\u53D6 Cookie\u3001\u5BC6\u78BC\u3001Chrome profile \u8CC7\u6599\u5EAB\u6216 session \u5132\u5B58\uFF0C\u4E14\u9664\u76EE\u524D\u700F\u89BD\u5668\u5DE5\u4F5C\u968E\u6BB5\u5916\u4E0D\u4FDD\u7559\u4EFB\u4F55\u8CC7\u6599\uFF08\u7DE9\u885D\u5340\u6709\u4E0A\u9650\uFF0C\u5143\u7D20\u53C3\u7167\u5169\u5206\u9418\u5F8C\u5931\u6548\uFF09\u3002",
13900
+ irreversible: "\u4ED8\u6B3E\u3001\u50B3\u9001\u3001\u522A\u9664\u3001\u767C\u5E03\u3001\u6B0A\u9650\u8B8A\u66F4\u7B49\u4E0D\u53EF\u9006\u52D5\u4F5C\u6703\u88AB\u62D2\u7D55\u57F7\u884C\uFF1A\u9019\u4E9B\u6B65\u9A5F\u7531\u4F60\u81EA\u5DF1\u5B8C\u6210\u3002"
13901
+ },
13875
13902
  section6: {
13876
- title: "6. \u806F\u7D61\u6211\u5011",
13903
+ title: "7. \u806F\u7D61\u6211\u5011",
13877
13904
  desc: "\u5982\u6709\u4EFB\u4F55\u7591\u554F\u6216\u96B1\u79C1\u8A34\u6C42\uFF0C\u8ACB\u806F\u7D61\u6211\u5011\uFF08\u4FE1\u7BB1\uFF1As@nolotus.com\uFF0C\u54C1\u724C\uFF1ANolo\uFF09\u3002"
13878
13905
  }
13879
13906
  }
@@ -13883,7 +13910,7 @@ var privacy_locale_default = {
13883
13910
  translation: {
13884
13911
  privacy: {
13885
13912
  title: "\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u30DD\u30EA\u30B7\u30FC",
13886
- lastUpdated: "\u6700\u7D42\u66F4\u65B0\u65E5\uFF1A2026\u5E748\u670824\u65E5",
13913
+ lastUpdated: "\u6700\u7D42\u66F4\u65B0\u65E5\uFF1A2026\u5E749\u670816\u65E5",
13887
13914
  intro: "Nolo\uFF08\u4EE5\u4E0B\u300C\u5F53\u793E\u300D\uFF09\u306F\u304A\u5BA2\u69D8\u306E\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u3092\u5C0A\u91CD\u3057\u3001\u500B\u4EBA\u60C5\u5831\u306E\u4FDD\u8B77\u306B\u52AA\u3081\u307E\u3059\u3002",
13888
13915
  section1: {
13889
13916
  title: "1. \u53CE\u96C6\u3059\u308B\u60C5\u5831",
@@ -13913,8 +13940,17 @@ var privacy_locale_default = {
13913
13940
  title: "5. \u304A\u5BA2\u69D8\u306E\u6A29\u5229",
13914
13941
  desc: "\u30C7\u30FC\u30BF\u306E\u958B\u793A\u3001\u8A02\u6B63\u3001\u524A\u9664\u3092\u3044\u3064\u3067\u3082\u8ACB\u6C42\u3067\u304D\u307E\u3059\u3002"
13915
13942
  },
13943
+ browserExtension: {
13944
+ title: "6. \u30D6\u30E9\u30A6\u30B6\u62E1\u5F35\u6A5F\u80FD\uFF08Nolo Browser Connector\uFF09",
13945
+ desc: "\u4EFB\u610F\u3067\u5C0E\u5165\u3059\u308B Nolo Browser Connector \u62E1\u5F35\u6A5F\u80FD\u306F\u3001\u540C\u3058\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u30FC\u4E0A\u306E Nolo Desktop \u30A2\u30D7\u30EA\u304C\u3001\u6307\u5B9A\u3055\u308C\u305F Chrome \u30BF\u30D6\u3092\u64CD\u4F5C\u3059\u308B\u305F\u3081\u306E\u3082\u306E\u3067\u3059\u3002\u5BFE\u8C61\u306E\u30BF\u30D6\u306B\u9650\u308A\u3001\u6B21\u306E\u60C5\u5831\u3092\u51E6\u7406\u3057\u307E\u3059\uFF1A",
13946
+ page: "\u30DA\u30FC\u30B8\u5185\u5BB9\uFF1A\u8868\u793A\u4E2D\u306E\u30C6\u30AD\u30B9\u30C8\u3001\u64CD\u4F5C\u53EF\u80FD\u306A\u8981\u7D20\u3001\u304A\u3088\u3073\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u975E\u30D1\u30B9\u30EF\u30FC\u30C9\u5165\u529B\u6B04\u306E\u5024\uFF08\u64CD\u4F5C\u306E\u5B9F\u884C\u3068\u5165\u529B\u7D50\u679C\u306E\u78BA\u8A8D\u306B\u4F7F\u7528\uFF09\u3002",
13947
+ debug: "\u30C7\u30D0\u30C3\u30B0\u60C5\u5831\uFF1A\u30C7\u30D0\u30C3\u30B0\u5BFE\u8C61\u30BF\u30D6\u306E console \u30E1\u30C3\u30BB\u30FC\u30B8\u3068\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u8981\u6C42\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\uFF08URL\u3001\u30E1\u30BD\u30C3\u30C9\u3001\u30EA\u30BD\u30FC\u30B9\u7A2E\u5225\uFF09\u3001\u304A\u3088\u3073\u8981\u6C42\u6642\u306E\u30B9\u30AF\u30EA\u30FC\u30F3\u30B7\u30E7\u30C3\u30C8\u3002",
13948
+ tabs: "\u30BF\u30D6\u60C5\u5831\uFF1AID\u3001\u30BF\u30A4\u30C8\u30EB\u3001URL\u3001\u304A\u3088\u3073\u305D\u306E\u30BF\u30D6\u3092\u63A5\u7D9A\u6A5F\u80FD\u304C\u958B\u3044\u305F\u304B\u3069\u3046\u304B\u3002",
13949
+ local: "\u3053\u308C\u3089\u306E\u30C7\u30FC\u30BF\u306F 127.0.0.1 \u4E0A\u306E\u30C8\u30FC\u30AF\u30F3\u4FDD\u8B77\u3055\u308C\u305F\u63A5\u7D9A\u3092\u901A\u3058\u3066\u3001\u540C\u3058\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u30FC\u4E0A\u306E Nolo Desktop \u30A2\u30D7\u30EA\u306B\u306E\u307F\u9001\u4FE1\u3055\u308C\u307E\u3059\u3002\u62E1\u5F35\u6A5F\u80FD\u306F\u5F53\u793E\u30B5\u30FC\u30D0\u30FC\u3078\u30C7\u30FC\u30BF\u3092\u9001\u4FE1\u305B\u305A\u3001\u89E3\u6790\u30B3\u30FC\u30C9\u3082\u542B\u307F\u307E\u305B\u3093\u3002Cookie\u3001\u30D1\u30B9\u30EF\u30FC\u30C9\u3001Chrome \u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3001\u30BB\u30C3\u30B7\u30E7\u30F3\u30B9\u30C8\u30EC\u30FC\u30B8\u3092\u8AAD\u307F\u53D6\u308B\u3053\u3068\u306F\u306A\u304F\u3001\u73FE\u5728\u306E\u30D6\u30E9\u30A6\u30B6\u30FC\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u8D85\u3048\u3066\u4FDD\u6301\u3057\u307E\u305B\u3093\uFF08\u30D0\u30C3\u30D5\u30A1\u30FC\u306B\u306F\u4E0A\u9650\u304C\u3042\u308A\u3001\u8981\u7D20\u53C2\u7167\u306F 2 \u5206\u3067\u5931\u52B9\u3057\u307E\u3059\uFF09\u3002",
13950
+ irreversible: "\u652F\u6255\u3044\u3001\u9001\u4FE1\u3001\u524A\u9664\u3001\u516C\u958B\u3001\u6A29\u9650\u5909\u66F4\u306A\u3069\u306E\u4E0D\u53EF\u9006\u7684\u306A\u64CD\u4F5C\u306F\u62D2\u5426\u3055\u308C\u307E\u3059\u3002\u3053\u308C\u3089\u306E\u624B\u9806\u306F\u3054\u81EA\u8EAB\u3067\u884C\u3063\u3066\u3044\u305F\u3060\u304D\u307E\u3059\u3002"
13951
+ },
13916
13952
  section6: {
13917
- title: "6. \u304A\u554F\u3044\u5408\u308F\u305B",
13953
+ title: "7. \u304A\u554F\u3044\u5408\u308F\u305B",
13918
13954
  desc: "\u30D6\u30E9\u30F3\u30C9\uFF1ANolo / \u30E1\u30FC\u30EB\uFF1As@nolotus.com"
13919
13955
  }
13920
13956
  }
@@ -17086,7 +17122,7 @@ var messageSlice = createSliceWithThunks({
17086
17122
  runtimeOptions: args.runtimeOptions
17087
17123
  });
17088
17124
  if (agentKeyToUse) {
17089
- const { streamAgentChatTurn } = await import("./agentSlice-FZBFYKP3.js");
17125
+ const { streamAgentChatTurn } = await import("./agentSlice-RRZS2UII.js");
17090
17126
  await dispatch(
17091
17127
  streamAgentChatTurn({
17092
17128
  agentKey: agentKeyToUse,
@@ -18219,7 +18255,7 @@ var deleteDialogThunk = async (payload, thunkApi) => {
18219
18255
  }
18220
18256
  if (isCurrentDialog) {
18221
18257
  await thunkApi.dispatch(resetMsgs());
18222
- const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-RM3EW5AO.js");
18258
+ const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-7HEVCJFT.js");
18223
18259
  dispatch(clearPendingAttachments2());
18224
18260
  }
18225
18261
  return { dialogKey, isCurrentDialog, attachmentPlan };
@@ -18227,15 +18263,15 @@ var deleteDialogThunk = async (payload, thunkApi) => {
18227
18263
 
18228
18264
  // packages/chat/dialog/dialogSlice.ts
18229
18265
  var runCreateDialogAction = async (args, thunkApi) => {
18230
- const { createDialogAction } = await import("./createDialogAction-B52IPGBY.js");
18266
+ const { createDialogAction } = await import("./createDialogAction-2GS4JCMU.js");
18231
18267
  return createDialogAction(args, thunkApi);
18232
18268
  };
18233
18269
  var runCreateAgentAutomationAction = async (args, thunkApi) => {
18234
- const { createAgentAutomationAction } = await import("./createAgentAutomationAction-JUSLLNYE.js");
18270
+ const { createAgentAutomationAction } = await import("./createAgentAutomationAction-DN4SFTP5.js");
18235
18271
  return createAgentAutomationAction(args, thunkApi);
18236
18272
  };
18237
18273
  var runUpdateDialogTitleAction = async (args, thunkApi) => {
18238
- const { updateDialogTitleAction } = await import("./updateDialogTitleAction-55Q3R6RJ.js");
18274
+ const { updateDialogTitleAction } = await import("./updateDialogTitleAction-E3SNB75W.js");
18239
18275
  return updateDialogTitleAction(args, thunkApi);
18240
18276
  };
18241
18277
  var runAddDialogAgentAction = async (args, thunkApi) => {
@@ -18259,7 +18295,7 @@ var runSetDialogExtraReferencesAction = async (args, thunkApi) => {
18259
18295
  return setDialogExtraReferencesAction(args, thunkApi);
18260
18296
  };
18261
18297
  var runHandleSendMessageAction = async (args, thunkApi) => {
18262
- const { handleSendMessageAction } = await import("./handleSendMessageAction-I6KFXKDM.js");
18298
+ const { handleSendMessageAction } = await import("./handleSendMessageAction-ETA5QZIN.js");
18263
18299
  return handleSendMessageAction(args, thunkApi);
18264
18300
  };
18265
18301
  function clearDialogState() {
@@ -18272,7 +18308,7 @@ var createPageAndAddReference = createAsyncThunk(
18272
18308
  async (payload, { dispatch, getState, rejectWithValue }) => {
18273
18309
  const { slateData, jsonData, title, type, fileId, groupId, dialogKey } = payload;
18274
18310
  try {
18275
- const { createDocState } = await import("./docStore-Q45M4B2I.js");
18311
+ const { createDocState } = await import("./docStore-LJ7KNKFB.js");
18276
18312
  const pageKey = await createDocState(
18277
18313
  { slateData, title },
18278
18314
  { dispatch, getState }
@@ -9,7 +9,7 @@ import {
9
9
  initReactI18next,
10
10
  instance,
11
11
  toast
12
- } from "./chunk-3LBE76GR.js";
12
+ } from "./chunk-VOEW2KF3.js";
13
13
  import {
14
14
  require_date_fns
15
15
  } from "./chunk-M76ECQRD.js";
@@ -55,7 +55,7 @@ import {
55
55
  import {
56
56
  inlineImageUrlsForCustomProvider,
57
57
  prepareTools
58
- } from "./chunk-AOKRQAUQ.js";
58
+ } from "./chunk-I4UWPYBH.js";
59
59
  import {
60
60
  getServerProviderSecret
61
61
  } from "./chunk-HS7MLR74.js";
@@ -72,7 +72,7 @@ import {
72
72
  rememberMemoryFunctionSchema,
73
73
  resolveAgentRequiredPackIds,
74
74
  setTodoListFunc
75
- } from "./chunk-R5NCDOHB.js";
75
+ } from "./chunk-QBA5KMJI.js";
76
76
  import {
77
77
  fetchWithTransientRetry,
78
78
  isTransientFetchError
@@ -95,13 +95,13 @@ import {
95
95
  prepareTokenUsageData,
96
96
  resolveBuiltinPlatformAgentConfig,
97
97
  runKeyed
98
- } from "./chunk-3LBE76GR.js";
98
+ } from "./chunk-VOEW2KF3.js";
99
99
  import {
100
100
  BUILTIN_TITLE_LLM_CONFIG
101
101
  } from "./chunk-EVBFYPDC.js";
102
102
  import {
103
103
  fetchServerSyncedCredential
104
- } from "./chunk-RVCBKVIR.js";
104
+ } from "./chunk-TI4CCL34.js";
105
105
  import {
106
106
  require_date_fns
107
107
  } from "./chunk-M76ECQRD.js";
@@ -2524,6 +2524,46 @@ async function detectCurrentMachineId(env) {
2524
2524
  }
2525
2525
 
2526
2526
  // packages/cli/client/cliProviderHelpers.ts
2527
+ var CYCLE_SCAN_NODE_BUDGET = 2e4;
2528
+ function keysForJson(value) {
2529
+ if (Array.isArray(value)) {
2530
+ const keys = [];
2531
+ for (let i = 0; i < value.length; i++) keys.push(String(i));
2532
+ return keys;
2533
+ }
2534
+ return Object.keys(value);
2535
+ }
2536
+ function hasJsonCycle(root) {
2537
+ if (typeof root !== "object" || root === null) return false;
2538
+ if (typeof root.toJSON === "function") return false;
2539
+ const onPath = /* @__PURE__ */ new Set([root]);
2540
+ const stack = [
2541
+ { holder: root, keys: keysForJson(root), index: 0 }
2542
+ ];
2543
+ let visited = 1;
2544
+ while (stack.length > 0) {
2545
+ const frame = stack[stack.length - 1];
2546
+ if (frame.index >= frame.keys.length) {
2547
+ onPath.delete(frame.holder);
2548
+ stack.pop();
2549
+ continue;
2550
+ }
2551
+ const key = frame.keys[frame.index++];
2552
+ let child;
2553
+ try {
2554
+ child = frame.holder[key];
2555
+ } catch {
2556
+ continue;
2557
+ }
2558
+ if (typeof child !== "object" || child === null) continue;
2559
+ if (typeof child.toJSON === "function") continue;
2560
+ if (onPath.has(child)) return true;
2561
+ if (++visited > CYCLE_SCAN_NODE_BUDGET) return false;
2562
+ onPath.add(child);
2563
+ stack.push({ holder: child, keys: keysForJson(child), index: 0 });
2564
+ }
2565
+ return false;
2566
+ }
2527
2567
  function buildDelegatedTaskContent(task, input) {
2528
2568
  if (input === void 0 || input === null) {
2529
2569
  return task;
@@ -2540,6 +2580,9 @@ ${input}`;
2540
2580
  }
2541
2581
  let jsonStr;
2542
2582
  try {
2583
+ if (hasJsonCycle(input)) {
2584
+ throw new TypeError("Converting circular structure to JSON");
2585
+ }
2543
2586
  const serialized = JSON.stringify(input, null, 2);
2544
2587
  if (serialized === void 0) {
2545
2588
  return task;
@@ -2564,6 +2607,9 @@ function calculateDelegatedPayloadMetrics(task, input, delegatedContent) {
2564
2607
  serializedInputForTokens = input;
2565
2608
  } else {
2566
2609
  try {
2610
+ if (hasJsonCycle(input)) {
2611
+ throw new TypeError("Converting circular structure to JSON");
2612
+ }
2567
2613
  const serialized = JSON.stringify(input, null, 2);
2568
2614
  if (serialized !== void 0) {
2569
2615
  inputChars = serialized.length;
@@ -7,14 +7,14 @@ import {
7
7
  updateContentPinned,
8
8
  updateContentTitle,
9
9
  uploadAndAddFileToSpace
10
- } from "./chunk-R4XZMDRV.js";
10
+ } from "./chunk-XGZM6BTX.js";
11
11
  import "./chunk-ZJ7UHBJS.js";
12
- import "./chunk-3LBE76GR.js";
12
+ import "./chunk-VOEW2KF3.js";
13
13
  import "./chunk-EVBFYPDC.js";
14
14
  import "./chunk-HQUORJTM.js";
15
15
  import "./chunk-YYLHWIW6.js";
16
16
  import "./chunk-AGGIDPCZ.js";
17
- import "./chunk-RVCBKVIR.js";
17
+ import "./chunk-TI4CCL34.js";
18
18
  import "./chunk-BJCWNHVU.js";
19
19
  import "./chunk-5RGU3J7P.js";
20
20
  import "./chunk-6YTOJY35.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-R4XZMDRV.js";
3
+ } from "./chunk-XGZM6BTX.js";
4
4
  import "./chunk-ZJ7UHBJS.js";
5
- import "./chunk-3LBE76GR.js";
5
+ import "./chunk-VOEW2KF3.js";
6
6
  import "./chunk-EVBFYPDC.js";
7
7
  import "./chunk-HQUORJTM.js";
8
8
  import "./chunk-YYLHWIW6.js";
9
9
  import "./chunk-AGGIDPCZ.js";
10
- import "./chunk-RVCBKVIR.js";
10
+ import "./chunk-TI4CCL34.js";
11
11
  import "./chunk-BJCWNHVU.js";
12
12
  import "./chunk-5RGU3J7P.js";
13
13
  import "./chunk-6YTOJY35.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  createDialogAction,
3
3
  isLocalOwnerDialogAgents
4
- } from "./chunk-JWXTOIGR.js";
5
- import "./chunk-R4XZMDRV.js";
4
+ } from "./chunk-2JCTE5UN.js";
5
+ import "./chunk-XGZM6BTX.js";
6
6
  import "./chunk-ZJ7UHBJS.js";
7
- import "./chunk-3LBE76GR.js";
7
+ import "./chunk-VOEW2KF3.js";
8
8
  import "./chunk-EVBFYPDC.js";
9
9
  import "./chunk-HQUORJTM.js";
10
10
  import "./chunk-YYLHWIW6.js";
11
11
  import "./chunk-AGGIDPCZ.js";
12
- import "./chunk-RVCBKVIR.js";
12
+ import "./chunk-TI4CCL34.js";
13
13
  import "./chunk-BJCWNHVU.js";
14
14
  import "./chunk-5RGU3J7P.js";
15
15
  import "./chunk-6YTOJY35.js";
@@ -14,16 +14,16 @@ import {
14
14
  import {
15
15
  addContentToSpace,
16
16
  client_default
17
- } from "./chunk-R4XZMDRV.js";
17
+ } from "./chunk-XGZM6BTX.js";
18
18
  import {
19
19
  getCurrentSpaceId
20
20
  } from "./chunk-ZJ7UHBJS.js";
21
- import "./chunk-3LBE76GR.js";
21
+ import "./chunk-VOEW2KF3.js";
22
22
  import "./chunk-EVBFYPDC.js";
23
23
  import "./chunk-HQUORJTM.js";
24
24
  import "./chunk-YYLHWIW6.js";
25
25
  import "./chunk-AGGIDPCZ.js";
26
- import "./chunk-RVCBKVIR.js";
26
+ import "./chunk-TI4CCL34.js";
27
27
  import "./chunk-BJCWNHVU.js";
28
28
  import "./chunk-5RGU3J7P.js";
29
29
  import "./chunk-6YTOJY35.js";
@@ -20,12 +20,12 @@ import {
20
20
  switchDialogAgent,
21
21
  updateDialogTitle,
22
22
  updateTokens
23
- } from "./chunk-3LBE76GR.js";
23
+ } from "./chunk-VOEW2KF3.js";
24
24
  import "./chunk-EVBFYPDC.js";
25
25
  import "./chunk-HQUORJTM.js";
26
26
  import "./chunk-YYLHWIW6.js";
27
27
  import "./chunk-AGGIDPCZ.js";
28
- import "./chunk-RVCBKVIR.js";
28
+ import "./chunk-TI4CCL34.js";
29
29
  import "./chunk-BJCWNHVU.js";
30
30
  import {
31
31
  getActiveDialogAgentId
@@ -24,7 +24,7 @@ import {
24
24
  updateTitleDoc,
25
25
  useDocField,
26
26
  useDocState
27
- } from "./chunk-I5O24WHB.js";
27
+ } from "./chunk-AWPU7GXU.js";
28
28
  import "./chunk-M76ECQRD.js";
29
29
  import "./chunk-YDH3FDFQ.js";
30
30
  import "./chunk-HNMXYYJR.js";
@@ -6,14 +6,14 @@ import {
6
6
  prepareAndPersistUserMessage,
7
7
  resolveHandleSendMessageContext,
8
8
  selectAllMsgs
9
- } from "./chunk-3LBE76GR.js";
9
+ } from "./chunk-VOEW2KF3.js";
10
10
  import "./chunk-EVBFYPDC.js";
11
11
  import "./chunk-HQUORJTM.js";
12
12
  import "./chunk-YYLHWIW6.js";
13
13
  import "./chunk-AGGIDPCZ.js";
14
14
  import {
15
15
  streamAgentChatTurn
16
- } from "./chunk-RVCBKVIR.js";
16
+ } from "./chunk-TI4CCL34.js";
17
17
  import "./chunk-BJCWNHVU.js";
18
18
  import "./chunk-5RGU3J7P.js";
19
19
  import {