basedagents 0.1.3 → 0.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/README.md CHANGED
@@ -10,6 +10,17 @@ npm install basedagents
10
10
 
11
11
  ---
12
12
 
13
+ ## CLI
14
+
15
+ ```bash
16
+ npx basedagents validate # validates ./basedagents.json
17
+ npx basedagents validate path/to/file # validates a specific file
18
+ ```
19
+
20
+ Output shows schema errors, actionable recommendations (missing fields that affect reputation), and a summary. Exits with code 0 if valid, 1 if errors.
21
+
22
+ ---
23
+
13
24
  ## Quick Start
14
25
 
15
26
  ### Register a new agent
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import { main } from '../dist/cli/index.js';
3
+ main().catch(err => { console.error(err); process.exit(1); });
@@ -0,0 +1,9 @@
1
+ /**
2
+ * basedagents CLI
3
+ *
4
+ * Usage:
5
+ * basedagents validate [file] Validate a manifest before registration
6
+ * basedagents validate --help Show help
7
+ */
8
+ export declare function main(): Promise<void>;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4BH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAwB1C"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * basedagents CLI
3
+ *
4
+ * Usage:
5
+ * basedagents validate [file] Validate a manifest before registration
6
+ * basedagents validate --help Show help
7
+ */
8
+ import { validate } from './validate.js';
9
+ const VERSION = '0.1.3';
10
+ const HELP = `
11
+ basedagents — CLI for the BasedAgents agent registry
12
+
13
+ Usage:
14
+ basedagents <command> [options]
15
+
16
+ Commands:
17
+ validate [file] Validate a basedagents.json manifest
18
+ Defaults to ./basedagents.json if no file given
19
+
20
+ Options:
21
+ --version, -v Print version
22
+ --help, -h Show this help message
23
+
24
+ Examples:
25
+ basedagents validate
26
+ basedagents validate ./my-agent/basedagents.json
27
+ npx basedagents validate
28
+
29
+ Docs: https://basedagents.ai/docs
30
+ `;
31
+ export async function main() {
32
+ const args = process.argv.slice(2);
33
+ if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
34
+ console.log(HELP);
35
+ process.exit(0);
36
+ }
37
+ if (args.includes('--version') || args.includes('-v')) {
38
+ console.log(VERSION);
39
+ process.exit(0);
40
+ }
41
+ const command = args[0];
42
+ if (command === 'validate') {
43
+ const file = args[1] ?? 'basedagents.json';
44
+ const result = validate(file);
45
+ process.exit(result.valid ? 0 : 1);
46
+ }
47
+ console.error(`\nUnknown command: ${command}`);
48
+ console.error(`Run 'basedagents --help' for usage.\n`);
49
+ process.exit(1);
50
+ }
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;CAoBZ,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC;QAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * basedagents validate
3
+ *
4
+ * Reads a basedagents.json manifest, validates it against the JSON Schema,
5
+ * and reports errors + actionable recommendations before registration.
6
+ */
7
+ export interface ValidateResult {
8
+ valid: boolean;
9
+ errorCount: number;
10
+ warningCount: number;
11
+ }
12
+ export declare function validate(filePath: string): ValidateResult;
13
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/cli/validate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6PH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAgGzD"}
@@ -0,0 +1,329 @@
1
+ /**
2
+ * basedagents validate
3
+ *
4
+ * Reads a basedagents.json manifest, validates it against the JSON Schema,
5
+ * and reports errors + actionable recommendations before registration.
6
+ */
7
+ import Ajv from 'ajv';
8
+ import addFormats from 'ajv-formats';
9
+ import { readFileSync, existsSync } from 'fs';
10
+ import { resolve } from 'path';
11
+ // ─── Inline schema (works offline, no network dep) ───
12
+ const SCHEMA = {
13
+ $schema: 'http://json-schema.org/draft-07/schema#',
14
+ $id: 'https://basedagents.ai/schema/manifest/0.1.json',
15
+ title: 'BasedAgents Manifest',
16
+ type: 'object',
17
+ required: ['manifest_version', 'identity', 'capabilities', 'protocols'],
18
+ additionalProperties: false,
19
+ properties: {
20
+ $schema: { type: 'string' },
21
+ manifest_version: { type: 'string', const: '0.1' },
22
+ identity: {
23
+ type: 'object',
24
+ required: ['name', 'version', 'description'],
25
+ additionalProperties: false,
26
+ properties: {
27
+ name: { type: 'string', minLength: 1, maxLength: 100 },
28
+ version: { type: 'string', maxLength: 50 },
29
+ description: { type: 'string', minLength: 1, maxLength: 500 },
30
+ homepage: { type: 'string', format: 'uri' },
31
+ logo_url: { type: 'string', format: 'uri' },
32
+ contact_endpoint: { type: 'string', format: 'uri' },
33
+ contact_email: { type: 'string', format: 'email' },
34
+ organization: { type: 'string', maxLength: 100 },
35
+ organization_url: { type: 'string', format: 'uri' },
36
+ tags: { type: 'array', maxItems: 20, items: { type: 'string', maxLength: 50 } },
37
+ },
38
+ },
39
+ runtime: {
40
+ type: 'object',
41
+ additionalProperties: false,
42
+ properties: {
43
+ framework: { type: 'string' },
44
+ model: { type: 'string' },
45
+ model_provider: { type: 'string' },
46
+ language: { type: 'string' },
47
+ },
48
+ },
49
+ capabilities: {
50
+ type: 'array', minItems: 1, maxItems: 50,
51
+ items: { type: 'string', minLength: 1, maxLength: 100 },
52
+ },
53
+ protocols: {
54
+ type: 'array', minItems: 1,
55
+ items: { type: 'string', enum: ['https', 'mcp', 'a2a', 'websocket', 'grpc', 'openapi'] },
56
+ },
57
+ tools: {
58
+ type: 'array', maxItems: 50,
59
+ items: {
60
+ type: 'object', required: ['name'], additionalProperties: false,
61
+ properties: {
62
+ name: { type: 'string', minLength: 1 },
63
+ registry: { type: 'string', enum: ['npm', 'pypi', 'cargo', 'clawhub'] },
64
+ version: { type: 'string' },
65
+ purpose: { type: 'string', maxLength: 200 },
66
+ private: { type: 'boolean' },
67
+ },
68
+ },
69
+ },
70
+ permissions: {
71
+ type: 'object', additionalProperties: false,
72
+ properties: {
73
+ network: {
74
+ type: 'object', additionalProperties: false,
75
+ properties: {
76
+ outbound: { type: 'array', items: { type: 'string' } },
77
+ inbound: { type: 'boolean' },
78
+ },
79
+ },
80
+ data: {
81
+ type: 'object', additionalProperties: false,
82
+ properties: {
83
+ reads: { type: 'array', items: { type: 'string' } },
84
+ writes: { type: 'array', items: { type: 'string' } },
85
+ stores: { type: 'boolean' },
86
+ retains_pii: { type: 'boolean' },
87
+ },
88
+ },
89
+ compute: {
90
+ type: 'object', additionalProperties: false,
91
+ properties: {
92
+ max_tokens_per_request: { type: 'integer', minimum: 1 },
93
+ max_concurrent_requests: { type: 'integer', minimum: 1 },
94
+ },
95
+ },
96
+ },
97
+ },
98
+ safety: {
99
+ type: 'object', additionalProperties: false,
100
+ properties: {
101
+ content_policy: { type: 'string', enum: ['openai', 'anthropic', 'google', 'custom', 'none'] },
102
+ refuses: {
103
+ type: 'array',
104
+ items: {
105
+ type: 'string',
106
+ enum: [
107
+ 'harmful_code_generation', 'secrets_exfiltration', 'prompt_injection',
108
+ 'pii_collection', 'unauthorized_tool_calls', 'data_exfiltration',
109
+ 'social_engineering', 'self_replication',
110
+ ],
111
+ },
112
+ },
113
+ scope_bound: { type: 'boolean' },
114
+ human_in_loop: { type: 'boolean' },
115
+ human_in_loop_for: { type: 'array', items: { type: 'string' } },
116
+ sandboxed: { type: 'boolean' },
117
+ },
118
+ },
119
+ verification: {
120
+ type: 'object', additionalProperties: false,
121
+ properties: {
122
+ endpoint: { type: 'string', format: 'uri' },
123
+ protocol: { type: 'string', enum: ['https', 'mcp', 'a2a', 'websocket'] },
124
+ probe_instructions: { type: 'string', maxLength: 500 },
125
+ expected_response_ms: { type: 'integer', minimum: 100, maximum: 60000 },
126
+ },
127
+ },
128
+ registry: {
129
+ type: 'object', additionalProperties: false,
130
+ properties: {
131
+ id: { type: 'string', pattern: '^ag_[1-9A-HJ-NP-Za-km-z]+$' },
132
+ url: { type: 'string', format: 'uri' },
133
+ },
134
+ },
135
+ },
136
+ };
137
+ // ─── ANSI colors (no external dep) ───
138
+ const c = {
139
+ reset: '\x1b[0m',
140
+ bold: '\x1b[1m',
141
+ dim: '\x1b[2m',
142
+ red: '\x1b[31m',
143
+ yellow: '\x1b[33m',
144
+ green: '\x1b[32m',
145
+ cyan: '\x1b[36m',
146
+ white: '\x1b[37m',
147
+ };
148
+ const bold = (s) => `${c.bold}${s}${c.reset}`;
149
+ const red = (s) => `${c.red}${s}${c.reset}`;
150
+ const yellow = (s) => `${c.yellow}${s}${c.reset}`;
151
+ const green = (s) => `${c.green}${s}${c.reset}`;
152
+ const dim = (s) => `${c.dim}${s}${c.reset}`;
153
+ const cyan = (s) => `${c.cyan}${s}${c.reset}`;
154
+ // ─── Friendly error messages ───
155
+ function friendlyError(instancePath, message, params) {
156
+ if (!message)
157
+ return 'Invalid value';
158
+ // "must have required property 'X'"
159
+ if (params.missingProperty)
160
+ return `Required field ${bold(String(params.missingProperty))} is missing`;
161
+ // "must be equal to constant"
162
+ if (params.allowedValue !== undefined)
163
+ return `Must be ${bold(JSON.stringify(params.allowedValue))}`;
164
+ // "must be equal to one of the allowed values"
165
+ if (Array.isArray(params.allowedValues))
166
+ return `Must be one of: ${params.allowedValues.map(v => bold(String(v))).join(', ')}`;
167
+ // "must NOT have fewer than N items"
168
+ if (params.limit !== undefined && message.includes('fewer'))
169
+ return `Must contain at least ${bold(String(params.limit))} item${Number(params.limit) > 1 ? 's' : ''}`;
170
+ // "must NOT have more than N items"
171
+ if (params.limit !== undefined && message.includes('more'))
172
+ return `Cannot exceed ${bold(String(params.limit))} items`;
173
+ // "must match format"
174
+ if (params.format === 'uri')
175
+ return `Must be a valid URL (e.g. ${bold('https://example.com')})`;
176
+ if (params.format === 'email')
177
+ return `Must be a valid email address`;
178
+ // "must NOT have additional properties"
179
+ if (params.additionalProperty)
180
+ return `Unknown field ${bold(String(params.additionalProperty))} — check spelling`;
181
+ return message;
182
+ }
183
+ function getRecommendations(manifest) {
184
+ const recs = [];
185
+ const identity = (manifest.identity ?? {});
186
+ if (!manifest.tools || manifest.tools.length === 0) {
187
+ recs.push({
188
+ field: 'tools',
189
+ message: 'No skills/tools declared',
190
+ impact: 'Skill Trust component scores 0 (−15% of max reputation)',
191
+ });
192
+ }
193
+ if (!identity.contact_endpoint) {
194
+ recs.push({
195
+ field: 'identity.contact_endpoint',
196
+ message: 'No probe endpoint',
197
+ impact: 'Agent cannot reach active status without a verifiable endpoint',
198
+ });
199
+ }
200
+ if (!manifest.verification) {
201
+ recs.push({
202
+ field: 'verification',
203
+ message: 'No verification config',
204
+ impact: 'Verifiers won\'t know how to probe your agent',
205
+ });
206
+ }
207
+ if (!manifest.safety) {
208
+ recs.push({
209
+ field: 'safety',
210
+ message: 'No safety declarations',
211
+ impact: 'Agents without declared safety constraints are harder to trust',
212
+ });
213
+ }
214
+ if (!manifest.runtime) {
215
+ recs.push({
216
+ field: 'runtime',
217
+ message: 'No runtime info',
218
+ impact: 'Won\'t appear in framework/model-filtered searches',
219
+ });
220
+ }
221
+ if (!identity.organization) {
222
+ recs.push({
223
+ field: 'identity.organization',
224
+ message: 'No organization set',
225
+ impact: 'Lower discoverability for enterprise search',
226
+ });
227
+ }
228
+ const data = (manifest.permissions?.data ?? {});
229
+ if (data.retains_pii === true && !identity.contact_email) {
230
+ recs.push({
231
+ field: 'identity.contact_email',
232
+ message: 'PII retention declared but no contact email',
233
+ impact: 'Required for compliance — GDPR/CCPA surface area',
234
+ });
235
+ }
236
+ return recs;
237
+ }
238
+ export function validate(filePath) {
239
+ const absPath = resolve(filePath);
240
+ console.log('');
241
+ // 1. File exists?
242
+ if (!existsSync(absPath)) {
243
+ console.log(red(`✗ File not found: ${filePath}`));
244
+ console.log(dim(` Create a basedagents.json in this directory to get started.`));
245
+ console.log(dim(` See: https://basedagents.ai/docs/manifest\n`));
246
+ return { valid: false, errorCount: 1, warningCount: 0 };
247
+ }
248
+ console.log(green(`✓`) + ` ${bold(filePath)}`);
249
+ // 2. Valid JSON?
250
+ let manifest;
251
+ try {
252
+ manifest = JSON.parse(readFileSync(absPath, 'utf-8'));
253
+ }
254
+ catch (e) {
255
+ const msg = e instanceof SyntaxError ? e.message : String(e);
256
+ console.log(red(`✗ Invalid JSON: ${msg}\n`));
257
+ return { valid: false, errorCount: 1, warningCount: 0 };
258
+ }
259
+ console.log(green(`✓`) + ` Valid JSON`);
260
+ // 3. Schema validation
261
+ const ajv = new Ajv({ allErrors: true, strict: false });
262
+ addFormats(ajv);
263
+ const valid = ajv.validate(SCHEMA, manifest);
264
+ const errors = ajv.errors ?? [];
265
+ console.log('');
266
+ console.log(bold(`Validating against manifest schema v0.1...`));
267
+ console.log('');
268
+ if (errors.length > 0) {
269
+ console.log(bold(red(`✗ ${errors.length} error${errors.length > 1 ? 's' : ''}`)));
270
+ for (const err of errors) {
271
+ const path = err.instancePath
272
+ ? err.instancePath.replace(/\//g, '.').replace(/^\./, '')
273
+ : err.params.missingProperty
274
+ ? String(err.params.missingProperty)
275
+ : '(root)';
276
+ const msg = friendlyError(err.instancePath, err.message, err.params);
277
+ const label = path ? cyan(path.padEnd(30)) : cyan('(root)'.padEnd(30));
278
+ console.log(` ${red('✗')} ${label} ${msg}`);
279
+ }
280
+ console.log('');
281
+ }
282
+ else {
283
+ console.log(green(`✓ Schema valid`));
284
+ console.log('');
285
+ }
286
+ // 4. Recommendations
287
+ const recs = getRecommendations(manifest);
288
+ if (recs.length > 0) {
289
+ console.log(bold(yellow(`⚠ ${recs.length} recommendation${recs.length > 1 ? 's' : ''}`)));
290
+ for (const rec of recs) {
291
+ console.log(` ${yellow('⚠')} ${cyan(rec.field.padEnd(30))} ${rec.message}`);
292
+ console.log(` ${''.padEnd(30)} ${dim(rec.impact)}`);
293
+ }
294
+ console.log('');
295
+ }
296
+ // 5. Summary of what's present
297
+ const identity = (manifest.identity ?? {});
298
+ const tools = (manifest.tools ?? []);
299
+ const capabilities = (manifest.capabilities ?? []);
300
+ console.log(bold('Summary'));
301
+ const rows = [
302
+ ['name', String(identity.name ?? dim('—'))],
303
+ ['version', String(identity.version ?? dim('—'))],
304
+ ['capabilities', capabilities.length > 0 ? capabilities.slice(0, 5).join(', ') + (capabilities.length > 5 ? ` +${capabilities.length - 5} more` : '') : dim('—')],
305
+ ['protocols', (manifest.protocols ?? []).join(', ') || dim('—')],
306
+ ['tools', tools.length > 0 ? `${tools.length} declared` : dim('none')],
307
+ ['safety', manifest.safety ? green('declared') : dim('not set')],
308
+ ['verification', manifest.verification?.endpoint ? green(String(manifest.verification.endpoint)) : dim('not set')],
309
+ ];
310
+ for (const [key, val] of rows) {
311
+ console.log(` ${dim(key.padEnd(14))} ${val}`);
312
+ }
313
+ console.log('');
314
+ // 6. Final verdict
315
+ if (errors.length === 0) {
316
+ if (recs.length === 0) {
317
+ console.log(green(bold('✓ Ready to register')) + ` Run: ${cyan('basedagents register')}\n`);
318
+ }
319
+ else {
320
+ console.log(yellow(bold('⚠ Valid but incomplete')) + ` Fix recommendations to maximize reputation.\n`);
321
+ console.log(` Run: ${cyan('basedagents register')} to register anyway.\n`);
322
+ }
323
+ }
324
+ else {
325
+ console.log(red(bold('✗ Not ready')) + ` Fix the errors above before registering.\n`);
326
+ }
327
+ return { valid: errors.length === 0, errorCount: errors.length, warningCount: recs.length };
328
+ }
329
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/cli/validate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "basedagents",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "description": "SDK for the BasedAgents identity and reputation registry — register AI agents, sign requests, search the registry, and submit verifications",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -11,8 +11,12 @@
11
11
  "types": "./dist/index.d.ts"
12
12
  }
13
13
  },
14
+ "bin": {
15
+ "basedagents": "./bin/basedagents.mjs"
16
+ },
14
17
  "files": [
15
18
  "dist",
19
+ "bin",
16
20
  "README.md",
17
21
  "LICENSE"
18
22
  ],
@@ -48,6 +52,8 @@
48
52
  },
49
53
  "dependencies": {
50
54
  "@noble/ed25519": "^2.2.0",
51
- "@noble/hashes": "^1.7.0"
55
+ "@noble/hashes": "^1.7.0",
56
+ "ajv": "^8.17.1",
57
+ "ajv-formats": "^3.0.1"
52
58
  }
53
59
  }