@inkd/cli 0.1.0

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 (54) hide show
  1. package/README.md +226 -0
  2. package/dist/abi.d.ts +408 -0
  3. package/dist/abi.d.ts.map +1 -0
  4. package/dist/abi.js +283 -0
  5. package/dist/abi.js.map +1 -0
  6. package/dist/client.d.ts +19 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +34 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/commands/agent.d.ts +10 -0
  11. package/dist/commands/agent.d.ts.map +1 -0
  12. package/dist/commands/agent.js +106 -0
  13. package/dist/commands/agent.js.map +1 -0
  14. package/dist/commands/agentd.d.ts +35 -0
  15. package/dist/commands/agentd.d.ts.map +1 -0
  16. package/dist/commands/agentd.js +336 -0
  17. package/dist/commands/agentd.js.map +1 -0
  18. package/dist/commands/init.d.ts +5 -0
  19. package/dist/commands/init.d.ts.map +1 -0
  20. package/dist/commands/init.js +25 -0
  21. package/dist/commands/init.js.map +1 -0
  22. package/dist/commands/project.d.ts +16 -0
  23. package/dist/commands/project.d.ts.map +1 -0
  24. package/dist/commands/project.js +222 -0
  25. package/dist/commands/project.js.map +1 -0
  26. package/dist/commands/search.d.ts +14 -0
  27. package/dist/commands/search.d.ts.map +1 -0
  28. package/dist/commands/search.js +141 -0
  29. package/dist/commands/search.js.map +1 -0
  30. package/dist/commands/status.d.ts +5 -0
  31. package/dist/commands/status.d.ts.map +1 -0
  32. package/dist/commands/status.js +44 -0
  33. package/dist/commands/status.js.map +1 -0
  34. package/dist/commands/token.d.ts +46 -0
  35. package/dist/commands/token.d.ts.map +1 -0
  36. package/dist/commands/token.js +410 -0
  37. package/dist/commands/token.js.map +1 -0
  38. package/dist/commands/version.d.ts +12 -0
  39. package/dist/commands/version.d.ts.map +1 -0
  40. package/dist/commands/version.js +134 -0
  41. package/dist/commands/version.js.map +1 -0
  42. package/dist/commands/watch.d.ts +16 -0
  43. package/dist/commands/watch.d.ts.map +1 -0
  44. package/dist/commands/watch.js +175 -0
  45. package/dist/commands/watch.js.map +1 -0
  46. package/dist/config.d.ts +42 -0
  47. package/dist/config.d.ts.map +1 -0
  48. package/dist/config.js +94 -0
  49. package/dist/config.js.map +1 -0
  50. package/dist/index.d.ts +23 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +258 -0
  53. package/dist/index.js.map +1 -0
  54. package/package.json +59 -0
package/README.md ADDED
@@ -0,0 +1,226 @@
1
+ # @inkd/cli
2
+
3
+ > Command-line interface for the [Inkd Protocol](https://inkdprotocol.xyz) — permanent on-chain file ownership on Base.
4
+
5
+ [![npm](https://img.shields.io/npm/v/@inkd/cli)](https://www.npmjs.com/package/@inkd/cli)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](../../LICENSE)
7
+ [![Built on Base](https://img.shields.io/badge/Built%20on-Base-0052FF)](https://base.org)
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ # Global install
13
+ npm install -g @inkd/cli
14
+
15
+ # Or use without installing
16
+ npx @inkd/cli help
17
+ ```
18
+
19
+ ## Quick Start
20
+
21
+ ```bash
22
+ # 1. Scaffold config
23
+ inkd init
24
+
25
+ # 2. Set your wallet private key
26
+ export INKD_PRIVATE_KEY=0xabc123...
27
+
28
+ # 3. Check network status
29
+ inkd status
30
+
31
+ # 4. Create your first project (locks 1 $INKD)
32
+ inkd project create --name my-agent --agent --endpoint https://api.example.com
33
+
34
+ # 5. Push a version
35
+ inkd version push --id 1 --hash <arweave-hash> --tag v0.1.0 --changelog "initial release"
36
+ ```
37
+
38
+ ## Configuration
39
+
40
+ The CLI reads from `inkd.config.json` in the current directory. Scaffold it with:
41
+
42
+ ```bash
43
+ inkd init # testnet (default)
44
+ inkd init --mainnet # mainnet
45
+ ```
46
+
47
+ **inkd.config.json**
48
+ ```json
49
+ {
50
+ "network": "testnet",
51
+ "rpcUrl": "https://your-rpc-endpoint"
52
+ }
53
+ ```
54
+
55
+ > ⚠️ **Never store your private key in the config file.** Use the environment variable instead.
56
+
57
+ ### Environment Variables
58
+
59
+ | Variable | Description |
60
+ |--------------------|-----------------------------------------------|
61
+ | `INKD_PRIVATE_KEY` | Wallet private key (hex, `0x` optional) |
62
+ | `INKD_NETWORK` | `mainnet` or `testnet` (overrides config) |
63
+ | `INKD_RPC_URL` | Custom RPC endpoint |
64
+ | `INKD_DEBUG` | Set to any value to show full error stacks |
65
+
66
+ ## Commands
67
+
68
+ ### `inkd init`
69
+
70
+ Scaffold `inkd.config.json` in the current directory.
71
+
72
+ ```bash
73
+ inkd init # testnet
74
+ inkd init --mainnet # mainnet
75
+ inkd init --force # overwrite existing
76
+ ```
77
+
78
+ ---
79
+
80
+ ### `inkd status`
81
+
82
+ Show network info, contract addresses, and current protocol fees.
83
+
84
+ ```bash
85
+ inkd status
86
+ ```
87
+
88
+ ---
89
+
90
+ ### `inkd project create`
91
+
92
+ Register a new project. Locks 1 $INKD in the registry contract.
93
+
94
+ ```bash
95
+ inkd project create \
96
+ --name my-agent \
97
+ --description "An AI agent that does things" \
98
+ --license MIT \
99
+ --agent \
100
+ --endpoint https://api.example.com
101
+ ```
102
+
103
+ **Flags:**
104
+
105
+ | Flag | Required | Description |
106
+ |-----------------|----------|-------------------------------------------------|
107
+ | `--name` | ✅ | Project name (unique, lowercased) |
108
+ | `--description` | | Short description |
109
+ | `--license` | | SPDX license ID (default: MIT) |
110
+ | `--readme` | | Arweave hash of README document |
111
+ | `--private` | | Make project private (default: public) |
112
+ | `--agent` | | Flag as AI agent project |
113
+ | `--endpoint` | | Agent endpoint URL (used with `--agent`) |
114
+
115
+ ---
116
+
117
+ ### `inkd project get <id>`
118
+
119
+ Fetch and display project details.
120
+
121
+ ```bash
122
+ inkd project get 1
123
+ inkd project get --id 42
124
+ ```
125
+
126
+ ---
127
+
128
+ ### `inkd project list <address>`
129
+
130
+ List all projects owned by an address.
131
+
132
+ ```bash
133
+ inkd project list 0xDead...
134
+ ```
135
+
136
+ ---
137
+
138
+ ### `inkd project transfer`
139
+
140
+ Transfer ownership of a project. Requires `transferFee` ETH.
141
+
142
+ ```bash
143
+ inkd project transfer --id 1 --to 0xNewOwner...
144
+ ```
145
+
146
+ ---
147
+
148
+ ### `inkd project collab add|remove`
149
+
150
+ Add or remove a collaborator on a project.
151
+
152
+ ```bash
153
+ inkd project collab add --id 1 --address 0xCollaborator...
154
+ inkd project collab remove --id 1 --address 0xCollaborator...
155
+ ```
156
+
157
+ ---
158
+
159
+ ### `inkd version push`
160
+
161
+ Push a new version to a project. Requires `versionFee` ETH.
162
+
163
+ ```bash
164
+ inkd version push \
165
+ --id 1 \
166
+ --hash <arweave-tx-id> \
167
+ --tag v0.2.0 \
168
+ --changelog "Bug fixes and performance improvements"
169
+ ```
170
+
171
+ ---
172
+
173
+ ### `inkd version list <id>`
174
+
175
+ List all versions for a project (newest first).
176
+
177
+ ```bash
178
+ inkd version list 1
179
+ ```
180
+
181
+ ---
182
+
183
+ ### `inkd version show`
184
+
185
+ Show details for a specific version by index.
186
+
187
+ ```bash
188
+ inkd version show --id 1 --index 0
189
+ ```
190
+
191
+ ---
192
+
193
+ ### `inkd agent list`
194
+
195
+ Browse registered AI agent projects.
196
+
197
+ ```bash
198
+ inkd agent list
199
+ inkd agent list --offset 25 --limit 50
200
+ ```
201
+
202
+ ---
203
+
204
+ ### `inkd agent lookup <name>`
205
+
206
+ Find an agent project by name.
207
+
208
+ ```bash
209
+ inkd agent lookup my-agent
210
+ ```
211
+
212
+ ---
213
+
214
+ ## Development
215
+
216
+ ```bash
217
+ git clone https://github.com/inkdprotocol/inkd-protocol.git
218
+ cd inkd-protocol/cli
219
+ npm install
220
+ npm run build
221
+ node dist/index.js help
222
+ ```
223
+
224
+ ## License
225
+
226
+ MIT — see [LICENSE](../../LICENSE)
package/dist/abi.d.ts ADDED
@@ -0,0 +1,408 @@
1
+ /**
2
+ * Inkd CLI — Minimal ABIs for registry + token interactions
3
+ */
4
+ export declare const REGISTRY_ABI: readonly [{
5
+ readonly name: "createProject";
6
+ readonly type: "function";
7
+ readonly stateMutability: "nonpayable";
8
+ readonly inputs: readonly [{
9
+ readonly name: "name";
10
+ readonly type: "string";
11
+ }, {
12
+ readonly name: "description";
13
+ readonly type: "string";
14
+ }, {
15
+ readonly name: "license";
16
+ readonly type: "string";
17
+ }, {
18
+ readonly name: "isPublic";
19
+ readonly type: "bool";
20
+ }, {
21
+ readonly name: "readmeHash";
22
+ readonly type: "string";
23
+ }, {
24
+ readonly name: "isAgent";
25
+ readonly type: "bool";
26
+ }, {
27
+ readonly name: "agentEndpoint";
28
+ readonly type: "string";
29
+ }];
30
+ readonly outputs: readonly [];
31
+ }, {
32
+ readonly name: "pushVersion";
33
+ readonly type: "function";
34
+ readonly stateMutability: "payable";
35
+ readonly inputs: readonly [{
36
+ readonly name: "projectId";
37
+ readonly type: "uint256";
38
+ }, {
39
+ readonly name: "arweaveHash";
40
+ readonly type: "string";
41
+ }, {
42
+ readonly name: "versionTag";
43
+ readonly type: "string";
44
+ }, {
45
+ readonly name: "changelog";
46
+ readonly type: "string";
47
+ }];
48
+ readonly outputs: readonly [];
49
+ }, {
50
+ readonly name: "transferProject";
51
+ readonly type: "function";
52
+ readonly stateMutability: "payable";
53
+ readonly inputs: readonly [{
54
+ readonly name: "projectId";
55
+ readonly type: "uint256";
56
+ }, {
57
+ readonly name: "newOwner";
58
+ readonly type: "address";
59
+ }];
60
+ readonly outputs: readonly [];
61
+ }, {
62
+ readonly name: "addCollaborator";
63
+ readonly type: "function";
64
+ readonly stateMutability: "nonpayable";
65
+ readonly inputs: readonly [{
66
+ readonly name: "projectId";
67
+ readonly type: "uint256";
68
+ }, {
69
+ readonly name: "collaborator";
70
+ readonly type: "address";
71
+ }];
72
+ readonly outputs: readonly [];
73
+ }, {
74
+ readonly name: "removeCollaborator";
75
+ readonly type: "function";
76
+ readonly stateMutability: "nonpayable";
77
+ readonly inputs: readonly [{
78
+ readonly name: "projectId";
79
+ readonly type: "uint256";
80
+ }, {
81
+ readonly name: "collaborator";
82
+ readonly type: "address";
83
+ }];
84
+ readonly outputs: readonly [];
85
+ }, {
86
+ readonly name: "setVisibility";
87
+ readonly type: "function";
88
+ readonly stateMutability: "nonpayable";
89
+ readonly inputs: readonly [{
90
+ readonly name: "projectId";
91
+ readonly type: "uint256";
92
+ }, {
93
+ readonly name: "isPublic";
94
+ readonly type: "bool";
95
+ }];
96
+ readonly outputs: readonly [];
97
+ }, {
98
+ readonly name: "setReadme";
99
+ readonly type: "function";
100
+ readonly stateMutability: "nonpayable";
101
+ readonly inputs: readonly [{
102
+ readonly name: "projectId";
103
+ readonly type: "uint256";
104
+ }, {
105
+ readonly name: "arweaveHash";
106
+ readonly type: "string";
107
+ }];
108
+ readonly outputs: readonly [];
109
+ }, {
110
+ readonly name: "setAgentEndpoint";
111
+ readonly type: "function";
112
+ readonly stateMutability: "nonpayable";
113
+ readonly inputs: readonly [{
114
+ readonly name: "projectId";
115
+ readonly type: "uint256";
116
+ }, {
117
+ readonly name: "endpoint";
118
+ readonly type: "string";
119
+ }];
120
+ readonly outputs: readonly [];
121
+ }, {
122
+ readonly name: "getProject";
123
+ readonly type: "function";
124
+ readonly stateMutability: "view";
125
+ readonly inputs: readonly [{
126
+ readonly name: "projectId";
127
+ readonly type: "uint256";
128
+ }];
129
+ readonly outputs: readonly [{
130
+ readonly type: "tuple";
131
+ readonly components: readonly [{
132
+ readonly name: "id";
133
+ readonly type: "uint256";
134
+ }, {
135
+ readonly name: "name";
136
+ readonly type: "string";
137
+ }, {
138
+ readonly name: "description";
139
+ readonly type: "string";
140
+ }, {
141
+ readonly name: "license";
142
+ readonly type: "string";
143
+ }, {
144
+ readonly name: "readmeHash";
145
+ readonly type: "string";
146
+ }, {
147
+ readonly name: "owner";
148
+ readonly type: "address";
149
+ }, {
150
+ readonly name: "isPublic";
151
+ readonly type: "bool";
152
+ }, {
153
+ readonly name: "isAgent";
154
+ readonly type: "bool";
155
+ }, {
156
+ readonly name: "agentEndpoint";
157
+ readonly type: "string";
158
+ }, {
159
+ readonly name: "createdAt";
160
+ readonly type: "uint256";
161
+ }, {
162
+ readonly name: "versionCount";
163
+ readonly type: "uint256";
164
+ }, {
165
+ readonly name: "exists";
166
+ readonly type: "bool";
167
+ }];
168
+ }];
169
+ }, {
170
+ readonly name: "getVersion";
171
+ readonly type: "function";
172
+ readonly stateMutability: "view";
173
+ readonly inputs: readonly [{
174
+ readonly name: "projectId";
175
+ readonly type: "uint256";
176
+ }, {
177
+ readonly name: "versionIndex";
178
+ readonly type: "uint256";
179
+ }];
180
+ readonly outputs: readonly [{
181
+ readonly type: "tuple";
182
+ readonly components: readonly [{
183
+ readonly name: "projectId";
184
+ readonly type: "uint256";
185
+ }, {
186
+ readonly name: "arweaveHash";
187
+ readonly type: "string";
188
+ }, {
189
+ readonly name: "versionTag";
190
+ readonly type: "string";
191
+ }, {
192
+ readonly name: "changelog";
193
+ readonly type: "string";
194
+ }, {
195
+ readonly name: "pushedBy";
196
+ readonly type: "address";
197
+ }, {
198
+ readonly name: "pushedAt";
199
+ readonly type: "uint256";
200
+ }];
201
+ }];
202
+ }, {
203
+ readonly name: "getVersionCount";
204
+ readonly type: "function";
205
+ readonly stateMutability: "view";
206
+ readonly inputs: readonly [{
207
+ readonly name: "projectId";
208
+ readonly type: "uint256";
209
+ }];
210
+ readonly outputs: readonly [{
211
+ readonly type: "uint256";
212
+ }];
213
+ }, {
214
+ readonly name: "getCollaborators";
215
+ readonly type: "function";
216
+ readonly stateMutability: "view";
217
+ readonly inputs: readonly [{
218
+ readonly name: "projectId";
219
+ readonly type: "uint256";
220
+ }];
221
+ readonly outputs: readonly [{
222
+ readonly type: "address[]";
223
+ }];
224
+ }, {
225
+ readonly name: "getOwnerProjects";
226
+ readonly type: "function";
227
+ readonly stateMutability: "view";
228
+ readonly inputs: readonly [{
229
+ readonly name: "owner_";
230
+ readonly type: "address";
231
+ }];
232
+ readonly outputs: readonly [{
233
+ readonly type: "uint256[]";
234
+ }];
235
+ }, {
236
+ readonly name: "getAgentProjects";
237
+ readonly type: "function";
238
+ readonly stateMutability: "view";
239
+ readonly inputs: readonly [{
240
+ readonly name: "offset";
241
+ readonly type: "uint256";
242
+ }, {
243
+ readonly name: "limit";
244
+ readonly type: "uint256";
245
+ }];
246
+ readonly outputs: readonly [{
247
+ readonly type: "tuple[]";
248
+ readonly components: readonly [{
249
+ readonly name: "id";
250
+ readonly type: "uint256";
251
+ }, {
252
+ readonly name: "name";
253
+ readonly type: "string";
254
+ }, {
255
+ readonly name: "description";
256
+ readonly type: "string";
257
+ }, {
258
+ readonly name: "license";
259
+ readonly type: "string";
260
+ }, {
261
+ readonly name: "readmeHash";
262
+ readonly type: "string";
263
+ }, {
264
+ readonly name: "owner";
265
+ readonly type: "address";
266
+ }, {
267
+ readonly name: "isPublic";
268
+ readonly type: "bool";
269
+ }, {
270
+ readonly name: "isAgent";
271
+ readonly type: "bool";
272
+ }, {
273
+ readonly name: "agentEndpoint";
274
+ readonly type: "string";
275
+ }, {
276
+ readonly name: "createdAt";
277
+ readonly type: "uint256";
278
+ }, {
279
+ readonly name: "versionCount";
280
+ readonly type: "uint256";
281
+ }, {
282
+ readonly name: "exists";
283
+ readonly type: "bool";
284
+ }];
285
+ }];
286
+ }, {
287
+ readonly name: "projectCount";
288
+ readonly type: "function";
289
+ readonly stateMutability: "view";
290
+ readonly inputs: readonly [];
291
+ readonly outputs: readonly [{
292
+ readonly type: "uint256";
293
+ }];
294
+ }, {
295
+ readonly name: "versionFee";
296
+ readonly type: "function";
297
+ readonly stateMutability: "view";
298
+ readonly inputs: readonly [];
299
+ readonly outputs: readonly [{
300
+ readonly type: "uint256";
301
+ }];
302
+ }, {
303
+ readonly name: "transferFee";
304
+ readonly type: "function";
305
+ readonly stateMutability: "view";
306
+ readonly inputs: readonly [];
307
+ readonly outputs: readonly [{
308
+ readonly type: "uint256";
309
+ }];
310
+ }, {
311
+ readonly name: "nameTaken";
312
+ readonly type: "function";
313
+ readonly stateMutability: "view";
314
+ readonly inputs: readonly [{
315
+ readonly name: "name";
316
+ readonly type: "string";
317
+ }];
318
+ readonly outputs: readonly [{
319
+ readonly type: "bool";
320
+ }];
321
+ }];
322
+ export declare const TOKEN_ABI: readonly [{
323
+ readonly name: "approve";
324
+ readonly type: "function";
325
+ readonly stateMutability: "nonpayable";
326
+ readonly inputs: readonly [{
327
+ readonly name: "spender";
328
+ readonly type: "address";
329
+ }, {
330
+ readonly name: "amount";
331
+ readonly type: "uint256";
332
+ }];
333
+ readonly outputs: readonly [{
334
+ readonly type: "bool";
335
+ }];
336
+ }, {
337
+ readonly name: "allowance";
338
+ readonly type: "function";
339
+ readonly stateMutability: "view";
340
+ readonly inputs: readonly [{
341
+ readonly name: "owner";
342
+ readonly type: "address";
343
+ }, {
344
+ readonly name: "spender";
345
+ readonly type: "address";
346
+ }];
347
+ readonly outputs: readonly [{
348
+ readonly type: "uint256";
349
+ }];
350
+ }, {
351
+ readonly name: "balanceOf";
352
+ readonly type: "function";
353
+ readonly stateMutability: "view";
354
+ readonly inputs: readonly [{
355
+ readonly name: "account";
356
+ readonly type: "address";
357
+ }];
358
+ readonly outputs: readonly [{
359
+ readonly type: "uint256";
360
+ }];
361
+ }, {
362
+ readonly name: "totalSupply";
363
+ readonly type: "function";
364
+ readonly stateMutability: "view";
365
+ readonly inputs: readonly [];
366
+ readonly outputs: readonly [{
367
+ readonly type: "uint256";
368
+ }];
369
+ }, {
370
+ readonly name: "transfer";
371
+ readonly type: "function";
372
+ readonly stateMutability: "nonpayable";
373
+ readonly inputs: readonly [{
374
+ readonly name: "to";
375
+ readonly type: "address";
376
+ }, {
377
+ readonly name: "amount";
378
+ readonly type: "uint256";
379
+ }];
380
+ readonly outputs: readonly [{
381
+ readonly type: "bool";
382
+ }];
383
+ }, {
384
+ readonly name: "name";
385
+ readonly type: "function";
386
+ readonly stateMutability: "view";
387
+ readonly inputs: readonly [];
388
+ readonly outputs: readonly [{
389
+ readonly type: "string";
390
+ }];
391
+ }, {
392
+ readonly name: "symbol";
393
+ readonly type: "function";
394
+ readonly stateMutability: "view";
395
+ readonly inputs: readonly [];
396
+ readonly outputs: readonly [{
397
+ readonly type: "string";
398
+ }];
399
+ }, {
400
+ readonly name: "decimals";
401
+ readonly type: "function";
402
+ readonly stateMutability: "view";
403
+ readonly inputs: readonly [];
404
+ readonly outputs: readonly [{
405
+ readonly type: "uint8";
406
+ }];
407
+ }];
408
+ //# sourceMappingURL=abi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgNf,CAAA;AAEV,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkEZ,CAAA"}