agent-protocol-cli 1.0.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.
@@ -0,0 +1,694 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://agent-protocol.dev/v1.0/manifest.schema.json",
4
+ "title": "Agent Manifest v1.0",
5
+ "description": "Schema for Agent Manifest Protocol v1.0 \u2014 describing AI Skill capabilities, runtime, trust, dependencies, and lifecycle",
6
+ "type": "object",
7
+ "required": [
8
+ "$schema",
9
+ "id",
10
+ "name",
11
+ "version",
12
+ "capabilities"
13
+ ],
14
+ "properties": {
15
+ "$schema": {
16
+ "type": "string",
17
+ "description": "Protocol version URL",
18
+ "pattern": "^https://agent-protocol\\.dev/v[0-9]+\\.[0-9]+/manifest\\.schema\\.json$"
19
+ },
20
+ "id": {
21
+ "type": "string",
22
+ "description": "Globally unique identifier in reverse domain notation",
23
+ "pattern": "^[a-zA-Z][a-zA-Z0-9]*\\.[a-zA-Z][a-zA-Z0-9]*\\.[a-zA-Z][a-zA-Z0-9_-]+$",
24
+ "examples": [
25
+ "com.example.weather-agent"
26
+ ]
27
+ },
28
+ "name": {
29
+ "type": "string",
30
+ "description": "Human-readable name",
31
+ "minLength": 1,
32
+ "maxLength": 100
33
+ },
34
+ "description": {
35
+ "type": "string",
36
+ "description": "Short description (\u2264200 chars recommended)",
37
+ "maxLength": 500
38
+ },
39
+ "description_i18n": {
40
+ "type": "object",
41
+ "description": "Multilingual descriptions keyed by locale code",
42
+ "patternProperties": {
43
+ "^[a-z]{2}(-[A-Z]{2})?$": {
44
+ "type": "string"
45
+ }
46
+ },
47
+ "additionalProperties": false
48
+ },
49
+ "version": {
50
+ "type": "string",
51
+ "description": "Semantic version",
52
+ "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(-[a-zA-Z0-9]+(\\.[a-zA-Z0-9]+)*)?(\\+[a-zA-Z0-9]+(\\.[a-zA-Z0-9]+)*)?$"
53
+ },
54
+ "author": {
55
+ "type": "object",
56
+ "properties": {
57
+ "name": {
58
+ "type": "string"
59
+ },
60
+ "url": {
61
+ "type": "string",
62
+ "format": "uri"
63
+ },
64
+ "email": {
65
+ "type": "string",
66
+ "format": "email"
67
+ }
68
+ }
69
+ },
70
+ "tags": {
71
+ "type": "array",
72
+ "items": {
73
+ "type": "string",
74
+ "minLength": 1
75
+ },
76
+ "uniqueItems": true
77
+ },
78
+ "keywords": {
79
+ "type": "array",
80
+ "description": "SEO keywords for search engine discovery",
81
+ "items": {
82
+ "type": "string"
83
+ }
84
+ },
85
+ "category": {
86
+ "type": "string",
87
+ "description": "Category identifier"
88
+ },
89
+ "license": {
90
+ "type": "string",
91
+ "description": "SPDX license identifier"
92
+ },
93
+ "icon": {
94
+ "type": "string",
95
+ "format": "uri"
96
+ },
97
+ "homepage": {
98
+ "type": "string",
99
+ "format": "uri"
100
+ },
101
+ "repository": {
102
+ "type": "string",
103
+ "description": "Source repository URL",
104
+ "format": "uri"
105
+ },
106
+ "capabilities": {
107
+ "type": "array",
108
+ "description": "List of capabilities this Skill provides",
109
+ "minItems": 1,
110
+ "items": {
111
+ "type": "object",
112
+ "required": [
113
+ "id",
114
+ "name",
115
+ "description"
116
+ ],
117
+ "properties": {
118
+ "id": {
119
+ "type": "string",
120
+ "description": "Internal capability identifier",
121
+ "pattern": "^[a-zA-Z][a-zA-Z0-9_-]*$"
122
+ },
123
+ "name": {
124
+ "type": "string",
125
+ "description": "Capability display name"
126
+ },
127
+ "name_i18n": {
128
+ "type": "object",
129
+ "description": "Multilingual capability names",
130
+ "patternProperties": {
131
+ "^[a-z]{2}(-[A-Z]{2})?$": {
132
+ "type": "string"
133
+ }
134
+ }
135
+ },
136
+ "description": {
137
+ "type": "string",
138
+ "description": "What this capability does (\u2264500 chars)"
139
+ },
140
+ "type": {
141
+ "type": "string",
142
+ "description": "Capability type",
143
+ "enum": [
144
+ "query",
145
+ "action",
146
+ "composite",
147
+ "stream",
148
+ "batch"
149
+ ],
150
+ "default": "query"
151
+ },
152
+ "mode": {
153
+ "type": "string",
154
+ "description": "Execution mode",
155
+ "enum": [
156
+ "sync",
157
+ "async",
158
+ "stream",
159
+ "webhook"
160
+ ],
161
+ "default": "sync"
162
+ },
163
+ "intents": {
164
+ "type": "array",
165
+ "description": "Intent templates for semantic matching. Supports {param} variables.",
166
+ "items": {
167
+ "type": "string",
168
+ "minLength": 1
169
+ }
170
+ },
171
+ "input": {
172
+ "type": "object",
173
+ "description": "Input schema (JSON Schema format)",
174
+ "properties": {
175
+ "type": {
176
+ "type": "string",
177
+ "default": "object"
178
+ },
179
+ "properties": {
180
+ "type": "object"
181
+ },
182
+ "required": {
183
+ "type": "array",
184
+ "items": {
185
+ "type": "string"
186
+ }
187
+ }
188
+ }
189
+ },
190
+ "output": {
191
+ "type": "object",
192
+ "description": "Output schema description with optional example"
193
+ },
194
+ "latency": {
195
+ "type": "string",
196
+ "enum": [
197
+ "real-time",
198
+ "low",
199
+ "medium",
200
+ "high"
201
+ ],
202
+ "default": "medium"
203
+ },
204
+ "security_level": {
205
+ "type": "string",
206
+ "enum": [
207
+ "low",
208
+ "medium",
209
+ "high",
210
+ "critical"
211
+ ],
212
+ "default": "low"
213
+ },
214
+ "cost_per_call": {
215
+ "type": "number",
216
+ "description": "Cost per call in USD cents",
217
+ "minimum": 0,
218
+ "default": 0
219
+ },
220
+ "timeout_ms": {
221
+ "type": "number",
222
+ "description": "Timeout in milliseconds, 0 = no limit",
223
+ "minimum": 0
224
+ },
225
+ "rate_limit": {
226
+ "type": "object",
227
+ "description": "Rate limiting configuration",
228
+ "properties": {
229
+ "max_per_minute": {
230
+ "type": "integer",
231
+ "minimum": 0
232
+ },
233
+ "max_per_hour": {
234
+ "type": "integer",
235
+ "minimum": 0
236
+ },
237
+ "max_per_day": {
238
+ "type": "integer",
239
+ "minimum": 0
240
+ },
241
+ "enforcement": {
242
+ "type": "string",
243
+ "enum": [
244
+ "soft",
245
+ "hard"
246
+ ]
247
+ },
248
+ "error_message": {
249
+ "type": "string"
250
+ }
251
+ }
252
+ },
253
+ "dependencies": {
254
+ "type": "array",
255
+ "description": "IDs of capabilities this capability depends on",
256
+ "items": {
257
+ "type": "string"
258
+ }
259
+ },
260
+ "alternatives_to": {
261
+ "type": "array",
262
+ "description": "IDs of capabilities this can serve as fallback for",
263
+ "items": {
264
+ "type": "string"
265
+ }
266
+ },
267
+ "chain": {
268
+ "type": "object",
269
+ "description": "Chain strategy for composite capabilities",
270
+ "properties": {
271
+ "strategy": {
272
+ "type": "string",
273
+ "enum": [
274
+ "sequential",
275
+ "parallel",
276
+ "conditional",
277
+ "pipeline",
278
+ "dag"
279
+ ]
280
+ },
281
+ "timeout_ms": {
282
+ "type": "number"
283
+ }
284
+ }
285
+ }
286
+ }
287
+ }
288
+ },
289
+ "dependencies": {
290
+ "type": "object",
291
+ "description": "External dependencies (skills, APIs, models)",
292
+ "properties": {
293
+ "skills": {
294
+ "type": "array",
295
+ "items": {
296
+ "type": "object",
297
+ "properties": {
298
+ "id": {
299
+ "type": "string"
300
+ },
301
+ "version": {
302
+ "type": "string"
303
+ },
304
+ "optional": {
305
+ "type": "boolean",
306
+ "default": false
307
+ },
308
+ "description": {
309
+ "type": "string"
310
+ }
311
+ },
312
+ "required": [
313
+ "id"
314
+ ]
315
+ }
316
+ },
317
+ "apis": {
318
+ "type": "array",
319
+ "items": {
320
+ "type": "object",
321
+ "properties": {
322
+ "url": {
323
+ "type": "string",
324
+ "format": "uri"
325
+ },
326
+ "description": {
327
+ "type": "string"
328
+ },
329
+ "required": {
330
+ "type": "boolean",
331
+ "default": true
332
+ },
333
+ "auth_type": {
334
+ "type": "string",
335
+ "enum": [
336
+ "none",
337
+ "api_key",
338
+ "oauth2",
339
+ "bearer",
340
+ "basic",
341
+ "custom"
342
+ ]
343
+ }
344
+ },
345
+ "required": [
346
+ "url"
347
+ ]
348
+ }
349
+ },
350
+ "models": {
351
+ "type": "array",
352
+ "items": {
353
+ "type": "object",
354
+ "properties": {
355
+ "id": {
356
+ "type": "string"
357
+ },
358
+ "provider": {
359
+ "type": "string"
360
+ },
361
+ "min_version": {
362
+ "type": "string"
363
+ },
364
+ "required": {
365
+ "type": "boolean",
366
+ "default": true
367
+ }
368
+ },
369
+ "required": [
370
+ "id",
371
+ "provider"
372
+ ]
373
+ }
374
+ }
375
+ }
376
+ },
377
+ "lifecycle": {
378
+ "type": "object",
379
+ "description": "Lifecycle hooks (install, update, uninstall, health check)",
380
+ "properties": {
381
+ "on_install": {
382
+ "$ref": "#/definitions/lifecycle_hook"
383
+ },
384
+ "on_update": {
385
+ "$ref": "#/definitions/lifecycle_hook"
386
+ },
387
+ "on_uninstall": {
388
+ "$ref": "#/definitions/lifecycle_hook"
389
+ },
390
+ "on_error": {
391
+ "$ref": "#/definitions/lifecycle_hook"
392
+ },
393
+ "health_check": {
394
+ "type": "object",
395
+ "properties": {
396
+ "interval_seconds": {
397
+ "type": "integer",
398
+ "minimum": 1
399
+ }
400
+ }
401
+ }
402
+ }
403
+ },
404
+ "runtime": {
405
+ "type": "object",
406
+ "properties": {
407
+ "engine": {
408
+ "type": "string",
409
+ "description": "Primary runtime engine",
410
+ "examples": [
411
+ "openclaw",
412
+ "langchain",
413
+ "crewai"
414
+ ]
415
+ },
416
+ "min_version": {
417
+ "type": "string"
418
+ },
419
+ "max_version": {
420
+ "type": "string"
421
+ },
422
+ "config_url": {
423
+ "type": "string",
424
+ "format": "uri"
425
+ },
426
+ "config_schema": {
427
+ "type": "object",
428
+ "description": "JSON Schema for runtime configuration"
429
+ },
430
+ "entrypoint": {
431
+ "type": "string"
432
+ },
433
+ "type": {
434
+ "type": "string",
435
+ "enum": [
436
+ "skill",
437
+ "agent",
438
+ "plugin",
439
+ "tool",
440
+ "workflow"
441
+ ]
442
+ },
443
+ "engines": {
444
+ "type": "array",
445
+ "description": "Compatible engines",
446
+ "items": {
447
+ "type": "string"
448
+ }
449
+ },
450
+ "env": {
451
+ "type": "object",
452
+ "description": "Environment variable declarations",
453
+ "patternProperties": {
454
+ "^[A-Z_][A-Z0-9_]*$": {
455
+ "type": "object",
456
+ "properties": {
457
+ "description": {
458
+ "type": "string"
459
+ },
460
+ "required": {
461
+ "type": "boolean"
462
+ },
463
+ "default": {},
464
+ "source": {
465
+ "type": "string",
466
+ "enum": [
467
+ "user",
468
+ "runtime"
469
+ ]
470
+ },
471
+ "sensitive": {
472
+ "type": "boolean"
473
+ }
474
+ }
475
+ }
476
+ }
477
+ },
478
+ "requirements": {
479
+ "type": "object",
480
+ "description": "System requirements",
481
+ "properties": {
482
+ "system": {
483
+ "type": "object",
484
+ "properties": {
485
+ "memory_mb": {
486
+ "type": "number"
487
+ },
488
+ "disk_mb": {
489
+ "type": "number"
490
+ },
491
+ "network": {
492
+ "type": "boolean"
493
+ },
494
+ "gpu": {
495
+ "type": "boolean"
496
+ },
497
+ "bins": {
498
+ "type": "array",
499
+ "items": {
500
+ "type": "string"
501
+ }
502
+ },
503
+ "os": {
504
+ "type": "array",
505
+ "items": {
506
+ "type": "string"
507
+ }
508
+ },
509
+ "arch": {
510
+ "type": "array",
511
+ "items": {
512
+ "type": "string"
513
+ }
514
+ }
515
+ }
516
+ },
517
+ "packages": {
518
+ "type": "object",
519
+ "properties": {
520
+ "pip": {
521
+ "type": "array",
522
+ "items": {
523
+ "type": "string"
524
+ }
525
+ },
526
+ "npm": {
527
+ "type": "array",
528
+ "items": {
529
+ "type": "string"
530
+ }
531
+ },
532
+ "apt": {
533
+ "type": "array",
534
+ "items": {
535
+ "type": "string"
536
+ }
537
+ },
538
+ "brew": {
539
+ "type": "array",
540
+ "items": {
541
+ "type": "string"
542
+ }
543
+ }
544
+ }
545
+ }
546
+ }
547
+ }
548
+ },
549
+ "required": [
550
+ "engine"
551
+ ]
552
+ },
553
+ "trust": {
554
+ "type": "object",
555
+ "properties": {
556
+ "permissions": {
557
+ "type": "array",
558
+ "description": "Declared permissions required",
559
+ "items": {
560
+ "type": "string"
561
+ }
562
+ },
563
+ "sandbox_level": {
564
+ "type": "string",
565
+ "enum": [
566
+ "none",
567
+ "basic",
568
+ "isolated",
569
+ "air_gapped",
570
+ "custom"
571
+ ],
572
+ "default": "basic"
573
+ },
574
+ "approval_required": {
575
+ "type": "boolean",
576
+ "description": "Whether user approval is needed before each invocation",
577
+ "default": false
578
+ },
579
+ "approval_message": {
580
+ "type": "string",
581
+ "description": "User-facing approval prompt"
582
+ },
583
+ "verified_by": {
584
+ "type": "array",
585
+ "items": {
586
+ "type": "string"
587
+ }
588
+ },
589
+ "signature": {
590
+ "type": "object",
591
+ "properties": {
592
+ "algorithm": {
593
+ "type": "string"
594
+ },
595
+ "key_id": {
596
+ "type": "string"
597
+ },
598
+ "key_url": {
599
+ "type": "string",
600
+ "format": "uri"
601
+ },
602
+ "value": {
603
+ "type": "string"
604
+ },
605
+ "timestamp": {
606
+ "type": "string",
607
+ "format": "date-time"
608
+ }
609
+ }
610
+ },
611
+ "attestation": {
612
+ "type": "object",
613
+ "properties": {
614
+ "type": {
615
+ "type": "string"
616
+ },
617
+ "url": {
618
+ "type": "string",
619
+ "format": "uri"
620
+ }
621
+ }
622
+ },
623
+ "audit_url": {
624
+ "type": "string",
625
+ "format": "uri"
626
+ }
627
+ }
628
+ }
629
+ },
630
+ "definitions": {
631
+ "lifecycle_hook": {
632
+ "type": "object",
633
+ "properties": {
634
+ "type": {
635
+ "type": "string",
636
+ "enum": [
637
+ "hook",
638
+ "webhook",
639
+ "command",
640
+ "http"
641
+ ]
642
+ },
643
+ "url": {
644
+ "type": "string",
645
+ "format": "uri"
646
+ },
647
+ "command": {
648
+ "type": "string"
649
+ },
650
+ "timeout_ms": {
651
+ "type": "number"
652
+ },
653
+ "requires_approval": {
654
+ "type": "boolean"
655
+ },
656
+ "description": {
657
+ "type": "string"
658
+ }
659
+ }
660
+ },
661
+ "error": {
662
+ "type": "object",
663
+ "properties": {
664
+ "code": {
665
+ "type": "string",
666
+ "enum": [
667
+ "ERR_RATE_LIMIT",
668
+ "ERR_TIMEOUT",
669
+ "ERR_AUTH",
670
+ "ERR_PERMISSION",
671
+ "ERR_INPUT",
672
+ "ERR_DEPENDENCY",
673
+ "ERR_INTERNAL",
674
+ "ERR_NOT_FOUND"
675
+ ]
676
+ },
677
+ "message": {
678
+ "type": "string"
679
+ },
680
+ "retry_after_ms": {
681
+ "type": "number"
682
+ },
683
+ "details": {
684
+ "type": "object"
685
+ }
686
+ },
687
+ "required": [
688
+ "code",
689
+ "message"
690
+ ]
691
+ }
692
+ },
693
+ "$comment": "v1.0-stable: This schema is stable. Backward-compatible additions only."
694
+ }