@hightop/sdk 0.1.3 → 0.1.5

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.
package/README.md CHANGED
@@ -43,6 +43,7 @@ const client = new HightopAgentClient({
43
43
  })
44
44
 
45
45
  const self = await client.self.get()
46
+ const collateralOptions = await client.request('GET /v1/agent/borrow/collateral-options')
46
47
  const repay = await client.borrow.repay(
47
48
  { asset: 'GREEN', amount_usd: '10' },
48
49
  { idempotencyKey: createIdempotencyKey() },
@@ -62,6 +63,11 @@ const capabilities = await new HightopAgentClient({ baseUrl: 'https://api.highto
62
63
  Every catalogued `/v1/agent/*` endpoint is available through the generated typed request map:
63
64
 
64
65
  ```ts
66
+ const collateralOptions = await client.request('GET /v1/agent/borrow/collateral-options')
67
+ const usdcVault = collateralOptions.items.find(
68
+ (option) => option.source_type === 'earn_vault' && option.asset_symbol === 'USDC',
69
+ )
70
+
65
71
  const oneOff = await client.request(
66
72
  'POST /v1/agent/one-off-payments',
67
73
  {
@@ -75,6 +81,8 @@ const oneOff = await client.request(
75
81
  )
76
82
  ```
77
83
 
84
+ For `POST /v1/agent/borrow/collateral/add`, pass a collateral option `id` as `asset`. Vault-backed options use a vault contract address as the id, so callers should discover options instead of guessing from token symbols.
85
+
78
86
  The generated package artifact exports:
79
87
 
80
88
  ```ts
@@ -1,4 +1,4 @@
1
- export declare const AGENT_API_CONTRACT_VERSION = "1.5.0";
1
+ export declare const AGENT_API_CONTRACT_VERSION = "1.6.0";
2
2
  export type EthAddress = `0x${string}`;
3
3
  export type AgentErrorDetailsByCode = {
4
4
  idempotency_request_in_progress: {
@@ -34,6 +34,12 @@ export type AgentErrorDetailsByCode = {
34
34
  period: 'rolling_30d' | 'active';
35
35
  } | {
36
36
  max_endpoints: number;
37
+ } | {
38
+ cap: number;
39
+ observed: number;
40
+ period: 'manager_period';
41
+ cap_kind: 'max_num_swaps_per_period';
42
+ quote_id: string;
37
43
  };
38
44
  ltv_too_high: {
39
45
  current_ltv: string;
@@ -103,7 +109,7 @@ export type AgentApiSelfResponse = {
103
109
  export type AgentApiSelfUsageResponse = {
104
110
  ok: true;
105
111
  rate_limits: Array<{
106
- route_class?: 'read' | 'write' | 'webhook_management' | 'simulate';
112
+ route_class?: 'read' | 'write' | 'bulk_write' | 'webhook_management' | 'simulate';
107
113
  window_seconds: number;
108
114
  limit: number;
109
115
  remaining: number;
@@ -119,22 +125,36 @@ export type AgentApiCapabilitiesResponse = {
119
125
  ok: true;
120
126
  api_version: '1.0';
121
127
  agent_api_contract_version: string;
128
+ target_wrapper_version: '7';
122
129
  base_path: '/v1/agent';
123
130
  endpoints: Array<{
124
131
  method: 'GET' | 'POST' | 'PATCH' | 'DELETE';
125
132
  path: string;
126
133
  description: string;
127
- oauth_scope: 'agent:read' | 'agent:simulate' | 'agent:payments:write' | 'agent:conversions:write' | 'agent:withdrawals:write' | 'agent:earn:write' | 'agent:borrow:write' | 'agent:webhooks:manage';
128
- rate_limit_class: 'read' | 'write' | 'webhook_management' | 'simulate';
134
+ oauth_scope: 'agent:read' | 'agent:simulate' | 'agent:payments:write' | 'agent:trusted_destinations:write' | 'agent:conversions:write' | 'agent:withdrawals:write' | 'agent:earn:write' | 'agent:borrow:write' | 'agent:webhooks:manage';
135
+ rate_limit_class: 'read' | 'write' | 'bulk_write' | 'webhook_management' | 'simulate';
129
136
  idempotency_required: boolean;
130
137
  request_schema?: string;
131
138
  response_schema?: string;
132
139
  }>;
133
- webhook_event_types: Array<'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'operation.policy_rejected' | 'webhook.test'>;
134
- emitted_webhook_event_types: Array<'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'operation.policy_rejected' | 'webhook.test'>;
140
+ webhook_event_types: Array<'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'one_off_payment.pay_failed.stale' | 'one_off_payment.pay_failed.replaced' | 'one_off_payment.pay_failed.already_paid' | 'one_off_payment.pay_failed.inactive' | 'one_off_payment.pull_issued' | 'one_off_payment.pull_child_created' | 'one_off_payment.harvest_and_created' | 'one_off_payment.harvest_and_create_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'loot.claimed_all' | 'loot.claimed_revshare' | 'loot.claimed_deposit_rewards' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'trusted_destination.maintenance.executed' | 'trusted_destination.maintenance.failed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.self_removed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'one_off_payment_settings.pending_set' | 'one_off_payment_settings.confirmed' | 'one_off_payment_settings.cancelled' | 'time_lock.pending_set' | 'time_lock.confirmed' | 'time_lock.cancelled' | 'operation.policy_rejected' | 'webhook.test'>;
141
+ emitted_webhook_event_types: Array<'payment.executed' | 'payment.execution_failed' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'agent.webhook_disabled' | 'operation.policy_rejected' | 'webhook.test'>;
135
142
  subscribable_webhook_event_types: Array<'payment.executed' | 'payment.execution_failed' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'agent.webhook_disabled' | 'operation.policy_rejected' | 'webhook.test'>;
136
143
  operation_types: Array<'payment' | 'conversion' | 'earn.deposit' | 'earn.withdraw' | 'earn.move' | 'earn.rewards_claim' | 'debt.borrow' | 'debt.repay' | 'debt.deleverage' | 'collateral.add' | 'collateral.remove' | 'trusted_destination.confirm' | 'trusted_destination.cancel' | 'trusted_destination.remove' | 'withdrawal.bank' | 'withdrawal.crypto' | 'one_off_payment.create'>;
137
144
  operation_statuses: Array<'accepted' | 'policy_rejected' | 'submitted' | 'executed' | 'execution_failed' | 'cancelled'>;
145
+ supported_actions: Array<{
146
+ action: number;
147
+ wrapper_version: '7';
148
+ action_version: 1;
149
+ enabled: boolean;
150
+ supported_by_wrapper: boolean;
151
+ feature_flag: string;
152
+ }>;
153
+ can_claim_loot: {
154
+ value: boolean;
155
+ as_of_block: number | null;
156
+ stale_after_seconds: number;
157
+ };
138
158
  };
139
159
  export type AgentApiAccountResponse = {
140
160
  ok: true;
@@ -247,7 +267,7 @@ export type AgentApiOperationsResponse = {
247
267
  executed_at?: string;
248
268
  failed_at?: string;
249
269
  error?: {
250
- code: 'authentication_failed' | 'agent_disabled' | 'agent_not_yet_active' | 'agent_expired' | 'owner_only_action' | 'identity_gated_action' | 'permission_not_granted' | 'insufficient_scope' | 'asset_not_allowed' | 'recipient_not_allowed' | 'protocol_not_allowed' | 'limit_exceeded' | 'cooldown_active' | 'ltv_too_high' | 'validation_failed' | 'not_found' | 'insufficient_funds' | 'slippage_exceeded' | 'price_stale' | 'quote_expired' | 'quote_already_consumed' | 'timelock_not_elapsed' | 'ltv_target_unreachable' | 'idempotency_key_reuse_mismatch' | 'idempotency_request_in_progress' | 'rule_changed_during_execution' | 'operation_not_cancellable' | 'execution_failed' | 'execution_timeout' | 'batch_step_failed' | 'rate_limited' | 'internal_error';
270
+ code: 'authentication_failed' | 'agent_disabled' | 'agent_not_yet_active' | 'agent_expired' | 'owner_only_action' | 'identity_gated_action' | 'permission_not_granted' | 'insufficient_scope' | 'asset_not_allowed' | 'recipient_not_allowed' | 'protocol_not_allowed' | 'limit_exceeded' | 'cooldown_active' | 'ltv_too_high' | 'validation_failed' | 'agent_api_cutover_in_progress' | 'agent_api_chain_unavailable' | 'signature_expired' | 'signature_invalid_s' | 'not_found' | 'insufficient_funds' | 'slippage_exceeded' | 'price_stale' | 'quote_expired' | 'quote_already_consumed' | 'signature_invalid_nonce' | 'one_off_payment_not_active' | 'one_off_payment_stale' | 'one_off_payment_replaced' | 'one_off_payment_already_paid' | 'cheque_not_found' | 'cheque_replaced' | 'starter_agent_not_removable' | 'pending_one_off_payment_settings_exists' | 'pending_one_off_payment_settings_missing' | 'pending_time_lock_exists' | 'time_delay_not_reached' | 'owner_changed_pending_state' | 'migration_blocked_pending_one_off_payment_settings' | 'migration_blocked_pending_time_lock' | 'loot_not_available' | 'invalid_pull_one_off_payment_flags' | 'operation_feature_disabled' | 'timelock_not_elapsed' | 'ltv_target_unreachable' | 'idempotency_key_reuse_mismatch' | 'idempotency_request_in_progress' | 'rule_changed_during_execution' | 'operation_not_cancellable' | 'execution_failed' | 'execution_timeout' | 'batch_step_failed' | 'operation_not_supported_for_wrapper_version' | 'rate_limited' | 'internal_error';
251
271
  message: string;
252
272
  details?: Record<string, unknown>;
253
273
  remediation?: {
@@ -299,7 +319,7 @@ export type AgentApiOperationResponse = {
299
319
  executed_at?: string;
300
320
  failed_at?: string;
301
321
  error?: {
302
- code: 'authentication_failed' | 'agent_disabled' | 'agent_not_yet_active' | 'agent_expired' | 'owner_only_action' | 'identity_gated_action' | 'permission_not_granted' | 'insufficient_scope' | 'asset_not_allowed' | 'recipient_not_allowed' | 'protocol_not_allowed' | 'limit_exceeded' | 'cooldown_active' | 'ltv_too_high' | 'validation_failed' | 'not_found' | 'insufficient_funds' | 'slippage_exceeded' | 'price_stale' | 'quote_expired' | 'quote_already_consumed' | 'timelock_not_elapsed' | 'ltv_target_unreachable' | 'idempotency_key_reuse_mismatch' | 'idempotency_request_in_progress' | 'rule_changed_during_execution' | 'operation_not_cancellable' | 'execution_failed' | 'execution_timeout' | 'batch_step_failed' | 'rate_limited' | 'internal_error';
322
+ code: 'authentication_failed' | 'agent_disabled' | 'agent_not_yet_active' | 'agent_expired' | 'owner_only_action' | 'identity_gated_action' | 'permission_not_granted' | 'insufficient_scope' | 'asset_not_allowed' | 'recipient_not_allowed' | 'protocol_not_allowed' | 'limit_exceeded' | 'cooldown_active' | 'ltv_too_high' | 'validation_failed' | 'agent_api_cutover_in_progress' | 'agent_api_chain_unavailable' | 'signature_expired' | 'signature_invalid_s' | 'not_found' | 'insufficient_funds' | 'slippage_exceeded' | 'price_stale' | 'quote_expired' | 'quote_already_consumed' | 'signature_invalid_nonce' | 'one_off_payment_not_active' | 'one_off_payment_stale' | 'one_off_payment_replaced' | 'one_off_payment_already_paid' | 'cheque_not_found' | 'cheque_replaced' | 'starter_agent_not_removable' | 'pending_one_off_payment_settings_exists' | 'pending_one_off_payment_settings_missing' | 'pending_time_lock_exists' | 'time_delay_not_reached' | 'owner_changed_pending_state' | 'migration_blocked_pending_one_off_payment_settings' | 'migration_blocked_pending_time_lock' | 'loot_not_available' | 'invalid_pull_one_off_payment_flags' | 'operation_feature_disabled' | 'timelock_not_elapsed' | 'ltv_target_unreachable' | 'idempotency_key_reuse_mismatch' | 'idempotency_request_in_progress' | 'rule_changed_during_execution' | 'operation_not_cancellable' | 'execution_failed' | 'execution_timeout' | 'batch_step_failed' | 'operation_not_supported_for_wrapper_version' | 'rate_limited' | 'internal_error';
303
323
  message: string;
304
324
  details?: Record<string, unknown>;
305
325
  remediation?: {
@@ -393,7 +413,7 @@ export type AgentApiWriteResponse = {
393
413
  allowed: boolean;
394
414
  }>;
395
415
  blocks?: Array<{
396
- code: 'authentication_failed' | 'agent_disabled' | 'agent_not_yet_active' | 'agent_expired' | 'owner_only_action' | 'identity_gated_action' | 'permission_not_granted' | 'insufficient_scope' | 'asset_not_allowed' | 'recipient_not_allowed' | 'protocol_not_allowed' | 'limit_exceeded' | 'cooldown_active' | 'ltv_too_high' | 'validation_failed' | 'not_found' | 'insufficient_funds' | 'slippage_exceeded' | 'price_stale' | 'quote_expired' | 'quote_already_consumed' | 'timelock_not_elapsed' | 'ltv_target_unreachable' | 'idempotency_key_reuse_mismatch' | 'idempotency_request_in_progress' | 'rule_changed_during_execution' | 'operation_not_cancellable' | 'execution_failed' | 'execution_timeout' | 'batch_step_failed' | 'rate_limited' | 'internal_error';
416
+ code: 'authentication_failed' | 'agent_disabled' | 'agent_not_yet_active' | 'agent_expired' | 'owner_only_action' | 'identity_gated_action' | 'permission_not_granted' | 'insufficient_scope' | 'asset_not_allowed' | 'recipient_not_allowed' | 'protocol_not_allowed' | 'limit_exceeded' | 'cooldown_active' | 'ltv_too_high' | 'validation_failed' | 'agent_api_cutover_in_progress' | 'agent_api_chain_unavailable' | 'signature_expired' | 'signature_invalid_s' | 'not_found' | 'insufficient_funds' | 'slippage_exceeded' | 'price_stale' | 'quote_expired' | 'quote_already_consumed' | 'signature_invalid_nonce' | 'one_off_payment_not_active' | 'one_off_payment_stale' | 'one_off_payment_replaced' | 'one_off_payment_already_paid' | 'cheque_not_found' | 'cheque_replaced' | 'starter_agent_not_removable' | 'pending_one_off_payment_settings_exists' | 'pending_one_off_payment_settings_missing' | 'pending_time_lock_exists' | 'time_delay_not_reached' | 'owner_changed_pending_state' | 'migration_blocked_pending_one_off_payment_settings' | 'migration_blocked_pending_time_lock' | 'loot_not_available' | 'invalid_pull_one_off_payment_flags' | 'operation_feature_disabled' | 'timelock_not_elapsed' | 'ltv_target_unreachable' | 'idempotency_key_reuse_mismatch' | 'idempotency_request_in_progress' | 'rule_changed_during_execution' | 'operation_not_cancellable' | 'execution_failed' | 'execution_timeout' | 'batch_step_failed' | 'operation_not_supported_for_wrapper_version' | 'rate_limited' | 'internal_error';
397
417
  message: string;
398
418
  details?: Record<string, unknown>;
399
419
  remediation?: {
@@ -578,6 +598,30 @@ export type AgentApiCollateralResponse = {
578
598
  next_cursor: string | null;
579
599
  has_more: boolean;
580
600
  };
601
+ export type AgentApiCollateralOptionsResponse = {
602
+ ok: true;
603
+ items: Array<{
604
+ id: string;
605
+ asset_symbol: string;
606
+ asset_display_name: string;
607
+ asset_address: string;
608
+ source_type: 'cash' | 'earn_vault';
609
+ vault_id?: string;
610
+ vault_name?: string;
611
+ protocol_id?: string;
612
+ protocol_name?: string;
613
+ amount: string;
614
+ amount_usd: string;
615
+ ltv: string;
616
+ max_ltv: string;
617
+ borrow_power_usd: string;
618
+ increases_borrow_capacity: boolean;
619
+ apy?: string;
620
+ allowed: true;
621
+ }>;
622
+ next_cursor: string | null;
623
+ has_more: boolean;
624
+ };
581
625
  export type AgentApiBorrowRepayRequest = {
582
626
  asset: 'GREEN' | '0xd1Eac76497D06Cf15475A5e3984D5bC03de7C707';
583
627
  repay_all?: boolean;
@@ -649,6 +693,7 @@ export type AgentApiConversionQuoteResponse = {
649
693
  export type AgentApiConversionExecuteRequest = {
650
694
  quote_id: string;
651
695
  };
696
+ export type AgentApiTrustedDestinationWriteRequest = {};
652
697
  export type AgentApiSimulateRequest = {
653
698
  method: 'POST' | 'PATCH' | 'DELETE';
654
699
  path: string;
@@ -659,7 +704,7 @@ export type AgentApiSimulateResponse = {
659
704
  would_succeed: boolean;
660
705
  execution_path: string[];
661
706
  blocks?: Array<{
662
- code: 'authentication_failed' | 'agent_disabled' | 'agent_not_yet_active' | 'agent_expired' | 'owner_only_action' | 'identity_gated_action' | 'permission_not_granted' | 'insufficient_scope' | 'asset_not_allowed' | 'recipient_not_allowed' | 'protocol_not_allowed' | 'limit_exceeded' | 'cooldown_active' | 'ltv_too_high' | 'validation_failed' | 'not_found' | 'insufficient_funds' | 'slippage_exceeded' | 'price_stale' | 'quote_expired' | 'quote_already_consumed' | 'timelock_not_elapsed' | 'ltv_target_unreachable' | 'idempotency_key_reuse_mismatch' | 'idempotency_request_in_progress' | 'rule_changed_during_execution' | 'operation_not_cancellable' | 'execution_failed' | 'execution_timeout' | 'batch_step_failed' | 'rate_limited' | 'internal_error';
707
+ code: 'authentication_failed' | 'agent_disabled' | 'agent_not_yet_active' | 'agent_expired' | 'owner_only_action' | 'identity_gated_action' | 'permission_not_granted' | 'insufficient_scope' | 'asset_not_allowed' | 'recipient_not_allowed' | 'protocol_not_allowed' | 'limit_exceeded' | 'cooldown_active' | 'ltv_too_high' | 'validation_failed' | 'agent_api_cutover_in_progress' | 'agent_api_chain_unavailable' | 'signature_expired' | 'signature_invalid_s' | 'not_found' | 'insufficient_funds' | 'slippage_exceeded' | 'price_stale' | 'quote_expired' | 'quote_already_consumed' | 'signature_invalid_nonce' | 'one_off_payment_not_active' | 'one_off_payment_stale' | 'one_off_payment_replaced' | 'one_off_payment_already_paid' | 'cheque_not_found' | 'cheque_replaced' | 'starter_agent_not_removable' | 'pending_one_off_payment_settings_exists' | 'pending_one_off_payment_settings_missing' | 'pending_time_lock_exists' | 'time_delay_not_reached' | 'owner_changed_pending_state' | 'migration_blocked_pending_one_off_payment_settings' | 'migration_blocked_pending_time_lock' | 'loot_not_available' | 'invalid_pull_one_off_payment_flags' | 'operation_feature_disabled' | 'timelock_not_elapsed' | 'ltv_target_unreachable' | 'idempotency_key_reuse_mismatch' | 'idempotency_request_in_progress' | 'rule_changed_during_execution' | 'operation_not_cancellable' | 'execution_failed' | 'execution_timeout' | 'batch_step_failed' | 'operation_not_supported_for_wrapper_version' | 'rate_limited' | 'internal_error';
663
708
  message: string;
664
709
  details?: Record<string, unknown>;
665
710
  remediation?: {
@@ -775,7 +820,7 @@ export type AgentApiX402PurchaseResponse = {
775
820
  } | null;
776
821
  recoverable?: boolean;
777
822
  recovery_error?: {
778
- code: 'authentication_failed' | 'agent_disabled' | 'agent_not_yet_active' | 'agent_expired' | 'owner_only_action' | 'identity_gated_action' | 'permission_not_granted' | 'insufficient_scope' | 'asset_not_allowed' | 'recipient_not_allowed' | 'protocol_not_allowed' | 'limit_exceeded' | 'cooldown_active' | 'ltv_too_high' | 'validation_failed' | 'not_found' | 'insufficient_funds' | 'slippage_exceeded' | 'price_stale' | 'quote_expired' | 'quote_already_consumed' | 'timelock_not_elapsed' | 'ltv_target_unreachable' | 'idempotency_key_reuse_mismatch' | 'idempotency_request_in_progress' | 'rule_changed_during_execution' | 'operation_not_cancellable' | 'execution_failed' | 'execution_timeout' | 'batch_step_failed' | 'rate_limited' | 'internal_error';
823
+ code: 'authentication_failed' | 'agent_disabled' | 'agent_not_yet_active' | 'agent_expired' | 'owner_only_action' | 'identity_gated_action' | 'permission_not_granted' | 'insufficient_scope' | 'asset_not_allowed' | 'recipient_not_allowed' | 'protocol_not_allowed' | 'limit_exceeded' | 'cooldown_active' | 'ltv_too_high' | 'validation_failed' | 'agent_api_cutover_in_progress' | 'agent_api_chain_unavailable' | 'signature_expired' | 'signature_invalid_s' | 'not_found' | 'insufficient_funds' | 'slippage_exceeded' | 'price_stale' | 'quote_expired' | 'quote_already_consumed' | 'signature_invalid_nonce' | 'one_off_payment_not_active' | 'one_off_payment_stale' | 'one_off_payment_replaced' | 'one_off_payment_already_paid' | 'cheque_not_found' | 'cheque_replaced' | 'starter_agent_not_removable' | 'pending_one_off_payment_settings_exists' | 'pending_one_off_payment_settings_missing' | 'pending_time_lock_exists' | 'time_delay_not_reached' | 'owner_changed_pending_state' | 'migration_blocked_pending_one_off_payment_settings' | 'migration_blocked_pending_time_lock' | 'loot_not_available' | 'invalid_pull_one_off_payment_flags' | 'operation_feature_disabled' | 'timelock_not_elapsed' | 'ltv_target_unreachable' | 'idempotency_key_reuse_mismatch' | 'idempotency_request_in_progress' | 'rule_changed_during_execution' | 'operation_not_cancellable' | 'execution_failed' | 'execution_timeout' | 'batch_step_failed' | 'operation_not_supported_for_wrapper_version' | 'rate_limited' | 'internal_error';
779
824
  message: string;
780
825
  details?: Record<string, unknown>;
781
826
  remediation?: {
@@ -784,7 +829,7 @@ export type AgentApiX402PurchaseResponse = {
784
829
  };
785
830
  };
786
831
  seller_error?: {
787
- code: 'authentication_failed' | 'agent_disabled' | 'agent_not_yet_active' | 'agent_expired' | 'owner_only_action' | 'identity_gated_action' | 'permission_not_granted' | 'insufficient_scope' | 'asset_not_allowed' | 'recipient_not_allowed' | 'protocol_not_allowed' | 'limit_exceeded' | 'cooldown_active' | 'ltv_too_high' | 'validation_failed' | 'not_found' | 'insufficient_funds' | 'slippage_exceeded' | 'price_stale' | 'quote_expired' | 'quote_already_consumed' | 'timelock_not_elapsed' | 'ltv_target_unreachable' | 'idempotency_key_reuse_mismatch' | 'idempotency_request_in_progress' | 'rule_changed_during_execution' | 'operation_not_cancellable' | 'execution_failed' | 'execution_timeout' | 'batch_step_failed' | 'rate_limited' | 'internal_error';
832
+ code: 'authentication_failed' | 'agent_disabled' | 'agent_not_yet_active' | 'agent_expired' | 'owner_only_action' | 'identity_gated_action' | 'permission_not_granted' | 'insufficient_scope' | 'asset_not_allowed' | 'recipient_not_allowed' | 'protocol_not_allowed' | 'limit_exceeded' | 'cooldown_active' | 'ltv_too_high' | 'validation_failed' | 'agent_api_cutover_in_progress' | 'agent_api_chain_unavailable' | 'signature_expired' | 'signature_invalid_s' | 'not_found' | 'insufficient_funds' | 'slippage_exceeded' | 'price_stale' | 'quote_expired' | 'quote_already_consumed' | 'signature_invalid_nonce' | 'one_off_payment_not_active' | 'one_off_payment_stale' | 'one_off_payment_replaced' | 'one_off_payment_already_paid' | 'cheque_not_found' | 'cheque_replaced' | 'starter_agent_not_removable' | 'pending_one_off_payment_settings_exists' | 'pending_one_off_payment_settings_missing' | 'pending_time_lock_exists' | 'time_delay_not_reached' | 'owner_changed_pending_state' | 'migration_blocked_pending_one_off_payment_settings' | 'migration_blocked_pending_time_lock' | 'loot_not_available' | 'invalid_pull_one_off_payment_flags' | 'operation_feature_disabled' | 'timelock_not_elapsed' | 'ltv_target_unreachable' | 'idempotency_key_reuse_mismatch' | 'idempotency_request_in_progress' | 'rule_changed_during_execution' | 'operation_not_cancellable' | 'execution_failed' | 'execution_timeout' | 'batch_step_failed' | 'operation_not_supported_for_wrapper_version' | 'rate_limited' | 'internal_error';
788
833
  message: string;
789
834
  details?: Record<string, unknown>;
790
835
  remediation?: {
@@ -804,7 +849,7 @@ export type AgentApiWebhookCreateResponse = {
804
849
  id: string;
805
850
  url: string;
806
851
  description: string | null;
807
- event_types: Array<'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'operation.policy_rejected' | 'webhook.test'>;
852
+ event_types: Array<'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'one_off_payment.pay_failed.stale' | 'one_off_payment.pay_failed.replaced' | 'one_off_payment.pay_failed.already_paid' | 'one_off_payment.pay_failed.inactive' | 'one_off_payment.pull_issued' | 'one_off_payment.pull_child_created' | 'one_off_payment.harvest_and_created' | 'one_off_payment.harvest_and_create_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'loot.claimed_all' | 'loot.claimed_revshare' | 'loot.claimed_deposit_rewards' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'trusted_destination.maintenance.executed' | 'trusted_destination.maintenance.failed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.self_removed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'one_off_payment_settings.pending_set' | 'one_off_payment_settings.confirmed' | 'one_off_payment_settings.cancelled' | 'time_lock.pending_set' | 'time_lock.confirmed' | 'time_lock.cancelled' | 'operation.policy_rejected' | 'webhook.test'>;
808
853
  enabled: boolean;
809
854
  disabled_reason: 'owner_disabled' | 'sustained_failures' | 'agent_disabled' | 'security_action' | null;
810
855
  consecutive_failures: number;
@@ -821,7 +866,7 @@ export type AgentApiWebhooksResponse = {
821
866
  id: string;
822
867
  url: string;
823
868
  description: string | null;
824
- event_types: Array<'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'operation.policy_rejected' | 'webhook.test'>;
869
+ event_types: Array<'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'one_off_payment.pay_failed.stale' | 'one_off_payment.pay_failed.replaced' | 'one_off_payment.pay_failed.already_paid' | 'one_off_payment.pay_failed.inactive' | 'one_off_payment.pull_issued' | 'one_off_payment.pull_child_created' | 'one_off_payment.harvest_and_created' | 'one_off_payment.harvest_and_create_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'loot.claimed_all' | 'loot.claimed_revshare' | 'loot.claimed_deposit_rewards' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'trusted_destination.maintenance.executed' | 'trusted_destination.maintenance.failed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.self_removed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'one_off_payment_settings.pending_set' | 'one_off_payment_settings.confirmed' | 'one_off_payment_settings.cancelled' | 'time_lock.pending_set' | 'time_lock.confirmed' | 'time_lock.cancelled' | 'operation.policy_rejected' | 'webhook.test'>;
825
870
  enabled: boolean;
826
871
  disabled_reason: 'owner_disabled' | 'sustained_failures' | 'agent_disabled' | 'security_action' | null;
827
872
  consecutive_failures: number;
@@ -839,7 +884,7 @@ export type AgentApiWebhookResponse = {
839
884
  id: string;
840
885
  url: string;
841
886
  description: string | null;
842
- event_types: Array<'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'operation.policy_rejected' | 'webhook.test'>;
887
+ event_types: Array<'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'one_off_payment.pay_failed.stale' | 'one_off_payment.pay_failed.replaced' | 'one_off_payment.pay_failed.already_paid' | 'one_off_payment.pay_failed.inactive' | 'one_off_payment.pull_issued' | 'one_off_payment.pull_child_created' | 'one_off_payment.harvest_and_created' | 'one_off_payment.harvest_and_create_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'loot.claimed_all' | 'loot.claimed_revshare' | 'loot.claimed_deposit_rewards' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'trusted_destination.maintenance.executed' | 'trusted_destination.maintenance.failed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.self_removed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'one_off_payment_settings.pending_set' | 'one_off_payment_settings.confirmed' | 'one_off_payment_settings.cancelled' | 'time_lock.pending_set' | 'time_lock.confirmed' | 'time_lock.cancelled' | 'operation.policy_rejected' | 'webhook.test'>;
843
888
  enabled: boolean;
844
889
  disabled_reason: 'owner_disabled' | 'sustained_failures' | 'agent_disabled' | 'security_action' | null;
845
890
  consecutive_failures: number;
@@ -862,7 +907,7 @@ export type AgentApiWebhookDeleteResponse = {
862
907
  id: string;
863
908
  url: string;
864
909
  description: string | null;
865
- event_types: Array<'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'operation.policy_rejected' | 'webhook.test'>;
910
+ event_types: Array<'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'one_off_payment.pay_failed.stale' | 'one_off_payment.pay_failed.replaced' | 'one_off_payment.pay_failed.already_paid' | 'one_off_payment.pay_failed.inactive' | 'one_off_payment.pull_issued' | 'one_off_payment.pull_child_created' | 'one_off_payment.harvest_and_created' | 'one_off_payment.harvest_and_create_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'loot.claimed_all' | 'loot.claimed_revshare' | 'loot.claimed_deposit_rewards' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'trusted_destination.maintenance.executed' | 'trusted_destination.maintenance.failed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.self_removed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'one_off_payment_settings.pending_set' | 'one_off_payment_settings.confirmed' | 'one_off_payment_settings.cancelled' | 'time_lock.pending_set' | 'time_lock.confirmed' | 'time_lock.cancelled' | 'operation.policy_rejected' | 'webhook.test'>;
866
911
  enabled: boolean;
867
912
  disabled_reason: 'owner_disabled' | 'sustained_failures' | 'agent_disabled' | 'security_action' | null;
868
913
  consecutive_failures: number;
@@ -879,7 +924,7 @@ export type AgentApiWebhookRotateSecretResponse = {
879
924
  id: string;
880
925
  url: string;
881
926
  description: string | null;
882
- event_types: Array<'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'operation.policy_rejected' | 'webhook.test'>;
927
+ event_types: Array<'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'one_off_payment.pay_failed.stale' | 'one_off_payment.pay_failed.replaced' | 'one_off_payment.pay_failed.already_paid' | 'one_off_payment.pay_failed.inactive' | 'one_off_payment.pull_issued' | 'one_off_payment.pull_child_created' | 'one_off_payment.harvest_and_created' | 'one_off_payment.harvest_and_create_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'loot.claimed_all' | 'loot.claimed_revshare' | 'loot.claimed_deposit_rewards' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'trusted_destination.maintenance.executed' | 'trusted_destination.maintenance.failed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.self_removed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'one_off_payment_settings.pending_set' | 'one_off_payment_settings.confirmed' | 'one_off_payment_settings.cancelled' | 'time_lock.pending_set' | 'time_lock.confirmed' | 'time_lock.cancelled' | 'operation.policy_rejected' | 'webhook.test'>;
883
928
  enabled: boolean;
884
929
  disabled_reason: 'owner_disabled' | 'sustained_failures' | 'agent_disabled' | 'security_action' | null;
885
930
  consecutive_failures: number;
@@ -915,7 +960,7 @@ export type AgentApiWebhookDeliveriesResponse = {
915
960
  terminal_at: string | null;
916
961
  created_at: string;
917
962
  updated_at: string;
918
- event_type: 'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'operation.policy_rejected' | 'webhook.test';
963
+ event_type: 'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'one_off_payment.pay_failed.stale' | 'one_off_payment.pay_failed.replaced' | 'one_off_payment.pay_failed.already_paid' | 'one_off_payment.pay_failed.inactive' | 'one_off_payment.pull_issued' | 'one_off_payment.pull_child_created' | 'one_off_payment.harvest_and_created' | 'one_off_payment.harvest_and_create_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'loot.claimed_all' | 'loot.claimed_revshare' | 'loot.claimed_deposit_rewards' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'trusted_destination.maintenance.executed' | 'trusted_destination.maintenance.failed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.self_removed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'one_off_payment_settings.pending_set' | 'one_off_payment_settings.confirmed' | 'one_off_payment_settings.cancelled' | 'time_lock.pending_set' | 'time_lock.confirmed' | 'time_lock.cancelled' | 'operation.policy_rejected' | 'webhook.test';
919
964
  event_created_at: string;
920
965
  response_body: string | null;
921
966
  }>;
@@ -927,7 +972,7 @@ export type AgentApiWebhookTestResponse = {
927
972
  ok: true;
928
973
  event: {
929
974
  id: string;
930
- type: 'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'operation.policy_rejected' | 'webhook.test';
975
+ type: 'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'one_off_payment.pay_failed.stale' | 'one_off_payment.pay_failed.replaced' | 'one_off_payment.pay_failed.already_paid' | 'one_off_payment.pay_failed.inactive' | 'one_off_payment.pull_issued' | 'one_off_payment.pull_child_created' | 'one_off_payment.harvest_and_created' | 'one_off_payment.harvest_and_create_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'loot.claimed_all' | 'loot.claimed_revshare' | 'loot.claimed_deposit_rewards' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'trusted_destination.maintenance.executed' | 'trusted_destination.maintenance.failed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.self_removed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'one_off_payment_settings.pending_set' | 'one_off_payment_settings.confirmed' | 'one_off_payment_settings.cancelled' | 'time_lock.pending_set' | 'time_lock.confirmed' | 'time_lock.cancelled' | 'operation.policy_rejected' | 'webhook.test';
931
976
  created_at: string;
932
977
  payload: Record<string, unknown>;
933
978
  };
@@ -946,12 +991,12 @@ export type AgentApiWebhookTestResponse = {
946
991
  terminal_at: string | null;
947
992
  created_at: string;
948
993
  updated_at: string;
949
- event_type: 'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'operation.policy_rejected' | 'webhook.test';
994
+ event_type: 'payment.submitted' | 'payment.executed' | 'payment.execution_failed' | 'payment.received' | 'one_off_payment.created' | 'one_off_payment.claimed' | 'one_off_payment.expired' | 'one_off_payment.execution_failed' | 'one_off_payment.pay_failed.stale' | 'one_off_payment.pay_failed.replaced' | 'one_off_payment.pay_failed.already_paid' | 'one_off_payment.pay_failed.inactive' | 'one_off_payment.pull_issued' | 'one_off_payment.pull_child_created' | 'one_off_payment.harvest_and_created' | 'one_off_payment.harvest_and_create_failed' | 'conversion.executed' | 'conversion.execution_failed' | 'earn.deposit.executed' | 'earn.withdraw.executed' | 'earn.move.executed' | 'rewards.claimed' | 'loot.claimed_all' | 'loot.claimed_revshare' | 'loot.claimed_deposit_rewards' | 'debt.borrowed' | 'debt.repaid' | 'debt.deleveraged' | 'collateral.added' | 'collateral.removed' | 'withdrawal.submitted' | 'withdrawal.settled' | 'withdrawal.execution_failed' | 'deposit.received' | 'trusted_destination.confirmed' | 'trusted_destination.cancelled' | 'trusted_destination.removed' | 'trusted_destination.maintenance.executed' | 'trusted_destination.maintenance.failed' | 'recurring_payment.updated' | 'recipient.changed' | 'agent.self_removed' | 'agent.limit_approaching' | 'agent.limit_reached' | 'agent.disabled' | 'agent.expired' | 'agent.expiring_soon' | 'agent.webhook_disabled' | 'one_off_payment_settings.pending_set' | 'one_off_payment_settings.confirmed' | 'one_off_payment_settings.cancelled' | 'time_lock.pending_set' | 'time_lock.confirmed' | 'time_lock.cancelled' | 'operation.policy_rejected' | 'webhook.test';
950
995
  event_created_at: string;
951
996
  response_body: string | null;
952
997
  };
953
998
  };
954
- export type AgentApiHttpMethod = 'GET' | 'POST' | 'PATCH' | 'DELETE';
999
+ export type AgentApiHttpMethod = 'GET' | 'POST' | 'DELETE' | 'PATCH';
955
1000
  export type AgentApiRouteClass = 'read' | 'write' | 'simulate' | 'webhook_management';
956
1001
  export type AgentApiEndpointMetadata = {
957
1002
  readonly key: string;
@@ -1539,6 +1584,21 @@ export declare const agentApiEndpoints: readonly [{
1539
1584
  readonly idempotencyRequired: false;
1540
1585
  readonly routeClass: "read";
1541
1586
  readonly description: "List collateral for the authenticated agent wallet.";
1587
+ }, {
1588
+ readonly key: "GET /v1/agent/borrow/collateral-options";
1589
+ readonly method: "GET";
1590
+ readonly path: "/v1/agent/borrow/collateral-options";
1591
+ readonly pathParams: readonly [];
1592
+ readonly queryParams: readonly ["cursor", "limit"];
1593
+ readonly bodyParams: readonly [];
1594
+ readonly requestSchema: "agentApiResourceListQuery";
1595
+ readonly bodySchema: null;
1596
+ readonly responseSchema: "agentApiCollateralOptionsResponse";
1597
+ readonly requestType: "AgentApiResourceListQuery";
1598
+ readonly responseType: "AgentApiCollateralOptionsResponse";
1599
+ readonly idempotencyRequired: false;
1600
+ readonly routeClass: "read";
1601
+ readonly description: "List addable collateral options for the authenticated agent wallet.";
1542
1602
  }, {
1543
1603
  readonly key: "POST /v1/agent/borrow/repay";
1544
1604
  readonly method: "POST";
@@ -1689,6 +1749,51 @@ export declare const agentApiEndpoints: readonly [{
1689
1749
  readonly idempotencyRequired: false;
1690
1750
  readonly routeClass: "read";
1691
1751
  readonly description: "Get one trusted destination visible to the authenticated agent wallet.";
1752
+ }, {
1753
+ readonly key: "DELETE /v1/agent/trusted-destinations/{id}";
1754
+ readonly method: "DELETE";
1755
+ readonly path: "/v1/agent/trusted-destinations/{id}";
1756
+ readonly pathParams: readonly ["id"];
1757
+ readonly queryParams: readonly [];
1758
+ readonly bodyParams: readonly [];
1759
+ readonly requestSchema: "agentApiTrustedDestinationWriteRequest";
1760
+ readonly bodySchema: "agentApiTrustedDestinationWriteRequest";
1761
+ readonly responseSchema: "agentApiWriteResponse";
1762
+ readonly requestType: "AgentApiTrustedDestinationWriteRequest";
1763
+ readonly responseType: "AgentApiWriteResponse";
1764
+ readonly idempotencyRequired: true;
1765
+ readonly routeClass: "write";
1766
+ readonly description: "Remove a trusted destination from the authenticated agent wallet.";
1767
+ }, {
1768
+ readonly key: "POST /v1/agent/trusted-destinations/{id}/confirm";
1769
+ readonly method: "POST";
1770
+ readonly path: "/v1/agent/trusted-destinations/{id}/confirm";
1771
+ readonly pathParams: readonly ["id"];
1772
+ readonly queryParams: readonly [];
1773
+ readonly bodyParams: readonly [];
1774
+ readonly requestSchema: "agentApiTrustedDestinationWriteRequest";
1775
+ readonly bodySchema: "agentApiTrustedDestinationWriteRequest";
1776
+ readonly responseSchema: "agentApiWriteResponse";
1777
+ readonly requestType: "AgentApiTrustedDestinationWriteRequest";
1778
+ readonly responseType: "AgentApiWriteResponse";
1779
+ readonly idempotencyRequired: true;
1780
+ readonly routeClass: "write";
1781
+ readonly description: "Confirm a pending trusted destination for the authenticated agent wallet.";
1782
+ }, {
1783
+ readonly key: "POST /v1/agent/trusted-destinations/{id}/cancel";
1784
+ readonly method: "POST";
1785
+ readonly path: "/v1/agent/trusted-destinations/{id}/cancel";
1786
+ readonly pathParams: readonly ["id"];
1787
+ readonly queryParams: readonly [];
1788
+ readonly bodyParams: readonly [];
1789
+ readonly requestSchema: "agentApiTrustedDestinationWriteRequest";
1790
+ readonly bodySchema: "agentApiTrustedDestinationWriteRequest";
1791
+ readonly responseSchema: "agentApiWriteResponse";
1792
+ readonly requestType: "AgentApiTrustedDestinationWriteRequest";
1793
+ readonly responseType: "AgentApiWriteResponse";
1794
+ readonly idempotencyRequired: true;
1795
+ readonly routeClass: "write";
1796
+ readonly description: "Cancel a pending trusted destination for the authenticated agent wallet.";
1692
1797
  }, {
1693
1798
  readonly key: "GET /v1/agent/recurring-payments";
1694
1799
  readonly method: "GET";
@@ -1956,6 +2061,7 @@ export type AgentApiEndpointRequestMap = {
1956
2061
  readonly 'GET /v1/agent/borrow': undefined;
1957
2062
  readonly 'POST /v1/agent/borrow': AgentApiBorrowRequest;
1958
2063
  readonly 'GET /v1/agent/borrow/collateral': AgentApiResourceListQuery;
2064
+ readonly 'GET /v1/agent/borrow/collateral-options': AgentApiResourceListQuery;
1959
2065
  readonly 'POST /v1/agent/borrow/repay': AgentApiBorrowRepayRequest;
1960
2066
  readonly 'POST /v1/agent/borrow/deleverage': AgentApiDeleverageRequest;
1961
2067
  readonly 'POST /v1/agent/borrow/collateral/add': AgentApiCollateralAddRequest;
@@ -1970,6 +2076,15 @@ export type AgentApiEndpointRequestMap = {
1970
2076
  readonly 'GET /v1/agent/trusted-destinations/{id}': AgentApiRecipientDetailQuery & {
1971
2077
  id: AgentApiPathParamValue;
1972
2078
  };
2079
+ readonly 'DELETE /v1/agent/trusted-destinations/{id}': AgentApiTrustedDestinationWriteRequest & {
2080
+ id: AgentApiPathParamValue;
2081
+ };
2082
+ readonly 'POST /v1/agent/trusted-destinations/{id}/confirm': AgentApiTrustedDestinationWriteRequest & {
2083
+ id: AgentApiPathParamValue;
2084
+ };
2085
+ readonly 'POST /v1/agent/trusted-destinations/{id}/cancel': AgentApiTrustedDestinationWriteRequest & {
2086
+ id: AgentApiPathParamValue;
2087
+ };
1973
2088
  readonly 'GET /v1/agent/recurring-payments': AgentApiResourceListQuery;
1974
2089
  readonly 'GET /v1/agent/recurring-payments/{id}': AgentApiRecipientDetailQuery & {
1975
2090
  id: AgentApiPathParamValue;
@@ -2038,6 +2153,7 @@ export type AgentApiEndpointResponseMap = {
2038
2153
  readonly 'GET /v1/agent/borrow': AgentApiBorrowResponse;
2039
2154
  readonly 'POST /v1/agent/borrow': AgentApiWriteResponse;
2040
2155
  readonly 'GET /v1/agent/borrow/collateral': AgentApiCollateralResponse;
2156
+ readonly 'GET /v1/agent/borrow/collateral-options': AgentApiCollateralOptionsResponse;
2041
2157
  readonly 'POST /v1/agent/borrow/repay': AgentApiWriteResponse;
2042
2158
  readonly 'POST /v1/agent/borrow/deleverage': AgentApiWriteResponse;
2043
2159
  readonly 'POST /v1/agent/borrow/collateral/add': AgentApiWriteResponse;
@@ -2048,6 +2164,9 @@ export type AgentApiEndpointResponseMap = {
2048
2164
  readonly 'GET /v1/agent/conversions/{id}': AgentApiOperationResponse;
2049
2165
  readonly 'GET /v1/agent/trusted-destinations': AgentApiRecipientsResponse;
2050
2166
  readonly 'GET /v1/agent/trusted-destinations/{id}': AgentApiRecipientResponse;
2167
+ readonly 'DELETE /v1/agent/trusted-destinations/{id}': AgentApiWriteResponse;
2168
+ readonly 'POST /v1/agent/trusted-destinations/{id}/confirm': AgentApiWriteResponse;
2169
+ readonly 'POST /v1/agent/trusted-destinations/{id}/cancel': AgentApiWriteResponse;
2051
2170
  readonly 'GET /v1/agent/recurring-payments': AgentApiRecipientsResponse;
2052
2171
  readonly 'GET /v1/agent/recurring-payments/{id}': AgentApiRecipientResponse;
2053
2172
  readonly 'POST /v1/agent/simulate': AgentApiSimulateResponse;
@@ -3,7 +3,7 @@
3
3
  // Generated by scripts/generateAgentPackageSdk.ts
4
4
  // ═══════════════════════════════════════════════════════════════════════════
5
5
  /* eslint-disable */
6
- export const AGENT_API_CONTRACT_VERSION = '1.5.0';
6
+ export const AGENT_API_CONTRACT_VERSION = '1.6.0';
7
7
  function isAgentSdkRecord(value) {
8
8
  return typeof value === 'object' && value !== null && !Array.isArray(value);
9
9
  }
@@ -30,7 +30,13 @@ export const agentErrorDetailsValidators = {
30
30
  typeof value['cap'] === 'number' &&
31
31
  typeof value['observed'] === 'number' &&
32
32
  ['rolling_30d', 'active'].includes(value['period'])) ||
33
- (isAgentSdkRecord(value) && typeof value['max_endpoints'] === 'number'),
33
+ (isAgentSdkRecord(value) && typeof value['max_endpoints'] === 'number') ||
34
+ (isAgentSdkRecord(value) &&
35
+ typeof value['cap'] === 'number' &&
36
+ typeof value['observed'] === 'number' &&
37
+ ['manager_period'].includes(value['period']) &&
38
+ ['max_num_swaps_per_period'].includes(value['cap_kind']) &&
39
+ typeof value['quote_id'] === 'string'),
34
40
  ltv_too_high: (value) => isAgentSdkRecord(value) &&
35
41
  typeof value['current_ltv'] === 'string' &&
36
42
  typeof value['estimated_ltv_after'] === 'string' &&
@@ -705,6 +711,22 @@ export const agentApiEndpoints = [
705
711
  routeClass: 'read',
706
712
  description: 'List collateral for the authenticated agent wallet.',
707
713
  },
714
+ {
715
+ key: 'GET /v1/agent/borrow/collateral-options',
716
+ method: 'GET',
717
+ path: '/v1/agent/borrow/collateral-options',
718
+ pathParams: [],
719
+ queryParams: ['cursor', 'limit'],
720
+ bodyParams: [],
721
+ requestSchema: 'agentApiResourceListQuery',
722
+ bodySchema: null,
723
+ responseSchema: 'agentApiCollateralOptionsResponse',
724
+ requestType: 'AgentApiResourceListQuery',
725
+ responseType: 'AgentApiCollateralOptionsResponse',
726
+ idempotencyRequired: false,
727
+ routeClass: 'read',
728
+ description: 'List addable collateral options for the authenticated agent wallet.',
729
+ },
708
730
  {
709
731
  key: 'POST /v1/agent/borrow/repay',
710
732
  method: 'POST',
@@ -880,6 +902,54 @@ export const agentApiEndpoints = [
880
902
  routeClass: 'read',
881
903
  description: 'Get one trusted destination visible to the authenticated agent wallet.',
882
904
  },
905
+ {
906
+ key: 'DELETE /v1/agent/trusted-destinations/{id}',
907
+ method: 'DELETE',
908
+ path: '/v1/agent/trusted-destinations/{id}',
909
+ pathParams: ['id'],
910
+ queryParams: [],
911
+ bodyParams: [],
912
+ requestSchema: 'agentApiTrustedDestinationWriteRequest',
913
+ bodySchema: 'agentApiTrustedDestinationWriteRequest',
914
+ responseSchema: 'agentApiWriteResponse',
915
+ requestType: 'AgentApiTrustedDestinationWriteRequest',
916
+ responseType: 'AgentApiWriteResponse',
917
+ idempotencyRequired: true,
918
+ routeClass: 'write',
919
+ description: 'Remove a trusted destination from the authenticated agent wallet.',
920
+ },
921
+ {
922
+ key: 'POST /v1/agent/trusted-destinations/{id}/confirm',
923
+ method: 'POST',
924
+ path: '/v1/agent/trusted-destinations/{id}/confirm',
925
+ pathParams: ['id'],
926
+ queryParams: [],
927
+ bodyParams: [],
928
+ requestSchema: 'agentApiTrustedDestinationWriteRequest',
929
+ bodySchema: 'agentApiTrustedDestinationWriteRequest',
930
+ responseSchema: 'agentApiWriteResponse',
931
+ requestType: 'AgentApiTrustedDestinationWriteRequest',
932
+ responseType: 'AgentApiWriteResponse',
933
+ idempotencyRequired: true,
934
+ routeClass: 'write',
935
+ description: 'Confirm a pending trusted destination for the authenticated agent wallet.',
936
+ },
937
+ {
938
+ key: 'POST /v1/agent/trusted-destinations/{id}/cancel',
939
+ method: 'POST',
940
+ path: '/v1/agent/trusted-destinations/{id}/cancel',
941
+ pathParams: ['id'],
942
+ queryParams: [],
943
+ bodyParams: [],
944
+ requestSchema: 'agentApiTrustedDestinationWriteRequest',
945
+ bodySchema: 'agentApiTrustedDestinationWriteRequest',
946
+ responseSchema: 'agentApiWriteResponse',
947
+ requestType: 'AgentApiTrustedDestinationWriteRequest',
948
+ responseType: 'AgentApiWriteResponse',
949
+ idempotencyRequired: true,
950
+ routeClass: 'write',
951
+ description: 'Cancel a pending trusted destination for the authenticated agent wallet.',
952
+ },
883
953
  {
884
954
  key: 'GET /v1/agent/recurring-payments',
885
955
  method: 'GET',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hightop/sdk",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",