@adcp/client 4.8.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 +346 -0
- package/dist/lib/adapters/governance-adapter.d.ts +88 -0
- package/dist/lib/adapters/governance-adapter.d.ts.map +1 -0
- package/dist/lib/adapters/governance-adapter.js +96 -0
- package/dist/lib/adapters/governance-adapter.js.map +1 -0
- package/dist/lib/adapters/index.d.ts +1 -0
- package/dist/lib/adapters/index.d.ts.map +1 -1
- package/dist/lib/adapters/index.js +7 -1
- package/dist/lib/adapters/index.js.map +1 -1
- package/dist/lib/agents/index.generated.d.ts +33 -1
- package/dist/lib/agents/index.generated.d.ts.map +1 -1
- package/dist/lib/agents/index.generated.js +48 -0
- package/dist/lib/agents/index.generated.js.map +1 -1
- 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 +19 -2
- package/dist/lib/core/AsyncHandler.d.ts.map +1 -1
- package/dist/lib/core/AsyncHandler.js.map +1 -1
- package/dist/lib/core/ConversationTypes.d.ts +8 -2
- package/dist/lib/core/ConversationTypes.d.ts.map +1 -1
- package/dist/lib/core/GovernanceMiddleware.d.ts +86 -0
- package/dist/lib/core/GovernanceMiddleware.d.ts.map +1 -0
- package/dist/lib/core/GovernanceMiddleware.js +289 -0
- package/dist/lib/core/GovernanceMiddleware.js.map +1 -0
- package/dist/lib/core/GovernanceTypes.d.ts +118 -0
- package/dist/lib/core/GovernanceTypes.d.ts.map +1 -0
- package/dist/lib/core/GovernanceTypes.js +69 -0
- package/dist/lib/core/GovernanceTypes.js.map +1 -0
- package/dist/lib/core/SingleAgentClient.d.ts +103 -1
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +151 -0
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/core/TaskExecutor.d.ts +10 -0
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
- package/dist/lib/core/TaskExecutor.js +95 -10
- package/dist/lib/core/TaskExecutor.js.map +1 -1
- package/dist/lib/index.d.ts +6 -2
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +22 -4
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/observability/index.d.ts +8 -0
- package/dist/lib/observability/index.d.ts.map +1 -0
- package/dist/lib/observability/index.js +17 -0
- package/dist/lib/observability/index.js.map +1 -0
- package/dist/lib/observability/tracing.d.ts +42 -0
- package/dist/lib/observability/tracing.d.ts.map +1 -0
- package/dist/lib/observability/tracing.js +126 -0
- package/dist/lib/observability/tracing.js.map +1 -0
- package/dist/lib/protocols/a2a.d.ts.map +1 -1
- package/dist/lib/protocols/a2a.js +16 -1
- package/dist/lib/protocols/a2a.js.map +1 -1
- package/dist/lib/protocols/index.d.ts.map +1 -1
- package/dist/lib/protocols/index.js +37 -29
- package/dist/lib/protocols/index.js.map +1 -1
- package/dist/lib/protocols/mcp.d.ts.map +1 -1
- package/dist/lib/protocols/mcp.js +21 -1
- package/dist/lib/protocols/mcp.js.map +1 -1
- package/dist/lib/registry/types.generated.d.ts +754 -5
- package/dist/lib/registry/types.generated.d.ts.map +1 -1
- package/dist/lib/registry/types.generated.js +1 -1
- package/dist/lib/testing/agent-tester.d.ts +1 -1
- package/dist/lib/testing/agent-tester.d.ts.map +1 -1
- package/dist/lib/testing/agent-tester.js +36 -11
- 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/orchestrator.d.ts +0 -2
- package/dist/lib/testing/orchestrator.d.ts.map +1 -1
- package/dist/lib/testing/orchestrator.js +14 -3
- package/dist/lib/testing/orchestrator.js.map +1 -1
- package/dist/lib/testing/scenarios/capabilities.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/capabilities.js +70 -9
- package/dist/lib/testing/scenarios/capabilities.js.map +1 -1
- package/dist/lib/testing/scenarios/creative.d.ts +14 -0
- package/dist/lib/testing/scenarios/creative.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/creative.js +261 -55
- 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 +48 -0
- package/dist/lib/testing/scenarios/governance.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/governance.js +725 -39
- package/dist/lib/testing/scenarios/governance.js.map +1 -1
- package/dist/lib/testing/scenarios/index.d.ts +3 -3
- package/dist/lib/testing/scenarios/index.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/index.js +8 -1
- package/dist/lib/testing/scenarios/index.js.map +1 -1
- package/dist/lib/testing/scenarios/media-buy.d.ts +14 -5
- package/dist/lib/testing/scenarios/media-buy.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/media-buy.js +358 -63
- 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 +3 -2
- package/dist/lib/testing/types.d.ts.map +1 -1
- package/dist/lib/types/core.generated.d.ts +629 -5
- 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 +13059 -11101
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +573 -107
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +1827 -360
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/utils/capabilities.d.ts +17 -2
- package/dist/lib/utils/capabilities.d.ts.map +1 -1
- package/dist/lib/utils/capabilities.js +26 -2
- package/dist/lib/utils/capabilities.js.map +1 -1
- package/package.json +13 -3
package/bin/adcp.js
CHANGED
|
@@ -56,6 +56,10 @@ const TEST_SCENARIOS = [
|
|
|
56
56
|
'governance_content_standards',
|
|
57
57
|
'si_session_lifecycle',
|
|
58
58
|
'si_availability',
|
|
59
|
+
'campaign_governance',
|
|
60
|
+
'campaign_governance_denied',
|
|
61
|
+
'campaign_governance_conditions',
|
|
62
|
+
'campaign_governance_delivery',
|
|
59
63
|
];
|
|
60
64
|
|
|
61
65
|
// Built-in test agent aliases (shared between main CLI and test command)
|
|
@@ -248,6 +252,10 @@ async function handleTestCommand(args) {
|
|
|
248
252
|
governance_content_standards: 'Test content standards listing and calibration',
|
|
249
253
|
si_session_lifecycle: 'Test full SI session: initiate → messages → terminate',
|
|
250
254
|
si_availability: 'Quick check for SI offering availability',
|
|
255
|
+
campaign_governance: 'Full governance lifecycle: sync_plans → check → execute → report',
|
|
256
|
+
campaign_governance_denied: 'Denied flow: over-budget, unauthorized market',
|
|
257
|
+
campaign_governance_conditions: 'Conditions flow: apply conditions → re-check',
|
|
258
|
+
campaign_governance_delivery: 'Delivery monitoring with drift detection',
|
|
251
259
|
};
|
|
252
260
|
|
|
253
261
|
for (const scenario of TEST_SCENARIOS) {
|
|
@@ -452,6 +460,321 @@ async function handleTestCommand(args) {
|
|
|
452
460
|
}
|
|
453
461
|
}
|
|
454
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
|
+
|
|
455
778
|
function printUsage() {
|
|
456
779
|
console.log(`
|
|
457
780
|
AdCP CLI Tool - Direct Agent Communication
|
|
@@ -503,6 +826,17 @@ AGENT TESTING:
|
|
|
503
826
|
Default scenario: discovery
|
|
504
827
|
test --list-scenarios List all available test scenarios
|
|
505
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
|
+
|
|
506
840
|
REGISTRY:
|
|
507
841
|
registry brand <domain> Look up a brand
|
|
508
842
|
registry brands <d1> <d2> ... Bulk brand lookup
|
|
@@ -861,6 +1195,18 @@ async function main() {
|
|
|
861
1195
|
return; // handleTestCommand exits, but return for clarity
|
|
862
1196
|
}
|
|
863
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
|
+
|
|
864
1210
|
// Parse arguments
|
|
865
1211
|
if (args.length < 1) {
|
|
866
1212
|
console.error('ERROR: Missing required arguments\n');
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Governance Adapter
|
|
3
|
+
*
|
|
4
|
+
* Server-side adapter for implementing committed governance checks.
|
|
5
|
+
* Sellers use this to check governance before executing media buys.
|
|
6
|
+
*
|
|
7
|
+
* The committed check verifies that the seller's planned delivery
|
|
8
|
+
* parameters comply with the buyer's campaign governance plan.
|
|
9
|
+
*/
|
|
10
|
+
import type { CheckGovernanceRequest, CheckGovernanceResponse, PlannedDelivery, GovernancePhase } from '../types/tools.generated';
|
|
11
|
+
import type { AgentConfig } from '../types';
|
|
12
|
+
/**
|
|
13
|
+
* Configuration for the seller-side governance adapter.
|
|
14
|
+
*/
|
|
15
|
+
export interface GovernanceAdapterConfig {
|
|
16
|
+
/** The governance agent to call for committed checks */
|
|
17
|
+
agent: AgentConfig;
|
|
18
|
+
/** The seller's caller URL for governance checks */
|
|
19
|
+
callerUrl: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Committed governance check request from the seller's perspective.
|
|
23
|
+
*/
|
|
24
|
+
export interface CommittedCheckRequest {
|
|
25
|
+
/** Campaign governance plan ID */
|
|
26
|
+
planId: string;
|
|
27
|
+
/** Buyer's campaign reference */
|
|
28
|
+
buyerCampaignRef: string;
|
|
29
|
+
/** The seller's media buy ID */
|
|
30
|
+
mediaBuyId: string;
|
|
31
|
+
/** What the seller will actually deliver */
|
|
32
|
+
plannedDelivery: PlannedDelivery;
|
|
33
|
+
/** Lifecycle phase of the check */
|
|
34
|
+
phase?: GovernancePhase;
|
|
35
|
+
/** Delivery metrics for delivery-phase checks */
|
|
36
|
+
deliveryMetrics?: CheckGovernanceRequest['delivery_metrics'];
|
|
37
|
+
/** Summary of changes for modification-phase checks */
|
|
38
|
+
modificationSummary?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Interface for seller-side governance adapters.
|
|
42
|
+
* Sellers implement this to integrate governance checks into their execution path.
|
|
43
|
+
*/
|
|
44
|
+
export interface IGovernanceAdapter {
|
|
45
|
+
/** Whether governance is supported by this server */
|
|
46
|
+
isSupported(): boolean;
|
|
47
|
+
/** Run a committed governance check before executing a media buy */
|
|
48
|
+
checkCommitted(request: CommittedCheckRequest): Promise<CheckGovernanceResponse>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Error codes for governance adapter responses.
|
|
52
|
+
*/
|
|
53
|
+
export declare const GovernanceAdapterErrorCodes: {
|
|
54
|
+
readonly NOT_SUPPORTED: "governance_not_supported";
|
|
55
|
+
readonly CHECK_FAILED: "governance_check_failed";
|
|
56
|
+
readonly AGENT_UNREACHABLE: "governance_agent_unreachable";
|
|
57
|
+
};
|
|
58
|
+
export type GovernanceAdapterErrorCode = (typeof GovernanceAdapterErrorCodes)[keyof typeof GovernanceAdapterErrorCodes];
|
|
59
|
+
/**
|
|
60
|
+
* Type guard: check if a response is a governance adapter error.
|
|
61
|
+
*/
|
|
62
|
+
export declare function isGovernanceAdapterError(response: unknown): response is {
|
|
63
|
+
error: {
|
|
64
|
+
code: GovernanceAdapterErrorCode;
|
|
65
|
+
message?: string;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Governance adapter that calls a governance agent via AdCP protocol.
|
|
70
|
+
*
|
|
71
|
+
* Sellers configure this with their governance agent and caller URL,
|
|
72
|
+
* then call checkCommitted() before executing media buys.
|
|
73
|
+
*
|
|
74
|
+
* For custom governance logic, extend this class and override checkCommitted().
|
|
75
|
+
*/
|
|
76
|
+
export declare class GovernanceAdapter implements IGovernanceAdapter {
|
|
77
|
+
private agentConfig?;
|
|
78
|
+
constructor(config?: GovernanceAdapterConfig);
|
|
79
|
+
isSupported(): boolean;
|
|
80
|
+
checkCommitted(request: CommittedCheckRequest): Promise<CheckGovernanceResponse>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Pre-configured governance adapter with no agent.
|
|
84
|
+
* isSupported() returns false and checkCommitted() returns a denial.
|
|
85
|
+
* Replace with a configured instance when connecting to a governance agent.
|
|
86
|
+
*/
|
|
87
|
+
export declare const defaultGovernanceAdapter: GovernanceAdapter;
|
|
88
|
+
//# sourceMappingURL=governance-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance-adapter.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/governance-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,wDAAwD;IACxD,KAAK,EAAE,WAAW,CAAC;IACnB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,eAAe,EAAE,eAAe,CAAC;IACjC,mCAAmC;IACnC,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,iDAAiD;IACjD,eAAe,CAAC,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;IAC7D,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,WAAW,IAAI,OAAO,CAAC;IACvB,oEAAoE;IACpE,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAClF;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;;CAI9B,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,OAAO,2BAA2B,CAAC,CAAC;AAExH;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,OAAO,GAChB,QAAQ,IAAI;IAAE,KAAK,EAAE;QAAE,IAAI,EAAE,0BAA0B,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAI/E;AAED;;;;;;;GAOG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,WAAW,CAAC,CAA0B;gBAElC,MAAM,CAAC,EAAE,uBAAuB;IAI5C,WAAW,IAAI,OAAO;IAIhB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CA6CvF;AAED;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,mBAA0B,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Governance Adapter
|
|
4
|
+
*
|
|
5
|
+
* Server-side adapter for implementing committed governance checks.
|
|
6
|
+
* Sellers use this to check governance before executing media buys.
|
|
7
|
+
*
|
|
8
|
+
* The committed check verifies that the seller's planned delivery
|
|
9
|
+
* parameters comply with the buyer's campaign governance plan.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.defaultGovernanceAdapter = exports.GovernanceAdapter = exports.GovernanceAdapterErrorCodes = void 0;
|
|
13
|
+
exports.isGovernanceAdapterError = isGovernanceAdapterError;
|
|
14
|
+
const protocols_1 = require("../protocols");
|
|
15
|
+
const response_unwrapper_1 = require("../utils/response-unwrapper");
|
|
16
|
+
/**
|
|
17
|
+
* Error codes for governance adapter responses.
|
|
18
|
+
*/
|
|
19
|
+
exports.GovernanceAdapterErrorCodes = {
|
|
20
|
+
NOT_SUPPORTED: 'governance_not_supported',
|
|
21
|
+
CHECK_FAILED: 'governance_check_failed',
|
|
22
|
+
AGENT_UNREACHABLE: 'governance_agent_unreachable',
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Type guard: check if a response is a governance adapter error.
|
|
26
|
+
*/
|
|
27
|
+
function isGovernanceAdapterError(response) {
|
|
28
|
+
if (!response || typeof response !== 'object')
|
|
29
|
+
return false;
|
|
30
|
+
const r = response;
|
|
31
|
+
return r.error?.code && Object.values(exports.GovernanceAdapterErrorCodes).includes(r.error.code);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Governance adapter that calls a governance agent via AdCP protocol.
|
|
35
|
+
*
|
|
36
|
+
* Sellers configure this with their governance agent and caller URL,
|
|
37
|
+
* then call checkCommitted() before executing media buys.
|
|
38
|
+
*
|
|
39
|
+
* For custom governance logic, extend this class and override checkCommitted().
|
|
40
|
+
*/
|
|
41
|
+
class GovernanceAdapter {
|
|
42
|
+
agentConfig;
|
|
43
|
+
constructor(config) {
|
|
44
|
+
this.agentConfig = config;
|
|
45
|
+
}
|
|
46
|
+
isSupported() {
|
|
47
|
+
return !!this.agentConfig;
|
|
48
|
+
}
|
|
49
|
+
async checkCommitted(request) {
|
|
50
|
+
if (!this.agentConfig) {
|
|
51
|
+
return {
|
|
52
|
+
check_id: '',
|
|
53
|
+
status: 'denied',
|
|
54
|
+
binding: 'committed',
|
|
55
|
+
plan_id: request.planId,
|
|
56
|
+
buyer_campaign_ref: request.buyerCampaignRef,
|
|
57
|
+
explanation: 'Governance not configured on this server',
|
|
58
|
+
error_code: exports.GovernanceAdapterErrorCodes.NOT_SUPPORTED,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
const checkRequest = {
|
|
62
|
+
plan_id: request.planId,
|
|
63
|
+
buyer_campaign_ref: request.buyerCampaignRef,
|
|
64
|
+
binding: 'committed',
|
|
65
|
+
caller: this.agentConfig.callerUrl,
|
|
66
|
+
media_buy_id: request.mediaBuyId,
|
|
67
|
+
planned_delivery: request.plannedDelivery,
|
|
68
|
+
phase: request.phase,
|
|
69
|
+
delivery_metrics: request.deliveryMetrics,
|
|
70
|
+
modification_summary: request.modificationSummary,
|
|
71
|
+
};
|
|
72
|
+
try {
|
|
73
|
+
const response = await protocols_1.ProtocolClient.callTool(this.agentConfig.agent, 'check_governance', checkRequest);
|
|
74
|
+
return (0, response_unwrapper_1.unwrapProtocolResponse)(response);
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
return {
|
|
78
|
+
check_id: '',
|
|
79
|
+
status: 'denied',
|
|
80
|
+
binding: 'committed',
|
|
81
|
+
plan_id: request.planId,
|
|
82
|
+
buyer_campaign_ref: request.buyerCampaignRef,
|
|
83
|
+
explanation: `Governance agent unreachable: ${err.message}`,
|
|
84
|
+
error_code: exports.GovernanceAdapterErrorCodes.AGENT_UNREACHABLE,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.GovernanceAdapter = GovernanceAdapter;
|
|
90
|
+
/**
|
|
91
|
+
* Pre-configured governance adapter with no agent.
|
|
92
|
+
* isSupported() returns false and checkCommitted() returns a denial.
|
|
93
|
+
* Replace with a configured instance when connecting to a governance agent.
|
|
94
|
+
*/
|
|
95
|
+
exports.defaultGovernanceAdapter = new GovernanceAdapter();
|
|
96
|
+
//# sourceMappingURL=governance-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance-adapter.js","sourceRoot":"","sources":["../../../src/lib/adapters/governance-adapter.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAmEH,4DAMC;AAjED,4CAA8C;AAE9C,oEAAqE;AA2CrE;;GAEG;AACU,QAAA,2BAA2B,GAAG;IACzC,aAAa,EAAE,0BAA0B;IACzC,YAAY,EAAE,yBAAyB;IACvC,iBAAiB,EAAE,8BAA8B;CACzC,CAAC;AAIX;;GAEG;AACH,SAAgB,wBAAwB,CACtC,QAAiB;IAEjB,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,CAAC,GAAG,QAA+B,CAAC;IAC1C,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,mCAA2B,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;;;GAOG;AACH,MAAa,iBAAiB;IACpB,WAAW,CAA2B;IAE9C,YAAY,MAAgC;QAC1C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,CAAC;IAED,WAAW;QACT,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAA8B;QACjD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;gBACL,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,OAAO,CAAC,MAAM;gBACvB,kBAAkB,EAAE,OAAO,CAAC,gBAAgB;gBAC5C,WAAW,EAAE,0CAA0C;gBACvD,UAAU,EAAE,mCAA2B,CAAC,aAAa;aAC3B,CAAC;QAC/B,CAAC;QAED,MAAM,YAAY,GAA2B;YAC3C,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,kBAAkB,EAAE,OAAO,CAAC,gBAAgB;YAC5C,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS;YAClC,YAAY,EAAE,OAAO,CAAC,UAAU;YAChC,gBAAgB,EAAE,OAAO,CAAC,eAAe;YACzC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,gBAAgB,EAAE,OAAO,CAAC,eAAe;YACzC,oBAAoB,EAAE,OAAO,CAAC,mBAAmB;SAClD,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,0BAAc,CAAC,QAAQ,CAC5C,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,kBAAkB,EAClB,YAAmC,CACpC,CAAC;YAEF,OAAO,IAAA,2CAAsB,EAAC,QAAQ,CAAuC,CAAC;QAChF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,OAAO,CAAC,MAAM;gBACvB,kBAAkB,EAAE,OAAO,CAAC,gBAAgB;gBAC5C,WAAW,EAAE,iCAAkC,GAAa,CAAC,OAAO,EAAE;gBACtE,UAAU,EAAE,mCAA2B,CAAC,iBAAiB;aAC/B,CAAC;QAC/B,CAAC;IACH,CAAC;CACF;AAxDD,8CAwDC;AAED;;;;GAIG;AACU,QAAA,wBAAwB,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
|
|
@@ -14,5 +14,6 @@
|
|
|
14
14
|
export { ContentStandardsAdapter, type IContentStandardsAdapter, type ContentEvaluationResult, ContentStandardsErrorCodes, isContentStandardsError, defaultContentStandardsAdapter, } from './content-standards-adapter';
|
|
15
15
|
export { PropertyListAdapter, type IPropertyListAdapter, type ResolvedProperty, PropertyListErrorCodes, isPropertyListError, defaultPropertyListAdapter, } from './property-list-adapter';
|
|
16
16
|
export { ProposalManager, AIProposalManager, type IProposalManager, type ProposalContext, ProposalErrorCodes, defaultProposalManager, } from './proposal-manager';
|
|
17
|
+
export { GovernanceAdapter, defaultGovernanceAdapter, type IGovernanceAdapter, type GovernanceAdapterConfig, type GovernanceAdapterErrorCode, type CommittedCheckRequest, GovernanceAdapterErrorCodes, isGovernanceAdapterError, } from './governance-adapter';
|
|
17
18
|
export { SISessionManager, AISISessionManager, type ISISessionManager, type SISession, SIErrorCodes, defaultSISessionManager, } from './si-session-manager';
|
|
18
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,0BAA0B,EAC1B,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,YAAY,EACZ,uBAAuB,GACxB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,0BAA0B,EAC1B,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,YAAY,EACZ,uBAAuB,GACxB,MAAM,sBAAsB,CAAC"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* - SISessionManager: Handle Sponsored Intelligence conversational sessions
|
|
14
14
|
*/
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.defaultSISessionManager = exports.SIErrorCodes = exports.AISISessionManager = exports.SISessionManager = exports.defaultProposalManager = exports.ProposalErrorCodes = exports.AIProposalManager = exports.ProposalManager = exports.defaultPropertyListAdapter = exports.isPropertyListError = exports.PropertyListErrorCodes = exports.PropertyListAdapter = exports.defaultContentStandardsAdapter = exports.isContentStandardsError = exports.ContentStandardsErrorCodes = exports.ContentStandardsAdapter = void 0;
|
|
16
|
+
exports.defaultSISessionManager = exports.SIErrorCodes = exports.AISISessionManager = exports.SISessionManager = exports.isGovernanceAdapterError = exports.GovernanceAdapterErrorCodes = exports.defaultGovernanceAdapter = exports.GovernanceAdapter = exports.defaultProposalManager = exports.ProposalErrorCodes = exports.AIProposalManager = exports.ProposalManager = exports.defaultPropertyListAdapter = exports.isPropertyListError = exports.PropertyListErrorCodes = exports.PropertyListAdapter = exports.defaultContentStandardsAdapter = exports.isContentStandardsError = exports.ContentStandardsErrorCodes = exports.ContentStandardsAdapter = void 0;
|
|
17
17
|
// Content Standards
|
|
18
18
|
var content_standards_adapter_1 = require("./content-standards-adapter");
|
|
19
19
|
Object.defineProperty(exports, "ContentStandardsAdapter", { enumerable: true, get: function () { return content_standards_adapter_1.ContentStandardsAdapter; } });
|
|
@@ -32,6 +32,12 @@ Object.defineProperty(exports, "ProposalManager", { enumerable: true, get: funct
|
|
|
32
32
|
Object.defineProperty(exports, "AIProposalManager", { enumerable: true, get: function () { return proposal_manager_1.AIProposalManager; } });
|
|
33
33
|
Object.defineProperty(exports, "ProposalErrorCodes", { enumerable: true, get: function () { return proposal_manager_1.ProposalErrorCodes; } });
|
|
34
34
|
Object.defineProperty(exports, "defaultProposalManager", { enumerable: true, get: function () { return proposal_manager_1.defaultProposalManager; } });
|
|
35
|
+
// Governance (seller-side committed checks)
|
|
36
|
+
var governance_adapter_1 = require("./governance-adapter");
|
|
37
|
+
Object.defineProperty(exports, "GovernanceAdapter", { enumerable: true, get: function () { return governance_adapter_1.GovernanceAdapter; } });
|
|
38
|
+
Object.defineProperty(exports, "defaultGovernanceAdapter", { enumerable: true, get: function () { return governance_adapter_1.defaultGovernanceAdapter; } });
|
|
39
|
+
Object.defineProperty(exports, "GovernanceAdapterErrorCodes", { enumerable: true, get: function () { return governance_adapter_1.GovernanceAdapterErrorCodes; } });
|
|
40
|
+
Object.defineProperty(exports, "isGovernanceAdapterError", { enumerable: true, get: function () { return governance_adapter_1.isGovernanceAdapterError; } });
|
|
35
41
|
// Sponsored Intelligence Sessions
|
|
36
42
|
var si_session_manager_1 = require("./si-session-manager");
|
|
37
43
|
Object.defineProperty(exports, "SISessionManager", { enumerable: true, get: function () { return si_session_manager_1.SISessionManager; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/adapters/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,oBAAoB;AACpB,yEAOqC;AANnC,oIAAA,uBAAuB,OAAA;AAGvB,uIAAA,0BAA0B,OAAA;AAC1B,oIAAA,uBAAuB,OAAA;AACvB,2IAAA,8BAA8B,OAAA;AAGhC,iBAAiB;AACjB,iEAOiC;AAN/B,4HAAA,mBAAmB,OAAA;AAGnB,+HAAA,sBAAsB,OAAA;AACtB,4HAAA,mBAAmB,OAAA;AACnB,mIAAA,0BAA0B,OAAA;AAG5B,sBAAsB;AACtB,uDAO4B;AAN1B,mHAAA,eAAe,OAAA;AACf,qHAAA,iBAAiB,OAAA;AAGjB,sHAAA,kBAAkB,OAAA;AAClB,0HAAA,sBAAsB,OAAA;AAGxB,kCAAkC;AAClC,2DAO8B;AAN5B,sHAAA,gBAAgB,OAAA;AAChB,wHAAA,kBAAkB,OAAA;AAGlB,kHAAA,YAAY,OAAA;AACZ,6HAAA,uBAAuB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/adapters/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,oBAAoB;AACpB,yEAOqC;AANnC,oIAAA,uBAAuB,OAAA;AAGvB,uIAAA,0BAA0B,OAAA;AAC1B,oIAAA,uBAAuB,OAAA;AACvB,2IAAA,8BAA8B,OAAA;AAGhC,iBAAiB;AACjB,iEAOiC;AAN/B,4HAAA,mBAAmB,OAAA;AAGnB,+HAAA,sBAAsB,OAAA;AACtB,4HAAA,mBAAmB,OAAA;AACnB,mIAAA,0BAA0B,OAAA;AAG5B,sBAAsB;AACtB,uDAO4B;AAN1B,mHAAA,eAAe,OAAA;AACf,qHAAA,iBAAiB,OAAA;AAGjB,sHAAA,kBAAkB,OAAA;AAClB,0HAAA,sBAAsB,OAAA;AAGxB,4CAA4C;AAC5C,2DAS8B;AAR5B,uHAAA,iBAAiB,OAAA;AACjB,8HAAA,wBAAwB,OAAA;AAKxB,iIAAA,2BAA2B,OAAA;AAC3B,8HAAA,wBAAwB,OAAA;AAG1B,kCAAkC;AAClC,2DAO8B;AAN5B,sHAAA,gBAAgB,OAAA;AAChB,wHAAA,kBAAkB,OAAA;AAGlB,kHAAA,YAAY,OAAA;AACZ,6HAAA,uBAAuB,OAAA"}
|