@adcp/sdk 14.0.0-beta.0 → 14.0.0-beta.1
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/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/get-account-financials-request.json +610 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/get-account-financials-response.json +1055 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/list-accounts-request.json +629 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/list-accounts-response.json +1558 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/report-usage-request.json +702 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/report-usage-response.json +309 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-accounts-request.json +1113 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-accounts-response.json +1567 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-governance-request.json +662 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-governance-response.json +921 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/list-creatives-request.json +992 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/list-creatives-response.json +5965 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-request.json +3936 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-response.json +3859 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/manifest.json +206 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/accept-proposal-request.json +601 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/accept-proposal-response.json +4799 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/buy-products-request.json +4107 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/buy-products-response.json +4799 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/control-media-buy-request.json +3365 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/control-media-buy-response.json +656 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/decline-proposals-request.json +334 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/decline-proposals-response.json +271 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buy-delivery-request.json +1236 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buy-delivery-response.json +2861 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buys-request.json +678 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buys-response.json +10861 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/list-products-request.json +4229 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/list-products-response.json +3824 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/log-event-request.json +421 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/log-event-response.json +394 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/media-buy-delivery-webhook-result.json +1366 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/provide-performance-feedback-request.json +884 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/provide-performance-feedback-response.json +422 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/refine-proposals-request.json +4335 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/refine-proposals-response.json +7328 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/request-proposals-request.json +4307 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/request-proposals-response.json +7105 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-audiences-request.json +760 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-audiences-response.json +541 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-catalogs-request.json +1142 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-catalogs-response.json +1153 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-event-sources-request.json +743 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-event-sources-response.json +619 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/get-account-financials-request.json +544 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/list-accounts-request.json +557 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/report-usage-request.json +617 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/sync-accounts-request.json +984 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/sync-governance-request.json +581 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/creative/list-creatives-request.json +878 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/creative/sync-creatives-request.json +3456 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/manifest.json +175 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/accept-proposal-request.json +498 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/buy-products-request.json +3675 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/control-media-buy-request.json +3030 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/decline-proposals-request.json +282 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/get-media-buy-delivery-request.json +1136 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/get-media-buys-request.json +597 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/list-products-request.json +3780 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/log-event-request.json +386 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/provide-performance-feedback-request.json +784 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/refine-proposals-request.json +3878 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/request-proposals-request.json +3852 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-audiences-request.json +682 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-catalogs-request.json +1016 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-event-sources-request.json +660 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/get-adcp-capabilities-request.json +51 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/get-task-status-request.json +534 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/list-tasks-request.json +692 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/sync-agent-notification-configs-request.json +129 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-adcp-capabilities-request.json +58 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-adcp-capabilities-response.json +8069 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-task-status-request.json +601 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-task-status-response.json +612 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/list-tasks-request.json +775 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/list-tasks-response.json +483 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/sync-agent-notification-configs-request.json +155 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/sync-agent-notification-configs-response.json +382 -0
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/create-adcp-server.d.mts +27 -0
- package/dist/lib/server/create-adcp-server.d.ts +27 -0
- package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
- package/dist/lib/server/create-adcp-server.js +120 -4
- package/dist/lib/server/create-adcp-server.js.map +1 -1
- package/dist/lib/server/create-adcp-server.mjs +121 -6
- package/dist/lib/server/create-adcp-server.mjs.map +1 -1
- package/dist/lib/server/decisioning/context.d.mts +6 -0
- package/dist/lib/server/decisioning/context.d.ts +6 -0
- package/dist/lib/server/decisioning/context.d.ts.map +1 -1
- package/dist/lib/server/decisioning/context.js.map +1 -1
- package/dist/lib/server/decisioning/index.d.mts +1 -1
- package/dist/lib/server/decisioning/index.d.ts +1 -1
- package/dist/lib/server/decisioning/index.d.ts.map +1 -1
- package/dist/lib/server/decisioning/index.js.map +1 -1
- package/dist/lib/server/decisioning/index.mjs.map +1 -1
- package/dist/lib/server/decisioning/platform.d.mts +21 -6
- package/dist/lib/server/decisioning/platform.d.ts +21 -6
- package/dist/lib/server/decisioning/platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/platform.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.js +201 -18
- package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.mjs +203 -19
- package/dist/lib/server/decisioning/runtime/from-platform.mjs.map +1 -1
- package/dist/lib/server/decisioning/runtime/to-context.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/to-context.js +6 -0
- package/dist/lib/server/decisioning/runtime/to-context.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/to-context.mjs +6 -0
- package/dist/lib/server/decisioning/runtime/to-context.mjs.map +1 -1
- package/dist/lib/server/decisioning/runtime/validate-platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/validate-platform.js +35 -4
- package/dist/lib/server/decisioning/runtime/validate-platform.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/validate-platform.mjs +35 -4
- package/dist/lib/server/decisioning/runtime/validate-platform.mjs.map +1 -1
- package/dist/lib/server/decisioning/specialisms/sales.d.mts +39 -0
- package/dist/lib/server/decisioning/specialisms/sales.d.ts +39 -0
- package/dist/lib/server/decisioning/specialisms/sales.d.ts.map +1 -1
- package/dist/lib/server/decisioning/specialisms/sales.js.map +1 -1
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/validation/schema-loader.d.mts +2 -0
- package/dist/lib/validation/schema-loader.d.ts +2 -0
- package/dist/lib/validation/schema-loader.d.ts.map +1 -1
- package/dist/lib/validation/schema-loader.js +31 -0
- package/dist/lib/validation/schema-loader.js.map +1 -1
- package/dist/lib/validation/schema-loader.mjs +30 -0
- package/dist/lib/validation/schema-loader.mjs.map +1 -1
- package/dist/lib/version.d.mts +3 -3
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/dist/lib/version.js.map +1 -1
- package/dist/lib/version.mjs +3 -3
- package/dist/lib/version.mjs.map +1 -1
- package/docs/guides/BUILD-AN-AGENT.md +10 -1
- package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +119 -0
- package/docs/llms.txt +1 -1
- package/docs/migration-12-to-14.md +8 -0
- package/docs/migration-13-to-14.md +30 -4
- package/docs/releases/14.0.0-beta.0.md +19 -1
- package/package.json +2 -1
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
toReleasePrecisionVersion
|
|
6
6
|
} from "../version.mjs";
|
|
7
7
|
import { isMovingAdcpPrereleaseFamilyAlias, resolveAdcpVersion } from "../utils/adcp-version-config.mjs";
|
|
8
|
-
import { getValidator, hasSchemaBundle, resolveBundleKey } from "../validation/schema-loader.mjs";
|
|
8
|
+
import { getValidator, hasSchemaBundle, resolveBundleKey, getMcpProfileInputSchema } from "../validation/schema-loader.mjs";
|
|
9
9
|
import { TOOL_INPUT_SHAPES } from "../schemas/index.mjs";
|
|
10
10
|
import { TaskTypeValues } from "../types/enums.generated.mjs";
|
|
11
11
|
import { bundleSupportsAdcpVersionField } from "../protocols/index.mjs";
|
|
@@ -16,7 +16,8 @@ import {
|
|
|
16
16
|
wrapMcpServer,
|
|
17
17
|
setSdkServerInstructions,
|
|
18
18
|
setMcpAppResources,
|
|
19
|
-
wrapInitializeHandler
|
|
19
|
+
wrapInitializeHandler,
|
|
20
|
+
wrapSdkRequestHandler
|
|
20
21
|
} from "./adcp-server.mjs";
|
|
21
22
|
import {
|
|
22
23
|
mcpAppResourceMetadata,
|
|
@@ -151,6 +152,33 @@ const ADCP_PRE_TRANSPORT = /* @__PURE__ */ Symbol.for("@adcp/client.preTransport
|
|
|
151
152
|
const ADCP_SIGNED_REQUESTS_STATE = /* @__PURE__ */ Symbol.for("@adcp/client.signedRequestsState");
|
|
152
153
|
const ADCP_INSTRUCTIONS_FN = /* @__PURE__ */ Symbol.for("@adcp/client.instructionsFn");
|
|
153
154
|
const ADCP_INSTRUCTIONS_RESOLVER = /* @__PURE__ */ Symbol.for("@adcp/client.instructionsResolver");
|
|
155
|
+
const MEDIA_BUY_MCP_TOOL_PROFILE = [
|
|
156
|
+
"accept_proposal",
|
|
157
|
+
"buy_products",
|
|
158
|
+
"control_media_buy",
|
|
159
|
+
"decline_proposals",
|
|
160
|
+
"get_account_financials",
|
|
161
|
+
"get_adcp_capabilities",
|
|
162
|
+
"get_media_buy_delivery",
|
|
163
|
+
"get_media_buys",
|
|
164
|
+
"get_task_status",
|
|
165
|
+
"list_accounts",
|
|
166
|
+
"list_creatives",
|
|
167
|
+
"list_products",
|
|
168
|
+
"list_tasks",
|
|
169
|
+
"log_event",
|
|
170
|
+
"provide_performance_feedback",
|
|
171
|
+
"refine_proposals",
|
|
172
|
+
"report_usage",
|
|
173
|
+
"request_proposals",
|
|
174
|
+
"sync_accounts",
|
|
175
|
+
"sync_agent_notification_configs",
|
|
176
|
+
"sync_audiences",
|
|
177
|
+
"sync_catalogs",
|
|
178
|
+
"sync_creatives",
|
|
179
|
+
"sync_event_sources",
|
|
180
|
+
"sync_governance"
|
|
181
|
+
];
|
|
154
182
|
function clampReplayTtl(seconds) {
|
|
155
183
|
const MIN = 3600;
|
|
156
184
|
const MAX = 604800;
|
|
@@ -475,6 +503,15 @@ function taskBelongsToCaller(task, accountId, ownerScope) {
|
|
|
475
503
|
if (task.ownerScope === void 0) return ownerScope === `account:${accountId}`;
|
|
476
504
|
return task.ownerScope === ownerScope;
|
|
477
505
|
}
|
|
506
|
+
function authenticatedPrincipalForContext(authInfo, agent) {
|
|
507
|
+
if (agent?.agent_url) return `agent:${agent.agent_url}`;
|
|
508
|
+
const credential = authInfo?.credential;
|
|
509
|
+
if (credential?.kind === "http_sig") return `http_sig:${credential.agent_url}`;
|
|
510
|
+
if (credential?.kind === "oauth") return `oauth:${credential.client_id}`;
|
|
511
|
+
if (credential?.kind === "api_key") return `api_key:${credential.key_id}`;
|
|
512
|
+
if (typeof authInfo?.clientId === "string" && authInfo.clientId.length > 0) return `client:${authInfo.clientId}`;
|
|
513
|
+
return void 0;
|
|
514
|
+
}
|
|
478
515
|
function taskOwnerScopeForContext(authInfo, sessionKey, agent, accountId) {
|
|
479
516
|
if (sessionKey !== void 0) return `session:${sessionKey}`;
|
|
480
517
|
if (agent?.agent_url) return `agent:${agent.agent_url}`;
|
|
@@ -703,6 +740,14 @@ const COMPACT_MEDIA_BUY_LIFECYCLE_TOOLS = [
|
|
|
703
740
|
"accept_proposal",
|
|
704
741
|
"control_media_buy"
|
|
705
742
|
];
|
|
743
|
+
const COMPACT_MEDIA_BUY_MUTATION_TOOLS = /* @__PURE__ */ new Set([
|
|
744
|
+
"request_proposals",
|
|
745
|
+
"refine_proposals",
|
|
746
|
+
"decline_proposals",
|
|
747
|
+
"buy_products",
|
|
748
|
+
"accept_proposal",
|
|
749
|
+
"control_media_buy"
|
|
750
|
+
]);
|
|
706
751
|
const MEDIA_BUY_ENTRIES = [
|
|
707
752
|
{ handlerKey: "getProducts", toolName: "get_products" },
|
|
708
753
|
{ handlerKey: "listProducts", toolName: "list_products" },
|
|
@@ -1389,6 +1434,8 @@ function createAdcpServer(config) {
|
|
|
1389
1434
|
name,
|
|
1390
1435
|
version,
|
|
1391
1436
|
adcpVersion: configuredAdcpVersion,
|
|
1437
|
+
mcpToolProfile = "auto",
|
|
1438
|
+
requireCompactMutationAccountScope = false,
|
|
1392
1439
|
resolveAccount,
|
|
1393
1440
|
resolveAccountFromAuth,
|
|
1394
1441
|
resolveSessionKey,
|
|
@@ -1411,6 +1458,11 @@ function createAdcpServer(config) {
|
|
|
1411
1458
|
testController: testControllerBridge,
|
|
1412
1459
|
responseEnhancer
|
|
1413
1460
|
} = config;
|
|
1461
|
+
if (!["auto", "media-buy", "all"].includes(mcpToolProfile)) {
|
|
1462
|
+
throw new Error(
|
|
1463
|
+
`createAdcpServer: mcpToolProfile must be "auto", "media-buy", or "all"; got ${JSON.stringify(mcpToolProfile)}`
|
|
1464
|
+
);
|
|
1465
|
+
}
|
|
1414
1466
|
const notificationHandlerConfigured = typeof config.protocol?.syncAgentNotificationConfigs === "function";
|
|
1415
1467
|
const notificationCapabilitySupported = capConfig?.capability_changes?.notifications?.supported === true;
|
|
1416
1468
|
if (notificationHandlerConfigured !== notificationCapabilitySupported) {
|
|
@@ -1480,6 +1532,7 @@ function createAdcpServer(config) {
|
|
|
1480
1532
|
);
|
|
1481
1533
|
}
|
|
1482
1534
|
const protocolBundleKey = resolveBundleKey(adcpVersion);
|
|
1535
|
+
const frameworkToolMeta = { adcp_version: adcpVersion };
|
|
1483
1536
|
const servedAdcpVersion = (() => {
|
|
1484
1537
|
const bundleKey = protocolBundleKey;
|
|
1485
1538
|
return bundleSupportsAdcpVersionField(bundleKey) ? bundleKey : void 0;
|
|
@@ -2336,6 +2389,22 @@ function createAdcpServer(config) {
|
|
|
2336
2389
|
);
|
|
2337
2390
|
}
|
|
2338
2391
|
}
|
|
2392
|
+
if (COMPACT_MEDIA_BUY_MUTATION_TOOLS.has(toolName)) {
|
|
2393
|
+
if (authenticatedPrincipalForContext(ctx.authInfo, ctx.agent) === void 0) {
|
|
2394
|
+
return finalize(
|
|
2395
|
+
adcpError("AUTH_MISSING", {
|
|
2396
|
+
message: `${toolName} requires an authenticated buyer principal`
|
|
2397
|
+
})
|
|
2398
|
+
);
|
|
2399
|
+
}
|
|
2400
|
+
if (requireCompactMutationAccountScope && ctx.account == null) {
|
|
2401
|
+
return finalize(
|
|
2402
|
+
adcpError("ACCOUNT_NOT_FOUND", {
|
|
2403
|
+
message: `${toolName} requires a resolved account scope`
|
|
2404
|
+
})
|
|
2405
|
+
);
|
|
2406
|
+
}
|
|
2407
|
+
}
|
|
2339
2408
|
if (toolName === "refine_proposals") {
|
|
2340
2409
|
if (ctx.authInfo === void 0 && ctx.agent === void 0) {
|
|
2341
2410
|
return finalize(
|
|
@@ -3026,7 +3095,8 @@ function createAdcpServer(config) {
|
|
|
3026
3095
|
toolName,
|
|
3027
3096
|
{
|
|
3028
3097
|
inputSchema: frameworkInputSchemaFor(toolName),
|
|
3029
|
-
...meta?.annotations != null && { annotations: meta.annotations }
|
|
3098
|
+
...meta?.annotations != null && { annotations: meta.annotations },
|
|
3099
|
+
_meta: frameworkToolMeta
|
|
3030
3100
|
},
|
|
3031
3101
|
toolHandler
|
|
3032
3102
|
);
|
|
@@ -3038,7 +3108,8 @@ function createAdcpServer(config) {
|
|
|
3038
3108
|
"get_task_status",
|
|
3039
3109
|
{
|
|
3040
3110
|
inputSchema: frameworkInputSchemaFor("get_task_status"),
|
|
3041
|
-
annotations: RO
|
|
3111
|
+
annotations: RO,
|
|
3112
|
+
_meta: frameworkToolMeta
|
|
3042
3113
|
},
|
|
3043
3114
|
(async (params, extra) => {
|
|
3044
3115
|
const credentialError = taskToolCredentialPolicyError("get_task_status", params ?? {}, extra);
|
|
@@ -3114,7 +3185,8 @@ function createAdcpServer(config) {
|
|
|
3114
3185
|
"list_tasks",
|
|
3115
3186
|
{
|
|
3116
3187
|
inputSchema: frameworkInputSchemaFor("list_tasks"),
|
|
3117
|
-
annotations: RO
|
|
3188
|
+
annotations: RO,
|
|
3189
|
+
_meta: frameworkToolMeta
|
|
3118
3190
|
},
|
|
3119
3191
|
(async (params, extra) => {
|
|
3120
3192
|
const credentialError = taskToolCredentialPolicyError("list_tasks", params ?? {}, extra);
|
|
@@ -3362,7 +3434,8 @@ function createAdcpServer(config) {
|
|
|
3362
3434
|
"get_adcp_capabilities",
|
|
3363
3435
|
{
|
|
3364
3436
|
inputSchema: frameworkInputSchemaFor("get_adcp_capabilities"),
|
|
3365
|
-
annotations: { readOnlyHint: true }
|
|
3437
|
+
annotations: { readOnlyHint: true },
|
|
3438
|
+
_meta: frameworkToolMeta
|
|
3366
3439
|
},
|
|
3367
3440
|
(async (params, extra = {}) => {
|
|
3368
3441
|
const requestParams = isPlainObject(params) ? params : {};
|
|
@@ -3514,6 +3587,46 @@ function createAdcpServer(config) {
|
|
|
3514
3587
|
})
|
|
3515
3588
|
);
|
|
3516
3589
|
registeredToolNames.add("get_adcp_capabilities");
|
|
3590
|
+
const configuredRelease = parseAdcpRelease(protocolBundleKey);
|
|
3591
|
+
const serves32OrNewer = configuredRelease !== void 0 && (configuredRelease.major > 3 || configuredRelease.major === 3 && configuredRelease.minor >= 2);
|
|
3592
|
+
if (mcpToolProfile === "media-buy" && !serves32OrNewer) {
|
|
3593
|
+
throw new Error('createAdcpServer: mcpToolProfile="media-buy" requires adcpVersion 3.2 or newer');
|
|
3594
|
+
}
|
|
3595
|
+
const activeMcpToolProfile = mcpToolProfile === "media-buy" || mcpToolProfile === "auto" && serves32OrNewer && compactLifecycleTools.length > 0 ? "media-buy" : "all";
|
|
3596
|
+
const mediaBuyProfileTools = new Set(MEDIA_BUY_MCP_TOOL_PROFILE);
|
|
3597
|
+
const wrappedToolsList = wrapSdkRequestHandler(server, "tools/list", async (original, request, extra) => {
|
|
3598
|
+
const response = await original(request, extra);
|
|
3599
|
+
if (response == null || typeof response !== "object") return response;
|
|
3600
|
+
const tools = response.tools;
|
|
3601
|
+
if (!Array.isArray(tools)) return response;
|
|
3602
|
+
const visibleTools = tools.filter((tool) => {
|
|
3603
|
+
const toolName = tool?.name;
|
|
3604
|
+
if (typeof toolName !== "string") return true;
|
|
3605
|
+
if (!serves32OrNewer && COMPACT_MEDIA_BUY_LIFECYCLE_TOOLS.includes(toolName)) return false;
|
|
3606
|
+
return activeMcpToolProfile === "all" || mediaBuyProfileTools.has(toolName);
|
|
3607
|
+
});
|
|
3608
|
+
const projectedTools = visibleTools.map((tool) => {
|
|
3609
|
+
if (activeMcpToolProfile !== "media-buy") return tool;
|
|
3610
|
+
const toolName = tool?.name;
|
|
3611
|
+
if (typeof toolName !== "string") return tool;
|
|
3612
|
+
const inputSchema = getMcpProfileInputSchema(toolName, "media-buy", adcpVersion);
|
|
3613
|
+
return inputSchema ? { ...tool, inputSchema } : tool;
|
|
3614
|
+
});
|
|
3615
|
+
return {
|
|
3616
|
+
...response,
|
|
3617
|
+
tools: projectedTools,
|
|
3618
|
+
_meta: {
|
|
3619
|
+
...response._meta ?? {},
|
|
3620
|
+
adcp_version: adcpVersion,
|
|
3621
|
+
adcp_profile: activeMcpToolProfile
|
|
3622
|
+
}
|
|
3623
|
+
};
|
|
3624
|
+
});
|
|
3625
|
+
if (!wrappedToolsList) {
|
|
3626
|
+
throw new Error(
|
|
3627
|
+
"createAdcpServer: failed to install MCP tools/list profile filtering; the MCP SDK request-handler internals may have changed"
|
|
3628
|
+
);
|
|
3629
|
+
}
|
|
3517
3630
|
validateCredentialPolicy(credentialPolicy, registeredToolNames);
|
|
3518
3631
|
const compliance = {
|
|
3519
3632
|
async reset({
|
|
@@ -3608,6 +3721,8 @@ export {
|
|
|
3608
3721
|
ADCP_INSTRUCTIONS_RESOLVER,
|
|
3609
3722
|
ADCP_PRE_TRANSPORT,
|
|
3610
3723
|
ADCP_SIGNED_REQUESTS_STATE,
|
|
3724
|
+
COMPACT_MEDIA_BUY_MUTATION_TOOLS,
|
|
3725
|
+
MEDIA_BUY_MCP_TOOL_PROFILE,
|
|
3611
3726
|
createAdcpServer,
|
|
3612
3727
|
requireSessionKey
|
|
3613
3728
|
};
|