nolo-cli 0.102.0-alpha.1 → 0.103.0-alpha.2

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 (40) hide show
  1. package/{_executeModel-LUNEV235.js → _executeModel-3UCNJCQA.js} +11 -11
  2. package/{agentEmailCommands-G6A7IRPQ.js → agentEmailCommands-WLYF3JRS.js} +10 -10
  3. package/{agentListCommands-KMS675GZ.js → agentListCommands-JP7S7PT2.js} +66 -3
  4. package/{agentMachineCommands-W2SMNSQ3.js → agentMachineCommands-HNGAR5GI.js} +1 -1
  5. package/{agentRecordCommands-D7BRMFNI.js → agentRecordCommands-SXFPW3DL.js} +10 -10
  6. package/{agentRunCommand-VL6MMEUB.js → agentRunCommand-JIQ4HY4D.js} +10 -10
  7. package/{agentSlice-5YJHUO47.js → agentSlice-SICQBMCM.js} +1 -1
  8. package/{chatQueueReduxAdapter-PQMRR2PK.js → chatQueueReduxAdapter-HHMUDNXL.js} +2 -2
  9. package/{chunk-4S5QUMJP.js → chunk-3N3W7KBB.js} +3 -3
  10. package/{chunk-Q2XN3EOZ.js → chunk-3WLK2JQ5.js} +3 -3
  11. package/{chunk-45C5ER5U.js → chunk-4EG4QFTK.js} +2 -2
  12. package/{chunk-BTI7PJDX.js → chunk-AGVEIAQA.js} +5 -5
  13. package/{chunk-G2O6V3HJ.js → chunk-B3TVQ6PI.js} +2 -2
  14. package/{chunk-X6DN5HBD.js → chunk-CUQEXCAU.js} +1 -1
  15. package/{chunk-RFCKMYDK.js → chunk-DNUUJ45N.js} +2 -2
  16. package/{chunk-YFE4A4O7.js → chunk-F2RNI7ZR.js} +5 -5
  17. package/{chunk-6IG4XSS6.js → chunk-IONPPCL5.js} +3 -2
  18. package/{chunk-SSDAAEC2.js → chunk-LW4VFPAY.js} +4 -4
  19. package/{chunk-ORYWEJO4.js → chunk-OZGZPSEG.js} +1 -1
  20. package/{chunk-RG6JBBX5.js → chunk-PQFHGD77.js} +6 -0
  21. package/{chunk-DRGSDQBL.js → chunk-RSONHHPE.js} +2 -2
  22. package/{chunk-5FBTLSFG.js → chunk-TQBHNYVR.js} +9 -9
  23. package/{chunk-6Q33GUCC.js → chunk-XS5SWEDQ.js} +1 -1
  24. package/{chunk-QVKRR2SS.js → chunk-XVZ22N6C.js} +8 -8
  25. package/{contentThunks-GJV22WVZ.js → contentThunks-S4S7QPSO.js} +3 -3
  26. package/{createAgentAutomationAction-6V25TZEO.js → createAgentAutomationAction-ODGL2YGP.js} +3 -3
  27. package/{createDialogAction-SX36BGSX.js → createDialogAction-GFKRXTK4.js} +4 -4
  28. package/{createPageAction-IR4BGJSI.js → createPageAction-FBV3OWX7.js} +3 -3
  29. package/{dialogSlice-UNX2FAPZ.js → dialogSlice-LEO27SQG.js} +2 -2
  30. package/{docStore-JWVG5NDO.js → docStore-MNX5MHA5.js} +1 -1
  31. package/{handleSendMessageAction-B75UOJKF.js → handleSendMessageAction-YB6KQFJS.js} +2 -2
  32. package/index.js +16 -16
  33. package/{machineCommands-GFPTOY6L.js → machineCommands-7GVQCUAK.js} +10 -10
  34. package/{machineWsRunDispatch-46PSZ3DJ.js → machineWsRunDispatch-XA7TD7Z7.js} +10 -10
  35. package/package.json +1 -1
  36. package/{readlineWorkspace-UFSWHFKD.js → readlineWorkspace-WA7JNI6J.js} +11 -11
  37. package/{runAgentClientLoop-25LJ4XGV.js → runAgentClientLoop-JGFQ6KIR.js} +9 -9
  38. package/{streamAgentChatTurn-A46QFV4O.js → streamAgentChatTurn-XLFZ66UC.js} +10 -10
  39. package/{tools-TTDGRNY6.js → tools-NF5AB34X.js} +7 -7
  40. package/{updateDialogTitleAction-QJPZGF52.js → updateDialogTitleAction-6MBTD4UE.js} +3 -3
@@ -1,26 +1,26 @@
1
1
  import {
2
2
  fetchAgentContexts
3
- } from "./chunk-6Q33GUCC.js";
3
+ } from "./chunk-XS5SWEDQ.js";
4
4
  import {
5
5
  filterAndCleanMessages,
6
6
  sendOpenAICompletionsRequest
7
- } from "./chunk-BTI7PJDX.js";
7
+ } from "./chunk-AGVEIAQA.js";
8
8
  import "./chunk-JEXVIMYZ.js";
9
- import "./chunk-DRGSDQBL.js";
9
+ import "./chunk-RSONHHPE.js";
10
10
  import {
11
11
  generateRequestBody,
12
12
  mergeReferences,
13
13
  performFetchRequest,
14
14
  sanitizeOutboundBody
15
- } from "./chunk-Q2XN3EOZ.js";
15
+ } from "./chunk-3WLK2JQ5.js";
16
16
  import "./chunk-EOARMOVD.js";
17
17
  import "./chunk-HS7MLR74.js";
18
- import "./chunk-5FBTLSFG.js";
18
+ import "./chunk-TQBHNYVR.js";
19
19
  import "./chunk-5UTFL4QJ.js";
20
20
  import "./chunk-NF64D32W.js";
21
21
  import "./chunk-3L2WKC3W.js";
22
22
  import "./chunk-3VNWWVKB.js";
23
- import "./chunk-RG6JBBX5.js";
23
+ import "./chunk-PQFHGD77.js";
24
24
  import "./chunk-KQHGZWSV.js";
25
25
  import "./chunk-J4MOO56S.js";
26
26
  import "./chunk-HJUYAD4A.js";
@@ -32,20 +32,20 @@ import "./chunk-FZGV4FGK.js";
32
32
  import "./chunk-MEYIRKDN.js";
33
33
  import "./chunk-63W5N6P3.js";
34
34
  import "./chunk-VF4K2QE6.js";
35
- import "./chunk-G2O6V3HJ.js";
36
- import "./chunk-RFCKMYDK.js";
37
- import "./chunk-ORYWEJO4.js";
35
+ import "./chunk-B3TVQ6PI.js";
36
+ import "./chunk-DNUUJ45N.js";
37
+ import "./chunk-OZGZPSEG.js";
38
38
  import "./chunk-ZJ7UHBJS.js";
39
39
  import {
40
40
  selectAllMsgs,
41
41
  selectCurrentDialogConfig,
42
42
  updateTokensAction
43
- } from "./chunk-QVKRR2SS.js";
43
+ } from "./chunk-XVZ22N6C.js";
44
44
  import "./chunk-MC4XLIJ7.js";
45
45
  import "./chunk-3BMYXEUW.js";
46
46
  import "./chunk-YYLHWIW6.js";
47
47
  import "./chunk-AGGIDPCZ.js";
48
- import "./chunk-4S5QUMJP.js";
48
+ import "./chunk-3N3W7KBB.js";
49
49
  import "./chunk-TOP2VXOR.js";
50
50
  import "./chunk-5RGU3J7P.js";
51
51
  import "./chunk-6YTOJY35.js";
@@ -8,8 +8,8 @@ import {
8
8
  } from "./chunk-V7E4PXQD.js";
9
9
  import {
10
10
  runAgentCreateCommand
11
- } from "./chunk-X6DN5HBD.js";
12
- import "./chunk-YFE4A4O7.js";
11
+ } from "./chunk-CUQEXCAU.js";
12
+ import "./chunk-F2RNI7ZR.js";
13
13
  import "./chunk-53HEEOTT.js";
14
14
  import "./chunk-EADNWBAZ.js";
15
15
  import "./chunk-SH43IESU.js";
@@ -30,14 +30,14 @@ import "./chunk-MP64VFGD.js";
30
30
  import "./chunk-JBTJAPUF.js";
31
31
  import "./chunk-3DII57IT.js";
32
32
  import "./chunk-ATNTHIZI.js";
33
- import "./chunk-DRGSDQBL.js";
33
+ import "./chunk-RSONHHPE.js";
34
34
  import "./chunk-HS7MLR74.js";
35
- import "./chunk-5FBTLSFG.js";
35
+ import "./chunk-TQBHNYVR.js";
36
36
  import "./chunk-5UTFL4QJ.js";
37
37
  import "./chunk-NF64D32W.js";
38
38
  import "./chunk-3L2WKC3W.js";
39
39
  import "./chunk-3VNWWVKB.js";
40
- import "./chunk-RG6JBBX5.js";
40
+ import "./chunk-PQFHGD77.js";
41
41
  import "./chunk-KQHGZWSV.js";
42
42
  import "./chunk-J4MOO56S.js";
43
43
  import "./chunk-HJUYAD4A.js";
@@ -50,16 +50,16 @@ import "./chunk-FZGV4FGK.js";
50
50
  import "./chunk-MEYIRKDN.js";
51
51
  import "./chunk-63W5N6P3.js";
52
52
  import "./chunk-VF4K2QE6.js";
53
- import "./chunk-G2O6V3HJ.js";
54
- import "./chunk-RFCKMYDK.js";
55
- import "./chunk-ORYWEJO4.js";
53
+ import "./chunk-B3TVQ6PI.js";
54
+ import "./chunk-DNUUJ45N.js";
55
+ import "./chunk-OZGZPSEG.js";
56
56
  import "./chunk-ZJ7UHBJS.js";
57
- import "./chunk-QVKRR2SS.js";
57
+ import "./chunk-XVZ22N6C.js";
58
58
  import "./chunk-MC4XLIJ7.js";
59
59
  import "./chunk-3BMYXEUW.js";
60
60
  import "./chunk-YYLHWIW6.js";
61
61
  import "./chunk-AGGIDPCZ.js";
62
- import "./chunk-4S5QUMJP.js";
62
+ import "./chunk-3N3W7KBB.js";
63
63
  import "./chunk-TOP2VXOR.js";
64
64
  import "./chunk-5RGU3J7P.js";
65
65
  import "./chunk-6YTOJY35.js";
@@ -8,7 +8,7 @@ import {
8
8
  normalizeListedAgent,
9
9
  parseAgentListArgs,
10
10
  toSafeListedAgentSummary
11
- } from "./chunk-6IG4XSS6.js";
11
+ } from "./chunk-IONPPCL5.js";
12
12
  import {
13
13
  buildSpaceLookup,
14
14
  getSpaceContentKeys
@@ -36,7 +36,7 @@ import {
36
36
  toCompactAgentSummary,
37
37
  toSafeAgentSummary,
38
38
  toUnavailableAgentSummary
39
- } from "./chunk-RG6JBBX5.js";
39
+ } from "./chunk-PQFHGD77.js";
40
40
  import "./chunk-KQHGZWSV.js";
41
41
  import "./chunk-YYLHWIW6.js";
42
42
  import "./chunk-6VFARHZW.js";
@@ -108,6 +108,66 @@ import "./chunk-CF7PE763.js";
108
108
  import "./chunk-G3SUCT4W.js";
109
109
  import "./chunk-4VNS5WPM.js";
110
110
 
111
+ // packages/ai/agent/quotaSnapshot.ts
112
+ function findTightestQuotaWindow(quota, now = Date.now()) {
113
+ if (!quota || !Array.isArray(quota.windows) || quota.windows.length === 0) {
114
+ return void 0;
115
+ }
116
+ let best;
117
+ let bestScore = -Infinity;
118
+ for (const w of quota.windows) {
119
+ let score = 0;
120
+ if (typeof w.utilization === "number" && w.utilization >= 0) {
121
+ score = 500 + Math.min(w.utilization, 1) * 500;
122
+ } else if (typeof w.remaining === "number" && typeof w.limit === "number" && w.limit > 0) {
123
+ const util = Math.max(0, 1 - w.remaining / w.limit);
124
+ score = 500 + util * 500;
125
+ } else if (typeof w.resetAt === "number" && w.resetAt > now) {
126
+ score = 200;
127
+ } else if (typeof w.remaining === "number") {
128
+ score = 100;
129
+ }
130
+ if (score > bestScore) {
131
+ bestScore = score;
132
+ best = w;
133
+ }
134
+ }
135
+ return best ?? quota.windows[0];
136
+ }
137
+ function formatQuotaSummary(quota, now = Date.now()) {
138
+ const tightest = findTightestQuotaWindow(quota, now);
139
+ if (!tightest) return void 0;
140
+ const parts = [];
141
+ if (typeof tightest.utilization === "number") {
142
+ const pct = Math.round(tightest.utilization * 100);
143
+ parts.push(`${pct}%\u5DF2\u7528`);
144
+ } else if (typeof tightest.remaining === "number") {
145
+ if (typeof tightest.limit === "number") {
146
+ parts.push(`${tightest.remaining}/${tightest.limit}${tightest.unit ? ` ${tightest.unit}` : ""}`);
147
+ } else {
148
+ parts.push(`\u4F59${tightest.remaining}${tightest.unit ? ` ${tightest.unit}` : ""}`);
149
+ }
150
+ }
151
+ if (tightest.scope && tightest.scope !== "user" && tightest.scope !== "project" && tightest.scope !== tightest.unit) {
152
+ parts.push(tightest.scope);
153
+ }
154
+ if (typeof tightest.resetAt === "number" && tightest.resetAt > now) {
155
+ const diffSec = Math.round((tightest.resetAt - now) / 1e3);
156
+ if (diffSec < 60) {
157
+ parts.push(`${diffSec}s\u540E\u91CD\u7F6E`);
158
+ } else if (diffSec < 3600) {
159
+ parts.push(`${Math.round(diffSec / 60)}m\u540E\u91CD\u7F6E`);
160
+ } else if (diffSec < 86400) {
161
+ const hours = (diffSec / 3600).toFixed(1).replace(/\.0$/, "");
162
+ parts.push(`${hours}h\u540E\u91CD\u7F6E`);
163
+ } else {
164
+ const days = (diffSec / 86400).toFixed(1).replace(/\.0$/, "");
165
+ parts.push(`${days}d\u540E\u91CD\u7F6E`);
166
+ }
167
+ }
168
+ return parts.length > 0 ? parts.join(" \xB7 ") : void 0;
169
+ }
170
+
111
171
  // packages/cli/agentListCommands.ts
112
172
  async function runAgentListCommand(args, deps = {}) {
113
173
  const env = deps.env ?? process.env;
@@ -372,6 +432,8 @@ async function runAgentListCommand(args, deps = {}) {
372
432
  const flagMismatch = agent.isPublicFlag !== agent.publicRecordExists ? ` flag=${agent.isPublicFlag}` : "";
373
433
  const credentialLine = agent.credentialConfigured ? `credentialConfigured=true${agent.credentialRef ? ` credentialRef=${agent.credentialRef}` : ""}${agent.apiKeyRef ? ` apiKeyRef=${agent.apiKeyRef}` : ""}` : "credentialConfigured=false";
374
434
  const availabilityLine = typeof agent.nextAvailableAt === "number" && agent.nextAvailableAt > Date.now() ? `nextAvailableAt=${new Date(agent.nextAvailableAt).toISOString()}` : "nextAvailableAt=now";
435
+ const quotaSummary = formatQuotaSummary(agent.quota);
436
+ const quotaLine = `quota=${quotaSummary ?? "-"}`;
375
437
  output.write(
376
438
  [
377
439
  `
@@ -387,7 +449,8 @@ async function runAgentListCommand(args, deps = {}) {
387
449
  `publicKey=${agent.publicRecordExists ? agent.publicKey : "-"}${flagMismatch}`,
388
450
  `tools=${agent.tools.join(", ") || "-"}`,
389
451
  credentialLine,
390
- availabilityLine
452
+ availabilityLine,
453
+ quotaLine
391
454
  ].join("\n")
392
455
  );
393
456
  output.write("\n");
@@ -91,7 +91,7 @@ async function defaultExecuteCli(provider, prompt, options) {
91
91
  return executeCli(provider, prompt, options);
92
92
  }
93
93
  async function forwardConnectorRunMessage(machine, message, pushMessage, executeCli, env, fetchImpl) {
94
- const { handleConnectorRunMessage } = await import("./machineWsRunDispatch-46PSZ3DJ.js");
94
+ const { handleConnectorRunMessage } = await import("./machineWsRunDispatch-XA7TD7Z7.js");
95
95
  return handleConnectorRunMessage(message, pushMessage, executeCli, env, fetchImpl);
96
96
  }
97
97
  async function detectLaunchableMachineInfo() {
@@ -2,8 +2,8 @@ import {
2
2
  runAgentCreateCommand,
3
3
  runAgentReadCommand,
4
4
  runAgentUpdateCommand
5
- } from "./chunk-X6DN5HBD.js";
6
- import "./chunk-YFE4A4O7.js";
5
+ } from "./chunk-CUQEXCAU.js";
6
+ import "./chunk-F2RNI7ZR.js";
7
7
  import "./chunk-53HEEOTT.js";
8
8
  import "./chunk-EADNWBAZ.js";
9
9
  import "./chunk-SH43IESU.js";
@@ -17,14 +17,14 @@ import "./chunk-MP64VFGD.js";
17
17
  import "./chunk-JBTJAPUF.js";
18
18
  import "./chunk-3DII57IT.js";
19
19
  import "./chunk-ATNTHIZI.js";
20
- import "./chunk-DRGSDQBL.js";
20
+ import "./chunk-RSONHHPE.js";
21
21
  import "./chunk-HS7MLR74.js";
22
- import "./chunk-5FBTLSFG.js";
22
+ import "./chunk-TQBHNYVR.js";
23
23
  import "./chunk-5UTFL4QJ.js";
24
24
  import "./chunk-NF64D32W.js";
25
25
  import "./chunk-3L2WKC3W.js";
26
26
  import "./chunk-3VNWWVKB.js";
27
- import "./chunk-RG6JBBX5.js";
27
+ import "./chunk-PQFHGD77.js";
28
28
  import "./chunk-KQHGZWSV.js";
29
29
  import "./chunk-J4MOO56S.js";
30
30
  import "./chunk-HJUYAD4A.js";
@@ -37,16 +37,16 @@ import "./chunk-FZGV4FGK.js";
37
37
  import "./chunk-MEYIRKDN.js";
38
38
  import "./chunk-63W5N6P3.js";
39
39
  import "./chunk-VF4K2QE6.js";
40
- import "./chunk-G2O6V3HJ.js";
41
- import "./chunk-RFCKMYDK.js";
42
- import "./chunk-ORYWEJO4.js";
40
+ import "./chunk-B3TVQ6PI.js";
41
+ import "./chunk-DNUUJ45N.js";
42
+ import "./chunk-OZGZPSEG.js";
43
43
  import "./chunk-ZJ7UHBJS.js";
44
- import "./chunk-QVKRR2SS.js";
44
+ import "./chunk-XVZ22N6C.js";
45
45
  import "./chunk-MC4XLIJ7.js";
46
46
  import "./chunk-3BMYXEUW.js";
47
47
  import "./chunk-YYLHWIW6.js";
48
48
  import "./chunk-AGGIDPCZ.js";
49
- import "./chunk-4S5QUMJP.js";
49
+ import "./chunk-3N3W7KBB.js";
50
50
  import "./chunk-TOP2VXOR.js";
51
51
  import "./chunk-5RGU3J7P.js";
52
52
  import "./chunk-6YTOJY35.js";
@@ -8,12 +8,12 @@ import {
8
8
  resolveRunSettlementNote,
9
9
  resolveWorkflowReference,
10
10
  runAgentRunCommand
11
- } from "./chunk-SSDAAEC2.js";
11
+ } from "./chunk-LW4VFPAY.js";
12
12
  import "./chunk-S7Z2HMCN.js";
13
13
  import {
14
14
  parseAgentRunArgs
15
15
  } from "./chunk-V7E4PXQD.js";
16
- import "./chunk-YFE4A4O7.js";
16
+ import "./chunk-F2RNI7ZR.js";
17
17
  import "./chunk-53HEEOTT.js";
18
18
  import "./chunk-EADNWBAZ.js";
19
19
  import "./chunk-SH43IESU.js";
@@ -30,14 +30,14 @@ import "./chunk-LTRXGFMS.js";
30
30
  import "./chunk-3DII57IT.js";
31
31
  import "./chunk-ATNTHIZI.js";
32
32
  import "./chunk-JEXVIMYZ.js";
33
- import "./chunk-DRGSDQBL.js";
33
+ import "./chunk-RSONHHPE.js";
34
34
  import "./chunk-HS7MLR74.js";
35
- import "./chunk-5FBTLSFG.js";
35
+ import "./chunk-TQBHNYVR.js";
36
36
  import "./chunk-5UTFL4QJ.js";
37
37
  import "./chunk-NF64D32W.js";
38
38
  import "./chunk-3L2WKC3W.js";
39
39
  import "./chunk-3VNWWVKB.js";
40
- import "./chunk-RG6JBBX5.js";
40
+ import "./chunk-PQFHGD77.js";
41
41
  import "./chunk-KQHGZWSV.js";
42
42
  import "./chunk-J4MOO56S.js";
43
43
  import "./chunk-HJUYAD4A.js";
@@ -50,16 +50,16 @@ import "./chunk-FZGV4FGK.js";
50
50
  import "./chunk-MEYIRKDN.js";
51
51
  import "./chunk-63W5N6P3.js";
52
52
  import "./chunk-VF4K2QE6.js";
53
- import "./chunk-G2O6V3HJ.js";
54
- import "./chunk-RFCKMYDK.js";
55
- import "./chunk-ORYWEJO4.js";
53
+ import "./chunk-B3TVQ6PI.js";
54
+ import "./chunk-DNUUJ45N.js";
55
+ import "./chunk-OZGZPSEG.js";
56
56
  import "./chunk-ZJ7UHBJS.js";
57
- import "./chunk-QVKRR2SS.js";
57
+ import "./chunk-XVZ22N6C.js";
58
58
  import "./chunk-MC4XLIJ7.js";
59
59
  import "./chunk-3BMYXEUW.js";
60
60
  import "./chunk-YYLHWIW6.js";
61
61
  import "./chunk-AGGIDPCZ.js";
62
- import "./chunk-4S5QUMJP.js";
62
+ import "./chunk-3N3W7KBB.js";
63
63
  import "./chunk-TOP2VXOR.js";
64
64
  import "./chunk-5RGU3J7P.js";
65
65
  import "./chunk-6YTOJY35.js";
@@ -7,7 +7,7 @@ import {
7
7
  slice,
8
8
  streamAgentChatTurn,
9
9
  updateAgent
10
- } from "./chunk-4S5QUMJP.js";
10
+ } from "./chunk-3N3W7KBB.js";
11
11
  import "./chunk-HVURBGF3.js";
12
12
  import "./chunk-ONXOABJR.js";
13
13
  import "./chunk-KX6YBIHG.js";
@@ -4,12 +4,12 @@ import {
4
4
  } from "./chunk-YPREESF4.js";
5
5
  import {
6
6
  handleSendMessage
7
- } from "./chunk-QVKRR2SS.js";
7
+ } from "./chunk-XVZ22N6C.js";
8
8
  import "./chunk-MC4XLIJ7.js";
9
9
  import "./chunk-3BMYXEUW.js";
10
10
  import "./chunk-YYLHWIW6.js";
11
11
  import "./chunk-AGGIDPCZ.js";
12
- import "./chunk-4S5QUMJP.js";
12
+ import "./chunk-3N3W7KBB.js";
13
13
  import "./chunk-TOP2VXOR.js";
14
14
  import "./chunk-5RGU3J7P.js";
15
15
  import {
@@ -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-LUNEV235.js");
307
+ const { _executeModel } = await import("./_executeModel-3UCNJCQA.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-25LJ4XGV.js");
328
+ const { runAgentClientLoop } = await import("./runAgentClientLoop-JGFQ6KIR.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-A46QFV4O.js");
344
+ const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-XLFZ66UC.js");
345
345
  return streamAgentChatTurnHandler(args, thunkApi);
346
346
  }),
347
347
  /**
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  clipMultilineText,
9
9
  fetchAndSerializeTable
10
- } from "./chunk-5FBTLSFG.js";
10
+ } from "./chunk-TQBHNYVR.js";
11
11
  import {
12
12
  isGatewayHttpStatus
13
13
  } from "./chunk-NF64D32W.js";
@@ -28,13 +28,13 @@ import {
28
28
  } from "./chunk-MEYIRKDN.js";
29
29
  import {
30
30
  fetchAndCacheMessages
31
- } from "./chunk-QVKRR2SS.js";
31
+ } from "./chunk-XVZ22N6C.js";
32
32
  import {
33
33
  shouldUseServerProxy
34
34
  } from "./chunk-YYLHWIW6.js";
35
35
  import {
36
36
  fetchServerSyncedCredential
37
- } from "./chunk-4S5QUMJP.js";
37
+ } from "./chunk-3N3W7KBB.js";
38
38
  import {
39
39
  buildSkillGuidancePromptBlock,
40
40
  extractRuntimePageCapabilities,
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createCliLocalRuntimeAdapter,
3
3
  summarizeEndpoint
4
- } from "./chunk-YFE4A4O7.js";
4
+ } from "./chunk-F2RNI7ZR.js";
5
5
  import {
6
6
  clipMultilineText
7
- } from "./chunk-5FBTLSFG.js";
7
+ } from "./chunk-TQBHNYVR.js";
8
8
  import {
9
9
  runLocalAgentTurn
10
10
  } from "./chunk-6VFARHZW.js";
@@ -5,14 +5,14 @@ import {
5
5
  inlineImageUrlsForCustomProvider,
6
6
  prepareTools,
7
7
  shouldInlineImageUrlsForAgent
8
- } from "./chunk-DRGSDQBL.js";
8
+ } from "./chunk-RSONHHPE.js";
9
9
  import {
10
10
  INVALID_TOOL_ARGS_REPLACEMENT,
11
11
  buildInvalidToolCallSelfHealResult,
12
12
  parseToolCallArguments,
13
13
  performFetchRequest,
14
14
  sanitizeOutboundMessages
15
- } from "./chunk-Q2XN3EOZ.js";
15
+ } from "./chunk-3WLK2JQ5.js";
16
16
  import {
17
17
  createSSEParser,
18
18
  createToolRunId,
@@ -23,7 +23,7 @@ import {
23
23
  toolRunSetPending,
24
24
  toolRunStarted,
25
25
  toolRunSucceeded
26
- } from "./chunk-5FBTLSFG.js";
26
+ } from "./chunk-TQBHNYVR.js";
27
27
  import {
28
28
  getPublicImageAgentMode
29
29
  } from "./chunk-VIDPVFP3.js";
@@ -35,10 +35,10 @@ import {
35
35
  messageStreamEnd,
36
36
  messageStreaming,
37
37
  updateToolMessage
38
- } from "./chunk-QVKRR2SS.js";
38
+ } from "./chunk-XVZ22N6C.js";
39
39
  import {
40
40
  streamAgentChatTurn
41
- } from "./chunk-4S5QUMJP.js";
41
+ } from "./chunk-3N3W7KBB.js";
42
42
  import {
43
43
  addActiveController,
44
44
  removeActiveController,
@@ -326,7 +326,7 @@ async function saveDocState(arg, { dispatch, getState }) {
326
326
  ).unwrap();
327
327
  if (dbSpaceId) {
328
328
  try {
329
- const { updateContentTitle } = await import("./contentThunks-GJV22WVZ.js");
329
+ const { updateContentTitle } = await import("./contentThunks-S4S7QPSO.js");
330
330
  await dispatch(
331
331
  updateContentTitle({
332
332
  spaceId: dbSpaceId,
@@ -365,7 +365,7 @@ async function saveDocState(arg, { dispatch, getState }) {
365
365
  }
366
366
  }
367
367
  async function createDocState(args, thunkApi) {
368
- const { createPageAction } = await import("./createPageAction-IR4BGJSI.js");
368
+ const { createPageAction } = await import("./createPageAction-FBV3OWX7.js");
369
369
  return createPageAction(args, thunkApi);
370
370
  }
371
371
  function subscribe(listener) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  clearCliLocalRuntimePreparedAgentCache
3
- } from "./chunk-YFE4A4O7.js";
3
+ } from "./chunk-F2RNI7ZR.js";
4
4
  import {
5
5
  getReadableCliDb
6
6
  } from "./chunk-LS2ZANRJ.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-ORYWEJO4.js";
3
+ } from "./chunk-OZGZPSEG.js";
4
4
  import {
5
5
  prepareAndPersistMessage,
6
6
  uiAskChoiceFunc,
7
7
  uiAskChoiceFunctionSchema
8
- } from "./chunk-QVKRR2SS.js";
8
+ } from "./chunk-XVZ22N6C.js";
9
9
  import {
10
10
  require_date_fns
11
11
  } from "./chunk-M76ECQRD.js";
@@ -61,7 +61,7 @@ import {
61
61
  import {
62
62
  inlineImageUrlsForCustomProvider,
63
63
  prepareTools
64
- } from "./chunk-DRGSDQBL.js";
64
+ } from "./chunk-RSONHHPE.js";
65
65
  import {
66
66
  getServerProviderSecret
67
67
  } from "./chunk-HS7MLR74.js";
@@ -80,7 +80,7 @@ import {
80
80
  rememberMemoryFunctionSchema,
81
81
  resolveAgentRequiredPackIds,
82
82
  setTodoListFunc
83
- } from "./chunk-5FBTLSFG.js";
83
+ } from "./chunk-TQBHNYVR.js";
84
84
  import {
85
85
  fetchWithTransientRetry,
86
86
  isTransientFetchError
@@ -99,7 +99,7 @@ import {
99
99
  } from "./chunk-3VNWWVKB.js";
100
100
  import {
101
101
  deriveCredentialGroup
102
- } from "./chunk-RG6JBBX5.js";
102
+ } from "./chunk-PQFHGD77.js";
103
103
  import {
104
104
  getModelPricing
105
105
  } from "./chunk-EYAQT56M.js";
@@ -109,14 +109,14 @@ import {
109
109
  prepareTokenUsageData,
110
110
  resolveBuiltinPlatformAgentConfig,
111
111
  runKeyed
112
- } from "./chunk-QVKRR2SS.js";
112
+ } from "./chunk-XVZ22N6C.js";
113
113
  import {
114
114
  BUILTIN_DIALOG_LLM_CHAT_FALLBACK_MODEL,
115
115
  BUILTIN_TITLE_LLM_CONFIG
116
116
  } from "./chunk-MC4XLIJ7.js";
117
117
  import {
118
118
  fetchServerSyncedCredential
119
- } from "./chunk-4S5QUMJP.js";
119
+ } from "./chunk-3N3W7KBB.js";
120
120
  import {
121
121
  require_date_fns
122
122
  } from "./chunk-M76ECQRD.js";
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  deriveCredentialGroup,
10
10
  toSafeAgentSummary
11
- } from "./chunk-RG6JBBX5.js";
11
+ } from "./chunk-PQFHGD77.js";
12
12
  import {
13
13
  PUBLIC_AGENT_KEY_PREFIX,
14
14
  isOwnedAgentKey,
@@ -67,7 +67,8 @@ function normalizeListedAgent(record) {
67
67
  ...credentialKind !== void 0 ? { credentialKind } : {},
68
68
  ...typeof record?.apiSource === "string" && record.apiSource ? { apiSource: record.apiSource } : {},
69
69
  ...typeof record?.cliProvider === "string" && record.cliProvider ? { cliProvider: record.cliProvider } : {},
70
- ...typeof record?.nextAvailableAt === "number" && Number.isFinite(record.nextAvailableAt) ? { nextAvailableAt: record.nextAvailableAt } : {}
70
+ ...typeof record?.nextAvailableAt === "number" && Number.isFinite(record.nextAvailableAt) ? { nextAvailableAt: record.nextAvailableAt } : {},
71
+ ...record?.quota && typeof record.quota === "object" && Array.isArray(record.quota.windows) ? { quota: record.quota } : {}
71
72
  };
72
73
  }
73
74
  function toSafeListedAgentSummary(agent, options) {
@@ -27,7 +27,7 @@ import {
27
27
  resolveLocalUserId,
28
28
  t,
29
29
  toolLabel
30
- } from "./chunk-YFE4A4O7.js";
30
+ } from "./chunk-F2RNI7ZR.js";
31
31
  import {
32
32
  createRunActivityTracker,
33
33
  popSingleQueueMessage,
@@ -64,7 +64,7 @@ import {
64
64
  } from "./chunk-LTRXGFMS.js";
65
65
  import {
66
66
  formatAgentListCard
67
- } from "./chunk-5FBTLSFG.js";
67
+ } from "./chunk-TQBHNYVR.js";
68
68
  import {
69
69
  isTransientFetchError
70
70
  } from "./chunk-5UTFL4QJ.js";
@@ -85,11 +85,11 @@ import {
85
85
  chooseMemoryOwners,
86
86
  loadMemoryCandidatesFromDb,
87
87
  resolveAgentMemoryPolicy
88
- } from "./chunk-RFCKMYDK.js";
88
+ } from "./chunk-DNUUJ45N.js";
89
89
  import {
90
90
  API_REPORTED_COST_MULTIPLIER,
91
91
  parseUiAskChoiceContent
92
- } from "./chunk-QVKRR2SS.js";
92
+ } from "./chunk-XVZ22N6C.js";
93
93
  import {
94
94
  isOAuthApiKeyRef
95
95
  } from "./chunk-YYLHWIW6.js";
@@ -9,7 +9,7 @@ import {
9
9
  initReactI18next,
10
10
  instance,
11
11
  toast
12
- } from "./chunk-QVKRR2SS.js";
12
+ } from "./chunk-XVZ22N6C.js";
13
13
  import {
14
14
  require_date_fns
15
15
  } from "./chunk-M76ECQRD.js";
@@ -356,6 +356,8 @@ function toSafeAgentSummary(record, options) {
356
356
  const isPublic = record?.isPublic === true || record?.isPublicFlag === true || record?.publicRecordExists === true;
357
357
  const updatedAt = safeTimestamp(record?.updatedAt ?? record?.createdAt ?? record?.created);
358
358
  const nextAvailableAt = typeof record?.nextAvailableAt === "number" && Number.isFinite(record.nextAvailableAt) ? record.nextAvailableAt : void 0;
359
+ const rawQuota = record?.quota;
360
+ const quota = rawQuota && typeof rawQuota === "object" && Array.isArray(rawQuota.windows) && typeof rawQuota.observedAt === "number" && Number.isFinite(rawQuota.observedAt) ? rawQuota : void 0;
359
361
  const currentUserId = options?.userId;
360
362
  const isOwnedByRecord = Boolean(currentUserId) && (typeof record?.userId === "string" && record.userId === currentUserId || typeof record?.ownerId === "string" && record.ownerId === currentUserId);
361
363
  const ownedKey = currentUserId ? [record?.dbKey, record?.privateKey].find(
@@ -418,6 +420,7 @@ function toSafeAgentSummary(record, options) {
418
420
  isOwned,
419
421
  isOAuth,
420
422
  ...nextAvailableAt !== void 0 ? { nextAvailableAt } : {},
423
+ ...quota !== void 0 ? { quota } : {},
421
424
  ...credentialGroup !== void 0 ? { credentialGroup } : {},
422
425
  ...credentialKind !== void 0 ? { credentialKind } : {},
423
426
  // 「未知 ≠ 独立」:无 credentialGroup 时显式 credentialed:false,调用方
@@ -448,6 +451,8 @@ var COMPACT_AGENT_SUMMARY_FIELDS = [
448
451
  // 决策信息(CLI --show-unavailable 场景);默认列表已把这类 agent 过滤掉,
449
452
  // 所以通常根本不占字节。
450
453
  "nextAvailableAt",
454
+ // 额度快照:只有上游真上报过窗口的 agent 才带(通常是小对象)。
455
+ "quota",
451
456
  "credentialGroup",
452
457
  "credentialKind",
453
458
  "credentialed"
@@ -481,6 +486,7 @@ var UNAVAILABLE_AGENT_SUMMARY_FIELDS = [
481
486
  "isOAuth",
482
487
  "isOwned",
483
488
  "nextAvailableAt",
489
+ "quota",
484
490
  "favoritedAt",
485
491
  "updatedAt"
486
492
  ];
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  toolRegistry
3
- } from "./chunk-5FBTLSFG.js";
3
+ } from "./chunk-TQBHNYVR.js";
4
4
  import {
5
5
  i18n_default
6
- } from "./chunk-QVKRR2SS.js";
6
+ } from "./chunk-XVZ22N6C.js";
7
7
  import {
8
8
  canonicalizeToolNames
9
9
  } from "./chunk-O6OSWFZQ.js";