wicked-crew 0.8.9 → 0.9.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 (110) hide show
  1. package/README.md +11 -8
  2. package/dist/api/auth.d.ts +6 -5
  3. package/dist/api/auth.d.ts.map +1 -1
  4. package/dist/api/auth.js +7 -5
  5. package/dist/api/auth.js.map +1 -1
  6. package/dist/api/capture.d.ts +4 -0
  7. package/dist/api/capture.d.ts.map +1 -1
  8. package/dist/api/capture.js +6 -1
  9. package/dist/api/capture.js.map +1 -1
  10. package/dist/api/chat-freshness.d.ts +37 -0
  11. package/dist/api/chat-freshness.d.ts.map +1 -0
  12. package/dist/api/chat-freshness.js +130 -0
  13. package/dist/api/chat-freshness.js.map +1 -0
  14. package/dist/api/chat-scope.d.ts +15 -0
  15. package/dist/api/chat-scope.d.ts.map +1 -1
  16. package/dist/api/chat-scope.js +55 -1
  17. package/dist/api/chat-scope.js.map +1 -1
  18. package/dist/api/delivery-assurance.d.ts +48 -0
  19. package/dist/api/delivery-assurance.d.ts.map +1 -0
  20. package/dist/api/delivery-assurance.js +118 -0
  21. package/dist/api/delivery-assurance.js.map +1 -0
  22. package/dist/api/delivery-index.d.ts +11 -5
  23. package/dist/api/delivery-index.d.ts.map +1 -1
  24. package/dist/api/delivery-index.js +38 -7
  25. package/dist/api/delivery-index.js.map +1 -1
  26. package/dist/api/product.d.ts +67 -0
  27. package/dist/api/product.d.ts.map +1 -0
  28. package/dist/api/product.js +169 -0
  29. package/dist/api/product.js.map +1 -0
  30. package/dist/api/project-aggregates.d.ts +61 -0
  31. package/dist/api/project-aggregates.d.ts.map +1 -0
  32. package/dist/api/project-aggregates.js +296 -0
  33. package/dist/api/project-aggregates.js.map +1 -0
  34. package/dist/api/recording.d.ts +4 -0
  35. package/dist/api/recording.d.ts.map +1 -1
  36. package/dist/api/recording.js +6 -1
  37. package/dist/api/recording.js.map +1 -1
  38. package/dist/api/routes.d.ts +43 -17
  39. package/dist/api/routes.d.ts.map +1 -1
  40. package/dist/api/routes.js +245 -40
  41. package/dist/api/routes.js.map +1 -1
  42. package/dist/api/run-files.d.ts.map +1 -1
  43. package/dist/api/run-files.js +11 -2
  44. package/dist/api/run-files.js.map +1 -1
  45. package/dist/api/server.d.ts.map +1 -1
  46. package/dist/api/server.js +3 -0
  47. package/dist/api/server.js.map +1 -1
  48. package/dist/api/stall-watchdog.d.ts.map +1 -1
  49. package/dist/api/stall-watchdog.js +6 -1
  50. package/dist/api/stall-watchdog.js.map +1 -1
  51. package/dist/api/steering-landing.d.ts +1 -1
  52. package/dist/api/steering-landing.d.ts.map +1 -1
  53. package/dist/api/steering-landing.js +65 -29
  54. package/dist/api/steering-landing.js.map +1 -1
  55. package/dist/cli/index.d.ts.map +1 -1
  56. package/dist/cli/index.js +22 -1
  57. package/dist/cli/index.js.map +1 -1
  58. package/dist/core/adapter.d.ts +3 -0
  59. package/dist/core/adapter.d.ts.map +1 -1
  60. package/dist/core/adapter.js +23 -2
  61. package/dist/core/adapter.js.map +1 -1
  62. package/dist/core/assurance.d.ts +60 -0
  63. package/dist/core/assurance.d.ts.map +1 -0
  64. package/dist/core/assurance.js +88 -0
  65. package/dist/core/assurance.js.map +1 -0
  66. package/dist/core/deliver-exclusions.d.ts +9 -1
  67. package/dist/core/deliver-exclusions.d.ts.map +1 -1
  68. package/dist/core/deliver-exclusions.js +37 -2
  69. package/dist/core/deliver-exclusions.js.map +1 -1
  70. package/dist/core/deliver.d.ts +25 -1
  71. package/dist/core/deliver.d.ts.map +1 -1
  72. package/dist/core/deliver.js +77 -9
  73. package/dist/core/deliver.js.map +1 -1
  74. package/dist/core/deliverable-floor.d.ts.map +1 -1
  75. package/dist/core/deliverable-floor.js +6 -1
  76. package/dist/core/deliverable-floor.js.map +1 -1
  77. package/dist/core/inventory-claim.d.ts +34 -0
  78. package/dist/core/inventory-claim.d.ts.map +1 -0
  79. package/dist/core/inventory-claim.js +138 -0
  80. package/dist/core/inventory-claim.js.map +1 -0
  81. package/dist/core/types.d.ts +7 -0
  82. package/dist/core/types.d.ts.map +1 -1
  83. package/dist/core/types.js.map +1 -1
  84. package/dist/editors/registry.d.ts +3 -3
  85. package/dist/interactive/bridge-pool.d.ts +8 -2
  86. package/dist/interactive/bridge-pool.d.ts.map +1 -1
  87. package/dist/interactive/bridge-pool.js +7 -1
  88. package/dist/interactive/bridge-pool.js.map +1 -1
  89. package/dist/interactive/docs-index.d.ts +8 -0
  90. package/dist/interactive/docs-index.d.ts.map +1 -1
  91. package/dist/interactive/docs-index.js +5 -2
  92. package/dist/interactive/docs-index.js.map +1 -1
  93. package/dist/qe/acceptance.d.ts.map +1 -1
  94. package/dist/qe/acceptance.js +49 -1
  95. package/dist/qe/acceptance.js.map +1 -1
  96. package/dist/standing-orders/history.d.ts +8 -0
  97. package/dist/standing-orders/history.d.ts.map +1 -1
  98. package/dist/standing-orders/history.js +8 -1
  99. package/dist/standing-orders/history.js.map +1 -1
  100. package/dist/studio/assets/index--O1AdvNx.css +32 -0
  101. package/dist/studio/assets/index-B1MYiNq-.js +567 -0
  102. package/dist/studio/editors/wicked-page/editor.json +1 -1
  103. package/dist/studio/editors/wicked-page/index.html +1 -1
  104. package/dist/studio/index.html +2 -2
  105. package/dist/studio/testid-inventory.json +764 -79
  106. package/endpoint-manifest.json +63 -2
  107. package/package.json +8 -8
  108. package/skills/wicked-crew/SKILL.md +2 -1
  109. package/dist/studio/assets/index-DofYURLG.js +0 -564
  110. package/dist/studio/assets/index-fSSul5Hu.css +0 -32
@@ -0,0 +1,296 @@
1
+ /**
2
+ * crew#371: a PROJECT's requirements, domain and coverage, as FOLDS over the per-repo reads that
3
+ * already exist (design: program-2026-09 design/DES-W4-CR5-PRODUCT-AGGREGATES.md, posted on the
4
+ * issue). No new source:
5
+ *
6
+ * - requirements: `listRequirements` over each repo's `requirements_graph.json` artifact (the one
7
+ * source, crew#548);
8
+ * - domain: the same artifact, summarised per domain (full graphs stay on
9
+ * `GET /repos/:id/domain-graph`; N 15k-requirement graphs in one body is not a view);
10
+ * - coverage: `adapter.getCoverageReportForRepo` per repo, never the vacuous store-wide report.
11
+ *
12
+ * Every `crew.repo` member is a ROW, never dropped: `ok`, `absent` (nothing generated or indexed
13
+ * yet), `error` (with its status and message), or `dangling` (the member's registry record is
14
+ * gone). The studio Product view (wicked-studio#157 / #158) reads these.
15
+ */
16
+ import { readFile } from 'node:fs/promises';
17
+ import { z } from 'zod';
18
+ import { ProjectsUnsupportedError } from '../core/adapter.js';
19
+ import { requirementsGraph } from '../core/repoPaths.js';
20
+ import { DEFAULT_PROJECT_ID } from '../projects/default-project.js';
21
+ import { listRequirements } from './requirements.js';
22
+ const V = '/api/v1';
23
+ /** At most this many repos are read at once. */
24
+ export const AGGREGATE_CONCURRENCY = 4;
25
+ /** A repo's coverage read that takes longer than this is that row's `error`. */
26
+ export const COVERAGE_TIMEOUT_MS = 15_000;
27
+ export class AggregateHttpError extends Error {
28
+ status;
29
+ constructor(status, message) {
30
+ super(message);
31
+ this.status = status;
32
+ }
33
+ }
34
+ export async function membersOf(adapter, projectId) {
35
+ if (projectId === DEFAULT_PROJECT_ID)
36
+ return []; // synthesized, never stored: it has no members
37
+ let project;
38
+ try {
39
+ project = await adapter.projectGet(projectId);
40
+ }
41
+ catch (err) {
42
+ if (err instanceof ProjectsUnsupportedError)
43
+ throw new AggregateHttpError(501, err.message);
44
+ throw err;
45
+ }
46
+ if (project === null)
47
+ throw new AggregateHttpError(404, `Project ${projectId} not found`);
48
+ try {
49
+ const refs = (await adapter.projectMembers(projectId)).filter((m) => m.member_kind === 'crew.repo').map((m) => m.member_ref);
50
+ const repos = await adapter.listRepos();
51
+ return [...new Set(refs)].map((ref) => ({ ref, repo: repos.find((r) => r.id === ref) ?? null }));
52
+ }
53
+ catch (err) {
54
+ // codex on #907: the member/registry reads fail the same ways the project read does.
55
+ if (err instanceof ProjectsUnsupportedError)
56
+ throw new AggregateHttpError(501, err.message);
57
+ throw err;
58
+ }
59
+ }
60
+ /** Map with at most {@link AGGREGATE_CONCURRENCY} in flight, results in input order. */
61
+ async function mapBounded(items, fn) {
62
+ const out = new Array(items.length);
63
+ let next = 0;
64
+ const worker = async () => {
65
+ while (next < items.length) {
66
+ const i = next++;
67
+ out[i] = await fn(items[i]);
68
+ }
69
+ };
70
+ await Promise.all(Array.from({ length: Math.min(AGGREGATE_CONCURRENCY, items.length) }, worker));
71
+ return out;
72
+ }
73
+ function message(err) {
74
+ return err instanceof Error ? err.message : String(err);
75
+ }
76
+ function repoOf(m) {
77
+ return { id: m.ref, name: m.repo?.name ?? null };
78
+ }
79
+ function totalsOf(rows) {
80
+ return {
81
+ repos: rows.length,
82
+ ok: rows.filter((r) => r.state === 'ok').length,
83
+ absent: rows.filter((r) => r.state === 'absent').length,
84
+ errors: rows.filter((r) => r.state === 'error').length,
85
+ dangling: rows.filter((r) => r.state === 'dangling').length,
86
+ };
87
+ }
88
+ const DANGLING = 'the repository is a project member but is no longer registered';
89
+ export const ProjectRequirementsQuerySchema = z
90
+ .object({
91
+ q: z.string().optional(),
92
+ risk: z.enum(['risk', 'no-risk']).optional(),
93
+ category: z.enum(['functional', 'config-data']).optional(),
94
+ domain: z.string().optional(),
95
+ offset: z.coerce.number().int().min(0).default(0),
96
+ limit: z.coerce.number().int().min(1).max(200).default(50),
97
+ })
98
+ .strict();
99
+ /** A row the second read downgraded: no counts of a read that no longer stands (codex on #907). */
100
+ function cleared(row) {
101
+ return { ...row, total: 0, corpus: 0, orphanedOverrides: 0, items: [] };
102
+ }
103
+ export async function projectRequirements(adapter, projectId, query) {
104
+ const members = await membersOf(adapter, projectId);
105
+ const filters = { q: query.q, risk: query.risk, category: query.category, domain: query.domain };
106
+ // Pass 1: each repo's matching count (the index is cached per artifact mtime).
107
+ const counted = await mapBounded(members, async (m) => {
108
+ const base = { repo: repoOf(m), total: 0, corpus: 0, orphanedOverrides: 0, items: [] };
109
+ if (m.repo === null)
110
+ return { ...base, state: 'dangling', reason: DANGLING };
111
+ try {
112
+ const page = await listRequirements(m.repo, { ...filters, offset: 0, limit: 0 });
113
+ if (page === null)
114
+ return { ...base, state: 'absent', reason: 'requirements_graph.json not generated for this repo yet' };
115
+ return { ...base, state: 'ok', total: page.total, corpus: page.corpus, orphanedOverrides: page.orphanedOverrides };
116
+ }
117
+ catch (err) {
118
+ return { ...base, state: 'error', reason: message(err) };
119
+ }
120
+ });
121
+ // Pass 2: fill the GLOBAL window [offset, offset + limit) across the repos in membership order.
122
+ let skip = query.offset;
123
+ let want = query.limit;
124
+ const rows = await Promise.all(counted.map((row, i) => {
125
+ if (row.state !== 'ok' || want === 0)
126
+ return Promise.resolve(row);
127
+ if (skip >= row.total) {
128
+ skip -= row.total;
129
+ return Promise.resolve(row);
130
+ }
131
+ const offset = skip;
132
+ const limit = Math.min(want, row.total - skip);
133
+ skip = 0;
134
+ want -= limit;
135
+ return listRequirements(members[i].repo, { ...filters, offset, limit })
136
+ .then((page) => (page === null ? { ...cleared(row), state: 'absent', reason: 'requirements_graph.json disappeared while reading' } : { ...row, items: page.items }))
137
+ .catch((err) => ({ ...cleared(row), state: 'error', reason: message(err) }));
138
+ }));
139
+ const ok = rows.filter((r) => r.state === 'ok');
140
+ return {
141
+ projectId,
142
+ totals: { ...totalsOf(rows), total: ok.reduce((n, r) => n + r.total, 0), corpus: ok.reduce((n, r) => n + r.corpus, 0) },
143
+ offset: query.offset,
144
+ limit: query.limit,
145
+ rows,
146
+ };
147
+ }
148
+ /** The artifact's domains, summarised. `null` when the artifact is absent. */
149
+ async function domainsOf(repo) {
150
+ let raw;
151
+ try {
152
+ raw = await readFile(requirementsGraph(repo), 'utf8');
153
+ }
154
+ catch (err) {
155
+ if (err.code === 'ENOENT')
156
+ return null;
157
+ throw err;
158
+ }
159
+ const graph = JSON.parse(raw);
160
+ const count = (v) => (typeof v === 'object' && v !== null ? Object.keys(v).length : 0);
161
+ return Object.entries(graph.domains ?? {}).map(([name, d]) => ({
162
+ name,
163
+ description: typeof d.description === 'string' ? d.description : null,
164
+ requirements: count(d.requirements),
165
+ entities: count(d.entities),
166
+ }));
167
+ }
168
+ export async function projectDomain(adapter, projectId) {
169
+ const members = await membersOf(adapter, projectId);
170
+ const rows = await mapBounded(members, async (m) => {
171
+ if (m.repo === null)
172
+ return { repo: repoOf(m), state: 'dangling', reason: DANGLING, domains: [] };
173
+ try {
174
+ const domains = await domainsOf(m.repo);
175
+ return domains === null
176
+ ? { repo: repoOf(m), state: 'absent', reason: 'requirements_graph.json not generated for this repo yet', domains: [] }
177
+ : { repo: repoOf(m), state: 'ok', domains };
178
+ }
179
+ catch (err) {
180
+ return { repo: repoOf(m), state: 'error', reason: message(err), domains: [] };
181
+ }
182
+ });
183
+ const merged = new Map();
184
+ for (const row of rows) {
185
+ for (const d of row.domains) {
186
+ const m = merged.get(d.name) ?? { name: d.name, repoIds: [], requirements: 0, entities: 0 };
187
+ m.repoIds.push(row.repo.id);
188
+ m.requirements += d.requirements;
189
+ m.entities += d.entities;
190
+ merged.set(d.name, m);
191
+ }
192
+ }
193
+ const all = rows.flatMap((r) => r.domains);
194
+ return {
195
+ projectId,
196
+ totals: {
197
+ ...totalsOf(rows),
198
+ domains: merged.size,
199
+ requirements: all.reduce((n, d) => n + d.requirements, 0),
200
+ entities: all.reduce((n, d) => n + d.entities, 0),
201
+ },
202
+ merged: [...merged.values()].sort((a, b) => a.name.localeCompare(b.name)),
203
+ rows,
204
+ };
205
+ }
206
+ function withTimeout(p, ms, what) {
207
+ let timer;
208
+ const timeout = new Promise((_, reject) => {
209
+ timer = setTimeout(() => reject(new Error(`${what} did not answer within ${ms / 1000} s`)), ms);
210
+ });
211
+ return Promise.race([p, timeout]).finally(() => clearTimeout(timer));
212
+ }
213
+ /**
214
+ * One coverage read per repo at a time, across requests (codex on #907): a timed-out read cannot be
215
+ * cancelled (it is an engine call), so a later request JOINS the read still in flight instead of
216
+ * starting another — a hung repo holds one engine call, not one per page load.
217
+ */
218
+ const coverageInFlight = new WeakMap();
219
+ function coverageOnce(adapter, ref) {
220
+ let reads = coverageInFlight.get(adapter);
221
+ if (reads === undefined)
222
+ coverageInFlight.set(adapter, (reads = new Map()));
223
+ const running = reads.get(ref);
224
+ if (running !== undefined)
225
+ return running;
226
+ const read = adapter.getCoverageReportForRepo(ref).finally(() => reads.delete(ref));
227
+ reads.set(ref, read);
228
+ return read;
229
+ }
230
+ export async function projectCoverage(adapter, projectId, timeoutMs = COVERAGE_TIMEOUT_MS) {
231
+ const members = await membersOf(adapter, projectId);
232
+ const rows = await mapBounded(members, async (m) => {
233
+ if (m.repo === null)
234
+ return { repo: repoOf(m), state: 'dangling', reason: DANGLING, report: null };
235
+ try {
236
+ const report = await withTimeout(coverageOnce(adapter, m.ref), timeoutMs, 'the coverage read');
237
+ if (report === null)
238
+ return { repo: repoOf(m), state: 'absent', reason: "the repo's code graph holds no nodes yet", report: null };
239
+ // The node list stays on the per-repo read (`GET /governance/coverage?repo=`): N repos' full
240
+ // `unaccounted_nodes` in one body is not a view (codex on #907). Its size is `unaccounted`.
241
+ const { unaccounted_nodes, ...summary } = report;
242
+ void unaccounted_nodes;
243
+ return { repo: repoOf(m), state: 'ok', report: summary };
244
+ }
245
+ catch (err) {
246
+ return { repo: repoOf(m), state: 'error', reason: message(err), report: null };
247
+ }
248
+ });
249
+ const ok = rows.filter((r) => r.report !== null).map((r) => r.report);
250
+ const behavior = ok.reduce((n, r) => n + r.behavior_bearing, 0);
251
+ const resolved = ok.reduce((n, r) => n + r.resolved, 0);
252
+ return {
253
+ projectId,
254
+ totals: { ...totalsOf(rows), behavior_bearing: behavior, resolved, coverage: behavior > 0 ? resolved / behavior : null },
255
+ rows,
256
+ };
257
+ }
258
+ /** `GET /projects/:id/{requirements,domain,coverage}`. */
259
+ export function registerProjectAggregateRoutes(app, adapter) {
260
+ const fail = (reply, err) => {
261
+ if (err instanceof AggregateHttpError)
262
+ return reply.code(err.status).send({ error: err.message });
263
+ throw err;
264
+ };
265
+ app.get(`${V}/projects/:id/requirements`, { config: { manifest: { responseType: 'ProjectRequirementsResponse', statusCodes: [200, 400, 404, 500, 501] } } }, async (req, reply) => {
266
+ const { id } = req.params;
267
+ const parsed = ProjectRequirementsQuerySchema.safeParse(req.query);
268
+ if (!parsed.success)
269
+ return reply.code(400).send({ error: 'Invalid query', issues: parsed.error.issues });
270
+ try {
271
+ return await projectRequirements(adapter, id, parsed.data);
272
+ }
273
+ catch (err) {
274
+ return fail(reply, err);
275
+ }
276
+ });
277
+ app.get(`${V}/projects/:id/domain`, { config: { manifest: { responseType: 'ProjectDomainResponse', statusCodes: [200, 404, 500, 501] } } }, async (req, reply) => {
278
+ const { id } = req.params;
279
+ try {
280
+ return await projectDomain(adapter, id);
281
+ }
282
+ catch (err) {
283
+ return fail(reply, err);
284
+ }
285
+ });
286
+ app.get(`${V}/projects/:id/coverage`, { config: { manifest: { responseType: 'ProjectCoverageResponse', statusCodes: [200, 404, 500, 501] } } }, async (req, reply) => {
287
+ const { id } = req.params;
288
+ try {
289
+ return await projectCoverage(adapter, id);
290
+ }
291
+ catch (err) {
292
+ return fail(reply, err);
293
+ }
294
+ });
295
+ }
296
+ //# sourceMappingURL=project-aggregates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-aggregates.js","sourceRoot":"","sources":["../../src/api/project-aggregates.ts"],"names":[],"mappings":"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"}
@@ -107,15 +107,19 @@ export declare const DemoLaunchSchema: z.ZodObject<{
107
107
  audience: z.ZodString;
108
108
  show: z.ZodString;
109
109
  clisJson: z.ZodOptional<z.ZodString>;
110
+ /** wicked-core#850 — the explicit reduced-assurance opt-in, forwarded to `POST /runs` only when `true`. */
111
+ reducedAssurance: z.ZodOptional<z.ZodBoolean>;
110
112
  }, "strict", z.ZodTypeAny, {
111
113
  url: string;
112
114
  audience: string;
113
115
  show: string;
116
+ reducedAssurance?: boolean | undefined;
114
117
  clisJson?: string | undefined;
115
118
  }, {
116
119
  url: string;
117
120
  audience: string;
118
121
  show: string;
122
+ reducedAssurance?: boolean | undefined;
119
123
  clisJson?: string | undefined;
120
124
  }>;
121
125
  export declare const DemoScriptSchema: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../src/api/recording.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../src/api/recording.ts"],"names":[],"mappings":"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"}
@@ -146,6 +146,8 @@ export const DemoLaunchSchema = z
146
146
  audience: z.string().trim().min(1).max(2000),
147
147
  show: z.string().trim().min(1).max(4000),
148
148
  clisJson: z.string().optional(),
149
+ /** wicked-core#850 — the explicit reduced-assurance opt-in, forwarded to `POST /runs` only when `true`. */
150
+ reducedAssurance: z.boolean().optional(),
149
151
  })
150
152
  .strict();
151
153
  export const DemoScriptSchema = z.object({ content: z.string().min(1) }).strict();
@@ -645,6 +647,7 @@ export function registerDemoRoutes(app, adapter) {
645
647
  workflow: DEMO_PRESET,
646
648
  deliver: 'none',
647
649
  ...(parsed.data.clisJson !== undefined ? { clisJson: parsed.data.clisJson } : {}),
650
+ ...(parsed.data.reducedAssurance === true ? { reducedAssurance: true } : {}),
648
651
  },
649
652
  })
650
653
  .finally(() => demoLaunchRoots.delete(runId));
@@ -652,7 +655,9 @@ export function registerDemoRoutes(app, adapter) {
652
655
  await fsp.rm(root, { recursive: true, force: true });
653
656
  return reply.code(launched.statusCode).type('application/json').send(launched.body);
654
657
  }
655
- return reply.code(201).send({ runId });
658
+ // wicked-core#850: the launch's one-CLI assurance notice reaches the caller (codex r2 on crew#923).
659
+ const { assuranceNotice } = launched.json();
660
+ return reply.code(201).send({ runId, ...(assuranceNotice !== undefined ? { assuranceNotice } : {}) });
656
661
  });
657
662
  app.get(`${V}/runs/:id/demo`, { config: { manifest: { responseType: 'DemoView', statusCodes: [200, 404] } } }, async (req, reply) => {
658
663
  const run = await demoRun(req.params.id);