fere-cli 0.4.0.dev49__tar.gz → 0.5.0__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.
Files changed (25) hide show
  1. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/.gitignore +9 -1
  2. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/PKG-INFO +2 -2
  3. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/pyproject.toml +2 -2
  4. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/commands/perp.py +30 -5
  5. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/README.md +0 -0
  6. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/install.sh +0 -0
  7. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/__init__.py +0 -0
  8. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/async_util.py +0 -0
  9. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/banner.py +0 -0
  10. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/commands/__init__.py +0 -0
  11. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/commands/auth.py +0 -0
  12. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/commands/chat.py +0 -0
  13. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/commands/earn.py +0 -0
  14. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/commands/hooks.py +0 -0
  15. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/commands/limit_order.py +0 -0
  16. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/commands/portfolio.py +0 -0
  17. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/commands/spot_hl.py +0 -0
  18. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/commands/swap.py +0 -0
  19. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/commands/utility.py +0 -0
  20. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/config.py +0 -0
  21. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/main.py +0 -0
  22. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/output.py +0 -0
  23. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/src/fere_cli/update.py +0 -0
  24. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/tests/test_install_sh.py +0 -0
  25. {fere_cli-0.4.0.dev49 → fere_cli-0.5.0}/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/globals.css
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.4.0.dev49
3
+ Version: 0.5.0
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.4.0.dev49
9
+ Requires-Dist: fere-sdk>=0.7.0
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.4.0.dev49"
3
+ version = "0.5.0"
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.4.0.dev49",
10
+ "fere-sdk>=0.7.0",
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
- required=True,
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, amount_usd, destination_chain_id, destination_token, timeout, yes
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
- click.echo(f"Withdraw {amount_usd} USD to chain {destination_chain_id}")
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