@claudexor/control-api 3.0.3 → 3.1.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 (57) hide show
  1. package/LICENSE +1 -1
  2. package/dist/artifact-serve-routes.d.ts +46 -1
  3. package/dist/artifact-serve-routes.d.ts.map +1 -1
  4. package/dist/artifact-serve-routes.js +172 -8
  5. package/dist/artifact-serve-routes.js.map +1 -1
  6. package/dist/candidates.d.ts.map +1 -1
  7. package/dist/candidates.js +14 -1
  8. package/dist/candidates.js.map +1 -1
  9. package/dist/daemon-server.d.ts +67 -3
  10. package/dist/daemon-server.d.ts.map +1 -1
  11. package/dist/daemon-server.js +349 -50
  12. package/dist/daemon-server.js.map +1 -1
  13. package/dist/operation-catalog.d.ts +10 -1
  14. package/dist/operation-catalog.d.ts.map +1 -1
  15. package/dist/operation-catalog.js +150 -18
  16. package/dist/operation-catalog.js.map +1 -1
  17. package/dist/operation-parameters.d.ts +34 -0
  18. package/dist/operation-parameters.d.ts.map +1 -0
  19. package/dist/operation-parameters.js +52 -0
  20. package/dist/operation-parameters.js.map +1 -0
  21. package/dist/problem-response.d.ts +43 -0
  22. package/dist/problem-response.d.ts.map +1 -1
  23. package/dist/problem-response.js +192 -0
  24. package/dist/problem-response.js.map +1 -1
  25. package/dist/project-routes.d.ts +1 -0
  26. package/dist/project-routes.d.ts.map +1 -1
  27. package/dist/project-routes.js +18 -1
  28. package/dist/project-routes.js.map +1 -1
  29. package/dist/run-apply-routes.d.ts +6 -1
  30. package/dist/run-apply-routes.d.ts.map +1 -1
  31. package/dist/run-apply-routes.js +32 -2
  32. package/dist/run-apply-routes.js.map +1 -1
  33. package/dist/run-events-stream.d.ts.map +1 -1
  34. package/dist/run-events-stream.js +99 -64
  35. package/dist/run-events-stream.js.map +1 -1
  36. package/dist/run-list.d.ts +74 -0
  37. package/dist/run-list.d.ts.map +1 -0
  38. package/dist/run-list.js +156 -0
  39. package/dist/run-list.js.map +1 -0
  40. package/dist/run-retry-routes.d.ts.map +1 -1
  41. package/dist/run-retry-routes.js +38 -1
  42. package/dist/run-retry-routes.js.map +1 -1
  43. package/dist/run-start.d.ts +14 -1
  44. package/dist/run-start.d.ts.map +1 -1
  45. package/dist/run-start.js +50 -1
  46. package/dist/run-start.js.map +1 -1
  47. package/dist/run-timeline.d.ts +44 -3
  48. package/dist/run-timeline.d.ts.map +1 -1
  49. package/dist/run-timeline.js +143 -24
  50. package/dist/run-timeline.js.map +1 -1
  51. package/dist/thread-projection.d.ts.map +1 -1
  52. package/dist/thread-projection.js +6 -0
  53. package/dist/thread-projection.js.map +1 -1
  54. package/dist/thread-turn-routes.d.ts.map +1 -1
  55. package/dist/thread-turn-routes.js +20 -23
  56. package/dist/thread-turn-routes.js.map +1 -1
  57. package/package.json +6 -6
@@ -1,5 +1,6 @@
1
- import { CONTROL_PROTOCOL_MAJOR, ControlHandshakeRequest, ControlHandshakeResponse, ControlOperationCatalog, ControlProblem, } from "@claudexor/schema";
1
+ import { CONTROL_PROTOCOL_MAJOR, ControlHandshakeRequest, ControlHandshakeResponse, ControlOperationCatalog, ControlProblem, ControlRunState, } from "@claudexor/schema";
2
2
  import { engineBuildIdentity } from "@claudexor/util";
3
+ import { pathnameDecodes, queryParam, resumeHeader } from "./operation-parameters.js";
3
4
  const protocolProblem = (code, message, requiredActions = []) => ControlProblem.parse({
4
5
  code,
5
6
  message,
@@ -56,14 +57,38 @@ export async function resolveControlProtocol(input) {
56
57
  body: OPERATION_CATALOG,
57
58
  };
58
59
  }
60
+ // QA-066: a malformed percent triplet (`%ZZ`) or percent-encoded invalid
61
+ // UTF-8 (`%C0%AF`) in the path is a CLIENT syntax error. Validate the whole
62
+ // encoded pathname decodes once, centrally, BEFORE route dispatch — so it is
63
+ // a typed HTTP 400 here instead of a `URIError` thrown from one of ~35
64
+ // per-route `decodeURIComponent` calls into the generic 500 handler. Routes
65
+ // still match on and decode the ENCODED path (no re-routing on decoded text,
66
+ // so `%2F`/`%2e%2e` semantics are unchanged); once the whole path decodes,
67
+ // each `/`-delimited segment decode is guaranteed not to throw.
68
+ if (!pathnameDecodes(input.requestPath)) {
69
+ return {
70
+ kind: "response",
71
+ status: 400,
72
+ contentType: "application/problem+json",
73
+ body: protocolProblem("malformed_request_path", "request path contains malformed percent-encoding"),
74
+ };
75
+ }
59
76
  return { kind: "route", path: input.requestPath.slice(3) };
60
77
  }
61
78
  function descriptor(input) {
79
+ // Resource-family classification (QA-054): an operation is grouped under the
80
+ // resource plane it acts on. Collection/create routes inherit their family
81
+ // even without an instance id (GET/POST /v2/projects are project-applicable,
82
+ // matching how /v2/runs and /v2/threads are already run/thread). `/projects`
83
+ // had no branch, so every project route falsely reported `global` and the
84
+ // typed `project` enum value had no live producer.
62
85
  const applicability = input.path.includes("/threads/") || input.path === "/v2/threads"
63
86
  ? "thread"
64
87
  : input.path.includes("/runs/") || input.path === "/v2/runs"
65
88
  ? "run"
66
- : "global";
89
+ : input.path.includes("/projects/") || input.path === "/v2/projects"
90
+ ? "project"
91
+ : "global";
67
92
  const key = `${input.method} ${input.path}`;
68
93
  const summary = input.summary ?? OPERATION_SUMMARIES[key];
69
94
  if (!summary) {
@@ -80,6 +105,7 @@ function descriptor(input) {
80
105
  errorSchema: "ControlProblem",
81
106
  id: `${input.method.toLowerCase()}:${input.path.slice(4).replaceAll(/[:/<>]+/g, ".")}`,
82
107
  applicability: input.applicability ?? applicability,
108
+ parameters: input.parameters ?? [],
83
109
  idempotency: input.idempotency ?? (input.mutability === "read_only" ? "natural" : "none"),
84
110
  completion: input.completion ?? (input.responseKind === "stream" ? "terminal_stream" : "immediate"),
85
111
  };
@@ -91,9 +117,9 @@ function descriptor(input) {
91
117
  * can never silently drift from the operations array.
92
118
  */
93
119
  const OPERATION_SUMMARIES = {
94
- "POST /v2/uploads": "Begin a resumable upload session for a large attachment.",
95
- "PUT /v2/uploads/:id/bytes": "Append a byte range to an in-progress upload.",
96
- "GET /v2/uploads/:id": "Read an upload session's status and received byte count.",
120
+ "POST /v2/uploads": "Create a single-request streaming upload session for an attachment of the declared size.",
121
+ "PUT /v2/uploads/:id/bytes": "Stream the complete declared byte body in ONE request. The store is single-shot: a short, oversized, or interrupted PUT cancels the upload and discards partial bytes — retry by creating a new upload and resending from byte zero. Not resumable.",
122
+ "GET /v2/uploads/:id": "Read an upload session's status and received byte count (diagnostic on a cancelled upload, not a resumable offset).",
97
123
  "DELETE /v2/uploads/:id": "Abort and discard an in-progress upload session.",
98
124
  "POST /v2/uploads/:id/finalize": "Finalize an upload into a durable attachment resource.",
99
125
  "POST /v2/handshake": "Negotiate the control protocol major before product calls.",
@@ -111,18 +137,19 @@ const OPERATION_SUMMARIES = {
111
137
  "GET /v2/projects": "List registered projects (durable handles).",
112
138
  "POST /v2/projects": "Register a project root as a durable handle.",
113
139
  "POST /v2/projects/:id/relink": "Relink a registered project to a new root.",
140
+ "DELETE /v2/projects/:id": "Remove a registered project: retire the registry entry and archive its journal partition. Refused (409) while any non-purged thread or live/queued run references it; run artifacts are left to normal GC.",
114
141
  "GET /v2/projects/:id/events": "Subscribe to a project's event stream (SSE).",
115
142
  "GET /v2/projects/:id/outputs": "List a project's durable outputs (artifacts/).",
116
143
  "GET /v2/projects/:id/outputs/<path>": "Fetch one durable output file from a project.",
117
144
  "GET /v2/harnesses/:id/models": "List a harness's selectable models.",
118
145
  "POST /v2/harnesses/:id/auth-readiness": "Re-check a harness's auth readiness (dry).",
119
- "GET /v2/runs": "List durable run summaries visible to the daemon.",
146
+ "GET /v2/runs": "List a bounded, newest-first, keyset-paginated page of durable run summaries visible to the daemon.",
120
147
  "POST /v2/runs": "Start a run and return its durable handle.",
121
148
  "GET /v2/runs/:id": "Read a run's full detail snapshot.",
122
149
  "POST /v2/runs/:id/retry": "Retry a run, returning a new durable handle.",
123
150
  "GET /v2/runs/:id/run-again": "Draft a run-again request from a prior run.",
124
- "POST /v2/runs/:id/apply": "Apply a run's work product to the live tree.",
125
- "POST /v2/runs/:id/apply/check": "Dry-check whether a run's patch would apply.",
151
+ "POST /v2/runs/:id/apply": "Apply a run's work product to the live tree; replay of an already-delivered run is a typed idempotent no-op.",
152
+ "POST /v2/runs/:id/apply/check": "Dry-check whether a run's patch would apply; an already-delivered run reports the safe already-applied no-op.",
126
153
  "GET /v2/runs/:id/artifacts": "List a run tree's technical artifacts.",
127
154
  "GET /v2/runs/:id/artifacts/<path>": "Fetch one artifact file from a run tree.",
128
155
  "POST /v2/runs/:id/control": "Send a control signal (cancel/pause) to a run.",
@@ -184,7 +211,12 @@ const operations = [
184
211
  idempotency: "natural",
185
212
  }),
186
213
  j("GET", "/v2/agent-capabilities", "read_only", null, "AgentCapabilityCatalog"),
187
- j("GET", "/v2/global/events", "read_only", null, null, { responseKind: "stream" }),
214
+ j("GET", "/v2/global/events", "read_only", null, null, {
215
+ responseKind: "stream",
216
+ parameters: [
217
+ resumeHeader("an opaque, partition- and epoch-scoped global journal cursor; a stale or foreign cursor is refused so the client can resnapshot"),
218
+ ],
219
+ }),
188
220
  j("GET", "/v2/quota", "read_only", null, "ControlQuotaResponse"),
189
221
  j("GET", "/v2/credential-profiles", "read_only", null, "ControlCredentialProfilesResponse"),
190
222
  j("POST", "/v2/credential-profiles", "mutating", "ControlCredentialProfileCreateRequest", "ControlCredentialProfileCreateResponse", { idempotency: "natural" }),
@@ -193,13 +225,39 @@ const operations = [
193
225
  j("POST", "/v2/quota", "mutating", null, "ControlQuotaResponse", {
194
226
  idempotency: "natural",
195
227
  }),
196
- j("GET", "/v2/harnesses", "read_only", null, "ControlHarnessListResponse"),
228
+ j("GET", "/v2/harnesses", "read_only", null, "ControlHarnessListResponse", {
229
+ parameters: [
230
+ queryParam({
231
+ name: "fresh",
232
+ enum: ["true", "false"],
233
+ description: "Request a fresh readiness/status projection instead of only cached truth.",
234
+ }),
235
+ queryParam({
236
+ name: "all",
237
+ enum: ["true", "false"],
238
+ description: "Include fake/test harness adapters in the listing.",
239
+ }),
240
+ queryParam({
241
+ name: "harness",
242
+ repeatable: true,
243
+ description: "Scope the status calculation to the given harness ids (repeat to select several).",
244
+ }),
245
+ ],
246
+ }),
197
247
  j("GET", "/v2/projects", "read_only", null, "ControlProjectListResponse"),
198
248
  j("POST", "/v2/projects", "mutating", "ControlProjectRegisterRequest", "ControlProject", {
199
249
  idempotency: "key_required",
200
250
  }),
201
251
  j("POST", "/v2/projects/:id/relink", "mutating", "ControlProjectRelinkRequest", "ControlProject", { idempotency: "natural" }),
202
- j("GET", "/v2/projects/:id/events", "read_only", null, null, { responseKind: "stream" }),
252
+ j("DELETE", "/v2/projects/:id", "mutating", null, "ControlProjectRemoveReceipt", {
253
+ idempotency: "natural",
254
+ }),
255
+ j("GET", "/v2/projects/:id/events", "read_only", null, null, {
256
+ responseKind: "stream",
257
+ parameters: [
258
+ resumeHeader("an opaque, partition- and epoch-scoped project journal cursor; a stale or foreign cursor is refused so the client can resnapshot"),
259
+ ],
260
+ }),
203
261
  j("GET", "/v2/projects/:id/outputs", "read_only", null, "ControlProjectOutputsResponse"),
204
262
  descriptor({
205
263
  method: "GET",
@@ -209,9 +267,33 @@ const operations = [
209
267
  mutability: "read_only",
210
268
  responseKind: "binary",
211
269
  }),
212
- j("GET", "/v2/harnesses/:id/models", "read_only", null, "ControlHarnessModelsResponse"),
270
+ j("GET", "/v2/harnesses/:id/models", "read_only", null, "ControlHarnessModelsResponse", {
271
+ parameters: [
272
+ queryParam({
273
+ name: "route",
274
+ enum: ["local_session", "api_key"],
275
+ description: "Filter enumerated models to the given credential route (models foreign to the route are hidden).",
276
+ }),
277
+ ],
278
+ }),
213
279
  j("POST", "/v2/harnesses/:id/auth-readiness", "read_only", "ControlAuthReadinessRefreshRequest", "ControlAuthReadinessRefreshResponse"),
214
- j("GET", "/v2/runs", "read_only", null, "ControlRunListResponse"),
280
+ j("GET", "/v2/runs", "read_only", null, "ControlRunListResponse", {
281
+ parameters: [
282
+ queryParam({
283
+ name: "limit",
284
+ description: "Maximum run summaries to return (1..1000; default 200). The page is newest-first by (createdAt, id).",
285
+ }),
286
+ queryParam({
287
+ name: "state",
288
+ enum: [...ControlRunState.options],
289
+ description: "Return only runs in this lifecycle state.",
290
+ }),
291
+ queryParam({
292
+ name: "cursor",
293
+ description: "Opaque keyset cursor from a prior page's nextCursor; returns the next (older) page. A malformed cursor is a typed 400.",
294
+ }),
295
+ ],
296
+ }),
215
297
  j("POST", "/v2/runs", "mutating", "ControlRunStartRequest", "ControlRunStartResponse", {
216
298
  completion: "durable_handle",
217
299
  idempotency: "key_required",
@@ -241,7 +323,16 @@ const operations = [
241
323
  j("POST", "/v2/runs/:id/decision", "mutating", "ControlRunDecisionRequest", "ControlRunDecisionResponse", {
242
324
  idempotency: "key_required",
243
325
  }),
244
- j("GET", "/v2/runs/:id/events", "read_only", null, null, { responseKind: "stream" }),
326
+ j("GET", "/v2/runs/:id/events", "read_only", null, null, {
327
+ responseKind: "stream",
328
+ parameters: [
329
+ resumeHeader("the run's nonnegative integer event `seq` (a canonical decimal; malformed/negative/fractional values are refused)"),
330
+ queryParam({
331
+ name: "lastEventId",
332
+ description: "Compatibility alias for the Last-Event-ID header (same numeric run `seq`); the header wins when both are present.",
333
+ }),
334
+ ],
335
+ }),
245
336
  j("POST", "/v2/runs/:id/interactions/:id/answer", "mutating", "ControlInteractionAnswerRequest", "ControlInteractionAnswerResponse", { idempotency: "natural" }),
246
337
  j("GET", "/v2/runs/:id/produced", "read_only", null, "ControlArtifactListResponse"),
247
338
  descriptor({
@@ -276,7 +367,14 @@ const operations = [
276
367
  j("POST", "/v2/threads/:id/turns/:id/retry", "mutating", null, "ControlThreadTurnResponse", {
277
368
  idempotency: "key_required",
278
369
  }),
279
- j("GET", "/v2/trust", "read_only", null, "ControlTrustListResponse"),
370
+ j("GET", "/v2/trust", "read_only", null, "ControlTrustListResponse", {
371
+ parameters: [
372
+ queryParam({
373
+ name: "repoRoot",
374
+ description: "Scope the trust-state listing to a single repository root (absolute path); omit to list all.",
375
+ }),
376
+ ],
377
+ }),
280
378
  j("POST", "/v2/trust", "mutating", "ControlTrustUpdateRequest", "ControlTrustState", {
281
379
  idempotency: "natural",
282
380
  }),
@@ -291,22 +389,56 @@ const operations = [
291
389
  j("DELETE", "/v2/secrets/:id", "mutating", null, "ControlSecretMutationResponse", {
292
390
  idempotency: "natural",
293
391
  }),
294
- j("GET", "/v2/setup/jobs", "read_only", null, "ControlSetupJobListResponse"),
392
+ j("GET", "/v2/setup/jobs", "read_only", null, "ControlSetupJobListResponse", {
393
+ parameters: [
394
+ queryParam({
395
+ name: "harness",
396
+ enum: ["codex", "claude", "cursor"],
397
+ schemaRef: "ControlSetupJobListFilter#/properties/harness",
398
+ description: "Filter setup jobs to one harness.",
399
+ }),
400
+ queryParam({
401
+ name: "action",
402
+ enum: ["login"],
403
+ schemaRef: "ControlSetupJobListFilter#/properties/action",
404
+ description: "Filter setup jobs to one action.",
405
+ }),
406
+ queryParam({
407
+ name: "active",
408
+ enum: ["true", "false"],
409
+ schemaRef: "ControlSetupJobListFilter#/properties/active",
410
+ description: "Filter to active (in-flight) jobs only, or terminal jobs only.",
411
+ }),
412
+ queryParam({
413
+ name: "limit",
414
+ schemaRef: "ControlSetupJobListFilter#/properties/limit",
415
+ description: "Cap the number of returned jobs (positive integer, maximum 500).",
416
+ }),
417
+ ],
418
+ }),
295
419
  j("POST", "/v2/setup/jobs", "mutating", "ControlSetupJobCreateRequest", "ControlSetupJob", {
296
420
  completion: "durable_handle",
297
421
  idempotency: "key_required",
298
422
  }),
299
423
  j("GET", "/v2/setup/jobs/:id", "read_only", null, "ControlSetupJob"),
300
424
  j("GET", "/v2/setup/jobs/:id/snapshot", "read_only", null, "ControlSetupJobSnapshot"),
301
- j("GET", "/v2/setup/jobs/:id/events", "read_only", null, null, { responseKind: "stream" }),
425
+ j("GET", "/v2/setup/jobs/:id/events", "read_only", null, null, {
426
+ responseKind: "stream",
427
+ parameters: [
428
+ resumeHeader("an opaque setup-journal cursor; a stale cursor is refused so the client can resnapshot, and query parameters are not accepted on this stream"),
429
+ ],
430
+ }),
302
431
  j("POST", "/v2/setup/jobs/:id/cancel", "mutating", null, "ControlSetupJob", {
303
432
  idempotency: "natural",
304
433
  }),
305
434
  j("POST", "/v2/setup/jobs/:id/reconcile", "mutating", null, "ControlSetupJob", {
306
435
  idempotency: "natural",
307
436
  }),
437
+ // QA-075/Ф2: extension is ADDITIVE (+15 min). Its Idempotency-Key is OPTIONAL
438
+ // (keyless clients like the installed macOS Extend button are supported), so
439
+ // the catalog honestly declares `none`, not `key_required` (a key opts into replay-safety).
308
440
  j("POST", "/v2/setup/jobs/:id/extend", "mutating", null, "ControlSetupJob", {
309
- idempotency: "natural",
441
+ idempotency: "none",
310
442
  }),
311
443
  j("GET", "/v2/recovery/partitions/:id", "read_only", null, "ControlJournalInspection"),
312
444
  j("POST", "/v2/recovery/partitions/:id/validate", "read_only", null, "ControlJournalValidation"),
@@ -1 +1 @@
1
- {"version":3,"file":"operation-catalog.js","sourceRoot":"","sources":["../src/operation-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operation-catalog.js","sourceRoot":"","sources":["../src/operation-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { ControlOperationParameter } from "@claudexor/schema";
2
+ /**
3
+ * Located-parameter builders (QA-055). A descriptor's `requestSchema` is the
4
+ * JSON request BODY; strict query filters and SSE resume-cursor headers are
5
+ * separate non-body inputs, so they get their own typed channel. Every field is
6
+ * spelled explicitly so the generated catalog/endpoints doc can construct a
7
+ * full valid request without guessing.
8
+ */
9
+ export declare function queryParam(input: {
10
+ name: string;
11
+ description: string;
12
+ required?: boolean;
13
+ repeatable?: boolean;
14
+ enum?: string[] | null;
15
+ schemaRef?: string | null;
16
+ }): ControlOperationParameter;
17
+ export declare function headerParam(input: {
18
+ name: string;
19
+ description: string;
20
+ required?: boolean;
21
+ enum?: string[] | null;
22
+ schemaRef?: string | null;
23
+ }): ControlOperationParameter;
24
+ /** The standard SSE resume header, specialized per stream by cursor semantics. */
25
+ export declare const resumeHeader: (cursorSemantics: string) => ControlOperationParameter;
26
+ /**
27
+ * QA-066: true when every `/`-delimited path segment is strict-decodable (valid
28
+ * percent escapes over valid UTF-8). Used at the protocol boundary to classify a
29
+ * malformed request path as a typed client 400 before any route owner calls
30
+ * `decodeURIComponent` and throws a `URIError` into the generic 500 handler. The
31
+ * raw path is never echoed.
32
+ */
33
+ export declare function pathnameDecodes(pathname: string): boolean;
34
+ //# sourceMappingURL=operation-parameters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-parameters.d.ts","sourceRoot":"","sources":["../src/operation-parameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,yBAAyB,CAU5B;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,yBAAyB,CAU5B;AAED,kFAAkF;AAClF,eAAO,MAAM,YAAY,GAAI,iBAAiB,MAAM,KAAG,yBAInD,CAAC;AAEL;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOzD"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Located-parameter builders (QA-055). A descriptor's `requestSchema` is the
3
+ * JSON request BODY; strict query filters and SSE resume-cursor headers are
4
+ * separate non-body inputs, so they get their own typed channel. Every field is
5
+ * spelled explicitly so the generated catalog/endpoints doc can construct a
6
+ * full valid request without guessing.
7
+ */
8
+ export function queryParam(input) {
9
+ return {
10
+ name: input.name,
11
+ location: "query",
12
+ required: input.required ?? false,
13
+ repeatable: input.repeatable ?? false,
14
+ enum: input.enum ?? null,
15
+ schemaRef: input.schemaRef ?? null,
16
+ description: input.description,
17
+ };
18
+ }
19
+ export function headerParam(input) {
20
+ return {
21
+ name: input.name,
22
+ location: "header",
23
+ required: input.required ?? false,
24
+ repeatable: false,
25
+ enum: input.enum ?? null,
26
+ schemaRef: input.schemaRef ?? null,
27
+ description: input.description,
28
+ };
29
+ }
30
+ /** The standard SSE resume header, specialized per stream by cursor semantics. */
31
+ export const resumeHeader = (cursorSemantics) => headerParam({
32
+ name: "Last-Event-ID",
33
+ description: `Resume cursor sent on reconnect: ${cursorSemantics}. Omit to snapshot-then-subscribe from the beginning.`,
34
+ });
35
+ /**
36
+ * QA-066: true when every `/`-delimited path segment is strict-decodable (valid
37
+ * percent escapes over valid UTF-8). Used at the protocol boundary to classify a
38
+ * malformed request path as a typed client 400 before any route owner calls
39
+ * `decodeURIComponent` and throws a `URIError` into the generic 500 handler. The
40
+ * raw path is never echoed.
41
+ */
42
+ export function pathnameDecodes(pathname) {
43
+ try {
44
+ for (const segment of pathname.split("/"))
45
+ decodeURIComponent(segment);
46
+ return true;
47
+ }
48
+ catch {
49
+ return false;
50
+ }
51
+ }
52
+ //# sourceMappingURL=operation-parameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-parameters.js","sourceRoot":"","sources":["../src/operation-parameters.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,KAO1B;IACC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;QACjC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK;QACrC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;QAClC,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAM3B;IACC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;QACjC,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;QAClC,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,eAAuB,EAA6B,EAAE,CACjF,WAAW,CAAC;IACV,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,oCAAoC,eAAe,uDAAuD;CACxH,CAAC,CAAC;AAEL;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,IAAI,CAAC;QACH,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1,3 +1,38 @@
1
+ /**
2
+ * QA-053: turn a request-boundary ZodError into a machine-readable problem —
3
+ * structured `fieldErrors` (JSON Pointer -> messages), a short single-line human
4
+ * `message`, and bounded `context` counts — instead of copying Zod's multiline
5
+ * issue-array serialization into `message` with an empty `fieldErrors`.
6
+ *
7
+ * Returns a normalized typed error the shared `problemBody` projection already
8
+ * knows how to serialize (code/message/fieldErrors/context). A non-ZodError, or
9
+ * a typed error that already owns `code`/`fieldErrors` (idempotency_key_required,
10
+ * inline_secret_rejected, invalid JSON body, 413), is returned UNCHANGED — this
11
+ * only normalizes structural validation exceptions at the request boundary and
12
+ * never reinterprets a service-output or internal error as a user field error.
13
+ */
14
+ export declare function normalizeRequestValidationError(error: unknown): unknown;
15
+ /** The typed revert-refusal classes the workspace PRODUCER emits (git.ts
16
+ * `RevertRefusalReason`). Kept structurally in sync here (control-api does not
17
+ * depend on @claudexor/workspace) — the round-trip is asserted by test. */
18
+ export type RevertRefusalReason = "postimage_diverged" | "reverse_apply_failed";
19
+ /**
20
+ * QA-051 / W3: map a workspace revert refusal to a stable, locale-independent
21
+ * English message + typed reason code, keeping the original (redacted, bounded)
22
+ * vendor stderr as context evidence rather than the semantic message.
23
+ *
24
+ * The class is decided by the PRODUCER: `reasonCode` comes straight from
25
+ * `RevertResult.reasonCode` (which branch failed), NOT from regexing the human
26
+ * `reason`. The English-prefix regex survives only as a conservative fallback
27
+ * for a legacy-shaped result that carries no typed code.
28
+ */
29
+ export declare function revertRefusedProblem(rawReason: string | undefined, reasonCode?: RevertRefusalReason): {
30
+ message: string;
31
+ context: {
32
+ reason: string;
33
+ detail: string;
34
+ };
35
+ };
1
36
  export type ControlProblemError = Error & {
2
37
  code: string;
3
38
  retryable: boolean;
@@ -7,4 +42,12 @@ export type ControlProblemError = Error & {
7
42
  context: Record<string, unknown>;
8
43
  };
9
44
  export declare function controlProblemError(status: number, body: unknown): ControlProblemError;
45
+ /**
46
+ * The problem `code` for a THROWN service error: a typed code the service
47
+ * chose (e.g. settings-service `config_error`) reaches the wire verbatim so
48
+ * clients can key remediation on it; only an untyped throw is the generic
49
+ * `internal_error` (BACKLOG N1 — the catch paths used to stamp every throw
50
+ * `internal_error`, erasing the typed taxonomy the same body carried).
51
+ */
52
+ export declare function thrownProblemCode(error: unknown): string;
10
53
  //# sourceMappingURL=problem-response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"problem-response.d.ts","sourceRoot":"","sources":["../src/problem-response.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,mBAAmB,CAoBtF"}
1
+ {"version":3,"file":"problem-response.d.ts","sourceRoot":"","sources":["../src/problem-response.ts"],"names":[],"mappings":"AA6FA;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAkDvE;AAKD;;4EAE4E;AAC5E,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAEhF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,CAAC,EAAE,mBAAmB,GAC/B;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C,CAsBA;AAYD,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,mBAAmB,CAoBtF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMxD"}