nolo-cli 0.33.0-alpha.25 → 0.33.0-alpha.26

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 (61) hide show
  1. package/{_executeModel-YRYC7I56.js → _executeModel-STWSBSKD.js} +12 -12
  2. package/{agentDeleteCommand-FLI7R64B.js → agentDeleteCommand-R2TIAA2Y.js} +5 -5
  3. package/{agentEmailCommands-U6KXYX33.js → agentEmailCommands-ZKIURERK.js} +14 -14
  4. package/{agentListCommands-GXCJ6M2I.js → agentListCommands-Y6QRNOTF.js} +9 -8
  5. package/{agentMachineCommands-QGIVFQOP.js → agentMachineCommands-NUO6EJVF.js} +5 -5
  6. package/{agentRecordCommands-6PR5EMXS.js → agentRecordCommands-BTZESWJQ.js} +14 -14
  7. package/{agentRunCommand-DINHUNYG.js → agentRunCommand-FSR2PMTC.js} +17 -16
  8. package/{agentRuntimeLocal-KI7SGGDI.js → agentRuntimeLocal-ZF6GOTZV.js} +2 -2
  9. package/{agentSlice-4VHI24NT.js → agentSlice-CAY6B6TM.js} +1 -1
  10. package/{appDeleteCommands-TSDAG4RK.js → appDeleteCommands-XT5GUKFB.js} +6 -6
  11. package/{appDeployCommands-XXBYWYJZ.js → appDeployCommands-YFEH5URD.js} +6 -6
  12. package/{appDeployStatusCommands-KXW5U4O3.js → appDeployStatusCommands-NGMP7E6D.js} +6 -6
  13. package/{appGetCommands-35QY6HM4.js → appGetCommands-QKI4YOWW.js} +6 -6
  14. package/{appListCommands-MGDFPS76.js → appListCommands-Z62P7T3L.js} +6 -6
  15. package/{chatQueueReduxAdapter-AW6KOUGI.js → chatQueueReduxAdapter-IZBGO5OC.js} +2 -2
  16. package/{chunk-5UKGLIN4.js → chunk-46NWKOV4.js} +2 -2
  17. package/{chunk-B754NVDZ.js → chunk-7UFAVUWF.js} +1 -1
  18. package/{chunk-BYJ2VKGP.js → chunk-AABBRVFT.js} +2 -2
  19. package/{chunk-JW3GC4BM.js → chunk-AFVQC5TV.js} +3 -3
  20. package/{chunk-V4DRJMRC.js → chunk-BAMXQS37.js} +87 -12
  21. package/{chunk-JQIXQ7NW.js → chunk-BHD66D3G.js} +15 -13
  22. package/{chunk-T2DYWQG3.js → chunk-BN6BH3XA.js} +9 -42
  23. package/{chunk-4ZPH5WGJ.js → chunk-DPSXNP23.js} +1 -1
  24. package/{chunk-NXY5MB7Y.js → chunk-EWEJQSYZ.js} +6 -6
  25. package/{chunk-BIGW743S.js → chunk-GRBVD5LC.js} +31 -16
  26. package/{chunk-SMU7YAO6.js → chunk-GT3IOCZL.js} +3 -3
  27. package/{chunk-TEFI7S3J.js → chunk-HBS537VN.js} +10 -42
  28. package/{chunk-TPSCHAUZ.js → chunk-JH5TECHI.js} +2 -2
  29. package/{chunk-GRAHWRXC.js → chunk-K7QWM5WO.js} +8 -8
  30. package/{chunk-MD6P2TXC.js → chunk-LX5OXR6X.js} +1 -1
  31. package/{chunk-ADLYMQB6.js → chunk-MBUNBGBE.js} +127 -0
  32. package/{chunk-5T3FEEF2.js → chunk-MYEHM7AY.js} +2 -2
  33. package/{chunk-FSMXTO3G.js → chunk-NMB23CNE.js} +1 -8
  34. package/{chunk-WHLQYPJZ.js → chunk-SGRM4ZAQ.js} +1 -1
  35. package/{chunk-Z3EYMFUQ.js → chunk-UQ7B6CXO.js} +2 -2
  36. package/{chunk-3CVNNFKF.js → chunk-WAWPO6YI.js} +1 -1
  37. package/{chunk-BY53PPQ2.js → chunk-Z22GYXSI.js} +1 -1
  38. package/{chunk-X2DAEZ3X.js → chunk-ZFGAPMSF.js} +1 -1
  39. package/{chunk-TZV6ELNR.js → chunk-ZXPS5ZYK.js} +1 -1
  40. package/{createAgentAutomationAction-YL2N663O.js → createAgentAutomationAction-E5AGSXV6.js} +3 -3
  41. package/{createDialogAction-Q2X5FY3R.js → createDialogAction-Y3BWEFP2.js} +4 -4
  42. package/{createPageAction-6UPVRXI3.js → createPageAction-M2B5JPE6.js} +3 -3
  43. package/{dialogCommands-MWSD4CJM.js → dialogCommands-U4WXEETW.js} +6 -6
  44. package/{dialogSlice-WARDZORM.js → dialogSlice-BTBQL3E6.js} +2 -2
  45. package/{docCreateCommands-PK57VNBI.js → docCreateCommands-SANZ56WK.js} +5 -5
  46. package/{docDeleteCommands-TKALRDZI.js → docDeleteCommands-OTED64QG.js} +6 -6
  47. package/{docReadCommands-VCKM3EFO.js → docReadCommands-SLA7XJW3.js} +5 -5
  48. package/{docStore-LGYJZBWV.js → docStore-VUO3IPY5.js} +4 -4
  49. package/{docUpdateCommands-A4AP3NQJ.js → docUpdateCommands-UIFJX6OU.js} +5 -5
  50. package/{handleSendMessageAction-MQMRHHSU.js → handleSendMessageAction-N6JSRGWP.js} +2 -2
  51. package/index.js +40 -40
  52. package/{machineCommands-5MSHOVGB.js → machineCommands-PN3Z372Q.js} +13 -13
  53. package/{machineWsRunDispatch-KZKGKKJB.js → machineWsRunDispatch-UDIIZLVX.js} +13 -13
  54. package/package.json +1 -1
  55. package/{readlineWorkspace-TTNIW6AD.js → readlineWorkspace-D3CGZ5JC.js} +19 -18
  56. package/{runAgentClientLoop-5I4TKXR2.js → runAgentClientLoop-YBX7WJSM.js} +10 -10
  57. package/{spaceCommands-AKM5WFQ2.js → spaceCommands-MMSD47KM.js} +5 -5
  58. package/{spaceSlice-GAP74242.js → spaceSlice-2COL6PNH.js} +3 -3
  59. package/{streamAgentChatTurn-OXTK4UGX.js → streamAgentChatTurn-MITMLAYJ.js} +11 -11
  60. package/{tools-ETBZCODF.js → tools-B3Z2MOPZ.js} +8 -8
  61. package/{updateDialogTitleAction-LNKCXTZA.js → updateDialogTitleAction-ZAOIDCVO.js} +3 -3
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-TPSCHAUZ.js";
3
+ } from "./chunk-JH5TECHI.js";
4
4
  import {
5
5
  prepareAndPersistMessage,
6
6
  uiAskChoiceFunc,
7
7
  uiAskChoiceFunctionSchema
8
- } from "./chunk-GRAHWRXC.js";
8
+ } from "./chunk-K7QWM5WO.js";
9
9
  import {
10
10
  require_date_fns
11
11
  } from "./chunk-M76ECQRD.js";
@@ -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-YRYC7I56.js");
307
+ const { _executeModel } = await import("./_executeModel-STWSBSKD.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-5I4TKXR2.js");
328
+ const { runAgentClientLoop } = await import("./runAgentClientLoop-YBX7WJSM.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-OXTK4UGX.js");
344
+ const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-MITMLAYJ.js");
345
345
  return streamAgentChatTurnHandler(args, thunkApi);
346
346
  }),
347
347
  /**
@@ -6,10 +6,9 @@ import {
6
6
  parseRetryAfterHeaderMs
7
7
  } from "./chunk-RQSOAMPJ.js";
8
8
  import {
9
- isAgentUnavailableNow,
10
9
  sortSafeAgentSummaries,
11
10
  toSafeAgentSummary
12
- } from "./chunk-FSMXTO3G.js";
11
+ } from "./chunk-NMB23CNE.js";
13
12
  import {
14
13
  getUserDataItemTimestamp,
15
14
  mergeAndDedupUserData
@@ -38,14 +37,14 @@ import {
38
37
  } from "./chunk-VF4K2QE6.js";
39
38
  import {
40
39
  createDocState
41
- } from "./chunk-5UKGLIN4.js";
40
+ } from "./chunk-46NWKOV4.js";
42
41
  import {
43
42
  BUILTIN_OBJECT_SKILL_IDS,
44
43
  buildBuiltinObjectSkillConfig,
45
44
  buildBuiltinObjectSkillDbKey,
46
45
  buildBuiltinObjectSkillPageContent,
47
46
  createDialogAction
48
- } from "./chunk-BYJ2VKGP.js";
47
+ } from "./chunk-AABBRVFT.js";
49
48
  import {
50
49
  addCategory,
51
50
  addContentToSpace,
@@ -65,7 +64,7 @@ import {
65
64
  loadTableRows,
66
65
  updateContentCategory,
67
66
  updateContentTitle
68
- } from "./chunk-TPSCHAUZ.js";
67
+ } from "./chunk-JH5TECHI.js";
69
68
  import {
70
69
  incrementFailedSteps,
71
70
  incrementStepsExecuted,
@@ -79,13 +78,13 @@ import {
79
78
  uiAskChoiceFunc,
80
79
  uiAskChoiceFunctionSchema,
81
80
  updateStep
82
- } from "./chunk-GRAHWRXC.js";
81
+ } from "./chunk-K7QWM5WO.js";
83
82
  import {
84
83
  createAgent,
85
84
  runLlm,
86
85
  streamAgentChatTurn,
87
86
  updateAgent
88
- } from "./chunk-JW3GC4BM.js";
87
+ } from "./chunk-AFVQC5TV.js";
89
88
  import {
90
89
  NOLO_WORKSPACE_TOOL_NAMES,
91
90
  buildAgentRuntimeAgentLookupKeys,
@@ -95,12 +94,13 @@ import {
95
94
  filterNoloDialogSubjectRefEvidence,
96
95
  getNoloComparableUpdatedAt,
97
96
  getNoloDialogIdFromKey,
97
+ isAgentUnavailableNow,
98
98
  normalizeNoloExcludeDialogIds,
99
99
  normalizeNoloSpaceInput,
100
100
  redactAgentRecordForWorkspaceTool,
101
101
  resolveNoloDialogInput,
102
102
  verifyNoloDialogSubjectRefQuery
103
- } from "./chunk-ADLYMQB6.js";
103
+ } from "./chunk-MBUNBGBE.js";
104
104
  import {
105
105
  buildDatabaseFileContentUrl
106
106
  } from "./chunk-CP4QR2D2.js";
@@ -9835,6 +9835,14 @@ var seoLocale = {
9835
9835
  shareCommunity: {
9836
9836
  title: "Community Shares | See What People Build with Nolo.Chat",
9837
9837
  description: "Explore public chats, docs, apps, and shared outputs from the Nolo community to see how people use AI agents for real work."
9838
+ },
9839
+ about: {
9840
+ title: "About Nolo.Chat | Autonomous Multi-Agent Workspace & AI Platform",
9841
+ description: "Learn about Nolo.Chat's mission to transform how humans work with AI through local-first autonomous multi-agent orchestration, persistent memory, and multi-model collaboration."
9842
+ },
9843
+ contact: {
9844
+ title: "Contact Us | Nolo.Chat Support, Feedback & Community",
9845
+ description: "Get in touch with the Nolo.Chat team for technical support, partnerships, bug reports, and feedback. Connect via email, community, and social channels."
9838
9846
  }
9839
9847
  },
9840
9848
  ["zh-CN" /* ZH_CN */]: {
@@ -9855,6 +9863,14 @@ var seoLocale = {
9855
9863
  shareCommunity: {
9856
9864
  title: "Nolo \u793E\u533A\u5206\u4EAB | \u770B\u522B\u4EBA\u600E\u6837\u7528 AI \u628A\u4E8B\u505A\u5B8C",
9857
9865
  description: "\u6D4F\u89C8\u793E\u533A\u516C\u5F00\u5206\u4EAB\u7684\u5BF9\u8BDD\u3001\u6587\u6863\u3001\u5E94\u7528\u4E0E\u6210\u679C\uFF0C\u4E86\u89E3\u771F\u5B9E\u7528\u6237\u5982\u4F55\u7528 Nolo \u5B8C\u6210\u7814\u7A76\u3001\u5199\u4F5C\u3001\u5F00\u53D1\u4E0E\u81EA\u52A8\u5316\u4EFB\u52A1\u3002"
9866
+ },
9867
+ about: {
9868
+ title: "\u5173\u4E8E Nolo.Chat | \u81EA\u4E3B\u591A Agent \u534F\u4F5C AI \u5DE5\u4F5C\u53F0",
9869
+ description: "\u4E86\u89E3 Nolo.Chat \u7684\u4F7F\u547D\u4E0E\u6280\u672F\u613F\u666F\uFF1A\u901A\u8FC7\u672C\u5730\u4F18\u5148\u67B6\u6784\u3001\u81EA\u4E3B\u591A Agent \u534F\u4F5C\u7F51\u7EDC\u3001\u6301\u4E45\u957F\u671F\u8BB0\u5FC6\u4E0E\u591A\u6A21\u578B\u534F\u540C\uFF0C\u6253\u9020\u771F\u6B63\u66FF\u4F60\u628A\u4E8B\u505A\u5B8C\u7684 AI \u56E2\u961F\u3002"
9870
+ },
9871
+ contact: {
9872
+ title: "\u8054\u7CFB\u6211\u4EEC | Nolo.Chat \u5B98\u65B9\u652F\u6301\u4E0E\u793E\u533A\u53CD\u9988",
9873
+ description: "\u83B7\u53D6 Nolo.Chat \u5B98\u65B9\u6280\u672F\u652F\u6301\u3001\u5546\u52A1\u5408\u4F5C\u3001\u95EE\u9898\u53CD\u9988\u4E0E\u793E\u533A\u4EA4\u6D41\u5165\u53E3\u3002\u6B22\u8FCE\u901A\u8FC7\u90AE\u4EF6\u4E0E\u5B98\u65B9\u793E\u533A\u968F\u65F6\u4E0E\u6211\u4EEC\u8054\u7CFB\u3002"
9858
9874
  }
9859
9875
  },
9860
9876
  ["zh-Hant" /* ZH_HANT */]: {
@@ -9875,6 +9891,14 @@ var seoLocale = {
9875
9891
  shareCommunity: {
9876
9892
  title: "Nolo \u793E\u7FA4\u5206\u4EAB | \u770B\u5225\u4EBA\u5982\u4F55\u7528 AI \u628A\u4E8B\u505A\u5B8C",
9877
9893
  description: "\u700F\u89BD\u793E\u7FA4\u516C\u958B\u5206\u4EAB\u7684\u5C0D\u8A71\u3001\u6587\u4EF6\u3001\u61C9\u7528\u8207\u6210\u679C\uFF0C\u4E86\u89E3\u771F\u5BE6\u4F7F\u7528\u8005\u5982\u4F55\u7528 Nolo \u5B8C\u6210\u7814\u7A76\u3001\u5BEB\u4F5C\u3001\u958B\u767C\u8207\u81EA\u52D5\u5316\u4EFB\u52D9\u3002"
9894
+ },
9895
+ about: {
9896
+ title: "\u95DC\u65BC Nolo.Chat | \u81EA\u4E3B\u591A Agent \u5354\u4F5C AI \u5DE5\u4F5C\u53F0",
9897
+ description: "\u4E86\u89E3 Nolo.Chat \u7684\u4F7F\u547D\u8207\u6280\u8853\u9858\u666F\uFF1A\u900F\u904E\u672C\u5730\u512A\u5148\u67B6\u69CB\u3001\u81EA\u4E3B\u591A Agent \u5354\u4F5C\u7DB2\u7D61\u3001\u6301\u4E45\u9577\u671F\u8A18\u61B6\u8207\u591A\u6A21\u578B\u5354\u540C\uFF0C\u6253\u9020\u771F\u6B63\u66FF\u4F60\u628A\u4E8B\u505A\u5B8C\u7684 AI \u5718\u968A\u3002"
9898
+ },
9899
+ contact: {
9900
+ title: "\u806F\u7D61\u6211\u5011 | Nolo.Chat \u5B98\u65B9\u652F\u63F4\u8207\u793E\u7FA4\u53CD\u994B",
9901
+ description: "\u7372\u53D6 Nolo.Chat \u5B98\u65B9\u6280\u8853\u652F\u63F4\u3001\u5546\u52D9\u5408\u4F5C\u3001\u554F\u984C\u53CD\u994B\u8207\u793E\u7FA4\u4EA4\u6D41\u5165\u53E3\u3002\u6B61\u8FCE\u900F\u904E\u90F5\u4EF6\u8207\u5B98\u65B9\u793E\u7FA4\u96A8\u6642\u8207\u6211\u5011\u806F\u7D61\u3002"
9878
9902
  }
9879
9903
  },
9880
9904
  ["ja" /* JA */]: {
@@ -9895,6 +9919,42 @@ var seoLocale = {
9895
9919
  shareCommunity: {
9896
9920
  title: "\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3\u5171\u6709 | Nolo.Chat \u3067\u4F5C\u3089\u308C\u305F\u5B9F\u4F8B\u3092\u898B\u308B",
9897
9921
  description: "\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3\u304C\u516C\u958B\u3057\u305F\u5BFE\u8A71\u3001\u6587\u66F8\u3001\u30A2\u30D7\u30EA\u3001\u6210\u679C\u7269\u3092\u898B\u306A\u304C\u3089\u3001Nolo \u304C\u5B9F\u52D9\u3067\u3069\u3046\u4F7F\u308F\u308C\u3066\u3044\u308B\u304B\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002"
9922
+ },
9923
+ about: {
9924
+ title: "Nolo.Chat \u306B\u3064\u3044\u3066 | \u81EA\u5F8B\u578B\u30DE\u30EB\u30C1\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8 AI \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9",
9925
+ description: "Nolo.Chat \u306E\u30D3\u30B8\u30E7\u30F3\u3068\u6280\u8853\uFF1A\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30FC\u30B9\u30C8\u8A2D\u8A08\u3001\u8907\u6570 Agent \u306E\u81EA\u5F8B\u5354\u8ABF\u3001\u9577\u671F\u8A18\u61B6\u3001\u30DE\u30EB\u30C1\u30E2\u30C7\u30EB\u9023\u643A\u3092\u901A\u3058\u3066\u3001\u4ED5\u4E8B\u3092\u5B9F\u969B\u306B\u4ED5\u4E0A\u3052\u308B AI \u30C1\u30FC\u30E0\u3092\u63D0\u4F9B\u3057\u307E\u3059\u3002"
9926
+ },
9927
+ contact: {
9928
+ title: "\u304A\u554F\u3044\u5408\u308F\u305B | Nolo.Chat \u516C\u5F0F\u30B5\u30DD\u30FC\u30C8\uFF06\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3",
9929
+ description: "Nolo.Chat \u306E\u516C\u5F0F\u30C6\u30AF\u30CB\u30AB\u30EB\u30B5\u30DD\u30FC\u30C8\u3001\u63D0\u643A\u3001\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u7A93\u53E3\u3002\u30E1\u30FC\u30EB\u3084\u516C\u5F0F\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3\u304B\u3089\u304A\u6C17\u8EFD\u306B\u304A\u554F\u3044\u5408\u308F\u305B\u304F\u3060\u3055\u3044\u3002"
9930
+ }
9931
+ },
9932
+ ["ko" /* KO */]: {
9933
+ title: "Nolo.Chat | \uB2E8\uC21C \uCC57\uBD07\uC744 \uB118\uC5B4\uC120 \uB098\uB9CC\uC758 \uD504\uB77C\uC774\uBE57 AI \uD300",
9934
+ description: "\uB2E8\uC21C\uD55C \uB300\uD654\uB97C \uB118\uC5B4, \uC5EC\uB7EC AI \uC5D0\uC774\uC804\uD2B8\uAC00 \uD611\uB825\uD558\uC5EC \uC5C5\uBB34\uB97C \uC644\uC218\uD569\uB2C8\uB2E4. \uADDC\uCE59\uC744 \uAE30\uC5B5\uD558\uACE0 \uBC24\uC0C8 \uC2E4\uD589\uD558\uC5EC \uC544\uCE68\uC5D0 \uC2E4\uC81C \uACB0\uACFC\uBB3C\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4.",
9935
+ home: {
9936
+ title: "Nolo.Chat | \uB2F9\uC2E0\uC744 \uAE30\uC5B5\uD558\uACE0 \uC5C5\uBB34\uB97C \uC644\uC218\uD558\uB294 AI \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4",
9937
+ description: "GPT, Claude, DeepSeek \uB4F1\uC744 \uD558\uB098\uC758 AI \uC791\uC5C5 \uACF5\uAC04\uC5D0\uC11C \uD65C\uC6A9\uD558\uC138\uC694. Nolo\uB294 \uBB38\uB9E5\uC744 \uAE30\uC5B5\uD558\uACE0, \uC5EC\uB7EC \uC5D0\uC774\uC804\uD2B8\uC758 \uD611\uC5C5\uACFC \uD1A0\uB860\uC744 \uD1B5\uD574 \uBB38\uC11C, \uC774\uBBF8\uC9C0, \uC6F9, \uCD5C\uC885 \uACB0\uACFC\uBB3C\uC744 \uB9CC\uB4ED\uB2C8\uB2E4."
9938
+ },
9939
+ pricing: {
9940
+ title: "Nolo \uC694\uAE08\uC81C | \uC0AC\uC6A9\uD55C \uB9CC\uD07C\uB9CC \uACB0\uC81C\uD558\uB294 \uD06C\uB808\uB527 \uC2DC\uC2A4\uD15C",
9941
+ description: "\uBB34\uB8CC\uB85C \uC2DC\uC791\uD558\uACE0 \uD544\uC694\uD560 \uB54C\uB9CC \uD06C\uB808\uB527\uC744 \uCDA9\uC804\uD558\uC138\uC694. \uBAA8\uB378\uBCC4 \uBE44\uC6A9\uC744 \uBE44\uAD50\uD558\uACE0, \uAD6C\uB3C5 \uC5C6\uC774 \uACE0\uAE09 \uAE30\uB2A5\uC744 \uC720\uC5F0\uD558\uAC8C \uC774\uC6A9\uD574 \uBCF4\uC138\uC694."
9942
+ },
9943
+ explore: {
9944
+ title: "AI \uAD11\uC7A5 | Nolo.Chat \uACF5\uAC1C AI \uC5D0\uC774\uC804\uD2B8 \uD0D0\uC0C9",
9945
+ description: "\uACF5\uAC1C\uB41C AI \uC5D0\uC774\uC804\uD2B8\uB97C \uC0B4\uD3B4\uBCF4\uACE0, \uAC01 \uBD84\uC57C\uC758 \uC804\uBB38\uC131\uACFC \uC2E4\uC81C \uC6CC\uD06C\uD50C\uB85C\uB97C \uD655\uC778\uD55C \uB4A4 \uB098\uB9CC\uC758 \uC791\uC5C5 \uACF5\uAC04\uC5D0 \uCD94\uAC00\uD558\uC138\uC694."
9946
+ },
9947
+ shareCommunity: {
9948
+ title: "\uCEE4\uBBA4\uB2C8\uD2F0 \uACF5\uC720 | Nolo.Chat\uC73C\uB85C \uC644\uC131\uB41C \uC2E4\uC81C \uC791\uC5C5 \uC0AC\uB840",
9949
+ description: "Nolo \uCEE4\uBBA4\uB2C8\uD2F0\uC5D0\uC11C \uACF5\uAC1C \uACF5\uC720\uD55C \uB300\uD654, \uBB38\uC11C, \uC571, \uC791\uC5C5 \uACB0\uACFC\uBB3C\uC744 \uB458\uB7EC\uBCF4\uACE0 \uC2E4\uC81C \uC5C5\uBB34\uC5D0 AI\uB97C \uD65C\uC6A9\uD558\uB294 \uBC29\uBC95\uC744 \uD655\uC778\uD558\uC138\uC694."
9950
+ },
9951
+ about: {
9952
+ title: "Nolo.Chat \uC18C\uAC1C | \uC790\uC728\uD615 \uBA40\uD2F0 \uC5D0\uC774\uC804\uD2B8 AI \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4",
9953
+ description: "Nolo.Chat\uC758 \uBBF8\uC158\uACFC \uBE44\uC804: \uB85C\uCEEC \uC6B0\uC120 \uC544\uD0A4\uD14D\uCC98, \uC790\uC728\uC801\uC778 \uBA40\uD2F0 \uC5D0\uC774\uC804\uD2B8 \uD611\uC5C5, \uC9C0\uC18D\uC801\uC778 \uC7A5\uAE30 \uAE30\uC5B5, \uB2E4\uC911 \uBAA8\uB378 \uC870\uC728\uC744 \uD1B5\uD574 \uC2E4\uC81C \uC5C5\uBB34\uB97C \uC644\uC218\uD558\uB294 AI \uD300\uC744 \uAD6C\uCD95\uD569\uB2C8\uB2E4."
9954
+ },
9955
+ contact: {
9956
+ title: "\uBB38\uC758\uD558\uAE30 | Nolo.Chat \uACF5\uC2DD \uC9C0\uC6D0 \uBC0F \uCEE4\uBBA4\uB2C8\uD2F0",
9957
+ description: "Nolo.Chat \uAE30\uC220 \uC9C0\uC6D0, \uC81C\uD734, \uD53C\uB4DC\uBC31 \uBC0F \uCEE4\uBBA4\uB2C8\uD2F0 \uCC44\uB110 \uC548\uB0B4. \uC774\uBA54\uC77C \uBC0F \uACF5\uC2DD \uCC44\uB110\uC744 \uD1B5\uD574 \uC5B8\uC81C\uB4E0\uC9C0 \uBB38\uC758\uD574 \uC8FC\uC138\uC694."
9898
9958
  }
9899
9959
  }
9900
9960
  };
@@ -11357,6 +11417,21 @@ var resources = {
11357
11417
  space: space_locale_default["ja" /* JA */].translation,
11358
11418
  ai: ai_locale_default["ja" /* JA */].translation,
11359
11419
  chat: chat_locale_default["ja" /* JA */].translation
11420
+ },
11421
+ ["ko" /* KO */]: {
11422
+ common: {
11423
+ ...interface_locale_default["ko" /* KO */]?.translation ?? interface_locale_default["en" /* EN */].translation,
11424
+ ...error_locale_default["ko" /* KO */]?.translation ?? error_locale_default["en" /* EN */].translation,
11425
+ ...appBuilder_locale_default["ko" /* KO */]?.translation ?? appBuilder_locale_default["en" /* EN */].translation,
11426
+ ...pricing_locale_default["ko" /* KO */]?.translation ?? pricing_locale_default["en" /* EN */].translation,
11427
+ ...privacy_locale_default["ko" /* KO */]?.translation ?? privacy_locale_default["en" /* EN */].translation,
11428
+ ...terms_locale_default["ko" /* KO */]?.translation ?? terms_locale_default["en" /* EN */].translation,
11429
+ ...localFirst_locale_default["ko" /* KO */]?.translation ?? localFirst_locale_default["en" /* EN */].translation,
11430
+ seo: seo_locale_default["ko" /* KO */]
11431
+ },
11432
+ space: space_locale_default["ko" /* KO */]?.translation ?? space_locale_default["en" /* EN */].translation,
11433
+ ai: ai_locale_default["ko" /* KO */]?.translation ?? ai_locale_default["en" /* EN */].translation,
11434
+ chat: chat_locale_default["ko" /* KO */]?.translation ?? chat_locale_default["en" /* EN */].translation
11360
11435
  }
11361
11436
  };
11362
11437
  var i18nConfig = {
@@ -14907,7 +14982,7 @@ async function deleteDialogsFunc(args, thunkApi) {
14907
14982
  const deletedDialogIds = [];
14908
14983
  const deletedDialogKeys = [];
14909
14984
  const failures = [];
14910
- const { deleteDialog } = await import("./dialogSlice-WARDZORM.js");
14985
+ const { deleteDialog } = await import("./dialogSlice-BTBQL3E6.js");
14911
14986
  for (const target of targets) {
14912
14987
  try {
14913
14988
  await thunkApi.dispatch(deleteDialog(target.dbKey)).unwrap();
@@ -24434,7 +24509,7 @@ var executeToolRun = createAsyncThunk(
24434
24509
  if (!executionInput) {
24435
24510
  throw new Error(`ToolRun ${id} has no input to execute with.`);
24436
24511
  }
24437
- const { findToolExecutor: findToolExecutor2 } = await import("./tools-ETBZCODF.js");
24512
+ const { findToolExecutor: findToolExecutor2 } = await import("./tools-B3Z2MOPZ.js");
24438
24513
  const { executor } = findToolExecutor2(run.toolName);
24439
24514
  toolRunStarted({
24440
24515
  id: run.id,
@@ -24458,7 +24533,7 @@ var executeToolRun = createAsyncThunk(
24458
24533
  const latestState = thunkApi.getState();
24459
24534
  const userId = latestState.auth?.currentUser?.userId;
24460
24535
  if (userId) {
24461
- const { fetchUserSpaceMemberships } = await import("./spaceSlice-GAP74242.js");
24536
+ const { fetchUserSpaceMemberships } = await import("./spaceSlice-2COL6PNH.js");
24462
24537
  await thunkApi.dispatch(fetchUserSpaceMemberships(userId));
24463
24538
  }
24464
24539
  }
@@ -26941,7 +27016,7 @@ async function updateDocFunc(args, thunkApi) {
26941
27016
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
26942
27017
  };
26943
27018
  await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
26944
- const { getDocState, applyExternalDocUpdate } = await import("./docStore-LGYJZBWV.js");
27019
+ const { getDocState, applyExternalDocUpdate } = await import("./docStore-VUO3IPY5.js");
26945
27020
  if (getDocState().pageKey === id) {
26946
27021
  applyExternalDocUpdate({
26947
27022
  slateData: finalSlateData,
@@ -10,7 +10,7 @@ import {
10
10
  fetchAndSerializeTable,
11
11
  resolveBuiltinSkillPage,
12
12
  waitForAbortableDelay
13
- } from "./chunk-V4DRJMRC.js";
13
+ } from "./chunk-BAMXQS37.js";
14
14
  import {
15
15
  createDrainExhaustedResponse,
16
16
  isCoreDrainingBody,
@@ -26,13 +26,13 @@ import {
26
26
  } from "./chunk-GM6PU7B6.js";
27
27
  import {
28
28
  fetchAndCacheMessages
29
- } from "./chunk-GRAHWRXC.js";
29
+ } from "./chunk-K7QWM5WO.js";
30
30
  import {
31
31
  shouldUseServerProxy
32
32
  } from "./chunk-YYLHWIW6.js";
33
33
  import {
34
34
  fetchServerSyncedCredential
35
- } from "./chunk-JW3GC4BM.js";
35
+ } from "./chunk-AFVQC5TV.js";
36
36
  import {
37
37
  buildCurrentTimeBlock,
38
38
  buildIdentityBlock,
@@ -557,16 +557,18 @@ ${description}
557
557
  ${content} ` : "";
558
558
  var buildResponseGuidelines = (isMobile) => {
559
559
  if (isMobile) {
560
- return `-- - \u54CD\u5E94\u5C55\u793A\u6307\u5357-- -
561
- \u8BF7\u4E3A\u79FB\u52A8\u7AEF\u8FDB\u884C\u4F18\u5316\uFF1A
562
- - \u4F7F\u7528\u66F4\u77ED\u7684\u6BB5\u843D\u548C\u7B80\u6D01\u7684\u9879\u76EE\u7B26\u53F7\u5217\u8868\u3002
563
- - \u907F\u514D\u8FC7\u5BBD\u7684\u8868\u683C\u6216\u4EE3\u7801\u5757\uFF0C\u4EE5\u514D\u4EA7\u751F\u6A2A\u5411\u6EDA\u52A8\u3002
564
- - \u4F18\u5148\u91C7\u7528\u5782\u76F4\u6392\u5E03\uFF0C\u800C\u4E0D\u662F\u5DE6\u53F3\u5E76\u6392\u7684\u5E03\u5C40\u3002`;
565
- }
566
- return `-- - \u54CD\u5E94\u5C55\u793A\u6307\u5357-- -
567
- \u4F60\u7684\u56DE\u590D\u5C06\u663E\u793A\u5728\u5927\u5C4F\u5E55\u4E0A\u3002\u4F60\u53EF\u4EE5\uFF1A
568
- - \u63D0\u4F9B\u66F4\u4E30\u5BCC\u7684\u63A8\u7406\u8FC7\u7A0B\u8BF4\u660E\u548C\u66F4\u6709\u5C42\u6B21\u7684\u7ED3\u6784\u3002
569
- - \u5728\u5408\u9002\u7684\u573A\u666F\u4E0B\u4F7F\u7528\u5BBD\u5C4F\u4F18\u52BF\uFF0C\u4F8B\u5982\u66F4\u5BBD\u7684\u8868\u683C\u3001\u5E76\u6392\u5BF9\u6BD4\u5C55\u793A\u3001\u66F4\u957F\u7684\u4EE3\u7801\u5757\u7B49\u3002`;
560
+ return `--- \u54CD\u5E94\u5C55\u793A\u6307\u5357\uFF08\u7A84\u5C4F / TUI / \u79FB\u52A8\u7AEF\uFF09 ---
561
+ \u5F53\u524D\u5904\u4E8E\u7A84\u5C4F\u6216\u7EC8\u7AEF\u89C6\u56FE\uFF0C\u8BF7\u91C7\u7528\u7D27\u51D1\u3001\u9AD8\u626B\u63CF\u7387\u7684\u6392\u7248\uFF1A
562
+ - \u3010\u7ED3\u6784\u8282\u594F\u3011\u7ED3\u8BBA\u6216\u5173\u952E\u72B6\u6001\u7F6E\u9876\uFF0C\u62D2\u7EDD\u5BC6\u96C6\u957F\u6BB5\u843D\uFF1B\u6BCF\u6BB5\u4FDD\u6301 2-3 \u884C\uFF0C\u5584\u7528\u300C---\u300D\u6216\u5F15\u7528\u5757\u505A\u5361\u7247\u5316\u5207\u5206\u3002
563
+ - \u3010\u7B26\u53F7\u5C42\u7EA7\u3011\u7528\u660E\u786E\u89C6\u89C9\u951A\u70B9\uFF08\u5982 \u25B8\u3001\u2022\u30011.\u3001\u2714 / \u2718 / \u26A0\uFF09\u66FF\u4EE3\u5E73\u94FA\u53D9\u8FF0\uFF0C\u7F29\u8FDB\u4E0D\u8D85\u8FC7 2 \u5C42\u3002
564
+ - \u3010\u9632\u6298\u884C\u7834\u788E\u3011\u4E25\u7981\u4F7F\u7528 \u22654 \u5217\u7684\u5927\u5BBD\u8868\uFF08\u7EC8\u7AEF\u4E0B\u6298\u884C\u4F1A\u4E25\u91CD\u9519\u4F4D\uFF09\uFF0C\u6539\u7528\u300C\u952E\u503C\u6E05\u5355\u300D\u6216\u7EB5\u5411\u5361\u7247\uFF1B\u6587\u4EF6\u8DEF\u5F84\u3001\u547D\u4EE4\u53CA\u6807\u8BC6\u7B26\u4E00\u5F8B\u7528\u53CD\u5F15\u53F7 \` \` \u5305\u88F9\u4FDD\u62A4\u3002
565
+ - \u3010\u7D27\u51D1\u4EE3\u7801\u3011\u4EE3\u7801\u5757\u5C3D\u91CF\u53EA\u4FDD\u7559\u5173\u952E\u4E0A\u4E0B\u6587\u4E0E\u5FC5\u8981\u884C\uFF0C\u907F\u514D\u6A2A\u5411\u8D85\u957F\u884C\u3002`;
566
+ }
567
+ return `--- \u54CD\u5E94\u5C55\u793A\u6307\u5357\uFF08\u5BBD\u5C4F / \u684C\u9762\u7AEF\uFF09 ---
568
+ \u5F53\u524D\u5904\u4E8E\u5927\u5C4F\u89C6\u56FE\uFF0C\u53EF\u5145\u5206\u53D1\u6325\u7A7A\u95F4\u4F18\u52BF\uFF1A
569
+ - \u3010\u7ED3\u6784\u5316\u5168\u666F\u3011\u63D0\u4F9B\u5C42\u6B21\u6E05\u6670\u7684\u903B\u8F91\u6811\u3001\u6D41\u7A0B\u56FE\u6216\u7ED3\u6784\u5316\u63A8\u5BFC\uFF0C\u91CD\u8981\u6A21\u5757\u4F7F\u7528\u4E8C\u7EA7/\u4E09\u7EA7\u6807\u9898\u6E05\u6670\u5212\u5206\u3002
570
+ - \u3010\u5BF9\u6BD4\u4E0E\u8868\u683C\u3011\u9002\u5408\u4F7F\u7528 Markdown \u591A\u5217\u8868\u683C\u8FDB\u884C\u65B9\u6848\u6A2A\u5411\u5BF9\u6BD4\u3001\u53C2\u6570\u6C47\u603B\u6216\u77E9\u9635\u5206\u6790\u3002
571
+ - \u3010\u4EE3\u7801\u5B8C\u6574\u5EA6\u3011\u53EF\u5C55\u793A\u66F4\u5B8C\u6574\u7684\u6587\u4EF6\u4E0A\u4E0B\u6587\u3001\u7C7B\u578B\u5B9A\u4E49\u4E0E\u591A\u6B65\u6267\u884C\u793A\u4F8B\uFF0C\u914D\u5408\u6E05\u6670\u7684\u6CE8\u91CA\u8BF4\u660E\u3002`;
570
572
  };
571
573
  var buildReferenceMaterialsBlock = (contexts) => {
572
574
  const sections = [
@@ -20,7 +20,7 @@ import {
20
20
  parseAgentRunEvent,
21
21
  t,
22
22
  toolLabel
23
- } from "./chunk-BIGW743S.js";
23
+ } from "./chunk-GRBVD5LC.js";
24
24
  import {
25
25
  getReadableCliDb
26
26
  } from "./chunk-UNHKVD2N.js";
@@ -28,7 +28,7 @@ import {
28
28
  normalizeAgentHandle,
29
29
  readDbRecord,
30
30
  resolveAgentRecordFromHybridStore
31
- } from "./chunk-BY53PPQ2.js";
31
+ } from "./chunk-Z22GYXSI.js";
32
32
  import {
33
33
  NOLO_PROJECT_MANAGER_AGENT_KEY,
34
34
  isLocalCliAgentKey
@@ -39,7 +39,7 @@ import {
39
39
  } from "./chunk-LTRXGFMS.js";
40
40
  import {
41
41
  formatAgentListCard
42
- } from "./chunk-V4DRJMRC.js";
42
+ } from "./chunk-BAMXQS37.js";
43
43
  import {
44
44
  isGatewayHttpStatus
45
45
  } from "./chunk-RQSOAMPJ.js";
@@ -48,7 +48,7 @@ import {
48
48
  chooseMemoryOwners,
49
49
  loadMemoryCandidatesFromDb,
50
50
  resolveAgentMemoryPolicy
51
- } from "./chunk-BYJ2VKGP.js";
51
+ } from "./chunk-AABBRVFT.js";
52
52
  import {
53
53
  CliProviderQuotaError
54
54
  } from "./chunk-JDSUTNYY.js";
@@ -59,7 +59,7 @@ import {
59
59
  API_REPORTED_COST_MULTIPLIER,
60
60
  normalizeUsage,
61
61
  parseUiAskChoiceContent
62
- } from "./chunk-GRAHWRXC.js";
62
+ } from "./chunk-K7QWM5WO.js";
63
63
  import {
64
64
  resolveAgentRuntimeConfigFromRecord
65
65
  } from "./chunk-OIQPORYI.js";
@@ -77,6 +77,9 @@ import {
77
77
  import {
78
78
  resolvePlatformAuthToken
79
79
  } from "./chunk-OQVRTSZ5.js";
80
+ import {
81
+ isQuotaExhaustedError
82
+ } from "./chunk-MBUNBGBE.js";
80
83
  import {
81
84
  DEFAULT_CONTEXT_WINDOW,
82
85
  getModelContextWindow
@@ -3900,7 +3903,7 @@ function findCollapsedPasteSpanAt(buffer, pos, opts = {}) {
3900
3903
  // packages/cli/client/agentRun.ts
3901
3904
  import { ulid } from "ulid";
3902
3905
  async function loadRunLocalAgentTurn() {
3903
- const { runLocalAgentTurn } = await import("./agentRuntimeLocal-KI7SGGDI.js");
3906
+ const { runLocalAgentTurn } = await import("./agentRuntimeLocal-ZF6GOTZV.js");
3904
3907
  return runLocalAgentTurn;
3905
3908
  }
3906
3909
  async function resolveCurrentMachineId(options) {
@@ -5245,40 +5248,6 @@ var resolveCliMemory = async (input) => {
5245
5248
  }
5246
5249
  };
5247
5250
 
5248
- // packages/ai/tools/agent/quotaCircuitBreaker.ts
5249
- var QUOTA_ERROR_PATTERNS = [
5250
- /429/,
5251
- /quota/i,
5252
- /rate\s*limit/i,
5253
- /too\s*many\s*requests/i,
5254
- /额度/,
5255
- /上限/,
5256
- /用尽/,
5257
- /CliProviderQuotaError/i
5258
- ];
5259
- function isCliProviderQuotaErrorShape(error) {
5260
- if (!error || typeof error !== "object") return false;
5261
- const e = error;
5262
- return e.name === "CliProviderQuotaError" || typeof e.message === "string" && e.message.startsWith("[QUOTA_LIMITED:");
5263
- }
5264
- function isQuotaExhaustedError(error) {
5265
- if (!error) return false;
5266
- if (isCliProviderQuotaErrorShape(error)) return true;
5267
- if (error instanceof Error) {
5268
- return QUOTA_ERROR_PATTERNS.some((pattern) => pattern.test(error.message));
5269
- }
5270
- if (typeof error === "string") {
5271
- return QUOTA_ERROR_PATTERNS.some((pattern) => pattern.test(error));
5272
- }
5273
- const maybeStatus = error.status;
5274
- if (typeof maybeStatus === "number" && maybeStatus === 429) return true;
5275
- const maybeStatusCode = error.statusCode;
5276
- if (typeof maybeStatusCode === "number" && maybeStatusCode === 429) return true;
5277
- return false;
5278
- }
5279
- var DEFAULT_QUOTA_BREAKER_MS = 6 * 3600 * 1e3;
5280
- var DEFAULT_AGENT_NOT_FOUND_BREAKER_MS = 15 * 60 * 1e3;
5281
-
5282
5251
  // packages/cli/agentRunCommand.ts
5283
5252
  function resolvePositiveMs(value, fallback) {
5284
5253
  return parsePositiveFiniteNumberOrFallback(value, fallback);
@@ -5791,8 +5760,6 @@ export {
5791
5760
  normalizeCliImageInput,
5792
5761
  inspectLocalRunWorkspace,
5793
5762
  resolveCliMemory,
5794
- QUOTA_ERROR_PATTERNS,
5795
- isQuotaExhaustedError,
5796
5763
  runAgentRunCommand,
5797
5764
  isBalanceExhaustedError
5798
5765
  };
@@ -2,7 +2,7 @@ import {
2
2
  deleteDbRecord,
3
3
  queryUserRecords,
4
4
  readDbRecord
5
- } from "./chunk-BY53PPQ2.js";
5
+ } from "./chunk-Z22GYXSI.js";
6
6
  import {
7
7
  mergeAndDedupUserData
8
8
  } from "./chunk-KQHGZWSV.js";
@@ -5,10 +5,10 @@ import {
5
5
  inlineImageUrlsForCustomProvider,
6
6
  prepareTools,
7
7
  shouldInlineImageUrlsForAgent
8
- } from "./chunk-B754NVDZ.js";
8
+ } from "./chunk-7UFAVUWF.js";
9
9
  import {
10
10
  performFetchRequest
11
- } from "./chunk-JQIXQ7NW.js";
11
+ } from "./chunk-BHD66D3G.js";
12
12
  import {
13
13
  getPublicImageAgentMode
14
14
  } from "./chunk-VIDPVFP3.js";
@@ -22,19 +22,19 @@ import {
22
22
  toolRunSetPending,
23
23
  toolRunStarted,
24
24
  toolRunSucceeded
25
- } from "./chunk-V4DRJMRC.js";
25
+ } from "./chunk-BAMXQS37.js";
26
26
  import {
27
27
  getCurrentSpaceId
28
- } from "./chunk-TPSCHAUZ.js";
28
+ } from "./chunk-JH5TECHI.js";
29
29
  import {
30
30
  addToolMessage,
31
31
  messageStreamEnd,
32
32
  messageStreaming,
33
33
  updateToolMessage
34
- } from "./chunk-GRAHWRXC.js";
34
+ } from "./chunk-K7QWM5WO.js";
35
35
  import {
36
36
  streamAgentChatTurn
37
- } from "./chunk-JW3GC4BM.js";
37
+ } from "./chunk-AFVQC5TV.js";
38
38
  import {
39
39
  EMPTY_ASSISTANT_REPAIR_PROMPT
40
40
  } from "./chunk-YZYQYYOU.js";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-IEHZHWN7.js";
8
8
  import {
9
9
  buildLocalAgentLookupKeys
10
- } from "./chunk-X2DAEZ3X.js";
10
+ } from "./chunk-ZFGAPMSF.js";
11
11
  import {
12
12
  LOCAL_CODEX_AGENT_ID,
13
13
  LOCAL_CODEX_AGENT_KEY,
@@ -20,7 +20,7 @@ import {
20
20
  import {
21
21
  inlineImageUrlsForCustomProvider,
22
22
  prepareTools
23
- } from "./chunk-B754NVDZ.js";
23
+ } from "./chunk-7UFAVUWF.js";
24
24
  import {
25
25
  getServerProviderSecret
26
26
  } from "./chunk-HS7MLR74.js";
@@ -39,7 +39,7 @@ import {
39
39
  rememberMemoryFunctionSchema,
40
40
  resolveAgentRequiredPackIds,
41
41
  setTodoListFunc
42
- } from "./chunk-V4DRJMRC.js";
42
+ } from "./chunk-BAMXQS37.js";
43
43
  import {
44
44
  createDrainExhaustedResponse,
45
45
  isCoreDrainingBody,
@@ -62,13 +62,13 @@ import {
62
62
  prepareTokenUsageData,
63
63
  resolveBuiltinPlatformAgentConfig,
64
64
  runKeyed
65
- } from "./chunk-GRAHWRXC.js";
65
+ } from "./chunk-K7QWM5WO.js";
66
66
  import {
67
67
  BUILTIN_TITLE_LLM_CONFIG
68
68
  } from "./chunk-RCFIB45Q.js";
69
69
  import {
70
70
  fetchServerSyncedCredential
71
- } from "./chunk-JW3GC4BM.js";
71
+ } from "./chunk-AFVQC5TV.js";
72
72
  import {
73
73
  require_date_fns
74
74
  } from "./chunk-M76ECQRD.js";
@@ -85,15 +85,13 @@ import {
85
85
  executeLocalToolWithPolicy,
86
86
  executeOpenAiCompatibleChatCompletion,
87
87
  filterRetainedLedgerRecords,
88
- isAgentCoolingDown,
89
88
  isLineRangeCovered,
90
89
  localDialogMessageRecordToRuntimeMessage,
91
90
  parseSseDataLineJson,
92
91
  parseSseDataLineObject,
93
92
  parseSyncServersEnv,
94
- resolveAgentNextAvailableAt,
95
93
  resolveOpenAiCompatibleProviderConfig
96
- } from "./chunk-TEFI7S3J.js";
94
+ } from "./chunk-HBS537VN.js";
97
95
  import {
98
96
  buildPlatformChatCompletionRequest,
99
97
  canUsePlatformChatProvider,
@@ -122,9 +120,12 @@ import {
122
120
  } from "./chunk-OQVRTSZ5.js";
123
121
  import {
124
122
  buildNoloWorkspaceOpenAiTools,
123
+ isAgentUnavailableNow,
124
+ mergeAvailabilityDeadline,
125
125
  parseNoloWorkspaceToolArguments,
126
+ resolveAvailabilityAction,
126
127
  resolveRuntimeToolSurfaceForAgent
127
- } from "./chunk-ADLYMQB6.js";
128
+ } from "./chunk-MBUNBGBE.js";
128
129
  import {
129
130
  buildDialogFallbackTitleFromUserInput,
130
131
  normalizeDialogTitle
@@ -11145,20 +11146,31 @@ function createCliLocalRuntimeAdapter(deps) {
11145
11146
  })
11146
11147
  }),
11147
11148
  resolveProviderBase: async (agentConfig) => {
11148
- if (isAgentCoolingDown(agentConfig, now())) {
11149
+ if (isAgentUnavailableNow(agentConfig, now())) {
11149
11150
  throw new Error(
11150
11151
  `agent temporarily unavailable until ${new Date(Number(agentConfig.nextAvailableAt)).toISOString()}`
11151
11152
  );
11152
11153
  }
11153
11154
  const recordLocalAvailability = async (status, body) => {
11154
11155
  const key = typeof agentConfig.key === "string" ? agentConfig.key : "";
11155
- if (!key || status !== 200 && status !== 429) return;
11156
- const current = await getOrCreateSharedStore(deps).then((store) => store.read(key, { remote: false })).catch(() => null);
11156
+ if (!key) return;
11157
+ const action = resolveAvailabilityAction(status, body, now());
11158
+ if (action.kind === "noop") return;
11159
+ const store = await getOrCreateSharedStore(deps);
11160
+ const current = await store.read(key, { remote: false }).catch(() => null);
11157
11161
  if (!current || typeof current !== "object") return;
11158
- const next = { ...current };
11159
- if (status === 429) next.nextAvailableAt = resolveAgentNextAvailableAt(body, now());
11160
- else delete next.nextAvailableAt;
11161
- await getOrCreateSharedStore(deps).then((store) => store.write(key, next)).catch(() => void 0);
11162
+ const record = current;
11163
+ if (action.kind === "clear" && !("nextAvailableAt" in record)) return;
11164
+ const next = { ...record };
11165
+ if (action.kind === "mark") {
11166
+ next.nextAvailableAt = mergeAvailabilityDeadline(
11167
+ record.nextAvailableAt,
11168
+ action.nextAvailableAt
11169
+ );
11170
+ } else {
11171
+ delete next.nextAvailableAt;
11172
+ }
11173
+ await store.write(key, next).catch(() => void 0);
11162
11174
  };
11163
11175
  if (isCliProviderAgent(agentConfig)) {
11164
11176
  const provider = resolveCliProviderName(agentConfig);
@@ -11731,6 +11743,7 @@ function createCliLocalRuntimeAdapter(deps) {
11731
11743
  if (!res.ok) {
11732
11744
  const raw2 = await res.text().catch(() => "");
11733
11745
  const data2 = parsePlatformChatCompletionData(raw2);
11746
+ await recordLocalAvailability(res.status, data2);
11734
11747
  const rawPreview = raw2.length > 200 ? `${raw2.slice(0, 200)}\u2026(${raw2.length}b)` : raw2;
11735
11748
  const gatewayHeaders = [
11736
11749
  "server",
@@ -11745,6 +11758,7 @@ function createCliLocalRuntimeAdapter(deps) {
11745
11758
  `platform provider failed: HTTP ${res.status} ${JSON.stringify(data2)}` + (rawPreview ? ` raw="${rawPreview}"` : "") + (gatewayHeaders ? ` headers=[${gatewayHeaders}]` : "")
11746
11759
  );
11747
11760
  }
11761
+ await recordLocalAvailability(res.status);
11748
11762
  const contentType = res.headers.get("content-type") ?? "";
11749
11763
  const shouldStream = Boolean(stream && options?.onTextDelta) && contentType.includes("text/event-stream");
11750
11764
  if (shouldStream && options?.onTextDelta) {
@@ -11869,6 +11883,7 @@ function createCliLocalRuntimeAdapter(deps) {
11869
11883
  }),
11870
11884
  stream,
11871
11885
  onTextDelta: options?.onTextDelta,
11886
+ onHttpResult: ({ status, body }) => recordLocalAvailability(status, body),
11872
11887
  ...resolveRequestApiKey ? { resolveApiKey: resolveRequestApiKey } : {}
11873
11888
  });
11874
11889
  logLocalRuntimeDiagnostic("provider.request.result", {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  listUserRecordsFromServers,
3
3
  readLiveDbRecordAfterTombstoneMerge
4
- } from "./chunk-4ZPH5WGJ.js";
4
+ } from "./chunk-DPSXNP23.js";
5
5
  import {
6
6
  agentRecordHasConfiguredCredential
7
- } from "./chunk-BY53PPQ2.js";
7
+ } from "./chunk-Z22GYXSI.js";
8
8
  import {
9
9
  toSafeAgentSummary
10
- } from "./chunk-FSMXTO3G.js";
10
+ } from "./chunk-NMB23CNE.js";
11
11
  import {
12
12
  PUBLIC_AGENT_KEY_PREFIX,
13
13
  isOwnedAgentKey,