@entitai/aieos 1.2.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.
- package/LICENSE +352 -0
- package/README.md +132 -0
- package/dist/cjs/cli.cjs +439 -0
- package/dist/cjs/cli.cjs.map +1 -0
- package/dist/cjs/cli.d.cts +12 -0
- package/dist/cjs/cli.d.ts.map +1 -0
- package/dist/cjs/client.cjs +65 -0
- package/dist/cjs/client.cjs.map +1 -0
- package/dist/cjs/client.d.cts +82 -0
- package/dist/cjs/client.d.ts.map +1 -0
- package/dist/cjs/crypto.cjs +97 -0
- package/dist/cjs/crypto.cjs.map +1 -0
- package/dist/cjs/crypto.d.cts +27 -0
- package/dist/cjs/crypto.d.ts.map +1 -0
- package/dist/cjs/index.cjs +17 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +11 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/esm/cli.d.ts +12 -0
- package/dist/esm/cli.d.ts.map +1 -0
- package/dist/esm/cli.js +404 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/client.d.ts +82 -0
- package/dist/esm/client.d.ts.map +1 -0
- package/dist/esm/client.js +60 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/crypto.d.ts +27 -0
- package/dist/esm/crypto.d.ts.map +1 -0
- package/dist/esm/crypto.js +92 -0
- package/dist/esm/crypto.js.map +1 -0
- package/dist/esm/index.d.ts +11 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/package.json +66 -0
- package/schema/v1/aieos.schema.json +255 -0
- package/schema/v1.1/aieos.schema.json +282 -0
- package/schema/v1.2/aieos.schema.json +316 -0
package/dist/cjs/cli.cjs
ADDED
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* aieos CLI — interactive wizard for registering and managing AIEOS agent profiles.
|
|
5
|
+
* Usage:
|
|
6
|
+
* npx aieos register
|
|
7
|
+
* npx aieos update
|
|
8
|
+
* npx aieos lookup <identifier>
|
|
9
|
+
* npx aieos keygen
|
|
10
|
+
* npx aieos verify <entity-id-or-alias>
|
|
11
|
+
*/
|
|
12
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
15
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
16
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
17
|
+
}
|
|
18
|
+
Object.defineProperty(o, k2, desc);
|
|
19
|
+
}) : (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k;
|
|
21
|
+
o[k2] = m[k];
|
|
22
|
+
}));
|
|
23
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
24
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
25
|
+
}) : function(o, v) {
|
|
26
|
+
o["default"] = v;
|
|
27
|
+
});
|
|
28
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
29
|
+
var ownKeys = function(o) {
|
|
30
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
31
|
+
var ar = [];
|
|
32
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
33
|
+
return ar;
|
|
34
|
+
};
|
|
35
|
+
return ownKeys(o);
|
|
36
|
+
};
|
|
37
|
+
return function (mod) {
|
|
38
|
+
if (mod && mod.__esModule) return mod;
|
|
39
|
+
var result = {};
|
|
40
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
41
|
+
__setModuleDefault(result, mod);
|
|
42
|
+
return result;
|
|
43
|
+
};
|
|
44
|
+
})();
|
|
45
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
+
const p = __importStar(require("@clack/prompts"));
|
|
47
|
+
const node_fs_1 = require("node:fs");
|
|
48
|
+
const node_path_1 = require("node:path");
|
|
49
|
+
const crypto_js_1 = require("./crypto.cjs");
|
|
50
|
+
const client_js_1 = require("./client.cjs");
|
|
51
|
+
const VERSION = '1.2.0';
|
|
52
|
+
const SCHEMA_VERSION = '1.2';
|
|
53
|
+
const DEFAULT_BASE_URL = 'https://api.aieos.org';
|
|
54
|
+
const cmd = process.argv[2];
|
|
55
|
+
async function main() {
|
|
56
|
+
switch (cmd) {
|
|
57
|
+
case 'register': return cmdRegister();
|
|
58
|
+
case 'update': return cmdUpdate();
|
|
59
|
+
case 'lookup': return cmdLookup();
|
|
60
|
+
case 'keygen': return cmdKeygen();
|
|
61
|
+
case 'verify': return cmdVerify();
|
|
62
|
+
default: return cmdHelp();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// ─── register ────────────────────────────────────────────────────────────────
|
|
66
|
+
async function cmdRegister() {
|
|
67
|
+
p.intro(` aieos register (v${VERSION})`);
|
|
68
|
+
p.note('This wizard will generate an Ed25519 keypair and register\n' +
|
|
69
|
+
'your AI agent identity on the AIEOS network.\n\n' +
|
|
70
|
+
'Your private key stays on your machine. Never share it.', 'Welcome');
|
|
71
|
+
const baseUrl = resolveBaseUrl();
|
|
72
|
+
const client = new client_js_1.AieosClient({ baseUrl });
|
|
73
|
+
// ── Identity ────────────────────────────────────────────────────────────────
|
|
74
|
+
const agentNameRaw = await p.text({
|
|
75
|
+
message: 'Agent name',
|
|
76
|
+
placeholder: 'e.g. Aria, EchoBot, ResearchAgent-7',
|
|
77
|
+
validate: (v) => (v.trim().length < 1 ? 'Name is required.' : undefined),
|
|
78
|
+
});
|
|
79
|
+
if (p.isCancel(agentNameRaw))
|
|
80
|
+
return cancelled();
|
|
81
|
+
const agentName = agentNameRaw.trim();
|
|
82
|
+
const agentTypeRaw = await p.select({
|
|
83
|
+
message: 'Agent type',
|
|
84
|
+
options: [
|
|
85
|
+
{ value: 'AI Assistant', label: 'AI Assistant' },
|
|
86
|
+
{ value: 'Research Agent', label: 'Research Agent' },
|
|
87
|
+
{ value: 'Coding Agent', label: 'Coding Agent' },
|
|
88
|
+
{ value: 'Data Agent', label: 'Data Agent' },
|
|
89
|
+
{ value: 'Creative Agent', label: 'Creative Agent' },
|
|
90
|
+
{ value: 'Autonomous Agent', label: 'Autonomous Agent' },
|
|
91
|
+
{ value: 'Custom', label: 'Custom (I\'ll type it)' },
|
|
92
|
+
],
|
|
93
|
+
});
|
|
94
|
+
if (p.isCancel(agentTypeRaw))
|
|
95
|
+
return cancelled();
|
|
96
|
+
let agentType = agentTypeRaw;
|
|
97
|
+
if (agentType === 'Custom') {
|
|
98
|
+
const custom = await p.text({
|
|
99
|
+
message: 'Describe your agent type',
|
|
100
|
+
placeholder: 'e.g. Medical Diagnosis Assistant',
|
|
101
|
+
});
|
|
102
|
+
if (p.isCancel(custom))
|
|
103
|
+
return cancelled();
|
|
104
|
+
agentType = custom.trim();
|
|
105
|
+
}
|
|
106
|
+
const descRaw = await p.text({
|
|
107
|
+
message: 'Short description (optional)',
|
|
108
|
+
placeholder: 'What does your agent do?',
|
|
109
|
+
});
|
|
110
|
+
if (p.isCancel(descRaw))
|
|
111
|
+
return cancelled();
|
|
112
|
+
const description = descRaw ? descRaw.trim() : '';
|
|
113
|
+
// ── Alias ───────────────────────────────────────────────────────────────────
|
|
114
|
+
const wantAlias = await p.confirm({
|
|
115
|
+
message: 'Claim a custom alias? (e.g. @aria) Requires a small USDC payment.',
|
|
116
|
+
initialValue: false,
|
|
117
|
+
});
|
|
118
|
+
if (p.isCancel(wantAlias))
|
|
119
|
+
return cancelled();
|
|
120
|
+
let alias;
|
|
121
|
+
if (wantAlias) {
|
|
122
|
+
const aliasRaw = await p.text({
|
|
123
|
+
message: 'Desired alias (letters, numbers, underscore — max 32 chars)',
|
|
124
|
+
placeholder: 'aria',
|
|
125
|
+
validate: (v) => {
|
|
126
|
+
const t = v.trim();
|
|
127
|
+
if (t.length < 1 || t.length > 32)
|
|
128
|
+
return 'Must be 1–32 characters.';
|
|
129
|
+
if (!/^[a-zA-Z0-9_]+$/.test(t))
|
|
130
|
+
return 'Letters, numbers, and underscore only.';
|
|
131
|
+
return undefined;
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
if (p.isCancel(aliasRaw))
|
|
135
|
+
return cancelled();
|
|
136
|
+
alias = aliasRaw.trim();
|
|
137
|
+
}
|
|
138
|
+
// ── Contact email (optional, private) ─────────────────────────────────────
|
|
139
|
+
const emailRaw = await p.text({
|
|
140
|
+
message: 'Contact email (optional — stored privately for AIEOS updates, never public)',
|
|
141
|
+
placeholder: 'you@example.com',
|
|
142
|
+
validate: (v) => {
|
|
143
|
+
if (!v || v.trim() === '')
|
|
144
|
+
return undefined;
|
|
145
|
+
if (!v.includes('@'))
|
|
146
|
+
return 'Enter a valid email address.';
|
|
147
|
+
return undefined;
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
if (p.isCancel(emailRaw))
|
|
151
|
+
return cancelled();
|
|
152
|
+
const email = emailRaw ? emailRaw.trim() || undefined : undefined;
|
|
153
|
+
// ── Keypair ─────────────────────────────────────────────────────────────────
|
|
154
|
+
const spin = p.spinner();
|
|
155
|
+
spin.start('Generating Ed25519 keypair…');
|
|
156
|
+
const keypair = (0, crypto_js_1.generateKeypair)();
|
|
157
|
+
spin.stop('Keypair generated.');
|
|
158
|
+
// ── Build profile ───────────────────────────────────────────────────────────
|
|
159
|
+
const metadata = {
|
|
160
|
+
public_key: keypair.publicKey,
|
|
161
|
+
signature: '',
|
|
162
|
+
...(alias && { alias }),
|
|
163
|
+
};
|
|
164
|
+
const identity = {
|
|
165
|
+
names: [agentName],
|
|
166
|
+
agent_type: agentType,
|
|
167
|
+
...(description && { description }),
|
|
168
|
+
};
|
|
169
|
+
const profile = {
|
|
170
|
+
standard: {
|
|
171
|
+
protocol: 'AIEOS',
|
|
172
|
+
version: SCHEMA_VERSION,
|
|
173
|
+
schema_url: `https://aieos.org/schema/v${SCHEMA_VERSION}/aieos.schema.json`,
|
|
174
|
+
},
|
|
175
|
+
metadata,
|
|
176
|
+
identity,
|
|
177
|
+
};
|
|
178
|
+
// Sign
|
|
179
|
+
spin.start('Signing profile…');
|
|
180
|
+
const signature = (0, crypto_js_1.signProfile)(profile, keypair.privateKey);
|
|
181
|
+
profile.metadata.signature = signature;
|
|
182
|
+
spin.stop('Profile signed.');
|
|
183
|
+
// ── If alias requested, preview price ────────────────────────────────────
|
|
184
|
+
if (alias) {
|
|
185
|
+
const price = await previewAliasPrice(client, alias);
|
|
186
|
+
if (price) {
|
|
187
|
+
const confirmPay = await p.confirm({
|
|
188
|
+
message: `Alias @${alias} costs ${price} USDC on Base. Continue?`,
|
|
189
|
+
});
|
|
190
|
+
if (p.isCancel(confirmPay) || !confirmPay) {
|
|
191
|
+
p.cancel('Alias skipped. You can claim one later with aieos claim-alias.');
|
|
192
|
+
alias = undefined;
|
|
193
|
+
delete profile.metadata.alias;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// ── If alias, collect tx_id ──────────────────────────────────────────────
|
|
198
|
+
let txId;
|
|
199
|
+
if (alias) {
|
|
200
|
+
const txRaw = await p.text({
|
|
201
|
+
message: 'Paste your USDC payment tx ID (0x…)',
|
|
202
|
+
validate: (v) => (v.trim().length < 5 ? 'Enter a valid transaction ID.' : undefined),
|
|
203
|
+
});
|
|
204
|
+
if (p.isCancel(txRaw))
|
|
205
|
+
return cancelled();
|
|
206
|
+
txId = txRaw.trim();
|
|
207
|
+
}
|
|
208
|
+
// ── Register ────────────────────────────────────────────────────────────────
|
|
209
|
+
spin.start('Registering with AIEOS…');
|
|
210
|
+
try {
|
|
211
|
+
const payload = {
|
|
212
|
+
...profile,
|
|
213
|
+
...(email && { email }),
|
|
214
|
+
...(txId && { tx_id: txId }),
|
|
215
|
+
};
|
|
216
|
+
const result = await client.register(payload);
|
|
217
|
+
spin.stop('Registered!');
|
|
218
|
+
const outFile = (0, node_path_1.resolve)(`./${agentName.replace(/\s+/g, '-').toLowerCase()}-aieos.json`);
|
|
219
|
+
const saved = {
|
|
220
|
+
entity_id: result.entity_id,
|
|
221
|
+
alias: result.alias,
|
|
222
|
+
public_key: keypair.publicKey,
|
|
223
|
+
private_key: keypair.privateKey,
|
|
224
|
+
registered: new Date().toISOString(),
|
|
225
|
+
};
|
|
226
|
+
(0, node_fs_1.writeFileSync)(outFile, JSON.stringify(saved, null, 2), { mode: 0o600 });
|
|
227
|
+
p.outro(`\n Agent registered!\n\n` +
|
|
228
|
+
` Entity ID : ${result.entity_id}\n` +
|
|
229
|
+
(result.alias ? ` Alias : @${result.alias}\n` : '') +
|
|
230
|
+
`\n Keypair saved to: ${outFile}\n` +
|
|
231
|
+
` Keep the private key secret. Back it up securely.\n\n` +
|
|
232
|
+
` Profile URL: https://aieos.org/${result.alias ?? result.entity_id}`);
|
|
233
|
+
}
|
|
234
|
+
catch (err) {
|
|
235
|
+
spin.stop('Registration failed.');
|
|
236
|
+
printApiError(err);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
// ─── update ──────────────────────────────────────────────────────────────────
|
|
240
|
+
async function cmdUpdate() {
|
|
241
|
+
p.intro(` aieos update (v${VERSION})`);
|
|
242
|
+
const keyFileRaw = await p.text({
|
|
243
|
+
message: 'Path to your saved keypair JSON file',
|
|
244
|
+
placeholder: './my-agent-aieos.json',
|
|
245
|
+
validate: (v) => (!(0, node_fs_1.existsSync)(v.trim()) ? 'File not found.' : undefined),
|
|
246
|
+
});
|
|
247
|
+
if (p.isCancel(keyFileRaw))
|
|
248
|
+
return cancelled();
|
|
249
|
+
let saved;
|
|
250
|
+
try {
|
|
251
|
+
saved = JSON.parse((0, node_fs_1.readFileSync)(keyFileRaw.trim(), 'utf8'));
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
254
|
+
p.cancel('Could not read keypair file.');
|
|
255
|
+
process.exit(1);
|
|
256
|
+
}
|
|
257
|
+
const baseUrl = resolveBaseUrl();
|
|
258
|
+
const client = new client_js_1.AieosClient({ baseUrl });
|
|
259
|
+
const spin = p.spinner();
|
|
260
|
+
spin.start('Fetching current profile…');
|
|
261
|
+
let current;
|
|
262
|
+
try {
|
|
263
|
+
current = await client.lookup(saved.public_key);
|
|
264
|
+
spin.stop('Profile loaded.');
|
|
265
|
+
}
|
|
266
|
+
catch (err) {
|
|
267
|
+
spin.stop('Could not fetch profile.');
|
|
268
|
+
printApiError(err);
|
|
269
|
+
process.exit(1);
|
|
270
|
+
}
|
|
271
|
+
const currentIdentity = (current.identity ?? {});
|
|
272
|
+
const currentNames = Array.isArray(currentIdentity.names)
|
|
273
|
+
? currentIdentity.names
|
|
274
|
+
: [];
|
|
275
|
+
const currentMeta = (current.metadata ?? {});
|
|
276
|
+
const newNameRaw = await p.text({
|
|
277
|
+
message: 'Agent name',
|
|
278
|
+
initialValue: currentNames[0] ?? '',
|
|
279
|
+
validate: (v) => (v.trim().length < 1 ? 'Name is required.' : undefined),
|
|
280
|
+
});
|
|
281
|
+
if (p.isCancel(newNameRaw))
|
|
282
|
+
return cancelled();
|
|
283
|
+
const newDescRaw = await p.text({
|
|
284
|
+
message: 'Short description (optional)',
|
|
285
|
+
initialValue: currentIdentity.description ?? '',
|
|
286
|
+
});
|
|
287
|
+
if (p.isCancel(newDescRaw))
|
|
288
|
+
return cancelled();
|
|
289
|
+
const updatedMetadata = {
|
|
290
|
+
public_key: saved.public_key,
|
|
291
|
+
signature: '',
|
|
292
|
+
...(currentMeta.alias ? { alias: currentMeta.alias } : {}),
|
|
293
|
+
};
|
|
294
|
+
const newName = newNameRaw.trim();
|
|
295
|
+
const newDesc = newDescRaw ? newDescRaw.trim() : '';
|
|
296
|
+
const updatedProfile = {
|
|
297
|
+
standard: current.standard ?? {
|
|
298
|
+
protocol: 'AIEOS',
|
|
299
|
+
version: SCHEMA_VERSION,
|
|
300
|
+
},
|
|
301
|
+
metadata: updatedMetadata,
|
|
302
|
+
identity: {
|
|
303
|
+
...currentIdentity,
|
|
304
|
+
names: [newName],
|
|
305
|
+
...(newDesc && { description: newDesc }),
|
|
306
|
+
},
|
|
307
|
+
...(current.capabilities !== undefined ? { capabilities: current.capabilities } : {}),
|
|
308
|
+
...(current.endpoints !== undefined ? { endpoints: current.endpoints } : {}),
|
|
309
|
+
};
|
|
310
|
+
spin.start('Signing updated profile…');
|
|
311
|
+
const signature = (0, crypto_js_1.signProfile)(updatedProfile, saved.private_key);
|
|
312
|
+
updatedProfile.metadata.signature = signature;
|
|
313
|
+
spin.stop('Signed.');
|
|
314
|
+
spin.start('Updating profile…');
|
|
315
|
+
try {
|
|
316
|
+
await client.update(updatedProfile);
|
|
317
|
+
spin.stop('Profile updated!');
|
|
318
|
+
p.outro(`Profile updated. View at: https://aieos.org/${saved.alias ?? saved.entity_id}`);
|
|
319
|
+
}
|
|
320
|
+
catch (err) {
|
|
321
|
+
spin.stop('Update failed.');
|
|
322
|
+
printApiError(err);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
// ─── lookup ──────────────────────────────────────────────────────────────────
|
|
326
|
+
async function cmdLookup() {
|
|
327
|
+
const identifier = process.argv[3];
|
|
328
|
+
if (!identifier) {
|
|
329
|
+
console.error('Usage: aieos lookup <entity-id | public-key | alias>');
|
|
330
|
+
process.exit(1);
|
|
331
|
+
}
|
|
332
|
+
const client = new client_js_1.AieosClient({ baseUrl: resolveBaseUrl() });
|
|
333
|
+
try {
|
|
334
|
+
const profile = await client.lookup(identifier);
|
|
335
|
+
console.log(JSON.stringify(profile, null, 2));
|
|
336
|
+
}
|
|
337
|
+
catch (err) {
|
|
338
|
+
printApiError(err);
|
|
339
|
+
process.exit(1);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
// ─── keygen ──────────────────────────────────────────────────────────────────
|
|
343
|
+
function cmdKeygen() {
|
|
344
|
+
const kp = (0, crypto_js_1.generateKeypair)();
|
|
345
|
+
console.log(JSON.stringify(kp, null, 2));
|
|
346
|
+
}
|
|
347
|
+
// ─── verify ──────────────────────────────────────────────────────────────────
|
|
348
|
+
async function cmdVerify() {
|
|
349
|
+
const identifier = process.argv[3];
|
|
350
|
+
if (!identifier) {
|
|
351
|
+
console.error('Usage: aieos verify <entity-id | public-key | alias>');
|
|
352
|
+
process.exit(1);
|
|
353
|
+
}
|
|
354
|
+
const client = new client_js_1.AieosClient({ baseUrl: resolveBaseUrl() });
|
|
355
|
+
const spin = p.spinner();
|
|
356
|
+
spin.start('Fetching profile…');
|
|
357
|
+
try {
|
|
358
|
+
const profile = await client.lookup(identifier);
|
|
359
|
+
spin.stop('Profile fetched.');
|
|
360
|
+
const ok = (0, crypto_js_1.verifyProfile)(profile);
|
|
361
|
+
if (ok) {
|
|
362
|
+
console.log('Signature valid');
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
console.error('Signature INVALID');
|
|
366
|
+
process.exit(1);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
catch (err) {
|
|
370
|
+
spin.stop('Failed.');
|
|
371
|
+
printApiError(err);
|
|
372
|
+
process.exit(1);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
// ─── help ─────────────────────────────────────────────────────────────────────
|
|
376
|
+
function cmdHelp() {
|
|
377
|
+
console.log(`
|
|
378
|
+
aieos v${VERSION} — AIEOS identity registry CLI
|
|
379
|
+
|
|
380
|
+
Commands:
|
|
381
|
+
aieos register Register a new AI agent (interactive wizard)
|
|
382
|
+
aieos update Update your agent profile (interactive)
|
|
383
|
+
aieos lookup <identifier> Look up an agent by entity_id, public key, or alias
|
|
384
|
+
aieos verify <identifier> Fetch a profile and verify its Ed25519 signature
|
|
385
|
+
aieos keygen Generate a new Ed25519 keypair (prints JSON)
|
|
386
|
+
|
|
387
|
+
Options:
|
|
388
|
+
AIEOS_API_URL=<url> Override API base URL (default: https://api.aieos.org)
|
|
389
|
+
|
|
390
|
+
Examples:
|
|
391
|
+
npx aieos register
|
|
392
|
+
npx aieos lookup stella
|
|
393
|
+
npx aieos verify 3f9a1c2d-...
|
|
394
|
+
`);
|
|
395
|
+
}
|
|
396
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
397
|
+
function resolveBaseUrl() {
|
|
398
|
+
return (process.env['AIEOS_API_URL'] ?? DEFAULT_BASE_URL).replace(/\/$/, '');
|
|
399
|
+
}
|
|
400
|
+
function cancelled() {
|
|
401
|
+
p.cancel('Operation cancelled.');
|
|
402
|
+
process.exit(0);
|
|
403
|
+
}
|
|
404
|
+
function printApiError(err) {
|
|
405
|
+
if (err instanceof client_js_1.AieosApiError) {
|
|
406
|
+
p.log.error(`API error ${err.status}: ${err.message}`);
|
|
407
|
+
const b = err.body;
|
|
408
|
+
if (b.wallet_address) {
|
|
409
|
+
p.log.info(`Payment required:\n` +
|
|
410
|
+
` Amount : ${b.amount} ${b.currency}\n` +
|
|
411
|
+
` To : ${b.wallet_address}\n` +
|
|
412
|
+
` Chain : ${b.chain}\n` +
|
|
413
|
+
(b.instructions ? ` Note : ${b.instructions}` : ''));
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
else {
|
|
417
|
+
p.log.error(String(err));
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
async function previewAliasPrice(client, alias) {
|
|
421
|
+
try {
|
|
422
|
+
await client.register({
|
|
423
|
+
standard: { protocol: 'AIEOS', version: SCHEMA_VERSION },
|
|
424
|
+
metadata: { public_key: '0'.repeat(64), signature: '0'.repeat(128), alias },
|
|
425
|
+
identity: { names: ['_preview'] },
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
catch (err) {
|
|
429
|
+
if (err instanceof client_js_1.AieosApiError && err.status === 402 && err.body.amount) {
|
|
430
|
+
return err.body.amount;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
return null;
|
|
434
|
+
}
|
|
435
|
+
main().catch((err) => {
|
|
436
|
+
console.error(err);
|
|
437
|
+
process.exit(1);
|
|
438
|
+
});
|
|
439
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* aieos CLI — interactive wizard for registering and managing AIEOS agent profiles.
|
|
4
|
+
* Usage:
|
|
5
|
+
* npx aieos register
|
|
6
|
+
* npx aieos update
|
|
7
|
+
* npx aieos lookup <identifier>
|
|
8
|
+
* npx aieos keygen
|
|
9
|
+
* npx aieos verify <entity-id-or-alias>
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Minimal fetch-based client for the AIEOS public API.
|
|
4
|
+
* All methods call the public HTTPS endpoints — zero internal server code.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.AieosClient = exports.AieosApiError = void 0;
|
|
8
|
+
class AieosApiError extends Error {
|
|
9
|
+
status;
|
|
10
|
+
body;
|
|
11
|
+
constructor(status, body) {
|
|
12
|
+
super(body.message ?? body.error);
|
|
13
|
+
this.status = status;
|
|
14
|
+
this.body = body;
|
|
15
|
+
this.name = 'AieosApiError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.AieosApiError = AieosApiError;
|
|
19
|
+
class AieosClient {
|
|
20
|
+
base;
|
|
21
|
+
constructor(options = {}) {
|
|
22
|
+
this.base = (options.baseUrl ?? 'https://api.aieos.org').replace(/\/$/, '');
|
|
23
|
+
}
|
|
24
|
+
/** Register a new agent. Throws AieosApiError on failure. */
|
|
25
|
+
async register(payload) {
|
|
26
|
+
return this.post('/v1/register', payload);
|
|
27
|
+
}
|
|
28
|
+
/** Update an existing agent's profile. Throws AieosApiError on failure. */
|
|
29
|
+
async update(payload) {
|
|
30
|
+
return this.put('/v1/update', payload);
|
|
31
|
+
}
|
|
32
|
+
/** Lookup an agent by entity_id, public key, or alias. */
|
|
33
|
+
async lookup(identifier) {
|
|
34
|
+
const res = await fetch(`${this.base}/v1/lookup/${encodeURIComponent(identifier)}`);
|
|
35
|
+
if (!res.ok) {
|
|
36
|
+
const body = (await res.json().catch(() => ({ error: 'Unknown error' })));
|
|
37
|
+
throw new AieosApiError(res.status, body);
|
|
38
|
+
}
|
|
39
|
+
return res.json();
|
|
40
|
+
}
|
|
41
|
+
async post(path, body) {
|
|
42
|
+
const res = await fetch(`${this.base}${path}`, {
|
|
43
|
+
method: 'POST',
|
|
44
|
+
headers: { 'Content-Type': 'application/json' },
|
|
45
|
+
body: JSON.stringify(body),
|
|
46
|
+
});
|
|
47
|
+
const json = (await res.json().catch(() => ({ error: 'Unknown error' })));
|
|
48
|
+
if (!res.ok)
|
|
49
|
+
throw new AieosApiError(res.status, json);
|
|
50
|
+
return json;
|
|
51
|
+
}
|
|
52
|
+
async put(path, body) {
|
|
53
|
+
const res = await fetch(`${this.base}${path}`, {
|
|
54
|
+
method: 'PUT',
|
|
55
|
+
headers: { 'Content-Type': 'application/json' },
|
|
56
|
+
body: JSON.stringify(body),
|
|
57
|
+
});
|
|
58
|
+
const json = (await res.json().catch(() => ({ error: 'Unknown error' })));
|
|
59
|
+
if (!res.ok)
|
|
60
|
+
throw new AieosApiError(res.status, json);
|
|
61
|
+
return json;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.AieosClient = AieosClient;
|
|
65
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal fetch-based client for the AIEOS public API.
|
|
3
|
+
* All methods call the public HTTPS endpoints — zero internal server code.
|
|
4
|
+
*/
|
|
5
|
+
export interface RegisterPayload {
|
|
6
|
+
standard: {
|
|
7
|
+
protocol: string;
|
|
8
|
+
version: string;
|
|
9
|
+
schema_url?: string;
|
|
10
|
+
};
|
|
11
|
+
metadata: {
|
|
12
|
+
public_key: string;
|
|
13
|
+
signature: string;
|
|
14
|
+
alias?: string;
|
|
15
|
+
};
|
|
16
|
+
identity: {
|
|
17
|
+
names: string[];
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
};
|
|
20
|
+
capabilities?: Record<string, unknown>;
|
|
21
|
+
endpoints?: Record<string, unknown>;
|
|
22
|
+
tx_id?: string;
|
|
23
|
+
tx_uri?: string;
|
|
24
|
+
email?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface RegisterResult {
|
|
27
|
+
entity_id: string;
|
|
28
|
+
alias?: string;
|
|
29
|
+
message: string;
|
|
30
|
+
}
|
|
31
|
+
export interface UpdatePayload {
|
|
32
|
+
standard: {
|
|
33
|
+
protocol: string;
|
|
34
|
+
version: string;
|
|
35
|
+
schema_url?: string;
|
|
36
|
+
};
|
|
37
|
+
metadata: {
|
|
38
|
+
public_key: string;
|
|
39
|
+
signature: string;
|
|
40
|
+
[key: string]: unknown;
|
|
41
|
+
};
|
|
42
|
+
identity: {
|
|
43
|
+
names: string[];
|
|
44
|
+
[key: string]: unknown;
|
|
45
|
+
};
|
|
46
|
+
capabilities?: Record<string, unknown>;
|
|
47
|
+
endpoints?: Record<string, unknown>;
|
|
48
|
+
}
|
|
49
|
+
export interface ApiError {
|
|
50
|
+
error: string;
|
|
51
|
+
message?: string;
|
|
52
|
+
alias?: string;
|
|
53
|
+
amount?: string;
|
|
54
|
+
wallet_address?: string;
|
|
55
|
+
currency?: string;
|
|
56
|
+
chain?: string;
|
|
57
|
+
instructions?: string;
|
|
58
|
+
}
|
|
59
|
+
export declare class AieosApiError extends Error {
|
|
60
|
+
readonly status: number;
|
|
61
|
+
readonly body: ApiError;
|
|
62
|
+
constructor(status: number, body: ApiError);
|
|
63
|
+
}
|
|
64
|
+
export interface ClientOptions {
|
|
65
|
+
/** Defaults to https://api.aieos.org */
|
|
66
|
+
baseUrl?: string;
|
|
67
|
+
}
|
|
68
|
+
export declare class AieosClient {
|
|
69
|
+
private readonly base;
|
|
70
|
+
constructor(options?: ClientOptions);
|
|
71
|
+
/** Register a new agent. Throws AieosApiError on failure. */
|
|
72
|
+
register(payload: RegisterPayload): Promise<RegisterResult>;
|
|
73
|
+
/** Update an existing agent's profile. Throws AieosApiError on failure. */
|
|
74
|
+
update(payload: UpdatePayload): Promise<{
|
|
75
|
+
message: string;
|
|
76
|
+
}>;
|
|
77
|
+
/** Lookup an agent by entity_id, public key, or alias. */
|
|
78
|
+
lookup(identifier: string): Promise<Record<string, unknown>>;
|
|
79
|
+
private post;
|
|
80
|
+
private put;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC5E,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,aAAc,SAAQ,KAAK;aAEpB,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,QAAQ;gBADd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ;CAKjC;AAED,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,OAAO,GAAE,aAAkB;IAIvC,6DAA6D;IACvD,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAIjE,2EAA2E;IACrE,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIlE,0DAA0D;IACpD,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YASpD,IAAI;YAWJ,GAAG;CAUlB"}
|