nolo-cli 0.182.0-alpha.1 → 0.184.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 (77) hide show
  1. package/{_executeModel-ZMEMTJMS.js → _executeModel-YYVG3FYU.js} +24 -16
  2. package/{agentDeleteCommand-VXMMVCHV.js → agentDeleteCommand-WAVA6O3U.js} +18 -16
  3. package/{agentEmailCommands-G3UR3SVL.js → agentEmailCommands-T5RB2RKP.js} +20 -18
  4. package/{agentListCommands-V2F7XVZN.js → agentListCommands-QZN5WVJ5.js} +23 -63
  5. package/{agentMachineCommands-FALEGGEG.js → agentMachineCommands-BBADUZ7U.js} +7 -6
  6. package/{agentRecordCommands-HN7WNNGT.js → agentRecordCommands-N4YEVYKR.js} +19 -17
  7. package/{agentRunCommand-N3RD7WQ2.js → agentRunCommand-G7H745CP.js} +20 -18
  8. package/{agentRuntimeLocal-B2CGM4VH.js → agentRuntimeLocal-ECGPI3CO.js} +6 -5
  9. package/{agentSlice-NG7VBT4O.js → agentSlice-MS5G7UCC.js} +1 -1
  10. package/{appDeleteCommands-2GVSRT6R.js → appDeleteCommands-BY2QK4FR.js} +9 -8
  11. package/{appDeployCommands-UJVGSH4V.js → appDeployCommands-UH2W6LPJ.js} +9 -8
  12. package/{appDeployStatusCommands-4UJDG7P3.js → appDeployStatusCommands-I5DZQFKA.js} +9 -8
  13. package/{appGetCommands-D5HZK3DJ.js → appGetCommands-ZBCBTEO3.js} +9 -8
  14. package/{appListCommands-FAHI4R2I.js → appListCommands-ZA6NXKV3.js} +9 -8
  15. package/{authCommand-AX23Q2Q5.js → authCommand-RGOCQCQT.js} +2 -2
  16. package/{chromeOpsCommands-2KFQEE3H.js → chromeOpsCommands-MVGJZUOQ.js} +1 -1
  17. package/{chunk-EHPJFHFL.js → chunk-2FY2HA4R.js} +4 -4
  18. package/{chunk-J2EVUNED.js → chunk-3GMGSUU2.js} +1 -1
  19. package/{chunk-SO3N2323.js → chunk-3PVH6HJG.js} +2 -2
  20. package/{chunk-JGH3VOCR.js → chunk-5DVM4RIR.js} +2 -2
  21. package/{chunk-3YMDHQAK.js → chunk-5ROGGWPM.js} +8 -8
  22. package/{chunk-EUOPEEMO.js → chunk-7AVKDSWD.js} +1 -1
  23. package/chunk-AMWMV56B.js +73 -0
  24. package/{chunk-Y2CQS353.js → chunk-B3BTDNEC.js} +3 -3
  25. package/{chunk-XYRSQHF2.js → chunk-C3BYVRTJ.js} +2 -2
  26. package/{chunk-7ZGMQZ5D.js → chunk-CSINZLH7.js} +0 -78
  27. package/{chunk-E54QZNU3.js → chunk-DHMXTEM4.js} +1 -1
  28. package/{chunk-7HZ23BLI.js → chunk-FAFNPFGS.js} +7 -7
  29. package/{chunk-G5IZWDSM.js → chunk-FO2BTDKY.js} +11 -9
  30. package/{chunk-BNEHIKIR.js → chunk-GDQ5KO2J.js} +11 -11
  31. package/chunk-H57T64RA.js +80 -0
  32. package/{chunk-JDCX5RWD.js → chunk-HEYJFOL6.js} +1 -1
  33. package/{chunk-KBVF7LOK.js → chunk-HWJZEUA6.js} +2 -2
  34. package/{chunk-UU3QSEA5.js → chunk-IR5IH6LH.js} +12 -15
  35. package/{chunk-53HMDUG6.js → chunk-JJWQ737H.js} +1 -1
  36. package/{chunk-T5RLIVBZ.js → chunk-JWSHARJM.js} +10 -10
  37. package/{chunk-PS3GU7YU.js → chunk-LPV7KKTB.js} +38 -1
  38. package/{chunk-QHFRRM5U.js → chunk-MHC44FKA.js} +3 -3
  39. package/{chunk-T7HBI3WZ.js → chunk-NSASNKVD.js} +4 -2
  40. package/{chunk-RHFEDL32.js → chunk-ORYQ2GDN.js} +2 -2
  41. package/{chunk-ONFC3RLP.js → chunk-PW5CM76N.js} +8 -13
  42. package/{chunk-G5LNJZJH.js → chunk-PZ7LKLIV.js} +2 -2
  43. package/{chunk-YO776XHS.js → chunk-QNLRCES2.js} +2 -2
  44. package/{chunk-HRTEMYBI.js → chunk-R2EDHCTI.js} +1 -1
  45. package/chunk-TZXPT53C.js +8 -0
  46. package/{chunk-GQEQYXWV.js → chunk-WGHIT2HH.js} +13 -13
  47. package/{chunk-ZVVAK3DH.js → chunk-WPWAD6NT.js} +3 -3
  48. package/{commandRegistry-LFXI3KRG.js → commandRegistry-XDGDMYU6.js} +61 -57
  49. package/{contentThunks-AH7QDS6H.js → contentThunks-EWOORWBS.js} +7 -5
  50. package/{cooldownCommands-QFV3ERZX.js → cooldownCommands-5KIQ2FDU.js} +1 -1
  51. package/{createAgentAutomationAction-FAOPVXNF.js → createAgentAutomationAction-TRIAQUAK.js} +7 -5
  52. package/{createDialogAction-DBTKPCXV.js → createDialogAction-FXPXXDRR.js} +8 -6
  53. package/{createPageAction-PZGKZFPS.js → createPageAction-HHFPJKBD.js} +7 -5
  54. package/{dialogCommands-GQPHQ2U6.js → dialogCommands-2M5NWSY2.js} +9 -6
  55. package/{dialogSlice-VHGZCHAQ.js → dialogSlice-4W7DJJC2.js} +6 -4
  56. package/dialogUsageCommand-ZPESQB6W.js +136 -0
  57. package/{docCreateCommands-CQHPL5IB.js → docCreateCommands-PKUJVJ5N.js} +7 -6
  58. package/{docDeleteCommands-Z5UPI5PX.js → docDeleteCommands-C3RNBHIH.js} +7 -6
  59. package/{docReadCommands-2AEKFEFV.js → docReadCommands-JS4W26DI.js} +7 -6
  60. package/{docStore-XGWH3T7Q.js → docStore-VBINJLRX.js} +1 -1
  61. package/{docUpdateCommands-FZD4GSGV.js → docUpdateCommands-NZWDQFDD.js} +7 -6
  62. package/{handleSendMessageAction-XTQQEVD4.js → handleSendMessageAction-FJKTVMCA.js} +11 -9
  63. package/index.js +7 -7
  64. package/{localRuntimeAdapter-LXMUSNJ5.js → localRuntimeAdapter-5ANB7V6J.js} +18 -16
  65. package/{machineCommands-AXD7ISGC.js → machineCommands-A2NAILV6.js} +19 -17
  66. package/{machineWsRunDispatch-PGB3VJGM.js → machineWsRunDispatch-AWIGTEF6.js} +19 -17
  67. package/package.json +1 -1
  68. package/{readlineWorkspace-IO45OJPW.js → readlineWorkspace-GFKEHEXB.js} +23 -21
  69. package/{runAgentClientLoop-2APY5UZL.js → runAgentClientLoop-KV6R3FSU.js} +15 -13
  70. package/{secretCommands-XEQLKDB4.js → secretCommands-Q65QRUI2.js} +1 -1
  71. package/{spaceCommands-LM74S5WK.js → spaceCommands-CIXBPVEY.js} +6 -5
  72. package/{streamAgentChatTurn-Z3KS7XZL.js → streamAgentChatTurn-RTQ2DU4K.js} +17 -15
  73. package/{tools-VWAK7F7J.js → tools-R6JLL5PS.js} +11 -9
  74. package/{tuiSummaryLlmCaller-A6T54UJ3.js → tuiSummaryLlmCaller-5D3XCH2C.js} +4 -3
  75. package/{updateCommands-KDYX32JR.js → updateCommands-WBGORNRR.js} +3 -3
  76. package/{updateDialogTitleAction-WBIPSXFL.js → updateDialogTitleAction-2QNU4T4I.js} +7 -5
  77. package/{windowsSelfUpdate-IYQK4IDS.js → windowsSelfUpdate-EELBE4KH.js} +2 -2
@@ -5,7 +5,7 @@ import {
5
5
  inlineImageUrlsForCustomProvider,
6
6
  prepareTools,
7
7
  shouldInlineImageUrlsForAgent
8
- } from "./chunk-JGH3VOCR.js";
8
+ } from "./chunk-5DVM4RIR.js";
9
9
  import {
10
10
  CONFIRMATION_INPUT_KEYS,
11
11
  INVALID_TOOL_ARGS_REPLACEMENT,
@@ -14,16 +14,16 @@ import {
14
14
  performFetchRequest,
15
15
  sanitizeOutboundMessages,
16
16
  stripModelToolArgs
17
- } from "./chunk-Y2CQS353.js";
17
+ } from "./chunk-B3BTDNEC.js";
18
18
  import {
19
19
  findToolExecutor,
20
20
  toolDefinitionsByName
21
- } from "./chunk-3YMDHQAK.js";
21
+ } from "./chunk-5ROGGWPM.js";
22
22
  import {
23
23
  classifyApiError,
24
24
  classifyGenerationError,
25
25
  extractErrorDiagnostics
26
- } from "./chunk-RHFEDL32.js";
26
+ } from "./chunk-ORYQ2GDN.js";
27
27
  import {
28
28
  createSSEParser,
29
29
  createToolRunId,
@@ -32,7 +32,7 @@ import {
32
32
  toolRunSetPending,
33
33
  toolRunStarted,
34
34
  toolRunSucceeded
35
- } from "./chunk-KBVF7LOK.js";
35
+ } from "./chunk-HWJZEUA6.js";
36
36
  import {
37
37
  getPublicImageAgentMode
38
38
  } from "./chunk-VIDPVFP3.js";
@@ -45,10 +45,10 @@ import {
45
45
  messageStreaming,
46
46
  toolResultNeedsUserConfirmation,
47
47
  updateToolMessage
48
- } from "./chunk-GQEQYXWV.js";
48
+ } from "./chunk-WGHIT2HH.js";
49
49
  import {
50
50
  streamAgentChatTurn
51
- } from "./chunk-QHFRRM5U.js";
51
+ } from "./chunk-MHC44FKA.js";
52
52
  import {
53
53
  addActiveController,
54
54
  removeActiveController,
@@ -85,13 +85,13 @@ import {
85
85
  } from "./chunk-56GBUMO5.js";
86
86
  import {
87
87
  normalizeChatCompletionsBodyForProvider
88
- } from "./chunk-JDCX5RWD.js";
88
+ } from "./chunk-HEYJFOL6.js";
89
89
  import {
90
90
  EMPTY_ASSISTANT_REPAIR_PROMPT
91
- } from "./chunk-T7HBI3WZ.js";
91
+ } from "./chunk-NSASNKVD.js";
92
92
  import {
93
93
  getModelInfo
94
- } from "./chunk-7ZGMQZ5D.js";
94
+ } from "./chunk-CSINZLH7.js";
95
95
  import {
96
96
  isAbortError
97
97
  } from "./chunk-7DPNBQSV.js";
@@ -720,6 +720,17 @@ Use /switch, /switch list, /switch minimax-m3, or a full agent key.`,
720
720
  "agentRunStream.rawErrorDetail": {
721
721
  en: "[nolo] Raw error detail (NOLO_DEBUG=1): {0}\n",
722
722
  zh: "[nolo] \u539F\u59CB\u9519\u8BEF\u8BE6\u60C5\uFF08NOLO_DEBUG=1\uFF09\uFF1A{0}\n"
723
+ },
724
+ // --- `nolo agent run` CLI surface (packages/cli/agentRunCommand.ts) ---
725
+ // The direct CLI entry bypasses the dispatch tool's allowHostWrites guard, so
726
+ // this is the only thing standing between `--runtime-key=local` and host writes.
727
+ "agentRun.hostWriteGuard": {
728
+ en: "[nolo] runtimeKey=local executes on \u2014 and writes to \u2014 the **host filesystem**, so it needs an explicit --allow-host-writes confirmation; drop --runtime-key to run isolated instead (docker sandbox by default).\n",
729
+ zh: "[nolo] runtimeKey=local \u4F1A\u5728**\u5BBF\u4E3B\u6587\u4EF6\u7CFB\u7EDF**\u4E0A\u6267\u884C\u5E76\u5199\u5165\uFF0C\u5FC5\u987B\u663E\u5F0F\u52A0 --allow-host-writes \u786E\u8BA4\uFF1B\u8981\u9694\u79BB\u6267\u884C\u8BF7\u7701\u7565 --runtime-key\uFF08\u9ED8\u8BA4\u8FDB docker \u6C99\u76D2\uFF09\u3002\n"
730
+ },
731
+ "agentRun.instaboxConfigFailed": {
732
+ en: "[nolo] instabox config generation failed: {0}\n",
733
+ zh: "[nolo] instabox \u914D\u7F6E\u751F\u6210\u5931\u8D25: {0}\n"
723
734
  }
724
735
  };
725
736
 
@@ -1474,7 +1485,7 @@ var cliSurfaceStrings = {
1474
1485
  "zh": "\u672A\u77E5\u547D\u4EE4\uFF1A{0}"
1475
1486
  },
1476
1487
  "cliCooldownHelp": {
1477
- "en": "Manage per-credential availability cooldowns (429 \u9650\u6D41\u51B7\u5374).\n\nUsage:\n nolo auth cooldown List all active cooldowns\n nolo auth cooldown --clear <credential> Clear one credential's cooldown\n nolo auth cooldown --clear-all Clear all cooldowns\n\nOptions:\n --clear <credential> Clear the cooldown for the given credential\n (e.g. chatgpt / claude / antigravity, or a custom API credential).\n --clear-all Clear every credential cooldown.\n --help Show this help.\n\nNo argument lists the currently cooled credentials with their human-readable\nrecovery time and remaining duration.\n",
1488
+ "en": "Manage per-credential availability cooldowns (429 rate-limit cooldown).\n\nUsage:\n nolo auth cooldown List all active cooldowns\n nolo auth cooldown --clear <credential> Clear one credential's cooldown\n nolo auth cooldown --clear-all Clear all cooldowns\n\nOptions:\n --clear <credential> Clear the cooldown for the given credential\n (e.g. chatgpt / claude / antigravity, or a custom API credential).\n --clear-all Clear every credential cooldown.\n --help Show this help.\n\nNo argument lists the currently cooled credentials with their human-readable\nrecovery time and remaining duration.\n",
1478
1489
  "zh": "\u7BA1\u7406\u5404\u51ED\u636E\u7684\u53EF\u7528\u6027\u51B7\u5374\uFF08429 \u9650\u6D41\u51B7\u5374\uFF09\u3002\n\n\u7528\u6CD5\uFF1A\n nolo auth cooldown \u5217\u51FA\u6240\u6709\u751F\u6548\u4E2D\u7684\u51B7\u5374\n nolo auth cooldown --clear <credential> \u6E05\u9664\u6307\u5B9A\u51ED\u636E\u7684\u51B7\u5374\n nolo auth cooldown --clear-all \u6E05\u9664\u6240\u6709\u51B7\u5374\n\n\u9009\u9879\uFF1A\n --clear <credential> \u6E05\u9664\u6307\u5B9A\u51ED\u636E\u7684\u51B7\u5374\n \uFF08\u4F8B\u5982 chatgpt / claude / antigravity\uFF0C\u6216\u81EA\u5B9A\u4E49 API \u51ED\u636E\uFF09\u3002\n --clear-all \u6E05\u9664\u5168\u90E8\u51ED\u636E\u51B7\u5374\u3002\n --help \u663E\u793A\u6B64\u5E2E\u52A9\u3002\n\n\u4E0D\u5E26\u53C2\u6570\u65F6\u5217\u51FA\u5904\u4E8E\u51B7\u5374\u4E2D\u7684\u51ED\u636E\u3001\u6062\u590D\u65F6\u95F4\u548C\u5269\u4F59\u65F6\u957F\u3002\n"
1479
1490
  },
1480
1491
  "cliCooldownClearedCount": {
@@ -1591,6 +1602,31 @@ var cliSurfaceStrings = {
1591
1602
  }
1592
1603
  };
1593
1604
 
1605
+ // packages/cli/i18n/strings/dialogCommands.ts
1606
+ var dialogCommandStrings = {
1607
+ "dialogCmd.localDbFallbackChain": {
1608
+ en: " - databases tried (fallback chain: <cwd>/data/leveldb \u2192 NOLO_HOME/data/leveldb):",
1609
+ zh: " - \u5DF2\u5C1D\u8BD5\u7684\u6570\u636E\u5E93\uFF08\u56DE\u9000\u94FE: <cwd>/data/leveldb \u2192 NOLO_HOME/data/leveldb\uFF09:"
1610
+ },
1611
+ "dialogCmd.localDbLockedAdvice": {
1612
+ en: " - the local DB is under an exclusive LevelDB lock held by some process (often the current TUI host process itself; local read-only access is unavailable while the lock is held); read this dialog through the server endpoint instead.",
1613
+ zh: " - \u672C\u5730\u5E93\u6B63\u88AB\u67D0\u4E2A\u8FDB\u7A0B\u6301\u6709 LevelDB \u6392\u4ED6\u9501\uFF08\u5E38\u5E38\u5C31\u662F\u5F53\u524D TUI \u5BBF\u4E3B\u8FDB\u7A0B\u81EA\u5DF1\uFF0C\u672C\u5730\u53EA\u8BFB\u5728\u6301\u9501\u671F\u95F4\u4E0D\u53EF\u7528\uFF09\uFF1B\u8BF7\u901A\u8FC7 server \u7AEF\u70B9\u8BFB\u53D6\u8BE5 dialog\u3002"
1614
+ },
1615
+ // {0} = optional " (tried: <path> → <path>)" suffix; empty when paths are unknown.
1616
+ "dialogCmd.notFoundTriedPaths": {
1617
+ en: " (tried: {0})",
1618
+ zh: "\uFF08\u5DF2\u5C1D\u8BD5\uFF1A{0}\uFF09"
1619
+ },
1620
+ "dialogCmd.notFoundNextStep": {
1621
+ en: " next-step: the target dialog may not live on these servers; dialogs of local runs are looked up with the <cwd>/data/leveldb \u2192 NOLO_HOME/data/leveldb (default ~/.nolo) fallback chain{0}, so read it through the environment/service that owns that store \u2014 a running run can be summarised with `nolo agent status <runId|pid>` or dialog status mode.",
1622
+ zh: " next-step: \u76EE\u6807 dialog \u53EF\u80FD\u4E0D\u5728\u8FD9\u4E9B server \u4E0A\uFF1B\u672C\u5730 run \u7684\u5BF9\u8BDD\u6309 <cwd>/data/leveldb \u2192 NOLO_HOME/data/leveldb\uFF08\u9ED8\u8BA4 ~/.nolo\uFF09\u56DE\u9000\u67E5\u627E{0}\uFF0C\u8BF7\u7528\u5B58\u50A8\u65B9\u5BF9\u5E94\u73AF\u5883/\u670D\u52A1\u8BFB\u53D6\uFF0C\u8FD0\u884C\u4E2D run \u53EF\u7528 `nolo agent status <runId|pid>` \u6216 dialog \u7684 status \u6A21\u5F0F\u67E5\u6458\u8981\u3002"
1623
+ },
1624
+ "dialogCmd.connectivityNextStep": {
1625
+ en: " next-step: connection refused / timeout \u2014 check that the server NOLO_SERVER/--server points at is reachable and running.",
1626
+ zh: " next-step: \u5B58\u5728\u8FDE\u63A5\u62D2\u7EDD/\u8D85\u65F6\uFF0C\u8BF7\u68C0\u67E5 NOLO_SERVER/--server \u6307\u5411\u7684 server \u662F\u5426\u53EF\u8FBE\u3001\u662F\u5426\u5728\u8FD0\u884C\u3002"
1627
+ }
1628
+ };
1629
+
1594
1630
  // packages/cli/i18n/strings/common.ts
1595
1631
  var commonStrings = {
1596
1632
  placeholder: {
@@ -2394,6 +2430,7 @@ var STRINGS = {
2394
2430
  ...secretStrings,
2395
2431
  ...docCommandStrings,
2396
2432
  ...cliSurfaceStrings,
2433
+ ...dialogCommandStrings,
2397
2434
  ...commonStrings
2398
2435
  };
2399
2436
  function t(key, ...params) {
@@ -347,7 +347,7 @@ var slice = createSliceWithThunks({
347
347
  const overrides = {};
348
348
  if (args.systemPromptOverride !== void 0) overrides.prompt = args.systemPromptOverride;
349
349
  if (args.toolsOverride !== void 0) overrides.tools = args.toolsOverride;
350
- const { _executeModel } = await import("./_executeModel-ZMEMTJMS.js");
350
+ const { _executeModel } = await import("./_executeModel-YYVG3FYU.js");
351
351
  return _executeModel(
352
352
  {
353
353
  isStreaming: args.isStreaming ?? false,
@@ -368,7 +368,7 @@ var slice = createSliceWithThunks({
368
368
  * - 循环直到无工具调用或触发其他运行时停止条件
369
369
  */
370
370
  runAgent: create.asyncThunk(async (args, thunkApi) => {
371
- const { runAgentClientLoop } = await import("./runAgentClientLoop-2APY5UZL.js");
371
+ const { runAgentClientLoop } = await import("./runAgentClientLoop-KV6R3FSU.js");
372
372
  const { content: loopContent, toolCallCount } = await runAgentClientLoop(
373
373
  {
374
374
  agentKey: args.agentKey,
@@ -384,7 +384,7 @@ var slice = createSliceWithThunks({
384
384
  * 聊天轮次流式 Agent 调用
385
385
  */
386
386
  streamAgentChatTurn: create.asyncThunk(async (args, thunkApi) => {
387
- const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-Z3KS7XZL.js");
387
+ const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-RTQ2DU4K.js");
388
388
  return streamAgentChatTurnHandler(args, thunkApi);
389
389
  }),
390
390
  /**
@@ -2,9 +2,11 @@ import {
2
2
  isDevinOAuthAgent
3
3
  } from "./chunk-5ZUL4CUO.js";
4
4
  import {
5
- getModelContextWindow,
5
+ getModelContextWindow
6
+ } from "./chunk-CSINZLH7.js";
7
+ import {
6
8
  normalizeTimingMs
7
- } from "./chunk-7ZGMQZ5D.js";
9
+ } from "./chunk-H57T64RA.js";
8
10
  import {
9
11
  BUILTIN_NOLO_AGENT_KEY
10
12
  } from "./chunk-LOEO7LRC.js";
@@ -2,7 +2,7 @@ import {
2
2
  clipMultilineText,
3
3
  fetchAndSerializeTable,
4
4
  waitForAbortableDelay
5
- } from "./chunk-KBVF7LOK.js";
5
+ } from "./chunk-HWJZEUA6.js";
6
6
  import {
7
7
  isGatewayHttpStatus
8
8
  } from "./chunk-NF64D32W.js";
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-AGIM7IMJ.js";
22
22
  import {
23
23
  fetchAndCacheMessages
24
- } from "./chunk-GQEQYXWV.js";
24
+ } from "./chunk-WGHIT2HH.js";
25
25
  import {
26
26
  createSpaceKey
27
27
  } from "./chunk-UAD2WT54.js";
@@ -62,6 +62,9 @@ import {
62
62
  resolveServerCandidates,
63
63
  resolveServerUrl
64
64
  } from "./chunk-WACI5I6V.js";
65
+ import {
66
+ t
67
+ } from "./chunk-LPV7KKTB.js";
65
68
  import {
66
69
  isRecord
67
70
  } from "./chunk-KUG52IAP.js";
@@ -1212,9 +1215,7 @@ function formatDialogReadFailure(error, fallbackDialogId) {
1212
1215
  lines.push(` - attempted: yes`);
1213
1216
  lines.push(` - reason: ${localFailure.reason}`);
1214
1217
  if (localFailure.attempts?.length) {
1215
- lines.push(
1216
- " - databases tried\uFF08\u56DE\u9000\u94FE: <cwd>/data/leveldb \u2192 NOLO_HOME/data/leveldb\uFF09:"
1217
- );
1218
+ lines.push(t("dialogCmd.localDbFallbackChain"));
1218
1219
  for (const attempt of localFailure.attempts) {
1219
1220
  lines.push(` - ${attempt.path} \u2014 ${attempt.status}: ${attempt.reason}`);
1220
1221
  }
@@ -1222,9 +1223,7 @@ function formatDialogReadFailure(error, fallbackDialogId) {
1222
1223
  lines.push(` - database: ${localFailure.path}`);
1223
1224
  }
1224
1225
  if (localFailure.locked) {
1225
- lines.push(
1226
- " - \u672C\u5730\u5E93\u6B63\u88AB\u67D0\u4E2A\u8FDB\u7A0B\u6301\u6709 LevelDB \u6392\u4ED6\u9501\uFF08\u5E38\u5E38\u5C31\u662F\u5F53\u524D TUI \u5BBF\u4E3B\u8FDB\u7A0B\u81EA\u5DF1\uFF0C\u672C\u5730\u53EA\u8BFB\u5728\u6301\u9501\u671F\u95F4\u4E0D\u53EF\u7528\uFF09\uFF1B\u8BF7\u901A\u8FC7 server \u7AEF\u70B9\u8BFB\u53D6\u8BE5 dialog\u3002"
1227
- );
1226
+ lines.push(t("dialogCmd.localDbLockedAdvice"));
1228
1227
  }
1229
1228
  }
1230
1229
  if (attempts.length > 0) {
@@ -1254,14 +1253,10 @@ function formatDialogReadFailure(error, fallbackDialogId) {
1254
1253
  text.includes("unable to connect");
1255
1254
  });
1256
1255
  if (allNotFound) {
1257
- const triedPaths = localFailure?.paths?.length ? `\uFF08\u5DF2\u5C1D\u8BD5\uFF1A${localFailure.paths.join(" \u2192 ")}\uFF09` : "";
1258
- lines.push(
1259
- " next-step: \u76EE\u6807 dialog \u53EF\u80FD\u4E0D\u5728\u8FD9\u4E9B server \u4E0A\uFF1B\u672C\u5730 run \u7684\u5BF9\u8BDD\u6309 <cwd>/data/leveldb \u2192 NOLO_HOME/data/leveldb\uFF08\u9ED8\u8BA4 ~/.nolo\uFF09\u56DE\u9000\u67E5\u627E" + triedPaths + "\uFF0C\u8BF7\u7528\u5B58\u50A8\u65B9\u5BF9\u5E94\u73AF\u5883/\u670D\u52A1\u8BFB\u53D6\uFF0C\u8FD0\u884C\u4E2D run \u53EF\u7528 `nolo agent status <runId|pid>` \u6216 dialog \u7684 status \u6A21\u5F0F\u67E5\u6458\u8981\u3002"
1260
- );
1256
+ const triedPaths = localFailure?.paths?.length ? t("dialogCmd.notFoundTriedPaths", localFailure.paths.join(" \u2192 ")) : "";
1257
+ lines.push(t("dialogCmd.notFoundNextStep", triedPaths));
1261
1258
  } else if (hasConnRefusedOrTimeout) {
1262
- lines.push(
1263
- " next-step: \u5B58\u5728\u8FDE\u63A5\u62D2\u7EDD/\u8D85\u65F6\uFF0C\u8BF7\u68C0\u67E5 NOLO_SERVER/--server \u6307\u5411\u7684 server \u662F\u5426\u53EF\u8FBE\u3001\u662F\u5426\u5728\u8FD0\u884C\u3002"
1264
- );
1259
+ lines.push(t("dialogCmd.connectivityNextStep"));
1265
1260
  }
1266
1261
  return lines.join("\n");
1267
1262
  }
@@ -12,10 +12,10 @@ import {
12
12
  } from "./chunk-Y6ROFCZO.js";
13
13
  import {
14
14
  scheduleWindowsSelfUpdate
15
- } from "./chunk-53HMDUG6.js";
15
+ } from "./chunk-JJWQ737H.js";
16
16
  import {
17
17
  t
18
- } from "./chunk-PS3GU7YU.js";
18
+ } from "./chunk-LPV7KKTB.js";
19
19
  import {
20
20
  normalizeServerOrigin
21
21
  } from "./chunk-CF7PE763.js";
@@ -30,11 +30,11 @@ import {
30
30
  stablePromptCacheKey,
31
31
  toOpenAiCompatibleMessages,
32
32
  toResponsesTools
33
- } from "./chunk-JDCX5RWD.js";
33
+ } from "./chunk-HEYJFOL6.js";
34
34
  import {
35
35
  isMeaningfulChatCompletionOutput,
36
36
  isMeaningfulResponsesOutput
37
- } from "./chunk-7ZGMQZ5D.js";
37
+ } from "./chunk-H57T64RA.js";
38
38
  import {
39
39
  clipCompactText
40
40
  } from "./chunk-5MMAK75Q.js";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-62TBKWTV.js";
7
7
  import {
8
8
  clearCliLocalRuntimePreparedAgentCache
9
- } from "./chunk-BNEHIKIR.js";
9
+ } from "./chunk-GDQ5KO2J.js";
10
10
  import {
11
11
  readCredentialAvailability
12
12
  } from "./chunk-R4BMKAR5.js";
@@ -0,0 +1,8 @@
1
+ // packages/ai/token/usageConstants.ts
2
+ var ALL_MODELS = "\u5168\u90E8\u6A21\u578B";
3
+ var LOCAL_USER_ID = "local";
4
+
5
+ export {
6
+ ALL_MODELS,
7
+ LOCAL_USER_ID
8
+ };
@@ -1,3 +1,6 @@
1
+ import {
2
+ LOCAL_USER_ID
3
+ } from "./chunk-TZXPT53C.js";
1
4
  import {
2
5
  BUILTIN_DIALOG_LLM_FALLBACK_MODEL,
3
6
  BUILTIN_SUMMARY_LLM_CONFIG
@@ -11,7 +14,7 @@ import {
11
14
  } from "./chunk-QYPE3TS3.js";
12
15
  import {
13
16
  runLlm
14
- } from "./chunk-QHFRRM5U.js";
17
+ } from "./chunk-MHC44FKA.js";
15
18
  import {
16
19
  getApproxPricePerImage
17
20
  } from "./chunk-4JH2UMJR.js";
@@ -103,7 +106,7 @@ import {
103
106
  extractReferenceKeysFromMessage,
104
107
  normalizeUsage,
105
108
  resolveAutoExecutionProfile
106
- } from "./chunk-T7HBI3WZ.js";
109
+ } from "./chunk-NSASNKVD.js";
107
110
  import {
108
111
  isDevinOAuthAgent
109
112
  } from "./chunk-5ZUL4CUO.js";
@@ -120,7 +123,7 @@ import {
120
123
  getModelInfo,
121
124
  planCompression,
122
125
  serializeMessageContent
123
- } from "./chunk-7ZGMQZ5D.js";
126
+ } from "./chunk-CSINZLH7.js";
124
127
  import {
125
128
  isOAuthApiKeyRef
126
129
  } from "./chunk-UKZX3NHN.js";
@@ -11064,7 +11067,7 @@ var messageSlice = createSliceWithThunks({
11064
11067
  runtimeOptions: args.runtimeOptions
11065
11068
  });
11066
11069
  if (agentKeyToUse) {
11067
- const { streamAgentChatTurn } = await import("./agentSlice-NG7VBT4O.js");
11070
+ const { streamAgentChatTurn } = await import("./agentSlice-MS5G7UCC.js");
11068
11071
  await dispatch(
11069
11072
  streamAgentChatTurn({
11070
11073
  agentKey: agentKeyToUse,
@@ -13251,9 +13254,6 @@ var resolveBillingTarget = ({
13251
13254
  };
13252
13255
  };
13253
13256
 
13254
- // packages/ai/token/usageConstants.ts
13255
- var LOCAL_USER_ID = "local";
13256
-
13257
13257
  // packages/ai/token/prepareTokenUsageData.ts
13258
13258
  function resolveTokenUsagePricing(args) {
13259
13259
  const { rawUsage, agentConfig, nowMs } = args;
@@ -13881,7 +13881,7 @@ var deleteDialogThunk = async (payload, thunkApi) => {
13881
13881
  }
13882
13882
  if (isCurrentDialog) {
13883
13883
  await thunkApi.dispatch(resetMsgs());
13884
- const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-VHGZCHAQ.js");
13884
+ const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-4W7DJJC2.js");
13885
13885
  dispatch(clearPendingAttachments2());
13886
13886
  }
13887
13887
  return { dialogKey, isCurrentDialog, attachmentPlan };
@@ -13889,15 +13889,15 @@ var deleteDialogThunk = async (payload, thunkApi) => {
13889
13889
 
13890
13890
  // packages/chat/dialog/dialogSlice.ts
13891
13891
  var runCreateDialogAction = async (args, thunkApi) => {
13892
- const { createDialogAction } = await import("./createDialogAction-DBTKPCXV.js");
13892
+ const { createDialogAction } = await import("./createDialogAction-FXPXXDRR.js");
13893
13893
  return createDialogAction(args, thunkApi);
13894
13894
  };
13895
13895
  var runCreateAgentAutomationAction = async (args, thunkApi) => {
13896
- const { createAgentAutomationAction } = await import("./createAgentAutomationAction-FAOPVXNF.js");
13896
+ const { createAgentAutomationAction } = await import("./createAgentAutomationAction-TRIAQUAK.js");
13897
13897
  return createAgentAutomationAction(args, thunkApi);
13898
13898
  };
13899
13899
  var runUpdateDialogTitleAction = async (args, thunkApi) => {
13900
- const { updateDialogTitleAction } = await import("./updateDialogTitleAction-WBIPSXFL.js");
13900
+ const { updateDialogTitleAction } = await import("./updateDialogTitleAction-2QNU4T4I.js");
13901
13901
  return updateDialogTitleAction(args, thunkApi);
13902
13902
  };
13903
13903
  var runAddDialogAgentAction = async (args, thunkApi) => {
@@ -13921,7 +13921,7 @@ var runSetDialogExtraReferencesAction = async (args, thunkApi) => {
13921
13921
  return setDialogExtraReferencesAction(args, thunkApi);
13922
13922
  };
13923
13923
  var runHandleSendMessageAction = async (args, thunkApi) => {
13924
- const { handleSendMessageAction } = await import("./handleSendMessageAction-XTQQEVD4.js");
13924
+ const { handleSendMessageAction } = await import("./handleSendMessageAction-FJKTVMCA.js");
13925
13925
  return handleSendMessageAction(args, thunkApi);
13926
13926
  };
13927
13927
  function clearDialogState() {
@@ -13934,7 +13934,7 @@ var createPageAndAddReference = createAsyncThunk(
13934
13934
  async (payload, { dispatch, getState, rejectWithValue }) => {
13935
13935
  const { slateData, jsonData, title, type, fileId, groupId, dialogKey } = payload;
13936
13936
  try {
13937
- const { createDocState } = await import("./docStore-XGWH3T7Q.js");
13937
+ const { createDocState } = await import("./docStore-VBINJLRX.js");
13938
13938
  const pageKey = await createDocState(
13939
13939
  { slateData, title },
13940
13940
  { dispatch, getState }
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  fetchReferenceContents,
3
3
  resolveReferenceAssets
4
- } from "./chunk-RHFEDL32.js";
4
+ } from "./chunk-ORYQ2GDN.js";
5
5
  import {
6
6
  updateTokensAction
7
- } from "./chunk-GQEQYXWV.js";
7
+ } from "./chunk-WGHIT2HH.js";
8
8
  import {
9
9
  applyUpdateTokensFulfilled
10
10
  } from "./chunk-OWYYDMGJ.js";
@@ -12,7 +12,7 @@ import {
12
12
  extractReasoningFromResponseOutput,
13
13
  extractTextFromResponseOutput,
14
14
  extractToolCallsFromResponseOutput
15
- } from "./chunk-JDCX5RWD.js";
15
+ } from "./chunk-HEYJFOL6.js";
16
16
  import {
17
17
  isRecord
18
18
  } from "./chunk-KUG52IAP.js";