Agent Native docs v1.0.0Showcase
Uppercut Labs / Agent Native

Generated package and CLI reference

This page is generated from package.json and the CLI parser. Run node docs-site/reference.mjs after changing those sources. npm run docs:check fails if this page drifts. Agent Native 1.0.0. Stable and experimental entry points are listed in stability.

Typed package entrypoints

Import specifier Type declaration ESM implementation
@uppercut-labs/agent-native ./dist/index.d.ts ./dist/index.js
@uppercut-labs/agent-native/contracts ./dist/core/contracts.d.ts ./dist/core/contracts.js
@uppercut-labs/agent-native/harness ./dist/harness.d.ts ./dist/harness.js
@uppercut-labs/agent-native/composition ./dist/core/composition.d.ts ./dist/core/composition.js
@uppercut-labs/agent-native/registry ./dist/registry.d.ts ./dist/registry.js
@uppercut-labs/agent-native/executor ./dist/core/executor.d.ts ./dist/core/executor.js
@uppercut-labs/agent-native/cli ./dist/cli.d.ts ./dist/cli.js
@uppercut-labs/agent-native/http ./dist/http.d.ts ./dist/http.js
@uppercut-labs/agent-native/schema/zod ./dist/adapters/zod.d.ts ./dist/adapters/zod.js
@uppercut-labs/agent-native/diagnostics ./dist/core/diagnostics.d.ts ./dist/core/diagnostics.js
@uppercut-labs/agent-native/doctor ./dist/doctor.d.ts ./dist/doctor.js
@uppercut-labs/agent-native/mcp ./dist/mcp.d.ts ./dist/mcp.js
@uppercut-labs/agent-native/browser ./dist/browser.d.ts ./dist/browser.js
@uppercut-labs/agent-native/astro ./dist/astro.d.ts ./dist/astro.js
@uppercut-labs/agent-native/next ./dist/next.d.ts ./dist/next.js
@uppercut-labs/agent-native/next/browser ./dist/next-browser.d.ts ./dist/next-browser.js
@uppercut-labs/agent-native/init ./dist/init.d.ts ./dist/init.js
@uppercut-labs/agent-native/auth ./dist/auth.d.ts ./dist/auth.js
@uppercut-labs/agent-native/mcp-apps ./dist/mcp-apps.d.ts ./dist/mcp-apps.js
@uppercut-labs/agent-native/harness/mcp-bridge ./dist/harness-mcp-bridge.d.ts ./dist/harness-mcp-bridge.js
@uppercut-labs/agent-native/harness/codex ./dist/harness-codex.d.ts ./dist/harness-codex.js

The package's optional peers are listed in installation. Import only the subpath needed by the application. A package-level executable is not shipped.

Application CLI arguments

The application calls runCapabilityCli(argv, options, streams). One command or canonical capability ID is positional. A command override or alias retains the canonical identity and has no version fallback.

Argument Value and default Boundary
--mode local or remote Required for invocation; remote needs a profile.
--profile lowercase slug (1-32 characters) Remote only.
--binding-id exact binding ID Local only.
--timeout-ms integer 1-300000 (default 10000) Remote request deadline.
--input-json JSON document or - for stdin Cannot combine with field flags.
--<field> typed scalar from input schema Complex fields use --input-json.
--help or -h no value Lists visible capabilities.
--version no value Displays the application's supplied package version.

For a runnable instance, use Node.js 22 or newer, npm ci, and npm run example:e10 from the repository root. The exported E10 CLI runs npm run search -- --query night --limit 1 successfully. An empty query exits 2 with invalid-input; provide a nonempty query to retry. See CLI behavior and E10 instructions.

Typed adapter configuration

These exported declarations are copied from the checked TypeScript source at build time. Framework mounts and security ownership are explained in the linked guides.

CLI

View source

export type CliCredentialProfile = {
  readonly baseUrl: string;
  readonly token: string;
};

export type CapabilityCliOptions = {
  readonly registry: CapabilityRegistry;
  readonly authorization: AuthorizationPort;
  readonly caller: ExecutionCaller;
  readonly credentialProfiles?: Readonly<Record<string, CliCredentialProfile>>;
  readonly packageVersion?: string;
  readonly fetcher?: typeof fetch;
  readonly surfaceExposure?: CapabilitySurfaceExposure;
  readonly canDiscover?: (
    definition: CapabilityDefinition<unknown, unknown>,
  ) => boolean | Promise<boolean>;
};

HTTP

View source

export type HttpAdapterOptions = {
  readonly basePath?: string;
  readonly maxRequestBytes?: number;
  readonly deadlineMs?: number;
  readonly resolveExecutionContext?: (
    request: Request,
  ) => HttpExecutionContext | Promise<HttpExecutionContext>;
};

MCP

View source

export type McpAdapterOptions = {
  readonly endpoint?: string;
  readonly surfaceExposure?: CapabilitySurfaceExposure;
  readonly maxRequestBytes?: number;
  readonly deadlineMs?: number;
  readonly canDiscover?: (
    definition: CapabilityDefinition<unknown, unknown>,
    request: Request,
  ) => boolean | Promise<boolean>;
  readonly discoverProtected?: (
    definition: CapabilityDefinition<unknown, unknown>,
    request: Request,
    authInfo: AuthInfo,
  ) => boolean | Promise<boolean>;
  readonly bearerAuth?: {
    readonly verifier: OAuthTokenVerifier;
    readonly expectedResource: URL;
    readonly requiredScopes?: readonly string[];
    readonly resourceMetadataUrl?: string;
    // Answer requests without an Authorization header with the SDK's 401 challenge. Defaults to
    // true when no capability is a public read, so hosts are prompted to authenticate instead of
    // receiving an empty tool list.
    readonly required?: boolean;
  };
  // Operator hook for tool calls that end in an error. It runs after the response is decided;
  // a throwing or rejecting hook is ignored.
  readonly onToolFailure?: (failure: McpToolFailure) => void | Promise<void>;
  // Overrides the default collision-free tool name. Names must be unique and match MCP's name rules.
  readonly toolName?: (definition: CapabilityDefinition<unknown, unknown>) => string;
  // AuthInfo comes from the SDK verifier; issuer/subject/tenant must be supplied by that
  // verifier's trusted metadata, never inferred from request headers or MCP clientInfo.
  readonly resolveTrustedPrincipal?: (
    authInfo: AuthInfo,
  ) => TrustedPrincipal | null | Promise<TrustedPrincipal | null>;
  readonly grantAuthorization?: Omit<GrantAuthorizationOptions, 'principal'>;
  readonly resolveExecutionContext?: (
    request: Request,
    authInfo?: AuthInfo,
  ) => McpExecutionContext | Promise<McpExecutionContext>;
};

Doctor

View source

export type DoctorRunOptions = {
  readonly now?: () => Date;
  readonly profile?: DoctorCheckProfile;
};