nolo-cli 0.188.0-alpha.2 → 0.190.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 (41) hide show
  1. package/{agentDeleteCommand-GETUDKX4.js → agentDeleteCommand-USWGJZSW.js} +3 -3
  2. package/{agentEmailCommands-2EB4DJSA.js → agentEmailCommands-GAY44EQY.js} +4 -4
  3. package/agentFavoriteCommands-GAFEXKKP.js +187 -0
  4. package/{agentListCommands-6RONL2YO.js → agentListCommands-CVLCMMJH.js} +2 -2
  5. package/{agentMachineCommands-J6SX7CPR.js → agentMachineCommands-L36OJZVK.js} +2 -2
  6. package/{agentRecordCommands-UXFGQXD6.js → agentRecordCommands-YYWWC4NK.js} +4 -4
  7. package/{agentRunCommand-QTK73QMM.js → agentRunCommand-R42JIQMC.js} +4 -4
  8. package/agentRuntimeLocal-G4KEXO5D.js +1 -1
  9. package/{appDeleteCommands-6L6PTB6G.js → appDeleteCommands-C4VXCFO6.js} +3 -3
  10. package/{appDeployCommands-PLXIHXN3.js → appDeployCommands-RFSFJY75.js} +3 -3
  11. package/{appDeployStatusCommands-VGYYEBTV.js → appDeployStatusCommands-DBT5WQ3X.js} +3 -3
  12. package/{appGetCommands-NAANWNTG.js → appGetCommands-UPIBNR2W.js} +3 -3
  13. package/{appListCommands-ZT5YE2IX.js → appListCommands-PQA5MSVU.js} +3 -3
  14. package/{authCommand-NVTKI7QU.js → authCommand-PIMMUEN5.js} +1 -1
  15. package/{chromeOpsCommands-DOFY2OCF.js → chromeOpsCommands-C46BXHEE.js} +1 -1
  16. package/{chunk-Q54QGYRW.js → chunk-BHVB3ICG.js} +2 -2
  17. package/{chunk-RKLQVXUE.js → chunk-HTLIKE5U.js} +2 -2
  18. package/{chunk-2RHDAHFX.js → chunk-JAJJUMDC.js} +1 -1
  19. package/{chunk-VECM2WX3.js → chunk-PUMVJXBA.js} +1 -1
  20. package/{chunk-FGIJLPZ3.js → chunk-PUUH5I4K.js} +1 -1
  21. package/{chunk-YO3O7H2X.js → chunk-UNOILAZP.js} +14 -0
  22. package/{chunk-IIGDVODZ.js → chunk-WAZ6BTSC.js} +1 -1
  23. package/{chunk-A43QYPYN.js → chunk-XRADC4SK.js} +2 -2
  24. package/{chunk-VH7PE33C.js → chunk-ZCGA3Q7V.js} +1 -1
  25. package/{commandRegistry-MTKBHP45.js → commandRegistry-3EZUYHCR.js} +57 -53
  26. package/{cooldownCommands-IUU3ZH3L.js → cooldownCommands-4XKJFEBW.js} +1 -1
  27. package/{dialogCommands-AWGFKOGS.js → dialogCommands-Z35VVKWJ.js} +3 -3
  28. package/{docCreateCommands-4JEKXNST.js → docCreateCommands-I654DRPF.js} +2 -2
  29. package/{docDeleteCommands-Q5K4UJPQ.js → docDeleteCommands-CKHY75KZ.js} +2 -2
  30. package/{docReadCommands-ZZ7HMGPV.js → docReadCommands-YOWFZ3XC.js} +2 -2
  31. package/{docUpdateCommands-NUFXB6BD.js → docUpdateCommands-FMUKYCYX.js} +2 -2
  32. package/index.js +6 -6
  33. package/{localRuntimeAdapter-KCS5Y4T6.js → localRuntimeAdapter-X22B3GW3.js} +3 -3
  34. package/{machineCommands-E3HMAMLA.js → machineCommands-XEJR6HF3.js} +4 -4
  35. package/{machineWsRunDispatch-MGDBTLDX.js → machineWsRunDispatch-BYX227T2.js} +4 -4
  36. package/package.json +1 -1
  37. package/{readlineWorkspace-IWWKZK3F.js → readlineWorkspace-GXU2KWOK.js} +63 -17
  38. package/{secretCommands-UZV7CPJY.js → secretCommands-N6CMCJDZ.js} +1 -1
  39. package/spaceCommands-BI3TRIAK.js +1 -1
  40. package/{updateCommands-Y6CKFKIF.js → updateCommands-KE6LP3QX.js} +3 -3
  41. package/{windowsSelfUpdate-XV2MMQAC.js → windowsSelfUpdate-26TSFXEZ.js} +2 -2
@@ -1,18 +1,18 @@
1
+ import {
2
+ resolveAuthGuidanceState
3
+ } from "./chunk-MJWUBTK7.js";
1
4
  import {
2
5
  fetchCiStatus,
3
6
  summarizeLatest
4
7
  } from "./chunk-VHGD6FHV.js";
5
8
  import "./chunk-M3JEW6N6.js";
6
- import {
7
- resolveAuthGuidanceState
8
- } from "./chunk-MJWUBTK7.js";
9
9
  import {
10
10
  isHiddenFromDialogList,
11
11
  loadLocalRunChildDialogIds,
12
12
  normalizeDialogRecord,
13
13
  readDialogSnapshot,
14
14
  sortDialogs
15
- } from "./chunk-2RHDAHFX.js";
15
+ } from "./chunk-JAJJUMDC.js";
16
16
  import {
17
17
  formatQuotaSummary,
18
18
  listFavoriteAgentIdsAcrossServers,
@@ -102,7 +102,7 @@ import {
102
102
  wrapTextToLines,
103
103
  wrapTranscriptLine,
104
104
  wrapTranscriptLineWithLayout
105
- } from "./chunk-A43QYPYN.js";
105
+ } from "./chunk-XRADC4SK.js";
106
106
  import "./chunk-6QDYSCPW.js";
107
107
  import "./chunk-5LVGXDSL.js";
108
108
  import "./chunk-Y5GCAMGP.js";
@@ -123,7 +123,7 @@ import {
123
123
  formatApprovalRemaining,
124
124
  readTimestamp,
125
125
  registerHostApprovalRenderer
126
- } from "./chunk-VH7PE33C.js";
126
+ } from "./chunk-ZCGA3Q7V.js";
127
127
  import "./chunk-DYQXB46J.js";
128
128
  import "./chunk-VP3BINY7.js";
129
129
  import "./chunk-R4BMKAR5.js";
@@ -234,8 +234,8 @@ import {
234
234
  getProcessRegistry,
235
235
  readCommandActionGatePayload
236
236
  } from "./chunk-HVV4B6OL.js";
237
- import "./chunk-IIX6VWLW.js";
238
237
  import "./chunk-ZNFJWEN4.js";
238
+ import "./chunk-IIX6VWLW.js";
239
239
  import "./chunk-NVOYW6H4.js";
240
240
  import "./chunk-HNUWUO75.js";
241
241
  import "./chunk-CHOZJMJS.js";
@@ -362,7 +362,7 @@ import {
362
362
  import {
363
363
  checkForCliUpdate,
364
364
  runSelfUpdateDetailed
365
- } from "./chunk-RKLQVXUE.js";
365
+ } from "./chunk-HTLIKE5U.js";
366
366
  import {
367
367
  parseUserIdFromAuthToken,
368
368
  resolveAuthToken,
@@ -395,14 +395,14 @@ import {
395
395
  resolveDefaultSpawn,
396
396
  spawnProcess
397
397
  } from "./chunk-Y6ROFCZO.js";
398
- import "./chunk-IIGDVODZ.js";
398
+ import "./chunk-WAZ6BTSC.js";
399
399
  import {
400
400
  dailyWelcomeTip,
401
401
  initCliLocale,
402
402
  parseCliLocale,
403
403
  setCliLocale,
404
404
  t
405
- } from "./chunk-YO3O7H2X.js";
405
+ } from "./chunk-UNOILAZP.js";
406
406
  import "./chunk-WMHWFFTE.js";
407
407
  import "./chunk-XJWWBO34.js";
408
408
  import "./chunk-I42VC5KR.js";
@@ -3904,6 +3904,43 @@ function sanitizeRunSnapshotForNormal(snapshot) {
3904
3904
  };
3905
3905
  }
3906
3906
 
3907
+ // packages/cli/tui/runProgressHeartbeat.ts
3908
+ var RUN_STALL_AFTER_MS = 18e4;
3909
+ var RUN_LONG_INFLIGHT_MS = 6e5;
3910
+ function hasToolProgress(snapshot) {
3911
+ const count = snapshot.toolCallCount;
3912
+ if (typeof count === "number" && Number.isFinite(count) && count > 0) return true;
3913
+ if ((snapshot.lastToolNames?.length ?? 0) > 0) return true;
3914
+ return snapshot.inFlight?.kind === "tool";
3915
+ }
3916
+ function formatToolProgressFact(snapshot) {
3917
+ const raw = snapshot.toolCallCount;
3918
+ const toolCount = typeof raw === "number" && Number.isFinite(raw) ? raw : void 0;
3919
+ if (toolCount !== void 0 && toolCount > 0) {
3920
+ return t("runToolsCount", String(toolCount));
3921
+ }
3922
+ if (toolCount !== void 0 && hasToolProgress(snapshot)) return void 0;
3923
+ const llm = snapshot.llmCallCount;
3924
+ if (typeof llm === "number" && Number.isFinite(llm) && llm > 0) {
3925
+ return t("runLlmCalls", String(llm));
3926
+ }
3927
+ if (toolCount !== void 0) return t("runToolsCount", "0");
3928
+ return void 0;
3929
+ }
3930
+ function runProgressStalled(snapshot, now) {
3931
+ if (isAgentRunTerminalStatus(snapshot.status)) return false;
3932
+ const lastEventAt = snapshot.lastEventAt;
3933
+ if (typeof lastEventAt !== "number" || !Number.isFinite(lastEventAt) || lastEventAt <= 0) {
3934
+ return false;
3935
+ }
3936
+ if (now - lastEventAt <= RUN_STALL_AFTER_MS) return false;
3937
+ const inFlight = snapshot.inFlight;
3938
+ if (inFlight && typeof inFlight.startedAt === "number" && Number.isFinite(inFlight.startedAt) && now - inFlight.startedAt <= RUN_LONG_INFLIGHT_MS) {
3939
+ return false;
3940
+ }
3941
+ return true;
3942
+ }
3943
+
3907
3944
  // packages/cli/tui/agentRunPanelLines.ts
3908
3945
  var AUTO_IDENTITY_PATTERNS = [
3909
3946
  /^agent-[0-9a-f]{8,}-[a-z0-9]/i,
@@ -4030,9 +4067,8 @@ function runZoneFacts(snapshot, now) {
4030
4067
  }
4031
4068
  const unassigned = formatUnassignedFact(snapshot);
4032
4069
  if (unassigned) facts.push(unassigned);
4033
- if (typeof snapshot.toolCallCount === "number" && Number.isFinite(snapshot.toolCallCount)) {
4034
- facts.push(t("runToolsCount", String(snapshot.toolCallCount)));
4035
- }
4070
+ const toolFact = formatToolProgressFact(snapshot);
4071
+ if (toolFact) facts.push(toolFact);
4036
4072
  if (typeof snapshot.credits === "number" && Number.isFinite(snapshot.credits)) {
4037
4073
  facts.push(formatCreditsChip(snapshot.credits, { compact: true }));
4038
4074
  }
@@ -4044,7 +4080,7 @@ function runZoneFacts(snapshot, now) {
4044
4080
  if (lastTool) facts.push(clipText(lastTool, 20));
4045
4081
  }
4046
4082
  if (snapshot.errorMessage) facts.push(clipText(snapshot.errorMessage, 40));
4047
- return { time, rest: facts };
4083
+ return { time, rest: facts, stalled: runProgressStalled(snapshot, now) };
4048
4084
  }
4049
4085
  var RUN_ZONE_COMPACT_ROWS = 16;
4050
4086
  var RUN_ZONE_TINY_ROWS = 10;
@@ -4075,20 +4111,22 @@ function formatRunZoneLines(snapshots, colorEnabled, now = Date.now(), maxRows =
4075
4111
  const clock = remoteTaskClock(carrier, now);
4076
4112
  const icon = runZoneLeadIcon(snapshot.status, carrier);
4077
4113
  const label = runZoneLabel(snapshot, duplicateTitles);
4078
- const { time, rest } = runZoneFacts(snapshot, clock ?? now);
4114
+ const { time, rest, stalled } = runZoneFacts(snapshot, clock ?? now);
4079
4115
  const remoteFacts = remoteTaskFacts(carrier, now);
4080
4116
  const hideCredits = remoteCostIsExplicitlyUnknown(carrier);
4081
4117
  const base = hideCredits ? rest.filter((fact) => !fact.startsWith("\u26A1")) : rest;
4082
4118
  const hasError = Boolean(snapshot.errorMessage);
4083
4119
  let factList = [
4084
4120
  ...time && clock !== null ? [time] : [],
4121
+ // 停滞提示紧跟耗时:宽度不够被裁时,它比积分/工具名更该留在屏上。
4122
+ ...stalled ? [t("runStalled")] : [],
4085
4123
  ...base,
4086
4124
  ...remoteFacts
4087
4125
  ];
4088
4126
  let shownLabel = label;
4089
4127
  if (columns !== void 0) {
4090
4128
  const fixed = (l, f) => visibleWidth(`${icon} ${l}${f.length ? ` \xB7 ${f.join(" \xB7 ")}` : ""}`);
4091
- const keep = time ? 1 : 0;
4129
+ const keep = (time && clock !== null ? 1 : 0) + (stalled ? 1 : 0);
4092
4130
  while (factList.length > keep && fixed(label, factList) > columns) factList.pop();
4093
4131
  if (fixed(label, factList) > columns) {
4094
4132
  const tail = factList.length ? ` \xB7 ${factList.join(" \xB7 ")}` : "";
@@ -4102,7 +4140,7 @@ function formatRunZoneLines(snapshots, colorEnabled, now = Date.now(), maxRows =
4102
4140
  continue;
4103
4141
  }
4104
4142
  lines.push(
4105
- themeText(icon, runStatusTone(snapshot.status), true) + " " + themeText(shownLabel, "chrome", true) + themeText(factsPart, hasError ? "danger" : "chrome")
4143
+ themeText(icon, runStatusTone(snapshot.status), true) + " " + themeText(shownLabel, "chrome", true) + themeText(factsPart, hasError ? "danger" : stalled ? "warning" : "chrome")
4106
4144
  );
4107
4145
  }
4108
4146
  const hidden = display.length - shown.length;
@@ -4815,6 +4853,7 @@ function snapshotFromRunRecord(record, now) {
4815
4853
  const endedAt = readTimestamp(record.endedAt);
4816
4854
  const activity = record.activity;
4817
4855
  const counters = activity?.counters;
4856
+ const lastEventAtMs = activity?.lastEventAt ? Date.parse(activity.lastEventAt) : NaN;
4818
4857
  let inFlight = null;
4819
4858
  const raw = activity?.inFlight;
4820
4859
  if (raw && !isAgentRunTerminalStatus(record.status)) {
@@ -4834,6 +4873,10 @@ function snapshotFromRunRecord(record, now) {
4834
4873
  ...startedAt !== void 0 ? { startedAt } : {},
4835
4874
  ...endedAt !== void 0 ? { finishedAt: endedAt } : {},
4836
4875
  ...typeof counters?.toolCalls === "number" ? { toolCallCount: counters.toolCalls } : {},
4876
+ // 纯推理 run(0 次工具调用)的心跳:模型调用次数 + 最后一次事件时刻。
4877
+ // 两者都来自记录里已有的字段,不新增任何采集。
4878
+ ...typeof counters?.llmCalls === "number" ? { llmCallCount: counters.llmCalls } : {},
4879
+ ...Number.isFinite(lastEventAtMs) ? { lastEventAt: lastEventAtMs } : {},
4837
4880
  // 收尾自报的平台积分 → dock 行「⚡ x.xx 积分」。
4838
4881
  ...typeof record.credits === "number" && Number.isFinite(record.credits) ? { credits: record.credits } : {},
4839
4882
  // note 在终态时是死因("orphaned: process gone…"),非终态时只是备注。
@@ -4849,6 +4892,9 @@ function fingerprint(snapshot) {
4849
4892
  snapshot.title ?? "",
4850
4893
  snapshot.unassigned ?? false,
4851
4894
  snapshot.toolCallCount ?? -1,
4895
+ // 模型调用次数与事件时刻都是「变了就该重画」:纯推理 run 的心跳靠它们。
4896
+ snapshot.llmCallCount ?? -1,
4897
+ snapshot.lastEventAt ?? 0,
4852
4898
  snapshot.errorMessage ?? "",
4853
4899
  snapshot.finishedAt ?? 0,
4854
4900
  snapshot.credits ?? -1,
@@ -4,7 +4,7 @@ import {
4
4
  import "./chunk-ZWQUWF6W.js";
5
5
  import {
6
6
  t
7
- } from "./chunk-YO3O7H2X.js";
7
+ } from "./chunk-UNOILAZP.js";
8
8
  import "./chunk-3EUW3WEO.js";
9
9
  import "./chunk-4VNS5WPM.js";
10
10
 
@@ -21,8 +21,8 @@ import {
21
21
  } from "./chunk-3PVYUPXK.js";
22
22
  import "./chunk-D2MDMY2M.js";
23
23
  import "./chunk-HVV4B6OL.js";
24
- import "./chunk-IIX6VWLW.js";
25
24
  import "./chunk-ZNFJWEN4.js";
25
+ import "./chunk-IIX6VWLW.js";
26
26
  import "./chunk-NVOYW6H4.js";
27
27
  import "./chunk-HNUWUO75.js";
28
28
  import "./chunk-CHOZJMJS.js";
@@ -17,7 +17,7 @@ import {
17
17
  runSelfUpdate,
18
18
  runSelfUpdateDetailed,
19
19
  runStandaloneBundleUpdate
20
- } from "./chunk-RKLQVXUE.js";
20
+ } from "./chunk-HTLIKE5U.js";
21
21
  import "./chunk-WACI5I6V.js";
22
22
  import "./chunk-OLZBQWZU.js";
23
23
  import "./chunk-LCBAMY2M.js";
@@ -25,8 +25,8 @@ import "./chunk-4SN6J65J.js";
25
25
  import "./chunk-CF7PE763.js";
26
26
  import "./chunk-R5GO3YZP.js";
27
27
  import "./chunk-Y6ROFCZO.js";
28
- import "./chunk-IIGDVODZ.js";
29
- import "./chunk-YO3O7H2X.js";
28
+ import "./chunk-WAZ6BTSC.js";
29
+ import "./chunk-UNOILAZP.js";
30
30
  import "./chunk-G3SUCT4W.js";
31
31
  import "./chunk-4VNS5WPM.js";
32
32
  export {
@@ -3,8 +3,8 @@ import {
3
3
  defaultLaunchWindowsUpdateHelper,
4
4
  getWindowsUpdateStatus,
5
5
  scheduleWindowsSelfUpdate
6
- } from "./chunk-IIGDVODZ.js";
7
- import "./chunk-YO3O7H2X.js";
6
+ } from "./chunk-WAZ6BTSC.js";
7
+ import "./chunk-UNOILAZP.js";
8
8
  import "./chunk-4VNS5WPM.js";
9
9
  export {
10
10
  buildWindowsUpdateHelperSource,