@typeship-ax/cli 0.9.1 → 0.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/dist/ops.js CHANGED
@@ -7,21 +7,25 @@ export const OPS = [
7
7
  { "resource": "projects", "method": "retrieve", "command": ["projects", "retrieve"], "tool": "projects_retrieve", "httpMethod": "GET", "path": "/projects/{project_id}", "summary": "Retrieve a project", "description": "Returns Project-owned fields only. List Targets separately for Target and Delivery data.", "toolDescription": "Retrieve a project. Returns Project-owned fields only. GET /projects/{project_id}", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": false, "select": false, "idempotent": true, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" } }, "required": ["project_id"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n" }, "outputSchema": { "description": "Project-owned identity, Definition reference, generation controls, and shared configuration.", "properties": { "id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "project", "type": "string" }, "name": { "maxLength": 80, "type": "string" }, "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "auto_generate": { "description": "Regenerate when the Definition changes: on every push to the default branch for a repository source…", "type": "boolean" }, "relay_enabled": { "description": "Whether the webhook relay is on, letting the generated CLI's webhooks listen command mint relay ses…", "type": "boolean" }, "config": { "description": "Shared defaults inherited by every Target.", "anyOf": [{ "description": "Shared generated-client and tooling behavior for a stored Project.", "properties": { "globals": { "description": "Wire names of query/header parameters that become settable once on the generated client and auto-ap…", "maxItems": 20, "type": "array" }, "retries": { "description": "Retry behavior.", "type": "object" }, "pagination": { "description": "Per-operation pagination control, keyed by operationId or \"METHOD /path\".", "type": "object" }, "auth": { "description": "Public authentication defaults for generated clients and tools.", "type": "object" }, "cli": { "description": "How the generated CLI behaves.", "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave.", "type": "object" }, "readme": { "description": "Generated README behavior.", "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own.", "type": "object" }, "docs_url": { "description": "The API's documentation site.", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "description": "Exact llms.txt URL when the documentation site does not publish it at docs_url + /llms.txt.", "type": ["string", "null"] } }, "type": "object" }, { "type": "null" }] }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "description": "When the project configuration last changed.", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
8
8
  { "resource": "projects", "method": "delete", "command": ["projects", "delete"], "tool": "projects_delete", "httpMethod": "DELETE", "path": "/projects/{project_id}", "summary": "Delete a project", "toolDescription": "Delete a project. DELETE /projects/{project_id}", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": false, "select": false, "idempotent": true, "auth": "required", "security": [{ "apiKey": [] }], "safety": "destructive", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" } }, "required": ["project_id"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n" }, "outputSchema": { "properties": { "id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "project", "type": "string" }, "deleted": { "const": true, "type": "boolean" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
9
9
  { "resource": "projects", "method": "update", "command": ["projects", "update"], "tool": "projects_update", "httpMethod": "PATCH", "path": "/projects/{project_id}", "summary": "Update a project", "toolDescription": "Update a project. PATCH /projects/{project_id}", "paginated": false, "hasBody": true, "bodyStyle": "fields", "bodyKind": "json", "sse": false, "hasParams": false, "select": false, "idempotent": false, "auth": "required", "security": [{ "apiKey": [] }], "safety": "write", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }, { "name": "name", "ts": "name", "kind": "body", "type": "string", "required": false, "flag": "name" }, { "name": "auto_generate", "ts": "auto_generate", "kind": "body", "type": "boolean", "required": false, "flag": "auto-generate" }, { "name": "relay_enabled", "ts": "relay_enabled", "kind": "body", "type": "boolean", "required": false, "description": "Enable webhook relay sessions. Requires the CLI target and Pro.", "flag": "relay-enabled" }, { "name": "config", "ts": "config", "kind": "body", "type": "json", "required": false, "description": "Replaces the Project's shared Target defaults. Send null to clear them.", "flag": "config" }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" }, "name": { "minLength": 1, "maxLength": 80, "type": "string" }, "auto_generate": { "type": "boolean" }, "relay_enabled": { "description": "Enable webhook relay sessions. Requires the CLI target and Pro.", "type": "boolean" }, "config": { "description": "Replaces the Project's shared Target defaults. Send null to clear them.", "anyOf": [{ "description": "Shared generated-client and tooling behavior for a stored Project. Every Target inherits these defaults. Target.config is merged over them for one Target; top-level values replace defaults while cli, mcp, auth, readme, and package merge by field. GraphQL-only source settings live on the Project's Definition and are rejected in both stored config scopes.", "properties": { "globals": { "description": "Wire names of query/header parameters that become settable once on the generated client and auto-apply to every operation that accepts them; per-call values win. Names that match nothing are reported as generation warnings.", "maxItems": 20, "items": { "type": "string" }, "type": "array" }, "retries": { "description": "Retry behavior. Top-level fields adjust every operation; operations maps operationId or \"METHOD /path\" keys to per-operation overrides.", "properties": { "max_retries": { "minimum": 0, "maximum": 10, "type": "integer" }, "statuses": { "description": "Replaces the default retryable set (408, 429, 500, 502, 503, 504).", "maxItems": 20, "items": { "type": "integer" }, "type": "array" }, "initial_delay_ms": { "minimum": 1, "type": "integer" }, "max_delay_ms": { "minimum": 1, "type": "integer" }, "retry_non_idempotent": { "description": "Also retry non-idempotent methods (POST/PATCH).", "type": "boolean" }, "disabled": { "description": "Shorthand for max_retries 0.", "type": "boolean" }, "operations": { "additionalProperties": { "description": "RetryTuning (recursive)" }, "type": "object" } }, "additionalProperties": false, "type": "object" }, "pagination": { "description": "Per-operation pagination control, keyed by operationId or \"METHOD /path\". Unmatched keys are reported as generation warnings.", "additionalProperties": { "anyOf": [{ "type": "object" }, { "description": "false disables pagination detection for the operation.", "type": "boolean" }] }, "type": "object" }, "auth": { "description": "Public authentication defaults for generated clients and tools. Stored Projects own the OAuth server, application catalog, and identity policy; stateless generation accepts the same shape for one run. Runtime credentials and client secrets are never accepted.", "properties": { "oauth_server": { "anyOf": [{ "description": "Authorization-server metadata used by generated OAuth flows. Secrets and runtime credentials are never accepted here.", "type": "object" }, { "type": "null" }] }, "oauth_applications": { "description": "OAuth applications keyed by a stable name.", "additionalProperties": { "description": "OAuth application available to generated products. Public clients support interactive login; confidential clients support runtime-supplied machine credentials. Client secrets are never stored.", "type": "object" }, "type": ["object", "null"] }, "oauth_application": { "description": "Default OAuth application used by generated products.", "maxLength": 64, "pattern": "^[a-z][a-z0-9_-]{0,63}$", "type": ["string", "null"] }, "identity_verification": { "anyOf": [{ "description": "Authenticated identity read used to verify a login before it is saved. Operation is auto-detected when omitted. Requests must include at least one of subject_field, account_field, or organization_field.", "type": "object" }, { "type": "null" }] }, "approval_url": { "format": "uri", "description": "Base URL of a custom browser-approval backend implementing the start, status, and revoke contract. Used only when OAuth is not configured.", "type": ["string", "null"] }, "environments": { "description": "Authentication selections keyed by generated API environment name.", "additionalProperties": { "description": "OAuth application and request-value overrides for one named API environment.", "type": "object" }, "type": ["object", "null"] } }, "additionalProperties": false, "type": "object" }, "cli": { "description": "How the generated CLI behaves. Part of Config.", "properties": { "command_name": { "description": "Command users run, independent of how the CLI is distributed.", "type": ["string", "null"] }, "update_notice": { "description": "Opt in to a once-a-day registry check that prints an upgrade hint. Off by default; generated code phones nobody unless this is enabled.", "type": "boolean" }, "support_url": { "description": "Where the generated CLI's feedback command sends users. GitHub issues/new URLs get a prefilled title and environment details.", "type": ["string", "null"] }, "mcp_url": { "description": "Hosted MCP endpoint installed by the generated CLI instead of launching the package's local stdio server.", "type": ["string", "null"] }, "skills_repo": { "description": "GitHub owner/name of the skills package the generated CLI offers to install during init.", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave. Part of Config.", "properties": { "registry_name": { "description": "Stable official MCP registry name, independent of the server runtime.", "type": ["string", "null"] }, "access": { "description": "Authorization for callers connecting to a generated MCP server deployed over HTTP. The hosting application resolves upstream API credentials separately at runtime. This setting does not apply to the Typeship-hosted endpoint.", "properties": { "issuer": { "format": "uri", "description": "Exact issuer allowed to sign MCP connection tokens.", "type": "string" }, "resource": { "format": "uri", "description": "Canonical public URL of the self-hosted MCP endpoint that connection tokens must target.", "type": "string" }, "jwks_url": { "format": "uri", "description": "Public signing-key endpoint. Omit to discover it from the issuer.", "type": "string" }, "scopes": { "description": "Minimum scopes required to connect to the self-hosted MCP server.", "maxItems": 20, "type": "array" } }, "required": ["issuer", "resource"], "additionalProperties": false, "type": "object" }, "tool_mode": { "enum": ["auto", "operations", "meta"], "description": "MCP tool shape. meta collapses per-operation tools into search_docs, read_docs, and execute so large APIs don't flood an agent's context window. Auto considers the serialized tool schemas, switching near 10k tokens or above 100 operations.", "type": "string" }, "instructions": { "description": "Guidance appended to the MCP server's instructions, which agents read once when they connect (server/discover): what to call first, conventions the spec does not state, what not to do. Carried by the package's server and the hosted endpoint alike.", "maxLength": 2000, "type": ["string", "null"] }, "tool_descriptions": { "description": "Hand-written MCP tool descriptions keyed by operationId or \"METHOD /path\". Each replaces the text typeship derives for that operation (summary, first sentence, method and path, deprecation and auth notes). For flows the spec cannot describe, such as a multi-step upload. Keys that match no operation are reported as generation warnings.", "additionalProperties": { "maxLength": 600, "type": "string" }, "type": "object" }, "reference_resolvers": { "description": "Exact name-or-ID resolver overrides keyed first by the target operationId or \"METHOD /path\", then by its wire argument name. A resolver names one read collection operation plus 1-4 item fields to match case-insensitively; false opts that argument out of strict inference.", "additionalProperties": { "type": "object" }, "type": "object" } }, "additionalProperties": false, "type": "object" }, "readme": { "description": "Generated README behavior. Part of Config.", "properties": { "quickstart_operation": { "description": "operationId or \"METHOD /path\" to feature as the README's first API call. It must be present in the generated package and callable with no required input beyond path placeholders. Missing or unsuitable choices produce a warning and use the automatic example.", "maxLength": 500, "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own. Repository is derived from each destination.", "properties": { "homepage": { "description": "Homepage written into registry metadata.", "type": ["string", "null"] }, "license": { "description": "SPDX identifier written into registry metadata. Defaults to info.license.", "maxLength": 200, "type": ["string", "null"] }, "license_text": { "description": "Exact LICENSE file contents. Supply this for licences the engine does not build in; MIT is built in when copyright is also set.", "maxLength": 100000, "type": ["string", "null"] }, "copyright": { "description": "Copyright line used in generated license files.", "maxLength": 200, "type": ["string", "null"] }, "go_package_name": { "description": "Go identifier when the destination repository name is unsuitable.", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "docs_url": { "description": "The API's documentation site. Read through its llms.txt by the generated CLI's docs command, the MCP server's docs tools, and the package's AGENTS.md. Defaults to the Definition's externalDocs URL.", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "description": "Exact llms.txt URL when the documentation site does not publish it at docs_url + /llms.txt.", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, { "type": "null" }] } }, "required": ["project_id"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n" }, "outputSchema": { "description": "Project-owned identity, Definition reference, generation controls, and shared configuration.", "properties": { "id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "project", "type": "string" }, "name": { "maxLength": 80, "type": "string" }, "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "auto_generate": { "description": "Regenerate when the Definition changes: on every push to the default branch for a repository source…", "type": "boolean" }, "relay_enabled": { "description": "Whether the webhook relay is on, letting the generated CLI's webhooks listen command mint relay ses…", "type": "boolean" }, "config": { "description": "Shared defaults inherited by every Target.", "anyOf": [{ "description": "Shared generated-client and tooling behavior for a stored Project.", "properties": { "globals": { "description": "Wire names of query/header parameters that become settable once on the generated client and auto-ap…", "maxItems": 20, "type": "array" }, "retries": { "description": "Retry behavior.", "type": "object" }, "pagination": { "description": "Per-operation pagination control, keyed by operationId or \"METHOD /path\".", "type": "object" }, "auth": { "description": "Public authentication defaults for generated clients and tools.", "type": "object" }, "cli": { "description": "How the generated CLI behaves.", "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave.", "type": "object" }, "readme": { "description": "Generated README behavior.", "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own.", "type": "object" }, "docs_url": { "description": "The API's documentation site.", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "description": "Exact llms.txt URL when the documentation site does not publish it at docs_url + /llms.txt.", "type": ["string", "null"] } }, "type": "object" }, { "type": "null" }] }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "description": "When the project configuration last changed.", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
10
- { "resource": "projects", "method": "retrieveDiagnostics", "command": ["projects", "retrieve-diagnostics"], "tool": "projects_retrieve_diagnostics", "httpMethod": "GET", "path": "/projects/{project_id}/diagnostics", "summary": "Analyze a project's latest Definition Revision", "description": "Runs deterministic OpenAPI or GraphQL authorship checks against the latest observed immutable Definition Revision after applying the Definition's existing patches. Diagnostics group every affected location under a stable rule. Exact patches are included only when Typeship can derive the change without inventing API behavior.", "toolDescription": "Analyze a project's latest Definition Revision. Runs deterministic OpenAPI or GraphQL authorship checks against the latest observed immutable Definition Revision after applying the Definition's existing patches. GET /projects/{project_id}/diagnostics", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": false, "select": false, "idempotent": true, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" } }, "required": ["project_id"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n" }, "outputSchema": { "description": "Deterministic Diagnostics for one immutable Definition Revision after existing patches.", "properties": { "object": { "const": "diagnostic_report", "type": "string" }, "format": { "enum": ["openapi", "graphql"], "description": "Contract format Typeship analyzed.", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_revision_id": { "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, "source_sha256": { "description": "SHA-256 digest of the immutable raw source revision.", "pattern": "^[a-f0-9]{64}$", "type": "string" }, "analyzed_sha256": { "description": "SHA-256 digest after applying the Definition's current patches.", "pattern": "^[a-f0-9]{64}$", "type": "string" }, "patch_diagnostics": { "description": "Loud misses or conflicts from the Definition's existing patches.", "items": { "type": "string" }, "type": "array" }, "summary": { "description": "Counts distinguish decisions from the number of affected schema locations.", "properties": { "diagnostics": { "description": "Number of grouped rule diagnostics.", "minimum": 0, "type": "integer" }, "occurrences": { "description": "Total affected locations across all diagnostics.", "minimum": 0, "type": "integer" }, "errors": { "description": "Grouped correctness errors.", "minimum": 0, "type": "integer" }, "warnings": { "description": "Grouped material risks.", "minimum": 0, "type": "integer" }, "suggestions": { "description": "Grouped improvements.", "minimum": 0, "type": "integer" }, "auto_fixable": { "description": "Diagnostics with exact reviewable Definition patches.", "minimum": 0, "type": "integer" } }, "type": "object" }, "diagnostics": { "description": "Stable grouped diagnostics, ordered by severity and rule identifier.", "items": { "description": "Every occurrence of one stable Diagnostic rule, grouped into one decision.", "properties": { "id": { "description": "Stable rule identifier for automation and suppressions.", "type": "string" }, "severity": { "enum": ["error", "warning", "suggestion"], "description": "Whether the rule reports invalid behavior, material risk, or an improvement.", "type": "string" }, "category": { "enum": ["correctness", "sdk_ergonomics", "agent_usability", "safety"], "description": "Product dimension affected by the diagnostic.", "type": "string" }, "title": { "description": "Concise statement of the root cause.", "type": "string" }, "description": { "description": "What the API author should change.", "type": "string" }, "impact": { "description": "Why consumers of generated SDK, CLI, or MCP surfaces care.", "type": "string" }, "surfaces": { "description": "Public surfaces affected by the root cause.", "uniqueItems": true, "type": "array" }, "locations": { "description": "All affected coordinates, kept under one grouped diagnostic.", "minItems": 1, "type": "array" }, "fix": { "description": "A reviewable remediation that does not invent API behavior.", "type": "object" }, "authoring_brief": { "description": "Grounded instructions an agent can use to edit the source.", "type": "string" } }, "type": "object" }, "type": "array" }, "policy": { "description": "Source pull-request enforcement threshold, new-versus-complete baseline, and explicitly reviewed ru…", "properties": { "fail_on": { "enum": ["never", "error", "warning"], "description": "Severity threshold that fails the API change review check.", "default": "error", "type": "string" }, "only_new": { "description": "Enforce only occurrences introduced by the proposed source change.", "default": true, "type": "boolean" }, "suppressions": { "default": [], "maxItems": 100, "items": { "type": "object" }, "type": "array" } }, "type": "object" }, "evaluation": { "properties": { "state": { "enum": ["pass", "fail"], "type": "string" }, "blocking": { "items": { "description": "Compact rule and location reference; full guidance appears once in diagnostics.", "type": "object" }, "type": "array" }, "considered_occurrences": { "minimum": 0, "type": "integer" }, "suppressed_occurrences": { "minimum": 0, "type": "integer" } }, "type": "object" }, "delta": { "properties": { "added": { "items": { "description": "Compact rule and location reference; full guidance appears once in diagnostics.", "type": "object" }, "type": "array" }, "resolved": { "items": { "description": "Compact rule and location reference; full guidance appears once in diagnostics.", "type": "object" }, "type": "array" }, "baseline_definition_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] } }, "type": "object" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
11
- { "resource": "projects", "method": "refreshDiagnostics", "command": ["projects", "refresh-diagnostics"], "tool": "projects_refresh_diagnostics", "httpMethod": "POST", "path": "/projects/{project_id}/diagnostics", "summary": "Refresh a project's Diagnostics from its configured source", "description": "Fetches the complete configured source, records a new immutable revision only when content changed, and returns its Diagnostics. This does not generate targets or consume a metered generation.", "toolDescription": "Refresh a project's Diagnostics from its configured source. Fetches the complete configured source, records a new immutable revision only when content changed, and returns its Diagnostics. POST /projects/{project_id}/diagnostics", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": true, "select": false, "idempotent": false, "idempotencyHeader": "Idempotency-Key", "auth": "required", "security": [{ "apiKey": [] }], "safety": "write", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }, { "name": "Idempotency-Key", "ts": "idempotencyKey", "kind": "header", "type": "string", "required": false, "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write.", "flag": "idempotency-key" }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" }, "Idempotency-Key": { "minLength": 1, "maxLength": 255, "pattern": "^[!-~]+$", "type": "string", "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write." } }, "required": ["project_id"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n" }, "outputSchema": { "description": "Deterministic Diagnostics for one immutable Definition Revision after existing patches.", "properties": { "object": { "const": "diagnostic_report", "type": "string" }, "format": { "enum": ["openapi", "graphql"], "description": "Contract format Typeship analyzed.", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_revision_id": { "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, "source_sha256": { "description": "SHA-256 digest of the immutable raw source revision.", "pattern": "^[a-f0-9]{64}$", "type": "string" }, "analyzed_sha256": { "description": "SHA-256 digest after applying the Definition's current patches.", "pattern": "^[a-f0-9]{64}$", "type": "string" }, "patch_diagnostics": { "description": "Loud misses or conflicts from the Definition's existing patches.", "items": { "type": "string" }, "type": "array" }, "summary": { "description": "Counts distinguish decisions from the number of affected schema locations.", "properties": { "diagnostics": { "description": "Number of grouped rule diagnostics.", "minimum": 0, "type": "integer" }, "occurrences": { "description": "Total affected locations across all diagnostics.", "minimum": 0, "type": "integer" }, "errors": { "description": "Grouped correctness errors.", "minimum": 0, "type": "integer" }, "warnings": { "description": "Grouped material risks.", "minimum": 0, "type": "integer" }, "suggestions": { "description": "Grouped improvements.", "minimum": 0, "type": "integer" }, "auto_fixable": { "description": "Diagnostics with exact reviewable Definition patches.", "minimum": 0, "type": "integer" } }, "type": "object" }, "diagnostics": { "description": "Stable grouped diagnostics, ordered by severity and rule identifier.", "items": { "description": "Every occurrence of one stable Diagnostic rule, grouped into one decision.", "properties": { "id": { "description": "Stable rule identifier for automation and suppressions.", "type": "string" }, "severity": { "enum": ["error", "warning", "suggestion"], "description": "Whether the rule reports invalid behavior, material risk, or an improvement.", "type": "string" }, "category": { "enum": ["correctness", "sdk_ergonomics", "agent_usability", "safety"], "description": "Product dimension affected by the diagnostic.", "type": "string" }, "title": { "description": "Concise statement of the root cause.", "type": "string" }, "description": { "description": "What the API author should change.", "type": "string" }, "impact": { "description": "Why consumers of generated SDK, CLI, or MCP surfaces care.", "type": "string" }, "surfaces": { "description": "Public surfaces affected by the root cause.", "uniqueItems": true, "type": "array" }, "locations": { "description": "All affected coordinates, kept under one grouped diagnostic.", "minItems": 1, "type": "array" }, "fix": { "description": "A reviewable remediation that does not invent API behavior.", "type": "object" }, "authoring_brief": { "description": "Grounded instructions an agent can use to edit the source.", "type": "string" } }, "type": "object" }, "type": "array" }, "policy": { "description": "Source pull-request enforcement threshold, new-versus-complete baseline, and explicitly reviewed ru…", "properties": { "fail_on": { "enum": ["never", "error", "warning"], "description": "Severity threshold that fails the API change review check.", "default": "error", "type": "string" }, "only_new": { "description": "Enforce only occurrences introduced by the proposed source change.", "default": true, "type": "boolean" }, "suppressions": { "default": [], "maxItems": 100, "items": { "type": "object" }, "type": "array" } }, "type": "object" }, "evaluation": { "properties": { "state": { "enum": ["pass", "fail"], "type": "string" }, "blocking": { "items": { "description": "Compact rule and location reference; full guidance appears once in diagnostics.", "type": "object" }, "type": "array" }, "considered_occurrences": { "minimum": 0, "type": "integer" }, "suppressed_occurrences": { "minimum": 0, "type": "integer" } }, "type": "object" }, "delta": { "properties": { "added": { "items": { "description": "Compact rule and location reference; full guidance appears once in diagnostics.", "type": "object" }, "type": "array" }, "resolved": { "items": { "description": "Compact rule and location reference; full guidance appears once in diagnostics.", "type": "object" }, "type": "array" }, "baseline_definition_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] } }, "type": "object" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
10
+ { "resource": "projects", "method": "retrieveDiagnostics", "command": ["projects", "retrieve-diagnostics"], "tool": "projects_retrieve_diagnostics", "httpMethod": "GET", "path": "/projects/{project_id}/diagnostics", "summary": "Analyze a project's latest Definition Revision", "description": "Runs deterministic OpenAPI or GraphQL authorship checks against the latest observed immutable Definition Revision after applying the Definition's existing patches. Diagnostics group every affected location under a stable rule. Exact patches are included only when Typeship can derive the change without inventing API behavior.", "toolDescription": "Analyze a project's latest Definition Revision. Runs deterministic OpenAPI or GraphQL authorship checks against the latest observed immutable Definition Revision after applying the Definition's existing patches. GET /projects/{project_id}/diagnostics", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": false, "select": false, "idempotent": true, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" } }, "required": ["project_id"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n" }, "outputSchema": { "description": "Deterministic Diagnostics for one immutable Definition Revision after existing patches.", "properties": { "object": { "const": "diagnostic_report", "type": "string" }, "format": { "enum": ["openapi", "graphql"], "description": "Contract format Typeship analyzed.", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_revision_id": { "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, "source_sha256": { "description": "SHA-256 digest of the immutable raw source revision.", "pattern": "^[a-f0-9]{64}$", "type": "string" }, "analyzed_sha256": { "description": "SHA-256 digest after applying the Definition's current patches.", "pattern": "^[a-f0-9]{64}$", "type": "string" }, "patch_diagnostics": { "description": "Loud misses or conflicts from the Definition's existing patches.", "items": { "type": "string" }, "type": "array" }, "summary": { "description": "Counts distinguish decisions from the number of affected schema locations.", "properties": { "diagnostics": { "description": "Number of grouped rule diagnostics.", "minimum": 0, "type": "integer" }, "occurrences": { "description": "Total affected locations across all diagnostics.", "minimum": 0, "type": "integer" }, "errors": { "description": "Grouped correctness errors.", "minimum": 0, "type": "integer" }, "warnings": { "description": "Grouped material risks.", "minimum": 0, "type": "integer" }, "suggestions": { "description": "Grouped improvements.", "minimum": 0, "type": "integer" }, "auto_fixable": { "description": "Diagnostics with exact reviewable Definition patches.", "minimum": 0, "type": "integer" } }, "type": "object" }, "diagnostics": { "description": "Stable grouped diagnostics, ordered by severity and rule identifier.", "items": { "description": "Every occurrence of one stable Diagnostic rule, grouped into one decision.", "properties": { "id": { "description": "Stable rule identifier for automation and suppressions.", "type": "string" }, "severity": { "enum": ["error", "warning", "suggestion"], "description": "Whether the rule reports invalid behavior, material risk, or an improvement.", "type": "string" }, "category": { "enum": ["correctness", "sdk_ergonomics", "agent_usability", "safety"], "description": "Product dimension affected by the diagnostic.", "type": "string" }, "title": { "description": "Concise statement of the root cause.", "type": "string" }, "description": { "description": "What the API author should change.", "type": "string" }, "impact": { "description": "Why consumers of generated SDK, CLI, or MCP surfaces care.", "type": "string" }, "surfaces": { "description": "Public surfaces affected by the root cause.", "uniqueItems": true, "type": "array" }, "evidence_basis": { "enum": ["contract", "heuristic", "implementation"], "description": "Whether the finding is provable from the Definition, a conservative review suggestion, or a documen…", "type": "string" }, "owner_decision_required": { "description": "Whether remediation requires intent that the Definition cannot prove.", "type": "boolean" }, "surface_impact": { "description": "Concrete generated SDK, CLI, or MCP naming effect when Typeship can state it.", "type": "string" }, "locations": { "description": "All affected coordinates, kept under one grouped diagnostic.", "minItems": 1, "type": "array" }, "fix": { "description": "A reviewable remediation that does not invent API behavior.", "type": "object" }, "authoring_brief": { "description": "Grounded instructions an agent can use to edit the source.", "type": "string" } }, "type": "object" }, "type": "array" }, "policy": { "description": "Source pull-request enforcement threshold, new-versus-complete baseline, and explicitly reviewed ru…", "properties": { "fail_on": { "enum": ["never", "error", "warning"], "description": "Severity threshold that fails the API change review check.", "default": "error", "type": "string" }, "only_new": { "description": "Enforce only occurrences introduced by the proposed source change.", "default": true, "type": "boolean" }, "suppressions": { "default": [], "maxItems": 100, "items": { "type": "object" }, "type": "array" } }, "type": "object" }, "evaluation": { "properties": { "state": { "enum": ["pass", "fail"], "type": "string" }, "blocking": { "items": { "description": "Compact rule and location reference; full guidance appears once in diagnostics.", "type": "object" }, "type": "array" }, "considered_occurrences": { "minimum": 0, "type": "integer" }, "suppressed_occurrences": { "minimum": 0, "type": "integer" } }, "type": "object" }, "quality_signals": { "description": "Current-revision signals for tuning Diagnostics policy.", "properties": { "suppressed_by_rule": { "items": { "description": "Current-revision suppression usage for one stable Diagnostic rule.", "type": "object" }, "type": "array" }, "stale_suppressions": { "description": "Reviewed exceptions whose rule or exact path no longer matches this revision.", "items": { "type": "object" }, "type": "array" } }, "type": "object" }, "delta": { "properties": { "added": { "items": { "description": "Compact rule and location reference; full guidance appears once in diagnostics.", "type": "object" }, "type": "array" }, "resolved": { "items": { "description": "Compact rule and location reference; full guidance appears once in diagnostics.", "type": "object" }, "type": "array" }, "baseline_definition_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] } }, "type": "object" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
11
+ { "resource": "projects", "method": "refreshDiagnostics", "command": ["projects", "refresh-diagnostics"], "tool": "projects_refresh_diagnostics", "httpMethod": "POST", "path": "/projects/{project_id}/diagnostics", "summary": "Refresh a project's Diagnostics from its configured source", "description": "Fetches the complete configured source, records a new immutable revision only when content changed, and returns its Diagnostics. This does not generate targets or consume a metered generation.", "toolDescription": "Refresh a project's Diagnostics from its configured source. Fetches the complete configured source, records a new immutable revision only when content changed, and returns its Diagnostics. POST /projects/{project_id}/diagnostics", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": true, "select": false, "idempotent": false, "idempotencyHeader": "Idempotency-Key", "auth": "required", "security": [{ "apiKey": [] }], "safety": "write", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }, { "name": "Idempotency-Key", "ts": "idempotencyKey", "kind": "header", "type": "string", "required": false, "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write.", "flag": "idempotency-key" }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" }, "Idempotency-Key": { "minLength": 1, "maxLength": 255, "pattern": "^[!-~]+$", "type": "string", "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write." } }, "required": ["project_id"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n" }, "outputSchema": { "description": "Deterministic Diagnostics for one immutable Definition Revision after existing patches.", "properties": { "object": { "const": "diagnostic_report", "type": "string" }, "format": { "enum": ["openapi", "graphql"], "description": "Contract format Typeship analyzed.", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_revision_id": { "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, "source_sha256": { "description": "SHA-256 digest of the immutable raw source revision.", "pattern": "^[a-f0-9]{64}$", "type": "string" }, "analyzed_sha256": { "description": "SHA-256 digest after applying the Definition's current patches.", "pattern": "^[a-f0-9]{64}$", "type": "string" }, "patch_diagnostics": { "description": "Loud misses or conflicts from the Definition's existing patches.", "items": { "type": "string" }, "type": "array" }, "summary": { "description": "Counts distinguish decisions from the number of affected schema locations.", "properties": { "diagnostics": { "description": "Number of grouped rule diagnostics.", "minimum": 0, "type": "integer" }, "occurrences": { "description": "Total affected locations across all diagnostics.", "minimum": 0, "type": "integer" }, "errors": { "description": "Grouped correctness errors.", "minimum": 0, "type": "integer" }, "warnings": { "description": "Grouped material risks.", "minimum": 0, "type": "integer" }, "suggestions": { "description": "Grouped improvements.", "minimum": 0, "type": "integer" }, "auto_fixable": { "description": "Diagnostics with exact reviewable Definition patches.", "minimum": 0, "type": "integer" } }, "type": "object" }, "diagnostics": { "description": "Stable grouped diagnostics, ordered by severity and rule identifier.", "items": { "description": "Every occurrence of one stable Diagnostic rule, grouped into one decision.", "properties": { "id": { "description": "Stable rule identifier for automation and suppressions.", "type": "string" }, "severity": { "enum": ["error", "warning", "suggestion"], "description": "Whether the rule reports invalid behavior, material risk, or an improvement.", "type": "string" }, "category": { "enum": ["correctness", "sdk_ergonomics", "agent_usability", "safety"], "description": "Product dimension affected by the diagnostic.", "type": "string" }, "title": { "description": "Concise statement of the root cause.", "type": "string" }, "description": { "description": "What the API author should change.", "type": "string" }, "impact": { "description": "Why consumers of generated SDK, CLI, or MCP surfaces care.", "type": "string" }, "surfaces": { "description": "Public surfaces affected by the root cause.", "uniqueItems": true, "type": "array" }, "evidence_basis": { "enum": ["contract", "heuristic", "implementation"], "description": "Whether the finding is provable from the Definition, a conservative review suggestion, or a documen…", "type": "string" }, "owner_decision_required": { "description": "Whether remediation requires intent that the Definition cannot prove.", "type": "boolean" }, "surface_impact": { "description": "Concrete generated SDK, CLI, or MCP naming effect when Typeship can state it.", "type": "string" }, "locations": { "description": "All affected coordinates, kept under one grouped diagnostic.", "minItems": 1, "type": "array" }, "fix": { "description": "A reviewable remediation that does not invent API behavior.", "type": "object" }, "authoring_brief": { "description": "Grounded instructions an agent can use to edit the source.", "type": "string" } }, "type": "object" }, "type": "array" }, "policy": { "description": "Source pull-request enforcement threshold, new-versus-complete baseline, and explicitly reviewed ru…", "properties": { "fail_on": { "enum": ["never", "error", "warning"], "description": "Severity threshold that fails the API change review check.", "default": "error", "type": "string" }, "only_new": { "description": "Enforce only occurrences introduced by the proposed source change.", "default": true, "type": "boolean" }, "suppressions": { "default": [], "maxItems": 100, "items": { "type": "object" }, "type": "array" } }, "type": "object" }, "evaluation": { "properties": { "state": { "enum": ["pass", "fail"], "type": "string" }, "blocking": { "items": { "description": "Compact rule and location reference; full guidance appears once in diagnostics.", "type": "object" }, "type": "array" }, "considered_occurrences": { "minimum": 0, "type": "integer" }, "suppressed_occurrences": { "minimum": 0, "type": "integer" } }, "type": "object" }, "quality_signals": { "description": "Current-revision signals for tuning Diagnostics policy.", "properties": { "suppressed_by_rule": { "items": { "description": "Current-revision suppression usage for one stable Diagnostic rule.", "type": "object" }, "type": "array" }, "stale_suppressions": { "description": "Reviewed exceptions whose rule or exact path no longer matches this revision.", "items": { "type": "object" }, "type": "array" } }, "type": "object" }, "delta": { "properties": { "added": { "items": { "description": "Compact rule and location reference; full guidance appears once in diagnostics.", "type": "object" }, "type": "array" }, "resolved": { "items": { "description": "Compact rule and location reference; full guidance appears once in diagnostics.", "type": "object" }, "type": "array" }, "baseline_definition_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] } }, "type": "object" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
12
12
  { "resource": "projects", "method": "remediateDiagnostics", "command": ["projects", "remediate-diagnostics"], "tool": "projects_remediate_diagnostics", "httpMethod": "POST", "path": "/projects/{project_id}/diagnostics/remediations", "summary": "Apply exact, reviewed diagnostic remediations", "description": "Applies only deterministic patches. Repository sources receive an updateable source pull request; URL sources receive project overlays. Diagnostics that require API-owner intent return 422 and include an authoring_brief in the Diagnostic instead.", "toolDescription": "Apply exact, reviewed diagnostic remediations. Applies only deterministic patches. POST /projects/{project_id}/diagnostics/remediations", "paginated": false, "hasBody": true, "bodyStyle": "fields", "bodyKind": "json", "sse": false, "hasParams": true, "select": false, "idempotent": false, "idempotencyHeader": "Idempotency-Key", "auth": "required", "security": [{ "apiKey": [] }], "safety": "write", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }, { "name": "diagnostic_ids", "ts": "diagnostic_ids", "kind": "body", "type": "array", "required": true, "items": { "type": "string" }, "description": "Stable IDs of current diagnostics whose exact patches should be reviewed and applied.", "flag": "diagnostic-ids" }, { "name": "Idempotency-Key", "ts": "idempotencyKey", "kind": "header", "type": "string", "required": false, "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write.", "flag": "idempotency-key" }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" }, "Idempotency-Key": { "minLength": 1, "maxLength": 255, "pattern": "^[!-~]+$", "type": "string", "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write." }, "diagnostic_ids": { "description": "Stable IDs of current diagnostics whose exact patches should be reviewed and applied.", "minItems": 1, "maxItems": 50, "uniqueItems": true, "items": { "type": "string" }, "type": "array" } }, "required": ["project_id", "diagnostic_ids"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n", "diagnostic_ids": ["value"] }, "outputSchema": { "properties": { "object": { "const": "diagnostic_remediation", "type": "string" }, "kind": { "enum": ["overlay", "source_review"], "type": "string" }, "patches_applied": { "minimum": 0, "type": "integer" }, "review_url": { "format": "uri", "description": "Source pull request for repository projects; absent for URL overlays.", "type": ["string", "null"] }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
13
13
  { "resource": "projects", "method": "retrieveIntegrationHealth", "command": ["projects", "retrieve-integration-health"], "tool": "projects_retrieve_integration_health", "httpMethod": "GET", "path": "/projects/{project_id}/integration-health", "summary": "Diagnose a project's repository integrations", "description": "Returns provider-neutral, machine-actionable source and destination access, Definition readability, source-approval label setup, required status names, and the latest durable webhook delivery. The Console renders this same result.", "toolDescription": "Diagnose a project's repository integrations. Returns provider-neutral, machine-actionable source and destination access, Definition readability, source-approval label setup, required status names, and the latest durable webhook delivery. GET /projects/{project_id}/integration-health", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": false, "select": false, "idempotent": true, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" } }, "required": ["project_id"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n" }, "outputSchema": { "properties": { "object": { "const": "repository_integration_health", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "status": { "enum": ["ready", "action_required"], "type": "string" }, "repositories": { "items": { "properties": { "repository": { "properties": { "provider": { "enum": ["github"], "description": "GitHub is the only launch provider; the field is stable for future adapters.", "type": "string" }, "identifier": { "description": "Provider-native repository identity, opaque outside its adapter.", "examples": ["acme/payments-api"], "maxLength": 512, "type": "string" } }, "type": "object" }, "roles": { "uniqueItems": true, "items": { "enum": ["source", "destination"], "type": "string" }, "type": "array" }, "status": { "enum": ["ready", "action_required"], "type": "string" }, "default_branch": { "type": "string" }, "capabilities": { "items": { "type": "string" }, "type": "array" }, "breaking_acknowledgement": { "description": "Whether a source repository has the optional typeship:breaking-approved policy label. Null when the repository is not a source or labels could not be read.", "type": ["boolean", "null"] }, "definition": { "enum": ["readable", "missing"], "type": "string" }, "issues": { "items": { "type": "object" }, "type": "array" } }, "type": "object" }, "type": "array" }, "required_checks": { "properties": { "source": { "items": { "type": "string" }, "type": "array" }, "destination": { "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "last_event": { "anyOf": [{ "properties": { "provider": { "type": "string" }, "id": { "type": "string" }, "event": { "type": "string" }, "status": { "enum": ["queued", "processing", "succeeded", "failed", "superseded"], "type": "string" }, "error": { "type": ["string", "null"] }, "created_at": { "format": "date-time", "type": "string" } }, "type": "object" }, { "type": "null" }] }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
14
14
  { "resource": "projects", "method": "listGenerations", "command": ["projects", "list-generations"], "tool": "projects_list_generations", "httpMethod": "GET", "path": "/projects/{project_id}/generations", "summary": "List a project's generations", "toolDescription": "List a project's generations. GET /projects/{project_id}/generations (paginated: returns one page plus hasMore and nextPage arguments)", "paginated": true, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": true, "select": false, "idempotent": true, "pagination": { "style": "cursor", "itemsField": "data", "cursorParam": "cursor", "nextCursorField": "next_cursor", "hasMoreField": "has_more", "limitParam": "limit" }, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }, { "name": "limit", "ts": "limit", "kind": "query", "type": "number", "required": false, "description": "Maximum number of resources to return. Default: 20.", "flag": "limit" }, { "name": "cursor", "ts": "cursor", "kind": "query", "type": "string", "required": false, "description": "Opaque cursor from the preceding page's next_cursor. Valid only for the same account, operation, filters, and ordering that issued it.", "flag": "cursor" }, { "name": "target_id", "ts": "targetId", "kind": "query", "type": "string", "required": false, "description": "Only generations for this persisted Target.", "flag": "target-id" }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" }, "limit": { "default": 20, "minimum": 1, "maximum": 100, "type": "integer", "description": "Maximum number of resources to return. Default: 20." }, "cursor": { "type": "string", "description": "Opaque cursor from the preceding page's next_cursor. Valid only for the same account, operation, filters, and ordering that issued it." }, "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" } }, "required": ["project_id"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n" }, "outputSchema": { "type": "object", "properties": { "items": { "type": "array", "items": { "description": "Generation metadata returned by collection endpoints.", "examples": [{ "id": "gen_7h2p5d9c3m8w1k6q", "object": "generation", "project_id": "prj_4f8k2m7x9q1v6b3n", "definition_revision_id": "drev_6m1q8v4k2p9d7h3c", "status": "succeeded", "trigger": "manual", "target_id": "tgt_5m8q2v7k1p9d4h6c", "generator": "typescript-sdk", "provenance": { "generator_edition": "2026-08-24", "engine_build": "abc123", "resolved_config": null, "config_hash": null, "surface_plan": null, "surface_plan_hash": null, "entitlement_cap": null, "package_version": "1.0.0" }, "meta": { "title": "Acme Payments API", "api_version": "1.0.0", "version": "1.0.0", "oas_version": "3.1", "artifact_name": "@acme/payments", "client_name": "AcmeClient", "generators": ["typescript-sdk"] }, "warnings": [], "error": null, "created_at": "2026-01-01T00:00:00Z" }], "properties": { "id": { "description": "Unique identifier for a generation.", "examples": ["gen_7h2p5d9c3m8w1k6q"], "pattern": "^gen_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "generation", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "status": { "enum": ["succeeded", "failed"], "type": "string" }, "trigger": { "enum": ["manual", "webhook", "poll", "preview"], "type": "string" }, "target_id": { "description": "Persisted Target identity.", "anyOf": [{ "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "generator": { "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target.", "type": "string" }, "provenance": { "properties": { "generator_edition": { "description": "Pinned generator contract edition.", "type": "string" }, "engine_build": { "description": "Exact engine build identifier used for replay and support.", "type": "string" }, "resolved_config": { "description": "Immutable effective Target configuration used by this run; source credentials are never included.", "type": ["object", "null"] }, "config_hash": { "pattern": "^[a-f0-9]{64}$", "type": ["string", "null"] }, "surface_plan": { "description": "Resolved generator and entitlement plan used to select the emitted public surface.", "type": ["object", "null"] }, "surface_plan_hash": { "pattern": "^[a-f0-9]{64}$", "type": ["string", "null"] }, "entitlement_cap": { "minimum": 1, "type": ["integer", "null"] }, "package_version": { "type": ["string", "null"] } }, "type": "object" }, "meta": { "description": "Null only for a failed or legacy generation that produced no metadata.", "anyOf": [{ "type": "object" }, { "type": "null" }] }, "warnings": { "items": { "type": "string" }, "type": "array" }, "error": { "type": ["string", "null"] }, "created_at": { "format": "date-time", "type": "string" } }, "type": "object" } }, "hasMore": { "type": "boolean", "description": "Whether another page exists" }, "nextPage": { "type": "object", "description": "Arguments that fetch the next page; pass them to this tool", "additionalProperties": true }, "truncated": { "type": "object", "description": "Present when the page was cut to fit the result size cap: how many items were omitted and how to ge…", "additionalProperties": true } } }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
15
15
  { "resource": "projects", "method": "generate", "command": ["projects", "generate"], "tool": "projects_generate", "httpMethod": "POST", "path": "/projects/{project_id}/generations", "summary": "Generate targets and open pull requests", "description": "Resolves the project's URL or GitHub source, generates every\nconfigured delivery package, stores each result in the project's history,\nand attempts to open a pull request in every configured destination.\nWhen the complete generated tree already matches a destination, no\ncommit, branch, or pull request is created and that generation reports\n`pr_status: no_changes`. This is the same pipeline automatic\nregeneration runs after a source change.", "toolDescription": "Generate targets and open pull requests. Resolves the project's URL or GitHub source, generates every configured delivery package, stores each result in the project's history, and attempts to open a pull request in every configured destination. POST /projects/{project_id}/generations", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": true, "select": false, "idempotent": false, "idempotencyHeader": "Idempotency-Key", "auth": "required", "security": [{ "apiKey": [] }], "safety": "write", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }, { "name": "Idempotency-Key", "ts": "idempotencyKey", "kind": "header", "type": "string", "required": false, "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write.", "flag": "idempotency-key" }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" }, "Idempotency-Key": { "minLength": 1, "maxLength": 255, "pattern": "^[!-~]+$", "type": "string", "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write." } }, "required": ["project_id"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n" }, "outputSchema": { "description": "Metadata for each Target generation attempted by a Project run. Retrieve one Generation separately for generated files.", "properties": { "data": { "items": { "anyOf": [{ "description": "Generation metadata returned by collection endpoints. Generated file contents and file indexes are available only from retrieve and create operations.", "examples": [{ "id": "gen_7h2p5d9c3m8w1k6q", "object": "generation", "project_id": "prj_4f8k2m7x9q1v6b3n", "definition_revision_id": "drev_6m1q8v4k2p9d7h3c", "status": "succeeded", "trigger": "manual", "target_id": "tgt_5m8q2v7k1p9d4h6c", "generator": "typescript-sdk", "provenance": { "generator_edition": "2026-08-24", "engine_build": "abc123", "resolved_config": null, "config_hash": null, "surface_plan": null, "surface_plan_hash": null, "entitlement_cap": null, "package_version": "1.0.0" }, "meta": { "title": "Acme Payments API", "api_version": "1.0.0", "version": "1.0.0", "oas_version": "3.1", "artifact_name": "@acme/payments", "client_name": "AcmeClient", "generators": ["typescript-sdk"] }, "warnings": [], "error": null, "created_at": "2026-01-01T00:00:00Z" }], "properties": { "id": { "description": "Unique identifier for a generation.", "examples": ["gen_7h2p5d9c3m8w1k6q"], "pattern": "^gen_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "generation", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "status": { "enum": ["succeeded", "failed"], "type": "string" }, "trigger": { "enum": ["manual", "webhook", "poll", "preview"], "type": "string" }, "target_id": { "description": "Persisted Target identity. Null only for stateless generation.", "anyOf": [{ "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "generator": { "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target. This is configuration, not identity; several Targets may use the same generator.", "type": "string" }, "provenance": { "type": "object" }, "meta": { "description": "Null only for a failed or legacy generation that produced no metadata.", "anyOf": [{ "type": "object" }, { "type": "null" }] }, "warnings": { "type": "array" }, "error": { "type": ["string", "null"] }, "created_at": { "format": "date-time", "type": "string" } }, "type": "object" }, { "description": "A selected target that did not generate in a multi-target run.", "properties": { "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "generator": { "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target. This is configuration, not identity; several Targets may use the same generator.", "type": "string" }, "status": { "const": "failed", "type": "string" }, "error": { "type": "string" } }, "type": "object" }] }, "type": "array" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
16
16
  { "resource": "definitions", "method": "retrieve", "command": ["definitions", "retrieve"], "tool": "definitions_retrieve", "httpMethod": "GET", "path": "/definitions/{definition_id}", "summary": "Retrieve a Definition", "toolDescription": "Retrieve a Definition. GET /definitions/{definition_id}", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": false, "select": false, "idempotent": true, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "definition_id", "ts": "definitionId", "kind": "path", "type": "string", "required": true, "flag": "definition-id" }], "inputSchema": { "type": "object", "properties": { "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" } }, "required": ["definition_id"] }, "exampleArguments": { "definition_id": "def_2p8m4q7k1v9d6h3c" }, "outputSchema": { "properties": { "id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "definition", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "source": { "description": "The single source of truth for where a Project's Definition lives.", "anyOf": [{ "properties": { "kind": { "const": "url", "type": "string" }, "url": { "format": "uri", "description": "URL fetched for every generation.", "maxLength": 2048, "pattern": "^https?://", "type": "string" }, "headers_configured": { "description": "Whether Typeship has stored write-only request headers for this URL.", "type": "boolean" } }, "type": "object" }, { "properties": { "kind": { "const": "repository", "type": "string" }, "repository": { "properties": { "provider": { "enum": ["github"], "description": "GitHub is the only launch provider; the field is stable for future adapters.", "type": "string" }, "identifier": { "description": "Provider-native repository identity, opaque outside its adapter.", "examples": ["acme/payments-api"], "maxLength": 512, "type": "string" } }, "type": "object" }, "path": { "description": "Repository-relative Definition entrypoint.", "minLength": 1, "maxLength": 4096, "pattern": "^(?!/)(?!.*\\.\\.).+$", "type": "string" } }, "type": "object" }] }, "format": { "enum": ["openapi", "graphql", null], "type": ["string", "null"] }, "patches": { "items": { "description": "A fix applied to the resolved Definition before generation. Paths are JSON\nPointers into the document. A patch whose target no longer exists is\nskipped and reported as a warning on the generation, never silently.", "examples": [{ "op": "remove", "path": "/components/schemas/Legacy" }], "properties": { "op": { "enum": ["set", "append", "remove", "rename"], "type": "string" }, "path": { "description": "JSON-Pointer-style path. Pattern segments enable bulk fixes:\n* (any child), ** (any depth), [key=value] (filter), e.g.\n/paths/**/parameters/[name=account_id]/schema/type. Renaming a\nschema under /components/schemas also rewrites its $refs.", "type": "string" }, "value": { "description": "set only; the replacement value." }, "to": { "description": "rename only; the new key name.", "type": ["string", "null"] }, "reason": { "type": ["string", "null"] } }, "type": "object" }, "type": "array" }, "graphql": { "anyOf": [{ "description": "What a GraphQL schema cannot say about itself. Ignored for OpenAPI specs.", "properties": { "endpoint": { "format": "uri", "description": "The URL every request is POSTed to; the generated client's default baseUrl. Defaults to the URL the schema was fetched from. Without either, baseUrl is a required client option.", "type": "string" }, "environments": { "description": "Named endpoints (sandbox, production). Each becomes a client environment; the first is the default unless endpoint is set.", "maxItems": 10, "items": { "type": "object" }, "type": "array" }, "auth": { "enum": ["bearer", "basic", "api_key", "none"], "description": "How requests authenticate. bearer sends Authorization: Bearer; basic is for key-pair APIs (public key as username, private key as password); api_key sends a header named by api_key_header; none generates no auth option.", "default": "bearer", "type": "string" }, "api_key_header": { "description": "Header carrying the key when auth is api_key. Required for that mode; Typeship does not invent a vendor-specific header name.", "type": "string" }, "title": { "description": "The API's name; drives the package and client names (\"Acme\" gives acme and AcmeClient). Defaults to a name derived from the endpoint's host.", "maxLength": 80, "type": "string" }, "scalars": { "description": "JSON representation of each custom scalar, keyed by GraphQL scalar name. Unmapped scalars generate as the language's untyped JSON value and produce a warning. Unmatched keys warn.", "additionalProperties": { "enum": ["string", "integer", "number", "boolean", "json"], "type": "string" }, "type": "object" } }, "type": "object" }, { "type": "null" }] }, "diagnostic_policy": { "description": "Source pull-request enforcement threshold, new-versus-complete baseline, and explicitly reviewed rule or location exceptions.", "properties": { "fail_on": { "enum": ["never", "error", "warning"], "description": "Severity threshold that fails the API change review check.", "default": "error", "type": "string" }, "only_new": { "description": "Enforce only occurrences introduced by the proposed source change.", "default": true, "type": "boolean" }, "suppressions": { "default": [], "maxItems": 100, "items": { "properties": { "rule_id": { "maxLength": 160, "type": "string" }, "path": { "description": "Exact schema coordinate. Omit only to suppress every occurrence of the rule.", "maxLength": 4096, "type": "string" }, "reason": { "description": "The reviewed product decision behind this exception.", "minLength": 1, "maxLength": 500, "type": "string" } }, "type": "object" }, "type": "array" } }, "type": "object" }, "latest_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
17
17
  { "resource": "definitions", "method": "update", "command": ["definitions", "update"], "tool": "definitions_update", "httpMethod": "PATCH", "path": "/definitions/{definition_id}", "summary": "Update and resolve a Definition", "description": "Resolves the complete document graph and records a new immutable revision before saving.", "toolDescription": "Update and resolve a Definition. Resolves the complete document graph and records a new immutable revision before saving. PATCH /definitions/{definition_id}", "paginated": false, "hasBody": true, "bodyStyle": "fields", "bodyKind": "json", "sse": false, "hasParams": true, "select": false, "idempotent": false, "idempotencyHeader": "Idempotency-Key", "auth": "required", "security": [{ "apiKey": [] }], "safety": "write", "params": [{ "name": "definition_id", "ts": "definitionId", "kind": "path", "type": "string", "required": true, "flag": "definition-id" }, { "name": "source", "ts": "source", "kind": "body", "type": "json", "required": false, "flag": "source" }, { "name": "patches", "ts": "patches", "kind": "body", "type": "array", "required": false, "items": { "type": "object" }, "flag": "patches" }, { "name": "graphql", "ts": "graphql", "kind": "body", "type": "json", "required": false, "flag": "graphql" }, { "name": "diagnostic_policy", "ts": "diagnostic_policy", "kind": "body", "type": "object", "required": false, "description": "Source pull-request enforcement threshold, new-versus-complete baseline, and explicitly reviewed rule or location exceptions.", "flag": "diagnostic-policy" }, { "name": "Idempotency-Key", "ts": "idempotencyKey", "kind": "header", "type": "string", "required": false, "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write.", "flag": "idempotency-key" }], "inputSchema": { "type": "object", "properties": { "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "Idempotency-Key": { "minLength": 1, "maxLength": 255, "pattern": "^[!-~]+$", "type": "string", "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write." }, "source": { "anyOf": [{ "properties": { "kind": { "const": "url", "type": "string" }, "url": { "format": "uri", "description": "URL of an OpenAPI document, GraphQL SDL file, or GraphQL endpoint.", "maxLength": 2048, "pattern": "^https?://", "type": "string" }, "headers": { "description": "Request headers for a protected URL. Values are never returned or recorded in revision history. When updating the same URL, omit headers to preserve the stored values or pass null to remove them. Changing the URL without headers clears the old values so a credential is never forwarded to a different source.", "anyOf": [{ "additionalProperties": { "maxLength": 4096, "type": "string" }, "type": "object" }, { "type": "null" }] } }, "required": ["kind", "url"], "additionalProperties": false, "type": "object" }, { "properties": { "kind": { "const": "repository", "type": "string" }, "repository": { "properties": { "provider": { "enum": ["github"], "description": "GitHub is the only launch provider; the field is stable for future adapters.", "type": "string" }, "identifier": { "description": "Provider-native repository identity, opaque outside its adapter.", "examples": ["acme/payments-api"], "maxLength": 512, "type": "string" } }, "required": ["provider", "identifier"], "additionalProperties": false, "type": "object" }, "path": { "description": "Repository-relative Definition entrypoint.", "minLength": 1, "maxLength": 4096, "pattern": "^(?!/)(?!.*\\.\\.).+$", "type": "string" } }, "required": ["kind", "repository", "path"], "additionalProperties": false, "type": "object" }] }, "patches": { "maxItems": 50, "items": { "description": "A fix applied to the resolved Definition before generation. Paths are JSON\nPointers into the document. A patch whose target no longer exists is\nskipped and reported as a warning on the generation, never silently.", "examples": [{ "op": "remove", "path": "/components/schemas/Legacy" }], "properties": { "op": { "enum": ["set", "append", "remove", "rename"], "type": "string" }, "path": { "description": "JSON-Pointer-style path. Pattern segments enable bulk fixes:\n* (any child), ** (any depth), [key=value] (filter), e.g.\n/paths/**/parameters/[name=account_id]/schema/type. Renaming a\nschema under /components/schemas also rewrites its $refs.", "type": "string" }, "value": { "description": "set only; the replacement value." }, "to": { "description": "rename only; the new key name.", "type": ["string", "null"] }, "reason": { "type": ["string", "null"] } }, "required": ["op", "path"], "additionalProperties": false, "type": "object" }, "type": "array" }, "graphql": { "anyOf": [{ "description": "What a GraphQL schema cannot say about itself. Ignored for OpenAPI specs.", "properties": { "endpoint": { "format": "uri", "description": "The URL every request is POSTed to; the generated client's default baseUrl. Defaults to the URL the schema was fetched from. Without either, baseUrl is a required client option.", "type": "string" }, "environments": { "description": "Named endpoints (sandbox, production). Each becomes a client environment; the first is the default unless endpoint is set.", "maxItems": 10, "items": { "properties": { "name": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": ["name", "url"], "additionalProperties": false, "type": "object" }, "type": "array" }, "auth": { "enum": ["bearer", "basic", "api_key", "none"], "description": "How requests authenticate. bearer sends Authorization: Bearer; basic is for key-pair APIs (public key as username, private key as password); api_key sends a header named by api_key_header; none generates no auth option.", "default": "bearer", "type": "string" }, "api_key_header": { "description": "Header carrying the key when auth is api_key. Required for that mode; Typeship does not invent a vendor-specific header name.", "type": "string" }, "title": { "description": "The API's name; drives the package and client names (\"Acme\" gives acme and AcmeClient). Defaults to a name derived from the endpoint's host.", "maxLength": 80, "type": "string" }, "scalars": { "description": "JSON representation of each custom scalar, keyed by GraphQL scalar name. Unmapped scalars generate as the language's untyped JSON value and produce a warning. Unmatched keys warn.", "additionalProperties": { "enum": ["string", "integer", "number", "boolean", "json"], "type": "string" }, "type": "object" } }, "additionalProperties": false, "type": "object" }, { "type": "null" }] }, "diagnostic_policy": { "description": "Source pull-request enforcement threshold, new-versus-complete baseline, and explicitly reviewed rule or location exceptions.", "properties": { "fail_on": { "enum": ["never", "error", "warning"], "description": "Severity threshold that fails the API change review check.", "default": "error", "type": "string" }, "only_new": { "description": "Enforce only occurrences introduced by the proposed source change.", "default": true, "type": "boolean" }, "suppressions": { "default": [], "maxItems": 100, "items": { "properties": { "rule_id": { "maxLength": 160, "type": "string" }, "path": { "description": "Exact schema coordinate. Omit only to suppress every occurrence of the rule.", "maxLength": 4096, "type": "string" }, "reason": { "description": "The reviewed product decision behind this exception.", "minLength": 1, "maxLength": 500, "type": "string" } }, "required": ["rule_id", "reason"], "additionalProperties": false, "type": "object" }, "type": "array" } }, "required": ["fail_on", "only_new", "suppressions"], "additionalProperties": false, "type": "object" } }, "required": ["definition_id"] }, "exampleArguments": { "definition_id": "def_2p8m4q7k1v9d6h3c" }, "outputSchema": { "properties": { "id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "definition", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "source": { "description": "The single source of truth for where a Project's Definition lives.", "anyOf": [{ "properties": { "kind": { "const": "url", "type": "string" }, "url": { "format": "uri", "description": "URL fetched for every generation.", "maxLength": 2048, "pattern": "^https?://", "type": "string" }, "headers_configured": { "description": "Whether Typeship has stored write-only request headers for this URL.", "type": "boolean" } }, "type": "object" }, { "properties": { "kind": { "const": "repository", "type": "string" }, "repository": { "properties": { "provider": { "enum": ["github"], "description": "GitHub is the only launch provider; the field is stable for future adapters.", "type": "string" }, "identifier": { "description": "Provider-native repository identity, opaque outside its adapter.", "examples": ["acme/payments-api"], "maxLength": 512, "type": "string" } }, "type": "object" }, "path": { "description": "Repository-relative Definition entrypoint.", "minLength": 1, "maxLength": 4096, "pattern": "^(?!/)(?!.*\\.\\.).+$", "type": "string" } }, "type": "object" }] }, "format": { "enum": ["openapi", "graphql", null], "type": ["string", "null"] }, "patches": { "items": { "description": "A fix applied to the resolved Definition before generation. Paths are JSON\nPointers into the document. A patch whose target no longer exists is\nskipped and reported as a warning on the generation, never silently.", "examples": [{ "op": "remove", "path": "/components/schemas/Legacy" }], "properties": { "op": { "enum": ["set", "append", "remove", "rename"], "type": "string" }, "path": { "description": "JSON-Pointer-style path. Pattern segments enable bulk fixes:\n* (any child), ** (any depth), [key=value] (filter), e.g.\n/paths/**/parameters/[name=account_id]/schema/type. Renaming a\nschema under /components/schemas also rewrites its $refs.", "type": "string" }, "value": { "description": "set only; the replacement value." }, "to": { "description": "rename only; the new key name.", "type": ["string", "null"] }, "reason": { "type": ["string", "null"] } }, "type": "object" }, "type": "array" }, "graphql": { "anyOf": [{ "description": "What a GraphQL schema cannot say about itself. Ignored for OpenAPI specs.", "properties": { "endpoint": { "format": "uri", "description": "The URL every request is POSTed to; the generated client's default baseUrl. Defaults to the URL the schema was fetched from. Without either, baseUrl is a required client option.", "type": "string" }, "environments": { "description": "Named endpoints (sandbox, production). Each becomes a client environment; the first is the default unless endpoint is set.", "maxItems": 10, "items": { "type": "object" }, "type": "array" }, "auth": { "enum": ["bearer", "basic", "api_key", "none"], "description": "How requests authenticate. bearer sends Authorization: Bearer; basic is for key-pair APIs (public key as username, private key as password); api_key sends a header named by api_key_header; none generates no auth option.", "default": "bearer", "type": "string" }, "api_key_header": { "description": "Header carrying the key when auth is api_key. Required for that mode; Typeship does not invent a vendor-specific header name.", "type": "string" }, "title": { "description": "The API's name; drives the package and client names (\"Acme\" gives acme and AcmeClient). Defaults to a name derived from the endpoint's host.", "maxLength": 80, "type": "string" }, "scalars": { "description": "JSON representation of each custom scalar, keyed by GraphQL scalar name. Unmapped scalars generate as the language's untyped JSON value and produce a warning. Unmatched keys warn.", "additionalProperties": { "enum": ["string", "integer", "number", "boolean", "json"], "type": "string" }, "type": "object" } }, "type": "object" }, { "type": "null" }] }, "diagnostic_policy": { "description": "Source pull-request enforcement threshold, new-versus-complete baseline, and explicitly reviewed rule or location exceptions.", "properties": { "fail_on": { "enum": ["never", "error", "warning"], "description": "Severity threshold that fails the API change review check.", "default": "error", "type": "string" }, "only_new": { "description": "Enforce only occurrences introduced by the proposed source change.", "default": true, "type": "boolean" }, "suppressions": { "default": [], "maxItems": 100, "items": { "properties": { "rule_id": { "maxLength": 160, "type": "string" }, "path": { "description": "Exact schema coordinate. Omit only to suppress every occurrence of the rule.", "maxLength": 4096, "type": "string" }, "reason": { "description": "The reviewed product decision behind this exception.", "minLength": 1, "maxLength": 500, "type": "string" } }, "type": "object" }, "type": "array" } }, "type": "object" }, "latest_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
18
- { "resource": "targets", "method": "list", "command": ["targets", "list"], "tool": "targets_list", "httpMethod": "GET", "path": "/projects/{project_id}/targets", "summary": "List a project's Targets", "toolDescription": "List a project's Targets. GET /projects/{project_id}/targets (paginated: returns one page plus hasMore and nextPage arguments)", "paginated": true, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": true, "select": false, "idempotent": true, "pagination": { "style": "cursor", "itemsField": "data", "cursorParam": "cursor", "nextCursorField": "next_cursor", "hasMoreField": "has_more", "limitParam": "limit" }, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }, { "name": "limit", "ts": "limit", "kind": "query", "type": "number", "required": false, "description": "Maximum number of resources to return. Default: 20.", "flag": "limit" }, { "name": "cursor", "ts": "cursor", "kind": "query", "type": "string", "required": false, "description": "Opaque cursor from the preceding page's next_cursor. Valid only for the same account, operation, filters, and ordering that issued it.", "flag": "cursor" }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" }, "limit": { "default": 20, "minimum": 1, "maximum": 100, "type": "integer", "description": "Maximum number of resources to return. Default: 20." }, "cursor": { "type": "string", "description": "Opaque cursor from the preceding page's next_cursor. Valid only for the same account, operation, filters, and ordering that issued it." } }, "required": ["project_id"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n" }, "outputSchema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "name": { "type": "string" }, "generator": { "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target. This is configuration, not identity; several Targets may use the same generator.", "type": "string" }, "state": { "enum": ["active", "disabled"], "type": "string" }, "edition": { "type": "string" }, "release_channel": { "enum": ["stable", "prerelease"], "type": "string" }, "version_policy": { "properties": { "mode": { "const": "reviewed_semver", "type": "string" }, "pre1_breaking": { "const": "minor", "type": "string" } }, "type": "object" }, "current_version": { "type": "string" }, "proposed_version": { "type": ["string", "null"] }, "config": { "description": "Target-specific overrides merged over Project.config. GraphQL settings are Definition-owned and never appear here.", "anyOf": [{ "description": "Target-specific generation and delivery overrides. Authentication may only select a Project-owned OAuth application. OAuth server metadata, applications, and identity policy remain Project-owned. Self-hosted MCP access may be overridden for a Target-specific deployment.", "properties": { "globals": { "maxItems": 20, "type": "array" }, "retries": { "description": "Retry behavior. Top-level fields adjust every operation; operations maps operationId or \"METHOD /path\" keys to per-operation overrides.", "type": "object" }, "pagination": { "type": "object" }, "auth": { "description": "Selects a Project OAuth application for one Target. OAuth server metadata, applications, and identity policy remain Project-owned.", "type": "object" }, "cli": { "description": "How the generated CLI behaves. Part of Config.", "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave. Part of Config.", "type": "object" }, "readme": { "description": "Generated README behavior. Part of Config.", "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own. Repository is derived from each destination.", "type": "object" }, "docs_url": { "format": "uri", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "type": ["string", "null"] } }, "type": "object" }, { "type": "null" }] }, "deliveries": { "description": "At most one repository and one hosted MCP Delivery.", "maxItems": 2, "items": { "anyOf": [{ "type": "object" }, { "type": "object" }] }, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" } }, "hasMore": { "type": "boolean", "description": "Whether another page exists" }, "nextPage": { "type": "object", "description": "Arguments that fetch the next page; pass them to this tool", "additionalProperties": true }, "truncated": { "type": "object", "description": "Present when the page was cut to fit the result size cap: how many items were omitted and how to get them", "additionalProperties": true } } }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
19
- { "resource": "targets", "method": "create", "command": ["targets", "create"], "tool": "targets_create", "httpMethod": "POST", "path": "/projects/{project_id}/targets", "summary": "Create an independently configured Target", "description": "Several Targets may use the same generator with distinct configuration, Deliveries, and release streams.", "toolDescription": "Create an independently configured Target. Several Targets may use the same generator with distinct configuration, Deliveries, and release streams. POST /projects/{project_id}/targets", "paginated": false, "hasBody": true, "bodyStyle": "fields", "bodyKind": "json", "sse": false, "hasParams": true, "select": false, "idempotent": false, "idempotencyHeader": "Idempotency-Key", "auth": "required", "security": [{ "apiKey": [] }], "safety": "write", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }, { "name": "name", "ts": "name", "kind": "body", "type": "string", "required": true, "flag": "name" }, { "name": "definition_id", "ts": "definition_id", "kind": "body", "type": "string", "required": true, "description": "Unique identifier for a project's logical API Definition.", "flag": "definition-id" }, { "name": "generator", "ts": "generator", "kind": "body", "type": "string", "required": true, "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target. This is configuration, not identity; several Targets may use the same generator.", "flag": "generator" }, { "name": "state", "ts": "state", "kind": "body", "type": "string", "required": false, "enum": ["active", "disabled"], "description": "Default: \"active\".", "flag": "state" }, { "name": "edition", "ts": "edition", "kind": "body", "type": "string", "required": false, "description": "Default: \"2026-08-24\".", "flag": "edition" }, { "name": "release_channel", "ts": "release_channel", "kind": "body", "type": "string", "required": false, "enum": ["stable", "prerelease"], "description": "Default: \"stable\".", "flag": "release-channel" }, { "name": "proposed_version", "ts": "proposed_version", "kind": "body", "type": "string", "required": false, "description": "Optional larger or prerelease SemVer for the next reviewed release.", "flag": "proposed-version" }, { "name": "config", "ts": "config", "kind": "body", "type": "json", "required": false, "description": "Target-specific overrides merged over Project.config. GraphQL settings are rejected here and belong to the Definition.", "flag": "config" }, { "name": "deliveries", "ts": "deliveries", "kind": "body", "type": "array", "required": false, "items": { "type": "json" }, "flag": "deliveries" }, { "name": "Idempotency-Key", "ts": "idempotencyKey", "kind": "header", "type": "string", "required": false, "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write.", "flag": "idempotency-key" }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" }, "Idempotency-Key": { "minLength": 1, "maxLength": 255, "pattern": "^[!-~]+$", "type": "string", "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write." }, "name": { "minLength": 1, "maxLength": 80, "type": "string" }, "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "generator": { "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target. This is configuration, not identity; several Targets may use the same generator.", "type": "string" }, "state": { "enum": ["active", "disabled"], "default": "active", "type": "string", "description": "Default: \"active\"." }, "edition": { "default": "2026-08-24", "type": "string", "description": "Default: \"2026-08-24\"." }, "release_channel": { "enum": ["stable", "prerelease"], "default": "stable", "type": "string", "description": "Default: \"stable\"." }, "proposed_version": { "description": "Optional larger or prerelease SemVer for the next reviewed release.", "type": ["string", "null"] }, "config": { "description": "Target-specific overrides merged over Project.config. GraphQL settings are rejected here and belong to the Definition.", "anyOf": [{ "description": "Target-specific generation and delivery overrides. Authentication may only select a Project-owned OAuth application. OAuth server metadata, applications, and identity policy remain Project-owned. Self-hosted MCP access may be overridden for a Target-specific deployment.", "properties": { "globals": { "maxItems": 20, "items": { "type": "string" }, "type": "array" }, "retries": { "description": "Retry behavior. Top-level fields adjust every operation; operations maps operationId or \"METHOD /path\" keys to per-operation overrides.", "properties": { "max_retries": { "minimum": 0, "maximum": 10, "type": "integer" }, "statuses": { "description": "Replaces the default retryable set (408, 429, 500, 502, 503, 504).", "maxItems": 20, "items": { "type": "integer" }, "type": "array" }, "initial_delay_ms": { "minimum": 1, "type": "integer" }, "max_delay_ms": { "minimum": 1, "type": "integer" }, "retry_non_idempotent": { "description": "Also retry non-idempotent methods (POST/PATCH).", "type": "boolean" }, "disabled": { "description": "Shorthand for max_retries 0.", "type": "boolean" }, "operations": { "additionalProperties": { "description": "RetryTuning (recursive)" }, "type": "object" } }, "additionalProperties": false, "type": "object" }, "pagination": { "additionalProperties": { "anyOf": [{ "type": "object" }, { "type": "boolean" }] }, "type": "object" }, "auth": { "description": "Selects a Project OAuth application for one Target. OAuth server metadata, applications, and identity policy remain Project-owned.", "properties": { "oauth_application": { "description": "Project OAuth application to use. Omit to inherit the Project default.", "maxLength": 64, "pattern": "^[a-z][a-z0-9_-]{0,63}$", "type": ["string", "null"] }, "environments": { "description": "Project OAuth application selections keyed by API environment.", "additionalProperties": { "type": "object" }, "type": ["object", "null"] } }, "additionalProperties": false, "type": "object" }, "cli": { "description": "How the generated CLI behaves. Part of Config.", "properties": { "command_name": { "description": "Command users run, independent of how the CLI is distributed.", "type": ["string", "null"] }, "update_notice": { "description": "Opt in to a once-a-day registry check that prints an upgrade hint. Off by default; generated code phones nobody unless this is enabled.", "type": "boolean" }, "support_url": { "description": "Where the generated CLI's feedback command sends users. GitHub issues/new URLs get a prefilled title and environment details.", "type": ["string", "null"] }, "mcp_url": { "description": "Hosted MCP endpoint installed by the generated CLI instead of launching the package's local stdio server.", "type": ["string", "null"] }, "skills_repo": { "description": "GitHub owner/name of the skills package the generated CLI offers to install during init.", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave. Part of Config.", "properties": { "registry_name": { "description": "Stable official MCP registry name, independent of the server runtime.", "type": ["string", "null"] }, "access": { "description": "Authorization for callers connecting to a generated MCP server deployed over HTTP. The hosting application resolves upstream API credentials separately at runtime. This setting does not apply to the Typeship-hosted endpoint.", "properties": { "issuer": { "format": "uri", "description": "Exact issuer allowed to sign MCP connection tokens.", "type": "string" }, "resource": { "format": "uri", "description": "Canonical public URL of the self-hosted MCP endpoint that connection tokens must target.", "type": "string" }, "jwks_url": { "format": "uri", "description": "Public signing-key endpoint. Omit to discover it from the issuer.", "type": "string" }, "scopes": { "description": "Minimum scopes required to connect to the self-hosted MCP server.", "maxItems": 20, "type": "array" } }, "required": ["issuer", "resource"], "additionalProperties": false, "type": "object" }, "tool_mode": { "enum": ["auto", "operations", "meta"], "description": "MCP tool shape. meta collapses per-operation tools into search_docs, read_docs, and execute so large APIs don't flood an agent's context window. Auto considers the serialized tool schemas, switching near 10k tokens or above 100 operations.", "type": "string" }, "instructions": { "description": "Guidance appended to the MCP server's instructions, which agents read once when they connect (server/discover): what to call first, conventions the spec does not state, what not to do. Carried by the package's server and the hosted endpoint alike.", "maxLength": 2000, "type": ["string", "null"] }, "tool_descriptions": { "description": "Hand-written MCP tool descriptions keyed by operationId or \"METHOD /path\". Each replaces the text typeship derives for that operation (summary, first sentence, method and path, deprecation and auth notes). For flows the spec cannot describe, such as a multi-step upload. Keys that match no operation are reported as generation warnings.", "additionalProperties": { "maxLength": 600, "type": "string" }, "type": "object" }, "reference_resolvers": { "description": "Exact name-or-ID resolver overrides keyed first by the target operationId or \"METHOD /path\", then by its wire argument name. A resolver names one read collection operation plus 1-4 item fields to match case-insensitively; false opts that argument out of strict inference.", "additionalProperties": { "type": "object" }, "type": "object" } }, "additionalProperties": false, "type": "object" }, "readme": { "description": "Generated README behavior. Part of Config.", "properties": { "quickstart_operation": { "description": "operationId or \"METHOD /path\" to feature as the README's first API call. It must be present in the generated package and callable with no required input beyond path placeholders. Missing or unsuitable choices produce a warning and use the automatic example.", "maxLength": 500, "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own. Repository is derived from each destination.", "properties": { "homepage": { "description": "Homepage written into registry metadata.", "type": ["string", "null"] }, "license": { "description": "SPDX identifier written into registry metadata. Defaults to info.license.", "maxLength": 200, "type": ["string", "null"] }, "license_text": { "description": "Exact LICENSE file contents. Supply this for licences the engine does not build in; MIT is built in when copyright is also set.", "maxLength": 100000, "type": ["string", "null"] }, "copyright": { "description": "Copyright line used in generated license files.", "maxLength": 200, "type": ["string", "null"] }, "go_package_name": { "description": "Go identifier when the destination repository name is unsuitable.", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "docs_url": { "format": "uri", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, { "type": "null" }] }, "deliveries": { "maxItems": 2, "items": { "anyOf": [{ "properties": { "kind": { "const": "repository", "type": "string" }, "repository": { "properties": { "provider": { "enum": ["github"], "description": "GitHub is the only launch provider; the field is stable for future adapters.", "type": "string" }, "identifier": { "description": "Provider-native repository identity, opaque outside its adapter.", "examples": ["acme/payments-api"], "maxLength": 512, "type": "string" } }, "required": ["provider", "identifier"], "additionalProperties": false, "type": "object" }, "directory": { "type": ["string", "null"] }, "package_name": { "description": "npm or Python registry identity where applicable.", "type": ["string", "null"] }, "module_path": { "description": "Explicit Go module path where applicable.", "type": ["string", "null"] } }, "required": ["kind", "repository"], "additionalProperties": false, "type": "object" }, { "properties": { "kind": { "const": "hosted_mcp", "type": "string" } }, "required": ["kind"], "additionalProperties": false, "type": "object" }] }, "type": "array" } }, "required": ["project_id", "name", "definition_id", "generator"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n", "name": "example", "definition_id": "def_2p8m4q7k1v9d6h3c", "generator": "typescript-sdk" }, "outputSchema": { "properties": { "id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "name": { "type": "string" }, "generator": { "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target.", "type": "string" }, "state": { "enum": ["active", "disabled"], "type": "string" }, "edition": { "type": "string" }, "release_channel": { "enum": ["stable", "prerelease"], "type": "string" }, "version_policy": { "properties": { "mode": { "const": "reviewed_semver", "type": "string" }, "pre1_breaking": { "const": "minor", "type": "string" } }, "type": "object" }, "current_version": { "type": "string" }, "proposed_version": { "type": ["string", "null"] }, "config": { "description": "Target-specific overrides merged over Project.config.", "anyOf": [{ "description": "Target-specific generation and delivery overrides.", "properties": { "globals": { "maxItems": 20, "type": "array" }, "retries": { "description": "Retry behavior.", "type": "object" }, "pagination": { "type": "object" }, "auth": { "description": "Selects a Project OAuth application for one Target.", "type": "object" }, "cli": { "description": "How the generated CLI behaves.", "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave.", "type": "object" }, "readme": { "description": "Generated README behavior.", "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own.", "type": "object" }, "docs_url": { "format": "uri", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "type": ["string", "null"] } }, "type": "object" }, { "type": "null" }] }, "deliveries": { "description": "At most one repository and one hosted MCP Delivery.", "maxItems": 2, "items": { "anyOf": [{ "type": "object" }, { "type": "object" }] }, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
20
- { "resource": "targets", "method": "retrieve", "command": ["targets", "retrieve"], "tool": "targets_retrieve", "httpMethod": "GET", "path": "/targets/{target_id}", "summary": "Retrieve a Target", "toolDescription": "Retrieve a Target. GET /targets/{target_id}", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": false, "select": false, "idempotent": true, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "target_id", "ts": "targetId", "kind": "path", "type": "string", "required": true, "flag": "target-id" }], "inputSchema": { "type": "object", "properties": { "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" } }, "required": ["target_id"] }, "exampleArguments": { "target_id": "tgt_5m8q2v7k1p9d4h6c" }, "outputSchema": { "properties": { "id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "name": { "type": "string" }, "generator": { "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target.", "type": "string" }, "state": { "enum": ["active", "disabled"], "type": "string" }, "edition": { "type": "string" }, "release_channel": { "enum": ["stable", "prerelease"], "type": "string" }, "version_policy": { "properties": { "mode": { "const": "reviewed_semver", "type": "string" }, "pre1_breaking": { "const": "minor", "type": "string" } }, "type": "object" }, "current_version": { "type": "string" }, "proposed_version": { "type": ["string", "null"] }, "config": { "description": "Target-specific overrides merged over Project.config.", "anyOf": [{ "description": "Target-specific generation and delivery overrides.", "properties": { "globals": { "maxItems": 20, "type": "array" }, "retries": { "description": "Retry behavior.", "type": "object" }, "pagination": { "type": "object" }, "auth": { "description": "Selects a Project OAuth application for one Target.", "type": "object" }, "cli": { "description": "How the generated CLI behaves.", "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave.", "type": "object" }, "readme": { "description": "Generated README behavior.", "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own.", "type": "object" }, "docs_url": { "format": "uri", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "type": ["string", "null"] } }, "type": "object" }, { "type": "null" }] }, "deliveries": { "description": "At most one repository and one hosted MCP Delivery.", "maxItems": 2, "items": { "anyOf": [{ "type": "object" }, { "type": "object" }] }, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
18
+ { "resource": "targets", "method": "list", "command": ["targets", "list"], "tool": "targets_list", "httpMethod": "GET", "path": "/projects/{project_id}/targets", "summary": "List a project's Targets", "toolDescription": "List a project's Targets. GET /projects/{project_id}/targets (paginated: returns one page plus hasMore and nextPage arguments)", "paginated": true, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": true, "select": false, "idempotent": true, "pagination": { "style": "cursor", "itemsField": "data", "cursorParam": "cursor", "nextCursorField": "next_cursor", "hasMoreField": "has_more", "limitParam": "limit" }, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }, { "name": "limit", "ts": "limit", "kind": "query", "type": "number", "required": false, "description": "Maximum number of resources to return. Default: 20.", "flag": "limit" }, { "name": "cursor", "ts": "cursor", "kind": "query", "type": "string", "required": false, "description": "Opaque cursor from the preceding page's next_cursor. Valid only for the same account, operation, filters, and ordering that issued it.", "flag": "cursor" }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" }, "limit": { "default": 20, "minimum": 1, "maximum": 100, "type": "integer", "description": "Maximum number of resources to return. Default: 20." }, "cursor": { "type": "string", "description": "Opaque cursor from the preceding page's next_cursor. Valid only for the same account, operation, filters, and ordering that issued it." } }, "required": ["project_id"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n" }, "outputSchema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "name": { "type": "string" }, "generator": { "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target. This is configuration, not identity; several Targets may use the same generator.", "type": "string" }, "state": { "enum": ["active", "disabled"], "type": "string" }, "edition": { "type": "string" }, "release_channel": { "enum": ["stable", "prerelease"], "type": "string" }, "version_policy": { "properties": { "mode": { "const": "reviewed_semver", "type": "string" }, "pre1_breaking": { "const": "minor", "type": "string" } }, "type": "object" }, "current_version": { "description": "Deprecated projection of the newest immutable Target Release; null until a release becomes Current.", "deprecated": true, "type": ["string", "null"] }, "proposed_version": { "type": ["string", "null"] }, "proposed_version_source": { "enum": ["console", "api", "github", null], "type": ["string", "null"] }, "proposed_version_actor": { "type": ["string", "null"] }, "release_revision": { "description": "Optimistic concurrency revision for Draft selections.", "minimum": 0, "type": "integer" }, "config": { "description": "Target-specific overrides merged over Project.config. GraphQL settings are Definition-owned and never appear here.", "anyOf": [{ "description": "Target-specific generation and delivery overrides. Authentication may only select a Project-owned OAuth application. OAuth server metadata, applications, and identity policy remain Project-owned. Self-hosted MCP access may be overridden for a Target-specific deployment.", "properties": { "globals": { "maxItems": 20, "type": "array" }, "retries": { "description": "Retry behavior. Top-level fields adjust every operation; operations maps operationId or \"METHOD /path\" keys to per-operation overrides.", "type": "object" }, "pagination": { "type": "object" }, "auth": { "description": "Selects a Project OAuth application for one Target. OAuth server metadata, applications, and identity policy remain Project-owned.", "type": "object" }, "cli": { "description": "How the generated CLI behaves. Part of Config.", "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave. Part of Config.", "type": "object" }, "readme": { "description": "Generated README behavior. Part of Config.", "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own. Repository is derived from each destination.", "type": "object" }, "docs_url": { "format": "uri", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "type": ["string", "null"] } }, "type": "object" }, { "type": "null" }] }, "deliveries": { "description": "At most one repository and one hosted MCP Delivery.", "maxItems": 2, "items": { "anyOf": [{ "type": "object" }, { "type": "object" }] }, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" } }, "hasMore": { "type": "boolean", "description": "Whether another page exists" }, "nextPage": { "type": "object", "description": "Arguments that fetch the next page; pass them to this tool", "additionalProperties": true }, "truncated": { "type": "object", "description": "Present when the page was cut to fit the result size cap: how many items were omitted and how to get them", "additionalProperties": true } } }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
19
+ { "resource": "targets", "method": "create", "command": ["targets", "create"], "tool": "targets_create", "httpMethod": "POST", "path": "/projects/{project_id}/targets", "summary": "Create an independently configured Target", "description": "Several Targets may use the same generator with distinct configuration, Deliveries, and release streams.", "toolDescription": "Create an independently configured Target. Several Targets may use the same generator with distinct configuration, Deliveries, and release streams. POST /projects/{project_id}/targets", "paginated": false, "hasBody": true, "bodyStyle": "fields", "bodyKind": "json", "sse": false, "hasParams": true, "select": false, "idempotent": false, "idempotencyHeader": "Idempotency-Key", "auth": "required", "security": [{ "apiKey": [] }], "safety": "write", "params": [{ "name": "project_id", "ts": "projectId", "kind": "path", "type": "string", "required": true, "description": "Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "flag": "project-id", "resolve": { "via": "projects_list", "match": ["name"], "id": "id", "idPattern": "^prj_[a-z0-9]{16}$", "inferred": true } }, { "name": "name", "ts": "name", "kind": "body", "type": "string", "required": true, "flag": "name" }, { "name": "definition_id", "ts": "definition_id", "kind": "body", "type": "string", "required": true, "description": "Unique identifier for a project's logical API Definition.", "flag": "definition-id" }, { "name": "generator", "ts": "generator", "kind": "body", "type": "string", "required": true, "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target. This is configuration, not identity; several Targets may use the same generator.", "flag": "generator" }, { "name": "state", "ts": "state", "kind": "body", "type": "string", "required": false, "enum": ["active", "disabled"], "description": "Default: \"active\".", "flag": "state" }, { "name": "edition", "ts": "edition", "kind": "body", "type": "string", "required": false, "description": "Default: \"2026-08-24\".", "flag": "edition" }, { "name": "release_channel", "ts": "release_channel", "kind": "body", "type": "string", "required": false, "enum": ["stable", "prerelease"], "description": "Default: \"stable\".", "flag": "release-channel" }, { "name": "proposed_version", "ts": "proposed_version", "kind": "body", "type": "string", "required": false, "description": "Optional larger or prerelease SemVer for the next reviewed release.", "flag": "proposed-version" }, { "name": "config", "ts": "config", "kind": "body", "type": "json", "required": false, "description": "Target-specific overrides merged over Project.config. GraphQL settings are rejected here and belong to the Definition.", "flag": "config" }, { "name": "deliveries", "ts": "deliveries", "kind": "body", "type": "array", "required": false, "items": { "type": "json" }, "flag": "deliveries" }, { "name": "Idempotency-Key", "ts": "idempotencyKey", "kind": "header", "type": "string", "required": false, "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write.", "flag": "idempotency-key" }], "inputSchema": { "type": "object", "properties": { "project_id": { "description": "Unique identifier for a project. Accepts an ID or an exact name (resolved via projects_list). IDs come from projects_list.", "examples": ["example-name", "prj_4f8k2m7x9q1v6b3n"], "type": "string" }, "Idempotency-Key": { "minLength": 1, "maxLength": 255, "pattern": "^[!-~]+$", "type": "string", "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write." }, "name": { "minLength": 1, "maxLength": 80, "type": "string" }, "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "generator": { "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target. This is configuration, not identity; several Targets may use the same generator.", "type": "string" }, "state": { "enum": ["active", "disabled"], "default": "active", "type": "string", "description": "Default: \"active\"." }, "edition": { "default": "2026-08-24", "type": "string", "description": "Default: \"2026-08-24\"." }, "release_channel": { "enum": ["stable", "prerelease"], "default": "stable", "type": "string", "description": "Default: \"stable\"." }, "proposed_version": { "description": "Optional larger or prerelease SemVer for the next reviewed release.", "type": ["string", "null"] }, "config": { "description": "Target-specific overrides merged over Project.config. GraphQL settings are rejected here and belong to the Definition.", "anyOf": [{ "description": "Target-specific generation and delivery overrides. Authentication may only select a Project-owned OAuth application. OAuth server metadata, applications, and identity policy remain Project-owned. Self-hosted MCP access may be overridden for a Target-specific deployment.", "properties": { "globals": { "maxItems": 20, "items": { "type": "string" }, "type": "array" }, "retries": { "description": "Retry behavior. Top-level fields adjust every operation; operations maps operationId or \"METHOD /path\" keys to per-operation overrides.", "properties": { "max_retries": { "minimum": 0, "maximum": 10, "type": "integer" }, "statuses": { "description": "Replaces the default retryable set (408, 429, 500, 502, 503, 504).", "maxItems": 20, "items": { "type": "integer" }, "type": "array" }, "initial_delay_ms": { "minimum": 1, "type": "integer" }, "max_delay_ms": { "minimum": 1, "type": "integer" }, "retry_non_idempotent": { "description": "Also retry non-idempotent methods (POST/PATCH).", "type": "boolean" }, "disabled": { "description": "Shorthand for max_retries 0.", "type": "boolean" }, "operations": { "additionalProperties": { "description": "RetryTuning (recursive)" }, "type": "object" } }, "additionalProperties": false, "type": "object" }, "pagination": { "additionalProperties": { "anyOf": [{ "type": "object" }, { "type": "boolean" }] }, "type": "object" }, "auth": { "description": "Selects a Project OAuth application for one Target. OAuth server metadata, applications, and identity policy remain Project-owned.", "properties": { "oauth_application": { "description": "Project OAuth application to use. Omit to inherit the Project default.", "maxLength": 64, "pattern": "^[a-z][a-z0-9_-]{0,63}$", "type": ["string", "null"] }, "environments": { "description": "Project OAuth application selections keyed by API environment.", "additionalProperties": { "type": "object" }, "type": ["object", "null"] } }, "additionalProperties": false, "type": "object" }, "cli": { "description": "How the generated CLI behaves. Part of Config.", "properties": { "command_name": { "description": "Command users run, independent of how the CLI is distributed.", "type": ["string", "null"] }, "update_notice": { "description": "Opt in to a once-a-day registry check that prints an upgrade hint. Off by default; generated code phones nobody unless this is enabled.", "type": "boolean" }, "support_url": { "description": "Where the generated CLI's feedback command sends users. GitHub issues/new URLs get a prefilled title and environment details.", "type": ["string", "null"] }, "mcp_url": { "description": "Hosted MCP endpoint installed by the generated CLI instead of launching the package's local stdio server.", "type": ["string", "null"] }, "skills_repo": { "description": "GitHub owner/name of the skills package the generated CLI offers to install during init.", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave. Part of Config.", "properties": { "registry_name": { "description": "Stable official MCP registry name, independent of the server runtime.", "type": ["string", "null"] }, "access": { "description": "Authorization for callers connecting to a generated MCP server deployed over HTTP. The hosting application resolves upstream API credentials separately at runtime. This setting does not apply to the Typeship-hosted endpoint.", "properties": { "issuer": { "format": "uri", "description": "Exact issuer allowed to sign MCP connection tokens.", "type": "string" }, "resource": { "format": "uri", "description": "Canonical public URL of the self-hosted MCP endpoint that connection tokens must target.", "type": "string" }, "jwks_url": { "format": "uri", "description": "Public signing-key endpoint. Omit to discover it from the issuer.", "type": "string" }, "scopes": { "description": "Minimum scopes required to connect to the self-hosted MCP server.", "maxItems": 20, "type": "array" } }, "required": ["issuer", "resource"], "additionalProperties": false, "type": "object" }, "tool_mode": { "enum": ["auto", "operations", "meta"], "description": "MCP tool shape. meta collapses per-operation tools into search_docs, read_docs, and execute so large APIs don't flood an agent's context window. Auto considers the serialized tool schemas, switching near 10k tokens or above 100 operations.", "type": "string" }, "instructions": { "description": "Guidance appended to the MCP server's instructions, which agents read once when they connect (server/discover): what to call first, conventions the spec does not state, what not to do. Carried by the package's server and the hosted endpoint alike.", "maxLength": 2000, "type": ["string", "null"] }, "tool_descriptions": { "description": "Hand-written MCP tool descriptions keyed by operationId or \"METHOD /path\". Each replaces the text typeship derives for that operation (summary, first sentence, method and path, deprecation and auth notes). For flows the spec cannot describe, such as a multi-step upload. Keys that match no operation are reported as generation warnings.", "additionalProperties": { "maxLength": 600, "type": "string" }, "type": "object" }, "reference_resolvers": { "description": "Exact name-or-ID resolver overrides keyed first by the target operationId or \"METHOD /path\", then by its wire argument name. A resolver names one read collection operation plus 1-4 item fields to match case-insensitively; false opts that argument out of strict inference.", "additionalProperties": { "type": "object" }, "type": "object" } }, "additionalProperties": false, "type": "object" }, "readme": { "description": "Generated README behavior. Part of Config.", "properties": { "quickstart_operation": { "description": "operationId or \"METHOD /path\" to feature as the README's first API call. It must be present in the generated package and callable with no required input beyond path placeholders. Missing or unsuitable choices produce a warning and use the automatic example.", "maxLength": 500, "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own. Repository is derived from each destination.", "properties": { "homepage": { "description": "Homepage written into registry metadata.", "type": ["string", "null"] }, "license": { "description": "SPDX identifier written into registry metadata. Defaults to info.license.", "maxLength": 200, "type": ["string", "null"] }, "license_text": { "description": "Exact LICENSE file contents. Supply this for licences the engine does not build in; MIT is built in when copyright is also set.", "maxLength": 100000, "type": ["string", "null"] }, "copyright": { "description": "Copyright line used in generated license files.", "maxLength": 200, "type": ["string", "null"] }, "go_package_name": { "description": "Go identifier when the destination repository name is unsuitable.", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "docs_url": { "format": "uri", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, { "type": "null" }] }, "deliveries": { "maxItems": 2, "items": { "anyOf": [{ "properties": { "kind": { "const": "repository", "type": "string" }, "repository": { "properties": { "provider": { "enum": ["github"], "description": "GitHub is the only launch provider; the field is stable for future adapters.", "type": "string" }, "identifier": { "description": "Provider-native repository identity, opaque outside its adapter.", "examples": ["acme/payments-api"], "maxLength": 512, "type": "string" } }, "required": ["provider", "identifier"], "additionalProperties": false, "type": "object" }, "directory": { "type": ["string", "null"] }, "package_name": { "description": "npm or Python registry identity where applicable.", "type": ["string", "null"] }, "module_path": { "description": "Explicit Go module path where applicable.", "type": ["string", "null"] }, "publish_on_merge": { "description": "Commit repository-owned registry automation and report publication after the Draft merges.", "default": false, "type": "boolean" } }, "required": ["kind", "repository"], "additionalProperties": false, "type": "object" }, { "properties": { "kind": { "const": "hosted_mcp", "type": "string" } }, "required": ["kind"], "additionalProperties": false, "type": "object" }] }, "type": "array" } }, "required": ["project_id", "name", "definition_id", "generator"] }, "exampleArguments": { "project_id": "prj_4f8k2m7x9q1v6b3n", "name": "example", "definition_id": "def_2p8m4q7k1v9d6h3c", "generator": "typescript-sdk" }, "outputSchema": { "properties": { "id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "name": { "type": "string" }, "generator": { "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target.", "type": "string" }, "state": { "enum": ["active", "disabled"], "type": "string" }, "edition": { "type": "string" }, "release_channel": { "enum": ["stable", "prerelease"], "type": "string" }, "version_policy": { "properties": { "mode": { "const": "reviewed_semver", "type": "string" }, "pre1_breaking": { "const": "minor", "type": "string" } }, "type": "object" }, "current_version": { "description": "Deprecated projection of the newest immutable Target Release; null until a release becomes Current.", "deprecated": true, "type": ["string", "null"] }, "proposed_version": { "type": ["string", "null"] }, "proposed_version_source": { "enum": ["console", "api", "github", null], "type": ["string", "null"] }, "proposed_version_actor": { "type": ["string", "null"] }, "release_revision": { "description": "Optimistic concurrency revision for Draft selections.", "minimum": 0, "type": "integer" }, "config": { "description": "Target-specific overrides merged over Project.config.", "anyOf": [{ "description": "Target-specific generation and delivery overrides.", "properties": { "globals": { "maxItems": 20, "type": "array" }, "retries": { "description": "Retry behavior.", "type": "object" }, "pagination": { "type": "object" }, "auth": { "description": "Selects a Project OAuth application for one Target.", "type": "object" }, "cli": { "description": "How the generated CLI behaves.", "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave.", "type": "object" }, "readme": { "description": "Generated README behavior.", "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own.", "type": "object" }, "docs_url": { "format": "uri", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "type": ["string", "null"] } }, "type": "object" }, { "type": "null" }] }, "deliveries": { "description": "At most one repository and one hosted MCP Delivery.", "maxItems": 2, "items": { "anyOf": [{ "type": "object" }, { "type": "object" }] }, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
20
+ { "resource": "targets", "method": "retrieve", "command": ["targets", "retrieve"], "tool": "targets_retrieve", "httpMethod": "GET", "path": "/targets/{target_id}", "summary": "Retrieve a Target", "toolDescription": "Retrieve a Target. GET /targets/{target_id}", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": false, "select": false, "idempotent": true, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "target_id", "ts": "targetId", "kind": "path", "type": "string", "required": true, "flag": "target-id" }], "inputSchema": { "type": "object", "properties": { "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" } }, "required": ["target_id"] }, "exampleArguments": { "target_id": "tgt_5m8q2v7k1p9d4h6c" }, "outputSchema": { "properties": { "id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "name": { "type": "string" }, "generator": { "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target.", "type": "string" }, "state": { "enum": ["active", "disabled"], "type": "string" }, "edition": { "type": "string" }, "release_channel": { "enum": ["stable", "prerelease"], "type": "string" }, "version_policy": { "properties": { "mode": { "const": "reviewed_semver", "type": "string" }, "pre1_breaking": { "const": "minor", "type": "string" } }, "type": "object" }, "current_version": { "description": "Deprecated projection of the newest immutable Target Release; null until a release becomes Current.", "deprecated": true, "type": ["string", "null"] }, "proposed_version": { "type": ["string", "null"] }, "proposed_version_source": { "enum": ["console", "api", "github", null], "type": ["string", "null"] }, "proposed_version_actor": { "type": ["string", "null"] }, "release_revision": { "description": "Optimistic concurrency revision for Draft selections.", "minimum": 0, "type": "integer" }, "config": { "description": "Target-specific overrides merged over Project.config.", "anyOf": [{ "description": "Target-specific generation and delivery overrides.", "properties": { "globals": { "maxItems": 20, "type": "array" }, "retries": { "description": "Retry behavior.", "type": "object" }, "pagination": { "type": "object" }, "auth": { "description": "Selects a Project OAuth application for one Target.", "type": "object" }, "cli": { "description": "How the generated CLI behaves.", "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave.", "type": "object" }, "readme": { "description": "Generated README behavior.", "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own.", "type": "object" }, "docs_url": { "format": "uri", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "type": ["string", "null"] } }, "type": "object" }, { "type": "null" }] }, "deliveries": { "description": "At most one repository and one hosted MCP Delivery.", "maxItems": 2, "items": { "anyOf": [{ "type": "object" }, { "type": "object" }] }, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
21
21
  { "resource": "targets", "method": "delete", "command": ["targets", "delete"], "tool": "targets_delete", "httpMethod": "DELETE", "path": "/targets/{target_id}", "summary": "Delete an unused Target", "description": "Targets with Generation or release history, or an active release candidate, must be disabled instead.", "toolDescription": "Delete an unused Target. Targets with Generation or release history, or an active release candidate, must be disabled instead. DELETE /targets/{target_id}", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": false, "select": false, "idempotent": true, "auth": "required", "security": [{ "apiKey": [] }], "safety": "destructive", "params": [{ "name": "target_id", "ts": "targetId", "kind": "path", "type": "string", "required": true, "flag": "target-id" }], "inputSchema": { "type": "object", "properties": { "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" } }, "required": ["target_id"] }, "exampleArguments": { "target_id": "tgt_5m8q2v7k1p9d4h6c" }, "outputSchema": { "properties": { "id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target", "type": "string" }, "deleted": { "const": true, "type": "boolean" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
22
- { "resource": "targets", "method": "update", "command": ["targets", "update"], "tool": "targets_update", "httpMethod": "PATCH", "path": "/targets/{target_id}", "summary": "Update a Target, its Deliveries, or its next reviewed version", "toolDescription": "Update a Target, its Deliveries, or its next reviewed version. PATCH /targets/{target_id}", "paginated": false, "hasBody": true, "bodyStyle": "fields", "bodyKind": "json", "sse": false, "hasParams": false, "select": false, "idempotent": false, "auth": "required", "security": [{ "apiKey": [] }], "safety": "write", "params": [{ "name": "target_id", "ts": "targetId", "kind": "path", "type": "string", "required": true, "flag": "target-id" }, { "name": "name", "ts": "name", "kind": "body", "type": "string", "required": false, "flag": "name" }, { "name": "state", "ts": "state", "kind": "body", "type": "string", "required": false, "enum": ["active", "disabled"], "flag": "state" }, { "name": "edition", "ts": "edition", "kind": "body", "type": "string", "required": false, "flag": "edition" }, { "name": "release_channel", "ts": "release_channel", "kind": "body", "type": "string", "required": false, "enum": ["stable", "prerelease"], "flag": "release-channel" }, { "name": "proposed_version", "ts": "proposed_version", "kind": "body", "type": "string", "required": false, "flag": "proposed-version" }, { "name": "config", "ts": "config", "kind": "body", "type": "json", "required": false, "description": "Target-specific overrides merged over Project.config. GraphQL settings are rejected here and belong to the Definition.", "flag": "config" }, { "name": "deliveries", "ts": "deliveries", "kind": "body", "type": "array", "required": false, "items": { "type": "json" }, "flag": "deliveries" }], "inputSchema": { "type": "object", "properties": { "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "name": { "minLength": 1, "maxLength": 80, "type": "string" }, "state": { "enum": ["active", "disabled"], "type": "string" }, "edition": { "type": "string" }, "release_channel": { "enum": ["stable", "prerelease"], "type": "string" }, "proposed_version": { "type": ["string", "null"] }, "config": { "description": "Target-specific overrides merged over Project.config. GraphQL settings are rejected here and belong to the Definition.", "anyOf": [{ "description": "Target-specific generation and delivery overrides. Authentication may only select a Project-owned OAuth application. OAuth server metadata, applications, and identity policy remain Project-owned. Self-hosted MCP access may be overridden for a Target-specific deployment.", "properties": { "globals": { "maxItems": 20, "items": { "type": "string" }, "type": "array" }, "retries": { "description": "Retry behavior. Top-level fields adjust every operation; operations maps operationId or \"METHOD /path\" keys to per-operation overrides.", "properties": { "max_retries": { "minimum": 0, "maximum": 10, "type": "integer" }, "statuses": { "description": "Replaces the default retryable set (408, 429, 500, 502, 503, 504).", "maxItems": 20, "items": { "type": "integer" }, "type": "array" }, "initial_delay_ms": { "minimum": 1, "type": "integer" }, "max_delay_ms": { "minimum": 1, "type": "integer" }, "retry_non_idempotent": { "description": "Also retry non-idempotent methods (POST/PATCH).", "type": "boolean" }, "disabled": { "description": "Shorthand for max_retries 0.", "type": "boolean" }, "operations": { "additionalProperties": { "description": "RetryTuning (recursive)" }, "type": "object" } }, "additionalProperties": false, "type": "object" }, "pagination": { "additionalProperties": { "anyOf": [{ "type": "object" }, { "type": "boolean" }] }, "type": "object" }, "auth": { "description": "Selects a Project OAuth application for one Target. OAuth server metadata, applications, and identity policy remain Project-owned.", "properties": { "oauth_application": { "description": "Project OAuth application to use. Omit to inherit the Project default.", "maxLength": 64, "pattern": "^[a-z][a-z0-9_-]{0,63}$", "type": ["string", "null"] }, "environments": { "description": "Project OAuth application selections keyed by API environment.", "additionalProperties": { "type": "object" }, "type": ["object", "null"] } }, "additionalProperties": false, "type": "object" }, "cli": { "description": "How the generated CLI behaves. Part of Config.", "properties": { "command_name": { "description": "Command users run, independent of how the CLI is distributed.", "type": ["string", "null"] }, "update_notice": { "description": "Opt in to a once-a-day registry check that prints an upgrade hint. Off by default; generated code phones nobody unless this is enabled.", "type": "boolean" }, "support_url": { "description": "Where the generated CLI's feedback command sends users. GitHub issues/new URLs get a prefilled title and environment details.", "type": ["string", "null"] }, "mcp_url": { "description": "Hosted MCP endpoint installed by the generated CLI instead of launching the package's local stdio server.", "type": ["string", "null"] }, "skills_repo": { "description": "GitHub owner/name of the skills package the generated CLI offers to install during init.", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave. Part of Config.", "properties": { "registry_name": { "description": "Stable official MCP registry name, independent of the server runtime.", "type": ["string", "null"] }, "access": { "description": "Authorization for callers connecting to a generated MCP server deployed over HTTP. The hosting application resolves upstream API credentials separately at runtime. This setting does not apply to the Typeship-hosted endpoint.", "properties": { "issuer": { "format": "uri", "description": "Exact issuer allowed to sign MCP connection tokens.", "type": "string" }, "resource": { "format": "uri", "description": "Canonical public URL of the self-hosted MCP endpoint that connection tokens must target.", "type": "string" }, "jwks_url": { "format": "uri", "description": "Public signing-key endpoint. Omit to discover it from the issuer.", "type": "string" }, "scopes": { "description": "Minimum scopes required to connect to the self-hosted MCP server.", "maxItems": 20, "type": "array" } }, "required": ["issuer", "resource"], "additionalProperties": false, "type": "object" }, "tool_mode": { "enum": ["auto", "operations", "meta"], "description": "MCP tool shape. meta collapses per-operation tools into search_docs, read_docs, and execute so large APIs don't flood an agent's context window. Auto considers the serialized tool schemas, switching near 10k tokens or above 100 operations.", "type": "string" }, "instructions": { "description": "Guidance appended to the MCP server's instructions, which agents read once when they connect (server/discover): what to call first, conventions the spec does not state, what not to do. Carried by the package's server and the hosted endpoint alike.", "maxLength": 2000, "type": ["string", "null"] }, "tool_descriptions": { "description": "Hand-written MCP tool descriptions keyed by operationId or \"METHOD /path\". Each replaces the text typeship derives for that operation (summary, first sentence, method and path, deprecation and auth notes). For flows the spec cannot describe, such as a multi-step upload. Keys that match no operation are reported as generation warnings.", "additionalProperties": { "maxLength": 600, "type": "string" }, "type": "object" }, "reference_resolvers": { "description": "Exact name-or-ID resolver overrides keyed first by the target operationId or \"METHOD /path\", then by its wire argument name. A resolver names one read collection operation plus 1-4 item fields to match case-insensitively; false opts that argument out of strict inference.", "additionalProperties": { "type": "object" }, "type": "object" } }, "additionalProperties": false, "type": "object" }, "readme": { "description": "Generated README behavior. Part of Config.", "properties": { "quickstart_operation": { "description": "operationId or \"METHOD /path\" to feature as the README's first API call. It must be present in the generated package and callable with no required input beyond path placeholders. Missing or unsuitable choices produce a warning and use the automatic example.", "maxLength": 500, "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own. Repository is derived from each destination.", "properties": { "homepage": { "description": "Homepage written into registry metadata.", "type": ["string", "null"] }, "license": { "description": "SPDX identifier written into registry metadata. Defaults to info.license.", "maxLength": 200, "type": ["string", "null"] }, "license_text": { "description": "Exact LICENSE file contents. Supply this for licences the engine does not build in; MIT is built in when copyright is also set.", "maxLength": 100000, "type": ["string", "null"] }, "copyright": { "description": "Copyright line used in generated license files.", "maxLength": 200, "type": ["string", "null"] }, "go_package_name": { "description": "Go identifier when the destination repository name is unsuitable.", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "docs_url": { "format": "uri", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, { "type": "null" }] }, "deliveries": { "maxItems": 2, "items": { "anyOf": [{ "properties": { "kind": { "const": "repository", "type": "string" }, "repository": { "properties": { "provider": { "enum": ["github"], "description": "GitHub is the only launch provider; the field is stable for future adapters.", "type": "string" }, "identifier": { "description": "Provider-native repository identity, opaque outside its adapter.", "examples": ["acme/payments-api"], "maxLength": 512, "type": "string" } }, "required": ["provider", "identifier"], "additionalProperties": false, "type": "object" }, "directory": { "type": ["string", "null"] }, "package_name": { "description": "npm or Python registry identity where applicable.", "type": ["string", "null"] }, "module_path": { "description": "Explicit Go module path where applicable.", "type": ["string", "null"] } }, "required": ["kind", "repository"], "additionalProperties": false, "type": "object" }, { "properties": { "kind": { "const": "hosted_mcp", "type": "string" } }, "required": ["kind"], "additionalProperties": false, "type": "object" }] }, "type": "array" } }, "required": ["target_id"] }, "exampleArguments": { "target_id": "tgt_5m8q2v7k1p9d4h6c" }, "outputSchema": { "properties": { "id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "name": { "type": "string" }, "generator": { "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target.", "type": "string" }, "state": { "enum": ["active", "disabled"], "type": "string" }, "edition": { "type": "string" }, "release_channel": { "enum": ["stable", "prerelease"], "type": "string" }, "version_policy": { "properties": { "mode": { "const": "reviewed_semver", "type": "string" }, "pre1_breaking": { "const": "minor", "type": "string" } }, "type": "object" }, "current_version": { "type": "string" }, "proposed_version": { "type": ["string", "null"] }, "config": { "description": "Target-specific overrides merged over Project.config.", "anyOf": [{ "description": "Target-specific generation and delivery overrides.", "properties": { "globals": { "maxItems": 20, "type": "array" }, "retries": { "description": "Retry behavior.", "type": "object" }, "pagination": { "type": "object" }, "auth": { "description": "Selects a Project OAuth application for one Target.", "type": "object" }, "cli": { "description": "How the generated CLI behaves.", "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave.", "type": "object" }, "readme": { "description": "Generated README behavior.", "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own.", "type": "object" }, "docs_url": { "format": "uri", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "type": ["string", "null"] } }, "type": "object" }, { "type": "null" }] }, "deliveries": { "description": "At most one repository and one hosted MCP Delivery.", "maxItems": 2, "items": { "anyOf": [{ "type": "object" }, { "type": "object" }] }, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
23
- { "resource": "targets", "method": "listReleases", "command": ["targets", "list-releases"], "tool": "targets_list_releases", "httpMethod": "GET", "path": "/targets/{target_id}/releases", "summary": "List immutable releases for a Target", "toolDescription": "List immutable releases for a Target. GET /targets/{target_id}/releases (paginated: returns one page plus hasMore and nextPage arguments)", "paginated": true, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": true, "select": false, "idempotent": true, "pagination": { "style": "cursor", "itemsField": "data", "cursorParam": "cursor", "nextCursorField": "next_cursor", "hasMoreField": "has_more", "limitParam": "limit" }, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "target_id", "ts": "targetId", "kind": "path", "type": "string", "required": true, "flag": "target-id" }, { "name": "limit", "ts": "limit", "kind": "query", "type": "number", "required": false, "description": "Maximum number of resources to return. Default: 20.", "flag": "limit" }, { "name": "cursor", "ts": "cursor", "kind": "query", "type": "string", "required": false, "description": "Opaque cursor from the preceding page's next_cursor. Valid only for the same account, operation, filters, and ordering that issued it.", "flag": "cursor" }], "inputSchema": { "type": "object", "properties": { "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "limit": { "default": 20, "minimum": 1, "maximum": 100, "type": "integer", "description": "Maximum number of resources to return. Default: 20." }, "cursor": { "type": "string", "description": "Opaque cursor from the preceding page's next_cursor. Valid only for the same account, operation, filters, and ordering that issued it." } }, "required": ["target_id"] }, "exampleArguments": { "target_id": "tgt_5m8q2v7k1p9d4h6c" }, "outputSchema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "id": { "examples": ["rel_7m2q8v4k1p9d5h6c"], "pattern": "^rel_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target_release", "type": "string" }, "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "generation_id": { "description": "Unique identifier for a generation.", "examples": ["gen_7h2p5d9c3m8w1k6q"], "pattern": "^gen_[a-z0-9]{16}$", "type": "string" }, "version": { "description": "Immutable package version released from this Target.", "type": "string" }, "channel": { "enum": ["stable", "prerelease"], "type": "string" }, "provider": { "description": "Delivery provider that accepted the release.", "type": "string" }, "repository": { "anyOf": [{ "properties": { "provider": { "enum": ["github"], "description": "GitHub is the only launch provider; the field is stable for future adapters.", "type": "string" }, "identifier": { "description": "Provider-native repository identity, opaque outside its adapter.", "examples": ["acme/payments-api"], "maxLength": 512, "type": "string" } }, "type": "object" }, { "type": "null" }] }, "definition_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "delivery_revision": { "description": "Immutable provider-native revision that was merged or published.", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" } }, "hasMore": { "type": "boolean", "description": "Whether another page exists" }, "nextPage": { "type": "object", "description": "Arguments that fetch the next page; pass them to this tool", "additionalProperties": true }, "truncated": { "type": "object", "description": "Present when the page was cut to fit the result size cap: how many items were omitted and how to get them", "additionalProperties": true } } }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
24
- { "resource": "targets", "method": "retrieveRelease", "command": ["targets", "retrieve-release"], "tool": "targets_retrieve_release", "httpMethod": "GET", "path": "/target_releases/{target_release_id}", "summary": "Retrieve an immutable Target release", "toolDescription": "Retrieve an immutable Target release. GET /target_releases/{target_release_id}", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": false, "select": false, "idempotent": true, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "target_release_id", "ts": "targetReleaseId", "kind": "path", "type": "string", "required": true, "flag": "target-release-id" }], "inputSchema": { "type": "object", "properties": { "target_release_id": { "examples": ["rel_7m2q8v4k1p9d5h6c"], "pattern": "^rel_[a-z0-9]{16}$", "type": "string" } }, "required": ["target_release_id"] }, "exampleArguments": { "target_release_id": "rel_7m2q8v4k1p9d5h6c" }, "outputSchema": { "properties": { "id": { "examples": ["rel_7m2q8v4k1p9d5h6c"], "pattern": "^rel_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target_release", "type": "string" }, "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "generation_id": { "description": "Unique identifier for a generation.", "examples": ["gen_7h2p5d9c3m8w1k6q"], "pattern": "^gen_[a-z0-9]{16}$", "type": "string" }, "version": { "description": "Immutable package version released from this Target.", "type": "string" }, "channel": { "enum": ["stable", "prerelease"], "type": "string" }, "provider": { "description": "Delivery provider that accepted the release.", "type": "string" }, "repository": { "anyOf": [{ "properties": { "provider": { "enum": ["github"], "description": "GitHub is the only launch provider; the field is stable for future adapters.", "type": "string" }, "identifier": { "description": "Provider-native repository identity, opaque outside its adapter.", "examples": ["acme/payments-api"], "maxLength": 512, "type": "string" } }, "type": "object" }, { "type": "null" }] }, "definition_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "delivery_revision": { "description": "Immutable provider-native revision that was merged or published.", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
22
+ { "resource": "targets", "method": "update", "command": ["targets", "update"], "tool": "targets_update", "httpMethod": "PATCH", "path": "/targets/{target_id}", "summary": "Update a Target, its Deliveries, or its next reviewed version", "toolDescription": "Update a Target, its Deliveries, or its next reviewed version. PATCH /targets/{target_id}", "paginated": false, "hasBody": true, "bodyStyle": "fields", "bodyKind": "json", "sse": false, "hasParams": false, "select": false, "idempotent": false, "auth": "required", "security": [{ "apiKey": [] }], "safety": "write", "params": [{ "name": "target_id", "ts": "targetId", "kind": "path", "type": "string", "required": true, "flag": "target-id" }, { "name": "name", "ts": "name", "kind": "body", "type": "string", "required": false, "flag": "name" }, { "name": "state", "ts": "state", "kind": "body", "type": "string", "required": false, "enum": ["active", "disabled"], "flag": "state" }, { "name": "edition", "ts": "edition", "kind": "body", "type": "string", "required": false, "flag": "edition" }, { "name": "release_channel", "ts": "release_channel", "kind": "body", "type": "string", "required": false, "enum": ["stable", "prerelease"], "flag": "release-channel" }, { "name": "proposed_version", "ts": "proposed_version", "kind": "body", "type": "string", "required": false, "flag": "proposed-version" }, { "name": "config", "ts": "config", "kind": "body", "type": "json", "required": false, "description": "Target-specific overrides merged over Project.config. GraphQL settings are rejected here and belong to the Definition.", "flag": "config" }, { "name": "deliveries", "ts": "deliveries", "kind": "body", "type": "array", "required": false, "items": { "type": "json" }, "flag": "deliveries" }], "inputSchema": { "type": "object", "properties": { "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "name": { "minLength": 1, "maxLength": 80, "type": "string" }, "state": { "enum": ["active", "disabled"], "type": "string" }, "edition": { "type": "string" }, "release_channel": { "enum": ["stable", "prerelease"], "type": "string" }, "proposed_version": { "type": ["string", "null"] }, "config": { "description": "Target-specific overrides merged over Project.config. GraphQL settings are rejected here and belong to the Definition.", "anyOf": [{ "description": "Target-specific generation and delivery overrides. Authentication may only select a Project-owned OAuth application. OAuth server metadata, applications, and identity policy remain Project-owned. Self-hosted MCP access may be overridden for a Target-specific deployment.", "properties": { "globals": { "maxItems": 20, "items": { "type": "string" }, "type": "array" }, "retries": { "description": "Retry behavior. Top-level fields adjust every operation; operations maps operationId or \"METHOD /path\" keys to per-operation overrides.", "properties": { "max_retries": { "minimum": 0, "maximum": 10, "type": "integer" }, "statuses": { "description": "Replaces the default retryable set (408, 429, 500, 502, 503, 504).", "maxItems": 20, "items": { "type": "integer" }, "type": "array" }, "initial_delay_ms": { "minimum": 1, "type": "integer" }, "max_delay_ms": { "minimum": 1, "type": "integer" }, "retry_non_idempotent": { "description": "Also retry non-idempotent methods (POST/PATCH).", "type": "boolean" }, "disabled": { "description": "Shorthand for max_retries 0.", "type": "boolean" }, "operations": { "additionalProperties": { "description": "RetryTuning (recursive)" }, "type": "object" } }, "additionalProperties": false, "type": "object" }, "pagination": { "additionalProperties": { "anyOf": [{ "type": "object" }, { "type": "boolean" }] }, "type": "object" }, "auth": { "description": "Selects a Project OAuth application for one Target. OAuth server metadata, applications, and identity policy remain Project-owned.", "properties": { "oauth_application": { "description": "Project OAuth application to use. Omit to inherit the Project default.", "maxLength": 64, "pattern": "^[a-z][a-z0-9_-]{0,63}$", "type": ["string", "null"] }, "environments": { "description": "Project OAuth application selections keyed by API environment.", "additionalProperties": { "type": "object" }, "type": ["object", "null"] } }, "additionalProperties": false, "type": "object" }, "cli": { "description": "How the generated CLI behaves. Part of Config.", "properties": { "command_name": { "description": "Command users run, independent of how the CLI is distributed.", "type": ["string", "null"] }, "update_notice": { "description": "Opt in to a once-a-day registry check that prints an upgrade hint. Off by default; generated code phones nobody unless this is enabled.", "type": "boolean" }, "support_url": { "description": "Where the generated CLI's feedback command sends users. GitHub issues/new URLs get a prefilled title and environment details.", "type": ["string", "null"] }, "mcp_url": { "description": "Hosted MCP endpoint installed by the generated CLI instead of launching the package's local stdio server.", "type": ["string", "null"] }, "skills_repo": { "description": "GitHub owner/name of the skills package the generated CLI offers to install during init.", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave. Part of Config.", "properties": { "registry_name": { "description": "Stable official MCP registry name, independent of the server runtime.", "type": ["string", "null"] }, "access": { "description": "Authorization for callers connecting to a generated MCP server deployed over HTTP. The hosting application resolves upstream API credentials separately at runtime. This setting does not apply to the Typeship-hosted endpoint.", "properties": { "issuer": { "format": "uri", "description": "Exact issuer allowed to sign MCP connection tokens.", "type": "string" }, "resource": { "format": "uri", "description": "Canonical public URL of the self-hosted MCP endpoint that connection tokens must target.", "type": "string" }, "jwks_url": { "format": "uri", "description": "Public signing-key endpoint. Omit to discover it from the issuer.", "type": "string" }, "scopes": { "description": "Minimum scopes required to connect to the self-hosted MCP server.", "maxItems": 20, "type": "array" } }, "required": ["issuer", "resource"], "additionalProperties": false, "type": "object" }, "tool_mode": { "enum": ["auto", "operations", "meta"], "description": "MCP tool shape. meta collapses per-operation tools into search_docs, read_docs, and execute so large APIs don't flood an agent's context window. Auto considers the serialized tool schemas, switching near 10k tokens or above 100 operations.", "type": "string" }, "instructions": { "description": "Guidance appended to the MCP server's instructions, which agents read once when they connect (server/discover): what to call first, conventions the spec does not state, what not to do. Carried by the package's server and the hosted endpoint alike.", "maxLength": 2000, "type": ["string", "null"] }, "tool_descriptions": { "description": "Hand-written MCP tool descriptions keyed by operationId or \"METHOD /path\". Each replaces the text typeship derives for that operation (summary, first sentence, method and path, deprecation and auth notes). For flows the spec cannot describe, such as a multi-step upload. Keys that match no operation are reported as generation warnings.", "additionalProperties": { "maxLength": 600, "type": "string" }, "type": "object" }, "reference_resolvers": { "description": "Exact name-or-ID resolver overrides keyed first by the target operationId or \"METHOD /path\", then by its wire argument name. A resolver names one read collection operation plus 1-4 item fields to match case-insensitively; false opts that argument out of strict inference.", "additionalProperties": { "type": "object" }, "type": "object" } }, "additionalProperties": false, "type": "object" }, "readme": { "description": "Generated README behavior. Part of Config.", "properties": { "quickstart_operation": { "description": "operationId or \"METHOD /path\" to feature as the README's first API call. It must be present in the generated package and callable with no required input beyond path placeholders. Missing or unsuitable choices produce a warning and use the automatic example.", "maxLength": 500, "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own. Repository is derived from each destination.", "properties": { "homepage": { "description": "Homepage written into registry metadata.", "type": ["string", "null"] }, "license": { "description": "SPDX identifier written into registry metadata. Defaults to info.license.", "maxLength": 200, "type": ["string", "null"] }, "license_text": { "description": "Exact LICENSE file contents. Supply this for licences the engine does not build in; MIT is built in when copyright is also set.", "maxLength": 100000, "type": ["string", "null"] }, "copyright": { "description": "Copyright line used in generated license files.", "maxLength": 200, "type": ["string", "null"] }, "go_package_name": { "description": "Go identifier when the destination repository name is unsuitable.", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, "docs_url": { "format": "uri", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "type": ["string", "null"] } }, "additionalProperties": false, "type": "object" }, { "type": "null" }] }, "deliveries": { "maxItems": 2, "items": { "anyOf": [{ "properties": { "kind": { "const": "repository", "type": "string" }, "repository": { "properties": { "provider": { "enum": ["github"], "description": "GitHub is the only launch provider; the field is stable for future adapters.", "type": "string" }, "identifier": { "description": "Provider-native repository identity, opaque outside its adapter.", "examples": ["acme/payments-api"], "maxLength": 512, "type": "string" } }, "required": ["provider", "identifier"], "additionalProperties": false, "type": "object" }, "directory": { "type": ["string", "null"] }, "package_name": { "description": "npm or Python registry identity where applicable.", "type": ["string", "null"] }, "module_path": { "description": "Explicit Go module path where applicable.", "type": ["string", "null"] }, "publish_on_merge": { "description": "Commit repository-owned registry automation and report publication after the Draft merges.", "default": false, "type": "boolean" } }, "required": ["kind", "repository"], "additionalProperties": false, "type": "object" }, { "properties": { "kind": { "const": "hosted_mcp", "type": "string" } }, "required": ["kind"], "additionalProperties": false, "type": "object" }] }, "type": "array" } }, "required": ["target_id"] }, "exampleArguments": { "target_id": "tgt_5m8q2v7k1p9d4h6c" }, "outputSchema": { "properties": { "id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "name": { "type": "string" }, "generator": { "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target.", "type": "string" }, "state": { "enum": ["active", "disabled"], "type": "string" }, "edition": { "type": "string" }, "release_channel": { "enum": ["stable", "prerelease"], "type": "string" }, "version_policy": { "properties": { "mode": { "const": "reviewed_semver", "type": "string" }, "pre1_breaking": { "const": "minor", "type": "string" } }, "type": "object" }, "current_version": { "description": "Deprecated projection of the newest immutable Target Release; null until a release becomes Current.", "deprecated": true, "type": ["string", "null"] }, "proposed_version": { "type": ["string", "null"] }, "proposed_version_source": { "enum": ["console", "api", "github", null], "type": ["string", "null"] }, "proposed_version_actor": { "type": ["string", "null"] }, "release_revision": { "description": "Optimistic concurrency revision for Draft selections.", "minimum": 0, "type": "integer" }, "config": { "description": "Target-specific overrides merged over Project.config.", "anyOf": [{ "description": "Target-specific generation and delivery overrides.", "properties": { "globals": { "maxItems": 20, "type": "array" }, "retries": { "description": "Retry behavior.", "type": "object" }, "pagination": { "type": "object" }, "auth": { "description": "Selects a Project OAuth application for one Target.", "type": "object" }, "cli": { "description": "How the generated CLI behaves.", "type": "object" }, "mcp": { "description": "How generated MCP servers and the Typeship-hosted endpoint behave.", "type": "object" }, "readme": { "description": "Generated README behavior.", "type": "object" }, "package": { "description": "Published-package metadata the API spec does not own.", "type": "object" }, "docs_url": { "format": "uri", "type": ["string", "null"] }, "docs_index_url": { "format": "uri", "type": ["string", "null"] } }, "type": "object" }, { "type": "null" }] }, "deliveries": { "description": "At most one repository and one hosted MCP Delivery.", "maxItems": 2, "items": { "anyOf": [{ "type": "object" }, { "type": "object" }] }, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
23
+ { "resource": "targets", "method": "listReleases", "command": ["targets", "list-releases"], "tool": "targets_list_releases", "httpMethod": "GET", "path": "/targets/{target_id}/releases", "summary": "List immutable releases for a Target", "toolDescription": "List immutable releases for a Target. GET /targets/{target_id}/releases (paginated: returns one page plus hasMore and nextPage arguments)", "paginated": true, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": true, "select": false, "idempotent": true, "pagination": { "style": "cursor", "itemsField": "data", "cursorParam": "cursor", "nextCursorField": "next_cursor", "hasMoreField": "has_more", "limitParam": "limit" }, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "target_id", "ts": "targetId", "kind": "path", "type": "string", "required": true, "flag": "target-id" }, { "name": "limit", "ts": "limit", "kind": "query", "type": "number", "required": false, "description": "Maximum number of resources to return. Default: 20.", "flag": "limit" }, { "name": "cursor", "ts": "cursor", "kind": "query", "type": "string", "required": false, "description": "Opaque cursor from the preceding page's next_cursor. Valid only for the same account, operation, filters, and ordering that issued it.", "flag": "cursor" }], "inputSchema": { "type": "object", "properties": { "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "limit": { "default": 20, "minimum": 1, "maximum": 100, "type": "integer", "description": "Maximum number of resources to return. Default: 20." }, "cursor": { "type": "string", "description": "Opaque cursor from the preceding page's next_cursor. Valid only for the same account, operation, filters, and ordering that issued it." } }, "required": ["target_id"] }, "exampleArguments": { "target_id": "tgt_5m8q2v7k1p9d4h6c" }, "outputSchema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "id": { "examples": ["rel_7m2q8v4k1p9d5h6c"], "pattern": "^rel_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target_release", "type": "string" }, "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "generation_id": { "description": "Null only for a verified release imported during package adoption.", "anyOf": [{ "description": "Unique identifier for a generation.", "examples": ["gen_7h2p5d9c3m8w1k6q"], "pattern": "^gen_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "origin": { "enum": ["typeship", "imported"], "type": "string" }, "version": { "description": "Immutable package version released from this Target.", "type": "string" }, "channel": { "enum": ["stable", "prerelease"], "type": "string" }, "provider": { "description": "Delivery provider that accepted the release.", "type": "string" }, "repository": { "anyOf": [{ "properties": { "provider": { "enum": ["github"], "description": "GitHub is the only launch provider; the field is stable for future adapters.", "type": "string" }, "identifier": { "description": "Provider-native repository identity, opaque outside its adapter.", "examples": ["acme/payments-api"], "maxLength": 512, "type": "string" } }, "type": "object" }, { "type": "null" }] }, "definition_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "delivery_revision": { "description": "Immutable provider-native revision that was merged or published.", "type": "string" }, "import_provenance": { "properties": { "tag": { "type": ["string", "null"] }, "registry_url": { "format": "uri", "type": ["string", "null"] }, "artifact_digest": { "type": ["string", "null"] }, "imported_at": { "format": "date-time", "type": ["string", "null"] } }, "type": ["object", "null"] }, "publications": { "items": { "properties": { "id": { "examples": ["pub_2m8q4v7k1p9d5h6c"], "pattern": "^pub_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "publication", "type": "string" }, "target_release_id": { "examples": ["rel_7m2q8v4k1p9d5h6c"], "pattern": "^rel_[a-z0-9]{16}$", "type": "string" }, "destination": { "enum": ["github", "npm", "pypi", "go", "mcp"], "type": "string" }, "state": { "enum": ["pending", "publishing", "published", "failed"], "type": "string" }, "attempt": { "minimum": 0, "type": "integer" }, "run_url": { "format": "uri", "type": ["string", "null"] }, "registry_url": { "format": "uri", "type": ["string", "null"] }, "artifact_digest": { "type": ["string", "null"] }, "error": { "type": ["string", "null"] }, "started_at": { "format": "date-time", "type": ["string", "null"] }, "finished_at": { "format": "date-time", "type": ["string", "null"] }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" } }, "hasMore": { "type": "boolean", "description": "Whether another page exists" }, "nextPage": { "type": "object", "description": "Arguments that fetch the next page; pass them to this tool", "additionalProperties": true }, "truncated": { "type": "object", "description": "Present when the page was cut to fit the result size cap: how many items were omitted and how to get them", "additionalProperties": true } } }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
24
+ { "resource": "targets", "method": "retrieveDraft", "command": ["targets", "retrieve-draft"], "tool": "targets_retrieve_draft", "httpMethod": "GET", "path": "/targets/{target_id}/draft", "summary": "Retrieve a Target's rolling Draft release", "description": "Returns Current, the cumulative Draft version and readiness, its exact head, and the optimistic release revision.", "toolDescription": "Retrieve a Target's rolling Draft release. Returns Current, the cumulative Draft version and readiness, its exact head, and the optimistic release revision. GET /targets/{target_id}/draft", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": false, "select": false, "idempotent": true, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "target_id", "ts": "targetId", "kind": "path", "type": "string", "required": true, "flag": "target-id" }], "inputSchema": { "type": "object", "properties": { "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" } }, "required": ["target_id"] }, "exampleArguments": { "target_id": "tgt_5m8q2v7k1p9d4h6c" }, "outputSchema": { "properties": { "object": { "const": "target_draft", "type": "string" }, "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "revision": { "minimum": 0, "type": "integer" }, "current_version": { "type": ["string", "null"] }, "version": { "type": ["string", "null"] }, "selection": { "anyOf": [{ "properties": { "mode": { "const": "automatic", "type": "string" } }, "type": "object" }, { "properties": { "mode": { "const": "exact", "type": "string" }, "version": { "type": "string" }, "source": { "enum": ["console", "api", "github", null], "type": ["string", "null"] }, "actor": { "type": ["string", "null"] } }, "type": "object" }] }, "readiness": { "type": ["object", "null"] }, "changes": { "properties": { "changelog": { "description": "Cumulative changelog against Current.", "type": ["string", "null"] }, "breaking_count": { "minimum": 0, "type": ["integer", "null"] }, "previous_version": { "type": ["string", "null"] } }, "type": ["object", "null"] }, "head_revision": { "type": ["string", "null"] }, "pull_request_url": { "format": "uri", "type": ["string", "null"] }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
25
+ { "resource": "targets", "method": "updateDraft", "command": ["targets", "update-draft"], "tool": "targets_update_draft", "httpMethod": "PATCH", "path": "/targets/{target_id}/draft", "summary": "Select an exact Draft version or return to automatic versioning", "description": "Validates the selection against the cumulative required bump and regenerates the same rolling Draft pull request.", "toolDescription": "Select an exact Draft version or return to automatic versioning. Validates the selection against the cumulative required bump and regenerates the same rolling Draft pull request. PATCH /targets/{target_id}/draft", "paginated": false, "hasBody": true, "bodyStyle": "fields", "bodyKind": "json", "sse": false, "hasParams": false, "select": false, "idempotent": false, "auth": "required", "security": [{ "apiKey": [] }], "safety": "write", "params": [{ "name": "target_id", "ts": "targetId", "kind": "path", "type": "string", "required": true, "flag": "target-id" }, { "name": "version", "ts": "version", "kind": "body", "type": "string", "required": true, "description": "Exact SemVer, or null to return to automatic selection.", "flag": "body-version" }, { "name": "expected_revision", "ts": "expected_revision", "kind": "body", "type": "number", "required": false, "flag": "expected-revision" }], "inputSchema": { "type": "object", "properties": { "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "version": { "description": "Exact SemVer, or null to return to automatic selection.", "type": ["string", "null"] }, "expected_revision": { "minimum": 0, "type": "integer" } }, "required": ["target_id", "version"] }, "exampleArguments": { "target_id": "tgt_5m8q2v7k1p9d4h6c", "version": "1.0.0" }, "outputSchema": { "properties": { "object": { "const": "target_draft", "type": "string" }, "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "revision": { "minimum": 0, "type": "integer" }, "current_version": { "type": ["string", "null"] }, "version": { "type": ["string", "null"] }, "selection": { "anyOf": [{ "properties": { "mode": { "const": "automatic", "type": "string" } }, "type": "object" }, { "properties": { "mode": { "const": "exact", "type": "string" }, "version": { "type": "string" }, "source": { "enum": ["console", "api", "github", null], "type": ["string", "null"] }, "actor": { "type": ["string", "null"] } }, "type": "object" }] }, "readiness": { "type": ["object", "null"] }, "changes": { "properties": { "changelog": { "description": "Cumulative changelog against Current.", "type": ["string", "null"] }, "breaking_count": { "minimum": 0, "type": ["integer", "null"] }, "previous_version": { "type": ["string", "null"] } }, "type": ["object", "null"] }, "head_revision": { "type": ["string", "null"] }, "pull_request_url": { "format": "uri", "type": ["string", "null"] }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
26
+ { "resource": "targets", "method": "adoptRelease", "command": ["targets", "adopt-release"], "tool": "targets_adopt_release", "httpMethod": "POST", "path": "/targets/{target_id}/adopt", "summary": "Adopt a verified existing package as Current", "description": "Verifies the repository tag, package metadata, and registry artifact; records an Imported Current release; then opens the first Typeship Draft at the next major version because no trusted generated baseline exists yet.", "toolDescription": "Adopt a verified existing package as Current. Verifies the repository tag, package metadata, and registry artifact; records an Imported Current release; then opens the first Typeship Draft at the next major version because no trusted generated baseline exists yet. POST /targets/{target_id}/adopt", "paginated": false, "hasBody": true, "bodyStyle": "fields", "bodyKind": "json", "sse": false, "hasParams": true, "select": false, "idempotent": false, "idempotencyHeader": "Idempotency-Key", "auth": "required", "security": [{ "apiKey": [] }], "safety": "write", "params": [{ "name": "target_id", "ts": "targetId", "kind": "path", "type": "string", "required": true, "flag": "target-id" }, { "name": "version", "ts": "version", "kind": "body", "type": "string", "required": true, "description": "Exact already-published package version to make Current.", "flag": "body-version" }, { "name": "tag", "ts": "tag", "kind": "body", "type": "string", "required": true, "description": "Immutable repository tag containing the matching package source.", "flag": "tag" }, { "name": "Idempotency-Key", "ts": "idempotencyKey", "kind": "header", "type": "string", "required": false, "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write.", "flag": "idempotency-key" }], "inputSchema": { "type": "object", "properties": { "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "Idempotency-Key": { "minLength": 1, "maxLength": 255, "pattern": "^[!-~]+$", "type": "string", "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write." }, "version": { "description": "Exact already-published package version to make Current.", "type": "string" }, "tag": { "description": "Immutable repository tag containing the matching package source.", "minLength": 1, "maxLength": 255, "type": "string" } }, "required": ["target_id", "version", "tag"] }, "exampleArguments": { "target_id": "tgt_5m8q2v7k1p9d4h6c", "version": "1.0.0", "tag": "value" }, "outputSchema": { "properties": { "id": { "examples": ["rel_7m2q8v4k1p9d5h6c"], "pattern": "^rel_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target_release", "type": "string" }, "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "generation_id": { "description": "Null only for a verified release imported during package adoption.", "anyOf": [{ "description": "Unique identifier for a generation.", "examples": ["gen_7h2p5d9c3m8w1k6q"], "pattern": "^gen_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "origin": { "enum": ["typeship", "imported"], "type": "string" }, "version": { "description": "Immutable package version released from this Target.", "type": "string" }, "channel": { "enum": ["stable", "prerelease"], "type": "string" }, "provider": { "description": "Delivery provider that accepted the release.", "type": "string" }, "repository": { "anyOf": [{ "properties": { "provider": { "enum": ["github"], "description": "GitHub is the only launch provider; the field is stable for future adapters.", "type": "string" }, "identifier": { "description": "Provider-native repository identity, opaque outside its adapter.", "examples": ["acme/payments-api"], "maxLength": 512, "type": "string" } }, "type": "object" }, { "type": "null" }] }, "definition_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "delivery_revision": { "description": "Immutable provider-native revision that was merged or published.", "type": "string" }, "import_provenance": { "properties": { "tag": { "type": ["string", "null"] }, "registry_url": { "format": "uri", "type": ["string", "null"] }, "artifact_digest": { "type": ["string", "null"] }, "imported_at": { "format": "date-time", "type": ["string", "null"] } }, "type": ["object", "null"] }, "publications": { "items": { "properties": { "id": { "examples": ["pub_2m8q4v7k1p9d5h6c"], "pattern": "^pub_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "publication", "type": "string" }, "target_release_id": { "examples": ["rel_7m2q8v4k1p9d5h6c"], "pattern": "^rel_[a-z0-9]{16}$", "type": "string" }, "destination": { "enum": ["github", "npm", "pypi", "go", "mcp"], "type": "string" }, "state": { "enum": ["pending", "publishing", "published", "failed"], "type": "string" }, "attempt": { "minimum": 0, "type": "integer" }, "run_url": { "format": "uri", "type": ["string", "null"] }, "registry_url": { "format": "uri", "type": ["string", "null"] }, "artifact_digest": { "type": ["string", "null"] }, "error": { "type": ["string", "null"] }, "started_at": { "format": "date-time", "type": ["string", "null"] }, "finished_at": { "format": "date-time", "type": ["string", "null"] }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
27
+ { "resource": "targets", "method": "retrieveRelease", "command": ["targets", "retrieve-release"], "tool": "targets_retrieve_release", "httpMethod": "GET", "path": "/target_releases/{target_release_id}", "summary": "Retrieve an immutable Target release", "toolDescription": "Retrieve an immutable Target release. GET /target_releases/{target_release_id}", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": false, "select": false, "idempotent": true, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "target_release_id", "ts": "targetReleaseId", "kind": "path", "type": "string", "required": true, "flag": "target-release-id" }], "inputSchema": { "type": "object", "properties": { "target_release_id": { "examples": ["rel_7m2q8v4k1p9d5h6c"], "pattern": "^rel_[a-z0-9]{16}$", "type": "string" } }, "required": ["target_release_id"] }, "exampleArguments": { "target_release_id": "rel_7m2q8v4k1p9d5h6c" }, "outputSchema": { "properties": { "id": { "examples": ["rel_7m2q8v4k1p9d5h6c"], "pattern": "^rel_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target_release", "type": "string" }, "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "generation_id": { "description": "Null only for a verified release imported during package adoption.", "anyOf": [{ "description": "Unique identifier for a generation.", "examples": ["gen_7h2p5d9c3m8w1k6q"], "pattern": "^gen_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "origin": { "enum": ["typeship", "imported"], "type": "string" }, "version": { "description": "Immutable package version released from this Target.", "type": "string" }, "channel": { "enum": ["stable", "prerelease"], "type": "string" }, "provider": { "description": "Delivery provider that accepted the release.", "type": "string" }, "repository": { "anyOf": [{ "properties": { "provider": { "enum": ["github"], "description": "GitHub is the only launch provider; the field is stable for future adapters.", "type": "string" }, "identifier": { "description": "Provider-native repository identity, opaque outside its adapter.", "examples": ["acme/payments-api"], "maxLength": 512, "type": "string" } }, "type": "object" }, { "type": "null" }] }, "definition_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "delivery_revision": { "description": "Immutable provider-native revision that was merged or published.", "type": "string" }, "import_provenance": { "properties": { "tag": { "type": ["string", "null"] }, "registry_url": { "format": "uri", "type": ["string", "null"] }, "artifact_digest": { "type": ["string", "null"] }, "imported_at": { "format": "date-time", "type": ["string", "null"] } }, "type": ["object", "null"] }, "publications": { "items": { "properties": { "id": { "examples": ["pub_2m8q4v7k1p9d5h6c"], "pattern": "^pub_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "publication", "type": "string" }, "target_release_id": { "examples": ["rel_7m2q8v4k1p9d5h6c"], "pattern": "^rel_[a-z0-9]{16}$", "type": "string" }, "destination": { "enum": ["github", "npm", "pypi", "go", "mcp"], "type": "string" }, "state": { "enum": ["pending", "publishing", "published", "failed"], "type": "string" }, "attempt": { "minimum": 0, "type": "integer" }, "run_url": { "format": "uri", "type": ["string", "null"] }, "registry_url": { "format": "uri", "type": ["string", "null"] }, "artifact_digest": { "type": ["string", "null"] }, "error": { "type": ["string", "null"] }, "started_at": { "format": "date-time", "type": ["string", "null"] }, "finished_at": { "format": "date-time", "type": ["string", "null"] }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
28
+ { "resource": "targets", "method": "republishRelease", "command": ["targets", "republish-release"], "tool": "targets_republish_release", "httpMethod": "POST", "path": "/target_releases/{target_release_id}/republish", "summary": "Retry publication of an exact Target release", "description": "Dispatches the repository-owned republish workflow for this immutable version and accepted commit. It never selects the latest Draft or release.", "toolDescription": "Retry publication of an exact Target release. Dispatches the repository-owned republish workflow for this immutable version and accepted commit. POST /target_releases/{target_release_id}/republish", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": true, "select": false, "idempotent": false, "idempotencyHeader": "Idempotency-Key", "auth": "required", "security": [{ "apiKey": [] }], "safety": "write", "params": [{ "name": "target_release_id", "ts": "targetReleaseId", "kind": "path", "type": "string", "required": true, "flag": "target-release-id" }, { "name": "Idempotency-Key", "ts": "idempotencyKey", "kind": "header", "type": "string", "required": false, "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write.", "flag": "idempotency-key" }], "inputSchema": { "type": "object", "properties": { "target_release_id": { "examples": ["rel_7m2q8v4k1p9d5h6c"], "pattern": "^rel_[a-z0-9]{16}$", "type": "string" }, "Idempotency-Key": { "minLength": 1, "maxLength": 255, "pattern": "^[!-~]+$", "type": "string", "description": "Identifies one logical write for 24 hours. The key is scoped to the authenticated account and operation; account-less generation uses a hashed network identity. Retrying the same method, path, query, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write." } }, "required": ["target_release_id"] }, "exampleArguments": { "target_release_id": "rel_7m2q8v4k1p9d5h6c" }, "outputSchema": { "properties": { "id": { "examples": ["rel_7m2q8v4k1p9d5h6c"], "pattern": "^rel_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "target_release", "type": "string" }, "target_id": { "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, "generation_id": { "description": "Null only for a verified release imported during package adoption.", "anyOf": [{ "description": "Unique identifier for a generation.", "examples": ["gen_7h2p5d9c3m8w1k6q"], "pattern": "^gen_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "origin": { "enum": ["typeship", "imported"], "type": "string" }, "version": { "description": "Immutable package version released from this Target.", "type": "string" }, "channel": { "enum": ["stable", "prerelease"], "type": "string" }, "provider": { "description": "Delivery provider that accepted the release.", "type": "string" }, "repository": { "anyOf": [{ "properties": { "provider": { "enum": ["github"], "description": "GitHub is the only launch provider; the field is stable for future adapters.", "type": "string" }, "identifier": { "description": "Provider-native repository identity, opaque outside its adapter.", "examples": ["acme/payments-api"], "maxLength": 512, "type": "string" } }, "type": "object" }, { "type": "null" }] }, "definition_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "delivery_revision": { "description": "Immutable provider-native revision that was merged or published.", "type": "string" }, "import_provenance": { "properties": { "tag": { "type": ["string", "null"] }, "registry_url": { "format": "uri", "type": ["string", "null"] }, "artifact_digest": { "type": ["string", "null"] }, "imported_at": { "format": "date-time", "type": ["string", "null"] } }, "type": ["object", "null"] }, "publications": { "items": { "properties": { "id": { "examples": ["pub_2m8q4v7k1p9d5h6c"], "pattern": "^pub_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "publication", "type": "string" }, "target_release_id": { "examples": ["rel_7m2q8v4k1p9d5h6c"], "pattern": "^rel_[a-z0-9]{16}$", "type": "string" }, "destination": { "enum": ["github", "npm", "pypi", "go", "mcp"], "type": "string" }, "state": { "enum": ["pending", "publishing", "published", "failed"], "type": "string" }, "attempt": { "minimum": 0, "type": "integer" }, "run_url": { "format": "uri", "type": ["string", "null"] }, "registry_url": { "format": "uri", "type": ["string", "null"] }, "artifact_digest": { "type": ["string", "null"] }, "error": { "type": ["string", "null"] }, "started_at": { "format": "date-time", "type": ["string", "null"] }, "finished_at": { "format": "date-time", "type": ["string", "null"] }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
25
29
  { "resource": "generations", "method": "retrieve", "command": ["generations", "retrieve"], "tool": "generations_retrieve", "httpMethod": "GET", "path": "/generations/{generation_id}", "summary": "Retrieve a generation", "description": "Includes the generated files when the generation succeeded.", "toolDescription": "Retrieve a generation. Includes the generated files when the generation succeeded. GET /generations/{generation_id}", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": false, "select": false, "idempotent": true, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "generation_id", "ts": "generationId", "kind": "path", "type": "string", "required": true, "flag": "generation-id" }], "inputSchema": { "type": "object", "properties": { "generation_id": { "description": "Unique identifier for a generation.", "examples": ["gen_7h2p5d9c3m8w1k6q"], "pattern": "^gen_[a-z0-9]{16}$", "type": "string" } }, "required": ["generation_id"] }, "exampleArguments": { "generation_id": "gen_7h2p5d9c3m8w1k6q" }, "outputSchema": { "properties": { "id": { "description": "Unique identifier for a generation.", "examples": ["gen_7h2p5d9c3m8w1k6q"], "pattern": "^gen_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "generation", "type": "string" }, "files_omitted": { "description": "Present and true when the generated target was too large to inline; files_index lists paths, fetche…", "type": "boolean" }, "files_index": { "items": { "type": "object" }, "type": "array" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_revision_id": { "anyOf": [{ "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "status": { "enum": ["succeeded", "failed"], "type": "string" }, "trigger": { "enum": ["manual", "webhook", "poll", "preview"], "type": "string" }, "target_id": { "description": "Persisted Target identity.", "anyOf": [{ "description": "Stable identifier for one configured generated product.", "examples": ["tgt_5m8q2v7k1p9d4h6c"], "pattern": "^tgt_[a-z0-9]{16}$", "type": "string" }, { "type": "null" }] }, "generator": { "enum": ["typescript-sdk", "python-sdk", "go-sdk", "cli", "mcp"], "description": "Generator implementation selected by a Target.", "type": "string" }, "provenance": { "properties": { "generator_edition": { "description": "Pinned generator contract edition.", "type": "string" }, "engine_build": { "description": "Exact engine build identifier used for replay and support.", "type": "string" }, "resolved_config": { "description": "Immutable effective Target configuration used by this run; source credentials are never included.", "type": ["object", "null"] }, "config_hash": { "pattern": "^[a-f0-9]{64}$", "type": ["string", "null"] }, "surface_plan": { "description": "Resolved generator and entitlement plan used to select the emitted public surface.", "type": ["object", "null"] }, "surface_plan_hash": { "pattern": "^[a-f0-9]{64}$", "type": ["string", "null"] }, "entitlement_cap": { "minimum": 1, "type": ["integer", "null"] }, "package_version": { "type": ["string", "null"] } }, "type": "object" }, "meta": { "description": "Null only for a failed or legacy generation that produced no metadata.", "anyOf": [{ "type": "object" }, { "type": "null" }] }, "warnings": { "items": { "type": "string" }, "type": "array" }, "files": { "description": "Present on retrieve and create; omitted in lists.", "items": { "type": "object" }, "type": "array" }, "error": { "type": ["string", "null"] }, "created_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
26
30
  { "resource": "generations", "method": "retrieveFile", "command": ["generations", "retrieve-file"], "tool": "generations_retrieve_file", "httpMethod": "GET", "path": "/generations/{generation_id}/file", "summary": "Fetch one file from a generation", "description": "Raw file content, for generations whose target was too large to inline (files_omitted true). The generation's files_index lists valid paths.", "toolDescription": "Fetch one file from a generation. Raw file content, for generations whose target was too large to inline (files_omitted true). GET /generations/{generation_id}/file", "paginated": false, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": true, "select": false, "idempotent": true, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "generation_id", "ts": "generationId", "kind": "path", "type": "string", "required": true, "flag": "generation-id" }, { "name": "path", "ts": "path", "kind": "query", "type": "string", "required": true, "description": "Repo-relative path inside the generated package.", "flag": "path" }], "inputSchema": { "type": "object", "properties": { "generation_id": { "description": "Unique identifier for a generation.", "examples": ["gen_7h2p5d9c3m8w1k6q"], "pattern": "^gen_[a-z0-9]{16}$", "type": "string" }, "path": { "type": "string", "description": "Repo-relative path inside the generated package." } }, "required": ["generation_id", "path"] }, "exampleArguments": { "generation_id": "gen_7h2p5d9c3m8w1k6q", "path": "openapi.yaml" }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },
27
31
  { "resource": "definitionRevisions", "method": "list", "command": ["definition-revisions", "list"], "tool": "definition_revisions_list", "httpMethod": "GET", "path": "/definitions/{definition_id}/revisions", "summary": "List Definition Revisions", "description": "Immutable snapshots of the complete resolved document graph this Definition observed, newest first. Content is available from the revision and document endpoints and is never embedded in a list response.", "toolDescription": "List Definition Revisions. Immutable snapshots of the complete resolved document graph this Definition observed, newest first. GET /definitions/{definition_id}/revisions (paginated: returns one page plus hasMore and nextPage arguments)", "paginated": true, "hasBody": false, "bodyStyle": "none", "bodyKind": null, "sse": false, "hasParams": true, "select": false, "idempotent": true, "pagination": { "style": "cursor", "itemsField": "data", "cursorParam": "cursor", "nextCursorField": "next_cursor", "hasMoreField": "has_more", "limitParam": "limit" }, "auth": "required", "security": [{ "apiKey": [] }], "safety": "read", "params": [{ "name": "definition_id", "ts": "definitionId", "kind": "path", "type": "string", "required": true, "flag": "definition-id" }, { "name": "limit", "ts": "limit", "kind": "query", "type": "number", "required": false, "description": "Maximum number of resources to return. Default: 20.", "flag": "limit" }, { "name": "cursor", "ts": "cursor", "kind": "query", "type": "string", "required": false, "description": "Opaque cursor from the preceding page's next_cursor. Valid only for the same account, operation, filters, and ordering that issued it.", "flag": "cursor" }], "inputSchema": { "type": "object", "properties": { "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "limit": { "default": 20, "minimum": 1, "maximum": 100, "type": "integer", "description": "Maximum number of resources to return. Default: 20." }, "cursor": { "type": "string", "description": "Opaque cursor from the preceding page's next_cursor. Valid only for the same account, operation, filters, and ordering that issued it." } }, "required": ["definition_id"] }, "exampleArguments": { "definition_id": "def_2p8m4q7k1v9d6h3c" }, "outputSchema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "id": { "description": "Unique identifier for an immutable resolved Definition Revision.", "examples": ["drev_6m1q8v4k2p9d7h3c"], "pattern": "^drev_[a-z0-9]{16}$", "type": "string" }, "object": { "const": "definition_revision", "type": "string" }, "project_id": { "description": "Unique identifier for a project.", "examples": ["prj_4f8k2m7x9q1v6b3n"], "pattern": "^prj_[a-z0-9]{16}$", "type": "string" }, "definition_id": { "description": "Unique identifier for a project's logical API Definition.", "examples": ["def_2p8m4q7k1v9d6h3c"], "pattern": "^def_[a-z0-9]{16}$", "type": "string" }, "format": { "enum": ["openapi", "graphql"], "type": "string" }, "document_count": { "minimum": 1, "type": "integer" }, "documents": { "description": "Present on retrieve; list responses use document_count.", "items": { "properties": { "id": { "description": "Unique identifier for a source document captured in a Definition Revision.", "examples": ["doc_8q2m5v1k9p4d7h3c"], "pattern": "^doc_[a-z0-9]{16}$", "type": "string" }, "role": { "enum": ["entrypoint", "reference"], "type": "string" }, "coordinate": { "description": "Repository-relative path or same-origin URL captured in this revision.", "type": "string" }, "sha256": { "pattern": "^[a-f0-9]{64}$", "type": "string" }, "size_bytes": { "minimum": 0, "type": "integer" } }, "type": "object" }, "type": "array" }, "sha256": { "description": "SHA-256 digest of every document coordinate, digest, and size in the resolved graph.", "examples": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "pattern": "^[a-f0-9]{64}$", "type": "string" }, "size_bytes": { "description": "Total bytes across all source documents.", "minimum": 0, "type": "integer" }, "source": { "description": "Origin recorded when this immutable revision was created.", "anyOf": [{ "anyOf": [{ "type": "object" }, { "type": "object" }] }, { "type": "null" }] }, "created_at": { "format": "date-time", "type": "string" }, "request_id": { "description": "Server-generated identifier used to correlate this response with Typeship logs.", "examples": ["req_3k8m1v6q9p2d7h4c"], "pattern": "^req_[a-z0-9]{16}$", "type": "string" } }, "type": "object" } }, "hasMore": { "type": "boolean", "description": "Whether another page exists" }, "nextPage": { "type": "object", "description": "Arguments that fetch the next page; pass them to this tool", "additionalProperties": true }, "truncated": { "type": "object", "description": "Present when the page was cut to fit the result size cap: how many items were omitted and how to get them", "additionalProperties": true } } }, "credentialOptions": [["bearerToken"], ["credentials.apiKey"]] },