nolo-cli 0.153.2 → 0.154.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 (136) hide show
  1. package/{_executeModel-7PZNF3KM.js → _executeModel-3HHZYHHB.js} +44 -42
  2. package/accountResolver-55EDKEIK.js +1 -1
  3. package/action-GPPJC5TI.js +1 -1
  4. package/{addContentAction-BI6RDRTQ.js → addContentAction-XJQEJ4XW.js} +6 -6
  5. package/{addDialogAgentAction-4RJYUSIK.js → addDialogAgentAction-5WZX5CAY.js} +5 -5
  6. package/{agentDeleteCommand-52SBFMA4.js → agentDeleteCommand-ON2KVSJ5.js} +60 -60
  7. package/{agentEmailCommands-FLTHAK4Y.js → agentEmailCommands-2QPD5VP3.js} +63 -63
  8. package/{agentListCommands-LKFRVROH.js → agentListCommands-L33M3I6V.js} +33 -33
  9. package/{agentMachineCommands-V3E6STQ6.js → agentMachineCommands-V44DPSED.js} +30 -28
  10. package/{agentProviderCommands-MKG2OOEY.js → agentProviderCommands-CXBHNONN.js} +5 -5
  11. package/{agentPullCommand-FA43RBRU.js → agentPullCommand-GXXEDOSA.js} +4 -4
  12. package/{agentRecordCommands-KAOY56RD.js → agentRecordCommands-CKILCNQZ.js} +57 -57
  13. package/{agentRunCommand-FXAN65RN.js → agentRunCommand-6IN7NK7H.js} +59 -59
  14. package/{agentRunControl-2C5GM3BW.js → agentRunControl-XBSNHHZE.js} +7 -7
  15. package/{agentRuntimeLocal-V4URZOQL.js → agentRuntimeLocal-XCKO5FVP.js} +20 -18
  16. package/{agentSlice-LAV5TJXT.js → agentSlice-YT3VCCEW.js} +6 -6
  17. package/{appDeleteCommands-7EZRTNIP.js → appDeleteCommands-2PJFNLAJ.js} +28 -26
  18. package/{appDeployCommands-3U6MEES7.js → appDeployCommands-AZCMCMK6.js} +28 -26
  19. package/{appDeployStatusCommands-TAC6BYC6.js → appDeployStatusCommands-HSIKPVJN.js} +28 -26
  20. package/{appGetCommands-MFNPLXGO.js → appGetCommands-IUZCPAP7.js} +28 -26
  21. package/{appListCommands-QVZAUEUU.js → appListCommands-JLFVS44M.js} +28 -26
  22. package/{authCommand-NIV3DKPF.js → authCommand-3Z52KJID.js} +19 -19
  23. package/{authCommands-AMNIAKEG.js → authCommands-QOCKVPX3.js} +5 -5
  24. package/{builtinSkillRegistry-H3AY27TR.js → builtinSkillRegistry-LJV7FHNI.js} +4 -4
  25. package/{chunk-4RJJDA57.js → chunk-2ODX2C4E.js} +154 -30
  26. package/{chunk-UCLSOLX4.js → chunk-2XDQAWBM.js} +12 -12
  27. package/{chunk-XJOBYJWN.js → chunk-2ZYCNT2O.js} +72 -33
  28. package/{chunk-YIIQNHJW.js → chunk-3GTVM7NJ.js} +19 -19
  29. package/{chunk-US6MKPE7.js → chunk-3L5MSPWX.js} +1 -1
  30. package/{chunk-SGJRNVYF.js → chunk-4L4K6YR7.js} +16 -2
  31. package/{chunk-P5QACQDK.js → chunk-62TBKWTV.js} +1 -1
  32. package/{chunk-TRW43TSC.js → chunk-6EQD4AQL.js} +41 -1
  33. package/{chunk-YLMMECCH.js → chunk-6XIE5ZGI.js} +1 -1
  34. package/{chunk-J2ATF74A.js → chunk-BAWAKW7X.js} +1 -1
  35. package/{chunk-ZVQHBIWV.js → chunk-CDLP56BS.js} +7 -7
  36. package/{chunk-JPJGMOIM.js → chunk-DD2EOI6S.js} +1 -1
  37. package/{chunk-OON4OBWI.js → chunk-DLV3H464.js} +7 -7
  38. package/{chunk-RWSOTHY4.js → chunk-DT7EWFTY.js} +5 -5
  39. package/{chunk-IRTOYSA2.js → chunk-ESMZW5PE.js} +1 -1
  40. package/{chunk-V6P4AYYJ.js → chunk-EVPKKBSI.js} +13 -13
  41. package/{chunk-HB4XPBC7.js → chunk-EWO77ZGF.js} +9 -11
  42. package/{chunk-KJ7MT3UC.js → chunk-F3SOW2EU.js} +81 -1
  43. package/{chunk-T64RZQBO.js → chunk-F5WASHQA.js} +247 -132
  44. package/{chunk-WUGRUG5Z.js → chunk-FB5WLEOD.js} +12 -12
  45. package/{chunk-SOEJSA7I.js → chunk-FCUKCVKN.js} +4 -4
  46. package/{chunk-FY4SDK2E.js → chunk-FDLDMJTM.js} +1 -1
  47. package/{chunk-ICRRXBRN.js → chunk-FFHV45HO.js} +3 -3
  48. package/{chunk-BUCB3RT4.js → chunk-FZYKQFBQ.js} +3 -3
  49. package/{chunk-IE5PXKVU.js → chunk-G3VYRPTV.js} +5 -5
  50. package/{chunk-3CHPRXKY.js → chunk-HW7EBEC5.js} +26 -194
  51. package/{chunk-UFYBYB26.js → chunk-I7S63QUU.js} +1 -1
  52. package/{chunk-CON6SI7N.js → chunk-IF7V3CBU.js} +1 -1
  53. package/{chunk-RAEBIT7A.js → chunk-JDKSYQQN.js} +4 -4
  54. package/{chunk-K43ZF2C3.js → chunk-JPPQ3GUO.js} +1 -1
  55. package/{chunk-QJJQZ4EK.js → chunk-JSB2OPQT.js} +115 -119
  56. package/{chunk-M2P3OGXZ.js → chunk-JWEXJ573.js} +2 -2
  57. package/{chunk-7G4KH3C4.js → chunk-K25WQPP3.js} +220 -54
  58. package/{chunk-ZEY4NJRE.js → chunk-KABQ74UQ.js} +4 -4
  59. package/{chunk-3C2QLERX.js → chunk-KMDDG73K.js} +1 -1
  60. package/{chunk-SPKLALBU.js → chunk-MAYW6V3E.js} +1 -1
  61. package/{chunk-IPAW7XLD.js → chunk-MFVOJ6KF.js} +2 -2
  62. package/{chunk-NDZOXXIM.js → chunk-NHEWV5FD.js} +1 -1
  63. package/{chunk-QPY264HO.js → chunk-O2IWR23M.js} +1 -1
  64. package/{chunk-TFPOD4YZ.js → chunk-OLVOR45M.js} +2 -2
  65. package/{chunk-SUKSWFLP.js → chunk-PIG2IUVZ.js} +1 -1
  66. package/{chunk-AAMWEIEP.js → chunk-QA2C5NKI.js} +3 -3
  67. package/{chunk-3WIXU4XO.js → chunk-QI2WVWXV.js} +13 -1
  68. package/{chunk-VSJIIKGY.js → chunk-QXZH5UDF.js} +3 -3
  69. package/{chunk-SQ73U3BG.js → chunk-QZIOZDM6.js} +9 -9
  70. package/{chunk-MJ54WBLO.js → chunk-R2KWTENX.js} +3 -3
  71. package/{chunk-C3OK72G3.js → chunk-RIHQGFFA.js} +1 -1
  72. package/{chunk-DC3SZCRR.js → chunk-SH3XD4E2.js} +2 -2
  73. package/{chunk-MM3662RS.js → chunk-SNAWGDXT.js} +263 -4
  74. package/{chunk-JGRPBIZZ.js → chunk-SQX235S2.js} +1 -1
  75. package/chunk-TT644UJD.js +188 -0
  76. package/{chunk-IYBIRCQV.js → chunk-U34KT53V.js} +29 -11
  77. package/{chunk-ZJZGF77K.js → chunk-ULQAD7ZY.js} +18 -43
  78. package/{chunk-DJKBZYMR.js → chunk-UY73HNIN.js} +53 -49
  79. package/{chunk-I2RMFLLH.js → chunk-V7PCFWX3.js} +1 -1
  80. package/{chunk-KLA62VVE.js → chunk-VXS4YYJ2.js} +8 -8
  81. package/{chunk-JZX2XLKC.js → chunk-YCRROBDY.js} +1 -1
  82. package/{chunk-C5A3GWRG.js → chunk-YR47Y7CN.js} +6 -6
  83. package/{chunk-AXYXKGPN.js → chunk-ZAV4YVEA.js} +1 -1
  84. package/{chunk-YANF2RR4.js → chunk-ZPKUJROL.js} +1 -1
  85. package/{chunk-AWY25K65.js → chunk-ZSLIYVIQ.js} +7 -7
  86. package/{commandRegistry-BZGZP4AW.js → commandRegistry-4LWXIPNX.js} +83 -83
  87. package/{contentThunks-56AWRCC4.js → contentThunks-QBL5NK2W.js} +17 -17
  88. package/{createAgentAutomationAction-W5D4IHHK.js → createAgentAutomationAction-5UWBLR2N.js} +17 -17
  89. package/{createDialogAction-YMU646CH.js → createDialogAction-NJ2LE7KC.js} +21 -21
  90. package/{createPageAction-T4WRPDOH.js → createPageAction-7T3RINS2.js} +19 -19
  91. package/{dbSlice-DC2J53RC.js → dbSlice-6PVPY44C.js} +5 -5
  92. package/{deleteFile-KYWEMNFX.js → deleteFile-YM6NDPAR.js} +3 -3
  93. package/{dialogCommands-3T3LM566.js → dialogCommands-KMECTGCW.js} +30 -28
  94. package/{dialogSlice-Z5KOY4CC.js → dialogSlice-GQMTD4HR.js} +16 -16
  95. package/{docCreateCommands-OLNS64OJ.js → docCreateCommands-4IT5PUAL.js} +30 -28
  96. package/{docDeleteCommands-U4UOLXZQ.js → docDeleteCommands-QS66YNZV.js} +31 -29
  97. package/{docReadCommands-WUYVWGOH.js → docReadCommands-3SAI46YC.js} +30 -28
  98. package/{docStore-2EN5A7PW.js → docStore-PM5PYKPZ.js} +6 -6
  99. package/{docUpdateCommands-RKVB6XAQ.js → docUpdateCommands-OGYG5BRC.js} +30 -28
  100. package/{getPricing-TX35D7PI.js → getPricing-XQ3N3RBP.js} +2 -2
  101. package/{handleSendMessageAction-EF3LOTXW.js → handleSendMessageAction-EQ3U6K5N.js} +35 -31
  102. package/index.js +7 -7
  103. package/{localRuntimeAdapter-OAHN57AM.js → localRuntimeAdapter-MO64KEOS.js} +53 -53
  104. package/{localRuntimeAuthority-JDAD7CB6.js → localRuntimeAuthority-BPN5OAQG.js} +2 -2
  105. package/{localRuntimeDb-CVC62PM5.js → localRuntimeDb-QIVAXMUL.js} +1 -1
  106. package/{machineCommands-RTYX5UN3.js → machineCommands-7MBJJY4K.js} +60 -60
  107. package/{machineWsRunDispatch-ELDKKIHF.js → machineWsRunDispatch-T4LFRJL3.js} +55 -55
  108. package/{memberThunks-2DWKLE6W.js → memberThunks-AZINUM4S.js} +8 -8
  109. package/package.json +1 -1
  110. package/{providerPresetApply-GSJI4JBJ.js → providerPresetApply-PKUOHQJT.js} +5 -5
  111. package/{providerRegistry-TSSTPGWF.js → providerRegistry-HNQLIFN2.js} +5 -5
  112. package/{read-L7QEJETH.js → read-7JPIWRBQ.js} +3 -3
  113. package/{readDocTool-QELXV2GW.js → readDocTool-AAQTB2Y3.js} +1 -1
  114. package/{readlineWorkspace-BUEUGN7D.js → readlineWorkspace-2DR5GHLQ.js} +92 -126
  115. package/{removeDialogAgentAction-376XSUP2.js → removeDialogAgentAction-RMVRILLK.js} +6 -6
  116. package/{runAgentClientLoop-BDN5VYZN.js → runAgentClientLoop-EXIQDX7G.js} +42 -40
  117. package/{runtimeDoctorCommands-56NWKNON.js → runtimeDoctorCommands-MMCP4B4U.js} +12 -12
  118. package/{setDialogExtraReferencesAction-QBDSH63D.js → setDialogExtraReferencesAction-L3V7JTMG.js} +6 -6
  119. package/{setPrimaryDialogAgentAction-537QFGW3.js → setPrimaryDialogAgentAction-X52JQGTJ.js} +6 -6
  120. package/{settingThunks-4Z43ZSAT.js → settingThunks-N6XFWPOU.js} +5 -5
  121. package/{spaceCommands-KHCPOFEB.js → spaceCommands-WQMUCGV7.js} +27 -25
  122. package/{streamAgentChatTurn-WFNIELXS.js → streamAgentChatTurn-DI2334G3.js} +142 -81
  123. package/{switchDialogAgentAction-CSO6AKRL.js → switchDialogAgentAction-ZJ5CGU7J.js} +5 -5
  124. package/{tools-2LGM37M4.js → tools-23VQGJOX.js} +32 -32
  125. package/{tuiSummaryLlmCaller-NBEHCAFU.js → tuiSummaryLlmCaller-FESHBDTT.js} +7 -7
  126. package/{updateCommands-LXZLG44Y.js → updateCommands-ODWC7SK7.js} +5 -3
  127. package/{updateDialogTitleAction-IFC2MM4P.js → updateDialogTitleAction-AGAYHWS7.js} +17 -17
  128. package/chunk-UKZX3NHN.js +0 -48
  129. package/{agentGrantCommands-HOJ3JBBQ.js → agentGrantCommands-5DPHYEKP.js} +3 -3
  130. package/{chromeOpsCommands-3Z34RKSE.js → chromeOpsCommands-GZVVK7HU.js} +4 -4
  131. package/{chunk-2SGAI64X.js → chunk-43OFVLWJ.js} +4 -4
  132. package/{chunk-XETG4RIX.js → chunk-AETZ7AD6.js} +4 -4
  133. package/{chunk-2IXDJNZI.js → chunk-GAGGEA7D.js} +3 -3
  134. package/{memoryCommands-CUNBFRVS.js → memoryCommands-ZS3VQJAL.js} +3 -3
  135. package/{offlineMarxistsAgentCommand-2QTHJCHV.js → offlineMarxistsAgentCommand-3GLX4QQY.js} +3 -3
  136. package/{tableCommands-LBH3QPPO.js → tableCommands-IVC5S7Y3.js} +11 -11
@@ -1,7 +1,13 @@
1
+ import {
2
+ resolveAgentCallPlan
3
+ } from "./chunk-TT644UJD.js";
4
+ import {
5
+ SUBSCRIPTION_OAUTH_PROVIDERS
6
+ } from "./chunk-EWO77ZGF.js";
1
7
  import {
2
8
  findModelConfig,
3
9
  getProviderByModelName
4
- } from "./chunk-TRW43TSC.js";
10
+ } from "./chunk-6EQD4AQL.js";
5
11
  import {
6
12
  asOptionalTrimmedString
7
13
  } from "./chunk-G3SUCT4W.js";
@@ -90,16 +96,18 @@ var lookupKnownModelVision = (provider, model) => {
90
96
  if (provider && provider !== "custom") {
91
97
  const direct = findModelConfig(provider, candidate);
92
98
  if (direct && typeof direct.hasVision === "boolean") return direct.hasVision;
93
- }
94
- const detected = getProviderByModelName(candidate);
95
- if (detected) {
96
- const found = findModelConfig(detected, candidate)?.hasVision;
97
- if (found !== void 0) return found;
99
+ } else {
100
+ const detected = getProviderByModelName(candidate);
101
+ if (detected) {
102
+ const found = findModelConfig(detected, candidate)?.hasVision;
103
+ if (found !== void 0) return found;
104
+ }
98
105
  }
99
106
  if (candidate.includes("/")) {
100
107
  const slash = candidate.indexOf("/");
101
108
  const modelProvider = candidate.slice(0, slash).toLowerCase();
102
109
  const modelName = candidate.slice(slash + 1);
110
+ if (provider && provider !== "custom" && provider !== modelProvider) continue;
103
111
  const nested = findModelConfig(modelProvider, modelName);
104
112
  if (nested && typeof nested.hasVision === "boolean") return nested.hasVision;
105
113
  }
@@ -108,12 +116,22 @@ var lookupKnownModelVision = (provider, model) => {
108
116
  };
109
117
  var resolveAgentImageInputSupport = (agent) => {
110
118
  if (!agent) return true;
111
- const provider = asTrimmedLowercaseString(agent.provider) || null;
119
+ const provider = asTrimmedLowercaseString(agent.provider) || asTrimmedLowercaseString(agent.apiSource) || null;
112
120
  const model = asOptionalTrimmedString(agent.model) ?? "";
113
- const catalogHasVision = lookupKnownModelVision(
114
- provider,
115
- model
116
- );
121
+ const { authMethod } = resolveAgentCallPlan({
122
+ key: "",
123
+ provider: agent.provider ?? void 0,
124
+ apiSource: agent.apiSource ?? void 0,
125
+ cliProvider: agent.cliProvider ?? void 0,
126
+ model,
127
+ apiKeyRef: agent.apiKeyRef ?? void 0,
128
+ customProviderUrl: agent.customProviderUrl ?? void 0,
129
+ apiKey: agent.apiKey ?? void 0,
130
+ useServerProxy: agent.useServerProxy ?? void 0
131
+ });
132
+ const catalogHasVision = authMethod.kind === "oauth" ? SUBSCRIPTION_OAUTH_PROVIDERS.find((entry) => entry.apiKeyRef === authMethod.ref)?.modelOptions.find(
133
+ (entry) => [model, stripEffortSuffix(model), stripPreviewSuffix(model)].includes(entry.id)
134
+ )?.hasVision : lookupKnownModelVision(provider, model);
117
135
  if (catalogHasVision !== void 0) {
118
136
  return catalogHasVision;
119
137
  }
@@ -1,12 +1,6 @@
1
- import {
2
- isDevinOAuthAgent
3
- } from "./chunk-5ZUL4CUO.js";
4
1
  import {
5
2
  resolveAgentImageInputSupport
6
- } from "./chunk-IYBIRCQV.js";
7
- import {
8
- getModelContextWindow
9
- } from "./chunk-AAMWEIEP.js";
3
+ } from "./chunk-U34KT53V.js";
10
4
  import {
11
5
  asOptionalFiniteNumber
12
6
  } from "./chunk-WWC7I6TA.js";
@@ -39,9 +33,13 @@ function hasImageInRuntimeMessages(messages) {
39
33
  var IMAGE_OMITTED_PLACEHOLDER = "[Image content omitted: model does not support image input]";
40
34
  function stripImagePartsFromContent(content) {
41
35
  if (!Array.isArray(content)) return content;
42
- const filtered = content.filter((part) => part?.type !== "image_url");
43
- if (filtered.length === 0) return IMAGE_OMITTED_PLACEHOLDER;
44
- return filtered;
36
+ const hasImage = content.some((part) => part && typeof part === "object" && part.type === "image_url");
37
+ if (!hasImage) return content;
38
+ const hasNonImage = content.some((part) => part && typeof part === "object" && part.type !== "image_url");
39
+ if (!hasNonImage) return IMAGE_OMITTED_PLACEHOLDER;
40
+ return content.map(
41
+ (part) => part && typeof part === "object" && part.type === "image_url" ? { type: "text", text: IMAGE_OMITTED_PLACEHOLDER } : part
42
+ );
45
43
  }
46
44
  function stripImagePartsFromMessages(messages) {
47
45
  return messages.map((msg) => ({
@@ -51,39 +49,17 @@ function stripImagePartsFromMessages(messages) {
51
49
  }
52
50
  async function stripImagePartsForTextOnlyAgent(messages, agentConfig) {
53
51
  const supportsVision = resolveAgentImageInputSupport(agentConfig);
54
- const hasImages = hasImageInRuntimeMessages(messages);
55
- return { messages: !supportsVision && hasImages ? stripImagePartsFromMessages(messages) : messages };
52
+ const runtimeMessages = messages;
53
+ const hasImages = hasImageInRuntimeMessages(runtimeMessages);
54
+ const shouldStrip = !supportsVision && hasImages;
55
+ const omittedImageCount = shouldStrip ? extractImageUrlsFromMessages(runtimeMessages).length : 0;
56
+ return {
57
+ messages: shouldStrip ? stripImagePartsFromMessages(messages) : messages,
58
+ downgraded: shouldStrip,
59
+ omittedImageCount
60
+ };
56
61
  }
57
62
 
58
- // packages/agent-runtime/devin/devinChannelWindows.ts
59
- var DEVIN_CHANNEL_CONTEXT_WINDOWS = {
60
- // SWE-2 家族(catalog 无裸 swe-2 selector;旧点号/裸写法如 swe-2、
61
- // swe-1.7 实测均 permission_denied,已不是可用 selector)。
62
- "swe-2-max": 262e3,
63
- "swe-2-high": 262e3,
64
- "swe-2-medium": 262e3,
65
- // SWE-1.7 家族。
66
- "swe-1-7": 262e3,
67
- "swe-1-7-medium": 262e3,
68
- "swe-1-7-lightning": 202752,
69
- // SWE-1.6 家族(免费档默认)。
70
- "swe-1-6": 2e5,
71
- "swe-1-6-fast": 2e5,
72
- // 经 devin 通道转售、且与厂商原生窗口不同的模型(catalog 枚举型 selector)。
73
- "MODEL_GPT_5_2_LOW": 384e3,
74
- "MODEL_GPT_5_2_MEDIUM": 384e3,
75
- "MODEL_GPT_5_2_HIGH": 384e3,
76
- "MODEL_GPT_5_2_XHIGH": 384e3
77
- };
78
- var devinChannelContextWindow = (model) => {
79
- const raw = model?.trim();
80
- if (!raw) return void 0;
81
- return DEVIN_CHANNEL_CONTEXT_WINDOWS[raw];
82
- };
83
- var resolveAgentContextWindow = (agent) => (isDevinOAuthAgent(agent) ? devinChannelContextWindow(agent.model) : void 0) ?? // provider 透传给全局解析:平台托管通道(CF)与 Codex OAuth 等通道对同一 id
84
- // 窗口不同,按通道取真值,不做全局取大/取小。
85
- getModelContextWindow(agent.model ?? "", agent.provider);
86
-
87
63
  // packages/agent-runtime/agentRecordConfig.ts
88
64
  function stringField(record, key) {
89
65
  const value = record[key];
@@ -449,11 +425,10 @@ function assertDesktopAgentRuntimeTurnBodyHasNoRawSecrets(body) {
449
425
  }
450
426
 
451
427
  export {
428
+ extractImageUrlsFromMessages,
452
429
  hasImageInRuntimeMessages,
453
430
  stripImagePartsFromMessages,
454
431
  stripImagePartsForTextOnlyAgent,
455
- devinChannelContextWindow,
456
- resolveAgentContextWindow,
457
432
  resolveAgentRuntimeConfigFromRecord,
458
433
  buildDesktopAgentRuntimeAgentConfigSnapshot,
459
434
  buildDesktopAgentRuntimeDialogHistorySnapshot,
@@ -5,7 +5,7 @@ import {
5
5
  refreshOpenAiCodexToken,
6
6
  resolveServerSyncConfig,
7
7
  xaiRefresh
8
- } from "./chunk-IE5PXKVU.js";
8
+ } from "./chunk-G3VYRPTV.js";
9
9
  import {
10
10
  clearCredentialAvailability,
11
11
  markCredentialUnavailable,
@@ -54,7 +54,7 @@ import {
54
54
  } from "./chunk-BU2YQBV4.js";
55
55
  import {
56
56
  applyPublicAgentCatalogOverride
57
- } from "./chunk-IPAW7XLD.js";
57
+ } from "./chunk-MFVOJ6KF.js";
58
58
  import {
59
59
  buildCliPrompt
60
60
  } from "./chunk-ATNTHIZI.js";
@@ -64,7 +64,7 @@ import {
64
64
  import {
65
65
  inlineImageUrlsForCustomProvider,
66
66
  prepareTools
67
- } from "./chunk-TFPOD4YZ.js";
67
+ } from "./chunk-OLVOR45M.js";
68
68
  import {
69
69
  getServerProviderSecret
70
70
  } from "./chunk-HS7MLR74.js";
@@ -86,18 +86,18 @@ import {
86
86
  resolveCliLocalRuntimeKeyCapability,
87
87
  resolveCliLocalSpawnDispatch,
88
88
  resolveStartAgentRunCwd
89
- } from "./chunk-XJOBYJWN.js";
89
+ } from "./chunk-2ZYCNT2O.js";
90
90
  import {
91
91
  deriveCredentialGroup,
92
92
  deriveCustomProviderCredentialGroup
93
- } from "./chunk-KLA62VVE.js";
93
+ } from "./chunk-VXS4YYJ2.js";
94
94
  import {
95
95
  fetchWithTransientRetry,
96
96
  isTransientFetchError
97
97
  } from "./chunk-KFHREHUQ.js";
98
98
  import {
99
99
  resolveAgentRequiredPackIds
100
- } from "./chunk-SOEJSA7I.js";
100
+ } from "./chunk-FCUKCVKN.js";
101
101
  import {
102
102
  applyBuiltinAgentRuntimeOverride,
103
103
  applyTokenUsageToDayStats,
@@ -106,17 +106,14 @@ import {
106
106
  resolveBuiltinPlatformAgentConfig,
107
107
  runKeyed,
108
108
  validateAskChoiceInput
109
- } from "./chunk-T64RZQBO.js";
110
- import {
111
- isOAuthApiKeyRef
112
- } from "./chunk-UKZX3NHN.js";
109
+ } from "./chunk-F5WASHQA.js";
113
110
  import {
114
111
  BUILTIN_DIALOG_LLM_CHAT_FALLBACK_MODEL,
115
112
  BUILTIN_TITLE_LLM_CONFIG
116
113
  } from "./chunk-523DITKR.js";
117
114
  import {
118
115
  fetchServerSyncedCredential
119
- } from "./chunk-RWSOTHY4.js";
116
+ } from "./chunk-DT7EWFTY.js";
120
117
  import {
121
118
  isTombstoneRecord
122
119
  } from "./chunk-D2MDMY2M.js";
@@ -129,7 +126,7 @@ import {
129
126
  applySystemBuiltinSkillFilter,
130
127
  expandEnabledPacks,
131
128
  resolveEffectiveEnabledPacks
132
- } from "./chunk-JZX2XLKC.js";
129
+ } from "./chunk-YCRROBDY.js";
133
130
  import {
134
131
  DEFAULT_HYBRID_READ_TIMEOUT_MS,
135
132
  Duration_exports,
@@ -173,7 +170,7 @@ import {
173
170
  runExecShellGates,
174
171
  validateConfiguredRootExecutionLease,
175
172
  verifyOwnerRouteAck
176
- } from "./chunk-7G4KH3C4.js";
173
+ } from "./chunk-K25WQPP3.js";
177
174
  import {
178
175
  accumulateGeminiChunks,
179
176
  buildGeminiGenerateContentRequest,
@@ -185,7 +182,7 @@ import {
185
182
  resolveAntigravityFinishReason,
186
183
  resolveGeminiModelQuirks,
187
184
  shouldUseGeminiNativeToolRoute
188
- } from "./chunk-3C2QLERX.js";
185
+ } from "./chunk-KMDDG73K.js";
189
186
  import {
190
187
  PlatformStreamInterruptedError,
191
188
  buildPlatformChatCompletionRequest,
@@ -196,27 +193,24 @@ import {
196
193
  readPlatformChatSseCompletion,
197
194
  resolvePlatformChatProviderConfig,
198
195
  shouldUsePlatformChatProvider
199
- } from "./chunk-VSJIIKGY.js";
196
+ } from "./chunk-QXZH5UDF.js";
200
197
  import {
201
198
  readSseDataValues,
202
199
  readSseFrames
203
200
  } from "./chunk-HNUWUO75.js";
204
201
  import {
205
202
  resolveAgentRuntimeConfigFromRecord
206
- } from "./chunk-ZJZGF77K.js";
207
- import {
208
- isDevinOAuthAgent
209
- } from "./chunk-5ZUL4CUO.js";
203
+ } from "./chunk-ULQAD7ZY.js";
210
204
  import {
211
205
  resolveHistoricalToolContentCap
212
- } from "./chunk-IYBIRCQV.js";
206
+ } from "./chunk-U34KT53V.js";
213
207
  import {
214
208
  collectStablePromptPrefix,
215
209
  convertMessagesToResponsesInput,
216
210
  findAgentStatePairingIssues,
217
211
  stablePromptCacheKey,
218
212
  toResponsesTools
219
- } from "./chunk-SGJRNVYF.js";
213
+ } from "./chunk-4L4K6YR7.js";
220
214
  import {
221
215
  buildNoloWorkspaceOpenAiTools,
222
216
  parseNoloWorkspaceToolArguments,
@@ -233,15 +227,19 @@ import {
233
227
  normalizeDialogTitle
234
228
  } from "./chunk-2MBTWINN.js";
235
229
  import {
230
+ isOAuthApiKeyRef,
236
231
  normalizeUsage
237
- } from "./chunk-KJ7MT3UC.js";
232
+ } from "./chunk-F3SOW2EU.js";
233
+ import {
234
+ isDevinOAuthAgent
235
+ } from "./chunk-5ZUL4CUO.js";
238
236
  import {
239
237
  createProviderCallTimingTracker,
240
238
  finalizeProviderCallTiming,
241
239
  observeMeaningfulProviderResponse,
242
240
  observeMeaningfulProviderResponseAt,
243
241
  withProviderCallTimingFields
244
- } from "./chunk-AAMWEIEP.js";
242
+ } from "./chunk-QA2C5NKI.js";
245
243
  import {
246
244
  clipCompactText
247
245
  } from "./chunk-5MMAK75Q.js";
@@ -280,9 +278,6 @@ import {
280
278
  dialogMessagePrefix,
281
279
  dialogMessageRange
282
280
  } from "./chunk-5EMSBTQ6.js";
283
- import {
284
- isAntigravityOAuthAgent
285
- } from "./chunk-JGRPBIZZ.js";
286
281
  import {
287
282
  ackRunRecord,
288
283
  appendRunQueue,
@@ -303,7 +298,7 @@ import {
303
298
  terminateRunProcess,
304
299
  transitionRunToTerminal,
305
300
  withQueueLock
306
- } from "./chunk-MM3662RS.js";
301
+ } from "./chunk-SNAWGDXT.js";
307
302
  import {
308
303
  TASK_PREVIEW_MAX,
309
304
  formatListRunsCard,
@@ -320,15 +315,36 @@ import {
320
315
  import {
321
316
  estimateTokenCount
322
317
  } from "./chunk-PSCNXBYA.js";
318
+ import {
319
+ getDefaultCliLocalRuntimeDb
320
+ } from "./chunk-FDLDMJTM.js";
321
+ import {
322
+ getLogger
323
+ } from "./chunk-EYLGAEB4.js";
324
+ import {
325
+ isCompiledBinary,
326
+ parseUserIdFromAuthToken,
327
+ resolveAuthToken,
328
+ resolveServerUrl
329
+ } from "./chunk-A7GB5UGH.js";
330
+ import {
331
+ DEFAULT_NOLO_SERVER_URL
332
+ } from "./chunk-OLZBQWZU.js";
333
+ import {
334
+ NOLO_CLUSTER_SERVERS
335
+ } from "./chunk-LCBAMY2M.js";
336
+ import {
337
+ isAntigravityOAuthAgent
338
+ } from "./chunk-SQX235S2.js";
323
339
  import {
324
340
  buildProviderSessionHeaders,
325
341
  resolvePlatformAuthToken
326
- } from "./chunk-SUKSWFLP.js";
342
+ } from "./chunk-PIG2IUVZ.js";
327
343
  import {
328
344
  anthropicOAuthModelMaxOutputTokens,
329
345
  findModelConfig,
330
346
  isAdaptiveThinkingModelId
331
- } from "./chunk-TRW43TSC.js";
347
+ } from "./chunk-6EQD4AQL.js";
332
348
  import {
333
349
  CLI_PROVIDER_VALUES,
334
350
  isCliProvider
@@ -342,24 +358,6 @@ import {
342
358
  import {
343
359
  toErrorMessage
344
360
  } from "./chunk-HNMXYYJR.js";
345
- import {
346
- getDefaultCliLocalRuntimeDb
347
- } from "./chunk-FY4SDK2E.js";
348
- import {
349
- getLogger
350
- } from "./chunk-EYLGAEB4.js";
351
- import {
352
- isCompiledBinary,
353
- parseUserIdFromAuthToken,
354
- resolveAuthToken,
355
- resolveServerUrl
356
- } from "./chunk-A7GB5UGH.js";
357
- import {
358
- DEFAULT_NOLO_SERVER_URL
359
- } from "./chunk-OLZBQWZU.js";
360
- import {
361
- NOLO_CLUSTER_SERVERS
362
- } from "./chunk-LCBAMY2M.js";
363
361
  import {
364
362
  isLoopbackUrl
365
363
  } from "./chunk-4SN6J65J.js";
@@ -5803,6 +5801,12 @@ function createCliStartAgentRunExecutor(deps = {}) {
5803
5801
  // F1:runtimeKey=local 是「在宿主文件系统上改代码」,需要调用方的显式确认
5804
5802
  // (allowHostWrites: true);缺失即派发前拒绝(零 spawn、零 run 记录)。
5805
5803
  allowHostWrites: args.allowHostWrites,
5804
+ // 政策第 5 条:显式宿主 cwd × 沙盒落点必须在派发前失败(沙盒不兑现宿主
5805
+ // 路径,cwd 会被静默替换、改动随沙盒消失)。这里传的是调用方**原始**
5806
+ // args.cwd —— `requestedCwd` 走 resolveStartAgentRunCwd,要读 fs 探测,
5807
+ // 排在这条判定之后;守卫自己只认宿主绝对路径(相对/空白自行跳过,交给
5808
+ // resolveStartAgentRunCwd 报「必须是绝对路径」)。
5809
+ ...typeof args.cwd === "string" && args.cwd.trim() ? { cwd: args.cwd } : {},
5806
5810
  ...bindingMachineId ? { bindingMachineId } : {},
5807
5811
  ...localMachineId ? { localMachineId } : {}
5808
5812
  });
@@ -10762,7 +10766,7 @@ function createCliLocalRuntimeAdapter(deps) {
10762
10766
  const recordRunExecutionIsolation = async () => {
10763
10767
  try {
10764
10768
  const { writeFileSync: writeFileSync4, mkdirSync: mkdirSync4 } = await import("node:fs");
10765
- const { resolveRunsDir } = await import("./agentRunControl-2C5GM3BW.js");
10769
+ const { resolveRunsDir } = await import("./agentRunControl-XBSNHHZE.js");
10766
10770
  const fact = resolveLocalRunExecutionIsolationFact({
10767
10771
  // F1:显式点名宿主执行的 run 在审计里必须与 docker 沙盒区分开
10768
10772
  // (reason: host-explicit-writes vs docker-workload)。
@@ -10794,7 +10798,7 @@ function createCliLocalRuntimeAdapter(deps) {
10794
10798
  dockerWorkloadReleased = true;
10795
10799
  dockerWorkloadLoad = null;
10796
10800
  if (loaded) {
10797
- const { resolveRunsDir } = await import("./agentRunControl-2C5GM3BW.js");
10801
+ const { resolveRunsDir } = await import("./agentRunControl-XBSNHHZE.js");
10798
10802
  const exportRunDiff = deps.exportDockerRunDiffArtifact ?? exportDockerRunDiffArtifact;
10799
10803
  const warn = (message) => process.stderr.write(`[nolo] ${message}
10800
10804
  `);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getModelConfig
3
- } from "./chunk-TRW43TSC.js";
3
+ } from "./chunk-6EQD4AQL.js";
4
4
  import {
5
5
  isPlatformHostedDeepseekModel,
6
6
  isPlatformHostedOpenAIImageModel,
@@ -1,6 +1,3 @@
1
- import {
2
- isOAuthApiKeyRef
3
- } from "./chunk-UKZX3NHN.js";
4
1
  import {
5
2
  fnv1a32Hex
6
3
  } from "./chunk-UEILX4EV.js";
@@ -10,21 +7,24 @@ import {
10
7
  import {
11
8
  isAgentUnavailableNow
12
9
  } from "./chunk-3MZAGMYY.js";
10
+ import {
11
+ isOAuthApiKeyRef
12
+ } from "./chunk-F3SOW2EU.js";
13
13
  import {
14
14
  isOwnedAgentKey,
15
15
  ownedAgentKey,
16
16
  publicAgentKey
17
17
  } from "./chunk-M2EJHDJP.js";
18
+ import {
19
+ getModelAbility
20
+ } from "./chunk-FYYSDHVQ.js";
18
21
  import {
19
22
  isSubscriptionEndpoint,
20
23
  isSubscriptionOAuthCredential
21
- } from "./chunk-HB4XPBC7.js";
24
+ } from "./chunk-EWO77ZGF.js";
22
25
  import {
23
26
  isAntigravityOAuthAgent
24
- } from "./chunk-JGRPBIZZ.js";
25
- import {
26
- getModelAbility
27
- } from "./chunk-FYYSDHVQ.js";
27
+ } from "./chunk-SQX235S2.js";
28
28
 
29
29
  // packages/ai/agent/agentBilling.ts
30
30
  function resolveBillingSource(candidate) {
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-EUGTFFO6.js";
5
5
  import {
6
6
  buildSkillDocMarkdown
7
- } from "./chunk-XETG4RIX.js";
7
+ } from "./chunk-AETZ7AD6.js";
8
8
  import {
9
9
  CHROME_CONNECTOR_ACCEPTED_TOOL_NAMES
10
10
  } from "./chunk-NYYFIKHI.js";
@@ -2,7 +2,7 @@ import {
2
2
  deleteDialog,
3
3
  runtime_default,
4
4
  toast
5
- } from "./chunk-T64RZQBO.js";
5
+ } from "./chunk-F5WASHQA.js";
6
6
  import {
7
7
  getCurrentSpaceId,
8
8
  getCurrentSpaceIdRaw,
@@ -19,7 +19,7 @@ import {
19
19
  addContentAction,
20
20
  checkSpaceMembership,
21
21
  localSpaceAuthorityPatchStamp
22
- } from "./chunk-M2P3OGXZ.js";
22
+ } from "./chunk-JWEXJ573.js";
23
23
  import {
24
24
  createSpaceKey,
25
25
  normalizeSpaceId
@@ -32,7 +32,7 @@ import {
32
32
  uploadFileAction,
33
33
  upsertSSREntity,
34
34
  write
35
- } from "./chunk-ZVQHBIWV.js";
35
+ } from "./chunk-CDLP56BS.js";
36
36
  import {
37
37
  resolveFileCategory
38
38
  } from "./chunk-3PVYUPXK.js";
@@ -43,7 +43,7 @@ import {
43
43
  resolveReplicationServers,
44
44
  scheduleDeleteReplication,
45
45
  scheduleWriteReplication
46
- } from "./chunk-2SGAI64X.js";
46
+ } from "./chunk-43OFVLWJ.js";
47
47
  import {
48
48
  createAsyncThunk
49
49
  } from "./chunk-WRCZXJ4N.js";
@@ -1495,11 +1495,11 @@ var ENTITY_DELETE_STRATEGIES = {
1495
1495
  await dispatch(deleteTable({ dbKey: key })).unwrap();
1496
1496
  },
1497
1497
  file: async (key, { thunkAPI }) => {
1498
- const { deleteFileAction } = await import("./deleteFile-KYWEMNFX.js");
1498
+ const { deleteFileAction } = await import("./deleteFile-YM6NDPAR.js");
1499
1499
  await deleteFileAction(key, thunkAPI);
1500
1500
  },
1501
1501
  image: async (key, { thunkAPI }) => {
1502
- const { deleteFileAction } = await import("./deleteFile-KYWEMNFX.js");
1502
+ const { deleteFileAction } = await import("./deleteFile-YM6NDPAR.js");
1503
1503
  await deleteFileAction(key, thunkAPI);
1504
1504
  },
1505
1505
  agent: async (key, { dispatch, userId, sourceServerOrigin }) => {
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-NBTY7YJF.js";
6
6
  import {
7
7
  resolveCliLocalRuntimeKeyCapability
8
- } from "./chunk-XJOBYJWN.js";
8
+ } from "./chunk-2ZYCNT2O.js";
9
9
  import {
10
10
  HIGH_RISK_MUTATION_TOOL_NAMES
11
11
  } from "./chunk-QLQ573SU.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-WWC7I6TA.js";
13
13
  import {
14
14
  getModelConfig
15
- } from "./chunk-TRW43TSC.js";
15
+ } from "./chunk-6EQD4AQL.js";
16
16
  import {
17
17
  isPlatformHostedImageModel,
18
18
  isPlatformManagedProvider,
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-U4STABYN.js";
4
4
  import {
5
5
  getReadableCliDb
6
- } from "./chunk-P5QACQDK.js";
6
+ } from "./chunk-62TBKWTV.js";
7
7
  import {
8
8
  clearCliLocalRuntimePreparedAgentCache
9
- } from "./chunk-DJKBZYMR.js";
9
+ } from "./chunk-UY73HNIN.js";
10
10
  import {
11
11
  readCredentialAvailability
12
12
  } from "./chunk-6MXDOUMH.js";
@@ -19,17 +19,17 @@ import {
19
19
  resolveAgentRecordFromHybridStore,
20
20
  sanitizeAgentRecordForCliOutput,
21
21
  writeAgentRecord
22
- } from "./chunk-ZEY4NJRE.js";
22
+ } from "./chunk-KABQ74UQ.js";
23
23
  import {
24
24
  resolveCliAgentKeyInput
25
25
  } from "./chunk-NBTY7YJF.js";
26
- import {
27
- toErrorMessage
28
- } from "./chunk-HNMXYYJR.js";
29
26
  import {
30
27
  parseUserIdFromAuthToken,
31
28
  resolveAuthToken
32
29
  } from "./chunk-A7GB5UGH.js";
30
+ import {
31
+ toErrorMessage
32
+ } from "./chunk-HNMXYYJR.js";
33
33
 
34
34
  // packages/cli/agentRecordCommands.ts
35
35
  async function runAgentReadCommand(args, deps = {}) {
@@ -244,7 +244,7 @@ async function runAgentCreateCommand(args, deps = {}) {
244
244
  let verifyResult;
245
245
  if (parsed.verify) {
246
246
  try {
247
- const { verifyCustomProvider } = await import("./agentProviderCommands-MKG2OOEY.js");
247
+ const { verifyCustomProvider } = await import("./agentProviderCommands-CXBHNONN.js");
248
248
  const rec = built.nextRecord;
249
249
  verifyResult = await verifyCustomProvider({
250
250
  providerUrl: rec.customProviderUrl,