@palmyr/cli 1.6.0 → 1.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.
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Wallet/payment preflight for x402 paid commands.
3
+ *
4
+ * Answers the five-question checklist an agent needs BEFORE attempting any
5
+ * paid CLI call:
6
+ *
7
+ * 1. Which pay chain is selected? (solana | base)
8
+ * 2. Which wallet id will sign? (config, env, or auto-pick)
9
+ * 3. Can it decrypt / sign right now? (yes | no + why)
10
+ * 4. USDC balance + ATA status (only when checkBalance=true)
11
+ * 5. Exact fix if anything's off (one-line, copy-pasteable)
12
+ *
13
+ * Two surfaces:
14
+ *
15
+ * - `localPreflight(opts)` — no RPC. Runs at the top of paidRequest /
16
+ * paidStreamRequest so config + decryption failures bail out before the
17
+ * paid round-trip. Cheap enough to enable by default.
18
+ *
19
+ * - `fullPreflight(opts)` — `localPreflight` + USDC balance + ATA status
20
+ * via RPC. Used by `palmyr wallet pay-preflight`. Skip in hot paths —
21
+ * the Solana public RPC tends to 429 if you hammer it.
22
+ */
23
+ export type PayChain = 'solana' | 'base';
24
+ export interface PayPreflightReport {
25
+ /** True only when every check that ran returned a pass. */
26
+ ok: boolean;
27
+ payChain: PayChain;
28
+ walletId: string | null;
29
+ walletAddress: string | null;
30
+ canSign: boolean;
31
+ /** Populated only by `fullPreflight` (or when checkBalance=true). */
32
+ usdc: {
33
+ balance: number | null;
34
+ requiredMin: number;
35
+ /** Solana-only — Base has no separate ATA concept. */
36
+ ataStatus?: 'exists' | 'missing' | 'unknown';
37
+ } | null;
38
+ /** One-line, copy-pasteable next step when ok=false. */
39
+ fix: string | null;
40
+ }
41
+ export interface PreflightOpts {
42
+ /** Override `config.defaultPayChain`. */
43
+ chain?: PayChain;
44
+ /** Override `config.defaultPayWalletId` / `PALMYR_PAY_WALLET` env. */
45
+ walletRef?: string;
46
+ /** Passphrase for vault decryption (also reads `PALMYR_WALLET_PASSPHRASE`). */
47
+ passphrase?: string;
48
+ /** USDC threshold for the balance check (full preflight only). Default 0. */
49
+ minUsdc?: number;
50
+ }
51
+ /** Cheap, no-RPC preflight. Safe to run before every paid command. */
52
+ export declare function localPreflight(opts?: PreflightOpts): Promise<PayPreflightReport>;
53
+ /** Full preflight including USDC balance + ATA status via RPC. */
54
+ export declare function fullPreflight(opts?: PreflightOpts): Promise<PayPreflightReport>;
@@ -0,0 +1,202 @@
1
+ /**
2
+ * Wallet/payment preflight for x402 paid commands.
3
+ *
4
+ * Answers the five-question checklist an agent needs BEFORE attempting any
5
+ * paid CLI call:
6
+ *
7
+ * 1. Which pay chain is selected? (solana | base)
8
+ * 2. Which wallet id will sign? (config, env, or auto-pick)
9
+ * 3. Can it decrypt / sign right now? (yes | no + why)
10
+ * 4. USDC balance + ATA status (only when checkBalance=true)
11
+ * 5. Exact fix if anything's off (one-line, copy-pasteable)
12
+ *
13
+ * Two surfaces:
14
+ *
15
+ * - `localPreflight(opts)` — no RPC. Runs at the top of paidRequest /
16
+ * paidStreamRequest so config + decryption failures bail out before the
17
+ * paid round-trip. Cheap enough to enable by default.
18
+ *
19
+ * - `fullPreflight(opts)` — `localPreflight` + USDC balance + ATA status
20
+ * via RPC. Used by `palmyr wallet pay-preflight`. Skip in hot paths —
21
+ * the Solana public RPC tends to 429 if you hammer it.
22
+ */
23
+ import { loadConfig } from './config.js';
24
+ import { hasVaultWallets, listVaultWallets, getVaultEvmWallet, getVaultSolanaKeypair, } from './vault.js';
25
+ /** Canonical USDC mint / contract for each chain. */
26
+ const SOLANA_USDC_MINT = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v';
27
+ const BASE_USDC = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913';
28
+ async function runPreflight(opts) {
29
+ const cfg = loadConfig();
30
+ const payChain = opts.chain || (cfg.defaultPayChain || 'solana');
31
+ const minUsdc = opts.minUsdc ?? 0;
32
+ // ── 1. Resolve wallet id — mirrors pay.ts auto-pick fallback ──────────────
33
+ // Filters auto-picked candidates by chain so a Solana-only vault wallet
34
+ // never gets picked for a Base preflight (it would just fail at signing).
35
+ let walletId = opts.walletRef ||
36
+ cfg.defaultPayWalletId ||
37
+ process.env.PALMYR_PAY_WALLET ||
38
+ null;
39
+ if (!walletId && hasVaultWallets()) {
40
+ const wallets = listVaultWallets();
41
+ const candidate = payChain === 'base'
42
+ ? wallets.find((w) => w.evmAddress)
43
+ : wallets.find((w) => w.solanaAddress);
44
+ if (candidate)
45
+ walletId = candidate.id;
46
+ }
47
+ if (!walletId) {
48
+ return {
49
+ ok: false,
50
+ payChain,
51
+ walletId: null,
52
+ walletAddress: null,
53
+ canSign: false,
54
+ usdc: null,
55
+ fix: noWalletFix(payChain),
56
+ };
57
+ }
58
+ // ── 2. Try to decrypt & derive the chain-specific address (= can sign) ────
59
+ // Any throw from the vault helpers (missing keychain secret, wrong
60
+ // passphrase) is treated as "cannot sign" — we surface the underlying
61
+ // message in `fix` so the agent knows which knob to turn.
62
+ let walletAddress = null;
63
+ let canSign = false;
64
+ let signError = null;
65
+ try {
66
+ if (payChain === 'base') {
67
+ const w = getVaultEvmWallet(walletId, opts.passphrase);
68
+ walletAddress = String(w.address);
69
+ }
70
+ else {
71
+ const k = getVaultSolanaKeypair(walletId, opts.passphrase);
72
+ walletAddress = k.publicKey.toBase58();
73
+ }
74
+ canSign = true;
75
+ }
76
+ catch (err) {
77
+ signError = err?.message || 'decrypt failed';
78
+ }
79
+ if (!canSign) {
80
+ return {
81
+ ok: false,
82
+ payChain,
83
+ walletId,
84
+ walletAddress: null,
85
+ canSign: false,
86
+ usdc: null,
87
+ fix: `Wallet ${walletId} exists but cannot decrypt (${signError}). Restore the OS credential-store session secret (re-run \`palmyr wallet create\` or the original import on this machine), set PALMYR_WALLET_PASSPHRASE=<phrase> in the env (or pass --passphrase <phrase>), or re-import the mnemonic with \`palmyr wallet import --mnemonic "..."\`.`,
88
+ };
89
+ }
90
+ // ── 3. Local-only preflight stops here ────────────────────────────────────
91
+ if (!opts.checkBalance) {
92
+ return {
93
+ ok: true,
94
+ payChain,
95
+ walletId,
96
+ walletAddress,
97
+ canSign: true,
98
+ usdc: null,
99
+ fix: null,
100
+ };
101
+ }
102
+ // ── 4. USDC balance + ATA status (one RPC per chain) ──────────────────────
103
+ let usdcBalance = null;
104
+ let ataStatus;
105
+ let balanceError = null;
106
+ try {
107
+ if (payChain === 'base') {
108
+ const { ethers } = await import('ethers');
109
+ const provider = new ethers.JsonRpcProvider(process.env.PALMYR_BASE_RPC || 'https://mainnet.base.org');
110
+ const erc20 = new ethers.Contract(BASE_USDC, ['function balanceOf(address) view returns (uint256)'], provider);
111
+ // Non-null assertion — we returned early above if canSign was false.
112
+ const wei = await erc20.balanceOf(walletAddress);
113
+ usdcBalance = Number(wei) / 1e6;
114
+ }
115
+ else {
116
+ const { Connection, PublicKey } = await import('@solana/web3.js');
117
+ const splToken = await import('@solana/spl-token');
118
+ const conn = new Connection(process.env.SOLANA_RPC_URL || 'https://api.mainnet-beta.solana.com', 'confirmed');
119
+ const owner = new PublicKey(walletAddress);
120
+ const mint = new PublicKey(SOLANA_USDC_MINT);
121
+ const ata = splToken.getAssociatedTokenAddressSync(mint, owner);
122
+ try {
123
+ const account = await splToken.getAccount(conn, ata, 'confirmed');
124
+ usdcBalance = Number(account.amount) / 1e6;
125
+ ataStatus = 'exists';
126
+ }
127
+ catch (e) {
128
+ // `@solana/spl-token` exports several typed errors for the missing-ATA
129
+ // case; rather than matching all of them, recognize the signature
130
+ // ("could not find account" / "TokenAccountNotFound") and treat
131
+ // anything else as a generic RPC failure (ataStatus=unknown).
132
+ const msg = String(e?.message || '');
133
+ if (/TokenAccountNotFound/i.test(msg) ||
134
+ /could not find account/i.test(msg) ||
135
+ e?.name === 'TokenAccountNotFoundError') {
136
+ ataStatus = 'missing';
137
+ usdcBalance = 0;
138
+ }
139
+ else {
140
+ ataStatus = 'unknown';
141
+ balanceError = msg || 'balance check failed';
142
+ }
143
+ }
144
+ }
145
+ }
146
+ catch (err) {
147
+ balanceError = err?.message || 'balance check failed';
148
+ }
149
+ // ── 5. Compute final verdict + fix ────────────────────────────────────────
150
+ let ok = false;
151
+ let fix = null;
152
+ if (balanceError) {
153
+ fix = `USDC balance check failed on ${payChain}: ${balanceError}. ${payChain === 'solana' ? 'Set SOLANA_RPC_URL=<url> to a less rate-limited endpoint and retry.' : 'Set PALMYR_BASE_RPC=<url> to a private RPC and retry.'}`;
154
+ }
155
+ else if (ataStatus === 'missing') {
156
+ // ATA missing is functionally "balance = 0 and you cannot receive
157
+ // SPL transfers yet". The first inbound transfer auto-creates the ATA,
158
+ // so the fix is simply "fund the wallet".
159
+ fix = `Solana USDC associated-token-account (ATA) not created yet for ${walletAddress}. The first inbound USDC transfer creates it automatically — fund the wallet with any amount of USDC on Solana, then retry.`;
160
+ }
161
+ else if (usdcBalance !== null && usdcBalance < minUsdc) {
162
+ fix = `USDC balance ${usdcBalance.toFixed(6)} on ${payChain} < required ${minUsdc.toFixed(6)}. Fund ${walletAddress} with at least ${(minUsdc - usdcBalance).toFixed(6)} more USDC on ${payChain}.`;
163
+ }
164
+ else if (usdcBalance !== null) {
165
+ ok = true;
166
+ }
167
+ return {
168
+ ok,
169
+ payChain,
170
+ walletId,
171
+ walletAddress,
172
+ canSign: true,
173
+ usdc: {
174
+ balance: usdcBalance,
175
+ requiredMin: minUsdc,
176
+ ...(payChain === 'solana' ? { ataStatus } : {}),
177
+ },
178
+ fix,
179
+ };
180
+ }
181
+ /**
182
+ * Build the fix string for the "no wallet resolvable" branch. Three states:
183
+ * - no vault wallets at all
184
+ * - vault wallets exist but none expose the selected chain's address
185
+ * - (impossible after auto-pick lands a hit, but kept as final fallback)
186
+ */
187
+ function noWalletFix(payChain) {
188
+ if (!hasVaultWallets()) {
189
+ return 'No vault wallets found. Create one with: palmyr wallet create (a single mnemonic produces both Solana + Base addresses).';
190
+ }
191
+ const chainName = payChain === 'base' ? 'Base/EVM' : 'Solana';
192
+ return `Vault has wallets, but none expose a ${chainName} address. Re-create with: palmyr wallet create (or re-import with --${payChain} to materialize that chain).`;
193
+ }
194
+ /** Cheap, no-RPC preflight. Safe to run before every paid command. */
195
+ export async function localPreflight(opts = {}) {
196
+ return runPreflight({ ...opts, checkBalance: false });
197
+ }
198
+ /** Full preflight including USDC balance + ATA status via RPC. */
199
+ export async function fullPreflight(opts = {}) {
200
+ return runPreflight({ ...opts, checkBalance: true });
201
+ }
202
+ //# sourceMappingURL=pay-preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pay-preflight.js","sourceRoot":"","sources":["../pay-preflight.ts"],"names":[],"mappings":"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"}
package/dist/pay.js CHANGED
@@ -17,6 +17,46 @@ const SOLANA_RPC = process.env.SOLANA_RPC_URL || 'https://api.mainnet-beta.solan
17
17
  // Base constants
18
18
  const BASE_USDC = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913';
19
19
  const BASE_CHAIN_ID = 8453;
20
+ /**
21
+ * Run the cheap, no-RPC pay preflight before the probe request goes out.
22
+ *
23
+ * Catches the two failure modes that don't need the server to discover:
24
+ * - no Solana/Base wallet resolvable from config / env / vault
25
+ * - wallet exists but cannot decrypt (no keychain secret, wrong passphrase)
26
+ *
27
+ * Throws a structured Error with `.preflight` attached so the CLI can render
28
+ * the full report in agent mode. Skipped entirely when PALMYR_NO_PREFLIGHT=1
29
+ * (escape hatch for users running tight loops who'd rather eat the late error
30
+ * than pay a few ms per call).
31
+ */
32
+ async function preflightOrThrow(passphrase) {
33
+ if (process.env.PALMYR_NO_PREFLIGHT === '1')
34
+ return;
35
+ const { localPreflight } = await import('./pay-preflight.js');
36
+ const report = await localPreflight({ passphrase });
37
+ if (report.ok)
38
+ return;
39
+ const err = new Error(`Pay preflight failed: ${report.fix || 'wallet not ready'}`);
40
+ err.preflight = report;
41
+ throw err;
42
+ }
43
+ /**
44
+ * Build an actionable error message when EVM payment authorization fails because
45
+ * no usable Base wallet was found. The auto-pick fallback in
46
+ * buildEvmPaymentAuthorization handles "wallets exist + some have EVM but none
47
+ * is selected", so by the time we reach this helper we're in one of two states:
48
+ * - no vault wallets at all → tell the agent to create one
49
+ * - vault wallets exist but none expose an EVM address → tell them to
50
+ * re-derive / re-import with the EVM account materialized
51
+ * The legacy keyfile flow (`palmyr setup --keyfile`) is Solana-only, so it is
52
+ * deliberately NOT suggested here.
53
+ */
54
+ function noEvmWalletError() {
55
+ if (!hasVaultWallets()) {
56
+ return 'Failed to build EVM payment authorization — no wallet configured. Create one with: palmyr wallet create (a single mnemonic produces both Solana + Base addresses).';
57
+ }
58
+ return 'Failed to build EVM payment authorization — vault has wallets, but none expose a Base/EVM address. Re-create with: palmyr wallet create (or pass --base on import to materialize the EVM account).';
59
+ }
20
60
  /**
21
61
  * Parse a 402 response. Returns available payment options by chain plus the
22
62
  * top-level `resource` block so callers can echo it into the PaymentPayload.
@@ -64,6 +104,7 @@ function resolvePayerKeypair(walletId, passphrase) {
64
104
  const cfg = loadConfig();
65
105
  const pass = passphrase || process.env.PALMYR_WALLET_PASSPHRASE;
66
106
  // Try the vault first (session secret from OS cred store, falls back to passphrase)
107
+ let vaultFailed = false;
67
108
  if (hasVaultWallets()) {
68
109
  const targetId = walletId || cfg.defaultPayWalletId || process.env.PALMYR_PAY_WALLET;
69
110
  try {
@@ -75,8 +116,11 @@ function resolvePayerKeypair(walletId, passphrase) {
75
116
  return getVaultSolanaKeypair(first.id, pass);
76
117
  }
77
118
  catch (err) {
119
+ // Don't swallow — surface what failed and that we're switching wallets so
120
+ // the agent isn't surprised when transfers come from a different address
121
+ // than `palmyr wallet pay-preflight` reported.
78
122
  console.error(` Vault wallet load failed: ${err.message}`);
79
- // Fall through to keyfile
123
+ vaultFailed = true;
80
124
  }
81
125
  }
82
126
  // Fall back to the legacy keyfile flow
@@ -84,7 +128,12 @@ function resolvePayerKeypair(walletId, passphrase) {
84
128
  if (!keypairBytes)
85
129
  return null;
86
130
  const { Keypair } = require('@solana/web3.js');
87
- return Keypair.fromSecretKey(keypairBytes);
131
+ const keyfileKp = Keypair.fromSecretKey(keypairBytes);
132
+ if (vaultFailed) {
133
+ console.error(` Falling back to legacy keyfile: ${keyfileKp.publicKey.toBase58()}. ` +
134
+ `Run \`palmyr wallet pay-preflight\` to verify USDC balance + ATA status.`);
135
+ }
136
+ return keyfileKp;
88
137
  }
89
138
  /**
90
139
  * Build and partially sign a USDC transfer transaction for x402 payment.
@@ -151,16 +200,31 @@ export async function buildPaymentTransaction(payTo, amount, feePayer, walletId,
151
200
  */
152
201
  async function buildEvmPaymentAuthorization(payTo, amount, walletId, passphrase) {
153
202
  const cfg = loadConfig();
154
- const targetId = walletId || cfg.defaultPayWalletId || process.env.PALMYR_PAY_WALLET;
203
+ let targetId = walletId || cfg.defaultPayWalletId || process.env.PALMYR_PAY_WALLET;
204
+ // Mirror the Solana resolution chain (pay.ts:92-115): if no explicit target,
205
+ // auto-pick the first vault wallet that has an EVM address. Without this,
206
+ // a fresh `palmyr wallet create` user hits `no wallet configured` on Base
207
+ // even though there's an obvious wallet to use — Solana picks it; Base didn't.
208
+ if (!targetId && hasVaultWallets()) {
209
+ const firstEvm = listVaultWallets().find(w => w.evmAddress);
210
+ if (firstEvm)
211
+ targetId = firstEvm.id;
212
+ }
155
213
  if (!targetId)
156
214
  return null;
215
+ // From here on we have a wallet to try; any failure is a decryption / signing
216
+ // problem (typically: no OS-keychain session secret + no passphrase). Propagate
217
+ // it with an actionable hint instead of returning null, which would otherwise
218
+ // bubble up as the misleading "no wallet configured" message at the call site.
157
219
  let evmWallet;
158
220
  try {
159
221
  evmWallet = getVaultEvmWallet(targetId, passphrase);
160
222
  }
161
223
  catch (err) {
162
- console.error(` Vault wallet load failed: ${err.message}`);
163
- return null;
224
+ throw new Error(`Wallet ${targetId} exists but cannot decrypt (${err.message}). ` +
225
+ `Restore the OS credential-store session secret (re-run \`palmyr wallet create\` or the original import on this machine), ` +
226
+ `set PALMYR_WALLET_PASSPHRASE=<phrase> in the env (or pass --passphrase <phrase>), ` +
227
+ `or re-import the mnemonic with \`palmyr wallet import --mnemonic "..."\`.`);
164
228
  }
165
229
  const { ethers } = require('ethers');
166
230
  // Random 32-byte nonce
@@ -245,6 +309,7 @@ function buildSpecCompliantPayload(opts) {
245
309
  * charges plan.total_cost_usdc rather than a fixed fee).
246
310
  */
247
311
  export async function paidStreamRequest(api, method, path, body, passphrase) {
312
+ await preflightOrThrow(passphrase);
248
313
  const probeOpts = {
249
314
  method,
250
315
  headers: { 'Content-Type': 'application/json', Accept: 'text/event-stream' },
@@ -270,7 +335,7 @@ export async function paidStreamRequest(api, method, path, body, passphrase) {
270
335
  if (preferredChain === 'base') {
271
336
  const auth = await buildEvmPaymentAuthorization(selected.payTo, selected.amount, undefined, passphrase);
272
337
  if (!auth)
273
- throw new Error('Failed to build EVM payment authorization');
338
+ throw new Error(noEvmWalletError());
274
339
  paymentPayload = buildSpecCompliantPayload({
275
340
  payload: { signature: auth.signature, authorization: auth.authorization },
276
341
  requirements: selected.requirements,
@@ -324,6 +389,12 @@ function isTransientSolanaError(message) {
324
389
  m.includes('blockhashnotfound'));
325
390
  }
326
391
  export async function paidRequest(api, method, path, body, passphrase, attempt = 1) {
392
+ // Only preflight on the FIRST attempt — on retry (attempt > 1) we've already
393
+ // signed once successfully, so re-running the local checks would only burn
394
+ // a few ms before discovering nothing changed.
395
+ if (attempt === 1) {
396
+ await preflightOrThrow(passphrase);
397
+ }
327
398
  const opts = {
328
399
  method,
329
400
  headers: { 'Content-Type': 'application/json' },
@@ -366,7 +437,7 @@ export async function paidRequest(api, method, path, body, passphrase, attempt =
366
437
  if (preferredChain === 'base') {
367
438
  const auth = await buildEvmPaymentAuthorization(selected.payTo, selected.amount, undefined, passphrase);
368
439
  if (!auth)
369
- throw new Error('Failed to build EVM payment authorization — no wallet configured');
440
+ throw new Error(noEvmWalletError());
370
441
  paymentPayload = buildSpecCompliantPayload({
371
442
  payload: {
372
443
  signature: auth.signature,
@@ -381,7 +452,7 @@ export async function paidRequest(api, method, path, body, passphrase, attempt =
381
452
  else {
382
453
  const tx = await buildPaymentTransaction(selected.payTo, selected.amount, selected.feePayer, undefined, passphrase);
383
454
  if (!tx)
384
- throw new Error('Failed to build Solana payment transaction — no wallet configured');
455
+ throw new Error('Failed to build Solana payment transaction — no wallet configured. Create one with: palmyr wallet create. Or configure a keyfile: palmyr setup --keyfile /path/to/keypair.json');
385
456
  paymentPayload = buildSpecCompliantPayload({
386
457
  payload: { transaction: tx.transaction },
387
458
  requirements: selected.requirements,
package/dist/pay.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pay.js","sourceRoot":"","sources":["../pay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pay.js","sourceRoot":"","sources":["../pay.ts"],"names":[],"mappings":"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"}
package/dist/sdk.d.ts CHANGED
@@ -11,7 +11,36 @@ export declare class Palmyr {
11
11
  phoneSearch(country: string, limit?: number): Promise<any>;
12
12
  phoneBuy(country: string, areaCode?: string): Promise<any>;
13
13
  phoneSms(phoneId: string, to: string, body: string): Promise<any>;
14
- phoneCall(phoneId: string, to: string, tts?: string): Promise<any>;
14
+ phoneCall(phoneId: string, to: string, tts?: string, opts?: {
15
+ ttsVoice?: string;
16
+ audioUrl?: string;
17
+ record?: boolean;
18
+ timeoutSecs?: number;
19
+ }): Promise<any>;
20
+ phoneListNumbers(): Promise<any>;
21
+ phoneMessages(phoneId: string): Promise<any>;
22
+ phoneCalls(phoneId: string): Promise<any>;
23
+ phoneRelease(phoneId: string): Promise<any>;
24
+ phoneCallInfo(callControlId: string): Promise<any>;
25
+ phoneSpeak(callControlId: string, text: string, opts?: {
26
+ voice?: string;
27
+ language?: string;
28
+ }): Promise<any>;
29
+ phonePlay(callControlId: string, audioUrl: string): Promise<any>;
30
+ phoneDtmf(callControlId: string, digits: string): Promise<any>;
31
+ phoneGather(callControlId: string, opts?: {
32
+ minDigits?: number;
33
+ maxDigits?: number;
34
+ timeoutMillis?: number;
35
+ terminatingDigit?: string;
36
+ prompt?: string;
37
+ promptVoice?: string;
38
+ }): Promise<any>;
39
+ phoneRecord(callControlId: string, format?: string): Promise<any>;
40
+ phoneRecordStop(callControlId: string): Promise<any>;
41
+ phoneHangup(callControlId: string): Promise<any>;
42
+ phoneAnswer(callControlId: string): Promise<any>;
43
+ phoneTransfer(callControlId: string, to: string): Promise<any>;
15
44
  emailCreate(name: string, walletAddress?: string, domain?: string): Promise<any>;
16
45
  emailListInboxes(): Promise<any>;
17
46
  emailDomainStatus(domain: string): Promise<any>;
package/dist/sdk.js CHANGED
@@ -354,8 +354,52 @@ export class Palmyr {
354
354
  async phoneSms(phoneId, to, body) {
355
355
  return this.request('POST', `/phone/numbers/${phoneId}/send`, { to, body });
356
356
  }
357
- async phoneCall(phoneId, to, tts) {
358
- return this.request('POST', `/phone/numbers/${phoneId}/call`, { to, tts });
357
+ async phoneCall(phoneId, to, tts, opts) {
358
+ return this.request('POST', `/phone/numbers/${phoneId}/call`, { to, tts, ...(opts || {}) });
359
+ }
360
+ // Phone-number-scoped reads & lifecycle
361
+ async phoneListNumbers() {
362
+ return this.request('GET', '/phone/numbers');
363
+ }
364
+ async phoneMessages(phoneId) {
365
+ return this.request('GET', `/phone/numbers/${phoneId}/messages`);
366
+ }
367
+ async phoneCalls(phoneId) {
368
+ return this.request('GET', `/phone/numbers/${phoneId}/calls`);
369
+ }
370
+ async phoneRelease(phoneId) {
371
+ return this.request('DELETE', `/phone/numbers/${phoneId}`);
372
+ }
373
+ // Call-control-scoped operations
374
+ async phoneCallInfo(callControlId) {
375
+ return this.request('GET', `/phone/calls/${callControlId}`);
376
+ }
377
+ async phoneSpeak(callControlId, text, opts) {
378
+ return this.request('POST', `/phone/calls/${callControlId}/speak`, { text, ...(opts || {}) });
379
+ }
380
+ async phonePlay(callControlId, audioUrl) {
381
+ return this.request('POST', `/phone/calls/${callControlId}/play`, { audioUrl });
382
+ }
383
+ async phoneDtmf(callControlId, digits) {
384
+ return this.request('POST', `/phone/calls/${callControlId}/dtmf`, { digits });
385
+ }
386
+ async phoneGather(callControlId, opts) {
387
+ return this.request('POST', `/phone/calls/${callControlId}/gather`, opts || {});
388
+ }
389
+ async phoneRecord(callControlId, format) {
390
+ return this.request('POST', `/phone/calls/${callControlId}/record`, format ? { format } : {});
391
+ }
392
+ async phoneRecordStop(callControlId) {
393
+ return this.request('POST', `/phone/calls/${callControlId}/record/stop`, {});
394
+ }
395
+ async phoneHangup(callControlId) {
396
+ return this.request('POST', `/phone/calls/${callControlId}/hangup`, {});
397
+ }
398
+ async phoneAnswer(callControlId) {
399
+ return this.request('POST', `/phone/calls/${callControlId}/answer`, {});
400
+ }
401
+ async phoneTransfer(callControlId, to) {
402
+ return this.request('POST', `/phone/calls/${callControlId}/transfer`, { to });
359
403
  }
360
404
  // ── Email ──
361
405
  async emailCreate(name, walletAddress, domain) {