@dev.sail.money/sailor 1.3.0-237 → 1.3.0-238

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 (93) hide show
  1. package/README.md +9 -17
  2. package/package.json +5 -1
  3. package/packages/cli/README.md +1 -1
  4. package/packages/cli/dist/index.cjs +3 -3
  5. package/packages/sdk/dist/intelligence.d.ts +1 -1
  6. package/packages/sdk/dist/intelligence.js +1 -1
  7. package/packages/ui/dist/assets/{add-CBbu2pe_.js → add-DoHGZfJI.js} +1 -1
  8. package/packages/ui/dist/assets/{all-wallets-C1oy4NUu.js → all-wallets-CUKVFyT3.js} +1 -1
  9. package/packages/ui/dist/assets/{app-store-DKqyf0Zv.js → app-store-DyQ4PZOs.js} +1 -1
  10. package/packages/ui/dist/assets/{apple-DyoIbCFy.js → apple-Dc-GOiDW.js} +1 -1
  11. package/packages/ui/dist/assets/{arrow-bottom-pUWeEqYu.js → arrow-bottom-C-dI8Oh_.js} +1 -1
  12. package/packages/ui/dist/assets/{arrow-bottom-circle-CMS-OqZQ.js → arrow-bottom-circle-BH2LebvP.js} +1 -1
  13. package/packages/ui/dist/assets/{arrow-left-B81HMJNL.js → arrow-left-CUIn5NsD.js} +1 -1
  14. package/packages/ui/dist/assets/{arrow-right-Z5czoKlC.js → arrow-right-B-X57DDF.js} +1 -1
  15. package/packages/ui/dist/assets/{arrow-top-C6ym1oll.js → arrow-top-BNOmzVbg.js} +1 -1
  16. package/packages/ui/dist/assets/{bank-B41nlslf.js → bank-Dqcy3Map.js} +1 -1
  17. package/packages/ui/dist/assets/{basic-CWqOb7CV.js → basic-CN95kOlB.js} +1 -1
  18. package/packages/ui/dist/assets/{browser-DDKdqoZ9.js → browser-v-WzD6Au.js} +1 -1
  19. package/packages/ui/dist/assets/{card-BgOmTajq.js → card-DJmQXuOi.js} +1 -1
  20. package/packages/ui/dist/assets/{ccip-CtJUKWRd.js → ccip-8oS512uk.js} +1 -1
  21. package/packages/ui/dist/assets/{checkmark-CGqQipH4.js → checkmark-6Rvy6Al7.js} +1 -1
  22. package/packages/ui/dist/assets/{checkmark-bold-Ci5xf90j.js → checkmark-bold-GYXSMFUr.js} +1 -1
  23. package/packages/ui/dist/assets/{chevron-bottom-D7Xert17.js → chevron-bottom-BF1Fa2NO.js} +1 -1
  24. package/packages/ui/dist/assets/{chevron-left-BGbUebR2.js → chevron-left-kj9KjPLp.js} +1 -1
  25. package/packages/ui/dist/assets/{chevron-right-xVsESnHU.js → chevron-right-CHH0lg7_.js} +1 -1
  26. package/packages/ui/dist/assets/{chevron-top-DEA9cR6v.js → chevron-top-DjHmnG32.js} +1 -1
  27. package/packages/ui/dist/assets/{chrome-store-BsyI-4PI.js → chrome-store-KzNe4H9H.js} +1 -1
  28. package/packages/ui/dist/assets/{clock-Dct9oQ3M.js → clock-xHvMNQNx.js} +1 -1
  29. package/packages/ui/dist/assets/{close-BvSCnI2y.js → close-nKtgX0WM.js} +1 -1
  30. package/packages/ui/dist/assets/{coinPlaceholder-p7RiWkon.js → coinPlaceholder-gnwD3g4G.js} +1 -1
  31. package/packages/ui/dist/assets/{compass-BUeeZqX4.js → compass-wnLBxh3w.js} +1 -1
  32. package/packages/ui/dist/assets/{copy-C5jXbxLq.js → copy-CmLisiOG.js} +1 -1
  33. package/packages/ui/dist/assets/{core-CiAm42Mq.js → core-BLOM5s8O.js} +3 -3
  34. package/packages/ui/dist/assets/{cursor-C0T7JWFO.js → cursor-DgwjrlpZ.js} +1 -1
  35. package/packages/ui/dist/assets/{cursor-transparent-BZp3-JmA.js → cursor-transparent-CjVDknUI.js} +1 -1
  36. package/packages/ui/dist/assets/{desktop-BIui_Lzb.js → desktop-BSGjR5fT.js} +1 -1
  37. package/packages/ui/dist/assets/{disconnect-B3Bxdchp.js → disconnect-DkOQ_j9U.js} +1 -1
  38. package/packages/ui/dist/assets/{discord-VWI0yDyx.js → discord-DtvZ281_.js} +1 -1
  39. package/packages/ui/dist/assets/{etherscan-BpBvUT9i.js → etherscan-BB3baLbR.js} +1 -1
  40. package/packages/ui/dist/assets/{exclamation-triangle-o1TJHIUw.js → exclamation-triangle-BrR8a-pR.js} +1 -1
  41. package/packages/ui/dist/assets/{extension-4RaLvbh5.js → extension-BiGAMg97.js} +1 -1
  42. package/packages/ui/dist/assets/{external-link-BHIwjDgj.js → external-link-qUc7QuKA.js} +1 -1
  43. package/packages/ui/dist/assets/{facebook-Bes5g-wN.js → facebook-BuXatc22.js} +1 -1
  44. package/packages/ui/dist/assets/{farcaster-CiJ-352m.js → farcaster-USwPlLU8.js} +1 -1
  45. package/packages/ui/dist/assets/{filters-DMOteumb.js → filters-BWx3pZxN.js} +1 -1
  46. package/packages/ui/dist/assets/{github-D2nDec9X.js → github-CUSWD7ff.js} +1 -1
  47. package/packages/ui/dist/assets/{google-lZZlQZPQ.js → google-CxJSLEaz.js} +1 -1
  48. package/packages/ui/dist/assets/{help-circle-D4cSSziR.js → help-circle-_8isjSO0.js} +1 -1
  49. package/packages/ui/dist/assets/{id-BmhXZq5P.js → id-DJCzMfx_.js} +1 -1
  50. package/packages/ui/dist/assets/{image-Dz4FPeET.js → image-CmG69MZj.js} +1 -1
  51. package/packages/ui/dist/assets/{index-DeoQO45V.js → index-3YqzzyrK.js} +3 -3
  52. package/packages/ui/dist/assets/{index-BeUp3nOq.js → index-BIqjq0q5.js} +1 -1
  53. package/packages/ui/dist/assets/{index-LiKeH8Cd.js → index-D8zwDy7d.js} +4 -4
  54. package/packages/ui/dist/assets/{index-Et5S3ZaW.js → index-DHVwxjrm.js} +1 -1
  55. package/packages/ui/dist/assets/{index-CvRylmZJ.js → index-DsxB7ORb.js} +1 -1
  56. package/packages/ui/dist/assets/{index.es-dfpEui-9.js → index.es-Hqwz_Ukd.js} +4 -4
  57. package/packages/ui/dist/assets/{info-77RSvIMg.js → info-XYctdUoY.js} +1 -1
  58. package/packages/ui/dist/assets/{info-circle-CWsII-NN.js → info-circle-D_fYZUhv.js} +1 -1
  59. package/packages/ui/dist/assets/{lightbulb-BZXzm7XE.js → lightbulb-BqKkDThe.js} +1 -1
  60. package/packages/ui/dist/assets/{mail-DMG1YqB0.js → mail-CM4laVWT.js} +1 -1
  61. package/packages/ui/dist/assets/{metamask-sdk-K1x_iqcc.js → metamask-sdk-8TvB8vxr.js} +1 -1
  62. package/packages/ui/dist/assets/{mobile-DuJfOBSk.js → mobile-C2cl_MIN.js} +1 -1
  63. package/packages/ui/dist/assets/{more-Cs9ySK2F.js → more-DOik7ytj.js} +1 -1
  64. package/packages/ui/dist/assets/{network-placeholder-CMDPmB1E.js → network-placeholder-CC9Cg0q_.js} +1 -1
  65. package/packages/ui/dist/assets/{nftPlaceholder-Cj0f9y2u.js → nftPlaceholder-Oe_bTYkM.js} +1 -1
  66. package/packages/ui/dist/assets/{off-9zSSsm-e.js → off-ao0Rdo1E.js} +1 -1
  67. package/packages/ui/dist/assets/{play-store-CPwIb8Gj.js → play-store-BcQlROdR.js} +1 -1
  68. package/packages/ui/dist/assets/{plus-BOHQri8o.js → plus-DSOprccT.js} +1 -1
  69. package/packages/ui/dist/assets/{qr-code-DqhbK276.js → qr-code-B64-C9CJ.js} +1 -1
  70. package/packages/ui/dist/assets/{recycle-horizontal-BpGM56Qz.js → recycle-horizontal-BJg7qNO9.js} +1 -1
  71. package/packages/ui/dist/assets/{refresh-BPzZlhTP.js → refresh-Dexg1q9p.js} +1 -1
  72. package/packages/ui/dist/assets/{reown-logo-OCkI0xzo.js → reown-logo-D8KP4d24.js} +1 -1
  73. package/packages/ui/dist/assets/{search-B1JEJvwq.js → search-CBfhIhB0.js} +1 -1
  74. package/packages/ui/dist/assets/{secp256k1-BqUeV9Cb.js → secp256k1-BOKPNuRR.js} +1 -1
  75. package/packages/ui/dist/assets/{send-JNsDlNoq.js → send-DpJV-P0b.js} +1 -1
  76. package/packages/ui/dist/assets/{swapHorizontal-C3Z1FImK.js → swapHorizontal-DC-Elc2j.js} +1 -1
  77. package/packages/ui/dist/assets/{swapHorizontalBold-Cmdy2iAn.js → swapHorizontalBold-Unn8xI55.js} +1 -1
  78. package/packages/ui/dist/assets/{swapHorizontalMedium-DFX57Nn9.js → swapHorizontalMedium-B58RR8wP.js} +1 -1
  79. package/packages/ui/dist/assets/{swapHorizontalRoundedBold-baB389c8.js → swapHorizontalRoundedBold-UTrbE6zM.js} +1 -1
  80. package/packages/ui/dist/assets/{swapVertical-DmAYGfK1.js → swapVertical-CLBtBVG1.js} +1 -1
  81. package/packages/ui/dist/assets/{telegram-BHbYE-nI.js → telegram-C_tvCVU8.js} +1 -1
  82. package/packages/ui/dist/assets/{three-dots-BwRWl6qJ.js → three-dots-BIn_IFa0.js} +1 -1
  83. package/packages/ui/dist/assets/{twitch-Drx0q6B6.js → twitch-BqiEXRul.js} +1 -1
  84. package/packages/ui/dist/assets/{twitterIcon-AuJ2KQ6p.js → twitterIcon-CquA5TCG.js} +1 -1
  85. package/packages/ui/dist/assets/{verify-Dkrd3q7o.js → verify-DOUX5_SE.js} +1 -1
  86. package/packages/ui/dist/assets/{verify-filled-B9e3-nz-.js → verify-filled-nMk53S_a.js} +1 -1
  87. package/packages/ui/dist/assets/{w3m-modal-DtkEjQA7.js → w3m-modal-B-JVYtbP.js} +1 -1
  88. package/packages/ui/dist/assets/{wallet-CqYzSiBd.js → wallet-BjbzMOXA.js} +1 -1
  89. package/packages/ui/dist/assets/{wallet-placeholder-B05kTN_K.js → wallet-placeholder-DPidGoJt.js} +1 -1
  90. package/packages/ui/dist/assets/{walletconnect-BwoPXLaS.js → walletconnect-Dw14KwDj.js} +1 -1
  91. package/packages/ui/dist/assets/{warning-circle-DK9Ai8rT.js → warning-circle-Ewxxj9bx.js} +1 -1
  92. package/packages/ui/dist/assets/{x-BNdh5DVW.js → x-B5Li_yME.js} +1 -1
  93. package/packages/ui/dist/index.html +1 -1
package/README.md CHANGED
@@ -4,20 +4,12 @@
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/%40sail.money%2Fsailor)](https://www.npmjs.com/package/@sail.money/sailor)
6
6
  [![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
7
+ [![Tests](https://github.com/sail-money/Sailor/actions/workflows/tests.yml/badge.svg)](https://github.com/sail-money/Sailor/actions/workflows/tests.yml)
8
+ [![node >= 18](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org)
7
9
 
8
10
  ## What you can build
9
11
 
10
- A trading agent that works a strategy across DEXes. A yield agent that moves capital between lending markets to chase the best rate. A DCA agent that accumulates a position on a schedule. A portfolio rebalancer that holds target allocations through market moves. A vault agent that rotates deposits as conditions change. If a strategy can be expressed as swaps, transfers, lending, deposits, and withdrawals with hard limitsan agent can run it on Sail.
11
-
12
- Sailor is the toolkit that takes you there, and it does three jobs:
13
-
14
- 1. **Use the protocol without low-level work.** Sail's shared permission templates (swap, transfer, deposit, withdraw, borrow, and more) are already deployed on every supported chain — and Sailor ships a curated set of skills that equip your agent to configure and use them. You express what the agent may do; nobody writes permission contracts from scratch unless they want to.
15
- 2. **Design a strategy.** The SDK, CLI, and local dashboard are where you compose the agent's logic and the exact bounds it operates within — which venues, which tokens, what size — then prove those bounds hold with an off-chain simulation before anything is at stake.
16
- 3. **Automate it, locally.** The agent runs on your machine (or your runner, or your container), with your keys. There is no hosted intermediary: you keep control, and you keep custody.
17
-
18
- Through all of it, the owner keeps custody. The onchain permissions reject anything outside the mandate before it touches funds, and the owner can revoke the agent's rights instantly without moving assets — a bad strategy can waste its budget, but it cannot exceed it.
19
-
20
- For the details — what the contracts enforce versus what stays off-chain — see the [Sail Protocol repo](https://github.com/sail-money/protocol) and the [whitepaper](https://github.com/sail-money/protocol/blob/main/docs/whitepaper/Sail_Protocol_Whitepaper.pdf).
12
+ An autonomous or semi-autonomous agent that manages capital inside a **self-custodial Safe**, bounded by **onchain permissions it cannot exceed**. The owner holds the Safe and signs a mandate a set of permission contracts encoding exactly what the agent may do (which venues, which tokens, what size). The agent executes within those bounds; anything outside them is rejected by the SailKernel before it touches funds, and the owner can revoke the agent's dispatch rights instantly without moving assets. The trust model what the contracts enforce versus what stays off-chain — is specified in the [Sail Protocol repo](https://github.com/sail-money/protocol) and the [whitepaper](https://github.com/sail-money/protocol/blob/main/docs/whitepaper/Sail_Protocol_Whitepaper.pdf).
21
13
 
22
14
  ## What's in the box
23
15
 
@@ -26,9 +18,9 @@ For the details — what the contracts enforce versus what stays off-chain — s
26
18
  | **SDK** (`@sail.money/sailor/sdk`) | `SailorClient`, encrypted keyring, EIP-712 signing, dispatch submission, deployment + chain registries, template encoders |
27
19
  | **CLI** (`sailor`) | Everything from `sailor init` to `sailor run`: keys, SMA deployment, mandate lifecycle, agent loop, doctor, session control |
28
20
  | **Dashboard** (`sailor ui`) | Local web UI for onboarding, balances, mandate health, activity, and owner signing |
29
- | **Skills** | Seventeen curated procedures under `.agents/skills/` that equip the agent across the whole workflow project setup and diagnostics, mandate authoring and template configuration, market data and transactions, unattended automation |
21
+ | **Scaffolded skills** | Step-by-step procedures under `.agents/skills/` that your AI coding assistant follows to set up and operate the agent |
30
22
 
31
- **About the scaffold.** `sailor init` scaffolds your project from `templates/default/`, and the agent arrives already equipped: the skills cover setting up (onboarding, project state, the local servers), defining the mandate (one skill per shared template, plus the full custom-permission lifecycle), executing strategy (token resolution and liquidity mapping, live swap quotes, the dispatch model), and running unattended (automation options, notifications, custom dashboards). Alongside the skills ship the **worked example permissions** (`templates/default/examples/` → your project's `examples/`) the mandate skills teach from — protocol-specific bounding patterns (Uniswap, Aave, GMX, ERC-4626, and more) plus an `IPermission` authoring workspace. Shipped teaching material in every scaffold, not repo furniture.
23
+ **About the scaffold.** `sailor init` scaffolds your project from `templates/default/`, which ships two things together: the `.agents/skills` your assistant follows, and the **worked example permissions** (`templates/default/examples/` → your project's `examples/`) those skills teach from — protocol-specific bounding patterns (Uniswap, Aave, GMX, ERC-4626, and more) plus an `IPermission` authoring workspace. The examples are shipped teaching material inside every scaffold, not repo furniture.
32
24
 
33
25
  ## Installation
34
26
 
@@ -58,7 +50,7 @@ Project files live on your host via the volume mount; prefix `sailor` commands w
58
50
 
59
51
  ## Quickstart
60
52
 
61
- The recommended path is agent-driven: open the scaffolded folder in Claude Code, Cursor, Codex, or any AI coding agent and say **"start"** — the scaffold's `AGENTS.md` and skills walk the agent through everything below. The direct-CLI version of the same journey:
53
+ The recommended path is assistant-driven: open the scaffolded folder in Claude Code, Cursor, Codex, or any AI coding assistant and say **"start"** — the scaffold's `AGENTS.md` and skills walk the assistant through everything below. The direct-CLI version of the same journey:
62
54
 
63
55
  ```bash
64
56
  npx sailor init my-agent && cd my-agent && npm install
@@ -92,9 +84,9 @@ Each probed call prints a verdict — `PASS`, `FAIL`, or `REVERT` — which is t
92
84
 
93
85
  Longer walkthrough, including revocation: [docs/getting-started.md](./docs/getting-started.md).
94
86
 
95
- ## How the agent is guided (skills)
87
+ ## How the assistant is guided (skills)
96
88
 
97
- The scaffold follows the open [Agent Skills](https://agentskills.io) standard: a slim, always-loaded `AGENTS.md` carries the project map and hard invariants, while detailed procedures live in on-demand skills under `.agents/skills/` — onboarding, transactions, mandate authoring, shared-template configuration (one skill per template), automation, and more. Shared templates are registered and configured *through* the skills because the safe order of operations (register → configure → simulate → verify) is encoded there once, instead of re-derived by every agent. Skills are plain markdown; agents that don't scan skills follow the routing table in `AGENTS.md` to the same files. See [docs/templates-and-skills.md](./docs/templates-and-skills.md).
89
+ The scaffold follows the open [Agent Skills](https://agentskills.io) standard: a slim, always-loaded `AGENTS.md` carries the project map and hard invariants, while detailed procedures live in on-demand skills under `.agents/skills/` — onboarding, transactions, mandate authoring, shared-template configuration (one skill per template), automation, and more. Shared templates are registered and configured *through* the skills because the safe order of operations (register → configure → simulate → verify) is encoded there once, instead of re-derived by every assistant. Skills are plain markdown; assistants that don't scan skills follow the routing table in `AGENTS.md` to the same files. See [docs/templates-and-skills.md](./docs/templates-and-skills.md).
98
90
 
99
91
  ## Documentation
100
92
 
@@ -121,7 +113,7 @@ Vulnerability reports: see [SECURITY.md](./SECURITY.md) (off-chain toolkit) —
121
113
 
122
114
  The SDK bundles verified deployments for **11 chains** — mainnets: Ethereum (1), Base (8453), Arbitrum (42161), Optimism (10), Unichain (130), BSC (56), World Chain (480), HyperEVM (999), MegaETH (4326); testnets: Base Sepolia (84532), Ethereum Sepolia (11155111). Every core contract sits at the same address on every chain via CREATE2 (SailKernel: `0x38b508756c976e876EFF05a29E731A4d348BA6ED`), and the seven shared permission templates (swap, swap-no-oracle, borrow, deposit, withdraw, transfer, approve-and-call-batch) are deployed and registered as `knownTemplates` on all of them. Query it yourself: `sailor chains` or `getSailDeployment(chainId)` from the SDK; the canonical record is the protocol repo's [deployments/addresses.md](https://github.com/sail-money/protocol/blob/main/deployments/addresses.md).
123
115
 
124
- The Sail Protocol trusted core and its seven shared permission templates underwent an AI **security review** by [Octane](https://octane.security); the final analysis identified no critical- or high-severity findings, and the reports live in the protocol repo's [docs/security](https://github.com/sail-money/protocol/tree/main/docs/security). That review covers the protocol contracts — not this toolkit. A security review is not a guarantee of correctness; size your exposure accordingly.
116
+ These deployments are under an ongoing external **security review** by [Octane](https://octane.security) and are not final do not use them with funds you are not prepared to lose.
125
117
 
126
118
  ## Contributing
127
119
 
package/package.json CHANGED
@@ -1,7 +1,11 @@
1
1
  {
2
2
  "name": "@dev.sail.money/sailor",
3
- "version": "1.3.0-237",
3
+ "version": "1.3.0-238",
4
4
  "description": "Operator toolkit for Sail Protocol",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/sail-money/Sailor.git"
8
+ },
5
9
  "bin": {
6
10
  "sailor": "packages/cli/dist/index.cjs"
7
11
  },
@@ -1,7 +1,7 @@
1
1
  # sailor
2
2
 
3
3
  Start a new agent project with `npx @sail.money/sailor init <name>` from inside your
4
- AI coding agent, or install globally for direct command use and CI/CD.
4
+ AI coding assistant, or install globally for direct command use and CI/CD.
5
5
 
6
6
  CLI operator toolkit for Sail Protocol. Run `sailor --help` to see all commands.
7
7
 
@@ -41427,7 +41427,7 @@ function printWelcome(dest, name, inPlace, _hasRpc, freshInit = false) {
41427
41427
  console.log("Next:");
41428
41428
  console.log(" sailor ui start");
41429
41429
  console.log(" Connect your wallet and deploy your SMA in the browser.\n");
41430
- console.log('Or open this folder in your AI coding agent and say: "continue"');
41430
+ console.log('Or open this folder in your AI coding assistant and say: "continue"');
41431
41431
  return;
41432
41432
  }
41433
41433
  if (state.kind === "C") {
@@ -41444,7 +41444,7 @@ function printWelcome(dest, name, inPlace, _hasRpc, freshInit = false) {
41444
41444
  console.log(" forge build");
41445
41445
  console.log(` sailor mandate deploy --contract <Name> --attach --sma ${state.sma}
41446
41446
  `);
41447
- console.log('Or open this folder in your AI coding agent and say: "continue"');
41447
+ console.log('Or open this folder in your AI coding assistant and say: "continue"');
41448
41448
  return;
41449
41449
  }
41450
41450
  if (state.kind === "D") {
@@ -41453,7 +41453,7 @@ function printWelcome(dest, name, inPlace, _hasRpc, freshInit = false) {
41453
41453
  console.log(`SMA: ${state.sma} on ${state.chain}`);
41454
41454
  console.log(`Permissions: ${state.permissionCount} registered
41455
41455
  `);
41456
- console.log('Open this folder in your AI coding agent and say: "continue"');
41456
+ console.log('Open this folder in your AI coding assistant and say: "continue"');
41457
41457
  return;
41458
41458
  }
41459
41459
  if (!inPlace) console.log(`
@@ -5,7 +5,7 @@
5
5
  * Do not edit manually — run `pnpm build` to regenerate.
6
6
  *
7
7
  * Spec version : 1.2.1
8
- * Generated at : 2026-07-03T09:33:02.651Z
8
+ * Generated at : 2026-07-03T09:52:59.852Z
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.1
8
- * Generated at : 2026-07-03T09:33:02.651Z
8
+ * Generated at : 2026-07-03T09:52:59.852Z
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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const e=o`<svg
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const e=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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const r=o`<svg fill="none" viewBox="0 0 24 24">
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const r=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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const e=t`
1
+ import{F as t}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const c=i`<svg fill="none" viewBox="0 0 40 40">
1
+ import{F as i}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const c=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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const i=o`<svg fill="none" viewBox="0 0 14 15">
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const i=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 C}from"./core-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const i=C`<svg
1
+ import{F as C}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const i=C`<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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const t=o`<svg fill="none" viewBox="0 0 14 15">
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const t=o`<svg fill="none" viewBox="0 0 14 15">
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const a=o`<svg fill="none" viewBox="0 0 14 15">
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const l=o`<svg
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const l=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 N,s as G,y as q,v as O,p as c,g as M,c as z,O as ee,l as k,m as te,R as U,h as Me,e as K,f as j,o as ft,j as Cn,W as pt,C as Zt,d as vi,T as ei,n as Xe,M as on,k as rn,F as Ne,A as yi,q as $n}from"./core-CiAm42Mq.js";import{n as u,c as B,o as E,r as _,U as he,e as Rn,f as _n,a as In}from"./index-DeoQO45V.js";import{P as En}from"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const Wn=N`
1
+ import{u as N,s as G,y as q,v as O,p as c,g as M,c as z,O as ee,l as k,m as te,R as U,h as Me,e as K,f as j,o as ft,j as Cn,W as pt,C as Zt,d as vi,T as ei,n as Xe,M as on,k as rn,F as Ne,A as yi,q as $n}from"./core-BLOM5s8O.js";import{n as u,c as B,o as E,r as _,U as he,e as Rn,f as _n,a as In}from"./index-3YqzzyrK.js";import{P as En}from"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const Wn=N`
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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const c=l`<svg fill="none" viewBox="0 0 20 20">
1
+ import{F as l}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const c=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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const i=C`<svg
1
+ import{F as C}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const i=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,R as p,az as k,t as x,a5 as M,aa as S,a9 as $,k as A,n as T,w as C,J as m,a3 as E,H as b,a7 as G}from"./index-LiKeH8Cd.js";class D extends u{constructor({callbackSelector:a,cause:t,data:f,extraData:e,sender:l,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: ${l}`,` Data: ${f}`,` Callback selector: ${a}`,` Extra data: ${e}`].flat(),name:"OffchainLookupError"})}}class B 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 P 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 v="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:l}){var s;const{args:i}=x({data:f,abi:[U]}),[o,n,d,w,y]=i,{ccipRead:h}=c,r=h&&typeof(h==null?void 0:h.request)=="function"?h.request:j;try{if(!M(l,o))throw new P({sender:o,to:l});const g=n.includes(S)?await $({data:d,ccipRequest:R=>r({...R,requestOptions:e})}):await r({data:d,requestOptions:e,sender:o,urls:n}),{data:L}=await A(c,{blockNumber:a,blockTag:t,data:T([w,C([{type:"bytes"},{type:"bytes"}],[g,y])]),requestOptions:e,to:l});return L}catch(g){throw(s=e==null?void 0:e.signal)!=null&&s.aborted?m(e.signal):E(g)?g:new D({callbackSelector:w,cause:g,data:f,extraData:y,sender:o,urls:n})}}async function j({data:c,requestOptions:a,sender:t,urls:f}){var l,i,o;let e=new Error("An unknown error occurred.");for(let n=0;n<f.length;n++){if((l=a==null?void 0:a.signal)!=null&&l.aborted)throw m(a.signal);const d=f[n],w=d.includes("{data}")?"GET":"POST",y=w==="POST"?{data:c,sender:t}:void 0,h=w==="POST"?{"Content-Type":"application/json"}:{};try{const r=await fetch(d.replace("{sender}",t.toLowerCase()).replace("{data}",c),{body:JSON.stringify(y),headers:h,method:w,...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:d});continue}if(!G(s)){e=new B({result:s,url:d});continue}return s}catch(r){if((o=a==null?void 0:a.signal)!=null&&o.aborted)throw m(a.signal);if(E(r))throw r;e=new b({body:y,details:r.message,url:d})}}throw e}export{j as ccipRequest,J as offchainLookup,U as offchainLookupAbiItem,v as offchainLookupSignature};
1
+ import{B as u,R as p,az as k,t as x,a5 as M,aa as S,a9 as $,k as A,n as T,w as C,J as m,a3 as E,H as b,a7 as G}from"./index-D8zwDy7d.js";class D extends u{constructor({callbackSelector:a,cause:t,data:f,extraData:e,sender:l,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: ${l}`,` Data: ${f}`,` Callback selector: ${a}`,` Extra data: ${e}`].flat(),name:"OffchainLookupError"})}}class B 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 P 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 v="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:l}){var s;const{args:i}=x({data:f,abi:[U]}),[o,n,d,w,y]=i,{ccipRead:h}=c,r=h&&typeof(h==null?void 0:h.request)=="function"?h.request:j;try{if(!M(l,o))throw new P({sender:o,to:l});const g=n.includes(S)?await $({data:d,ccipRequest:R=>r({...R,requestOptions:e})}):await r({data:d,requestOptions:e,sender:o,urls:n}),{data:L}=await A(c,{blockNumber:a,blockTag:t,data:T([w,C([{type:"bytes"},{type:"bytes"}],[g,y])]),requestOptions:e,to:l});return L}catch(g){throw(s=e==null?void 0:e.signal)!=null&&s.aborted?m(e.signal):E(g)?g:new D({callbackSelector:w,cause:g,data:f,extraData:y,sender:o,urls:n})}}async function j({data:c,requestOptions:a,sender:t,urls:f}){var l,i,o;let e=new Error("An unknown error occurred.");for(let n=0;n<f.length;n++){if((l=a==null?void 0:a.signal)!=null&&l.aborted)throw m(a.signal);const d=f[n],w=d.includes("{data}")?"GET":"POST",y=w==="POST"?{data:c,sender:t}:void 0,h=w==="POST"?{"Content-Type":"application/json"}:{};try{const r=await fetch(d.replace("{sender}",t.toLowerCase()).replace("{data}",c),{body:JSON.stringify(y),headers:h,method:w,...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:d});continue}if(!G(s)){e=new B({result:s,url:d});continue}return s}catch(r){if((o=a==null?void 0:a.signal)!=null&&o.aborted)throw m(a.signal);if(E(r))throw r;e=new b({body:y,details:r.message,url:d})}}throw e}export{j as ccipRequest,J as offchainLookup,U as offchainLookupAbiItem,v as offchainLookupSignature};
@@ -1,4 +1,4 @@
1
- import{F as o}from"./core-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const l=o`<svg
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const l=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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const t=o`<svg fill="none" viewBox="0 0 14 14">
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const t=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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const i=o`<svg fill="none" viewBox="0 0 16 16">
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const i=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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const t=o`<svg fill="none" viewBox="0 0 16 16">
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.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 o}from"./core-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const t=o`<svg fill="none" viewBox="0 0 16 16">
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.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 o}from"./core-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const p=o`<svg fill="none" viewBox="0 0 16 16">
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.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 t}from"./core-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const e=t`<svg width="36" height="36" fill="none">
1
+ import{F as t}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const e=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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const r=o`<svg width="14" height="14" viewBox="0 0 14 14" fill="none">
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const r=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 l}from"./core-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const t=l`<svg fill="none" viewBox="0 0 16 16">
1
+ import{F as l}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const t=l`<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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const t=o`<svg fill="none" viewBox="0 0 20 20">
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const t=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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const i=o`<svg fill="none" viewBox="0 0 16 16">
1
+ import{F as o}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const i=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-CiAm42Mq.js";import"./index-LiKeH8Cd.js";import"./index.es-dfpEui-9.js";import"./events-DQ172AOg.js";const t=C`<svg
1
+ import{F as C}from"./core-BLOM5s8O.js";import"./index-D8zwDy7d.js";import"./index.es-Hqwz_Ukd.js";import"./events-DQ172AOg.js";const t=C`<svg
2
2
  xmlns="http://www.w3.org/2000/svg"
3
3
  width="16"
4
4
  height="16"