nolo-cli 0.156.0-alpha.3 → 0.156.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 (164) hide show
  1. package/{_executeModel-5WS2PA62.js → _executeModel-3FMHTHSS.js} +55 -55
  2. package/{accountResolver-7RYB4D2P.js → accountResolver-55EDKEIK.js} +1 -1
  3. package/{action-ZJYUBXFC.js → action-GPPJC5TI.js} +5 -5
  4. package/{addContentAction-TVHB4526.js → addContentAction-XJQEJ4XW.js} +8 -8
  5. package/{addDialogAgentAction-FDPBU6K6.js → addDialogAgentAction-5WZX5CAY.js} +7 -7
  6. package/{agentDeleteCommand-MDC7OS3I.js → agentDeleteCommand-VRHLJZKX.js} +75 -76
  7. package/{agentEmailCommands-WN4EOPKQ.js → agentEmailCommands-YGBQXOL3.js} +78 -79
  8. package/{agentListCommands-G36AMSBR.js → agentListCommands-GOCGOQUB.js} +36 -36
  9. package/{agentMachineCommands-63GXO27A.js → agentMachineCommands-FBAWZYHI.js} +35 -32
  10. package/{agentProviderCommands-X2HQE6HY.js → agentProviderCommands-CXBHNONN.js} +5 -5
  11. package/{agentPullCommand-FA43RBRU.js → agentPullCommand-GXXEDOSA.js} +4 -4
  12. package/{agentRecordCommands-X4WJRHDW.js → agentRecordCommands-KAK2G56H.js} +72 -73
  13. package/{agentRunCommand-4YMIVVHF.js → agentRunCommand-62P3AGJA.js} +75 -75
  14. package/{agentRunControl-2C5GM3BW.js → agentRunControl-XBSNHHZE.js} +7 -7
  15. package/{agentRuntimeLocal-Q7ZOMZC7.js → agentRuntimeLocal-J6I63NZC.js} +21 -19
  16. package/{agentSlice-E3XS5FTQ.js → agentSlice-IZFU3WWH.js} +8 -8
  17. package/{appDeleteCommands-MMWT54BR.js → appDeleteCommands-KKLAK2UR.js} +31 -29
  18. package/{appDeployCommands-OIFXVDOF.js → appDeployCommands-PXWK4FAX.js} +31 -29
  19. package/{appDeployStatusCommands-OTXMSDFB.js → appDeployStatusCommands-3NGWDZTX.js} +31 -29
  20. package/{appGetCommands-JPY36ANL.js → appGetCommands-APWYPEO3.js} +31 -29
  21. package/{appListCommands-IHJGN36O.js → appListCommands-OP7IRALO.js} +31 -29
  22. package/{authCommand-J3XILHWW.js → authCommand-3Z52KJID.js} +22 -302
  23. package/{authCommands-77CHYBGF.js → authCommands-QOCKVPX3.js} +5 -5
  24. package/{builtinSkillRegistry-A6VSPJEJ.js → builtinSkillRegistry-LJV7FHNI.js} +4 -4
  25. package/{chromeCommands-OBBNJCLS.js → chromeCommands-IY4NVSXZ.js} +17 -10
  26. package/{chunk-SW4S4XYB.js → chunk-2AB2HA4M.js} +84 -34
  27. package/{chunk-H4KACZMG.js → chunk-2QQ7D3P5.js} +271 -138
  28. package/{chunk-C5VPAHIU.js → chunk-32ZKZET7.js} +1 -1
  29. package/{chunk-FPWT3RH2.js → chunk-36IWXF25.js} +22 -22
  30. package/{chunk-XPWGOTBQ.js → chunk-3L2WKC3W.js} +1 -8
  31. package/{chunk-3XZKV7QQ.js → chunk-3L5MSPWX.js} +1 -1
  32. package/{chunk-QLQ573SU.js → chunk-3M52COK5.js} +120 -0
  33. package/{chunk-Z6KQDSZW.js → chunk-43OFVLWJ.js} +6 -6
  34. package/{chunk-7A4LJCDR.js → chunk-4FDDVVCE.js} +5 -5
  35. package/{chunk-TJ2VPCBE.js → chunk-4JCAW7TO.js} +2 -2
  36. package/{chunk-6TF64IF2.js → chunk-4L4K6YR7.js} +16 -2
  37. package/{chunk-ZG73GDYU.js → chunk-5E5VB7PS.js} +332 -59
  38. package/{chunk-HKT6QXP3.js → chunk-5IKRTRRR.js} +5 -5
  39. package/{chunk-P5QACQDK.js → chunk-62TBKWTV.js} +1 -1
  40. package/{chunk-TRW43TSC.js → chunk-6EQD4AQL.js} +41 -1
  41. package/{chunk-RUNKPFM5.js → chunk-6QIBWOPT.js} +12 -8
  42. package/{chunk-YLMMECCH.js → chunk-6XIE5ZGI.js} +1 -1
  43. package/{chunk-7GC3EKUG.js → chunk-7PDNSQZC.js} +3 -3
  44. package/{chunk-DW7MGLMG.js → chunk-7YQQXP42.js} +35 -207
  45. package/{chunk-WZ6OU4NX.js → chunk-BAWAKW7X.js} +2 -2
  46. package/{chunk-UUPR3TD7.js → chunk-BL4HFN6L.js} +2 -4
  47. package/{chunk-2GGXHQIW.js → chunk-BLVSFYQ3.js} +4 -2
  48. package/{chunk-HP6O6LTV.js → chunk-CDLP56BS.js} +9 -9
  49. package/{chunk-4LRK5Q2Z.js → chunk-CI6YDDL2.js} +18 -17
  50. package/{chunk-5MM7NNO6.js → chunk-CNWKLQRL.js} +8 -3
  51. package/{chunk-UTIMX333.js → chunk-DJ2BOPJY.js} +1 -1
  52. package/{chunk-36OMEXXR.js → chunk-DLV3H464.js} +8 -8
  53. package/{chunk-X5SUT4CN.js → chunk-EDJND3FK.js} +6 -6
  54. package/{chunk-CE7PIHQD.js → chunk-ESMZW5PE.js} +3 -3
  55. package/{chunk-PSJWPSKS.js → chunk-EWO77ZGF.js} +9 -43
  56. package/{chunk-ZWG3C7VI.js → chunk-F3SOW2EU.js} +81 -1
  57. package/{chunk-FY4SDK2E.js → chunk-FDLDMJTM.js} +1 -1
  58. package/chunk-FTHF2P2I.js +2685 -0
  59. package/{chunk-7KYVUFDG.js → chunk-G3VYRPTV.js} +5 -267
  60. package/{chunk-NQ64VVAI.js → chunk-GXZZOTDM.js} +826 -689
  61. package/{chunk-6MJNEXUU.js → chunk-HGDKT2D6.js} +4 -0
  62. package/{chunk-6KVZAZJA.js → chunk-HRZW3SQN.js} +7 -7
  63. package/{chunk-B2EGWZJG.js → chunk-I7S63QUU.js} +1 -1
  64. package/{chunk-ROPSATAB.js → chunk-IF7V3CBU.js} +1 -1
  65. package/{chunk-T6CBQ6BN.js → chunk-INFHX73M.js} +1 -1
  66. package/{chunk-YBNHPX4S.js → chunk-IW64YHXL.js} +155 -31
  67. package/{chunk-VSOWPETY.js → chunk-JIAZK434.js} +10 -10
  68. package/{chunk-K43ZF2C3.js → chunk-JPPQ3GUO.js} +1 -1
  69. package/{chunk-TZTWMGE3.js → chunk-JWEXJ573.js} +3 -3
  70. package/{chunk-OH2M7WEU.js → chunk-K3N2DWLT.js} +3 -3
  71. package/{chunk-I2ZMGXXF.js → chunk-KFHREHUQ.js} +1 -1
  72. package/{chunk-3C2QLERX.js → chunk-KMDDG73K.js} +1 -1
  73. package/{chunk-EM3YOZJ4.js → chunk-L2JMH4I5.js} +3 -3
  74. package/{chunk-D4OWHT5Y.js → chunk-MAYW6V3E.js} +2 -2
  75. package/{chunk-IPAW7XLD.js → chunk-MFVOJ6KF.js} +2 -2
  76. package/{chunk-CBHGZRCE.js → chunk-MYOH447Z.js} +1 -1
  77. package/{chunk-6MPAEODB.js → chunk-NHEWV5FD.js} +17 -3
  78. package/{chunk-SUKSWFLP.js → chunk-PIG2IUVZ.js} +1 -1
  79. package/{chunk-WP6RXNE6.js → chunk-PNACBSRF.js} +134 -126
  80. package/{chunk-SEJ5OS6F.js → chunk-PXYBUFDB.js} +4 -0
  81. package/{chunk-SKPPKHD3.js → chunk-Q5LVXPGT.js} +2 -2
  82. package/{chunk-2MTE2PEH.js → chunk-QA2C5NKI.js} +5 -739
  83. package/{chunk-XFKZ3MCV.js → chunk-QFL42TMV.js} +251 -77
  84. package/{chunk-L6EQV5OC.js → chunk-QXZH5UDF.js} +3 -3
  85. package/{chunk-TNIX77YM.js → chunk-R5GO3YZP.js} +34 -1
  86. package/{chunk-4Z245KOA.js → chunk-SH3XD4E2.js} +8 -4
  87. package/{chunk-MM3662RS.js → chunk-SNAWGDXT.js} +263 -4
  88. package/{chunk-JGRPBIZZ.js → chunk-SQX235S2.js} +1 -1
  89. package/chunk-TT644UJD.js +188 -0
  90. package/{chunk-IYBIRCQV.js → chunk-U34KT53V.js} +29 -11
  91. package/{chunk-KOB75UNU.js → chunk-U5U4WAFS.js} +19 -3
  92. package/{chunk-ANJTRG52.js → chunk-ULQAD7ZY.js} +18 -43
  93. package/{chunk-FDT27L7S.js → chunk-UUPXTEZA.js} +19 -17
  94. package/{chunk-QDA4Y5O6.js → chunk-V67W64OY.js} +21 -17
  95. package/{chunk-I2RMFLLH.js → chunk-V7PCFWX3.js} +1 -1
  96. package/{chunk-HXHSTRGH.js → chunk-VYNMQ6HW.js} +0 -27
  97. package/{chunk-G47IPDOK.js → chunk-W7FGZRLK.js} +1 -1
  98. package/{chunk-7BSQK2UC.js → chunk-WRCZXJ4N.js} +2 -2
  99. package/{chunk-KX6LPG7W.js → chunk-WYJTNSVL.js} +9 -9
  100. package/chunk-Y5GCAMGP.js +9 -0
  101. package/{chunk-JZX2XLKC.js → chunk-YCRROBDY.js} +1 -1
  102. package/{chunk-SCJD2PNK.js → chunk-YPG7TUQD.js} +3 -3
  103. package/{chunk-YANF2RR4.js → chunk-ZPKUJROL.js} +1 -1
  104. package/{chunk-TYND6RDQ.js → chunk-ZZDVBZOP.js} +74 -3
  105. package/{commandRegistry-NE2JOCQT.js → commandRegistry-2DDDET7G.js} +88 -96
  106. package/{contentThunks-B3FRQGP7.js → contentThunks-5DNEHJ2Z.js} +21 -21
  107. package/{createAgentAutomationAction-T2YFJ6MY.js → createAgentAutomationAction-4SUS2EFX.js} +21 -21
  108. package/{createDialogAction-2NFGFBXW.js → createDialogAction-JSFXX6JE.js} +25 -25
  109. package/{createPageAction-LDAVZDN7.js → createPageAction-37HHOXZ2.js} +24 -25
  110. package/{dbSlice-5QGKMQLO.js → dbSlice-6PVPY44C.js} +7 -7
  111. package/{deleteFile-EW6QNRRT.js → deleteFile-YM6NDPAR.js} +5 -5
  112. package/{dialogCommands-H3K7PTF6.js → dialogCommands-ZJRMCP4S.js} +35 -32
  113. package/{dialogSlice-64S3J6CP.js → dialogSlice-2Z66AWEW.js} +20 -20
  114. package/{dist-NJC2W7I4.js → dist-Q2JSMAKA.js} +7 -361
  115. package/{docCreateCommands-KP64KMVL.js → docCreateCommands-KQHQNLRX.js} +32 -30
  116. package/{docDeleteCommands-C3F4SZSR.js → docDeleteCommands-O3DWFX2W.js} +33 -31
  117. package/{docReadCommands-7H6BDOUR.js → docReadCommands-2U2BUONC.js} +32 -30
  118. package/{docStore-NIP7OO4I.js → docStore-XMTUF3GX.js} +8 -8
  119. package/{docUpdateCommands-JDW4BRBH.js → docUpdateCommands-MF3C52XI.js} +32 -30
  120. package/{getPricing-TX35D7PI.js → getPricing-XQ3N3RBP.js} +2 -2
  121. package/{handleSendMessageAction-TOKA7ED7.js → handleSendMessageAction-4VFVXTF2.js} +43 -39
  122. package/index.js +8 -8
  123. package/{localRuntimeAdapter-OPPDLUG3.js → localRuntimeAdapter-KKIVRYVN.js} +70 -69
  124. package/{localRuntimeAuthority-JDAD7CB6.js → localRuntimeAuthority-BPN5OAQG.js} +2 -2
  125. package/{localRuntimeDb-CVC62PM5.js → localRuntimeDb-QIVAXMUL.js} +1 -1
  126. package/{machineCommands-OPLQR7XY.js → machineCommands-UHQVCOD3.js} +80 -79
  127. package/{machineWsRunDispatch-PTS42QDK.js → machineWsRunDispatch-TX4X7TOJ.js} +70 -71
  128. package/{memberThunks-KRV5YXOB.js → memberThunks-AZINUM4S.js} +10 -10
  129. package/package.json +6 -2
  130. package/{profileConfig-ZGOFORWV.js → profileConfig-KN3N2BLF.js} +7 -1
  131. package/{providerPresetApply-CRZFMQD5.js → providerPresetApply-PKUOHQJT.js} +5 -5
  132. package/{providerRegistry-7IS43D3X.js → providerRegistry-HNQLIFN2.js} +5 -5
  133. package/{read-5KAZHHDM.js → read-7JPIWRBQ.js} +5 -5
  134. package/{readDocTool-5QO34OSX.js → readDocTool-AAQTB2Y3.js} +1 -1
  135. package/{readlineWorkspace-3XC7SEMZ.js → readlineWorkspace-BFVB2ON5.js} +375 -200
  136. package/{removeDialogAgentAction-6X63HMI3.js → removeDialogAgentAction-RMVRILLK.js} +9 -9
  137. package/{runAgentClientLoop-5QIGEALK.js → runAgentClientLoop-HHLHNMBE.js} +59 -54
  138. package/{runtimeDoctorCommands-56NWKNON.js → runtimeDoctorCommands-MMCP4B4U.js} +12 -12
  139. package/{secretCommands-ZXZRLR3R.js → secretCommands-DNY56NSU.js} +11 -1
  140. package/{setDialogExtraReferencesAction-4MAYKKYW.js → setDialogExtraReferencesAction-L3V7JTMG.js} +8 -8
  141. package/{setPrimaryDialogAgentAction-EGBAMREH.js → setPrimaryDialogAgentAction-X52JQGTJ.js} +9 -9
  142. package/settingThunks-N6XFWPOU.js +923 -0
  143. package/{spaceCommands-JQN7D4FE.js → spaceCommands-NDPGHDMD.js} +29 -27
  144. package/{streamAgentChatTurn-456DWXNY.js → streamAgentChatTurn-KNPOLET7.js} +154 -95
  145. package/{switchDialogAgentAction-YBKTD6DO.js → switchDialogAgentAction-ZJ5CGU7J.js} +7 -7
  146. package/{tableCommands-U3QDY4L6.js → tableCommands-IVC5S7Y3.js} +11 -11
  147. package/{toolApiClient-7WSJJJBV.js → toolApiClient-HGNO53TC.js} +2 -2
  148. package/{tools-IWNXKK4Y.js → tools-ULA7XJQT.js} +43 -44
  149. package/{tuiSummaryLlmCaller-KLK6K3Q3.js → tuiSummaryLlmCaller-FESHBDTT.js} +7 -7
  150. package/{updateCommands-NQXAGFM7.js → updateCommands-FJHGWD3Q.js} +5 -3
  151. package/{updateDialogTitleAction-SX53FZWO.js → updateDialogTitleAction-VUIVBDAS.js} +21 -21
  152. package/{workloadLifecycle-36DXRZKU.js → workloadLifecycle-6O6PMISX.js} +2 -2
  153. package/chunk-IA7TRNNR.js +0 -11
  154. package/chunk-UKZX3NHN.js +0 -48
  155. package/chunk-VAZHH6FO.js +0 -7012
  156. package/chunk-W4S6OTSC.js +0 -35
  157. package/clipboardy-GCO3GT3I.js +0 -11793
  158. package/settingThunks-FTDRZNSJ.js +0 -1371
  159. package/{agentGrantCommands-HOJ3JBBQ.js → agentGrantCommands-5DPHYEKP.js} +3 -3
  160. package/{chromeOpsCommands-3Z34RKSE.js → chromeOpsCommands-GZVVK7HU.js} +4 -4
  161. package/{chunk-XETG4RIX.js → chunk-AETZ7AD6.js} +4 -4
  162. package/{chunk-2IXDJNZI.js → chunk-GAGGEA7D.js} +3 -3
  163. package/{memoryCommands-CUNBFRVS.js → memoryCommands-ZS3VQJAL.js} +3 -3
  164. package/{offlineMarxistsAgentCommand-2QTHJCHV.js → offlineMarxistsAgentCommand-3GLX4QQY.js} +3 -3
@@ -607,7 +607,11 @@ function createDockerToolChannel(runGrant, backend) {
607
607
 
608
608
  export {
609
609
  SANDBOX_WORKSPACE_ROOT,
610
+ SANDBOX_HELPER_PATH,
610
611
  buildSandboxHelperUploadArgv,
612
+ SANDBOX_OUTPUT_LIMITS,
613
+ buildWorkspaceHelperSource,
614
+ parseToolOutput,
611
615
  buildPrimaryExecutionTicket,
612
616
  dockerExecutionToolNames,
613
617
  createDockerToolChannel
@@ -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-NQ64VVAI.js";
9
+ } from "./chunk-GXZZOTDM.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-HKT6QXP3.js";
22
+ } from "./chunk-5IKRTRRR.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-X2HQE6HY.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,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generatePkcePair,
3
3
  startCallbackServer
4
- } from "./chunk-7KYVUFDG.js";
4
+ } from "./chunk-G3VYRPTV.js";
5
5
  import {
6
6
  asOptionalFiniteNumber
7
7
  } from "./chunk-WWC7I6TA.js";
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  patch,
9
9
  selectById
10
- } from "./chunk-HP6O6LTV.js";
10
+ } from "./chunk-CDLP56BS.js";
11
11
 
12
12
  // packages/chat/dialog/actions/setDialogExtraReferencesAction.ts
13
13
  var setDialogExtraReferencesAction = async (extraReferences, thunkApi) => {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_AGENT_BASE_POLICY,
3
3
  DEFAULT_USER_PREFERENCE_PROFILE
4
- } from "./chunk-HXHSTRGH.js";
4
+ } from "./chunk-VYNMQ6HW.js";
5
5
 
6
6
  // packages/ai/policy/runtimePolicy.ts
7
7
  var clampLevel = (value, fallback) => {
@@ -4,15 +4,15 @@ import {
4
4
  import {
5
5
  DEFAULT_NOLO_SERVER_URL
6
6
  } from "./chunk-OLZBQWZU.js";
7
- import {
8
- normalizeServerOrigin
9
- } from "./chunk-CF7PE763.js";
10
7
  import {
11
8
  loadProfileConfig
12
- } from "./chunk-TNIX77YM.js";
9
+ } from "./chunk-R5GO3YZP.js";
13
10
  import {
14
11
  resolveDefaultSpawn
15
12
  } from "./chunk-Y6ROFCZO.js";
13
+ import {
14
+ normalizeServerOrigin
15
+ } from "./chunk-CF7PE763.js";
16
16
 
17
17
  // packages/cli/updateCommands.ts
18
18
  import { existsSync as existsSync2, readFileSync as readFileSync2, accessSync, constants } from "node:fs";
@@ -912,6 +912,144 @@ async function runShellScript(script, {
912
912
  ]);
913
913
  return exitCode;
914
914
  }
915
+ function shellQuote(value) {
916
+ return "'" + value.replace(/'/g, "'\\''") + "'";
917
+ }
918
+ function buildStandaloneUpdateScript(args) {
919
+ const curl = "curl -fL --progress-bar --connect-timeout 20 --max-time 600 --speed-limit 1 --speed-time 60";
920
+ return `set -eu
921
+ EXTRACT_DIR=${shellQuote(args.extractDir)}
922
+ ENTRY=${shellQuote(args.symlinkPath)}
923
+ CURRENT_VERSION=${shellQuote(args.currentVersion)}
924
+ STAGING="$EXTRACT_DIR.new.$$"
925
+ BACKUP="$EXTRACT_DIR.old.$$"
926
+ LINK="$ENTRY.new.$$"
927
+ old_moved=0
928
+ new_moved=0
929
+ committed=0
930
+ cleanup() {
931
+ status=$?
932
+ trap - 0 HUP INT TERM
933
+ if [ "$committed" = 0 ]; then
934
+ if [ "$new_moved" = 1 ] && [ -d "$EXTRACT_DIR" ]; then
935
+ mv "$EXTRACT_DIR" "$STAGING" || exit 1
936
+ fi
937
+ if [ "$old_moved" = 1 ] && [ -d "$BACKUP" ]; then
938
+ mv "$BACKUP" "$EXTRACT_DIR" || exit 1
939
+ fi
940
+ fi
941
+ rm -rf "$STAGING" || true
942
+ rm -f "$LINK" || true
943
+ exit "$status"
944
+ }
945
+ # Refuse collisions before installing cleanup: never remove somebody else's path.
946
+ if [ -e "$STAGING" ] || [ -L "$STAGING" ] ||
947
+ [ -e "$BACKUP" ] || [ -L "$BACKUP" ] ||
948
+ [ -e "$LINK" ] || [ -L "$LINK" ]; then
949
+ echo "Error: update staging path already exists" >&2
950
+ exit 1
951
+ fi
952
+ mkdir -p "\${EXTRACT_DIR%/*}"
953
+ mkdir "$STAGING"
954
+ trap cleanup 0
955
+ trap 'exit 1' HUP INT TERM
956
+
957
+ echo ${shellQuote(`Downloading nolo from ${args.tarballUrl}...`)}
958
+ if ! ${curl} ${shellQuote(args.tarballUrl)} -o "$STAGING/bundle.tar.gz"; then
959
+ ${args.tarballUrl !== args.fallbackUrl ? `echo ${shellQuote(`Primary source unavailable, trying ${args.fallbackUrl}...`)}
960
+ if ! ${curl} ${shellQuote(args.fallbackUrl)} -o "$STAGING/bundle.tar.gz"; then
961
+ echo "Error: download failed" >&2
962
+ exit 1
963
+ fi` : `echo "Error: download failed" >&2
964
+ exit 1`}
965
+ fi
966
+ tar -xzf "$STAGING/bundle.tar.gz" -C "$STAGING"
967
+ rm -f "$STAGING/bundle.tar.gz"
968
+ chmod +x "$STAGING/nolo"
969
+ # A failing, empty or malformed version response must not touch the live install.
970
+ VERSION_TEXT=$("$STAGING/nolo" -v)
971
+ case "$VERSION_TEXT" in
972
+ "nolo-cli "*) VERSION=\${VERSION_TEXT#nolo-cli } ;;
973
+ *) VERSION=$VERSION_TEXT ;;
974
+ esac
975
+ CORE=\${VERSION%%[-+]*}
976
+ MAJOR=\${CORE%%.*}
977
+ REST=\${CORE#*.}
978
+ MINOR=\${REST%%.*}
979
+ PATCH=\${REST#*.}
980
+ case "$MAJOR:$MINOR:$PATCH" in
981
+ *[!0-9:]*|:*|*::*|*:) echo "Error: invalid bundle version" >&2; exit 1 ;;
982
+ esac
983
+ if [ "$CORE" != "$MAJOR.$MINOR.$PATCH" ]; then
984
+ echo "Error: invalid bundle version" >&2
985
+ exit 1
986
+ fi
987
+ case "$VERSION" in
988
+ *[!0-9A-Za-z.+-]*) echo "Error: invalid bundle version" >&2; exit 1 ;;
989
+ esac
990
+ case "$CURRENT_VERSION" in
991
+ "nolo-cli "*) CUR_VER=\${CURRENT_VERSION#nolo-cli } ;;
992
+ *) CUR_VER=$CURRENT_VERSION ;;
993
+ esac
994
+ CUR_CORE=\${CUR_VER%%[-+]*}
995
+ CUR_MAJOR=\${CUR_CORE%%.*}
996
+ CUR_REST=\${CUR_CORE#*.}
997
+ CUR_MINOR=\${CUR_REST%%.*}
998
+ CUR_PATCH=\${CUR_REST#*.}
999
+ if [ -n "$CUR_MAJOR" ] && [ -n "$CUR_MINOR" ] && [ -n "$CUR_PATCH" ]; then
1000
+ case "$CUR_MAJOR:$CUR_MINOR:$CUR_PATCH" in
1001
+ *[!0-9:]*|:*|*::*|*:) ;;
1002
+ *)
1003
+ if [ "$CUR_CORE" = "$CUR_MAJOR.$CUR_MINOR.$CUR_PATCH" ]; then
1004
+ is_downgrade=0
1005
+ if [ "$MAJOR" -lt "$CUR_MAJOR" ]; then
1006
+ is_downgrade=1
1007
+ elif [ "$MAJOR" -eq "$CUR_MAJOR" ]; then
1008
+ if [ "$MINOR" -lt "$CUR_MINOR" ]; then
1009
+ is_downgrade=1
1010
+ elif [ "$MINOR" -eq "$CUR_MINOR" ]; then
1011
+ if [ "$PATCH" -lt "$CUR_PATCH" ]; then
1012
+ is_downgrade=1
1013
+ fi
1014
+ fi
1015
+ fi
1016
+ if [ "$is_downgrade" = 1 ]; then
1017
+ echo "Error: refusing downgrade from $CURRENT_VERSION to $VERSION" >&2
1018
+ exit 11
1019
+ fi
1020
+ fi
1021
+ ;;
1022
+ esac
1023
+ fi
1024
+ if [ "$VERSION" = "$CURRENT_VERSION" ]; then
1025
+ echo "\u2713 Already up to date (nolo-cli $VERSION)."
1026
+ exit 10
1027
+ fi
1028
+ mkdir -p "\${ENTRY%/*}"
1029
+ # mv without -T is portable only when the destination is not a directory.
1030
+ if [ -d "$ENTRY" ] || [ -L "$EXTRACT_DIR" ]; then
1031
+ echo "Error: refusing directory entrypoint or symlink bundle directory" >&2
1032
+ exit 1
1033
+ fi
1034
+ ln -s "$EXTRACT_DIR/nolo" "$LINK"
1035
+ if [ -e "$EXTRACT_DIR" ]; then
1036
+ old_moved=1
1037
+ mv "$EXTRACT_DIR" "$BACKUP"
1038
+ fi
1039
+ new_moved=1
1040
+ mv "$STAGING" "$EXTRACT_DIR"
1041
+ mv -f "$LINK" "$ENTRY"
1042
+ committed=1
1043
+ # Retain only the newest recovery copy from this run; prune older backups.
1044
+ for old_copy in "$EXTRACT_DIR.old."*; do
1045
+ if [ -d "$old_copy" ] && [ ! -L "$old_copy" ] && [ "$old_copy" != "$BACKUP" ]; then
1046
+ rm -rf "$old_copy" || true
1047
+ fi
1048
+ done
1049
+ # Retain the previous bundle as a recovery copy; never unlink the live entry.
1050
+ echo "nolo updated to $ENTRY"
1051
+ `;
1052
+ }
915
1053
  async function runStandaloneBundleUpdate(options) {
916
1054
  const output = options.output ?? process.stdout;
917
1055
  const spawn2 = options.spawn ?? resolveDefaultSpawn();
@@ -937,33 +1075,13 @@ async function runStandaloneBundleUpdate(options) {
937
1075
  const extractDir = join2(homedir2(), ".nolo", extractSubdir);
938
1076
  const installDir = resolveStandaloneInstallDir();
939
1077
  const symlinkPath = join2(installDir, "nolo");
940
- const script = `set -euo pipefail
941
- TEMP_DIR=$(mktemp -d)
942
- trap 'rm -rf "$TEMP_DIR"' EXIT
943
-
944
- echo "Downloading nolo from ${tarballUrl}..."
945
- if ! curl -fL --progress-bar "${tarballUrl}" -o "$TEMP_DIR/${tarballName}"; then
946
- ${tarballUrl !== fallbackUrl ? `echo "Primary source unavailable, trying ${fallbackUrl}..."
947
- if ! curl -fL --progress-bar "${fallbackUrl}" -o "$TEMP_DIR/${tarballName}"; then
948
- echo "Error: download failed from ${fallbackUrl}" >&2
949
- exit 1
950
- fi` : `echo "Error: download failed from ${tarballUrl}" >&2
951
- exit 1`}
952
- fi
953
-
954
- mkdir -p "${extractDir}"
955
- tar -xzf "$TEMP_DIR/${tarballName}" -C "${extractDir}"
956
- chmod +x "${extractDir}/nolo"
957
-
958
- mkdir -p "${installDir}"
959
- if [ -e "${symlinkPath}" ] || [ -L "${symlinkPath}" ]; then
960
- rm -f "${symlinkPath}"
961
- fi
962
- ln -s "${extractDir}/nolo" "${symlinkPath}"
963
- trap - EXIT
964
-
965
- echo "nolo updated to ${installDir}/nolo"
966
- `;
1078
+ const script = buildStandaloneUpdateScript({
1079
+ tarballUrl,
1080
+ fallbackUrl,
1081
+ extractDir,
1082
+ symlinkPath,
1083
+ currentVersion: readPackageInfo().version
1084
+ });
967
1085
  output.write(`
968
1086
  Nolo Agent CLI Installer & Updater
969
1087
  `);
@@ -980,6 +1098,11 @@ Nolo Agent CLI Installer & Updater
980
1098
  env,
981
1099
  useCustomSink
982
1100
  });
1101
+ if (exitCode === 10) {
1102
+ output.write(` ${renderProgressBar(100)}
1103
+ `);
1104
+ return 0;
1105
+ }
983
1106
  if (exitCode === 0) {
984
1107
  output.write(` ${renderProgressBar(100)}
985
1108
  `);
@@ -1167,6 +1290,7 @@ export {
1167
1290
  buildSelfUpdateCommand,
1168
1291
  resolveSelfUpdateServerUrl,
1169
1292
  buildCliDoctorText,
1293
+ buildStandaloneUpdateScript,
1170
1294
  runStandaloneBundleUpdate,
1171
1295
  NOLO_UPDATE_CHECK_KILL_SWITCH,
1172
1296
  compareCliVersions,
@@ -2,7 +2,7 @@ import {
2
2
  clipMultilineText,
3
3
  fetchAndSerializeTable,
4
4
  waitForAbortableDelay
5
- } from "./chunk-RUNKPFM5.js";
5
+ } from "./chunk-6QIBWOPT.js";
6
6
  import {
7
7
  isGatewayHttpStatus
8
8
  } from "./chunk-NF64D32W.js";
@@ -11,34 +11,37 @@ import {
11
11
  isCoreDrainingBody,
12
12
  normalizeNonNegativeMs,
13
13
  parseRetryAfterHeaderMs
14
- } from "./chunk-XPWGOTBQ.js";
14
+ } from "./chunk-3L2WKC3W.js";
15
15
  import {
16
16
  resolvePageReadMarkdown,
17
17
  slateToSimplifiedMarkdown
18
- } from "./chunk-3XZKV7QQ.js";
18
+ } from "./chunk-3L5MSPWX.js";
19
19
  import {
20
20
  extractCategorizedMentions
21
21
  } from "./chunk-AGIM7IMJ.js";
22
22
  import {
23
23
  fetchAndCacheMessages
24
- } from "./chunk-H4KACZMG.js";
24
+ } from "./chunk-2QQ7D3P5.js";
25
25
  import {
26
26
  createSpaceKey
27
27
  } from "./chunk-UAD2WT54.js";
28
28
  import {
29
29
  read
30
- } from "./chunk-HP6O6LTV.js";
30
+ } from "./chunk-CDLP56BS.js";
31
31
  import {
32
32
  getRuntimeServerContext
33
- } from "./chunk-Z6KQDSZW.js";
33
+ } from "./chunk-43OFVLWJ.js";
34
34
  import {
35
35
  extractRuntimePageCapabilities,
36
36
  resolveBuiltinSkillPage,
37
37
  resolveSkillGraphFromRoots
38
- } from "./chunk-4Z245KOA.js";
38
+ } from "./chunk-SH3XD4E2.js";
39
39
  import {
40
40
  isAbortError
41
41
  } from "./chunk-7DPNBQSV.js";
42
+ import {
43
+ wrapHistoricalSummaryWithReplayGuard
44
+ } from "./chunk-4VJAC32I.js";
42
45
  import {
43
46
  extractCustomId
44
47
  } from "./chunk-M2EJHDJP.js";
@@ -51,9 +54,6 @@ import {
51
54
  import {
52
55
  asTrimmedString
53
56
  } from "./chunk-3EUW3WEO.js";
54
- import {
55
- wrapHistoricalSummaryWithReplayGuard
56
- } from "./chunk-4VJAC32I.js";
57
57
 
58
58
  // packages/ai/chat/errorDiagnostics.ts
59
59
  var record = (value) => value !== null && typeof value === "object" && !Array.isArray(value) ? value : {};
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolvePlatformAuthToken
3
- } from "./chunk-SUKSWFLP.js";
3
+ } from "./chunk-PIG2IUVZ.js";
4
4
  import {
5
5
  getCredentialsDir
6
6
  } from "./chunk-ZWQUWF6W.js";
@@ -4,14 +4,14 @@ import {
4
4
  import {
5
5
  patch,
6
6
  read
7
- } from "./chunk-HP6O6LTV.js";
7
+ } from "./chunk-CDLP56BS.js";
8
8
  import {
9
9
  DEVICE_LOCAL_OWNER_ID,
10
10
  isDeviceLocalSpaceBody
11
- } from "./chunk-Z6KQDSZW.js";
11
+ } from "./chunk-43OFVLWJ.js";
12
12
  import {
13
13
  selectIdentityUserId
14
- } from "./chunk-SEJ5OS6F.js";
14
+ } from "./chunk-PXYBUFDB.js";
15
15
 
16
16
  // packages/create/space/utils/permissions.ts
17
17
  var checkSpaceMembership = (spaceData, userId) => {
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  patch,
9
9
  readAndWait
10
- } from "./chunk-HP6O6LTV.js";
10
+ } from "./chunk-CDLP56BS.js";
11
11
  import {
12
12
  toErrorMessage
13
13
  } from "./chunk-HNMXYYJR.js";
@@ -333,7 +333,7 @@ async function saveDocState(arg, { dispatch, getState }) {
333
333
  ).unwrap();
334
334
  if (dbSpaceId) {
335
335
  try {
336
- const { updateContentTitle } = await import("./contentThunks-B3FRQGP7.js");
336
+ const { updateContentTitle } = await import("./contentThunks-5DNEHJ2Z.js");
337
337
  await dispatch(
338
338
  updateContentTitle({
339
339
  spaceId: dbSpaceId,
@@ -372,7 +372,7 @@ async function saveDocState(arg, { dispatch, getState }) {
372
372
  }
373
373
  }
374
374
  async function createDocState(args, thunkApi) {
375
- const { createPageAction } = await import("./createPageAction-LDAVZDN7.js");
375
+ const { createPageAction } = await import("./createPageAction-37HHOXZ2.js");
376
376
  return createPageAction(args, thunkApi);
377
377
  }
378
378
  function subscribe(listener) {
@@ -3,7 +3,7 @@ import {
3
3
  isCoreDrainingBody,
4
4
  normalizeNonNegativeMs,
5
5
  parseRetryAfterHeaderMs
6
- } from "./chunk-XPWGOTBQ.js";
6
+ } from "./chunk-3L2WKC3W.js";
7
7
  import {
8
8
  toErrorMessage
9
9
  } from "./chunk-HNMXYYJR.js";
@@ -5,7 +5,7 @@ import {
5
5
  getAntigravityUserAgent,
6
6
  readAntigravityProjectId,
7
7
  resolveAntigravityCloudCodeBaseUrl
8
- } from "./chunk-JGRPBIZZ.js";
8
+ } from "./chunk-SQX235S2.js";
9
9
  import {
10
10
  asOptionalTrimmedString
11
11
  } from "./chunk-G3SUCT4W.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  listUserRecordsFromServers,
3
3
  readLiveDbRecordAfterTombstoneMerge
4
- } from "./chunk-G47IPDOK.js";
4
+ } from "./chunk-W7FGZRLK.js";
5
5
  import {
6
6
  agentRecordHasConfiguredCredential
7
- } from "./chunk-HKT6QXP3.js";
7
+ } from "./chunk-5IKRTRRR.js";
8
8
  import {
9
9
  deriveCredentialGroup
10
- } from "./chunk-KX6LPG7W.js";
10
+ } from "./chunk-WYJTNSVL.js";
11
11
  import {
12
12
  isTombstoneRecord
13
13
  } from "./chunk-D2MDMY2M.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  getRuntimeServerContext,
3
3
  scheduleDeleteReplication
4
- } from "./chunk-Z6KQDSZW.js";
4
+ } from "./chunk-43OFVLWJ.js";
5
5
  import {
6
6
  fetchFromClientDb
7
7
  } from "./chunk-6Q7UTJKR.js";
8
8
  import {
9
9
  selectIdentityToken
10
- } from "./chunk-SEJ5OS6F.js";
10
+ } from "./chunk-PXYBUFDB.js";
11
11
  import {
12
12
  buildTombstoneRecord
13
13
  } from "./chunk-D2MDMY2M.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getModelPricing
3
- } from "./chunk-YANF2RR4.js";
3
+ } from "./chunk-ZPKUJROL.js";
4
4
  import {
5
5
  PUBLIC_DEEPSEEK_V4_FLASH_AGENT_ID,
6
6
  PUBLIC_DEEPSEEK_V4_PRO_AGENT_ID,
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-M2EJHDJP.js";
24
24
  import {
25
25
  getModelConfig
26
- } from "./chunk-TRW43TSC.js";
26
+ } from "./chunk-6EQD4AQL.js";
27
27
  import {
28
28
  isRecord
29
29
  } from "./chunk-KUG52IAP.js";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-OWYYDMGJ.js";
7
7
  import {
8
8
  selectIdentityToken
9
- } from "./chunk-SEJ5OS6F.js";
9
+ } from "./chunk-PXYBUFDB.js";
10
10
  import {
11
11
  compactWhitespace
12
12
  } from "./chunk-DWLEOOGR.js";
@@ -7,7 +7,7 @@ import {
7
7
  scheduleExistingRecordReplication,
8
8
  shouldReplaceLocalWithRemoteRecord,
9
9
  shouldReplicateLocalRecord
10
- } from "./chunk-Z6KQDSZW.js";
10
+ } from "./chunk-43OFVLWJ.js";
11
11
  import {
12
12
  fetchFromClientDb,
13
13
  fetchFromServer,
@@ -270,7 +270,7 @@ var readAction = async (payload, thunkApi) => {
270
270
  authorityServer: preferredServerOrigin ?? authority.authorityServer,
271
271
  serverOrigin: authority.serverOrigin
272
272
  });
273
- const { preferredServer, fallbackServers, orderedServersForLocalHit } = partitionReadServers({
273
+ let { preferredServer, fallbackServers, orderedServersForLocalHit } = partitionReadServers({
274
274
  allServers: authorityPlannedServers,
275
275
  preferredServerOrigin: preferredServerOrigin ?? authority.authorityServer
276
276
  });
@@ -290,7 +290,17 @@ var readAction = async (payload, thunkApi) => {
290
290
  );
291
291
  }
292
292
  }
293
- if (authorityPlannedServers.length === 0) {
293
+ let authoritativeServerOrigin = null;
294
+ if (typeof payload.authoritativeServerOrigin === "string") {
295
+ try {
296
+ const origin = new URL(payload.authoritativeServerOrigin.trim());
297
+ if ((origin.protocol === "https:" || origin.protocol === "http:") && origin.pathname === "/" && !origin.search && !origin.hash && !origin.username && !origin.password) {
298
+ authoritativeServerOrigin = origin.origin;
299
+ }
300
+ } catch {
301
+ }
302
+ }
303
+ if (authorityPlannedServers.length === 0 && (localData || !authoritativeServerOrigin)) {
294
304
  if (localData) {
295
305
  if (isDialogKey) {
296
306
  console.info("[readAction-perf] dialog offline-local-hit", {
@@ -342,6 +352,10 @@ var readAction = async (payload, thunkApi) => {
342
352
  }
343
353
  return normalizeReadRecord(dbKey, localData);
344
354
  }
355
+ if (authoritativeServerOrigin) {
356
+ preferredServer = authoritativeServerOrigin;
357
+ fallbackServers = [];
358
+ }
345
359
  if (preferredServer) {
346
360
  try {
347
361
  const preferredRemoteData = await fetchFromServer(
@@ -4,7 +4,7 @@ import {
4
4
  resolvePlatformHostedCredentialProvider,
5
5
  resolvePlatformProxyChatGatewayEndpoint,
6
6
  resolvePlatformResponsesEndpoint
7
- } from "./chunk-I2RMFLLH.js";
7
+ } from "./chunk-V7PCFWX3.js";
8
8
  import {
9
9
  CLI_PROVIDER_VALUES
10
10
  } from "./chunk-5BHQICF2.js";