@agentmanifest/cli 0.1.11 → 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/CHANGELOG.md +24 -0
- package/PROJECT_STRUCTURE.md +14 -18
- package/QUICK_START.md +15 -11
- package/README.md +51 -88
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +47 -423
- package/dist/commands/init.js.map +1 -1
- package/dist/constants.d.ts +50 -6
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +42 -15
- package/dist/constants.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +36 -64
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,30 @@ All notable changes to the AMP CLI will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.2.0] - 2026-02-19
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- AMP v0.2 spec support (agentmanifest-0.2)
|
|
12
|
+
- New categories: food-science, materials, construction, music-gear, agriculture, computing, language, history, commerce, identity, logistics, other
|
|
13
|
+
- New primary categories: reference, live, computational, transactional, enrichment, personal, discovery
|
|
14
|
+
- New pricing models: per-query, pay-what-you-want, tiered
|
|
15
|
+
- Required reliability section with maintained_by
|
|
16
|
+
- Endpoint parameters as array format; response_description required
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- `amp init` now scaffolds a manifest (no wizard). Edit the file or use an AI agent to fill.
|
|
20
|
+
- Removed interactive wizard - scaffold-only approach for simpler UX
|
|
21
|
+
- Overwrite confirmation when agent-manifest.json already exists
|
|
22
|
+
- Type definitions updated for v0.2 schema
|
|
23
|
+
- Contact is now a single string (email or URL)
|
|
24
|
+
- Authentication uses required flag + instructions instead of config
|
|
25
|
+
|
|
26
|
+
### Removed
|
|
27
|
+
- Interactive wizard (20+ prompts)
|
|
28
|
+
- Rate limits (not in v0.2 spec)
|
|
29
|
+
- Homepage/documentation from required fields
|
|
30
|
+
- Old v0.1 category and pricing models
|
|
31
|
+
|
|
8
32
|
## [0.1.11] - 2026-02-16
|
|
9
33
|
|
|
10
34
|
### Fixed
|
package/PROJECT_STRUCTURE.md
CHANGED
|
@@ -8,7 +8,7 @@ Complete Node.js CLI tool for the Agent Manifest Protocol, ready for npm publica
|
|
|
8
8
|
amp-cli/
|
|
9
9
|
├── src/ # TypeScript source files
|
|
10
10
|
│ ├── commands/ # Command implementations
|
|
11
|
-
│ │ ├── init.ts #
|
|
11
|
+
│ │ ├── init.ts # Manifest scaffolding
|
|
12
12
|
│ │ ├── validate.ts # Manifest validation
|
|
13
13
|
│ │ └── publish.ts # Registry submission
|
|
14
14
|
│ ├── constants.ts # Controlled vocabularies
|
|
@@ -38,12 +38,10 @@ amp-cli/
|
|
|
38
38
|
- Defines three main commands: init, validate, publish
|
|
39
39
|
- Includes version and help information
|
|
40
40
|
|
|
41
|
-
#### `commands/init.ts` (
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
- Supports multiple endpoints with parameters
|
|
46
|
-
- Generates compliant AMP v0.1 manifest
|
|
41
|
+
#### `commands/init.ts` (Scaffolding)
|
|
42
|
+
- Creates minimal valid agent-manifest.json per AMP v0.2 spec
|
|
43
|
+
- No prompts - edit the file or have an AI agent fill it in
|
|
44
|
+
- Prompts for overwrite confirmation if file already exists
|
|
47
45
|
|
|
48
46
|
#### `commands/validate.ts` (Validation)
|
|
49
47
|
- Reads manifest from filesystem
|
|
@@ -58,12 +56,14 @@ amp-cli/
|
|
|
58
56
|
- Returns listing ID and registry URL
|
|
59
57
|
|
|
60
58
|
#### `constants.ts` (Controlled Vocabularies)
|
|
61
|
-
- Standard categories (
|
|
62
|
-
-
|
|
59
|
+
- Standard categories (20 categories: food-science, materials, chemistry, etc.)
|
|
60
|
+
- Primary categories (reference, live, computational, transactional, enrichment, personal, discovery)
|
|
61
|
+
- Pricing models (free, per-query, subscription, pay-what-you-want, tiered)
|
|
63
62
|
- Authentication types (none, api_key, oauth2, bearer)
|
|
63
|
+
- Maintained-by options (individual, organization, community)
|
|
64
64
|
|
|
65
65
|
#### `types.ts` (TypeScript Definitions)
|
|
66
|
-
- Complete type definitions for AMP v0.
|
|
66
|
+
- Complete type definitions for AMP v0.2
|
|
67
67
|
- Interfaces for all manifest sections
|
|
68
68
|
- Type safety for parameters and responses
|
|
69
69
|
|
|
@@ -125,14 +125,10 @@ amp-cli/
|
|
|
125
125
|
|
|
126
126
|
## Key Features
|
|
127
127
|
|
|
128
|
-
###
|
|
129
|
-
-
|
|
130
|
-
-
|
|
131
|
-
-
|
|
132
|
-
- Parameter configuration
|
|
133
|
-
- Optional sections (rate limits, reliability)
|
|
134
|
-
- Contact information
|
|
135
|
-
- Agent guidance notes
|
|
128
|
+
### Scaffolding (`amp init`)
|
|
129
|
+
- Instant manifest creation
|
|
130
|
+
- Minimal valid template per spec
|
|
131
|
+
- Edit directly or use AI agent to fill in
|
|
136
132
|
|
|
137
133
|
### Validation (`amp validate`)
|
|
138
134
|
- API integration
|
package/QUICK_START.md
CHANGED
|
@@ -17,7 +17,7 @@ cd /path/to/your/api
|
|
|
17
17
|
amp init
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Creates `agent-manifest.json`. Edit it to add your API details.
|
|
21
21
|
|
|
22
22
|
### 2. Validate Your Manifest
|
|
23
23
|
|
|
@@ -52,15 +52,14 @@ amp publish
|
|
|
52
52
|
|
|
53
53
|
## Minimal Manifest Example
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
`amp init` creates a scaffold like this. Edit to add your API details:
|
|
56
56
|
|
|
57
57
|
```json
|
|
58
58
|
{
|
|
59
|
-
"spec_version": "agentmanifest-0.
|
|
59
|
+
"spec_version": "agentmanifest-0.2",
|
|
60
60
|
"name": "Weather Data API",
|
|
61
61
|
"version": "1.0.0",
|
|
62
62
|
"description": "Provides real-time weather data and forecasts for locations worldwide with high accuracy and comprehensive coverage including current conditions, hourly forecasts, and historical data.",
|
|
63
|
-
"homepage": "https://api.weather-data.com",
|
|
64
63
|
"categories": ["weather"],
|
|
65
64
|
"primary_category": "live",
|
|
66
65
|
"endpoints": [
|
|
@@ -68,19 +67,24 @@ The wizard will help you create something like this:
|
|
|
68
67
|
"path": "/current",
|
|
69
68
|
"method": "GET",
|
|
70
69
|
"description": "Get current weather for a location",
|
|
71
|
-
"
|
|
72
|
-
|
|
73
|
-
"description": "Current weather conditions"
|
|
74
|
-
}
|
|
70
|
+
"parameters": [],
|
|
71
|
+
"response_description": "Current weather conditions including temperature and conditions"
|
|
75
72
|
}
|
|
76
73
|
],
|
|
77
74
|
"pricing": {
|
|
78
|
-
"model": "free"
|
|
75
|
+
"model": "free",
|
|
76
|
+
"free_tier": { "queries_per_day": null, "queries_per_month": null }
|
|
79
77
|
},
|
|
80
78
|
"authentication": {
|
|
79
|
+
"required": false,
|
|
81
80
|
"type": "none"
|
|
82
81
|
},
|
|
82
|
+
"reliability": {
|
|
83
|
+
"maintained_by": "organization"
|
|
84
|
+
},
|
|
83
85
|
"agent_notes": "Simple weather API. Use location parameter with city names or coordinates for precise results.",
|
|
86
|
+
"contact": "support@weather-data.com",
|
|
87
|
+
"listing_requested": true,
|
|
84
88
|
"last_updated": "2026-02-15T10:30:00Z"
|
|
85
89
|
}
|
|
86
90
|
```
|
|
@@ -122,8 +126,8 @@ amp publish
|
|
|
122
126
|
|
|
123
127
|
1. **Description Length**: Must be ≥100 characters. Be descriptive!
|
|
124
128
|
2. **Agent Notes**: Must be ≥50 characters. Tell agents how to use your API.
|
|
125
|
-
3. **Categories**: Choose the most relevant. Primary category
|
|
126
|
-
4. **Homepage**:
|
|
129
|
+
3. **Categories**: Choose the most relevant. Primary category (reference, live, computational, etc.) is separate from categories.
|
|
130
|
+
4. **Homepage**: Host your manifest at `https://your-api.com/.well-known/agent-manifest.json`
|
|
127
131
|
|
|
128
132
|
## Hosting Your Manifest
|
|
129
133
|
|
package/README.md
CHANGED
|
@@ -28,54 +28,20 @@ npx amp --help
|
|
|
28
28
|
|
|
29
29
|
### `amp init`
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
Scaffold a valid `agent-manifest.json` file in the current directory.
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
34
|
amp init
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
- **Basic Information**: Name, version, description, URLs
|
|
40
|
-
- **Categories**: Primary and secondary categories from controlled vocabulary
|
|
41
|
-
- **Endpoints**: API endpoints with methods, parameters, and responses
|
|
42
|
-
- **Pricing**: Free, usage-based, or subscription models
|
|
43
|
-
- **Authentication**: None, API key, OAuth2, or bearer token
|
|
44
|
-
- **Rate Limits**: Request limits per minute/day (optional)
|
|
45
|
-
- **Reliability**: Uptime and response time metrics (optional)
|
|
46
|
-
- **Contact**: Support email, URLs, GitHub (optional)
|
|
47
|
-
- **Agent Notes**: Implementation guidance for AI agents (min 50 chars)
|
|
48
|
-
|
|
49
|
-
The generated manifest will be saved as `agent-manifest.json` in your current directory.
|
|
50
|
-
|
|
51
|
-
#### Example Session
|
|
37
|
+
Creates a minimal valid manifest per the AMP v0.2 specification. Edit the file to add your API details, or have an AI agent fill it in. Then run `amp validate` to check compliance.
|
|
52
38
|
|
|
53
39
|
```bash
|
|
54
40
|
$ amp init
|
|
55
41
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
? API name: Chemistry Calculator API
|
|
60
|
-
? Version (semantic versioning): 1.0.0
|
|
61
|
-
? Description (min 100 characters): A comprehensive chemistry API providing molecular calculations, compound information, and reaction predictions for AI agents working with chemical data
|
|
62
|
-
? Homepage URL (optional): https://api.chemcalc.com
|
|
63
|
-
? Documentation URL (optional): https://docs.chemcalc.com
|
|
64
|
-
|
|
65
|
-
🏷️ Categories
|
|
66
|
-
? Select categories: chemistry, education
|
|
67
|
-
? Select primary category: chemistry
|
|
68
|
-
|
|
69
|
-
🔌 Endpoints
|
|
70
|
-
? Endpoint path: /calculate/molar-mass
|
|
71
|
-
? HTTP method: POST
|
|
72
|
-
? Endpoint description: Calculate molar mass of chemical compounds
|
|
73
|
-
? Response description: Returns molar mass in g/mol with compound details
|
|
74
|
-
? Add parameters to this endpoint? Yes
|
|
75
|
-
...
|
|
76
|
-
|
|
77
|
-
✅ Success!
|
|
78
|
-
Manifest created at: /path/to/agent-manifest.json
|
|
42
|
+
✅ Created agent-manifest.json
|
|
43
|
+
|
|
44
|
+
Edit the file, then run "amp validate".
|
|
79
45
|
```
|
|
80
46
|
|
|
81
47
|
---
|
|
@@ -119,7 +85,7 @@ File: /path/to/agent-manifest.json
|
|
|
119
85
|
Sending to validator API...
|
|
120
86
|
✅ Validation Passed
|
|
121
87
|
|
|
122
|
-
Your manifest is compliant with AMP specification v0.
|
|
88
|
+
Your manifest is compliant with AMP specification v0.2
|
|
123
89
|
|
|
124
90
|
Next step: Run "amp publish" to submit to registry
|
|
125
91
|
```
|
|
@@ -138,7 +104,7 @@ Sending to validator API...
|
|
|
138
104
|
|
|
139
105
|
Errors:
|
|
140
106
|
1. description: Must be at least 100 characters (currently 45)
|
|
141
|
-
2. primary_category: Must be one of
|
|
107
|
+
2. primary_category: Must be one of: reference, live, computational, transactional, enrichment, personal, discovery
|
|
142
108
|
3. agent_notes: Must be at least 50 characters (currently 20)
|
|
143
109
|
|
|
144
110
|
Please fix the errors and try again.
|
|
@@ -223,7 +189,7 @@ Run "amp validate" for detailed validation output.
|
|
|
223
189
|
### Complete Setup Flow
|
|
224
190
|
|
|
225
191
|
```bash
|
|
226
|
-
# 1. Create a new manifest
|
|
192
|
+
# 1. Create a new manifest
|
|
227
193
|
amp init
|
|
228
194
|
|
|
229
195
|
# 2. Review the generated file
|
|
@@ -240,20 +206,23 @@ amp publish
|
|
|
240
206
|
|
|
241
207
|
---
|
|
242
208
|
|
|
243
|
-
## Manifest Schema (v0.
|
|
209
|
+
## Manifest Schema (v0.2)
|
|
244
210
|
|
|
245
211
|
### Required Fields
|
|
246
212
|
|
|
247
|
-
- `spec_version`: Always `"agentmanifest-0.
|
|
248
|
-
- `name`: API name (
|
|
213
|
+
- `spec_version`: Always `"agentmanifest-0.2"`
|
|
214
|
+
- `name`: API name (3-100 characters)
|
|
249
215
|
- `version`: Semantic version (e.g., "1.0.0")
|
|
250
216
|
- `description`: Min 100 characters
|
|
251
217
|
- `categories`: Array of domain categories (from controlled vocabulary below)
|
|
252
218
|
- `primary_category`: API type - one of: "reference", "live", "computational", "transactional", "enrichment", "personal", "discovery"
|
|
253
219
|
- `endpoints`: At least one endpoint required
|
|
254
|
-
- `pricing.model`: "free", "
|
|
255
|
-
- `authentication.type`: "
|
|
220
|
+
- `pricing.model`: "free", "per-query", "subscription", "pay-what-you-want", or "tiered"
|
|
221
|
+
- `authentication.required`: Boolean; `type`: "api_key", "oauth2", "bearer", or "none"
|
|
222
|
+
- `reliability.maintained_by`: "individual", "organization", or "community"
|
|
256
223
|
- `agent_notes`: Min 50 characters - guidance for AI agents
|
|
224
|
+
- `contact`: Contact email or URL (string)
|
|
225
|
+
- `listing_requested`: Boolean
|
|
257
226
|
|
|
258
227
|
### Primary Category Types
|
|
259
228
|
|
|
@@ -268,21 +237,19 @@ amp publish
|
|
|
268
237
|
### Standard Domain Categories
|
|
269
238
|
|
|
270
239
|
```
|
|
271
|
-
|
|
272
|
-
geography,
|
|
273
|
-
|
|
240
|
+
food-science, materials, construction, music-gear, chemistry, biology,
|
|
241
|
+
geography, finance, legal, medical, engineering, agriculture, computing,
|
|
242
|
+
language, history, commerce, identity, weather, logistics, other
|
|
274
243
|
```
|
|
275
244
|
|
|
276
245
|
### Example Manifest
|
|
277
246
|
|
|
278
247
|
```json
|
|
279
248
|
{
|
|
280
|
-
"spec_version": "agentmanifest-0.
|
|
249
|
+
"spec_version": "agentmanifest-0.2",
|
|
281
250
|
"name": "Weather Data API",
|
|
282
251
|
"version": "2.1.0",
|
|
283
252
|
"description": "Real-time weather data and forecasts for locations worldwide. Provides current conditions, hourly forecasts, and historical weather data with high accuracy and global coverage.",
|
|
284
|
-
"homepage": "https://api.weather-data.com",
|
|
285
|
-
"documentation": "https://docs.weather-data.com",
|
|
286
253
|
"categories": ["weather", "geography"],
|
|
287
254
|
"primary_category": "live",
|
|
288
255
|
"endpoints": [
|
|
@@ -290,45 +257,41 @@ education, translation, media, general
|
|
|
290
257
|
"path": "/current",
|
|
291
258
|
"method": "GET",
|
|
292
259
|
"description": "Get current weather conditions for a location",
|
|
293
|
-
"parameters":
|
|
294
|
-
|
|
295
|
-
"
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
}
|
|
260
|
+
"parameters": [
|
|
261
|
+
{
|
|
262
|
+
"name": "location",
|
|
263
|
+
"type": "string",
|
|
264
|
+
"required": true,
|
|
265
|
+
"description": "City name or coordinates (lat,lon)"
|
|
300
266
|
}
|
|
301
|
-
|
|
302
|
-
"
|
|
303
|
-
"type": "object",
|
|
304
|
-
"description": "Current weather data including temperature, conditions, and metadata"
|
|
305
|
-
}
|
|
267
|
+
],
|
|
268
|
+
"response_description": "Current weather data including temperature, conditions, and metadata"
|
|
306
269
|
}
|
|
307
270
|
],
|
|
308
271
|
"pricing": {
|
|
309
|
-
"model": "
|
|
310
|
-
"
|
|
272
|
+
"model": "per-query",
|
|
273
|
+
"free_tier": {
|
|
274
|
+
"queries_per_day": 1000,
|
|
275
|
+
"queries_per_month": 10000
|
|
276
|
+
},
|
|
277
|
+
"paid_tier": {
|
|
278
|
+
"amount_usd": 0.001,
|
|
279
|
+
"unit": "per request",
|
|
280
|
+
"description": "$0.001 per request after free tier"
|
|
281
|
+
}
|
|
311
282
|
},
|
|
312
283
|
"authentication": {
|
|
284
|
+
"required": true,
|
|
313
285
|
"type": "api_key",
|
|
314
|
-
"
|
|
315
|
-
"header": "X-API-Key",
|
|
316
|
-
"signup_url": "https://api.weather-data.com/signup"
|
|
317
|
-
}
|
|
318
|
-
},
|
|
319
|
-
"rate_limits": {
|
|
320
|
-
"requests_per_minute": 60,
|
|
321
|
-
"requests_per_day": 10000
|
|
322
|
-
},
|
|
323
|
-
"reliability_metrics": {
|
|
324
|
-
"uptime_percentage": 99.9,
|
|
325
|
-
"avg_response_time_ms": 150
|
|
286
|
+
"instructions": "Obtain API key at https://api.weather-data.com/signup"
|
|
326
287
|
},
|
|
327
|
-
"
|
|
328
|
-
"
|
|
329
|
-
"
|
|
288
|
+
"reliability": {
|
|
289
|
+
"maintained_by": "organization",
|
|
290
|
+
"status_url": "https://status.weather-data.com",
|
|
291
|
+
"expected_uptime_pct": 99.9
|
|
330
292
|
},
|
|
331
293
|
"agent_notes": "Use the 'location' parameter with city names for simplicity. Coordinates provide more precise results. Response includes semantic metadata to help interpret weather conditions.",
|
|
294
|
+
"contact": "support@weather-data.com",
|
|
332
295
|
"listing_requested": true,
|
|
333
296
|
"last_updated": "2026-02-15T10:30:00Z"
|
|
334
297
|
}
|
|
@@ -340,14 +303,14 @@ education, translation, media, general
|
|
|
340
303
|
|
|
341
304
|
The validator checks for:
|
|
342
305
|
|
|
343
|
-
1. **Spec Version**: Must be `"agentmanifest-0.
|
|
344
|
-
2. **Semantic Versioning**: Version must follow `x.y.z` format
|
|
306
|
+
1. **Spec Version**: Must be `"agentmanifest-0.2"`
|
|
307
|
+
2. **Semantic Versioning**: Version must follow `x.y.z` format (with optional pre-release/build)
|
|
345
308
|
3. **Description Length**: Minimum 100 characters
|
|
346
309
|
4. **Agent Notes Length**: Minimum 50 characters
|
|
347
|
-
5. **Category
|
|
348
|
-
6. **Endpoints**: At least one endpoint
|
|
310
|
+
5. **Primary Category**: Must be one of reference, live, computational, transactional, enrichment, personal, discovery
|
|
311
|
+
6. **Endpoints**: At least one endpoint; description and response_description min 20 characters
|
|
349
312
|
7. **Valid URLs**: All URLs must be HTTPS
|
|
350
|
-
8. **Required Fields**: All mandatory fields present
|
|
313
|
+
8. **Required Fields**: All mandatory fields present including reliability
|
|
351
314
|
9. **Type Validation**: Fields match expected types
|
|
352
315
|
|
|
353
316
|
---
|
|
@@ -439,7 +402,7 @@ If you get validation errors, review the error messages carefully. Common issues
|
|
|
439
402
|
- **Description too short**: Must be at least 100 characters
|
|
440
403
|
- **Agent notes too short**: Must be at least 50 characters
|
|
441
404
|
- **Invalid version**: Must follow semantic versioning (e.g., "1.0.0")
|
|
442
|
-
- **
|
|
405
|
+
- **Invalid primary category**: Must be one of reference, live, computational, transactional, enrichment, personal, discovery
|
|
443
406
|
- **Missing endpoints**: At least one endpoint required
|
|
444
407
|
|
|
445
408
|
---
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAuCA,wBAAsB,WAAW,kBAkChC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -4,19 +4,45 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.initCommand = initCommand;
|
|
7
|
-
const inquirer_1 = __importDefault(require("inquirer"));
|
|
8
7
|
const promises_1 = __importDefault(require("fs/promises"));
|
|
9
8
|
const path_1 = __importDefault(require("path"));
|
|
10
9
|
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
-
const
|
|
10
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
11
|
+
/** Minimal valid manifest per agentmanifest-0.2 spec. AI agents or humans can fill in. */
|
|
12
|
+
function scaffoldManifest() {
|
|
13
|
+
return {
|
|
14
|
+
spec_version: 'agentmanifest-0.2',
|
|
15
|
+
name: 'My API',
|
|
16
|
+
version: '1.0.0',
|
|
17
|
+
description: 'Describe your API here. Minimum 100 characters required. Explain what data or capabilities this API provides for AI agents.',
|
|
18
|
+
categories: ['other'],
|
|
19
|
+
primary_category: 'reference',
|
|
20
|
+
endpoints: [
|
|
21
|
+
{
|
|
22
|
+
path: '/example',
|
|
23
|
+
method: 'GET',
|
|
24
|
+
description: 'Describe when and why agents should use this endpoint (min 20 chars)',
|
|
25
|
+
parameters: [],
|
|
26
|
+
response_description: 'Describe the response content and how to interpret it (min 20 chars)',
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
pricing: {
|
|
30
|
+
model: 'free',
|
|
31
|
+
free_tier: { queries_per_day: null, queries_per_month: null },
|
|
32
|
+
},
|
|
33
|
+
authentication: { required: false, type: 'none' },
|
|
34
|
+
reliability: { maintained_by: 'individual' },
|
|
35
|
+
agent_notes: 'Add implementation guidance for AI agents here. Minimum 50 characters. How should agents use this API?',
|
|
36
|
+
contact: 'you@example.com',
|
|
37
|
+
listing_requested: false,
|
|
38
|
+
last_updated: new Date().toISOString(),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
12
41
|
async function initCommand() {
|
|
13
|
-
|
|
14
|
-
console.log(chalk_1.default.gray('This wizard will help you create a valid agent-manifest.json file.\n'));
|
|
42
|
+
const outputPath = path_1.default.join(process.cwd(), 'agent-manifest.json');
|
|
15
43
|
try {
|
|
16
|
-
|
|
17
|
-
const outputPath = path_1.default.join(process.cwd(), 'agent-manifest.json');
|
|
44
|
+
await promises_1.default.access(outputPath);
|
|
18
45
|
try {
|
|
19
|
-
await promises_1.default.access(outputPath);
|
|
20
46
|
const { overwrite } = await inquirer_1.default.prompt([
|
|
21
47
|
{
|
|
22
48
|
type: 'confirm',
|
|
@@ -26,428 +52,26 @@ async function initCommand() {
|
|
|
26
52
|
},
|
|
27
53
|
]);
|
|
28
54
|
if (!overwrite) {
|
|
29
|
-
console.log(chalk_1.default.yellow('
|
|
55
|
+
console.log(chalk_1.default.yellow('\nAborted.\n'));
|
|
30
56
|
return;
|
|
31
57
|
}
|
|
32
58
|
}
|
|
33
|
-
catch {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
console.log(chalk_1.default.bold('\n📋 Basic Information'));
|
|
38
|
-
const basicInfo = await inquirer_1.default.prompt([
|
|
39
|
-
{
|
|
40
|
-
type: 'input',
|
|
41
|
-
name: 'name',
|
|
42
|
-
message: 'API name:',
|
|
43
|
-
validate: (input) => input.trim().length > 0 || 'Name is required',
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
type: 'input',
|
|
47
|
-
name: 'version',
|
|
48
|
-
message: 'Version (semantic versioning):',
|
|
49
|
-
default: '1.0.0',
|
|
50
|
-
validate: (input) => {
|
|
51
|
-
const semverRegex = /^\d+\.\d+\.\d+$/;
|
|
52
|
-
return semverRegex.test(input) || 'Must be valid semantic version (e.g., 1.0.0)';
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
type: 'input',
|
|
57
|
-
name: 'description',
|
|
58
|
-
message: 'Description (min 100 characters):',
|
|
59
|
-
validate: (input) => input.trim().length >= 100 || `Description must be at least 100 characters (currently ${input.trim().length})`,
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
type: 'input',
|
|
63
|
-
name: 'homepage',
|
|
64
|
-
message: 'Homepage URL (optional):',
|
|
65
|
-
validate: (input) => {
|
|
66
|
-
if (!input)
|
|
67
|
-
return true;
|
|
68
|
-
try {
|
|
69
|
-
new URL(input);
|
|
70
|
-
return input.startsWith('https://') || 'Must be HTTPS URL';
|
|
71
|
-
}
|
|
72
|
-
catch {
|
|
73
|
-
return 'Must be a valid URL';
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
type: 'input',
|
|
79
|
-
name: 'documentation',
|
|
80
|
-
message: 'Documentation URL (optional):',
|
|
81
|
-
validate: (input) => {
|
|
82
|
-
if (!input)
|
|
83
|
-
return true;
|
|
84
|
-
try {
|
|
85
|
-
new URL(input);
|
|
86
|
-
return input.startsWith('https://') || 'Must be HTTPS URL';
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
return 'Must be a valid URL';
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
|
-
]);
|
|
94
|
-
// Categories
|
|
95
|
-
console.log(chalk_1.default.bold('\n🏷️ Categories'));
|
|
96
|
-
const categoryInfo = await inquirer_1.default.prompt([
|
|
97
|
-
{
|
|
98
|
-
type: 'checkbox',
|
|
99
|
-
name: 'categories',
|
|
100
|
-
message: 'Select categories (must select at least one):',
|
|
101
|
-
choices: constants_1.STANDARD_CATEGORIES,
|
|
102
|
-
validate: (input) => input.length > 0 || 'Must select at least one category',
|
|
103
|
-
},
|
|
104
|
-
]);
|
|
105
|
-
const { primary_category } = await inquirer_1.default.prompt([
|
|
106
|
-
{
|
|
107
|
-
type: 'list',
|
|
108
|
-
name: 'primary_category',
|
|
109
|
-
message: 'Select primary category:',
|
|
110
|
-
choices: categoryInfo.categories,
|
|
111
|
-
},
|
|
112
|
-
]);
|
|
113
|
-
// Endpoints
|
|
114
|
-
console.log(chalk_1.default.bold('\n🔌 Endpoints'));
|
|
115
|
-
const endpoints = [];
|
|
116
|
-
let addMore = true;
|
|
117
|
-
while (addMore) {
|
|
118
|
-
const endpointInfo = await inquirer_1.default.prompt([
|
|
119
|
-
{
|
|
120
|
-
type: 'input',
|
|
121
|
-
name: 'path',
|
|
122
|
-
message: 'Endpoint path (e.g., /api/v1/data):',
|
|
123
|
-
validate: (input) => input.trim().startsWith('/') || 'Path must start with /',
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
type: 'list',
|
|
127
|
-
name: 'method',
|
|
128
|
-
message: 'HTTP method:',
|
|
129
|
-
choices: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'],
|
|
130
|
-
default: 'GET',
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
type: 'input',
|
|
134
|
-
name: 'description',
|
|
135
|
-
message: 'Endpoint description:',
|
|
136
|
-
validate: (input) => input.trim().length > 0 || 'Description is required',
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
type: 'input',
|
|
140
|
-
name: 'response_description',
|
|
141
|
-
message: 'Response description:',
|
|
142
|
-
validate: (input) => input.trim().length > 0 || 'Response description is required',
|
|
143
|
-
},
|
|
144
|
-
]);
|
|
145
|
-
// Ask about parameters
|
|
146
|
-
const { hasParams } = await inquirer_1.default.prompt([
|
|
147
|
-
{
|
|
148
|
-
type: 'confirm',
|
|
149
|
-
name: 'hasParams',
|
|
150
|
-
message: 'Add parameters to this endpoint?',
|
|
151
|
-
default: false,
|
|
152
|
-
},
|
|
153
|
-
]);
|
|
154
|
-
const parameters = {};
|
|
155
|
-
if (hasParams) {
|
|
156
|
-
const { paramLocation } = await inquirer_1.default.prompt([
|
|
157
|
-
{
|
|
158
|
-
type: 'list',
|
|
159
|
-
name: 'paramLocation',
|
|
160
|
-
message: 'Parameter location:',
|
|
161
|
-
choices: ['query', 'body'],
|
|
162
|
-
},
|
|
163
|
-
]);
|
|
164
|
-
const params = {};
|
|
165
|
-
let addMoreParams = true;
|
|
166
|
-
while (addMoreParams) {
|
|
167
|
-
const paramInfo = await inquirer_1.default.prompt([
|
|
168
|
-
{
|
|
169
|
-
type: 'input',
|
|
170
|
-
name: 'name',
|
|
171
|
-
message: 'Parameter name:',
|
|
172
|
-
validate: (input) => input.trim().length > 0 || 'Name is required',
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
type: 'list',
|
|
176
|
-
name: 'type',
|
|
177
|
-
message: 'Parameter type:',
|
|
178
|
-
choices: ['string', 'number', 'boolean', 'array', 'object'],
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
type: 'confirm',
|
|
182
|
-
name: 'required',
|
|
183
|
-
message: 'Is this parameter required?',
|
|
184
|
-
default: false,
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
type: 'input',
|
|
188
|
-
name: 'description',
|
|
189
|
-
message: 'Parameter description:',
|
|
190
|
-
validate: (input) => input.trim().length > 0 || 'Description is required',
|
|
191
|
-
},
|
|
192
|
-
]);
|
|
193
|
-
params[paramInfo.name] = {
|
|
194
|
-
type: paramInfo.type,
|
|
195
|
-
required: paramInfo.required,
|
|
196
|
-
description: paramInfo.description,
|
|
197
|
-
};
|
|
198
|
-
const { continueParams } = await inquirer_1.default.prompt([
|
|
199
|
-
{
|
|
200
|
-
type: 'confirm',
|
|
201
|
-
name: 'continueParams',
|
|
202
|
-
message: 'Add another parameter?',
|
|
203
|
-
default: false,
|
|
204
|
-
},
|
|
205
|
-
]);
|
|
206
|
-
addMoreParams = continueParams;
|
|
207
|
-
}
|
|
208
|
-
parameters[paramLocation] = params;
|
|
59
|
+
catch (err) {
|
|
60
|
+
if (err.isTtyError) {
|
|
61
|
+
console.error(chalk_1.default.red('\nagent-manifest.json exists. Run in an interactive terminal to overwrite, or remove the file first.\n'));
|
|
62
|
+
process.exit(1);
|
|
209
63
|
}
|
|
210
|
-
|
|
211
|
-
path: endpointInfo.path,
|
|
212
|
-
method: endpointInfo.method,
|
|
213
|
-
description: endpointInfo.description,
|
|
214
|
-
parameters: Object.keys(parameters).length > 0 ? parameters : undefined,
|
|
215
|
-
response: {
|
|
216
|
-
type: 'object',
|
|
217
|
-
description: endpointInfo.response_description,
|
|
218
|
-
},
|
|
219
|
-
});
|
|
220
|
-
const { continueEndpoints } = await inquirer_1.default.prompt([
|
|
221
|
-
{
|
|
222
|
-
type: 'confirm',
|
|
223
|
-
name: 'continueEndpoints',
|
|
224
|
-
message: 'Add another endpoint?',
|
|
225
|
-
default: false,
|
|
226
|
-
},
|
|
227
|
-
]);
|
|
228
|
-
addMore = continueEndpoints;
|
|
229
|
-
}
|
|
230
|
-
// Pricing
|
|
231
|
-
console.log(chalk_1.default.bold('\n💰 Pricing'));
|
|
232
|
-
const pricingInfo = await inquirer_1.default.prompt([
|
|
233
|
-
{
|
|
234
|
-
type: 'list',
|
|
235
|
-
name: 'model',
|
|
236
|
-
message: 'Pricing model:',
|
|
237
|
-
choices: constants_1.PRICING_MODELS,
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
type: 'input',
|
|
241
|
-
name: 'details',
|
|
242
|
-
message: 'Pricing details (optional, e.g., "First 1000 requests free"):',
|
|
243
|
-
},
|
|
244
|
-
]);
|
|
245
|
-
// Authentication
|
|
246
|
-
console.log(chalk_1.default.bold('\n🔐 Authentication'));
|
|
247
|
-
const authInfo = await inquirer_1.default.prompt([
|
|
248
|
-
{
|
|
249
|
-
type: 'list',
|
|
250
|
-
name: 'type',
|
|
251
|
-
message: 'Authentication type:',
|
|
252
|
-
choices: constants_1.AUTH_TYPES,
|
|
253
|
-
},
|
|
254
|
-
]);
|
|
255
|
-
let authConfig = {};
|
|
256
|
-
if (authInfo.type !== 'none') {
|
|
257
|
-
const configInfo = await inquirer_1.default.prompt([
|
|
258
|
-
{
|
|
259
|
-
type: 'input',
|
|
260
|
-
name: 'header',
|
|
261
|
-
message: 'Header name (e.g., X-API-Key, Authorization):',
|
|
262
|
-
when: authInfo.type === 'api_key' || authInfo.type === 'bearer',
|
|
263
|
-
},
|
|
264
|
-
{
|
|
265
|
-
type: 'input',
|
|
266
|
-
name: 'signup_url',
|
|
267
|
-
message: 'Signup URL for obtaining credentials:',
|
|
268
|
-
validate: (input) => {
|
|
269
|
-
if (!input)
|
|
270
|
-
return true;
|
|
271
|
-
try {
|
|
272
|
-
new URL(input);
|
|
273
|
-
return true;
|
|
274
|
-
}
|
|
275
|
-
catch {
|
|
276
|
-
return 'Must be a valid URL';
|
|
277
|
-
}
|
|
278
|
-
},
|
|
279
|
-
},
|
|
280
|
-
]);
|
|
281
|
-
authConfig = configInfo;
|
|
282
|
-
}
|
|
283
|
-
// Rate Limits (optional)
|
|
284
|
-
console.log(chalk_1.default.bold('\n⏱️ Rate Limits (optional)'));
|
|
285
|
-
const { addRateLimits } = await inquirer_1.default.prompt([
|
|
286
|
-
{
|
|
287
|
-
type: 'confirm',
|
|
288
|
-
name: 'addRateLimits',
|
|
289
|
-
message: 'Add rate limit information?',
|
|
290
|
-
default: false,
|
|
291
|
-
},
|
|
292
|
-
]);
|
|
293
|
-
let rateLimits;
|
|
294
|
-
if (addRateLimits) {
|
|
295
|
-
rateLimits = await inquirer_1.default.prompt([
|
|
296
|
-
{
|
|
297
|
-
type: 'number',
|
|
298
|
-
name: 'requests_per_minute',
|
|
299
|
-
message: 'Requests per minute:',
|
|
300
|
-
default: 60,
|
|
301
|
-
},
|
|
302
|
-
{
|
|
303
|
-
type: 'number',
|
|
304
|
-
name: 'requests_per_day',
|
|
305
|
-
message: 'Requests per day:',
|
|
306
|
-
default: 10000,
|
|
307
|
-
},
|
|
308
|
-
]);
|
|
64
|
+
throw err;
|
|
309
65
|
}
|
|
310
|
-
// Reliability Metrics (optional)
|
|
311
|
-
console.log(chalk_1.default.bold('\n📊 Reliability Metrics (optional)'));
|
|
312
|
-
const { addReliability } = await inquirer_1.default.prompt([
|
|
313
|
-
{
|
|
314
|
-
type: 'confirm',
|
|
315
|
-
name: 'addReliability',
|
|
316
|
-
message: 'Add reliability metrics?',
|
|
317
|
-
default: false,
|
|
318
|
-
},
|
|
319
|
-
]);
|
|
320
|
-
let reliabilityMetrics;
|
|
321
|
-
if (addReliability) {
|
|
322
|
-
reliabilityMetrics = await inquirer_1.default.prompt([
|
|
323
|
-
{
|
|
324
|
-
type: 'number',
|
|
325
|
-
name: 'uptime_percentage',
|
|
326
|
-
message: 'Uptime percentage (e.g., 99.9):',
|
|
327
|
-
default: 99.9,
|
|
328
|
-
validate: (input) => (input >= 0 && input <= 100) || 'Must be between 0 and 100',
|
|
329
|
-
},
|
|
330
|
-
{
|
|
331
|
-
type: 'number',
|
|
332
|
-
name: 'avg_response_time_ms',
|
|
333
|
-
message: 'Average response time (ms):',
|
|
334
|
-
default: 150,
|
|
335
|
-
},
|
|
336
|
-
]);
|
|
337
|
-
}
|
|
338
|
-
// Contact Information
|
|
339
|
-
console.log(chalk_1.default.bold('\n📧 Contact Information'));
|
|
340
|
-
const contactInfo = await inquirer_1.default.prompt([
|
|
341
|
-
{
|
|
342
|
-
type: 'input',
|
|
343
|
-
name: 'email',
|
|
344
|
-
message: 'Support email:',
|
|
345
|
-
validate: (input) => {
|
|
346
|
-
if (!input)
|
|
347
|
-
return true;
|
|
348
|
-
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
349
|
-
return emailRegex.test(input) || 'Must be a valid email';
|
|
350
|
-
},
|
|
351
|
-
},
|
|
352
|
-
{
|
|
353
|
-
type: 'input',
|
|
354
|
-
name: 'support_url',
|
|
355
|
-
message: 'Support URL (optional):',
|
|
356
|
-
validate: (input) => {
|
|
357
|
-
if (!input)
|
|
358
|
-
return true;
|
|
359
|
-
try {
|
|
360
|
-
new URL(input);
|
|
361
|
-
return true;
|
|
362
|
-
}
|
|
363
|
-
catch {
|
|
364
|
-
return 'Must be a valid URL';
|
|
365
|
-
}
|
|
366
|
-
},
|
|
367
|
-
},
|
|
368
|
-
{
|
|
369
|
-
type: 'input',
|
|
370
|
-
name: 'github',
|
|
371
|
-
message: 'GitHub URL (optional):',
|
|
372
|
-
validate: (input) => {
|
|
373
|
-
if (!input)
|
|
374
|
-
return true;
|
|
375
|
-
try {
|
|
376
|
-
new URL(input);
|
|
377
|
-
return input.includes('github.com') || 'Should be a GitHub URL';
|
|
378
|
-
}
|
|
379
|
-
catch {
|
|
380
|
-
return 'Must be a valid URL';
|
|
381
|
-
}
|
|
382
|
-
},
|
|
383
|
-
},
|
|
384
|
-
]);
|
|
385
|
-
// Agent Notes
|
|
386
|
-
console.log(chalk_1.default.bold('\n🤖 Agent Guidance'));
|
|
387
|
-
const { agent_notes } = await inquirer_1.default.prompt([
|
|
388
|
-
{
|
|
389
|
-
type: 'input',
|
|
390
|
-
name: 'agent_notes',
|
|
391
|
-
message: 'Implementation guidance for AI agents (min 50 characters):',
|
|
392
|
-
validate: (input) => input.trim().length >= 50 ||
|
|
393
|
-
`Agent notes must be at least 50 characters (currently ${input.trim().length})`,
|
|
394
|
-
},
|
|
395
|
-
]);
|
|
396
|
-
// Registry Listing
|
|
397
|
-
console.log(chalk_1.default.bold('\n📝 Registry'));
|
|
398
|
-
const { listing_requested } = await inquirer_1.default.prompt([
|
|
399
|
-
{
|
|
400
|
-
type: 'confirm',
|
|
401
|
-
name: 'listing_requested',
|
|
402
|
-
message: 'Request listing in public AMP registry?',
|
|
403
|
-
default: true,
|
|
404
|
-
},
|
|
405
|
-
]);
|
|
406
|
-
// Build the manifest
|
|
407
|
-
const manifest = {
|
|
408
|
-
spec_version: 'agentmanifest-0.1',
|
|
409
|
-
name: basicInfo.name,
|
|
410
|
-
version: basicInfo.version,
|
|
411
|
-
description: basicInfo.description,
|
|
412
|
-
...(basicInfo.homepage && { homepage: basicInfo.homepage }),
|
|
413
|
-
...(basicInfo.documentation && { documentation: basicInfo.documentation }),
|
|
414
|
-
categories: categoryInfo.categories,
|
|
415
|
-
primary_category,
|
|
416
|
-
endpoints,
|
|
417
|
-
pricing: {
|
|
418
|
-
model: pricingInfo.model,
|
|
419
|
-
...(pricingInfo.details && { details: pricingInfo.details }),
|
|
420
|
-
},
|
|
421
|
-
authentication: {
|
|
422
|
-
type: authInfo.type,
|
|
423
|
-
...(authInfo.type !== 'none' && Object.keys(authConfig).length > 0 && { config: authConfig }),
|
|
424
|
-
},
|
|
425
|
-
...(rateLimits && { rate_limits: rateLimits }),
|
|
426
|
-
...(reliabilityMetrics && { reliability_metrics: reliabilityMetrics }),
|
|
427
|
-
...(Object.keys(contactInfo).some((k) => contactInfo[k]) && {
|
|
428
|
-
contact: Object.fromEntries(Object.entries(contactInfo).filter(([_, v]) => v)),
|
|
429
|
-
}),
|
|
430
|
-
agent_notes,
|
|
431
|
-
listing_requested,
|
|
432
|
-
last_updated: new Date().toISOString(),
|
|
433
|
-
};
|
|
434
|
-
// Write to file
|
|
435
|
-
await promises_1.default.writeFile(outputPath, JSON.stringify(manifest, null, 2));
|
|
436
|
-
console.log(chalk_1.default.green.bold('\n✅ Success!'));
|
|
437
|
-
console.log(chalk_1.default.gray(`\nManifest created at: ${outputPath}`));
|
|
438
|
-
console.log(chalk_1.default.gray('\nNext steps:'));
|
|
439
|
-
console.log(chalk_1.default.cyan(' 1. Review the generated manifest'));
|
|
440
|
-
console.log(chalk_1.default.cyan(' 2. Run "amp validate" to check compliance'));
|
|
441
|
-
console.log(chalk_1.default.cyan(' 3. Run "amp publish" to submit to registry'));
|
|
442
66
|
}
|
|
443
|
-
catch (
|
|
444
|
-
if (
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
else {
|
|
448
|
-
console.error(chalk_1.default.red('Error:'), error.message);
|
|
449
|
-
}
|
|
450
|
-
process.exit(1);
|
|
67
|
+
catch (err) {
|
|
68
|
+
if (err.code !== 'ENOENT')
|
|
69
|
+
throw err;
|
|
70
|
+
// File doesn't exist, continue
|
|
451
71
|
}
|
|
72
|
+
const manifest = scaffoldManifest();
|
|
73
|
+
await promises_1.default.writeFile(outputPath, JSON.stringify(manifest, null, 2));
|
|
74
|
+
console.log(chalk_1.default.green.bold('\n✅ Created agent-manifest.json'));
|
|
75
|
+
console.log(chalk_1.default.gray('\nEdit the file, then run "amp validate".\n'));
|
|
452
76
|
}
|
|
453
77
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;AAOA,kCA6cC;AApdD,wDAAgC;AAChC,2DAA6B;AAC7B,gDAAwB;AACxB,kDAA0B;AAC1B,4CAA+E;AAGxE,KAAK,UAAU,WAAW;IAC/B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC,CAAC;IAEhG,IAAI,CAAC;QACH,+BAA+B;QAC/B,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,kBAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBAC1C;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,gDAAgD;oBACzD,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;gBACtC,OAAO;YACT,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QAED,oBAAoB;QACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACtC;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,WAAW;gBACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB;aACnE;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,gCAAgC;gBACzC,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,MAAM,WAAW,GAAG,iBAAiB,CAAC;oBACtC,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,8CAA8C,CAAC;gBACnF,CAAC;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,mCAAmC;gBAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,GAAG,IAAI,0DAA0D,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG;aACjH;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,0BAA0B;gBACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,CAAC,KAAK;wBAAE,OAAO,IAAI,CAAC;oBACxB,IAAI,CAAC;wBACH,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;wBACf,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,mBAAmB,CAAC;oBAC7D,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,qBAAqB,CAAC;oBAC/B,CAAC;gBACH,CAAC;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,+BAA+B;gBACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,CAAC,KAAK;wBAAE,OAAO,IAAI,CAAC;oBACxB,IAAI,CAAC;wBACH,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;wBACf,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,mBAAmB,CAAC;oBAC7D,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,qBAAqB,CAAC;oBAC/B,CAAC;gBACH,CAAC;aACF;SACF,CAAC,CAAC;QAEH,aAAa;QACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACzC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,+CAA+C;gBACxD,OAAO,EAAE,+BAAmB;gBAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,mCAAmC;aAC7E;SACF,CAAC,CAAC;QAEH,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACjD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,0BAA0B;gBACnC,OAAO,EAAE,YAAY,CAAC,UAAU;aACjC;SACF,CAAC,CAAC;QAEH,YAAY;QACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,OAAO,OAAO,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBACzC;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,qCAAqC;oBAC9C,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,wBAAwB;iBAC9E;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,cAAc;oBACvB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;oBAClD,OAAO,EAAE,KAAK;iBACf;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,uBAAuB;oBAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,yBAAyB;iBAC1E;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,uBAAuB;oBAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,kCAAkC;iBACnF;aACF,CAAC,CAAC;YAEH,uBAAuB;YACvB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBAC1C;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,kCAAkC;oBAC3C,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YAEH,MAAM,UAAU,GAA4E,EAAE,CAAC;YAE/F,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;oBAC9C;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,qBAAqB;wBAC9B,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;qBAC3B;iBACF,CAAC,CAAC;gBAEH,MAAM,MAAM,GAA8B,EAAE,CAAC;gBAC7C,IAAI,aAAa,GAAG,IAAI,CAAC;gBAEzB,OAAO,aAAa,EAAE,CAAC;oBACrB,MAAM,SAAS,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;wBACtC;4BACE,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,iBAAiB;4BAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB;yBACnE;wBACD;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,iBAAiB;4BAC1B,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;yBAC5D;wBACD;4BACE,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,UAAU;4BAChB,OAAO,EAAE,6BAA6B;4BACtC,OAAO,EAAE,KAAK;yBACf;wBACD;4BACE,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,aAAa;4BACnB,OAAO,EAAE,wBAAwB;4BACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,yBAAyB;yBAC1E;qBACF,CAAC,CAAC;oBAEH,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;wBACvB,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;wBAC5B,WAAW,EAAE,SAAS,CAAC,WAAW;qBACnC,CAAC;oBAEF,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;wBAC/C;4BACE,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,gBAAgB;4BACtB,OAAO,EAAE,wBAAwB;4BACjC,OAAO,EAAE,KAAK;yBACf;qBACF,CAAC,CAAC;oBAEH,aAAa,GAAG,cAAc,CAAC;gBACjC,CAAC;gBAED,UAAU,CAAC,aAAiC,CAAC,GAAG,MAAM,CAAC;YACzD,CAAC;YAED,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,WAAW,EAAE,YAAY,CAAC,WAAW;gBACrC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBACvE,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,YAAY,CAAC,oBAAoB;iBAC/C;aACF,CAAC,CAAC;YAEH,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBAClD;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,uBAAuB;oBAChC,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YAEH,OAAO,GAAG,iBAAiB,CAAC;QAC9B,CAAC;QAED,UAAU;QACV,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACxC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,gBAAgB;gBACzB,OAAO,EAAE,0BAAc;aACxB;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,+DAA+D;aACzE;SACF,CAAC,CAAC;QAEH,iBAAiB;QACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACrC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,sBAAsB;gBAC/B,OAAO,EAAE,sBAAU;aACpB;SACF,CAAC,CAAC;QAEH,IAAI,UAAU,GAAQ,EAAE,CAAC;QACzB,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBACvC;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,+CAA+C;oBACxD,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ;iBAChE;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,uCAAuC;oBAChD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wBAClB,IAAI,CAAC,KAAK;4BAAE,OAAO,IAAI,CAAC;wBACxB,IAAI,CAAC;4BACH,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;4BACf,OAAO,IAAI,CAAC;wBACd,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,qBAAqB,CAAC;wBAC/B,CAAC;oBACH,CAAC;iBACF;aACF,CAAC,CAAC;YACH,UAAU,GAAG,UAAU,CAAC;QAC1B,CAAC;QAED,yBAAyB;QACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACxD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YAC9C;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,6BAA6B;gBACtC,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC;QACf,IAAI,aAAa,EAAE,CAAC;YAClB,UAAU,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBACjC;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,sBAAsB;oBAC/B,OAAO,EAAE,EAAE;iBACZ;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,mBAAmB;oBAC5B,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;QACL,CAAC;QAED,iCAAiC;QACjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC/D,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YAC/C;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,0BAA0B;gBACnC,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,IAAI,kBAAkB,CAAC;QACvB,IAAI,cAAc,EAAE,CAAC;YACnB,kBAAkB,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBACzC;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,iCAAiC;oBAC1C,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,IAAI,2BAA2B;iBACjF;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,6BAA6B;oBACtC,OAAO,EAAE,GAAG;iBACb;aACF,CAAC,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACxC;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,gBAAgB;gBACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,CAAC,KAAK;wBAAE,OAAO,IAAI,CAAC;oBACxB,MAAM,UAAU,GAAG,4BAA4B,CAAC;oBAChD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,uBAAuB,CAAC;gBAC3D,CAAC;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,yBAAyB;gBAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,CAAC,KAAK;wBAAE,OAAO,IAAI,CAAC;oBACxB,IAAI,CAAC;wBACH,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;wBACf,OAAO,IAAI,CAAC;oBACd,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,qBAAqB,CAAC;oBAC/B,CAAC;gBACH,CAAC;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,wBAAwB;gBACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,CAAC,KAAK;wBAAE,OAAO,IAAI,CAAC;oBACxB,IAAI,CAAC;wBACH,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;wBACf,OAAO,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,wBAAwB,CAAC;oBAClE,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,qBAAqB,CAAC;oBAC/B,CAAC;gBACH,CAAC;aACF;SACF,CAAC,CAAC;QAEH,cAAc;QACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC/C,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YAC5C;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,4DAA4D;gBACrE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE;oBACzB,yDAAyD,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG;aAClF;SACF,CAAC,CAAC;QAEH,mBAAmB;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YAClD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,yCAAyC;gBAClD,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,QAAQ,GAAkB;YAC9B,YAAY,EAAE,mBAAmB;YACjC,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC3D,GAAG,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,SAAS,CAAC,aAAa,EAAE,CAAC;YAC1E,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,gBAAgB;YAChB,SAAS;YACT,OAAO,EAAE;gBACP,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,GAAG,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;aAC7D;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;aAC9F;YACD,GAAG,CAAC,UAAU,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;YAC9C,GAAG,CAAC,kBAAkB,IAAI,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;YACtE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAA6B,CAAC,CAAC,IAAI;gBACtF,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAClD;aACF,CAAC;YACF,WAAW;YACX,iBAAiB;YACjB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC;QAEF,gBAAgB;QAChB,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAElE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;AAuCA,kCAkCC;AAzED,2DAA6B;AAC7B,gDAAwB;AACxB,kDAA0B;AAC1B,wDAAgC;AAGhC,0FAA0F;AAC1F,SAAS,gBAAgB;IACvB,OAAO;QACL,YAAY,EAAE,mBAAmB;QACjC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,OAAO;QAChB,WAAW,EACT,6HAA6H;QAC/H,UAAU,EAAE,CAAC,OAAO,CAAC;QACrB,gBAAgB,EAAE,WAAW;QAC7B,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,sEAAsE;gBACnF,UAAU,EAAE,EAAE;gBACd,oBAAoB,EAAE,sEAAsE;aAC7F;SACF;QACD,OAAO,EAAE;YACP,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE;SAC9D;QACD,cAAc,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;QACjD,WAAW,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE;QAC5C,WAAW,EACT,wGAAwG;QAC1G,OAAO,EAAE,iBAAiB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACvC,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,WAAW;IAC/B,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAEnE,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBAC1C;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,gDAAgD;oBACzD,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACnB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,wGAAwG,CAAC,CAAC,CAAC;gBACnI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,GAAG,CAAC;QACrC,+BAA+B;IACjC,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;AACzE,CAAC"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,22 +1,53 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Standard categories defined in AMP specification v0.
|
|
2
|
+
* Standard categories defined in AMP specification v0.2
|
|
3
3
|
*/
|
|
4
|
-
export declare const STANDARD_CATEGORIES: readonly ["
|
|
4
|
+
export declare const STANDARD_CATEGORIES: readonly ["food-science", "materials", "construction", "music-gear", "chemistry", "biology", "geography", "finance", "legal", "medical", "engineering", "agriculture", "computing", "language", "history", "commerce", "identity", "weather", "logistics", "other"];
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Primary categories defined in AMP specification v0.2
|
|
7
|
+
*/
|
|
8
|
+
export declare const PRIMARY_CATEGORIES: readonly [{
|
|
9
|
+
readonly name: "Reference - Static or cached data";
|
|
10
|
+
readonly value: "reference";
|
|
11
|
+
}, {
|
|
12
|
+
readonly name: "Live - Real-time data";
|
|
13
|
+
readonly value: "live";
|
|
14
|
+
}, {
|
|
15
|
+
readonly name: "Computational - Processing or computation";
|
|
16
|
+
readonly value: "computational";
|
|
17
|
+
}, {
|
|
18
|
+
readonly name: "Transactional - Actions or transactions";
|
|
19
|
+
readonly value: "transactional";
|
|
20
|
+
}, {
|
|
21
|
+
readonly name: "Enrichment - Data augmentation";
|
|
22
|
+
readonly value: "enrichment";
|
|
23
|
+
}, {
|
|
24
|
+
readonly name: "Personal - User-specific data";
|
|
25
|
+
readonly value: "personal";
|
|
26
|
+
}, {
|
|
27
|
+
readonly name: "Discovery - Search or discovery";
|
|
28
|
+
readonly value: "discovery";
|
|
29
|
+
}];
|
|
30
|
+
/**
|
|
31
|
+
* Pricing models defined in AMP specification v0.2
|
|
7
32
|
*/
|
|
8
33
|
export declare const PRICING_MODELS: readonly [{
|
|
9
34
|
readonly name: "Free - No cost to use";
|
|
10
35
|
readonly value: "free";
|
|
11
36
|
}, {
|
|
12
|
-
readonly name: "
|
|
13
|
-
readonly value: "
|
|
37
|
+
readonly name: "Per Query - Pay per request";
|
|
38
|
+
readonly value: "per-query";
|
|
14
39
|
}, {
|
|
15
40
|
readonly name: "Subscription - Fixed recurring fee";
|
|
16
41
|
readonly value: "subscription";
|
|
42
|
+
}, {
|
|
43
|
+
readonly name: "Pay What You Want - Voluntary contributions";
|
|
44
|
+
readonly value: "pay-what-you-want";
|
|
45
|
+
}, {
|
|
46
|
+
readonly name: "Tiered - Multiple pricing tiers";
|
|
47
|
+
readonly value: "tiered";
|
|
17
48
|
}];
|
|
18
49
|
/**
|
|
19
|
-
* Authentication types defined in AMP specification v0.
|
|
50
|
+
* Authentication types defined in AMP specification v0.2
|
|
20
51
|
*/
|
|
21
52
|
export declare const AUTH_TYPES: readonly [{
|
|
22
53
|
readonly name: "None - No authentication required";
|
|
@@ -31,4 +62,17 @@ export declare const AUTH_TYPES: readonly [{
|
|
|
31
62
|
readonly name: "Bearer Token - Bearer token auth";
|
|
32
63
|
readonly value: "bearer";
|
|
33
64
|
}];
|
|
65
|
+
/**
|
|
66
|
+
* Reliability maintained_by values defined in AMP specification v0.2
|
|
67
|
+
*/
|
|
68
|
+
export declare const MAINTAINED_BY: readonly [{
|
|
69
|
+
readonly name: "Individual";
|
|
70
|
+
readonly value: "individual";
|
|
71
|
+
}, {
|
|
72
|
+
readonly name: "Organization";
|
|
73
|
+
readonly value: "organization";
|
|
74
|
+
}, {
|
|
75
|
+
readonly name: "Community";
|
|
76
|
+
readonly value: "community";
|
|
77
|
+
}];
|
|
34
78
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,mBAAmB,qQAqBtB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;EAQrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;EAMjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;EAKb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;EAIhB,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -1,36 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AUTH_TYPES = exports.PRICING_MODELS = exports.STANDARD_CATEGORIES = void 0;
|
|
3
|
+
exports.MAINTAINED_BY = exports.AUTH_TYPES = exports.PRICING_MODELS = exports.PRIMARY_CATEGORIES = exports.STANDARD_CATEGORIES = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Standard categories defined in AMP specification v0.
|
|
5
|
+
* Standard categories defined in AMP specification v0.2
|
|
6
6
|
*/
|
|
7
7
|
exports.STANDARD_CATEGORIES = [
|
|
8
|
+
'food-science',
|
|
9
|
+
'materials',
|
|
10
|
+
'construction',
|
|
11
|
+
'music-gear',
|
|
8
12
|
'chemistry',
|
|
9
13
|
'biology',
|
|
10
|
-
'physics',
|
|
11
|
-
'mathematics',
|
|
12
|
-
'finance',
|
|
13
|
-
'weather',
|
|
14
14
|
'geography',
|
|
15
|
-
'
|
|
16
|
-
'engineering',
|
|
15
|
+
'finance',
|
|
17
16
|
'legal',
|
|
18
17
|
'medical',
|
|
19
|
-
'
|
|
20
|
-
'
|
|
21
|
-
'
|
|
22
|
-
'
|
|
18
|
+
'engineering',
|
|
19
|
+
'agriculture',
|
|
20
|
+
'computing',
|
|
21
|
+
'language',
|
|
22
|
+
'history',
|
|
23
|
+
'commerce',
|
|
24
|
+
'identity',
|
|
25
|
+
'weather',
|
|
26
|
+
'logistics',
|
|
27
|
+
'other',
|
|
23
28
|
];
|
|
24
29
|
/**
|
|
25
|
-
*
|
|
30
|
+
* Primary categories defined in AMP specification v0.2
|
|
31
|
+
*/
|
|
32
|
+
exports.PRIMARY_CATEGORIES = [
|
|
33
|
+
{ name: 'Reference - Static or cached data', value: 'reference' },
|
|
34
|
+
{ name: 'Live - Real-time data', value: 'live' },
|
|
35
|
+
{ name: 'Computational - Processing or computation', value: 'computational' },
|
|
36
|
+
{ name: 'Transactional - Actions or transactions', value: 'transactional' },
|
|
37
|
+
{ name: 'Enrichment - Data augmentation', value: 'enrichment' },
|
|
38
|
+
{ name: 'Personal - User-specific data', value: 'personal' },
|
|
39
|
+
{ name: 'Discovery - Search or discovery', value: 'discovery' },
|
|
40
|
+
];
|
|
41
|
+
/**
|
|
42
|
+
* Pricing models defined in AMP specification v0.2
|
|
26
43
|
*/
|
|
27
44
|
exports.PRICING_MODELS = [
|
|
28
45
|
{ name: 'Free - No cost to use', value: 'free' },
|
|
29
|
-
{ name: '
|
|
46
|
+
{ name: 'Per Query - Pay per request', value: 'per-query' },
|
|
30
47
|
{ name: 'Subscription - Fixed recurring fee', value: 'subscription' },
|
|
48
|
+
{ name: 'Pay What You Want - Voluntary contributions', value: 'pay-what-you-want' },
|
|
49
|
+
{ name: 'Tiered - Multiple pricing tiers', value: 'tiered' },
|
|
31
50
|
];
|
|
32
51
|
/**
|
|
33
|
-
* Authentication types defined in AMP specification v0.
|
|
52
|
+
* Authentication types defined in AMP specification v0.2
|
|
34
53
|
*/
|
|
35
54
|
exports.AUTH_TYPES = [
|
|
36
55
|
{ name: 'None - No authentication required', value: 'none' },
|
|
@@ -38,4 +57,12 @@ exports.AUTH_TYPES = [
|
|
|
38
57
|
{ name: 'OAuth2 - OAuth 2.0 flow', value: 'oauth2' },
|
|
39
58
|
{ name: 'Bearer Token - Bearer token auth', value: 'bearer' },
|
|
40
59
|
];
|
|
60
|
+
/**
|
|
61
|
+
* Reliability maintained_by values defined in AMP specification v0.2
|
|
62
|
+
*/
|
|
63
|
+
exports.MAINTAINED_BY = [
|
|
64
|
+
{ name: 'Individual', value: 'individual' },
|
|
65
|
+
{ name: 'Organization', value: 'organization' },
|
|
66
|
+
{ name: 'Community', value: 'community' },
|
|
67
|
+
];
|
|
41
68
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,mBAAmB,GAAG;IACjC,WAAW;IACX,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,mBAAmB,GAAG;IACjC,cAAc;IACd,WAAW;IACX,cAAc;IACd,YAAY;IACZ,WAAW;IACX,SAAS;IACT,WAAW;IACX,SAAS;IACT,OAAO;IACP,SAAS;IACT,aAAa;IACb,aAAa;IACb,WAAW;IACX,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,OAAO;CACC,CAAC;AAEX;;GAEG;AACU,QAAA,kBAAkB,GAAG;IAChC,EAAE,IAAI,EAAE,mCAAmC,EAAE,KAAK,EAAE,WAAW,EAAE;IACjE,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,EAAE;IAChD,EAAE,IAAI,EAAE,2CAA2C,EAAE,KAAK,EAAE,eAAe,EAAE;IAC7E,EAAE,IAAI,EAAE,yCAAyC,EAAE,KAAK,EAAE,eAAe,EAAE;IAC3E,EAAE,IAAI,EAAE,gCAAgC,EAAE,KAAK,EAAE,YAAY,EAAE;IAC/D,EAAE,IAAI,EAAE,+BAA+B,EAAE,KAAK,EAAE,UAAU,EAAE;IAC5D,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,WAAW,EAAE;CACvD,CAAC;AAEX;;GAEG;AACU,QAAA,cAAc,GAAG;IAC5B,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,EAAE;IAChD,EAAE,IAAI,EAAE,6BAA6B,EAAE,KAAK,EAAE,WAAW,EAAE;IAC3D,EAAE,IAAI,EAAE,oCAAoC,EAAE,KAAK,EAAE,cAAc,EAAE;IACrE,EAAE,IAAI,EAAE,6CAA6C,EAAE,KAAK,EAAE,mBAAmB,EAAE;IACnF,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,QAAQ,EAAE;CACpD,CAAC;AAEX;;GAEG;AACU,QAAA,UAAU,GAAG;IACxB,EAAE,IAAI,EAAE,mCAAmC,EAAE,KAAK,EAAE,MAAM,EAAE;IAC5D,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,SAAS,EAAE;IAC7D,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpD,EAAE,IAAI,EAAE,kCAAkC,EAAE,KAAK,EAAE,QAAQ,EAAE;CACrD,CAAC;AAEX;;GAEG;AACU,QAAA,aAAa,GAAG;IAC3B,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;IAC3C,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;IAC/C,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;CACjC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ program
|
|
|
15
15
|
.version(packageJson.version);
|
|
16
16
|
program
|
|
17
17
|
.command('init')
|
|
18
|
-
.description('
|
|
18
|
+
.description('Scaffold a valid agent-manifest.json')
|
|
19
19
|
.action(init_1.initCommand);
|
|
20
20
|
program
|
|
21
21
|
.command('validate')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,2BAAkC;AAClC,+BAA4B;AAC5B,0CAA8C;AAC9C,kDAAsD;AACtD,gDAAoD;AAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1F,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,iFAAiF,CAAC;KAC9F,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,2BAAkC;AAClC,+BAA4B;AAC5B,0CAA8C;AAC9C,kDAAsD;AACtD,gDAAoD;AAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1F,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,iFAAiF,CAAC;KAC9F,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,uBAAuB,CAAC;KAC7E,MAAM,CAAC,0BAAe,CAAC,CAAC;AAE3B,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,uBAAuB,CAAC;KAC7E,MAAM,CAAC,wBAAc,CAAC,CAAC;AAE1B,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,93 +1,65 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Type definitions for Agent Manifest Protocol v0.
|
|
2
|
+
* Type definitions for Agent Manifest Protocol v0.2
|
|
3
3
|
*/
|
|
4
|
-
export interface
|
|
5
|
-
|
|
6
|
-
required: boolean;
|
|
7
|
-
description: string;
|
|
8
|
-
default?: any;
|
|
9
|
-
enum?: any[];
|
|
10
|
-
}
|
|
11
|
-
export interface ResponseSchema {
|
|
4
|
+
export interface EndpointParameter {
|
|
5
|
+
name: string;
|
|
12
6
|
type: string;
|
|
7
|
+
required: boolean;
|
|
13
8
|
description: string;
|
|
14
|
-
properties?: Record<string, any>;
|
|
15
|
-
}
|
|
16
|
-
export interface EndpointExample {
|
|
17
|
-
request: string;
|
|
18
|
-
response: any;
|
|
19
|
-
description?: string;
|
|
20
9
|
}
|
|
21
10
|
export interface Endpoint {
|
|
22
11
|
path: string;
|
|
23
12
|
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
24
13
|
description: string;
|
|
25
|
-
parameters?:
|
|
26
|
-
|
|
27
|
-
body?: Record<string, Parameter>;
|
|
28
|
-
path?: Record<string, Parameter>;
|
|
29
|
-
};
|
|
30
|
-
response: ResponseSchema;
|
|
31
|
-
examples?: EndpointExample[];
|
|
14
|
+
parameters?: EndpointParameter[];
|
|
15
|
+
response_description: string;
|
|
32
16
|
}
|
|
33
|
-
export interface
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
17
|
+
export interface FreeTier {
|
|
18
|
+
queries_per_day?: number | null;
|
|
19
|
+
queries_per_month?: number | null;
|
|
20
|
+
}
|
|
21
|
+
export interface PaidTier {
|
|
22
|
+
amount_usd: number;
|
|
23
|
+
unit: string;
|
|
24
|
+
description: string;
|
|
41
25
|
}
|
|
42
26
|
export interface Pricing {
|
|
43
|
-
model: 'free' | '
|
|
44
|
-
|
|
27
|
+
model: 'free' | 'per-query' | 'subscription' | 'pay-what-you-want' | 'tiered';
|
|
28
|
+
free_tier?: FreeTier | null;
|
|
29
|
+
paid_tier?: PaidTier | null;
|
|
30
|
+
support_url?: string | null;
|
|
45
31
|
}
|
|
46
|
-
export interface
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
32
|
+
export interface Payment {
|
|
33
|
+
provider?: string;
|
|
34
|
+
checkout_url: string;
|
|
35
|
+
key_provisioning_url?: string;
|
|
36
|
+
accepted_methods?: string[];
|
|
37
|
+
prepay_required?: boolean;
|
|
52
38
|
}
|
|
53
39
|
export interface Authentication {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
export interface RateLimits {
|
|
58
|
-
requests_per_minute?: number;
|
|
59
|
-
requests_per_hour?: number;
|
|
60
|
-
requests_per_day?: number;
|
|
61
|
-
}
|
|
62
|
-
export interface ReliabilityMetrics {
|
|
63
|
-
uptime_percentage?: number;
|
|
64
|
-
avg_response_time_ms?: number;
|
|
65
|
-
last_30_days_uptime?: number;
|
|
66
|
-
maintained_by?: string;
|
|
40
|
+
required: boolean;
|
|
41
|
+
type: 'api_key' | 'oauth2' | 'bearer' | 'none' | null;
|
|
42
|
+
instructions?: string | null;
|
|
67
43
|
}
|
|
68
|
-
export interface
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
twitter?: string;
|
|
44
|
+
export interface Reliability {
|
|
45
|
+
maintained_by: 'individual' | 'organization' | 'community';
|
|
46
|
+
status_url?: string | null;
|
|
47
|
+
expected_uptime_pct?: number | null;
|
|
73
48
|
}
|
|
74
49
|
export interface AgentManifest {
|
|
75
|
-
spec_version: 'agentmanifest-0.
|
|
50
|
+
spec_version: 'agentmanifest-0.2';
|
|
76
51
|
name: string;
|
|
77
52
|
version: string;
|
|
78
53
|
description: string;
|
|
79
|
-
homepage?: string;
|
|
80
|
-
documentation?: string;
|
|
81
54
|
categories: string[];
|
|
82
|
-
primary_category:
|
|
55
|
+
primary_category: 'reference' | 'live' | 'computational' | 'transactional' | 'enrichment' | 'personal' | 'discovery';
|
|
83
56
|
endpoints: Endpoint[];
|
|
84
57
|
pricing: Pricing;
|
|
85
58
|
authentication: Authentication;
|
|
86
|
-
|
|
87
|
-
reliability_metrics?: ReliabilityMetrics;
|
|
88
|
-
contact?: Contact;
|
|
59
|
+
reliability: Reliability;
|
|
89
60
|
agent_notes: string;
|
|
90
|
-
|
|
61
|
+
contact: string;
|
|
62
|
+
listing_requested: boolean;
|
|
91
63
|
last_updated: string;
|
|
92
64
|
}
|
|
93
65
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACjC,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,QAAQ;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,cAAc,GAAG,mBAAmB,GAAG,QAAQ,CAAC;IAC9E,SAAS,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;IACtD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,YAAY,GAAG,cAAc,GAAG,WAAW,CAAC;IAC3D,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,mBAAmB,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,WAAW,GAAG,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;IACrH,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;CACtB"}
|
package/dist/types.js
CHANGED