vibe-cli 0.2.3__tar.gz → 0.3.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.
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/PKG-INFO +1 -1
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/pyproject.toml +1 -1
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/vibe_cli/__init__.py +1 -1
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/vibe_cli/client.py +35 -2
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/vibe_cli/main.py +102 -0
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/vibe_cli/operations.py +47 -0
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/vibe_cli.egg-info/PKG-INFO +1 -1
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/README.md +0 -0
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/setup.cfg +0 -0
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/vibe_cli/auth.py +0 -0
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/vibe_cli/config.py +0 -0
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/vibe_cli/output.py +0 -0
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/vibe_cli.egg-info/SOURCES.txt +0 -0
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/vibe_cli.egg-info/dependency_links.txt +0 -0
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/vibe_cli.egg-info/entry_points.txt +0 -0
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/vibe_cli.egg-info/requires.txt +0 -0
- {vibe_cli-0.2.3 → vibe_cli-0.3.0}/vibe_cli.egg-info/top_level.txt +0 -0
|
@@ -136,12 +136,45 @@ class VibeClient:
|
|
|
136
136
|
body = {"name": name, "symbol": symbol, "description": description, "image_url": image_url, **kwargs}
|
|
137
137
|
return self.request_sync("POST", "/vibe-tools/bags/launch-token", body)
|
|
138
138
|
|
|
139
|
-
def bags_claim_fees(self, token_mint: str) -> dict:
|
|
140
|
-
|
|
139
|
+
def bags_claim_fees(self, token_mint: str, **kwargs) -> dict:
|
|
140
|
+
body = {"token_mint": token_mint, **kwargs}
|
|
141
|
+
return self.request_sync("POST", "/vibe-tools/bags/claim-fees", body)
|
|
141
142
|
|
|
142
143
|
def bags_positions(self) -> dict:
|
|
143
144
|
return self.request_sync("GET", "/vibe-tools/bags/positions")
|
|
144
145
|
|
|
146
|
+
# --- pump.fun ---
|
|
147
|
+
|
|
148
|
+
def pump_create_coin(self, name: str, symbol: str, description: str, image_url: str, **kwargs) -> dict:
|
|
149
|
+
body = {"name": name, "symbol": symbol, "description": description, "image_url": image_url, **kwargs}
|
|
150
|
+
return self.request_sync("POST", "/vibe-tools/pump/create-coin", body)
|
|
151
|
+
|
|
152
|
+
def pump_swap(self, input_mint: str, output_mint: str, amount: int, **kwargs) -> dict:
|
|
153
|
+
body = {"input_mint": input_mint, "output_mint": output_mint, "amount": amount, **kwargs}
|
|
154
|
+
return self.request_sync("POST", "/vibe-tools/pump/swap", body)
|
|
155
|
+
|
|
156
|
+
def pump_coin_info(self, mint: str) -> dict:
|
|
157
|
+
return self.request_sync("GET", f"/vibe-tools/pump/coin/{mint}")
|
|
158
|
+
|
|
159
|
+
def pump_claim_fees(self, mint: str, **kwargs) -> dict:
|
|
160
|
+
body = {"mint": mint, **kwargs}
|
|
161
|
+
return self.request_sync("POST", "/vibe-tools/pump/claim-fees", body)
|
|
162
|
+
|
|
163
|
+
def pump_fee_sharing(self, mint: str, shareholders: list, **kwargs) -> dict:
|
|
164
|
+
body = {"mint": mint, "shareholders": shareholders, **kwargs}
|
|
165
|
+
return self.request_sync("POST", "/vibe-tools/pump/fee-sharing", body)
|
|
166
|
+
|
|
167
|
+
def pump_positions(self) -> dict:
|
|
168
|
+
return self.request_sync("GET", "/vibe-tools/pump/positions")
|
|
169
|
+
|
|
170
|
+
def pump_accept_payment(self, token_mint: str, currency_mint: str, amount: int, **kwargs) -> dict:
|
|
171
|
+
body = {"token_mint": token_mint, "currency_mint": currency_mint, "amount": amount, **kwargs}
|
|
172
|
+
return self.request_sync("POST", "/vibe-tools/pump/accept-payment", body)
|
|
173
|
+
|
|
174
|
+
def pump_verify_payment(self, mint: str, currency_mint: str, amount: int, **kwargs) -> dict:
|
|
175
|
+
body = {"mint": mint, "currency_mint": currency_mint, "amount": amount, **kwargs}
|
|
176
|
+
return self.request_sync("POST", "/vibe-tools/pump/verify-payment", body)
|
|
177
|
+
|
|
145
178
|
# --- Token Leaderboard (public, no auth needed) ---
|
|
146
179
|
|
|
147
180
|
def tokens_list(
|
|
@@ -314,22 +314,28 @@ def bags_launch_token(
|
|
|
314
314
|
symbol: str = typer.Option(..., "--symbol", help="Token symbol"),
|
|
315
315
|
description: str = typer.Option(..., "--description", help="Token description"),
|
|
316
316
|
image_url: str = typer.Option(..., "--image-url", help="Token image URL (https)"),
|
|
317
|
+
no_auto_sign: bool = typer.Option(False, "--no-auto-sign", help="Return unsigned tx instead of auto-signing"),
|
|
317
318
|
output: str = typer.Option("table", "-o", "--output", help="Output format: table, json, raw"),
|
|
318
319
|
field: Optional[str] = typer.Option(None, "-f", "--field", help="Extract nested field"),
|
|
319
320
|
):
|
|
320
321
|
"""Launch a token on bags.fm."""
|
|
321
322
|
params: dict = {"name": name, "symbol": symbol, "description": description, "image_url": image_url}
|
|
323
|
+
if no_auto_sign:
|
|
324
|
+
params["auto_sign"] = False
|
|
322
325
|
execute_operation("POST /vibe-tools/bags/launch-token", params, output, field)
|
|
323
326
|
|
|
324
327
|
|
|
325
328
|
@app.command(name="bags-claim-fees")
|
|
326
329
|
def bags_claim_fees(
|
|
327
330
|
token_mint: str = typer.Option(..., "--token-mint", help="Token mint address"),
|
|
331
|
+
no_auto_sign: bool = typer.Option(False, "--no-auto-sign", help="Return unsigned tx instead of auto-signing"),
|
|
328
332
|
output: str = typer.Option("table", "-o", "--output", help="Output format: table, json, raw"),
|
|
329
333
|
field: Optional[str] = typer.Option(None, "-f", "--field", help="Extract nested field"),
|
|
330
334
|
):
|
|
331
335
|
"""Claim bags.fm trading fees."""
|
|
332
336
|
params: dict = {"token_mint": token_mint}
|
|
337
|
+
if no_auto_sign:
|
|
338
|
+
params["auto_sign"] = False
|
|
333
339
|
execute_operation("POST /vibe-tools/bags/claim-fees", params, output, field)
|
|
334
340
|
|
|
335
341
|
|
|
@@ -342,6 +348,102 @@ def bags_positions(
|
|
|
342
348
|
execute_operation("GET /vibe-tools/bags/positions", {}, output, field)
|
|
343
349
|
|
|
344
350
|
|
|
351
|
+
# --- pump.fun ---
|
|
352
|
+
|
|
353
|
+
@app.command(name="pump-create-coin")
|
|
354
|
+
def pump_create_coin(
|
|
355
|
+
name: str = typer.Option(..., "--name", help="Coin name"),
|
|
356
|
+
symbol: str = typer.Option(..., "--symbol", help="Coin symbol"),
|
|
357
|
+
description: str = typer.Option(..., "--description", help="Coin description"),
|
|
358
|
+
image_url: str = typer.Option(..., "--image-url", help="Coin image URL"),
|
|
359
|
+
no_auto_sign: bool = typer.Option(False, "--no-auto-sign", help="Return unsigned tx instead of auto-signing"),
|
|
360
|
+
output: str = typer.Option("table", "-o", "--output", help="Output format: table, json, raw"),
|
|
361
|
+
field: Optional[str] = typer.Option(None, "-f", "--field", help="Extract nested field"),
|
|
362
|
+
):
|
|
363
|
+
"""Create a coin on pump.fun."""
|
|
364
|
+
params: dict = {"name": name, "symbol": symbol, "description": description, "image_url": image_url}
|
|
365
|
+
if no_auto_sign:
|
|
366
|
+
params["auto_sign"] = False
|
|
367
|
+
execute_operation("POST /vibe-tools/pump/create-coin", params, output, field)
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
@app.command(name="pump-swap")
|
|
371
|
+
def pump_swap(
|
|
372
|
+
input_mint: str = typer.Option(..., "--input-mint", help="Input token mint"),
|
|
373
|
+
output_mint: str = typer.Option(..., "--output-mint", help="Output token mint"),
|
|
374
|
+
amount: int = typer.Option(..., "--amount", help="Amount in smallest units"),
|
|
375
|
+
slippage_pct: Optional[float] = typer.Option(None, "--slippage-pct", help="Slippage in percent"),
|
|
376
|
+
no_auto_sign: bool = typer.Option(False, "--no-auto-sign", help="Return unsigned tx instead of auto-signing"),
|
|
377
|
+
output: str = typer.Option("table", "-o", "--output", help="Output format: table, json, raw"),
|
|
378
|
+
field: Optional[str] = typer.Option(None, "-f", "--field", help="Extract nested field"),
|
|
379
|
+
):
|
|
380
|
+
"""Swap tokens on pump.fun."""
|
|
381
|
+
params: dict = {"input_mint": input_mint, "output_mint": output_mint, "amount": amount}
|
|
382
|
+
if slippage_pct is not None:
|
|
383
|
+
params["slippage_pct"] = slippage_pct
|
|
384
|
+
if no_auto_sign:
|
|
385
|
+
params["auto_sign"] = False
|
|
386
|
+
execute_operation("POST /vibe-tools/pump/swap", params, output, field)
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
@app.command(name="pump-coin-info")
|
|
390
|
+
def pump_coin_info(
|
|
391
|
+
mint: str = typer.Argument(..., help="Token mint address"),
|
|
392
|
+
output: str = typer.Option("table", "-o", "--output", help="Output format: table, json, raw"),
|
|
393
|
+
field: Optional[str] = typer.Option(None, "-f", "--field", help="Extract nested field"),
|
|
394
|
+
):
|
|
395
|
+
"""Get pump.fun coin info."""
|
|
396
|
+
client = VibeClient()
|
|
397
|
+
response = client.pump_coin_info(mint)
|
|
398
|
+
if "error" in response:
|
|
399
|
+
print_error(response["error"])
|
|
400
|
+
format_output(response.get("data", response), output, field)
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
@app.command(name="pump-claim-fees")
|
|
404
|
+
def pump_claim_fees(
|
|
405
|
+
mint: str = typer.Option(..., "--mint", help="Token mint address"),
|
|
406
|
+
no_auto_sign: bool = typer.Option(False, "--no-auto-sign", help="Return unsigned tx instead of auto-signing"),
|
|
407
|
+
output: str = typer.Option("table", "-o", "--output", help="Output format: table, json, raw"),
|
|
408
|
+
field: Optional[str] = typer.Option(None, "-f", "--field", help="Extract nested field"),
|
|
409
|
+
):
|
|
410
|
+
"""Claim pump.fun trading fees."""
|
|
411
|
+
params: dict = {"mint": mint}
|
|
412
|
+
if no_auto_sign:
|
|
413
|
+
params["auto_sign"] = False
|
|
414
|
+
execute_operation("POST /vibe-tools/pump/claim-fees", params, output, field)
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
@app.command(name="pump-fee-sharing")
|
|
418
|
+
def pump_fee_sharing_cmd(
|
|
419
|
+
mint: str = typer.Option(..., "--mint", help="Token mint address"),
|
|
420
|
+
shareholders: str = typer.Option(..., "--shareholders", help="JSON array of shareholders"),
|
|
421
|
+
no_auto_sign: bool = typer.Option(False, "--no-auto-sign", help="Return unsigned tx instead of auto-signing"),
|
|
422
|
+
output: str = typer.Option("table", "-o", "--output", help="Output format: table, json, raw"),
|
|
423
|
+
field: Optional[str] = typer.Option(None, "-f", "--field", help="Extract nested field"),
|
|
424
|
+
):
|
|
425
|
+
"""Configure pump.fun fee sharing."""
|
|
426
|
+
import json
|
|
427
|
+
try:
|
|
428
|
+
shareholders_list = json.loads(shareholders)
|
|
429
|
+
except json.JSONDecodeError:
|
|
430
|
+
console.print("[red]Invalid JSON for shareholders[/red]")
|
|
431
|
+
raise typer.Exit(1)
|
|
432
|
+
params: dict = {"mint": mint, "shareholders": shareholders_list}
|
|
433
|
+
if no_auto_sign:
|
|
434
|
+
params["auto_sign"] = False
|
|
435
|
+
execute_operation("POST /vibe-tools/pump/fee-sharing", params, output, field)
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
@app.command(name="pump-positions")
|
|
439
|
+
def pump_positions(
|
|
440
|
+
output: str = typer.Option("table", "-o", "--output", help="Output format: table, json, raw"),
|
|
441
|
+
field: Optional[str] = typer.Option(None, "-f", "--field", help="Extract nested field"),
|
|
442
|
+
):
|
|
443
|
+
"""View pump.fun positions."""
|
|
444
|
+
execute_operation("GET /vibe-tools/pump/positions", {}, output, field)
|
|
445
|
+
|
|
446
|
+
|
|
345
447
|
# ---------------------------------------------------------------------------
|
|
346
448
|
# Token Leaderboard (public — no auth needed)
|
|
347
449
|
# ---------------------------------------------------------------------------
|
|
@@ -25,6 +25,13 @@ _ROUTE_TO_METHOD = {
|
|
|
25
25
|
"POST /vibe-tools/bags/launch-token": "bags_launch_token",
|
|
26
26
|
"POST /vibe-tools/bags/claim-fees": "bags_claim_fees",
|
|
27
27
|
"GET /vibe-tools/bags/positions": "bags_positions",
|
|
28
|
+
"POST /vibe-tools/pump/create-coin": "pump_create_coin",
|
|
29
|
+
"POST /vibe-tools/pump/swap": "pump_swap",
|
|
30
|
+
"POST /vibe-tools/pump/claim-fees": "pump_claim_fees",
|
|
31
|
+
"POST /vibe-tools/pump/fee-sharing": "pump_fee_sharing",
|
|
32
|
+
"GET /vibe-tools/pump/positions": "pump_positions",
|
|
33
|
+
"POST /vibe-tools/pump/accept-payment": "pump_accept_payment",
|
|
34
|
+
"POST /vibe-tools/pump/verify-payment": "pump_verify_payment",
|
|
28
35
|
}
|
|
29
36
|
|
|
30
37
|
# Parameter definitions for each route (maps CLI flag → request body field)
|
|
@@ -81,11 +88,51 @@ _ROUTE_PARAMS = {
|
|
|
81
88
|
("--symbol", "symbol", str, "Token symbol"),
|
|
82
89
|
("--description", "description", str, "Token description"),
|
|
83
90
|
("--image-url", "image_url", str, "Token image URL"),
|
|
91
|
+
("--no-auto-sign", "auto_sign", Optional[bool], "Return unsigned tx instead of auto-signing"),
|
|
84
92
|
],
|
|
85
93
|
"POST /vibe-tools/bags/claim-fees": [
|
|
86
94
|
("--token-mint", "token_mint", str, "Token mint address"),
|
|
95
|
+
("--no-auto-sign", "auto_sign", Optional[bool], "Return unsigned tx instead of auto-signing"),
|
|
87
96
|
],
|
|
88
97
|
"GET /vibe-tools/bags/positions": [],
|
|
98
|
+
"POST /vibe-tools/pump/create-coin": [
|
|
99
|
+
("--name", "name", str, "Coin name"),
|
|
100
|
+
("--symbol", "symbol", str, "Coin symbol"),
|
|
101
|
+
("--description", "description", str, "Coin description"),
|
|
102
|
+
("--image-url", "image_url", str, "Coin image URL"),
|
|
103
|
+
("--initial-buy-lamports", "initial_buy_lamports", Optional[int], "Initial buy in lamports (default 100000000)"),
|
|
104
|
+
("--no-auto-sign", "auto_sign", Optional[bool], "Return unsigned tx instead of auto-signing"),
|
|
105
|
+
],
|
|
106
|
+
"POST /vibe-tools/pump/swap": [
|
|
107
|
+
("--input-mint", "input_mint", str, "Input token mint"),
|
|
108
|
+
("--output-mint", "output_mint", str, "Output token mint"),
|
|
109
|
+
("--amount", "amount", int, "Amount in smallest units"),
|
|
110
|
+
("--slippage-pct", "slippage_pct", Optional[float], "Slippage in percent (not bps!)"),
|
|
111
|
+
("--no-auto-sign", "auto_sign", Optional[bool], "Return unsigned tx instead of auto-signing"),
|
|
112
|
+
],
|
|
113
|
+
"POST /vibe-tools/pump/claim-fees": [
|
|
114
|
+
("--mint", "mint", str, "Token mint address"),
|
|
115
|
+
("--no-auto-sign", "auto_sign", Optional[bool], "Return unsigned tx instead of auto-signing"),
|
|
116
|
+
],
|
|
117
|
+
"POST /vibe-tools/pump/fee-sharing": [
|
|
118
|
+
("--mint", "mint", str, "Token mint address"),
|
|
119
|
+
("--shareholders", "shareholders", str, "JSON array of shareholders"),
|
|
120
|
+
("--no-auto-sign", "auto_sign", Optional[bool], "Return unsigned tx instead of auto-signing"),
|
|
121
|
+
],
|
|
122
|
+
"GET /vibe-tools/pump/positions": [],
|
|
123
|
+
"POST /vibe-tools/pump/accept-payment": [
|
|
124
|
+
("--token-mint", "token_mint", str, "Agent token mint"),
|
|
125
|
+
("--currency-mint", "currency_mint", str, "Currency mint (USDC or wSOL)"),
|
|
126
|
+
("--amount", "amount", int, "Payment amount in smallest units"),
|
|
127
|
+
("--memo", "memo", Optional[str], "Payment memo"),
|
|
128
|
+
("--no-auto-sign", "auto_sign", Optional[bool], "Return unsigned tx instead of auto-signing"),
|
|
129
|
+
],
|
|
130
|
+
"POST /vibe-tools/pump/verify-payment": [
|
|
131
|
+
("--mint", "mint", str, "Agent token mint"),
|
|
132
|
+
("--currency-mint", "currency_mint", str, "Currency mint"),
|
|
133
|
+
("--amount", "amount", int, "Payment amount in smallest units"),
|
|
134
|
+
("--memo", "memo", Optional[str], "Payment memo"),
|
|
135
|
+
],
|
|
89
136
|
}
|
|
90
137
|
|
|
91
138
|
|
|
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
|