@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
package/dist/audit.d.ts CHANGED
@@ -5,15 +5,17 @@
5
5
  * the agent's own account of it.
6
6
  *
7
7
  * A line never contains a secret. It records what happened, to which wallet,
8
- * whether a terminal was attached, and which agent marker was set — nothing
9
- * that could help someone spend the wallet.
8
+ * its linked owner, whether a terminal was attached, and which agent marker
9
+ * was set — nothing that could help someone spend the wallet.
10
10
  */
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"];
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", "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", "router.buy", "router.refill.declined", "listing.publish", "listing.status", "listing.claim"];
12
12
  export type AuditEvent = (typeof AUDIT_EVENTS)[number];
13
13
  export type AuditRecord = {
14
14
  event: AuditEvent;
15
15
  /** The wallet the event acted on, when one was selected. */
16
16
  wallet?: string;
17
+ /** The owner wallet of a linked agent. Never an access token or Router key. */
18
+ owner?: string;
17
19
  /** Whether a real terminal was attached when the event happened. */
18
20
  tty: boolean;
19
21
  /** The agent or CI variable that was set, if any. */
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,0PAkBf,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,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,CAerB;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":"AAKA;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,8nBAkDf,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"}
@@ -0,0 +1,58 @@
1
+ import type { VapiConfig } from "./config.js";
2
+ import type { LookupFn } from "./net-guard.js";
3
+ import type { Receipt } from "./receipts.js";
4
+ /**
5
+ * EIP-3009's own record of whether an authorization nonce was ever used. USDC
6
+ * implements it: `true` means a transfer with that nonce executed on-chain.
7
+ */
8
+ export declare const EIP3009_AUTHORIZATION_STATE_ABI: readonly [{
9
+ readonly type: "function";
10
+ readonly name: "authorizationState";
11
+ readonly stateMutability: "view";
12
+ readonly inputs: readonly [{
13
+ readonly name: "authorizer";
14
+ readonly type: "address";
15
+ }, {
16
+ readonly name: "nonce";
17
+ readonly type: "bytes32";
18
+ }];
19
+ readonly outputs: readonly [{
20
+ readonly name: "";
21
+ readonly type: "bool";
22
+ }];
23
+ }];
24
+ /**
25
+ * What the chain says about a signed payment whose response was lost:
26
+ *
27
+ * - `settled`: the nonce was used. EIP-3009 also marks a cancelled
28
+ * authorization as used, but this client never cancels, so in practice the
29
+ * payment went through; paying again pays twice.
30
+ * - `expired`: never used, and the chain is past `validBefore`, so it never can
31
+ * be. Paying again is safe.
32
+ * - `pending`: never used yet, but still valid. It may still settle; wait for
33
+ * `validBefore` and check again.
34
+ */
35
+ export type AuthorizationState = "settled" | "expired" | "pending";
36
+ export type ReceiptSettlementCheck = {
37
+ network: string;
38
+ token: string;
39
+ authorizer: string;
40
+ nonce: string;
41
+ validBefore: string;
42
+ /** The latest block's timestamp the verdict was taken at, in Unix seconds. */
43
+ chainTime: string;
44
+ state: AuthorizationState;
45
+ };
46
+ /**
47
+ * Reads, from the chain itself, whether the payment a receipt signed has
48
+ * settled. Nothing is signed and nothing is paid.
49
+ *
50
+ * Expiry is judged against the latest block's timestamp rather than this
51
+ * machine's clock: a block at or past `validBefore` means no later block can
52
+ * include the authorization, so `expired` is final even on a skewed clock.
53
+ */
54
+ export declare function checkReceiptSettlement(receipt: Receipt, config: Pick<VapiConfig, "networks" | "allowPrivateNetwork">, options?: {
55
+ fetchImpl?: typeof fetch;
56
+ lookup?: LookupFn;
57
+ }): Promise<ReceiptSettlementCheck>;
58
+ //# sourceMappingURL=authorization-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization-state.d.ts","sourceRoot":"","sources":["../src/authorization-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;EAWlC,CAAC;AAEX;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,kBAAkB,CAAC;CAC3B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,qBAAqB,CAAC,EAC5D,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,QAAQ,CAAA;CAAO,GAC5D,OAAO,CAAC,sBAAsB,CAAC,CA6CjC"}
@@ -0,0 +1,186 @@
1
+ import { type SpendCaps } from "./config.js";
2
+ import { type WalletStore } from "./wallet-store.js";
3
+ import { type VaultAccount } from "./vault.js";
4
+ export type BackupErrorCode = "backup_too_large" | "backup_open_failed" | "backup_unsupported" | "unsupported_signature" | "weak_password" | "backup_invalid_input" | "relay_open_failed" | "relay_invalid_key" | "vault_exists";
5
+ export declare class BackupError extends Error {
6
+ readonly code: BackupErrorCode;
7
+ constructor(code: BackupErrorCode);
8
+ }
9
+ export type BackupAccount = {
10
+ name: string;
11
+ kind: "derived";
12
+ index: number;
13
+ address: `0x${string}`;
14
+ createdAt: string;
15
+ } | {
16
+ name: string;
17
+ kind: "imported";
18
+ address: `0x${string}`;
19
+ privateKey: `0x${string}`;
20
+ createdAt: string;
21
+ };
22
+ export type BackupRegistry = {
23
+ default?: string;
24
+ accounts: {
25
+ name: string;
26
+ label?: string;
27
+ spendCaps: SpendCaps;
28
+ }[];
29
+ networks: string[];
30
+ };
31
+ export type BackupPlaintext = {
32
+ v: 1;
33
+ phrase: string;
34
+ nextDerivedIndex: number;
35
+ accounts: BackupAccount[];
36
+ registry: BackupRegistry;
37
+ protected: boolean;
38
+ };
39
+ export type BackupSource = Omit<BackupPlaintext, "v">;
40
+ export type BackupKdf = {
41
+ name: "hkdf-sha256";
42
+ salt: string;
43
+ } | {
44
+ name: "scrypt";
45
+ salt: string;
46
+ N: 131_072;
47
+ r: 8;
48
+ p: 1;
49
+ };
50
+ export type BackupHeader = {
51
+ format: "vapi-vault-backup";
52
+ v: 1;
53
+ owner: `0x${string}`;
54
+ device: string;
55
+ createdAt: string;
56
+ kdf: BackupKdf;
57
+ cipher: {
58
+ name: "aes-256-gcm";
59
+ nonce: string;
60
+ };
61
+ };
62
+ export type VaultBackupTypedData = {
63
+ domain: {
64
+ name: "vAPI Vault Backup";
65
+ version: "1";
66
+ };
67
+ types: {
68
+ VaultBackupKey: readonly [
69
+ {
70
+ readonly name: "purpose";
71
+ readonly type: "string";
72
+ },
73
+ {
74
+ readonly name: "site";
75
+ readonly type: "string";
76
+ },
77
+ {
78
+ readonly name: "owner";
79
+ readonly type: "address";
80
+ },
81
+ {
82
+ readonly name: "version";
83
+ readonly type: "uint256";
84
+ }
85
+ ];
86
+ };
87
+ primaryType: "VaultBackupKey";
88
+ message: {
89
+ purpose: string;
90
+ site: "vapinetwork.ai";
91
+ owner: `0x${string}`;
92
+ version: 1;
93
+ };
94
+ };
95
+ type RandomBytes = (length: number) => Uint8Array;
96
+ type SignatureInput = string | Uint8Array;
97
+ type ProbeSigner = (typedData: VaultBackupTypedData) => Promise<string>;
98
+ type OwnerKey = {
99
+ kdf: "hkdf-sha256" | "scrypt";
100
+ key: Uint8Array;
101
+ salt: Uint8Array;
102
+ };
103
+ export declare function VAULT_BACKUP_TYPED_DATA(owner: string): VaultBackupTypedData;
104
+ export declare function normalizeSignature(signature: SignatureInput): Uint8Array;
105
+ export declare function deriveKeyFromSignature(options: {
106
+ signature: SignatureInput;
107
+ salt: Uint8Array;
108
+ owner: string;
109
+ device: string;
110
+ }): Uint8Array;
111
+ export declare function deriveKeyFromPassword(options: {
112
+ password: string;
113
+ salt: Uint8Array;
114
+ }): Promise<Uint8Array>;
115
+ export declare function probeRepeatable(sign: ProbeSigner, owner: string): Promise<{
116
+ path: "signature";
117
+ signature: `0x${string}`;
118
+ } | {
119
+ path: "password";
120
+ }>;
121
+ export declare function createBackup(options: {
122
+ vault: BackupSource;
123
+ ownerKey: OwnerKey;
124
+ owner: string;
125
+ device: string;
126
+ now?: () => Date;
127
+ randomBytes?: RandomBytes;
128
+ }): Promise<{
129
+ envelope: string;
130
+ bytes: number;
131
+ }>;
132
+ export declare function openBackup(options: {
133
+ envelope: string;
134
+ key: Uint8Array;
135
+ }): Promise<BackupPlaintext>;
136
+ export declare function readBackupHeader(envelope: string): BackupHeader;
137
+ export declare function createRelayKeyPair(options?: {
138
+ randomBytes?: RandomBytes;
139
+ }): {
140
+ publicKey: Uint8Array;
141
+ privateKey: Uint8Array;
142
+ };
143
+ export declare function relayCode(publicKey: Uint8Array): string;
144
+ export declare function sealTo(options: {
145
+ recipientPublicKey: Uint8Array;
146
+ plaintext: Uint8Array | string;
147
+ randomBytes?: RandomBytes;
148
+ }): string;
149
+ export declare function openSealed(options: {
150
+ recipientPrivateKey: Uint8Array;
151
+ sealed: string;
152
+ }): Uint8Array;
153
+ export declare function exportBackupSource(options: {
154
+ store: WalletStore;
155
+ vaultKey: Uint8Array;
156
+ networks?: readonly string[];
157
+ }): Promise<BackupSource>;
158
+ export declare function restoreFromBackup(options: {
159
+ plaintext: BackupPlaintext;
160
+ home: string;
161
+ vaultKey: Uint8Array;
162
+ now?: () => Date;
163
+ }): Promise<{
164
+ accounts: VaultAccount[];
165
+ default?: string;
166
+ protected: boolean;
167
+ networks: string[];
168
+ }>;
169
+ export declare function parseBackupPlaintext(value: unknown): BackupPlaintext;
170
+ export declare function restoreBackupPlaintext(options: {
171
+ plaintext: BackupPlaintext;
172
+ home: string;
173
+ vaultKey: Uint8Array;
174
+ now?: () => Date;
175
+ beforePublish?: (paths: {
176
+ vault: string;
177
+ registry: string;
178
+ }) => Promise<void>;
179
+ }): Promise<{
180
+ accounts: VaultAccount[];
181
+ default?: string;
182
+ protected: boolean;
183
+ networks: string[];
184
+ }>;
185
+ export {};
186
+ //# 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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"}