@adcp/client 4.9.0 → 4.10.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/bin/adcp.js +338 -0
- package/dist/lib/core/AgentClient.d.ts +92 -1
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/AgentClient.js +237 -0
- package/dist/lib/core/AgentClient.js.map +1 -1
- package/dist/lib/core/AsyncHandler.d.ts +18 -1
- package/dist/lib/core/AsyncHandler.d.ts.map +1 -1
- package/dist/lib/core/AsyncHandler.js.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.ts +69 -1
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +106 -0
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/registry/types.generated.d.ts +12 -12
- package/dist/lib/registry/types.generated.js +1 -1
- package/dist/lib/testing/agent-tester.d.ts.map +1 -1
- package/dist/lib/testing/agent-tester.js.map +1 -1
- package/dist/lib/testing/client.d.ts +6 -1
- package/dist/lib/testing/client.d.ts.map +1 -1
- package/dist/lib/testing/client.js +36 -19
- package/dist/lib/testing/client.js.map +1 -1
- package/dist/lib/testing/compliance/briefs.d.ts +12 -0
- package/dist/lib/testing/compliance/briefs.d.ts.map +1 -0
- package/dist/lib/testing/compliance/briefs.js +157 -0
- package/dist/lib/testing/compliance/briefs.js.map +1 -0
- package/dist/lib/testing/compliance/comply.d.ts +26 -0
- package/dist/lib/testing/compliance/comply.d.ts.map +1 -0
- package/dist/lib/testing/compliance/comply.js +540 -0
- package/dist/lib/testing/compliance/comply.js.map +1 -0
- package/dist/lib/testing/compliance/convince.d.ts +27 -0
- package/dist/lib/testing/compliance/convince.d.ts.map +1 -0
- package/dist/lib/testing/compliance/convince.js +418 -0
- package/dist/lib/testing/compliance/convince.js.map +1 -0
- package/dist/lib/testing/compliance/index.d.ts +13 -0
- package/dist/lib/testing/compliance/index.d.ts.map +1 -0
- package/dist/lib/testing/compliance/index.js +22 -0
- package/dist/lib/testing/compliance/index.js.map +1 -0
- package/dist/lib/testing/compliance/types.d.ts +123 -0
- package/dist/lib/testing/compliance/types.d.ts.map +1 -0
- package/dist/lib/testing/compliance/types.js +9 -0
- package/dist/lib/testing/compliance/types.js.map +1 -0
- package/dist/lib/testing/index.d.ts +1 -0
- package/dist/lib/testing/index.d.ts.map +1 -1
- package/dist/lib/testing/index.js +15 -1
- package/dist/lib/testing/index.js.map +1 -1
- package/dist/lib/testing/scenarios/capabilities.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/capabilities.js +14 -13
- package/dist/lib/testing/scenarios/capabilities.js.map +1 -1
- package/dist/lib/testing/scenarios/creative.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/creative.js +21 -14
- package/dist/lib/testing/scenarios/creative.js.map +1 -1
- package/dist/lib/testing/scenarios/discovery.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/discovery.js +7 -5
- package/dist/lib/testing/scenarios/discovery.js.map +1 -1
- package/dist/lib/testing/scenarios/edge-cases.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/edge-cases.js +90 -112
- package/dist/lib/testing/scenarios/edge-cases.js.map +1 -1
- package/dist/lib/testing/scenarios/governance.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/governance.js +50 -39
- package/dist/lib/testing/scenarios/governance.js.map +1 -1
- package/dist/lib/testing/scenarios/media-buy.d.ts +6 -5
- package/dist/lib/testing/scenarios/media-buy.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/media-buy.js +140 -51
- package/dist/lib/testing/scenarios/media-buy.js.map +1 -1
- package/dist/lib/testing/scenarios/schema-compliance.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/schema-compliance.js +26 -22
- package/dist/lib/testing/scenarios/schema-compliance.js.map +1 -1
- package/dist/lib/testing/scenarios/signals.d.ts +4 -8
- package/dist/lib/testing/scenarios/signals.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/signals.js +17 -59
- package/dist/lib/testing/scenarios/signals.js.map +1 -1
- package/dist/lib/testing/scenarios/sponsored-intelligence.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/sponsored-intelligence.js +23 -19
- package/dist/lib/testing/scenarios/sponsored-intelligence.js.map +1 -1
- package/dist/lib/testing/types.d.ts +2 -1
- package/dist/lib/testing/types.d.ts.map +1 -1
- package/dist/lib/types/core.generated.d.ts +1 -1
- package/dist/lib/types/core.generated.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js +1 -1
- package/dist/lib/types/schemas.generated.d.ts +35 -35
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +2 -2
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +1 -1
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/package.json +5 -2
package/bin/adcp.js
CHANGED
|
@@ -460,6 +460,321 @@ async function handleTestCommand(args) {
|
|
|
460
460
|
}
|
|
461
461
|
}
|
|
462
462
|
|
|
463
|
+
/**
|
|
464
|
+
* Parse common agent/auth options shared by test, comply, and convince commands.
|
|
465
|
+
*/
|
|
466
|
+
function parseAgentOptions(args) {
|
|
467
|
+
const authIndex = args.indexOf('--auth');
|
|
468
|
+
let authToken = process.env.ADCP_AUTH_TOKEN;
|
|
469
|
+
if (authIndex !== -1 && authIndex + 1 < args.length && !args[authIndex + 1].startsWith('--')) {
|
|
470
|
+
authToken = args[authIndex + 1];
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
const protocolIndex = args.indexOf('--protocol');
|
|
474
|
+
let protocolFlag = null;
|
|
475
|
+
if (protocolIndex !== -1 && protocolIndex + 1 < args.length && !args[protocolIndex + 1].startsWith('--')) {
|
|
476
|
+
protocolFlag = args[protocolIndex + 1];
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
const briefIndex = args.indexOf('--brief');
|
|
480
|
+
let brief;
|
|
481
|
+
if (briefIndex !== -1 && briefIndex + 1 < args.length && !args[briefIndex + 1].startsWith('--')) {
|
|
482
|
+
brief = args[briefIndex + 1];
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
const jsonOutput = args.includes('--json');
|
|
486
|
+
const debug = args.includes('--debug') || process.env.ADCP_DEBUG === 'true';
|
|
487
|
+
const dryRun = !args.includes('--no-dry-run');
|
|
488
|
+
|
|
489
|
+
// Filter out flags to find positional args
|
|
490
|
+
const positionalArgs = args.filter(
|
|
491
|
+
arg => !arg.startsWith('--') && arg !== authToken && arg !== protocolFlag && arg !== brief
|
|
492
|
+
);
|
|
493
|
+
|
|
494
|
+
return { authToken, protocolFlag, brief, jsonOutput, debug, dryRun, positionalArgs };
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* Resolve an agent argument (alias or URL) to { agentUrl, protocol, authToken }
|
|
499
|
+
*
|
|
500
|
+
* Auth resolution order:
|
|
501
|
+
* 1. Explicit --auth token from CLI
|
|
502
|
+
* 2. ADCP_AUTH_TOKEN env var
|
|
503
|
+
* 3. Saved OAuth tokens (if alias has them and they're valid)
|
|
504
|
+
* 4. Static auth_token from alias or built-in
|
|
505
|
+
* 5. None
|
|
506
|
+
*/
|
|
507
|
+
async function resolveAgent(agentArg, authToken, protocolFlag, jsonOutput) {
|
|
508
|
+
let agentUrl;
|
|
509
|
+
let protocol = protocolFlag;
|
|
510
|
+
let finalAuthToken = authToken;
|
|
511
|
+
|
|
512
|
+
if (BUILT_IN_AGENTS[agentArg]) {
|
|
513
|
+
const builtIn = BUILT_IN_AGENTS[agentArg];
|
|
514
|
+
agentUrl = builtIn.url;
|
|
515
|
+
protocol = protocol || builtIn.protocol;
|
|
516
|
+
finalAuthToken = finalAuthToken || builtIn.auth_token;
|
|
517
|
+
} else if (isAlias(agentArg)) {
|
|
518
|
+
const savedAgent = getAgent(agentArg);
|
|
519
|
+
agentUrl = savedAgent.url;
|
|
520
|
+
protocol = protocol || savedAgent.protocol;
|
|
521
|
+
// Use getEffectiveAuthToken: prefers valid OAuth tokens, falls back to static token
|
|
522
|
+
finalAuthToken = finalAuthToken || getEffectiveAuthToken(savedAgent);
|
|
523
|
+
} else if (agentArg.startsWith('http://') || agentArg.startsWith('https://')) {
|
|
524
|
+
agentUrl = agentArg;
|
|
525
|
+
} else {
|
|
526
|
+
console.error(`ERROR: '${agentArg}' is not a valid agent alias or URL\n`);
|
|
527
|
+
console.error('Built-in aliases: test-mcp, test-a2a, creative');
|
|
528
|
+
console.error(`Saved aliases: ${Object.keys(listAgents()).join(', ') || 'none'}\n`);
|
|
529
|
+
process.exit(2);
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
// Auto-detect protocol if not specified
|
|
533
|
+
if (!protocol) {
|
|
534
|
+
if (!jsonOutput) console.error('Auto-detecting protocol...');
|
|
535
|
+
try {
|
|
536
|
+
protocol = await detectProtocol(agentUrl);
|
|
537
|
+
if (!jsonOutput) console.error(`Detected protocol: ${protocol.toUpperCase()}\n`);
|
|
538
|
+
} catch (error) {
|
|
539
|
+
console.error(`ERROR: Failed to detect protocol: ${error.message}\n`);
|
|
540
|
+
process.exit(2);
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
return { agentUrl, protocol, authToken: finalAuthToken };
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
async function handleComplyCommand(args) {
|
|
548
|
+
if (args.includes('--help') || args.length === 0) {
|
|
549
|
+
console.log(`
|
|
550
|
+
AdCP Comply - Compliance Assessment
|
|
551
|
+
|
|
552
|
+
USAGE:
|
|
553
|
+
adcp comply <agent> [options]
|
|
554
|
+
|
|
555
|
+
DESCRIPTION:
|
|
556
|
+
Runs all applicable capability tracks against an agent and reports
|
|
557
|
+
results for every track. Never stops at the first failure — shows
|
|
558
|
+
the full picture.
|
|
559
|
+
|
|
560
|
+
Tracks: core, products, media_buy, creative, reporting, governance,
|
|
561
|
+
signals, si, audiences
|
|
562
|
+
|
|
563
|
+
OPTIONS:
|
|
564
|
+
--auth TOKEN Authentication token (overrides saved tokens)
|
|
565
|
+
--protocol PROTO Force protocol: mcp or a2a
|
|
566
|
+
--tracks TRACKS Comma-separated tracks to run (default: all applicable)
|
|
567
|
+
--brief TEXT Custom brief for product discovery
|
|
568
|
+
--json Output raw JSON
|
|
569
|
+
--debug Show debug output
|
|
570
|
+
--no-dry-run Run in live mode (default: dry run)
|
|
571
|
+
|
|
572
|
+
EXAMPLES:
|
|
573
|
+
adcp comply test-mcp
|
|
574
|
+
adcp comply myagent # uses saved OAuth tokens automatically
|
|
575
|
+
adcp comply test-mcp --tracks core,products,media_buy
|
|
576
|
+
adcp comply https://my-agent.com/mcp --auth my-token
|
|
577
|
+
adcp comply test-mcp --json | jq '.summary'
|
|
578
|
+
`);
|
|
579
|
+
return;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
const opts = parseAgentOptions(args);
|
|
583
|
+
|
|
584
|
+
if (opts.positionalArgs.length === 0) {
|
|
585
|
+
console.error('ERROR: comply requires an agent alias or URL\n');
|
|
586
|
+
process.exit(2);
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
const {
|
|
590
|
+
agentUrl,
|
|
591
|
+
protocol,
|
|
592
|
+
authToken: finalAuthToken,
|
|
593
|
+
} = await resolveAgent(opts.positionalArgs[0], opts.authToken, opts.protocolFlag, opts.jsonOutput);
|
|
594
|
+
|
|
595
|
+
// Parse --tracks
|
|
596
|
+
const tracksIndex = args.indexOf('--tracks');
|
|
597
|
+
let tracks;
|
|
598
|
+
if (tracksIndex !== -1 && tracksIndex + 1 < args.length) {
|
|
599
|
+
tracks = args[tracksIndex + 1].split(',');
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
const testOptions = {
|
|
603
|
+
protocol,
|
|
604
|
+
dry_run: opts.dryRun,
|
|
605
|
+
brief: opts.brief,
|
|
606
|
+
tracks,
|
|
607
|
+
...(finalAuthToken && { auth: { type: 'bearer', token: finalAuthToken } }),
|
|
608
|
+
};
|
|
609
|
+
|
|
610
|
+
if (!opts.jsonOutput) {
|
|
611
|
+
console.log(`\n🔍 Running compliance assessment against ${agentUrl}`);
|
|
612
|
+
console.log(` Protocol: ${protocol.toUpperCase()}`);
|
|
613
|
+
console.log(` Mode: ${opts.dryRun ? 'Dry Run' : 'Live'}`);
|
|
614
|
+
console.log(` Auth: ${finalAuthToken ? 'configured' : 'none'}\n`);
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
try {
|
|
618
|
+
const { comply, formatComplianceResults, formatComplianceResultsJSON } =
|
|
619
|
+
await import('../dist/lib/testing/compliance/index.js');
|
|
620
|
+
|
|
621
|
+
// Silence logger unless debug
|
|
622
|
+
const { setAgentTesterLogger } = await import('../dist/lib/testing/client.js');
|
|
623
|
+
if (!opts.debug) {
|
|
624
|
+
setAgentTesterLogger({ info: () => {}, error: () => {}, warn: () => {}, debug: () => {} });
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
const result = await comply(agentUrl, testOptions);
|
|
628
|
+
|
|
629
|
+
if (opts.jsonOutput) {
|
|
630
|
+
console.log(formatComplianceResultsJSON(result));
|
|
631
|
+
} else {
|
|
632
|
+
console.log(formatComplianceResults(result));
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
const hasFailures = result.summary.tracks_failed > 0;
|
|
636
|
+
process.exit(hasFailures ? 3 : 0);
|
|
637
|
+
} catch (error) {
|
|
638
|
+
console.error(`\n❌ Compliance assessment failed: ${error.message}`);
|
|
639
|
+
if (opts.debug) console.error(error.stack);
|
|
640
|
+
process.exit(1);
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
async function handleConvinceCommand(args) {
|
|
645
|
+
if (args.includes('--help') || args.length === 0) {
|
|
646
|
+
console.log(`
|
|
647
|
+
AdCP Convince - AI-Assessed Merchandising Quality
|
|
648
|
+
|
|
649
|
+
USAGE:
|
|
650
|
+
adcp convince <agent> [options]
|
|
651
|
+
|
|
652
|
+
DESCRIPTION:
|
|
653
|
+
Runs sample briefs against the agent's get_products endpoint and
|
|
654
|
+
uses an LLM to evaluate the quality of responses. Tests whether
|
|
655
|
+
your products would convince a buyer to transact.
|
|
656
|
+
|
|
657
|
+
Dimensions assessed: relevance, specificity, completeness, pricing,
|
|
658
|
+
merchandising
|
|
659
|
+
|
|
660
|
+
OPTIONS:
|
|
661
|
+
--auth TOKEN Authentication token (overrides saved tokens)
|
|
662
|
+
--protocol PROTO Force protocol: mcp or a2a
|
|
663
|
+
--anthropic-key KEY Anthropic API key (or set ANTHROPIC_API_KEY env var)
|
|
664
|
+
--gemini-key KEY Google Gemini API key (or set GEMINI_API_KEY env var)
|
|
665
|
+
--briefs IDS Comma-separated brief IDs to run (default: all)
|
|
666
|
+
--list-briefs List available sample briefs
|
|
667
|
+
--brief TEXT Custom brief for product discovery
|
|
668
|
+
--model MODEL LLM model override
|
|
669
|
+
--json Output raw JSON
|
|
670
|
+
--debug Show debug output
|
|
671
|
+
--no-dry-run Run in live mode (default: dry run)
|
|
672
|
+
|
|
673
|
+
EXAMPLES:
|
|
674
|
+
adcp convince myagent --anthropic-key sk-ant-... # uses saved OAuth tokens automatically
|
|
675
|
+
adcp convince test-mcp --anthropic-key sk-ant-...
|
|
676
|
+
adcp convince test-mcp --briefs luxury_auto_ev,dtc_skincare_genZ
|
|
677
|
+
adcp convince test-mcp --list-briefs
|
|
678
|
+
ANTHROPIC_API_KEY=sk-ant-... adcp convince test-mcp
|
|
679
|
+
`);
|
|
680
|
+
return;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
// Handle --list-briefs
|
|
684
|
+
if (args.includes('--list-briefs')) {
|
|
685
|
+
const { SAMPLE_BRIEFS } = await import('../dist/lib/testing/compliance/briefs.js');
|
|
686
|
+
console.log('\n📋 Available Sample Briefs:\n');
|
|
687
|
+
for (const brief of SAMPLE_BRIEFS) {
|
|
688
|
+
console.log(` ${brief.id}`);
|
|
689
|
+
console.log(` ${brief.name} (${brief.vertical})`);
|
|
690
|
+
console.log(` Budget: ${brief.budget_context || 'Not specified'}`);
|
|
691
|
+
console.log(` ${brief.brief.slice(0, 100)}...`);
|
|
692
|
+
console.log('');
|
|
693
|
+
}
|
|
694
|
+
return;
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
const opts = parseAgentOptions(args);
|
|
698
|
+
|
|
699
|
+
if (opts.positionalArgs.length === 0) {
|
|
700
|
+
console.error('ERROR: convince requires an agent alias or URL\n');
|
|
701
|
+
process.exit(2);
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
const {
|
|
705
|
+
agentUrl,
|
|
706
|
+
protocol,
|
|
707
|
+
authToken: finalAuthToken,
|
|
708
|
+
} = await resolveAgent(opts.positionalArgs[0], opts.authToken, opts.protocolFlag, opts.jsonOutput);
|
|
709
|
+
|
|
710
|
+
// Parse LLM keys
|
|
711
|
+
const anthropicKeyIndex = args.indexOf('--anthropic-key');
|
|
712
|
+
const geminiKeyIndex = args.indexOf('--gemini-key');
|
|
713
|
+
const modelIndex = args.indexOf('--model');
|
|
714
|
+
const briefsIndex = args.indexOf('--briefs');
|
|
715
|
+
|
|
716
|
+
const anthropic_api_key = anthropicKeyIndex !== -1 ? args[anthropicKeyIndex + 1] : process.env.ANTHROPIC_API_KEY;
|
|
717
|
+
const gemini_api_key = geminiKeyIndex !== -1 ? args[geminiKeyIndex + 1] : process.env.GEMINI_API_KEY;
|
|
718
|
+
const model = modelIndex !== -1 ? args[modelIndex + 1] : undefined;
|
|
719
|
+
const brief_ids = briefsIndex !== -1 ? args[briefsIndex + 1].split(',') : undefined;
|
|
720
|
+
|
|
721
|
+
if (!anthropic_api_key && !gemini_api_key) {
|
|
722
|
+
console.error('ERROR: convince requires an LLM API key\n');
|
|
723
|
+
console.error('Provide one of:');
|
|
724
|
+
console.error(' --anthropic-key KEY or set ANTHROPIC_API_KEY');
|
|
725
|
+
console.error(' --gemini-key KEY or set GEMINI_API_KEY\n');
|
|
726
|
+
process.exit(2);
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
const testOptions = {
|
|
730
|
+
protocol,
|
|
731
|
+
dry_run: opts.dryRun,
|
|
732
|
+
brief: opts.brief,
|
|
733
|
+
anthropic_api_key,
|
|
734
|
+
gemini_api_key,
|
|
735
|
+
model,
|
|
736
|
+
brief_ids,
|
|
737
|
+
...(finalAuthToken && { auth: { type: 'bearer', token: finalAuthToken } }),
|
|
738
|
+
};
|
|
739
|
+
|
|
740
|
+
const evaluator = anthropic_api_key ? 'Anthropic' : 'Gemini';
|
|
741
|
+
const briefCount = brief_ids ? brief_ids.length : 'all';
|
|
742
|
+
|
|
743
|
+
if (!opts.jsonOutput) {
|
|
744
|
+
console.log(`\n🎯 Running convince assessment against ${agentUrl}`);
|
|
745
|
+
console.log(` Protocol: ${protocol.toUpperCase()}`);
|
|
746
|
+
console.log(` Evaluator: ${evaluator}`);
|
|
747
|
+
console.log(` Briefs: ${briefCount}`);
|
|
748
|
+
console.log(` Mode: ${opts.dryRun ? 'Dry Run' : 'Live'}`);
|
|
749
|
+
console.log(` Auth: ${finalAuthToken ? 'configured' : 'none'}\n`);
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
try {
|
|
753
|
+
const { convince, formatConvinceResults, formatConvinceResultsJSON } =
|
|
754
|
+
await import('../dist/lib/testing/compliance/index.js');
|
|
755
|
+
|
|
756
|
+
// Silence logger unless debug
|
|
757
|
+
const { setAgentTesterLogger } = await import('../dist/lib/testing/client.js');
|
|
758
|
+
if (!opts.debug) {
|
|
759
|
+
setAgentTesterLogger({ info: () => {}, error: () => {}, warn: () => {}, debug: () => {} });
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
const result = await convince(agentUrl, testOptions);
|
|
763
|
+
|
|
764
|
+
if (opts.jsonOutput) {
|
|
765
|
+
console.log(formatConvinceResultsJSON(result));
|
|
766
|
+
} else {
|
|
767
|
+
console.log(formatConvinceResults(result));
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
process.exit(0);
|
|
771
|
+
} catch (error) {
|
|
772
|
+
console.error(`\n❌ Convince assessment failed: ${error.message}`);
|
|
773
|
+
if (opts.debug) console.error(error.stack);
|
|
774
|
+
process.exit(1);
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
|
|
463
778
|
function printUsage() {
|
|
464
779
|
console.log(`
|
|
465
780
|
AdCP CLI Tool - Direct Agent Communication
|
|
@@ -511,6 +826,17 @@ AGENT TESTING:
|
|
|
511
826
|
Default scenario: discovery
|
|
512
827
|
test --list-scenarios List all available test scenarios
|
|
513
828
|
|
|
829
|
+
COMPLIANCE & QUALITY:
|
|
830
|
+
comply <agent> [options] Run compliance assessment across all capability tracks
|
|
831
|
+
Tracks: core, products, media_buy, creative, reporting,
|
|
832
|
+
governance, signals, si, audiences
|
|
833
|
+
comply --help Full comply usage
|
|
834
|
+
|
|
835
|
+
convince <agent> [options] AI-assessed merchandising quality against sample briefs
|
|
836
|
+
Requires: --anthropic-key or --gemini-key (or env vars)
|
|
837
|
+
convince --list-briefs List available sample briefs
|
|
838
|
+
convince --help Full convince usage
|
|
839
|
+
|
|
514
840
|
REGISTRY:
|
|
515
841
|
registry brand <domain> Look up a brand
|
|
516
842
|
registry brands <d1> <d2> ... Bulk brand lookup
|
|
@@ -869,6 +1195,18 @@ async function main() {
|
|
|
869
1195
|
return; // handleTestCommand exits, but return for clarity
|
|
870
1196
|
}
|
|
871
1197
|
|
|
1198
|
+
// Handle comply command
|
|
1199
|
+
if (args[0] === 'comply') {
|
|
1200
|
+
await handleComplyCommand(args.slice(1));
|
|
1201
|
+
return;
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
// Handle convince command
|
|
1205
|
+
if (args[0] === 'convince') {
|
|
1206
|
+
await handleConvinceCommand(args.slice(1));
|
|
1207
|
+
return;
|
|
1208
|
+
}
|
|
1209
|
+
|
|
872
1210
|
// Parse arguments
|
|
873
1211
|
if (args.length < 1) {
|
|
874
1212
|
console.error('ERROR: Missing required arguments\n');
|
|
@@ -2,7 +2,7 @@ import type { AgentConfig } from '../types';
|
|
|
2
2
|
import { type SingleAgentClientConfig } from './SingleAgentClient';
|
|
3
3
|
import type { InputHandler, TaskOptions, TaskResult, TaskInfo, Message } from './ConversationTypes';
|
|
4
4
|
import type { AdcpCapabilities } from '../utils/capabilities';
|
|
5
|
-
import type { GetProductsRequest, GetProductsResponse, ListCreativeFormatsRequest, ListCreativeFormatsResponse, CreateMediaBuyRequest, CreateMediaBuyResponse, UpdateMediaBuyRequest, UpdateMediaBuyResponse, SyncCreativesRequest, SyncCreativesResponse, ListCreativesRequest, ListCreativesResponse, GetMediaBuysRequest, GetMediaBuysResponse, GetMediaBuyDeliveryRequest, GetMediaBuyDeliveryResponse, ProvidePerformanceFeedbackRequest, ProvidePerformanceFeedbackResponse, GetSignalsRequest, GetSignalsResponse, ActivateSignalRequest, ActivateSignalResponse, GetAdCPCapabilitiesRequest, GetAdCPCapabilitiesResponse } from '../types/tools.generated';
|
|
5
|
+
import type { GetProductsRequest, GetProductsResponse, ListCreativeFormatsRequest, ListCreativeFormatsResponse, CreateMediaBuyRequest, CreateMediaBuyResponse, UpdateMediaBuyRequest, UpdateMediaBuyResponse, SyncCreativesRequest, SyncCreativesResponse, ListCreativesRequest, ListCreativesResponse, GetMediaBuysRequest, GetMediaBuysResponse, GetMediaBuyDeliveryRequest, GetMediaBuyDeliveryResponse, ProvidePerformanceFeedbackRequest, ProvidePerformanceFeedbackResponse, GetSignalsRequest, GetSignalsResponse, ActivateSignalRequest, ActivateSignalResponse, GetAdCPCapabilitiesRequest, GetAdCPCapabilitiesResponse, PreviewCreativeRequest, PreviewCreativeResponse, BuildCreativeRequest, BuildCreativeResponse, ListAccountsRequest, ListAccountsResponse, SyncAccountsRequest, SyncAccountsResponse, SyncAudiencesRequest, SyncAudiencesResponse, CreatePropertyListRequest, CreatePropertyListResponse, GetPropertyListRequest, GetPropertyListResponse, UpdatePropertyListRequest, UpdatePropertyListResponse, ListPropertyListsRequest, ListPropertyListsResponse, DeletePropertyListRequest, DeletePropertyListResponse, ListContentStandardsRequest, ListContentStandardsResponse, GetContentStandardsRequest, GetContentStandardsResponse, CalibrateContentRequest, CalibrateContentResponse, ValidateContentDeliveryRequest, ValidateContentDeliveryResponse, SIGetOfferingRequest, SIGetOfferingResponse, SIInitiateSessionRequest, SIInitiateSessionResponse, SISendMessageRequest, SISendMessageResponse, SITerminateSessionRequest, SITerminateSessionResponse } from '../types/tools.generated';
|
|
6
6
|
/**
|
|
7
7
|
* Type mapping for task names to their response types
|
|
8
8
|
* Enables type-safe generic executeTask() calls
|
|
@@ -19,6 +19,25 @@ export type TaskResponseTypeMap = {
|
|
|
19
19
|
provide_performance_feedback: ProvidePerformanceFeedbackResponse;
|
|
20
20
|
get_signals: GetSignalsResponse;
|
|
21
21
|
activate_signal: ActivateSignalResponse;
|
|
22
|
+
get_adcp_capabilities: GetAdCPCapabilitiesResponse;
|
|
23
|
+
preview_creative: PreviewCreativeResponse;
|
|
24
|
+
build_creative: BuildCreativeResponse;
|
|
25
|
+
list_accounts: ListAccountsResponse;
|
|
26
|
+
sync_accounts: SyncAccountsResponse;
|
|
27
|
+
sync_audiences: SyncAudiencesResponse;
|
|
28
|
+
create_property_list: CreatePropertyListResponse;
|
|
29
|
+
get_property_list: GetPropertyListResponse;
|
|
30
|
+
update_property_list: UpdatePropertyListResponse;
|
|
31
|
+
list_property_lists: ListPropertyListsResponse;
|
|
32
|
+
delete_property_list: DeletePropertyListResponse;
|
|
33
|
+
list_content_standards: ListContentStandardsResponse;
|
|
34
|
+
get_content_standards: GetContentStandardsResponse;
|
|
35
|
+
calibrate_content: CalibrateContentResponse;
|
|
36
|
+
validate_content_delivery: ValidateContentDeliveryResponse;
|
|
37
|
+
si_get_offering: SIGetOfferingResponse;
|
|
38
|
+
si_initiate_session: SIInitiateSessionResponse;
|
|
39
|
+
si_send_message: SISendMessageResponse;
|
|
40
|
+
si_terminate_session: SITerminateSessionResponse;
|
|
22
41
|
};
|
|
23
42
|
/**
|
|
24
43
|
* Valid ADCP task names
|
|
@@ -124,6 +143,78 @@ export declare class AgentClient {
|
|
|
124
143
|
* For v2 servers: builds synthetic capabilities from tool list
|
|
125
144
|
*/
|
|
126
145
|
getCapabilities(): Promise<AdcpCapabilities>;
|
|
146
|
+
/**
|
|
147
|
+
* Preview a creative
|
|
148
|
+
*/
|
|
149
|
+
previewCreative(params: PreviewCreativeRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<PreviewCreativeResponse>>;
|
|
150
|
+
/**
|
|
151
|
+
* Build a creative from format and brand context
|
|
152
|
+
*/
|
|
153
|
+
buildCreative(params: BuildCreativeRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<BuildCreativeResponse>>;
|
|
154
|
+
/**
|
|
155
|
+
* List accounts
|
|
156
|
+
*/
|
|
157
|
+
listAccounts(params: ListAccountsRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<ListAccountsResponse>>;
|
|
158
|
+
/**
|
|
159
|
+
* Sync accounts
|
|
160
|
+
*/
|
|
161
|
+
syncAccounts(params: SyncAccountsRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<SyncAccountsResponse>>;
|
|
162
|
+
/**
|
|
163
|
+
* Sync audiences
|
|
164
|
+
*/
|
|
165
|
+
syncAudiences(params: SyncAudiencesRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<SyncAudiencesResponse>>;
|
|
166
|
+
/**
|
|
167
|
+
* Create a property list
|
|
168
|
+
*/
|
|
169
|
+
createPropertyList(params: CreatePropertyListRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<CreatePropertyListResponse>>;
|
|
170
|
+
/**
|
|
171
|
+
* Get a property list
|
|
172
|
+
*/
|
|
173
|
+
getPropertyList(params: GetPropertyListRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<GetPropertyListResponse>>;
|
|
174
|
+
/**
|
|
175
|
+
* Update a property list
|
|
176
|
+
*/
|
|
177
|
+
updatePropertyList(params: UpdatePropertyListRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<UpdatePropertyListResponse>>;
|
|
178
|
+
/**
|
|
179
|
+
* List property lists
|
|
180
|
+
*/
|
|
181
|
+
listPropertyLists(params: ListPropertyListsRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<ListPropertyListsResponse>>;
|
|
182
|
+
/**
|
|
183
|
+
* Delete a property list
|
|
184
|
+
*/
|
|
185
|
+
deletePropertyList(params: DeletePropertyListRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<DeletePropertyListResponse>>;
|
|
186
|
+
/**
|
|
187
|
+
* List content standards
|
|
188
|
+
*/
|
|
189
|
+
listContentStandards(params: ListContentStandardsRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<ListContentStandardsResponse>>;
|
|
190
|
+
/**
|
|
191
|
+
* Get content standards
|
|
192
|
+
*/
|
|
193
|
+
getContentStandards(params: GetContentStandardsRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<GetContentStandardsResponse>>;
|
|
194
|
+
/**
|
|
195
|
+
* Calibrate content against standards
|
|
196
|
+
*/
|
|
197
|
+
calibrateContent(params: CalibrateContentRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<CalibrateContentResponse>>;
|
|
198
|
+
/**
|
|
199
|
+
* Validate content delivery
|
|
200
|
+
*/
|
|
201
|
+
validateContentDelivery(params: ValidateContentDeliveryRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<ValidateContentDeliveryResponse>>;
|
|
202
|
+
/**
|
|
203
|
+
* Get an SI offering
|
|
204
|
+
*/
|
|
205
|
+
siGetOffering(params: SIGetOfferingRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<SIGetOfferingResponse>>;
|
|
206
|
+
/**
|
|
207
|
+
* Initiate an SI session
|
|
208
|
+
*/
|
|
209
|
+
siInitiateSession(params: SIInitiateSessionRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<SIInitiateSessionResponse>>;
|
|
210
|
+
/**
|
|
211
|
+
* Send a message in an SI session
|
|
212
|
+
*/
|
|
213
|
+
siSendMessage(params: SISendMessageRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<SISendMessageResponse>>;
|
|
214
|
+
/**
|
|
215
|
+
* Terminate an SI session
|
|
216
|
+
*/
|
|
217
|
+
siTerminateSession(params: SITerminateSessionRequest, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<SITerminateSessionResponse>>;
|
|
127
218
|
/**
|
|
128
219
|
* Continue the conversation with a natural language message
|
|
129
220
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentClient.d.ts","sourceRoot":"","sources":["../../../src/lib/core/AgentClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAqB,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC3B,iCAAiC,EACjC,kCAAkC,EAClC,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAElC;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,mBAAmB,CAAC;IAClC,qBAAqB,EAAE,2BAA2B,CAAC;IACnD,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,cAAc,EAAE,qBAAqB,CAAC;IACtC,cAAc,EAAE,qBAAqB,CAAC;IACtC,cAAc,EAAE,oBAAoB,CAAC;IACrC,sBAAsB,EAAE,2BAA2B,CAAC;IACpD,4BAA4B,EAAE,kCAAkC,CAAC;IACjE,WAAW,EAAE,kBAAkB,CAAC;IAChC,eAAe,EAAE,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentClient.d.ts","sourceRoot":"","sources":["../../../src/lib/core/AgentClient.ts"],"names":[],"mappings":"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"}
|