agentlaunch-cli 1.0.0 → 1.0.1
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.
- package/README.md +89 -3
- package/dist/commands/comments.d.ts +15 -0
- package/dist/commands/comments.d.ts.map +1 -0
- package/dist/commands/comments.js +128 -0
- package/dist/commands/comments.js.map +1 -0
- package/dist/commands/holders.d.ts +13 -0
- package/dist/commands/holders.d.ts.map +1 -0
- package/dist/commands/holders.js +94 -0
- package/dist/commands/holders.js.map +1 -0
- package/dist/commands/tokenize.d.ts.map +1 -1
- package/dist/commands/tokenize.js +59 -3
- package/dist/commands/tokenize.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# agentlaunch-cli
|
|
2
2
|
|
|
3
3
|
Command-line interface for [AgentLaunch](https://agent-launch.ai) — scaffold, deploy, and tokenize AI agents from your terminal or CI pipeline.
|
|
4
4
|
|
|
@@ -6,10 +6,10 @@ Command-line interface for [AgentLaunch](https://agent-launch.ai) — scaffold,
|
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
# Global install (recommended for interactive use)
|
|
9
|
-
npm install -g
|
|
9
|
+
npm install -g agentlaunch-cli
|
|
10
10
|
|
|
11
11
|
# Or run without installing
|
|
12
|
-
npx
|
|
12
|
+
npx agentlaunch-cli <command>
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
Requires Node.js >= 18.
|
|
@@ -167,10 +167,96 @@ agentlaunch tokenize \
|
|
|
167
167
|
| `--description <desc>` | Token description | - |
|
|
168
168
|
| `--image <url>` | Token logo URL | - |
|
|
169
169
|
| `--chain <chainId>` | 97 = BSC Testnet, 56 = BSC Mainnet | 97 |
|
|
170
|
+
| `--max-wallet <0\|1\|2>` | Max wallet size: 0=unlimited, 1=0.5% (5M tokens), 2=1% (10M tokens) | 0 |
|
|
171
|
+
| `--initial-buy <amount>` | FET to spend buying tokens immediately after deploy (0–1000 FET) | 0 |
|
|
172
|
+
| `--category <id>` | Category ID for the token | 1 |
|
|
170
173
|
| `--json` | Output only JSON | false |
|
|
171
174
|
|
|
172
175
|
The command returns a **handoff link** (e.g. `https://agent-launch.ai/deploy/123`). Share this with a human who connects their wallet and pays the deployment fee.
|
|
173
176
|
|
|
177
|
+
**Max wallet options:**
|
|
178
|
+
|
|
179
|
+
| Value | Limit | Token cap |
|
|
180
|
+
|-------|-------|-----------|
|
|
181
|
+
| `0` | Unlimited | No cap |
|
|
182
|
+
| `1` | 0.5% of supply | 5,000,000 tokens |
|
|
183
|
+
| `2` | 1% of supply | 10,000,000 tokens |
|
|
184
|
+
|
|
185
|
+
**Initial buy:** Specify a FET amount (e.g. `--initial-buy 100`) to have the deploying wallet purchase tokens immediately when the contract is deployed. This seeds early liquidity and sets an initial price. Maximum 1,000 FET.
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
### `agentlaunch comments <address>`
|
|
190
|
+
|
|
191
|
+
List or post comments on a token.
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# List comments for a token
|
|
195
|
+
agentlaunch comments 0xAbCdEf...
|
|
196
|
+
|
|
197
|
+
# Post a comment (requires API key configured)
|
|
198
|
+
agentlaunch comments 0xAbCdEf... --post "Great agent, just bought some!"
|
|
199
|
+
|
|
200
|
+
# JSON output for machine parsing
|
|
201
|
+
agentlaunch comments 0xAbCdEf... --json
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**Options:**
|
|
205
|
+
|
|
206
|
+
| Flag | Description | Default |
|
|
207
|
+
|------|-------------|---------|
|
|
208
|
+
| `--post <message>` | Post a new comment (max 500 chars). Requires API key. | - |
|
|
209
|
+
| `--json` | Output only JSON | false |
|
|
210
|
+
|
|
211
|
+
**Example table output (listing):**
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
Comments for 0xAbCdEf... (3 comments)
|
|
215
|
+
|
|
216
|
+
──────────────────────────────────────────────────────────────────
|
|
217
|
+
Author Message Posted
|
|
218
|
+
──────────────────────────────────────────────────────────────────
|
|
219
|
+
0x1234...abcd Great project! Just bought 10k tokens. 2 hours ago
|
|
220
|
+
0x5678...ef01 When DEX listing? 5 hours ago
|
|
221
|
+
0x9abc...2345 Solid agent, bullish. 1 day ago
|
|
222
|
+
──────────────────────────────────────────────────────────────────
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
### `agentlaunch holders <address>`
|
|
228
|
+
|
|
229
|
+
Show the token holder distribution table.
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
# Show holders for a token
|
|
233
|
+
agentlaunch holders 0xAbCdEf...
|
|
234
|
+
|
|
235
|
+
# JSON output for machine parsing
|
|
236
|
+
agentlaunch holders 0xAbCdEf... --json
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**Options:**
|
|
240
|
+
|
|
241
|
+
| Flag | Description |
|
|
242
|
+
|------|-------------|
|
|
243
|
+
| `--json` | Output only JSON |
|
|
244
|
+
|
|
245
|
+
**Example table output:**
|
|
246
|
+
|
|
247
|
+
```
|
|
248
|
+
Holders for 0xAbCdEf... (47 holders)
|
|
249
|
+
|
|
250
|
+
──────────────────────────────────────────────────────────
|
|
251
|
+
Address Balance Percentage
|
|
252
|
+
──────────────────────────────────────────────────────────
|
|
253
|
+
0x1234...abcd 12,500,000 1.56%
|
|
254
|
+
0x5678...ef01 8,300,000 1.04%
|
|
255
|
+
0x9abc...2345 4,100,000 0.51%
|
|
256
|
+
...
|
|
257
|
+
──────────────────────────────────────────────────────────
|
|
258
|
+
```
|
|
259
|
+
|
|
174
260
|
---
|
|
175
261
|
|
|
176
262
|
### `agentlaunch list`
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CF-049: comments command
|
|
3
|
+
*
|
|
4
|
+
* agentlaunch comments <address> [--post <message>] [--json]
|
|
5
|
+
*
|
|
6
|
+
* Default action: list comments for a token.
|
|
7
|
+
* With --post: post a new comment (requires API key).
|
|
8
|
+
*
|
|
9
|
+
* Endpoints:
|
|
10
|
+
* GET /comments/{address} List comments
|
|
11
|
+
* POST /comments/{address} { message } Post a comment
|
|
12
|
+
*/
|
|
13
|
+
import { Command } from "commander";
|
|
14
|
+
export declare function registerCommentsCommand(program: Command): void;
|
|
15
|
+
//# sourceMappingURL=comments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/commands/comments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+H9D"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CF-049: comments command
|
|
3
|
+
*
|
|
4
|
+
* agentlaunch comments <address> [--post <message>] [--json]
|
|
5
|
+
*
|
|
6
|
+
* Default action: list comments for a token.
|
|
7
|
+
* With --post: post a new comment (requires API key).
|
|
8
|
+
*
|
|
9
|
+
* Endpoints:
|
|
10
|
+
* GET /comments/{address} List comments
|
|
11
|
+
* POST /comments/{address} { message } Post a comment
|
|
12
|
+
*/
|
|
13
|
+
import { apiGet, apiPost } from "../http.js";
|
|
14
|
+
export function registerCommentsCommand(program) {
|
|
15
|
+
program
|
|
16
|
+
.command("comments <address>")
|
|
17
|
+
.description("List or post comments for a token by its contract address")
|
|
18
|
+
.option("--post <message>", "Post a new comment (requires API key)")
|
|
19
|
+
.option("--json", "Output raw JSON (machine-readable)")
|
|
20
|
+
.action(async (address, options) => {
|
|
21
|
+
const isJson = options.json === true;
|
|
22
|
+
if (!address || address.trim().length < 10) {
|
|
23
|
+
if (isJson) {
|
|
24
|
+
console.log(JSON.stringify({ error: "Invalid token address" }));
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
console.error("Error: Please provide a valid token contract address.");
|
|
28
|
+
}
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
const addr = address.trim();
|
|
32
|
+
// --- POST a new comment ---
|
|
33
|
+
if (options.post !== undefined) {
|
|
34
|
+
const message = options.post.trim();
|
|
35
|
+
if (!message) {
|
|
36
|
+
if (isJson) {
|
|
37
|
+
console.log(JSON.stringify({ error: "--post message cannot be empty" }));
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
console.error("Error: --post message cannot be empty");
|
|
41
|
+
}
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
if (message.length > 500) {
|
|
45
|
+
if (isJson) {
|
|
46
|
+
console.log(JSON.stringify({ error: "--post message must be 500 characters or fewer" }));
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
console.error("Error: --post message must be 500 characters or fewer");
|
|
50
|
+
}
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
let result;
|
|
54
|
+
try {
|
|
55
|
+
result = await apiPost(`/comments/${addr}`, { message });
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
if (isJson) {
|
|
59
|
+
console.log(JSON.stringify({ error: err.message }));
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
console.error(`Error: ${err.message}`);
|
|
63
|
+
}
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
if (isJson) {
|
|
67
|
+
console.log(JSON.stringify({ success: true, comment: result }));
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
console.log("Comment posted successfully.");
|
|
71
|
+
if (result.id !== undefined) {
|
|
72
|
+
console.log(` ID: ${result.id}`);
|
|
73
|
+
}
|
|
74
|
+
console.log(` Message: ${result.message ?? message}`);
|
|
75
|
+
const ts = result.createdAt ?? result.created_at;
|
|
76
|
+
if (ts) {
|
|
77
|
+
console.log(` Posted: ${new Date(ts).toUTCString()}`);
|
|
78
|
+
}
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
// --- LIST comments ---
|
|
82
|
+
let comments;
|
|
83
|
+
try {
|
|
84
|
+
const response = await apiGet(`/comments/${addr}`);
|
|
85
|
+
// Handle both array responses and wrapped responses
|
|
86
|
+
if (Array.isArray(response)) {
|
|
87
|
+
comments = response;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
comments = response.data ??
|
|
91
|
+
response.comments ??
|
|
92
|
+
[];
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
if (isJson) {
|
|
97
|
+
console.log(JSON.stringify({ error: err.message }));
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
console.error(`Error: ${err.message}`);
|
|
101
|
+
}
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
if (isJson) {
|
|
105
|
+
console.log(JSON.stringify({ comments, total: comments.length }));
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (comments.length === 0) {
|
|
109
|
+
console.log(`No comments found for ${addr}`);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
console.log(`\nComments for ${addr}\n`);
|
|
113
|
+
console.log("─".repeat(60));
|
|
114
|
+
for (const c of comments) {
|
|
115
|
+
const author = c.user?.username ??
|
|
116
|
+
c.user?.address?.slice(0, 10) ??
|
|
117
|
+
`user#${c.userId ?? c.user_id ?? "?"}`;
|
|
118
|
+
const ts = c.createdAt ?? c.created_at;
|
|
119
|
+
const dateStr = ts ? new Date(ts).toUTCString() : "";
|
|
120
|
+
console.log(`[${c.id ?? "?"}] ${author}${dateStr ? " " + dateStr : ""}`);
|
|
121
|
+
console.log(` ${c.message ?? ""}`);
|
|
122
|
+
console.log();
|
|
123
|
+
}
|
|
124
|
+
console.log("─".repeat(60));
|
|
125
|
+
console.log(`${comments.length} comment(s). Use --post "<message>" to add one.\n`);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=comments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/commands/comments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CF-051: holders command
|
|
3
|
+
*
|
|
4
|
+
* agentlaunch holders <address> [--json]
|
|
5
|
+
*
|
|
6
|
+
* Fetches the holder list for a token from the API and displays it
|
|
7
|
+
* as a table with Address, Balance, and Percentage columns.
|
|
8
|
+
*
|
|
9
|
+
* Endpoint: GET /transactions/holders/{address}
|
|
10
|
+
*/
|
|
11
|
+
import { Command } from "commander";
|
|
12
|
+
export declare function registerHoldersCommand(program: Command): void;
|
|
13
|
+
//# sourceMappingURL=holders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"holders.d.ts","sourceRoot":"","sources":["../../src/commands/holders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkF7D"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CF-051: holders command
|
|
3
|
+
*
|
|
4
|
+
* agentlaunch holders <address> [--json]
|
|
5
|
+
*
|
|
6
|
+
* Fetches the holder list for a token from the API and displays it
|
|
7
|
+
* as a table with Address, Balance, and Percentage columns.
|
|
8
|
+
*
|
|
9
|
+
* Endpoint: GET /transactions/holders/{address}
|
|
10
|
+
*/
|
|
11
|
+
import { apiGet } from "../http.js";
|
|
12
|
+
export function registerHoldersCommand(program) {
|
|
13
|
+
program
|
|
14
|
+
.command("holders <address>")
|
|
15
|
+
.description("Show token holder list by contract address")
|
|
16
|
+
.option("--json", "Output raw JSON (machine-readable)")
|
|
17
|
+
.action(async (address, options) => {
|
|
18
|
+
const isJson = options.json === true;
|
|
19
|
+
if (!address || address.trim().length < 10) {
|
|
20
|
+
if (isJson) {
|
|
21
|
+
console.log(JSON.stringify({ error: "Invalid token address" }));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.error("Error: Please provide a valid token contract address.");
|
|
25
|
+
}
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
const addr = address.trim();
|
|
29
|
+
let holders;
|
|
30
|
+
try {
|
|
31
|
+
const response = await apiGet(`/transactions/holders/${addr}`);
|
|
32
|
+
if (Array.isArray(response)) {
|
|
33
|
+
holders = response;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
holders = response.data ??
|
|
37
|
+
response.holders ??
|
|
38
|
+
[];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
if (isJson) {
|
|
43
|
+
console.log(JSON.stringify({ error: err.message }));
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
console.error(`Error: ${err.message}`);
|
|
47
|
+
}
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
if (isJson) {
|
|
51
|
+
console.log(JSON.stringify({ holders, total: holders.length }));
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (holders.length === 0) {
|
|
55
|
+
console.log(`No holders found for ${addr}`);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
// Pretty-print table
|
|
59
|
+
const colAddr = 44;
|
|
60
|
+
const colBalance = 20;
|
|
61
|
+
const colPct = 10;
|
|
62
|
+
const hr = "─".repeat(colAddr + colBalance + colPct + 6);
|
|
63
|
+
console.log(`\nToken Holders: ${addr}\n`);
|
|
64
|
+
console.log(hr);
|
|
65
|
+
console.log(pad("Address", colAddr) +
|
|
66
|
+
pad("Balance", colBalance) +
|
|
67
|
+
"Percentage");
|
|
68
|
+
console.log(hr);
|
|
69
|
+
for (const h of holders) {
|
|
70
|
+
const addrCol = h.address ?? "-";
|
|
71
|
+
const balanceCol = h.balance !== undefined ? formatNumber(h.balance) : "-";
|
|
72
|
+
const pctCol = `${(h.token_percentage ?? 0).toFixed(2)}%`;
|
|
73
|
+
const creatorTag = h.creator ? " (creator)" : "";
|
|
74
|
+
console.log(pad(addrCol + creatorTag, colAddr) +
|
|
75
|
+
pad(balanceCol, colBalance) +
|
|
76
|
+
pctCol);
|
|
77
|
+
}
|
|
78
|
+
console.log(hr);
|
|
79
|
+
console.log(`\n${holders.length} holder(s) total.\n`);
|
|
80
|
+
console.log(`View on platform: https://agent-launch.ai/trade/${addr}`);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
// --- helpers ---
|
|
84
|
+
function pad(s, width) {
|
|
85
|
+
return s.length >= width ? s.slice(0, width) : s + " ".repeat(width - s.length);
|
|
86
|
+
}
|
|
87
|
+
function formatNumber(n) {
|
|
88
|
+
if (n >= 1_000_000)
|
|
89
|
+
return `${(n / 1_000_000).toFixed(2)}M`;
|
|
90
|
+
if (n >= 1_000)
|
|
91
|
+
return `${(n / 1_000).toFixed(2)}K`;
|
|
92
|
+
return n.toFixed(2);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=holders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"holders.js","sourceRoot":"","sources":["../../src/commands/holders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../src/commands/tokenize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../src/commands/tokenize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmCpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiO9D"}
|
|
@@ -23,6 +23,9 @@ export function registerTokenizeCommand(program) {
|
|
|
23
23
|
.option("--description <desc>", "Token description (max 500 chars)")
|
|
24
24
|
.option("--image <url>", "URL of the token logo image")
|
|
25
25
|
.option("--chain <chainId>", "Chain ID: 97 (BSC testnet) or 56 (BSC mainnet)", "97")
|
|
26
|
+
.option("--max-wallet <value>", "Max wallet limit: 0=unlimited, 1=0.5%, 2=1%", "0")
|
|
27
|
+
.option("--initial-buy <amount>", "FET to buy immediately after deploy (0-1000)")
|
|
28
|
+
.option("--category <id>", "Category ID (default: 1)", "1")
|
|
26
29
|
.option("--json", "Output only JSON (machine-readable)")
|
|
27
30
|
.action(async (options) => {
|
|
28
31
|
const isJson = options.json === true;
|
|
@@ -67,21 +70,66 @@ export function registerTokenizeCommand(program) {
|
|
|
67
70
|
}
|
|
68
71
|
process.exit(1);
|
|
69
72
|
}
|
|
73
|
+
const maxWallet = parseInt(options.maxWallet, 10);
|
|
74
|
+
if (![0, 1, 2].includes(maxWallet)) {
|
|
75
|
+
if (isJson) {
|
|
76
|
+
console.log(JSON.stringify({ error: "--max-wallet must be 0 (unlimited), 1 (0.5%), or 2 (1%)" }));
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
console.error("Error: --max-wallet must be 0 (unlimited), 1 (0.5%), or 2 (1%)");
|
|
80
|
+
}
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
let initialBuyAmount;
|
|
84
|
+
if (options.initialBuy !== undefined) {
|
|
85
|
+
initialBuyAmount = parseFloat(options.initialBuy);
|
|
86
|
+
if (isNaN(initialBuyAmount) || initialBuyAmount < 0 || initialBuyAmount > 1000) {
|
|
87
|
+
if (isJson) {
|
|
88
|
+
console.log(JSON.stringify({ error: "--initial-buy must be a number between 0 and 1000" }));
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
console.error("Error: --initial-buy must be a number between 0 and 1000");
|
|
92
|
+
}
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const categoryId = parseInt(options.category, 10);
|
|
97
|
+
if (isNaN(categoryId) || categoryId < 1) {
|
|
98
|
+
if (isJson) {
|
|
99
|
+
console.log(JSON.stringify({ error: "--category must be a valid positive integer" }));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
console.error("Error: --category must be a valid positive integer");
|
|
103
|
+
}
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
70
106
|
const body = {
|
|
71
107
|
agentAddress: options.agent,
|
|
72
108
|
name: options.name,
|
|
73
109
|
symbol,
|
|
74
110
|
chainId,
|
|
111
|
+
maxWalletAmount: maxWallet,
|
|
112
|
+
category: { id: categoryId },
|
|
75
113
|
};
|
|
76
114
|
if (options.description)
|
|
77
115
|
body.description = options.description;
|
|
78
116
|
if (options.image)
|
|
79
117
|
body.image = options.image;
|
|
118
|
+
if (initialBuyAmount !== undefined)
|
|
119
|
+
body.initialBuyAmount = initialBuyAmount;
|
|
120
|
+
const maxWalletLabel = maxWallet === 0 ? "Unlimited" :
|
|
121
|
+
maxWallet === 1 ? "0.5% (5M tokens)" :
|
|
122
|
+
"1% (10M tokens)";
|
|
80
123
|
if (!isJson) {
|
|
81
124
|
console.log(`Tokenizing agent: ${options.agent}`);
|
|
82
|
-
console.log(` Name:
|
|
83
|
-
console.log(` Symbol:
|
|
84
|
-
console.log(` Chain:
|
|
125
|
+
console.log(` Name: ${options.name}`);
|
|
126
|
+
console.log(` Symbol: ${symbol}`);
|
|
127
|
+
console.log(` Chain: ${chainId === 56 ? "BSC mainnet" : "BSC testnet"} (${chainId})`);
|
|
128
|
+
console.log(` Max Wallet: ${maxWalletLabel}`);
|
|
129
|
+
if (initialBuyAmount !== undefined && initialBuyAmount > 0) {
|
|
130
|
+
console.log(` Initial buy: ${initialBuyAmount} FET`);
|
|
131
|
+
}
|
|
132
|
+
console.log(` Category: ${categoryId}`);
|
|
85
133
|
}
|
|
86
134
|
let result;
|
|
87
135
|
try {
|
|
@@ -111,6 +159,9 @@ export function registerTokenizeCommand(program) {
|
|
|
111
159
|
tokenAddress: result.token_address,
|
|
112
160
|
status: result.status,
|
|
113
161
|
handoffLink,
|
|
162
|
+
maxWalletAmount: maxWallet,
|
|
163
|
+
initialBuyAmount: initialBuyAmount ?? 0,
|
|
164
|
+
category: { id: categoryId },
|
|
114
165
|
deployFee: "120 FET (read from contract at deploy time)",
|
|
115
166
|
tradingFee: "2% -> 100% to protocol treasury",
|
|
116
167
|
}));
|
|
@@ -128,6 +179,11 @@ export function registerTokenizeCommand(program) {
|
|
|
128
179
|
if (result.status) {
|
|
129
180
|
console.log(`Status: ${result.status}`);
|
|
130
181
|
}
|
|
182
|
+
console.log(`Max Wallet: ${maxWalletLabel}`);
|
|
183
|
+
if (initialBuyAmount !== undefined && initialBuyAmount > 0) {
|
|
184
|
+
console.log(`Initial Buy: ${initialBuyAmount} FET`);
|
|
185
|
+
}
|
|
186
|
+
console.log(`Category: ${categoryId}`);
|
|
131
187
|
if (handoffLink) {
|
|
132
188
|
console.log(`\nHandoff link (share with a human to deploy on-chain):`);
|
|
133
189
|
console.log(` ${handoffLink}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../../src/commands/tokenize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../../src/commands/tokenize.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* agentlaunch-cli
|
|
4
4
|
*
|
|
5
5
|
* CLI for the AgentLaunch platform — scaffold, deploy, and tokenize AI agents.
|
|
6
6
|
*
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* agentlaunch tokenize Create token record + handoff link
|
|
15
15
|
* agentlaunch list List tokens with pagination
|
|
16
16
|
* agentlaunch status <address> Show token status
|
|
17
|
+
* agentlaunch comments <address> List or post comments for a token
|
|
18
|
+
* agentlaunch holders <address> Show token holder list
|
|
17
19
|
*
|
|
18
20
|
* All commands support --json for machine-readable output (AI agent use).
|
|
19
21
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;GAmBG"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* agentlaunch-cli
|
|
4
4
|
*
|
|
5
5
|
* CLI for the AgentLaunch platform — scaffold, deploy, and tokenize AI agents.
|
|
6
6
|
*
|
|
@@ -14,13 +14,17 @@
|
|
|
14
14
|
* agentlaunch tokenize Create token record + handoff link
|
|
15
15
|
* agentlaunch list List tokens with pagination
|
|
16
16
|
* agentlaunch status <address> Show token status
|
|
17
|
+
* agentlaunch comments <address> List or post comments for a token
|
|
18
|
+
* agentlaunch holders <address> Show token holder list
|
|
17
19
|
*
|
|
18
20
|
* All commands support --json for machine-readable output (AI agent use).
|
|
19
21
|
*/
|
|
20
22
|
import { Command } from "commander";
|
|
23
|
+
import { registerCommentsCommand } from "./commands/comments.js";
|
|
21
24
|
import { registerConfigCommand } from "./commands/config.js";
|
|
22
25
|
import { registerCreateCommand } from "./commands/create.js";
|
|
23
26
|
import { registerDeployCommand } from "./commands/deploy.js";
|
|
27
|
+
import { registerHoldersCommand } from "./commands/holders.js";
|
|
24
28
|
import { registerListCommand } from "./commands/list.js";
|
|
25
29
|
import { registerScaffoldCommand } from "./commands/scaffold.js";
|
|
26
30
|
import { registerStatusCommand } from "./commands/status.js";
|
|
@@ -38,6 +42,8 @@ registerDeployCommand(program);
|
|
|
38
42
|
registerTokenizeCommand(program);
|
|
39
43
|
registerListCommand(program);
|
|
40
44
|
registerStatusCommand(program);
|
|
45
|
+
registerCommentsCommand(program);
|
|
46
|
+
registerHoldersCommand(program);
|
|
41
47
|
// Show help if no command is given
|
|
42
48
|
if (process.argv.length <= 2) {
|
|
43
49
|
program.help();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CACV,+EAA+E,CAChF;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,2BAA2B;AAC3B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAEhC,mCAAmC;AACnC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;IAC7B,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IACtD,OAAO,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|