fere-cli 0.4.0.dev49__tar.gz → 0.5.0.dev53__tar.gz
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.
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/.gitignore +9 -1
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/PKG-INFO +2 -2
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/pyproject.toml +2 -2
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/commands/perp.py +30 -5
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/README.md +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/install.sh +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/__init__.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/async_util.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/banner.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/commands/__init__.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/commands/auth.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/commands/chat.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/commands/earn.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/commands/hooks.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/commands/limit_order.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/commands/portfolio.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/commands/spot_hl.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/commands/swap.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/commands/utility.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/config.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/main.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/output.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/src/fere_cli/update.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/tests/test_install_sh.py +0 -0
- {fere_cli-0.4.0.dev49 → fere_cli-0.5.0.dev53}/tests/test_update.py +0 -0
|
@@ -58,6 +58,11 @@ dev/logs/*
|
|
|
58
58
|
# Ralph Loop plugin runtime state (scratchpad + done flag)
|
|
59
59
|
.cursor/ralph/
|
|
60
60
|
|
|
61
|
+
# Cursor Plan Mode + canvases (workspace copies; bind-mounted / synced
|
|
62
|
+
# over Cursor's default paths so they survive Devcontainer rebuilds)
|
|
63
|
+
.cursor/plans/
|
|
64
|
+
.cursor/canvases/
|
|
65
|
+
|
|
61
66
|
# Cursor SEO skill — regenerated report JSON (not source)
|
|
62
67
|
.cursor/skills/seo-agent/artifacts/
|
|
63
68
|
.claude/skills/seo-agent/artifacts/
|
|
@@ -84,7 +89,7 @@ webapp/.impeccable/
|
|
|
84
89
|
.agentmemory/data/
|
|
85
90
|
.devcontainer/agentmemory-mcp/node_modules/
|
|
86
91
|
|
|
87
|
-
# Local GLASS mock / design reference (not in git). Tokens: webapp/DESIGN.md + app/
|
|
92
|
+
# Local GLASS mock / design reference (not in git). Tokens: webapp/DESIGN.md + app/css/shared.css
|
|
88
93
|
Fere Glass Design System (Space Grotesk).html
|
|
89
94
|
fere-onboarding-zero-states/
|
|
90
95
|
fereonboardingzerostates.zip
|
|
@@ -92,6 +97,9 @@ fereonboardingzerostates.zip
|
|
|
92
97
|
# Local GEO upstream reference (optional clone; not part of the product tree)
|
|
93
98
|
geo-seo/
|
|
94
99
|
|
|
100
|
+
# Playwright / local test output (repo root — webapp has its own ignores)
|
|
101
|
+
test-results/
|
|
102
|
+
|
|
95
103
|
# Eval output
|
|
96
104
|
compare_results.json
|
|
97
105
|
.secrets
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: fere-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0.dev53
|
|
4
4
|
Summary: Terminal CLI for FereAI crypto trading and research
|
|
5
5
|
Author-email: Fere AI <hello@fereai.xyz>
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Requires-Python: >=3.10
|
|
8
8
|
Requires-Dist: click>=8.1
|
|
9
|
-
Requires-Dist: fere-sdk>=0.
|
|
9
|
+
Requires-Dist: fere-sdk>=0.5.0.dev53
|
|
10
10
|
Requires-Dist: httpx>=0.27
|
|
11
11
|
Requires-Dist: rich>=13.0
|
|
12
12
|
Provides-Extra: dev
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "fere-cli"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.5.0.dev53"
|
|
4
4
|
description = "Terminal CLI for FereAI crypto trading and research"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
7
7
|
license = "MIT"
|
|
8
8
|
authors = [{ name = "Fere AI", email = "hello@fereai.xyz" }]
|
|
9
9
|
dependencies = [
|
|
10
|
-
"fere-sdk>=0.
|
|
10
|
+
"fere-sdk>=0.5.0.dev53",
|
|
11
11
|
"httpx>=0.27",
|
|
12
12
|
"click>=8.1",
|
|
13
13
|
"rich>=13.0",
|
|
@@ -312,15 +312,23 @@ async def fund(
|
|
|
312
312
|
)
|
|
313
313
|
@click.option(
|
|
314
314
|
"--destination-chain-id",
|
|
315
|
-
|
|
315
|
+
default=None,
|
|
316
316
|
type=int,
|
|
317
|
-
help="Destination chain id.",
|
|
317
|
+
help="Destination chain id (lands in the agent's own wallet).",
|
|
318
318
|
)
|
|
319
319
|
@click.option(
|
|
320
320
|
"--destination-token",
|
|
321
321
|
default=None,
|
|
322
322
|
help="ERC-20/mint; omit for native token.",
|
|
323
323
|
)
|
|
324
|
+
@click.option(
|
|
325
|
+
"--to-address",
|
|
326
|
+
default=None,
|
|
327
|
+
help=(
|
|
328
|
+
"Outside EVM address; receives USDC on Arbitrum directly "
|
|
329
|
+
"(Hyperliquid's $1 fee deducted)."
|
|
330
|
+
),
|
|
331
|
+
)
|
|
324
332
|
@click.option(
|
|
325
333
|
"--timeout",
|
|
326
334
|
default=DEFAULT_TIMEOUT,
|
|
@@ -331,11 +339,27 @@ async def fund(
|
|
|
331
339
|
@click.pass_context
|
|
332
340
|
@async_command
|
|
333
341
|
async def withdraw(
|
|
334
|
-
ctx,
|
|
342
|
+
ctx,
|
|
343
|
+
amount_usd,
|
|
344
|
+
destination_chain_id,
|
|
345
|
+
destination_token,
|
|
346
|
+
to_address,
|
|
347
|
+
timeout,
|
|
348
|
+
yes,
|
|
335
349
|
):
|
|
336
|
-
"""Withdraw perp collateral to a destination chain/token."""
|
|
350
|
+
"""Withdraw perp collateral to an address or a destination chain/token."""
|
|
351
|
+
if to_address is None and destination_chain_id is None:
|
|
352
|
+
raise click.UsageError("Pass --to-address or --destination-chain-id.")
|
|
337
353
|
if not yes and is_tty():
|
|
338
|
-
|
|
354
|
+
if to_address:
|
|
355
|
+
click.echo(
|
|
356
|
+
f"Withdraw {amount_usd} USD as USDC on Arbitrum to "
|
|
357
|
+
f"{to_address} (Hyperliquid's $1 fee deducted)"
|
|
358
|
+
)
|
|
359
|
+
else:
|
|
360
|
+
click.echo(
|
|
361
|
+
f"Withdraw {amount_usd} USD to chain {destination_chain_id}"
|
|
362
|
+
)
|
|
339
363
|
if not click.confirm("Proceed?"):
|
|
340
364
|
raise SystemExit(0)
|
|
341
365
|
try:
|
|
@@ -345,6 +369,7 @@ async def withdraw(
|
|
|
345
369
|
amount_usd=amount_usd,
|
|
346
370
|
destination_chain_id=destination_chain_id,
|
|
347
371
|
destination_token=destination_token,
|
|
372
|
+
to_address=to_address,
|
|
348
373
|
timeout=timeout,
|
|
349
374
|
)
|
|
350
375
|
await client.close()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|