@agentmanifest/cli 0.1.10 → 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.
@@ -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 constants_1 = require("../constants");
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
- console.log(chalk_1.default.cyan.bold('\nšŸš€ Agent Manifest Protocol - Interactive Setup\n'));
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
- // Check if file already exists
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('Aborted.'));
55
+ console.log(chalk_1.default.yellow('\nAborted.\n'));
30
56
  return;
31
57
  }
32
58
  }
33
- catch {
34
- // File doesn't exist, continue
35
- }
36
- // Basic Information
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
- endpoints.push({
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 (error) {
444
- if (error.isTtyError) {
445
- console.error(chalk_1.default.red('Prompt could not be rendered in the current environment'));
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":"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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AASA,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA2BD,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,iBAkM3D"}
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AASA,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAoDD,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,iBA4P3D"}
@@ -109,7 +109,69 @@ async function publishCommand(options) {
109
109
  timeout: 15000,
110
110
  });
111
111
  const result = publishResponse.data;
112
- if (result.success) {
112
+ // Handle async submission response
113
+ if (result.data?.submission_id) {
114
+ const submissionId = result.data.submission_id;
115
+ const statusUrl = result.data.status_url;
116
+ console.log(chalk_1.default.green('āœ“ Submission accepted'));
117
+ console.log(chalk_1.default.gray(`\nSubmission ID: ${submissionId}`));
118
+ console.log(chalk_1.default.gray('Status: Validating...'));
119
+ // Poll for status
120
+ const baseUrl = REGISTRY_URL.replace('/listings/submit', '');
121
+ const fullStatusUrl = `${baseUrl}${statusUrl}`;
122
+ let attempts = 0;
123
+ const maxAttempts = 60; // 60 seconds max
124
+ let finalStatus = null;
125
+ while (attempts < maxAttempts) {
126
+ await new Promise(resolve => setTimeout(resolve, 1000)); // Wait 1 second
127
+ attempts++;
128
+ try {
129
+ const statusResponse = await axios_1.default.get(fullStatusUrl, { timeout: 5000 });
130
+ finalStatus = statusResponse.data;
131
+ if (finalStatus.status === 'approved' || finalStatus.status === 'completed') {
132
+ console.log(chalk_1.default.green.bold('\nāœ… Successfully Published!'));
133
+ if (finalStatus.listing_id) {
134
+ console.log(chalk_1.default.gray(`\nListing ID: ${finalStatus.listing_id}`));
135
+ }
136
+ if (finalStatus.listing_url) {
137
+ const fullListingUrl = finalStatus.listing_url.startsWith('http')
138
+ ? finalStatus.listing_url
139
+ : `https://api.agent-manifest.com${finalStatus.listing_url}`;
140
+ console.log(chalk_1.default.gray(`View at: ${fullListingUrl}`));
141
+ }
142
+ console.log(chalk_1.default.gray('\nYour API is now discoverable in the AMP registry!'));
143
+ console.log(chalk_1.default.gray('AI agents can find and use your API through:'));
144
+ console.log(chalk_1.default.cyan(` ${manifest.homepage}/.well-known/agent-manifest.json`));
145
+ process.exit(0);
146
+ }
147
+ else if (finalStatus.status === 'rejected') {
148
+ console.log(chalk_1.default.red.bold('\nāŒ Publication Rejected'));
149
+ if (finalStatus.validation_errors && finalStatus.validation_errors.length > 0) {
150
+ console.log(chalk_1.default.red.bold('\nValidation Errors:'));
151
+ finalStatus.validation_errors.forEach((error, index) => {
152
+ console.log(chalk_1.default.red(` ${index + 1}. ${error.field}: ${error.message}`));
153
+ });
154
+ }
155
+ else if (finalStatus.message) {
156
+ console.log(chalk_1.default.red(`\n${finalStatus.message}`));
157
+ }
158
+ process.exit(1);
159
+ }
160
+ // Still pending/validating, continue polling
161
+ }
162
+ catch (statusError) {
163
+ // Ignore polling errors, will retry
164
+ }
165
+ }
166
+ // Timeout
167
+ console.log(chalk_1.default.yellow.bold('\nā±ļø Validation Timeout'));
168
+ console.log(chalk_1.default.gray(`\nValidation is taking longer than expected.`));
169
+ console.log(chalk_1.default.gray(`Check status manually:`));
170
+ console.log(chalk_1.default.cyan(` ${fullStatusUrl}`));
171
+ process.exit(1);
172
+ }
173
+ // Handle legacy sync response (if registry changes back)
174
+ else if (result.success) {
113
175
  console.log(chalk_1.default.green.bold('\nāœ… Successfully Published!'));
114
176
  if (result.listing_id) {
115
177
  console.log(chalk_1.default.gray(`\nListing ID: ${result.listing_id}`));
@@ -117,18 +179,14 @@ async function publishCommand(options) {
117
179
  if (result.url) {
118
180
  console.log(chalk_1.default.gray(`View at: ${result.url}`));
119
181
  }
120
- if (result.message) {
121
- console.log(chalk_1.default.cyan(`\n${result.message}`));
122
- }
123
182
  console.log(chalk_1.default.gray('\nYour API is now discoverable in the AMP registry!'));
124
183
  console.log(chalk_1.default.gray('AI agents can find and use your API through:'));
125
184
  console.log(chalk_1.default.cyan(` ${manifest.homepage}/.well-known/agent-manifest.json`));
126
185
  }
127
186
  else {
128
187
  console.log(chalk_1.default.red.bold('āŒ Publication Failed'));
129
- if (result.message) {
130
- console.log(chalk_1.default.red(`\n${result.message}`));
131
- }
188
+ console.log(chalk_1.default.gray('\nUnexpected response format:'));
189
+ console.log(chalk_1.default.gray(JSON.stringify(result, null, 2)));
132
190
  process.exit(1);
133
191
  }
134
192
  }