fere-cli 0.4.0.dev39__tar.gz → 0.4.0.dev43__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.dev39 → fere_cli-0.4.0.dev43}/.gitignore +6 -0
  2. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/PKG-INFO +2 -2
  3. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/pyproject.toml +2 -2
  4. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/commands/earn.py +3 -5
  5. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/commands/limit_order.py +1 -1
  6. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/commands/perp.py +6 -6
  7. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/commands/spot_hl.py +4 -4
  8. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/README.md +0 -0
  9. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/install.sh +0 -0
  10. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/__init__.py +0 -0
  11. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/async_util.py +0 -0
  12. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/banner.py +0 -0
  13. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/commands/__init__.py +0 -0
  14. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/commands/auth.py +0 -0
  15. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/commands/chat.py +0 -0
  16. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/commands/hooks.py +0 -0
  17. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/commands/portfolio.py +0 -0
  18. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/commands/swap.py +0 -0
  19. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/commands/utility.py +0 -0
  20. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/config.py +0 -0
  21. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/main.py +0 -0
  22. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/output.py +0 -0
  23. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/src/fere_cli/update.py +0 -0
  24. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/tests/test_install_sh.py +0 -0
  25. {fere_cli-0.4.0.dev39 → fere_cli-0.4.0.dev43}/tests/test_update.py +0 -0
@@ -15,6 +15,11 @@ __pycache__
15
15
  # Bruno gateway collection (GATEWAY_AGENT_ID / GATEWAY_PRIVATE_KEY_B64)
16
16
  bruno_specs/gateway-service/.env
17
17
 
18
+ # Gateway k6 load tests (secrets + local output from make setup)
19
+ devops/loadtests/k6/.env.local
20
+ devops/loadtests/k6/users.csv
21
+ devops/loadtests/k6/results/
22
+
18
23
  # Git worktrees
19
24
  .worktrees/
20
25
 
@@ -44,6 +49,7 @@ dev/logs/*
44
49
 
45
50
  # Cursor SEO skill — regenerated report JSON (not source)
46
51
  .cursor/skills/seo-agent/artifacts/
52
+ .claude/skills/seo-agent/artifacts/
47
53
  .cursor/skills/docker-images-cve-scan/artifacts/
48
54
  docs/plans/artifacts/
49
55
 
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fere-cli
3
- Version: 0.4.0.dev39
3
+ Version: 0.4.0.dev43
4
4
  Summary: Terminal CLI for FereAI crypto trading and research
5
5
  Author-email: Fere AI <info@fere.ai>
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.dev39
9
+ Requires-Dist: fere-sdk>=0.4.0.dev43
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.dev39"
3
+ version = "0.4.0.dev43"
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 = "info@fere.ai" }]
9
9
  dependencies = [
10
- "fere-sdk>=0.4.0.dev39",
10
+ "fere-sdk>=0.4.0.dev43",
11
11
  "httpx>=0.27",
12
12
  "click>=8.1",
13
13
  "rich>=13.0",
@@ -48,7 +48,7 @@ async def info(ctx):
48
48
  help="Existing position ID to add to.",
49
49
  )
50
50
  @click.option(
51
- "--timeout", default=120, type=int, help="Wait timeout (seconds)."
51
+ "--timeout", default=100, type=int, help="Wait timeout (seconds)."
52
52
  )
53
53
  @click.option("-y", "--yes", is_flag=True, help="Skip confirmation.")
54
54
  @click.pass_context
@@ -92,7 +92,7 @@ async def deposit(ctx, amount, position_id, timeout, yes):
92
92
  help="USDC amount to withdraw.",
93
93
  )
94
94
  @click.option(
95
- "--timeout", default=120, type=int, help="Wait timeout (seconds)."
95
+ "--timeout", default=100, type=int, help="Wait timeout (seconds)."
96
96
  )
97
97
  @click.option("-y", "--yes", is_flag=True, help="Skip confirmation.")
98
98
  @click.pass_context
@@ -100,9 +100,7 @@ async def deposit(ctx, amount, position_id, timeout, yes):
100
100
  async def withdraw(ctx, position_id, amount, timeout, yes):
101
101
  """Withdraw USDC from a yield position."""
102
102
  if not yes and is_tty():
103
- click.echo(
104
- f"Withdraw {amount} USDC from position {position_id}"
105
- )
103
+ click.echo(f"Withdraw {amount} USDC from position {position_id}")
106
104
  if not click.confirm("Proceed?"):
107
105
  raise SystemExit(0)
108
106
 
@@ -57,7 +57,7 @@ def limit_order():
57
57
  )
58
58
  @click.option("--slippage-bps", default=50, type=int, help="Slippage (bps).")
59
59
  @click.option(
60
- "--timeout", default=120, type=int, help="Wait timeout (seconds)."
60
+ "--timeout", default=100, type=int, help="Wait timeout (seconds)."
61
61
  )
62
62
  @click.option("-y", "--yes", is_flag=True, help="Skip confirmation.")
63
63
  @click.pass_context
@@ -59,7 +59,7 @@ async def status(ctx):
59
59
  @perp.command()
60
60
  @click.option("--force", is_flag=True, help="Re-run setup even if complete.")
61
61
  @click.option(
62
- "--timeout", default=120, type=int, help="Wait timeout (seconds)."
62
+ "--timeout", default=100, type=int, help="Wait timeout (seconds)."
63
63
  )
64
64
  @click.pass_context
65
65
  @async_command
@@ -115,7 +115,7 @@ async def orders(ctx):
115
115
  @click.option("--tp-price", default=None, type=float, help="Take-profit.")
116
116
  @click.option("--sl-price", default=None, type=float, help="Stop-loss.")
117
117
  @click.option(
118
- "--timeout", default=120, type=int, help="Wait timeout (seconds)."
118
+ "--timeout", default=100, type=int, help="Wait timeout (seconds)."
119
119
  )
120
120
  @click.option("-y", "--yes", is_flag=True, help="Skip confirmation.")
121
121
  @click.pass_context
@@ -173,7 +173,7 @@ async def open(
173
173
  )
174
174
  @click.option("--slippage-pct", default=0.5, type=float)
175
175
  @click.option(
176
- "--timeout", default=120, type=int, help="Wait timeout (seconds)."
176
+ "--timeout", default=100, type=int, help="Wait timeout (seconds)."
177
177
  )
178
178
  @click.option("-y", "--yes", is_flag=True, help="Skip confirmation.")
179
179
  @click.pass_context
@@ -209,7 +209,7 @@ async def close(ctx, asset, size, slippage_pct, timeout, yes):
209
209
  "--order-id", required=True, type=int, help="Venue order id (oid)."
210
210
  )
211
211
  @click.option(
212
- "--timeout", default=120, type=int, help="Wait timeout (seconds)."
212
+ "--timeout", default=100, type=int, help="Wait timeout (seconds)."
213
213
  )
214
214
  @click.pass_context
215
215
  @async_command
@@ -252,7 +252,7 @@ async def cancel(ctx, asset, order_id, timeout):
252
252
  help="USD amount the user entered.",
253
253
  )
254
254
  @click.option(
255
- "--timeout", default=120, type=int, help="Wait timeout (seconds)."
255
+ "--timeout", default=100, type=int, help="Wait timeout (seconds)."
256
256
  )
257
257
  @click.option("-y", "--yes", is_flag=True, help="Skip confirmation.")
258
258
  @click.pass_context
@@ -306,7 +306,7 @@ async def fund(
306
306
  help="ERC-20/mint; omit for native token.",
307
307
  )
308
308
  @click.option(
309
- "--timeout", default=120, type=int, help="Wait timeout (seconds)."
309
+ "--timeout", default=100, type=int, help="Wait timeout (seconds)."
310
310
  )
311
311
  @click.option("-y", "--yes", is_flag=True, help="Skip confirmation.")
312
312
  @click.pass_context
@@ -69,7 +69,7 @@ async def orders(ctx):
69
69
  @click.option("--tp-price", default=None, type=float, help="Take-profit.")
70
70
  @click.option("--sl-price", default=None, type=float, help="Stop-loss.")
71
71
  @click.option(
72
- "--timeout", default=120, type=int, help="Wait timeout (seconds)."
72
+ "--timeout", default=100, type=int, help="Wait timeout (seconds)."
73
73
  )
74
74
  @click.option("-y", "--yes", is_flag=True, help="Skip confirmation.")
75
75
  @click.pass_context
@@ -129,7 +129,7 @@ async def buy(
129
129
  @click.option("--limit-price", default=None, type=float)
130
130
  @click.option("--slippage-pct", default=0.5, type=float)
131
131
  @click.option(
132
- "--timeout", default=120, type=int, help="Wait timeout (seconds)."
132
+ "--timeout", default=100, type=int, help="Wait timeout (seconds)."
133
133
  )
134
134
  @click.option("-y", "--yes", is_flag=True, help="Skip confirmation.")
135
135
  @click.pass_context
@@ -174,7 +174,7 @@ async def sell(
174
174
  help="Base amount; omit for the full held balance.",
175
175
  )
176
176
  @click.option(
177
- "--timeout", default=120, type=int, help="Wait timeout (seconds)."
177
+ "--timeout", default=100, type=int, help="Wait timeout (seconds)."
178
178
  )
179
179
  @click.pass_context
180
180
  @async_command
@@ -208,7 +208,7 @@ async def tp_sl(ctx, asset, tp_price, sl_price, size, timeout):
208
208
  "--order-id", required=True, type=int, help="Venue order id (oid)."
209
209
  )
210
210
  @click.option(
211
- "--timeout", default=120, type=int, help="Wait timeout (seconds)."
211
+ "--timeout", default=100, type=int, help="Wait timeout (seconds)."
212
212
  )
213
213
  @click.pass_context
214
214
  @async_command
File without changes