@thirdfy/agent-cli 0.2.51 → 0.2.53

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/CHANGELOG.md CHANGED
@@ -4,6 +4,18 @@ All notable changes to `@thirdfy/agent-cli` are documented here. The format is b
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.2.53] - 2026-08-25
8
+
9
+ ### Added
10
+
11
+ - Polymarket provider hints include `get_polymarket_balance_allowance` on CLOB reads and order management so agents can check collateral balance and allowance before placing orders. Pairs with Thirdfy API **3.14.7** and `thirdfy-mcp` **0.0.101**.
12
+
13
+ ## [0.2.52] - 2026-08-18
14
+
15
+ ### Added
16
+
17
+ - Yield.xyz `claim_earn_rewards` / `claim-earn-rewards` earn-family routing, 180s write timeout, and provider hints (`providerId=yield-xyz`; no amount; optional `passthrough` from `get_earn_position.claimableRewards`). Pairs with Thirdfy API **3.14.2** and `thirdfy-mcp` **0.0.100**.
18
+
7
19
  ## [0.2.51] - 2026-08-16
8
20
 
9
21
  ### Fixed
package/README.md CHANGED
@@ -40,10 +40,9 @@ Run without global install:
40
40
  npx @thirdfy/agent-cli --help
41
41
  ```
42
42
 
43
- ## What's new in v0.2.51
43
+ ## What's new in v0.2.53
44
44
 
45
- - Morpho and Aave earn writes (`deposit_earn_position` / `withdraw_earn_position`) wait up to 180s instead of aborting at the 30s default.
46
- - Hyphen and snake action ids both use the long timeout.
45
+ - Polymarket CLOB discovery includes `get_polymarket_balance_allowance` so agents can read collateral balance and allowance before placing orders.
47
46
  - See [CHANGELOG.md](./CHANGELOG.md) and GitHub Releases for older versions.
48
47
 
49
48
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thirdfy/agent-cli",
3
- "version": "0.2.51",
3
+ "version": "0.2.53",
4
4
  "description": "Thirdfy Agent CLI for onboarding, governance preflight, execute-intent, and status polling.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -6,6 +6,7 @@ const LONG_RUNNING_ACTIONS = new Set([
6
6
  'register_lighter_api_key',
7
7
  'deposit_earn_position',
8
8
  'withdraw_earn_position',
9
+ 'claim_earn_rewards',
9
10
  ]);
10
11
 
11
12
  function normalizeActionId(action) {
@@ -116,6 +116,7 @@ function inferActionProvider(action) {
116
116
  'get-earn-position': 'earn',
117
117
  'deposit-earn-position': 'earn',
118
118
  'withdraw-earn-position': 'earn',
119
+ 'claim-earn-rewards': 'earn',
119
120
  'get-capyfi-markets': 'capyfi',
120
121
  'get-fx-supported-assets': 'fx',
121
122
  'quote-fx-swap': 'fx',
@@ -215,7 +216,11 @@ function isEarnCatalogAction(action) {
215
216
 
216
217
  function isGenericEarnWriteAction(action) {
217
218
  const actionKey = rowActionKey(action);
218
- return actionKey === 'deposit_earn_position' || actionKey === 'withdraw_earn_position';
219
+ return (
220
+ actionKey === 'deposit_earn_position' ||
221
+ actionKey === 'withdraw_earn_position' ||
222
+ actionKey === 'claim_earn_rewards'
223
+ );
219
224
  }
220
225
 
221
226
  function isGenericEarnWriteForProvider(action, requestedProvider) {
@@ -248,6 +248,7 @@ export function createProviderHints({ getNegotiatedCapabilitiesCache }) {
248
248
  'get_polymarket_order',
249
249
  'get_polymarket_user_orders',
250
250
  'get_polymarket_user_positions',
251
+ 'get_polymarket_balance_allowance',
251
252
  'get_polymarket_bridge_supported_assets',
252
253
  'get_polymarket_bridge_status',
253
254
  ],
@@ -267,6 +268,7 @@ export function createProviderHints({ getNegotiatedCapabilitiesCache }) {
267
268
  'get_polymarket_order',
268
269
  'get_polymarket_user_orders',
269
270
  'get_polymarket_user_positions',
271
+ 'get_polymarket_balance_allowance',
270
272
  'cancel_polymarket_order',
271
273
  ],
272
274
  setupActions: [
@@ -366,9 +368,9 @@ export function createProviderHints({ getNegotiatedCapabilitiesCache }) {
366
368
  'get-vaults-fyi-vaults',
367
369
  'get_yield_xyz_opportunities',
368
370
  ],
369
- orderManagementActions: ['deposit_earn_position', 'withdraw_earn_position'],
371
+ orderManagementActions: ['deposit_earn_position', 'withdraw_earn_position', 'claim_earn_rewards'],
370
372
  laneCompatibility:
371
- 'Generic earn writes use deposit_earn_position / withdraw_earn_position on normal Thirdfy policy/delegation rails; routing selects Morpho, Aave, Curve, Vaults.fyi, or Yield.xyz adapters per provider/opportunity.',
373
+ 'Generic earn writes use deposit_earn_position / withdraw_earn_position on normal Thirdfy policy/delegation rails; Yield.xyz incentive claims use claim_earn_rewards (no amount; optional passthrough from get_earn_position.claimableRewards). Routing selects Morpho, Aave, Curve, Vaults.fyi, or Yield.xyz adapters per provider/opportunity.',
372
374
  };
373
375
  }
374
376
  if (provider === 'capyfi') {
@@ -522,9 +524,9 @@ export function createProviderHints({ getNegotiatedCapabilitiesCache }) {
522
524
  canonicalReadAction: 'get_yield_xyz_opportunities',
523
525
  canonicalWriteAction: 'deposit_earn_position',
524
526
  readActions: ['get_yield_xyz_opportunities', 'get_earning_opportunities', 'get_earn_opportunities', 'get_earn_provider', 'get_earn_position'],
525
- orderManagementActions: ['deposit_earn_position', 'withdraw_earn_position'],
527
+ orderManagementActions: ['deposit_earn_position', 'withdraw_earn_position', 'claim_earn_rewards'],
526
528
  laneCompatibility:
527
- 'Yield.xyz writes are transaction-prep first. Always discover with get_yield_xyz_opportunities (or get_earning_opportunities) and pass the canonical opportunityId/yieldId. Thirdfy prepareDeposit calls GET /v1/yields/{yieldId} before enter/exit, then validates unsigned transactions with @yieldxyz/shield. Balances omit metadata.name; use yields_get / get_earn_position enrich for display names.',
529
+ 'Yield.xyz writes are transaction-prep first. Always discover with get_yield_xyz_opportunities (or get_earning_opportunities) and pass the canonical opportunityId/yieldId. Thirdfy prepareDeposit calls GET /v1/yields/{yieldId} before enter/exit, then validates unsigned transactions with @yieldxyz/shield. claim_earn_rewards claims pending CLAIM_REWARDS incentives (no amount; pass optional passthrough from get_earn_position.claimableRewards). Balances omit metadata.name; use yields_get / get_earn_position enrich for display names.',
528
530
  example:
529
531
  'thirdfy-agent run --action get_yield_xyz_opportunities --params \'{"chainId":8453,"asset":"USDC"}\' && thirdfy-agent preflight --action deposit_earn_position --params \'{"providerId":"yield-xyz","opportunityId":"<canonical-yieldId>","tokenAddress":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"10","chainId":8453}\'',
530
532
  supportedChains: [1, 10, 100, 130, 137, 42220, 8453, 42161, 4663],