@typeship-ax/cli 0.10.0 → 0.20.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/AGENTS.md +9 -4
- package/README.md +4 -4
- package/api.json +4829 -679
- package/api.md +387 -91
- package/dist/cli-agent.d.ts +5 -5
- package/dist/cli-agent.d.ts.map +1 -1
- package/dist/cli-agent.js +14 -10
- package/dist/cli.js +151 -75
- package/dist/core/http.d.ts +3 -2
- package/dist/core/http.d.ts.map +1 -1
- package/dist/core/http.js +18 -6
- package/dist/errors.d.ts +17 -10
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +24 -15
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -5
- package/dist/ops.d.ts +4 -0
- package/dist/ops.d.ts.map +1 -1
- package/dist/ops.js +45 -35
- package/dist/polling-login.d.ts.map +1 -1
- package/dist/polling-login.js +11 -1
- package/dist/resources/account.d.ts +4 -4
- package/dist/resources/account.d.ts.map +1 -1
- package/dist/resources/account.js +10 -5
- package/dist/resources/api-keys.d.ts +40 -14
- package/dist/resources/api-keys.d.ts.map +1 -1
- package/dist/resources/api-keys.js +45 -13
- package/dist/resources/definition-revisions.d.ts +35 -18
- package/dist/resources/definition-revisions.d.ts.map +1 -1
- package/dist/resources/definition-revisions.js +43 -15
- package/dist/resources/definitions.d.ts +21 -6
- package/dist/resources/definitions.d.ts.map +1 -1
- package/dist/resources/definitions.js +16 -3
- package/dist/resources/generate.d.ts +44 -15
- package/dist/resources/generate.d.ts.map +1 -1
- package/dist/resources/generate.js +55 -13
- package/dist/resources/generations.d.ts +14 -6
- package/dist/resources/generations.d.ts.map +1 -1
- package/dist/resources/generations.js +26 -5
- package/dist/resources/projects.d.ts +106 -53
- package/dist/resources/projects.d.ts.map +1 -1
- package/dist/resources/projects.js +78 -31
- package/dist/resources/targets.d.ts +240 -40
- package/dist/resources/targets.d.ts.map +1 -1
- package/dist/resources/targets.js +307 -21
- package/dist/schemas.d.ts +1 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +171 -111
- package/dist/types.d.ts +1969 -154
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +87 -3
- package/package.json +3 -3
- package/src/cli-agent.ts +17 -13
- package/src/cli.ts +138 -70
- package/src/core/http.ts +17 -6
- package/src/errors.ts +25 -15
- package/src/index.ts +9 -5
- package/src/ops.ts +49 -35
- package/src/polling-login.ts +10 -1
- package/src/resources/account.ts +11 -4
- package/src/resources/api-keys.ts +84 -13
- package/src/resources/definition-revisions.ts +74 -16
- package/src/resources/definitions.ts +28 -4
- package/src/resources/generate.ts +78 -13
- package/src/resources/generations.ts +31 -4
- package/src/resources/projects.ts +141 -39
- package/src/resources/targets.ts +561 -27
- package/src/schemas.ts +172 -112
- package/src/types.ts +2105 -154
package/src/ops.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// typeship — operation manifest for the CLI and MCP server.
|
|
2
|
-
// Generated by typeship — https://typeship.dev
|
|
2
|
+
// Generated by typeship — https://typeship.dev
|
|
3
3
|
|
|
4
4
|
export interface ParamSpec {
|
|
5
5
|
/** wire name (JSON key, query name, or path placeholder) */
|
|
@@ -15,6 +15,8 @@ export interface ParamSpec {
|
|
|
15
15
|
* value — JSON if it parses, else the raw text. */
|
|
16
16
|
type: "string" | "number" | "boolean" | "array" | "object" | "json" | "file";
|
|
17
17
|
required: boolean;
|
|
18
|
+
/** A JSON body flag accepts the literal null as JSON null. */
|
|
19
|
+
nullable?: boolean;
|
|
18
20
|
enum?: string[];
|
|
19
21
|
/** Element type of an "array" param: what each repeated/comma value coerces to. */
|
|
20
22
|
items?: { type: "string" | "number" | "boolean" | "object" | "json"; enum?: string[] };
|
|
@@ -97,43 +99,55 @@ export interface OpSpec {
|
|
|
97
99
|
/** What the tool returns (JSON Schema 2020-12), when the spec documents
|
|
98
100
|
* a success body; paginated tools describe { items, hasMore, nextPage }. */
|
|
99
101
|
outputSchema?: Record<string, unknown>;
|
|
102
|
+
/** File array used by CLI --out, independent of the agent schema budget. */
|
|
103
|
+
fileBundleProperty?: string;
|
|
100
104
|
}
|
|
101
105
|
|
|
102
106
|
export const OPS: OpSpec[] = [
|
|
103
|
-
{"resource":"generate","method":"run","command":["generate","run"],"tool":"generate_run","httpMethod":"POST","path":"/generate","summary":"Generate one Target from a Definition","description":"Stateless generation: nothing is stored. Returns the full generated\npackage as files. Works without an API key: anonymous calls generate\nthe first 25 operations, rate limited per IP address, and the\nresponse's `limits` object says what was held back and where to lift\nit; anonymous calls from a Definition URL also carry `claim.url`, a link\nthat turns the run into a project once a person signs in. With a key, the free plan generates the first 25 operations and\npaid plans generate the complete Definition. A present but invalid key is a\n401, not a downgrade to anonymous.","toolDescription":"Generate one Target from a Definition. Stateless generation: nothing is stored. POST /generate Credential optional.","paginated":false,"hasBody":true,"bodyStyle":"fields","bodyKind":"json","sse":false,"hasParams":true,"select":false,"idempotent":false,"idempotencyHeader":"Idempotency-Key","auth":"optional","security":[{},{"apiKey":[]}],"safety":"write","params":[{"name":"definition","ts":"definition","kind":"body","type":"json","required":true,"description":"A Definition for stateless generation, provided as exactly one URL or inline entrypoint.","flag":"definition"},{"name":"target","ts":"target","kind":"body","type":"object","required":true,"description":"Stateless generator descriptor; no persisted Target is created.","flag":"target"},{"name":"package_name","ts":"package_name","kind":"body","type":"string","required":false,"description":"npm package or Python distribution override. Valid only for the TypeScript and Python SDK targets.","flag":"package-name"},{"name":"module_path","ts":"module_path","kind":"body","type":"string","required":false,"description":"Go module path override. Valid only for the Go SDK. Linked projects derive this from the Go destination repository by default.","flag":"module-path"},{"name":"config","ts":"config","kind":"body","type":"object","required":false,"description":"Everything Typeship needs beyond the Definition, in one object: generation customization (globals, retries, pagination, readme) and how the generated tooling behaves (cli, mcp, package, docs_url). Plain configuration. Typeship never requires vendor extensions inside the Definition itself. Stateless generation also accepts GraphQL settings here; stored projects keep those settings on their Definition.","flag":"config"},{"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":{"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."},"definition":{"description":"A Definition for stateless generation, provided as exactly one URL or inline entrypoint.","anyOf":[{"properties":{"url":{"format":"uri","description":"URL of an OpenAPI document, a GraphQL SDL file, or a GraphQL\nendpoint (introspected automatically). Fetched server-side.","pattern":"^https?://","type":"string"},"headers":{"description":"Request headers for a protected URL. Sent on the document GET and GraphQL introspection POST, never returned or retained by stateless generation.","additionalProperties":{"maxLength":4096,"type":"string"},"type":"object"}},"required":["url"],"additionalProperties":false,"type":"object"},{"properties":{"inline":{"description":"Raw Definition text (OpenAPI JSON/YAML or GraphQL SDL). Up to 10MB.","type":"string"}},"required":["inline"],"additionalProperties":false,"type":"object"}]},"target":{"description":"Stateless generator descriptor; no persisted Target is created.","properties":{"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"}},"required":["generator"],"additionalProperties":false,"type":"object"},"package_name":{"description":"npm package or Python distribution override. Valid only for the TypeScript and Python SDK targets.","type":"string"},"module_path":{"description":"Go module path override. Valid only for the Go SDK. Linked projects derive this from the Go destination repository by default.","type":"string"},"config":{"description":"Everything Typeship needs beyond the Definition, in one object: generation customization (globals, retries, pagination, readme) and how the generated tooling behaves (cli, mcp, package, docs_url). Plain configuration. Typeship never requires vendor extensions inside the Definition itself. Stateless generation also accepts GraphQL settings here; stored projects keep those settings on their Definition.","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":[{"properties":{"style":{"enum":["cursor","cursorFromLastId","page","offset"],"default":"cursor","type":"string"},"items_field":{"description":"Response field holding the item array.","type":"string"},"cursor_param":{"type":"string"},"next_cursor_field":{"type":"string"},"has_more_field":{"type":"string"},"id_field":{"type":"string"},"page_param":{"type":"string"},"offset_param":{"type":"string"},"limit_param":{"type":"string"}},"required":["items_field"],"additionalProperties":false,"type":"object"},{"description":"false disables pagination detection for the operation.","type":"boolean"}]},"type":"object"},"graphql":{"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"},"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.","properties":{"issuer":{"format":"uri","description":"Exact authorization-server issuer, including any tenant path.","type":["string","null"]},"discovery_url":{"format":"uri","description":"Exact metadata URL when it cannot be derived from the issuer.","type":["string","null"]},"authorization_url":{"format":"uri","description":"Authorization endpoint override.","type":["string","null"]},"token_url":{"format":"uri","description":"Token endpoint override.","type":["string","null"]},"device_authorization_url":{"format":"uri","description":"Device-authorization endpoint override.","type":["string","null"]},"scopes":{"description":"Default scopes requested during login.","maxItems":20,"type":["array","null"]},"audience":{"description":"Default audience included in authorization and token requests.","type":["string","null"]},"resource":{"format":"uri","description":"Protected API resource included in authorization and token requests.","type":["string","null"]}},"additionalProperties":false,"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.","properties":{"client_id":{"description":"OAuth client identifier.","minLength":1,"maxLength":200,"type":"string"},"login_method":{"enum":["browser","device",null],"description":"Interactive login method. Browser login uses Authorization Code with PKCE.","type":["string","null"]},"client_auth_method":{"enum":["post","basic",null],"description":"How a runtime-supplied client secret is sent for machine grants.","type":["string","null"]},"redirect_uri":{"format":"uri","description":"Loopback callback URL for browser login.","type":["string","null"]},"organization_parameter":{"enum":["organization","organization_id",null],"description":"Provider parameter used to request an organization during browser login.","type":["string","null"]}},"required":["client_id"],"additionalProperties":false,"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.","properties":{"operation":{"description":"resource.method of a safe identity read with no required arguments.","maxLength":2000,"pattern":"^[\\w$]+\\.[\\w$]+$","type":"string"},"subject_field":{"description":"JSON Pointer to the stable caller ID in the identity response.","maxLength":512,"type":"string"},"account_field":{"description":"JSON Pointer to the customer account ID.","maxLength":512,"type":"string"},"organization_field":{"description":"JSON Pointer to the customer organization ID.","maxLength":512,"type":"string"}},"additionalProperties":false,"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.","properties":{"oauth_application":{"maxLength":64,"pattern":"^[a-z][a-z0-9_-]{0,63}$","type":["string","null"]},"scopes":{"maxItems":20,"type":["array","null"]},"audience":{"type":["string","null"]},"resource":{"format":"uri","type":["string","null"]}},"additionalProperties":false,"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,"items":{"type":"string"},"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":{"additionalProperties":{"anyOf":[{"enum":[false],"type":"boolean"},{"type":"object"}]},"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"}},"required":["definition","target"]},"exampleArguments":{"definition":{"url":"https://example.com"},"target":{"generator":"typescript-sdk"}},"outputSchema":{"properties":{"files":{"items":{"properties":{"path":{"description":"Repo-relative path inside the generated package.","type":"string"},"content":{"type":"string"}},"type":"object"},"type":"array"},"warnings":{"items":{"type":"string"},"type":"array"},"meta":{"properties":{"title":{"type":"string"},"api_version":{"description":"Version declared by the customer's API Definition.","type":"string"},"version":{"description":"Package version selected by the Target's release stream for this generation.","type":"string"},"spec_format":{"enum":["openapi","graphql"],"type":"string"},"oas_version":{"description":"Detected OpenAPI version, \"2.0\", \"3.0\", or \"3.1\".","type":"string"},"converted":{"description":"True when the input was Swagger 2.0 and was converted.","type":"boolean"},"artifact_name":{"description":"Ecosystem-neutral identity of the generated artifact.","type":"string"},"client_name":{"type":"string"},"generators":{"description":"Generator implementations present in this artifact.","uniqueItems":true,"items":{"enum":["typescript-sdk","python-sdk","go-sdk","cli","mcp"],"description":"Generator implementation selected by a Target.","type":"string"},"type":"array"},"resource_count":{"type":"integer"},"operation_count":{"type":"integer"},"schema_count":{"type":"integer"},"paginated_operation_count":{"type":"integer"},"omitted_operation_count":{"description":"Operations beyond the plan's endpoint allowance, not generated.","type":"integer"},"omitted_operations":{"description":"METHOD/path identities of operations omitted by the generation cap.","items":{"type":"string"},"type":"array"},"pr_url":{"description":"Pull request opened by this regeneration, when one was.","type":["string","null"]},"pr_number":{"type":["integer","null"]},"pr_status":{"enum":["opened","no_changes","blocked"],"description":"Whether a destination pull request opened, was unnecessary because the generated tree already match…","type":"string"},"pr_error":{"description":"Why the configured destination pull request was not opened.","type":"string"},"changelog":{"description":"Markdown changelog entry for this regeneration, from the API surface diff.","type":"string"},"breaking_count":{"description":"Breaking changes in the diff; removed methods and fields, changed types, inputs that became required.","type":"integer"},"baseline":{"enum":["destination","none"],"description":"What the diff was measured against; \"destination\" means the .typeship/surface.json merged in the de…","type":"string"},"api_compatibility":{"enum":["compatible","breaking","unknown"],"description":"Objective compatibility of the generated API surface against the merged destination baseline.","type":"string"},"package_compatibility":{"enum":["compatible","breaking","unknown"],"description":"Objective compatibility of public package entry points and selected targets against the merged dest…","type":"string"},"version_correct":{"description":"Whether the generated package version satisfies the cumulative change.","type":["boolean","null"]},"release_readiness":{"enum":["success","failure","error"],"description":"The destination pull request's combined readiness decision for the exact bot-generated head.","type":"string"},"release_readiness_note":{"description":"The release-readiness decision in one line, as the commit status describes it.","type":"string"},"previous_version":{"description":"The package version the destination had before this regeneration.","type":"string"},"file_count":{"type":"integer"},"total_lines":{"type":"integer"},"diagnostics":{"description":"Deterministic Diagnostic summary for the exact Definition Revision consumed.","properties":{"format":{"enum":["openapi","graphql"],"type":"string"},"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"}},"type":"object"}},"type":"object"},"limits":{"description":"Present when the generation was capped: by the free plan, or because the call was anonymous.","properties":{"max_operations":{"description":"How many operations this generation was allowed to include.","type":"integer"},"generated_operations":{"description":"How many operations are present in the generated package.","type":"integer"},"omitted_operations":{"description":"How many operations in the Definition were left out.","type":"integer"},"total_operations":{"description":"How many operations Typeship found in the complete Definition.","type":"integer"},"reason":{"enum":["anonymous","free_plan"],"type":"string"},"signup_url":{"description":"Anonymous calls only.","type":"string"},"upgrade_url":{"description":"Where the cap is lifted.","type":"string"}},"type":"object"},"claim":{"description":"Anonymous, URL-sourced generations only.","anyOf":[{"type":"null"},{"properties":{"url":{"type":"string"},"expires_at":{"format":"date-time","type":"string"}},"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"]]},
|
|
104
|
-
{"resource":"
|
|
105
|
-
{"resource":"projects","method":"create","command":["projects","create"],"tool":"projects_create","httpMethod":"POST","path":"/projects","summary":"Create a project","description":"Stores a URL- or GitHub-sourced project. Free includes one stored project, every selected target, and the first 25 operations, while keeping manual and automatic regeneration, history, destination pull requests, and preview checks. Stateless POST /generate does not consume this slot. Pro adds projects and generates every operation in the Definition.","toolDescription":"Create a project. Stores a URL- or GitHub-sourced project. POST /projects","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":"name","ts":"name","kind":"body","type":"string","required":true,"flag":"name"},{"name":"definition","ts":"definition","kind":"body","type":"object","required":true,"flag":"definition"},{"name":"targets","ts":"targets","kind":"body","type":"array","required":true,"items":{"type":"object"},"description":"Initial first-class Targets. More than one may use the same generator with different identities or Deliveries.","flag":"targets"},{"name":"auto_generate","ts":"auto_generate","kind":"body","type":"boolean","required":false,"description":"Whether Typeship should regenerate automatically when the source changes. Default: 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. Default: false.","flag":"relay-enabled"},{"name":"config","ts":"config","kind":"body","type":"json","required":false,"description":"Shared defaults inherited by every Target. GraphQL settings belong in definition.graphql.","flag":"config"},{"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":{"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":{"properties":{"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":[{"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":{"default":[],"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":{"description":"GraphQL-only endpoint, auth, environment, title, and scalar settings.","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"}},"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":["source"],"additionalProperties":false,"type":"object"},"targets":{"description":"Initial first-class Targets. More than one may use the same generator with different identities or Deliveries.","minItems":1,"items":{"properties":{"name":{"minLength":1,"maxLength":80,"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"},"edition":{"default":"2026-08-24","type":"string"},"release_channel":{"enum":["stable","prerelease"],"default":"stable","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,"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"]}},"additionalProperties":false,"type":"object"},{"type":"null"}]},"deliveries":{"maxItems":2,"items":{"anyOf":[{"type":"object"},{"type":"object"}]},"type":"array"}},"required":["name","generator"],"additionalProperties":false,"type":"object"},"type":"array"},"auto_generate":{"description":"Whether Typeship should regenerate automatically when the source changes. Default: false.","default":false,"type":"boolean"},"relay_enabled":{"description":"Enable webhook relay sessions. Requires the CLI target and Pro. Default: false.","default":false,"type":"boolean"},"config":{"description":"Shared defaults inherited by every Target. GraphQL settings belong in definition.graphql.","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":["name","definition","targets"]},"exampleArguments":{"name":"example","definition":{"source":{"kind":"url","url":"https://example.com"}},"targets":[{"name":"example","generator":"typescript-sdk"}]},"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"]]},
|
|
106
|
-
{"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"]]},
|
|
107
|
-
{"resource":"projects","method":"
|
|
108
|
-
{"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"]]},
|
|
109
|
-
{"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"]]},
|
|
110
|
-
{"resource":"projects","method":"
|
|
111
|
-
{"resource":"projects","method":"
|
|
112
|
-
{"resource":"projects","method":"
|
|
113
|
-
{"resource":"projects","method":"
|
|
114
|
-
{"resource":"projects","method":"
|
|
115
|
-
{"resource":"
|
|
116
|
-
{"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"]]},
|
|
117
|
-
{"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"]]},
|
|
118
|
-
{"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"]]},
|
|
119
|
-
{"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"]]},
|
|
120
|
-
{"resource":"targets","method":"
|
|
121
|
-
{"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"]]},
|
|
122
|
-
{"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"]]},
|
|
123
|
-
{"resource":"targets","method":"
|
|
124
|
-
{"resource":"targets","method":"
|
|
125
|
-
{"resource":"targets","method":"
|
|
126
|
-
{"resource":"targets","method":"
|
|
127
|
-
{"resource":"targets","method":"
|
|
128
|
-
{"resource":"
|
|
129
|
-
{"resource":"
|
|
130
|
-
{"resource":"
|
|
131
|
-
{"resource":"
|
|
132
|
-
{"resource":"
|
|
133
|
-
{"resource":"
|
|
134
|
-
{"resource":"
|
|
135
|
-
{"resource":"
|
|
136
|
-
{"resource":"
|
|
107
|
+
{"resource":"generate","method":"run","command":["generate","run"],"tool":"generate_run","httpMethod":"POST","path":"/generate","summary":"Generate one package from a Definition","description":"Returns one generated package without creating a Project.\n\nSupports [idempotent retries](https://typeship.dev/docs/typeship-api/idempotency); keyed responses include generated files in the replay cache.\n\nUse `download.url` to save the complete ZIP, verify `download.sha256`, and extract it into an empty directory. The link expires at `download.expires_at` and grants access to anyone who has it. CLI, MCP, and SDK calls supply an idempotency key automatically. Agents should request `fields=[\"download\",\"meta\",\"warnings\",\"limits\",\"claim\"]` to keep the MCP result compact; files can exceed the response limit. Download the ZIP instead of repeating generation to retrieve omitted files.\n\nAnonymous and Free requests include the first 25 operations. Paid plans include all operations. Anonymous requests are rate limited by IP address. Check `limits` for omitted operations; an invalid API key returns `401`.\n\nAn anonymous URL request without source headers may return `claim.url`. Sign in through that link within seven days to save the recipe as a Project.","toolDescription":"Generate one package from a Definition. Returns one generated package without creating a Project. POST /generate Credential optional.","paginated":false,"hasBody":true,"bodyStyle":"fields","bodyKind":"json","sse":false,"hasParams":true,"select":false,"idempotent":false,"idempotencyHeader":"Idempotency-Key","auth":"optional","security":[{},{"apiKey":[]}],"safety":"write","params":[{"name":"definition","ts":"definition","kind":"body","type":"json","required":true,"description":"A Definition for one-shot generation, provided as exactly one URL or inline entrypoint.","flag":"definition"},{"name":"target","ts":"target","kind":"body","type":"object","required":true,"description":"One-shot generator descriptor; no persisted Target is created.","flag":"target"},{"name":"package_name","ts":"package_name","kind":"body","type":"string","required":false,"description":"npm package or Python distribution override. Valid only for the TypeScript and Python SDK targets.","flag":"package-name"},{"name":"module_path","ts":"module_path","kind":"body","type":"string","required":false,"description":"Go module path override for the generated artifact's own module. Valid only for the Go SDK and Go CLI outputs. Linked projects derive this from the Go destination repository by default.","flag":"module-path"},{"name":"go_sdk","ts":"go_sdk","kind":"body","type":"object","required":false,"description":"The exact paired Go SDK a go-cli generation is built on. Required when target.generator is go-cli and rejected otherwise. The descriptor is closed and immutable, because a CLI that pins a range or a branch pins nothing.","flag":"go-sdk"},{"name":"config","ts":"config","kind":"body","type":"object","required":false,"description":"Everything Typeship needs beyond the Definition, in one object: generation customization (globals, retries, pagination, readme) and how the generated tooling behaves (cli, mcp, package, docs_url). Plain configuration. Typeship never requires vendor extensions inside the Definition itself. One-shot generation also accepts GraphQL settings here; stored projects keep those settings on their Definition.","flag":"config"},{"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, If-Match header, 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":{"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, If-Match header, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write."},"definition":{"description":"A Definition for one-shot generation, provided as exactly one URL or inline entrypoint.","anyOf":[{"properties":{"url":{"format":"uri","description":"URL of an OpenAPI document, a GraphQL SDL file, or a GraphQL\nendpoint (introspected automatically). Fetched server-side.","pattern":"^https?://","type":"string"},"headers":{"description":"Request headers for a protected URL. Sent on the document GET and GraphQL introspection POST, never returned or retained by one-shot generation.","additionalProperties":{"maxLength":4096,"type":"string"},"type":"object"}},"required":["url"],"additionalProperties":false,"type":"object"},{"properties":{"inline":{"description":"Raw Definition text (OpenAPI JSON/YAML or GraphQL SDL). Up to 10MB.","type":"string"}},"required":["inline"],"additionalProperties":false,"type":"object"}],"example":{"url":"https://typeship.dev/examples/petstore/openapi.yaml"}},"target":{"description":"One-shot generator descriptor; no persisted Target is created.","properties":{"generator":{"enum":["typescript-sdk","python-sdk","go-sdk","cli","go-cli","mcp"],"description":"Generator implementation selected by a Target. This is configuration, not identity; several Targets may use the same generator. cli is the TypeScript CLI; go-cli is the native Go CLI, a distinct product that imports one exact paired Go SDK module rather than a client of its own.","type":"string"}},"required":["generator"],"additionalProperties":false,"type":"object","example":{"generator":"cli"}},"package_name":{"description":"npm package or Python distribution override. Valid only for the TypeScript and Python SDK targets.","type":"string"},"module_path":{"description":"Go module path override for the generated artifact's own module. Valid only for the Go SDK and Go CLI outputs. Linked projects derive this from the Go destination repository by default.","type":"string"},"go_sdk":{"description":"The exact paired Go SDK a go-cli generation is built on. Required when target.generator is go-cli and rejected otherwise. The descriptor is closed and immutable, because a CLI that pins a range or a branch pins nothing.","properties":{"module_path":{"description":"Go module path of the SDK the CLI imports, for example github.com/acme/payments-go. Must be a valid Go module path.","type":"string"},"version":{"description":"Exact SDK module version the CLI requires: v-prefixed SemVer such as v1.2.3, or an immutable Go pseudo-version naming a commit such as v0.0.0-20240824120000-abcdef123456. Ranges, branches, and \"latest\" are rejected.","type":"string"},"definition_digest":{"description":"SHA-256 hex digest of the Definition the SDK was generated from. Must match the resolved Definition, or the request fails with spec_error.","pattern":"^[a-f0-9]{64}$","type":"string"},"edition":{"description":"The generator edition the SDK was generated with. Only the current edition, 2026-08-24, is accepted.","type":"string"},"package_name":{"description":"Go package identifier of the SDK, when the module path's last element does not imply it. Optional.","type":"string"}},"required":["module_path","version","definition_digest","edition"],"additionalProperties":false,"type":"object"},"config":{"description":"Everything Typeship needs beyond the Definition, in one object: generation customization (globals, retries, pagination, readme) and how the generated tooling behaves (cli, mcp, package, docs_url). Plain configuration. Typeship never requires vendor extensions inside the Definition itself. One-shot generation also accepts GraphQL settings here; stored projects keep those settings on their Definition.","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":[{"properties":{"style":{"enum":["cursor","cursorFromLastId","page","offset"],"default":"cursor","type":"string"},"items_field":{"description":"Response field holding the item array.","type":"string"},"cursor_param":{"type":"string"},"next_cursor_field":{"type":"string"},"has_more_field":{"type":"string"},"id_field":{"type":"string"},"page_param":{"type":"string"},"offset_param":{"type":"string"},"limit_param":{"type":"string"}},"required":["items_field"],"additionalProperties":false,"type":"object"},{"description":"false disables pagination detection for the operation.","type":"boolean"}]},"type":"object"},"graphql":{"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"},"auth":{"description":"Public authentication defaults for generated clients and tools. Stored Projects own the OAuth server, application catalog, and identity policy; one-shot 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.","properties":{"issuer":{"format":"uri","description":"Exact authorization-server issuer, including any tenant path.","type":["string","null"]},"discovery_url":{"format":"uri","description":"Exact metadata URL when it cannot be derived from the issuer.","type":["string","null"]},"authorization_url":{"format":"uri","description":"Authorization endpoint override.","type":["string","null"]},"token_url":{"format":"uri","description":"Token endpoint override.","type":["string","null"]},"device_authorization_url":{"format":"uri","description":"Device-authorization endpoint override.","type":["string","null"]},"scopes":{"description":"Default scopes requested during login.","maxItems":20,"type":["array","null"]},"audience":{"description":"Default audience included in authorization and token requests.","type":["string","null"]},"resource":{"format":"uri","description":"Protected API resource included in authorization and token requests.","type":["string","null"]}},"additionalProperties":false,"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.","properties":{"client_id":{"description":"OAuth client identifier.","minLength":1,"maxLength":200,"type":"string"},"login_method":{"enum":["browser","device",null],"description":"Interactive login method. Browser login uses Authorization Code with PKCE.","type":["string","null"]},"client_auth_method":{"enum":["post","basic",null],"description":"How a runtime-supplied client secret is sent for machine grants.","type":["string","null"]},"redirect_uri":{"format":"uri","description":"Loopback callback URL for browser login.","type":["string","null"]},"organization_parameter":{"enum":["organization","organization_id",null],"description":"Provider parameter used to request an organization during browser login.","type":["string","null"]}},"required":["client_id"],"additionalProperties":false,"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 or null. At least one of subject_field, account_field, or organization_field must be a non-null JSON Pointer. Null clears an individual mapping while another remains. Set identity_verification itself to null to remove the whole policy.","example":{"subject_field":"/id","account_field":"/account_id","organization_field":"/organization_id"},"properties":{"operation":{"description":"resource.method of a safe identity read with no required arguments.","maxLength":2000,"pattern":"^[\\w$]+\\.[\\w$]+$","type":["string","null"]},"subject_field":{"description":"JSON Pointer to the stable caller ID in the identity response.","example":"/id","maxLength":512,"pattern":"^/(?:[^~\\x00-\\x1f\\x7f]|~[01])*$","type":["string","null"]},"account_field":{"description":"JSON Pointer to the customer account ID.","example":"/account_id","maxLength":512,"pattern":"^/(?:[^~\\x00-\\x1f\\x7f]|~[01])*$","type":["string","null"]},"organization_field":{"description":"JSON Pointer to the customer organization ID.","example":"/organization_id","maxLength":512,"pattern":"^/(?:[^~\\x00-\\x1f\\x7f]|~[01])*$","type":["string","null"]}},"additionalProperties":false,"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.","properties":{"oauth_application":{"maxLength":64,"pattern":"^[a-z][a-z0-9_-]{0,63}$","type":["string","null"]},"scopes":{"maxItems":20,"type":["array","null"]},"audience":{"type":["string","null"]},"resource":{"format":"uri","type":["string","null"]}},"additionalProperties":false,"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"},"changelog_url":{"description":"Public HTTP(S) URL read by the optional changelog command in generated CLIs. Supports UTF-8 Markdown, plain text, and static HTML; embedded credentials are not allowed. Omit or clear to disable, then regenerate.","type":["string","null"]},"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,"items":{"type":"string"},"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":{"additionalProperties":{"anyOf":[{"enum":[false],"type":"boolean"},{"type":"object"}]},"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","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"}},"required":["definition","target"]},"exampleArguments":{"definition":{"url":"https://typeship.dev/examples/petstore/openapi.yaml"},"target":{"generator":"cli"}},"fileBundleProperty":"files","outputSchema":{"properties":{"files":{"items":{"type":"object"},"type":"array"},"download":{"description":"Complete package ZIP from this exact result.","properties":{"url":{"format":"uri","type":"string"},"expires_at":{"format":"date-time","type":"string"},"sha256":{"description":"SHA-256 of the downloaded ZIP bytes.","pattern":"^[a-f0-9]{64}$","type":"string"},"size_bytes":{"minimum":0,"type":"integer"},"file_count":{"minimum":0,"type":"integer"}},"type":"object"},"warnings":{"items":{"type":"string"},"type":"array"},"meta":{"properties":{"title":{"type":"string"},"api_version":{"description":"Version declared by the customer's API Definition.","type":"string"},"version":{"description":"Package version selected by the Target's release stream for this generation.","type":"string"},"spec_format":{"enum":["openapi","graphql"],"type":"string"},"oas_version":{"description":"Detected OpenAPI version, \"2.0\", \"3.0\", or \"3.1\".","type":"string"},"converted":{"description":"True when the input was Swagger 2.0 and was converted.","type":"boolean"},"artifact_name":{"description":"Ecosystem-neutral identity of the generated artifact.","type":"string"},"client_name":{"type":"string"},"generators":{"description":"Generator implementations present in this artifact.","uniqueItems":true,"type":"array"},"go_sdk":{"description":"Present for go-cli generations only.","type":"object"},"resource_count":{"type":"integer"},"operation_count":{"type":"integer"},"schema_count":{"type":"integer"},"paginated_operation_count":{"type":"integer"},"omitted_operation_count":{"description":"Operations beyond the plan's endpoint allowance, not generated.","type":"integer"},"omitted_operations":{"description":"METHOD/path identities of operations omitted by the generation cap.","type":"array"},"pr_url":{"description":"Pull request opened by this regeneration, when one was.","type":["string","null"]},"pr_number":{"type":["integer","null"]},"pr_status":{"enum":["opened","no_changes","blocked"],"description":"Whether a destination pull request opened, was unnecessary because the generated tree already match…","type":"string"},"changelog":{"description":"Markdown changelog entry for this regeneration, from the API surface diff.","type":"string"},"breaking_count":{"description":"Breaking changes in the diff; removed methods and fields, changed types, inputs that became required.","type":"integer"},"baseline":{"enum":["destination","last-generation","none"],"description":"What the diff was measured against.","type":"string"},"api_compatibility":{"enum":["compatible","breaking","unknown"],"description":"Objective compatibility of the generated API surface against the merged destination baseline.","type":"string"},"package_compatibility":{"enum":["compatible","breaking","unknown"],"description":"Objective compatibility of public package entry points and selected targets against the merged dest…","type":"string"},"version_correct":{"description":"Whether the generated package version satisfies the cumulative change.","type":["boolean","null"]},"release_readiness":{"enum":["success","failure","pending","error"],"description":"The destination pull request's combined readiness decision for the exact bot-generated head.","type":"string"},"release_readiness_note":{"description":"The release-readiness decision in one line, as the commit status describes it.","type":"string"},"previous_version":{"description":"The package version the destination had before this regeneration.","type":"string"},"customer_change_count":{"description":"Files changed by the customer relative to the accepted combined baseline.","minimum":0,"type":"integer"},"integration_state":{"enum":["conflicted","checking","checks_failed","ready","accepted","outdated"],"type":"string"},"published_compatibility":{"enum":["compatible","breaking","unknown","not_applicable"],"description":"Separate compatibility result against the last published artifact.","type":"string"},"published_version":{"description":"Version of the last published artifact used by published_compatibility.","type":"string"},"file_count":{"type":"integer"},"total_lines":{"type":"integer"},"diagnostics":{"description":"Deterministic Diagnostic summary for the exact Definition Revision consumed.","type":"object"}},"type":"object"},"limits":{"description":"Present when the generation was capped: by the free plan, or because the call was anonymous.","properties":{"max_operations":{"description":"How many operations this generation was allowed to include.","type":"integer"},"generated_operations":{"description":"How many operations are present in the generated package.","type":"integer"},"omitted_operations":{"description":"How many operations in the Definition were left out.","type":"integer"},"total_operations":{"description":"How many operations Typeship found in the complete Definition.","type":"integer"},"reason":{"enum":["anonymous","free_plan"],"type":"string"},"signup_url":{"description":"Anonymous calls only.","type":"string"},"upgrade_url":{"description":"Where the cap is lifted.","type":"string"}},"type":"object"},"claim":{"description":"Anonymous, URL-sourced generations only.","anyOf":[{"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"]]},
|
|
108
|
+
{"resource":"generate","method":"downloadPackage","command":["generate","download-package"],"tool":"generate_download_package","httpMethod":"GET","path":"/generate/download","summary":"Download a generated package","description":"Download the complete ZIP referenced by `generate_run`'s `download.url`. Pass the token from that URL. No API key is needed; the token grants access only to that exact package until its replay window expires. Keep the token private.\n\nThe local MCP server saves this binary response to disk. On a hosted MCP connection, download the original URL directly to your workspace. Verify the ZIP against `download.sha256` before extracting it into an empty directory. Expired or invalid tokens return `404`; a new generation creates a new download.","toolDescription":"Download a generated package. Download the complete ZIP referenced by `generate_run`'s `download.url`. GET /generate/download No credential needed.","paginated":false,"hasBody":false,"bodyStyle":"none","bodyKind":null,"sse":false,"hasParams":true,"select":false,"idempotent":true,"auth":"none","security":[{}],"safety":"read","params":[{"name":"token","ts":"token","kind":"query","type":"string","required":true,"description":"Private download token from download.url in the generation result.","flag":"query-token"}],"inputSchema":{"type":"object","properties":{"token":{"minLength":43,"maxLength":43,"pattern":"^[A-Za-z0-9_-]{43}$","type":"string","example":"parcel_download_example_token_1234567890123","description":"Private download token from download.url in the generation result."}},"required":["token"]},"exampleArguments":{"token":"parcel_download_example_token_1234567890123"},"credentialOptions":[]},
|
|
109
|
+
{"resource":"projects","method":"list","command":["projects","list"],"tool":"projects_list","httpMethod":"GET","path":"/projects","summary":"List projects","toolDescription":"List projects. GET /projects (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":"limit","ts":"limit","kind":"query","type":"number","required":false,"description":"Maximum number of resources to return. Omit for 20; otherwise supply base-10 digits representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400 invalid_request. List query parameters must appear only once; unrecognized parameters also return 400. 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. Omit to start at the first page. Empty, malformed, or repeated cursors return 400 invalid_request. The page limit may change between requests.","flag":"cursor"}],"inputSchema":{"type":"object","properties":{"limit":{"default":20,"minimum":1,"maximum":100,"type":"integer","description":"Maximum number of resources to return. Omit for 20; otherwise supply base-10 digits representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400 invalid_request. List query parameters must appear only once; unrecognized parameters also return 400. Default: 20."},"cursor":{"minLength":1,"maxLength":2048,"pattern":"^[A-Za-z0-9_-]+$","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. Omit to start at the first page. Empty, malformed, or repeated cursors return 400 invalid_request. The page limit may change between requests."}}},"exampleArguments":{},"outputSchema":{"type":"object","properties":{"items":{"type":"array","items":{"description":"Lean Project identity returned by collection endpoints. Retrieve the Project for shared configuration and list its Targets for the complete canonical child collection.","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":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"updated_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 get them","additionalProperties":true}}},"credentialOptions":[["bearerToken"],["credentials.apiKey"]]},
|
|
110
|
+
{"resource":"projects","method":"create","command":["projects","create"],"tool":"projects_create","httpMethod":"POST","path":"/projects","summary":"Create a project","description":"Creates a Project from a URL or GitHub Definition.\n\nFree includes one saved Project, all selected Targets, and the first 25 operations per Target, with regeneration, history, delivery pull requests, and previews. Pro supports additional Projects and all operations. One-shot generation does not use a Project slot.","toolDescription":"Create a project. Creates a Project from a URL or GitHub Definition. POST /projects","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":"name","ts":"name","kind":"body","type":"string","required":true,"flag":"name"},{"name":"definition","ts":"definition","kind":"body","type":"object","required":true,"flag":"definition"},{"name":"targets","ts":"targets","kind":"body","type":"array","required":true,"items":{"type":"object"},"description":"Initial first-class Targets. More than one may use the same generator with different identities or Deliveries.","flag":"targets"},{"name":"auto_generate","ts":"auto_generate","kind":"body","type":"boolean","required":false,"description":"Whether Typeship should regenerate automatically when the source changes. Default: 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. Default: false.","flag":"relay-enabled"},{"name":"config","ts":"config","kind":"body","type":"json","required":false,"nullable":true,"description":"Shared defaults inherited by every Target. GraphQL settings belong in definition.graphql.","flag":"config"},{"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, If-Match header, 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":{"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, If-Match header, 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","example":"Parcel API"},"definition":{"properties":{"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":[{"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":["parcel-example/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":{"default":[],"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":{"description":"GraphQL-only endpoint, auth, environment, title, and scalar settings.","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"}},"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":["source"],"additionalProperties":false,"type":"object","example":{"source":{"kind":"url","url":"https://api.parcel.example/openapi.json"}}},"targets":{"description":"Initial first-class Targets. More than one may use the same generator with different identities or Deliveries.","minItems":1,"items":{"properties":{"name":{"minLength":1,"maxLength":80,"type":"string"},"generator":{"enum":["typescript-sdk","python-sdk","go-sdk","cli","go-cli","mcp"],"description":"Generator implementation selected by a Target. This is configuration, not identity; several Targets may use the same generator. cli is the TypeScript CLI; go-cli is the native Go CLI, a distinct product that imports one exact paired Go SDK module rather than a client of its own.","type":"string"},"state":{"enum":["active","disabled"],"default":"active","type":"string"},"edition":{"default":"2026-08-24","type":"string"},"release_channel":{"enum":["stable","prerelease"],"default":"stable","type":"string"},"proposed_version":{"type":["string","null"]},"checks":{"description":"Required checks run against the complete combined package. Generated checks and customer commands share one reproducible workflow; repository_required names existing repository checks. Supplying checks replaces all settings. Omitted generated restores build, package, and public_entrypoint; omitted repository_required and customer restore empty lists. An empty object restores these defaults. An empty array clears the corresponding list.","properties":{"generated":{"default":["build","package","public_entrypoint"],"uniqueItems":true,"items":{"enum":["build","package","public_entrypoint"],"type":"string"},"type":"array"},"repository_required":{"maxItems":50,"uniqueItems":true,"items":{"minLength":1,"maxLength":120,"type":"string"},"type":"array"},"customer":{"maxItems":20,"items":{"type":"object"},"type":"array"}},"additionalProperties":false,"type":"object"},"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":{"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,"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":{"description":"Per-operation pagination control, keyed by operationId or \"METHOD /path\". Unmatched keys are reported as generation warnings.","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","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"}]},"deliveries":{"maxItems":2,"items":{"anyOf":[{"type":"object"},{"type":"object"}]},"type":"array"}},"required":["name","generator"],"additionalProperties":false,"type":"object"},"type":"array","example":[{"name":"Parcel CLI","generator":"cli","deliveries":[{"kind":"repository","repository":{"provider":"github","identifier":"parcel-example/parcel-client"},"package_name":"parcel-client","publish_on_merge":false}]}]},"auto_generate":{"description":"Whether Typeship should regenerate automatically when the source changes. Default: false.","default":false,"type":"boolean"},"relay_enabled":{"description":"Enable webhook relay sessions. Requires the CLI target and Pro. Default: false.","default":false,"type":"boolean"},"config":{"description":"Shared defaults inherited by every Target. GraphQL settings belong in definition.graphql.","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; one-shot 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 or null. At least one of subject_field, account_field, or organization_field must be a non-null JSON Pointer. Null clears an individual mapping while another remains. Set identity_verification itself to null to remove the whole policy.","example":{"subject_field":"/id","account_field":"/account_id","organization_field":"/organization_id"},"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"},"changelog_url":{"description":"Public HTTP(S) URL read by the optional changelog command in generated CLIs. Supports UTF-8 Markdown, plain text, and static HTML; embedded credentials are not allowed. Omit or clear to disable, then regenerate.","type":["string","null"]},"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","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":["name","definition","targets"]},"exampleArguments":{"name":"Parcel API","definition":{"source":{"kind":"url","url":"https://api.parcel.example/openapi.json"}},"targets":[{"name":"Parcel CLI","generator":"cli","deliveries":[{"kind":"repository","repository":{"provider":"github","identifier":"parcel-example/parcel-client"},"package_name":"parcel-client","publish_on_merge":false}]}]},"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":{"format":"uri","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"]]},
|
|
111
|
+
{"resource":"projects","method":"retrieve","command":["projects","retrieve"],"tool":"projects_retrieve","httpMethod":"GET","path":"/projects/{project_id}","summary":"Retrieve a project","description":"Returns the Project's settings and Definition ID. List its Targets separately to retrieve Target configuration and Deliveries.","toolDescription":"Retrieve a project. Returns the Project's settings and Definition ID. 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":{"format":"uri","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"]]},
|
|
112
|
+
{"resource":"projects","method":"delete","command":["projects","delete"],"tool":"projects_delete","httpMethod":"DELETE","path":"/projects/{project_id}","summary":"Delete a project","description":"A `502` response means the Project was not deleted because its release pull requests could not be retired. Retry deletion to finish retiring the remaining reviews. Repeating a completed deletion returns `404`.\nSee [conditional writes](https://typeship.dev/docs/typeship-api#conditional-writes) for ETag and If-Match.","toolDescription":"Delete a project. A `502` response means the Project was not deleted because its release pull requests could not be retired. DELETE /projects/{project_id}","paginated":false,"hasBody":false,"bodyStyle":"none","bodyKind":null,"sse":false,"hasParams":true,"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}},{"name":"If-Match","ts":"ifMatch","kind":"header","type":"string","required":false,"description":"ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes.","flag":"if-match"}],"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"},"If-Match":{"minLength":1,"maxLength":1024,"type":"string","description":"ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes."}},"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"]]},
|
|
113
|
+
{"resource":"projects","method":"update","command":["projects","update"],"tool":"projects_update","httpMethod":"PATCH","path":"/projects/{project_id}","summary":"Update a project","description":"Omitted fields keep their current values. A supplied config replaces the entire stored object; null or an empty object clears it.\nOmitting If-Match applies the update to the current resource; with If-Match, a stale ETag returns 412 precondition_failed without saving.\n\nA `409 target_busy` means a Target is publishing. Retrieve the Project, wait for publication to finish, reconcile your update, and retry.\nA `502` response means the Project was saved, but an obsolete release pull request could not be retired. Retrieve the Project and retry the same update to finish retiring reviews if that update is still desired.\nSee [conditional writes](https://typeship.dev/docs/typeship-api#conditional-writes) for ETag and If-Match.","toolDescription":"Update a project. Omitted fields keep their current values. PATCH /projects/{project_id}","paginated":false,"hasBody":true,"bodyStyle":"fields","bodyKind":"json","sse":false,"hasParams":true,"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,"nullable":true,"description":"Replaces the Project's shared Target defaults. Send null to clear them.","flag":"config"},{"name":"If-Match","ts":"ifMatch","kind":"header","type":"string","required":false,"description":"ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes.","flag":"if-match"}],"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"},"If-Match":{"minLength":1,"maxLength":1024,"type":"string","description":"ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes."},"name":{"minLength":1,"maxLength":80,"type":"string"},"auto_generate":{"type":"boolean","example":true},"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; one-shot 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 or null. At least one of subject_field, account_field, or organization_field must be a non-null JSON Pointer. Null clears an individual mapping while another remains. Set identity_verification itself to null to remove the whole policy.","example":{"subject_field":"/id","account_field":"/account_id","organization_field":"/organization_id"},"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"},"changelog_url":{"description":"Public HTTP(S) URL read by the optional changelog command in generated CLIs. Supports UTF-8 Markdown, plain text, and static HTML; embedded credentials are not allowed. Omit or clear to disable, then regenerate.","type":["string","null"]},"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","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","auto_generate":true},"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":{"format":"uri","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"]]},
|
|
114
|
+
{"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":"Checks the latest Definition Revision after applying its saved patches. Each finding groups affected locations under a stable rule ID. A suggested patch is included only when the Definition provides enough information to determine the correction.","toolDescription":"Analyze a project's latest Definition Revision. Checks the latest Definition Revision after applying its saved 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 CLI, MCP, or SDK 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 CLI, MCP, or SDK 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"]]},
|
|
115
|
+
{"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 configured source and returns updated Diagnostics. Creates a Definition Revision only when the content changes. Does not generate Targets or use a metered generation.","toolDescription":"Refresh a project's Diagnostics from its configured source. Fetches the configured source and returns updated 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, If-Match header, 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, If-Match header, 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 CLI, MCP, or SDK 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 CLI, MCP, or SDK 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"]]},
|
|
116
|
+
{"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 reviewed patches from Diagnostics. For a repository source, opens or updates a source pull request. For a URL source, saves Definition patches.\n\nFindings that need an API-owner decision return `422`. Read the finding's `authoring_brief` and update the source instead.","toolDescription":"Apply exact, reviewed diagnostic remediations. Applies reviewed patches from Diagnostics. 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, If-Match header, 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, If-Match header, 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","example":["missing-operation-id"]}},"required":["project_id","diagnostic_ids"]},"exampleArguments":{"project_id":"prj_4f8k2m7x9q1v6b3n","diagnostic_ids":["missing-operation-id"]},"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"]]},
|
|
117
|
+
{"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":"Checks repository access, Definition readability, source-approval labels, and required checks. Includes the latest webhook delivery so you can investigate missing updates.","toolDescription":"Diagnose a project's repository integrations. Checks repository access, Definition readability, source-approval labels, and required checks. 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":["parcel-example/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"]]},
|
|
118
|
+
{"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. Omit for 20; otherwise supply base-10 digits representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400 invalid_request. List query parameters must appear only once; unrecognized parameters also return 400. 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. Omit to start at the first page. Empty, malformed, or repeated cursors return 400 invalid_request. The page limit may change between requests.","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. Omit for 20; otherwise supply base-10 digits representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400 invalid_request. List query parameters must appear only once; unrecognized parameters also return 400. Default: 20."},"cursor":{"minLength":1,"maxLength":2048,"pattern":"^[A-Za-z0-9_-]+$","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. Omit to start at the first page. Empty, malformed, or repeated cursors return 400 invalid_request. The page limit may change between requests."},"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":"cli","provenance":{"generator_edition":"2026-08-24","resolved_config":{"cli":{"command_name":"parcel"}},"package_version":"1.0.0"},"meta":{"title":"Parcel API","api_version":"1.0.0","version":"1.0.0","oas_version":"3.1","artifact_name":"parcel-client","client_name":"ParcelClient","generators":["cli"]},"warnings":[],"errors":[],"created_at":"2026-09-23T08: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":["queued","running","succeeded","failed"],"description":"A Generation moves from queued to running, then succeeds when its files are saved or fails.","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","go-cli","mcp"],"description":"Generator implementation selected by a Target.","type":"string"},"provenance":{"properties":{"generator_edition":{"description":"Pinned generator contract edition.","type":"string"},"resolved_config":{"description":"Recorded configuration for this Generation in the public Config format, including inherited Project…","anyOf":[{"description":"Everything Typeship needs beyond the Definition, in one object: generation customization (globals,…","type":"object"},{"type":"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"},"errors":{"description":"Recorded failures.","items":{"type":"object"},"type":"array"},"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"]]},
|
|
119
|
+
{"resource":"projects","method":"generate","command":["projects","generate"],"tool":"projects_generate","httpMethod":"POST","path":"/projects/{project_id}/generations","summary":"Start generation for active Targets","description":"Queues one Generation per active Target and returns their IDs. Retrieve each Generation until its status moves from `queued` to `running` and then `succeeded` or `failed`. `succeeded` means generated files are saved; check Delivery and Draft status separately for repository delivery and pull requests. A Target already queued or running is returned without starting another Generation. A matching Idempotency-Key replay returns the same Generations with their current statuses.\n\nIf the package already matches a destination and no Draft is open, delivery reports `pr_status: no_changes` without creating a commit, branch, or pull request. An existing Draft stays open. Automatic generation uses the same workflow.","toolDescription":"Start generation for active Targets. Queues one Generation per active Target and returns their IDs. POST /projects/{project_id}/generations","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":"target_id","ts":"target_id","kind":"body","type":"string","required":false,"description":"Stable identifier for one configured generated product.","flag":"target-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, If-Match header, 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, If-Match header, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write."},"target_id":{"description":"Stable identifier for one configured generated product.","examples":["tgt_5m8q2v7k1p9d4h6c"],"pattern":"^tgt_[a-z0-9]{16}$","type":"string","example":"tgt_5m8q2v7k1p9d4h6c"}},"required":["project_id"]},"exampleArguments":{"project_id":"prj_4f8k2m7x9q1v6b3n","target_id":"tgt_5m8q2v7k1p9d4h6c"},"outputSchema":{"description":"One Generation per selected Target. Retrieve each Generation for current status and generated files.","properties":{"data":{"items":{"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":"cli","provenance":{"generator_edition":"2026-08-24","resolved_config":{"cli":{"command_name":"parcel"}},"package_version":"1.0.0"},"meta":{"title":"Parcel API","api_version":"1.0.0","version":"1.0.0","oas_version":"3.1","artifact_name":"parcel-client","client_name":"ParcelClient","generators":["cli"]},"warnings":[],"errors":[],"created_at":"2026-09-23T08: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":["queued","running","succeeded","failed"],"description":"A Generation moves from queued to running, then succeeds when its files are saved or fails. Delivery and Draft status are separate.","type":"string"},"trigger":{"enum":["manual","webhook","poll","preview"],"type":"string"},"target_id":{"description":"Persisted Target identity. Null only for one-shot 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","go-cli","mcp"],"description":"Generator implementation selected by a Target. This is configuration, not identity; several Targets may use the same generator. cli is the TypeScript CLI; go-cli is the native Go CLI, a distinct product that imports one exact paired Go SDK module rather than a client of its own.","type":"string"},"provenance":{"properties":{"generator_edition":{"description":"Pinned generator contract edition.","type":"string"},"resolved_config":{"description":"Recorded configuration for this Generation in the public Config format, including inherited Project defaults and Target overrides. Later edits do not change it. Source credentials are never included. Null when no configuration was recorded.","anyOf":[{"description":"Everything Typeship needs beyond the Definition, in one object: generation customization (globals, retries, pagination, readme) and how the generated tooling behaves (cli, mcp, package, docs_url). Plain configuration. Typeship never requires vendor extensions inside the Definition itself. One-shot generation also accepts GraphQL settings here; stored projects keep those settings on their Definition.","type":"object"},{"type":"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"},"errors":{"description":"Recorded failures. Empty when this resource has no recorded failure.","items":{"type":"object"},"type":"array"},"created_at":{"format":"date-time","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"]]},
|
|
120
|
+
{"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":["parcel-example/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"]]},
|
|
121
|
+
{"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 source documents before saving the update and records a new Definition Revision when the source changes.\nOmitted fields remain unchanged; supplied objects and arrays replace the whole field.\nIf the Definition or its Project configuration changes during validation, returns 409 definition_changed without saving the rejected update. Retrieve the current Definition and Project, reconcile your changes,\nand submit a new request with a new Idempotency-Key if using one.\n\nSee [conditional writes](https://typeship.dev/docs/typeship-api#conditional-writes) for ETag and If-Match.","toolDescription":"Update and resolve a Definition. Resolves the source documents before saving the update and records a new Definition Revision when the source changes. 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"},"description":"Replace all patches in order. An empty array removes every patch; null is invalid.","flag":"patches"},{"name":"graphql","ts":"graphql","kind":"body","type":"json","required":false,"nullable":true,"description":"Replace all GraphQL settings. Null or an empty object clears them.","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":"If-Match","ts":"ifMatch","kind":"header","type":"string","required":false,"description":"ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes.","flag":"if-match"},{"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, If-Match header, 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"},"If-Match":{"minLength":1,"maxLength":1024,"type":"string","description":"ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes."},"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, If-Match header, 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":["parcel-example/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"}],"example":{"kind":"url","url":"https://api.parcel.example/openapi.json"}},"patches":{"description":"Replace all patches in order. An empty array removes every patch; null is invalid.","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":{"description":"Replace all GraphQL settings. Null or an empty object clears them.","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","source":{"kind":"url","url":"https://api.parcel.example/openapi.json"}},"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":["parcel-example/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"]]},
|
|
122
|
+
{"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. Omit for 20; otherwise supply base-10 digits representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400 invalid_request. List query parameters must appear only once; unrecognized parameters also return 400. 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. Omit to start at the first page. Empty, malformed, or repeated cursors return 400 invalid_request. The page limit may change between requests.","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. Omit for 20; otherwise supply base-10 digits representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400 invalid_request. List query parameters must appear only once; unrecognized parameters also return 400. Default: 20."},"cursor":{"minLength":1,"maxLength":2048,"pattern":"^[A-Za-z0-9_-]+$","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. Omit to start at the first page. Empty, malformed, or repeated cursors return 400 invalid_request. The page limit may change between requests."}},"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","go-cli","mcp"],"description":"Generator implementation selected by a Target.","type":"string"},"dependency":{"description":"Present only on a go-cli Target, naming the sibling Go SDK Target the CLI is generated against.","anyOf":[{"description":"One Target generated from a sibling Target.","properties":{"kind":{"const":"go_sdk_module","type":"string"},"target_id":{"description":"Stable identifier for one configured generated product.","examples":["tgt_5m8q2v7k1p9d4h6c"],"pattern":"^tgt_[a-z0-9]{16}$","type":"string"}},"type":"object"},{"type":"null"}]},"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":"Read-only version of the Target's Current release, or null before its first release.","type":["string","null"]},"proposed_version":{"type":["string","null"]},"proposed_version_source":{"enum":["console","api","github",null],"type":["string","null"]},"checks":{"description":"Required checks run against the complete combined package.","properties":{"generated":{"default":["build","package","public_entrypoint"],"uniqueItems":true,"items":{"enum":["build","package","public_entrypoint"],"type":"string"},"type":"array"},"repository_required":{"maxItems":50,"uniqueItems":true,"items":{"minLength":1,"maxLength":120,"type":"string"},"type":"array"},"customer":{"maxItems":20,"items":{"type":"object"},"type":"array"}},"type":"object"},"config":{"description":"Target-specific overrides merged over Project.config.","anyOf":[{"description":"Target-specific generation and delivery overrides.","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":"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","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"}]},"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 ge…","additionalProperties":true}}},"credentialOptions":[["bearerToken"],["credentials.apiKey"]]},
|
|
123
|
+
{"resource":"targets","method":"create","command":["targets","create"],"tool":"targets_create","httpMethod":"POST","path":"/projects/{project_id}/targets","summary":"Create an independently configured Target","description":"Creates a Target with its own configuration, Deliveries, and release history. Multiple Targets can use the same generator.","toolDescription":"Create an independently configured Target. Creates a Target with its own configuration, Deliveries, and release history. 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","go-cli","mcp"],"description":"Generator implementation selected by a Target. This is configuration, not identity; several Targets may use the same generator. cli is the TypeScript CLI; go-cli is the native Go CLI, a distinct product that imports one exact paired Go SDK module rather than a client of its own.","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,"nullable":true,"description":"Optional larger or prerelease SemVer for the next reviewed release.","flag":"proposed-version"},{"name":"checks","ts":"checks","kind":"body","type":"object","required":false,"description":"Required checks run against the complete combined package. Generated checks and customer commands share one reproducible workflow; repository_required names existing repository checks. Supplying checks replaces all settings. Omitted generated restores build, package, and public_entrypoint; omitted repository_required and customer restore empty lists. An empty object restores these defaults. An empty array clears the corresponding list.","flag":"checks"},{"name":"config","ts":"config","kind":"body","type":"json","required":false,"nullable":true,"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, If-Match header, 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, If-Match header, 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","example":"Parcel CLI"},"definition_id":{"description":"Unique identifier for a project's logical API Definition.","examples":["def_2p8m4q7k1v9d6h3c"],"pattern":"^def_[a-z0-9]{16}$","type":"string","example":"def_2p8m4q7k1v9d6h3c"},"generator":{"enum":["typescript-sdk","python-sdk","go-sdk","cli","go-cli","mcp"],"description":"Generator implementation selected by a Target. This is configuration, not identity; several Targets may use the same generator. cli is the TypeScript CLI; go-cli is the native Go CLI, a distinct product that imports one exact paired Go SDK module rather than a client of its own.","type":"string","example":"cli"},"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"]},"checks":{"description":"Required checks run against the complete combined package. Generated checks and customer commands share one reproducible workflow; repository_required names existing repository checks. Supplying checks replaces all settings. Omitted generated restores build, package, and public_entrypoint; omitted repository_required and customer restore empty lists. An empty object restores these defaults. An empty array clears the corresponding list.","properties":{"generated":{"default":["build","package","public_entrypoint"],"uniqueItems":true,"items":{"enum":["build","package","public_entrypoint"],"type":"string"},"type":"array"},"repository_required":{"maxItems":50,"uniqueItems":true,"items":{"minLength":1,"maxLength":120,"type":"string"},"type":"array"},"customer":{"maxItems":20,"items":{"properties":{"name":{"minLength":1,"maxLength":120,"type":"string"},"command":{"minLength":1,"maxLength":2000,"type":"string"}},"required":["name","command"],"additionalProperties":false,"type":"object"},"type":"array"}},"additionalProperties":false,"type":"object"},"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":{"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":"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"},"changelog_url":{"description":"Public HTTP(S) URL read by the optional changelog command in generated CLIs. Supports UTF-8 Markdown, plain text, and static HTML; embedded credentials are not allowed. Omit or clear to disable, then regenerate.","type":["string","null"]},"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","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"}],"example":{"cli":{"command_name":"parcel"}}},"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":["parcel-example/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":"Go module identity for the Go SDK or Go CLI Target 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","example":[{"kind":"repository","repository":{"provider":"github","identifier":"parcel-example/parcel-client"},"package_name":"parcel-client","publish_on_merge":false}]}},"required":["project_id","name","definition_id","generator"]},"exampleArguments":{"project_id":"prj_4f8k2m7x9q1v6b3n","name":"Parcel CLI","definition_id":"def_2p8m4q7k1v9d6h3c","generator":"cli","config":{"cli":{"command_name":"parcel"}},"deliveries":[{"kind":"repository","repository":{"provider":"github","identifier":"parcel-example/parcel-client"},"package_name":"parcel-client","publish_on_merge":false}]},"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","go-cli","mcp"],"description":"Generator implementation selected by a Target.","type":"string"},"dependency":{"description":"Present only on a go-cli Target, naming the sibling Go SDK Target the CLI is generated against.","anyOf":[{"description":"One Target generated from a sibling Target.","properties":{"kind":{"const":"go_sdk_module","type":"string"},"target_id":{"description":"Stable identifier for one configured generated product.","examples":["tgt_5m8q2v7k1p9d4h6c"],"pattern":"^tgt_[a-z0-9]{16}$","type":"string"}},"type":"object"},{"type":"null"}]},"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":"Read-only version of the Target's Current release, or null before its first release.","type":["string","null"]},"proposed_version":{"type":["string","null"]},"proposed_version_source":{"enum":["console","api","github",null],"type":["string","null"]},"checks":{"description":"Required checks run against the complete combined package.","properties":{"generated":{"default":["build","package","public_entrypoint"],"uniqueItems":true,"items":{"enum":["build","package","public_entrypoint"],"type":"string"},"type":"array"},"repository_required":{"maxItems":50,"uniqueItems":true,"items":{"minLength":1,"maxLength":120,"type":"string"},"type":"array"},"customer":{"maxItems":20,"items":{"type":"object"},"type":"array"}},"type":"object"},"config":{"description":"Target-specific overrides merged over Project.config.","anyOf":[{"description":"Target-specific generation and delivery overrides.","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":"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","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"}]},"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"]]},
|
|
124
|
+
{"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","go-cli","mcp"],"description":"Generator implementation selected by a Target.","type":"string"},"dependency":{"description":"Present only on a go-cli Target, naming the sibling Go SDK Target the CLI is generated against.","anyOf":[{"description":"One Target generated from a sibling Target.","properties":{"kind":{"const":"go_sdk_module","type":"string"},"target_id":{"description":"Stable identifier for one configured generated product.","examples":["tgt_5m8q2v7k1p9d4h6c"],"pattern":"^tgt_[a-z0-9]{16}$","type":"string"}},"type":"object"},{"type":"null"}]},"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":"Read-only version of the Target's Current release, or null before its first release.","type":["string","null"]},"proposed_version":{"type":["string","null"]},"proposed_version_source":{"enum":["console","api","github",null],"type":["string","null"]},"checks":{"description":"Required checks run against the complete combined package.","properties":{"generated":{"default":["build","package","public_entrypoint"],"uniqueItems":true,"items":{"enum":["build","package","public_entrypoint"],"type":"string"},"type":"array"},"repository_required":{"maxItems":50,"uniqueItems":true,"items":{"minLength":1,"maxLength":120,"type":"string"},"type":"array"},"customer":{"maxItems":20,"items":{"type":"object"},"type":"array"}},"type":"object"},"config":{"description":"Target-specific overrides merged over Project.config.","anyOf":[{"description":"Target-specific generation and delivery overrides.","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":"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","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"}]},"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"]]},
|
|
125
|
+
{"resource":"targets","method":"delete","command":["targets","delete"],"tool":"targets_delete","httpMethod":"DELETE","path":"/targets/{target_id}","summary":"Delete an unused Target","description":"Deletes a Target with no Generation history, release history, or active Draft. A `409 resource_has_dependencies` means one of those resources still depends on it. Retrieve the Target, disable it instead, or resolve the dependency before retrying.\n\nSee [conditional writes](https://typeship.dev/docs/typeship-api#conditional-writes) for ETag and If-Match.","toolDescription":"Delete an unused Target. Deletes a Target with no Generation history, release history, or active Draft. DELETE /targets/{target_id}","paginated":false,"hasBody":false,"bodyStyle":"none","bodyKind":null,"sse":false,"hasParams":true,"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"},{"name":"If-Match","ts":"ifMatch","kind":"header","type":"string","required":false,"description":"ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes.","flag":"if-match"}],"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"},"If-Match":{"minLength":1,"maxLength":1024,"type":"string","description":"ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes."}},"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"]]},
|
|
126
|
+
{"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","description":"Omitted fields keep their current values. Supplied config, checks, and deliveries replace their complete stored values.\nOmitting If-Match applies the update to the current resource; with If-Match, a stale ETag returns 412 precondition_failed without saving.\nSend proposed_version by itself; use the Draft endpoint to select a version directly.\n\nA `409 target_busy` means the Target is publishing; wait for it to finish. A `409 delivery_conflict` means another Target owns the requested repository tree; retrieve both Targets, choose a free destination, and retry.\nA `502` response means the update was saved, but retiring an obsolete review or regenerating a version selection failed. Retrieve the Target and follow the error's retryable and suggested_action fields. Repeating an unfinished version selection resumes generation; repeating a completed selection starts no new work.\nSee [conditional writes](https://typeship.dev/docs/typeship-api#conditional-writes) for ETag and If-Match.","toolDescription":"Update a Target, its Deliveries, or its next reviewed version. Omitted fields keep their current values. PATCH /targets/{target_id}","paginated":false,"hasBody":true,"bodyStyle":"fields","bodyKind":"json","sse":false,"hasParams":true,"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,"nullable":true,"description":"Send only this field to select an exact SemVer, or null for automatic selection. The Target and Draft endpoints both support an optional If-Match precondition.","flag":"proposed-version"},{"name":"checks","ts":"checks","kind":"body","type":"object","required":false,"description":"Required checks run against the complete combined package. Generated checks and customer commands share one reproducible workflow; repository_required names existing repository checks. Supplying checks replaces all settings. Omitted generated restores build, package, and public_entrypoint; omitted repository_required and customer restore empty lists. An empty object restores these defaults. An empty array clears the corresponding list.","flag":"checks"},{"name":"config","ts":"config","kind":"body","type":"json","required":false,"nullable":true,"description":"Replaces the complete stored override object. Send null or an empty object to resume Project inheritance. Effective values merge over Project.config; GraphQL settings belong to the Definition.","flag":"config"},{"name":"deliveries","ts":"deliveries","kind":"body","type":"array","required":false,"items":{"type":"json"},"description":"Replaces the Delivery set; include each kind you want to keep. Retained kinds preserve their ID, creation time, and hosted URL. Each supplied Delivery replaces its configuration, so omitted optional settings reset to their defaults. Omit deliveries to keep the existing set, or send [] to remove all Deliveries. Removing and later recreating a kind allocates a new ID and, for hosted_mcp, a new URL.","flag":"deliveries"},{"name":"If-Match","ts":"ifMatch","kind":"header","type":"string","required":false,"description":"ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes.","flag":"if-match"}],"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"},"If-Match":{"minLength":1,"maxLength":1024,"type":"string","description":"ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes."},"name":{"minLength":1,"maxLength":80,"type":"string"},"state":{"enum":["active","disabled"],"type":"string","example":"disabled"},"edition":{"type":"string"},"release_channel":{"enum":["stable","prerelease"],"type":"string"},"proposed_version":{"description":"Send only this field to select an exact SemVer, or null for automatic selection. The Target and Draft endpoints both support an optional If-Match precondition.","type":["string","null"]},"checks":{"description":"Required checks run against the complete combined package. Generated checks and customer commands share one reproducible workflow; repository_required names existing repository checks. Supplying checks replaces all settings. Omitted generated restores build, package, and public_entrypoint; omitted repository_required and customer restore empty lists. An empty object restores these defaults. An empty array clears the corresponding list.","properties":{"generated":{"default":["build","package","public_entrypoint"],"uniqueItems":true,"items":{"enum":["build","package","public_entrypoint"],"type":"string"},"type":"array"},"repository_required":{"maxItems":50,"uniqueItems":true,"items":{"minLength":1,"maxLength":120,"type":"string"},"type":"array"},"customer":{"maxItems":20,"items":{"properties":{"name":{"minLength":1,"maxLength":120,"type":"string"},"command":{"minLength":1,"maxLength":2000,"type":"string"}},"required":["name","command"],"additionalProperties":false,"type":"object"},"type":"array"}},"additionalProperties":false,"type":"object"},"config":{"description":"Replaces the complete stored override object. Send null or an empty object to resume Project inheritance. Effective values merge over Project.config; GraphQL settings 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":{"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":"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"},"changelog_url":{"description":"Public HTTP(S) URL read by the optional changelog command in generated CLIs. Supports UTF-8 Markdown, plain text, and static HTML; embedded credentials are not allowed. Omit or clear to disable, then regenerate.","type":["string","null"]},"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","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"}]},"deliveries":{"description":"Replaces the Delivery set; include each kind you want to keep. Retained kinds preserve their ID, creation time, and hosted URL. Each supplied Delivery replaces its configuration, so omitted optional settings reset to their defaults. Omit deliveries to keep the existing set, or send [] to remove all Deliveries. Removing and later recreating a kind allocates a new ID and, for hosted_mcp, a new URL.","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":["parcel-example/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":"Go module identity for the Go SDK or Go CLI Target 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","state":"disabled"},"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","go-cli","mcp"],"description":"Generator implementation selected by a Target.","type":"string"},"dependency":{"description":"Present only on a go-cli Target, naming the sibling Go SDK Target the CLI is generated against.","anyOf":[{"description":"One Target generated from a sibling Target.","properties":{"kind":{"const":"go_sdk_module","type":"string"},"target_id":{"description":"Stable identifier for one configured generated product.","examples":["tgt_5m8q2v7k1p9d4h6c"],"pattern":"^tgt_[a-z0-9]{16}$","type":"string"}},"type":"object"},{"type":"null"}]},"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":"Read-only version of the Target's Current release, or null before its first release.","type":["string","null"]},"proposed_version":{"type":["string","null"]},"proposed_version_source":{"enum":["console","api","github",null],"type":["string","null"]},"checks":{"description":"Required checks run against the complete combined package.","properties":{"generated":{"default":["build","package","public_entrypoint"],"uniqueItems":true,"items":{"enum":["build","package","public_entrypoint"],"type":"string"},"type":"array"},"repository_required":{"maxItems":50,"uniqueItems":true,"items":{"minLength":1,"maxLength":120,"type":"string"},"type":"array"},"customer":{"maxItems":20,"items":{"type":"object"},"type":"array"}},"type":"object"},"config":{"description":"Target-specific overrides merged over Project.config.","anyOf":[{"description":"Target-specific generation and delivery overrides.","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":"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","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"}]},"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"]]},
|
|
127
|
+
{"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. Omit for 20; otherwise supply base-10 digits representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400 invalid_request. List query parameters must appear only once; unrecognized parameters also return 400. 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. Omit to start at the first page. Empty, malformed, or repeated cursors return 400 invalid_request. The page limit may change between requests.","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. Omit for 20; otherwise supply base-10 digits representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400 invalid_request. List query parameters must appear only once; unrecognized parameters also return 400. Default: 20."},"cursor":{"minLength":1,"maxLength":2048,"pattern":"^[A-Za-z0-9_-]+$","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. Omit to start at the first page. Empty, malformed, or repeated cursors return 400 invalid_request. The page limit may change between requests."}},"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":["parcel-example/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"},"source_digest":{"description":"Digest of the exact accepted source tree used for publication.","type":["string","null"]},"checks":{"items":{"properties":{"name":{"type":"string"},"source":{"enum":["typeship","customer","repository","compatibility"],"type":"string"},"state":{"enum":["pending","passed","failed","not_assessed"],"type":"string"},"reason":{"type":"string"},"revision":{"type":"string"},"url":{"format":"uri","type":["string","null"]},"observed_at":{"format":"date-time","type":["string","null"]}},"type":"object"},"type":"array"},"accepted_risks":{"items":{"properties":{"comparison":{"enum":["current","published"],"type":"string"},"reason":{"type":"string"},"approved_by":{"type":"string"},"approved_revision":{"type":"string"},"approved_at":{"format":"date-time","type":"string"}},"type":"object"},"type":"array"},"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","disabled"],"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"]},"errors":{"description":"Recorded failures. Empty when this resource has no recorded failure.","type":"array"},"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"]]},
|
|
128
|
+
{"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 the Draft's status and its one next step, Current's version, the proposed version, readiness, checks, and conflict counts. Every status is described on `status`. The response carries an `ETag`; send it in `If-Match` when updating the Draft to avoid changing a newer version selection.","toolDescription":"Retrieve a Target's rolling Draft release. Returns the Draft's status and its one next step, Current's version, the proposed version, readiness, checks, and conflict counts. 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"},"project_id":{"description":"Unique identifier for a project.","examples":["prj_4f8k2m7x9q1v6b3n"],"pattern":"^prj_[a-z0-9]{16}$","type":"string"},"status":{"enum":["no_draft","generating","branch_changed","conflicted","needs_generation","history_rewritten","checking","failed","ready"],"description":"The Draft's state and its one next step.","type":"string"},"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],"description":"Where the selection was made.","type":["string","null"]}},"type":"object"}]},"readiness":{"anyOf":[{"description":"Readiness decision for the Draft's head_revision.","properties":{"state":{"enum":["success","failure","error","pending"],"description":"success means required checks passed; failure means the Draft needs correction or review; error mea…","type":"string"},"description":{"description":"Human-readable explanation of the current decision.","type":"string"},"api_compatibility":{"enum":["compatible","breaking","unknown"],"description":"API surface comparison against Current.","type":"string"},"package_compatibility":{"enum":["compatible","breaking","unknown"],"description":"Package and supported SDK source comparison against Current.","type":"string"},"version_correct":{"description":"Whether the version satisfies the assessed change.","type":["boolean","null"]},"required_bump":{"enum":["major","minor","patch",null],"description":"Minimum assessed version bump.","type":["string","null"]},"previous_version":{"description":"Version used for the comparison.","type":["string","null"]},"title_error":{"description":"Draft title error that must be corrected before release.","type":["string","null"]}},"type":"object"},{"type":"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":{"description":"Draft commit that readiness, checks, and conflicts describe.","type":["string","null"]},"pull_request_url":{"format":"uri","type":["string","null"]},"generation_id":{"description":"Generation whose package this Draft contains.","anyOf":[{"description":"Unique identifier for a generation.","examples":["gen_7h2p5d9c3m8w1k6q"],"pattern":"^gen_[a-z0-9]{16}$","type":"string"},{"type":"null"}]},"conflicts":{"description":"Conflict counts for the current merge stage; null when the Draft has no conflicts.","anyOf":[{"properties":{"total":{"description":"Conflicts in the current merge stage.","minimum":1,"type":"integer"},"decided":{"description":"Conflicts with a saved decision for head_revision.","minimum":0,"type":"integer"}},"type":"object"},{"type":"null"}]},"customized_files":{"description":"Files where the Draft differs from the last accepted package; null until the Draft is integrated.","minimum":0,"type":["integer","null"]},"history_recovery":{"description":"Present only while status is history_rewritten.","anyOf":[{"description":"The approval inputs for a default-branch history rewrite.","properties":{"default_revision":{"description":"Rewritten default-branch commit.","type":"string"},"head_revision":{"description":"Draft commit Typeship last observed.","type":["string","null"]},"preserved_branch":{"description":"Existing Draft branch that stays available after recovery opens a new Draft.","type":["string","null"]}},"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"},"checks":{"items":{"properties":{"name":{"type":"string"},"source":{"enum":["typeship","customer","repository","compatibility"],"type":"string"},"state":{"enum":["pending","passed","failed","not_assessed"],"type":"string"},"reason":{"type":"string"},"revision":{"type":"string"},"url":{"format":"uri","type":["string","null"]},"observed_at":{"format":"date-time","type":["string","null"]}},"type":"object"},"type":"array"}},"type":"object"},"credentialOptions":[["bearerToken"],["credentials.apiKey"]]},
|
|
129
|
+
{"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":"Checks your version choice against the required version bump, then regenerates the existing Draft pull request.\n\nSend the Draft's `ETag` in `If-Match` to reject an intervening change with 412 precondition_failed before saving or regenerating. Omitting `If-Match` applies the selection to the current Draft. Version is required; null restores automatic selection.\n\nA `502` response means the selected version was saved, but regeneration failed. Follow the error's retryable and suggested_action fields. Repeating an unfinished selection resumes generation; repeating a completed selection starts no new work. If using If-Match, retrieve the Draft and confirm the saved selection before retrying with its current ETag.\nA `409 target_busy` means the Target is publishing; wait and retry. A `409 version_occupied` means the version is already released; retrieve the Draft and releases, choose a new version, and retry.\nSee [conditional writes](https://typeship.dev/docs/typeship-api#conditional-writes) for ETag and If-Match.","toolDescription":"Select an exact Draft version or return to automatic versioning. Checks your version choice against the required version bump, then regenerates the existing Draft pull request. PATCH /targets/{target_id}/draft","paginated":false,"hasBody":true,"bodyStyle":"fields","bodyKind":"json","sse":false,"hasParams":true,"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,"nullable":true,"description":"Exact SemVer, or null to return to automatic selection.","flag":"body-version"},{"name":"If-Match","ts":"ifMatch","kind":"header","type":"string","required":false,"description":"ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes.","flag":"if-match"}],"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"},"If-Match":{"minLength":1,"maxLength":1024,"type":"string","description":"ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes."},"version":{"description":"Exact SemVer, or null to return to automatic selection.","type":["string","null"],"example":"1.1.0"}},"required":["target_id","version"]},"exampleArguments":{"target_id":"tgt_5m8q2v7k1p9d4h6c","version":"1.1.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"},"project_id":{"description":"Unique identifier for a project.","examples":["prj_4f8k2m7x9q1v6b3n"],"pattern":"^prj_[a-z0-9]{16}$","type":"string"},"status":{"enum":["no_draft","generating","branch_changed","conflicted","needs_generation","history_rewritten","checking","failed","ready"],"description":"The Draft's state and its one next step.","type":"string"},"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],"description":"Where the selection was made.","type":["string","null"]}},"type":"object"}]},"readiness":{"anyOf":[{"description":"Readiness decision for the Draft's head_revision.","properties":{"state":{"enum":["success","failure","error","pending"],"description":"success means required checks passed; failure means the Draft needs correction or review; error mea…","type":"string"},"description":{"description":"Human-readable explanation of the current decision.","type":"string"},"api_compatibility":{"enum":["compatible","breaking","unknown"],"description":"API surface comparison against Current.","type":"string"},"package_compatibility":{"enum":["compatible","breaking","unknown"],"description":"Package and supported SDK source comparison against Current.","type":"string"},"version_correct":{"description":"Whether the version satisfies the assessed change.","type":["boolean","null"]},"required_bump":{"enum":["major","minor","patch",null],"description":"Minimum assessed version bump.","type":["string","null"]},"previous_version":{"description":"Version used for the comparison.","type":["string","null"]},"title_error":{"description":"Draft title error that must be corrected before release.","type":["string","null"]}},"type":"object"},{"type":"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":{"description":"Draft commit that readiness, checks, and conflicts describe.","type":["string","null"]},"pull_request_url":{"format":"uri","type":["string","null"]},"generation_id":{"description":"Generation whose package this Draft contains.","anyOf":[{"description":"Unique identifier for a generation.","examples":["gen_7h2p5d9c3m8w1k6q"],"pattern":"^gen_[a-z0-9]{16}$","type":"string"},{"type":"null"}]},"conflicts":{"description":"Conflict counts for the current merge stage; null when the Draft has no conflicts.","anyOf":[{"properties":{"total":{"description":"Conflicts in the current merge stage.","minimum":1,"type":"integer"},"decided":{"description":"Conflicts with a saved decision for head_revision.","minimum":0,"type":"integer"}},"type":"object"},{"type":"null"}]},"customized_files":{"description":"Files where the Draft differs from the last accepted package; null until the Draft is integrated.","minimum":0,"type":["integer","null"]},"history_recovery":{"description":"Present only while status is history_rewritten.","anyOf":[{"description":"The approval inputs for a default-branch history rewrite.","properties":{"default_revision":{"description":"Rewritten default-branch commit.","type":"string"},"head_revision":{"description":"Draft commit Typeship last observed.","type":["string","null"]},"preserved_branch":{"description":"Existing Draft branch that stays available after recovery opens a new Draft.","type":["string","null"]}},"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"},"checks":{"items":{"properties":{"name":{"type":"string"},"source":{"enum":["typeship","customer","repository","compatibility"],"type":"string"},"state":{"enum":["pending","passed","failed","not_assessed"],"type":"string"},"reason":{"type":"string"},"revision":{"type":"string"},"url":{"format":"uri","type":["string","null"]},"observed_at":{"format":"date-time","type":["string","null"]}},"type":"object"},"type":"array"}},"type":"object"},"credentialOptions":[["bearerToken"],["credentials.apiKey"]]},
|
|
130
|
+
{"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":"Checks the repository tag, package metadata, and registry artifact, then records the package as an Imported Current release. Opens the first Typeship Draft at the next major version; review it to establish the baseline for preserving existing code.","toolDescription":"Adopt a verified existing package as Current. Checks the repository tag, package metadata, and registry artifact, then records the package as an Imported Current release. 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, If-Match header, 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, If-Match header, 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","example":"1.0.0"},"tag":{"description":"Immutable repository tag containing the matching package source.","minLength":1,"maxLength":255,"type":"string","example":"v1.0.0"}},"required":["target_id","version","tag"]},"exampleArguments":{"target_id":"tgt_5m8q2v7k1p9d4h6c","version":"1.0.0","tag":"v1.0.0"},"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":["parcel-example/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"},"source_digest":{"description":"Digest of the exact accepted source tree used for publication.","type":["string","null"]},"checks":{"items":{"properties":{"name":{"type":"string"},"source":{"enum":["typeship","customer","repository","compatibility"],"type":"string"},"state":{"enum":["pending","passed","failed","not_assessed"],"type":"string"},"reason":{"type":"string"},"revision":{"type":"string"},"url":{"format":"uri","type":["string","null"]},"observed_at":{"format":"date-time","type":["string","null"]}},"type":"object"},"type":"array"},"accepted_risks":{"items":{"properties":{"comparison":{"enum":["current","published"],"type":"string"},"reason":{"type":"string"},"approved_by":{"type":"string"},"approved_revision":{"type":"string"},"approved_at":{"format":"date-time","type":"string"}},"type":"object"},"type":"array"},"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","disabled"],"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"]},"errors":{"description":"Recorded failures. Empty when this resource has no recorded failure.","items":{"type":"object"},"type":"array"},"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"]]},
|
|
131
|
+
{"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":["parcel-example/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"},"source_digest":{"description":"Digest of the exact accepted source tree used for publication.","type":["string","null"]},"checks":{"items":{"properties":{"name":{"type":"string"},"source":{"enum":["typeship","customer","repository","compatibility"],"type":"string"},"state":{"enum":["pending","passed","failed","not_assessed"],"type":"string"},"reason":{"type":"string"},"revision":{"type":"string"},"url":{"format":"uri","type":["string","null"]},"observed_at":{"format":"date-time","type":["string","null"]}},"type":"object"},"type":"array"},"accepted_risks":{"items":{"properties":{"comparison":{"enum":["current","published"],"type":"string"},"reason":{"type":"string"},"approved_by":{"type":"string"},"approved_revision":{"type":"string"},"approved_at":{"format":"date-time","type":"string"}},"type":"object"},"type":"array"},"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","disabled"],"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"]},"errors":{"description":"Recorded failures. Empty when this resource has no recorded failure.","items":{"type":"object"},"type":"array"},"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"]]},
|
|
132
|
+
{"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":"Retries publication of the specified release through its repository workflow. Uses that release's version and accepted commit, even if a newer Draft or release exists.\n\nA `502` response means the repository publication workflow could not be dispatched.","toolDescription":"Retry publication of an exact Target release. Retries publication of the specified release through its repository workflow. 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, If-Match header, 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, If-Match header, 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":["parcel-example/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"},"source_digest":{"description":"Digest of the exact accepted source tree used for publication.","type":["string","null"]},"checks":{"items":{"properties":{"name":{"type":"string"},"source":{"enum":["typeship","customer","repository","compatibility"],"type":"string"},"state":{"enum":["pending","passed","failed","not_assessed"],"type":"string"},"reason":{"type":"string"},"revision":{"type":"string"},"url":{"format":"uri","type":["string","null"]},"observed_at":{"format":"date-time","type":["string","null"]}},"type":"object"},"type":"array"},"accepted_risks":{"items":{"properties":{"comparison":{"enum":["current","published"],"type":"string"},"reason":{"type":"string"},"approved_by":{"type":"string"},"approved_revision":{"type":"string"},"approved_at":{"format":"date-time","type":"string"}},"type":"object"},"type":"array"},"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","disabled"],"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"]},"errors":{"description":"Recorded failures. Empty when this resource has no recorded failure.","items":{"type":"object"},"type":"array"},"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"]]},
|
|
133
|
+
{"resource":"targets","method":"listDraftFiles","command":["targets","list-draft-files"],"tool":"targets_list_draft_files","httpMethod":"GET","path":"/targets/{target_id}/draft/files","summary":"List customized and conflicted files on a Draft","description":"Lists the Draft's files that differ from the last accepted package or need a conflict decision, ordered by path, without file content. Each conflict names its kind, where the incoming version comes from, the saved decision, and the sides you can read with retrieveDraftFileContent. With `filter=history`, lists the files affected by a default-branch history rewrite instead; the list is empty when none is pending.\n\nReturns `409 stale_draft` while Typeship has not integrated the Draft's latest commit (Draft status generating or branch_changed), or when the Draft changes between pages.","toolDescription":"List customized and conflicted files on a Draft. Lists the Draft's files that differ from the last accepted package or need a conflict decision, ordered by path, without file content. GET /targets/{target_id}/draft/files (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":"filter","ts":"filter","kind":"query","type":"string","required":false,"enum":["conflicted","customized","history"],"description":"conflicted: conflicts only. customized: files that differ from the last accepted package. history: files affected by a default-branch history rewrite. Omit for conflicted and customized files.","flag":"filter"},{"name":"limit","ts":"limit","kind":"query","type":"number","required":false,"description":"Maximum number of resources to return. Omit for 20; otherwise supply base-10 digits representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400 invalid_request. List query parameters must appear only once; unrecognized parameters also return 400. 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. Omit to start at the first page. Empty, malformed, or repeated cursors return 400 invalid_request. The page limit may change between requests.","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"},"filter":{"enum":["conflicted","customized","history"],"type":"string","description":"conflicted: conflicts only. customized: files that differ from the last accepted package. history: files affected by a default-branch history rewrite. Omit for conflicted and customized files."},"limit":{"default":20,"minimum":1,"maximum":100,"type":"integer","description":"Maximum number of resources to return. Omit for 20; otherwise supply base-10 digits representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400 invalid_request. List query parameters must appear only once; unrecognized parameters also return 400. Default: 20."},"cursor":{"minLength":1,"maxLength":2048,"pattern":"^[A-Za-z0-9_-]+$","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. Omit to start at the first page. Empty, malformed, or repeated cursors return 400 invalid_request. The page limit may change between requests."}},"required":["target_id"]},"exampleArguments":{"target_id":"tgt_5m8q2v7k1p9d4h6c"},"outputSchema":{"type":"object","properties":{"items":{"type":"array","items":{"properties":{"object":{"const":"draft_file","type":"string"},"path":{"description":"Path relative to the Target's package directory.","type":"string"},"customization":{"enum":["added","edited","deleted","mode_changed",null],"description":"How the Draft differs from the last accepted package at this path; null when it does not.","type":["string","null"]},"conflict":{"anyOf":[{"properties":{"kind":{"enum":["no_common_version","file_ownership","repository_deleted_incoming_changed","incoming_deleted_repository_changed","overlapping_text","too_large_to_merge","binary_changed","file_mode_changed"],"description":"Why the merge stopped. no_common_version: there is no earlier version to compare, such as the first Draft of an adopted package. file_ownership: generated output collides with a file you added. repository_deleted_incoming_changed and incoming_deleted_repository_changed: one side deleted a file the other changed. overlapping_text: both sides edited the same lines. too_large_to_merge: the file has too many changed lines to merge line by line. binary_changed and file_mode_changed: both sides changed binary content or the file mode.","type":"string"},"source":{"enum":["generation","default_branch","previous_draft"],"description":"Where the incoming version comes from: the new Generation, commits on the default branch, or the code of a Draft whose branch was rebased, reset, or deleted (its old branch is preserved). The merge applies previous_draft, then default_branch, then generation, and stops at the first stage with conflicts, so applying one stage's decisions can report conflicts from the next.","type":"string"},"decision":{"enum":["repository","incoming","content",null],"description":"Decision saved for this conflict on head_revision; null when none. Saved decisions apply when the Target is generated.","type":["string","null"]}},"type":"object"},{"type":"null"}]},"history":{"anyOf":[{"properties":{"change":{"enum":["added","edited","deleted","mode_changed",null],"description":"How the rewritten default branch differs from the last accepted package; null when only the Draft differs.","type":["string","null"]},"draft_differs":{"description":"The Draft branch has a different version than the rewritten default branch. Recovery carries the Draft version forward.","type":"boolean"}},"type":"object"},{"type":"null"}]},"sides":{"description":"Sides of the comparison to read with retrieveDraftFileContent. A missing side means the file is absent there. Listed for conflicts and history files.","items":{"properties":{"side":{"enum":["base","repository","incoming","accepted","default","draft"],"description":"One side of a Draft file comparison. A conflict has base (the common version before both changes), repository (the file on the Draft), and incoming (the file the merge brings in). A default-branch history rewrite has accepted (the last accepted package), default (the rewritten default branch), and draft (the current Draft branch).","type":"string"},"mode":{"enum":["100644","100755","120000"],"description":"Git file mode. 100755 is executable; 120000 is a symbolic link whose content is its target.","type":"string"},"size_bytes":{"minimum":0,"type":"integer"},"encoding":{"enum":["utf8","base64"],"description":"utf8 for text; base64 for binary content.","type":"string"}},"type":"object"},"type":"array"}},"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"]]},
|
|
134
|
+
{"resource":"targets","method":"retrieveDraftFileContent","command":["targets","retrieve-draft-file-content"],"tool":"targets_retrieve_draft_file_content","httpMethod":"GET","path":"/targets/{target_id}/draft/files/content","summary":"Read one side of a Draft file","description":"Returns up to 24 KiB of one side of a conflicted or history-affected file: text as UTF-8, binary content as base64. Follow `next_cursor` with the same path and side to read the rest, and concatenate the chunks in order. A side where the file is absent returns 404.","toolDescription":"Read one side of a Draft file. Returns up to 24 KiB of one side of a conflicted or history-affected file: text as UTF-8, binary content as base64. GET /targets/{target_id}/draft/files/content","paginated":false,"hasBody":false,"bodyStyle":"none","bodyKind":null,"sse":false,"hasParams":true,"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"},{"name":"path","ts":"path","kind":"query","type":"string","required":true,"description":"File path from listDraftFiles.","flag":"path"},{"name":"side","ts":"side","kind":"query","type":"string","required":true,"enum":["base","repository","incoming","accepted","default","draft"],"description":"A side listed for the file.","flag":"side"},{"name":"cursor","ts":"cursor","kind":"query","type":"string","required":false,"description":"next_cursor from the preceding chunk of the same path and side.","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"},"path":{"examples":["src/index.ts"],"minLength":1,"type":"string","description":"File path from listDraftFiles."},"side":{"enum":["base","repository","incoming","accepted","default","draft"],"description":"One side of a Draft file comparison. A conflict has base (the common version before both changes), repository (the file on the Draft), and incoming (the file the merge brings in). A default-branch history rewrite has accepted (the last accepted package), default (the rewritten default branch), and draft (the current Draft branch).","type":"string"},"cursor":{"minLength":1,"maxLength":2048,"pattern":"^[A-Za-z0-9_-]+$","type":"string","description":"next_cursor from the preceding chunk of the same path and side."}},"required":["target_id","path","side"]},"exampleArguments":{"target_id":"tgt_5m8q2v7k1p9d4h6c","path":"src/index.ts","side":"base"},"outputSchema":{"properties":{"object":{"const":"draft_file_content","type":"string"},"target_id":{"description":"Stable identifier for one configured generated product.","examples":["tgt_5m8q2v7k1p9d4h6c"],"pattern":"^tgt_[a-z0-9]{16}$","type":"string"},"path":{"type":"string"},"side":{"enum":["base","repository","incoming","accepted","default","draft"],"description":"One side of a Draft file comparison. A conflict has base (the common version before both changes), repository (the file on the Draft), and incoming (the file the merge brings in). A default-branch history rewrite has accepted (the last accepted package), default (the rewritten default branch), and draft (the current Draft branch).","type":"string"},"encoding":{"enum":["utf8","base64"],"description":"utf8 means content is text; base64 means content is base64-encoded binary bytes.","type":"string"},"content":{"description":"At most 24 KiB of the file starting at offset. Text chunks never split a character; concatenate chunks in order.","type":"string"},"mode":{"enum":["100644","100755","120000"],"description":"Git file mode. 100755 is executable; 120000 is a symbolic link whose content is its target.","type":"string"},"size_bytes":{"description":"Size of the whole file in bytes.","minimum":0,"type":"integer"},"offset":{"description":"Byte offset of this chunk in the file.","minimum":0,"type":"integer"},"next_cursor":{"description":"Pass as cursor, with the same path and side, to read the next chunk; null at the end of the file.","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"]]},
|
|
135
|
+
{"resource":"targets","method":"resolveDraftConflicts","command":["targets","resolve-draft-conflicts"],"tool":"targets_resolve_draft_conflicts","httpMethod":"POST","path":"/targets/{target_id}/draft/conflicts/resolve","summary":"Resolve selected Draft conflicts","description":"Saves decisions for conflicts on the Draft's head_revision: keep the repository or incoming version, or supply the final content as text or, for binary files, base64. Decisions save together or not at all, and a decision can be replaced until it is applied. Use `dry_run` to validate them first.\n\nSaving changes no files. When every conflict has a decision, `remaining_conflicts` is 0 and the Draft status becomes `needs_generation`: generate the Target to apply the decisions and run its checks. Applying them can report conflicts from the next merge stage.","toolDescription":"Resolve selected Draft conflicts. Saves decisions for conflicts on the Draft's head_revision: keep the repository or incoming version, or supply the final content as text or, for binary files, base64. POST /targets/{target_id}/draft/conflicts/resolve","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":"expected_head_revision","ts":"expected_head_revision","kind":"body","type":"string","required":true,"description":"The Draft's head_revision. A newer Draft commit returns 409 stale_draft without saving.","flag":"expected-head-revision"},{"name":"resolutions","ts":"resolutions","kind":"body","type":"array","required":true,"items":{"type":"json"},"description":"Unique current conflict paths. Final file content must total at most 2 MiB. Decisions save together or not at all.","flag":"resolutions"},{"name":"dry_run","ts":"dry_run","kind":"body","type":"boolean","required":false,"description":"Validate the decisions and return the planned files without saving. Default: false.","flag":"dry-run"}],"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"},"expected_head_revision":{"description":"The Draft's head_revision. A newer Draft commit returns 409 stale_draft without saving.","examples":["0123456789abcdef0123456789abcdef01234567"],"pattern":"^[0-9a-fA-F]{40}$","type":"string","example":"0123456789abcdef0123456789abcdef01234567"},"resolutions":{"description":"Unique current conflict paths. Final file content must total at most 2 MiB. Decisions save together or not at all.","minItems":1,"maxItems":1000,"items":{"anyOf":[{"properties":{"path":{"minLength":1,"type":"string"},"keep":{"enum":["repository","incoming"],"description":"Keep that version of the file exactly. Keeping an absent version deletes the path.","type":"string"}},"required":["path","keep"],"additionalProperties":false,"type":"object"},{"properties":{"path":{"minLength":1,"type":"string"},"keep":{"const":"content","type":"string"},"content":{"description":"Final file text, stored as UTF-8. An empty string creates an empty file.","type":"string"},"mode":{"enum":["100644","100755","120000"],"description":"Git file mode. 100755 is executable; 120000 is a symbolic link whose content is its target.","type":"string"}},"required":["path","keep","content","mode"],"additionalProperties":false,"type":"object"},{"properties":{"path":{"minLength":1,"type":"string"},"keep":{"const":"content","type":"string"},"content_base64":{"description":"Final file bytes as canonical base64, for binary files.","type":"string"},"mode":{"enum":["100644","100755","120000"],"description":"Git file mode. 100755 is executable; 120000 is a symbolic link whose content is its target.","type":"string"}},"required":["path","keep","content_base64","mode"],"additionalProperties":false,"type":"object"},{"properties":{"path":{"minLength":1,"type":"string"},"keep":{"const":"content","type":"string"},"content":{"description":"Delete this file.","type":"null"}},"required":["path","keep","content"],"additionalProperties":false,"type":"object"}]},"type":"array","example":[{"path":"src/index.ts","keep":"content","mode":"100644","content":"export { ParcelClient } from \"./client.js\";\nexport type { Shipment, Label } from \"./types.js\";\nexport { createParcelClient } from \"./helper.js\";\n"}]},"dry_run":{"description":"Validate the decisions and return the planned files without saving. Default: false.","default":false,"type":"boolean"}},"required":["target_id","expected_head_revision","resolutions"]},"exampleArguments":{"target_id":"tgt_5m8q2v7k1p9d4h6c","expected_head_revision":"0123456789abcdef0123456789abcdef01234567","resolutions":[{"path":"src/index.ts","keep":"content","mode":"100644","content":"export { ParcelClient } from \"./client.js\";\nexport type { Shipment, Label } from \"./types.js\";\nexport { createParcelClient } from \"./helper.js\";\n"}]},"outputSchema":{"properties":{"object":{"const":"draft_conflict_resolution","type":"string"},"target_id":{"description":"Stable identifier for one configured generated product.","examples":["tgt_5m8q2v7k1p9d4h6c"],"pattern":"^tgt_[a-z0-9]{16}$","type":"string"},"head_revision":{"description":"Draft commit the decisions belong to.","type":"string"},"status":{"enum":["preview","saved"],"description":"preview: nothing was saved. saved: the decisions are stored and apply when the Target is generated.","type":"string"},"files":{"maxItems":1000,"items":{"properties":{"path":{"type":"string"},"action":{"enum":["keep","write","delete"],"description":"keep: the Draft's version stays. write: the file gets new content. delete: the path is removed.","type":"string"},"mode":{"anyOf":[{"enum":["100644","100755","120000"],"description":"Git file mode. 100755 is executable; 120000 is a symbolic link whose content is its target.","type":"string"},{"type":"null"}]},"size_bytes":{"description":"Size of the resulting file; null when it is deleted.","minimum":0,"type":["integer","null"]}},"type":"object"},"type":"array"},"remaining_conflicts":{"description":"Conflicts without a decision once these are saved. At 0 the Draft status becomes needs_generation.","minimum":0,"type":"integer"},"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"]]},
|
|
136
|
+
{"resource":"targets","method":"discardDraftCustomizations","command":["targets","discard-draft-customizations"],"tool":"targets_discard_draft_customizations","httpMethod":"POST","path":"/targets/{target_id}/draft/customizations/discard","summary":"Discard selected Draft customizations","description":"Replaces the listed customized paths that are not conflicts with the generated files, in one commit on the Draft branch. A listed file that exists only on the Draft is deleted. Use `dry_run` to see the planned writes and deletions first. Resolve conflicts with resolveDraftConflicts.\n\nAfter the commit, the Draft status is `branch_changed` until Typeship integrates it from the repository's pull request event and reruns the checks; you do not need to generate the Target.","toolDescription":"Discard selected Draft customizations. Replaces the listed customized paths that are not conflicts with the generated files, in one commit on the Draft branch. POST /targets/{target_id}/draft/customizations/discard","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":"expected_head_revision","ts":"expected_head_revision","kind":"body","type":"string","required":true,"description":"The Draft's head_revision. A newer Draft commit returns 409 stale_draft without committing.","flag":"expected-head-revision"},{"name":"paths","ts":"paths","kind":"body","type":"array","required":true,"items":{"type":"string"},"description":"Customized paths that are not conflicts, to replace with the generated files. A listed file that exists only on the Draft is deleted.","flag":"paths"},{"name":"dry_run","ts":"dry_run","kind":"body","type":"boolean","required":false,"description":"Return the planned writes and deletions without committing. Default: false.","flag":"dry-run"}],"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"},"expected_head_revision":{"description":"The Draft's head_revision. A newer Draft commit returns 409 stale_draft without committing.","examples":["0123456789abcdef0123456789abcdef01234567"],"pattern":"^[0-9a-fA-F]{40}$","type":"string","example":"0123456789abcdef0123456789abcdef01234567"},"paths":{"description":"Customized paths that are not conflicts, to replace with the generated files. A listed file that exists only on the Draft is deleted.","minItems":1,"maxItems":1000,"uniqueItems":true,"items":{"minLength":1,"type":"string"},"type":"array","example":["src/helper.ts"]},"dry_run":{"description":"Return the planned writes and deletions without committing. Default: false.","default":false,"type":"boolean","example":true}},"required":["target_id","expected_head_revision","paths"]},"exampleArguments":{"target_id":"tgt_5m8q2v7k1p9d4h6c","expected_head_revision":"0123456789abcdef0123456789abcdef01234567","paths":["src/helper.ts"],"dry_run":true},"outputSchema":{"properties":{"object":{"const":"draft_customization_discard","type":"string"},"target_id":{"description":"Stable identifier for one configured generated product.","examples":["tgt_5m8q2v7k1p9d4h6c"],"pattern":"^tgt_[a-z0-9]{16}$","type":"string"},"head_revision":{"description":"preview: the inspected Draft commit. committed: the new Draft commit.","type":"string"},"status":{"enum":["preview","committed"],"description":"preview: nothing was written. committed: one commit was added to the Draft branch; the Draft status is branch_changed until Typeship integrates it.","type":"string"},"files":{"maxItems":1000,"items":{"properties":{"path":{"type":"string"},"action":{"enum":["keep","write","delete"],"description":"keep: the Draft's version stays. write: the file gets new content. delete: the path is removed.","type":"string"},"mode":{"anyOf":[{"enum":["100644","100755","120000"],"description":"Git file mode. 100755 is executable; 120000 is a symbolic link whose content is its target.","type":"string"},{"type":"null"}]},"size_bytes":{"description":"Size of the resulting file; null when it is deleted.","minimum":0,"type":["integer","null"]}},"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"]]},
|
|
137
|
+
{"resource":"targets","method":"recoverDraftHistory","command":["targets","recover-draft-history"],"tool":"targets_recover_draft_history","httpMethod":"POST","path":"/targets/{target_id}/draft/history/recover","summary":"Approve recovery from rewritten default-branch history","description":"When the Draft status is `history_rewritten`, review the affected files with `listDraftFiles` and `filter=history`, then approve with the Draft's `history_recovery` revisions. Approval saves the recovery without changing Git, and the Draft status becomes `needs_generation`: generate the Target to open a new Draft from the rewritten default branch. The previous Draft branch stays available, and overlapping code comes back as conflicts to resolve. A rewritten Draft branch alone needs no approval.","toolDescription":"Approve recovery from rewritten default-branch history. When the Draft status is `history_rewritten`, review the affected files with `listDraftFiles` and `filter=history`, then approve with the Draft's `history_recovery` revisions. POST /targets/{target_id}/draft/history/recover","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":"expected_default_revision","ts":"expected_default_revision","kind":"body","type":"string","required":true,"description":"The Draft's history_recovery.default_revision.","flag":"expected-default-revision"},{"name":"expected_head_revision","ts":"expected_head_revision","kind":"body","type":"string","required":true,"nullable":true,"description":"The Draft's history_recovery.head_revision; null when the Draft branch is absent.","flag":"expected-head-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"},"expected_default_revision":{"description":"The Draft's history_recovery.default_revision.","pattern":"^[a-fA-F0-9]{40}$","type":"string","example":"89abcdef0123456789abcdef0123456789abcdef"},"expected_head_revision":{"description":"The Draft's history_recovery.head_revision; null when the Draft branch is absent.","pattern":"^[a-fA-F0-9]{40}$","type":["string","null"],"example":"0123456789abcdef0123456789abcdef01234567"}},"required":["target_id","expected_default_revision","expected_head_revision"]},"exampleArguments":{"target_id":"tgt_5m8q2v7k1p9d4h6c","expected_default_revision":"89abcdef0123456789abcdef0123456789abcdef","expected_head_revision":"0123456789abcdef0123456789abcdef01234567"},"outputSchema":{"properties":{"object":{"const":"draft_history_recovery","type":"string"},"target_id":{"description":"Stable identifier for one configured generated product.","examples":["tgt_5m8q2v7k1p9d4h6c"],"pattern":"^tgt_[a-z0-9]{16}$","type":"string"},"status":{"enum":["approved","not_needed"],"description":"approved: recovery is saved and the Draft status is needs_generation. not_needed: the default branch still contains the accepted package.","type":"string"},"default_revision":{"type":"string"},"head_revision":{"type":["string","null"]},"preserved_branch":{"description":"Existing Draft branch that stays available when Generate opens the recovered Draft.","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"]]},
|
|
138
|
+
{"resource":"targets","method":"retrieveDelivery","command":["targets","retrieve-delivery"],"tool":"targets_retrieve_delivery","httpMethod":"GET","path":"/deliveries/{delivery_id}","summary":"Retrieve a Delivery","description":"Returns the configured repository or hosted MCP Delivery for a Target. A Delivery in another organization returns 404 not_found.","toolDescription":"Retrieve a Delivery. Returns the configured repository or hosted MCP Delivery for a Target. GET /deliveries/{delivery_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":"delivery_id","ts":"deliveryId","kind":"path","type":"string","required":true,"flag":"delivery-id"}],"inputSchema":{"type":"object","properties":{"delivery_id":{"examples":["dlv_4q8m2v7k1p9d5h6c"],"pattern":"^dlv_[a-z0-9]{16}$","type":"string"}},"required":["delivery_id"]},"exampleArguments":{"delivery_id":"dlv_4q8m2v7k1p9d5h6c"},"outputSchema":{"description":"Repository fields are present for a repository Delivery; url is present for a hosted_mcp Delivery.","properties":{"id":{"examples":["dlv_4q8m2v7k1p9d5h6c"],"pattern":"^dlv_[a-z0-9]{16}$","type":"string"},"object":{"const":"delivery","type":"string"},"target_id":{"description":"Stable identifier for one configured generated product.","examples":["tgt_5m8q2v7k1p9d4h6c"],"pattern":"^tgt_[a-z0-9]{16}$","type":"string"},"kind":{"enum":["repository","hosted_mcp"],"type":"string"},"state":{"enum":["active","disabled"],"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":["parcel-example/api"],"maxLength":512,"type":"string"}},"type":"object"},"directory":{"type":["string","null"]},"package_name":{"type":["string","null"]},"module_path":{"type":["string","null"]},"publish_on_merge":{"type":"boolean"},"url":{"format":"uri","type":["string","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"]]},
|
|
139
|
+
{"resource":"targets","method":"retrievePublication","command":["targets","retrieve-publication"],"tool":"targets_retrieve_publication","httpMethod":"GET","path":"/publications/{publication_id}","summary":"Retrieve a Publication","description":"Returns the current registry publication state for a Target Release. A Publication in another organization returns 404 not_found.","toolDescription":"Retrieve a Publication. Returns the current registry publication state for a Target Release. GET /publications/{publication_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":"publication_id","ts":"publicationId","kind":"path","type":"string","required":true,"flag":"publication-id"}],"inputSchema":{"type":"object","properties":{"publication_id":{"examples":["pub_2m8q4v7k1p9d5h6c"],"pattern":"^pub_[a-z0-9]{16}$","type":"string"}},"required":["publication_id"]},"exampleArguments":{"publication_id":"pub_2m8q4v7k1p9d5h6c"},"outputSchema":{"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","disabled"],"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"]},"errors":{"description":"Recorded failures. Empty when this resource has no recorded failure.","items":{"properties":{"type":{"enum":["request_error","authentication_error","authorization_error","plan_error","source_error","rate_limit_error","api_error","unknown_error"],"description":"Stable category for deciding how to handle the error.","type":"string"},"code":{"enum":["invalid_request","idempotency_key_reused","unauthorized","organization_required","insufficient_scope","forbidden","not_found","method_not_allowed","spec_error","fetch_error","repository_provider_unsupported","edition_unavailable","target_busy","no_draft","stale_draft","no_changes","invalid_version","precondition_failed","definition_changed","version_occupied","version_too_low","release_analysis_stale","target_already_released","adoption_unverified","publication_disabled","publication_not_retryable","publication_recovery_unavailable","publication_dispatch_failed","repository_disconnected","regeneration_failed","delivery_conflict","resource_has_dependencies","plan_limit_reached","payload_too_large","rate_limited","internal_error","dependency_missing","dependency_not_found","dependency_self","dependency_cycle","dependency_cross_project","dependency_cross_lineage","dependency_wrong_generator","dependency_disabled","dependency_module_path_missing","dependency_unreleased","dependency_revision_mismatch","dependency_edition_incompatible","publication_failed","customization_conflict","history_recovery_required","checks_unavailable","generation_stale","unclassified_error"],"description":"Stable programmatic identifier. Do not branch on message.","type":"string"},"phase":{"enum":["definition","generation","delivery","publication"],"description":"The stage that failed. A delivery failure does not change a Generation's succeeded status.","type":"string"},"target_id":{"description":"Stable identifier for one configured generated product.","examples":["tgt_5m8q2v7k1p9d4h6c"],"pattern":"^tgt_[a-z0-9]{16}$","type":"string"},"field":{"description":"JSON Pointer to the invalid field within the request part named by in. When in is omitted, the pointer refers to the request body. Header pointers use lowercase header names, such as /idempotency-key.","type":"string"},"in":{"enum":["body","query","header"],"description":"Request part containing field. Query-parameter errors use query; header errors use header. Body errors use body or omit in.","type":"string"},"message":{"description":"Human-readable explanation. Its wording may change.","type":"string"},"retryable":{"description":"Whether another attempt can succeed without correcting the inputs. For a recorded failure, start generation or publication again; retrieving the resource or replaying an idempotency key does not start another attempt.","type":"boolean"},"suggested_action":{"description":"Stable, concise recovery instruction suitable for a person or agent.","type":"string"},"docs_url":{"format":"uri","description":"Documentation for this class of error.","type":"string"}},"type":"object"},"type":"array"},"started_at":{"format":"date-time","type":["string","null"]},"finished_at":{"format":"date-time","type":["string","null"]},"updated_at":{"format":"date-time","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"]]},
|
|
140
|
+
{"resource":"generations","method":"retrieve","command":["generations","retrieve"],"tool":"generations_retrieve","httpMethod":"GET","path":"/generations/{generation_id}","summary":"Retrieve a generation","description":"Returns the current Generation status. `queued` and `running` mean generation is still in progress. `succeeded` means generated files are saved, not that repository delivery or a Draft is complete. Successful results include files, or a file index when the package is too large to inline.","toolDescription":"Retrieve a generation. Returns the current Generation status. 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"},"fileBundleProperty":"files","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":["queued","running","succeeded","failed"],"description":"A Generation moves from queued to running, then succeeds when its files are saved or fails.","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","go-cli","mcp"],"description":"Generator implementation selected by a Target.","type":"string"},"provenance":{"properties":{"generator_edition":{"description":"Pinned generator contract edition.","type":"string"},"resolved_config":{"description":"Recorded configuration for this Generation in the public Config format, including inherited Project…","anyOf":[{"description":"Everything Typeship needs beyond the Definition, in one object: generation customization (globals,…","type":"object"},{"type":"null"}]},"package_version":{"type":["string","null"]}},"type":"object"},"meta":{"description":"Null while queued or running, or when a failed or legacy generation 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"},"errors":{"description":"Recorded failures.","items":{"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"]]},
|
|
141
|
+
{"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":"Returns one file's raw content. Use a path from `files_index` when the Generation reports `files_omitted: true`.","toolDescription":"Fetch one file from a generation. Returns one file's raw content. 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","example":"README.md","description":"Repo-relative path inside the generated package."}},"required":["generation_id","path"]},"exampleArguments":{"generation_id":"gen_7h2p5d9c3m8w1k6q","path":"README.md"},"credentialOptions":[["bearerToken"],["credentials.apiKey"]]},
|
|
142
|
+
{"resource":"definitionRevisions","method":"list","command":["definition-revisions","list"],"tool":"definition_revisions_list","httpMethod":"GET","path":"/definitions/{definition_id}/revisions","summary":"List Definition Revisions","description":"Lists the Definition's revisions, newest first. Source content is not included; retrieve the revision content or individual documents separately.","toolDescription":"List Definition Revisions. Lists the Definition's revisions, 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. Omit for 20; otherwise supply base-10 digits representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400 invalid_request. List query parameters must appear only once; unrecognized parameters also return 400. 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. Omit to start at the first page. Empty, malformed, or repeated cursors return 400 invalid_request. The page limit may change between requests.","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. Omit for 20; otherwise supply base-10 digits representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400 invalid_request. List query parameters must appear only once; unrecognized parameters also return 400. Default: 20."},"cursor":{"minLength":1,"maxLength":2048,"pattern":"^[A-Za-z0-9_-]+$","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. Omit to start at the first page. Empty, malformed, or repeated cursors return 400 invalid_request. The page limit may change between requests."}},"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"]]},
|
|
143
|
+
{"resource":"definitionRevisions","method":"retrieve","command":["definition-revisions","retrieve"],"tool":"definition_revisions_retrieve","httpMethod":"GET","path":"/definition-revisions/{definition_revision_id}","summary":"Retrieve a Definition Revision","description":"Returns metadata for a saved Definition Revision. Retrieve its resolved content or individual source documents separately.","toolDescription":"Retrieve a Definition Revision. Returns metadata for a saved Definition Revision. GET /definition-revisions/{definition_revision_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_revision_id","ts":"definitionRevisionId","kind":"path","type":"string","required":true,"flag":"definition-revision-id"}],"inputSchema":{"type":"object","properties":{"definition_revision_id":{"description":"Unique identifier for an immutable resolved Definition Revision.","examples":["drev_6m1q8v4k2p9d7h3c"],"pattern":"^drev_[a-z0-9]{16}$","type":"string"}},"required":["definition_revision_id"]},"exampleArguments":{"definition_revision_id":"drev_6m1q8v4k2p9d7h3c"},"outputSchema":{"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":[{"properties":{"kind":{"const":"url","type":"string"},"url":{"format":"uri","type":"string"}},"type":"object"},{"properties":{"kind":{"const":"repository","type":"string"},"repository":{"type":"object"},"path":{"description":"Repository-relative Definition entrypoint path.","type":"string"},"ref":{"description":"Git ref resolved for this revision, when recorded.","type":["string","null"]},"commit_sha":{"description":"Exact Git commit consumed, when recorded.","type":["string","null"]}},"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"},"credentialOptions":[["bearerToken"],["credentials.apiKey"]]},
|
|
144
|
+
{"resource":"definitionRevisions","method":"retrieveContent","command":["definition-revisions","retrieve-content"],"tool":"definition_revisions_retrieve_content","httpMethod":"GET","path":"/definition-revisions/{definition_revision_id}/content","summary":"Retrieve a Definition Revision's canonical content","description":"Returns the saved, resolved content for this revision. Save it locally or compare it with another revision.","toolDescription":"Retrieve a Definition Revision's canonical content. Returns the saved, resolved content for this revision. GET /definition-revisions/{definition_revision_id}/content","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_revision_id","ts":"definitionRevisionId","kind":"path","type":"string","required":true,"flag":"definition-revision-id"}],"inputSchema":{"type":"object","properties":{"definition_revision_id":{"description":"Unique identifier for an immutable resolved Definition Revision.","examples":["drev_6m1q8v4k2p9d7h3c"],"pattern":"^drev_[a-z0-9]{16}$","type":"string"}},"required":["definition_revision_id"]},"exampleArguments":{"definition_revision_id":"drev_6m1q8v4k2p9d7h3c"},"credentialOptions":[["bearerToken"],["credentials.apiKey"]]},
|
|
145
|
+
{"resource":"definitionRevisions","method":"retrieveDocumentContent","command":["definition-revisions","retrieve-document-content"],"tool":"definition_revisions_retrieve_document_content","httpMethod":"GET","path":"/definition-revisions/{definition_revision_id}/documents/{document_id}/content","summary":"Retrieve one source document from a Definition Revision","toolDescription":"Retrieve one source document from a Definition Revision. GET /definition-revisions/{definition_revision_id}/documents/{document_id}/content","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_revision_id","ts":"definitionRevisionId","kind":"path","type":"string","required":true,"flag":"definition-revision-id"},{"name":"document_id","ts":"documentId","kind":"path","type":"string","required":true,"flag":"document-id"}],"inputSchema":{"type":"object","properties":{"definition_revision_id":{"description":"Unique identifier for an immutable resolved Definition Revision.","examples":["drev_6m1q8v4k2p9d7h3c"],"pattern":"^drev_[a-z0-9]{16}$","type":"string"},"document_id":{"description":"Unique identifier for a source document captured in a Definition Revision.","examples":["doc_8q2m5v1k9p4d7h3c"],"pattern":"^doc_[a-z0-9]{16}$","type":"string"}},"required":["definition_revision_id","document_id"]},"exampleArguments":{"definition_revision_id":"drev_6m1q8v4k2p9d7h3c","document_id":"doc_8q2m5v1k9p4d7h3c"},"credentialOptions":[["bearerToken"],["credentials.apiKey"]]},
|
|
146
|
+
{"resource":"definitionRevisions","method":"retrieveDocument","command":["definition-revisions","retrieve-document"],"tool":"definition_revisions_retrieve_document","httpMethod":"GET","path":"/definition-documents/{definition_document_id}","summary":"Retrieve a Definition Document","description":"Returns metadata for one source document captured in a Definition Revision. Retrieve its content through the revision's document content endpoint. A document in another organization returns 404 not_found.","toolDescription":"Retrieve a Definition Document. Returns metadata for one source document captured in a Definition Revision. GET /definition-documents/{definition_document_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_document_id","ts":"definitionDocumentId","kind":"path","type":"string","required":true,"flag":"definition-document-id"}],"inputSchema":{"type":"object","properties":{"definition_document_id":{"description":"Unique identifier for a source document captured in a Definition Revision.","examples":["doc_8q2m5v1k9p4d7h3c"],"pattern":"^doc_[a-z0-9]{16}$","type":"string"}},"required":["definition_document_id"]},"exampleArguments":{"definition_document_id":"doc_8q2m5v1k9p4d7h3c"},"outputSchema":{"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"},"object":{"const":"definition_document","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"},"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"},"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"]]},
|
|
147
|
+
{"resource":"account","method":"retrieve","command":["account","retrieve"],"tool":"account_retrieve","httpMethod":"GET","path":"/me","summary":"The account behind the presented credentials","description":"Returns the account associated with your credential. The Typeship CLI uses this endpoint for `whoami`.","toolDescription":"The account behind the presented credentials. Returns the account associated with your credential. GET /me","paginated":false,"hasBody":false,"bodyStyle":"none","bodyKind":null,"sse":false,"hasParams":false,"select":false,"idempotent":true,"auth":"required","security":[{"apiKey":[]}],"safety":"read","params":[],"inputSchema":{"type":"object","properties":{}},"exampleArguments":{},"outputSchema":{"description":"The organization an API key belongs to. Members share its projects, keys, and plan; sign-in identity is not part of the API.","properties":{"id":{"examples":["org_2x7k9m4q"],"pattern":"^org_[A-Za-z0-9]+$","type":"string"},"object":{"const":"account","type":"string"},"name":{"description":"The organization's display name.","type":"string"},"plan":{"enum":["free","pro","enterprise"],"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"]]},
|
|
148
|
+
{"resource":"apiKeys","method":"list","command":["api-keys","list"],"tool":"api_keys_list","httpMethod":"GET","path":"/api-keys","summary":"List API keys","description":"Lists key metadata and the last four characters of each key. Full keys are not returned. Create keys in the Console.","toolDescription":"List API keys. Lists key metadata and the last four characters of each key. GET /api-keys (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":"limit","ts":"limit","kind":"query","type":"number","required":false,"description":"Maximum number of resources to return. Omit for 20; otherwise supply base-10 digits representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400 invalid_request. List query parameters must appear only once; unrecognized parameters also return 400. 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. Omit to start at the first page. Empty, malformed, or repeated cursors return 400 invalid_request. The page limit may change between requests.","flag":"cursor"}],"inputSchema":{"type":"object","properties":{"limit":{"default":20,"minimum":1,"maximum":100,"type":"integer","description":"Maximum number of resources to return. Omit for 20; otherwise supply base-10 digits representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400 invalid_request. List query parameters must appear only once; unrecognized parameters also return 400. Default: 20."},"cursor":{"minLength":1,"maxLength":2048,"pattern":"^[A-Za-z0-9_-]+$","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. Omit to start at the first page. Empty, malformed, or repeated cursors return 400 invalid_request. The page limit may change between requests."}}},"exampleArguments":{},"outputSchema":{"type":"object","properties":{"items":{"type":"array","items":{"properties":{"id":{"type":"string"},"object":{"const":"api_key","type":"string"},"name":{"type":"string"},"last4":{"description":"Last four characters of the secret; the secret itself is never stored.","type":"string"},"revoked":{"type":"boolean"},"last_used_at":{"format":"date-time","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"}},"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"]]},
|
|
149
|
+
{"resource":"apiKeys","method":"retrieve","command":["api-keys","retrieve"],"tool":"api_keys_retrieve","httpMethod":"GET","path":"/api-keys/{api_key_id}","summary":"Retrieve an API key","description":"Returns the key summary and its ETag for conditional revocation.","toolDescription":"Retrieve an API key. Returns the key summary and its ETag for conditional revocation. GET /api-keys/{api_key_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":"api_key_id","ts":"apiKeyId","kind":"path","type":"string","required":true,"description":"Accepts an ID or an exact name (resolved via api_keys_list). IDs come from api_keys_list.","flag":"api-key-id","resolve":{"via":"api_keys_list","match":["name"],"id":"id","inferred":true}}],"inputSchema":{"type":"object","properties":{"api_key_id":{"description":"Identifier returned by the API key list. Accepts an ID or an exact name (resolved via api_keys_list). IDs come from api_keys_list.","type":"string","examples":["example-name","apikey_2nY8mR6pQ4vK9cH3"]}},"required":["api_key_id"]},"exampleArguments":{"api_key_id":"apikey_2nY8mR6pQ4vK9cH3"},"outputSchema":{"properties":{"id":{"type":"string"},"object":{"const":"api_key","type":"string"},"name":{"type":"string"},"last4":{"description":"Last four characters of the secret; the secret itself is never stored.","type":"string"},"revoked":{"type":"boolean"},"last_used_at":{"format":"date-time","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"]]},
|
|
150
|
+
{"resource":"apiKeys","method":"revoke","command":["api-keys","revoke"],"tool":"api_keys_revoke","httpMethod":"DELETE","path":"/api-keys/{api_key_id}","summary":"Revoke an API key","description":"Revokes a key. Repeating the request returns the same result.\n\nWith OAuth, members can revoke their own keys; organization admins can revoke any key. Organization API keys can revoke any key in their account.\nSee [conditional writes](https://typeship.dev/docs/typeship-api#conditional-writes) for ETag and If-Match.","toolDescription":"Revoke an API key. Revokes a key. DELETE /api-keys/{api_key_id}","paginated":false,"hasBody":false,"bodyStyle":"none","bodyKind":null,"sse":false,"hasParams":true,"select":false,"idempotent":true,"auth":"required","security":[{"apiKey":[]}],"safety":"destructive","params":[{"name":"api_key_id","ts":"apiKeyId","kind":"path","type":"string","required":true,"description":"Accepts an ID or an exact name (resolved via api_keys_list). IDs come from api_keys_list.","flag":"api-key-id","resolve":{"via":"api_keys_list","match":["name"],"id":"id","inferred":true}},{"name":"If-Match","ts":"ifMatch","kind":"header","type":"string","required":false,"description":"ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes.","flag":"if-match"}],"inputSchema":{"type":"object","properties":{"api_key_id":{"description":"Identifier returned by the API key list. Accepts an ID or an exact name (resolved via api_keys_list). IDs come from api_keys_list.","type":"string","examples":["example-name","apikey_2nY8mR6pQ4vK9cH3"]},"If-Match":{"minLength":1,"maxLength":1024,"type":"string","description":"ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes."}},"required":["api_key_id"]},"exampleArguments":{"api_key_id":"apikey_2nY8mR6pQ4vK9cH3"},"outputSchema":{"properties":{"id":{"type":"string"},"object":{"const":"api_key","type":"string"},"name":{"type":"string"},"last4":{"description":"Last four characters of the secret; the secret itself is never stored.","type":"string"},"revoked":{"type":"boolean"},"last_used_at":{"format":"date-time","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"]]},
|
|
137
151
|
];
|
|
138
152
|
|
|
139
153
|
/** Operations present in the API Definition but omitted by this
|