@dev.sail.money/sailor 0.0.2-17 → 0.0.2-19

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 (172) hide show
  1. package/README.md +28 -1
  2. package/package.json +1 -1
  3. package/packages/cli/dist/server.cjs +933 -93
  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/Arc-VDBY7LNS-BChRXCXW.js +0 -1
  7. package/packages/ui/dist/assets/Brave-BRAKJXDS-mq-Xo37j.js +0 -1
  8. package/packages/ui/dist/assets/Browser-76IHF3Y2-BMhRaC5Z.js +0 -1
  9. package/packages/ui/dist/assets/Chrome-65Q5P54Y-DR9MQEVr.js +0 -1
  10. package/packages/ui/dist/assets/Edge-XSPUTORV-DEoZslQE.js +0 -1
  11. package/packages/ui/dist/assets/Firefox-AAHGJQIP-Bp_Hm04m.js +0 -1
  12. package/packages/ui/dist/assets/Linux-OO4TNCLJ-B0aw93n9.js +0 -1
  13. package/packages/ui/dist/assets/Macos-MW4AE7LN-Vvm8Drw3.js +0 -1
  14. package/packages/ui/dist/assets/Opera-KQZLSACL-Cwv5MDFy.js +0 -1
  15. package/packages/ui/dist/assets/Safari-ZPL37GXR-C4Ggg6rz.js +0 -1
  16. package/packages/ui/dist/assets/Windows-PPTHQER6-BlyV2p7Y.js +0 -1
  17. package/packages/ui/dist/assets/add-BHtIsGoW.js +0 -15
  18. package/packages/ui/dist/assets/all-wallets-BH8IiQp_.js +0 -6
  19. package/packages/ui/dist/assets/apechain-SX5YFU6N-q5qBv-mp.js +0 -1
  20. package/packages/ui/dist/assets/app-store-C7je0Hvt.js +0 -17
  21. package/packages/ui/dist/assets/apple-C24YGi7n.js +0 -18
  22. package/packages/ui/dist/assets/ar_AR-LIPSOZP5-BQrIDibT.js +0 -1519
  23. package/packages/ui/dist/assets/arbitrum-WURIBY6W-CqVkHBr5.js +0 -1
  24. package/packages/ui/dist/assets/arrow-bottom-NmB75e6T.js +0 -8
  25. package/packages/ui/dist/assets/arrow-bottom-circle-D9vkbcGm.js +0 -11
  26. package/packages/ui/dist/assets/arrow-left-BXX7egmu.js +0 -8
  27. package/packages/ui/dist/assets/arrow-right-CL5l1ER5.js +0 -8
  28. package/packages/ui/dist/assets/arrow-top-B3NcsHvl.js +0 -8
  29. package/packages/ui/dist/assets/assets-Q6ZU7ZJ5-P8HioiAD.js +0 -1
  30. package/packages/ui/dist/assets/avalanche-KOMJD3XY-Dsn_JPR4.js +0 -1
  31. package/packages/ui/dist/assets/bank-DyxCAL_C.js +0 -14
  32. package/packages/ui/dist/assets/base-OAXLRA4F-CoYTVIiL.js +0 -1
  33. package/packages/ui/dist/assets/base-QS6CYWIN-CsjdbWCf.js +0 -1
  34. package/packages/ui/dist/assets/basic-CnjXr1WW.js +0 -2128
  35. package/packages/ui/dist/assets/berachain-NJECWIVC-DumxnFvf.js +0 -1
  36. package/packages/ui/dist/assets/blast-V555OVXZ-BbhJh1tj.js +0 -1
  37. package/packages/ui/dist/assets/browser-C1sQ7PjQ.js +0 -14
  38. package/packages/ui/dist/assets/bsc-N647EYR2-B2nLKXWV.js +0 -1
  39. package/packages/ui/dist/assets/card-DUcWbZgm.js +0 -14
  40. package/packages/ui/dist/assets/ccip-ZC8164Ut.js +0 -1
  41. package/packages/ui/dist/assets/celo-GEP4TUHG-CenIBYLU.js +0 -1
  42. package/packages/ui/dist/assets/checkmark-BFIb0gZI.js +0 -11
  43. package/packages/ui/dist/assets/checkmark-bold-GxOovLvw.js +0 -8
  44. package/packages/ui/dist/assets/chevron-bottom-BWFm5iOO.js +0 -8
  45. package/packages/ui/dist/assets/chevron-left-Dw1vrfPS.js +0 -8
  46. package/packages/ui/dist/assets/chevron-right-Lj-4a_f7.js +0 -8
  47. package/packages/ui/dist/assets/chevron-top-CNtyUs8e.js +0 -8
  48. package/packages/ui/dist/assets/chrome-store-BFjfxT2g.js +0 -61
  49. package/packages/ui/dist/assets/clock-upNWT1cC.js +0 -8
  50. package/packages/ui/dist/assets/close-BXOvqFtp.js +0 -8
  51. package/packages/ui/dist/assets/coinPlaceholder-IDofua41.js +0 -8
  52. package/packages/ui/dist/assets/compass-Du2xGTuZ.js +0 -8
  53. package/packages/ui/dist/assets/connect-UA7M4XW6-IY3X6Bmr.js +0 -1
  54. package/packages/ui/dist/assets/copy-thfTJs3L.js +0 -15
  55. package/packages/ui/dist/assets/core-C8jSlwHY.js +0 -907
  56. package/packages/ui/dist/assets/create-FASO7PVG-D_rvSpre.js +0 -1
  57. package/packages/ui/dist/assets/cronos-HJPAQTAE-BEOvlOC4.js +0 -1
  58. package/packages/ui/dist/assets/cursor-Dc-Hxk5X.js +0 -3
  59. package/packages/ui/dist/assets/cursor-transparent-DGzNzXxd.js +0 -12
  60. package/packages/ui/dist/assets/de_DE-YE3KOFHU-BRt5ztUe.js +0 -1519
  61. package/packages/ui/dist/assets/degen-FQQ4XGHB-CeHTs88l.js +0 -1
  62. package/packages/ui/dist/assets/desktop-BozY9d6T.js +0 -9
  63. package/packages/ui/dist/assets/disconnect-B-oC8Fzu.js +0 -8
  64. package/packages/ui/dist/assets/discord-CpgvcuGY.js +0 -17
  65. package/packages/ui/dist/assets/es_419-7LMPU7G4-DH7rM0yQ.js +0 -1519
  66. package/packages/ui/dist/assets/ethereum-RGGVA4PY-SWGOlkuk.js +0 -1
  67. package/packages/ui/dist/assets/etherscan-DB-rL796.js +0 -6
  68. package/packages/ui/dist/assets/events-i9ztcj9W.js +0 -1
  69. package/packages/ui/dist/assets/exclamation-triangle-Ct0mzv3Y.js +0 -4
  70. package/packages/ui/dist/assets/extension-CubWAVae.js +0 -8
  71. package/packages/ui/dist/assets/external-link-CgYSHh7f.js +0 -8
  72. package/packages/ui/dist/assets/facebook-DI_kGikU.js +0 -26
  73. package/packages/ui/dist/assets/fallback-CtKplO-p.js +0 -1
  74. package/packages/ui/dist/assets/farcaster-PEZAXYqi.js +0 -12
  75. package/packages/ui/dist/assets/filters-D6NPvINV.js +0 -8
  76. package/packages/ui/dist/assets/flow-5FQJFCTK-CUie2reO.js +0 -1
  77. package/packages/ui/dist/assets/fr_FR-VBJP3ZLL-B-_ocunw.js +0 -1519
  78. package/packages/ui/dist/assets/github-BRk_ww3A.js +0 -18
  79. package/packages/ui/dist/assets/gnosis-37ZC4RBL-B137OtHZ.js +0 -1
  80. package/packages/ui/dist/assets/google-3tO0AiTd.js +0 -18
  81. package/packages/ui/dist/assets/gravity-J5YQHTYH-Bj6B0uod.js +0 -1
  82. package/packages/ui/dist/assets/hardhat-TX56IT5N-CV1FY-wE.js +0 -1
  83. package/packages/ui/dist/assets/help-circle-DtbseC_9.js +0 -12
  84. package/packages/ui/dist/assets/hi_IN-WBVD5XYI-D73g2UFs.js +0 -1519
  85. package/packages/ui/dist/assets/hyperevm-VKPAA4SA-CHwraEsx.js +0 -1
  86. package/packages/ui/dist/assets/id-DNQF-HQS.js +0 -12
  87. package/packages/ui/dist/assets/id_ID-SBYANJ7G-Cjpa4ay6.js +0 -1519
  88. package/packages/ui/dist/assets/image-D4l2W9gw.js +0 -4
  89. package/packages/ui/dist/assets/index-A8Mpr5Rm.js +0 -1
  90. package/packages/ui/dist/assets/index-BnYYo2S0.js +0 -16
  91. package/packages/ui/dist/assets/index-CKxgNxS9.css +0 -1
  92. package/packages/ui/dist/assets/index-D-PqJKnq.js +0 -1
  93. package/packages/ui/dist/assets/index-L6zhWbjO.js +0 -2103
  94. package/packages/ui/dist/assets/index-cl7Zazmz.js +0 -1
  95. package/packages/ui/dist/assets/index-vIXQ5sb2.js +0 -395
  96. package/packages/ui/dist/assets/index.es-BxPfiRyX.js +0 -26
  97. package/packages/ui/dist/assets/info-DAwJNl3r.js +0 -3
  98. package/packages/ui/dist/assets/info-circle-lvyXhzfD.js +0 -12
  99. package/packages/ui/dist/assets/ink-FZMYZWHG-62p-5IK5.js +0 -1
  100. package/packages/ui/dist/assets/ja_JP-ZRMWJV3I-DXbifiMm.js +0 -1519
  101. package/packages/ui/dist/assets/kaia-65D2U3PU-JmuLQ4gC.js +0 -1
  102. package/packages/ui/dist/assets/ko_KR-FR54RFUG-upinSHjQ.js +0 -1519
  103. package/packages/ui/dist/assets/lightbulb-BkrBfCQo.js +0 -3
  104. package/packages/ui/dist/assets/linea-QRMVQ5DY-DuI3vv0d.js +0 -1
  105. package/packages/ui/dist/assets/login-UP3DZBGS-Db_wM5oQ.js +0 -1
  106. package/packages/ui/dist/assets/mail-CrRh9uAx.js +0 -8
  107. package/packages/ui/dist/assets/manta-SI27YFEJ-CpVOKa06.js +0 -1
  108. package/packages/ui/dist/assets/mantle-CKIUT334-DR2WgqzU.js +0 -1
  109. package/packages/ui/dist/assets/metaMaskWallet-EI6MED72-D5HFOsnz.js +0 -1
  110. package/packages/ui/dist/assets/metamask-sdk-SH1hL_jU.js +0 -542
  111. package/packages/ui/dist/assets/mobile-Cq71LsIe.js +0 -9
  112. package/packages/ui/dist/assets/monad-4KWC6TSS-DVXSkpiz.js +0 -1
  113. package/packages/ui/dist/assets/more-CzCaTRQT.js +0 -11
  114. package/packages/ui/dist/assets/ms_MY-EZSGYYYQ-4cPLK-3L.js +0 -1519
  115. package/packages/ui/dist/assets/native-CJ5et6AR.js +0 -1
  116. package/packages/ui/dist/assets/network-placeholder-B7ilsHLj.js +0 -14
  117. package/packages/ui/dist/assets/nftPlaceholder-DYo4ThqR.js +0 -8
  118. package/packages/ui/dist/assets/off-CVXtiamx.js +0 -8
  119. package/packages/ui/dist/assets/optimism-HAF2GUT7-ec6Nqxs9.js +0 -1
  120. package/packages/ui/dist/assets/parseSignature-DDqjAA1x.js +0 -1
  121. package/packages/ui/dist/assets/play-store-Bxo5wDfY.js +0 -32
  122. package/packages/ui/dist/assets/plus-ByOmN8u0.js +0 -13
  123. package/packages/ui/dist/assets/polygon-WW6ZI7PM-DXlmm4L1.js +0 -1
  124. package/packages/ui/dist/assets/pt_BR-JQFQ3P4L-DOHfdcA2.js +0 -1519
  125. package/packages/ui/dist/assets/qr-code-BLcaF-bG.js +0 -6
  126. package/packages/ui/dist/assets/rainbowWallet-O26YNBMX-DUhYus-9.js +0 -1
  127. package/packages/ui/dist/assets/recycle-horizontal-R32E5-sJ.js +0 -9
  128. package/packages/ui/dist/assets/refresh-DV3LEAlt.js +0 -8
  129. package/packages/ui/dist/assets/refresh-S4T5V5GX-CwqIaaxK.js +0 -1
  130. package/packages/ui/dist/assets/reown-logo-CzXV-ULV.js +0 -12
  131. package/packages/ui/dist/assets/ronin-EMCPYXZT-N-QBHZdV.js +0 -1
  132. package/packages/ui/dist/assets/ru_RU-Z42UEJBP-Cvb2oWxQ.js +0 -1519
  133. package/packages/ui/dist/assets/safeWallet-5MNKTR5Z-D-5imDLD.js +0 -1
  134. package/packages/ui/dist/assets/sanko-RHQYXGM5-OX010CbN.js +0 -1
  135. package/packages/ui/dist/assets/scan-4UYSQ56Q-CjMz6-XC.js +0 -1
  136. package/packages/ui/dist/assets/scroll-5OBGQVOV-DJFECiai.js +0 -1
  137. package/packages/ui/dist/assets/search-C4ArXMR1.js +0 -8
  138. package/packages/ui/dist/assets/secp256k1-CigFWhM4.js +0 -1
  139. package/packages/ui/dist/assets/send-nlnStDog.js +0 -15
  140. package/packages/ui/dist/assets/sign-A7IJEUT5-CGsRnPrd.js +0 -1
  141. package/packages/ui/dist/assets/superposition-HG6MMR2Y-bRkgatRO.js +0 -1
  142. package/packages/ui/dist/assets/swapHorizontal-I-zOG8Yz.js +0 -8
  143. package/packages/ui/dist/assets/swapHorizontalBold-5VnEg1-A.js +0 -8
  144. package/packages/ui/dist/assets/swapHorizontalMedium-DK837_PS.js +0 -16
  145. package/packages/ui/dist/assets/swapHorizontalRoundedBold-EcrRbYtU.js +0 -8
  146. package/packages/ui/dist/assets/swapVertical--ZRk6QJu.js +0 -8
  147. package/packages/ui/dist/assets/telegram-DQOf_6vw.js +0 -16
  148. package/packages/ui/dist/assets/th_TH-4YB4VSB2-BUipNP-V.js +0 -1519
  149. package/packages/ui/dist/assets/three-dots-RaCioLRu.js +0 -5
  150. package/packages/ui/dist/assets/tr_TR-5FKHPPIO-D5jTpIm9.js +0 -1519
  151. package/packages/ui/dist/assets/twitch-CXMYNleq.js +0 -18
  152. package/packages/ui/dist/assets/twitterIcon-CafuOSTc.js +0 -6
  153. package/packages/ui/dist/assets/uk_UA-ZD4IBC52-DgnQrpzl.js +0 -1519
  154. package/packages/ui/dist/assets/unichain-C5BWO2ZY-BfguYsnu.js +0 -1
  155. package/packages/ui/dist/assets/verify-B5SZMJAG.js +0 -8
  156. package/packages/ui/dist/assets/verify-filled-BrlLx5ry.js +0 -8
  157. package/packages/ui/dist/assets/vi_VN-5EVRZKLY-x078672g.js +0 -1519
  158. package/packages/ui/dist/assets/w3m-modal-57iUR7pY.js +0 -642
  159. package/packages/ui/dist/assets/wallet-Fu8Tn5wK.js +0 -8
  160. package/packages/ui/dist/assets/wallet-placeholder-BYpbF3M_.js +0 -14
  161. package/packages/ui/dist/assets/walletConnectWallet-YHWKVTDY-D3lyiczV.js +0 -1
  162. package/packages/ui/dist/assets/walletconnect-BT9pozGB.js +0 -30
  163. package/packages/ui/dist/assets/warning-circle-BQ8awbZW.js +0 -12
  164. package/packages/ui/dist/assets/x-D21DQ5BR.js +0 -12
  165. package/packages/ui/dist/assets/xdc-KJ3TDBYO-DNV6zchh.js +0 -1
  166. package/packages/ui/dist/assets/zetachain-TLDS5IPW-Udhyw16T.js +0 -1
  167. package/packages/ui/dist/assets/zh_CN-4XK5YJPR-Bt6Yz5Ek.js +0 -1519
  168. package/packages/ui/dist/assets/zh_HK-N4YN2WSI-Cvzl1V16.js +0 -1519
  169. package/packages/ui/dist/assets/zh_TW-CNCRXH6Z-BNelatfN.js +0 -1519
  170. package/packages/ui/dist/assets/zksync-DH7HK5U4-Dt4usFw6.js +0 -1
  171. package/packages/ui/dist/assets/zora-FYL5H3IO-iB4wygST.js +0 -1
  172. package/packages/ui/dist/index.html +0 -14
package/README.md CHANGED
@@ -71,7 +71,7 @@ sailor init my-agent
71
71
 
72
72
  Prerequisites:
73
73
 
74
- - Node.js 18+ (the CLI runs on 18; `pnpm install` needs Node 22+)
74
+ - Node.js 18+
75
75
  - A wallet (MetaMask or Rabby)
76
76
  - An RPC URL (e.g. Alchemy free tier)
77
77
  - A supported chain: **Base, Base Sepolia, Arbitrum, or Unichain** — verified deployments are bundled in `@sail/sdk`, no `@sail/chains` entry needed. Other chains require addresses in `@sail/chains`.
@@ -95,8 +95,12 @@ sailor doctor # kernel model + RPC reachability + gas balances
95
95
  sailor ui start # open http://localhost:3333 to deploy SMA + create agent wallet
96
96
  sailor run --once # single tick — confirm it works before automating
97
97
  sailor run # start the agent (continuous)
98
+ sailor keys export-ci # copy the encrypted agent wallet to ci-keystore.json for CI commits
99
+ sailor mandate sign # sign a mandate — reconciles against live on-chain permissions first
98
100
  ```
99
101
 
102
+ `sailor run` writes reverted transactions to stderr as `reverted: <txHash> (gas used: N)`; successful dispatches are appended to `.sail/activity.jsonl`.
103
+
100
104
  ---
101
105
 
102
106
  ## Templates
@@ -218,6 +222,28 @@ a `RegisterPermission` EIP-712 message, then the agent submits
218
222
  `--json` for headless agent use; set `SAIL_PASSPHRASE` to unlock the manager key
219
223
  non-interactively.
220
224
 
225
+ `sailor mandate sign` reconciles against the live on-chain `getPermissions()` call
226
+ before building the mandate payload — permissions revoked on-chain are excluded even
227
+ if they remain in the local `.sail/state/mandates.json` (which is an append-only
228
+ historical record and is never modified by the reconciliation).
229
+
230
+ ### GitHub Actions CI
231
+
232
+ The scaffolded `.github/workflows/agent-tick.yml` runs `sailor run --once` on a
233
+ cron schedule using `npm ci` (no pnpm required). Setup:
234
+
235
+ 1. `sailor keys export-ci` — copies the encrypted agent wallet to `ci-keystore.json`
236
+ in the project root and allowlists it in `.gitignore`. The geth v3 keystore is
237
+ safe to commit; the raw private key is never exposed.
238
+ 2. Commit `ci-keystore.json`, `.sail/account.json`, and `.sail/mandate.json`.
239
+ 3. Add two repository secrets (Settings → Secrets → Actions):
240
+ - `SAIL_PASSPHRASE` — the passphrase that encrypts the agent wallet
241
+ - `RPC_URL` — your RPC endpoint
242
+
243
+ The workflow copies `ci-keystore.json` to `.sail/keys/manager.json`, then calls
244
+ `npx sailor run --once` with `SAIL_PASSPHRASE` set so the key is unlocked
245
+ non-interactively. No private key ever appears in the workflow file or in secrets.
246
+
221
247
  ---
222
248
 
223
249
  ## Architecture
@@ -256,6 +282,7 @@ The CLI and SDK sit between the operator and SailKernel: they build the EIP-712
256
282
  - The Owner key controls the Safe and is never read by Sailor. Mandate signing requires a deliberate action by the permission signer.
257
283
  - The manager key is encrypted on disk using geth keystore v3 (scrypt + aes-128-ctr) and is never transmitted.
258
284
  - The session can be paused instantly via `sailor session pause` or the dashboard stop button; this does not affect Safe custody.
285
+ - All addresses passed to the CLI are normalized with `getAddress()` (EIP-55 checksum). Mixed-case or lowercase inputs are accepted and canonicalized before any on-chain call or state write.
259
286
 
260
287
  ---
261
288
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dev.sail.money/sailor",
3
- "version": "0.0.2-17",
3
+ "version": "0.0.2-19",
4
4
  "description": "Operator toolkit for Sail Protocol",
5
5
  "bin": {
6
6
  "sailor": "packages/cli/dist/index.cjs"