fere-sdk 0.5.0.dev45__tar.gz → 0.5.0.dev49__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.
@@ -15,6 +15,14 @@ __pycache__
15
15
  # Bruno gateway collection (GATEWAY_AGENT_ID / GATEWAY_PRIVATE_KEY_B64)
16
16
  bruno_specs/gateway-service/.env
17
17
 
18
+ # Vultr self-hosted provision (API key + SSH ids)
19
+ devops/self-hosted/.env
20
+
21
+ # Box env plaintext (Secret Manager is the remote store). age.key leftover.
22
+ devops/self-hosted/secrets/age.key
23
+ devops/self-hosted/secrets/plaintext/
24
+ devops/self-hosted/inventory/plaintext/
25
+
18
26
  # Gateway k6 load tests (secrets + local output from make setup)
19
27
  devops/loadtests/k6/.env.local
20
28
  devops/loadtests/k6/users.csv
@@ -47,12 +55,25 @@ dev/logs/*
47
55
  # Poetry local venv preference (in-project .venv) — dev-only, per-service
48
56
  **/poetry.toml
49
57
 
58
+ # Ralph Loop plugin runtime state (scratchpad + done flag)
59
+ .cursor/ralph/
60
+
50
61
  # Cursor SEO skill — regenerated report JSON (not source)
51
62
  .cursor/skills/seo-agent/artifacts/
52
63
  .claude/skills/seo-agent/artifacts/
53
64
  .cursor/skills/docker-images-cve-scan/artifacts/
54
65
  docs/plans/artifacts/
55
66
 
67
+ # Impeccable local consent / detector cache (shared hook-off config is committed)
68
+ .impeccable/config.local.json
69
+ .impeccable/*.cache
70
+ .impeccable/cache/
71
+ # Session output: critiques, browser evidence and mock renders. Matches the
72
+ # rule above — shared config is tracked, per-run artifacts are not.
73
+ .impeccable/critique/
74
+ .impeccable/critique-evidence/
75
+ webapp/.impeccable/
76
+
56
77
  # Skills installed locally by the skills package manager (see skills-lock.json)
57
78
  .claude/skills/stripe-best-practices
58
79
  .claude/skills/stripe-projects
@@ -63,6 +84,11 @@ docs/plans/artifacts/
63
84
  .agentmemory/data/
64
85
  .devcontainer/agentmemory-mcp/node_modules/
65
86
 
87
+ # Local GLASS mock / design reference (not in git). Tokens: webapp/DESIGN.md + app/globals.css
88
+ Fere Glass Design System (Space Grotesk).html
89
+ fere-onboarding-zero-states/
90
+ fereonboardingzerostates.zip
91
+
66
92
  # Local GEO upstream reference (optional clone; not part of the product tree)
67
93
  geo-seo/
68
94
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: fere-sdk
3
- Version: 0.5.0.dev45
3
+ Version: 0.5.0.dev49
4
4
  Summary: Python SDK for the FereAI Gateway API
5
5
  Author-email: Fere AI <hello@fereai.xyz>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fere-sdk"
3
- version = "0.5.0.dev45"
3
+ version = "0.5.0.dev49"
4
4
  description = "Python SDK for the FereAI Gateway API"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -36,8 +36,7 @@ from .models import (
36
36
  TokenToCheck,
37
37
  WithdrawRequest,
38
38
  )
39
-
40
- DEFAULT_TIMEOUT = 100
39
+ from .timeouts import DEFAULT_TIMEOUT
41
40
 
42
41
 
43
42
  class ToolsClient:
@@ -35,6 +35,7 @@ from .models import (
35
35
  TokenToCheck,
36
36
  WithdrawRequest,
37
37
  )
38
+ from .timeouts import DEFAULT_TIMEOUT
38
39
 
39
40
  logger = logging.getLogger(__name__)
40
41
 
@@ -452,7 +453,7 @@ class FereAPI:
452
453
  self,
453
454
  force_rerun: bool = False,
454
455
  wait: bool = False,
455
- timeout: int = 100,
456
+ timeout: int = DEFAULT_TIMEOUT,
456
457
  ) -> TaskResponse | dict:
457
458
  """POST /v1/perp/setup"""
458
459
  return await self._perp_task(
@@ -463,7 +464,7 @@ class FereAPI:
463
464
  self,
464
465
  request: PerpOpenRequest,
465
466
  wait: bool = False,
466
- timeout: int = 100,
467
+ timeout: int = DEFAULT_TIMEOUT,
467
468
  ) -> TaskResponse | dict:
468
469
  """POST /v1/perp/open"""
469
470
  return await self._perp_task(
@@ -474,7 +475,7 @@ class FereAPI:
474
475
  self,
475
476
  request: PerpCloseRequest,
476
477
  wait: bool = False,
477
- timeout: int = 100,
478
+ timeout: int = DEFAULT_TIMEOUT,
478
479
  ) -> TaskResponse | dict:
479
480
  """POST /v1/perp/close"""
480
481
  return await self._perp_task(
@@ -485,7 +486,7 @@ class FereAPI:
485
486
  self,
486
487
  request: PerpCancelRequest,
487
488
  wait: bool = False,
488
- timeout: int = 100,
489
+ timeout: int = DEFAULT_TIMEOUT,
489
490
  ) -> TaskResponse | dict:
490
491
  """POST /v1/perp/orders/cancel"""
491
492
  return await self._perp_task(
@@ -496,7 +497,7 @@ class FereAPI:
496
497
  self,
497
498
  request: PerpFundRequest,
498
499
  wait: bool = False,
499
- timeout: int = 100,
500
+ timeout: int = DEFAULT_TIMEOUT,
500
501
  ) -> TaskResponse | dict:
501
502
  """POST /v1/perp/fund"""
502
503
  return await self._perp_task(
@@ -507,7 +508,7 @@ class FereAPI:
507
508
  self,
508
509
  request: PerpWithdrawRequest,
509
510
  wait: bool = False,
510
- timeout: int = 100,
511
+ timeout: int = DEFAULT_TIMEOUT,
511
512
  ) -> TaskResponse | dict:
512
513
  """POST /v1/perp/withdraw"""
513
514
  return await self._perp_task(
@@ -533,7 +534,7 @@ class FereAPI:
533
534
  self,
534
535
  request: SpotBuyRequest,
535
536
  wait: bool = False,
536
- timeout: int = 100,
537
+ timeout: int = DEFAULT_TIMEOUT,
537
538
  ) -> TaskResponse | dict:
538
539
  """POST /v1/spot/buy"""
539
540
  return await self._perp_task(
@@ -544,7 +545,7 @@ class FereAPI:
544
545
  self,
545
546
  request: SpotSellRequest,
546
547
  wait: bool = False,
547
- timeout: int = 100,
548
+ timeout: int = DEFAULT_TIMEOUT,
548
549
  ) -> TaskResponse | dict:
549
550
  """POST /v1/spot/sell"""
550
551
  return await self._perp_task(
@@ -555,7 +556,7 @@ class FereAPI:
555
556
  self,
556
557
  request: SpotTpSlRequest,
557
558
  wait: bool = False,
558
- timeout: int = 100,
559
+ timeout: int = DEFAULT_TIMEOUT,
559
560
  ) -> TaskResponse | dict:
560
561
  """POST /v1/spot/tp-sl"""
561
562
  return await self._perp_task(
@@ -566,7 +567,7 @@ class FereAPI:
566
567
  self,
567
568
  request: SpotCancelRequest,
568
569
  wait: bool = False,
569
- timeout: int = 100,
570
+ timeout: int = DEFAULT_TIMEOUT,
570
571
  ) -> TaskResponse | dict:
571
572
  """POST /v1/spot/orders/cancel"""
572
573
  return await self._perp_task(
@@ -0,0 +1,7 @@
1
+ """Wait=true timeout defaults.
2
+
3
+ Must stay at or under the gateway ``timeout`` query max (90). A higher
4
+ value is rejected with 422 before the request body is parsed.
5
+ """
6
+
7
+ DEFAULT_TIMEOUT = 90
File without changes