@thirdfy/agent-cli 0.2.4 → 0.2.6
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 +16 -1
- package/README.md +4 -6
- package/package.json +1 -1
- package/src/runtime/actions/selection.mjs +16 -0
- package/src/runtime/providerHints.mjs +13 -6
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,21 @@ All notable changes to `@thirdfy/agent-cli` are documented here. The format is b
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.2.6] - 2026-06-05
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Hyperliquid provider hints: `complete_hyperliquid_onboarding` in setup actions; `setupWarnings` for `HYPERLIQUID_BUILDER_WALLET_UNFUNDED`; builder monetization copy matches Thirdfy API setup/execute parity (approval only when builder treasury is funded).
|
|
12
|
+
- Hyperliquid command reference documents active-builder gate and when `approve_hyperliquid_builder_fee` is required.
|
|
13
|
+
|
|
14
|
+
## [0.2.5] - 2026-05-31
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- Vaults.fyi provider hints now report `get-vaults-fyi-vaults` as the canonical read action.
|
|
19
|
+
- Legacy `get_vaults_fyi_vaults` requests resolve to `get-vaults-fyi-vaults` before ambiguous alias matching.
|
|
20
|
+
- Public action inventory docs now match the hyphenated Vaults.fyi discovery action used by Thirdfy API and MCP.
|
|
21
|
+
|
|
7
22
|
## [0.2.4] - 2026-05-28
|
|
8
23
|
|
|
9
24
|
### Changed
|
|
@@ -201,7 +216,7 @@ All notable changes to `@thirdfy/agent-cli` are documented here. The format is b
|
|
|
201
216
|
|
|
202
217
|
### Added
|
|
203
218
|
|
|
204
|
-
- **Earn partners (Vaults.fyi and Yield.xyz):** `thirdfy-agent actions --provider vaults-fyi|yield-xyz` returns catalog-aligned hints (`
|
|
219
|
+
- **Earn partners (Vaults.fyi and Yield.xyz):** `thirdfy-agent actions --provider vaults-fyi|yield-xyz` returns catalog-aligned hints (`get-vaults-fyi-vaults` / `get_yield_xyz_opportunities`, generic Earn reads, `deposit_earn_position` / `withdraw_earn_position`). Provider inference and `--provider earn` filtering include these providers alongside Morpho and Curve.
|
|
205
220
|
|
|
206
221
|
### Changed
|
|
207
222
|
|
package/README.md
CHANGED
|
@@ -40,13 +40,11 @@ Run without global install:
|
|
|
40
40
|
npx @thirdfy/agent-cli --help
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
## What's new in v0.2.
|
|
43
|
+
## What's new in v0.2.6
|
|
44
44
|
|
|
45
|
-
- Hyperliquid
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
Older versions: [CHANGELOG.md](./CHANGELOG.md) and [GitHub Releases](https://github.com/thirdfy/agent-cli/releases).
|
|
45
|
+
- Hyperliquid provider hints include `complete_hyperliquid_onboarding` and `setupWarnings` for unfunded builder treasury (`HYPERLIQUID_BUILDER_WALLET_UNFUNDED`).
|
|
46
|
+
- Builder fee approval is documented only when builder monetization is active (builder treasury funded on Hyperliquid).
|
|
47
|
+
- Command reference matches Thirdfy API setup/execute parity for Hyperliquid perps.
|
|
50
48
|
|
|
51
49
|
Older versions: [CHANGELOG.md](./CHANGELOG.md) and [GitHub Releases](https://github.com/thirdfy/agent-cli/releases).
|
|
52
50
|
|
package/package.json
CHANGED
|
@@ -276,6 +276,22 @@ async function resolveActionSelection(ctx, flags) {
|
|
|
276
276
|
return { requestedAction, resolvedAction: requestedAction, resolvedActionMeta: null };
|
|
277
277
|
}
|
|
278
278
|
|
|
279
|
+
const canonicalAliasOverrides = {
|
|
280
|
+
get_vaults_fyi_vaults: 'get-vaults-fyi-vaults',
|
|
281
|
+
get_vaults_fyi_opportunities: 'get-vaults-fyi-vaults',
|
|
282
|
+
};
|
|
283
|
+
const canonicalOverride = canonicalAliasOverrides[requestedLower];
|
|
284
|
+
if (canonicalOverride) {
|
|
285
|
+
const overrideEntry = keyed.find((entry) => entry.key.toLowerCase() === canonicalOverride);
|
|
286
|
+
if (overrideEntry) {
|
|
287
|
+
return {
|
|
288
|
+
requestedAction,
|
|
289
|
+
resolvedAction: overrideEntry.key,
|
|
290
|
+
resolvedActionMeta: overrideEntry.action || null,
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
279
295
|
// Prefer direct action id matches over alias matches.
|
|
280
296
|
// This keeps UX simple for commands like `--action swap` when another action aliases to "swap".
|
|
281
297
|
const exactKey = keyed.filter((entry) => entry.key.toLowerCase() === requestedLower);
|
|
@@ -45,6 +45,7 @@ export function createProviderHints({ getNegotiatedCapabilitiesCache }) {
|
|
|
45
45
|
'get_hyperliquid_setup_status',
|
|
46
46
|
'get_hyperliquid_onboarding_plan',
|
|
47
47
|
'prepare_hyperliquid_onboarding',
|
|
48
|
+
'complete_hyperliquid_onboarding',
|
|
48
49
|
'get_bridge_quote',
|
|
49
50
|
'execute_bridge',
|
|
50
51
|
'approve_hyperliquid_agent',
|
|
@@ -87,13 +88,19 @@ export function createProviderHints({ getNegotiatedCapabilitiesCache }) {
|
|
|
87
88
|
'HYPERLIQUID_CREDITS_REQUIRED',
|
|
88
89
|
'HYPERLIQUID_API_WALLET_SIGNER_REQUIRED',
|
|
89
90
|
],
|
|
91
|
+
setupWarnings: [
|
|
92
|
+
'HYPERLIQUID_BUILDER_WALLET_UNFUNDED',
|
|
93
|
+
'HYPERLIQUID_API_WALLET_NOT_PROVIDED',
|
|
94
|
+
],
|
|
90
95
|
sourceBridgeProvider: 'lifi',
|
|
91
96
|
funding:
|
|
92
97
|
'Best path: Base/Ethereum/Polygon USDC -> Li.Fi bridge to native Arbitrum USDC -> Hyperliquid Bridge2. If the user already has native Circle USDC on Arbitrum One (42161), skip Li.Fi and call deposit_hyperliquid_bridge. Minimum 5 USDC; Bridge2 credits the sender/source wallet.',
|
|
93
98
|
laneCompatibility:
|
|
94
|
-
'Use self only for setup signatures or Arbitrum funding transactions. Perps
|
|
99
|
+
'Use self/BYOW only for setup signatures or Arbitrum funding transactions. Perps order placement is an offchain venue write and should use thirdfy, hybrid, or agent_wallet. The default solo agent_wallet path uses the managed execution wallet as the Hyperliquid master address. If margin already sits on a distinct Hyperliquid main wallet, pass that as userAddress/mainWalletAddress and pass the approved execution/API wallet as apiWalletAddress.',
|
|
95
100
|
setupExample:
|
|
96
|
-
'actions --provider hyperliquid ->
|
|
101
|
+
'actions --provider hyperliquid -> get_hyperliquid_funding_status -> complete_hyperliquid_onboarding for runtime-owned setup, or get_hyperliquid_onboarding_plan/prepare_hyperliquid_onboarding for operator previews -> get_bridge_quote/execute_bridge if source is Base/Ethereum/Polygon -> deposit_hyperliquid_bridge on 42161 -> approve_hyperliquid_agent -> approve_hyperliquid_builder_fee only when get_hyperliquid_setup_status shows builder.enabled=true -> get_hyperliquid_setup_status before place_hyperliquid_perps_order',
|
|
102
|
+
monetization:
|
|
103
|
+
'Builder monetization is active only when the API operator configured a builder address and the builder treasury has Hyperliquid margin. When active, the main wallet signs approve_hyperliquid_builder_fee once and orders attach builder fees. When the treasury is unfunded, get_hyperliquid_setup_status can return ready=true with warning HYPERLIQUID_BUILDER_WALLET_UNFUNDED, get_hyperliquid_builder_fee_status returns monetizationEnabled=false with reason BUILDER_WALLET_UNFUNDED, and place_hyperliquid_perps_order does not require builder approval.',
|
|
97
104
|
example:
|
|
98
105
|
'thirdfy-agent actions --provider hyperliquid && thirdfy-agent preflight --action place_hyperliquid_perps_order --params \'{"coin":"ETH","isBuy":true,"size":0.01,"limitPx":3500,"orderType":"market"}\'',
|
|
99
106
|
};
|
|
@@ -250,7 +257,7 @@ export function createProviderHints({ getNegotiatedCapabilitiesCache }) {
|
|
|
250
257
|
'get_aegis_pool_state',
|
|
251
258
|
'get_aegis_vault_state',
|
|
252
259
|
'get_curve_pools',
|
|
253
|
-
'
|
|
260
|
+
'get-vaults-fyi-vaults',
|
|
254
261
|
'get_yield_xyz_opportunities',
|
|
255
262
|
],
|
|
256
263
|
orderManagementActions: ['deposit_earn_position', 'withdraw_earn_position'],
|
|
@@ -335,9 +342,9 @@ export function createProviderHints({ getNegotiatedCapabilitiesCache }) {
|
|
|
335
342
|
return {
|
|
336
343
|
provider,
|
|
337
344
|
category: 'earn',
|
|
338
|
-
canonicalReadAction: '
|
|
345
|
+
canonicalReadAction: 'get-vaults-fyi-vaults',
|
|
339
346
|
canonicalWriteAction: 'deposit_earn_position',
|
|
340
|
-
readActions: ['
|
|
347
|
+
readActions: ['get-vaults-fyi-vaults', 'get_earn_opportunities', 'get_earn_provider', 'get_earn_position'],
|
|
341
348
|
orderManagementActions: ['deposit_earn_position', 'withdraw_earn_position'],
|
|
342
349
|
laneCompatibility:
|
|
343
350
|
'Vaults.fyi writes are transaction-prep first. Thirdfy validates partner payloads, chain/user context, and allowed targets before returning or submitting prepared calls.',
|
|
@@ -387,7 +394,7 @@ export function createProviderHints({ getNegotiatedCapabilitiesCache }) {
|
|
|
387
394
|
morpho: 'get_morpho_vaults',
|
|
388
395
|
aegis: 'get_aegis_pools',
|
|
389
396
|
curve: 'get_curve_pools',
|
|
390
|
-
'vaults-fyi': '
|
|
397
|
+
'vaults-fyi': 'get-vaults-fyi-vaults',
|
|
391
398
|
'yield-xyz': 'get_yield_xyz_opportunities',
|
|
392
399
|
prediction: 'get_prediction_markets',
|
|
393
400
|
};
|