@dev.sail.money/sailor 1.1.0-57 → 1.1.0-58

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 (104) hide show
  1. package/package.json +1 -1
  2. package/packages/cli/dist/index.cjs +60 -47
  3. package/packages/cli/dist/server.cjs +20 -3
  4. package/packages/sdk/dist/intelligence.d.ts +1 -1
  5. package/packages/sdk/dist/intelligence.js +1 -1
  6. package/packages/ui/dist/assets/{add-BkkqrYWB.js → add-C-dsfxDo.js} +1 -1
  7. package/packages/ui/dist/assets/{all-wallets-DkOBJCgx.js → all-wallets-CnIqhv43.js} +1 -1
  8. package/packages/ui/dist/assets/{app-store-COmofKYQ.js → app-store-ChQtg1vX.js} +1 -1
  9. package/packages/ui/dist/assets/{apple-C74TaioJ.js → apple-BjgF3Q4D.js} +1 -1
  10. package/packages/ui/dist/assets/{arrow-bottom-CrMrxCkH.js → arrow-bottom-B6a-dLkm.js} +1 -1
  11. package/packages/ui/dist/assets/{arrow-bottom-circle-RBTLtzcR.js → arrow-bottom-circle-iFIsQg-8.js} +1 -1
  12. package/packages/ui/dist/assets/{arrow-left-C4b71cmS.js → arrow-left-CZGr-Z6-.js} +1 -1
  13. package/packages/ui/dist/assets/{arrow-right-D5clzuwD.js → arrow-right-BHkO-l6J.js} +1 -1
  14. package/packages/ui/dist/assets/{arrow-top-C2TbLIrV.js → arrow-top-CSAHnpAG.js} +1 -1
  15. package/packages/ui/dist/assets/{bank-CdrDcIo1.js → bank-CBmII1x8.js} +1 -1
  16. package/packages/ui/dist/assets/{basic-DC_nce86.js → basic-z0IGeGoe.js} +1 -1
  17. package/packages/ui/dist/assets/{browser-Bds2ajCA.js → browser-C63FxwgG.js} +1 -1
  18. package/packages/ui/dist/assets/{card-BBbe5M7a.js → card-B6aMu64l.js} +1 -1
  19. package/packages/ui/dist/assets/{ccip-Cd-Us0eQ.js → ccip-DpFAdEcw.js} +1 -1
  20. package/packages/ui/dist/assets/{checkmark-Bu8wk6S3.js → checkmark-CXN3abIo.js} +1 -1
  21. package/packages/ui/dist/assets/{checkmark-bold-D_We1fZp.js → checkmark-bold-CnE9PClq.js} +1 -1
  22. package/packages/ui/dist/assets/{chevron-bottom-0NdO8szM.js → chevron-bottom-BycxXH48.js} +1 -1
  23. package/packages/ui/dist/assets/{chevron-left-ByFZqD-8.js → chevron-left-RCx9bqyC.js} +1 -1
  24. package/packages/ui/dist/assets/{chevron-right-BnIkNb00.js → chevron-right-B1DFs8_e.js} +1 -1
  25. package/packages/ui/dist/assets/{chevron-top-DU8ubJaU.js → chevron-top-Dqq8VaiR.js} +1 -1
  26. package/packages/ui/dist/assets/{chrome-store-D4y5tSBu.js → chrome-store-N1IilO-E.js} +1 -1
  27. package/packages/ui/dist/assets/{clock-CftWr0z5.js → clock-8pQLsWRy.js} +1 -1
  28. package/packages/ui/dist/assets/{close-I0yiZodl.js → close-LHyV89kq.js} +1 -1
  29. package/packages/ui/dist/assets/{coinPlaceholder-D0OAREKG.js → coinPlaceholder-5bT2NQld.js} +1 -1
  30. package/packages/ui/dist/assets/{compass-dvpQeqSx.js → compass-CLhzgv54.js} +1 -1
  31. package/packages/ui/dist/assets/{copy-BugJ4WFr.js → copy-DJ6auzXs.js} +1 -1
  32. package/packages/ui/dist/assets/{core-BzIB7-vh.js → core-Cp3xGXA6.js} +3 -3
  33. package/packages/ui/dist/assets/cursor-CIbOGu5K.js +3 -0
  34. package/packages/ui/dist/assets/{cursor-transparent-BPb-3Hyk.js → cursor-transparent-CohavsEh.js} +1 -1
  35. package/packages/ui/dist/assets/{desktop-CeDRdIIG.js → desktop-n28VeLf1.js} +1 -1
  36. package/packages/ui/dist/assets/{disconnect-IwpWvrKA.js → disconnect-BytBq3zd.js} +1 -1
  37. package/packages/ui/dist/assets/{discord-XhqhcqiG.js → discord-DHkapJMS.js} +1 -1
  38. package/packages/ui/dist/assets/{etherscan-tWzMxtji.js → etherscan-C43zbGve.js} +1 -1
  39. package/packages/ui/dist/assets/{events-jqbAbVlK.js → events-BRxyYKwO.js} +1 -1
  40. package/packages/ui/dist/assets/{exclamation-triangle-DEvePQkx.js → exclamation-triangle-lpLpOiUn.js} +1 -1
  41. package/packages/ui/dist/assets/{extension-Dode6JDE.js → extension-BAcEl3l1.js} +1 -1
  42. package/packages/ui/dist/assets/{external-link-DyarUzCV.js → external-link-Bi2lQaCr.js} +1 -1
  43. package/packages/ui/dist/assets/{facebook-DqKLKTw4.js → facebook-CYLNHpDr.js} +1 -1
  44. package/packages/ui/dist/assets/{fallback-CLs3NgaE.js → fallback-DAe2x1wz.js} +1 -1
  45. package/packages/ui/dist/assets/{farcaster-BVbjfPad.js → farcaster-CpbuoD-A.js} +1 -1
  46. package/packages/ui/dist/assets/{filters-BqCfeyWr.js → filters-2SeCLkqg.js} +1 -1
  47. package/packages/ui/dist/assets/{github-8QpZFu7F.js → github-CXGuiWnN.js} +1 -1
  48. package/packages/ui/dist/assets/{google-CVk0kyBN.js → google-u86NQc9o.js} +1 -1
  49. package/packages/ui/dist/assets/{help-circle-fKcWeR5p.js → help-circle-VXfl2gxH.js} +1 -1
  50. package/packages/ui/dist/assets/{id-Ci8t7CBc.js → id--tXCaijO.js} +1 -1
  51. package/packages/ui/dist/assets/{image-BlGujsvY.js → image-fGZdyWSE.js} +1 -1
  52. package/packages/ui/dist/assets/{index-iL8gxnJZ.js → index-B7HoHWiW.js} +1 -1
  53. package/packages/ui/dist/assets/{index-DsOOZoQ6.js → index-BbxcsrfK.js} +1 -1
  54. package/packages/ui/dist/assets/index-CBGxOWky.css +1 -0
  55. package/packages/ui/dist/assets/{index-DFLVuZGD.js → index-CQAVTqzM.js} +1 -1
  56. package/packages/ui/dist/assets/{index-CHdC1RP1.js → index-C_eqUkeY.js} +3 -3
  57. package/packages/ui/dist/assets/{index-26mk1_O0.js → index-PxeN2I9s.js} +1 -1
  58. package/packages/ui/dist/assets/{index-H2WA2taB.js → index-vPyTb3MD.js} +79 -78
  59. package/packages/ui/dist/assets/{index.es-Bhx_uNt5.js → index.es-r4dwiXlA.js} +4 -4
  60. package/packages/ui/dist/assets/{info-BDqeqntk.js → info-C_QVyvKM.js} +1 -1
  61. package/packages/ui/dist/assets/{info-circle-CrFxScTA.js → info-circle-BQ6SUcsG.js} +1 -1
  62. package/packages/ui/dist/assets/{lightbulb-BxSygEig.js → lightbulb-DiDGGbfa.js} +1 -1
  63. package/packages/ui/dist/assets/{mail-4GDY-ze2.js → mail-A6VjvryF.js} +1 -1
  64. package/packages/ui/dist/assets/{metamask-sdk-DPCbwaIS.js → metamask-sdk-wtBcTydn.js} +1 -1
  65. package/packages/ui/dist/assets/{mobile-BUUviKTv.js → mobile-pGU4EH2u.js} +1 -1
  66. package/packages/ui/dist/assets/{more-DhnT17wk.js → more-DcCpyKKY.js} +1 -1
  67. package/packages/ui/dist/assets/{network-placeholder-TsxqT2gD.js → network-placeholder-CuG8kjRQ.js} +1 -1
  68. package/packages/ui/dist/assets/{nftPlaceholder-jgTe8P1g.js → nftPlaceholder-CR04xCSJ.js} +1 -1
  69. package/packages/ui/dist/assets/{off-DcHkZT5o.js → off-B0iV5ojg.js} +1 -1
  70. package/packages/ui/dist/assets/{parseSignature-B8Lpw1L2.js → parseSignature-5Cmk56ft.js} +1 -1
  71. package/packages/ui/dist/assets/{play-store-CJstT7y7.js → play-store-DihUKb7H.js} +1 -1
  72. package/packages/ui/dist/assets/{plus-MYc63_GS.js → plus-CsIbMkij.js} +1 -1
  73. package/packages/ui/dist/assets/{qr-code-d-0KT0T0.js → qr-code-Dqbt_uUa.js} +1 -1
  74. package/packages/ui/dist/assets/{recycle-horizontal-DTip0Vh-.js → recycle-horizontal-DAgZ0s3B.js} +1 -1
  75. package/packages/ui/dist/assets/{refresh-Bvbjnc5_.js → refresh-BckmchSk.js} +1 -1
  76. package/packages/ui/dist/assets/{reown-logo-CyEiIKwt.js → reown-logo-Ck_DLLhR.js} +1 -1
  77. package/packages/ui/dist/assets/{search-CvaM9X5d.js → search-DvTEXRW7.js} +1 -1
  78. package/packages/ui/dist/assets/{secp256k1-DcETRhg-.js → secp256k1-C98H2goB.js} +1 -1
  79. package/packages/ui/dist/assets/{send-DeX0yj_h.js → send-BIKg5OD7.js} +1 -1
  80. package/packages/ui/dist/assets/{swapHorizontal-BhIMtg47.js → swapHorizontal-7TJPm-09.js} +1 -1
  81. package/packages/ui/dist/assets/{swapHorizontalBold-Bcff8r01.js → swapHorizontalBold-OPBCTkZ8.js} +1 -1
  82. package/packages/ui/dist/assets/{swapHorizontalMedium-D6exybM7.js → swapHorizontalMedium-BiR-wXTk.js} +1 -1
  83. package/packages/ui/dist/assets/{swapHorizontalRoundedBold-E7S191SI.js → swapHorizontalRoundedBold-CjZW0yXV.js} +1 -1
  84. package/packages/ui/dist/assets/{swapVertical-DnaSU8Vj.js → swapVertical-BvJSfTbs.js} +1 -1
  85. package/packages/ui/dist/assets/{telegram-BhfatdcJ.js → telegram-BIvNqVBz.js} +1 -1
  86. package/packages/ui/dist/assets/{three-dots-BTpm_nUE.js → three-dots-ohueHxZy.js} +1 -1
  87. package/packages/ui/dist/assets/{twitch-BDRYcsTl.js → twitch-BqrnP162.js} +1 -1
  88. package/packages/ui/dist/assets/{twitterIcon-3FzeZC95.js → twitterIcon-Dw0kNY9c.js} +1 -1
  89. package/packages/ui/dist/assets/{verify-CUzf_uJD.js → verify-DRBQ8AnL.js} +1 -1
  90. package/packages/ui/dist/assets/{verify-filled-BbsqfxaJ.js → verify-filled-9og8tsf9.js} +1 -1
  91. package/packages/ui/dist/assets/{w3m-modal-BqaDz6_Y.js → w3m-modal-rIMTDhot.js} +1 -1
  92. package/packages/ui/dist/assets/{wallet-DP0T4ID6.js → wallet-X2eNWOim.js} +1 -1
  93. package/packages/ui/dist/assets/{wallet-placeholder-D6lN9LWp.js → wallet-placeholder-BrLMYsyb.js} +1 -1
  94. package/packages/ui/dist/assets/{walletconnect-TbWRXzdf.js → walletconnect-C4JQX1g7.js} +1 -1
  95. package/packages/ui/dist/assets/{warning-circle-Cu3F_XOK.js → warning-circle-obEvu57J.js} +1 -1
  96. package/packages/ui/dist/assets/{x-BmIFFXMW.js → x-BkGddY7Q.js} +1 -1
  97. package/packages/ui/dist/index.html +2 -2
  98. package/templates/default/_gitignore +6 -32
  99. package/templates/default/package.json +1 -0
  100. package/templates/default/src/mandate.ts +1 -1
  101. package/packages/ui/dist/assets/cursor-T9CAl8CQ.js +0 -3
  102. package/packages/ui/dist/assets/index-ZMTNJl7U.css +0 -1
  103. package/templates/default/node_modules/.bin/tsc +0 -43
  104. package/templates/default/node_modules/.bin/tsserver +0 -43
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dev.sail.money/sailor",
3
- "version": "1.1.0-57",
3
+ "version": "1.1.0-58",
4
4
  "description": "Operator toolkit for Sail Protocol",
5
5
  "bin": {
6
6
  "sailor": "packages/cli/dist/index.cjs"
@@ -38333,10 +38333,15 @@ function readJsonFile(filePath) {
38333
38333
  return null;
38334
38334
  }
38335
38335
  }
38336
- function writeJsonFile(filePath, data) {
38336
+ function writeJsonFile(filePath, data, mode) {
38337
38337
  import_node_fs2.default.mkdirSync(import_node_path.default.dirname(filePath), { recursive: true });
38338
- import_node_fs2.default.writeFileSync(filePath, `${JSON.stringify(data, null, 2)}
38339
- `);
38338
+ import_node_fs2.default.writeFileSync(
38339
+ filePath,
38340
+ `${JSON.stringify(data, null, 2)}
38341
+ `,
38342
+ mode !== void 0 ? { mode } : void 0
38343
+ );
38344
+ if (mode !== void 0) import_node_fs2.default.chmodSync(filePath, mode);
38340
38345
  }
38341
38346
  function fileExists(filePath) {
38342
38347
  return import_node_fs2.default.existsSync(filePath);
@@ -38377,6 +38382,18 @@ function parseEnvFile(filePath) {
38377
38382
  }
38378
38383
  return out;
38379
38384
  }
38385
+ function persistPassphrase(envPath, passphrase) {
38386
+ let content = "";
38387
+ if (import_node_fs2.default.existsSync(envPath)) {
38388
+ content = import_node_fs2.default.readFileSync(envPath, "utf-8").replace(/^SAIL_PASSPHRASE=.*\n?/m, "");
38389
+ }
38390
+ const trimmed = content.trimEnd();
38391
+ content = `${trimmed}${trimmed.length > 0 ? "\n" : ""}SAIL_PASSPHRASE=${passphrase}
38392
+ `;
38393
+ import_node_fs2.default.mkdirSync(import_node_path.default.dirname(envPath), { recursive: true });
38394
+ import_node_fs2.default.writeFileSync(envPath, content, { mode: 384 });
38395
+ import_node_fs2.default.chmodSync(envPath, 384);
38396
+ }
38380
38397
  function checksum4(address) {
38381
38398
  return getAddress(address);
38382
38399
  }
@@ -39701,7 +39718,18 @@ async function loadManagerSigner(safe) {
39701
39718
  'No agent wallet found.\nRun "sailor keys generate" and choose "agent wallet".'
39702
39719
  );
39703
39720
  }
39704
- return LocalKeyring.fromKeystore(keystore, passphrase);
39721
+ try {
39722
+ return await LocalKeyring.fromKeystore(keystore, passphrase);
39723
+ } catch {
39724
+ throw new Error(
39725
+ "SAIL_PASSPHRASE does not match this keystore.\nCheck the value in .sail/.env.local (or the SAIL_PASSPHRASE CI secret) \u2014 it must be the passphrase the agent wallet was encrypted with."
39726
+ );
39727
+ }
39728
+ }
39729
+ if (process.stdin.isTTY !== true && keyExists("manager", safe)) {
39730
+ throw new Error(
39731
+ 'Agent keystore found but SAIL_PASSPHRASE is not set.\nIf you created the key in the dashboard, add SAIL_PASSPHRASE to .sail/.env.local, or run "sailor keys generate".\nFor CI, set the SAIL_PASSPHRASE GitHub Actions secret.'
39732
+ );
39705
39733
  }
39706
39734
  return loadKeyring("manager", safe);
39707
39735
  }
@@ -40174,6 +40202,9 @@ async function doctor(options = {}) {
40174
40202
  } catch {
40175
40203
  }
40176
40204
  const chainIdMatches = chainIdOnChain === null ? null : chainIdOnChain === chainId;
40205
+ const managerKeystorePresent = keyExists("manager", stored?.safe);
40206
+ const passphraseSet = Boolean(process.env.SAIL_PASSPHRASE);
40207
+ const passphraseGap = managerKeystorePresent && !passphraseSet;
40177
40208
  let ownerBal = null;
40178
40209
  let managerBal = null;
40179
40210
  try {
@@ -40195,6 +40226,7 @@ async function doctor(options = {}) {
40195
40226
  owner: ownerAddr ? { address: ownerAddr, ...ownerBal ?? {} } : null,
40196
40227
  manager: managerAddr ? { address: managerAddr, ...managerBal ?? {} } : null
40197
40228
  },
40229
+ passphrase: { keystorePresent: managerKeystorePresent, envSet: passphraseSet },
40198
40230
  account: safe,
40199
40231
  saltNonce: stored?.saltNonce ?? null,
40200
40232
  permissions,
@@ -40256,6 +40288,11 @@ async function doctor(options = {}) {
40256
40288
  ' \u2192 The manager (agent) pays gas. Fund it before "sailor run" or dispatches fail.'
40257
40289
  );
40258
40290
  }
40291
+ if (passphraseGap) {
40292
+ console.log(
40293
+ ' \u26A0 SAIL_PASSPHRASE is not set, but an agent keystore exists.\n "sailor run" will prompt interactively; CI and the scheduled cron will fail to unlock it.\n Add SAIL_PASSPHRASE to .sail/.env.local (the dashboard does this automatically when it creates the key).'
40294
+ );
40295
+ }
40259
40296
  if (!safe) {
40260
40297
  console.log('\nAccount: none found. Run "sailor onboard --new-sma", or pass --account <addr>.');
40261
40298
  console.log("Skipping permission checks.");
@@ -40564,16 +40601,6 @@ before changing strategy code or running commands that touch funds.
40564
40601
  function writeIfMissing2(file, content) {
40565
40602
  if (!import_node_fs8.default.existsSync(file)) import_node_fs8.default.writeFileSync(file, content, "utf-8");
40566
40603
  }
40567
- function cliVersion() {
40568
- try {
40569
- const pkg = JSON.parse(
40570
- import_node_fs8.default.readFileSync(import_node_path7.default.join(packageRoot(), "package.json"), "utf-8")
40571
- );
40572
- return pkg.version ?? "0.0.0";
40573
- } catch {
40574
- return "0.0.0";
40575
- }
40576
- }
40577
40604
  function scaffoldProjectWorkspace(dest, name, options) {
40578
40605
  const chainId = options.chain ? (() => {
40579
40606
  const n = Number(options.chain);
@@ -40701,23 +40728,18 @@ run from the repo root.` : ` Available: ${available}`;
40701
40728
  if (import_node_fs8.default.existsSync(pkgPath)) {
40702
40729
  const pkg = JSON.parse(import_node_fs8.default.readFileSync(pkgPath, "utf-8"));
40703
40730
  pkg.name = name;
40704
- const devDeps = pkg.devDependencies ?? {};
40705
- devDeps["@sail.money/sailor"] = `^${cliVersion()}`;
40706
- pkg.devDependencies = devDeps;
40731
+ const deps = pkg.dependencies ?? {};
40732
+ if (deps["@sail/sdk"] === "workspace:*") {
40733
+ const sdkPath = import_node_path7.default.join(pkgRoot, "packages", "sdk");
40734
+ deps["@sail/sdk"] = import_node_fs8.default.existsSync(sdkPath) ? `file:${sdkPath}` : (
40735
+ // Fallback: SDK not bundled — user must install it manually.
40736
+ "0.1.0"
40737
+ );
40738
+ }
40739
+ pkg.dependencies = deps;
40707
40740
  import_node_fs8.default.writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}
40708
40741
  `);
40709
40742
  }
40710
- const tsconfigPath = import_node_path7.default.join(dest, "tsconfig.json");
40711
- if (import_node_fs8.default.existsSync(tsconfigPath)) {
40712
- const tsconfig = JSON.parse(import_node_fs8.default.readFileSync(tsconfigPath, "utf-8"));
40713
- const co = tsconfig.compilerOptions;
40714
- if (co && "paths" in co) {
40715
- delete co.paths;
40716
- delete co.baseUrl;
40717
- import_node_fs8.default.writeFileSync(tsconfigPath, `${JSON.stringify(tsconfig, null, 2)}
40718
- `);
40719
- }
40720
- }
40721
40743
  scaffoldProjectWorkspace(dest, name, options);
40722
40744
  scaffoldFoundryWorkspace(dest);
40723
40745
  printWelcome(
@@ -40863,7 +40885,7 @@ async function keysGenerate() {
40863
40885
  }
40864
40886
  const keyring = LocalKeyring.generate();
40865
40887
  const keystore = await keyring.exportKeystore(password);
40866
- writeJsonFile(keyPath(role), keystore);
40888
+ writeJsonFile(keyPath(role), keystore, 384);
40867
40889
  const label = role === "manager" ? "Agent wallet" : "Mandate signer";
40868
40890
  console.log(`
40869
40891
  ${label} key saved. Address: ${checksum4(keyring.address)}`);
@@ -40873,16 +40895,7 @@ ${label} key saved. Address: ${checksum4(keyring.address)}`);
40873
40895
  "\nSave passphrase to .sail/.env.local for non-interactive use? (required for CI/GitHub Actions)"
40874
40896
  );
40875
40897
  if (save) {
40876
- const envPath = sailPath(".env.local");
40877
- let content = "";
40878
- if (import_node_fs9.default.existsSync(envPath)) {
40879
- content = import_node_fs9.default.readFileSync(envPath, "utf-8");
40880
- content = content.replace(/^SAIL_PASSPHRASE=.*\n?/m, "");
40881
- }
40882
- content = content.trimEnd() + (content.length > 0 ? "\n" : "") + `SAIL_PASSPHRASE=${password}
40883
- `;
40884
- import_node_fs9.default.mkdirSync(import_node_path8.default.dirname(envPath), { recursive: true });
40885
- import_node_fs9.default.writeFileSync(envPath, content, { mode: 384 });
40898
+ persistPassphrase(sailPath(".env.local"), password);
40886
40899
  console.log("\u2713 SAIL_PASSPHRASE saved to .sail/.env.local (mode 0600)");
40887
40900
  console.log(" sailor run will now work non-interactively.");
40888
40901
  } else {
@@ -43286,15 +43299,15 @@ ensure the agent that signs dispatches holds this key.`
43286
43299
  if (fileExists(target)) {
43287
43300
  const backup = `${target}.${Date.now()}.bak`;
43288
43301
  const existing = readJsonFile(target);
43289
- if (existing) writeJsonFile(backup, existing);
43302
+ if (existing) writeJsonFile(backup, existing, 384);
43290
43303
  say(() => console.log(` Backed up the old agent keystore \u2192 ${backup}`));
43291
43304
  }
43292
43305
  const keyring = LocalKeyring.generate();
43293
43306
  const keystore = await keyring.exportKeystore(password);
43294
- writeJsonFile(target, keystore);
43307
+ writeJsonFile(target, keystore, 384);
43295
43308
  const perManagerPath = managerKeystorePath(keyring.address);
43296
43309
  (0, import_node_fs13.mkdirSync)(sailPath("keys", "managers"), { recursive: true });
43297
- writeJsonFile(perManagerPath, keystore);
43310
+ writeJsonFile(perManagerPath, keystore, 384);
43298
43311
  say(
43299
43312
  () => console.log(
43300
43313
  ` New agent wallet: ${checksum4(keyring.address)} (keystore at .sail/keys/manager.json)`
@@ -43310,11 +43323,11 @@ function promoteManagerKeystore(newManager, say) {
43310
43323
  const displaced = readJsonFile(activeTarget);
43311
43324
  if (displaced?.address) {
43312
43325
  const snapshotPath = managerKeystorePath(displaced.address);
43313
- if (readJsonFile(snapshotPath) === null) writeJsonFile(snapshotPath, displaced);
43326
+ if (readJsonFile(snapshotPath) === null) writeJsonFile(snapshotPath, displaced, 384);
43314
43327
  } else if (displaced) {
43315
- writeJsonFile(`${activeTarget}.${Date.now()}.bak`, displaced);
43328
+ writeJsonFile(`${activeTarget}.${Date.now()}.bak`, displaced, 384);
43316
43329
  }
43317
- writeJsonFile(activeTarget, stored);
43330
+ writeJsonFile(activeTarget, stored, 384);
43318
43331
  say(
43319
43332
  () => console.log(` Agent wallet keystore for ${newManager} is now active (.sail/keys/manager.json).`)
43320
43333
  );
@@ -44341,7 +44354,7 @@ function uiStop() {
44341
44354
  }
44342
44355
 
44343
44356
  // src/index.ts
44344
- function cliVersion2() {
44357
+ function cliVersion() {
44345
44358
  try {
44346
44359
  const pkg = JSON.parse((0, import_node_fs18.readFileSync)((0, import_node_path14.join)(packageRoot(), "package.json"), "utf-8"));
44347
44360
  return pkg.version ?? "0.0.0";
@@ -44350,7 +44363,7 @@ function cliVersion2() {
44350
44363
  }
44351
44364
  }
44352
44365
  var program2 = new Command();
44353
- program2.name("sailor").description("Operator toolkit for Sail Protocol").version(cliVersion2());
44366
+ program2.name("sailor").description("Operator toolkit for Sail Protocol").version(cliVersion());
44354
44367
  function action(fn) {
44355
44368
  return async () => {
44356
44369
  try {
@@ -48753,6 +48753,18 @@ function parseEnvFile(file) {
48753
48753
  }
48754
48754
  return out;
48755
48755
  }
48756
+ function persistPassphrase(envPath, passphrase) {
48757
+ let content = "";
48758
+ if (import_node_fs2.default.existsSync(envPath)) {
48759
+ content = import_node_fs2.default.readFileSync(envPath, "utf-8").replace(/^SAIL_PASSPHRASE=.*\n?/m, "");
48760
+ }
48761
+ const trimmed = content.trimEnd();
48762
+ content = `${trimmed}${trimmed.length > 0 ? "\n" : ""}SAIL_PASSPHRASE=${passphrase}
48763
+ `;
48764
+ import_node_fs2.default.mkdirSync(import_node_path.default.dirname(envPath), { recursive: true });
48765
+ import_node_fs2.default.writeFileSync(envPath, content, { mode: 384 });
48766
+ import_node_fs2.default.chmodSync(envPath, 384);
48767
+ }
48756
48768
  var CHAIN_NAMES = {
48757
48769
  1: "ethereum",
48758
48770
  10: "optimism",
@@ -49137,7 +49149,9 @@ function startServer(sailDir, { port = PORT } = {}) {
49137
49149
  const keystore = await keyring.exportKeystore(password);
49138
49150
  import_node_fs2.default.mkdirSync(at("keys"), { recursive: true });
49139
49151
  import_node_fs2.default.writeFileSync(managerKeyPath(safe), `${JSON.stringify(keystore, null, 2)}
49140
- `);
49152
+ `, { mode: 384 });
49153
+ import_node_fs2.default.chmodSync(managerKeyPath(safe), 384);
49154
+ persistPassphrase(at(".env.local"), password);
49141
49155
  try {
49142
49156
  const ev = { ts: (/* @__PURE__ */ new Date()).toISOString(), actor: "owner", type: "signer_created", method, address: keyring.address, safe };
49143
49157
  import_node_fs2.default.appendFileSync(at("activity.jsonl"), `${JSON.stringify(ev)}
@@ -49574,7 +49588,8 @@ function startServer(sailDir, { port = PORT } = {}) {
49574
49588
  if (chainId) existing.CHAIN_ID = String(chainId);
49575
49589
  const content = Object.entries(existing).map(([k, v]) => `${k}=${v}`).join("\n") + "\n";
49576
49590
  import_node_fs2.default.mkdirSync(sailDir, { recursive: true });
49577
- import_node_fs2.default.writeFileSync(envPath, content);
49591
+ import_node_fs2.default.writeFileSync(envPath, content, { mode: 384 });
49592
+ import_node_fs2.default.chmodSync(envPath, 384);
49578
49593
  res.json({ ok: true });
49579
49594
  } catch (err) {
49580
49595
  res.status(500).json({ error: String(err) });
@@ -49597,7 +49612,9 @@ function startServer(sailDir, { port = PORT } = {}) {
49597
49612
  const keystore = await keyring.exportKeystore(passphrase);
49598
49613
  import_node_fs2.default.mkdirSync(at("keys"), { recursive: true });
49599
49614
  import_node_fs2.default.writeFileSync(managerKeyPath2, `${JSON.stringify(keystore, null, 2)}
49600
- `);
49615
+ `, { mode: 384 });
49616
+ import_node_fs2.default.chmodSync(managerKeyPath2, 384);
49617
+ persistPassphrase(at(".env.local"), passphrase);
49601
49618
  res.json({ address: keyring.address, existed: false });
49602
49619
  } catch (err) {
49603
49620
  res.status(500).json({ error: String(err) });
@@ -5,7 +5,7 @@
5
5
  * Do not edit manually — run `pnpm build` to regenerate.
6
6
  *
7
7
  * Spec version : 1.2.0
8
- * Generated at : 2026-06-15T16:49:22.096Z
8
+ * Generated at : 2026-06-15T16:52:27.363Z
9
9
  */
10
10
  export declare const SAIL_INTELLIGENCE_BASE_URL = "https://api.sail.money";
11
11
  export declare const SAIL_INTELLIGENCE_DOCS_URL = "https://api.sail.money/docs";
@@ -5,7 +5,7 @@
5
5
  * Do not edit manually — run `pnpm build` to regenerate.
6
6
  *
7
7
  * Spec version : 1.2.0
8
- * Generated at : 2026-06-15T16:49:22.096Z
8
+ * Generated at : 2026-06-15T16:52:27.363Z
9
9
  */
10
10
  export const SAIL_INTELLIGENCE_BASE_URL = "https://api.sail.money";
11
11
  export const SAIL_INTELLIGENCE_DOCS_URL = "https://api.sail.money/docs";
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const d=o`<svg
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const d=o`<svg
2
2
  width="14"
3
3
  height="14"
4
4
  viewBox="0 0 14 14"
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const p=o`<svg fill="none" viewBox="0 0 24 24">
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const p=o`<svg fill="none" viewBox="0 0 24 24">
2
2
  <path
3
3
  style="fill: var(--wui-color-accent-100);"
4
4
  d="M10.2 6.6a3.6 3.6 0 1 1-7.2 0 3.6 3.6 0 0 1 7.2 0ZM21 6.6a3.6 3.6 0 1 1-7.2 0 3.6 3.6 0 0 1 7.2 0ZM10.2 17.4a3.6 3.6 0 1 1-7.2 0 3.6 3.6 0 0 1 7.2 0ZM21 17.4a3.6 3.6 0 1 1-7.2 0 3.6 3.6 0 0 1 7.2 0Z"
@@ -1,4 +1,4 @@
1
- import{F as t}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const e=t`
1
+ import{F as t}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const e=t`
2
2
  <svg width="36" height="36">
3
3
  <path
4
4
  d="M28.724 0H7.271A7.269 7.269 0 0 0 0 7.272v21.46A7.268 7.268 0 0 0 7.271 36H28.73A7.272 7.272 0 0 0 36 28.728V7.272A7.275 7.275 0 0 0 28.724 0Z"
@@ -1,4 +1,4 @@
1
- import{F as i}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const h=i`<svg fill="none" viewBox="0 0 40 40">
1
+ import{F as i}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const h=i`<svg fill="none" viewBox="0 0 40 40">
2
2
  <g clip-path="url(#a)">
3
3
  <g clip-path="url(#b)">
4
4
  <circle cx="20" cy="19.89" r="20" fill="#000" />
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const p=o`<svg fill="none" viewBox="0 0 14 15">
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const p=o`<svg fill="none" viewBox="0 0 14 15">
2
2
  <path
3
3
  fill="currentColor"
4
4
  fill-rule="evenodd"
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const t=o`<svg
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const t=o`<svg
2
2
  fill="none"
3
3
  viewBox="0 0 21 20"
4
4
  >
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const a=o`<svg fill="none" viewBox="0 0 14 15">
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const a=o`<svg fill="none" viewBox="0 0 14 15">
2
2
  <path
3
3
  fill="currentColor"
4
4
  fill-rule="evenodd"
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const p=o`<svg fill="none" viewBox="0 0 14 15">
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const p=o`<svg fill="none" viewBox="0 0 14 15">
2
2
  <path
3
3
  fill="currentColor"
4
4
  fill-rule="evenodd"
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const t=o`<svg fill="none" viewBox="0 0 14 15">
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const t=o`<svg fill="none" viewBox="0 0 14 15">
2
2
  <path
3
3
  fill="currentColor"
4
4
  fill-rule="evenodd"
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const H=o`<svg
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const H=o`<svg
2
2
  xmlns="http://www.w3.org/2000/svg"
3
3
  width="12"
4
4
  height="13"
@@ -1,4 +1,4 @@
1
- import{u as P,s as M,y as A,v as I,p as c,g as L,c as T,O as Y,l as E,m as J,R as O,h as ke,e as D,f as S,o as ft,j as Hi,W as gt,C as jt,d as si,T as kt,n as Qe,M as vi,k as yi,F as Ae,A as li,q as Ki}from"./core-BzIB7-vh.js";import{n as u,c as C,o as y,r as v,U as se,e as Gi,f as Yi,a as Ji}from"./index-CHdC1RP1.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const Qi=P`
1
+ import{u as P,s as M,y as A,v as I,p as c,g as L,c as T,O as Y,l as E,m as J,R as O,h as ke,e as D,f as S,o as ft,j as Hi,W as gt,C as jt,d as si,T as kt,n as Qe,M as vi,k as yi,F as Ae,A as li,q as Ki}from"./core-Cp3xGXA6.js";import{n as u,c as C,o as y,r as v,U as se,e as Gi,f as Yi,a as Ji}from"./index-C_eqUkeY.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const Qi=P`
2
2
  :host {
3
3
  position: relative;
4
4
  background-color: var(--wui-color-gray-glass-002);
@@ -1,4 +1,4 @@
1
- import{F as l}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const i=l`<svg fill="none" viewBox="0 0 20 20">
1
+ import{F as l}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const i=l`<svg fill="none" viewBox="0 0 20 20">
2
2
  <path
3
3
  fill="currentColor"
4
4
  fill-rule="evenodd"
@@ -1,4 +1,4 @@
1
- import{F as C}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const l=C`<svg
1
+ import{F as C}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const l=C`<svg
2
2
  xmlns="http://www.w3.org/2000/svg"
3
3
  width="12"
4
4
  height="13"
@@ -1 +1 @@
1
- import{B as u,cY as p,fP as k,c0 as x,de as M,dl as S,dk as $,bK as A,bR as T,cd as C,cJ as w,dc as E,a0 as b,dg as G}from"./index-H2WA2taB.js";class D extends u{constructor({callbackSelector:a,cause:t,data:f,extraData:e,sender:d,urls:i}){var o;super(t.shortMessage||"An error occurred while fetching for an offchain result.",{cause:t,metaMessages:[...t.metaMessages||[],(o=t.metaMessages)!=null&&o.length?"":[],"Offchain Gateway Call:",i&&[" Gateway URL(s):",...i.map(n=>` ${p(n)}`)],` Sender: ${d}`,` Data: ${f}`,` Callback selector: ${a}`,` Extra data: ${e}`].flat(),name:"OffchainLookupError"})}}class P extends u{constructor({result:a,url:t}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${p(t)}`,`Response: ${k(a)}`],name:"OffchainLookupResponseMalformedError"})}}class B extends u{constructor({sender:a,to:t}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${t}`,`OffchainLookup sender address: ${a}`],name:"OffchainLookupSenderMismatchError"})}}const H="0x556f1830",U={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]};async function J(c,{blockNumber:a,blockTag:t,data:f,requestOptions:e,to:d}){var s;const{args:i}=x({data:f,abi:[U]}),[o,n,l,g,y]=i,{ccipRead:h}=c,r=h&&typeof(h==null?void 0:h.request)=="function"?h.request:j;try{if(!M(d,o))throw new B({sender:o,to:d});const m=n.includes(S)?await $({data:l,ccipRequest:R=>r({...R,requestOptions:e})}):await r({data:l,requestOptions:e,sender:o,urls:n}),{data:L}=await A(c,{blockNumber:a,blockTag:t,data:T([g,C([{type:"bytes"},{type:"bytes"}],[m,y])]),requestOptions:e,to:d});return L}catch(m){throw(s=e==null?void 0:e.signal)!=null&&s.aborted?w(e.signal):E(m)?m:new D({callbackSelector:g,cause:m,data:f,extraData:y,sender:o,urls:n})}}async function j({data:c,requestOptions:a,sender:t,urls:f}){var d,i,o;let e=new Error("An unknown error occurred.");for(let n=0;n<f.length;n++){if((d=a==null?void 0:a.signal)!=null&&d.aborted)throw w(a.signal);const l=f[n],g=l.includes("{data}")?"GET":"POST",y=g==="POST"?{data:c,sender:t}:void 0,h=g==="POST"?{"Content-Type":"application/json"}:{};try{const r=await fetch(l.replace("{sender}",t.toLowerCase()).replace("{data}",c),{body:JSON.stringify(y),headers:h,method:g,...a!=null&&a.signal?{signal:a.signal}:{}});let s;if((i=r.headers.get("Content-Type"))!=null&&i.startsWith("application/json")?s=(await r.json()).data:s=await r.text(),!r.ok){e=new b({body:y,details:s!=null&&s.error?k(s.error):r.statusText,headers:r.headers,status:r.status,url:l});continue}if(!G(s)){e=new P({result:s,url:l});continue}return s}catch(r){if((o=a==null?void 0:a.signal)!=null&&o.aborted)throw w(a.signal);if(E(r))throw r;e=new b({body:y,details:r.message,url:l})}}throw e}export{j as ccipRequest,J as offchainLookup,U as offchainLookupAbiItem,H as offchainLookupSignature};
1
+ import{B as u,cY as p,fP as k,c0 as x,de as M,dl as S,dk as $,bK as A,bR as T,cd as C,cJ as w,dc as E,a0 as b,dg as G}from"./index-vPyTb3MD.js";class D extends u{constructor({callbackSelector:a,cause:t,data:f,extraData:e,sender:d,urls:i}){var o;super(t.shortMessage||"An error occurred while fetching for an offchain result.",{cause:t,metaMessages:[...t.metaMessages||[],(o=t.metaMessages)!=null&&o.length?"":[],"Offchain Gateway Call:",i&&[" Gateway URL(s):",...i.map(n=>` ${p(n)}`)],` Sender: ${d}`,` Data: ${f}`,` Callback selector: ${a}`,` Extra data: ${e}`].flat(),name:"OffchainLookupError"})}}class P extends u{constructor({result:a,url:t}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${p(t)}`,`Response: ${k(a)}`],name:"OffchainLookupResponseMalformedError"})}}class B extends u{constructor({sender:a,to:t}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${t}`,`OffchainLookup sender address: ${a}`],name:"OffchainLookupSenderMismatchError"})}}const H="0x556f1830",U={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]};async function J(c,{blockNumber:a,blockTag:t,data:f,requestOptions:e,to:d}){var s;const{args:i}=x({data:f,abi:[U]}),[o,n,l,g,y]=i,{ccipRead:h}=c,r=h&&typeof(h==null?void 0:h.request)=="function"?h.request:j;try{if(!M(d,o))throw new B({sender:o,to:d});const m=n.includes(S)?await $({data:l,ccipRequest:R=>r({...R,requestOptions:e})}):await r({data:l,requestOptions:e,sender:o,urls:n}),{data:L}=await A(c,{blockNumber:a,blockTag:t,data:T([g,C([{type:"bytes"},{type:"bytes"}],[m,y])]),requestOptions:e,to:d});return L}catch(m){throw(s=e==null?void 0:e.signal)!=null&&s.aborted?w(e.signal):E(m)?m:new D({callbackSelector:g,cause:m,data:f,extraData:y,sender:o,urls:n})}}async function j({data:c,requestOptions:a,sender:t,urls:f}){var d,i,o;let e=new Error("An unknown error occurred.");for(let n=0;n<f.length;n++){if((d=a==null?void 0:a.signal)!=null&&d.aborted)throw w(a.signal);const l=f[n],g=l.includes("{data}")?"GET":"POST",y=g==="POST"?{data:c,sender:t}:void 0,h=g==="POST"?{"Content-Type":"application/json"}:{};try{const r=await fetch(l.replace("{sender}",t.toLowerCase()).replace("{data}",c),{body:JSON.stringify(y),headers:h,method:g,...a!=null&&a.signal?{signal:a.signal}:{}});let s;if((i=r.headers.get("Content-Type"))!=null&&i.startsWith("application/json")?s=(await r.json()).data:s=await r.text(),!r.ok){e=new b({body:y,details:s!=null&&s.error?k(s.error):r.statusText,headers:r.headers,status:r.status,url:l});continue}if(!G(s)){e=new P({result:s,url:l});continue}return s}catch(r){if((o=a==null?void 0:a.signal)!=null&&o.aborted)throw w(a.signal);if(E(r))throw r;e=new b({body:y,details:r.message,url:l})}}throw e}export{j as ccipRequest,J as offchainLookup,U as offchainLookupAbiItem,H as offchainLookupSignature};
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const p=o`<svg
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const p=o`<svg
2
2
  width="28"
3
3
  height="28"
4
4
  viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const p=o`<svg fill="none" viewBox="0 0 14 14">
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const p=o`<svg fill="none" viewBox="0 0 14 14">
2
2
  <path
3
3
  fill="currentColor"
4
4
  fill-rule="evenodd"
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const p=o`<svg fill="none" viewBox="0 0 16 16">
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const p=o`<svg fill="none" viewBox="0 0 16 16">
2
2
  <path
3
3
  fill="currentColor"
4
4
  fill-rule="evenodd"
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const p=o`<svg fill="none" viewBox="0 0 16 16">
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const p=o`<svg fill="none" viewBox="0 0 16 16">
2
2
  <path
3
3
  fill="currentColor"
4
4
  fill-rule="evenodd"
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const p=o`<svg fill="none" viewBox="0 0 16 16">
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const p=o`<svg fill="none" viewBox="0 0 16 16">
2
2
  <path
3
3
  fill="currentColor"
4
4
  fill-rule="evenodd"
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const t=o`<svg fill="none" viewBox="0 0 16 16">
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const t=o`<svg fill="none" viewBox="0 0 16 16">
2
2
  <path
3
3
  fill="currentColor"
4
4
  fill-rule="evenodd"
@@ -1,4 +1,4 @@
1
- import{F as t}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const l=t`<svg width="36" height="36" fill="none">
1
+ import{F as t}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const l=t`<svg width="36" height="36" fill="none">
2
2
  <path
3
3
  fill="#fff"
4
4
  fill-opacity=".05"
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const t=o`<svg width="14" height="14" viewBox="0 0 14 14" fill="none">
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const t=o`<svg width="14" height="14" viewBox="0 0 14 14" fill="none">
2
2
  <path
3
3
  fill-rule="evenodd"
4
4
  clip-rule="evenodd"
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const p=o`<svg fill="none" viewBox="0 0 16 16">
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const p=o`<svg fill="none" viewBox="0 0 16 16">
2
2
  <path
3
3
  fill="currentColor"
4
4
  fill-rule="evenodd"
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const m=o`<svg fill="none" viewBox="0 0 20 20">
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const m=o`<svg fill="none" viewBox="0 0 20 20">
2
2
  <path
3
3
  fill="currentColor"
4
4
  fill-rule="evenodd"
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const p=o`<svg fill="none" viewBox="0 0 16 16">
1
+ import{F as o}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const p=o`<svg fill="none" viewBox="0 0 16 16">
2
2
  <path
3
3
  fill="currentColor"
4
4
  fill-rule="evenodd"
@@ -1,4 +1,4 @@
1
- import{F as C}from"./core-BzIB7-vh.js";import"./index-H2WA2taB.js";import"./events-jqbAbVlK.js";import"./index.es-Bhx_uNt5.js";import"./fallback-CLs3NgaE.js";const e=C`<svg
1
+ import{F as C}from"./core-Cp3xGXA6.js";import"./index-vPyTb3MD.js";import"./events-BRxyYKwO.js";import"./index.es-r4dwiXlA.js";import"./fallback-DAe2x1wz.js";const e=C`<svg
2
2
  xmlns="http://www.w3.org/2000/svg"
3
3
  width="16"
4
4
  height="16"