@opvs-ai/mcp 2.11.0 → 2.13.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.
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
package/dist/ship.d.ts ADDED
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Ship-line tools — the per-project ship surface (SLB-351).
3
+ *
4
+ * Six thin wrappers over the project-scoped routes in
5
+ * `apps/api/app/api/v1/project_ship_line.py` and
6
+ * `apps/api/app/api/v1/project_ship.py`. Every tool takes a `project_id` and
7
+ * forwards the call exactly as the merged inputs described.
8
+ *
9
+ * Paths are deliberately split — `/api/v1/projects/{project_id}/ship-line…`
10
+ * holds the line configuration and connect flow; `/api/v1/projects/{project_id}/ship/…`
11
+ * holds the per-PR controls. The LEGACY `/api/v1/ship/…` shape (no project_id)
12
+ * is not wired here — see `apps/api/app/api/v1/ship.py` for the admin ship
13
+ * router, which is a different surface and returns 422 for these inputs.
14
+ *
15
+ * Lives outside `index.ts` because that file ends in a top-level
16
+ * `await server.connect(transport)` — importing it to unit-test a handler would
17
+ * start a server. See `http.ts` for the same reasoning.
18
+ */
19
+ import { type ToolResult } from "./http.js";
20
+ export declare const SHIP_TOOLS: ({
21
+ name: string;
22
+ description: string;
23
+ inputSchema: {
24
+ type: string;
25
+ properties: {
26
+ project_id: {
27
+ type: string;
28
+ description: string;
29
+ };
30
+ pr?: undefined;
31
+ reason?: undefined;
32
+ head_sha?: undefined;
33
+ };
34
+ required: string[];
35
+ };
36
+ } | {
37
+ name: string;
38
+ description: string;
39
+ inputSchema: {
40
+ type: string;
41
+ properties: {
42
+ project_id: {
43
+ type: string;
44
+ description: string;
45
+ };
46
+ pr: {
47
+ type: string;
48
+ description: string;
49
+ };
50
+ reason: {
51
+ type: string;
52
+ description: string;
53
+ };
54
+ head_sha?: undefined;
55
+ };
56
+ required: string[];
57
+ };
58
+ } | {
59
+ name: string;
60
+ description: string;
61
+ inputSchema: {
62
+ type: string;
63
+ properties: {
64
+ project_id: {
65
+ type: string;
66
+ description: string;
67
+ };
68
+ pr: {
69
+ type: string;
70
+ description: string;
71
+ };
72
+ reason?: undefined;
73
+ head_sha?: undefined;
74
+ };
75
+ required: string[];
76
+ };
77
+ } | {
78
+ name: string;
79
+ description: string;
80
+ inputSchema: {
81
+ type: string;
82
+ properties: {
83
+ project_id: {
84
+ type: string;
85
+ description: string;
86
+ };
87
+ pr: {
88
+ type: string;
89
+ description: string;
90
+ };
91
+ head_sha: {
92
+ type: string;
93
+ description: string;
94
+ };
95
+ reason?: undefined;
96
+ };
97
+ required: string[];
98
+ };
99
+ })[];
100
+ export declare function handleShipStatus(args: {
101
+ project_id?: unknown;
102
+ }): Promise<ToolResult>;
103
+ export declare function handleShipConnectLink(args: {
104
+ project_id?: unknown;
105
+ }): Promise<ToolResult>;
106
+ export declare function handleShipPrs(args: {
107
+ project_id?: unknown;
108
+ }): Promise<ToolResult>;
109
+ export declare function handleShipHold(args: {
110
+ project_id?: unknown;
111
+ pr?: unknown;
112
+ reason?: unknown;
113
+ }): Promise<ToolResult>;
114
+ export declare function handleShipRelease(args: {
115
+ project_id?: unknown;
116
+ pr?: unknown;
117
+ }): Promise<ToolResult>;
118
+ export declare function handleShipApprove(args: {
119
+ project_id?: unknown;
120
+ pr?: unknown;
121
+ head_sha?: unknown;
122
+ }): Promise<ToolResult>;
package/dist/ship.js ADDED
@@ -0,0 +1,441 @@
1
+ /**
2
+ * Ship-line tools — the per-project ship surface (SLB-351).
3
+ *
4
+ * Six thin wrappers over the project-scoped routes in
5
+ * `apps/api/app/api/v1/project_ship_line.py` and
6
+ * `apps/api/app/api/v1/project_ship.py`. Every tool takes a `project_id` and
7
+ * forwards the call exactly as the merged inputs described.
8
+ *
9
+ * Paths are deliberately split — `/api/v1/projects/{project_id}/ship-line…`
10
+ * holds the line configuration and connect flow; `/api/v1/projects/{project_id}/ship/…`
11
+ * holds the per-PR controls. The LEGACY `/api/v1/ship/…` shape (no project_id)
12
+ * is not wired here — see `apps/api/app/api/v1/ship.py` for the admin ship
13
+ * router, which is a different surface and returns 422 for these inputs.
14
+ *
15
+ * Lives outside `index.ts` because that file ends in a top-level
16
+ * `await server.connect(transport)` — importing it to unit-test a handler would
17
+ * start a server. See `http.ts` for the same reasoning.
18
+ */
19
+ import { err, getJson, ok, postJson } from "./http.js";
20
+ export const SHIP_TOOLS = [
21
+ {
22
+ name: "ship_status",
23
+ description: "Read a project's ship-line SETTINGS and live CONNECTION STATE in ONE " +
24
+ "call. Settings (mode = shadow | live, deploy mode, owner list, enabled, " +
25
+ "the bound repository) come from the project-scoped `/ship-line` route; " +
26
+ "connection state (the GitHub installation it talks to and whether that " +
27
+ "installation is still healthy) comes from `/ship-line/connection`. A " +
28
+ "missing connection row is NAMED, not 'ship is off' — the two halves " +
29
+ "answer different questions: settings without connection means the line " +
30
+ "is configured but unbound; connection without settings is a write-side " +
31
+ "state the API cannot answer from settings alone. Read-only; takes only " +
32
+ "`project_id`.",
33
+ inputSchema: {
34
+ type: "object",
35
+ properties: {
36
+ project_id: {
37
+ type: "string",
38
+ description: "Project UUID. Required.",
39
+ },
40
+ },
41
+ required: ["project_id"],
42
+ },
43
+ },
44
+ {
45
+ name: "ship_connect_link",
46
+ description: "Return the TWO signed GitHub URLs that bind (or re-bind) the Ship app " +
47
+ "to this project — `install_url` for an account that does NOT have the " +
48
+ "Ship app yet, and `link_url` for one that DOES (OPVS's own org, every " +
49
+ "customer's second project; GitHub's install screen never comes back for " +
50
+ "such an account, lesson ORP-41). This tool DOES NOT open anything — " +
51
+ "it returns the URLs and a one-line instruction so the agent can hand " +
52
+ "them to a human. Returns the URL the line currently needs based on " +
53
+ "whether an installation is already bound. A 503 means the Ship app is " +
54
+ "not configured for this brand.",
55
+ inputSchema: {
56
+ type: "object",
57
+ properties: {
58
+ project_id: {
59
+ type: "string",
60
+ description: "Project UUID. Required.",
61
+ },
62
+ },
63
+ required: ["project_id"],
64
+ },
65
+ },
66
+ {
67
+ name: "ship_prs",
68
+ description: "List the pull requests this project's ship line is tracking — the " +
69
+ "same rows the dashboard's PR pane shows. Read-only; takes only " +
70
+ "`project_id`. Returns `items`, `page`, `per_page`, `total` and the " +
71
+ "`project_id` the items were scoped to. Use this to answer 'why is PR " +
72
+ "N waiting?' before calling `ship_hold` / `ship_release` / `ship_approve`.",
73
+ inputSchema: {
74
+ type: "object",
75
+ properties: {
76
+ project_id: {
77
+ type: "string",
78
+ description: "Project UUID. Required.",
79
+ },
80
+ },
81
+ required: ["project_id"],
82
+ },
83
+ },
84
+ {
85
+ name: "ship_hold",
86
+ description: "⚠️ THIS WRITES: queue a HOLD on the named PR — the ship line will not " +
87
+ "promote this PR until a matching `ship_release` lands. Requires a " +
88
+ "brand-admin PAT (a 403 means the caller's role is not brand admin). " +
89
+ "Takes `project_id`, `pr` (the PR number) and a non-empty `reason` " +
90
+ "(1-1000 chars) that is recorded on the hold. The legacy `/api/v1/ship/` " +
91
+ "shape is NOT used here — this tool always targets the project-scoped " +
92
+ "route, which is the only one that honours brand isolation.",
93
+ inputSchema: {
94
+ type: "object",
95
+ properties: {
96
+ project_id: {
97
+ type: "string",
98
+ description: "Project UUID. Required.",
99
+ },
100
+ pr: {
101
+ type: "number",
102
+ description: "PR number to hold. Required, > 0.",
103
+ },
104
+ reason: {
105
+ type: "string",
106
+ description: "Free-text reason, 1-1000 chars. Required.",
107
+ },
108
+ },
109
+ required: ["project_id", "pr", "reason"],
110
+ },
111
+ },
112
+ {
113
+ name: "ship_release",
114
+ description: "⚠️ THIS WRITES: release a previously held PR so the ship line can " +
115
+ "promote it again. Requires a brand-admin PAT (a 403 means the caller's " +
116
+ "role is not brand admin). Takes `project_id` and `pr` (the PR " +
117
+ "number); no reason field — the matching hold's reason is left in the " +
118
+ "ledger for audit. A 409 means the PR has no hold to release.",
119
+ inputSchema: {
120
+ type: "object",
121
+ properties: {
122
+ project_id: {
123
+ type: "string",
124
+ description: "Project UUID. Required.",
125
+ },
126
+ pr: {
127
+ type: "number",
128
+ description: "PR number to release. Required, > 0.",
129
+ },
130
+ },
131
+ required: ["project_id", "pr"],
132
+ },
133
+ },
134
+ {
135
+ name: "ship_approve",
136
+ description: "⚠️ THIS WRITES: record the OWNER APPROVAL that lets the ship line " +
137
+ "promote this PR. Works ONLY for a user listed in the line's " +
138
+ "`owner_user_ids` — a brand admin who is NOT a listed owner gets a 403 " +
139
+ "(see tests/api/ship/test_project_ship_routes.py). Takes `project_id`, " +
140
+ "`pr` (the PR number) and `head_sha` (the 40-char hex SHA of the PR " +
141
+ "head). Approving with the wrong head SHA is recorded as a conflict " +
142
+ "(409), not silently accepted — the SHA binds the approval to the " +
143
+ "exact commit the owner saw.",
144
+ inputSchema: {
145
+ type: "object",
146
+ properties: {
147
+ project_id: {
148
+ type: "string",
149
+ description: "Project UUID. Required.",
150
+ },
151
+ pr: {
152
+ type: "number",
153
+ description: "PR number to approve. Required, > 0.",
154
+ },
155
+ head_sha: {
156
+ type: "string",
157
+ description: "40-char hex SHA of the PR head being approved. Lower- or " +
158
+ "upper-case accepted; the server normalizes. Required.",
159
+ },
160
+ },
161
+ required: ["project_id", "pr", "head_sha"],
162
+ },
163
+ },
164
+ ];
165
+ // ── handlers ─────────────────────────────────────────────────────────
166
+ /** Minimal project_id gate, shared by all six tools — keep it here so a 422
167
+ * from an unknown project doesn't read as a server fault. */
168
+ function requireProjectId(args) {
169
+ if (typeof args.project_id !== "string" || args.project_id.trim() === "") {
170
+ return err("project_id is required", "#audit.error:input=missing — every ship_* tool takes a project_id. The " +
171
+ "ship router is per-project; the legacy `/api/v1/ship/…` admin shape " +
172
+ "is not wired here.");
173
+ }
174
+ return args.project_id;
175
+ }
176
+ function isToolResult(value) {
177
+ return (typeof value === "object" &&
178
+ value !== null &&
179
+ Array.isArray(value.content));
180
+ }
181
+ function projectPath(projectId, suffix) {
182
+ return `/api/v1/projects/${encodeURIComponent(projectId)}${suffix}`;
183
+ }
184
+ export async function handleShipStatus(args) {
185
+ const pid = requireProjectId(args);
186
+ if (isToolResult(pid))
187
+ return pid;
188
+ // Two hops, the same way `slot_get` does — settings from `/ship-line`,
189
+ // connection from `/ship-line/connection`. A connection-side failure is
190
+ // NAMED rather than collapsing the whole call: settings without connection
191
+ // is a real answer (line configured, GitHub side unknown), and saying so
192
+ // is better than failing the call and forcing a retry that asks the same
193
+ // question.
194
+ let settings = null;
195
+ let settingsError = null;
196
+ try {
197
+ settings = await getJson(projectPath(pid, "/ship-line"));
198
+ }
199
+ catch (e) {
200
+ const error = e;
201
+ settingsError = `${error.status ?? "?"} ${error.detail ?? "settings read failed"}`;
202
+ if (error.status === 403 || error.status === 404) {
203
+ return err(`ship_status: ${error.status} ${error.detail ?? ""}`, error.status === 404
204
+ ? "#audit.error:project=missing — no ship line is configured for " +
205
+ "this project. #next:ship_connect_link to bind one."
206
+ : "#audit.error:auth — the PAT is not authorised to read this " +
207
+ "project's ship line. #next:whoami to confirm the brand.");
208
+ }
209
+ if (error.status === 503) {
210
+ return err(`ship_status unavailable: ${settingsError}`, "#audit.error:upstream — the ship ledger database is unreachable. " +
211
+ "#next:retry shortly; do not call ship_hold or ship_release against " +
212
+ "an unreachable backend.");
213
+ }
214
+ }
215
+ const body = {
216
+ project_id: pid,
217
+ settings,
218
+ };
219
+ try {
220
+ const connection = await getJson(projectPath(pid, "/ship-line/connection"));
221
+ body.connection = connection;
222
+ }
223
+ catch (e) {
224
+ const error = e;
225
+ body.connection = null;
226
+ body.connection_error = `${error.status ?? "?"} ${error.detail ?? "connection read failed"}`;
227
+ body._guidance =
228
+ "#audit.partial:connection — settings landed but the live connection " +
229
+ "state could not be read. `connection: null` means UNKNOWN, not " +
230
+ "'not connected'. GitHub's installation status is a separate question " +
231
+ "from whether the line is configured.";
232
+ if (error.status === 503) {
233
+ body._guidance =
234
+ "#audit.partial:connection — the Ship App is not configured for this " +
235
+ "brand (the connect route returns 503 with `ship_app_not_configured`). " +
236
+ "Settings still landed; the connection half will only answer once " +
237
+ "the platform admin provisions the Ship App.";
238
+ }
239
+ }
240
+ return ok(body);
241
+ }
242
+ export async function handleShipConnectLink(args) {
243
+ const pid = requireProjectId(args);
244
+ if (isToolResult(pid))
245
+ return pid;
246
+ try {
247
+ // The merged SI1 reply model is `{install_url, link_url, expires_in}` —
248
+ // `install_url` is for an account that does not have the Ship app yet,
249
+ // `link_url` for one that does (OPVS's own org, every customer's second
250
+ // project). The `15 Oct 2026` planner note overrode the older bullet
251
+ // that listed only `install_url`: a missing `link_url` would leave an
252
+ // agent telling a user who already has the app installed to click a
253
+ // GitHub URL that does not return. Pass BOTH URLs through, plus a
254
+ // one-line instruction naming which one is which.
255
+ const data = await postJson(projectPath(pid, "/ship-line/connect"), {});
256
+ const installUrl = data.install_url ?? null;
257
+ const linkUrl = data.link_url ?? null;
258
+ const expiresIn = data.expires_in ?? null;
259
+ const instruction = "Ship the line for project " +
260
+ pid +
261
+ ": if the account does NOT have the Ship app installed yet, share " +
262
+ "`install_url` (GitHub will ask for installation); if the Ship app is " +
263
+ "already installed on the account, share `link_url` (GitHub will bind " +
264
+ "the existing installation). Both URLs expire after " +
265
+ String(expiresIn ?? "?") +
266
+ "s — mint fresh ones with ship_connect_link when needed.";
267
+ return ok({
268
+ project_id: pid,
269
+ install_url: installUrl,
270
+ link_url: linkUrl,
271
+ expires_in: expiresIn,
272
+ instruction,
273
+ });
274
+ }
275
+ catch (e) {
276
+ const error = e;
277
+ if (error.status === 403) {
278
+ return err(`ship_connect_link forbidden: ${error.detail ?? ""}`, "#audit.error:auth — connect requires a brand-admin role (or a " +
279
+ "listed owner). Service accounts are refused on this route. " +
280
+ "#next:whoami to confirm the PAT.");
281
+ }
282
+ if (error.status === 404) {
283
+ return err(`ship_connect_link: no ship line for project ${pid}`, "#audit.error:project=missing — the line must be configured before " +
284
+ "the connect URL is meaningful. #next:create the line via the " +
285
+ "dashboard or PUT /api/v1/projects/{project_id}/ship-line.");
286
+ }
287
+ if (error.status === 503) {
288
+ return err(`ship_connect_link unavailable: ${error.detail ?? ""}`, "#audit.error:upstream — the Ship App is not configured for this " +
289
+ "brand (a platform admin needs to provision it). No URL will " +
290
+ "land until then; do not retry blindly.");
291
+ }
292
+ return err(`ship_connect_link failed: ${error.status ?? "?"} ${error.detail ?? ""}`, "#audit.error:upstream #next:retry shortly; nothing was written.");
293
+ }
294
+ }
295
+ export async function handleShipPrs(args) {
296
+ const pid = requireProjectId(args);
297
+ if (isToolResult(pid))
298
+ return pid;
299
+ try {
300
+ const data = await getJson(projectPath(pid, "/ship/prs"));
301
+ return ok({ project_id: pid, ...data });
302
+ }
303
+ catch (e) {
304
+ const error = e;
305
+ if (error.status === 403) {
306
+ return err(`ship_prs forbidden: ${error.detail ?? ""}`, "#audit.error:auth #next:whoami to confirm the PAT's brand.");
307
+ }
308
+ if (error.status === 404) {
309
+ return err(`ship_prs: no ship line for project ${pid}`, "#audit.error:project=missing #next:ship_status to see whether the " +
310
+ "line is configured at all.");
311
+ }
312
+ if (error.status === 503) {
313
+ return err(`ship_prs unavailable: ${error.detail ?? ""}`, "#audit.error:upstream — the ship ledger database is unreachable. " +
314
+ "#next:retry shortly.");
315
+ }
316
+ return err(`ship_prs failed: ${error.status ?? "?"} ${error.detail ?? ""}`, "#audit.error:upstream");
317
+ }
318
+ }
319
+ function requirePr(args) {
320
+ if (typeof args.pr !== "number" || !Number.isFinite(args.pr) || args.pr <= 0) {
321
+ return err("pr must be a positive integer", "#audit.error:input=missing — every ship write tool takes the PR " +
322
+ "number as `pr` (the wire field is `pr_number`, rewritten here).");
323
+ }
324
+ return args.pr;
325
+ }
326
+ export async function handleShipHold(args) {
327
+ const pid = requireProjectId(args);
328
+ if (isToolResult(pid))
329
+ return pid;
330
+ const pr = requirePr(args);
331
+ if (isToolResult(pr))
332
+ return pr;
333
+ if (typeof args.reason !== "string" || args.reason.trim() === "") {
334
+ return err("reason is required", "#audit.error:input=missing — ship_hold needs a non-empty reason " +
335
+ "(1-1000 chars). The reason is recorded on the hold; ship_release " +
336
+ "does not carry one.");
337
+ }
338
+ try {
339
+ const data = await postJson(projectPath(pid, `/ship/prs/${encodeURIComponent(pr)}/hold`), { reason: args.reason });
340
+ return ok({ project_id: pid, pr, ...data });
341
+ }
342
+ catch (e) {
343
+ const error = e;
344
+ if (error.status === 403) {
345
+ return err(`ship_hold forbidden: ${error.detail ?? ""}`, "#audit.error:auth — hold requires a brand-admin role; the caller is " +
346
+ "either not an admin or came through a platform-admin key (the " +
347
+ "project-scoped route refuses platform-admin auth on writes). " +
348
+ "#next:whoami to confirm role; ship_approve is the write a listed " +
349
+ "owner can do instead.");
350
+ }
351
+ if (error.status === 404) {
352
+ return err(`ship_hold: no ship line for project ${pid}`, "#audit.error:project=missing #next:ship_status to see the line.");
353
+ }
354
+ if (error.status === 422) {
355
+ return err(`ship_hold rejected: ${error.detail ?? ""}`, "#audit.error:input — reason must be 1-1000 chars; check the value.");
356
+ }
357
+ if (error.status === 503) {
358
+ return err(`ship_hold unavailable: ${error.detail ?? ""}`, "#audit.error:upstream — ship ledger database unreachable. " +
359
+ "#next:retry shortly; do not retry blindly without checking the " +
360
+ "ledger, a partial queue is possible.");
361
+ }
362
+ return err(`ship_hold failed: ${error.status ?? "?"} ${error.detail ?? ""}`, "#audit.error:upstream");
363
+ }
364
+ }
365
+ export async function handleShipRelease(args) {
366
+ const pid = requireProjectId(args);
367
+ if (isToolResult(pid))
368
+ return pid;
369
+ const pr = requirePr(args);
370
+ if (isToolResult(pr))
371
+ return pr;
372
+ try {
373
+ const data = await postJson(projectPath(pid, `/ship/prs/${encodeURIComponent(pr)}/release`), {});
374
+ return ok({ project_id: pid, pr, ...data });
375
+ }
376
+ catch (e) {
377
+ const error = e;
378
+ if (error.status === 403) {
379
+ return err(`ship_release forbidden: ${error.detail ?? ""}`, "#audit.error:auth — release requires a brand-admin role. " +
380
+ "#next:whoami to confirm role.");
381
+ }
382
+ if (error.status === 404) {
383
+ return err(`ship_release: no ship line for project ${pid}`, "#audit.error:project=missing #next:ship_status to see the line.");
384
+ }
385
+ if (error.status === 409) {
386
+ return err(`ship_release conflict: ${error.detail ?? ""}`, "#audit.error:conflict — the PR has no hold to release. " +
387
+ "#next:ship_prs to read the current state.");
388
+ }
389
+ if (error.status === 503) {
390
+ return err(`ship_release unavailable: ${error.detail ?? ""}`, "#audit.error:upstream — ship ledger database unreachable. " +
391
+ "#next:retry shortly.");
392
+ }
393
+ return err(`ship_release failed: ${error.status ?? "?"} ${error.detail ?? ""}`, "#audit.error:upstream");
394
+ }
395
+ }
396
+ export async function handleShipApprove(args) {
397
+ const pid = requireProjectId(args);
398
+ if (isToolResult(pid))
399
+ return pid;
400
+ const pr = requirePr(args);
401
+ if (isToolResult(pr))
402
+ return pr;
403
+ if (typeof args.head_sha !== "string" || !/^[0-9a-fA-F]{40}$/.test(args.head_sha)) {
404
+ // The server's `OwnerApprovalRequest.head_sha` is `^[0-9a-fA-F]{40}$` —
405
+ // a value that clears that regex on its way to the wire would still
406
+ // 422 on arrival. Rejecting here turns a cryptic server rejection into
407
+ // a one-line correction.
408
+ return err("head_sha must be a 40-character hex SHA", "#audit.error:input — the head_sha is the 40-char hex SHA of the PR " +
409
+ "head being approved. Lower- or upper-case accepted.");
410
+ }
411
+ try {
412
+ const data = await postJson(projectPath(pid, `/ship/prs/${encodeURIComponent(pr)}/approve`), { head_sha: args.head_sha });
413
+ return ok({ project_id: pid, pr, ...data });
414
+ }
415
+ catch (e) {
416
+ const error = e;
417
+ if (error.status === 403) {
418
+ return err(`ship_approve forbidden: ${error.detail ?? ""}`, "#audit.error:auth — approve requires the caller to be a LISTED " +
419
+ "OWNER in the line's `owner_user_ids` (brand-admin alone is not " +
420
+ "enough — a brand admin who is not a listed owner still gets this " +
421
+ "403). #next:ship_status to read the line's owner list.");
422
+ }
423
+ if (error.status === 404) {
424
+ return err(`ship_approve: no ship line for project ${pid}`, "#audit.error:project=missing #next:ship_status to see the line.");
425
+ }
426
+ if (error.status === 409) {
427
+ return err(`ship_approve conflict: ${error.detail ?? ""}`, "#audit.error:conflict — the head_sha does not match the PR's " +
428
+ "current head (the approval is bound to the exact commit the " +
429
+ "owner saw). #next:read the PR's current head_sha and retry.");
430
+ }
431
+ if (error.status === 422) {
432
+ return err(`ship_approve rejected: ${error.detail ?? ""}`, "#audit.error:input — head_sha must be a 40-char hex SHA.");
433
+ }
434
+ if (error.status === 503) {
435
+ return err(`ship_approve unavailable: ${error.detail ?? ""}`, "#audit.error:upstream — ship ledger database unreachable. " +
436
+ "#next:retry shortly.");
437
+ }
438
+ return err(`ship_approve failed: ${error.status ?? "?"} ${error.detail ?? ""}`, "#audit.error:upstream");
439
+ }
440
+ }
441
+ //# sourceMappingURL=ship.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship.js","sourceRoot":"","sources":["../src/ship.ts"],"names":[],"mappings":"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"}