run402-mcp
Version:
MCP server for Run402 — full-stack backend infrastructure for AI agents: Postgres, auth, storage, serverless functions and atomic deploys. Paid with x402/MPP. Includes $0.03 image generation.
292 lines • 10.1 kB
TypeScript
import type { ReleaseSpec } from "./namespaces/deploy.types.js";
export declare const RUN402_APP_SCHEMA_ID: "https://run402.com/schemas/run402-app.v1.schema.json";
export declare const RUN402_APP_MANIFEST_FILENAME: "run402.json";
export declare const RUN402_RELEASE_MANIFEST_FILENAME: "run402.release.json";
export declare const RUN402_APP_SPEC_VERSION: 1;
export declare const RUN402_APP_INSTALL_GRAPH_VERSION: "run402.app_install_graph.v1";
export declare const RUN402_APP_UP_RESULT_KIND: "run402.up.result";
export declare const RUN402_APP_UP_RESULT_SCHEMA_VERSION: "run402.up.result.v1";
export declare const RUN402_APP_UP_RESULT_SCHEMA_URL: "https://run402.com/schemas/run402-up-result.v1.schema.json";
export declare const RUN402_BINDING_CLASSES: readonly ["generated_config_binding", "generated_secret_binding", "user_secret"];
export declare const RUN402_BINDING_SCOPES: readonly ["build", "runtime", "client", "verify", "template"];
export interface Run402AppSpec {
$schema: typeof RUN402_APP_SCHEMA_ID;
spec_version: typeof RUN402_APP_SPEC_VERSION;
app: {
id: string;
display_name?: string;
description?: string;
};
project: {
name?: string;
id?: string;
origin?: {
subdomain?: string;
};
};
resources?: {
mailboxes?: Record<string, Run402AppMailboxSpec>;
webhooks?: Record<string, Run402AppWebhookSpec>;
};
secrets?: Record<string, Run402AppSecretSpec>;
build?: Run402AppBuildSpec;
release: Run402AppReleaseSpec;
lifecycle?: {
project?: "per_app" | "shared";
prune?: "approval_required" | "disabled";
};
verify?: {
http?: Run402AppHttpVerifySpec[];
};
}
export interface Run402AppMailboxSpec {
slug?: string;
roles?: ("default_outbound" | "auth_sender")[];
description?: string;
}
export interface Run402AppWebhookSpec {
mailbox: string;
url: string;
events: string[];
enabled?: boolean;
signing?: {
required?: boolean;
};
}
export interface Run402AppSecretSpec {
required?: boolean;
source_env?: string;
description?: string;
}
export interface Run402AppBuildSpec {
mode?: "local" | "remote" | "sandbox";
commands?: Run402AppBuildCommand[];
}
export interface Run402AppBuildCommand {
id: string;
argv?: string[];
shell?: string;
cwd?: string;
}
export type Run402AppReleaseSpec = Omit<Partial<ReleaseSpec>, "project_id"> & {
project_id?: never;
};
export interface Run402AppHttpVerifySpec {
id: string;
path?: string;
url?: string;
expect: {
status: number;
};
retries?: number;
}
export type Run402AppSourceMetadata = {
kind: "local";
path: string;
commit?: string;
} | {
kind: "repo";
repo_url: string;
commit?: string;
};
export interface CompileRun402AppInstallGraphOptions {
source?: Run402AppSourceMetadata;
name?: string;
root_idempotency_key?: string;
}
export type Run402AppInstallNodeStatus = "planned" | "running" | "succeeded" | "blocked" | "failed" | "skipped" | "propagation_pending";
export type Run402AppInstallMutation = "none" | "local" | "remote" | "destructive";
export type Run402AppUpStatus = "planned" | "running" | "succeeded" | "blocked" | "failed" | "partial" | "deployed_unverified" | "propagation_pending";
export type Run402AppUpErrorCode = "APP_SPEC_INVALID" | "PROJECT_REQUIRED" | "PROJECT_CONFLICT" | "TIER_REQUIRED" | "SPEND_APPROVAL_REQUIRED" | "BUILD_APPROVAL_REQUIRED" | "BUILD_FAILED" | "MISSING_SECRET" | "RESOURCE_CONFLICT" | "RESOURCE_PRUNE_REQUIRES_APPROVAL" | "UNSUPPORTED_RESOURCE_KIND" | "RELEASE_APPLY_FAILED" | "VERIFY_FAILED" | "VERIFY_PROPAGATION_PENDING" | "CONCURRENT_UP_IN_PROGRESS" | "APP_INSTALL_STATE_UNAVAILABLE" | "REMOTE_BUILD_UNSUPPORTED";
export type Run402BindingClass = typeof RUN402_BINDING_CLASSES[number];
export type Run402BindingScope = typeof RUN402_BINDING_SCOPES[number];
export interface Run402AppUpSpendImpact {
amount_usd_micros?: number;
currency?: "USD";
description?: string;
}
export interface Run402AppUpNextAction {
type: string;
code?: Run402AppUpErrorCode;
message?: string;
command?: string;
argv?: string[];
field_path?: string;
node_id?: string;
spend?: Run402AppUpSpendImpact;
docs_url?: string;
}
export interface Run402AppUpDiagnostic {
code: Run402AppUpErrorCode;
message: string;
severity: "info" | "warning" | "error";
node_id?: string;
field_path?: string;
details?: Record<string, unknown>;
}
export interface Run402AppBinding {
env: string;
binding_class: Run402BindingClass;
scopes: Run402BindingScope[];
source: string;
value?: string;
redacted?: boolean;
}
export interface Run402AppUpApprovalPolicy {
yes: boolean;
allow_prune: boolean;
max_spend_usd: number | null;
build_mode: "local" | "remote" | "sandbox" | null;
shell_build_approved: boolean;
}
export interface Run402AppUpStep {
id: string;
kind: string;
status: Run402AppInstallNodeStatus;
mutation: Run402AppInstallMutation;
destructive: boolean;
spend: boolean;
idempotent: boolean;
ensure_key?: string;
input_digest: `sha256:${string}`;
depends_on: string[];
diagnostics?: Run402AppUpDiagnostic[];
next_actions?: Run402AppUpNextAction[];
}
export interface Run402AppUpResourceSummary {
mailboxes: Record<string, {
id: string | null;
address: string | null;
bindings: Run402AppBinding[];
}>;
webhooks: Record<string, {
id: string | null;
mailbox: string;
url: string;
events: string[];
enabled: boolean;
}>;
bindings: Run402AppBinding[];
user_secrets: Record<string, {
required: boolean;
source_env: string | null;
satisfied: boolean;
}>;
}
export type Run402AppVerifyStatus = "verified" | "propagation_pending" | "failed";
/** Header evidence from one HTTP response, not proof of release stability. */
export interface Run402ObservedRelease {
release_id: string | null;
generation: number | null;
source: "response_headers";
url: string;
observed_at: string;
unavailable_reason: "headers_missing_or_invalid" | "request_failed" | null;
}
export interface Run402AppUpVerifyResult {
status: Run402AppVerifyStatus;
warnings: Run402AppUpDiagnostic[];
next_action: Run402AppUpNextAction | null;
propagation_wait_ms: number;
}
export interface Run402AppUpResultEnvelope {
kind: typeof RUN402_APP_UP_RESULT_KIND;
schema_version: typeof RUN402_APP_UP_RESULT_SCHEMA_VERSION;
schema_url: typeof RUN402_APP_UP_RESULT_SCHEMA_URL;
status: Run402AppUpStatus;
operation_id: string | null;
install_id: string | null;
spec_digest: `sha256:${string}`;
graph_digest: `sha256:${string}`;
source: Run402AppSourceMetadata | null;
manifest_path: string;
started_at: string;
ended_at: string;
duration_ms: number;
approval_policy: Run402AppUpApprovalPolicy;
dry_run: boolean;
project: {
id: string | null;
name: string | null;
public_origin: string | null;
};
steps: Run402AppUpStep[];
resources: Run402AppUpResourceSummary;
release: {
operation_id: string | null;
release_id: string | null;
spec: Run402AppReleaseSpec;
};
verification: {
http: Array<{
id: string;
status: Run402AppInstallNodeStatus;
path?: string;
url?: string;
expected_status: number;
actual_status?: number | null;
observed_release?: Run402ObservedRelease;
propagation_wait_ms?: number;
diagnostic?: Record<string, unknown>;
}>;
};
verify?: Run402AppUpVerifyResult;
diagnostics: Run402AppUpDiagnostic[];
next_actions: Run402AppUpNextAction[];
graph: Run402AppInstallGraph;
}
export interface Run402AppInstallGraphNode {
id: string;
kind: string;
depends_on: string[];
input_digest: `sha256:${string}`;
status: Run402AppInstallNodeStatus;
mutation: Run402AppInstallMutation;
idempotent: boolean;
ensure_key?: string;
destructive: boolean;
spend: boolean;
details?: Record<string, unknown>;
}
export interface Run402GeneratedMailboxBindings {
id: string;
address: string;
}
export interface Run402AppInstallBindings {
mailboxes: Record<string, Run402GeneratedMailboxBindings>;
}
export interface Run402AppInstallGraph {
schema_version: typeof RUN402_APP_INSTALL_GRAPH_VERSION;
app_id: string;
source: Run402AppSourceMetadata | null;
spec_digest: `sha256:${string}`;
graph_digest: `sha256:${string}`;
nodes: Run402AppInstallGraphNode[];
release_spec: Run402AppReleaseSpec;
bindings: Run402AppInstallBindings;
}
export declare function compileRun402AppInstallGraph(spec: Run402AppSpec, opts?: CompileRun402AppInstallGraphOptions): Promise<Run402AppInstallGraph>;
export declare function generatedMailboxBindings(logicalName: string): Run402GeneratedMailboxBindings;
export declare function mailboxRuntimeBindings(logicalName: string): Run402AppBinding[];
export declare function platformMetadataBindings(opts?: {
publicOriginKnown?: boolean;
}): Run402AppBinding[];
export declare function createRun402AppUpResult(input: {
graph: Run402AppInstallGraph;
manifest_path: string;
status: Run402AppUpStatus;
started_at: string;
ended_at?: string;
dry_run: boolean;
project_id?: string | null;
project_name?: string | null;
public_origin?: string | null;
approval_policy?: Partial<Run402AppUpApprovalPolicy>;
operation_id?: string | null;
install_id?: string | null;
diagnostics?: Run402AppUpDiagnostic[];
next_actions?: Run402AppUpNextAction[];
blocked_node_id?: string;
verify?: Run402AppUpVerifyResult;
}): Run402AppUpResultEnvelope;
//# sourceMappingURL=app-up.d.ts.map