nolo-cli 0.16.0-alpha.1 → 0.16.0-alpha.11

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 (97) hide show
  1. package/{_executeModel-QAUS6B7J.js → _executeModel-LGHYA5XS.js} +29 -28
  2. package/{action-GUOZYYGN.js → action-F5JACQBG.js} +4 -4
  3. package/{addContentAction-QDGHGUBH.js → addContentAction-AQXEYRBE.js} +3 -3
  4. package/{addDialogAgentAction-Z4YCYZIV.js → addDialogAgentAction-EJHHJZWW.js} +2 -2
  5. package/{agentDeleteCommand-365DMKHW.js → agentDeleteCommand-PBIUC4FT.js} +18 -17
  6. package/{agentEmailCommands-TQMXL36I.js → agentEmailCommands-KC2QCPQV.js} +35 -34
  7. package/{agentListCommands-6B5X4RC6.js → agentListCommands-N64PHBXM.js} +20 -19
  8. package/{agentMachineCommands-LOEARB6V.js → agentMachineCommands-P7S5WAVA.js} +18 -17
  9. package/{agentRecordCommands-DCH2WBL2.js → agentRecordCommands-JKZR2TZJ.js} +34 -33
  10. package/{agentRunCommand-SGMH67WT.js → agentRunCommand-2ELKCBWR.js} +34 -33
  11. package/{agentRuntimeLocal-YSYZ33ER.js → agentRuntimeLocal-T6YECTNF.js} +15 -16
  12. package/{agentSlice-IVE735EV.js → agentSlice-NXLMDKR7.js} +3 -3
  13. package/{appDeleteCommands-6QYOO3JB.js → appDeleteCommands-D6B6Z4ZQ.js} +19 -18
  14. package/{appDeployCommands-WTCT6XO6.js → appDeployCommands-YMO5FK4T.js} +19 -18
  15. package/{appDeployStatusCommands-CGWGZJKB.js → appDeployStatusCommands-EO5DWWPQ.js} +19 -18
  16. package/{appGetCommands-O4OCAMRW.js → appGetCommands-6SMZ3URQ.js} +19 -18
  17. package/{appListCommands-UENFP4XY.js → appListCommands-RZXSWR2G.js} +19 -18
  18. package/{authCommand-YFTR3347.js → authCommand-MSSBXCQ6.js} +8 -2
  19. package/{chunk-EMXI3N3Z.js → chunk-22NGXGN3.js} +2 -2
  20. package/{chunk-WPN6RMDF.js → chunk-2WXMU64E.js} +3 -3
  21. package/{chunk-SFXYKGK2.js → chunk-3S2VOMIF.js} +3 -3
  22. package/{chunk-WRN5EQT7.js → chunk-47QUPRHO.js} +3 -3
  23. package/{chunk-YNHQIXX5.js → chunk-4LXOVZ4W.js} +21 -21
  24. package/{chunk-O53CP2QR.js → chunk-6CRACQXW.js} +3 -3
  25. package/{chunk-E237VE6U.js → chunk-6KBBMW4D.js} +2 -2
  26. package/{chunk-U7LEGLEB.js → chunk-6N4KODMN.js} +1 -1
  27. package/{chunk-GRTFNYLR.js → chunk-A7O4KKLZ.js} +3 -3
  28. package/{chunk-WA6KZL5V.js → chunk-AAODAAUQ.js} +23 -20
  29. package/{chunk-Z24FGIU2.js → chunk-BXXECNBU.js} +3 -3
  30. package/{chunk-4NLUNENX.js → chunk-C4MMO7W4.js} +1 -1
  31. package/{chunk-JKWWVF2I.js → chunk-D3HVJJIA.js} +1 -1
  32. package/{chunk-VE6XMVKG.js → chunk-D4NCEGGR.js} +167 -53
  33. package/{chunk-TTGAVETO.js → chunk-EABWT43X.js} +2 -2
  34. package/{chunk-YYIRR6QC.js → chunk-EQTZPEID.js} +140 -175
  35. package/{chunk-RSYUDGGZ.js → chunk-F3UOACU4.js} +1 -1
  36. package/{chunk-RKM3K52F.js → chunk-GPELDE6I.js} +2 -2
  37. package/{chunk-OGGHETUE.js → chunk-HQPG2PIV.js} +62 -19
  38. package/{chunk-BFRVXJJJ.js → chunk-HSASSW4L.js} +27 -11
  39. package/{chunk-XVP3C2KY.js → chunk-IWLUTMYX.js} +1 -1
  40. package/{chunk-B4KT7RN2.js → chunk-JTMNCCWF.js} +2 -2
  41. package/chunk-KFEVY3ST.js +255 -0
  42. package/{chunk-WNLPAOIT.js → chunk-KFHN5NGJ.js} +1 -1
  43. package/{chunk-ISYE6GZB.js → chunk-L6NVTGI7.js} +1 -1
  44. package/{chunk-J55UHASN.js → chunk-MSA4JAOZ.js} +1 -1
  45. package/{chunk-HRQCKQA5.js → chunk-MUCU6ATG.js} +8 -257
  46. package/{chunk-524BDL33.js → chunk-O6W2O2DA.js} +1 -15
  47. package/{chunk-4QQFLN5C.js → chunk-OVBVEXZ7.js} +4 -4
  48. package/{chunk-QZVGMD5F.js → chunk-PU4LXVAC.js} +1 -1
  49. package/{chunk-4IJYA27C.js → chunk-RG2U2MTJ.js} +1 -1
  50. package/{chunk-6MHDWKOT.js → chunk-RIF3XLXK.js} +9 -5
  51. package/{chunk-IKXL2HZ3.js → chunk-RK5NYQEL.js} +1 -1
  52. package/{chunk-JS33TCQ3.js → chunk-RPDGJO4D.js} +2 -2
  53. package/{chunk-EHLHSX7R.js → chunk-UB4RYYNQ.js} +9 -2
  54. package/{chunk-YC3DJILJ.js → chunk-VHXXRWNL.js} +22 -8
  55. package/{chunk-G2MKOQCB.js → chunk-WBA6SIBB.js} +1 -1
  56. package/{chunk-6565R2TI.js → chunk-XEWUC53Z.js} +38 -20
  57. package/{chunk-OOIN7HSO.js → chunk-XJITGCTM.js} +10 -1
  58. package/{chunk-V2J635L5.js → chunk-XOIF2TNF.js} +2 -2
  59. package/{chunk-VPTJB4HM.js → chunk-XPC5C7BK.js} +0 -3
  60. package/{chunk-I66RU7P7.js → chunk-XRSPI6CP.js} +1 -1
  61. package/{chunk-N5424GSW.js → chunk-YJKXGHJ6.js} +1 -1
  62. package/{chunk-QLFCNUVQ.js → chunk-ZH62XNZE.js} +877 -172
  63. package/chunk-ZHXJ6M7T.js +27 -0
  64. package/{chunk-OQMPU2ML.js → chunk-ZXQ52OY2.js} +4 -4
  65. package/{createAgentAutomationAction-TS6NNZ4X.js → createAgentAutomationAction-RKWIMKHW.js} +13 -13
  66. package/{createDialogAction-5HVQ33EX.js → createDialogAction-VN7MEBS3.js} +14 -14
  67. package/{createPageAction-4F3ZGQJD.js → createPageAction-JBUWBHHC.js} +13 -13
  68. package/{dbSlice-OP6UPXKA.js → dbSlice-7KQH6GOU.js} +2 -2
  69. package/{dialogCommands-ZL6L24BS.js → dialogCommands-DFY5HJ6M.js} +19 -18
  70. package/{dialogSlice-FAWUQDJW.js → dialogSlice-NNYBU35K.js} +13 -13
  71. package/{docCreateCommands-LYROQTFH.js → docCreateCommands-5L76YTI2.js} +18 -17
  72. package/{docDeleteCommands-6TWGTZNR.js → docDeleteCommands-3GASP3VR.js} +19 -18
  73. package/{docReadCommands-PRULNF26.js → docReadCommands-ALA77AZM.js} +18 -17
  74. package/{docStore-2UHVWLTV.js → docStore-DR22GGF3.js} +14 -14
  75. package/{docUpdateCommands-NNYYWJBI.js → docUpdateCommands-6AZGXE5M.js} +18 -17
  76. package/{getPricing-UGDJHI7M.js → getPricing-RYY6OBA4.js} +4 -4
  77. package/{handleSendMessageAction-LJPUYNOH.js → handleSendMessageAction-FHITDM7H.js} +201 -15
  78. package/index.js +47 -47
  79. package/{machineCommands-JQPEQFSE.js → machineCommands-3B4IHHVK.js} +33 -32
  80. package/{machineWsRunDispatch-FFFNWVEW.js → machineWsRunDispatch-AXZ6OL3V.js} +33 -32
  81. package/{models-LSCRJJ6P.js → models-5K5G2CZI.js} +2 -2
  82. package/package.json +1 -1
  83. package/{read-HXHAZBKH.js → read-CN3TNXIP.js} +1 -1
  84. package/{readDocTool-VPBDTO4G.js → readDocTool-WF3675ED.js} +1 -1
  85. package/{readlineWorkspace-QSXHSBHA.js → readlineWorkspace-DBZCXS7Y.js} +145 -92
  86. package/{removeDialogAgentAction-HUFVN35S.js → removeDialogAgentAction-YDHBFEGI.js} +5 -5
  87. package/{runAgentClientLoop-A75BUU6D.js → runAgentClientLoop-AB7PQ3TB.js} +26 -25
  88. package/{setDialogExtraReferencesAction-2VLGWQKG.js → setDialogExtraReferencesAction-LR6MSIXO.js} +2 -2
  89. package/{setPrimaryDialogAgentAction-VB4UV2CC.js → setPrimaryDialogAgentAction-IIVDCY5C.js} +5 -5
  90. package/{settingSlice-7JYPQNAC.js → settingSlice-O23YDK2O.js} +3 -3
  91. package/{spaceCommands-4LE45GB7.js → spaceCommands-AB2D7A2R.js} +18 -17
  92. package/{spaceSlice-444MFUP6.js → spaceSlice-TEJDCU6A.js} +13 -13
  93. package/{streamAgentChatTurn-DJAE7USZ.js → streamAgentChatTurn-NZ3HLAXS.js} +30 -32
  94. package/{tools-YB6LXSVN.js → tools-M4USUF3R.js} +20 -20
  95. package/{tuiSummaryLlmCaller-QQL3JA5I.js → tuiSummaryLlmCaller-VUNVBRX3.js} +7 -6
  96. package/{updateDialogTitleAction-6HGFBM64.js → updateDialogTitleAction-SMPQVKWT.js} +13 -13
  97. package/chunk-BYXBJQAS.js +0 -0
@@ -8,21 +8,21 @@ import {
8
8
  import {
9
9
  sortSafeAgentSummaries,
10
10
  toSafeAgentSummary
11
- } from "./chunk-OOIN7HSO.js";
11
+ } from "./chunk-XJITGCTM.js";
12
12
  import {
13
13
  getUserDataItemTimestamp,
14
14
  mergeAndDedupUserData
15
15
  } from "./chunk-KQHGZWSV.js";
16
16
  import {
17
17
  createDocState
18
- } from "./chunk-O53CP2QR.js";
18
+ } from "./chunk-6CRACQXW.js";
19
19
  import {
20
20
  readDocFunc,
21
21
  readDocFunctionSchema,
22
22
  readPageFunc,
23
23
  readPageFunctionSchema,
24
24
  slateToSimplifiedMarkdown
25
- } from "./chunk-U7LEGLEB.js";
25
+ } from "./chunk-6N4KODMN.js";
26
26
  import {
27
27
  markdownToSlate
28
28
  } from "./chunk-3LY4F7SV.js";
@@ -37,7 +37,7 @@ import {
37
37
  } from "./chunk-VF4K2QE6.js";
38
38
  import {
39
39
  createDialogAction
40
- } from "./chunk-Z24FGIU2.js";
40
+ } from "./chunk-BXXECNBU.js";
41
41
  import {
42
42
  buildSkillDocMarkdown,
43
43
  normalizeSkillBudgetTier,
@@ -76,13 +76,13 @@ import {
76
76
  updateContentCategory,
77
77
  updateContentTitle,
78
78
  updateStep
79
- } from "./chunk-YNHQIXX5.js";
79
+ } from "./chunk-4LXOVZ4W.js";
80
80
  import {
81
81
  createAgent,
82
82
  runLlm,
83
83
  streamAgentChatTurn,
84
84
  updateAgent
85
- } from "./chunk-OQMPU2ML.js";
85
+ } from "./chunk-ZXQ52OY2.js";
86
86
  import {
87
87
  NOLO_WORKSPACE_TOOL_NAMES,
88
88
  buildNoloSubjectRefQueryTarget,
@@ -98,13 +98,13 @@ import {
98
98
  redactAgentRecordForWorkspaceTool,
99
99
  resolveNoloDialogInput,
100
100
  verifyNoloDialogSubjectRefQuery
101
- } from "./chunk-B4KT7RN2.js";
101
+ } from "./chunk-JTMNCCWF.js";
102
102
  import {
103
103
  buildDatabaseFileContentUrl
104
- } from "./chunk-4QQFLN5C.js";
104
+ } from "./chunk-OVBVEXZ7.js";
105
105
  import {
106
106
  DEFAULT_MODEL
107
- } from "./chunk-OGGHETUE.js";
107
+ } from "./chunk-HQPG2PIV.js";
108
108
  import {
109
109
  ToolApiError,
110
110
  buildToolRequestHeaders,
@@ -130,7 +130,7 @@ import {
130
130
  } from "./chunk-HNMXYYJR.js";
131
131
  import {
132
132
  shareResourceAction
133
- } from "./chunk-N5424GSW.js";
133
+ } from "./chunk-YJKXGHJ6.js";
134
134
  import {
135
135
  AGENT_UPDATE_FIELD_NAMES,
136
136
  SYSTEM_AGENT_CAPABILITIES,
@@ -139,7 +139,7 @@ import {
139
139
  selectAutoApproveSelfUpdateFields,
140
140
  selectCurrentServer,
141
141
  selectSyncServers
142
- } from "./chunk-TTGAVETO.js";
142
+ } from "./chunk-EABWT43X.js";
143
143
  import {
144
144
  asRecordOrEmpty
145
145
  } from "./chunk-KX6YBIHG.js";
@@ -147,7 +147,7 @@ import {
147
147
  addContentAction,
148
148
  createSpaceKey,
149
149
  normalizeSpaceId
150
- } from "./chunk-XVP3C2KY.js";
150
+ } from "./chunk-IWLUTMYX.js";
151
151
  import {
152
152
  patch,
153
153
  read,
@@ -155,7 +155,7 @@ import {
155
155
  readAndWaitAction,
156
156
  toTimestampMs,
157
157
  write
158
- } from "./chunk-SFXYKGK2.js";
158
+ } from "./chunk-3S2VOMIF.js";
159
159
  import {
160
160
  SEPARATOR,
161
161
  createAgentKey,
@@ -180,7 +180,7 @@ import {
180
180
  } from "./chunk-QSJ3HFEF.js";
181
181
  import {
182
182
  readAction
183
- } from "./chunk-VPTJB4HM.js";
183
+ } from "./chunk-XPC5C7BK.js";
184
184
  import {
185
185
  createAsyncThunk,
186
186
  getRuntimeServerContext,
@@ -992,7 +992,7 @@ var ai_locale_default = {
992
992
  params: {
993
993
  name: "The name of the Agent, e.g., 'Meeting Minutes Assistant'.",
994
994
  model: "The model name to use. Logic: Default 'nolo/glm-5.2'. Complex tasks: 'openai/gpt-5.2'. Cost-saving: 'openai/gpt-5.1'. Aesthetic/Creative: 'gemini-3.6-flash'. Reliable low-cost summary/reasoning: 'deepseek-v4-pro'. Image Generation: 'gemini-3-pro-image-preview' (Best/Expensive), 'gemini-3.1-flash-image-preview' (Ordinary), or 'gemini-3.1-flash-lite-image' (Fastest/Cheapest).",
995
- provider: "The model provider identifier, must match the selected model, e.g., 'openrouter', 'deepseek', 'fireworks', 'mistral', etc.",
995
+ provider: "The model provider identifier, must match the selected model, e.g., 'openrouter', 'nolo', 'fireworks', 'mistral', etc.",
996
996
  prompt: "System prompt/instruction describing the Agent's role, tone, and usage.",
997
997
  introduction: "Introduction displayed in the app market or list, explanatory text for end users.",
998
998
  greeting: {
@@ -1381,7 +1381,7 @@ var ai_locale_default = {
1381
1381
  params: {
1382
1382
  name: "Agent \u7684\u540D\u79F0\uFF0C\u4F8B\u5982\uFF1A'\u4F1A\u8BAE\u7EAA\u8981\u52A9\u624B'\u3002",
1383
1383
  model: "\u9ED8\u8BA4\u4F7F\u7528 'nolo/glm-5.2'\u3002\u590D\u6742\u4EFB\u52A1: 'openai/gpt-5.2'\u3002\u7701\u6210\u672C\u4F46\u590D\u6742: 'openai/gpt-5.1'\u3002\u8FFD\u6C42\u7F8E\u89C2/\u521B\u610F: 'gemini-3.6-flash'\u3002\u4F4E\u6210\u672C\u6458\u8981/\u63A8\u7406: 'deepseek-v4-pro'\u3002\u751F\u6210\u56FE\u7247: \u8D35/\u9AD8\u8D28\u91CF\u9009 'gemini-3-pro-image-preview'\uFF0C\u666E\u901A\u9009 'gemini-3.1-flash-image-preview'\uFF0C\u6700\u5FEB\u6700\u4FBF\u5B9C\u9009 'gemini-3.1-flash-lite-image'\u3002",
1384
- provider: "\u6A21\u578B\u63D0\u4F9B\u65B9\u6807\u8BC6\uFF0C\u5FC5\u987B\u4E0E\u6240\u9009\u6A21\u578B\u76F8\u5339\u914D\uFF0C\u4F8B\u5982 'openrouter'\u3001'deepseek'\u3001'fireworks'\u3001'mistral' \u7B49\u3002",
1384
+ provider: "\u6A21\u578B\u63D0\u4F9B\u65B9\u6807\u8BC6\uFF0C\u5FC5\u987B\u4E0E\u6240\u9009\u6A21\u578B\u76F8\u5339\u914D\uFF0C\u4F8B\u5982 'openrouter'\u3001'nolo'\u3001'fireworks'\u3001'mistral' \u7B49\u3002",
1385
1385
  prompt: "\u7CFB\u7EDF\u63D0\u793A\u8BCD / \u6307\u4EE4\uFF0C\u63CF\u8FF0\u8FD9\u4E2A Agent \u7684\u89D2\u8272\u3001\u8BED\u6C14\u548C\u4F7F\u7528\u65B9\u5F0F\u3002",
1386
1386
  introduction: "\u5728\u5E94\u7528\u5E02\u573A\u6216\u5217\u8868\u4E2D\u5C55\u793A\u7684\u7B80\u4ECB\uFF0C\u9762\u5411\u7EC8\u7AEF\u7528\u6237\u7684\u8BF4\u660E\u6587\u6848\u3002",
1387
1387
  greeting: {
@@ -2101,6 +2101,7 @@ var chat_locale_default = {
2101
2101
  copyContent: "Copy Content",
2102
2102
  copyDiagnostics: "Copy diagnostics",
2103
2103
  finishReasonLengthNotice: "Response was cut off at the model's output limit",
2104
+ retryProgress: "Auto-retrying {{attempt}}/{{maxAttempts}} \xB7 {{seconds}}s",
2104
2105
  copyFailed: "Copy failed",
2105
2106
  copySuccess: "Copied successfully",
2106
2107
  createDialog: "Create Dialog",
@@ -2462,6 +2463,7 @@ var chat_locale_default = {
2462
2463
  copyContent: "\u590D\u5236\u5185\u5BB9",
2463
2464
  copyDiagnostics: "\u590D\u5236\u8BCA\u65AD\u4FE1\u606F",
2464
2465
  finishReasonLengthNotice: "\u56DE\u7B54\u56E0\u8FBE\u5230\u6A21\u578B\u8F93\u51FA\u4E0A\u9650\u88AB\u622A\u65AD",
2466
+ retryProgress: "\u81EA\u52A8\u91CD\u8BD5 {{attempt}}/{{maxAttempts}} \xB7 {{seconds}}s",
2465
2467
  copyFailed: "\u590D\u5236\u5931\u8D25",
2466
2468
  copySuccess: "\u590D\u5236\u6210\u529F",
2467
2469
  createDialog: "\u521B\u5EFA\u5BF9\u8BDD",
@@ -2818,6 +2820,7 @@ var chat_locale_default = {
2818
2820
  copyContent: "\u8907\u88FD\u5167\u5BB9",
2819
2821
  copyDiagnostics: "\u8907\u88FD\u8A3A\u65B7\u8CC7\u8A0A",
2820
2822
  finishReasonLengthNotice: "\u56DE\u7B54\u56E0\u9054\u5230\u6A21\u578B\u8F38\u51FA\u4E0A\u9650\u88AB\u622A\u65B7",
2823
+ retryProgress: "\u81EA\u52D5\u91CD\u8A66 {{attempt}}/{{maxAttempts}} \xB7 {{seconds}}s",
2821
2824
  copyFailed: "\u8907\u88FD\u5931\u6557",
2822
2825
  copySuccess: "\u8907\u88FD\u6210\u529F",
2823
2826
  createDialog: "\u5275\u5EFA\u5C0D\u8A71",
@@ -3102,6 +3105,7 @@ var chat_locale_default = {
3102
3105
  copyContent: "\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30B3\u30D4\u30FC",
3103
3106
  copyDiagnostics: "\u8A3A\u65AD\u60C5\u5831\u3092\u30B3\u30D4\u30FC",
3104
3107
  finishReasonLengthNotice: "\u30E2\u30C7\u30EB\u306E\u51FA\u529B\u4E0A\u9650\u306B\u9054\u3057\u305F\u305F\u3081\u3001\u56DE\u7B54\u304C\u9014\u4E2D\u3067\u7D42\u4E86\u3057\u307E\u3057\u305F",
3108
+ retryProgress: "\u81EA\u52D5\u30EA\u30C8\u30E9\u30A4 {{attempt}}/{{maxAttempts}} \xB7 {{seconds}}s",
3105
3109
  copyFailed: "\u30B3\u30D4\u30FC\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
3106
3110
  copySuccess: "\u30B3\u30D4\u30FC\u306B\u6210\u529F\u3057\u307E\u3057\u305F",
3107
3111
  createDialog: "\u5BFE\u8A71\u3092\u4F5C\u6210",
@@ -11483,7 +11487,7 @@ var HOSTED_EXEC_RUNTIME_TOOL_POLICY = {
11483
11487
  workspace: { mode: "lease" }
11484
11488
  };
11485
11489
  var findModelConfig = async (modelName, provider) => {
11486
- const { ALL_MODELS } = await import("./models-LSCRJJ6P.js");
11490
+ const { ALL_MODELS } = await import("./models-5K5G2CZI.js");
11487
11491
  const name = toTrimmedString(modelName);
11488
11492
  const prov = toTrimmedString(provider ?? "");
11489
11493
  if (!name) return null;
@@ -11724,7 +11728,7 @@ var buildFormDataFromArgs = async (args) => {
11724
11728
  const trimmedModel = toTrimmedString(model);
11725
11729
  const trimmedProvider = toTrimmedString(provider);
11726
11730
  const modelConfig = await findModelConfig(trimmedModel, trimmedProvider);
11727
- const { getModelPricing } = await import("./getPricing-UGDJHI7M.js");
11731
+ const { getModelPricing } = await import("./getPricing-RYY6OBA4.js");
11728
11732
  const normalizedTools = tools ?? [];
11729
11733
  const resolvedRuntimeToolPolicy = runtimeToolPolicy ?? (normalizedTools.includes("execShell") ? HOSTED_EXEC_RUNTIME_TOOL_POLICY : void 0);
11730
11734
  const formData = {
@@ -14154,7 +14158,7 @@ async function deleteDialogsFunc(args, thunkApi) {
14154
14158
  const deletedDialogIds = [];
14155
14159
  const deletedDialogKeys = [];
14156
14160
  const failures = [];
14157
- const { deleteDialog } = await import("./dialogSlice-FAWUQDJW.js");
14161
+ const { deleteDialog } = await import("./dialogSlice-NNYBU35K.js");
14158
14162
  for (const target of targets) {
14159
14163
  try {
14160
14164
  await thunkApi.dispatch(deleteDialog(target.dbKey)).unwrap();
@@ -14220,10 +14224,11 @@ function formatAgentListCard(agents, maxDisplay = 20) {
14220
14224
  const visible = agents.slice(0, maxDisplay);
14221
14225
  for (const agent of visible) {
14222
14226
  const star = agent.isFavorite ? "\u2605" : " ";
14227
+ const own = agent.isOwned ? "\u25CE" : " ";
14223
14228
  const name = agent.name || "(unnamed)";
14224
14229
  const model = agent.model || "\u2014";
14225
14230
  const source = agent.apiSource || agent.provider || agent.cliProvider || "\u2014";
14226
- lines.push(`${star} ${name} ${model} ${source}`);
14231
+ lines.push(`${star}${own} ${name} ${model} ${source}`);
14227
14232
  }
14228
14233
  if (total > maxDisplay) {
14229
14234
  lines.push(`\u2026 +${total - maxDisplay} more`);
@@ -14281,11 +14286,14 @@ async function listAgentsFunc(args, thunkApi) {
14281
14286
  }
14282
14287
  var readAgentFunctionSchema = {
14283
14288
  name: "readAgent",
14284
- description: "Read one Nolo agent config.",
14289
+ description: "Read one agent's full config from the Nolo workspace. Accepts an agent dbKey (agent-xxx), plain id, alias, or agent URL; resolves it (including public agents via agent-pub-<id>; the server runtime also falls back to handle lookup) and returns the runnable agentKey plus a redacted record with fields such as model, provider, apiSource, tools, prompt, inputPrice, outputPrice, and isPublic. Use it before delegation to confirm an agent's identity and capabilities, or to resolve the agentKey that startAgentRun requires.",
14285
14290
  parameters: {
14286
14291
  type: "object",
14287
14292
  properties: {
14288
- agent: { type: "string", description: "Agent key, id, alias, or URL." }
14293
+ agent: {
14294
+ type: "string",
14295
+ description: "Agent dbKey (e.g. agent-xxx), agent id, alias, or agent URL."
14296
+ }
14289
14297
  },
14290
14298
  required: ["agent"]
14291
14299
  }
@@ -14418,7 +14426,7 @@ var readSkillDocFunctionSchema = {
14418
14426
  }
14419
14427
  };
14420
14428
  async function readSkillDocFunc(args, thunkApi) {
14421
- const { buildReadDocResult } = await import("./readDocTool-VPBDTO4G.js");
14429
+ const { buildReadDocResult } = await import("./readDocTool-WF3675ED.js");
14422
14430
  const id = args?.id ?? args?.doc ?? args?.docKey ?? args?.pageKey;
14423
14431
  if (typeof id !== "string" || !id.trim()) {
14424
14432
  throw new Error("readSkillDoc requires id or doc.");
@@ -19868,7 +19876,7 @@ var selectUserIdFromState = (state) => typeof state?.auth?.currentUser?.userId =
19868
19876
  var selectCurrentServerFromState = (state) => typeof state?.settings?.currentServer === "string" ? state.settings.currentServer : null;
19869
19877
  async function addImageContentToSpace(input) {
19870
19878
  const injectedAddContentAction = input.thunkApi?.extra?.addContentAction;
19871
- const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-QDGHGUBH.js")).addContentAction;
19879
+ const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-AQXEYRBE.js")).addContentAction;
19872
19880
  await addContentAction2(
19873
19881
  {
19874
19882
  spaceId: input.spaceId,
@@ -21935,6 +21943,7 @@ var DEFAULT_LABELS = {
21935
21943
  runStatus: "Run status",
21936
21944
  runStarted: "Run started",
21937
21945
  runStopped: "Run stopped",
21946
+ runFinished: "Run finished",
21938
21947
  logTail: "Log tail:",
21939
21948
  runs: (count) => `Runs (${count})`
21940
21949
  };
@@ -21943,48 +21952,136 @@ function resolveLabels(labels) {
21943
21952
  runStatus: labels?.runStatus ?? DEFAULT_LABELS.runStatus,
21944
21953
  runStarted: labels?.runStarted ?? DEFAULT_LABELS.runStarted,
21945
21954
  runStopped: labels?.runStopped ?? DEFAULT_LABELS.runStopped,
21955
+ runFinished: labels?.runFinished ?? DEFAULT_LABELS.runFinished,
21946
21956
  logTail: labels?.logTail ?? DEFAULT_LABELS.logTail,
21947
21957
  runs: labels?.runs ?? DEFAULT_LABELS.runs
21948
21958
  };
21949
21959
  }
21960
+ function shortRunId(runId) {
21961
+ const trimmed = typeof runId === "string" ? runId.trim() : "";
21962
+ if (!trimmed) return "";
21963
+ const segments = trimmed.split("-").filter(Boolean);
21964
+ let pick = segments[segments.length - 1] ?? trimmed;
21965
+ if (pick.length < 4 && segments.length >= 2) pick = segments.slice(-2).join("-");
21966
+ if (!pick) pick = trimmed;
21967
+ return pick.length > 8 ? pick.slice(-8) : pick;
21968
+ }
21969
+ function clipText(text, max) {
21970
+ const collapsed = text.replace(/\s+/g, " ").trim();
21971
+ return collapsed.length > max ? `${collapsed.slice(0, max - 1)}\u2026` : collapsed;
21972
+ }
21973
+ function formatDuration(ms) {
21974
+ const totalSec = Math.max(0, Math.floor(ms / 1e3));
21975
+ if (totalSec < 60) return `${totalSec}s`;
21976
+ const totalMin = Math.floor(totalSec / 60);
21977
+ if (totalMin < 60) return `${totalMin}m${String(totalSec % 60).padStart(2, "0")}s`;
21978
+ return `${Math.floor(totalMin / 60)}h${String(totalMin % 60).padStart(2, "0")}m`;
21979
+ }
21980
+ function formatRunAge(timing, now = Date.now()) {
21981
+ const startedAt = timing?.startedAt;
21982
+ if (typeof startedAt !== "number" || !Number.isFinite(startedAt) || startedAt <= 0) {
21983
+ return "";
21984
+ }
21985
+ const end = typeof timing?.finishedAt === "number" && Number.isFinite(timing.finishedAt) && timing.finishedAt > 0 ? timing.finishedAt : now;
21986
+ return formatDuration(end - startedAt);
21987
+ }
21988
+ function formatIdentityRow(agentName, runId) {
21989
+ const parts = [];
21990
+ if (!isAgentNameFallback(agentName)) parts.push(agentName);
21991
+ const short = shortRunId(runId);
21992
+ if (short) parts.push(`#${short}`);
21993
+ return parts.join(" ");
21994
+ }
21950
21995
  function isAgentNameFallback(agentName) {
21951
21996
  const trimmed = typeof agentName === "string" ? agentName.trim() : "";
21952
21997
  return !trimmed || trimmed === "agent";
21953
21998
  }
21954
- function formatStartRunCard(agentName, status = "running", labels) {
21955
- const L = resolveLabels(labels);
21999
+ function resolveRunLabel(run) {
22000
+ for (const candidate of [run.agentName, run.name, run.agentKey, run.runId]) {
22001
+ if (typeof candidate === "string" && !isAgentNameFallback(candidate)) {
22002
+ return candidate.trim();
22003
+ }
22004
+ }
22005
+ return "agent";
22006
+ }
22007
+ function formatStartRunCard(agentName, status = "running", opts) {
22008
+ const L = resolveLabels(opts?.labels);
21956
22009
  const icon = getAgentRunStatusIcon(status);
21957
22010
  const lines = [L.runStarted];
21958
- if (!isAgentNameFallback(agentName)) {
21959
- lines.push(` agent ${agentName}`);
22011
+ const identity = formatIdentityRow(agentName, opts?.runId);
22012
+ if (identity) {
22013
+ lines.push(` agent ${identity}`);
21960
22014
  }
21961
22015
  lines.push(` status ${icon} ${status}`);
22016
+ const task = opts?.task?.trim();
22017
+ if (task) {
22018
+ lines.push(` task ${clipText(task, TASK_PREVIEW_MAX)}`);
22019
+ }
21962
22020
  return lines.join("\n");
21963
22021
  }
22022
+ var TASK_PREVIEW_MAX = 72;
22023
+ var NOTE_PREVIEW_MAX = 72;
22024
+ function formatProgressRow(toolCallCount, lastToolNames) {
22025
+ const parts = [];
22026
+ if (typeof toolCallCount === "number" && Number.isFinite(toolCallCount)) {
22027
+ parts.push(`${toolCallCount} tools`);
22028
+ }
22029
+ if (lastToolNames && lastToolNames.length > 0) {
22030
+ parts.push(lastToolNames.join(", "));
22031
+ }
22032
+ return parts.join(" \xB7 ");
22033
+ }
21964
22034
  function formatStatusRunCard(agentName, status = "running", opts) {
21965
22035
  const L = resolveLabels(opts?.labels);
21966
22036
  const icon = getAgentRunStatusIcon(status);
21967
- const lines = [L.runStatus, ` ${icon} ${status}`];
21968
- if (!isAgentNameFallback(agentName)) {
21969
- lines.push(` agent ${agentName}`);
22037
+ const age = formatRunAge(opts?.timing, opts?.now);
22038
+ const lines = [L.runStatus, ` ${icon} ${status}${age ? ` ${age}` : ""}`];
22039
+ const identity = formatIdentityRow(agentName, opts?.runId);
22040
+ if (identity) {
22041
+ lines.push(` agent ${identity}`);
21970
22042
  }
21971
- if (opts?.pollCount !== void 0 && opts.pollCount > 0) {
21972
- lines.push(` polls ${opts.pollCount}`);
22043
+ const progress = formatProgressRow(opts?.toolCallCount, opts?.lastToolNames);
22044
+ if (progress) {
22045
+ lines.push(` tools ${progress}`);
21973
22046
  }
21974
- if (typeof opts?.elapsedMs === "number" && Number.isFinite(opts.elapsedMs)) {
21975
- lines.push(` last ${Math.round(opts.elapsedMs)}ms`);
22047
+ const note = opts?.lastAssistantText?.trim();
22048
+ if (note) {
22049
+ lines.push(` note ${clipText(note, NOTE_PREVIEW_MAX)}`);
21976
22050
  }
21977
- if (opts?.lastToolNames && opts.lastToolNames.length > 0) {
21978
- lines.push(` lastTools ${opts.lastToolNames.join(", ")}`);
22051
+ if (opts?.errorMessage?.trim()) {
22052
+ lines.push(` error ${opts.errorMessage.trim()}`);
21979
22053
  }
21980
- if (opts?.toolCallCount !== void 0) {
21981
- lines.push(` toolCalls ${opts.toolCallCount}`);
22054
+ if (shouldShowLogTail(status, opts?.includeLogTail, opts?.logLines)) {
22055
+ lines.push("", L.logTail, ...opts.logLines.map((l) => ` ${l}`));
22056
+ }
22057
+ return lines.join("\n");
22058
+ }
22059
+ function runShowsLogTail(status) {
22060
+ return status === "failed" || status === "timeout";
22061
+ }
22062
+ function shouldShowLogTail(status, includeLogTail, logLines) {
22063
+ if (includeLogTail === false) return false;
22064
+ if (!logLines || logLines.length === 0) return false;
22065
+ return runShowsLogTail(status);
22066
+ }
22067
+ function formatFinishedRunCard(agentName, status, opts) {
22068
+ const L = resolveLabels(opts?.labels);
22069
+ const icon = getAgentRunStatusIcon(status);
22070
+ const age = formatRunAge(opts?.timing, opts?.now);
22071
+ const summary = [status, age, formatProgressRow(opts?.toolCallCount, opts?.lastToolNames)].filter(Boolean).join(" \xB7 ");
22072
+ const lines = [L.runFinished, ` ${icon} ${summary}`];
22073
+ const identity = formatIdentityRow(agentName, opts?.runId);
22074
+ if (identity) {
22075
+ lines.push(` agent ${identity}`);
22076
+ }
22077
+ const note = opts?.lastAssistantText?.trim();
22078
+ if (note) {
22079
+ lines.push(` note ${clipText(note, NOTE_PREVIEW_MAX)}`);
21982
22080
  }
21983
22081
  if (opts?.errorMessage?.trim()) {
21984
22082
  lines.push(` error ${opts.errorMessage.trim()}`);
21985
22083
  }
21986
- const includeLog = opts?.includeLogTail !== false;
21987
- if (includeLog && opts?.logLines && opts.logLines.length > 0) {
22084
+ if (shouldShowLogTail(status, opts?.includeLogTail, opts?.logLines)) {
21988
22085
  lines.push("", L.logTail, ...opts.logLines.map((l) => ` ${l}`));
21989
22086
  }
21990
22087
  return lines.join("\n");
@@ -22001,8 +22098,7 @@ function formatListRunsCard(runs, labels) {
22001
22098
  for (const run of runs) {
22002
22099
  const status = run.status ?? "\u2014";
22003
22100
  const icon = getAgentRunStatusIcon(status);
22004
- const name = run.agentName || run.name || "agent";
22005
- lines.push(` ${icon} ${name}`);
22101
+ lines.push(` ${icon} ${resolveRunLabel(run)}`);
22006
22102
  }
22007
22103
  return lines.join("\n");
22008
22104
  }
@@ -22031,7 +22127,7 @@ var startAgentRunFunctionSchema = {
22031
22127
  properties: {
22032
22128
  agentKey: {
22033
22129
  type: "string",
22034
- description: "\u8981\u542F\u52A8\u7684 Agent \u7684\u53EF\u8FD0\u884C dbKey\uFF08\u4F18\u5148\u4F7F\u7528 readAgent \u8FD4\u56DE\u7684 agentKey\uFF0C\u683C\u5F0F\u5982 agent-xxx\uFF09\u3002\u5982\u679C\u5DF2\u901A\u8FC7 listAgents/readAgent \u83B7\u53D6\u540D\u79F0\uFF0C\u8BF7\u540C\u65F6\u4F20 agentName\u3002"
22130
+ description: "\u8981\u542F\u52A8\u7684 Agent \u7684\u53EF\u8FD0\u884C dbKey\uFF08\u4F18\u5148\u7528 readAgent \u89E3\u6790\u51FA agentKey\uFF0C\u683C\u5F0F\u5982 agent-xxx\uFF1BreadAgent \u63A5\u53D7 dbKey/id/alias/URL\uFF0C\u4E0D\u8981\u81EA\u5DF1\u62FC key\uFF09\u3002\u5982\u679C\u5DF2\u901A\u8FC7 listAgents/readAgent \u83B7\u53D6\u540D\u79F0\uFF0C\u8BF7\u540C\u65F6\u4F20 agentName\u3002"
22035
22131
  },
22036
22132
  task: {
22037
22133
  type: "string",
@@ -22076,14 +22172,21 @@ async function startAgentRunFunc(args, thunkApi, _context) {
22076
22172
  ).unwrap();
22077
22173
  const runId = bgResult.dialogId;
22078
22174
  const status = bgResult.status ?? "pending";
22079
- const displayName = agentName?.trim() || bgResult.agentName || bgResult.name || "agent";
22175
+ const resolvedName = agentName?.trim() || bgResult.agentName || bgResult.name;
22176
+ const identity = { agentName: resolvedName, agentKey, runId };
22177
+ const taskPreview = task.replace(/\s+/g, " ").trim().slice(0, TASK_PREVIEW_MAX);
22080
22178
  return {
22081
22179
  rawData: {
22082
22180
  runId,
22083
22181
  status,
22084
- ...displayName !== "agent" ? { agentName: displayName } : {}
22182
+ agentKey,
22183
+ ...resolvedName ? { agentName: resolvedName } : {},
22184
+ ...taskPreview ? { taskPreview } : {}
22085
22185
  },
22086
- displayData: formatStartRunCard(displayName, status)
22186
+ displayData: formatStartRunCard(resolveRunLabel(identity), status, {
22187
+ task: taskPreview,
22188
+ runId
22189
+ })
22087
22190
  };
22088
22191
  } catch (e) {
22089
22192
  throw new Error(`startAgentRun \u542F\u52A8 Agent [${agentKey}] \u5931\u8D25: ${toErrorMessage(e)}`);
@@ -22179,13 +22282,16 @@ async function handleStatus(thunkApi, opts) {
22179
22282
  }
22180
22283
  const run = resData.run;
22181
22284
  const logLines = resData.logLines;
22182
- const name = run.agentName || run.name || "agent";
22285
+ const name = resolveRunLabel(run);
22183
22286
  return {
22184
22287
  rawData: { found: true, ...run, ...logLines ? { logLines } : {} },
22185
22288
  displayData: formatStatusRunCard(name, run.status, {
22289
+ runId: opts.runId,
22186
22290
  lastToolNames: run.lastToolNames,
22187
22291
  toolCallCount: run.toolCallCount,
22292
+ lastAssistantText: run.lastAssistantText,
22188
22293
  errorMessage: run.errorMessage,
22294
+ timing: { startedAt: run.startedAt, finishedAt: run.finishedAt },
22189
22295
  logLines
22190
22296
  })
22191
22297
  };
@@ -23404,7 +23510,7 @@ var executeToolRun = createAsyncThunk(
23404
23510
  if (!executionInput) {
23405
23511
  throw new Error(`ToolRun ${id} has no input to execute with.`);
23406
23512
  }
23407
- const { findToolExecutor: findToolExecutor2 } = await import("./tools-YB6LXSVN.js");
23513
+ const { findToolExecutor: findToolExecutor2 } = await import("./tools-M4USUF3R.js");
23408
23514
  const { executor } = findToolExecutor2(run.toolName);
23409
23515
  toolRunStarted({
23410
23516
  id: run.id,
@@ -23428,7 +23534,7 @@ var executeToolRun = createAsyncThunk(
23428
23534
  const latestState = thunkApi.getState();
23429
23535
  const userId = latestState.auth?.currentUser?.userId;
23430
23536
  if (userId) {
23431
- const { fetchUserSpaceMemberships } = await import("./spaceSlice-444MFUP6.js");
23537
+ const { fetchUserSpaceMemberships } = await import("./spaceSlice-TEJDCU6A.js");
23432
23538
  await thunkApi.dispatch(fetchUserSpaceMemberships(userId));
23433
23539
  }
23434
23540
  }
@@ -25911,7 +26017,7 @@ async function updateDocFunc(args, thunkApi) {
25911
26017
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
25912
26018
  };
25913
26019
  await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
25914
- const { getDocState, applyExternalDocUpdate } = await import("./docStore-2UHVWLTV.js");
26020
+ const { getDocState, applyExternalDocUpdate } = await import("./docStore-DR22GGF3.js");
25915
26021
  if (getDocState().pageKey === id) {
25916
26022
  applyExternalDocUpdate({
25917
26023
  slateData: finalSlateData,
@@ -25936,7 +26042,7 @@ async function updateDocFunc(args, thunkApi) {
25936
26042
  // packages/ai/tools/updateUserPreferenceProfileTool.ts
25937
26043
  async function dispatchSetSettings(thunkApi, changes) {
25938
26044
  const injectedSetSettings = thunkApi?.extra?.setSettings;
25939
- const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-7JYPQNAC.js")).setSettings;
26045
+ const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-O23YDK2O.js")).setSettings;
25940
26046
  await thunkApi.dispatch(setSettings(changes)).unwrap();
25941
26047
  }
25942
26048
  var updateUserPreferenceProfileFunctionSchema = {
@@ -27353,7 +27459,7 @@ var baseToolDefinitions = [
27353
27459
  executor: readAgentFunc,
27354
27460
  description: {
27355
27461
  name: "readAgent",
27356
- description: "Read a Nolo agent config.",
27462
+ description: "Read a Nolo agent's full config and resolve its runnable agentKey.",
27357
27463
  category: "Nolo workspace"
27358
27464
  },
27359
27465
  behavior: "data",
@@ -28177,8 +28283,16 @@ export {
28177
28283
  readXPostFunc,
28178
28284
  readXhsProfileFunctionSchema,
28179
28285
  readXhsProfileFunc,
28286
+ getAgentRunStatusIcon,
28287
+ shortRunId,
28288
+ formatRunAge,
28289
+ isAgentNameFallback,
28290
+ resolveRunLabel,
28180
28291
  formatStartRunCard,
28292
+ TASK_PREVIEW_MAX,
28181
28293
  formatStatusRunCard,
28294
+ runShowsLogTail,
28295
+ formatFinishedRunCard,
28182
28296
  formatStopRunCard,
28183
28297
  formatListRunsCard,
28184
28298
  formatNotFoundRunCard,
@@ -10,7 +10,7 @@ import {
10
10
  toTimestampMs,
11
11
  upsert,
12
12
  write
13
- } from "./chunk-SFXYKGK2.js";
13
+ } from "./chunk-3S2VOMIF.js";
14
14
  import {
15
15
  createUserKey,
16
16
  createUserPreferenceKey,
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-QSJ3HFEF.js";
22
22
  import {
23
23
  BUILTIN_NOLO_AGENT_KEY
24
- } from "./chunk-VPTJB4HM.js";
24
+ } from "./chunk-XPC5C7BK.js";
25
25
  import {
26
26
  asyncThunkCreator,
27
27
  buildCreateSlice,