nolo-cli 0.212.0-alpha.1 → 0.213.0

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 (124) hide show
  1. package/{_executeModel-KE6MBNUJ.js → _executeModel-CUJLCFWR.js} +35 -35
  2. package/{addContentAction-N2YC5IL3.js → addContentAction-WERAONNY.js} +5 -5
  3. package/{addDialogAgentAction-3NKVQCEC.js → addDialogAgentAction-7VI7YRML.js} +4 -4
  4. package/{agentDeleteCommand-NWK7VU4N.js → agentDeleteCommand-XJORXPGU.js} +42 -42
  5. package/{agentEmailCommands-UZ4DHEX2.js → agentEmailCommands-XTYYFR6Z.js} +43 -43
  6. package/{agentListCommands-HE7L2A6L.js → agentListCommands-OBLRBLHS.js} +60 -51
  7. package/{agentMachineCommands-6TE4MBMP.js → agentMachineCommands-5FMT3OT5.js} +13 -12
  8. package/{agentRecordCommands-L3QQ7HZ4.js → agentRecordCommands-ZQ7SVYGG.js} +42 -42
  9. package/{agentRunCommand-2IFGQHCO.js → agentRunCommand-WS7IGO2W.js} +43 -43
  10. package/{agentRunControl-OI3LOENH.js → agentRunControl-TAMHJQSR.js} +3 -3
  11. package/{agentRuntimeLocal-HL526DNQ.js → agentRuntimeLocal-SOO2OPJG.js} +10 -10
  12. package/{agentSlice-TMYP2UEA.js → agentSlice-CHR6KOZN.js} +5 -5
  13. package/{appDeleteCommands-ZERW4AXY.js → appDeleteCommands-GUP6P5YE.js} +15 -14
  14. package/{appDeployCommands-DUWSMYHL.js → appDeployCommands-MH2FX4O5.js} +15 -14
  15. package/{appDeployStatusCommands-N2KIE4BF.js → appDeployStatusCommands-SUHN3HPJ.js} +15 -14
  16. package/{appGetCommands-YVR4NPVY.js → appGetCommands-YWDEX6Z4.js} +15 -14
  17. package/{appListCommands-JS6HOHZS.js → appListCommands-ZQVMLPAY.js} +15 -14
  18. package/{authCommand-FE2C3ZUM.js → authCommand-PWX2ZNUP.js} +2 -2
  19. package/{builtinSkillRegistry-3YOIGEF6.js → builtinSkillRegistry-2QETTQPM.js} +2 -2
  20. package/{chromeOpsCommands-HEN5AX2J.js → chromeOpsCommands-DIVM2K3T.js} +1 -1
  21. package/{chunk-YUXQAVRD.js → chunk-3UKL3HPD.js} +251 -14
  22. package/{chunk-PDGKOTO7.js → chunk-4T2WNOY7.js} +4 -4
  23. package/{chunk-NOMIGOST.js → chunk-5MQRBSMW.js} +35 -41
  24. package/{chunk-5RYBGBQH.js → chunk-6DWMYIUY.js} +3 -3
  25. package/{chunk-KSTEXKL6.js → chunk-75XIDFBW.js} +4 -3
  26. package/{chunk-CZM5YTZ7.js → chunk-7BT37FK3.js} +193 -305
  27. package/{chunk-GPO7FCEZ.js → chunk-7QTZCMKL.js} +159 -106
  28. package/{chunk-NJR3WKVP.js → chunk-7Y4YTDQF.js} +6 -6
  29. package/{chunk-CKAHAVMK.js → chunk-A7TFUNZO.js} +35 -25
  30. package/{chunk-PJNFNEJE.js → chunk-ALQ3657A.js} +28 -2
  31. package/{chunk-YJMRHHGY.js → chunk-BBJ22CLB.js} +5 -5
  32. package/{chunk-AVTVGMDY.js → chunk-COFEN36Z.js} +1 -1
  33. package/{chunk-DM6UMOEL.js → chunk-CRHOO2ZR.js} +1 -1
  34. package/{chunk-EYUBHHFB.js → chunk-EHGEOAHI.js} +2 -2
  35. package/{chunk-Y2WUYX4I.js → chunk-EHSZD5OI.js} +1 -1
  36. package/{chunk-QT6PKHYJ.js → chunk-FUGMREBO.js} +2 -2
  37. package/{chunk-BFM34N54.js → chunk-FW6YHHLI.js} +4 -4
  38. package/{chunk-3FOQHGHN.js → chunk-G2BQWAVT.js} +2 -2
  39. package/{chunk-VPAZOH2D.js → chunk-GPVRUGGY.js} +1 -1
  40. package/{chunk-JNKSDZFS.js → chunk-H4UOTUOX.js} +162 -48
  41. package/{chunk-UTV2AYEG.js → chunk-H5HF7TJA.js} +1 -1
  42. package/{chunk-IJXYFTV7.js → chunk-H7PPIYWP.js} +1 -1
  43. package/{chunk-NRFKLKRU.js → chunk-HSVBJRF4.js} +1 -1
  44. package/{chunk-GNDJKC4B.js → chunk-HUBHAQK2.js} +8 -8
  45. package/{chunk-LKDF3ATR.js → chunk-INUFILG6.js} +1 -1
  46. package/{chunk-OHNELDTO.js → chunk-IXNGOHV5.js} +2 -2
  47. package/{chunk-WXYLV624.js → chunk-J2NHJ7WX.js} +4 -4
  48. package/{chunk-YPD3VJZW.js → chunk-KFLT5KAD.js} +4 -4
  49. package/{chunk-OOF4UPC5.js → chunk-LLRPJECG.js} +4 -4
  50. package/{chunk-B7NJ3T4A.js → chunk-MDB67IWP.js} +4 -4
  51. package/{chunk-IF45XG7K.js → chunk-MOIJOHA5.js} +9 -4
  52. package/{chunk-IIQ6JGRI.js → chunk-NJLL224W.js} +1 -1
  53. package/{chunk-YOIW77S2.js → chunk-NOKUNJON.js} +2 -2
  54. package/{chunk-HIRC32DV.js → chunk-NSAPDIN2.js} +8 -4
  55. package/{chunk-JIT6FSXJ.js → chunk-O2TZF4AI.js} +1 -1
  56. package/{chunk-4KH4J3G5.js → chunk-OQPKUBPB.js} +1 -1
  57. package/{chunk-OXME3PEE.js → chunk-PCLE46CE.js} +1 -1
  58. package/{chunk-CJRONOYL.js → chunk-QG4AOSON.js} +8 -45
  59. package/{chunk-6OQUPIQF.js → chunk-QHPRUL4O.js} +3 -3
  60. package/{chunk-MMNYUVLW.js → chunk-R5O4QAWG.js} +1 -1
  61. package/{chunk-IAPCBNEE.js → chunk-RLBNLZVC.js} +1 -1
  62. package/{chunk-FHU44LN3.js → chunk-RSHTSUEG.js} +246 -77
  63. package/{chunk-25JZEIXN.js → chunk-RZOV7OMV.js} +11 -11
  64. package/{chunk-D2MDMY2M.js → chunk-SVYO6AO7.js} +7 -1
  65. package/{chunk-INSBKSBB.js → chunk-TAKB25RM.js} +1 -1
  66. package/{chunk-RU4SD66C.js → chunk-TX5EYMGT.js} +5 -5
  67. package/{chunk-D5RCRX4A.js → chunk-UYD5HQ6T.js} +746 -177
  68. package/{chunk-JTDORD5P.js → chunk-V5Y3R6BT.js} +110 -2
  69. package/{chunk-3RQVYR4B.js → chunk-VNYYOX3V.js} +59 -20
  70. package/{chunk-3AKFVZ2I.js → chunk-VO4WSAVP.js} +3 -3
  71. package/{chunk-6NSSLV67.js → chunk-WMTBPBMP.js} +6 -6
  72. package/{chunk-EZFQ6XRV.js → chunk-WRYQ35LQ.js} +4 -4
  73. package/{chunk-SOHTHFV2.js → chunk-WYDI6TGM.js} +14 -14
  74. package/{chunk-M6RL5JCD.js → chunk-X7SDOJUM.js} +3 -3
  75. package/{chunk-CQ46IRNN.js → chunk-XHQC4PXX.js} +48 -34
  76. package/{chunk-2WZXXAQD.js → chunk-YB3YZK56.js} +67 -1
  77. package/{chunk-22CIEBYO.js → chunk-YJAFKXMU.js} +11 -11
  78. package/{chunk-GSQNH63I.js → chunk-YTF4WH7J.js} +3 -19
  79. package/{chunk-5AQR3DGV.js → chunk-ZNWI6OVT.js} +2 -2
  80. package/{chunk-VZKUKCA6.js → chunk-ZXOUUDCG.js} +49 -40
  81. package/{commandRegistry-VVMTPFAX.js → commandRegistry-W63CYRZJ.js} +64 -64
  82. package/{contentThunks-N52O67MI.js → contentThunks-U7PL5MQD.js} +12 -12
  83. package/{cooldownCommands-YXLWOXWR.js → cooldownCommands-TIGUHXTD.js} +3 -3
  84. package/{createAgentAutomationAction-ZC57YRSV.js → createAgentAutomationAction-OLBQDD6R.js} +12 -12
  85. package/{createDialogAction-VQW5WDYX.js → createDialogAction-SVH6B3SB.js} +14 -14
  86. package/{createPageAction-M5VDA7SC.js → createPageAction-F4DIWZ2Z.js} +14 -14
  87. package/{dbSlice-HP7G4LX3.js → dbSlice-BVH2YZPQ.js} +4 -4
  88. package/{deleteFile-7VQGLK2V.js → deleteFile-5YOEKV4U.js} +2 -2
  89. package/{dialogCommands-JHMR2N2Y.js → dialogCommands-KHIEPY3M.js} +18 -18
  90. package/{dialogSlice-GRSVGDTF.js → dialogSlice-ZCTDV2PZ.js} +11 -11
  91. package/{docCreateCommands-F2K3UPSQ.js → docCreateCommands-DPMZI7G5.js} +14 -13
  92. package/{docDeleteCommands-XGXB5RFT.js → docDeleteCommands-IRQQLUBT.js} +16 -16
  93. package/{docReadCommands-7HWZZV6J.js → docReadCommands-LK37XH6L.js} +14 -13
  94. package/{docStore-KNZK6Y2G.js → docStore-V2KECILA.js} +5 -5
  95. package/{docUpdateCommands-OZZ7NQII.js → docUpdateCommands-O6T3HJHH.js} +14 -13
  96. package/{fetchMessages-M3QU7ZCQ.js → fetchMessages-NR4KNQLO.js} +2 -2
  97. package/{handleSendMessageAction-SHIH74GJ.js → handleSendMessageAction-2PE25WM3.js} +25 -25
  98. package/{hostCredentialCreate-X64WK4JD.js → hostCredentialCreate-S233UMAP.js} +42 -42
  99. package/index.js +7 -7
  100. package/{localDialogRead-XRLAH4CZ.js → localDialogRead-7NNDVVF7.js} +1 -1
  101. package/{localRuntimeAdapter-A7K3ABA6.js → localRuntimeAdapter-KY6WXNBR.js} +41 -41
  102. package/{machineCommands-DE3MR7CJ.js → machineCommands-Q6HA3IXF.js} +42 -42
  103. package/{machineWsRunDispatch-R26P5V36.js → machineWsRunDispatch-WWJQ6WR3.js} +42 -42
  104. package/{memberThunks-7WJAY5V6.js → memberThunks-7EDJADWU.js} +5 -5
  105. package/package.json +1 -1
  106. package/{projectArchive-GGL5HLMD.js → projectArchive-DRTDIMEV.js} +14 -14
  107. package/{read-4VZQODSN.js → read-4V2RMG7N.js} +2 -2
  108. package/{readDocTool-AVD32RUJ.js → readDocTool-BH6ATGQO.js} +1 -1
  109. package/{readlineWorkspace-XKYKNL2I.js → readlineWorkspace-2W4WRCOU.js} +322 -159
  110. package/{removeDialogAgentAction-FKL4BYMR.js → removeDialogAgentAction-LYAZGNKW.js} +5 -5
  111. package/{runAgentClientLoop-V7E2WBVM.js → runAgentClientLoop-J2VQBS2Z.js} +33 -33
  112. package/{secretCommands-4QS3HCA2.js → secretCommands-LXDWOLZ6.js} +1 -1
  113. package/{setDialogExtraReferencesAction-TLIOLWWI.js → setDialogExtraReferencesAction-OCRPGPYH.js} +5 -5
  114. package/{setPrimaryDialogAgentAction-2OLWRFYR.js → setPrimaryDialogAgentAction-HFJDQIBU.js} +5 -5
  115. package/{settingThunks-UGBPCNYF.js → settingThunks-RAMHMTGM.js} +7 -7
  116. package/{spaceCommands-4KSLKVNF.js → spaceCommands-KVJZVKVO.js} +14 -14
  117. package/{streamAgentChatTurn-7FR7X2NU.js → streamAgentChatTurn-GHBMJJ6S.js} +37 -37
  118. package/{switchDialogAgentAction-UZSAG2N5.js → switchDialogAgentAction-EBRMW3RA.js} +4 -4
  119. package/{tools-ZLKCC25W.js → tools-EWKCPKMS.js} +28 -28
  120. package/{tuiSummaryLlmCaller-WC54MVGP.js → tuiSummaryLlmCaller-ALQYUUWB.js} +41 -12
  121. package/{updateCommands-4744PL3P.js → updateCommands-ZQYU6SCI.js} +3 -3
  122. package/{updateDialogTitleAction-U53ZT7PJ.js → updateDialogTitleAction-5GGMBTDF.js} +12 -12
  123. package/{windowsSelfUpdate-XSQVF2GK.js → windowsSelfUpdate-257DV2T6.js} +2 -2
  124. package/{workloadLifecycle-4BEQHMSD.js → workloadLifecycle-4C42SVBD.js} +1 -0
@@ -6,11 +6,11 @@ import {
6
6
  resolveDiscoveryScope,
7
7
  resolvePaginationArgs,
8
8
  toDiscoverySafeAgentSummary
9
- } from "./chunk-CJRONOYL.js";
9
+ } from "./chunk-QG4AOSON.js";
10
10
  import {
11
11
  getUserDataItemTimestamp,
12
12
  mergeAndDedupUserData
13
- } from "./chunk-OXME3PEE.js";
13
+ } from "./chunk-PCLE46CE.js";
14
14
  import {
15
15
  addMemberSpace,
16
16
  applyFetchSpaceFulfilled,
@@ -22,10 +22,10 @@ import {
22
22
  setMembershipLoading,
23
23
  setMembershipRejected,
24
24
  updateMemberSpaceName
25
- } from "./chunk-OHNELDTO.js";
25
+ } from "./chunk-IXNGOHV5.js";
26
26
  import {
27
27
  markdownToSlate
28
- } from "./chunk-KSTEXKL6.js";
28
+ } from "./chunk-75XIDFBW.js";
29
29
  import {
30
30
  ToolResultError,
31
31
  clipMultilineText,
@@ -38,7 +38,7 @@ import {
38
38
  toolRunUpdated,
39
39
  uiCardFallback,
40
40
  waitForAbortableDelay
41
- } from "./chunk-GNDJKC4B.js";
41
+ } from "./chunk-HUBHAQK2.js";
42
42
  import {
43
43
  isGatewayHttpStatus
44
44
  } from "./chunk-NF64D32W.js";
@@ -52,10 +52,10 @@ import {
52
52
  import {
53
53
  AGENT_UPDATE_FIELD_NAMES,
54
54
  normalizeAgentUpdateFieldList
55
- } from "./chunk-MMNYUVLW.js";
55
+ } from "./chunk-R5O4QAWG.js";
56
56
  import {
57
57
  createDocState
58
- } from "./chunk-5RYBGBQH.js";
58
+ } from "./chunk-6DWMYIUY.js";
59
59
  import {
60
60
  ToolApiError,
61
61
  buildToolRequestHeaders,
@@ -70,7 +70,7 @@ import {
70
70
  readPageFunc,
71
71
  readPageFunctionSchema,
72
72
  resolvePageReadMarkdown
73
- } from "./chunk-IAPCBNEE.js";
73
+ } from "./chunk-RLBNLZVC.js";
74
74
  import {
75
75
  extractMentionsFromSlate
76
76
  } from "./chunk-AGIM7IMJ.js";
@@ -79,7 +79,7 @@ import {
79
79
  } from "./chunk-63W5N6P3.js";
80
80
  import {
81
81
  createDialogAction
82
- } from "./chunk-OOF4UPC5.js";
82
+ } from "./chunk-LLRPJECG.js";
83
83
  import {
84
84
  DEFAULT_COLLAPSED_CATEGORIES,
85
85
  addContentToSpace,
@@ -96,7 +96,7 @@ import {
96
96
  updateContentCategory,
97
97
  updateContentTitle,
98
98
  writeStoredCollapsedCategories
99
- } from "./chunk-NJR3WKVP.js";
99
+ } from "./chunk-7Y4YTDQF.js";
100
100
  import {
101
101
  buildDatabaseFileContentUrl,
102
102
  deleteDialog,
@@ -109,14 +109,14 @@ import {
109
109
  selectMsgById,
110
110
  uiAskChoiceFunc,
111
111
  uiAskChoiceFunctionSchema
112
- } from "./chunk-VZKUKCA6.js";
112
+ } from "./chunk-ZXOUUDCG.js";
113
113
  import {
114
114
  createAgent,
115
115
  deleteServerSyncedCredential,
116
116
  runLlm,
117
117
  streamAgentChatTurn,
118
118
  updateAgent
119
- } from "./chunk-YPD3VJZW.js";
119
+ } from "./chunk-KFLT5KAD.js";
120
120
  import {
121
121
  getCurrentSpaceId,
122
122
  getCurrentSpaceIdRaw,
@@ -135,7 +135,7 @@ import {
135
135
  UNCATEGORIZED_ID,
136
136
  addContentAction,
137
137
  checkSpaceMembership
138
- } from "./chunk-VPAZOH2D.js";
138
+ } from "./chunk-GPVRUGGY.js";
139
139
  import {
140
140
  createSpaceKey,
141
141
  normalizeSpaceId
@@ -166,10 +166,10 @@ import {
166
166
  selectEntities,
167
167
  toTimestampMs,
168
168
  write
169
- } from "./chunk-BFM34N54.js";
169
+ } from "./chunk-FW6YHHLI.js";
170
170
  import {
171
171
  readAction
172
- } from "./chunk-JIT6FSXJ.js";
172
+ } from "./chunk-O2TZF4AI.js";
173
173
  import {
174
174
  DEVICE_LOCAL_OWNER_ID,
175
175
  getRuntimeServerContext,
@@ -192,10 +192,10 @@ import {
192
192
  import {
193
193
  buildTombstoneRecord,
194
194
  isTombstoneRecord
195
- } from "./chunk-D2MDMY2M.js";
195
+ } from "./chunk-SVYO6AO7.js";
196
196
  import {
197
197
  CAPABILITY_PACKS
198
- } from "./chunk-EYUBHHFB.js";
198
+ } from "./chunk-EHGEOAHI.js";
199
199
  import {
200
200
  buildSkillDocMarkdown,
201
201
  normalizeSkillModalities,
@@ -220,11 +220,11 @@ import {
220
220
  resolveDispatchedSubtaskBudget,
221
221
  resolveNoloDialogInput,
222
222
  verifyNoloDialogSubjectRefQuery
223
- } from "./chunk-25JZEIXN.js";
223
+ } from "./chunk-RZOV7OMV.js";
224
224
  import {
225
225
  mergeAvailabilityDeadline,
226
226
  resolveCredentialKeyWithFallback
227
- } from "./chunk-YUXQAVRD.js";
227
+ } from "./chunk-3UKL3HPD.js";
228
228
  import {
229
229
  redactAgentRecordForWorkspaceTool,
230
230
  resolveReadOnlyToolConstraints
@@ -271,7 +271,7 @@ import {
271
271
  formatStopRunCard,
272
272
  normalizeRunTitle,
273
273
  resolveRunLabel
274
- } from "./chunk-PJNFNEJE.js";
274
+ } from "./chunk-ALQ3657A.js";
275
275
  import {
276
276
  DEFAULT_MODEL,
277
277
  clampReasoningEffort,
@@ -3900,7 +3900,7 @@ async function deleteDialogsFunc(args, thunkApi) {
3900
3900
  const deletedDialogIds = [];
3901
3901
  const deletedDialogKeys = [];
3902
3902
  const failures = [];
3903
- const { deleteDialog: deleteDialog2 } = await import("./dialogSlice-GRSVGDTF.js");
3903
+ const { deleteDialog: deleteDialog2 } = await import("./dialogSlice-ZCTDV2PZ.js");
3904
3904
  for (const target of targets) {
3905
3905
  try {
3906
3906
  await thunkApi.dispatch(deleteDialog2(target.dbKey)).unwrap();
@@ -3966,18 +3966,18 @@ async function fetchUserFavoriteAgentMap(thunkApi) {
3966
3966
  }
3967
3967
  var listAgentsFunctionSchema = {
3968
3968
  name: "listAgents",
3969
- description: "List Nolo agents available for delegation as safe summaries. By default (scope='preferred'), returns the user's preferred agents (favorites, self-owned, OAuth subscriptions, custom API, and local agents). Note: favorited public agents stay in preferred and may still consume platform credits - check each agent's billingSource before dispatching. If no suitable preferred candidate is found or the user explicitly asks to explore public/shared agents, call with scope='public' (public agents may consume platform credits). scope='all' returns the deduplicated union for troubleshooting/management. listAgents does not automatically fallback to public agents. The payload returns `credentialGroups` summarizing independent credential capacities (credentialGroup, credentialKind, agentCount, and availableAt recovery timestamps). Orchestration discipline: Never fan out parallel runs on one credential; fan out only across distinct credentialGroups. A channel verdict is valid for the current dispatch attempt only; always re-read availability before dispatching, and never reuse a failure verdict from an earlier attempt. On config_unresolved-class errors, retry once before degrading. Reserve the strongest private channels for review; execution should use cheap channels. The `agents` array carries a compact agent-selection projection per agent: runnable `agentKey` (agent-<userId>-<id> owned, agent-pub-<id> public), name, model, provider, apiSource, billingSource ('user_subscription' | 'owner_subscription' | 'user_api' | 'platform_credits' | 'local'), tools, isFavorite, isOAuth, isOwned, isPublic, credentialGroup, credentialKind. Copy `agentKey` verbatim into startAgentRun. Rate-limited agents (429, nextAvailableAt in the future) are hidden by default; unavailableCount and unavailableAgents carry their nextAvailableAt recovery timestamps; pass `showUnavailable: true` to include them. Set `verbose: true` for full safe summary details.",
3969
+ description: "List Nolo agents available for delegation as safe summaries. By default (scope='all') returns the deduplicated union of the user's own/favorite agents and public/shared agents. scope='public' returns only public/shared agents. Public agents may consume platform credits - check each agent's billingSource before dispatching. The payload returns `credentialGroups` summarizing independent credential capacities (credentialGroup, credentialKind, agentCount, and availableAt recovery timestamps). Orchestration discipline: Never fan out parallel runs on one credential; fan out only across distinct credentialGroups. A channel verdict is valid for the current dispatch attempt only; always re-read availability before dispatching, and never reuse a failure verdict from an earlier attempt. On config_unresolved-class errors, retry once before degrading. Reserve the strongest private channels for review; execution should use cheap channels. The `agents` array carries a compact agent-selection projection per agent: runnable `agentKey` (agent-<userId>-<id> owned, agent-pub-<id> public), name, model, provider, apiSource, billingSource ('user_subscription' | 'owner_subscription' | 'user_api' | 'platform_credits' | 'local'), tools, isFavorite, isOAuth, isOwned, isPublic, credentialGroup, credentialKind. Copy `agentKey` verbatim into startAgentRun. All agents are listed, including rate-limited (429) ones: cooldown agents carry `availabilityStatus` / `availabilityReason` / `nextAvailableAt` as reference info, not a dispatch gate (quota is informational; requests are still sent and upstream results are reported as-is). `unavailableCount` reports how many agents are currently rate-limited. `showUnavailable` is deprecated and has no effect (kept for compatibility). Set `verbose: true` for full safe summary details.",
3970
3970
  parameters: {
3971
3971
  type: "object",
3972
3972
  properties: {
3973
3973
  limit: { type: "integer", description: "Maximum agents to return. Default 100, max 500." },
3974
3974
  scope: {
3975
3975
  type: "string",
3976
- enum: ["preferred", "public", "all"],
3977
- description: "Discovery scope. 'preferred' (default): user's favorites, owned, OAuth, custom API, and local agents. 'public': shared/marketplace agents not in preferred (may use platform credits). 'all': deduplicated union for inspection."
3976
+ enum: ["all", "public"],
3977
+ description: "Discovery scope. 'all' (default): deduplicated union of the user's own/favorite agents and public/shared agents. 'public': only shared/marketplace agents (may use platform credits)."
3978
3978
  },
3979
3979
  publicOnly: { type: "boolean", description: "Deprecated compatibility alias for scope='public'." },
3980
- showUnavailable: { type: "boolean", description: "Include agents currently rate-limited (429). Default false." },
3980
+ showUnavailable: { type: "boolean", description: "Deprecated no-op: rate-limited agents are always included now (reference info, not a gate). Kept for compatibility." },
3981
3981
  query: {
3982
3982
  type: "string",
3983
3983
  description: "Optional case-insensitive search substring matching agent name, model, provider, handle, or agentKey. Use to locate specific candidates like 'opus', 'devin', or 'claude'."
@@ -3989,6 +3989,19 @@ var listAgentsFunctionSchema = {
3989
3989
  }
3990
3990
  };
3991
3991
  async function listAgentsFunc(args, thunkApi) {
3992
+ const runtime = getRuntime(thunkApi);
3993
+ if (!runtime?.currentUserId || !runtime?.currentToken) {
3994
+ return {
3995
+ rawData: {
3996
+ success: true,
3997
+ total: 0,
3998
+ unavailableCount: 0,
3999
+ agents: [],
4000
+ credentialGroups: []
4001
+ },
4002
+ displayData: formatAgentListCard([])
4003
+ };
4004
+ }
3992
4005
  const pagination = resolvePaginationArgs({ limit: args?.limit, offset: args?.offset });
3993
4006
  const hasQuery = Boolean(args?.query && typeof args?.query === "string" && args?.query.trim());
3994
4007
  const upstreamFetchLimit = hasQuery ? Number.POSITIVE_INFINITY : Math.max(500, (pagination.offset ?? 0) + (pagination.limit ?? 100));
@@ -3998,7 +4011,6 @@ async function listAgentsFunc(args, thunkApi) {
3998
4011
  Number.isFinite(upstreamFetchLimit) ? upstreamFetchLimit : 500
3999
4012
  );
4000
4013
  const favoritesMap = await fetchUserFavoriteAgentMap(thunkApi);
4001
- const runtime = getRuntime(thunkApi);
4002
4014
  const scope = resolveDiscoveryScope({ scope: args?.scope, publicOnly: args?.publicOnly });
4003
4015
  let publicRecords = [];
4004
4016
  let upstreamTruncated = false;
@@ -4087,6 +4099,7 @@ async function listAgentsFunc(args, thunkApi) {
4087
4099
  scope: args?.scope,
4088
4100
  query: args?.query,
4089
4101
  publicOnly: args?.publicOnly,
4102
+ // showUnavailable 已无过滤语义(保留兼容入参,见 BuildAgentDiscoveryResultOptions)。
4090
4103
  showUnavailable: args?.showUnavailable,
4091
4104
  verbose: args?.verbose,
4092
4105
  compact: args?.compact,
@@ -4105,9 +4118,10 @@ async function listAgentsFunc(args, thunkApi) {
4105
4118
  ...discovery.truncated ? { truncated: true } : {},
4106
4119
  unavailableCount: discovery.unavailableCount,
4107
4120
  // 顺序即序列化顺序:agents 在前(派发必需),大块说明字段在后。
4121
+ // 限流 agent 已合入 agents(带 availabilityStatus / nextAvailableAt
4122
+ // 参考标注),不再单列 unavailableAgents,避免两套真相。
4108
4123
  agents: discovery.agents,
4109
- credentialGroups: discovery.credentialGroups,
4110
- unavailableAgents: discovery.unavailableAgents
4124
+ credentialGroups: discovery.credentialGroups
4111
4125
  },
4112
4126
  displayData: formatAgentListCard(discovery.agents)
4113
4127
  };
@@ -4279,7 +4293,7 @@ var readSkillDocFunctionSchema = {
4279
4293
  }
4280
4294
  };
4281
4295
  async function readSkillDocFunc(args, thunkApi) {
4282
- const { buildReadDocResult } = await import("./readDocTool-AVD32RUJ.js");
4296
+ const { buildReadDocResult } = await import("./readDocTool-BH6ATGQO.js");
4283
4297
  const id = args?.id ?? args?.doc ?? args?.docKey ?? args?.pageKey;
4284
4298
  if (typeof id !== "string" || !id.trim()) {
4285
4299
  throw new Error("readSkillDoc requires id or doc.");
@@ -5092,7 +5106,7 @@ var fetchSpaceAction = async (input, thunkAPI) => {
5092
5106
  const spaceKey = createSpaceKey.space(spaceId);
5093
5107
  const readSpace = async (dbKey) => {
5094
5108
  try {
5095
- const { read: read2, readAndWait: readAndWait2 } = await import("./dbSlice-HP7G4LX3.js");
5109
+ const { read: read2, readAndWait: readAndWait2 } = await import("./dbSlice-BVH2YZPQ.js");
5096
5110
  const readPromise = fresh ? dispatch(readAndWait2(dbKey)).unwrap() : dispatch(read2({ dbKey })).unwrap();
5097
5111
  return await withTimeout(readPromise);
5098
5112
  } catch {
@@ -11740,7 +11754,7 @@ var selectUserIdFromState = (state2) => {
11740
11754
  var selectCurrentServerFromState = (state2) => typeof state2?.settings?.currentServer === "string" ? state2.settings.currentServer : null;
11741
11755
  async function addImageContentToSpace(input) {
11742
11756
  const injectedAddContentAction = input.thunkApi?.extra?.addContentAction;
11743
- const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-N2YC5IL3.js")).addContentAction;
11757
+ const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-WERAONNY.js")).addContentAction;
11744
11758
  await addContentAction2(
11745
11759
  {
11746
11760
  spaceId: input.spaceId,
@@ -14226,7 +14240,7 @@ function buildStartAgentRunFunctionSchema(opts) {
14226
14240
  },
14227
14241
  maxToolCalls: {
14228
14242
  type: "number",
14229
- description: "\u53EF\u9009\u3002\u8FD9\u6B21\u5B50\u4EFB\u52A1\u7684\u5DE5\u5177\u8C03\u7528\u6388\u6743\u989D\u5EA6\uFF08\u786C\u4E0A\u9650\uFF09\u3002\u4E0D\u4F20\u5219\u7528 runtime \u9ED8\u8BA4 200\u3002\u5230\u9650\u5373\u505C\u6B62\u542F\u52A8\u65B0\u7684\u5DE5\u5177\u4E0E\u6A21\u578B\u8C03\u7528\u3001\u6709\u754C\u6536\u5C3E\uFF0C\u8FD4\u56DE\u4E2D\u95F4\u7ED3\u8BBA\u5E76\u6807\u8BB0 budget-exhausted\uFF08\u4E0D\u7B97 provider \u9519\u8BEF\uFF09\u3002\u5E94\u6309\u4EFB\u52A1\u610F\u56FE\u6536\u7D27\uFF1A\u6539\u4E00\u4E2A\u5E38\u91CF\u7ED9 10~20\uFF0C\u5355\u6587\u4EF6\u4FEE\u590D\u7ED9 40\uFF0C\u5BA1\u67E5\u7ED9 60\u3002\u6CE8\u610F\u9ED8\u8BA4 200 \u53EA\u7528\u6765\u515C\u65E0\u754C\u635F\u5931\uFF0C\u4E0D\u662F\u5931\u63A7\u8BC6\u522B\u2014\u2014\u8DD1\u5230\u4E0A\u9650\u4E0D\u4EE3\u8868\u4EFB\u52A1\u6B63\u5E38\u3002"
14243
+ description: "\u53EF\u9009\u3002\u8FD9\u6B21\u5B50\u4EFB\u52A1\u7684\u5DE5\u5177\u8C03\u7528\u6388\u6743\u989D\u5EA6\uFF08\u786C\u4E0A\u9650\uFF09\u3002\u4E0D\u4F20\u5219\u7528 runtime \u9ED8\u8BA4 200\u3002\u5230\u9650\u5373\u505C\u6B62\u542F\u52A8\u65B0\u5DE5\u5177\uFF1B\u5DE5\u5177\u989D\u5EA6\u5230\u9650\u65F6\u53EF\u6709\u4E00\u6B21\u65E0\u5DE5\u5177\u603B\u7ED3\uFF0C\u5899\u949F\u5230\u9650\u6216\u53D6\u6D88\u540E\u4E0D\u518D\u8BF7\u6C42\u6A21\u578B\uFF0C\u8FD4\u56DE\u4E2D\u95F4\u7ED3\u8BBA\u5E76\u6807\u8BB0 budget-exhausted\uFF08\u4E0D\u7B97 provider \u9519\u8BEF\uFF09\u3002\u5E94\u6309\u4EFB\u52A1\u610F\u56FE\u6536\u7D27\uFF1A\u6539\u4E00\u4E2A\u5E38\u91CF\u7ED9 10~20\uFF0C\u5355\u6587\u4EF6\u4FEE\u590D\u7ED9 40\uFF0C\u5BA1\u67E5\u7ED9 60\u3002\u6CE8\u610F\u9ED8\u8BA4 200 \u53EA\u7528\u6765\u515C\u65E0\u754C\u635F\u5931\uFF0C\u4E0D\u662F\u5931\u63A7\u8BC6\u522B\u2014\u2014\u8DD1\u5230\u4E0A\u9650\u4E0D\u4EE3\u8868\u4EFB\u52A1\u6B63\u5E38\u3002"
14230
14244
  },
14231
14245
  maxWallClockMs: {
14232
14246
  type: "number",
@@ -18701,7 +18715,7 @@ async function updateDocFunc(args, thunkApi) {
18701
18715
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
18702
18716
  };
18703
18717
  await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
18704
- const { getDocState, applyExternalDocUpdate } = await import("./docStore-KNZK6Y2G.js");
18718
+ const { getDocState, applyExternalDocUpdate } = await import("./docStore-V2KECILA.js");
18705
18719
  if (getDocState().pageKey === id) {
18706
18720
  applyExternalDocUpdate({
18707
18721
  slateData: finalSlateData,
@@ -18726,7 +18740,7 @@ async function updateDocFunc(args, thunkApi) {
18726
18740
  // packages/ai/tools/updateUserPreferenceProfileTool.ts
18727
18741
  async function dispatchSetSettings(thunkApi, changes) {
18728
18742
  const injectedSetSettings = thunkApi?.extra?.setSettings;
18729
- const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingThunks-UGBPCNYF.js")).setSettings;
18743
+ const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingThunks-RAMHMTGM.js")).setSettings;
18730
18744
  await thunkApi.dispatch(setSettings(changes)).unwrap();
18731
18745
  }
18732
18746
  var updateUserPreferenceProfileFunctionSchema = {
@@ -49,9 +49,75 @@ function clipToolText(content, maxChars, headRatio, marker = "\n\n[... tool outp
49
49
  return `${normalized.slice(0, headChars)}${marker}${normalized.slice(-tailChars)}`;
50
50
  }
51
51
 
52
+ // packages/ai/context/retention.ts
53
+ var SAFE_BUFFER_RATIO = 0.95;
54
+ var CACHE_FIRST_RETENTION_STRENGTH = 0.95;
55
+ var clamp = (v, min, max) => Math.min(max, Math.max(min, v));
56
+ var planContextUsage = (params) => {
57
+ const { contextWindow, summaryTokens, recentLoad } = params;
58
+ const safeWindowLimit = Math.floor(contextWindow * SAFE_BUFFER_RATIO);
59
+ const iq = CACHE_FIRST_RETENTION_STRENGTH;
60
+ const isLargeWindow = contextWindow >= 512e3;
61
+ const isSmallWindow = contextWindow <= 64e3;
62
+ let baseHistoryRatio;
63
+ if (isLargeWindow) {
64
+ baseHistoryRatio = 0.8 + 0.2 * iq;
65
+ } else if (isSmallWindow) {
66
+ baseHistoryRatio = 0.35 + 0.3 * iq;
67
+ } else {
68
+ baseHistoryRatio = 0.55 + 0.3 * iq;
69
+ }
70
+ let historyRatio = baseHistoryRatio;
71
+ switch (recentLoad) {
72
+ case "light": {
73
+ const maxRatio = isLargeWindow ? 1 : isSmallWindow ? 0.75 : 0.85;
74
+ historyRatio = clamp(historyRatio * 1.05, 0.3, maxRatio);
75
+ break;
76
+ }
77
+ case "heavy": {
78
+ const maxRatio = isLargeWindow ? 0.98 : isSmallWindow ? 0.7 : 0.8;
79
+ const multiplier = isLargeWindow ? 0.98 : isSmallWindow ? 0.9 : 0.9;
80
+ historyRatio = clamp(historyRatio * multiplier, 0.3, maxRatio);
81
+ break;
82
+ }
83
+ case "medium":
84
+ default: {
85
+ const maxRatio = isLargeWindow ? 1 : isSmallWindow ? 0.75 : 0.85;
86
+ historyRatio = clamp(historyRatio, 0.3, maxRatio);
87
+ break;
88
+ }
89
+ }
90
+ const historyBudget = Math.max(
91
+ 0,
92
+ Math.floor(safeWindowLimit * historyRatio)
93
+ );
94
+ const minRawRatio = isSmallWindow ? 0.5 : isLargeWindow ? 0.2 : 0.3;
95
+ const rawMessageBudget = Math.max(
96
+ Math.floor(historyBudget * minRawRatio),
97
+ historyBudget - summaryTokens,
98
+ 0
99
+ );
100
+ let minTailTokens;
101
+ if (recentLoad === "light") {
102
+ minTailTokens = Math.min(
103
+ Math.floor(safeWindowLimit * 0.3),
104
+ 8e3
105
+ );
106
+ } else if (recentLoad === "heavy") {
107
+ minTailTokens = Math.max(
108
+ Math.floor(safeWindowLimit * 0.25),
109
+ 16e3
110
+ );
111
+ } else {
112
+ minTailTokens = Math.floor(safeWindowLimit * 0.2);
113
+ }
114
+ return { historyBudget, rawMessageBudget, minTailTokens };
115
+ };
116
+
52
117
  export {
53
118
  resolveToolOutputProfile,
54
119
  resolveHistoricalToolContentCap,
55
120
  projectToolMessageContent,
56
- clipToolText
121
+ clipToolText,
122
+ planContextUsage
57
123
  };
@@ -5,7 +5,7 @@ import {
5
5
  inlineImageUrlsForCustomProvider,
6
6
  prepareTools,
7
7
  shouldInlineImageUrlsForAgent
8
- } from "./chunk-3FOQHGHN.js";
8
+ } from "./chunk-G2BQWAVT.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-YJMRHHGY.js";
17
+ } from "./chunk-BBJ22CLB.js";
18
18
  import {
19
19
  findToolExecutor,
20
20
  toolDefinitionsByName
21
- } from "./chunk-CQ46IRNN.js";
21
+ } from "./chunk-XHQC4PXX.js";
22
22
  import {
23
23
  classifyApiError,
24
24
  classifyGenerationError,
25
25
  extractErrorDiagnostics
26
- } from "./chunk-RU4SD66C.js";
26
+ } from "./chunk-TX5EYMGT.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-GNDJKC4B.js";
35
+ } from "./chunk-HUBHAQK2.js";
36
36
  import {
37
37
  getPublicImageAgentMode
38
38
  } from "./chunk-VIDPVFP3.js";
@@ -43,10 +43,10 @@ import {
43
43
  toast,
44
44
  toolResultNeedsUserConfirmation,
45
45
  updateToolMessage
46
- } from "./chunk-VZKUKCA6.js";
46
+ } from "./chunk-ZXOUUDCG.js";
47
47
  import {
48
48
  streamAgentChatTurn
49
- } from "./chunk-YPD3VJZW.js";
49
+ } from "./chunk-KFLT5KAD.js";
50
50
  import {
51
51
  getCurrentSpaceId
52
52
  } from "./chunk-5XBUWM6I.js";
@@ -64,7 +64,7 @@ import {
64
64
  } from "./chunk-4I7ERB7F.js";
65
65
  import {
66
66
  write
67
- } from "./chunk-BFM34N54.js";
67
+ } from "./chunk-FW6YHHLI.js";
68
68
  import {
69
69
  createAsyncThunk
70
70
  } from "./chunk-P5L7CXOC.js";
@@ -90,13 +90,13 @@ import {
90
90
  } from "./chunk-56GBUMO5.js";
91
91
  import {
92
92
  normalizeChatCompletionsBodyForProvider
93
- } from "./chunk-UTV2AYEG.js";
93
+ } from "./chunk-H5HF7TJA.js";
94
94
  import {
95
95
  EMPTY_ASSISTANT_REPAIR_PROMPT
96
- } from "./chunk-JTDORD5P.js";
96
+ } from "./chunk-V5Y3R6BT.js";
97
97
  import {
98
98
  getModelInfo
99
- } from "./chunk-CZM5YTZ7.js";
99
+ } from "./chunk-7BT37FK3.js";
100
100
  import {
101
101
  isAbortError
102
102
  } from "./chunk-7DPNBQSV.js";
@@ -2,7 +2,7 @@ import {
2
2
  mergeAvailabilityDeadline,
3
3
  resolveCredentialCandidateKeys,
4
4
  resolveCredentialKeyWithFallback
5
- } from "./chunk-YUXQAVRD.js";
5
+ } from "./chunk-3UKL3HPD.js";
6
6
 
7
7
  // packages/agent-runtime/credentialAvailability.ts
8
8
  import { homedir } from "node:os";
@@ -56,8 +56,8 @@ function normalizeEntry(entry) {
56
56
  const markedAt = typeof marked === "number" && Number.isFinite(marked) ? { markedAt: marked } : {};
57
57
  if ("lastProbeAt" in entry) {
58
58
  const probe = entry.lastProbeAt;
59
- if (typeof probe !== "number" || !Number.isFinite(probe)) return void 0;
60
- return { nextAvailableAt: at, ...markedAt, lastProbeAt: probe };
59
+ const probeAt = typeof probe === "number" && Number.isFinite(probe) ? { lastProbeAt: probe } : {};
60
+ return { nextAvailableAt: at, ...markedAt, ...probeAt };
61
61
  }
62
62
  return { nextAvailableAt: at, ...markedAt };
63
63
  }
@@ -164,21 +164,6 @@ async function clearCredentialAvailability(credentialKey, env = process.env, now
164
164
  if (!changed) return;
165
165
  await writeCredentialAvailability(live, env);
166
166
  }
167
- async function recordCredentialProbe(credentialKey, env = process.env, now = Date.now()) {
168
- if (!credentialKey) return;
169
- const live = await readCredentialEntries(env, now);
170
- let targetKey = credentialKey;
171
- if (!(targetKey in live)) {
172
- const candidates = resolveCredentialCandidateKeys(credentialKey);
173
- const found = candidates.find((k) => k in live);
174
- if (!found) return;
175
- targetKey = found;
176
- }
177
- const existing = live[targetKey];
178
- if (!existing) return;
179
- live[targetKey] = { ...existing, lastProbeAt: now };
180
- await writeCredentialAvailability(live, env);
181
- }
182
167
  function applyCredentialAvailability(agents, credentialAvailability) {
183
168
  if (Object.keys(credentialAvailability).length === 0) return agents;
184
169
  return agents.map((agent) => {
@@ -204,6 +189,5 @@ export {
204
189
  markCredentialUnavailable,
205
190
  clearCredentialAvailabilityIfMarkedAt,
206
191
  clearCredentialAvailability,
207
- recordCredentialProbe,
208
192
  applyCredentialAvailability
209
193
  };
@@ -4,12 +4,12 @@ import {
4
4
  isAgentSkillDisabled,
5
5
  resolveAgentSkillConfig,
6
6
  resolveUserEnabledSkills
7
- } from "./chunk-MMNYUVLW.js";
7
+ } from "./chunk-R5O4QAWG.js";
8
8
  import {
9
9
  resolveBuiltinSkillEntry,
10
10
  resolveBuiltinSkillPage,
11
11
  resolveSkillGraphFromRoots
12
- } from "./chunk-EZFQ6XRV.js";
12
+ } from "./chunk-WRYQ35LQ.js";
13
13
  import {
14
14
  parseSkillDocProtocol
15
15
  } from "./chunk-AETZ7AD6.js";