@typeship-ax/mcp 0.9.1 → 0.19.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.
Files changed (68) hide show
  1. package/AGENTS.md +10 -4
  2. package/README.md +16 -5
  3. package/api.json +6055 -645
  4. package/api.md +5225 -567
  5. package/dist/core/http.d.ts +3 -2
  6. package/dist/core/http.d.ts.map +1 -1
  7. package/dist/core/http.js +18 -6
  8. package/dist/errors.d.ts +17 -10
  9. package/dist/errors.d.ts.map +1 -1
  10. package/dist/errors.js +24 -15
  11. package/dist/index.d.ts +7 -3
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +9 -5
  14. package/dist/mcp-protocol.d.ts +10 -6
  15. package/dist/mcp-protocol.d.ts.map +1 -1
  16. package/dist/mcp-protocol.js +108 -37
  17. package/dist/mcp.d.ts.map +1 -1
  18. package/dist/mcp.js +36 -17
  19. package/dist/ops.d.ts +4 -0
  20. package/dist/ops.d.ts.map +1 -1
  21. package/dist/ops.js +45 -31
  22. package/dist/resources/account.d.ts +4 -4
  23. package/dist/resources/account.d.ts.map +1 -1
  24. package/dist/resources/account.js +10 -5
  25. package/dist/resources/api-keys.d.ts +40 -14
  26. package/dist/resources/api-keys.d.ts.map +1 -1
  27. package/dist/resources/api-keys.js +45 -13
  28. package/dist/resources/definition-revisions.d.ts +35 -18
  29. package/dist/resources/definition-revisions.d.ts.map +1 -1
  30. package/dist/resources/definition-revisions.js +43 -15
  31. package/dist/resources/definitions.d.ts +21 -6
  32. package/dist/resources/definitions.d.ts.map +1 -1
  33. package/dist/resources/definitions.js +16 -3
  34. package/dist/resources/generate.d.ts +44 -15
  35. package/dist/resources/generate.d.ts.map +1 -1
  36. package/dist/resources/generate.js +55 -13
  37. package/dist/resources/generations.d.ts +14 -6
  38. package/dist/resources/generations.d.ts.map +1 -1
  39. package/dist/resources/generations.js +26 -5
  40. package/dist/resources/projects.d.ts +106 -53
  41. package/dist/resources/projects.d.ts.map +1 -1
  42. package/dist/resources/projects.js +78 -31
  43. package/dist/resources/targets.d.ts +285 -22
  44. package/dist/resources/targets.d.ts.map +1 -1
  45. package/dist/resources/targets.js +408 -10
  46. package/dist/schemas.d.ts.map +1 -1
  47. package/dist/schemas.js +138 -73
  48. package/dist/types.d.ts +2162 -134
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/types.js +99 -2
  51. package/package.json +3 -3
  52. package/server.json +3 -3
  53. package/src/core/http.ts +17 -6
  54. package/src/errors.ts +25 -15
  55. package/src/index.ts +9 -5
  56. package/src/mcp-protocol.ts +93 -36
  57. package/src/mcp.ts +32 -15
  58. package/src/ops.ts +49 -31
  59. package/src/resources/account.ts +11 -4
  60. package/src/resources/api-keys.ts +84 -13
  61. package/src/resources/definition-revisions.ts +74 -16
  62. package/src/resources/definitions.ts +28 -4
  63. package/src/resources/generate.ts +78 -13
  64. package/src/resources/generations.ts +31 -4
  65. package/src/resources/projects.ts +141 -39
  66. package/src/resources/targets.ts +756 -13
  67. package/src/schemas.ts +138 -73
  68. package/src/types.ts +2372 -189
@@ -1,7 +1,7 @@
1
1
  // typeship — projects resource.
2
- // Generated by typeship — https://typeship.dev — do not edit by hand.
2
+ // Generated by typeship — https://typeship.dev
3
3
  import { paginate } from "../core/pagination.js";
4
- import { BadGatewayError, BadRequestError, ConflictError, ForbiddenError, InternalServerError, NotFoundError, PaymentRequiredError, RateLimitedError, UnauthorizedError, UnprocessableEntityError, } from "../errors.js";
4
+ import { BadGatewayError, BadRequestError, ConflictError, ForbiddenError, InternalServerError, NotFoundError, PayloadTooLargeError, PaymentRequiredError, PreconditionFailedError, RateLimitedError, UnauthorizedError, UnprocessableEntityError, } from "../errors.js";
5
5
  export class ProjectsResource {
6
6
  _core;
7
7
  constructor(_core) {
@@ -27,6 +27,7 @@ export class ProjectsResource {
27
27
  "401": UnauthorizedError,
28
28
  "403": ForbiddenError,
29
29
  "429": RateLimitedError,
30
+ "500": InternalServerError,
30
31
  },
31
32
  idempotent: true,
32
33
  schemaKey: "projects.list",
@@ -43,10 +44,11 @@ export class ProjectsResource {
43
44
  /**
44
45
  * Create a project
45
46
  *
46
- * Stores a URL- or GitHub-sourced project. Free includes one stored project, every selected
47
- * target, and the first 25 operations, while keeping manual and automatic regeneration, history,
48
- * destination pull requests, and preview checks. Stateless POST /generate does not consume this
49
- * slot. Pro adds projects and generates every operation in the Definition.
47
+ * Creates a Project from a URL or GitHub Definition.
48
+ *
49
+ * Free includes one saved Project, all selected Targets, and the first 25 operations per Target,
50
+ * with regeneration, history, delivery pull requests, and previews. Pro supports additional
51
+ * Projects and all operations. One-shot generation does not use a Project slot.
50
52
  *
51
53
  * A `Idempotency-Key` UUID is generated per call (stable across retries) unless you pass one.
52
54
  * `POST /projects`
@@ -78,7 +80,8 @@ export class ProjectsResource {
78
80
  /**
79
81
  * Retrieve a project
80
82
  *
81
- * Returns Project-owned fields only. List Targets separately for Target and Delivery data.
83
+ * Returns the Project's settings and Definition ID. List its Targets separately to retrieve
84
+ * Target configuration and Deliveries.
82
85
  * `GET /projects/{project_id}`
83
86
  */
84
87
  async retrieve(projectId, options) {
@@ -91,6 +94,7 @@ export class ProjectsResource {
91
94
  "403": ForbiddenError,
92
95
  "404": NotFoundError,
93
96
  "429": RateLimitedError,
97
+ "500": InternalServerError,
94
98
  },
95
99
  idempotent: true,
96
100
  schemaKey: "projects.retrieve",
@@ -99,18 +103,31 @@ export class ProjectsResource {
99
103
  }
100
104
  /**
101
105
  * Delete a project
106
+ *
107
+ * A `502` response means the Project was not deleted because its release pull requests could not
108
+ * be retired. Retry deletion to finish retiring the remaining reviews. Repeating a completed
109
+ * deletion returns `404`.
110
+ * See [conditional writes](https://typeship.dev/docs/typeship-api#conditional-writes) for ETag
111
+ * and If-Match.
102
112
  * `DELETE /projects/{project_id}`
103
113
  */
104
- async delete(projectId, options) {
114
+ async delete(projectId, params, options) {
105
115
  return this._core.request({
106
116
  method: "DELETE",
107
117
  path: `/projects/${encodeURIComponent(String(projectId))}`,
108
118
  security: [{ "apiKey": [] }],
119
+ headers: {
120
+ "If-Match": params?.ifMatch === undefined ? undefined : String(params?.ifMatch),
121
+ },
109
122
  errors: {
123
+ "400": BadRequestError,
110
124
  "401": UnauthorizedError,
111
125
  "403": ForbiddenError,
112
126
  "404": NotFoundError,
127
+ "412": PreconditionFailedError,
113
128
  "429": RateLimitedError,
129
+ "500": InternalServerError,
130
+ "502": BadGatewayError,
114
131
  },
115
132
  idempotent: true,
116
133
  schemaKey: "projects.delete",
@@ -119,13 +136,29 @@ export class ProjectsResource {
119
136
  }
120
137
  /**
121
138
  * Update a project
139
+ *
140
+ * Omitted fields keep their current values. A supplied config replaces the entire stored object;
141
+ * null or an empty object clears it.
142
+ * Omitting If-Match applies the update to the current resource; with If-Match, a stale ETag
143
+ * returns 412 precondition_failed without saving.
144
+ *
145
+ * A `409 target_busy` means a Target is publishing. Retrieve the Project, wait for publication to
146
+ * finish, reconcile your update, and retry.
147
+ * A `502` response means the Project was saved, but an obsolete release pull request could not be
148
+ * retired. Retrieve the Project and retry the same update to finish retiring reviews if that
149
+ * update is still desired.
150
+ * See [conditional writes](https://typeship.dev/docs/typeship-api#conditional-writes) for ETag
151
+ * and If-Match.
122
152
  * `PATCH /projects/{project_id}`
123
153
  */
124
- async update(projectId, body, options) {
154
+ async update(projectId, body, params, options) {
125
155
  return this._core.request({
126
156
  method: "PATCH",
127
157
  path: `/projects/${encodeURIComponent(String(projectId))}`,
128
158
  security: [{ "apiKey": [] }],
159
+ headers: {
160
+ "If-Match": params?.ifMatch === undefined ? undefined : String(params?.ifMatch),
161
+ },
129
162
  body,
130
163
  errors: {
131
164
  "400": BadRequestError,
@@ -134,8 +167,10 @@ export class ProjectsResource {
134
167
  "403": ForbiddenError,
135
168
  "404": NotFoundError,
136
169
  "409": ConflictError,
170
+ "412": PreconditionFailedError,
137
171
  "422": UnprocessableEntityError,
138
172
  "429": RateLimitedError,
173
+ "500": InternalServerError,
139
174
  "502": BadGatewayError,
140
175
  },
141
176
  schemaKey: "projects.update",
@@ -145,10 +180,9 @@ export class ProjectsResource {
145
180
  /**
146
181
  * Analyze a project's latest Definition Revision
147
182
  *
148
- * Runs deterministic OpenAPI or GraphQL authorship checks against the latest observed immutable
149
- * Definition Revision after applying the Definition's existing patches. Diagnostics group every
150
- * affected location under a stable rule. Exact patches are included only when Typeship can derive
151
- * the change without inventing API behavior.
183
+ * Checks the latest Definition Revision after applying its saved patches. Each finding groups
184
+ * affected locations under a stable rule ID. A suggested patch is included only when the
185
+ * Definition provides enough information to determine the correction.
152
186
  * `GET /projects/{project_id}/diagnostics`
153
187
  */
154
188
  async retrieveDiagnostics(projectId, options) {
@@ -161,6 +195,7 @@ export class ProjectsResource {
161
195
  "403": ForbiddenError,
162
196
  "404": NotFoundError,
163
197
  "429": RateLimitedError,
198
+ "500": InternalServerError,
164
199
  },
165
200
  idempotent: true,
166
201
  schemaKey: "projects.retrieveDiagnostics",
@@ -170,9 +205,8 @@ export class ProjectsResource {
170
205
  /**
171
206
  * Refresh a project's Diagnostics from its configured source
172
207
  *
173
- * Fetches the complete configured source, records a new immutable revision only when content
174
- * changed, and returns its Diagnostics. This does not generate targets or consume a metered
175
- * generation.
208
+ * Fetches the configured source and returns updated Diagnostics. Creates a Definition Revision
209
+ * only when the content changes. Does not generate Targets or use a metered generation.
176
210
  *
177
211
  * A `Idempotency-Key` UUID is generated per call (stable across retries) unless you pass one.
178
212
  * `POST /projects/{project_id}/diagnostics`
@@ -186,12 +220,14 @@ export class ProjectsResource {
186
220
  "Idempotency-Key": params?.idempotencyKey === undefined ? undefined : String(params?.idempotencyKey),
187
221
  },
188
222
  errors: {
223
+ "400": BadRequestError,
189
224
  "401": UnauthorizedError,
190
225
  "403": ForbiddenError,
191
226
  "404": NotFoundError,
192
227
  "409": ConflictError,
193
228
  "422": UnprocessableEntityError,
194
229
  "429": RateLimitedError,
230
+ "500": InternalServerError,
195
231
  },
196
232
  idempotencyKey: "Idempotency-Key",
197
233
  schemaKey: "projects.refreshDiagnostics",
@@ -201,9 +237,11 @@ export class ProjectsResource {
201
237
  /**
202
238
  * Apply exact, reviewed diagnostic remediations
203
239
  *
204
- * Applies only deterministic patches. Repository sources receive an updateable source pull
205
- * request; URL sources receive project overlays. Diagnostics that require API-owner intent return
206
- * 422 and include an authoring_brief in the Diagnostic instead.
240
+ * Applies reviewed patches from Diagnostics. For a repository source, opens or updates a source
241
+ * pull request. For a URL source, saves Definition patches.
242
+ *
243
+ * Findings that need an API-owner decision return `422`. Read the finding's `authoring_brief` and
244
+ * update the source instead.
207
245
  *
208
246
  * A `Idempotency-Key` UUID is generated per call (stable across retries) unless you pass one.
209
247
  * `POST /projects/{project_id}/diagnostics/remediations`
@@ -225,6 +263,7 @@ export class ProjectsResource {
225
263
  "409": ConflictError,
226
264
  "422": UnprocessableEntityError,
227
265
  "429": RateLimitedError,
266
+ "500": InternalServerError,
228
267
  },
229
268
  idempotencyKey: "Idempotency-Key",
230
269
  schemaKey: "projects.remediateDiagnostics",
@@ -234,9 +273,8 @@ export class ProjectsResource {
234
273
  /**
235
274
  * Diagnose a project's repository integrations
236
275
  *
237
- * Returns provider-neutral, machine-actionable source and destination access, Definition
238
- * readability, source-approval label setup, required status names, and the latest durable webhook
239
- * delivery. The Console renders this same result.
276
+ * Checks repository access, Definition readability, source-approval labels, and required checks.
277
+ * Includes the latest webhook delivery so you can investigate missing updates.
240
278
  * `GET /projects/{project_id}/integration-health`
241
279
  */
242
280
  async retrieveIntegrationHealth(projectId, options) {
@@ -249,6 +287,7 @@ export class ProjectsResource {
249
287
  "403": ForbiddenError,
250
288
  "404": NotFoundError,
251
289
  "429": RateLimitedError,
290
+ "500": InternalServerError,
252
291
  },
253
292
  idempotent: true,
254
293
  schemaKey: "projects.retrieveIntegrationHealth",
@@ -277,6 +316,7 @@ export class ProjectsResource {
277
316
  "403": ForbiddenError,
278
317
  "404": NotFoundError,
279
318
  "429": RateLimitedError,
319
+ "500": InternalServerError,
280
320
  },
281
321
  idempotent: true,
282
322
  schemaKey: "projects.listGenerations",
@@ -291,20 +331,23 @@ export class ProjectsResource {
291
331
  });
292
332
  }
293
333
  /**
294
- * Generate targets and open pull requests
334
+ * Start generation for active Targets
335
+ *
336
+ * Queues one Generation per active Target and returns their IDs. Retrieve each Generation until
337
+ * its status moves from `queued` to `running` and then `succeeded` or `failed`. `succeeded` means
338
+ * generated files are saved; check Delivery and Draft status separately for repository delivery
339
+ * and pull requests. A Target already queued or running is returned without starting another
340
+ * Generation. A matching Idempotency-Key replay returns the same Generations with their current
341
+ * statuses.
295
342
  *
296
- * Resolves the project's URL or GitHub source, generates every
297
- * configured delivery package, stores each result in the project's history,
298
- * and attempts to open a pull request in every configured destination.
299
- * When the complete generated tree already matches a destination, no
300
- * commit, branch, or pull request is created and that generation reports
301
- * `pr_status: no_changes`. This is the same pipeline automatic
302
- * regeneration runs after a source change.
343
+ * If the package already matches a destination and no Draft is open, delivery reports `pr_status:
344
+ * no_changes` without creating a commit, branch, or pull request. An existing Draft stays open.
345
+ * Automatic generation uses the same workflow.
303
346
  *
304
347
  * A `Idempotency-Key` UUID is generated per call (stable across retries) unless you pass one.
305
348
  * `POST /projects/{project_id}/generations`
306
349
  */
307
- async generate(projectId, params, options) {
350
+ async generate(projectId, body, params, options) {
308
351
  return this._core.request({
309
352
  method: "POST",
310
353
  path: `/projects/${encodeURIComponent(String(projectId))}/generations`,
@@ -312,15 +355,19 @@ export class ProjectsResource {
312
355
  headers: {
313
356
  "Idempotency-Key": params?.idempotencyKey === undefined ? undefined : String(params?.idempotencyKey),
314
357
  },
358
+ body,
315
359
  errors: {
360
+ "400": BadRequestError,
316
361
  "401": UnauthorizedError,
317
362
  "402": PaymentRequiredError,
318
363
  "403": ForbiddenError,
319
364
  "404": NotFoundError,
320
365
  "409": ConflictError,
366
+ "413": PayloadTooLargeError,
321
367
  "422": UnprocessableEntityError,
322
368
  "429": RateLimitedError,
323
369
  "500": InternalServerError,
370
+ "502": BadGatewayError,
324
371
  },
325
372
  idempotencyKey: "Idempotency-Key",
326
373
  schemaKey: "projects.generate",
@@ -1,7 +1,7 @@
1
1
  import { HttpCore, type ApiResult, type RequestOptions } from "../core/http.js";
2
2
  import { PagePromise } from "../core/pagination.js";
3
- import { ResponseParseError, TransportError, UnexpectedApiError, ValidationError, BadRequestError, ConflictError, ForbiddenError, NotFoundError, RateLimitedError, UnauthorizedError, UnprocessableEntityError } from "../errors.js";
4
- import type { DeletedTargetRead, ProjectId, TargetFields, TargetId, TargetRead, TargetReleaseId, TargetReleaseRead, TargetReleaseResponseRead, TargetResponseRead, TargetUpdateRequest } from "../types.js";
3
+ import { ResponseParseError, TransportError, UnexpectedApiError, ValidationError, BadGatewayError, BadRequestError, ConflictError, ForbiddenError, InternalServerError, NotFoundError, PaymentRequiredError, PreconditionFailedError, RateLimitedError, UnauthorizedError, UnprocessableEntityError } from "../errors.js";
4
+ import type { DeletedTargetRead, DeliveryId, DeliveryResponseRead, DiscardDraftCustomizations, DraftConflictResolutionResponseRead, DraftCustomizationDiscardResponseRead, DraftFileContentResponseRead, DraftFileRead, DraftFileSide, DraftHistoryRecoveryResponseRead, ProjectId, PublicationId, PublicationResponseRead, RecoverDraftHistory, ResolveDraftConflicts, TargetAdoption, TargetDraftResponseRead, TargetDraftUpdate, TargetFields, TargetId, TargetRead, TargetReleaseId, TargetReleaseRead, TargetReleaseResponseRead, TargetResponseRead, TargetUpdateRequest } from "../types.js";
5
5
  export declare class TargetsResource {
6
6
  private readonly _core;
7
7
  constructor(_core: HttpCore);
@@ -15,8 +15,8 @@ export declare class TargetsResource {
15
15
  /**
16
16
  * Create an independently configured Target
17
17
  *
18
- * Several Targets may use the same generator with distinct configuration, Deliveries, and release
19
- * streams.
18
+ * Creates a Target with its own configuration, Deliveries, and release history. Multiple Targets
19
+ * can use the same generator.
20
20
  *
21
21
  * A `Idempotency-Key` UUID is generated per call (stable across retries) unless you pass one.
22
22
  * `POST /projects/{project_id}/targets`
@@ -30,16 +30,36 @@ export declare class TargetsResource {
30
30
  /**
31
31
  * Delete an unused Target
32
32
  *
33
- * Targets with Generation or release history, or an active release candidate, must be disabled
34
- * instead.
33
+ * Deletes a Target with no Generation history, release history, or active Draft. A `409
34
+ * resource_has_dependencies` means one of those resources still depends on it. Retrieve the
35
+ * Target, disable it instead, or resolve the dependency before retrying.
36
+ *
37
+ * See [conditional writes](https://typeship.dev/docs/typeship-api#conditional-writes) for ETag
38
+ * and If-Match.
35
39
  * `DELETE /targets/{target_id}`
36
40
  */
37
- delete(targetId: TargetId, options?: RequestOptions): Promise<ApiResult<DeletedTargetRead, TargetsDeleteError>>;
41
+ delete(targetId: TargetId, params?: TargetsDeleteParams, options?: RequestOptions): Promise<ApiResult<DeletedTargetRead, TargetsDeleteError>>;
38
42
  /**
39
43
  * Update a Target, its Deliveries, or its next reviewed version
44
+ *
45
+ * Omitted fields keep their current values. Supplied config, checks, and deliveries replace their
46
+ * complete stored values.
47
+ * Omitting If-Match applies the update to the current resource; with If-Match, a stale ETag
48
+ * returns 412 precondition_failed without saving.
49
+ * Send proposed_version by itself; use the Draft endpoint to select a version directly.
50
+ *
51
+ * A `409 target_busy` means the Target is publishing; wait for it to finish. A `409
52
+ * delivery_conflict` means another Target owns the requested repository tree; retrieve both
53
+ * Targets, choose a free destination, and retry.
54
+ * A `502` response means the update was saved, but retiring an obsolete review or regenerating a
55
+ * version selection failed. Retrieve the Target and follow the error's retryable and
56
+ * suggested_action fields. Repeating an unfinished version selection resumes generation;
57
+ * repeating a completed selection starts no new work.
58
+ * See [conditional writes](https://typeship.dev/docs/typeship-api#conditional-writes) for ETag
59
+ * and If-Match.
40
60
  * `PATCH /targets/{target_id}`
41
61
  */
42
- update(targetId: TargetId, body: TargetUpdateRequest, options?: RequestOptions): Promise<ApiResult<TargetResponseRead, TargetsUpdateError>>;
62
+ update(targetId: TargetId, body: TargetUpdateRequest, params?: TargetsUpdateParams, options?: RequestOptions): Promise<ApiResult<TargetResponseRead, TargetsUpdateError>>;
43
63
  /**
44
64
  * List immutable releases for a Target
45
65
  *
@@ -47,51 +67,294 @@ export declare class TargetsResource {
47
67
  * `GET /targets/{target_id}/releases`
48
68
  */
49
69
  listReleases(targetId: TargetId, params?: TargetsListReleasesParams, options?: RequestOptions): PagePromise<TargetReleaseRead, TargetsListReleasesError>;
70
+ /**
71
+ * Retrieve a Target's rolling Draft release
72
+ *
73
+ * Returns the Draft's status and its one next step, Current's version, the proposed version,
74
+ * readiness, checks, and conflict counts. Every status is described on `status`. The response
75
+ * carries an `ETag`; send it in `If-Match` when updating the Draft to avoid changing a newer
76
+ * version selection.
77
+ * `GET /targets/{target_id}/draft`
78
+ */
79
+ retrieveDraft(targetId: TargetId, options?: RequestOptions): Promise<ApiResult<TargetDraftResponseRead, TargetsRetrieveDraftError>>;
80
+ /**
81
+ * Select an exact Draft version or return to automatic versioning
82
+ *
83
+ * Checks your version choice against the required version bump, then regenerates the existing
84
+ * Draft pull request.
85
+ *
86
+ * Send the Draft's `ETag` in `If-Match` to reject an intervening change with 412
87
+ * precondition_failed before saving or regenerating. Omitting `If-Match` applies the selection to
88
+ * the current Draft. Version is required; null restores automatic selection.
89
+ *
90
+ * A `502` response means the selected version was saved, but regeneration failed. Follow the
91
+ * error's retryable and suggested_action fields. Repeating an unfinished selection resumes
92
+ * generation; repeating a completed selection starts no new work. If using If-Match, retrieve the
93
+ * Draft and confirm the saved selection before retrying with its current ETag.
94
+ * A `409 target_busy` means the Target is publishing; wait and retry. A `409 version_occupied`
95
+ * means the version is already released; retrieve the Draft and releases, choose a new version,
96
+ * and retry.
97
+ * See [conditional writes](https://typeship.dev/docs/typeship-api#conditional-writes) for ETag
98
+ * and If-Match.
99
+ * `PATCH /targets/{target_id}/draft`
100
+ */
101
+ updateDraft(targetId: TargetId, body: TargetDraftUpdate, params?: TargetsUpdateDraftParams, options?: RequestOptions): Promise<ApiResult<TargetDraftResponseRead, TargetsUpdateDraftError>>;
102
+ /**
103
+ * Adopt a verified existing package as Current
104
+ *
105
+ * Checks the repository tag, package metadata, and registry artifact, then records the package as
106
+ * an Imported Current release. Opens the first Typeship Draft at the next major version; review
107
+ * it to establish the baseline for preserving existing code.
108
+ *
109
+ * A `Idempotency-Key` UUID is generated per call (stable across retries) unless you pass one.
110
+ * `POST /targets/{target_id}/adopt`
111
+ */
112
+ adoptRelease(targetId: TargetId, body: TargetAdoption, params?: TargetsAdoptReleaseParams, options?: RequestOptions): Promise<ApiResult<TargetReleaseResponseRead, TargetsAdoptReleaseError>>;
50
113
  /**
51
114
  * Retrieve an immutable Target release
52
- * `GET /target_releases/{target_release_id}`
115
+ * `GET /target-releases/{target_release_id}`
53
116
  */
54
117
  retrieveRelease(targetReleaseId: TargetReleaseId, options?: RequestOptions): Promise<ApiResult<TargetReleaseResponseRead, TargetsRetrieveReleaseError>>;
118
+ /**
119
+ * Retry publication of an exact Target release
120
+ *
121
+ * Retries publication of the specified release through its repository workflow. Uses that
122
+ * release's version and accepted commit, even if a newer Draft or release exists.
123
+ *
124
+ * A `502` response means the repository publication workflow could not be dispatched.
125
+ *
126
+ * A `Idempotency-Key` UUID is generated per call (stable across retries) unless you pass one.
127
+ * `POST /target-releases/{target_release_id}/republish`
128
+ */
129
+ republishRelease(targetReleaseId: TargetReleaseId, params?: TargetsRepublishReleaseParams, options?: RequestOptions): Promise<ApiResult<TargetReleaseResponseRead, TargetsRepublishReleaseError>>;
130
+ /**
131
+ * List customized and conflicted files on a Draft
132
+ *
133
+ * Lists the Draft's files that differ from the last accepted package or need a conflict decision,
134
+ * ordered by path, without file content. Each conflict names its kind, where the incoming version
135
+ * comes from, the saved decision, and the sides you can read with retrieveDraftFileContent. With
136
+ * `filter=history`, lists the files affected by a default-branch history rewrite instead; the
137
+ * list is empty when none is pending.
138
+ *
139
+ * Returns `409 stale_draft` while Typeship has not integrated the Draft's latest commit (Draft
140
+ * status generating or branch_changed), or when the Draft changes between pages.
141
+ *
142
+ * Auto-paginates: `for await (const item of …)` walks every page.
143
+ * `GET /targets/{target_id}/draft/files`
144
+ */
145
+ listDraftFiles(targetId: TargetId, params?: TargetsListDraftFilesParams, options?: RequestOptions): PagePromise<DraftFileRead, TargetsListDraftFilesError>;
146
+ /**
147
+ * Read one side of a Draft file
148
+ *
149
+ * Returns up to 24 KiB of one side of a conflicted or history-affected file: text as UTF-8,
150
+ * binary content as base64. Follow `next_cursor` with the same path and side to read the rest,
151
+ * and concatenate the chunks in order. A side where the file is absent returns 404.
152
+ * `GET /targets/{target_id}/draft/files/content`
153
+ */
154
+ retrieveDraftFileContent(targetId: TargetId, params: TargetsRetrieveDraftFileContentParams, options?: RequestOptions): Promise<ApiResult<DraftFileContentResponseRead, TargetsRetrieveDraftFileContentError>>;
155
+ /**
156
+ * Resolve selected Draft conflicts
157
+ *
158
+ * Saves decisions for conflicts on the Draft's head_revision: keep the repository or incoming
159
+ * version, or supply the final content as text or, for binary files, base64. Decisions save
160
+ * together or not at all, and a decision can be replaced until it is applied. Use `dry_run` to
161
+ * validate them first.
162
+ *
163
+ * Saving changes no files. When every conflict has a decision, `remaining_conflicts` is 0 and the
164
+ * Draft status becomes `needs_generation`: generate the Target to apply the decisions and run its
165
+ * checks. Applying them can report conflicts from the next merge stage.
166
+ * `POST /targets/{target_id}/draft/conflicts/resolve`
167
+ */
168
+ resolveDraftConflicts(targetId: TargetId, body: ResolveDraftConflicts, options?: RequestOptions): Promise<ApiResult<DraftConflictResolutionResponseRead, TargetsResolveDraftConflictsError>>;
169
+ /**
170
+ * Discard selected Draft customizations
171
+ *
172
+ * Replaces the listed customized paths that are not conflicts with the generated files, in one
173
+ * commit on the Draft branch. A listed file that exists only on the Draft is deleted. Use
174
+ * `dry_run` to see the planned writes and deletions first. Resolve conflicts with
175
+ * resolveDraftConflicts.
176
+ *
177
+ * After the commit, the Draft status is `branch_changed` until Typeship integrates it from the
178
+ * repository's pull request event and reruns the checks; you do not need to generate the Target.
179
+ * `POST /targets/{target_id}/draft/customizations/discard`
180
+ */
181
+ discardDraftCustomizations(targetId: TargetId, body: DiscardDraftCustomizations, options?: RequestOptions): Promise<ApiResult<DraftCustomizationDiscardResponseRead, TargetsDiscardDraftCustomizationsError>>;
182
+ /**
183
+ * Approve recovery from rewritten default-branch history
184
+ *
185
+ * When the Draft status is `history_rewritten`, review the affected files with `listDraftFiles`
186
+ * and `filter=history`, then approve with the Draft's `history_recovery` revisions. Approval
187
+ * saves the recovery without changing Git, and the Draft status becomes `needs_generation`:
188
+ * generate the Target to open a new Draft from the rewritten default branch. The previous Draft
189
+ * branch stays available, and overlapping code comes back as conflicts to resolve. A rewritten
190
+ * Draft branch alone needs no approval.
191
+ * `POST /targets/{target_id}/draft/history/recover`
192
+ */
193
+ recoverDraftHistory(targetId: TargetId, body: RecoverDraftHistory, options?: RequestOptions): Promise<ApiResult<DraftHistoryRecoveryResponseRead, TargetsRecoverDraftHistoryError>>;
194
+ /**
195
+ * Retrieve a Delivery
196
+ *
197
+ * Returns the configured repository or hosted MCP Delivery for a Target. A Delivery in another
198
+ * organization returns 404 not_found.
199
+ * `GET /deliveries/{delivery_id}`
200
+ */
201
+ retrieveDelivery(deliveryId: DeliveryId, options?: RequestOptions): Promise<ApiResult<DeliveryResponseRead, TargetsRetrieveDeliveryError>>;
202
+ /**
203
+ * Retrieve a Publication
204
+ *
205
+ * Returns the current registry publication state for a Target Release. A Publication in another
206
+ * organization returns 404 not_found.
207
+ * `GET /publications/{publication_id}`
208
+ */
209
+ retrievePublication(publicationId: PublicationId, options?: RequestOptions): Promise<ApiResult<PublicationResponseRead, TargetsRetrievePublicationError>>;
55
210
  }
56
211
  export interface TargetsListParams {
57
- /** Maximum number of resources to return. */
212
+ /**
213
+ * Maximum number of resources to return. Omit for 20; otherwise supply base-10 digits
214
+ * representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400
215
+ * invalid_request. List query parameters must appear only once; unrecognized parameters also
216
+ * return 400.
217
+ */
58
218
  limit?: number;
59
219
  /**
60
220
  * Opaque cursor from the preceding page's next_cursor. Valid only for the same account,
61
- * operation, filters, and ordering that issued it.
221
+ * operation, filters, and ordering that issued it. Omit to start at the first page. Empty,
222
+ * malformed, or repeated cursors return 400 invalid_request. The page limit may change between
223
+ * requests.
62
224
  */
63
225
  cursor?: string;
64
226
  }
65
227
  /** Every error `list` can produce, as a discriminated union. */
66
- export type TargetsListError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | RateLimitedError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
228
+ export type TargetsListError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
67
229
  export interface TargetsCreateParams {
68
230
  /**
69
231
  * Identifies one logical write for 24 hours. The key is scoped to the authenticated account and
70
232
  * operation; account-less generation uses a hashed network identity. Retrying the same method,
71
- * path, query, and JSON body replays the original response. Reusing the key with changed intent
72
- * returns 409. After expiry the key starts a new write.
233
+ * path, query, If-Match header, and JSON body replays the original response. Reusing the key with
234
+ * changed intent returns 409. After expiry the key starts a new write.
73
235
  */
74
236
  idempotencyKey?: string;
75
237
  }
76
238
  /** Every error `create` can produce, as a discriminated union. */
77
- export type TargetsCreateError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | ConflictError | UnprocessableEntityError | RateLimitedError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
239
+ export type TargetsCreateError = BadRequestError | UnauthorizedError | PaymentRequiredError | ForbiddenError | NotFoundError | ConflictError | UnprocessableEntityError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
78
240
  /** Every error `retrieve` can produce, as a discriminated union. */
79
- export type TargetsRetrieveError = UnauthorizedError | ForbiddenError | NotFoundError | RateLimitedError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
241
+ export type TargetsRetrieveError = UnauthorizedError | ForbiddenError | NotFoundError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
242
+ export interface TargetsDeleteParams {
243
+ /**
244
+ * ETag from a preceding response. The write applies only if the resource still has that version;
245
+ * otherwise it returns 412 precondition_failed without changes. Omit to write the current
246
+ * version. See https://typeship.dev/docs/typeship-api#conditional-writes.
247
+ */
248
+ ifMatch?: string;
249
+ }
80
250
  /** Every error `delete` can produce, as a discriminated union. */
81
- export type TargetsDeleteError = UnauthorizedError | ForbiddenError | NotFoundError | ConflictError | RateLimitedError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
251
+ export type TargetsDeleteError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | ConflictError | PreconditionFailedError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
252
+ export interface TargetsUpdateParams {
253
+ /**
254
+ * ETag from a preceding response. The write applies only if the resource still has that version;
255
+ * otherwise it returns 412 precondition_failed without changes. Omit to write the current
256
+ * version. See https://typeship.dev/docs/typeship-api#conditional-writes.
257
+ */
258
+ ifMatch?: string;
259
+ }
82
260
  /** Every error `update` can produce, as a discriminated union. */
83
- export type TargetsUpdateError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | ConflictError | UnprocessableEntityError | RateLimitedError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
261
+ export type TargetsUpdateError = BadRequestError | UnauthorizedError | PaymentRequiredError | ForbiddenError | NotFoundError | ConflictError | PreconditionFailedError | UnprocessableEntityError | RateLimitedError | InternalServerError | BadGatewayError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
84
262
  export interface TargetsListReleasesParams {
85
- /** Maximum number of resources to return. */
263
+ /**
264
+ * Maximum number of resources to return. Omit for 20; otherwise supply base-10 digits
265
+ * representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400
266
+ * invalid_request. List query parameters must appear only once; unrecognized parameters also
267
+ * return 400.
268
+ */
86
269
  limit?: number;
87
270
  /**
88
271
  * Opaque cursor from the preceding page's next_cursor. Valid only for the same account,
89
- * operation, filters, and ordering that issued it.
272
+ * operation, filters, and ordering that issued it. Omit to start at the first page. Empty,
273
+ * malformed, or repeated cursors return 400 invalid_request. The page limit may change between
274
+ * requests.
90
275
  */
91
276
  cursor?: string;
92
277
  }
93
278
  /** Every error `listReleases` can produce, as a discriminated union. */
94
- export type TargetsListReleasesError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | RateLimitedError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
279
+ export type TargetsListReleasesError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
280
+ /** Every error `retrieveDraft` can produce, as a discriminated union. */
281
+ export type TargetsRetrieveDraftError = UnauthorizedError | ForbiddenError | NotFoundError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
282
+ export interface TargetsUpdateDraftParams {
283
+ /**
284
+ * ETag from a preceding response. The write applies only if the resource still has that version;
285
+ * otherwise it returns 412 precondition_failed without changes. Omit to write the current
286
+ * version. See https://typeship.dev/docs/typeship-api#conditional-writes.
287
+ */
288
+ ifMatch?: string;
289
+ }
290
+ /** Every error `updateDraft` can produce, as a discriminated union. */
291
+ export type TargetsUpdateDraftError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | ConflictError | PreconditionFailedError | UnprocessableEntityError | RateLimitedError | InternalServerError | BadGatewayError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
292
+ export interface TargetsAdoptReleaseParams {
293
+ /**
294
+ * Identifies one logical write for 24 hours. The key is scoped to the authenticated account and
295
+ * operation; account-less generation uses a hashed network identity. Retrying the same method,
296
+ * path, query, If-Match header, and JSON body replays the original response. Reusing the key with
297
+ * changed intent returns 409. After expiry the key starts a new write.
298
+ */
299
+ idempotencyKey?: string;
300
+ }
301
+ /** Every error `adoptRelease` can produce, as a discriminated union. */
302
+ export type TargetsAdoptReleaseError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | ConflictError | UnprocessableEntityError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
95
303
  /** Every error `retrieveRelease` can produce, as a discriminated union. */
96
- export type TargetsRetrieveReleaseError = UnauthorizedError | ForbiddenError | NotFoundError | RateLimitedError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
304
+ export type TargetsRetrieveReleaseError = UnauthorizedError | ForbiddenError | NotFoundError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
305
+ export interface TargetsRepublishReleaseParams {
306
+ /**
307
+ * Identifies one logical write for 24 hours. The key is scoped to the authenticated account and
308
+ * operation; account-less generation uses a hashed network identity. Retrying the same method,
309
+ * path, query, If-Match header, and JSON body replays the original response. Reusing the key with
310
+ * changed intent returns 409. After expiry the key starts a new write.
311
+ */
312
+ idempotencyKey?: string;
313
+ }
314
+ /** Every error `republishRelease` can produce, as a discriminated union. */
315
+ export type TargetsRepublishReleaseError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | ConflictError | RateLimitedError | InternalServerError | BadGatewayError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
316
+ export interface TargetsListDraftFilesParams {
317
+ /**
318
+ * conflicted: conflicts only. customized: files that differ from the last accepted package.
319
+ * history: files affected by a default-branch history rewrite. Omit for conflicted and customized
320
+ * files.
321
+ */
322
+ filter?: "conflicted" | "customized" | "history";
323
+ /**
324
+ * Maximum number of resources to return. Omit for 20; otherwise supply base-10 digits
325
+ * representing an integer from 1 to 100. Empty, malformed, or out-of-range values return 400
326
+ * invalid_request. List query parameters must appear only once; unrecognized parameters also
327
+ * return 400.
328
+ */
329
+ limit?: number;
330
+ /**
331
+ * Opaque cursor from the preceding page's next_cursor. Valid only for the same account,
332
+ * operation, filters, and ordering that issued it. Omit to start at the first page. Empty,
333
+ * malformed, or repeated cursors return 400 invalid_request. The page limit may change between
334
+ * requests.
335
+ */
336
+ cursor?: string;
337
+ }
338
+ /** Every error `listDraftFiles` can produce, as a discriminated union. */
339
+ export type TargetsListDraftFilesError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | ConflictError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
340
+ export interface TargetsRetrieveDraftFileContentParams {
341
+ /** File path from listDraftFiles. */
342
+ path: string;
343
+ /** A side listed for the file. */
344
+ side: DraftFileSide;
345
+ /** next_cursor from the preceding chunk of the same path and side. */
346
+ cursor?: string;
347
+ }
348
+ /** Every error `retrieveDraftFileContent` can produce, as a discriminated union. */
349
+ export type TargetsRetrieveDraftFileContentError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | ConflictError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
350
+ /** Every error `resolveDraftConflicts` can produce, as a discriminated union. */
351
+ export type TargetsResolveDraftConflictsError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | ConflictError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
352
+ /** Every error `discardDraftCustomizations` can produce, as a discriminated union. */
353
+ export type TargetsDiscardDraftCustomizationsError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | ConflictError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
354
+ /** Every error `recoverDraftHistory` can produce, as a discriminated union. */
355
+ export type TargetsRecoverDraftHistoryError = BadRequestError | UnauthorizedError | ForbiddenError | NotFoundError | ConflictError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
356
+ /** Every error `retrieveDelivery` can produce, as a discriminated union. */
357
+ export type TargetsRetrieveDeliveryError = UnauthorizedError | ForbiddenError | NotFoundError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
358
+ /** Every error `retrievePublication` can produce, as a discriminated union. */
359
+ export type TargetsRetrievePublicationError = UnauthorizedError | ForbiddenError | NotFoundError | RateLimitedError | InternalServerError | UnexpectedApiError | ResponseParseError | TransportError | ValidationError;
97
360
  //# sourceMappingURL=targets.d.ts.map