nolo-cli 0.157.0-alpha.1 → 0.157.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.
- package/{_executeModel-5WS2PA62.js → _executeModel-ZIQHOREX.js} +55 -55
- package/{accountResolver-7RYB4D2P.js → accountResolver-55EDKEIK.js} +1 -1
- package/{action-ZJYUBXFC.js → action-GPPJC5TI.js} +5 -5
- package/{addContentAction-TVHB4526.js → addContentAction-XJQEJ4XW.js} +8 -8
- package/{addDialogAgentAction-FDPBU6K6.js → addDialogAgentAction-5WZX5CAY.js} +7 -7
- package/{agentDeleteCommand-Q6M4F3U6.js → agentDeleteCommand-LQSOJEXY.js} +75 -76
- package/{agentEmailCommands-FNH6FEHS.js → agentEmailCommands-HTPKXONW.js} +78 -79
- package/{agentListCommands-JUNMFS6E.js → agentListCommands-GOCGOQUB.js} +36 -36
- package/{agentMachineCommands-VNLDEKNT.js → agentMachineCommands-T7DAZG77.js} +35 -32
- package/{agentProviderCommands-X2HQE6HY.js → agentProviderCommands-CXBHNONN.js} +5 -5
- package/{agentPullCommand-FA43RBRU.js → agentPullCommand-GXXEDOSA.js} +4 -4
- package/{agentRecordCommands-47XXRVPI.js → agentRecordCommands-HSW3RJ4H.js} +72 -73
- package/{agentRunCommand-QEXFJUXQ.js → agentRunCommand-TIRJ57DK.js} +75 -75
- package/{agentRunControl-2C5GM3BW.js → agentRunControl-QWFFIAQY.js} +9 -7
- package/{agentRuntimeLocal-O5GDAFTN.js → agentRuntimeLocal-J6I63NZC.js} +21 -19
- package/{agentSlice-E3XS5FTQ.js → agentSlice-JNM3HF3V.js} +8 -8
- package/{appDeleteCommands-C2J5RQ3I.js → appDeleteCommands-KKLAK2UR.js} +31 -29
- package/{appDeployCommands-3YRK7PSU.js → appDeployCommands-PXWK4FAX.js} +31 -29
- package/{appDeployStatusCommands-FPAX7MOK.js → appDeployStatusCommands-3NGWDZTX.js} +31 -29
- package/{appGetCommands-XAC2V766.js → appGetCommands-APWYPEO3.js} +31 -29
- package/{appListCommands-ZJL2W5O7.js → appListCommands-OP7IRALO.js} +31 -29
- package/{authCommand-J3XILHWW.js → authCommand-3Z52KJID.js} +22 -302
- package/{authCommands-77CHYBGF.js → authCommands-QOCKVPX3.js} +5 -5
- package/{builtinSkillRegistry-A6VSPJEJ.js → builtinSkillRegistry-LJV7FHNI.js} +4 -4
- package/{chromeCommands-OBBNJCLS.js → chromeCommands-IY4NVSXZ.js} +17 -10
- package/{chunk-SW4S4XYB.js → chunk-2AB2HA4M.js} +84 -34
- package/{chunk-C5VPAHIU.js → chunk-32ZKZET7.js} +1 -1
- package/{chunk-XPWGOTBQ.js → chunk-3L2WKC3W.js} +1 -8
- package/{chunk-3XZKV7QQ.js → chunk-3L5MSPWX.js} +1 -1
- package/{chunk-QLQ573SU.js → chunk-3M52COK5.js} +120 -0
- package/{chunk-VSOWPETY.js → chunk-4226O6F7.js} +10 -10
- package/{chunk-Z6KQDSZW.js → chunk-43OFVLWJ.js} +6 -6
- package/{chunk-TJ2VPCBE.js → chunk-4JCAW7TO.js} +2 -2
- package/{chunk-6TF64IF2.js → chunk-4L4K6YR7.js} +16 -2
- package/{chunk-PEO24UB5.js → chunk-5E5VB7PS.js} +324 -57
- package/{chunk-ZD2BLOY6.js → chunk-5EDQTOUR.js} +7 -7
- package/{chunk-HKT6QXP3.js → chunk-5IKRTRRR.js} +5 -5
- package/{chunk-P5QACQDK.js → chunk-62TBKWTV.js} +1 -1
- package/{chunk-TRW43TSC.js → chunk-6EQD4AQL.js} +41 -1
- package/{chunk-YLMMECCH.js → chunk-6XIE5ZGI.js} +1 -1
- package/{chunk-OH2M7WEU.js → chunk-6Y3ETA2Y.js} +3 -3
- package/{chunk-7A4LJCDR.js → chunk-B3ZIFOFI.js} +5 -5
- package/{chunk-WZ6OU4NX.js → chunk-BAWAKW7X.js} +2 -2
- package/{chunk-UUPR3TD7.js → chunk-BL4HFN6L.js} +2 -4
- package/{chunk-2GGXHQIW.js → chunk-BLVSFYQ3.js} +4 -2
- package/{chunk-HP6O6LTV.js → chunk-CDLP56BS.js} +9 -9
- package/{chunk-UTIMX333.js → chunk-DJ2BOPJY.js} +1 -1
- package/{chunk-36OMEXXR.js → chunk-DLV3H464.js} +8 -8
- package/{chunk-CE7PIHQD.js → chunk-ESMZW5PE.js} +3 -3
- package/{chunk-PSJWPSKS.js → chunk-EWO77ZGF.js} +9 -43
- package/{chunk-ZWG3C7VI.js → chunk-F3SOW2EU.js} +81 -1
- package/{chunk-FY4SDK2E.js → chunk-FDLDMJTM.js} +1 -1
- package/{chunk-KOB75UNU.js → chunk-FHG46N5C.js} +53 -4
- package/{chunk-7KYVUFDG.js → chunk-G3VYRPTV.js} +5 -267
- package/{chunk-DW7MGLMG.js → chunk-GGUTTH6C.js} +35 -207
- package/{chunk-6MJNEXUU.js → chunk-HGDKT2D6.js} +4 -0
- package/{chunk-B2EGWZJG.js → chunk-I7S63QUU.js} +1 -1
- package/{chunk-ROPSATAB.js → chunk-IF7V3CBU.js} +1 -1
- package/chunk-IKOKYBYJ.js +2685 -0
- package/{chunk-T6CBQ6BN.js → chunk-INFHX73M.js} +1 -1
- package/{chunk-YBNHPX4S.js → chunk-IW64YHXL.js} +155 -31
- package/{chunk-K43ZF2C3.js → chunk-JPPQ3GUO.js} +1 -1
- package/{chunk-TZTWMGE3.js → chunk-JWEXJ573.js} +3 -3
- package/{chunk-RUNKPFM5.js → chunk-K6Y5T4GE.js} +12 -8
- package/{chunk-MVJVF4ED.js → chunk-KESKU5BG.js} +18 -17
- package/{chunk-I2ZMGXXF.js → chunk-KFHREHUQ.js} +1 -1
- package/{chunk-3C2QLERX.js → chunk-KMDDG73K.js} +1 -1
- package/{chunk-5MM7NNO6.js → chunk-KSTEXKL6.js} +78 -39
- package/{chunk-EM3YOZJ4.js → chunk-L2JMH4I5.js} +3 -3
- package/{chunk-MM3662RS.js → chunk-LPO6AMQU.js} +780 -64
- package/{chunk-D4OWHT5Y.js → chunk-MAYW6V3E.js} +2 -2
- package/{chunk-IPAW7XLD.js → chunk-MFVOJ6KF.js} +2 -2
- package/{chunk-FDT27L7S.js → chunk-MLEANT7D.js} +19 -17
- package/{chunk-7GC3EKUG.js → chunk-MMSQTZCJ.js} +3 -3
- package/{chunk-XFKZ3MCV.js → chunk-MR3ITQEV.js} +344 -88
- package/{chunk-CBHGZRCE.js → chunk-MYOH447Z.js} +1 -1
- package/{chunk-6MPAEODB.js → chunk-NHEWV5FD.js} +17 -3
- package/{chunk-ZEHTARJA.js → chunk-NLFTBC6S.js} +321 -150
- package/{chunk-SKPPKHD3.js → chunk-OLUKIUX6.js} +2 -2
- package/{chunk-SUKSWFLP.js → chunk-PIG2IUVZ.js} +1 -1
- package/{chunk-SEJ5OS6F.js → chunk-PXYBUFDB.js} +4 -0
- package/{chunk-2MTE2PEH.js → chunk-QA2C5NKI.js} +5 -739
- package/{chunk-L6EQV5OC.js → chunk-QXZH5UDF.js} +3 -3
- package/{chunk-TNIX77YM.js → chunk-R5GO3YZP.js} +34 -1
- package/{chunk-X5SUT4CN.js → chunk-R7GCGOGZ.js} +6 -6
- package/{chunk-4Z245KOA.js → chunk-SH3XD4E2.js} +8 -4
- package/{chunk-JGRPBIZZ.js → chunk-SQX235S2.js} +1 -1
- package/chunk-TT644UJD.js +188 -0
- package/{chunk-IYBIRCQV.js → chunk-U34KT53V.js} +29 -11
- package/{chunk-ANJTRG52.js → chunk-ULQAD7ZY.js} +18 -43
- package/{chunk-QDA4Y5O6.js → chunk-UVYSBQ2M.js} +21 -17
- package/{chunk-I2RMFLLH.js → chunk-V7PCFWX3.js} +1 -1
- package/{chunk-HXHSTRGH.js → chunk-VYNMQ6HW.js} +0 -27
- package/{chunk-G47IPDOK.js → chunk-W7FGZRLK.js} +1 -1
- package/{chunk-7BSQK2UC.js → chunk-WRCZXJ4N.js} +2 -2
- package/{chunk-KX6LPG7W.js → chunk-WYJTNSVL.js} +9 -9
- package/{chunk-H4KACZMG.js → chunk-XZIW3Q5B.js} +271 -138
- package/chunk-Y5GCAMGP.js +9 -0
- package/{chunk-JZX2XLKC.js → chunk-YCRROBDY.js} +1 -1
- package/{chunk-FPWT3RH2.js → chunk-YN5DT4JS.js} +22 -22
- package/{chunk-SCJD2PNK.js → chunk-YPG7TUQD.js} +3 -3
- package/{chunk-EJU23ST5.js → chunk-ZKVS36H3.js} +5069 -3730
- package/{chunk-YANF2RR4.js → chunk-ZPKUJROL.js} +1 -1
- package/{chunk-TYND6RDQ.js → chunk-ZZDVBZOP.js} +74 -3
- package/{commandRegistry-OUBQIF62.js → commandRegistry-DR2RPWK6.js} +88 -96
- package/{contentThunks-B3FRQGP7.js → contentThunks-CSJDJDEJ.js} +21 -21
- package/{createAgentAutomationAction-T2YFJ6MY.js → createAgentAutomationAction-ISEUEQSY.js} +21 -21
- package/{createDialogAction-2NFGFBXW.js → createDialogAction-HUCFOZY3.js} +25 -25
- package/{createPageAction-LDAVZDN7.js → createPageAction-DT5CYXCL.js} +24 -25
- package/{dbSlice-5QGKMQLO.js → dbSlice-6PVPY44C.js} +7 -7
- package/{deleteFile-EW6QNRRT.js → deleteFile-YM6NDPAR.js} +5 -5
- package/{dialogCommands-ZLBEAQHE.js → dialogCommands-3W6AIUXT.js} +35 -32
- package/{dialogSlice-64S3J6CP.js → dialogSlice-WJEEPG4W.js} +20 -20
- package/{dist-NJC2W7I4.js → dist-Q2JSMAKA.js} +7 -361
- package/{docCreateCommands-XOG5BBFQ.js → docCreateCommands-KQHQNLRX.js} +32 -30
- package/{docDeleteCommands-NCW3BBRX.js → docDeleteCommands-O3DWFX2W.js} +33 -31
- package/{docReadCommands-OT7X44Y3.js → docReadCommands-2U2BUONC.js} +32 -30
- package/{docStore-NIP7OO4I.js → docStore-7JPYT25V.js} +8 -8
- package/{docUpdateCommands-JW7OWW2J.js → docUpdateCommands-MF3C52XI.js} +32 -30
- package/{getPricing-TX35D7PI.js → getPricing-XQ3N3RBP.js} +2 -2
- package/{handleSendMessageAction-TOKA7ED7.js → handleSendMessageAction-BV5FMID4.js} +43 -39
- package/index.js +8 -8
- package/{localRuntimeAdapter-EQM6LFYC.js → localRuntimeAdapter-6FBEJJ4D.js} +70 -69
- package/{localRuntimeAuthority-JDAD7CB6.js → localRuntimeAuthority-BPN5OAQG.js} +2 -2
- package/{localRuntimeDb-CVC62PM5.js → localRuntimeDb-QIVAXMUL.js} +1 -1
- package/{machineCommands-WJ7FZ67T.js → machineCommands-WCAFDI5N.js} +80 -79
- package/{machineWsRunDispatch-BQT4DEA2.js → machineWsRunDispatch-ZF6BBQ3X.js} +70 -71
- package/{memberThunks-KRV5YXOB.js → memberThunks-AZINUM4S.js} +10 -10
- package/package.json +6 -2
- package/{profileConfig-ZGOFORWV.js → profileConfig-KN3N2BLF.js} +7 -1
- package/{providerPresetApply-CRZFMQD5.js → providerPresetApply-PKUOHQJT.js} +5 -5
- package/{providerRegistry-7IS43D3X.js → providerRegistry-HNQLIFN2.js} +5 -5
- package/{read-5KAZHHDM.js → read-7JPIWRBQ.js} +5 -5
- package/{readDocTool-5QO34OSX.js → readDocTool-AAQTB2Y3.js} +1 -1
- package/{readlineWorkspace-JHJSU5DS.js → readlineWorkspace-I5MHMEUE.js} +375 -200
- package/{removeDialogAgentAction-6X63HMI3.js → removeDialogAgentAction-RMVRILLK.js} +9 -9
- package/{runAgentClientLoop-5QIGEALK.js → runAgentClientLoop-TSNSRQEP.js} +59 -54
- package/{runtimeDoctorCommands-56NWKNON.js → runtimeDoctorCommands-MMCP4B4U.js} +12 -12
- package/{secretCommands-ZXZRLR3R.js → secretCommands-DNY56NSU.js} +11 -1
- package/{setDialogExtraReferencesAction-4MAYKKYW.js → setDialogExtraReferencesAction-L3V7JTMG.js} +8 -8
- package/{setPrimaryDialogAgentAction-EGBAMREH.js → setPrimaryDialogAgentAction-X52JQGTJ.js} +9 -9
- package/settingThunks-N6XFWPOU.js +923 -0
- package/{spaceCommands-ZWDPTURU.js → spaceCommands-NDPGHDMD.js} +29 -27
- package/{streamAgentChatTurn-456DWXNY.js → streamAgentChatTurn-RJLDV4WZ.js} +154 -95
- package/{switchDialogAgentAction-YBKTD6DO.js → switchDialogAgentAction-ZJ5CGU7J.js} +7 -7
- package/{tableCommands-U3QDY4L6.js → tableCommands-IVC5S7Y3.js} +11 -11
- package/{toolApiClient-7WSJJJBV.js → toolApiClient-HGNO53TC.js} +2 -2
- package/{tools-IWNXKK4Y.js → tools-X6QNIYFJ.js} +43 -44
- package/{tuiSummaryLlmCaller-KLK6K3Q3.js → tuiSummaryLlmCaller-FESHBDTT.js} +7 -7
- package/{updateCommands-NQXAGFM7.js → updateCommands-FJHGWD3Q.js} +5 -3
- package/{updateDialogTitleAction-SX53FZWO.js → updateDialogTitleAction-6LURCTMG.js} +21 -21
- package/{workloadLifecycle-36DXRZKU.js → workloadLifecycle-6O6PMISX.js} +2 -2
- package/chunk-IA7TRNNR.js +0 -11
- package/chunk-UKZX3NHN.js +0 -48
- package/chunk-VAZHH6FO.js +0 -7012
- package/chunk-W4S6OTSC.js +0 -35
- package/clipboardy-GCO3GT3I.js +0 -11793
- package/settingThunks-FTDRZNSJ.js +0 -1371
- package/{agentGrantCommands-HOJ3JBBQ.js → agentGrantCommands-5DPHYEKP.js} +3 -3
- package/{chromeOpsCommands-3Z34RKSE.js → chromeOpsCommands-GZVVK7HU.js} +4 -4
- package/{chunk-XETG4RIX.js → chunk-AETZ7AD6.js} +4 -4
- package/{chunk-2IXDJNZI.js → chunk-GAGGEA7D.js} +3 -3
- package/{memoryCommands-CUNBFRVS.js → memoryCommands-ZS3VQJAL.js} +3 -3
- package/{offlineMarxistsAgentCommand-2QTHJCHV.js → offlineMarxistsAgentCommand-3GLX4QQY.js} +3 -3
|
@@ -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-
|
|
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 =
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
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,
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
patch,
|
|
6
6
|
read
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-CDLP56BS.js";
|
|
8
8
|
import {
|
|
9
9
|
DEVICE_LOCAL_OWNER_ID,
|
|
10
10
|
isDeviceLocalSpaceBody
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-43OFVLWJ.js";
|
|
12
12
|
import {
|
|
13
13
|
selectIdentityUserId
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-PXYBUFDB.js";
|
|
15
15
|
|
|
16
16
|
// packages/create/space/utils/permissions.ts
|
|
17
17
|
var checkSpaceMembership = (spaceData, userId) => {
|
|
@@ -5,24 +5,24 @@ import {
|
|
|
5
5
|
normalizePolicyLevelSetting,
|
|
6
6
|
normalizeSystemBuiltinSkills,
|
|
7
7
|
normalizeTonePresetSetting
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-VYNMQ6HW.js";
|
|
9
9
|
import {
|
|
10
10
|
fetchAndCacheTableRows
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-IKOKYBYJ.js";
|
|
12
12
|
import {
|
|
13
13
|
require_react
|
|
14
14
|
} from "./chunk-YDH3FDFQ.js";
|
|
15
15
|
import {
|
|
16
16
|
createAsyncThunk,
|
|
17
17
|
createSelector
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-WRCZXJ4N.js";
|
|
19
19
|
import {
|
|
20
20
|
selectIdentityUserId
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-PXYBUFDB.js";
|
|
22
22
|
import {
|
|
23
23
|
resolveBuiltinCapability,
|
|
24
24
|
resolveBuiltinSkillEntry
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-SH3XD4E2.js";
|
|
26
26
|
import {
|
|
27
27
|
DEFAULT_SYSTEM_AGENT_CAPABILITIES
|
|
28
28
|
} from "./chunk-EUGTFFO6.js";
|
|
@@ -287,7 +287,11 @@ var MODES = [
|
|
|
287
287
|
var DEFAULT_RECOMMENDED_SKILL_SLUGS = [
|
|
288
288
|
"worktree-isolation",
|
|
289
289
|
"systematic-investigation",
|
|
290
|
-
"show-me"
|
|
290
|
+
"show-me",
|
|
291
|
+
// 凭据管理:仓库已有 nolo secret(set/list/run/bind),但技能发现只扫
|
|
292
|
+
// `.agents/skills`,内置的 secrets-manager 不会出现在"可用技能"里。放进默认
|
|
293
|
+
// 提示名单让它至少以一行提示出现(不授工具、不放宽权限)。
|
|
294
|
+
"secrets-manager"
|
|
291
295
|
];
|
|
292
296
|
var asMode = (value) => typeof value === "string" && MODES.includes(value) ? value : null;
|
|
293
297
|
var resolveAgentSkillConfig = (source) => {
|
|
@@ -517,7 +521,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
517
521
|
if (!executionInput) {
|
|
518
522
|
throw new Error(`ToolRun ${id} has no input to execute with.`);
|
|
519
523
|
}
|
|
520
|
-
const { findToolExecutor } = await import("./tools-
|
|
524
|
+
const { findToolExecutor } = await import("./tools-X6QNIYFJ.js");
|
|
521
525
|
const { executor } = findToolExecutor(run.toolName);
|
|
522
526
|
toolRunStarted({
|
|
523
527
|
id: run.id,
|
|
@@ -541,7 +545,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
541
545
|
const latestState = thunkApi.getState();
|
|
542
546
|
const userId = selectIdentityUserId(latestState);
|
|
543
547
|
if (userId) {
|
|
544
|
-
const { fetchUserSpaceMemberships } = await import("./memberThunks-
|
|
548
|
+
const { fetchUserSpaceMemberships } = await import("./memberThunks-AZINUM4S.js");
|
|
545
549
|
await thunkApi.dispatch(fetchUserSpaceMemberships(userId));
|
|
546
550
|
}
|
|
547
551
|
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createCliLocalRuntimeAdapter,
|
|
3
3
|
summarizeEndpoint
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ZKVS36H3.js";
|
|
5
5
|
import {
|
|
6
6
|
t
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-2AB2HA4M.js";
|
|
8
8
|
import {
|
|
9
9
|
clipMultilineText
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-K6Y5T4GE.js";
|
|
11
11
|
import {
|
|
12
12
|
runLocalAgentTurn
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-5E5VB7PS.js";
|
|
14
14
|
import {
|
|
15
15
|
applyToolSurfaceConstraints
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-3M52COK5.js";
|
|
17
17
|
import {
|
|
18
18
|
resolveLocalRuntimeEnvFromPolicy
|
|
19
19
|
} from "./chunk-LIQJTQRN.js";
|
|
@@ -29,6 +29,16 @@ import {
|
|
|
29
29
|
import {
|
|
30
30
|
asOptionalPositiveFiniteNumber
|
|
31
31
|
} from "./chunk-U6VC4MU4.js";
|
|
32
|
+
import {
|
|
33
|
+
parseUserIdFromAuthToken
|
|
34
|
+
} from "./chunk-A7GB5UGH.js";
|
|
35
|
+
import {
|
|
36
|
+
DEFAULT_NOLO_SERVER_URL
|
|
37
|
+
} from "./chunk-OLZBQWZU.js";
|
|
38
|
+
import {
|
|
39
|
+
readPipeText,
|
|
40
|
+
spawnProcess
|
|
41
|
+
} from "./chunk-Y6ROFCZO.js";
|
|
32
42
|
import {
|
|
33
43
|
isRecord
|
|
34
44
|
} from "./chunk-KUG52IAP.js";
|
|
@@ -38,19 +48,9 @@ import {
|
|
|
38
48
|
import {
|
|
39
49
|
toErrorMessage
|
|
40
50
|
} from "./chunk-HNMXYYJR.js";
|
|
41
|
-
import {
|
|
42
|
-
parseUserIdFromAuthToken
|
|
43
|
-
} from "./chunk-A7GB5UGH.js";
|
|
44
|
-
import {
|
|
45
|
-
DEFAULT_NOLO_SERVER_URL
|
|
46
|
-
} from "./chunk-OLZBQWZU.js";
|
|
47
51
|
import {
|
|
48
52
|
asOptionalTrimmedString
|
|
49
53
|
} from "./chunk-G3SUCT4W.js";
|
|
50
|
-
import {
|
|
51
|
-
readPipeText,
|
|
52
|
-
spawnProcess
|
|
53
|
-
} from "./chunk-Y6ROFCZO.js";
|
|
54
54
|
|
|
55
55
|
// packages/ai/agent/machineRunPermissions.ts
|
|
56
56
|
var DEFAULT_POLICY = {
|
|
@@ -672,8 +672,9 @@ ${Date.now()}
|
|
|
672
672
|
async function runOracleGenerateImage(args) {
|
|
673
673
|
const proc = args.spawn({
|
|
674
674
|
cmd: [
|
|
675
|
-
"
|
|
676
|
-
"
|
|
675
|
+
"bun",
|
|
676
|
+
"x",
|
|
677
|
+
"--bun",
|
|
677
678
|
"@steipete/oracle",
|
|
678
679
|
"--engine",
|
|
679
680
|
"browser",
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
escapeStringRegexp
|
|
3
|
-
} from "./chunk-IA7TRNNR.js";
|
|
4
1
|
import {
|
|
5
2
|
asTrimmedString
|
|
6
3
|
} from "./chunk-3EUW3WEO.js";
|
|
@@ -7141,6 +7138,14 @@ function ccount(value, character) {
|
|
|
7141
7138
|
function ok() {
|
|
7142
7139
|
}
|
|
7143
7140
|
|
|
7141
|
+
// node_modules/escape-string-regexp/index.js
|
|
7142
|
+
function escapeStringRegexp(string3) {
|
|
7143
|
+
if (typeof string3 !== "string") {
|
|
7144
|
+
throw new TypeError("Expected a string");
|
|
7145
|
+
}
|
|
7146
|
+
return string3.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
|
|
7147
|
+
}
|
|
7148
|
+
|
|
7144
7149
|
// node_modules/unist-util-is/lib/index.js
|
|
7145
7150
|
var convert = (
|
|
7146
7151
|
// Note: overloads in JSDoc can’t yet use different `@template`s.
|
|
@@ -7250,16 +7255,50 @@ var empty = [];
|
|
|
7250
7255
|
var CONTINUE = true;
|
|
7251
7256
|
var EXIT = false;
|
|
7252
7257
|
var SKIP = "skip";
|
|
7253
|
-
function visitParents(tree,
|
|
7258
|
+
function visitParents(tree, testOrEnterOrVisitors, enterOrVisitorsOrReverse, reverse) {
|
|
7259
|
+
if (!tree || typeof tree !== "object") {
|
|
7260
|
+
throw new Error("Unexpected value `" + tree + "` for `tree`, expected node");
|
|
7261
|
+
}
|
|
7262
|
+
let preorder = true;
|
|
7254
7263
|
let check;
|
|
7255
|
-
|
|
7256
|
-
|
|
7257
|
-
|
|
7264
|
+
let visitors;
|
|
7265
|
+
let enter;
|
|
7266
|
+
let exit3;
|
|
7267
|
+
if (typeof enterOrVisitorsOrReverse === "function" || enterOrVisitorsOrReverse && typeof enterOrVisitorsOrReverse === "object") {
|
|
7268
|
+
check = /** @type {Test} */
|
|
7269
|
+
testOrEnterOrVisitors;
|
|
7270
|
+
visitors = enterOrVisitorsOrReverse;
|
|
7271
|
+
if (reverse) preorder = false;
|
|
7258
7272
|
} else {
|
|
7259
|
-
|
|
7273
|
+
visitors = /** @type {Visitors | Visitor} */
|
|
7274
|
+
testOrEnterOrVisitors;
|
|
7275
|
+
if (enterOrVisitorsOrReverse) preorder = false;
|
|
7276
|
+
}
|
|
7277
|
+
if (typeof visitors === "function") {
|
|
7278
|
+
enter = visitors;
|
|
7279
|
+
} else if (visitors && typeof visitors === "object") {
|
|
7280
|
+
if (visitors.enter === null || visitors.enter === void 0) {
|
|
7281
|
+
} else if (typeof visitors.enter === "function") {
|
|
7282
|
+
enter = visitors.enter;
|
|
7283
|
+
} else {
|
|
7284
|
+
throw new Error(
|
|
7285
|
+
"Unexpected value `" + visitors.enter + "` for `visitors.enter`, expected optional visitor"
|
|
7286
|
+
);
|
|
7287
|
+
}
|
|
7288
|
+
if (typeof visitors.exit === "function") {
|
|
7289
|
+
exit3 = visitors.exit;
|
|
7290
|
+
} else {
|
|
7291
|
+
throw new Error(
|
|
7292
|
+
"Unexpected value `" + visitors.exit + "` for `visitors.exit`, expected visitor (pass a visitor directly if you only want an enter visitor)"
|
|
7293
|
+
);
|
|
7294
|
+
}
|
|
7295
|
+
} else {
|
|
7296
|
+
throw new Error(
|
|
7297
|
+
"Unexpected value `" + visitors + "` for `enter` or `visitors`, expected visitor or object with visitors"
|
|
7298
|
+
);
|
|
7260
7299
|
}
|
|
7261
7300
|
const is2 = convert(check);
|
|
7262
|
-
const step =
|
|
7301
|
+
const step = preorder ? 1 : -1;
|
|
7263
7302
|
factory(tree, void 0, [])();
|
|
7264
7303
|
function factory(node2, index2, parents) {
|
|
7265
7304
|
const value = (
|
|
@@ -7280,12 +7319,10 @@ function visitParents(tree, test, visitor, reverse) {
|
|
|
7280
7319
|
}
|
|
7281
7320
|
return visit;
|
|
7282
7321
|
function visit() {
|
|
7322
|
+
const matches = !check || is2(node2, index2, parents[parents.length - 1] || void 0);
|
|
7283
7323
|
let result = empty;
|
|
7284
|
-
|
|
7285
|
-
|
|
7286
|
-
let grandparents;
|
|
7287
|
-
if (!test || is2(node2, index2, parents[parents.length - 1] || void 0)) {
|
|
7288
|
-
result = toResult(visitor(node2, parents));
|
|
7324
|
+
if (enter && matches) {
|
|
7325
|
+
result = toResult(enter(node2, parents, index2));
|
|
7289
7326
|
if (result[0] === EXIT) {
|
|
7290
7327
|
return result;
|
|
7291
7328
|
}
|
|
@@ -7296,11 +7333,11 @@ function visitParents(tree, test, visitor, reverse) {
|
|
|
7296
7333
|
node2
|
|
7297
7334
|
);
|
|
7298
7335
|
if (nodeAsParent.children && result[0] !== SKIP) {
|
|
7299
|
-
offset = (
|
|
7300
|
-
grandparents = parents
|
|
7336
|
+
let offset = (preorder ? -1 : nodeAsParent.children.length) + step;
|
|
7337
|
+
const grandparents = [...parents, nodeAsParent];
|
|
7301
7338
|
while (offset > -1 && offset < nodeAsParent.children.length) {
|
|
7302
7339
|
const child = nodeAsParent.children[offset];
|
|
7303
|
-
subresult = factory(child, offset, grandparents)();
|
|
7340
|
+
const subresult = factory(child, offset, grandparents)();
|
|
7304
7341
|
if (subresult[0] === EXIT) {
|
|
7305
7342
|
return subresult;
|
|
7306
7343
|
}
|
|
@@ -7308,6 +7345,17 @@ function visitParents(tree, test, visitor, reverse) {
|
|
|
7308
7345
|
}
|
|
7309
7346
|
}
|
|
7310
7347
|
}
|
|
7348
|
+
if (exit3 && matches) {
|
|
7349
|
+
const exitResult = toResult(exit3(node2, parents, index2));
|
|
7350
|
+
if (exitResult[0] === SKIP) {
|
|
7351
|
+
throw new Error(
|
|
7352
|
+
"Unexpected value `" + exitResult[0] + "` from `exit`, expected `CONTINUE`, `EXIT`, index, or nothing"
|
|
7353
|
+
);
|
|
7354
|
+
}
|
|
7355
|
+
if (exitResult[0] === EXIT || typeof exitResult[1] === "number") {
|
|
7356
|
+
return exitResult;
|
|
7357
|
+
}
|
|
7358
|
+
}
|
|
7311
7359
|
return result;
|
|
7312
7360
|
}
|
|
7313
7361
|
}
|
|
@@ -7329,34 +7377,19 @@ function findAndReplace(tree, list2, options) {
|
|
|
7329
7377
|
const pairs = toPairs(list2);
|
|
7330
7378
|
let pairIndex = -1;
|
|
7331
7379
|
while (++pairIndex < pairs.length) {
|
|
7332
|
-
visitParents(tree,
|
|
7380
|
+
visitParents(tree, visitor);
|
|
7333
7381
|
}
|
|
7334
|
-
function visitor(node2, parents) {
|
|
7335
|
-
|
|
7336
|
-
|
|
7337
|
-
while (++index2 < parents.length) {
|
|
7338
|
-
const parent = parents[index2];
|
|
7339
|
-
const siblings = grandparent ? grandparent.children : void 0;
|
|
7340
|
-
if (ignored(
|
|
7341
|
-
parent,
|
|
7342
|
-
siblings ? siblings.indexOf(parent) : void 0,
|
|
7343
|
-
grandparent
|
|
7344
|
-
)) {
|
|
7345
|
-
return;
|
|
7346
|
-
}
|
|
7347
|
-
grandparent = parent;
|
|
7348
|
-
}
|
|
7349
|
-
if (grandparent) {
|
|
7350
|
-
return handler(node2, parents);
|
|
7382
|
+
function visitor(node2, parents, index2) {
|
|
7383
|
+
if (node2.type === "text" && typeof index2 === "number") {
|
|
7384
|
+
return handler(node2, parents, index2);
|
|
7351
7385
|
}
|
|
7386
|
+
if (ignored(node2, index2, parents[parents.length - 1])) return SKIP;
|
|
7352
7387
|
}
|
|
7353
|
-
function handler(node2, parents) {
|
|
7388
|
+
function handler(node2, parents, index2) {
|
|
7354
7389
|
const parent = parents[parents.length - 1];
|
|
7355
7390
|
const find = pairs[pairIndex][0];
|
|
7356
7391
|
const replace2 = pairs[pairIndex][1];
|
|
7357
7392
|
let start = 0;
|
|
7358
|
-
const siblings = parent.children;
|
|
7359
|
-
const index2 = siblings.indexOf(node2);
|
|
7360
7393
|
let change = false;
|
|
7361
7394
|
let nodes = [];
|
|
7362
7395
|
find.lastIndex = 0;
|
|
@@ -7415,7 +7448,13 @@ function toPairs(tupleOrList) {
|
|
|
7415
7448
|
throw new TypeError("Expected find and replace tuple or list of tuples");
|
|
7416
7449
|
}
|
|
7417
7450
|
const result = [];
|
|
7418
|
-
const list2 = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ?
|
|
7451
|
+
const list2 = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? (
|
|
7452
|
+
/** @type {FindAndReplaceList} */
|
|
7453
|
+
tupleOrList
|
|
7454
|
+
) : [
|
|
7455
|
+
/** @type {FindAndReplaceTuple} */
|
|
7456
|
+
tupleOrList
|
|
7457
|
+
];
|
|
7419
7458
|
let index2 = -1;
|
|
7420
7459
|
while (++index2 < list2.length) {
|
|
7421
7460
|
const tuple = list2[index2];
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
listUserRecordsFromServers,
|
|
3
3
|
readLiveDbRecordAfterTombstoneMerge
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-W7FGZRLK.js";
|
|
5
5
|
import {
|
|
6
6
|
agentRecordHasConfiguredCredential
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-5IKRTRRR.js";
|
|
8
8
|
import {
|
|
9
9
|
deriveCredentialGroup
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WYJTNSVL.js";
|
|
11
11
|
import {
|
|
12
12
|
isTombstoneRecord
|
|
13
13
|
} from "./chunk-D2MDMY2M.js";
|