nolo-cli 0.74.0-alpha.2 → 0.74.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 (83) hide show
  1. package/{_executeModel-YEVZAJYX.js → _executeModel-IULR47HG.js} +20 -20
  2. package/{agentDeleteCommand-WVO3JTH6.js → agentDeleteCommand-2S4WCDQC.js} +15 -14
  3. package/{agentEmailCommands-QYQ2DZUS.js → agentEmailCommands-V3ADGHX7.js} +29 -27
  4. package/{agentListCommands-XWLQZ2ZH.js → agentListCommands-EPK3S274.js} +17 -16
  5. package/{agentMachineCommands-BJZUZ2EY.js → agentMachineCommands-XMZWK7P3.js} +15 -14
  6. package/{agentRecordCommands-O6PYBK2A.js → agentRecordCommands-WFPWLWOF.js} +28 -26
  7. package/{agentRunCommand-POFC5W46.js → agentRunCommand-VUWNWC7C.js} +28 -26
  8. package/{agentRuntimeLocal-O6DZDTK4.js → agentRuntimeLocal-YRONTDLM.js} +15 -14
  9. package/{agentSlice-RRZS2UII.js → agentSlice-2P7OJFES.js} +1 -1
  10. package/{appDeleteCommands-426QK2XG.js → appDeleteCommands-YS7UGMP3.js} +16 -15
  11. package/{appDeployCommands-FIGFGXIJ.js → appDeployCommands-XIE5Z4BE.js} +16 -15
  12. package/{appDeployStatusCommands-D3B235FQ.js → appDeployStatusCommands-54UDVYET.js} +16 -15
  13. package/{appGetCommands-U6RZJII4.js → appGetCommands-6XYLBCRN.js} +16 -15
  14. package/{appListCommands-732PFEWM.js → appListCommands-VEGH7SF5.js} +16 -15
  15. package/{authCommand-EVGFLAHO.js → authCommand-JIEOFHXW.js} +84 -9
  16. package/{chatQueueReduxAdapter-LSBTGZW2.js → chatQueueReduxAdapter-GPYCH5Z2.js} +5 -5
  17. package/chromeCommands-VOIRNJBL.js +499 -0
  18. package/chromeOpsCommands-M7DPCX2T.js +258 -0
  19. package/{chunk-SJTCDYBY.js → chunk-3VPDELAP.js} +41 -30
  20. package/{chunk-CS36XM4N.js → chunk-4SZ37KLL.js} +21 -9
  21. package/{chunk-FPTQQSS6.js → chunk-73BR2IQT.js} +23 -2
  22. package/{chunk-PYXL2CJL.js → chunk-7FWPLK4M.js} +1 -1
  23. package/{chunk-DSRXPQWA.js → chunk-7QVPPOEC.js} +1 -1
  24. package/{chunk-KIS76A2P.js → chunk-AX7RMXSH.js} +1 -1
  25. package/{chunk-HSELVGAL.js → chunk-BKJO7LDP.js} +2 -2
  26. package/{chunk-Q6FF2MCK.js → chunk-BOYUESO7.js} +1 -1
  27. package/{chunk-GBPZKFYK.js → chunk-BZNGCVAW.js} +1 -1
  28. package/{chunk-EXMHJN7C.js → chunk-CADAR6QU.js} +1 -1
  29. package/{chunk-2QDDKFG5.js → chunk-CQ3WA2NE.js} +77 -0
  30. package/{chunk-AFIKMMGC.js → chunk-D6XYLSOS.js} +1 -1
  31. package/{chunk-TI4CCL34.js → chunk-DM4FBSWG.js} +3 -3
  32. package/{chunk-DWPNOYMB.js → chunk-DUJWWUGV.js} +1 -1
  33. package/{chunk-XGZM6BTX.js → chunk-EBKMQULC.js} +66 -120
  34. package/{chunk-ZLPA7K55.js → chunk-ETLZZQJE.js} +2 -2
  35. package/chunk-FMODTASJ.js +109 -0
  36. package/{chunk-FSFQ3A7S.js → chunk-FNGAF7C4.js} +2 -2
  37. package/{chunk-MYU3MJCF.js → chunk-GCJ3IS5M.js} +0 -1
  38. package/{chunk-XPQJXIF5.js → chunk-GHEJJGJI.js} +125 -25
  39. package/{chunk-DFY6PUV4.js → chunk-HTMVBPOF.js} +7 -7
  40. package/{chunk-VOEW2KF3.js → chunk-IDGYOD2O.js} +59 -55
  41. package/{chunk-2JCTE5UN.js → chunk-KEZNSFGD.js} +3 -3
  42. package/{chunk-I4UWPYBH.js → chunk-KRMWO2NN.js} +2 -2
  43. package/{chunk-PGSKWZCB.js → chunk-LHDV2QUI.js} +1 -1
  44. package/{chunk-UJ63UXGE.js → chunk-MXUSPS2N.js} +289 -2
  45. package/{chunk-3IT2PFHL.js → chunk-NB5SIWC4.js} +1 -1
  46. package/{chunk-HXAINXPQ.js → chunk-NFT2AOK5.js} +2 -2
  47. package/{chunk-QA6YKM3H.js → chunk-NRALD3CC.js} +1 -1
  48. package/{chunk-CJ23A7U4.js → chunk-PF6O3GR3.js} +533 -57
  49. package/{chunk-K7AG465Q.js → chunk-PZCTYKGU.js} +3 -1
  50. package/chunk-QCZX4FTW.js +242 -0
  51. package/{chunk-QBA5KMJI.js → chunk-RZOJRTKR.js} +29 -15
  52. package/{chunk-VE3O45CJ.js → chunk-T25L377S.js} +4 -4
  53. package/{chunk-CMH2SYHX.js → chunk-TMPLPCVX.js} +1 -1
  54. package/{chunk-L2Y24GRM.js → chunk-U7YP7ECK.js} +3 -3
  55. package/{chunk-AWPU7GXU.js → chunk-URWDSZRW.js} +2 -2
  56. package/{chunk-AFIWC5NH.js → chunk-WL2RKIBF.js} +1 -1
  57. package/{chunk-57VRXRLF.js → chunk-Y3NZYLPG.js} +1 -1
  58. package/{chunk-V3ZKNK5D.js → chunk-ZVN6I33J.js} +5 -5
  59. package/{codingSkills-E6KSDNSJ.js → codingSkills-7S6523WH.js} +2 -2
  60. package/{contentThunks-476Y6CFR.js → contentThunks-THSCADSK.js} +6 -6
  61. package/{createAgentAutomationAction-DN4SFTP5.js → createAgentAutomationAction-WGN3UQ5A.js} +6 -6
  62. package/{createDialogAction-2GS4JCMU.js → createDialogAction-3EN2NLH7.js} +8 -8
  63. package/{createPageAction-44WTUMZ5.js → createPageAction-4VK473QV.js} +6 -6
  64. package/{dialogCommands-7FH6Z2YK.js → dialogCommands-PS4NWYY7.js} +16 -15
  65. package/{dialogSlice-7HEVCJFT.js → dialogSlice-CLV7SVOZ.js} +5 -5
  66. package/{docCreateCommands-GN5E5ULM.js → docCreateCommands-4KANZJR6.js} +15 -14
  67. package/{docDeleteCommands-OQWPPQME.js → docDeleteCommands-F2S2TRUF.js} +16 -15
  68. package/{docReadCommands-E4QK2223.js → docReadCommands-B2WDPZQE.js} +15 -14
  69. package/{docStore-LJ7KNKFB.js → docStore-TDLCHWPF.js} +1 -1
  70. package/{docUpdateCommands-ZDJE4SI7.js → docUpdateCommands-E7TKHRIO.js} +15 -14
  71. package/{getPricing-HRMSOF3E.js → getPricing-QVTUQQTM.js} +2 -2
  72. package/{handleSendMessageAction-ETA5QZIN.js → handleSendMessageAction-AHL3ZHE4.js} +5 -5
  73. package/index.js +111 -47
  74. package/{machineCommands-SJLMLCCV.js → machineCommands-OTABVXOA.js} +27 -25
  75. package/{machineWsRunDispatch-74GHVCNY.js → machineWsRunDispatch-V4EVQSMZ.js} +27 -25
  76. package/package.json +1 -1
  77. package/{readlineWorkspace-XHS5C5F7.js → readlineWorkspace-IIT3FQ6I.js} +437 -115
  78. package/{runAgentClientLoop-2PGZSCET.js → runAgentClientLoop-7TQM7IAR.js} +18 -18
  79. package/{spaceCommands-GSQCO2LI.js → spaceCommands-FSYH7AL4.js} +15 -14
  80. package/{streamAgentChatTurn-I6FUM6RV.js → streamAgentChatTurn-6EF6TVFK.js} +22 -22
  81. package/{tools-KU4X5HGZ.js → tools-R3QNWWTD.js} +15 -13
  82. package/{tuiSummaryLlmCaller-J5BEPLW5.js → tuiSummaryLlmCaller-PWOXTCBF.js} +5 -5
  83. package/{updateDialogTitleAction-E3SNB75W.js → updateDialogTitleAction-F3EUOWOB.js} +6 -6
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getModelConfig
3
- } from "./chunk-UJ63UXGE.js";
3
+ } from "./chunk-MXUSPS2N.js";
4
4
  import {
5
5
  isPlatformHostedDeepseekModel,
6
6
  isPlatformHostedOpenAIImageModel,
@@ -25,6 +25,8 @@ var PLATFORM_CHAT_COMPLETIONS_ENDPOINTS = {
25
25
  qwen: "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",
26
26
  // Moonshot AI(月之暗面)开放平台 OpenAI 兼容模式(按量计费)
27
27
  moonshot: "https://api.moonshot.cn/v1/chat/completions",
28
+ // 阶跃星辰(StepFun)开放平台 OpenAI 兼容模式
29
+ stepfun: "https://api.stepfun.com/v1/chat/completions",
28
30
  // 平台托管 GLM 5.3 Flash 的实际上游(RunInfra 独家廉价快档)
29
31
  runinfra: "https://api.runinfra.ai/v1/chat/completions"
30
32
  // 无 nolo 默认上游:平台托管模型全部显式分流,未识别模型返回 undefined
@@ -0,0 +1,242 @@
1
+ import {
2
+ toErrorMessage
3
+ } from "./chunk-HNMXYYJR.js";
4
+ import {
5
+ isRecord
6
+ } from "./chunk-KUG52IAP.js";
7
+
8
+ // packages/desktop-chrome-connector/chromeConnector.ts
9
+ import { existsSync, readFileSync } from "node:fs";
10
+ import { resolve } from "node:path";
11
+ var NOLO_CHROME_CONNECTOR_EXTENSION_ID = "ahpdoopadkamnglhlacfjdfnonpjdplg";
12
+ var NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION = "2";
13
+ function defaultTokenPath() {
14
+ return resolve(
15
+ process.env.HOME || "",
16
+ "Library/Application Support/Nolo/ChromeConnector/token"
17
+ );
18
+ }
19
+ function readConnectorToken(tokenPath = defaultTokenPath()) {
20
+ if (process.env.NOLO_CHROME_CONNECTOR_TOKEN) return process.env.NOLO_CHROME_CONNECTOR_TOKEN;
21
+ if (!existsSync(tokenPath)) return "";
22
+ return readFileSync(tokenPath, "utf8").trim();
23
+ }
24
+ var CHROME_TOOL_ACTIONS = {
25
+ chrome_list_tabs: "list_tabs",
26
+ chrome_open_tab: "open_tab",
27
+ chrome_close_tab: "close_tab",
28
+ chrome_read_page: "read_page",
29
+ chrome_click: "click",
30
+ chrome_type: "type",
31
+ chrome_press: "press",
32
+ chrome_scroll: "scroll",
33
+ chrome_screenshot: "screenshot",
34
+ chrome_read_console: "read_console",
35
+ chrome_read_network: "read_network"
36
+ };
37
+ function createConnectorError(code, message, details) {
38
+ const error = new Error(message);
39
+ error.code = code;
40
+ if (details !== void 0) error.details = details;
41
+ return error;
42
+ }
43
+ function parseArguments(raw) {
44
+ try {
45
+ const parsed = JSON.parse(raw || "{}");
46
+ if (!isRecord(parsed)) {
47
+ throw createConnectorError("INVALID_ARGUMENTS", "Chrome connector tool arguments must be a JSON object.");
48
+ }
49
+ return parsed;
50
+ } catch (error) {
51
+ if (error.code) throw error;
52
+ throw createConnectorError("INVALID_ARGUMENTS", "Chrome connector tool arguments must be valid JSON.");
53
+ }
54
+ }
55
+ function errorPayload(error) {
56
+ return {
57
+ code: error?.code ?? "CHROME_CONNECTOR_ERROR",
58
+ message: toErrorMessage(error),
59
+ ...error?.details !== void 0 ? { details: error.details } : {}
60
+ };
61
+ }
62
+ var TARGET_REQUIRED_ACTIONS = /* @__PURE__ */ new Set(["click", "type"]);
63
+ var TAB_ID_REQUIRED_ACTIONS = /* @__PURE__ */ new Set(["close_tab", "detach"]);
64
+ function validateChromeConnectorPayload(action, payload) {
65
+ if (TAB_ID_REQUIRED_ACTIONS.has(action)) {
66
+ const raw = payload.tabId;
67
+ const tabId = typeof raw === "string" ? raw.trim() : typeof raw === "number" && Number.isFinite(raw) ? String(raw) : "";
68
+ if (!tabId) {
69
+ throw createConnectorError(
70
+ "TAB_ID_REQUIRED",
71
+ `Provide the tabId from chrome_list_tabs before calling ${action}.`
72
+ );
73
+ }
74
+ return;
75
+ }
76
+ if (!TARGET_REQUIRED_ACTIONS.has(action)) return;
77
+ const elementRef = typeof payload.elementRef === "string" ? payload.elementRef.trim() : "";
78
+ const selector = typeof payload.selector === "string" ? payload.selector.trim() : "";
79
+ if (elementRef || selector) return;
80
+ throw createConnectorError(
81
+ "ELEMENT_TARGET_REQUIRED",
82
+ "Provide elementRef from chrome_read_page or a CSS selector."
83
+ );
84
+ }
85
+ function createChromeConnectorClient(args) {
86
+ if (args?.request) return { request: args.request };
87
+ const defaultPort = process.env.NOLO_CHROME_CONNECTOR_PORT || "38947";
88
+ const endpoint = args?.endpoint ?? process.env.NOLO_CHROME_CONNECTOR_RPC_URL ?? `http://127.0.0.1:${defaultPort}/rpc`;
89
+ const fetchImpl = args?.fetchImpl ?? fetch;
90
+ const token = args?.token ?? readConnectorToken(args?.tokenPath);
91
+ return {
92
+ async request(action, payload) {
93
+ let response;
94
+ try {
95
+ response = await fetchImpl(endpoint, {
96
+ method: "POST",
97
+ headers: {
98
+ "Content-Type": "application/json",
99
+ ...token ? { "X-Nolo-Chrome-Connector-Token": token } : {}
100
+ },
101
+ body: JSON.stringify({ action, payload })
102
+ });
103
+ } catch (error) {
104
+ throw createConnectorError(
105
+ "CHROME_CONNECTOR_UNAVAILABLE",
106
+ `Chrome connector RPC endpoint is unavailable at ${endpoint}.`,
107
+ { cause: toErrorMessage(error) }
108
+ );
109
+ }
110
+ const data = await response.json().catch(() => ({}));
111
+ if (!response.ok || data?.ok === false) {
112
+ throw createConnectorError(
113
+ typeof data?.error?.code === "string" ? data.error.code : "CHROME_CONNECTOR_RPC_ERROR",
114
+ typeof data?.error?.message === "string" ? data.error.message : `Chrome connector RPC failed with HTTP ${response.status}.`,
115
+ data?.error?.details
116
+ );
117
+ }
118
+ return data?.result;
119
+ }
120
+ };
121
+ }
122
+ var REQUIRED_CHROME_CONNECTOR_FEATURES = {
123
+ list_tabs: ["tabs"],
124
+ open_tab: ["tabs"],
125
+ close_tab: ["tabs"],
126
+ read_page: ["compact_observation_v2"],
127
+ click: ["compact_observation_v2", "action_gate"],
128
+ type: ["compact_observation_v2", "action_gate"],
129
+ press: ["compact_observation_v2", "action_gate"],
130
+ scroll: ["compact_observation_v2"],
131
+ screenshot: ["browser_debug"],
132
+ read_console: ["browser_debug"],
133
+ read_network: ["browser_debug"],
134
+ detach: ["browser_debug"]
135
+ };
136
+ function requiredFeaturesForConnectorAction(action) {
137
+ return [...REQUIRED_CHROME_CONNECTOR_FEATURES[action] ?? []];
138
+ }
139
+ function createVerifiedChromeConnectorClient(args) {
140
+ const client = args?.client ?? createChromeConnectorClient();
141
+ const expectedExtensionId = args?.expectedExtensionId ?? NOLO_CHROME_CONNECTOR_EXTENSION_ID;
142
+ let verified = null;
143
+ let negotiatedFeatures = [];
144
+ const verify = async () => {
145
+ const connectorInfo = await client.request("connector_info", {});
146
+ const receivedExtensionId = connectorInfo?.extensionId;
147
+ if (receivedExtensionId !== expectedExtensionId) {
148
+ throw createConnectorError(
149
+ "CHROME_CONNECTOR_EXTENSION_MISMATCH",
150
+ `Chrome connector extension id mismatch: expected ${expectedExtensionId}, received ${typeof receivedExtensionId === "string" ? receivedExtensionId : "unknown"}.`,
151
+ { expectedExtensionId, receivedExtensionId }
152
+ );
153
+ }
154
+ const receivedProtocolVersion = connectorInfo?.protocolVersion;
155
+ if (receivedProtocolVersion !== NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION) {
156
+ throw createConnectorError(
157
+ "CHROME_CONNECTOR_PROTOCOL_MISMATCH",
158
+ `Chrome connector protocol mismatch: expected ${NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION}, received ${typeof receivedProtocolVersion === "string" ? receivedProtocolVersion : "unknown"}. Reload the Nolo Desktop Chrome Connector extension.`,
159
+ {
160
+ expectedProtocolVersion: NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION,
161
+ receivedProtocolVersion
162
+ }
163
+ );
164
+ }
165
+ const rawFeatures = connectorInfo?.features;
166
+ negotiatedFeatures = Array.isArray(rawFeatures) ? rawFeatures.filter((entry) => typeof entry === "string") : [];
167
+ };
168
+ return {
169
+ async request(action, payload) {
170
+ verified ??= verify().catch((error) => {
171
+ verified = null;
172
+ throw error;
173
+ });
174
+ await verified;
175
+ const missing = requiredFeaturesForConnectorAction(action).filter(
176
+ (feature) => !negotiatedFeatures.includes(feature)
177
+ );
178
+ if (missing.length > 0) {
179
+ throw createConnectorError(
180
+ "CAPABILITY_UNSUPPORTED",
181
+ `The installed Nolo Browser Connector extension does not support ${missing.join(", ")} (needed by ${action}). Reload or update the extension, then try again.`,
182
+ { action, missingFeatures: missing, requiredFeatures: requiredFeaturesForConnectorAction(action), features: [...negotiatedFeatures] }
183
+ );
184
+ }
185
+ return client.request(action, payload);
186
+ },
187
+ features() {
188
+ return [...negotiatedFeatures];
189
+ }
190
+ };
191
+ }
192
+ async function executeChromeConnectorTool(args) {
193
+ const action = CHROME_TOOL_ACTIONS[args.call.name];
194
+ if (!action) {
195
+ return {
196
+ content: JSON.stringify({
197
+ ok: false,
198
+ error: {
199
+ code: "UNKNOWN_CHROME_TOOL",
200
+ message: `Unknown Chrome connector tool: ${args.call.name}`
201
+ }
202
+ }),
203
+ metadata: {
204
+ chromeConnector: true,
205
+ error: true,
206
+ code: "UNKNOWN_CHROME_TOOL"
207
+ }
208
+ };
209
+ }
210
+ try {
211
+ const payload = parseArguments(args.call.arguments);
212
+ validateChromeConnectorPayload(action, payload);
213
+ const result = await (args.client ?? createChromeConnectorClient()).request(action, payload);
214
+ return {
215
+ content: JSON.stringify({ ok: true, result }),
216
+ metadata: {
217
+ chromeConnector: true,
218
+ action
219
+ }
220
+ };
221
+ } catch (error) {
222
+ const payload = errorPayload(error);
223
+ return {
224
+ content: JSON.stringify({ ok: false, error: payload }),
225
+ metadata: {
226
+ chromeConnector: true,
227
+ error: true,
228
+ code: payload.code
229
+ }
230
+ };
231
+ }
232
+ }
233
+ var CHROME_CONNECTOR_TOOL_ACTIONS = { ...CHROME_TOOL_ACTIONS };
234
+
235
+ export {
236
+ NOLO_CHROME_CONNECTOR_EXTENSION_ID,
237
+ NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION,
238
+ createChromeConnectorClient,
239
+ REQUIRED_CHROME_CONNECTOR_FEATURES,
240
+ createVerifiedChromeConnectorClient,
241
+ executeChromeConnectorTool
242
+ };
@@ -29,7 +29,7 @@ import {
29
29
  toCompactAgentSummary,
30
30
  toSafeAgentSummary,
31
31
  toUnavailableAgentSummary
32
- } from "./chunk-FPTQQSS6.js";
32
+ } from "./chunk-73BR2IQT.js";
33
33
  import {
34
34
  getUserDataItemTimestamp,
35
35
  mergeAndDedupUserData
@@ -81,14 +81,14 @@ import {
81
81
  } from "./chunk-VF4K2QE6.js";
82
82
  import {
83
83
  createDocState
84
- } from "./chunk-AWPU7GXU.js";
84
+ } from "./chunk-URWDSZRW.js";
85
85
  import {
86
86
  BUILTIN_OBJECT_SKILL_IDS,
87
87
  buildBuiltinObjectSkillConfig,
88
88
  buildBuiltinObjectSkillDbKey,
89
89
  buildBuiltinObjectSkillPageContent,
90
90
  createDialogAction
91
- } from "./chunk-2JCTE5UN.js";
91
+ } from "./chunk-KEZNSFGD.js";
92
92
  import {
93
93
  DEFAULT_COLLAPSED_CATEGORIES,
94
94
  addContentToSpace,
@@ -106,7 +106,7 @@ import {
106
106
  updateContentCategory,
107
107
  updateContentTitle,
108
108
  writeStoredCollapsedCategories
109
- } from "./chunk-XGZM6BTX.js";
109
+ } from "./chunk-EBKMQULC.js";
110
110
  import {
111
111
  getCurrentSpaceId,
112
112
  getCurrentSpaceIdRaw,
@@ -128,14 +128,14 @@ import {
128
128
  selectMsgById,
129
129
  uiAskChoiceFunc,
130
130
  uiAskChoiceFunctionSchema
131
- } from "./chunk-VOEW2KF3.js";
131
+ } from "./chunk-IDGYOD2O.js";
132
132
  import {
133
133
  createAgent,
134
134
  deleteServerSyncedCredential,
135
135
  runLlm,
136
136
  streamAgentChatTurn,
137
137
  updateAgent
138
- } from "./chunk-TI4CCL34.js";
138
+ } from "./chunk-DM4FBSWG.js";
139
139
  import {
140
140
  getActiveDialogKey,
141
141
  selectCurrentDialogKey,
@@ -150,10 +150,10 @@ import {
150
150
  buildCodingSkillContentBySlug,
151
151
  buildCodingSkillId,
152
152
  buildCodingSkillPageKey
153
- } from "./chunk-3IT2PFHL.js";
153
+ } from "./chunk-NB5SIWC4.js";
154
154
  import {
155
155
  CAPABILITY_PACKS
156
- } from "./chunk-MYU3MJCF.js";
156
+ } from "./chunk-GCJ3IS5M.js";
157
157
  import {
158
158
  buildSkillDocMarkdown,
159
159
  normalizeSkillModalities,
@@ -178,7 +178,7 @@ import {
178
178
  redactAgentRecordForWorkspaceTool,
179
179
  resolveNoloDialogInput,
180
180
  verifyNoloDialogSubjectRefQuery
181
- } from "./chunk-V3ZKNK5D.js";
181
+ } from "./chunk-ZVN6I33J.js";
182
182
  import {
183
183
  isAgentUnavailableNow
184
184
  } from "./chunk-CJCJF5XB.js";
@@ -187,7 +187,7 @@ import {
187
187
  } from "./chunk-E36HZARC.js";
188
188
  import {
189
189
  DEFAULT_MODEL
190
- } from "./chunk-UJ63UXGE.js";
190
+ } from "./chunk-MXUSPS2N.js";
191
191
  import {
192
192
  compactWhitespace
193
193
  } from "./chunk-DWLEOOGR.js";
@@ -1164,7 +1164,7 @@ var buildPlatformFormDataFromArgs = async (args) => {
1164
1164
  const trimmedModel = toTrimmedString(model);
1165
1165
  const trimmedProvider = toTrimmedString(provider);
1166
1166
  const modelConfig = await findModelConfig(trimmedModel, trimmedProvider);
1167
- const { getModelPricing } = await import("./getPricing-HRMSOF3E.js");
1167
+ const { getModelPricing } = await import("./getPricing-QVTUQQTM.js");
1168
1168
  const normalizedTools = tools ?? [];
1169
1169
  const resolvedRuntimeToolPolicy = runtimeToolPolicy ?? (normalizedTools.includes("execShell") ? HOSTED_EXEC_RUNTIME_TOOL_POLICY : void 0);
1170
1170
  const formData = {
@@ -4672,7 +4672,7 @@ async function deleteDialogsFunc(args, thunkApi) {
4672
4672
  const deletedDialogIds = [];
4673
4673
  const deletedDialogKeys = [];
4674
4674
  const failures = [];
4675
- const { deleteDialog: deleteDialog2 } = await import("./dialogSlice-7HEVCJFT.js");
4675
+ const { deleteDialog: deleteDialog2 } = await import("./dialogSlice-CLV7SVOZ.js");
4676
4676
  for (const target of targets) {
4677
4677
  try {
4678
4678
  await thunkApi.dispatch(deleteDialog2(target.dbKey)).unwrap();
@@ -4756,7 +4756,7 @@ function formatAgentListCard(agents, maxDisplay = 8) {
4756
4756
  }
4757
4757
  var listAgentsFunctionSchema = {
4758
4758
  name: "listAgents",
4759
- 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' | '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.",
4759
+ 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.",
4760
4760
  parameters: {
4761
4761
  type: "object",
4762
4762
  properties: {
@@ -9933,6 +9933,19 @@ ${preview}`
9933
9933
  }
9934
9934
 
9935
9935
  // packages/ai/tools/chromeConnectorTools.ts
9936
+ var CHROME_CONNECTOR_TOOL_NAMES = [
9937
+ "chrome_list_tabs",
9938
+ "chrome_open_tab",
9939
+ "chrome_close_tab",
9940
+ "chrome_read_page",
9941
+ "chrome_click",
9942
+ "chrome_type",
9943
+ "chrome_press",
9944
+ "chrome_scroll",
9945
+ "chrome_screenshot",
9946
+ "chrome_read_console",
9947
+ "chrome_read_network"
9948
+ ];
9936
9949
  var CHROME_CONNECTOR_READ_TOOL_NAMES = [
9937
9950
  "chrome_list_tabs",
9938
9951
  "chrome_read_page",
@@ -15533,7 +15546,7 @@ var executeToolRun = createAsyncThunk(
15533
15546
  if (!executionInput) {
15534
15547
  throw new Error(`ToolRun ${id} has no input to execute with.`);
15535
15548
  }
15536
- const { findToolExecutor: findToolExecutor2 } = await import("./tools-KU4X5HGZ.js");
15549
+ const { findToolExecutor: findToolExecutor2 } = await import("./tools-R3QNWWTD.js");
15537
15550
  const { executor } = findToolExecutor2(run.toolName);
15538
15551
  toolRunStarted({
15539
15552
  id: run.id,
@@ -18040,7 +18053,7 @@ async function updateDocFunc(args, thunkApi) {
18040
18053
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
18041
18054
  };
18042
18055
  await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
18043
- const { getDocState, applyExternalDocUpdate } = await import("./docStore-LJ7KNKFB.js");
18056
+ const { getDocState, applyExternalDocUpdate } = await import("./docStore-TDLCHWPF.js");
18044
18057
  if (getDocState().pageKey === id) {
18045
18058
  applyExternalDocUpdate({
18046
18059
  slateData: finalSlateData,
@@ -20343,6 +20356,7 @@ export {
20343
20356
  readXPostFunc,
20344
20357
  readXhsProfileFunctionSchema,
20345
20358
  readXhsProfileFunc,
20359
+ CHROME_CONNECTOR_TOOL_NAMES,
20346
20360
  rememberMemoryFunctionSchema,
20347
20361
  deleteMemoryFunctionSchema,
20348
20362
  queryMemoryFunctionSchema,
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  createCliLocalRuntimeAdapter,
3
3
  summarizeEndpoint
4
- } from "./chunk-XPQJXIF5.js";
4
+ } from "./chunk-GHEJJGJI.js";
5
5
  import {
6
6
  clipMultilineText
7
- } from "./chunk-QBA5KMJI.js";
7
+ } from "./chunk-RZOJRTKR.js";
8
8
  import {
9
9
  runLocalAgentTurn
10
- } from "./chunk-CJ23A7U4.js";
10
+ } from "./chunk-PF6O3GR3.js";
11
11
  import {
12
12
  applyToolSurfaceConstraints
13
- } from "./chunk-V3ZKNK5D.js";
13
+ } from "./chunk-ZVN6I33J.js";
14
14
  import {
15
15
  resolveLocalRuntimeEnvFromPolicy
16
16
  } from "./chunk-3JQ2NRYU.js";
@@ -3,7 +3,7 @@ import {
3
3
  resolvePlatformChatCompletionsEndpoint,
4
4
  resolvePlatformHostedCredentialProvider,
5
5
  resolvePlatformResponsesEndpoint
6
- } from "./chunk-K7AG465Q.js";
6
+ } from "./chunk-PZCTYKGU.js";
7
7
  import {
8
8
  CLI_PROVIDER_VALUES
9
9
  } from "./chunk-W7XHHYWM.js";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  listUserRecordsFromServers,
3
3
  readLiveDbRecordAfterTombstoneMerge
4
- } from "./chunk-AFIWC5NH.js";
4
+ } from "./chunk-WL2RKIBF.js";
5
5
  import {
6
6
  agentRecordHasConfiguredCredential
7
- } from "./chunk-QA6YKM3H.js";
7
+ } from "./chunk-NRALD3CC.js";
8
8
  import {
9
9
  deriveCredentialGroup,
10
10
  toSafeAgentSummary
11
- } from "./chunk-FPTQQSS6.js";
11
+ } from "./chunk-73BR2IQT.js";
12
12
  import {
13
13
  PUBLIC_AGENT_KEY_PREFIX,
14
14
  isOwnedAgentKey,
@@ -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-476Y6CFR.js");
329
+ const { updateContentTitle } = await import("./contentThunks-THSCADSK.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-44WTUMZ5.js");
368
+ const { createPageAction } = await import("./createPageAction-4VK473QV.js");
369
369
  return createPageAction(args, thunkApi);
370
370
  }
371
371
  function subscribe(listener) {
@@ -2,7 +2,7 @@ import {
2
2
  deleteDbRecord,
3
3
  queryUserRecords,
4
4
  readDbRecord
5
- } from "./chunk-QA6YKM3H.js";
5
+ } from "./chunk-NRALD3CC.js";
6
6
  import {
7
7
  mergeAndDedupUserData
8
8
  } from "./chunk-KQHGZWSV.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  fetchReferenceContents,
3
3
  resolveReferenceAssets
4
- } from "./chunk-CS36XM4N.js";
4
+ } from "./chunk-4SZ37KLL.js";
5
5
 
6
6
  // packages/ai/agent/fetchAgentContexts.ts
7
7
  async function fetchAgentContexts(references, dispatch) {
@@ -752,16 +752,16 @@ function compareAgentSelection(left, right) {
752
752
  }
753
753
  var AGENT_SELECTION_PRIORITY_INSTRUCTIONS = ` - \u4F18\u5148\u7EA7\u5951\u7EA6\uFF1A\u4E24\u9636\u6BB5\u53D1\u73B0\u4E0E\u9009\u4EBA\u5951\u7EA6\uFF08listAgents \u9ED8\u8BA4 scope="preferred"\uFF09\uFF1A
754
754
  1. \u9996\u8F6E\u53D1\u73B0\uFF1A\u9ED8\u8BA4\u8C03\u7528 listAgents()\uFF08\u5373 scope="preferred"\uFF09\uFF0C\u4EC5\u53D1\u73B0\u7528\u6237\u5DF2\u6709\u5173\u7CFB\u7684 preferred Agent\uFF08\u6536\u85CF\u3001\u81EA\u6709\u3001OAuth \u8BA2\u9605\u3001\u81EA\u5B9A\u4E49 API\u3001\u672C\u5730 Agent\uFF09\u3002
755
- 2. \u6210\u672C\u5F52\u5C5E\u8BC6\u522B\uFF1A\u6839\u636E billingSource \u660E\u786E\u5224\u5B9A\uFF08user_subscription\uFF1A\u7528\u6237\u8BA2\u9605/OAuth\uFF1Buser_api\uFF1A\u7528\u6237\u81EA\u5B9A\u4E49 API\uFF1Blocal\uFF1A\u672C\u5730\u8FD0\u884C\uFF1Bplatform_credits\uFF1A\u5E73\u53F0\u79EF\u5206\uFF09\u3002
755
+ 2. \u6210\u672C\u5F52\u5C5E\u8BC6\u522B\uFF1A\u6839\u636E billingSource \u660E\u786E\u5224\u5B9A\uFF08user_subscription\uFF1A\u7528\u6237\u8BA2\u9605/OAuth\uFF1Buser_api\uFF1A\u7528\u6237\u81EA\u5B9A\u4E49 API\uFF1Blocal\uFF1A\u672C\u5730\u8FD0\u884C\uFF1Bowner_subscription\uFF1A\u975E\u81EA\u6709 Agent\uFF0C\u8DD1\u5176 owner \u7684\u8BA2\u9605\u901A\u9053\u2014\u2014\u4F60\u4E0E\u5E73\u53F0\u90FD\u4E0D\u51FA\u94B1\uFF0C\u4E0D\u9002\u7528\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u544A\u77E5/\u6388\u6743\u95E8\uFF0C\u4E5F\u4E0D\u5360\u4F60\u7684\u989D\u5EA6\uFF0C\u53EF\u76F4\u63A5\u4F7F\u7528\uFF1Bplatform_credits\uFF1A\u5E73\u53F0\u79EF\u5206\uFF09\u3002
756
756
  3. \u4F18\u5148\u7EA7\u6392\u5E8F\uFF08\u4E0E\u5217\u8868\u6392\u5E8F\u771F\u503C\u4E00\u81F4\uFF09\uFF1A
757
- (1) \u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08billingSource="user_subscription" \u6216 "user_api"\uFF0CisFavorite=true\uFF1A\u79C1\u6709\u8BA2\u9605/\u51ED\u636E\u4F18\u5148\uFF09
757
+ (1) \u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08billingSource="user_subscription"\uFF0F"owner_subscription" \u6216 "user_api"\uFF0CisFavorite=true\uFF1A\u79C1\u6709\u8BA2\u9605/\u51ED\u636E\u4F18\u5148\uFF09
758
758
  (2) \u5176\u4ED6\u6536\u85CF Agent\uFF08isFavorite=true\uFF09
759
- (3) \u672A\u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08billingSource="user_subscription" \u6216 "user_api"\uFF09
759
+ (3) \u672A\u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08billingSource="user_subscription"\uFF0F"owner_subscription" \u6216 "user_api"\uFF09
760
760
  (4) \u5176\u4ED6\u81EA\u5EFA Agent\uFF08isOwned=true\uFF09
761
761
  (5) \u516C\u5F00 / \u5E73\u53F0 Agent\uFF08billingSource="platform_credits" \u6216\u793E\u533A\u516C\u5F00\uFF09
762
762
  \u540C\u6863\u4F4D\u4E0B\u6536\u85CF\u9879\u6309\u6700\u8FD1\u6536\u85CF\uFF08favoritedAt\uFF09\u4F18\u5148\uFF0C\u5176\u4F59\u6309\u6700\u8FD1\u66F4\u65B0\uFF08updatedAt\uFF09\u4F18\u5148\u3002
763
763
  4. \u516C\u5F00 Agent \u53D1\u73B0\uFF1A\u4EC5\u5F53 preferred \u5217\u8868\u4E2D\u6CA1\u6709\u9002\u5408\u4E14\u53EF\u7528\u7684\u5019\u9009\uFF0C\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u63A2\u7D22\u516C\u5F00 Agent \u65F6\uFF0C\u624D\u663E\u5F0F\u8C03\u7528 listAgents({ scope: "public" })\u3002\u516C\u5F00 Agent \u53EF\u80FD\u6D88\u8017 platform_credits\uFF0C\u5FC5\u987B\u5728\u83B7\u5F97\u7528\u6237\u660E\u786E\u6263\u8D39\u6388\u6743\u540E\u624D\u80FD\u8C03\u7528\u3002
764
- - \u6536\u85CF\u4F18\u5148\u786C\u95E8\uFF08\u7528\u6237\u94A6\u5B9A\uFF0C\u8986\u76D6\u9876\u6863\u6210\u672C\u95E8\uFF09\uFF1A\u5F53\u5B58\u5728\u53EF\u7528\u4E14\u9002\u5408\u4EFB\u52A1\u7684\u6536\u85CF user_subscription / user_api / local Agent \u65F6\uFF0C\u7981\u6B62\u6539\u6D3E platform_credits\u3002favorite + platform_credits \u53EA\u8868\u793A\u7528\u6237\u8868\u8FBE\u8FC7\u504F\u597D\u5E76\u56E0\u6B64\u8FDB\u5165 preferred discovery\uFF0C\u4E0D\u4EE3\u8868\u514D\u8D39\u6216\u514D\u6388\u6743\uFF1B\u4F7F\u7528\u5B83\u4ECD\u987B\u9075\u5B88\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u544A\u77E5/\u6388\u6743\u89C4\u5219\u3002\u6BCF\u6B21 startAgentRun \u90FD\u521B\u5EFA\u72EC\u7ACB\u7684 run/dialog\uFF1B\u5E76\u884C\u6D3E\u53D1\u65F6\u5FC5\u987B\u7528\u5404\u81EA\u7684 runId\uFF0C\u5E76\u7528 batchId \u7BA1\u7406\u6279\u6B21\uFF0C\u907F\u514D\u7F16\u6392\u5C42\u6DF7\u6DC6\u7ED3\u679C\u3002\u4EC5\u5F53\u6536\u85CF Agent \u786E\u8BA4\u4E0D\u53EF\u7528\u540E\u624D\u5141\u8BB8\u6D3E\u5E73\u53F0 Agent\uFF0C\u4E14\u5FC5\u987B\u5F53\u6B21\u544A\u77E5\u7528\u6237\u5C06\u6D88\u8017\u5E73\u53F0\u79EF\u5206\u3002
764
+ - \u6536\u85CF\u4F18\u5148\u786C\u95E8\uFF08\u7528\u6237\u94A6\u5B9A\uFF0C\u8986\u76D6\u9876\u6863\u6210\u672C\u95E8\uFF09\uFF1A\u5F53\u5B58\u5728\u53EF\u7528\u4E14\u9002\u5408\u4EFB\u52A1\u7684\u6536\u85CF user_subscription / user_api / local Agent \u65F6\uFF0C\u7981\u6B62\u6539\u6D3E platform_credits\u3002favorite + platform_credits \u53EA\u8868\u793A\u7528\u6237\u8868\u8FBE\u8FC7\u504F\u597D\u5E76\u56E0\u6B64\u8FDB\u5165 preferred discovery\uFF0C\u4E0D\u4EE3\u8868\u514D\u8D39\u6216\u514D\u6388\u6743\uFF1B\u4F7F\u7528\u5B83\u4ECD\u987B\u9075\u5B88\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u544A\u77E5/\u6388\u6743\u89C4\u5219\u3002\u4F46\u6CE8\u610F\u533A\u5206\uFF1AbillingSource="owner_subscription" \u7684\u6536\u85CF Agent\uFF08\u975E\u81EA\u6709\u3001\u8DD1 owner \u7684\u8BA2\u9605\u901A\u9053\uFF09\u4E0D\u5C5E\u4E8E\u6B64\u5217\u2014\u2014\u5B83\u662F\u53EF\u76F4\u63A5\u4F7F\u7528\u7684\uFF0C\u4E0D\u4EA7\u751F\u4EFB\u4F55\u6263\u8D39\uFF0C\u4E0D\u8981\u5BF9\u5B83\u7D22\u53D6\u6263\u8D39\u6388\u6743\u3001\u4E5F\u4E0D\u8981\u56E0\u6B64\u6539\u6D3E\u5E73\u53F0 Agent\u3002\u6BCF\u6B21 startAgentRun \u90FD\u521B\u5EFA\u72EC\u7ACB\u7684 run/dialog\uFF1B\u5E76\u884C\u6D3E\u53D1\u65F6\u5FC5\u987B\u7528\u5404\u81EA\u7684 runId\uFF0C\u5E76\u7528 batchId \u7BA1\u7406\u6279\u6B21\uFF0C\u907F\u514D\u7F16\u6392\u5C42\u6DF7\u6DC6\u7ED3\u679C\u3002\u4EC5\u5F53\u6536\u85CF Agent \u786E\u8BA4\u4E0D\u53EF\u7528\u540E\u624D\u5141\u8BB8\u6D3E\u5E73\u53F0 Agent\uFF0C\u4E14\u5FC5\u987B\u5F53\u6B21\u544A\u77E5\u7528\u6237\u5C06\u6D88\u8017\u5E73\u53F0\u79EF\u5206\u3002
765
765
  - \u5339\u914D\u53C2\u8003\uFF1A\u6309\u4EFB\u52A1\u6240\u9700\u80FD\u529B\u7B5B tools \u5B57\u6BB5\uFF1B\u540C\u6863\u5019\u9009\u4F18\u5148\u6210\u672C\u4F4E\uFF08\u4F4E inputPrice\uFF09\u6216\u8D70\u7528\u6237\u79C1\u6709\u51ED\u636E\u7684\u901A\u9053\u3002tools \u5B57\u6BB5\u53EA\u53CD\u6620\u989D\u5916\u80FD\u529B\uFF0C\u4E0D\u53CD\u6620 coding \u80FD\u529B\u2014\u2014\u4EE3\u7801\u5DE5\u5177\u7531 host \u81EA\u52A8\u6CE8\u5165\uFF0Ctools=[] \u4E0D\u4EE3\u8868\u4E0D\u80FD\u5199\u4EE3\u7801\uFF0C\u4E0D\u8981\u636E\u6B64\u6392\u9664\u5019\u9009\u3002
766
766
  - isOwned=true\u3001isOAuth=true \u6216 apiSource="custom" \u7684\u5019\u9009\u6309\u4F18\u5148\u7EA7\u5951\u7EA6\u5904\u7406\u3002
767
767
  - qualityContext \u662F task-domain-specific supporting evidence\uFF1A\u53EA\u5728\u5339\u914D\u7684 task domain \u5185\u3001suitable candidates \u4E2D\uFF0C\u5E76\u4E14\u4ECD\u6392\u5728\u73B0\u6709\u4F18\u5148\u7EA7 / \u6210\u672C / \u53EF\u7528\u6027\u89C4\u5219\u4E4B\u540E\u53C2\u8003\u3002
@@ -769,7 +769,7 @@ var AGENT_SELECTION_PRIORITY_INSTRUCTIONS = ` - \u4F18\u5148\u7EA7\u5951\u7EA6
769
769
  direction \u53EA\u662F\u6307\u6807\u65B9\u5411\uFF1Ahigher_better \u8D8A\u9AD8\u8D8A\u597D\uFF0Clower_better \u8D8A\u4F4E\u8D8A\u597D\uFF0Cneutral \u53EA\u63CF\u8FF0\u884C\u4E3A\u7279\u5F81\uFF08\u5982\u8F93\u51FA\u957F\u5EA6\uFF09\uFF0C\u4E0D\u4EE3\u8868\u4F18\u52A3\u3002
770
770
  \u7981\u6B62\u628A\u4E0D\u540C dimension \u76F8\u52A0 / \u5E73\u5747 / \u5F52\u4E00\u5316\uFF0C\u6216\u751F\u6210 overall score / winner / rank\uFF1B\u7981\u6B62\u8DE8 benchmark identity \u6BD4\u8F83 raw score\uFF1B\u540C\u4E00 dimension \u5185\u53EA\u6BD4\u8F83\u540C\u4E00\u884C\u7684\u540C\u7C7B benchmark evidence\u3002
771
771
  \u672A\u5217\u51FA\u7684 model \u6216 dimension \u8868\u793A\u6CA1\u6709 curated evidence\uFF1A\u4E0D\u662F 0\uFF0C\u4E5F\u4E0D\u662F\u8F83\u5F31\u3002\u54EA\u4E9B dimension \u66F4\u91CD\u8981\u7531\u5F53\u524D\u4EFB\u52A1\u51B3\u5B9A\uFF0C\u4E0D\u8981\u5199\u6B7B\u6743\u91CD\u3002
772
- - 429 \u9650\u6D41\u4E0E\u77E5\u60C5\u6743\u5951\u7EA6\uFF1A\u4EFB\u4F55\u7528\u6237\u79C1\u6709\u51ED\u636E\u4E0E\u81EA\u5EFA Agent\uFF08billingSource \u4E3A user_subscription / user_api / local\uFF0C\u6216 isOwned=true\uFF09\u51FA\u73B0\u5728 listAgents \u7684 unavailableAgents\uFF08429 \u51B7\u5374\u671F\uFF09\u4E2D\u65F6\uFF0C\u7981\u6B62\u9759\u9ED8\u8DF3\u8FC7\uFF1B\u6539\u6D3E\u5E73\u53F0 Agent\uFF08\u6D88\u8017\u5E73\u53F0\u79EF\u5206\uFF09\u524D\u5FC5\u987B\u5728\u56DE\u590D\u4E2D\u544A\u77E5\u7528\u6237\uFF1A\u54EA\u4E2A\u8BA2\u9605/\u81EA\u5EFA agent \u9650\u6D41\u3001\u9884\u8BA1\u4F55\u65F6\u6062\u590D\uFF08nextAvailableAt\uFF09\u3001\u672C\u6B21\u5C06\u6263\u5E73\u53F0\u79EF\u5206\uFF1B\u4EFB\u52A1\u4E0D\u7D27\u6025\u5EFA\u8BAE\u7B49\u6062\u590D\u6216\u8BE2\u95EE\u7528\u6237\u3002`;
772
+ - 429 \u9650\u6D41\u4E0E\u77E5\u60C5\u6743\u5951\u7EA6\uFF1A\u4EFB\u4F55\u7528\u6237\u79C1\u6709\u51ED\u636E\u4E0E\u81EA\u5EFA Agent\uFF08billingSource \u4E3A user_subscription / owner_subscription / user_api / local\uFF0C\u6216 isOwned=true\uFF09\u51FA\u73B0\u5728 listAgents \u7684 unavailableAgents\uFF08429 \u51B7\u5374\u671F\uFF09\u4E2D\u65F6\uFF0C\u7981\u6B62\u9759\u9ED8\u8DF3\u8FC7\uFF1B\u6539\u6D3E\u5E73\u53F0 Agent\uFF08\u6D88\u8017\u5E73\u53F0\u79EF\u5206\uFF09\u524D\u5FC5\u987B\u5728\u56DE\u590D\u4E2D\u544A\u77E5\u7528\u6237\uFF1A\u54EA\u4E2A\u8BA2\u9605/\u81EA\u5EFA agent \u9650\u6D41\u3001\u9884\u8BA1\u4F55\u65F6\u6062\u590D\uFF08nextAvailableAt\uFF09\u3001\u672C\u6B21\u5C06\u6263\u5E73\u53F0\u79EF\u5206\uFF1B\u4EFB\u52A1\u4E0D\u7D27\u6025\u5EFA\u8BAE\u7B49\u6062\u590D\u6216\u8BE2\u95EE\u7528\u6237\u3002`;
773
773
 
774
774
  // packages/agent-runtime/noloWorkspaceTools.ts
775
775
  var NOLO_WORKSPACE_TOOL_NAMES = [
@@ -17,8 +17,8 @@ import {
17
17
  compileCodingEffectiveTools,
18
18
  resolveCodingBuiltinSlug,
19
19
  resolveCodingEffectiveTools
20
- } from "./chunk-3IT2PFHL.js";
21
- import "./chunk-MYU3MJCF.js";
20
+ } from "./chunk-NB5SIWC4.js";
21
+ import "./chunk-GCJ3IS5M.js";
22
22
  import "./chunk-AETZ7AD6.js";
23
23
  import "./chunk-KHCLMKZZ.js";
24
24
  import "./chunk-O6OSWFZQ.js";
@@ -7,25 +7,25 @@ import {
7
7
  updateContentPinned,
8
8
  updateContentTitle,
9
9
  uploadAndAddFileToSpace
10
- } from "./chunk-XGZM6BTX.js";
10
+ } from "./chunk-EBKMQULC.js";
11
11
  import "./chunk-ZJ7UHBJS.js";
12
- import "./chunk-VOEW2KF3.js";
12
+ import "./chunk-IDGYOD2O.js";
13
13
  import "./chunk-EVBFYPDC.js";
14
14
  import "./chunk-HQUORJTM.js";
15
15
  import "./chunk-YYLHWIW6.js";
16
16
  import "./chunk-AGGIDPCZ.js";
17
- import "./chunk-TI4CCL34.js";
17
+ import "./chunk-DM4FBSWG.js";
18
18
  import "./chunk-BJCWNHVU.js";
19
19
  import "./chunk-5RGU3J7P.js";
20
20
  import "./chunk-6YTOJY35.js";
21
21
  import "./chunk-M76ECQRD.js";
22
22
  import "./chunk-YDH3FDFQ.js";
23
- import "./chunk-DSRXPQWA.js";
23
+ import "./chunk-7QVPPOEC.js";
24
24
  import "./chunk-E36HZARC.js";
25
- import "./chunk-K7AG465Q.js";
25
+ import "./chunk-PZCTYKGU.js";
26
26
  import "./chunk-PSCNXBYA.js";
27
27
  import "./chunk-BYXBJQAS.js";
28
- import "./chunk-UJ63UXGE.js";
28
+ import "./chunk-MXUSPS2N.js";
29
29
  import "./chunk-DWLEOOGR.js";
30
30
  import "./chunk-3JQ2NRYU.js";
31
31
  import "./chunk-ONXOABJR.js";
@@ -1,24 +1,24 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-XGZM6BTX.js";
3
+ } from "./chunk-EBKMQULC.js";
4
4
  import "./chunk-ZJ7UHBJS.js";
5
- import "./chunk-VOEW2KF3.js";
5
+ import "./chunk-IDGYOD2O.js";
6
6
  import "./chunk-EVBFYPDC.js";
7
7
  import "./chunk-HQUORJTM.js";
8
8
  import "./chunk-YYLHWIW6.js";
9
9
  import "./chunk-AGGIDPCZ.js";
10
- import "./chunk-TI4CCL34.js";
10
+ import "./chunk-DM4FBSWG.js";
11
11
  import "./chunk-BJCWNHVU.js";
12
12
  import "./chunk-5RGU3J7P.js";
13
13
  import "./chunk-6YTOJY35.js";
14
14
  import "./chunk-M76ECQRD.js";
15
15
  import "./chunk-YDH3FDFQ.js";
16
- import "./chunk-DSRXPQWA.js";
16
+ import "./chunk-7QVPPOEC.js";
17
17
  import "./chunk-E36HZARC.js";
18
- import "./chunk-K7AG465Q.js";
18
+ import "./chunk-PZCTYKGU.js";
19
19
  import "./chunk-PSCNXBYA.js";
20
20
  import "./chunk-BYXBJQAS.js";
21
- import "./chunk-UJ63UXGE.js";
21
+ import "./chunk-MXUSPS2N.js";
22
22
  import "./chunk-DWLEOOGR.js";
23
23
  import "./chunk-3JQ2NRYU.js";
24
24
  import "./chunk-ONXOABJR.js";