@vapi-network/core 0.3.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +406 -5
  2. package/dist/account-add.d.ts +94 -0
  3. package/dist/account-add.d.ts.map +1 -0
  4. package/dist/accounts.d.ts.map +1 -1
  5. package/dist/agent-link.d.ts +112 -0
  6. package/dist/agent-link.d.ts.map +1 -0
  7. package/dist/agent-link.js +1781 -0
  8. package/dist/agent-link.js.map +6 -0
  9. package/dist/agent-profile.d.ts +56 -0
  10. package/dist/agent-profile.d.ts.map +1 -0
  11. package/dist/allocation.d.ts +33 -0
  12. package/dist/allocation.d.ts.map +1 -0
  13. package/dist/api-key.d.ts +99 -0
  14. package/dist/api-key.d.ts.map +1 -0
  15. package/dist/api-key.js +20086 -0
  16. package/dist/api-key.js.map +6 -0
  17. package/dist/audit.d.ts +5 -3
  18. package/dist/audit.d.ts.map +1 -1
  19. package/dist/authorization-state.d.ts +58 -0
  20. package/dist/authorization-state.d.ts.map +1 -0
  21. package/dist/backup.d.ts +186 -0
  22. package/dist/backup.d.ts.map +1 -0
  23. package/dist/backup.js +47542 -0
  24. package/dist/backup.js.map +6 -0
  25. package/dist/call-contracts-wire.d.ts +151 -11
  26. package/dist/call-contracts-wire.d.ts.map +1 -1
  27. package/dist/ceiling.d.ts +90 -0
  28. package/dist/ceiling.d.ts.map +1 -0
  29. package/dist/cloud-backup.d.ts +125 -0
  30. package/dist/cloud-backup.d.ts.map +1 -0
  31. package/dist/cloud-backup.js +48402 -0
  32. package/dist/cloud-backup.js.map +6 -0
  33. package/dist/config.d.ts +7 -1
  34. package/dist/config.d.ts.map +1 -1
  35. package/dist/device.d.ts +15 -0
  36. package/dist/device.d.ts.map +1 -0
  37. package/dist/discovery.d.ts +20 -2
  38. package/dist/discovery.d.ts.map +1 -1
  39. package/dist/distribute.d.ts +60 -0
  40. package/dist/distribute.d.ts.map +1 -0
  41. package/dist/index.d.ts +18 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +8106 -1393
  44. package/dist/index.js.map +3 -3
  45. package/dist/keystore.d.ts +24 -1
  46. package/dist/keystore.d.ts.map +1 -1
  47. package/dist/marketplace-contracts.d.ts +448 -15
  48. package/dist/marketplace-contracts.d.ts.map +1 -1
  49. package/dist/movement.d.ts +102 -0
  50. package/dist/movement.d.ts.map +1 -0
  51. package/dist/networks.d.ts +17 -2
  52. package/dist/networks.d.ts.map +1 -1
  53. package/dist/receipts.d.ts +42 -0
  54. package/dist/receipts.d.ts.map +1 -1
  55. package/dist/router-client.d.ts +117 -0
  56. package/dist/router-client.d.ts.map +1 -0
  57. package/dist/router-client.js +46147 -0
  58. package/dist/router-client.js.map +6 -0
  59. package/dist/secret-store.d.ts +17 -5
  60. package/dist/secret-store.d.ts.map +1 -1
  61. package/dist/secrets.d.ts +1 -0
  62. package/dist/secrets.d.ts.map +1 -1
  63. package/dist/secrets.js +597 -25
  64. package/dist/secrets.js.map +3 -3
  65. package/dist/siblings.d.ts +41 -0
  66. package/dist/siblings.d.ts.map +1 -0
  67. package/dist/spend-policy.d.ts +12 -0
  68. package/dist/spend-policy.d.ts.map +1 -1
  69. package/dist/status.d.ts +73 -0
  70. package/dist/status.d.ts.map +1 -0
  71. package/dist/support-report.d.ts +1 -1
  72. package/dist/sweep.d.ts +4 -0
  73. package/dist/sweep.d.ts.map +1 -1
  74. package/dist/transfer.d.ts +62 -0
  75. package/dist/transfer.d.ts.map +1 -0
  76. package/dist/vault-key.d.ts +41 -0
  77. package/dist/vault-key.d.ts.map +1 -0
  78. package/dist/vault-migrate.d.ts +29 -0
  79. package/dist/vault-migrate.d.ts.map +1 -0
  80. package/dist/vault.d.ts +93 -0
  81. package/dist/vault.d.ts.map +1 -0
  82. package/dist/wallet-store.d.ts +141 -31
  83. package/dist/wallet-store.d.ts.map +1 -1
  84. package/dist/x402-networks.d.ts +6 -9
  85. package/dist/x402-networks.d.ts.map +1 -1
  86. package/dist/x402-pay.d.ts +136 -0
  87. package/dist/x402-pay.d.ts.map +1 -0
  88. package/dist/x402.d.ts +20 -1
  89. package/dist/x402.d.ts.map +1 -1
  90. package/package.json +21 -1
@@ -0,0 +1,41 @@
1
+ import type { SecretStore } from "./secret-store.js";
2
+ import type { WalletName, WalletStore } from "./wallet-store.js";
3
+ export type SiblingStatus = "active" | "revoked";
4
+ export type Sibling = {
5
+ name: string;
6
+ address: `0x${string}`;
7
+ device: string | null;
8
+ status: SiblingStatus;
9
+ allowance: {
10
+ routerPerDayUsd: number | null;
11
+ perCallUsd: number | null;
12
+ perDayUsd: number | null;
13
+ };
14
+ self: boolean;
15
+ };
16
+ export type SiblingsResult = {
17
+ owner: `0x${string}` | null;
18
+ siblings: Sibling[];
19
+ source: {
20
+ account: WalletName;
21
+ };
22
+ };
23
+ export type SiblingsErrorCode = "not_linked" | "unsupported" | "invalid_response" | "http";
24
+ export declare class SiblingsError extends Error {
25
+ readonly code: SiblingsErrorCode;
26
+ readonly status?: number | undefined;
27
+ constructor(code: SiblingsErrorCode, message: string, status?: number | undefined);
28
+ }
29
+ export declare const SIBLINGS_UNSUPPORTED_MESSAGE = "This vAPI server does not list siblings yet.";
30
+ export declare const SIBLINGS_DEFAULT_TIMEOUT_MS = 10000;
31
+ export declare function fetchSiblings(args: {
32
+ apiBase: string;
33
+ account: WalletName;
34
+ secrets: SecretStore;
35
+ wallets: WalletStore;
36
+ fetchImpl?: typeof fetch;
37
+ now?: () => number;
38
+ signal?: AbortSignal;
39
+ timeoutMs?: number;
40
+ }): Promise<SiblingsResult>;
41
+ //# sourceMappingURL=siblings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siblings.d.ts","sourceRoot":"","sources":["../src/siblings.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AACjD,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE;QACT,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;IACF,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE;QAAE,OAAO,EAAE,UAAU,CAAA;KAAE,CAAC;CACjC,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,aAAa,GAAG,kBAAkB,GAAG,MAAM,CAAC;AAE3F,qBAAa,aAAc,SAAQ,KAAK;IAEpC,QAAQ,CAAC,IAAI,EAAE,iBAAiB;IAEhC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;gBAFf,IAAI,EAAE,iBAAiB,EAChC,OAAO,EAAE,MAAM,EACN,MAAM,CAAC,EAAE,MAAM,YAAA;CAK3B;AAED,eAAO,MAAM,4BAA4B,iDAAiD,CAAC;AAE3F,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAyBlD,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,cAAc,CAAC,CA0D1B"}
@@ -26,6 +26,18 @@ export declare function reserveSpend(amountAtomic: bigint, caps: SpendCaps, opti
26
26
  ledgerPath?: string;
27
27
  now?: Date;
28
28
  wallet?: WalletName;
29
+ reservationId?: string;
30
+ }): Promise<SpendLedger>;
31
+ /**
32
+ * Releases a reservation made earlier on the same UTC day. A reservation from
33
+ * a prior day has already rolled out of the active ledger and is left alone.
34
+ */
35
+ export declare function releaseSpend(amountAtomic: bigint, options: {
36
+ reservedOn: string;
37
+ ledgerPath?: string;
38
+ now?: Date;
39
+ wallet?: WalletName;
40
+ reservationId?: string;
29
41
  }): Promise<SpendLedger>;
30
42
  export {};
31
43
  //# sourceMappingURL=spend-policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spend-policy.d.ts","sourceRoot":"","sources":["../src/spend-policy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAyC,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1F,QAAA,MAAM,YAAY;;;iBAGhB,CAAC;AAkBH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAElE,qBAAa,aAAc,SAAQ,KAAK;aAEpB,IAAI,EAAE,uBAAuB,GAAG,sBAAsB;gBAAtD,IAAI,EAAE,uBAAuB,GAAG,sBAAsB,EACtE,OAAO,EAAE,MAAM;CAKlB;AAED,wBAAgB,UAAU,CAAC,GAAG,OAAa,GAAG,MAAM,CAEnD;AAED,+EAA+E;AAC/E,wBAAsB,eAAe,CACnC,IAAI,SAA6B,EACjC,GAAG,OAAa,EAChB,MAAM,GAAE,UAAgC,GACvC,OAAO,CAAC,WAAW,CAAC,CAItB;AAED,0DAA0D;AAC1D,wBAAsB,mBAAmB,CACvC,IAAI,SAA6B,EACjC,GAAG,OAAa,GACf,OAAO,CAAC,cAAc,EAAE,CAAC,CAkB3B;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,GACjE,OAAO,CAAC,WAAW,CAAC,CAsCtB"}
1
+ {"version":3,"file":"spend-policy.d.ts","sourceRoot":"","sources":["../src/spend-policy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAyC,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1F,QAAA,MAAM,YAAY;;;iBAGhB,CAAC;AA0BH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAKlE,qBAAa,aAAc,SAAQ,KAAK;aAEpB,IAAI,EAAE,uBAAuB,GAAG,sBAAsB;gBAAtD,IAAI,EAAE,uBAAuB,GAAG,sBAAsB,EACtE,OAAO,EAAE,MAAM;CAKlB;AAED,wBAAgB,UAAU,CAAC,GAAG,OAAa,GAAG,MAAM,CAEnD;AAED,+EAA+E;AAC/E,wBAAsB,eAAe,CACnC,IAAI,SAA6B,EACjC,GAAG,OAAa,EAChB,MAAM,GAAE,UAAgC,GACvC,OAAO,CAAC,WAAW,CAAC,CAItB;AAED,0DAA0D;AAC1D,wBAAsB,mBAAmB,CACvC,IAAI,SAA6B,EACjC,GAAG,OAAa,GACf,OAAO,CAAC,cAAc,EAAE,CAAC,CAM3B;AAuBD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC,WAAW,CAAC,CAsDtB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE;IACP,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC,WAAW,CAAC,CAgDtB"}
@@ -0,0 +1,73 @@
1
+ import type { AgentRouterUsage } from "./router-client.js";
2
+ import { type MovementSummary } from "./movement.js";
3
+ import type { SecretStore } from "./secret-store.js";
4
+ import type { WalletName } from "./wallet-name.js";
5
+ import { type WalletStore } from "./wallet-store.js";
6
+ export type AccountLinkStatus = "active" | "paused" | "revoked" | "not_linked" | "unknown";
7
+ export type StatusAccount = {
8
+ name: string;
9
+ default: boolean;
10
+ address: string;
11
+ usdc?: string;
12
+ routerTodayUsd?: string;
13
+ routerAllowanceUsd?: string;
14
+ caps: {
15
+ perCallUsd: string;
16
+ perDayUsd: string;
17
+ ceilingUsd: string;
18
+ ceilingFloorUsd?: string;
19
+ };
20
+ link: AccountLinkStatus;
21
+ };
22
+ export type StatusReport = {
23
+ version: string;
24
+ home: string;
25
+ registry: string;
26
+ owner?: {
27
+ address: string;
28
+ linked: boolean;
29
+ console: string;
30
+ };
31
+ vault: {
32
+ exists: boolean;
33
+ unlocked: boolean;
34
+ store: string;
35
+ protected: boolean;
36
+ };
37
+ accounts: StatusAccount[];
38
+ unfinishedMovements: MovementSummary[];
39
+ cloudBackup?: {
40
+ enabled: boolean;
41
+ lastUploadAt?: string;
42
+ };
43
+ next: string[];
44
+ };
45
+ export type StatusDeps = {
46
+ version: string;
47
+ home: string;
48
+ registry: string;
49
+ wallets: WalletStore;
50
+ secrets: SecretStore;
51
+ env?: NodeJS.ProcessEnv;
52
+ chain: {
53
+ usdcBalance: (address: string, signal?: AbortSignal) => Promise<bigint>;
54
+ };
55
+ agents: {
56
+ routerUsage: (account: WalletName, signal?: AbortSignal) => Promise<AgentRouterUsage>;
57
+ linkStatus: (account: WalletName, signal?: AbortSignal) => Promise<Exclude<AccountLinkStatus, "not_linked">>;
58
+ };
59
+ cloudBackup?: (signal?: AbortSignal) => Promise<{
60
+ enabled: boolean;
61
+ lastUploadAt?: string;
62
+ }>;
63
+ now: () => Date;
64
+ timeoutMs?: number;
65
+ timers?: {
66
+ setTimeout: typeof setTimeout;
67
+ clearTimeout: typeof clearTimeout;
68
+ };
69
+ };
70
+ export declare const STATUS_TIMEOUT_MS = 2000;
71
+ export declare function buildStatus(deps: StatusDeps): Promise<StatusReport>;
72
+ export declare function formatUsdAmount(value: bigint | number): string;
73
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type LookupFn } from "./net-guard.js";
2
- export declare const VAPI_CLIENT_VERSION = "0.3.0";
2
+ export declare const VAPI_CLIENT_VERSION = "0.7.0";
3
3
  export type SupportSystemInfo = {
4
4
  platform: string;
5
5
  release: string;
package/dist/sweep.d.ts CHANGED
@@ -34,6 +34,10 @@ export type SweepResult = {
34
34
  amountAtomic: string;
35
35
  transaction: string;
36
36
  };
37
+ export declare class SweepGasError extends Error {
38
+ readonly address: string;
39
+ constructor(address: string, cause: unknown);
40
+ }
37
41
  export declare function calculateSweepAmount(balanceAtomic: bigint, gasHeadroomAtomic: bigint): bigint;
38
42
  export declare function getArcGasHeadroomAtomic(): bigint;
39
43
  export declare function readUsdcBalance(args: {
@@ -1 +1 @@
1
- {"version":3,"file":"sweep.d.ts","sourceRoot":"","sources":["../src/sweep.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAYxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBZ,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAK7F;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAYhD;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBlB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IACpC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB,GAAG,OAAO,CAAC,WAAW,CAAC,CAkFvB"}
1
+ {"version":3,"file":"sweep.d.ts","sourceRoot":"","sources":["../src/sweep.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAaxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBZ,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAQ5C;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAK7F;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAYhD;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBlB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IACpC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB,GAAG,OAAO,CAAC,WAAW,CAAC,CA+FvB"}
@@ -0,0 +1,62 @@
1
+ import type { SecretStore } from "./secret-store.js";
2
+ import { type WalletName, type WalletStore } from "./wallet-store.js";
3
+ import { type X402TypedData } from "./x402.js";
4
+ import { ARC_MAINNET_CAIP2, BASE_MAINNET_CAIP2 } from "./x402-networks.js";
5
+ export type TransferPurpose = "send" | "sweep";
6
+ export type TransferNetwork = typeof BASE_MAINNET_CAIP2 | typeof ARC_MAINNET_CAIP2;
7
+ export type TransferSigner = {
8
+ address: `0x${string}`;
9
+ signTypedData: (typedData: X402TypedData) => Promise<`0x${string}`>;
10
+ };
11
+ export type TransferArgs = {
12
+ store: WalletStore;
13
+ secrets: SecretStore;
14
+ apiBase: string;
15
+ from: WalletName;
16
+ to: string;
17
+ amountUsd: string | number;
18
+ network?: "base" | "arc" | TransferNetwork;
19
+ purpose?: TransferPurpose;
20
+ unlock?: (account: WalletName) => Promise<TransferSigner>;
21
+ resume?: `0x${string}`;
22
+ fetchImpl?: typeof fetch;
23
+ now?: () => number;
24
+ nonce?: `0x${string}`;
25
+ timeoutMs?: number;
26
+ /** Cancels discovery/signing/relay work owned by a bounded best-effort caller. */
27
+ signal?: AbortSignal;
28
+ ledgerPath?: string;
29
+ home?: string;
30
+ };
31
+ export type TransferResult = {
32
+ status: "sent" | "unknown";
33
+ from: WalletName;
34
+ to: `0x${string}`;
35
+ toName: string;
36
+ toKind: "owner" | "account";
37
+ amountUsd: string;
38
+ amountAtomic: string;
39
+ network: TransferNetwork;
40
+ txHash: `0x${string}` | null;
41
+ nonce: `0x${string}`;
42
+ replayed: boolean;
43
+ };
44
+ export type TransferErrorCode = "invalid_amount" | "invalid_network" | "not_linked" | "unsupported" | "recipient_not_allowed" | "ambiguous_recipient" | "sweep_not_owner" | "per_call_cap_exceeded" | "per_day_cap_exceeded" | "payer_mismatch" | "payee_not_allowed" | "authorization_invalid" | "relay_limit" | "relay_failed" | "temporarily_unavailable" | "network_error" | "resume_not_found" | "resume_mismatch" | "signer_mismatch" | "signing_failed";
45
+ export declare class TransferError extends Error {
46
+ readonly code: TransferErrorCode;
47
+ readonly moneyMoved: false;
48
+ readonly reservationReleased: boolean;
49
+ readonly resetsAt?: string;
50
+ readonly addresses?: string[];
51
+ constructor(code: TransferErrorCode, message: string, options?: {
52
+ reservationReleased?: boolean;
53
+ resetsAt?: string;
54
+ addresses?: string[];
55
+ });
56
+ }
57
+ export declare function parseTransferAmount(value: string | number): {
58
+ amountUsd: string;
59
+ amountAtomic: bigint;
60
+ };
61
+ export declare function transferBetweenAccounts(args: TransferArgs): Promise<TransferResult>;
62
+ //# sourceMappingURL=transfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../src/transfer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { SecretStore } from "./secret-store.js";
2
+ import { type Vault } from "./vault.js";
3
+ export declare const VAULT_KEY_ACCOUNT = "vault-key";
4
+ export declare const VAULT_SESSION_ACCOUNT = "vault-session";
5
+ export type VaultEnv = Record<string, string | undefined>;
6
+ export declare function loadOrCreateDeviceKey(args: {
7
+ secrets: SecretStore;
8
+ randomBytes?: (size: number) => Uint8Array;
9
+ }): Promise<Uint8Array>;
10
+ export declare function protectVault(args: {
11
+ path: string;
12
+ secrets: SecretStore;
13
+ password?: string;
14
+ env?: VaultEnv;
15
+ randomBytes?: (size: number) => Uint8Array;
16
+ }): Promise<void>;
17
+ export declare function unprotectVault(args: {
18
+ path: string;
19
+ secrets: SecretStore;
20
+ password?: string;
21
+ env?: VaultEnv;
22
+ }): Promise<void>;
23
+ export declare function unlockProtectedVault(args: {
24
+ path: string;
25
+ secrets: SecretStore;
26
+ password?: string;
27
+ env?: VaultEnv;
28
+ sessionHours?: number;
29
+ now?: () => Date;
30
+ }): Promise<Uint8Array>;
31
+ export declare function lockVault(args: {
32
+ secrets: SecretStore;
33
+ }): Promise<boolean>;
34
+ export declare function restoreVault(args: {
35
+ path: string;
36
+ key: Uint8Array;
37
+ phrase: string;
38
+ probe: (address: `0x${string}`) => Promise<boolean>;
39
+ now?: () => Date;
40
+ }): Promise<Vault>;
41
+ //# sourceMappingURL=vault-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-key.d.ts","sourceRoot":"","sources":["../src/vault-key.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAQL,KAAK,KAAK,EACX,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AACrD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAa1D,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC;CAC5C,GAAG,OAAO,CAAC,UAAU,CAAC,CAatB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC;CAC5C,GAAG,OAAO,CAAC,IAAI,CAAC,CA+ChB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BhB;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,GAAG,OAAO,CAAC,UAAU,CAAC,CAyCtB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAMhF;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,GAAG,OAAO,CAAC,KAAK,CAAC,CA0CjB"}
@@ -0,0 +1,29 @@
1
+ import { type AuditRecord } from "./audit.js";
2
+ import { type Vault } from "./vault.js";
3
+ export declare const MIGRATED_DIRECTORY = "wallets.migrated";
4
+ export type MigrationSkipReason = "passphrase_needed" | "unreadable" | "name_taken";
5
+ export type KeystoreMigration = {
6
+ imported: string[];
7
+ skipped: {
8
+ name: string;
9
+ reason: MigrationSkipReason;
10
+ }[];
11
+ };
12
+ /** Returns the 0.5 passphrase for one wallet name, or undefined when it cannot be obtained without a person. */
13
+ export type PassphraseResolver = (name: string) => Promise<string | undefined>;
14
+ /**
15
+ * Names of the 0.5 keystores still under `<home>/wallets/`. Only regular files
16
+ * named for a valid wallet are returned.
17
+ */
18
+ export declare function legacyKeystoreNames(home: string): Promise<string[]>;
19
+ export declare function migrateKeystores(args: {
20
+ home: string;
21
+ vault: Vault;
22
+ resolvePassphrase: PassphraseResolver;
23
+ /** Audit writer; defaults to appendAudit(home, record, { now }). Injected so tests can capture lines. */
24
+ audit?: (record: AuditRecord) => Promise<unknown>;
25
+ now?: () => Date;
26
+ /** When given, only these names are considered (the store uses it to migrate one keystore on unlock). */
27
+ only?: readonly string[];
28
+ }): Promise<KeystoreMigration>;
29
+ //# sourceMappingURL=vault-migrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-migrate.d.ts","sourceRoot":"","sources":["../src/vault-migrate.ts"],"names":[],"mappings":"AAeA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAG3D,OAAO,EAAc,KAAK,KAAK,EAAqB,MAAM,YAAY,CAAC;AAGvE,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,YAAY,GAAG,YAAY,CAAC;AACpF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,mBAAmB,CAAA;KAAE,EAAE,CAAC;CAC1D,CAAC;AACF,gHAAgH;AAChH,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAE/E;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAczE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,yGAAyG;IACzG,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,yGAAyG;IACzG,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwF7B"}
@@ -0,0 +1,93 @@
1
+ import { type VapiPaymentAccount } from "./keystore.js";
2
+ export type VaultAccount = {
3
+ name: string;
4
+ kind: "derived";
5
+ index: number;
6
+ address: `0x${string}`;
7
+ createdAt: string;
8
+ } | {
9
+ name: string;
10
+ kind: "imported";
11
+ address: `0x${string}`;
12
+ createdAt: string;
13
+ };
14
+ export type VaultFile = {
15
+ version: 2;
16
+ kdf: "device-key";
17
+ cipher: "aes-256-gcm";
18
+ phrase: string;
19
+ accounts: (VaultAccount & {
20
+ key?: string;
21
+ })[];
22
+ /** Monotonic high-water mark; absent in vaults written before account removal was supported. */
23
+ nextDerivedIndex?: number;
24
+ protected: boolean;
25
+ wrappedKey?: string;
26
+ };
27
+ export type VaultErrorCode = "not_found" | "name_taken" | "has_balance" | "bad_key" | "corrupt" | "already_protected" | "not_protected" | "password_required";
28
+ export declare class VaultError extends Error {
29
+ readonly code: VaultErrorCode;
30
+ constructor(code: VaultErrorCode, message: string, options?: ErrorOptions);
31
+ }
32
+ export type VaultOptions = {
33
+ path: string;
34
+ key: Uint8Array;
35
+ /** Chain read used by removeAccount; removal fails closed when it is absent. */
36
+ balanceOf?: (address: `0x${string}`) => Promise<bigint>;
37
+ /** Injected clock for createdAt; defaults to () => new Date(). */
38
+ now?: () => Date;
39
+ };
40
+ export interface Vault {
41
+ accounts(): VaultAccount[];
42
+ deriveAccount(name: string): Promise<VaultAccount>;
43
+ importAccount(name: string, privateKey: `0x${string}`): Promise<VaultAccount>;
44
+ removeAccount(name: string): Promise<void>;
45
+ rename(from: string, to: string): Promise<void>;
46
+ signer(name: string): Promise<VapiPaymentAccount>;
47
+ phrase(): Promise<string>;
48
+ save(): Promise<void>;
49
+ }
50
+ type StoredDerivedAccount = Extract<VaultAccount, {
51
+ kind: "derived";
52
+ }>;
53
+ type StoredImportedAccount = Extract<VaultAccount, {
54
+ kind: "imported";
55
+ }> & {
56
+ key: string;
57
+ };
58
+ type StoredAccount = StoredDerivedAccount | StoredImportedAccount;
59
+ export type StoredVaultFile = Omit<VaultFile, "accounts"> & {
60
+ accounts: StoredAccount[];
61
+ };
62
+ export type StoredVaultAccount = StoredVaultFile["accounts"][number];
63
+ export declare function createVault(args: VaultOptions & {
64
+ phrase?: string;
65
+ }): Promise<Vault>;
66
+ export declare function openVault(args: VaultOptions): Promise<Vault>;
67
+ /**
68
+ * Puts a stored account record back into the vault under the vault lock: the exact
69
+ * record `readVaultFileUnlocked` returned before `removeAccount` took it out.
70
+ * Refuses (VaultError "name_taken") a name that is already present or, for a
71
+ * derived record, an index already in use; refuses ("bad_key") an imported record
72
+ * whose key does not decrypt to its address with this device key. Returns the
73
+ * public VaultAccount.
74
+ */
75
+ export declare function reinstateVaultAccount(args: {
76
+ path: string;
77
+ key: Uint8Array;
78
+ account: StoredVaultAccount;
79
+ }): Promise<VaultAccount>;
80
+ /** Human-only: opens the vault and returns the recovery phrase. Re-exported ONLY from secrets.ts. */
81
+ export declare function exportVaultPhrase(args: VaultOptions): Promise<string>;
82
+ /** Human-only: decrypts one named account's private key. Re-exported ONLY from secrets.ts. */
83
+ export declare function exportVaultAccountKey(args: {
84
+ path: string;
85
+ key: Uint8Array;
86
+ name: string;
87
+ }): Promise<`0x${string}`>;
88
+ export declare function readVaultFileUnlocked(path: string): Promise<StoredVaultFile>;
89
+ export declare function writeVaultFile(path: string, file: StoredVaultFile): Promise<void>;
90
+ /** Serializes vault read-modify-write transactions across CLI and MCP processes. */
91
+ export declare function withVaultLock<T>(path: string, operation: () => Promise<T>): Promise<T>;
92
+ export {};
93
+ //# sourceMappingURL=vault.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../src/vault.ts"],"names":[],"mappings":"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"}