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
@@ -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
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"
942
+ rm -f "$LINK"
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"
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,
@@ -7,7 +7,7 @@ import {
7
7
  listUserRecordsFromServers,
8
8
  readDbRecordFromServers,
9
9
  readLiveDbRecordAfterTombstoneMerge
10
- } from "./chunk-QPY264HO.js";
10
+ } from "./chunk-O2IWR23M.js";
11
11
  import {
12
12
  parsePositiveFiniteNumberOrFallback
13
13
  } from "./chunk-Y5GCAMGP.js";
@@ -42,22 +42,13 @@ import {
42
42
  } from "./chunk-I42VC5KR.js";
43
43
  import {
44
44
  resolveRunsDir
45
- } from "./chunk-MM3662RS.js";
46
- import {
47
- isRecord
48
- } from "./chunk-KUG52IAP.js";
49
- import {
50
- asTrimmedString
51
- } from "./chunk-3EUW3WEO.js";
45
+ } from "./chunk-SNAWGDXT.js";
52
46
  import {
53
47
  getDefaultCliLocalRuntimeDb
54
- } from "./chunk-2IXDJNZI.js";
48
+ } from "./chunk-GAGGEA7D.js";
55
49
  import {
56
50
  isLevelLockError
57
51
  } from "./chunk-AWVFQMOV.js";
58
- import {
59
- toErrorMessage
60
- } from "./chunk-HNMXYYJR.js";
61
52
  import {
62
53
  resolveLocalDialogDbCandidates,
63
54
  resolveNoloHome,
@@ -71,6 +62,15 @@ import {
71
62
  resolveServerCandidates,
72
63
  resolveServerUrl
73
64
  } from "./chunk-A7GB5UGH.js";
65
+ import {
66
+ isRecord
67
+ } from "./chunk-KUG52IAP.js";
68
+ import {
69
+ asTrimmedString
70
+ } from "./chunk-3EUW3WEO.js";
71
+ import {
72
+ toErrorMessage
73
+ } from "./chunk-HNMXYYJR.js";
74
74
  import {
75
75
  DEFAULT_LOCAL_API_ORIGIN
76
76
  } from "./chunk-4SN6J65J.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  assembleAgentDiscoveryResult,
3
3
  resolveDiscoveryScope
4
- } from "./chunk-KLA62VVE.js";
4
+ } from "./chunk-VXS4YYJ2.js";
5
5
  import {
6
6
  fetchWithTransientRetry
7
7
  } from "./chunk-KFHREHUQ.js";
@@ -20,7 +20,7 @@ import {
20
20
  toolRunUpdated,
21
21
  uiCardFallback,
22
22
  waitForAbortableDelay
23
- } from "./chunk-SOEJSA7I.js";
23
+ } from "./chunk-FCUKCVKN.js";
24
24
  import {
25
25
  isGatewayHttpStatus
26
26
  } from "./chunk-NF64D32W.js";
@@ -49,7 +49,7 @@ import {
49
49
  readPageFunc,
50
50
  readPageFunctionSchema,
51
51
  resolvePageReadMarkdown
52
- } from "./chunk-US6MKPE7.js";
52
+ } from "./chunk-3L5MSPWX.js";
53
53
  import {
54
54
  markdownToSlate
55
55
  } from "./chunk-CNWKLQRL.js";
@@ -64,7 +64,7 @@ import {
64
64
  } from "./chunk-VF4K2QE6.js";
65
65
  import {
66
66
  createDocState
67
- } from "./chunk-MJ54WBLO.js";
67
+ } from "./chunk-R2KWTENX.js";
68
68
  import {
69
69
  addMemberSpace,
70
70
  fetchAuthoritativeRemoteSpace,
@@ -76,13 +76,13 @@ import {
76
76
  setMembershipRejected,
77
77
  setSpaceInitialized,
78
78
  updateMemberSpaceName
79
- } from "./chunk-J2ATF74A.js";
79
+ } from "./chunk-BAWAKW7X.js";
80
80
  import {
81
81
  createDialogAction
82
- } from "./chunk-RAEBIT7A.js";
82
+ } from "./chunk-JDKSYQQN.js";
83
83
  import {
84
84
  setDialogExtraReferencesAction
85
- } from "./chunk-CON6SI7N.js";
85
+ } from "./chunk-IF7V3CBU.js";
86
86
  import {
87
87
  shareResourceAction
88
88
  } from "./chunk-YPG7TUQD.js";
@@ -102,7 +102,7 @@ import {
102
102
  updateContentCategory,
103
103
  updateContentTitle,
104
104
  writeStoredCollapsedCategories
105
- } from "./chunk-C5A3GWRG.js";
105
+ } from "./chunk-YR47Y7CN.js";
106
106
  import {
107
107
  buildDatabaseFileContentUrl,
108
108
  deleteDialog,
@@ -115,7 +115,7 @@ import {
115
115
  selectMsgById,
116
116
  uiAskChoiceFunc,
117
117
  uiAskChoiceFunctionSchema
118
- } from "./chunk-T64RZQBO.js";
118
+ } from "./chunk-F5WASHQA.js";
119
119
  import {
120
120
  buildMediaToolConfirmation,
121
121
  normalizeMediaConfirmExecutionRevision
@@ -126,7 +126,7 @@ import {
126
126
  runLlm,
127
127
  streamAgentChatTurn,
128
128
  updateAgent
129
- } from "./chunk-RWSOTHY4.js";
129
+ } from "./chunk-DT7EWFTY.js";
130
130
  import {
131
131
  getCurrentSpaceId,
132
132
  getCurrentSpaceIdRaw,
@@ -153,7 +153,7 @@ import {
153
153
  UNCATEGORIZED_ID,
154
154
  addContentAction,
155
155
  checkSpaceMembership
156
- } from "./chunk-M2P3OGXZ.js";
156
+ } from "./chunk-JWEXJ573.js";
157
157
  import {
158
158
  createSpaceKey,
159
159
  normalizeSpaceId
@@ -169,10 +169,10 @@ import {
169
169
  selectEntities,
170
170
  toTimestampMs,
171
171
  write
172
- } from "./chunk-ZVQHBIWV.js";
172
+ } from "./chunk-CDLP56BS.js";
173
173
  import {
174
174
  readAction
175
- } from "./chunk-NDZOXXIM.js";
175
+ } from "./chunk-NHEWV5FD.js";
176
176
  import {
177
177
  DEVICE_LOCAL_OWNER_ID,
178
178
  getRuntimeServerContext,
@@ -182,7 +182,7 @@ import {
182
182
  resolveEffectiveSpaceActorId,
183
183
  resolveRecordOwnerUserId,
184
184
  selectRuntimeSnapshot
185
- } from "./chunk-2SGAI64X.js";
185
+ } from "./chunk-43OFVLWJ.js";
186
186
  import {
187
187
  createAsyncThunk,
188
188
  noloWriteRequest
@@ -199,10 +199,10 @@ import {
199
199
  import {
200
200
  listBuiltinSkills,
201
201
  resolveBuiltinSkillByName
202
- } from "./chunk-DC3SZCRR.js";
202
+ } from "./chunk-SH3XD4E2.js";
203
203
  import {
204
204
  CAPABILITY_PACKS
205
- } from "./chunk-JZX2XLKC.js";
205
+ } from "./chunk-YCRROBDY.js";
206
206
  import {
207
207
  buildSkillDocMarkdown,
208
208
  normalizeSkillModalities,
@@ -210,7 +210,7 @@ import {
210
210
  parseExternalSkillMarkdown,
211
211
  parseSkillDocProtocol,
212
212
  resolvePageSkillMetadata
213
- } from "./chunk-XETG4RIX.js";
213
+ } from "./chunk-AETZ7AD6.js";
214
214
  import {
215
215
  DEFAULT_READ_DIALOG_MAX_RESPONSE_CHARS,
216
216
  NOLO_WORKSPACE_TOOL_NAMES,
@@ -281,9 +281,6 @@ import {
281
281
  asNonEmptyStringArray,
282
282
  asTrimmedNonEmptyStringArray
283
283
  } from "./chunk-I42VC5KR.js";
284
- import {
285
- asOptionalFiniteNumber
286
- } from "./chunk-WWC7I6TA.js";
287
284
  import {
288
285
  RUN_TITLE_MAX,
289
286
  TASK_PREVIEW_MAX,
@@ -298,11 +295,17 @@ import {
298
295
  normalizeRunTitle,
299
296
  resolveRunLabel
300
297
  } from "./chunk-PJNFNEJE.js";
298
+ import {
299
+ API_ENDPOINTS
300
+ } from "./chunk-LCBAMY2M.js";
301
+ import {
302
+ asOptionalFiniteNumber
303
+ } from "./chunk-WWC7I6TA.js";
301
304
  import {
302
305
  DEFAULT_MODEL,
303
306
  clampReasoningEffort,
304
307
  resolveModelReasoningCapabilityWithCache
305
- } from "./chunk-TRW43TSC.js";
308
+ } from "./chunk-6EQD4AQL.js";
306
309
  import {
307
310
  isRecord
308
311
  } from "./chunk-KUG52IAP.js";
@@ -312,9 +315,6 @@ import {
312
315
  import {
313
316
  toErrorMessage
314
317
  } from "./chunk-HNMXYYJR.js";
315
- import {
316
- API_ENDPOINTS
317
- } from "./chunk-LCBAMY2M.js";
318
318
  import {
319
319
  DEFAULT_LOCAL_API_ORIGIN
320
320
  } from "./chunk-4SN6J65J.js";
@@ -1264,7 +1264,7 @@ var buildPlatformFormDataFromArgs = async (args) => {
1264
1264
  const trimmedModel = toTrimmedString(model);
1265
1265
  const trimmedProvider = toTrimmedString(provider);
1266
1266
  const modelConfig = await findModelConfig(trimmedModel, trimmedProvider);
1267
- const { getModelPricing } = await import("./getPricing-TX35D7PI.js");
1267
+ const { getModelPricing } = await import("./getPricing-XQ3N3RBP.js");
1268
1268
  const normalizedTools = tools ?? [];
1269
1269
  const resolvedRuntimeToolPolicy = runtimeToolPolicy ?? (normalizedTools.includes("execShell") ? HOSTED_EXEC_RUNTIME_TOOL_POLICY : void 0);
1270
1270
  const formData = {
@@ -3881,7 +3881,7 @@ async function deleteDialogsFunc(args, thunkApi) {
3881
3881
  const deletedDialogIds = [];
3882
3882
  const deletedDialogKeys = [];
3883
3883
  const failures = [];
3884
- const { deleteDialog: deleteDialog2 } = await import("./dialogSlice-Z5KOY4CC.js");
3884
+ const { deleteDialog: deleteDialog2 } = await import("./dialogSlice-GQMTD4HR.js");
3885
3885
  for (const target of targets) {
3886
3886
  try {
3887
3887
  await thunkApi.dispatch(deleteDialog2(target.dbKey)).unwrap();
@@ -4197,7 +4197,7 @@ var readSkillDocFunctionSchema = {
4197
4197
  }
4198
4198
  };
4199
4199
  async function readSkillDocFunc(args, thunkApi) {
4200
- const { buildReadDocResult } = await import("./readDocTool-QELXV2GW.js");
4200
+ const { buildReadDocResult } = await import("./readDocTool-AAQTB2Y3.js");
4201
4201
  const id = args?.id ?? args?.doc ?? args?.docKey ?? args?.pageKey;
4202
4202
  if (typeof id !== "string" || !id.trim()) {
4203
4203
  throw new Error("readSkillDoc requires id or doc.");
@@ -4987,7 +4987,7 @@ var fetchSpaceAction = async (input, thunkAPI) => {
4987
4987
  const spaceKey = createSpaceKey.space(spaceId);
4988
4988
  const readSpace = async (dbKey) => {
4989
4989
  try {
4990
- const { read: read2, readAndWait: readAndWait2 } = await import("./dbSlice-DC2J53RC.js");
4990
+ const { read: read2, readAndWait: readAndWait2 } = await import("./dbSlice-6PVPY44C.js");
4991
4991
  if (fresh) {
4992
4992
  return await dispatch(readAndWait2(dbKey)).unwrap();
4993
4993
  }
@@ -11634,7 +11634,7 @@ var selectUserIdFromState = (state2) => {
11634
11634
  var selectCurrentServerFromState = (state2) => typeof state2?.settings?.currentServer === "string" ? state2.settings.currentServer : null;
11635
11635
  async function addImageContentToSpace(input) {
11636
11636
  const injectedAddContentAction = input.thunkApi?.extra?.addContentAction;
11637
- const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-BI6RDRTQ.js")).addContentAction;
11637
+ const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-XJQEJ4XW.js")).addContentAction;
11638
11638
  await addContentAction2(
11639
11639
  {
11640
11640
  spaceId: input.spaceId,
@@ -13885,10 +13885,19 @@ function resolveCliLocalSpawnDispatch(input) {
13885
13885
  ...input,
13886
13886
  host: "cli-local"
13887
13887
  });
13888
+ const plan = resolvePlanForRequestedKey(requested, input.allowHostWrites, input.readOnly);
13889
+ assertExplicitCwdHonoredByDispatchTarget({
13890
+ cwd: input.cwd,
13891
+ target: plan.target,
13892
+ ...plan.runtimeKey !== void 0 ? { runtimeKey: plan.runtimeKey } : {}
13893
+ });
13894
+ return plan;
13895
+ }
13896
+ function resolvePlanForRequestedKey(requested, allowHostWrites, readOnly) {
13888
13897
  if (requested) {
13889
13898
  const capability = resolveCliLocalRuntimeKeyCapability(requested);
13890
13899
  const target = capability.target ?? (isDockerRuntimeKey(requested) ? "docker-sandbox" : "host");
13891
- if (target === "host" && input.allowHostWrites !== true) {
13900
+ if (target === "host" && allowHostWrites !== true) {
13892
13901
  throw new Error(HOST_WRITES_CONFIRMATION_REQUIRED_MESSAGE);
13893
13902
  }
13894
13903
  return {
@@ -13897,7 +13906,7 @@ function resolveCliLocalSpawnDispatch(input) {
13897
13906
  reason: target === "host" ? "requested-host-writes" : "requested"
13898
13907
  };
13899
13908
  }
13900
- if (input.readOnly === true) {
13909
+ if (readOnly === true) {
13901
13910
  return { target: "host", reason: "read-only-host" };
13902
13911
  }
13903
13912
  return {
@@ -13906,6 +13915,36 @@ function resolveCliLocalSpawnDispatch(input) {
13906
13915
  reason: "default-docker-sandbox"
13907
13916
  };
13908
13917
  }
13918
+ function normalizeExplicitHostCwd(rawCwd) {
13919
+ if (typeof rawCwd !== "string") return void 0;
13920
+ const trimmed2 = rawCwd.trim();
13921
+ if (!trimmed2 || !isAbsoluteRunCwd(trimmed2)) return void 0;
13922
+ return trimmed2;
13923
+ }
13924
+ var SANDBOX_DOES_NOT_HONOR_CWD_REASON = `\u6C99\u76D2\u540E\u7AEF\u4E0D\u5151\u73B0\u5BBF\u4E3B cwd\uFF1A\u6C99\u76D2\u91CC\u7684\u4ED3\u5E93\u6302\u5728\u6C99\u76D2\u5185\u81EA\u5DF1\u7684\u8DEF\u5F84\uFF08\u5982 /home/bun/app\uFF09\uFF0C\u4F20\u8FDB\u53BB\u7684 cwd \u4F1A\u88AB\u9759\u9ED8\u66FF\u6362\uFF1B\u5B50 run \u6539\u7684\u6587\u4EF6\u968F\u6C99\u76D2\u505C\u6B62\u4E00\u8D77\u6D88\u5931\uFF0C\u800C\u8C03\u7528\u65B9\u62FF\u5230\u7684\u662F\u300C\u6210\u529F\u300D\uFF082026-10-23 \u4E8B\u6545\uFF09\u3002`;
13925
+ function describeDispatchTarget(target, runtimeKey) {
13926
+ if (target === "docker-sandbox") {
13927
+ return `\u672C\u673A docker \u6C99\u76D2\uFF08runtimeKey="${runtimeKey ?? "docker"}"\uFF09`;
13928
+ }
13929
+ if (target === "instabox") return `Instabox \u6C99\u76D2\uFF08runtimeKey="instabox"\uFF09`;
13930
+ return "\u5BBF\u4E3B\u6267\u884C";
13931
+ }
13932
+ function buildExplicitCwdSandboxConflictMessage(input) {
13933
+ const landing = describeDispatchTarget(input.target, input.runtimeKey);
13934
+ return `startAgentRun \u663E\u5F0F\u4F20\u4E86 cwd="${input.cwd}"\uFF0C\u4F46\u672C\u6B21\u51B3\u7B56\u7684\u843D\u70B9\u662F${landing}\uFF1A` + SANDBOX_DOES_NOT_HONOR_CWD_REASON + `\u5DF2\u62D2\u7EDD\u6D3E\u53D1\uFF0C\u672A\u542F\u52A8\u4EFB\u4F55 run\uFF08\u4E0D\u9759\u9ED8\u66FF\u6362\u8DEF\u5F84\u3001\u4E5F\u4E0D\u9759\u9ED8\u964D\u7EA7\u5230\u5BBF\u4E3B\uFF09\u3002\u8981\u8BA9\u5B83\u771F\u7684\u5728 ${input.cwd} \u4E0A\u52A8\u624B\uFF1A\u6539\u7528 runtimeKey: "local" + allowHostWrites: true\uFF08\u5BBF\u4E3B\u6267\u884C\uFF0Ccwd \u4F1A\u88AB\u5982\u5B9E\u5151\u73B0\uFF09\uFF1B\u6216\u53BB\u6389 cwd\uFF0C\u8BA9\u5B50 run \u5728\u6C99\u76D2\u81EA\u5DF1\u7684\u4ED3\u5E93\u91CC\u5DE5\u4F5C\u3002`;
13935
+ }
13936
+ function assertExplicitCwdHonoredByDispatchTarget(input) {
13937
+ const explicitCwd = normalizeExplicitHostCwd(input.cwd);
13938
+ if (!explicitCwd) return;
13939
+ if (input.target === "host") return;
13940
+ throw new Error(
13941
+ buildExplicitCwdSandboxConflictMessage({
13942
+ cwd: explicitCwd,
13943
+ target: input.target,
13944
+ ...input.runtimeKey !== void 0 ? { runtimeKey: input.runtimeKey } : {}
13945
+ })
13946
+ );
13947
+ }
13909
13948
  function assertCliLocalSpawnArgvInvariant(argv, context2 = "cli-local spawn argv") {
13910
13949
  const indexes = [];
13911
13950
  for (let i = 0; i < argv.length; i += 1) {
@@ -18424,7 +18463,7 @@ async function updateDocFunc(args, thunkApi) {
18424
18463
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
18425
18464
  };
18426
18465
  await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
18427
- const { getDocState, applyExternalDocUpdate } = await import("./docStore-2EN5A7PW.js");
18466
+ const { getDocState, applyExternalDocUpdate } = await import("./docStore-PM5PYKPZ.js");
18428
18467
  if (getDocState().pageKey === id) {
18429
18468
  applyExternalDocUpdate({
18430
18469
  slateData: finalSlateData,
@@ -18449,7 +18488,7 @@ async function updateDocFunc(args, thunkApi) {
18449
18488
  // packages/ai/tools/updateUserPreferenceProfileTool.ts
18450
18489
  async function dispatchSetSettings(thunkApi, changes) {
18451
18490
  const injectedSetSettings = thunkApi?.extra?.setSettings;
18452
- const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingThunks-4Z43ZSAT.js")).setSettings;
18491
+ const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingThunks-N6XFWPOU.js")).setSettings;
18453
18492
  await thunkApi.dispatch(setSettings(changes)).unwrap();
18454
18493
  }
18455
18494
  var updateUserPreferenceProfileFunctionSchema = {
@@ -7,7 +7,7 @@ import {
7
7
  mergeReferences,
8
8
  resolveReferenceAssets,
9
9
  resolveToolsFromKeys
10
- } from "./chunk-SQ73U3BG.js";
10
+ } from "./chunk-QZIOZDM6.js";
11
11
  import {
12
12
  UI_CARD_ENVELOPE_MAX_BYTES,
13
13
  getAllToolRuns,
@@ -20,7 +20,7 @@ import {
20
20
  selectSpaceContextLevel,
21
21
  selectUserTonePreset,
22
22
  uiCardFallback
23
- } from "./chunk-SOEJSA7I.js";
23
+ } from "./chunk-FCUKCVKN.js";
24
24
  import {
25
25
  resolveToolBaseUrl
26
26
  } from "./chunk-MYOH447Z.js";
@@ -29,18 +29,18 @@ import {
29
29
  getModelPricing,
30
30
  getPrices,
31
31
  hasExplicitAgentPricing
32
- } from "./chunk-YANF2RR4.js";
32
+ } from "./chunk-ZPKUJROL.js";
33
33
  import {
34
34
  getDocState
35
- } from "./chunk-MJ54WBLO.js";
35
+ } from "./chunk-R2KWTENX.js";
36
36
  import {
37
37
  getTableState
38
- } from "./chunk-C5A3GWRG.js";
38
+ } from "./chunk-YR47Y7CN.js";
39
39
  import {
40
40
  PERSONALIZATION_DIALOG_CATEGORY,
41
41
  buildPersonalizationDialogPolicyContext,
42
42
  selectAllMsgs
43
- } from "./chunk-T64RZQBO.js";
43
+ } from "./chunk-F5WASHQA.js";
44
44
  import {
45
45
  getCurrentSpaceIdRaw,
46
46
  getViewMode
@@ -51,7 +51,7 @@ import {
51
51
  import {
52
52
  read,
53
53
  selectById
54
- } from "./chunk-ZVQHBIWV.js";
54
+ } from "./chunk-CDLP56BS.js";
55
55
  import {
56
56
  getSessionSnapshotForState,
57
57
  selectIdentityUserBalance,
@@ -66,27 +66,31 @@ import {
66
66
  expandEnabledPackPromptPatches,
67
67
  expandEnabledPacks,
68
68
  resolveEffectiveEnabledPacks
69
- } from "./chunk-JZX2XLKC.js";
69
+ } from "./chunk-YCRROBDY.js";
70
70
  import {
71
71
  projectToolMessageContent
72
- } from "./chunk-IYBIRCQV.js";
72
+ } from "./chunk-U34KT53V.js";
73
73
  import {
74
74
  attachmentKind,
75
75
  normalizeAttachmentPart
76
76
  } from "./chunk-WJZOQR2J.js";
77
77
  import {
78
78
  extractReferenceKeysFromMessage
79
- } from "./chunk-KJ7MT3UC.js";
79
+ } from "./chunk-F3SOW2EU.js";
80
80
  import {
81
81
  getModelContextWindow,
82
82
  planContextUsage
83
- } from "./chunk-AAMWEIEP.js";
83
+ } from "./chunk-QA2C5NKI.js";
84
84
  import {
85
85
  asRecordOrEmpty
86
86
  } from "./chunk-KX6YBIHG.js";
87
87
  import {
88
88
  isAbortError
89
89
  } from "./chunk-7DPNBQSV.js";
90
+ import {
91
+ buildLinkedSpacesSection,
92
+ buildSpaceContextLayer
93
+ } from "./chunk-VEA7H5FG.js";
90
94
  import {
91
95
  canonicalizeToolNames,
92
96
  prioritizeToolNames
@@ -100,16 +104,16 @@ import {
100
104
  import {
101
105
  asNonEmptyStringArray
102
106
  } from "./chunk-I42VC5KR.js";
103
- import {
104
- asOptionalFiniteNumber
105
- } from "./chunk-WWC7I6TA.js";
106
107
  import {
107
108
  estimateTokenCount
108
109
  } from "./chunk-PSCNXBYA.js";
110
+ import {
111
+ asOptionalFiniteNumber
112
+ } from "./chunk-WWC7I6TA.js";
109
113
  import {
110
114
  getModelConfig,
111
115
  getProviderByModelName
112
- } from "./chunk-TRW43TSC.js";
116
+ } from "./chunk-6EQD4AQL.js";
113
117
  import {
114
118
  isRecord
115
119
  } from "./chunk-KUG52IAP.js";
@@ -119,10 +123,6 @@ import {
119
123
  import {
120
124
  asOptionalTrimmedString
121
125
  } from "./chunk-G3SUCT4W.js";
122
- import {
123
- buildLinkedSpacesSection,
124
- buildSpaceContextLayer
125
- } from "./chunk-VEA7H5FG.js";
126
126
 
127
127
  // packages/ai/agent/foregroundTurnAdmissionFetch.ts
128
128
  var FOREGROUND_TURN_KEEPALIVE_MAX_BODY_BYTES = 60 * 1024;
@@ -206,7 +206,7 @@ async function readDocFunc(args, thunkApi) {
206
206
  throw new Error(`\u65E0\u6548\u7684\u9875\u9762 ID: ${id}\u3002\u9875\u9762 ID \u901A\u5E38\u4EE5 "page-" \u5F00\u5934\u3002`);
207
207
  }
208
208
  try {
209
- const { readAction } = await import("./read-L7QEJETH.js");
209
+ const { readAction } = await import("./read-7JPIWRBQ.js");
210
210
  const pageData = await readAction({ dbKey: id }, thunkApi);
211
211
  if (!pageData) {
212
212
  throw new Error(`\u672A\u627E\u5230 ID \u4E3A ${id} \u7684\u9875\u9762\u3002`);