@vapi-network/core 0.5.0 → 0.8.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 (95) hide show
  1. package/README.md +406 -5
  2. package/dist/account-add.d.ts +101 -0
  3. package/dist/account-add.d.ts.map +1 -0
  4. package/dist/account-movement-lock.d.ts +10 -0
  5. package/dist/account-movement-lock.d.ts.map +1 -0
  6. package/dist/agent-link.d.ts +16 -1
  7. package/dist/agent-link.d.ts.map +1 -1
  8. package/dist/agent-link.js +131 -54
  9. package/dist/agent-link.js.map +3 -3
  10. package/dist/agent-profile.d.ts +47 -6
  11. package/dist/agent-profile.d.ts.map +1 -1
  12. package/dist/agent-run.d.ts +12 -0
  13. package/dist/agent-run.d.ts.map +1 -0
  14. package/dist/allocation.d.ts +64 -0
  15. package/dist/allocation.d.ts.map +1 -0
  16. package/dist/api-key.js +4 -2
  17. package/dist/api-key.js.map +1 -1
  18. package/dist/atomic-file.d.ts +23 -0
  19. package/dist/atomic-file.d.ts.map +1 -0
  20. package/dist/audit.d.ts +4 -1
  21. package/dist/audit.d.ts.map +1 -1
  22. package/dist/backup.d.ts +307 -0
  23. package/dist/backup.d.ts.map +1 -0
  24. package/dist/backup.js +49938 -0
  25. package/dist/backup.js.map +6 -0
  26. package/dist/call-contracts-wire.d.ts +12 -12
  27. package/dist/ceiling.d.ts +98 -0
  28. package/dist/ceiling.d.ts.map +1 -0
  29. package/dist/cloud-backup.d.ts +123 -0
  30. package/dist/cloud-backup.d.ts.map +1 -0
  31. package/dist/cloud-backup.js +50827 -0
  32. package/dist/cloud-backup.js.map +6 -0
  33. package/dist/config.d.ts +5 -0
  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/distribute.d.ts +68 -0
  38. package/dist/distribute.d.ts.map +1 -0
  39. package/dist/index.d.ts +17 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +10131 -1228
  42. package/dist/index.js.map +3 -3
  43. package/dist/keystore.d.ts +24 -1
  44. package/dist/keystore.d.ts.map +1 -1
  45. package/dist/marketplace-contracts.d.ts +14 -14
  46. package/dist/member-bundle.d.ts +110 -0
  47. package/dist/member-bundle.d.ts.map +1 -0
  48. package/dist/movement-open.d.ts +10 -0
  49. package/dist/movement-open.d.ts.map +1 -0
  50. package/dist/movement.d.ts +172 -0
  51. package/dist/movement.d.ts.map +1 -0
  52. package/dist/networks.d.ts +1 -0
  53. package/dist/networks.d.ts.map +1 -1
  54. package/dist/receipts.d.ts +33 -0
  55. package/dist/receipts.d.ts.map +1 -1
  56. package/dist/router-client.d.ts +9 -1
  57. package/dist/router-client.d.ts.map +1 -1
  58. package/dist/router-client.js +36500 -16308
  59. package/dist/router-client.js.map +3 -3
  60. package/dist/run-budget.d.ts +17 -0
  61. package/dist/run-budget.d.ts.map +1 -0
  62. package/dist/secret-store.d.ts +23 -5
  63. package/dist/secret-store.d.ts.map +1 -1
  64. package/dist/secrets.d.ts +2 -0
  65. package/dist/secrets.d.ts.map +1 -1
  66. package/dist/secrets.js +1439 -56
  67. package/dist/secrets.js.map +3 -3
  68. package/dist/siblings.d.ts +41 -0
  69. package/dist/siblings.d.ts.map +1 -0
  70. package/dist/spend-policy.d.ts +12 -0
  71. package/dist/spend-policy.d.ts.map +1 -1
  72. package/dist/status.d.ts +73 -0
  73. package/dist/status.d.ts.map +1 -0
  74. package/dist/support-report.d.ts +1 -1
  75. package/dist/swarm-capital.d.ts +147 -0
  76. package/dist/swarm-capital.d.ts.map +1 -0
  77. package/dist/swarm.d.ts +224 -0
  78. package/dist/swarm.d.ts.map +1 -0
  79. package/dist/transfer-journal.d.ts +11 -0
  80. package/dist/transfer-journal.d.ts.map +1 -0
  81. package/dist/transfer.d.ts +65 -0
  82. package/dist/transfer.d.ts.map +1 -0
  83. package/dist/vault-key.d.ts +41 -0
  84. package/dist/vault-key.d.ts.map +1 -0
  85. package/dist/vault-migrate.d.ts +29 -0
  86. package/dist/vault-migrate.d.ts.map +1 -0
  87. package/dist/vault.d.ts +104 -0
  88. package/dist/vault.d.ts.map +1 -0
  89. package/dist/wallet-store.d.ts +135 -39
  90. package/dist/wallet-store.d.ts.map +1 -1
  91. package/dist/x402-pay.d.ts +12 -0
  92. package/dist/x402-pay.d.ts.map +1 -1
  93. package/dist/x402.d.ts +3 -0
  94. package/dist/x402.d.ts.map +1 -1
  95. package/package.json +9 -1
@@ -0,0 +1,23 @@
1
+ export interface WriteJsonAtomicOptions {
2
+ mode?: number;
3
+ }
4
+ export interface FileLockOptions {
5
+ timeoutMs?: number;
6
+ lockedMessage?: string;
7
+ }
8
+ interface AtomicFileTestHooks {
9
+ beforeLockAttempt?: (path: string) => void | Promise<void>;
10
+ afterLockCreate?: (path: string) => void | Promise<void>;
11
+ beforeStaleLockBreak?: (path: string) => void | Promise<void>;
12
+ afterMismatchedLockRename?: (path: string) => void | Promise<void>;
13
+ afterMismatchedLockRestore?: (path: string) => void | Promise<void>;
14
+ isProcessAlive?: (pid: number) => boolean;
15
+ }
16
+ export declare function __setAtomicFileTestHooks(hooks: AtomicFileTestHooks | undefined): void;
17
+ export declare class FileLockedError extends Error {
18
+ constructor(message?: string);
19
+ }
20
+ export declare function writeJsonAtomic(path: string, value: unknown, options?: WriteJsonAtomicOptions): Promise<void>;
21
+ export declare function withFileLock<T>(lockPath: string, fn: () => Promise<T>, options?: FileLockOptions): Promise<T>;
22
+ export {};
23
+ //# sourceMappingURL=atomic-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-file.d.ts","sourceRoot":"","sources":["../src/atomic-file.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,mBAAmB;IAC3B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3C;AAID,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,GAAG,SAAS,GAAG,IAAI,CAErF;AAED,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,SAAyC;CAI7D;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,wBAAsB,YAAY,CAAC,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,CAAC,CAAC,CAkEZ"}
package/dist/audit.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { RunRef } from "./agent-run.js";
1
2
  /**
2
3
  * The local trail of everything that touched a key or a wallet: one JSON line
3
4
  * per event in `<home>/audit.log`, mode 0600. It exists so a person can answer
@@ -8,10 +9,12 @@
8
9
  * its linked owner, whether a terminal was attached, and which agent marker
9
10
  * was set — nothing that could help someone spend the wallet.
10
11
  */
11
- export declare const AUDIT_EVENTS: readonly ["secret.export.phrase", "secret.export.key", "wallet.create", "wallet.import", "wallet.remove", "wallet.restore", "wallet.rename", "wallet.default", "wallet.caps", "wallet.unlock", "wallet.lock", "wallet.use.session", "passphrase.change", "auth.key.set", "auth.key.clear", "agent.linked", "agent.unlinked", "agent.run.start", "agent.run.step", "agent.run.pay", "agent.run.declined", "agent.run.end", "router.buy", "router.refill.declined", "listing.publish", "listing.status", "listing.claim"];
12
+ export declare const AUDIT_EVENTS: readonly ["secret.export.phrase", "secret.export.key", "wallet.create", "wallet.import", "wallet.remove", "wallet.restore", "wallet.rename", "wallet.default", "wallet.caps", "ceiling.swept", "ceiling.sweep_failed", "vault.migrate", "vault.protect", "vault.unprotect", "vault.backup_shown", "vault.restore", "wallet.unlock", "wallet.lock", "wallet.use.session", "passphrase.change", "auth.key.set", "auth.key.clear", "agent.linked", "agent.unlinked", "agent.run.start", "agent.run.step", "agent.run.pay", "agent.run.declined", "agent.run.end", "agent.remote_key_exported", "agent.remote_key_refused", "router.buy", "router.refill.declined", "listing.publish", "listing.status", "listing.claim"];
12
13
  export type AuditEvent = (typeof AUDIT_EVENTS)[number];
13
14
  export type AuditRecord = {
14
15
  event: AuditEvent;
16
+ /** The agent run responsible for this event, when it happened inside a run. */
17
+ run?: RunRef;
15
18
  /** The wallet the event acted on, when one was selected. */
16
19
  wallet?: string;
17
20
  /** The owner wallet of a linked agent. Never an access token or Router key. */
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,yfAwCf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,GAAG,EAAE,OAAO,CAAC;IACb,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,eAAO,MAAM,UAAU,cAAc,CAAC;AAEtC,MAAM,MAAM,YAAY,GAAG;IACzB,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,UAAU,CAAC,CAgBrB;AAED,4EAA4E;AAC5E,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAYtE"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG7C;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,urBAwDf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,GAAG,EAAE,OAAO,CAAC;IACb,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,eAAO,MAAM,UAAU,cAAc,CAAC;AAEtC,MAAM,MAAM,YAAY,GAAG;IACzB,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,UAAU,CAAC,CAiBrB;AAED,4EAA4E;AAC5E,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAYtE"}
@@ -0,0 +1,307 @@
1
+ import { type AgentProfileParser } from "./agent-profile.js";
2
+ import { type SpendCaps } from "./config.js";
3
+ import { type Movement, type MovementSummary } from "./movement.js";
4
+ import { type Receipt } from "./receipts.js";
5
+ import { type SwarmFile } from "./swarm.js";
6
+ import { type RouterRefill, type WalletStore } from "./wallet-store.js";
7
+ import { type VaultAccount } from "./vault.js";
8
+ export type BackupErrorCode = "backup_too_large" | "backup_open_failed" | "backup_unsupported" | "unsupported_signature" | "weak_password" | "backup_invalid_input" | "backup_snapshot_busy" | "relay_open_failed" | "relay_invalid_key" | "vault_exists";
9
+ export declare class BackupError extends Error {
10
+ readonly code: BackupErrorCode;
11
+ constructor(code: BackupErrorCode);
12
+ }
13
+ export type BackupAccount = {
14
+ name: string;
15
+ kind: "derived";
16
+ index: number;
17
+ address: `0x${string}`;
18
+ createdAt: string;
19
+ } | {
20
+ name: string;
21
+ kind: "imported";
22
+ address: `0x${string}`;
23
+ privateKey: `0x${string}`;
24
+ createdAt: string;
25
+ };
26
+ export type BackupRegistryAccountV1 = {
27
+ name: string;
28
+ label?: string;
29
+ spendCaps: SpendCaps;
30
+ };
31
+ export type BackupRegistryAccountV2 = BackupRegistryAccountV1 & {
32
+ ceilingAtomic?: string | null;
33
+ routerRefill?: RouterRefill;
34
+ };
35
+ export type BackupRegistryV1 = {
36
+ default?: string;
37
+ accounts: BackupRegistryAccountV1[];
38
+ networks: string[];
39
+ };
40
+ /** The original registry name remains an alias for source compatibility. */
41
+ export type BackupRegistry = BackupRegistryV1;
42
+ export type BackupRegistryV2 = {
43
+ default?: string;
44
+ accounts: BackupRegistryAccountV2[];
45
+ networks: string[];
46
+ };
47
+ export type BackupAgentProfile = {
48
+ version: 1;
49
+ name: string;
50
+ wallet: string;
51
+ model: string;
52
+ instructions: string;
53
+ verifiedOnly: boolean;
54
+ approveAboveUsd: number;
55
+ maxSteps: number;
56
+ paused: boolean;
57
+ createdAt: string;
58
+ tools: string[];
59
+ /** Present only when the profile grants something (swarm leads and members). */
60
+ grants?: ("read" | "delegate" | "allocate")[];
61
+ };
62
+ export type BackupSwarm = SwarmFile;
63
+ export type BackupMovement = Movement | {
64
+ v: 1;
65
+ id: string;
66
+ reason: "distribute";
67
+ from: string;
68
+ network: "eip155:8453" | "eip155:5042";
69
+ createdAt: string;
70
+ legs: {
71
+ to: string;
72
+ amountUsd: string;
73
+ nonce: string;
74
+ status: "planned" | "sent" | "failed" | "unknown";
75
+ txHash?: string;
76
+ reason?: string;
77
+ retryable?: boolean;
78
+ }[];
79
+ };
80
+ export type BackupTransferReceipt = {
81
+ id: string;
82
+ timestamp: string;
83
+ kind: "transfer";
84
+ wallet: string;
85
+ resourceUrl: string;
86
+ quote: {
87
+ network: string;
88
+ asset: string;
89
+ amountAtomic: string;
90
+ };
91
+ transfer: NonNullable<Receipt["transfer"]>;
92
+ error?: NonNullable<Receipt["error"]>;
93
+ };
94
+ export type BackupPlaintextV1 = {
95
+ v: 1;
96
+ phrase: string;
97
+ nextDerivedIndex: number;
98
+ accounts: BackupAccount[];
99
+ registry: BackupRegistryV1;
100
+ protected: boolean;
101
+ };
102
+ export type BackupPlaintextV2 = {
103
+ v: 2;
104
+ phrase: string;
105
+ nextDerivedIndex: number;
106
+ accounts: BackupAccount[];
107
+ registry: BackupRegistryV2;
108
+ protected: boolean;
109
+ agents?: BackupAgentProfile[];
110
+ swarms?: BackupSwarm[];
111
+ movements?: BackupMovement[];
112
+ transferReceipts?: BackupTransferReceipt[];
113
+ };
114
+ export type BackupPlaintext = BackupPlaintextV1 | BackupPlaintextV2;
115
+ export type BackupSourceV1 = Omit<BackupPlaintextV1, "v">;
116
+ export type BackupSourceV2 = Omit<BackupPlaintextV2, "v" | "agents" | "swarms" | "movements" | "transferReceipts"> & {
117
+ agents: BackupAgentProfile[];
118
+ swarms: BackupSwarm[];
119
+ movements: BackupMovement[];
120
+ transferReceipts: BackupTransferReceipt[];
121
+ skipped?: BackupExportSkipped[];
122
+ };
123
+ export type BackupSource = BackupSourceV1 | BackupSourceV2;
124
+ export type BackupOmittedSection = "agents" | "swarms" | "movements";
125
+ export type BackupExportSkipped = {
126
+ kind: "agent";
127
+ name: string;
128
+ reason: "invalid_profile";
129
+ };
130
+ export type BackupRestoreBaseResult = {
131
+ accounts: VaultAccount[];
132
+ default?: string;
133
+ protected: boolean;
134
+ networks: string[];
135
+ };
136
+ export type BackupRestoreSkipped = {
137
+ kind: "agent" | "swarm" | "movement" | "receipt";
138
+ name: string;
139
+ reason: string;
140
+ };
141
+ export type BackupRestoreConflict = {
142
+ kind: BackupRestoreSkipped["kind"];
143
+ name: string;
144
+ path: string;
145
+ };
146
+ export type BackupRestoreV2Result = BackupRestoreBaseResult & {
147
+ agents: string[];
148
+ swarms: string[];
149
+ movements: MovementSummary[];
150
+ skipped: BackupRestoreSkipped[];
151
+ conflicts: BackupRestoreConflict[];
152
+ };
153
+ export type BackupRestoreResult = BackupRestoreBaseResult | BackupRestoreV2Result;
154
+ export type BackupKdf = {
155
+ name: "hkdf-sha256";
156
+ salt: string;
157
+ } | {
158
+ name: "scrypt";
159
+ salt: string;
160
+ N: 131_072;
161
+ r: 8;
162
+ p: 1;
163
+ };
164
+ export type BackupHeader = {
165
+ format: "vapi-vault-backup";
166
+ v: 1;
167
+ owner: `0x${string}`;
168
+ device: string;
169
+ createdAt: string;
170
+ kdf: BackupKdf;
171
+ cipher: {
172
+ name: "aes-256-gcm";
173
+ nonce: string;
174
+ };
175
+ };
176
+ export type VaultBackupTypedData = {
177
+ domain: {
178
+ name: "vAPI Vault Backup";
179
+ version: "1";
180
+ };
181
+ types: {
182
+ VaultBackupKey: readonly [
183
+ {
184
+ readonly name: "purpose";
185
+ readonly type: "string";
186
+ },
187
+ {
188
+ readonly name: "site";
189
+ readonly type: "string";
190
+ },
191
+ {
192
+ readonly name: "owner";
193
+ readonly type: "address";
194
+ },
195
+ {
196
+ readonly name: "version";
197
+ readonly type: "uint256";
198
+ }
199
+ ];
200
+ };
201
+ primaryType: "VaultBackupKey";
202
+ message: {
203
+ purpose: string;
204
+ site: "vapinetwork.ai";
205
+ owner: `0x${string}`;
206
+ version: 1;
207
+ };
208
+ };
209
+ type RandomBytes = (length: number) => Uint8Array;
210
+ type SignatureInput = string | Uint8Array;
211
+ type ProbeSigner = (typedData: VaultBackupTypedData) => Promise<string>;
212
+ type OwnerKey = {
213
+ kdf: "hkdf-sha256" | "scrypt";
214
+ key: Uint8Array;
215
+ salt: Uint8Array;
216
+ };
217
+ type RestorePublishStep = {
218
+ kind: "marker" | "safety" | "vault" | "registry" | "agent" | "swarm" | "movement";
219
+ name?: string;
220
+ };
221
+ export declare function VAULT_BACKUP_TYPED_DATA(owner: string): VaultBackupTypedData;
222
+ export declare function normalizeSignature(signature: SignatureInput): Uint8Array;
223
+ export declare function deriveKeyFromSignature(options: {
224
+ signature: SignatureInput;
225
+ salt: Uint8Array;
226
+ owner: string;
227
+ device: string;
228
+ }): Uint8Array;
229
+ export declare function deriveKeyFromPassword(options: {
230
+ password: string;
231
+ salt: Uint8Array;
232
+ }): Promise<Uint8Array>;
233
+ export declare function probeRepeatable(sign: ProbeSigner, owner: string): Promise<{
234
+ path: "signature";
235
+ signature: `0x${string}`;
236
+ } | {
237
+ path: "password";
238
+ }>;
239
+ export declare function createBackup(options: {
240
+ vault: BackupSource;
241
+ ownerKey: OwnerKey;
242
+ owner: string;
243
+ device: string;
244
+ now?: () => Date;
245
+ randomBytes?: RandomBytes;
246
+ }): Promise<{
247
+ envelope: string;
248
+ bytes: number;
249
+ omitted?: BackupOmittedSection[];
250
+ }>;
251
+ export declare function openBackup(options: {
252
+ envelope: string;
253
+ key: Uint8Array;
254
+ }): Promise<BackupPlaintext>;
255
+ export declare function readBackupHeader(envelope: string): BackupHeader;
256
+ export declare function createRelayKeyPair(options?: {
257
+ randomBytes?: RandomBytes;
258
+ }): {
259
+ publicKey: Uint8Array;
260
+ privateKey: Uint8Array;
261
+ };
262
+ export declare function relayCode(publicKey: Uint8Array): string;
263
+ export declare function sealTo(options: {
264
+ recipientPublicKey: Uint8Array;
265
+ plaintext: Uint8Array | string;
266
+ randomBytes?: RandomBytes;
267
+ }): string;
268
+ export declare function openSealed(options: {
269
+ recipientPrivateKey: Uint8Array;
270
+ sealed: string;
271
+ }): Uint8Array;
272
+ export declare function buildRelayRestorePayload(options: {
273
+ owner: string;
274
+ device: string;
275
+ kdf: BackupKdf;
276
+ key: Uint8Array;
277
+ vault: BackupPlaintext;
278
+ }): string;
279
+ export declare function exportBackupSource(options: {
280
+ store: WalletStore;
281
+ vaultKey: Uint8Array;
282
+ networks?: readonly string[];
283
+ agentProfileSchema?: AgentProfileParser;
284
+ }): Promise<BackupSourceV2>;
285
+ type RestoreFromBackupOptions<T extends BackupPlaintext = BackupPlaintext> = {
286
+ plaintext: T;
287
+ home: string;
288
+ vaultKey: Uint8Array;
289
+ now?: () => Date;
290
+ device?: string;
291
+ };
292
+ type RestoreBackupPlaintextOptions<T extends BackupPlaintext = BackupPlaintext> = RestoreFromBackupOptions<T> & {
293
+ beforePublish?: (paths: {
294
+ vault: string;
295
+ registry: string;
296
+ }) => Promise<void>;
297
+ afterPublish?: (step: RestorePublishStep) => Promise<void>;
298
+ };
299
+ export declare function restoreFromBackup(options: RestoreFromBackupOptions<BackupPlaintextV1>): Promise<BackupRestoreBaseResult>;
300
+ export declare function restoreFromBackup(options: RestoreFromBackupOptions<BackupPlaintextV2>): Promise<BackupRestoreV2Result>;
301
+ export declare function restoreFromBackup(options: RestoreFromBackupOptions): Promise<BackupRestoreResult>;
302
+ export declare function parseBackupPlaintext(value: unknown): BackupPlaintext;
303
+ export declare function restoreBackupPlaintext(options: RestoreBackupPlaintextOptions<BackupPlaintextV1>): Promise<BackupRestoreBaseResult>;
304
+ export declare function restoreBackupPlaintext(options: RestoreBackupPlaintextOptions<BackupPlaintextV2>): Promise<BackupRestoreV2Result>;
305
+ export declare function restoreBackupPlaintext(options: RestoreBackupPlaintextOptions): Promise<BackupRestoreResult>;
306
+ export {};
307
+ //# sourceMappingURL=backup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../src/backup.ts"],"names":[],"mappings":"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"}