@adcp/sdk API Reference - v14.0.0-beta.6
    Preparing search index...

    Variable TOOL_INPUT_SHAPEConst

    TOOL_INPUT_SHAPE: {
        scenario: ZodString;
        params: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
        context: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
        ext: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
    } = ...

    Canonical Zod input schema for the comply_test_controller tool. Pass as the inputSchema argument to server.registerTool(...) in custom wrappers so the request shape stays in sync with registerTestController.

    Matches ComplyTestControllerRequest from the generated schema: scenario (required), params (scenario-specific), and the universal context / ext envelope fields. No top-level account or brand — AdCP routes account and brand context through context on this tool.

    Extending for vendor fields. Custom wrappers that carry tenant or account references in top-level fields can extend the shape locally. Those buyer-supplied fields are identifiers only: resolve them through a trusted server-side account resolver before making authorization decisions. Both account and brand are commonly added — storyboard fixtures and v5-shaped wrappers often send them alongside params:

    const MY_SHAPE = {
    ...TOOL_INPUT_SHAPE,
    account: z.object({ account_id: z.string() }).passthrough().optional(),
    brand: z.object({ domain: z.string() }).passthrough().optional(),
    };
    server.registerTool(
    'comply_test_controller',
    { description: 'Sandbox only.', inputSchema: MY_SHAPE },
    async input => {
    const account = await accounts.resolve(input.account, trustedRequestContext());
    if (!isSandboxOrMockAccount(account)) return toMcpResponse({ ... });
    return toMcpResponse(await handleTestControllerRequest(store, input as Record<string, unknown>));
    }
    );

    Adopters routing through createAdcpServerFromPlatform(platform, { complyTest }) pass the same fields via complyTest.inputSchema (see ComplyControllerConfig.inputSchema in @adcp/sdk/testing).

    This keeps the default registration protocol-compliant while giving wrapper authors a documented extension point.

    Type Declaration

    • scenario: ZodString
    • params: ZodOptional<ZodRecord<ZodString, ZodUnknown>>
    • context: ZodOptional<ZodRecord<ZodString, ZodUnknown>>
    • ext: ZodOptional<ZodRecord<ZodString, ZodUnknown>>