@dev.sail.money/sailor 0.0.2-28 → 0.0.2-29
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/AGENTS.md +31 -2
- package/README.md +77 -12
- package/package.json +9 -3
- package/packages/cli/dist/index.cjs +285 -127
- package/packages/cli/dist/server.cjs +586 -1401
- package/packages/sdk/dist/chains.d.ts +12 -0
- package/packages/sdk/dist/chains.d.ts.map +1 -0
- package/packages/sdk/dist/chains.js +94 -0
- package/packages/sdk/dist/chains.js.map +1 -0
- package/packages/sdk/dist/index.d.ts +1 -0
- package/packages/sdk/dist/index.d.ts.map +1 -1
- package/packages/sdk/dist/index.js +1 -0
- package/packages/sdk/dist/index.js.map +1 -1
- package/packages/sdk/dist/intelligence.d.ts +1 -1
- package/packages/sdk/dist/intelligence.js +1 -1
- package/packages/sdk/dist/types.d.ts +2 -0
- package/packages/sdk/dist/types.d.ts.map +1 -1
- package/packages/sdk/package.json +27 -0
- package/packages/ui/dist/assets/{add-Cj0EIUcG.js → add-BtPPKW_S.js} +1 -1
- package/packages/ui/dist/assets/{all-wallets-DlyRsWoN.js → all-wallets-CliTUt-P.js} +1 -1
- package/packages/ui/dist/assets/{app-store-CXP08sks.js → app-store-Dn-qzfPP.js} +1 -1
- package/packages/ui/dist/assets/{apple-B62K6dJr.js → apple-CCxYFT90.js} +1 -1
- package/packages/ui/dist/assets/{arrow-bottom-BTuC5-tQ.js → arrow-bottom-Bo24o32F.js} +1 -1
- package/packages/ui/dist/assets/{arrow-bottom-circle-dlgFXE0q.js → arrow-bottom-circle-DEnDTNB2.js} +1 -1
- package/packages/ui/dist/assets/{arrow-left-Uohbz9c6.js → arrow-left-ufrfqGG4.js} +1 -1
- package/packages/ui/dist/assets/{arrow-right-CH0vSHgl.js → arrow-right-BkX5DoAK.js} +1 -1
- package/packages/ui/dist/assets/{arrow-top-CxY6BKDT.js → arrow-top-CtvgpoOn.js} +1 -1
- package/packages/ui/dist/assets/{bank-Dz6PlF79.js → bank-CfyC7KhE.js} +1 -1
- package/packages/ui/dist/assets/{basic-CTV3Ph_S.js → basic-GLsmxA9Q.js} +1 -1
- package/packages/ui/dist/assets/{browser-DBRTpG2H.js → browser-BXl5SSvD.js} +1 -1
- package/packages/ui/dist/assets/{card-DWA4Ne8q.js → card-BwTrNMXe.js} +1 -1
- package/packages/ui/dist/assets/{ccip-CJCerfkJ.js → ccip-BMqD_Aug.js} +1 -1
- package/packages/ui/dist/assets/{checkmark-Cx-ePFrg.js → checkmark-Dv3bs_r-.js} +1 -1
- package/packages/ui/dist/assets/{checkmark-bold-BhDIlGHD.js → checkmark-bold-v3XYVY9B.js} +1 -1
- package/packages/ui/dist/assets/{chevron-bottom-2uFzesS3.js → chevron-bottom-BtuSFYmE.js} +1 -1
- package/packages/ui/dist/assets/{chevron-left-BoKXXZ4E.js → chevron-left-Bj0j6Cyx.js} +1 -1
- package/packages/ui/dist/assets/{chevron-right-EUp-RhYw.js → chevron-right-QsZgfMHX.js} +1 -1
- package/packages/ui/dist/assets/{chevron-top-D51M78MN.js → chevron-top-B2LmuCUs.js} +1 -1
- package/packages/ui/dist/assets/{chrome-store-DrRbU0Rc.js → chrome-store-Be1HnDGs.js} +1 -1
- package/packages/ui/dist/assets/{clock-9mIuX-1G.js → clock-CCcblz1f.js} +1 -1
- package/packages/ui/dist/assets/{close-BvuXlx8s.js → close-rdnFQxXT.js} +1 -1
- package/packages/ui/dist/assets/{coinPlaceholder-Bi7hJj5a.js → coinPlaceholder-fRMoMI0y.js} +1 -1
- package/packages/ui/dist/assets/{compass-C623d6DE.js → compass-CSPR58D9.js} +1 -1
- package/packages/ui/dist/assets/{copy-CFhZQkfE.js → copy-C5WgEU7N.js} +1 -1
- package/packages/ui/dist/assets/{core-BGl4d2YS.js → core-CVXQL7tu.js} +3 -3
- package/packages/ui/dist/assets/cursor-C04TRGDh.js +3 -0
- package/packages/ui/dist/assets/{cursor-transparent-FBFMyBY2.js → cursor-transparent-zEBpsOE4.js} +1 -1
- package/packages/ui/dist/assets/{desktop-Cco6Py8z.js → desktop-CdkiOqLx.js} +1 -1
- package/packages/ui/dist/assets/{disconnect-GkX8GhOW.js → disconnect-B8I112zP.js} +1 -1
- package/packages/ui/dist/assets/{discord-BNJe-HNX.js → discord-x2BbO6cW.js} +1 -1
- package/packages/ui/dist/assets/{etherscan-CoY2RMWw.js → etherscan-C2OxN9Au.js} +1 -1
- package/packages/ui/dist/assets/{events-DlxPGhin.js → events-DwmWfwqa.js} +1 -1
- package/packages/ui/dist/assets/{exclamation-triangle-9thkvaBf.js → exclamation-triangle-IY-Iojhj.js} +1 -1
- package/packages/ui/dist/assets/{extension-BshOJ_bn.js → extension-Clnc3k0E.js} +1 -1
- package/packages/ui/dist/assets/{external-link-97rok_V_.js → external-link-DKjw-POo.js} +1 -1
- package/packages/ui/dist/assets/{facebook-BsiLEVlU.js → facebook-DA_F9Z5R.js} +1 -1
- package/packages/ui/dist/assets/{fallback-DlWsoHyh.js → fallback-CWZLJXZ9.js} +1 -1
- package/packages/ui/dist/assets/{farcaster-CmRL47La.js → farcaster-CulNjKFL.js} +1 -1
- package/packages/ui/dist/assets/{filters-DXAWgNLO.js → filters-BpETqr4_.js} +1 -1
- package/packages/ui/dist/assets/{github-bCBJUbbe.js → github-DywjW1rE.js} +1 -1
- package/packages/ui/dist/assets/{google-CYTI0KrI.js → google-DH_kH7BK.js} +1 -1
- package/packages/ui/dist/assets/{help-circle-LNgEbcGY.js → help-circle-DsMbG4i7.js} +1 -1
- package/packages/ui/dist/assets/{id-ChJn0Ugg.js → id-O5zOjYCk.js} +1 -1
- package/packages/ui/dist/assets/{image--Y7maC5b.js → image-BBJ-S1oj.js} +1 -1
- package/packages/ui/dist/assets/{index-BONuaN6W.js → index-9Als8Pk1.js} +1 -1
- package/packages/ui/dist/assets/{index-5MkegeeB.js → index-BP0G8SWV.js} +3 -3
- package/packages/ui/dist/assets/{index-BlU0aZ21.js → index-C9Q98LC_.js} +1 -1
- package/packages/ui/dist/assets/{index-CZMzzRJU.js → index-CMLePJSP.js} +1 -1
- package/packages/ui/dist/assets/{index-O4l6CrZ0.js → index-CkNlzfQa.js} +1 -1
- package/packages/ui/dist/assets/{index-BN0O-ZFZ.js → index-EVUMkF7X.js} +4 -4
- package/packages/ui/dist/assets/{index.es-CXlLR_xG.js → index.es-BS-p_sCc.js} +4 -4
- package/packages/ui/dist/assets/{info-DUq1c6sJ.js → info-CD3CYp-i.js} +1 -1
- package/packages/ui/dist/assets/{info-circle-UobJ0GGG.js → info-circle-CXbPnDro.js} +1 -1
- package/packages/ui/dist/assets/{lightbulb-BI4WR-IB.js → lightbulb-Bz1DT8Ju.js} +1 -1
- package/packages/ui/dist/assets/{mail-BSN2fVMe.js → mail-Lj8n2gbA.js} +1 -1
- package/packages/ui/dist/assets/{metamask-sdk-B7CK8pn-.js → metamask-sdk-DwS0o7ov.js} +1 -1
- package/packages/ui/dist/assets/{mobile-BfuUs9p7.js → mobile-O_sAbq2l.js} +1 -1
- package/packages/ui/dist/assets/{more-C1zkGuE3.js → more-DdiT_mbp.js} +1 -1
- package/packages/ui/dist/assets/{network-placeholder-CtiEl1UM.js → network-placeholder-Dx9MDHLN.js} +1 -1
- package/packages/ui/dist/assets/{nftPlaceholder-C_B9PGkr.js → nftPlaceholder-K9kW2r88.js} +1 -1
- package/packages/ui/dist/assets/{off-B93fIkKw.js → off-BOYfR8XB.js} +1 -1
- package/packages/ui/dist/assets/{parseSignature-BKzLunwo.js → parseSignature-NiLF290o.js} +1 -1
- package/packages/ui/dist/assets/{play-store-DfDTySLA.js → play-store-DRuPz3YP.js} +1 -1
- package/packages/ui/dist/assets/{plus-_EYE7Soi.js → plus-BhHn5k_7.js} +1 -1
- package/packages/ui/dist/assets/{qr-code-CSklhafe.js → qr-code-XQgVWw1M.js} +1 -1
- package/packages/ui/dist/assets/{recycle-horizontal-CoH2EBIZ.js → recycle-horizontal-B3DKBHl3.js} +1 -1
- package/packages/ui/dist/assets/{refresh-COGV5RR9.js → refresh-Bdt5zEiy.js} +1 -1
- package/packages/ui/dist/assets/{reown-logo-YYxIj6hm.js → reown-logo-B3-LoRif.js} +1 -1
- package/packages/ui/dist/assets/{search-CpoWhaNF.js → search-CT85WnLr.js} +1 -1
- package/packages/ui/dist/assets/{secp256k1-ZWo-L7nJ.js → secp256k1-CSD4IkAn.js} +1 -1
- package/packages/ui/dist/assets/{send-CjEG2p8N.js → send-DFlOyILV.js} +1 -1
- package/packages/ui/dist/assets/{swapHorizontal-3V6lypqD.js → swapHorizontal-BnJarCPM.js} +1 -1
- package/packages/ui/dist/assets/{swapHorizontalBold-7swnGG5R.js → swapHorizontalBold-BdXwQcVw.js} +1 -1
- package/packages/ui/dist/assets/{swapHorizontalMedium-zPdpOjAy.js → swapHorizontalMedium-DruY4Nll.js} +1 -1
- package/packages/ui/dist/assets/{swapHorizontalRoundedBold-2Mxr5XPm.js → swapHorizontalRoundedBold-BmU0rX2_.js} +1 -1
- package/packages/ui/dist/assets/{swapVertical-D9KAlnz7.js → swapVertical-BDYBLaB-.js} +1 -1
- package/packages/ui/dist/assets/{telegram-DztV38YW.js → telegram-Dj0PC8gI.js} +1 -1
- package/packages/ui/dist/assets/{three-dots-DWOvYMr0.js → three-dots-DCjLXmgH.js} +1 -1
- package/packages/ui/dist/assets/{twitch-B3UH6j0S.js → twitch-DtF7PahJ.js} +1 -1
- package/packages/ui/dist/assets/{twitterIcon-C2lA-xQv.js → twitterIcon-D5fHAEXR.js} +1 -1
- package/packages/ui/dist/assets/{verify-BP_uBvwh.js → verify-CvDrZusr.js} +1 -1
- package/packages/ui/dist/assets/{verify-filled-DLByZnlA.js → verify-filled-CPKWSwyP.js} +1 -1
- package/packages/ui/dist/assets/{w3m-modal-C2-cKwor.js → w3m-modal-DdzuRc6-.js} +1 -1
- package/packages/ui/dist/assets/{wallet-Bc7LMFHM.js → wallet-BDKdLwf0.js} +1 -1
- package/packages/ui/dist/assets/{wallet-placeholder-DsjujZQW.js → wallet-placeholder-DjYKf3de.js} +1 -1
- package/packages/ui/dist/assets/{walletconnect-i_fC7jz3.js → walletconnect-DtsEmRsg.js} +1 -1
- package/packages/ui/dist/assets/{warning-circle-DIxNhxFp.js → warning-circle-vXvip1Eh.js} +1 -1
- package/packages/ui/dist/assets/{x-BamJJInV.js → x-CIVAuGSw.js} +1 -1
- package/packages/ui/dist/index.html +1 -1
- package/templates/default/.env.example +15 -1
- package/templates/default/examples/dca/agent.ts +1 -1
- package/templates/default/examples/dca/mandate.ts +1 -1
- package/templates/default/src/agent.ts +1 -1
- package/templates/default/tsconfig.json +5 -2
- package/templates/lifi-permissions/README.md +1 -1
- package/packages/ui/dist/assets/cursor-CUSm3LCL.js +0 -3
package/AGENTS.md
CHANGED
|
@@ -8,9 +8,8 @@ tooling to create SMAs, register permission contracts, and run strategy agents.
|
|
|
8
8
|
|
|
9
9
|
| Package / path | Name | Role |
|
|
10
10
|
|---|---|---|
|
|
11
|
-
| `packages/sdk` | `@sail/sdk` | SailorClient, LocalKeyring, kernel ABIs, EIP-712 builders, deployment registry |
|
|
11
|
+
| `packages/sdk` | `@sail/sdk` | SailorClient, LocalKeyring, kernel ABIs, EIP-712 builders, deployment registry, per-chain address registry |
|
|
12
12
|
| `packages/cli` | `sailor` | CLI: init, keys, account, mandate, onboard, station, ui, run, session, scan, status, owner, doctor, capabilities |
|
|
13
|
-
| `packages/chains` | `@sail/chains` | Per-chain address registry (kernel, mandateFactory, governance) |
|
|
14
13
|
| `packages/ui` | `sailor-ui` | Local dashboard + browser-driven onboarding wizard at localhost:3333 |
|
|
15
14
|
| `templates/default` | — | Default agent starter: neutral blank scaffold + Foundry workspace + onboarding guide (AGENTS.md) |
|
|
16
15
|
| `templates/custom-mandate` | — | Solidity reference: IPermission scaffold (not a project template) |
|
|
@@ -94,6 +93,36 @@ pnpm test:ui # playwright — requires pnpm build first
|
|
|
94
93
|
Test fixtures live in `packages/ui/test/fixtures/` — isolated directories with pre-canned `.sail/`
|
|
95
94
|
state; no real RPC needed.
|
|
96
95
|
|
|
96
|
+
## RPC configuration
|
|
97
|
+
|
|
98
|
+
RPC URLs are resolved by `packages/cli/src/lib/chain.ts` `getRpcUrl(chainId)` in this order (first match wins):
|
|
99
|
+
|
|
100
|
+
1. `.sail/.env.local` — chain-specific var (e.g. `BASE_RPC_URL`, `ARBITRUM_RPC_URL`)
|
|
101
|
+
2. `.sail/.env.local` — generic `RPC_URL`
|
|
102
|
+
3. Shell environment — chain-specific var
|
|
103
|
+
4. Shell environment — generic `RPC_URL`
|
|
104
|
+
|
|
105
|
+
Two valid patterns for `.sail/.env.local`:
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
# Option A — single active chain
|
|
109
|
+
RPC_URL=https://your-base-endpoint
|
|
110
|
+
CHAIN_ID=8453
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
# Option B — per-chain (multi-chain projects; omit RPC_URL if all chains have a specific var)
|
|
115
|
+
CHAIN_ID=8453
|
|
116
|
+
BASE_RPC_URL=https://your-base-endpoint
|
|
117
|
+
ARBITRUM_RPC_URL=https://your-arbitrum-endpoint
|
|
118
|
+
UNICHAIN_RPC_URL=https://your-unichain-endpoint
|
|
119
|
+
ETH_MAINNET_RPC_URL=https://your-mainnet-endpoint
|
|
120
|
+
BASE_SEPOLIA_RPC_URL=https://your-base-sepolia-endpoint
|
|
121
|
+
SEPOLIA_RPC_URL=https://your-sepolia-endpoint
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Per-chain vars always take precedence for their specific chain, so multi-chain projects resolve each endpoint correctly. `sailor chains --verify` uses this to check every chain that has a configured RPC.
|
|
125
|
+
|
|
97
126
|
## Conventions
|
|
98
127
|
|
|
99
128
|
- `SAIL_DIR` — env var pointing to the project's `.sail/` directory (used by the UI server)
|
package/README.md
CHANGED
|
@@ -10,9 +10,8 @@ Sailor is the operator layer for [Sail Protocol](../SailProtocol): the tooling a
|
|
|
10
10
|
|
|
11
11
|
| Package | Name | Role |
|
|
12
12
|
|---|---|---|
|
|
13
|
-
| `packages/sdk` | `@sail/sdk` | TypeScript library
|
|
14
|
-
| `packages/cli` |
|
|
15
|
-
| `packages/chains` | `@sail/chains` | Per-chain address registry (EVM-compatible) |
|
|
13
|
+
| `packages/sdk` | `@sail/sdk` (internal) | TypeScript library: SailorClient, EIP-712 helpers, ABIs, chain registry |
|
|
14
|
+
| `packages/cli` | `@sail.money/sailor` | CLI for account setup, mandate signing, and agent execution |
|
|
16
15
|
| `packages/ui` | `sailor-ui` | Local dashboard running on localhost:3333 |
|
|
17
16
|
| `templates/default` | — | Default agent starter (neutral; what `sailor init` scaffolds) |
|
|
18
17
|
| `templates/custom-mandate` | — | Solidity reference: IPermission scaffold (not a project template) |
|
|
@@ -74,7 +73,7 @@ Prerequisites:
|
|
|
74
73
|
- Node.js 18+
|
|
75
74
|
- A wallet (MetaMask or Rabby)
|
|
76
75
|
- An RPC URL (e.g. Alchemy free tier)
|
|
77
|
-
- A supported chain: **Base, Base Sepolia, Arbitrum, or Unichain** — verified deployments are bundled in `@sail
|
|
76
|
+
- A supported chain: **Base, Base Sepolia, Arbitrum, or Unichain** — verified deployments are bundled in `@sail.money/sailor`.
|
|
78
77
|
|
|
79
78
|
### Recommended — assistant-driven
|
|
80
79
|
|
|
@@ -187,8 +186,7 @@ sailor ui stop
|
|
|
187
186
|
|
|
188
187
|
## Agent-driven onboarding & custom mandates
|
|
189
188
|
|
|
190
|
-
For chains with a bundled Sail deployment (Base, Base Sepolia, Arbitrum, Unichain
|
|
191
|
-
in `@sail/sdk`, no `@sail/chains` entry required), an agent can drive the whole
|
|
189
|
+
For chains with a bundled Sail deployment (Base, Base Sepolia, Arbitrum, Unichain), an agent can drive the whole
|
|
192
190
|
setup through a browser **signing station**. The station is a local HTTP +
|
|
193
191
|
WebSocket daemon that bridges the CLI and the owner's wallet: the agent never
|
|
194
192
|
holds the owner key — it pushes signing requests, the owner approves them in the
|
|
@@ -246,6 +244,75 @@ non-interactively. No private key ever appears in the workflow file or in secret
|
|
|
246
244
|
|
|
247
245
|
---
|
|
248
246
|
|
|
247
|
+
## Packages
|
|
248
|
+
|
|
249
|
+
Sailor ships as a **single npm package** — the SDK is bundled inside it and exposed via a subpath export:
|
|
250
|
+
|
|
251
|
+
| Package | Contents |
|
|
252
|
+
|---|---|
|
|
253
|
+
| `@sail.money/sailor` | CLI binary, UI server, templates, examples, and SDK |
|
|
254
|
+
|
|
255
|
+
The SDK is available as a subpath export for use in agent code:
|
|
256
|
+
|
|
257
|
+
```ts
|
|
258
|
+
import type { Agent, AgentContext, Dispatch } from '@sail.money/sailor/sdk'
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### npm (`publish-npm.yml`)
|
|
262
|
+
|
|
263
|
+
Published to the public npm registry under the `@sail.money` scope.
|
|
264
|
+
|
|
265
|
+
| Trigger | Package | Version | dist-tag |
|
|
266
|
+
|---|---|---|---|
|
|
267
|
+
| Tag push (`v*`) | `@sail.money/sailor` | `1.0.0` | `latest` |
|
|
268
|
+
| Manual dispatch | `@dev.sail.money/sailor` | `1.0.0-42` | `dev` |
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
npm install @sail.money/sailor # latest stable (tag push)
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
For dev builds, the package name changes scope to `@dev.sail.money`. Use an alias so your import paths stay the same:
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
npm install "@sail.money/sailor@npm:@dev.sail.money/sailor@dev"
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
This installs the latest dev build and makes it available as `@sail.money/sailor` locally — `@sail.money/sailor/sdk` imports continue to work unchanged.
|
|
281
|
+
|
|
282
|
+
### GitHub Packages (`publish.yml`)
|
|
283
|
+
|
|
284
|
+
Published to GitHub Packages under the `@sail-money` scope for internal testing — no public npm registry required.
|
|
285
|
+
|
|
286
|
+
| Trigger | Package | dist-tag |
|
|
287
|
+
|---|---|---|
|
|
288
|
+
| Merge to `main` | `@sail-money/sailor` | `latest` |
|
|
289
|
+
| Manual dispatch | `@sail-money/sailor-dev` | `dev` |
|
|
290
|
+
|
|
291
|
+
Both builds require an alias since the package scope differs from `@sail.money`:
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
npm install "@sail.money/sailor@npm:@sail-money/sailor@latest" --registry https://npm.pkg.github.com
|
|
295
|
+
npm install "@sail.money/sailor@npm:@sail-money/sailor-dev@dev" --registry https://npm.pkg.github.com
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
Or pin in `package.json`:
|
|
299
|
+
|
|
300
|
+
```json
|
|
301
|
+
"dependencies": {
|
|
302
|
+
"@sail.money/sailor": "npm:@sail-money/sailor@latest"
|
|
303
|
+
}
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
```json
|
|
307
|
+
"dependencies": {
|
|
308
|
+
"@sail.money/sailor": "npm:@sail-money/sailor-dev@dev"
|
|
309
|
+
}
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
Either way, `@sail.money/sailor/sdk` imports work unchanged.
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
249
316
|
## Architecture
|
|
250
317
|
|
|
251
318
|
```
|
|
@@ -268,7 +335,7 @@ non-interactively. No private key ever appears in the workflow file or in secret
|
|
|
268
335
|
│ (register perms) │ │ (custody) │ │ (named, per-call) │
|
|
269
336
|
└────────────────────┘ └────────────────────┘ └────────────────────┘
|
|
270
337
|
|
|
271
|
-
sailor CLI / @sail/sdk drive both signing paths above.
|
|
338
|
+
sailor CLI / @sail.money/sailor/sdk drive both signing paths above.
|
|
272
339
|
.sail/ (account · mandate · activity) ──→ sailor-ui (localhost:3333)
|
|
273
340
|
```
|
|
274
341
|
|
|
@@ -290,13 +357,13 @@ The CLI and SDK sit between the operator and SailKernel: they build the EIP-712
|
|
|
290
357
|
|
|
291
358
|
Sailor is functional and published as [`@sail.money/sailor`](https://www.npmjs.com/package/@sail.money/sailor) on npm (v0.0.1). The SDK, CLI, keystore, mandate flows, agent runner, and dashboard are implemented and have been exercised end to end against Base Sepolia.
|
|
292
359
|
|
|
293
|
-
The Sail Protocol trusted core is deployed on Base, Base Sepolia, Arbitrum, and Unichain as staging deployments for testing ahead of a formal launch. All four run the selective dispatch model, with verified deployments bundled in `@sail/
|
|
360
|
+
The Sail Protocol trusted core is deployed on Base, Base Sepolia, Arbitrum, and Unichain as staging deployments for testing ahead of a formal launch. All four run the selective dispatch model, with verified deployments bundled in `@sail.money/sailor`. These deployments are under an ongoing external audit by [Octane Security](https://octane.security) and are not final — do not use them with funds you are not prepared to lose. Permission templates are not yet deployed against the Base, Arbitrum, and Base Sepolia kernels; **Unichain** ships the full template suite (7 shared + 12 standalone, source-verified) and its template registries are populated. The remaining template registries will be filled in as templates are deployed on the other chains and at mainnet launch.
|
|
294
361
|
|
|
295
362
|
---
|
|
296
363
|
|
|
297
364
|
## Deployments
|
|
298
365
|
|
|
299
|
-
The Sail Protocol trusted core is live on the following chains as **staging deployments** ahead of a formal launch
|
|
366
|
+
The Sail Protocol trusted core is live on the following chains as **staging deployments** ahead of a formal launch. All addresses are bundled in `@sail.money/sailor` and run the selective dispatch model with zero fees. Permission templates are not yet deployed against the Base, Arbitrum, and Base Sepolia kernels; **Unichain** ships the full template suite (7 shared + 12 standalone, source-verified on uniscan.xyz) and has its onboarding allowlists seeded at genesis.
|
|
300
367
|
|
|
301
368
|
### Base (8453)
|
|
302
369
|
|
|
@@ -348,9 +415,7 @@ First chain to ship the full permission-template suite (7 shared + 12 standalone
|
|
|
348
415
|
| SafeModuleEnabler | `0xFE9227A9F2baf704060c604466df354a5A137b9B` |
|
|
349
416
|
| Treasury | `0xB01dCE443d052e44b7D13726c0EC9fFB7f5815B6` |
|
|
350
417
|
|
|
351
|
-
The 19 template addresses are in
|
|
352
|
-
|
|
353
|
-
Addresses are sourced from `@sail/sdk` (`packages/sdk/src/deployments.ts`), the canonical registry.
|
|
418
|
+
The 19 template addresses are in `packages/sdk/src/deployments.ts` (`knownTemplates` + `standaloneTemplates` for chain 130).
|
|
354
419
|
|
|
355
420
|
---
|
|
356
421
|
|
package/package.json
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dev.sail.money/sailor",
|
|
3
|
-
"version": "0.0.2-
|
|
3
|
+
"version": "0.0.2-29",
|
|
4
4
|
"description": "Operator toolkit for Sail Protocol",
|
|
5
5
|
"bin": {
|
|
6
6
|
"sailor": "packages/cli/dist/index.cjs"
|
|
7
7
|
},
|
|
8
|
+
"exports": {
|
|
9
|
+
"./sdk": {
|
|
10
|
+
"import": "./packages/sdk/dist/index.js",
|
|
11
|
+
"types": "./packages/sdk/dist/index.d.ts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
8
14
|
"files": [
|
|
9
15
|
"packages/cli/dist",
|
|
10
16
|
"packages/sdk/dist",
|
|
@@ -18,12 +24,12 @@
|
|
|
18
24
|
"AGENTS.md"
|
|
19
25
|
],
|
|
20
26
|
"scripts": {
|
|
21
|
-
"build": "pnpm --filter @sail/sdk build && pnpm --filter
|
|
27
|
+
"build": "pnpm --filter @sail/sdk build && pnpm --filter sailor build && pnpm --filter sailor-ui build",
|
|
22
28
|
"test": "pnpm --filter sailor-ui test",
|
|
23
29
|
"test:ui": "pnpm --filter sailor-ui test:ui",
|
|
24
30
|
"link:cli": "pnpm link --global",
|
|
25
31
|
"postinstall": "node scripts/postinstall.js",
|
|
26
|
-
"typecheck": "pnpm --filter @sail/sdk build && pnpm
|
|
32
|
+
"typecheck": "pnpm --filter @sail/sdk build && pnpm -r typecheck",
|
|
27
33
|
"docs:check": "node scripts/check-docs.mjs",
|
|
28
34
|
"init:check": "node scripts/check-init.mjs",
|
|
29
35
|
"eval": "node evals/run.mjs",
|