@sapiom/harness 0.1.3 → 0.1.5

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 (85) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/dist/core/adapters/adapter.d.ts +9 -0
  3. package/dist/core/adapters/adapter.d.ts.map +1 -1
  4. package/dist/core/adapters/claude-code-info.d.ts.map +1 -1
  5. package/dist/core/adapters/claude-code-info.js +2 -0
  6. package/dist/core/adapters/claude-code-info.js.map +1 -1
  7. package/dist/core/adapters/claude-code.d.ts +4 -0
  8. package/dist/core/adapters/claude-code.d.ts.map +1 -1
  9. package/dist/core/adapters/claude-code.js +133 -47
  10. package/dist/core/adapters/claude-code.js.map +1 -1
  11. package/dist/core/adapters/codex-info.d.ts.map +1 -1
  12. package/dist/core/adapters/codex-info.js +2 -0
  13. package/dist/core/adapters/codex-info.js.map +1 -1
  14. package/dist/core/adapters/conductor.d.ts.map +1 -1
  15. package/dist/core/adapters/conductor.js +2 -0
  16. package/dist/core/adapters/conductor.js.map +1 -1
  17. package/dist/core/adapters/opencode.d.ts.map +1 -1
  18. package/dist/core/adapters/opencode.js +2 -0
  19. package/dist/core/adapters/opencode.js.map +1 -1
  20. package/dist/core/adapters/pi.d.ts.map +1 -1
  21. package/dist/core/adapters/pi.js +2 -0
  22. package/dist/core/adapters/pi.js.map +1 -1
  23. package/dist/core/canvas-run-state.d.ts +95 -0
  24. package/dist/core/canvas-run-state.d.ts.map +1 -0
  25. package/dist/core/canvas-run-state.js +162 -0
  26. package/dist/core/canvas-run-state.js.map +1 -0
  27. package/dist/core/canvas-svg.d.ts.map +1 -1
  28. package/dist/core/canvas-svg.js +28 -8
  29. package/dist/core/canvas-svg.js.map +1 -1
  30. package/dist/core/canvas-template.d.ts +4 -3
  31. package/dist/core/canvas-template.d.ts.map +1 -1
  32. package/dist/core/canvas-template.js +75 -3
  33. package/dist/core/canvas-template.js.map +1 -1
  34. package/dist/core/definition-slug-resolver.d.ts +33 -0
  35. package/dist/core/definition-slug-resolver.d.ts.map +1 -0
  36. package/dist/core/definition-slug-resolver.js +81 -0
  37. package/dist/core/definition-slug-resolver.js.map +1 -0
  38. package/dist/core/execution-detector.d.ts +59 -0
  39. package/dist/core/execution-detector.d.ts.map +1 -0
  40. package/dist/core/execution-detector.js +110 -0
  41. package/dist/core/execution-detector.js.map +1 -0
  42. package/dist/core/inject/mcp-config.d.ts.map +1 -1
  43. package/dist/core/inject/mcp-config.js +9 -1
  44. package/dist/core/inject/mcp-config.js.map +1 -1
  45. package/dist/core/render-run-state.d.ts +9 -0
  46. package/dist/core/render-run-state.d.ts.map +1 -0
  47. package/dist/core/render-run-state.js +139 -0
  48. package/dist/core/render-run-state.js.map +1 -0
  49. package/dist/core/run-spend.d.ts +55 -0
  50. package/dist/core/run-spend.d.ts.map +1 -0
  51. package/dist/core/run-spend.js +109 -0
  52. package/dist/core/run-spend.js.map +1 -0
  53. package/dist/core/run-state.d.ts +45 -0
  54. package/dist/core/run-state.d.ts.map +1 -0
  55. package/dist/core/run-state.js +72 -0
  56. package/dist/core/run-state.js.map +1 -0
  57. package/dist/core/run-transactions.d.ts +60 -0
  58. package/dist/core/run-transactions.d.ts.map +1 -0
  59. package/dist/core/run-transactions.js +129 -0
  60. package/dist/core/run-transactions.js.map +1 -0
  61. package/dist/core/workflow-registry.d.ts +12 -1
  62. package/dist/core/workflow-registry.d.ts.map +1 -1
  63. package/dist/core/workflow-registry.js +2 -0
  64. package/dist/core/workflow-registry.js.map +1 -1
  65. package/dist/server/index.d.ts.map +1 -1
  66. package/dist/server/index.js +0 -0
  67. package/dist/server/index.js.map +1 -1
  68. package/dist/server/rest.d.ts +5 -0
  69. package/dist/server/rest.d.ts.map +1 -1
  70. package/dist/server/rest.js +151 -12
  71. package/dist/server/rest.js.map +1 -1
  72. package/dist/server/runs.d.ts +33 -0
  73. package/dist/server/runs.d.ts.map +1 -0
  74. package/dist/server/runs.js +124 -0
  75. package/dist/server/runs.js.map +1 -0
  76. package/dist/shared/types.d.ts +157 -0
  77. package/dist/shared/types.d.ts.map +1 -1
  78. package/dist/shared/types.js +30 -0
  79. package/dist/shared/types.js.map +1 -1
  80. package/dist/web/assets/index-DM84J83Y.js +234 -0
  81. package/dist/web/assets/index-DemtWW4L.css +32 -0
  82. package/dist/web/index.html +2 -2
  83. package/package.json +4 -4
  84. package/dist/web/assets/index-BTm-QNRt.css +0 -32
  85. package/dist/web/assets/index-CvNiFngP.js +0 -204
@@ -4,13 +4,35 @@
4
4
  * macros and settings are mounted by other workstreams alongside this one.
5
5
  */
6
6
  import express, { Router } from "express";
7
+ import rateLimit from "express-rate-limit";
7
8
  import { z } from "zod";
8
9
  import { randomUUID } from "node:crypto";
9
- import { SPAWNABLE_HARNESS_KINDS } from "../shared/types.js";
10
+ import * as fs from "node:fs/promises";
11
+ import * as path from "node:path";
12
+ import { ALLOWED_IMAGE_MEDIA_TYPES, HARNESS_UPLOADS_DIR, JSON_BODY_LIMIT_BYTES, MAX_IMAGE_UPLOAD_BYTES, SPAWNABLE_HARNESS_KINDS, } from "../shared/types.js";
10
13
  import { AdapterNotFoundError, ExternalHarnessError, SessionAlreadyLiveError, SessionNotResumeableError } from "../core/errors.js";
11
14
  import { SessionNotReadyError, UnknownSessionError } from "../core/session-manager.js";
12
- import { listHarnessAdapters } from "../core/adapters/registry.js";
15
+ import { getHarnessAdapter, listHarnessAdapters } from "../core/adapters/registry.js";
16
+ import { resolveWithinRoot } from "../core/path-safety.js";
13
17
  import { loadSettings, saveSettings } from "../cli/settings.js";
18
+ // Cap image attaches per client so a runaway paste/drop loop can't fill the
19
+ // disk or wedge the pty — the route is otherwise unauthenticated beyond the
20
+ // boot token. (Added by CodeQL's rate-limiting finding.)
21
+ const imageUploadRateLimiter = rateLimit({
22
+ windowMs: 60 * 1000,
23
+ max: 30,
24
+ standardHeaders: true,
25
+ legacyHeaders: false,
26
+ });
27
+ /** File extension to store an accepted image under, keyed by media type. */
28
+ const IMAGE_EXTENSIONS = {
29
+ "image/png": "png",
30
+ "image/jpeg": "jpg",
31
+ "image/gif": "gif",
32
+ "image/webp": "webp",
33
+ };
34
+ /** `data:<mediaType>;base64,<payload>` — captures the media type and payload. */
35
+ const DATA_URL_RE = /^data:([a-z0-9.+/-]+);base64,([\s\S]+)$/i;
14
36
  // Derived from SPAWNABLE_HARNESS_KINDS (shared/types.ts) so the zod
15
37
  // validation and the TypeScript type can never drift from each other.
16
38
  // Adding a new spawnable harness means updating that one constant; the
@@ -24,6 +46,10 @@ const injectInputSchema = z.object({
24
46
  text: z.string(),
25
47
  submit: z.boolean().optional(),
26
48
  });
49
+ const attachImageSchema = z.object({
50
+ dataUrl: z.string().min(1),
51
+ filename: z.string().optional(),
52
+ });
27
53
  const bindWorkflowSchema = z.object({
28
54
  workflowPath: z.string().min(1).nullable(),
29
55
  });
@@ -48,17 +74,25 @@ const UI_EVENT_NAMES = [
48
74
  * carry arbitrary content). Keyed and value length-capped so the endpoint
49
75
  * cannot be used as a vector to push large payloads through the remote batcher.
50
76
  */
51
- const uiTrackDataValue = z.union([z.string().max(256), z.number(), z.boolean()]);
52
- const uiTrackDataSchema = z.record(z.string().max(64), uiTrackDataValue).refine((obj) => Object.keys(obj).length <= 20, { message: "data must have at most 20 keys" });
77
+ const uiTrackDataValue = z.union([
78
+ z.string().max(256),
79
+ z.number(),
80
+ z.boolean(),
81
+ ]);
82
+ const uiTrackDataSchema = z
83
+ .record(z.string().max(64), uiTrackDataValue)
84
+ .refine((obj) => Object.keys(obj).length <= 20, {
85
+ message: "data must have at most 20 keys",
86
+ });
53
87
  const uiTrackSchema = z.object({
54
88
  event: z.enum(UI_EVENT_NAMES),
55
89
  data: uiTrackDataSchema.optional(),
56
90
  harnessSessionId: z.string().optional(),
57
91
  });
58
92
  export function createRestRouter(options) {
59
- const { sessionManager, adapters, version, identity, listWorkflows, listMacros } = options;
93
+ const { sessionManager, adapters, version, identity, listWorkflows, listMacros, } = options;
60
94
  const router = Router();
61
- router.use(express.json());
95
+ router.use(express.json({ limit: JSON_BODY_LIMIT_BYTES }));
62
96
  router.get("/state", async (_req, res, next) => {
63
97
  try {
64
98
  const settings = await loadSettings(options.settingsPath);
@@ -72,11 +106,22 @@ export function createRestRouter(options) {
72
106
  workflows: await listWorkflows(),
73
107
  macros: listMacros(),
74
108
  launchDir: options.launchDir,
75
- ...(options.availableHarnesses ? { availableHarnesses: options.availableHarnesses } : {}),
109
+ ...(options.availableHarnesses
110
+ ? { availableHarnesses: options.availableHarnesses }
111
+ : {}),
76
112
  ...(options.listTasks ? { tasks: options.listTasks() } : {}),
77
- ...(options.firstRun !== undefined ? { firstRun: options.firstRun } : {}),
78
- ...(options.consentSource !== undefined ? { consentSource: options.consentSource } : {}),
79
- ...(options.consentEnvReason !== undefined ? { consentEnvReason: options.consentEnvReason } : {}),
113
+ ...(options.firstRun !== undefined
114
+ ? { firstRun: options.firstRun }
115
+ : {}),
116
+ ...(options.consentSource !== undefined
117
+ ? { consentSource: options.consentSource }
118
+ : {}),
119
+ ...(options.consentEnvReason !== undefined
120
+ ? { consentEnvReason: options.consentEnvReason }
121
+ : {}),
122
+ ...(options.agentsBaseUrl
123
+ ? { agentsBaseUrl: options.agentsBaseUrl }
124
+ : {}),
80
125
  };
81
126
  res.json(state);
82
127
  }
@@ -118,7 +163,11 @@ export function createRestRouter(options) {
118
163
  // existing session-creation path.
119
164
  router.post("/sample-project", async (_req, res, next) => {
120
165
  if (!options.seedSampleProject) {
121
- res.status(501).json({ error: "sample project seeding is not available on this server" });
166
+ res
167
+ .status(501)
168
+ .json({
169
+ error: "sample project seeding is not available on this server",
170
+ });
122
171
  return;
123
172
  }
124
173
  try {
@@ -151,6 +200,7 @@ export function createRestRouter(options) {
151
200
  experimental: adapter.experimental ?? false,
152
201
  installed: await adapter.detectInstalled(),
153
202
  installMcpPrompt: adapter.installMcpPrompt(),
203
+ imageInput: adapter.imageInput,
154
204
  })));
155
205
  res.json(entries);
156
206
  }
@@ -272,7 +322,9 @@ export function createRestRouter(options) {
272
322
  if (err instanceof ExternalHarnessError ||
273
323
  err instanceof SessionAlreadyLiveError ||
274
324
  err instanceof SessionNotResumeableError) {
275
- res.status(409).json({ error: err.message, code: err.code });
325
+ res
326
+ .status(409)
327
+ .json({ error: err.message, code: err.code });
276
328
  return;
277
329
  }
278
330
  next(err);
@@ -302,6 +354,93 @@ export function createRestRouter(options) {
302
354
  }
303
355
  res.json({ ok: true });
304
356
  }
357
+ catch (err) {
358
+ if (err instanceof SessionNotReadyError ||
359
+ err instanceof ExternalHarnessError) {
360
+ res.status(409).json({ error: err.message, code: err.code });
361
+ return;
362
+ }
363
+ next(err);
364
+ }
365
+ });
366
+ /**
367
+ * POST /api/sessions/:id/image — attach an image (composer file picker,
368
+ * paste, or drag-drop) and relay it to the agent.
369
+ *
370
+ * The harness has no direct image-content-block channel to a CLI agent, so
371
+ * "relay as an image" means: write the decoded image into the session's
372
+ * project directory (under HARNESS_UPLOADS_DIR) and inject its absolute path
373
+ * into the pty (submit:false) — the supported agents read an image referenced
374
+ * by path in their prompt. The attach is only offered/accepted for harnesses
375
+ * whose adapter declares `imageInput`, so an image never gets relayed to an
376
+ * agent that can't consume it.
377
+ */
378
+ router.post("/sessions/:id/image", imageUploadRateLimiter, async (req, res, next) => {
379
+ const parsed = attachImageSchema.safeParse(req.body);
380
+ if (!parsed.success) {
381
+ res.status(400).json({ error: parsed.error.message });
382
+ return;
383
+ }
384
+ const session = sessionManager.get(req.params.id);
385
+ if (!session) {
386
+ res.status(404).json({ error: "session not found" });
387
+ return;
388
+ }
389
+ // Respect the adapter's declared image support — reject rather than write a
390
+ // file the agent will never look at.
391
+ if (!getHarnessAdapter(session.harness).imageInput) {
392
+ res.status(400).json({ error: `Harness '${session.harness}' does not support image input` });
393
+ return;
394
+ }
395
+ const match = DATA_URL_RE.exec(parsed.data.dataUrl);
396
+ if (!match) {
397
+ res.status(400).json({ error: "dataUrl must be a base64 data: URL" });
398
+ return;
399
+ }
400
+ const mediaType = match[1].toLowerCase();
401
+ if (!ALLOWED_IMAGE_MEDIA_TYPES.includes(mediaType)) {
402
+ res.status(400).json({
403
+ error: `Unsupported image type '${mediaType}' — allowed: ${ALLOWED_IMAGE_MEDIA_TYPES.join(", ")}`,
404
+ });
405
+ return;
406
+ }
407
+ const buffer = Buffer.from(match[2], "base64");
408
+ if (buffer.byteLength === 0) {
409
+ res.status(400).json({ error: "image payload is empty" });
410
+ return;
411
+ }
412
+ if (buffer.byteLength > MAX_IMAGE_UPLOAD_BYTES) {
413
+ res.status(413).json({
414
+ error: `Image is ${buffer.byteLength} bytes; the limit is ${MAX_IMAGE_UPLOAD_BYTES} bytes`,
415
+ });
416
+ return;
417
+ }
418
+ // Confine the write to the session cwd; the stored name is a fresh uuid
419
+ // (never the client-supplied filename) so an image can't be written outside
420
+ // the uploads directory regardless of what the browser reported.
421
+ const uploadsDir = resolveWithinRoot(session.cwd, HARNESS_UPLOADS_DIR);
422
+ if (!uploadsDir) {
423
+ res.status(500).json({ error: "could not resolve the uploads directory" });
424
+ return;
425
+ }
426
+ const ext = IMAGE_EXTENSIONS[mediaType];
427
+ const filePath = path.join(uploadsDir, `${randomUUID()}.${ext}`);
428
+ try {
429
+ await fs.mkdir(uploadsDir, { recursive: true });
430
+ await fs.writeFile(filePath, buffer);
431
+ // A trailing space so the user's own message doesn't run into the path.
432
+ const injected = await sessionManager.submitInput(req.params.id, `${filePath} `, false);
433
+ if (!injected) {
434
+ res.status(404).json({ error: "session not found or has no live pty" });
435
+ return;
436
+ }
437
+ const response = {
438
+ path: filePath,
439
+ mediaType: mediaType,
440
+ bytes: buffer.byteLength,
441
+ };
442
+ res.json(response);
443
+ }
305
444
  catch (err) {
306
445
  if (err instanceof SessionNotReadyError || err instanceof ExternalHarnessError) {
307
446
  res.status(409).json({ error: err.message, code: err.code });
@@ -1 +1 @@
1
- {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/server/rest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/server/rest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Runs router — backs GET /api/runs/:executionId/{state,spend,transactions}.
3
+ *
4
+ * Returns a {@link RunView} (live status), {@link RunSpend} (per-step cost), or
5
+ * per-call {@link RunCall}[] (cost drill-down) for a running or finished prod
6
+ * agents execution, so the web canvas can poll live status, cost, and the
7
+ * "why is this costly" breakdown. The Sapiom API key is held server-side and
8
+ * never forwarded to the browser — the router fetches on behalf of the canvas
9
+ * via {@link createRunStateFetcher}, {@link createRunSpendFetcher}, and
10
+ * {@link createRunTransactionsFetcher}.
11
+ */
12
+ import { Router } from "express";
13
+ export interface RunsRouterOpts {
14
+ /** Sapiom API key for the agents surface; null when the harness is not authenticated. */
15
+ apiKey: string | null;
16
+ /** Override the agents base URL (resolved from env by default). Test seam. */
17
+ baseUrl?: string;
18
+ /** Override the core base URL for the spend endpoint (resolved from env by default). Test seam. */
19
+ coreBaseUrl?: string;
20
+ /**
21
+ * Injectable fetch implementation forwarded to the fetcher. Undocumented for
22
+ * prod — exists as a test seam only, mirroring the pattern used elsewhere in
23
+ * the harness resolver suite.
24
+ */
25
+ fetchImpl?: typeof fetch;
26
+ }
27
+ /**
28
+ * Create the runs router. Mounts `GET /api/runs/:executionId/state` and
29
+ * `GET /api/runs/:executionId/spend`, delegating to the respective fetchers
30
+ * for each upstream call.
31
+ */
32
+ export declare function createRunsRouter(opts: RunsRouterOpts): Router;
33
+ //# sourceMappingURL=runs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/server/runs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAMjC,MAAM,WAAW,cAAc;IAC7B,yFAAyF;IACzF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mGAAmG;IACnG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CA0G7D"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Runs router — backs GET /api/runs/:executionId/{state,spend,transactions}.
3
+ *
4
+ * Returns a {@link RunView} (live status), {@link RunSpend} (per-step cost), or
5
+ * per-call {@link RunCall}[] (cost drill-down) for a running or finished prod
6
+ * agents execution, so the web canvas can poll live status, cost, and the
7
+ * "why is this costly" breakdown. The Sapiom API key is held server-side and
8
+ * never forwarded to the browser — the router fetches on behalf of the canvas
9
+ * via {@link createRunStateFetcher}, {@link createRunSpendFetcher}, and
10
+ * {@link createRunTransactionsFetcher}.
11
+ */
12
+ import { Router } from "express";
13
+ import { createRunStateFetcher } from "../core/run-state.js";
14
+ import { createRunSpendFetcher } from "../core/run-spend.js";
15
+ import { createRunTransactionsFetcher } from "../core/run-transactions.js";
16
+ /**
17
+ * Create the runs router. Mounts `GET /api/runs/:executionId/state` and
18
+ * `GET /api/runs/:executionId/spend`, delegating to the respective fetchers
19
+ * for each upstream call.
20
+ */
21
+ export function createRunsRouter(opts) {
22
+ const router = Router();
23
+ const stateFetcher = createRunStateFetcher({
24
+ apiKey: opts.apiKey,
25
+ baseUrl: opts.baseUrl,
26
+ fetchImpl: opts.fetchImpl,
27
+ });
28
+ const spendFetcher = createRunSpendFetcher({
29
+ apiKey: opts.apiKey,
30
+ baseUrl: opts.coreBaseUrl,
31
+ fetchImpl: opts.fetchImpl,
32
+ });
33
+ const transactionsFetcher = createRunTransactionsFetcher({
34
+ apiKey: opts.apiKey,
35
+ baseUrl: opts.coreBaseUrl,
36
+ fetchImpl: opts.fetchImpl,
37
+ });
38
+ /**
39
+ * GET /api/runs/:executionId/state
40
+ *
41
+ * Returns a {@link RunView} for the given execution id. The harness fetches
42
+ * the execution projection from the agents surface (key stays server-side)
43
+ * and maps it through decodeExecutionProjection → renderRunState before
44
+ * responding. Designed for polling by the web canvas.
45
+ *
46
+ * 200 RunView JSON — execution found and decoded
47
+ * 400 executionId missing or empty
48
+ * 404 execution not found on the agents surface
49
+ * 502 upstream error or decode failure
50
+ * 503 harness is not signed in to Sapiom
51
+ */
52
+ router.get("/api/runs/:executionId/state", async (req, res) => {
53
+ const id = req.params.executionId;
54
+ if (!id || typeof id !== "string" || id.trim() === "") {
55
+ res.status(400).json({ error: "executionId is required" });
56
+ return;
57
+ }
58
+ const result = await stateFetcher.fetch(id);
59
+ if (result.ok) {
60
+ res.json(result.runView);
61
+ }
62
+ else {
63
+ res.status(result.status).json({ error: result.error });
64
+ }
65
+ });
66
+ /**
67
+ * GET /api/runs/:executionId/spend
68
+ *
69
+ * Returns a {@link RunSpend} for the given execution id, fetched from the
70
+ * core surface (api.sapiom.ai). Cost settles just after a run finishes, so
71
+ * the SPA polls this endpoint a few extra times after terminal state. The key
72
+ * stays server-side and never reaches the browser.
73
+ *
74
+ * 200 RunSpend JSON — spend found and decoded
75
+ * 400 executionId missing or empty
76
+ * 404 spend not found on the core surface
77
+ * 502 upstream error or decode failure
78
+ * 503 harness is not signed in to Sapiom
79
+ */
80
+ router.get("/api/runs/:executionId/spend", async (req, res) => {
81
+ const id = req.params.executionId;
82
+ if (!id || typeof id !== "string" || id.trim() === "") {
83
+ res.status(400).json({ error: "executionId is required" });
84
+ return;
85
+ }
86
+ const result = await spendFetcher.fetch(id);
87
+ if (result.ok) {
88
+ res.json(result.spend);
89
+ }
90
+ else {
91
+ res.status(result.status).json({ error: result.error });
92
+ }
93
+ });
94
+ /**
95
+ * GET /api/runs/:executionId/transactions
96
+ *
97
+ * Returns the per-call cost drill-down ({@link RunCall}[]) for the given
98
+ * execution — the individual billable capability calls behind each step's
99
+ * cost, so the canvas can answer "why is this step costly". Provider-agnostic
100
+ * (capability labels only) and key-safe (fetched server-side).
101
+ *
102
+ * 200 RunCall[] JSON — transactions found and mapped
103
+ * 400 executionId missing or empty
104
+ * 404 transactions not found on the core surface
105
+ * 502 upstream error or decode failure
106
+ * 503 harness is not signed in to Sapiom
107
+ */
108
+ router.get("/api/runs/:executionId/transactions", async (req, res) => {
109
+ const id = req.params.executionId;
110
+ if (!id || typeof id !== "string" || id.trim() === "") {
111
+ res.status(400).json({ error: "executionId is required" });
112
+ return;
113
+ }
114
+ const result = await transactionsFetcher.fetch(id);
115
+ if (result.ok) {
116
+ res.json(result.calls);
117
+ }
118
+ else {
119
+ res.status(result.status).json({ error: result.error });
120
+ }
121
+ });
122
+ return router;
123
+ }
124
+ //# sourceMappingURL=runs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/server/runs.ts"],"names":[],"mappings":"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"}