nolo-cli 0.97.0-alpha.2 → 0.97.1

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 (182) hide show
  1. package/README.md +1 -1
  2. package/{_executeModel-G2MRKK2K.js → _executeModel-DYHTQJZC.js} +68 -63
  3. package/{action-YVYQEAAV.js → action-GI44T4DR.js} +10 -10
  4. package/{addContentAction-O7R66HEX.js → addContentAction-B2DRF7P6.js} +9 -9
  5. package/{addDialogAgentAction-74OA7KYP.js → addDialogAgentAction-T3I7IXPK.js} +15 -17
  6. package/{agentDeleteCommand-4427YKQF.js → agentDeleteCommand-LLNNP3AM.js} +47 -43
  7. package/{agentEmailCommands-RNBKKO7Q.js → agentEmailCommands-MQOP76DK.js} +90 -82
  8. package/agentListCommands-J3MWAZWO.js +741 -0
  9. package/{agentMachineCommands-FOFX5S2Q.js → agentMachineCommands-EQIRKAZO.js} +42 -38
  10. package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-EMZCM6VA.js} +1 -1
  11. package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-HF4A42D4.js} +1 -1
  12. package/agentRecordCommands-7MQRBMWZ.js +136 -0
  13. package/{agentRunCommand-2W3Q3A7M.js → agentRunCommand-H6BYSTJ7.js} +90 -80
  14. package/{agentRunControl-WCTKX5VL.js → agentRunControl-2TTTUTSW.js} +2 -2
  15. package/{agentRuntimeLocal-IW3IM5P6.js → agentRuntimeLocal-AY6YNUAL.js} +44 -36
  16. package/{agentSlice-SK47GTN7.js → agentSlice-FOZUXW7X.js} +11 -11
  17. package/{appDeleteCommands-ZXLXNRHF.js → appDeleteCommands-QTTL3QF3.js} +42 -38
  18. package/{appDeployCommands-PWB4YERK.js → appDeployCommands-43LJECGV.js} +42 -38
  19. package/{appDeployStatusCommands-2EZKZP7Y.js → appDeployStatusCommands-L5BKOLYW.js} +42 -38
  20. package/{appGetCommands-JNUKOWHO.js → appGetCommands-HOFZKOPC.js} +42 -38
  21. package/{appListCommands-6X3H67SS.js → appListCommands-I7C3SJCE.js} +42 -38
  22. package/{authCommand-F4EFRRX6.js → authCommand-2YPMMIJN.js} +117 -23
  23. package/{authCommands-RGOGCPP6.js → authCommands-FFDS4FVX.js} +7 -5
  24. package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-CALVIJTX.js} +6 -5
  25. package/{chatQueueReduxAdapter-ZJ555AT2.js → chatQueueReduxAdapter-NMEZRYC2.js} +30 -29
  26. package/{chromeCommands-FZYAU75D.js → chromeCommands-K27J4OVZ.js} +124 -28
  27. package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-IXRLN57H.js} +4 -3
  28. package/{chunk-6OZ36FXI.js → chunk-27ONFIEY.js} +22 -4
  29. package/{chunk-JEDZAO7L.js → chunk-2SYTUTLI.js} +257 -37
  30. package/{chunk-YQTQQX2H.js → chunk-2UV22D2F.js} +1 -1
  31. package/{chunk-7D6Z6AA4.js → chunk-3BFMH6GE.js} +6 -7
  32. package/{chunk-OIVSQH2O.js → chunk-3BXNTXYI.js} +299 -5
  33. package/{chunk-QIAVMDHY.js → chunk-3LX6YE3P.js} +4 -4
  34. package/{chunk-EYAQT56M.js → chunk-4DPP773Q.js} +2 -2
  35. package/chunk-4LCOCOR5.js +50 -0
  36. package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
  37. package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
  38. package/{chunk-E4MARS3Q.js → chunk-5GVBDNTO.js} +1 -1
  39. package/chunk-5J3PYNUP.js +255 -0
  40. package/chunk-5MMAK75Q.js +15 -0
  41. package/{chunk-JPGCXHNM.js → chunk-5OA5HMTL.js} +1 -1
  42. package/{chunk-42V6BK2E.js → chunk-62IL3KQV.js} +4 -34
  43. package/{chunk-6YTOJY35.js → chunk-6D2JFXLY.js} +35 -0
  44. package/{chunk-3BMYXEUW.js → chunk-6O4IK4V2.js} +1 -1
  45. package/{chunk-IIVGDG4I.js → chunk-6PHKBY2Q.js} +10 -4
  46. package/{chunk-ASQYTZTR.js → chunk-6ZWMH6TJ.js} +69 -36
  47. package/{chunk-ABQYVJBJ.js → chunk-7CHC4W22.js} +1 -1
  48. package/{chunk-GQBOR3G6.js → chunk-7KVZ5LDQ.js} +2 -2
  49. package/{chunk-SDTTBMBU.js → chunk-7WCQEMPB.js} +888 -1079
  50. package/{chunk-BLJWCTRL.js → chunk-AOPCEXTB.js} +1 -1
  51. package/{chunk-WGR3J4Q6.js → chunk-APMUYAPK.js} +17 -4
  52. package/{chunk-Q554LLSI.js → chunk-AUDNYVRC.js} +1 -1
  53. package/{chunk-RG6JBBX5.js → chunk-AWF3WO5R.js} +166 -13
  54. package/{chunk-GPCZ7UXG.js → chunk-AZRHIN5B.js} +1 -1
  55. package/chunk-BMQ2MJUK.js +153 -0
  56. package/{chunk-B4ZH7KVO.js → chunk-C3VLSD4K.js} +236 -36
  57. package/{chunk-4EZHSKTB.js → chunk-C53ZG23R.js} +2 -2
  58. package/chunk-CHOZJMJS.js +78 -0
  59. package/{chunk-HJUYAD4A.js → chunk-CPUFH46E.js} +8 -8
  60. package/{chunk-LS2ZANRJ.js → chunk-CTUQJVQM.js} +1 -1
  61. package/{chunk-BP4XNZRM.js → chunk-CU3QB4HW.js} +3 -3
  62. package/{chunk-ACTMNVHM.js → chunk-CYSYR67N.js} +1 -1
  63. package/{chunk-KQ4ONNQD.js → chunk-DAWDCRIG.js} +82 -8
  64. package/{chunk-VLTIYV3X.js → chunk-DCLMZ5TX.js} +4 -4
  65. package/{chunk-UKZDAFYT.js → chunk-DSSTTEKI.js} +6 -10
  66. package/{chunk-L7I247DF.js → chunk-EKS2APRJ.js} +21 -5
  67. package/{chunk-HVURBGF3.js → chunk-ESRMFY7G.js} +2 -2
  68. package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
  69. package/chunk-GMZLP5DV.js +82 -0
  70. package/{chunk-FDTR4QJ6.js → chunk-H6A6X4EK.js} +32 -1
  71. package/{chunk-DVINR3PL.js → chunk-HDLLCBRF.js} +1 -1
  72. package/{chunk-OIMN34NA.js → chunk-HKTIX4ZE.js} +23 -76
  73. package/{chunk-ONXOABJR.js → chunk-HNGRBWYF.js} +3 -0
  74. package/{chunk-H62HCIUP.js → chunk-HYZIYH2H.js} +11 -10
  75. package/{chunk-3VNWWVKB.js → chunk-I3QNET24.js} +30 -17
  76. package/{chunk-WV42OMV7.js → chunk-IAESIMK7.js} +4 -4
  77. package/chunk-JBOO3DKI.js +7808 -0
  78. package/{chunk-O35EJJVP.js → chunk-JJ7P5CIY.js} +56 -34
  79. package/{chunk-OZPMVBJI.js → chunk-JZ5II5UV.js} +15 -20
  80. package/{chunk-JRQFUXY7.js → chunk-KCDUTE5V.js} +96 -19
  81. package/{chunk-QLNJRTKI.js → chunk-KHVJXNRY.js} +100 -100
  82. package/{chunk-ADTY7BWR.js → chunk-L76GP4ER.js} +24 -5
  83. package/{chunk-7S4YWN7P.js → chunk-MX574M24.js} +1 -1
  84. package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
  85. package/{chunk-53HEEOTT.js → chunk-O26PCYLS.js} +80 -13
  86. package/{chunk-3DII57IT.js → chunk-O2OWEFII.js} +1 -1
  87. package/{chunk-TDRTS7QW.js → chunk-O6JPWEEK.js} +77 -17
  88. package/chunk-OCZKATRC.js +129 -0
  89. package/{chunk-6D6VBVEW.js → chunk-OTEMQQZI.js} +80 -14
  90. package/chunk-P6GMCCAT.js +870 -0
  91. package/{chunk-3SK4LEIH.js → chunk-PLRLUZWS.js} +853 -209
  92. package/{chunk-DHDMC6FO.js → chunk-QKUMVP3O.js} +11 -6
  93. package/{chunk-X4QAVDFE.js → chunk-RMAWULCS.js} +498 -480
  94. package/{chunk-V4MJDUSR.js → chunk-RSEEDUMS.js} +2 -2
  95. package/{chunk-UZGQNTVW.js → chunk-S5XGT6GB.js} +5 -3
  96. package/{chunk-76WEAXJB.js → chunk-SACTCJAC.js} +18 -15
  97. package/{chunk-AFUORTY4.js → chunk-SONWNI3L.js} +21 -21
  98. package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
  99. package/{chunk-2YMRWISD.js → chunk-TU5NE4U3.js} +9 -84
  100. package/chunk-TY3TIUJK.js +89 -0
  101. package/chunk-UEGYKNHO.js +13349 -0
  102. package/chunk-UNYJU5L6.js +780 -0
  103. package/{chunk-J4MOO56S.js → chunk-UQNS32WZ.js} +10 -2
  104. package/chunk-VIWDGTDA.js +8 -0
  105. package/chunk-VJVNU77E.js +83 -0
  106. package/{chunk-EHKBVWKL.js → chunk-VYN7O3OY.js} +1 -1
  107. package/{chunk-NEDZDG3M.js → chunk-WILHZY7K.js} +45 -45
  108. package/{chunk-UKWGR5SS.js → chunk-WIWM4FE3.js} +187 -398
  109. package/{chunk-R7N5TMTV.js → chunk-X7YLNILS.js} +13 -13
  110. package/{chunk-O6OSWFZQ.js → chunk-XUWRURDF.js} +6 -0
  111. package/{chunk-Q67DOFOO.js → chunk-Y3PMXGLH.js} +2 -0
  112. package/{chunk-SNPMM7H3.js → chunk-Y6AZRODX.js} +13 -13
  113. package/{chunk-RSJECD7I.js → chunk-YJKDTJ2X.js} +7 -7
  114. package/{chunk-SH43IESU.js → chunk-YUNJN43V.js} +44 -9
  115. package/{chunk-TOP2VXOR.js → chunk-Z4CSIXYP.js} +2 -2
  116. package/{chunk-2F7RJC6L.js → chunk-ZOVKKMF6.js} +1 -1
  117. package/chunk-ZRAU6T47.js +56 -0
  118. package/{chunk-Z77CRGTW.js → chunk-ZYWQNCBN.js} +1 -1
  119. package/commandRegistry-HUFXCF7Z.js +833 -0
  120. package/{contentThunks-YLWTUILV.js → contentThunks-TD5YOAQM.js} +32 -30
  121. package/{cooldownCommands-REAWYVTY.js → cooldownCommands-ZLEPIB4A.js} +2 -2
  122. package/{createAgentAutomationAction-HFLPOBWQ.js → createAgentAutomationAction-XUG62ANM.js} +32 -30
  123. package/{createDialogAction-4H52MURR.js → createDialogAction-L3CMZKNL.js} +36 -33
  124. package/{createPageAction-5YDRMJOS.js → createPageAction-WJ3MX6JS.js} +38 -36
  125. package/{chunk-NUVMWYJM.js → cursorProvider-YGGNMVWX.js} +2494 -9892
  126. package/{dbSlice-XVWBAGYN.js → dbSlice-DQ32LYTJ.js} +8 -8
  127. package/{deleteFile-YG6QMJLU.js → deleteFile-NX6QHCWZ.js} +3 -3
  128. package/{dialogCommands-KFK2FF5B.js → dialogCommands-VM3I4HBW.js} +45 -41
  129. package/{dialogSlice-TMSHUGEM.js → dialogSlice-DSHG3YUE.js} +36 -29
  130. package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
  131. package/{docCreateCommands-V777WOZ7.js → docCreateCommands-TYUJPCOP.js} +44 -40
  132. package/{docDeleteCommands-5KHT7Z5Q.js → docDeleteCommands-5XEG2LXO.js} +44 -40
  133. package/{docReadCommands-BLROGWP3.js → docReadCommands-M6RO6QHV.js} +43 -39
  134. package/{docStore-OBC5QOW7.js → docStore-RYOGMPEF.js} +11 -10
  135. package/{docUpdateCommands-QXOZHQ5H.js → docUpdateCommands-DKOFTZRX.js} +44 -40
  136. package/{fetchMessages-EIU7UFFK.js → fetchMessages-67MEFPZR.js} +2 -2
  137. package/{getPricing-LUSEABA6.js → getPricing-NMMFT3YI.js} +3 -3
  138. package/{handleSendMessageAction-4LGNXH6T.js → handleSendMessageAction-XH742B27.js} +91 -83
  139. package/index.js +87 -884
  140. package/{localDialogRead-BTFJ4V2I.js → localDialogRead-EBRS242U.js} +2 -2
  141. package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-5W6IJRAD.js} +6 -6
  142. package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-3LRMNLCM.js} +1 -1
  143. package/{machineCommands-SNLCRHQK.js → machineCommands-EY3SKJCP.js} +85 -77
  144. package/{machineWsRunDispatch-ZGZVDQSO.js → machineWsRunDispatch-OJ77YNRD.js} +82 -74
  145. package/{memberThunks-QGFLFVCI.js → memberThunks-5ZXPR63F.js} +9 -9
  146. package/{models-T3SG6MJ5.js → models-ZPU5EDF4.js} +2 -2
  147. package/oauthTokenStore-ITEB663N.js +23 -0
  148. package/package.json +1 -1
  149. package/pdf-U6KSUEZZ.js +26435 -0
  150. package/processSpawn-SOAV3FEV.js +11 -0
  151. package/profileConfig-ZGOFORWV.js +43 -0
  152. package/{providerPresetApply-FG6NZ57W.js → providerPresetApply-76AVU3HD.js} +7 -7
  153. package/{providerRegistry-757OWH3O.js → providerRegistry-Z62NC45X.js} +11 -7
  154. package/{read-COE3ZYR6.js → read-EPTJRAEF.js} +5 -5
  155. package/{readDocTool-5USN4A6V.js → readDocTool-W4NDXNEX.js} +5 -3
  156. package/{readlineWorkspace-OUL7ZN7D.js → readlineWorkspace-PMTHAVMB.js} +2447 -2022
  157. package/{removeDialogAgentAction-IX3MN2ZO.js → removeDialogAgentAction-BVAWQKXE.js} +17 -19
  158. package/{runAgentClientLoop-GD3APV7V.js → runAgentClientLoop-7WXN6I7L.js} +62 -58
  159. package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-3USD722U.js} +3 -3
  160. package/runtimeModeArgs-2Y7BALTO.js +31 -0
  161. package/{setDialogExtraReferencesAction-X4HCPNZL.js → setDialogExtraReferencesAction-LYY45IAD.js} +12 -11
  162. package/{setPrimaryDialogAgentAction-4GMIQLOD.js → setPrimaryDialogAgentAction-73IL7DLU.js} +18 -20
  163. package/{settingSlice-ZQZVUPKK.js → settingSlice-Q6EKL7EQ.js} +9 -9
  164. package/{skillDiscovery-CYUCJMAG.js → skillDiscovery-ZBU76COE.js} +3 -3
  165. package/{spaceCommands-TIDVUPDV.js → spaceCommands-QFP4ZXKG.js} +44 -40
  166. package/{streamAgentChatTurn-M73KWCCU.js → streamAgentChatTurn-B4PXPJJS.js} +184 -91
  167. package/{switchDialogAgentAction-N52LRPA3.js → switchDialogAgentAction-UUXDSQ6X.js} +15 -17
  168. package/{tableCommands-O6NWHFKV.js → tableCommands-G7RV3RU3.js} +4 -4
  169. package/{toolApiClient-QVJ6HDNN.js → toolApiClient-INIQCPGY.js} +3 -3
  170. package/{tools-DXXDQ2CP.js → tools-QFS2L7BU.js} +55 -51
  171. package/{tuiSummaryLlmCaller-VJY3YD2Q.js → tuiSummaryLlmCaller-74NRRLVW.js} +18 -16
  172. package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
  173. package/{updateDialogTitleAction-XI73NQMU.js → updateDialogTitleAction-HTDYCNNZ.js} +81 -43
  174. package/agentListCommands-O4AEMQVV.js +0 -406
  175. package/agentRecordCommands-6QK7AMXQ.js +0 -128
  176. package/chunk-M76ECQRD.js +0 -13658
  177. package/chunk-Q5FJJ6XI.js +0 -103
  178. package/chunk-S7Z2HMCN.js +0 -25
  179. package/chunk-WRFW73PB.js +0 -18881
  180. package/{chunk-VMFTFOWF.js → chunk-3AH7LNUB.js} +7 -7
  181. package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
  182. package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
@@ -4,11 +4,11 @@ import {
4
4
  import {
5
5
  patch,
6
6
  read
7
- } from "./chunk-H62HCIUP.js";
7
+ } from "./chunk-HYZIYH2H.js";
8
8
  import {
9
9
  DEVICE_LOCAL_OWNER_ID,
10
10
  isDeviceLocalSpaceBody
11
- } from "./chunk-UKWGR5SS.js";
11
+ } from "./chunk-WIWM4FE3.js";
12
12
  import {
13
13
  selectIdentityUserId
14
14
  } from "./chunk-SEJ5OS6F.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  trimTrailingSlash
3
- } from "./chunk-6OZ36FXI.js";
3
+ } from "./chunk-27ONFIEY.js";
4
4
  import {
5
5
  toErrorMessage
6
6
  } from "./chunk-HNMXYYJR.js";
@@ -41,7 +41,7 @@ var ANTIGRAVITY_CLOUD_CODE_BASE_URL = "https://daily-cloudcode-pa.googleapis.com
41
41
  var ANTIGRAVITY_CLOUD_CODE_HOST = "cloudcode-pa.googleapis.com";
42
42
  var ANTIGRAVITY_LEGACY_GENERIC_BASE_RE = /^https?:\/\/cloudcode-pa\.googleapis\.com$/i;
43
43
  function getAntigravityUserAgent() {
44
- const version = process.env.NOLO_ANTIGRAVITY_VERSION || "2.1.4";
44
+ const version = process.env.NOLO_ANTIGRAVITY_VERSION || "2.18.1";
45
45
  const os = process.platform === "win32" ? "windows" : process.platform;
46
46
  const arch = process.arch === "x64" ? "amd64" : process.arch === "ia32" ? "386" : process.arch;
47
47
  return `antigravity/hub/${version} ${os}/${arch}`;
@@ -129,7 +129,9 @@ async function refreshAntigravityToken(credential, deps = {}) {
129
129
  payload = {};
130
130
  }
131
131
  if (!response.ok) {
132
- const detail = typeof payload.error_description === "string" && payload.error_description.trim() ? payload.error_description.trim() : typeof payload.error === "string" && payload.error.trim() ? payload.error.trim() : rawBodyText.trim() || `HTTP ${response.status}`;
132
+ const errorCode = typeof payload.error === "string" && payload.error.trim() ? payload.error.trim() : void 0;
133
+ const errorDescription = typeof payload.error_description === "string" && payload.error_description.trim() ? payload.error_description.trim() : void 0;
134
+ const detail = (errorCode && errorDescription && errorDescription !== errorCode ? `${errorCode}: ${errorDescription}` : errorCode ?? errorDescription ?? rawBodyText.trim()) || `HTTP ${response.status}`;
133
135
  throw new Error(`Antigravity token refresh failed: ${detail}`);
134
136
  }
135
137
  if (typeof payload.access_token !== "string" || !payload.access_token.trim()) {
@@ -1,17 +1,13 @@
1
1
  import {
2
2
  buildLocalAgentLookupKeys,
3
3
  shouldReadAgentKeyRemotely
4
- } from "./chunk-Z77CRGTW.js";
4
+ } from "./chunk-ZYWQNCBN.js";
5
5
  import {
6
6
  resolveCliAgentKeyInput
7
7
  } from "./chunk-SV5IJK6K.js";
8
8
  import {
9
9
  toErrorMessage
10
10
  } from "./chunk-HNMXYYJR.js";
11
- import {
12
- readPipeText,
13
- spawnProcess
14
- } from "./chunk-X7HHHIOZ.js";
15
11
  import {
16
12
  parseUserIdFromAuthToken,
17
13
  readOption,
@@ -19,9 +15,13 @@ import {
19
15
  resolveServerCandidates,
20
16
  resolveServerUrl
21
17
  } from "./chunk-A7GB5UGH.js";
18
+ import {
19
+ readPipeText,
20
+ spawnProcess
21
+ } from "./chunk-Y6ROFCZO.js";
22
22
  import {
23
23
  createAgentKey
24
- } from "./chunk-VMFTFOWF.js";
24
+ } from "./chunk-3AH7LNUB.js";
25
25
 
26
26
  // packages/cli/agentRecordHelpers.ts
27
27
  import { readFileSync } from "node:fs";
@@ -277,12 +277,17 @@ async function resolveAgentRecordFromHybridStore(args) {
277
277
  });
278
278
  if (fresh) {
279
279
  try {
280
- await args.db.put(key, { ...fresh, dbKey: key, cachedAt: Date.now() });
280
+ await args.db.put(key, {
281
+ ...fresh,
282
+ dbKey: key,
283
+ serverOrigin: record.serverOrigin,
284
+ cachedAt: Date.now()
285
+ });
281
286
  } catch {
282
287
  }
283
288
  return {
284
289
  agentKey: key,
285
- record: fresh,
290
+ record: { ...fresh, serverOrigin: record.serverOrigin },
286
291
  source: record?.serverOrigin ? "remote-cache" : "local-cache",
287
292
  cacheHit: false
288
293
  };
@@ -506,7 +511,7 @@ function parseAgentUpdateArgs(args) {
506
511
  updates[entry.slice(0, index)] = parseJsonishValue(entry.slice(index + 1));
507
512
  }
508
513
  if (Object.keys(updates).length === 0) {
509
- if (!promptDoc && !copyProviderFrom) {
514
+ if (!promptDoc && !copyProviderFrom && !presetId) {
510
515
  throw new Error("No updates provided. Use --model / --cli-provider / --api-source / --field key=value.");
511
516
  }
512
517
  }
@@ -518,21 +523,19 @@ async function buildCreatedAgentRecord(args) {
518
523
  const resolvedAgentInput = resolveCliAgentKeyInput(args.parsed.agentInput);
519
524
  const agentKey = resolvedAgentInput.startsWith("agent-") ? resolvedAgentInput : createAgentKey.private(userId || "local", resolvedAgentInput);
520
525
  if (args.parsed.presetId) {
521
- const { resolveProviderPresetFields } = await import("./providerPresetApply-FG6NZ57W.js");
526
+ const { resolveProviderPresetFields } = await import("./providerPresetApply-76AVU3HD.js");
522
527
  const fields = resolveProviderPresetFields(args.parsed.presetId);
523
528
  if (fields.kind === "manual") {
524
529
  throw new Error(
525
530
  `unknown --preset "${args.parsed.presetId}". Run \`nolo agent providers\` to list preset ids.`
526
531
  );
527
532
  }
528
- if (fields.kind === "oauth" || fields.requiresDesktopOAuth) {
529
- throw new Error(
530
- `--preset "${args.parsed.presetId}" is an OAuth subscription; create it in Nolo Desktop (OAuth login required).`
531
- );
532
- }
533
533
  const u = args.parsed.updates;
534
534
  u.apiSource = "custom";
535
535
  u.provider = u.provider ?? fields.provider;
536
+ if (fields.apiKeyRef && !u.apiKeyRef) {
537
+ u.apiKeyRef = fields.apiKeyRef;
538
+ }
536
539
  if (fields.customProviderUrl && !u.customProviderUrl) {
537
540
  u.customProviderUrl = fields.customProviderUrl;
538
541
  }
@@ -14,12 +14,12 @@ import {
14
14
  toTimestampMs,
15
15
  upsert,
16
16
  write
17
- } from "./chunk-H62HCIUP.js";
17
+ } from "./chunk-HYZIYH2H.js";
18
18
  import {
19
19
  createUserKey,
20
20
  createUserPreferenceKey,
21
21
  ulid
22
- } from "./chunk-VMFTFOWF.js";
22
+ } from "./chunk-3AH7LNUB.js";
23
23
  import {
24
24
  asTrimmedLowercaseString
25
25
  } from "./chunk-QSJ3HFEF.js";
@@ -29,7 +29,7 @@ import {
29
29
  createAction,
30
30
  createAsyncThunk,
31
31
  createSelector
32
- } from "./chunk-UKWGR5SS.js";
32
+ } from "./chunk-WIWM4FE3.js";
33
33
  import {
34
34
  getAllServers,
35
35
  getIsDesktopApp,
@@ -251,13 +251,13 @@ var neutral = {
251
251
  };
252
252
  var ocean = {
253
253
  light: {
254
- primary: "#0969DA",
255
- primaryLight: "#218BFF",
256
- primaryDark: "#0550AE",
257
- primaryGradient: "linear-gradient(135deg, #0969DA, #218BFF)",
258
- primaryGhost: "rgba(9,105,218,0.08)",
259
- primaryHover: "rgba(9,105,218,0.10)",
260
- borderAccent: "#54AEFF",
254
+ primary: "#006EDC",
255
+ primaryLight: "#0874DC",
256
+ primaryDark: "#0052AD",
257
+ primaryGradient: "linear-gradient(135deg, #006EDC, #0874DC)",
258
+ primaryGhost: "rgba(0,110,220,0.08)",
259
+ primaryHover: "rgba(0,110,220,0.10)",
260
+ borderAccent: "#73BEFF",
261
261
  ...semantic.light,
262
262
  ...mkLight("#FFFFFF", "#F6F8FA", "#EBF0F4", "#1C2128", "#57606A", "#6E7781", "#D0D7DE", "#F6F8FA")
263
263
  },
@@ -724,23 +724,23 @@ var mono = {
724
724
  }
725
725
  };
726
726
  var catppuccin = {
727
- // 保留 catppuccin 的柔和圆角 + 弹性缓动;色值换成 Ghostty "GitHub Light/Dark Default"
728
- // 官方 palette,获得通透高对比的观感。合成后名字/位次不变,DEFAULT_THEME_NAME 不动。
727
+ // 保留 catppuccin 的柔和圆角 + 弹性缓动;light surface 沿用 GitHub Light palette,
728
+ // light accent 为品牌海蓝(非 GitHub 蓝),dark 为 Catppuccin Mocha。合成后名字/位次不变,DEFAULT_THEME_NAME 不动。
729
729
  // Reviewer 改进:dark textTertiary/quaternary 提亮达 WCAG AA;light warning 改琥珀色;
730
730
  // light backgroundElevated 拉开与画布的层级,大圆角浮层不再粘连。
731
731
  meta: { radiusBoost: 2, motionEase: "cubic-bezier(0.22, 1, 0.36, 1)" },
732
732
  light: {
733
- // Ghostty GitHub Light Default — 纯白 canvas + blue-500 accent
734
- primary: "#0969DA",
735
- primaryLight: "#218BFF",
736
- primaryDark: "#0550AE",
737
- primaryGradient: "linear-gradient(135deg, #0969DA, #218BFF)",
738
- primaryGhost: "rgba(9,105,218,0.08)",
739
- primaryHover: "rgba(9,105,218,0.10)",
740
- borderAccent: "#54AEFF",
733
+ // 纯白 canvas + 海蓝 accent(#006EDC:白字 4.93:1,#F6F8FA 上 4.63:1;品牌见 docs/brand-outdoor-aesthetic.md)
734
+ primary: "#006EDC",
735
+ primaryLight: "#0874DC",
736
+ primaryDark: "#0052AD",
737
+ primaryGradient: "linear-gradient(135deg, #006EDC, #0874DC)",
738
+ primaryGhost: "rgba(0,110,220,0.08)",
739
+ primaryHover: "rgba(0,110,220,0.10)",
740
+ borderAccent: "#73BEFF",
741
741
  success: "#116329",
742
742
  warning: "#9A6700",
743
- info: "#0969DA",
743
+ info: "#006EDC",
744
744
  error: "#CF222E",
745
745
  background: "#FFFFFF",
746
746
  backgroundSecondary: "#F6F8FA",
@@ -308,6 +308,8 @@ function saveProfileOAuthSync(provider, sync, path = getDefaultProfileConfigPath
308
308
  }
309
309
 
310
310
  export {
311
+ normalizeProfileServerUrl,
312
+ isProtectedHomeProfileWrite,
311
313
  getDefaultProfileConfigPath,
312
314
  loadProfileConfig,
313
315
  clearProfileAuthToken,
@@ -319,6 +321,8 @@ export {
319
321
  getCurrentProfile,
320
322
  saveProfileLocale,
321
323
  getAgentSelectionAuditPath,
324
+ redactArgvSecrets,
325
+ appendAgentSelectionAudit,
322
326
  readLastAgentSelectionAudit,
323
327
  saveProfileAgentSelection,
324
328
  getProfileOAuthSync,
@@ -1,3 +1,6 @@
1
+ import {
2
+ readSseFrames
3
+ } from "./chunk-GMZLP5DV.js";
1
4
  import {
2
5
  sanitizeForOutbound
3
6
  } from "./chunk-CQ3WA2NE.js";
@@ -35,16 +38,18 @@ import {
35
38
  resolvePlatformAuthToken,
36
39
  resolvePlatformServerUrl,
37
40
  resolveProviderTransportDecision
38
- } from "./chunk-6OZ36FXI.js";
41
+ } from "./chunk-27ONFIEY.js";
39
42
  import {
40
- clipCompactText,
41
43
  isMeaningfulChatCompletionOutput,
42
44
  isMeaningfulResponsesOutput
43
- } from "./chunk-ASQYTZTR.js";
45
+ } from "./chunk-6ZWMH6TJ.js";
46
+ import {
47
+ clipCompactText
48
+ } from "./chunk-5MMAK75Q.js";
44
49
  import {
45
50
  NOLO_CLIENT_VERSION_HEADER,
46
51
  isPlatformMimoProviderModel
47
- } from "./chunk-Q67DOFOO.js";
52
+ } from "./chunk-Y3PMXGLH.js";
48
53
  import {
49
54
  isRecord
50
55
  } from "./chunk-KUG52IAP.js";
@@ -347,83 +352,6 @@ function flushChatCompletionStream(state) {
347
352
  }
348
353
  }
349
354
 
350
- // packages/agent-runtime/sseFrames.ts
351
- async function* readSseFrames(response) {
352
- const reader = response.body?.getReader();
353
- if (!reader) {
354
- throw new Error("SSE response did not include a readable body.");
355
- }
356
- const decoder = new TextDecoder();
357
- let buffer = "";
358
- while (true) {
359
- const { done, value } = await reader.read();
360
- if (done) break;
361
- buffer += decoder.decode(value, { stream: true });
362
- let boundary = findSseFrameBoundary(buffer);
363
- while (boundary) {
364
- yield buffer.slice(0, boundary.index);
365
- buffer = buffer.slice(boundary.index + boundary.separatorLength);
366
- boundary = findSseFrameBoundary(buffer);
367
- }
368
- }
369
- const remaining = decoder.decode();
370
- if (remaining) {
371
- buffer += remaining;
372
- let boundary = findSseFrameBoundary(buffer);
373
- while (boundary) {
374
- yield buffer.slice(0, boundary.index);
375
- buffer = buffer.slice(boundary.index + boundary.separatorLength);
376
- boundary = findSseFrameBoundary(buffer);
377
- }
378
- }
379
- if (buffer.trim()) yield buffer;
380
- }
381
- function findSseFrameBoundary(buffer) {
382
- const lfLf = buffer.indexOf("\n\n");
383
- const crLfCrLf = buffer.indexOf("\r\n\r\n");
384
- if (lfLf === -1 && crLfCrLf === -1) return null;
385
- const useLf = lfLf !== -1 && (crLfCrLf === -1 || lfLf < crLfCrLf);
386
- return useLf ? { index: lfLf, separatorLength: 2 } : { index: crLfCrLf, separatorLength: 4 };
387
- }
388
- async function* streamSseDataValues(response, parse) {
389
- const reader = response.body?.getReader();
390
- if (!reader) return;
391
- const decoder = new TextDecoder();
392
- let buffer = "";
393
- while (true) {
394
- const { done, value } = await reader.read();
395
- if (done) break;
396
- buffer += decoder.decode(value, { stream: true });
397
- const lines = buffer.split("\n");
398
- buffer = lines.pop() ?? "";
399
- for (const line of lines) {
400
- const parsed = parse(line);
401
- if (parsed) yield parsed;
402
- }
403
- }
404
- const remaining = decoder.decode();
405
- if (remaining) {
406
- buffer += remaining;
407
- const lines = buffer.split("\n");
408
- buffer = lines.pop() ?? "";
409
- for (const line of lines) {
410
- const parsed = parse(line);
411
- if (parsed) yield parsed;
412
- }
413
- }
414
- if (buffer.trim()) {
415
- const parsed = parse(buffer);
416
- if (parsed) yield parsed;
417
- }
418
- }
419
- async function readSseDataValues(response, parse) {
420
- const values = [];
421
- for await (const value of streamSseDataValues(response, parse)) {
422
- values.push(value);
423
- }
424
- return values;
425
- }
426
-
427
355
  // packages/agent-runtime/platformChatProvider.ts
428
356
  var PlatformStreamInterruptedError = class extends Error {
429
357
  code = "PLATFORM_STREAM_INTERRUPTED";
@@ -926,9 +854,6 @@ export {
926
854
  applyChatCompletionDelta,
927
855
  flushChatCompletionStream,
928
856
  providerHttpFailure,
929
- readSseFrames,
930
- streamSseDataValues,
931
- readSseDataValues,
932
857
  createResponsesToolAccumulator,
933
858
  applyResponsesToolEvent,
934
859
  finalizeResponsesToolCalls,
@@ -0,0 +1,89 @@
1
+ import {
2
+ isLevelNotFoundError
3
+ } from "./chunk-OW765XBU.js";
4
+
5
+ // packages/ai/memory/vnext/store.ts
6
+ var enc = (value) => encodeURIComponent(value).replace(/-/g, "%2D");
7
+ var rangeOf = (prefix) => ({ gte: prefix, lte: `${prefix}\uFFFF` });
8
+ var entityKey = (ownerId, id) => `mem2-e-${enc(ownerId)}-${enc(id)}`;
9
+ var entityOwnerPrefix = (ownerId) => `mem2-e-${enc(ownerId)}-`;
10
+ var stateKey = (ownerId, id) => `mem2-s-${enc(ownerId)}-${enc(id)}`;
11
+ var stateEntityIndexKey = (ownerId, entityId, stateId) => `mem2-si-${enc(ownerId)}-${enc(entityId)}-${enc(stateId)}`;
12
+ var stateEntityIndexPrefix = (ownerId, entityId) => `mem2-si-${enc(ownerId)}-${enc(entityId)}-`;
13
+ var evidenceKey = (ownerId, id) => `mem2-v-${enc(ownerId)}-${enc(id)}`;
14
+ var relationKey = (ownerId, id) => `mem2-r-${enc(ownerId)}-${enc(id)}`;
15
+ var relationFromIndexKey = (ownerId, from, relationId) => `mem2-rf-${enc(ownerId)}-${enc(from)}-${enc(relationId)}`;
16
+ var relationToIndexKey = (ownerId, to, relationId) => `mem2-rt-${enc(ownerId)}-${enc(to)}-${enc(relationId)}`;
17
+ var readIndexed = async (db, prefix) => {
18
+ const refs = [];
19
+ for await (const [, value] of db.iterator({ ...rangeOf(prefix), reverse: false })) {
20
+ if (typeof value?.key === "string") refs.push(value.key);
21
+ }
22
+ const rows = await Promise.all(refs.map((key) => db.get(key).catch(() => null)));
23
+ return rows.filter((row) => !!row);
24
+ };
25
+ var getMemoryEntityVNext = async (db, ownerId, entityId) => db.get(entityKey(ownerId, entityId)).catch(() => null);
26
+ var listMemoryEntitiesVNext = async (db, ownerId) => {
27
+ const rows = [];
28
+ for await (const [, value] of db.iterator({
29
+ ...rangeOf(entityOwnerPrefix(ownerId)),
30
+ reverse: false
31
+ })) {
32
+ if (value) rows.push(value);
33
+ }
34
+ return rows;
35
+ };
36
+ var loadMemoryVNextCatalog = async (db, ownerId) => {
37
+ const entities = await listMemoryEntitiesVNext(db, ownerId);
38
+ const states = (await Promise.all(entities.map((entity) => listMemoryStatesForEntityVNext(db, ownerId, entity.id)))).flat();
39
+ return { entities, states };
40
+ };
41
+ var getMemoryStateVNext = async (db, ownerId, stateId) => db.get(stateKey(ownerId, stateId)).catch(() => null);
42
+ var listMemoryStatesForEntityVNext = (db, ownerId, entityId) => readIndexed(db, stateEntityIndexPrefix(ownerId, entityId));
43
+ var putMemoryEvidenceVNext = async (db, evidence) => {
44
+ await db.put(evidenceKey(evidence.ownerId, evidence.id), evidence);
45
+ };
46
+ var getMemoryEvidenceVNext = async (db, ownerId, evidenceId) => db.get(evidenceKey(ownerId, evidenceId)).catch(() => null);
47
+ var getMemoryEvidenceVNextStrict = async (db, ownerId, evidenceId) => {
48
+ try {
49
+ return await db.get(evidenceKey(ownerId, evidenceId));
50
+ } catch (error) {
51
+ if (isLevelNotFoundError(error)) return null;
52
+ throw error;
53
+ }
54
+ };
55
+ var _appendEntityBatch = (batch, entity) => {
56
+ batch.put(entityKey(entity.ownerId, entity.id), entity);
57
+ };
58
+ var _appendEvidenceBatch = (batch, evidence) => {
59
+ batch.put(evidenceKey(evidence.ownerId, evidence.id), evidence);
60
+ };
61
+ var _appendStateBatch = (batch, state) => {
62
+ const key = stateKey(state.ownerId, state.id);
63
+ batch.put(key, state);
64
+ batch.put(stateEntityIndexKey(state.ownerId, state.entityId, state.id), { key });
65
+ };
66
+ var _appendRetiredStateBatch = (batch, state) => {
67
+ batch.put(stateKey(state.ownerId, state.id), state);
68
+ };
69
+ var _appendRelationBatch = (batch, relation) => {
70
+ const key = relationKey(relation.ownerId, relation.id);
71
+ batch.put(key, relation);
72
+ batch.put(relationFromIndexKey(relation.ownerId, relation.from, relation.id), { key });
73
+ batch.put(relationToIndexKey(relation.ownerId, relation.to, relation.id), { key });
74
+ };
75
+
76
+ export {
77
+ getMemoryEntityVNext,
78
+ loadMemoryVNextCatalog,
79
+ getMemoryStateVNext,
80
+ listMemoryStatesForEntityVNext,
81
+ putMemoryEvidenceVNext,
82
+ getMemoryEvidenceVNext,
83
+ getMemoryEvidenceVNextStrict,
84
+ _appendEntityBatch,
85
+ _appendEvidenceBatch,
86
+ _appendStateBatch,
87
+ _appendRetiredStateBatch,
88
+ _appendRelationBatch
89
+ };