nolo-cli 0.47.0-alpha.3 → 0.47.0-alpha.5

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 (77) hide show
  1. package/{_executeModel-5PG6CUWD.js → _executeModel-Q4NLKUPH.js} +22 -20
  2. package/{agentDeleteCommand-SHSPQZHI.js → agentDeleteCommand-6MHA67Q2.js} +10 -10
  3. package/{agentEmailCommands-TNFWV6XO.js → agentEmailCommands-L3XZ237J.js} +27 -24
  4. package/{agentListCommands-5QTNEYMQ.js → agentListCommands-6PIBJFKH.js} +12 -12
  5. package/{agentMachineCommands-OENA64ZO.js → agentMachineCommands-POTNZ57E.js} +14 -13
  6. package/{agentRecordCommands-JLN2EWGC.js → agentRecordCommands-IMRKLUIK.js} +26 -23
  7. package/{agentRunCommand-CQM7DINV.js → agentRunCommand-LFZCDJLJ.js} +26 -23
  8. package/{agentRuntimeLocal-ZKXYFLXI.js → agentRuntimeLocal-BVUV26QD.js} +10 -10
  9. package/{agentSlice-NKFLP3RI.js → agentSlice-CIN6FY6Z.js} +1 -1
  10. package/{appDeleteCommands-XYGAZIJX.js → appDeleteCommands-QZBYALTD.js} +10 -10
  11. package/{appDeployCommands-7T5CABRB.js → appDeployCommands-UDUJPOBN.js} +10 -10
  12. package/{appDeployStatusCommands-KTFQMRPZ.js → appDeployStatusCommands-P2ZTUCDR.js} +10 -10
  13. package/{appGetCommands-HOX2ULSV.js → appGetCommands-346YWTIX.js} +10 -10
  14. package/{appListCommands-3SLCEHND.js → appListCommands-ML7PAZXO.js} +10 -10
  15. package/{authCommand-OY2E2VQK.js → authCommand-7A4LJ7RD.js} +7 -7
  16. package/{chatQueueReduxAdapter-WMMBQK3Y.js → chatQueueReduxAdapter-46OTJS77.js} +7 -7
  17. package/{chunk-5UOBIU5G.js → chunk-2PGAWTDB.js} +2 -2
  18. package/{chunk-RQSOAMPJ.js → chunk-3L2WKC3W.js} +12 -7
  19. package/{chunk-XO3G35OV.js → chunk-4UOFNBUR.js} +1 -1
  20. package/chunk-5XTOKQLW.js +121 -0
  21. package/{chunk-5BPZLBFB.js → chunk-5Z7NTYAZ.js} +13 -11
  22. package/{chunk-FAWK6DBF.js → chunk-6DYGT4IA.js} +11 -11
  23. package/{chunk-MQRZ5QUH.js → chunk-ALXHV7NK.js} +4 -2
  24. package/{chunk-WPFNAEIW.js → chunk-BEDKTILE.js} +1 -1
  25. package/{chunk-OLNC7AWK.js → chunk-C2WF2OY7.js} +1 -1
  26. package/{chunk-5OUK7FZE.js → chunk-CKCHKUQZ.js} +1 -1
  27. package/{chunk-I4JISVWK.js → chunk-D45NILIX.js} +1 -1
  28. package/{chunk-MUIJYGYW.js → chunk-D57WA7W3.js} +5 -5
  29. package/{chunk-URBGEE42.js → chunk-E5HKZ4TR.js} +2 -2
  30. package/chunk-EADNWBAZ.js +59 -0
  31. package/{chunk-6LYUN76O.js → chunk-EK6J2BLB.js} +3 -3
  32. package/{chunk-3N2KFW63.js → chunk-EUG45QJR.js} +43 -20
  33. package/{chunk-XLIHNL4X.js → chunk-FTGZTG2J.js} +15 -13
  34. package/{chunk-XMI3APSU.js → chunk-H3YNPYSN.js} +8 -8
  35. package/{chunk-G46DB6KG.js → chunk-HMMOAG2I.js} +3 -3
  36. package/{chunk-AV2CELZZ.js → chunk-IGQMIZ5L.js} +2 -2
  37. package/{chunk-5QRCPERU.js → chunk-K3HS5RNN.js} +1 -1
  38. package/{chunk-5PPFYHU2.js → chunk-KZCDMZ6M.js} +2 -2
  39. package/chunk-NF64D32W.js +8 -0
  40. package/{chunk-GYXN23QE.js → chunk-OTYXCO4M.js} +21 -182
  41. package/{chunk-5TNI2BMD.js → chunk-QKF5I66W.js} +3 -3
  42. package/{chunk-H2JQB6B6.js → chunk-QPIMHSA5.js} +2 -2
  43. package/{chunk-IWUPQUWA.js → chunk-U72222TN.js} +2 -2
  44. package/{chunk-YNOGNUBC.js → chunk-UL3AIGAQ.js} +77 -31
  45. package/{chunk-OZVGA4SY.js → chunk-UX4WJK6W.js} +1 -1
  46. package/{chunk-EXLOROHG.js → chunk-UYWXQCPH.js} +1 -1
  47. package/{chunk-4MXGXSYN.js → chunk-V5LQH25J.js} +2 -2
  48. package/{chunk-ENYDQKOB.js → chunk-VFN256RI.js} +0 -1
  49. package/{chunk-4ZNDBDWG.js → chunk-XY3V7K4L.js} +5 -6
  50. package/{chunk-7XTC3KRG.js → chunk-Y7TGWSUN.js} +1 -1
  51. package/{chunk-MZXZJVVD.js → chunk-YB7675WX.js} +2 -2
  52. package/{chunk-E2QH2AYX.js → chunk-Z7A54NFZ.js} +1 -1
  53. package/{createAgentAutomationAction-ENDNA3Q4.js → createAgentAutomationAction-OFRNHZWC.js} +8 -8
  54. package/{createDialogAction-2KNX6S2D.js → createDialogAction-2FF2JSWP.js} +9 -9
  55. package/{createPageAction-SNBCYPK6.js → createPageAction-6MTVIU3J.js} +8 -8
  56. package/{dialogCommands-COU5C635.js → dialogCommands-MMLBXSBC.js} +14 -11
  57. package/{dialogSlice-RTPOD6EW.js → dialogSlice-MONRO6AH.js} +7 -7
  58. package/{docCreateCommands-JWY25UFB.js → docCreateCommands-K53AHACN.js} +10 -10
  59. package/{docDeleteCommands-BPJOCSX4.js → docDeleteCommands-MJVGF67W.js} +10 -10
  60. package/{docReadCommands-BSEZCYTQ.js → docReadCommands-VWNRVF6W.js} +10 -10
  61. package/{docStore-TYHVLU7G.js → docStore-A3UWWGMV.js} +9 -9
  62. package/{docUpdateCommands-S2IE2VV4.js → docUpdateCommands-QUDD5TUR.js} +10 -10
  63. package/{getPricing-X3HXP6VQ.js → getPricing-AQ5MSXFO.js} +3 -3
  64. package/{handleSendMessageAction-QYXDQXGH.js → handleSendMessageAction-6TQ7JM5X.js} +7 -7
  65. package/index.js +47 -47
  66. package/{machineCommands-MHKXEUGC.js → machineCommands-W7QEV6Q6.js} +27 -24
  67. package/{machineWsRunDispatch-ZV736PJZ.js → machineWsRunDispatch-5P6X4WMI.js} +26 -23
  68. package/{models-7LWATQFH.js → models-N4NXQ44D.js} +2 -2
  69. package/package.json +1 -1
  70. package/{readlineWorkspace-L3IFOIIV.js → readlineWorkspace-PPPF6OCO.js} +28 -25
  71. package/{runAgentClientLoop-GBLDVBT5.js → runAgentClientLoop-YBZTAE2J.js} +20 -18
  72. package/{spaceCommands-XOLPJMRK.js → spaceCommands-FDZ4P33G.js} +10 -10
  73. package/{spaceSlice-OQPAGQDP.js → spaceSlice-NTZBL55S.js} +8 -8
  74. package/{streamAgentChatTurn-SN5XJJ7U.js → streamAgentChatTurn-N56LGQG4.js} +23 -21
  75. package/{tools-Y65Y3CI4.js → tools-GROQHVCL.js} +15 -13
  76. package/{tuiSummaryLlmCaller-NBTWT57U.js → tuiSummaryLlmCaller-32XPVSRB.js} +5 -5
  77. package/{updateDialogTitleAction-OAOP7CCE.js → updateDialogTitleAction-WYAVJPLS.js} +8 -8
@@ -1,8 +1,10 @@
1
+ import {
2
+ isGatewayHttpStatus
3
+ } from "./chunk-NF64D32W.js";
1
4
  import {
2
5
  CORE_DRAIN_REASON,
3
- isGatewayHttpStatus,
4
6
  parseRetryAfterHeaderMs
5
- } from "./chunk-RQSOAMPJ.js";
7
+ } from "./chunk-3L2WKC3W.js";
6
8
  import {
7
9
  asTrimmedLowercaseString
8
10
  } from "./chunk-QSJ3HFEF.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  fetchReferenceContents,
3
3
  resolveReferenceAssets
4
- } from "./chunk-5BPZLBFB.js";
4
+ } from "./chunk-5Z7NTYAZ.js";
5
5
 
6
6
  // packages/ai/agent/fetchAgentContexts.ts
7
7
  async function fetchAgentContexts(references, dispatch) {
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-DQLYEGP7.js";
8
8
  import {
9
9
  toSafeAgentSummary
10
- } from "./chunk-E2QH2AYX.js";
10
+ } from "./chunk-Z7A54NFZ.js";
11
11
  import {
12
12
  PUBLIC_AGENT_KEY_PREFIX,
13
13
  isOwnedAgentKey,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  clearCliLocalRuntimePreparedAgentCache
3
- } from "./chunk-GYXN23QE.js";
3
+ } from "./chunk-OTYXCO4M.js";
4
4
  import {
5
5
  getReadableCliDb
6
6
  } from "./chunk-43CXXVJD.js";
@@ -11,7 +11,7 @@ import {
11
11
  getAntigravityUserAgent,
12
12
  normalizeAntigravityTokenPayload,
13
13
  refreshAntigravityToken
14
- } from "./chunk-EXLOROHG.js";
14
+ } from "./chunk-UYWXQCPH.js";
15
15
  import {
16
16
  writeOAuthCredential
17
17
  } from "./chunk-FD36SCCD.js";
@@ -7,7 +7,7 @@ import {
7
7
  providerHttpFailure,
8
8
  readSseFrames,
9
9
  throwIfChatCompletionStreamFailed
10
- } from "./chunk-AV2CELZZ.js";
10
+ } from "./chunk-IGQMIZ5L.js";
11
11
  import {
12
12
  FRESH_TOOL_OUTPUT_MAX_CHARS,
13
13
  MAX_HISTORICAL_TOOL_CONTENT_CHARS,
@@ -17,7 +17,7 @@ import {
17
17
  resolveHistoricalToolContentCap,
18
18
  resolveToolOutputProfile,
19
19
  stripImagePartsFromMessages
20
- } from "./chunk-XO3G35OV.js";
20
+ } from "./chunk-4UOFNBUR.js";
21
21
  import {
22
22
  sanitizeForOutbound
23
23
  } from "./chunk-T27IEBNQ.js";
@@ -36,7 +36,7 @@ import {
36
36
  requiresBareImageUrl,
37
37
  resolveToolGuidedSections,
38
38
  toBareImageUrlMessages
39
- } from "./chunk-G46DB6KG.js";
39
+ } from "./chunk-HMMOAG2I.js";
40
40
  import {
41
41
  convertMessagesToResponsesInput,
42
42
  extractReasoningFromResponseOutput,
@@ -50,7 +50,7 @@ import {
50
50
  import {
51
51
  buildProviderAuthHeaders,
52
52
  buildProviderExecutionPlan
53
- } from "./chunk-5UOBIU5G.js";
53
+ } from "./chunk-2PGAWTDB.js";
54
54
  import {
55
55
  NOLO_WORKSPACE_TOOL_NAMES,
56
56
  buildNoloWorkspaceCommandArgs,
@@ -69,7 +69,7 @@ import {
69
69
  resolveEmptyAssistantFallbackMessage,
70
70
  resolveEmptyAssistantOutcome,
71
71
  resolveTruncatedReasoningTailLog
72
- } from "./chunk-4MXGXSYN.js";
72
+ } from "./chunk-V5LQH25J.js";
73
73
  import {
74
74
  COMPACTION_SUMMARY_SCHEMA_VERSION,
75
75
  COMPACTION_SUMMARY_SYSTEM_PROMPT,
@@ -6,10 +6,10 @@ import {
6
6
  } from "./chunk-AGGIDPCZ.js";
7
7
  import {
8
8
  getModelConfig
9
- } from "./chunk-OZVGA4SY.js";
9
+ } from "./chunk-UX4WJK6W.js";
10
10
  import {
11
11
  isPlatformHostedImageModel
12
- } from "./chunk-ENYDQKOB.js";
12
+ } from "./chunk-VFN256RI.js";
13
13
  import {
14
14
  asOptionalFiniteNumber
15
15
  } from "./chunk-WWC7I6TA.js";
@@ -0,0 +1,59 @@
1
+ // packages/cli/client/localRuntimeFetchRetry.ts
2
+ import { request as httpRequest } from "node:http";
3
+ import { request as httpsRequest } from "node:https";
4
+ function toNodeRequestBody(body) {
5
+ if (typeof body === "string") return Buffer.from(body);
6
+ if (body instanceof Uint8Array) return Buffer.from(body);
7
+ if (body instanceof ArrayBuffer) return Buffer.from(body);
8
+ return null;
9
+ }
10
+ async function defaultLoopbackRequest(input, init) {
11
+ const target = typeof input === "string" || input instanceof URL ? new URL(String(input)) : new URL(input.url);
12
+ const headers = new Headers(init?.headers);
13
+ const body = toNodeRequestBody(init?.body);
14
+ if (body && !headers.has("Content-Length")) {
15
+ headers.set("Content-Length", String(body.byteLength));
16
+ }
17
+ return await new Promise((resolve, reject) => {
18
+ const requestImpl = target.protocol === "https:" ? httpsRequest : httpRequest;
19
+ const req = requestImpl(
20
+ target,
21
+ {
22
+ method: init?.method ?? "GET",
23
+ headers: Object.fromEntries(headers.entries())
24
+ },
25
+ (res) => {
26
+ const chunks = [];
27
+ res.on(
28
+ "data",
29
+ (chunk) => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk))
30
+ );
31
+ res.on("end", () => {
32
+ resolve(
33
+ new Response(Buffer.concat(chunks), {
34
+ status: res.statusCode ?? 500,
35
+ headers: res.headers
36
+ })
37
+ );
38
+ });
39
+ }
40
+ );
41
+ req.on("error", reject);
42
+ init?.signal?.addEventListener(
43
+ "abort",
44
+ () => {
45
+ req.destroy(
46
+ init.signal?.reason instanceof Error ? init.signal?.reason : new Error("request aborted")
47
+ );
48
+ reject(init.signal?.reason ?? new Error("request aborted"));
49
+ },
50
+ { once: true }
51
+ );
52
+ if (body) req.write(body);
53
+ req.end();
54
+ });
55
+ }
56
+
57
+ export {
58
+ defaultLoopbackRequest
59
+ };
@@ -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-5PG6CUWD.js");
307
+ const { _executeModel } = await import("./_executeModel-Q4NLKUPH.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-GBLDVBT5.js");
328
+ const { runAgentClientLoop } = await import("./runAgentClientLoop-YBZTAE2J.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-SN5XJJ7U.js");
344
+ const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-N56LGQG4.js");
345
345
  return streamAgentChatTurnHandler(args, thunkApi);
346
346
  }),
347
347
  /**
@@ -8,6 +8,13 @@ import {
8
8
  readDbRecordFromServers,
9
9
  readLiveDbRecordAfterTombstoneMerge
10
10
  } from "./chunk-Q24S4NDF.js";
11
+ import {
12
+ fetchWithTransientRetry
13
+ } from "./chunk-5XTOKQLW.js";
14
+ import {
15
+ DRAIN_EXHAUSTED_USER_MESSAGE,
16
+ isDrainExhaustedResponse
17
+ } from "./chunk-3L2WKC3W.js";
11
18
  import {
12
19
  buildDialogAttachmentPlan,
13
20
  extractFileContentIds
@@ -4892,6 +4899,13 @@ function deriveToolErrors(toolMessages) {
4892
4899
  }
4893
4900
  return uniq(errors);
4894
4901
  }
4902
+ async function describeReadFailureStatus(res) {
4903
+ if (res.status !== 503) return `HTTP ${res.status}`;
4904
+ if (await isDrainExhaustedResponse(res)) {
4905
+ return `HTTP 503\uFF08${DRAIN_EXHAUSTED_USER_MESSAGE}\uFF09`;
4906
+ }
4907
+ return "HTTP 503";
4908
+ }
4895
4909
  async function readDialogOverHttp(args) {
4896
4910
  const authHeaders = {
4897
4911
  Authorization: `Bearer ${args.authToken}`,
@@ -4899,17 +4913,21 @@ async function readDialogOverHttp(args) {
4899
4913
  };
4900
4914
  const buildGetConvMsgsBody = () => JSON.stringify({ dialogId: args.dialogId, dialogKey: args.dialogKey, limit: args.limit });
4901
4915
  const readViaBridge = async () => {
4902
- const bridgeRes = await args.fetchImpl(`${args.base}/api/dialog-read`, {
4903
- method: "POST",
4904
- headers: authHeaders,
4905
- body: JSON.stringify({
4906
- dialogKey: args.dialogKey,
4907
- dialogId: args.dialogId,
4908
- limit: args.limit
4909
- })
4910
- });
4916
+ const bridgeRes = await fetchWithTransientRetry(
4917
+ args.fetchImpl,
4918
+ `${args.base}/api/dialog-read`,
4919
+ {
4920
+ method: "POST",
4921
+ headers: authHeaders,
4922
+ body: JSON.stringify({
4923
+ dialogKey: args.dialogKey,
4924
+ dialogId: args.dialogId,
4925
+ limit: args.limit
4926
+ })
4927
+ }
4928
+ );
4911
4929
  if (!bridgeRes.ok) {
4912
- throw Object.assign(new Error(`dialog read bridge failed: HTTP ${bridgeRes.status}`), {
4930
+ throw Object.assign(new Error(`dialog read bridge failed: ${await describeReadFailureStatus(bridgeRes)}`), {
4913
4931
  status: bridgeRes.status,
4914
4932
  base: args.base
4915
4933
  });
@@ -4928,40 +4946,45 @@ async function readDialogOverHttp(args) {
4928
4946
  };
4929
4947
  };
4930
4948
  if (args.messagesOnly) {
4931
- const msgsOnlyRes = await args.fetchImpl(`${args.base}/rpc/getConvMsgs`, {
4932
- method: "POST",
4933
- headers: authHeaders,
4934
- body: buildGetConvMsgsBody()
4935
- });
4949
+ const msgsOnlyRes = await fetchWithTransientRetry(
4950
+ args.fetchImpl,
4951
+ `${args.base}/rpc/getConvMsgs`,
4952
+ {
4953
+ method: "POST",
4954
+ headers: authHeaders,
4955
+ body: buildGetConvMsgsBody()
4956
+ }
4957
+ );
4936
4958
  if (!msgsOnlyRes.ok) {
4937
4959
  if (msgsOnlyRes.status === 401 || msgsOnlyRes.status === 403) return readViaBridge();
4938
- throw Object.assign(new Error(`read dialog messages failed: HTTP ${msgsOnlyRes.status}`), {
4960
+ throw Object.assign(new Error(`read dialog messages failed: ${await describeReadFailureStatus(msgsOnlyRes)}`), {
4939
4961
  status: msgsOnlyRes.status,
4940
4962
  base: args.base
4941
4963
  });
4942
4964
  }
4943
4965
  return { meta: null, msgs: await msgsOnlyRes.json(), source: "http" };
4944
4966
  }
4945
- const metaRes = await args.fetchImpl(
4967
+ const metaRes = await fetchWithTransientRetry(
4968
+ args.fetchImpl,
4946
4969
  `${args.base}/api/v1/db/read/${encodeURIComponent(args.dialogKey)}`,
4947
4970
  { headers: { Authorization: `Bearer ${args.authToken}` } }
4948
4971
  );
4949
4972
  if (!metaRes.ok) {
4950
4973
  if (metaRes.status === 401 || metaRes.status === 403) return readViaBridge();
4951
- throw Object.assign(new Error(`read dialog meta failed: HTTP ${metaRes.status}`), {
4974
+ throw Object.assign(new Error(`read dialog meta failed: ${await describeReadFailureStatus(metaRes)}`), {
4952
4975
  status: metaRes.status,
4953
4976
  base: args.base
4954
4977
  });
4955
4978
  }
4956
4979
  const meta = await metaRes.json();
4957
- const msgsRes = await args.fetchImpl(`${args.base}/rpc/getConvMsgs`, {
4980
+ const msgsRes = await fetchWithTransientRetry(args.fetchImpl, `${args.base}/rpc/getConvMsgs`, {
4958
4981
  method: "POST",
4959
4982
  headers: authHeaders,
4960
4983
  body: buildGetConvMsgsBody()
4961
4984
  });
4962
4985
  if (!msgsRes.ok) {
4963
4986
  if (msgsRes.status === 401 || msgsRes.status === 403) return readViaBridge();
4964
- throw Object.assign(new Error(`read dialog messages failed: HTTP ${msgsRes.status}`), {
4987
+ throw Object.assign(new Error(`read dialog messages failed: ${await describeReadFailureStatus(msgsRes)}`), {
4965
4988
  status: msgsRes.status,
4966
4989
  base: args.base
4967
4990
  });
@@ -16,11 +16,10 @@ import {
16
16
  getCliLocale,
17
17
  isBuiltinNoloAgentRef,
18
18
  isSubtaskRun,
19
- isTransientFetchError,
20
19
  parseAgentRunEvent,
21
20
  t,
22
21
  toolLabel
23
- } from "./chunk-GYXN23QE.js";
22
+ } from "./chunk-OTYXCO4M.js";
24
23
  import {
25
24
  getReadableCliDb
26
25
  } from "./chunk-43CXXVJD.js";
@@ -53,10 +52,13 @@ import {
53
52
  } from "./chunk-LTRXGFMS.js";
54
53
  import {
55
54
  formatAgentListCard
56
- } from "./chunk-YNOGNUBC.js";
55
+ } from "./chunk-UL3AIGAQ.js";
56
+ import {
57
+ isTransientFetchError
58
+ } from "./chunk-5XTOKQLW.js";
57
59
  import {
58
60
  isGatewayHttpStatus
59
- } from "./chunk-RQSOAMPJ.js";
61
+ } from "./chunk-NF64D32W.js";
60
62
  import {
61
63
  formatFinishedRunCard,
62
64
  formatListRunsCard,
@@ -72,12 +74,12 @@ import {
72
74
  chooseMemoryOwners,
73
75
  loadMemoryCandidatesFromDb,
74
76
  resolveAgentMemoryPolicy
75
- } from "./chunk-4ZNDBDWG.js";
77
+ } from "./chunk-XY3V7K4L.js";
76
78
  import {
77
79
  API_REPORTED_COST_MULTIPLIER,
78
80
  normalizeUsage,
79
81
  parseUiAskChoiceContent
80
- } from "./chunk-FAWK6DBF.js";
82
+ } from "./chunk-6DYGT4IA.js";
81
83
  import {
82
84
  getDefaultCliLocalRuntimeDb
83
85
  } from "./chunk-IA3A5373.js";
@@ -93,10 +95,10 @@ import {
93
95
  LOCAL_TURN_ABORTED_CODE,
94
96
  readActionGate,
95
97
  readCommandActionGatePayload
96
- } from "./chunk-MUIJYGYW.js";
98
+ } from "./chunk-D57WA7W3.js";
97
99
  import {
98
100
  resolveAgentRuntimeConfigFromRecord
99
- } from "./chunk-XO3G35OV.js";
101
+ } from "./chunk-4UOFNBUR.js";
100
102
  import {
101
103
  createThinkParserState,
102
104
  flushThinkParser,
@@ -105,20 +107,20 @@ import {
105
107
  import {
106
108
  resolveClientVersion,
107
109
  resolvePlatformAuthToken
108
- } from "./chunk-5UOBIU5G.js";
110
+ } from "./chunk-2PGAWTDB.js";
109
111
  import {
110
112
  isQuotaExhaustedError
111
113
  } from "./chunk-IWUMSAQF.js";
112
114
  import {
113
115
  DEFAULT_CONTEXT_WINDOW,
114
116
  getModelContextWindow
115
- } from "./chunk-4MXGXSYN.js";
117
+ } from "./chunk-V5LQH25J.js";
116
118
  import {
117
119
  clipCompactText
118
120
  } from "./chunk-GK74OOFT.js";
119
121
  import {
120
122
  findModelConfig
121
- } from "./chunk-OZVGA4SY.js";
123
+ } from "./chunk-UX4WJK6W.js";
122
124
  import {
123
125
  compactWhitespace
124
126
  } from "./chunk-DWLEOOGR.js";
@@ -143,7 +145,7 @@ import {
143
145
  CLIENT_VERSION_TOO_OLD_CODE,
144
146
  NOLO_CLIENT_VERSION_HEADER,
145
147
  buildClientVersionUpgradeMessage
146
- } from "./chunk-ENYDQKOB.js";
148
+ } from "./chunk-VFN256RI.js";
147
149
  import {
148
150
  parsePositiveFiniteNumberOrFallback
149
151
  } from "./chunk-Y5GCAMGP.js";
@@ -5442,7 +5444,7 @@ function findCollapsedPasteSpanAt(buffer, pos, opts = {}) {
5442
5444
  // packages/cli/client/agentRun.ts
5443
5445
  import { ulid } from "ulid";
5444
5446
  async function loadRunLocalAgentTurn() {
5445
- const { runLocalAgentTurn } = await import("./agentRuntimeLocal-ZKXYFLXI.js");
5447
+ const { runLocalAgentTurn } = await import("./agentRuntimeLocal-BVUV26QD.js");
5446
5448
  return runLocalAgentTurn;
5447
5449
  }
5448
5450
  async function resolveCurrentMachineId(options) {
@@ -5,14 +5,14 @@ import {
5
5
  inlineImageUrlsForCustomProvider,
6
6
  prepareTools,
7
7
  shouldInlineImageUrlsForAgent
8
- } from "./chunk-IWUPQUWA.js";
8
+ } from "./chunk-U72222TN.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-5BPZLBFB.js";
15
+ } from "./chunk-5Z7NTYAZ.js";
16
16
  import {
17
17
  createSSEParser,
18
18
  createToolRunId,
@@ -23,22 +23,22 @@ import {
23
23
  toolRunSetPending,
24
24
  toolRunStarted,
25
25
  toolRunSucceeded
26
- } from "./chunk-YNOGNUBC.js";
26
+ } from "./chunk-UL3AIGAQ.js";
27
27
  import {
28
28
  getPublicImageAgentMode
29
29
  } from "./chunk-VIDPVFP3.js";
30
30
  import {
31
31
  getCurrentSpaceId
32
- } from "./chunk-H2JQB6B6.js";
32
+ } from "./chunk-QPIMHSA5.js";
33
33
  import {
34
34
  addToolMessage,
35
35
  messageStreamEnd,
36
36
  messageStreaming,
37
37
  updateToolMessage
38
- } from "./chunk-FAWK6DBF.js";
38
+ } from "./chunk-6DYGT4IA.js";
39
39
  import {
40
40
  streamAgentChatTurn
41
- } from "./chunk-6LYUN76O.js";
41
+ } from "./chunk-EK6J2BLB.js";
42
42
  import {
43
43
  addActiveController,
44
44
  removeActiveController,
@@ -56,10 +56,10 @@ import {
56
56
  import {
57
57
  EMPTY_ASSISTANT_REPAIR_PROMPT,
58
58
  getModelInfo
59
- } from "./chunk-4MXGXSYN.js";
59
+ } from "./chunk-V5LQH25J.js";
60
60
  import {
61
61
  getApiEndpoint
62
- } from "./chunk-OZVGA4SY.js";
62
+ } from "./chunk-UX4WJK6W.js";
63
63
  import {
64
64
  toErrorMessage
65
65
  } from "./chunk-HNMXYYJR.js";
@@ -11,7 +11,7 @@ import {
11
11
  PLATFORM_HOSTED_KIMI_K3_MODEL,
12
12
  isFireworksKimiModel,
13
13
  isNoloHostedProvider
14
- } from "./chunk-ENYDQKOB.js";
14
+ } from "./chunk-VFN256RI.js";
15
15
  import {
16
16
  asTrimmedLowercaseString
17
17
  } from "./chunk-QSJ3HFEF.js";
@@ -170,7 +170,7 @@ var MENU_USAGE_INSTRUCTIONS = `--- \u4EA4\u4E92\u8BF4\u660E ---
170
170
  var AGENT_ORCHESTRATION_RUN_INSTRUCTIONS = `--- \u591A Agent \u7F16\u6392\uFF08\u540E\u53F0 Run\uFF09 ---
171
171
  \u7528 startAgentRun \u542F\u52A8\u5B50 Agent\uFF08wait:false \u5F02\u6B65 fork+exec \u8FD4\u56DE runId\uFF1Bwait:true \u540C\u6B65\u7B49\u7ED3\u679C\uFF09\uFF0C\u7528 controlAgentRun \u89C2\u5BDF/\u505C\u6B62\uFF08wait/signal/proc \u8BED\u4E49\uFF09\u3002\u4F55\u65F6\u6D3E\u53D1\u89C1\u300C\u591A Agent \u534F\u4F5C\u300D\u6BB5\uFF1B\u672C\u6BB5\u53EA\u8BB2\u6D3E\u53D1\u4E4B\u540E\u600E\u4E48\u76EF\u3001\u600E\u4E48\u6392\u9519\u3002
172
172
 
173
- 1. \u76EF\u68A2\uFF1A**\u5F02\u6B65\u6D3E\u53D1\u540E\u7ACB\u5373\u6536\u5C3E\uFF0C\u7B49\u7EC8\u6001\u901A\u77E5\u3002** \u8981\u7ACB\u5373\u62FF\u7ED3\u679C\u5C31\u522B\u7528\u5F02\u6B65\uFF1A<100s \u5B50\u4EFB\u52A1\u76F4\u63A5 startAgentRun({ wait: true })\uFF1B\u5DF2\u5F02\u6B65\u6D3E\u51FA\u7684\u7528 controlAgentRun(action:"wait", runId) \u963B\u585E\u5230\u7EC8\u6001\u3002\u652F\u6301\u7EC8\u6001\u5524\u9192\u7684\u73AF\u5883\uFF08\u684C\u9762 TUI\uFF09run \u5230\u7EC8\u6001\u81EA\u52A8\u6458\u8981\u5524\u9192\u4F60\uFF0C\u65E0\u5E76\u884C\u5DE5\u4F5C\u5219\u4E00\u53E5\u8BDD\u6536\u5C3E\uFF1B\u6CA1\u6709\u7EC8\u6001\u5524\u9192\u7684\u73AF\u5883\uFF08\u88F8 CLI\u3001\u670D\u52A1\u7AEF runtime\uFF09\u7528 wait \u963B\u585E\uFF0C\u540C\u6837\u4E0D\u8981\u81EA\u5DF1\u5FAA\u73AF\u67E5\u3002
173
+ 1. \u76EF\u68A2\uFF1A**\u5F02\u6B65\u6D3E\u53D1\u540E\u7ACB\u5373\u6536\u5C3E\uFF0C\u7B49\u7EC8\u6001\u901A\u77E5\u3002** \u963B\u585E\u7B49\u5F85\uFF08startAgentRun wait:true / controlAgentRun wait\uFF09\u7684\u771F\u5B9E\u4EE3\u4EF7\u662F\u51BB\u7ED3\u5BF9\u8BDD\u2014\u2014\u7528\u6237\u5728\u7B49\u5F85\u671F\u95F4\u65E0\u6CD5\u63D2\u8BDD\uFF0C\u7F16\u6392\u8005\u4E5F\u65E0\u6CD5\u5E76\u884C\u63A8\u8FDB\u5176\u4ED6\u5DE5\u4F5C\uFF0C\u56E0\u6B64\u963B\u585E\u7B49\u5F85\u4EC5\u9650\u4E09\u79CD\u60C5\u51B5\uFF1A\u2460 \u9884\u8BA1 <100s \u4E14\u9A6C\u4E0A\u8981\u7528\u7ED3\u679C\u7684\u5B50\u4EFB\u52A1\uFF1B\u2461 \u7528\u6237\u660E\u786E\u8981\u6C42\u540C\u6B65\u7B49\u5F85\u6216\u6B63\u5728\u4E0E\u8BE5\u5B50\u4EFB\u52A1\u5BF9\u8BDD\uFF1B\u2462 \u73AF\u5883\u4E0D\u652F\u6301\u7EC8\u6001\u5524\u9192\uFF0C\u4E14\u5F53\u524D\u6CA1\u6709\u53EF\u5E76\u884C\u63A8\u8FDB\u7684\u5176\u4ED6\u5DE5\u4F5C\uFF08\u6B64\u65F6 startAgentRun \u76F4\u63A5 wait:true\uFF0C\u5DF2\u5F02\u6B65\u6D3E\u51FA\u7684\u7528 controlAgentRun(action:"wait", runId) \u963B\u585E\u5230\u7EC8\u6001\uFF09\u3002\u652F\u6301\u7EC8\u6001\u5524\u9192\u7684\u73AF\u5883\uFF08\u684C\u9762 TUI / web\uFF09\uFF1A\u591A\u5206\u949F\u7EA7 run \u4E00\u5F8B\u5F02\u6B65\u6D3E\u53D1\u5E76\u7ACB\u5373\u6536\u5C3E\u7ED3\u675F\u56DE\u5408\uFF08\u4E00\u53E5\u8BDD\u8BF4\u660E\u540E\u7EED\u52A8\u4F5C\u5373\u53EF\uFF09\uFF0C\u7EC8\u6001\u81EA\u52A8\u6458\u8981\u5524\u9192\u540E\u7EE7\u7EED\uFF1B\u4E32\u884C\u4F9D\u8D56\uFF08\u6267\u884C\u2192\u5BA1\u67E5\u2192\u96C6\u6210\uFF09\u4E0D\u662F\u963B\u585E\u5BF9\u8BDD\u7684\u7406\u7531\u2014\u2014\u9760 wake \u63A5\u529B\u5373\u53EF\u3002\u6CA1\u6709\u7EC8\u6001\u5524\u9192\u7684\u73AF\u5883\uFF08\u88F8 CLI\u3001\u670D\u52A1\u7AEF runtime\uFF09\u624D\u7528 wait \u963B\u585E\uFF0C\u540C\u6837\u4E0D\u8981\u81EA\u5DF1\u5FAA\u73AF\u67E5\u3002
174
174
  2. \u7B49\u5F85/\u7981\u6B62\u8F6E\u8BE2/\u7981\u7A7A\u8F6C/\u522B\u590D\u8FF0 status \u7684\u8BED\u4E49\u4EE5 startAgentRun \u4E0E controlAgentRun \u5DE5\u5177\u63CF\u8FF0\u4E3A\u51C6\u3002controlAgentRun \u53EA\u5728\u300C\u7B54\u6848\u4F1A\u6539\u53D8\u4F60\u4E0B\u4E00\u6B65\u52A8\u4F5C\u300D\u65F6\u7528\uFF08\u80FD\u5426\u6C47\u603B\u3001\u8981\u4E0D\u8981\u53EB\u505C/\u8865\u6D3E\uFF09\uFF1B\u4E00\u6B21\u6027\u6B7B\u6D3B\u68C0\u67E5\u7528 status(runId, tailLines:0)\u3002\u5E76\u884C\uFF1A\u591A\u4E2A\u72EC\u7ACB\u5B50\u4EFB\u52A1\u4E00\u6B21\u6D3E\u5B8C\uFF0C\u4E4B\u540E\u7B49\u5404\u81EA\u7EC8\u6001\u9010\u4E2A\u6C47\u603B\u3002\u65E0\u6587\u4EF6\u4EA4\u96C6\u3001\u65E0\u771F\u5B9E\u6570\u636E\u4F9D\u8D56\u7684\u4EFB\u52A1\u9ED8\u8BA4\u5E76\u53D1\u6D3E\u53D1\u2014\u2014\u4E0D\u8981\u56E0\u5B83\u4EEC\u6070\u597D\u5171\u7528\u540C\u4E00\u6267\u884C agent/\u901A\u9053\u800C\u81EA\u884C\u52A0\u300C\u901A\u9053\u4E32\u884C\u300D\u7684\u4FDD\u5B88\u5047\u8BBE\uFF08\u540C\u901A\u9053\u5141\u8BB8\u5E76\u53D1 fork \u591A\u5B9E\u4F8B\uFF0C\u5B9E\u4F8B\u95F4\u65E0\u4E0A\u4E0B\u6587\u5171\u4EAB\uFF09\uFF1B\u53EA\u6709\u4EFB\u52A1\u95F4\u5B58\u5728\u771F\u5B9E\u6587\u4EF6/\u6570\u636E\u4F9D\u8D56\u6216 brief \u660E\u793A\u51B2\u7A81\u9762\u65F6\u624D\u4E32\u884C\u3002
175
175
  3. \u6392\u9519\uFF1A\u5148\u5206\u8BCA\u518D\u4E0B\u7ED3\u8BBA\u3002\u2460 \u590D\u6838 agentKey \u662F\u5426\u7167\u6284\u81EA listAgents\uFF08\u4E0D\u662F\u5C31\u5148\u4FEE key\uFF0C\u4E0D\u7B97\u901A\u9053\u6545\u969C\uFF09\uFF1B\u2461 \u62A5\u9519\u542B not found / invalid ref / Local agent config not found \u2192 \u5148 readAgent \u590D\u6838\uFF0C**\u7981\u6B62**\u636E\u6B64\u63A8\u65AD\u51ED\u8BC1\u7F3A\u5931\u6216\u901A\u9053\u5168\u6302\uFF1B\u2462 \u540C\u4E00\u5DF2\u9A8C\u8BC1 key \u4E0A\u4ECD\u5931\u8D25\u4E14\u9519\u8BEF\u660E\u786E\u6307\u5411\u901A\u9053\uFF08429\u3001\u9274\u6743\u5931\u8D25\u3001machine offline\uFF09\u2192 \u624D\u8BB0\u4E3A\u901A\u9053\u6545\u969C\u3002
176
176
  4. \u5224\u5B9A\u300C\u6D3E\u53D1\u901A\u9053\u6574\u4F53\u4E0D\u53EF\u7528\u300D\u524D\uFF0C\u81F3\u5C11\u5BF9 2 \u4E2A\u4E0D\u540C\u5019\u9009\u5404\u5B8C\u6210\u300C\u5DF2\u9A8C\u8BC1 key + \u4E00\u6B21\u771F\u5B9E\u6D3E\u53D1\u300D\uFF1B\u5019\u9009\u4E0D\u8DB3 2 \u4E2A\u5C31\u5982\u5B9E\u62A5\u544A\u300C\u4EC5\u6B64\u5019\u9009\u4E14\u901A\u9053\u5931\u8D25\u300D\uFF0C\u4E0D\u5F97\u5938\u5927\u6210\u5168\u5E93\u4E0D\u53EF\u7528\u3002\u53EA\u6709 status=failed/\u8D85\u65F6\u6216 progress \u957F\u65F6\u95F4\u6BEB\u65E0\u52A8\u9759\uFF08\u7591\u4F3C\u5361\u6B7B\uFF09\u624D\u62C9 tailLines:30 \u770B\u65E5\u5FD7\uFF1Bstop \u4E4B\u524D\u5148\u770B\u65E5\u5FD7\u786E\u8BA4\u662F\u771F\u5361\u6B7B\uFF0C\u5E76\u7528 list/status \u786E\u8BA4 run \u771F\u5B9E\u5B58\u5728\u4E14\u975E\u7EC8\u6001\u2014\u2014\u522B\u5047\u8BBE\u300C\u6D3E\u53D1\u4E86\u5C31\u5728\u8DD1\u300D\u3002`;
@@ -185,7 +185,7 @@ var AGENT_COLLABORATION_INSTRUCTIONS = `--- Agent \u7F16\u6392\u4E0E\u534F\u4F5C
185
185
 
186
186
  **\u6D3E\u53D1\u901A\u9053**\uFF1A
187
187
  - \u76EE\u6807\u8BB0\u5F55\u5DF2\u58F0\u660E delegation.serverBase / runtimeServerBase \u2192 \u5DE5\u5177\u81EA\u52A8\u8DEF\u7531\u5230\u5BF9\u5E94 nolo server\uFF0C\u65E0\u9700\u91CD\u590D\u586B serverBase\uFF1B\u7528\u6237\u7ED9\u51FA\u53EF\u8BBF\u95EE\u7684 server origin \u65F6\u53EF\u4F20 serverBase \u8986\u76D6\u81EA\u52A8\u8DEF\u7531\uFF0C\u52FF\u81C6\u9020\u5730\u5740\u3001\u52FF\u628A localhost \u5F53\u8FDC\u7AEF\u673A\u5668\u3002
188
- - \u901A\u9053\u8BED\u4E49\uFF1AstartAgentRun \u5F02\u6B65\uFF08wait:false\uFF09\u53EA\u8868\u793A\u5DF2\u542F\u52A8/\u6392\u961F\uFF0C**\u4E0D\u8868\u793A\u4EFB\u52A1\u5B8C\u6210**\uFF1Bdone/failed \u540E\u7CFB\u7EDF\u7528 terminal wake \u7EE7\u7EED\u7236\u5BF9\u8BDD\uFF0C\u4F60\u518D\u8BFB child evidence \u51B3\u5B9A\u4E0B\u4E00\u6B65\u3002\u8981\u77ED\u7ED3\u679C\u76F4\u63A5\u540C\u6B65\u7B49\uFF08wait:true\uFF09\uFF1B\u8981\u8BA9\u7528\u6237\u524D\u53F0\u5B9E\u65F6\u770B\u5230\u53D1\u8A00\uFF0C\u7528 runStreamingAgent\u3002
188
+ - \u901A\u9053\u8BED\u4E49\uFF1AstartAgentRun \u5F02\u6B65\uFF08wait:false\uFF09\u53EA\u8868\u793A\u5DF2\u542F\u52A8/\u6392\u961F\uFF0C**\u4E0D\u8868\u793A\u4EFB\u52A1\u5B8C\u6210**\uFF1Bdone/failed \u540E\u7CFB\u7EDF\u7528 terminal wake \u7EE7\u7EED\u7236\u5BF9\u8BDD\uFF0C\u4F60\u518D\u8BFB child evidence \u51B3\u5B9A\u4E0B\u4E00\u6B65\u3002\u4EC5\u5F53\u9884\u8BA1 <100s \u4E14\u9A6C\u4E0A\u8981\u7528\u7ED3\u679C\u3001\u7528\u6237\u660E\u786E\u8981\u6C42\u540C\u6B65\u7B49\u5F85\uFF08\u6216\u6B63\u5728\u4E0E\u8BE5\u5B50\u4EFB\u52A1\u5BF9\u8BDD\uFF09\u3001\u6216\u73AF\u5883\u4E0D\u652F\u6301\u7EC8\u6001\u5524\u9192\u4E14\u65E0\u5E76\u884C\u5DE5\u4F5C\u65F6\uFF0C\u624D\u7528 wait:true \u540C\u6B65\u7B49\uFF08\u963B\u585E\u4F1A\u51BB\u7ED3\u5BF9\u8BDD\uFF09\uFF1B\u5426\u5219\u4E00\u5F8B\u5F02\u6B65\u6D3E\u53D1\uFF0C\u9760\u7EC8\u6001\u5524\u9192\u63A5\u529B\u3002\u8981\u8BA9\u7528\u6237\u524D\u53F0\u5B9E\u65F6\u770B\u5230\u53D1\u8A00\uFF0C\u7528 runStreamingAgent\u3002
189
189
  - \u591A Agent \u534F\u4F5C\u4E0D\u9650\u4E8E\u4EE3\u7801\u4EFB\u52A1\uFF1A\u6E38\u620F\u8BBE\u8BA1\u3001\u7535\u5F71\u7B56\u5212\u3001\u5199\u4F5C\u3001\u8FD0\u8425\u3001\u7814\u7A76\u7B49\u5F02\u6B65\u5206\u5DE5\u573A\u666F\u540C\u6837\u9002\u7528\u3002
190
190
 
191
191
  **\u53D1\u6563 / \u4F1A\u5546\uFF08\u7CFB\u7EDF\u7EA7\u51B3\u7B56\u673A\u5236\uFF09**\uFF1A
@@ -33,13 +33,13 @@ import {
33
33
  resolvePlatformAuthToken,
34
34
  resolvePlatformServerUrl,
35
35
  resolveProviderTransportDecision
36
- } from "./chunk-5UOBIU5G.js";
36
+ } from "./chunk-2PGAWTDB.js";
37
37
  import {
38
38
  clipCompactText
39
39
  } from "./chunk-GK74OOFT.js";
40
40
  import {
41
41
  NOLO_CLIENT_VERSION_HEADER
42
- } from "./chunk-ENYDQKOB.js";
42
+ } from "./chunk-VFN256RI.js";
43
43
  import {
44
44
  isRecord
45
45
  } from "./chunk-KUG52IAP.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generatePkcePair,
3
3
  startCallbackServer
4
- } from "./chunk-I4JISVWK.js";
4
+ } from "./chunk-D45NILIX.js";
5
5
  import {
6
6
  toErrorMessage
7
7
  } from "./chunk-HNMXYYJR.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  updateContentTitle
3
- } from "./chunk-H2JQB6B6.js";
3
+ } from "./chunk-QPIMHSA5.js";
4
4
  import {
5
5
  require_date_fns
6
6
  } from "./chunk-M76ECQRD.js";
@@ -367,7 +367,7 @@ async function saveDocState(arg, { dispatch, getState }) {
367
367
  }
368
368
  }
369
369
  async function createDocState(args, thunkApi) {
370
- const { createPageAction } = await import("./createPageAction-SNBCYPK6.js");
370
+ const { createPageAction } = await import("./createPageAction-6MTVIU3J.js");
371
371
  return createPageAction(args, thunkApi);
372
372
  }
373
373
  function subscribe(listener) {
@@ -0,0 +1,8 @@
1
+ // packages/core/gatewayHttpStatus.ts
2
+ function isGatewayHttpStatus(status) {
3
+ return status === 502 || status === 503 || status === 504;
4
+ }
5
+
6
+ export {
7
+ isGatewayHttpStatus
8
+ };