@sapiom/tools 0.2.0 → 0.4.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,4 +1,4 @@
1
- import type { Sapiom } from '../client.js';
1
+ import type { Sapiom } from "../client.js";
2
2
  /** Per-capability overrides, keyed by capability path (see module docs). */
3
3
  export type StubOverrides = Record<string, unknown | ((...args: unknown[]) => unknown)>;
4
4
  export interface StubClientOptions {
@@ -10,6 +10,21 @@ export interface StubClientOptions {
10
10
  * signal would have carried.
11
11
  */
12
12
  signals?: Map<string, unknown>;
13
+ /**
14
+ * When provided, every override key that is actually matched by a capability
15
+ * call is added here. A local runner diffs this against the keys the author
16
+ * supplied to warn about stub keys that matched nothing (a typo'd path, or the
17
+ * wrong plural/singular form) — which otherwise fail silently.
18
+ */
19
+ usedKeys?: Set<string>;
20
+ /**
21
+ * When provided, collects human-readable warnings about stub *values* that are
22
+ * present but malformed for the capability they override (e.g. a
23
+ * `repositories.list` stub that isn't an array of repositories). Catches the
24
+ * silent-wrong-data trap that `usedKeys` can't — a key that matched but carried
25
+ * the wrong shape.
26
+ */
27
+ warnings?: Set<string>;
13
28
  }
14
29
  /**
15
30
  * Create a stub `Sapiom` client. Runs every capability against built-in defaults;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stub/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAK3C,4EAA4E;AAC5E,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;AAExF,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAkID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,iBAAsB,GAAG,MAAM,CAuFrE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stub/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU3C,4EAA4E;AAC5E,MAAM,MAAM,aAAa,GAAG,MAAM,CAChC,MAAM,EACN,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAC5C,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACxB;AA0TD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,iBAAsB,GAAG,MAAM,CAmJrE"}
@@ -18,17 +18,18 @@
18
18
  * replaces that capability's default; a function `(…args) => value` computes it
19
19
  * from the call arguments.
20
20
  */
21
- import { CODING_RESULT_SIGNAL } from '../agent/index.js';
22
- import { Repository } from '../repositories/index.js';
23
- import { Sandbox } from '../sandboxes/index.js';
21
+ import { CODING_RESULT_SIGNAL, toResumePayload } from "../agent/index.js";
22
+ import { Repository } from "../repositories/index.js";
23
+ import { Sandbox } from "../sandboxes/index.js";
24
24
  // Module-scoped so correlation ids are unique across launches within a run.
25
25
  let launchSeq = 0;
26
26
  /** A launched, pausable capability handle (the `DispatchHandle` shape). */
27
27
  function isDispatchHandle(v) {
28
- if (!v || typeof v !== 'object')
28
+ if (!v || typeof v !== "object")
29
29
  return false;
30
30
  const h = v;
31
- return typeof h.wait === 'function' && typeof h.dispatch?.correlationId === 'string';
31
+ return (typeof h.wait === "function" &&
32
+ typeof h.dispatch?.correlationId === "string");
32
33
  }
33
34
  /**
34
35
  * Register a dispatch-able handle's eventual result so a pause on its signal can
@@ -36,27 +37,122 @@ function isDispatchHandle(v) {
36
37
  * stub method wraps its returned handle in this — the result a `pauseUntilSignal`
37
38
  * resumes with is exactly what the handle's `wait()` resolves to.
38
39
  */
39
- async function dispatchable(handle, signals) {
40
+ async function dispatchable(handle, signals, resumePayload) {
40
41
  if (signals && isDispatchHandle(handle)) {
41
- signals.set(handle.dispatch.correlationId, await handle.wait());
42
+ // The resume payload crosses a wire boundary — it reaches the resumed step as
43
+ // plain JSON, never a live handle. A capability may supply `resumePayload` to
44
+ // produce that wire shape; absent, the awaited result IS the payload. Round-trip
45
+ // it either way so a local run sees exactly the wire shape — no local-only
46
+ // handle methods to lean on.
47
+ const payload = resumePayload ? await resumePayload() : await handle.wait();
48
+ signals.set(handle.dispatch.correlationId, toPlainJson(payload));
42
49
  }
43
50
  return handle;
44
51
  }
52
+ /** Deep-plainify a value the way a wire boundary would (drops handle behavior). */
53
+ function toPlainJson(value) {
54
+ return JSON.parse(JSON.stringify(value ?? null));
55
+ }
45
56
  // Method names of each handle, reflected from the real classes so the stub stays
46
57
  // in lockstep with the SDK (a renamed/added method is picked up automatically).
47
58
  const REPOSITORY_METHODS = handleMethods(Repository.prototype);
48
59
  const SANDBOX_METHODS = handleMethods(Sandbox.prototype);
49
- const RUN_HANDLE_METHODS = new Set(['status', 'wait']); // RunHandle is a literal, not a class
60
+ const RUN_HANDLE_METHODS = new Set(["status", "wait"]); // RunHandle is a literal, not a class
50
61
  function handleMethods(proto) {
51
- return new Set(Object.getOwnPropertyNames(proto).filter((n) => n !== 'constructor'));
62
+ return new Set(Object.getOwnPropertyNames(proto).filter((n) => n !== "constructor"));
52
63
  }
53
- function resolve(overrides, path, args, fallback) {
54
- if (Object.prototype.hasOwnProperty.call(overrides, path)) {
55
- const o = overrides[path];
56
- return typeof o === 'function' ? o(...args) : o;
64
+ /**
65
+ * Resolve an override for a capability call. `paths` is one path or an ordered
66
+ * list of candidates — the first that is present wins, so a dispatched method can
67
+ * honor both its own key and the shared result key (see {@link dispatchedKeys}).
68
+ * Only the candidate that actually matches is consulted (and thus recorded as
69
+ * used), so unmatched-key reporting stays precise.
70
+ */
71
+ function resolve(overrides, paths, args, fallback) {
72
+ for (const path of typeof paths === "string" ? [paths] : paths) {
73
+ if (Object.prototype.hasOwnProperty.call(overrides, path)) {
74
+ const o = overrides[path];
75
+ return typeof o === "function"
76
+ ? o(...args)
77
+ : o;
78
+ }
57
79
  }
58
80
  return fallback();
59
81
  }
82
+ /**
83
+ * The stub keys a dispatched capability accepts, in precedence order: the
84
+ * method actually called (`<ns>.launch`) wins, then the shared blocking-result
85
+ * key (`<ns>.run`) that produces the same payload. Lets an author stub the key
86
+ * matching the call they wrote — `agent.coding.launch` — while the canonical
87
+ * `agent.coding.run` keeps working for both `run()` and `launch()`. Uniform
88
+ * across the dispatchable/pause family (coding today; deep research,
89
+ * sub-workflows, browser sessions later).
90
+ */
91
+ function dispatchedKeys(namespace) {
92
+ return [`${namespace}.launch`, `${namespace}.run`];
93
+ }
94
+ /**
95
+ * Wrap an overrides object so that every present key `resolve` consults is
96
+ * recorded in `used` (via the `hasOwnProperty` probe → `getOwnPropertyDescriptor`
97
+ * trap). Lets a runner report supplied-but-unmatched stub keys without threading
98
+ * a tracker through every factory.
99
+ */
100
+ function recordingOverrides(raw, used) {
101
+ if (!used)
102
+ return raw;
103
+ return new Proxy(raw, {
104
+ getOwnPropertyDescriptor(target, prop) {
105
+ const desc = Object.getOwnPropertyDescriptor(target, prop);
106
+ if (desc && typeof prop === "string")
107
+ used.add(prop);
108
+ return desc;
109
+ },
110
+ });
111
+ }
112
+ /** Coerce a resolved value (override or default; plain JSON or an existing stub
113
+ * handle) into a Repository handle, so stubbing a handle-returning capability
114
+ * with plain JSON never strips the handle's instance methods. */
115
+ function asRepository(data, overrides) {
116
+ const d = (data ?? {});
117
+ const slug = d.slug ?? "stub-repo";
118
+ return stubRepository({
119
+ slug,
120
+ cloneUrl: d.cloneUrl ?? `https://git.local/${slug}.git`,
121
+ status: d.status,
122
+ }, overrides);
123
+ }
124
+ /** Sandbox counterpart to {@link asRepository}. */
125
+ function asSandbox(data, overrides) {
126
+ const d = (data ?? {});
127
+ return stubSandbox({ name: d.name ?? "stub-sandbox", workspaceRoot: d.workspaceRoot }, overrides);
128
+ }
129
+ /** Coerce a `repositories.list` override (or default) into Repository handles,
130
+ * warning when the value or an element is the wrong shape — so a malformed list
131
+ * stub surfaces instead of silently yielding repos with `slug: undefined`. */
132
+ function asRepositoryList(data, overrides, warnings) {
133
+ if (!Array.isArray(data)) {
134
+ warnings?.add(`'repositories.list' stub must be an array of repositories (e.g. [{ "slug": "...", "cloneUrl": "..." }]); ` +
135
+ `got ${describeShape(data)}. Returning an empty list.`);
136
+ return [];
137
+ }
138
+ return data.map((el, i) => {
139
+ if (!el ||
140
+ typeof el !== "object" ||
141
+ typeof el.slug !== "string") {
142
+ warnings?.add(`'repositories.list'[${i}] is not a repository shape (expected { slug, cloneUrl }); got ${describeShape(el)}. ` +
143
+ `Note: stub values are NOT consumed one-per-call — a list stub is the array list() returns, so write ` +
144
+ `[{ "slug": "..." }], not [[{ ... }]].`);
145
+ }
146
+ return asRepository(el, overrides);
147
+ });
148
+ }
149
+ function describeShape(v) {
150
+ if (v === null)
151
+ return "null";
152
+ if (Array.isArray(v))
153
+ return `an array (length ${v.length})`;
154
+ return typeof v;
155
+ }
60
156
  /**
61
157
  * Build a handle proxy: data fields read from `data`; declared methods resolve an
62
158
  * override (`<type>.<method>`) or a default; any other property is rejected as
@@ -65,11 +161,25 @@ function resolve(overrides, path, args, fallback) {
65
161
  function makeHandle(type, methods, data, overrides, defaults) {
66
162
  return new Proxy(data, {
67
163
  get(target, prop) {
68
- if (typeof prop === 'symbol' || prop === 'then')
164
+ if (typeof prop === "symbol" || prop === "then")
69
165
  return undefined;
70
166
  const key = String(prop);
71
167
  if (key in target)
72
168
  return target[key]; // data field (incl. nested handles)
169
+ // Serialization / coercion hooks: a stub handle must survive being
170
+ // JSON.stringify'd, logged, or string-coerced — these flow through the
171
+ // local runner's trace, `ctx.shared` snapshots, and the resume payload. We
172
+ // answer them with the handle's plain data instead of letting the
173
+ // unknown-property guard below throw (which surfaced as the opaque
174
+ // "'sandbox.toJSON' is not a method or field" failure). `{ ...target }`
175
+ // copies only the data fields; nested handles serialize via their own
176
+ // toJSON in turn.
177
+ if (key === "toJSON")
178
+ return () => ({ ...target });
179
+ if (key === "toString")
180
+ return () => `[stub ${type}]`;
181
+ if (key === "valueOf")
182
+ return () => target;
73
183
  if (methods.has(key)) {
74
184
  return (...args) => Promise.resolve(resolve(overrides, `${type}.${key}`, args, () => defaults[key]?.(args)));
75
185
  }
@@ -79,35 +189,49 @@ function makeHandle(type, methods, data, overrides, defaults) {
79
189
  }
80
190
  const REPO_METHOD_DEFAULTS = {
81
191
  delete: () => undefined,
82
- pushFromSandbox: () => ({ pushed: true, sha: 'stub00000000', branch: 'main' }),
192
+ pushFromSandbox: () => ({
193
+ pushed: true,
194
+ sha: "stub00000000",
195
+ branch: "main",
196
+ }),
83
197
  };
84
198
  const SANDBOX_METHOD_DEFAULTS = {
85
- exec: () => ({ pid: 'stub-proc', exitCode: 0, stdout: '', stderr: '' }),
86
- readFile: () => '',
199
+ exec: () => ({ pid: "stub-proc", exitCode: 0, stdout: "", stderr: "" }),
200
+ readFile: () => "",
87
201
  writeFile: () => undefined,
88
202
  destroy: () => undefined,
89
203
  };
90
204
  function stubRepository(data, overrides) {
91
- return makeHandle('repository', REPOSITORY_METHODS, { slug: data.slug, cloneUrl: data.cloneUrl, status: data.status ?? 'active' }, overrides, REPO_METHOD_DEFAULTS);
205
+ return makeHandle("repository", REPOSITORY_METHODS, {
206
+ slug: data.slug,
207
+ cloneUrl: data.cloneUrl,
208
+ status: data.status ?? "active",
209
+ }, overrides, REPO_METHOD_DEFAULTS);
92
210
  }
93
211
  function stubSandbox(data, overrides) {
94
- return makeHandle('sandbox', SANDBOX_METHODS, { name: data.name, workspaceRoot: data.workspaceRoot ?? '/workspace' }, overrides, SANDBOX_METHOD_DEFAULTS);
212
+ return makeHandle("sandbox", SANDBOX_METHODS, { name: data.name, workspaceRoot: data.workspaceRoot ?? "/workspace" }, overrides, SANDBOX_METHOD_DEFAULTS);
95
213
  }
96
214
  function stubCodingResult(overrides) {
97
215
  return {
98
- runId: 'stub-run',
99
- status: 'completed',
100
- summary: '(stub) coding run completed locally',
216
+ runId: "stub-run",
217
+ status: "completed",
218
+ summary: "(stub) coding run completed locally",
101
219
  result: {
102
220
  success: true,
103
221
  turns: 1,
104
- modelUsed: 'stub-model',
222
+ modelUsed: "stub-model",
105
223
  durationMs: 0,
106
224
  toolCallCount: 0,
107
- usage: { inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheCreateTokens: 0, thinkingTokens: 0 },
225
+ usage: {
226
+ inputTokens: 0,
227
+ outputTokens: 0,
228
+ cacheReadTokens: 0,
229
+ cacheCreateTokens: 0,
230
+ thinkingTokens: 0,
231
+ },
108
232
  },
109
233
  error: null,
110
- sandbox: stubSandbox({ name: 'stub-sandbox' }, overrides),
234
+ sandbox: stubSandbox({ name: "stub-sandbox" }, overrides),
111
235
  };
112
236
  }
113
237
  function stubRunHandle(overrides, correlationId, result) {
@@ -118,62 +242,85 @@ function stubRunHandle(overrides, correlationId, result) {
118
242
  status: () => Promise.resolve(result.status),
119
243
  wait: () => Promise.resolve(result),
120
244
  };
121
- return makeHandle('runHandle', RUN_HANDLE_METHODS, handle, overrides, {});
245
+ return makeHandle("runHandle", RUN_HANDLE_METHODS, handle, overrides, {});
122
246
  }
123
247
  /**
124
248
  * Create a stub `Sapiom` client. Runs every capability against built-in defaults;
125
249
  * pass `overrides` to control the results a step branches on.
126
250
  */
127
251
  export function createStubClient(opts = {}) {
128
- const overrides = opts.overrides ?? {};
129
- const r = (path, args, fallback) => resolve(overrides, path, args, fallback);
252
+ // Record which override keys actually match a call, so the runner can flag
253
+ // supplied-but-unmatched keys (typos / wrong plural-singular form).
254
+ const overrides = recordingOverrides(opts.overrides ?? {}, opts.usedKeys);
255
+ const r = (paths, args, fallback) => resolve(overrides, paths, args, fallback);
256
+ // Resolve a coding run result, then re-wrap its `sandbox` as a handle so the
257
+ // blocking `run()` path keeps a method-capable Sandbox even when the result was
258
+ // overridden with plain JSON. `keys` lets `launch()` accept `agent.coding.launch`
259
+ // (the call the author wrote) as well as the shared `agent.coding.run`.
260
+ const resolveCodingResult = (spec, keys) => {
261
+ const res = r(keys, [spec], () => stubCodingResult(overrides));
262
+ return { ...res, sandbox: asSandbox(res.sandbox, overrides) };
263
+ };
130
264
  const client = {
131
265
  sandboxes: {
132
- create: (sandboxOpts) => Promise.resolve(r('sandboxes.create', [sandboxOpts], () => stubSandbox({ name: sandboxOpts?.name ?? 'stub-sandbox' }, overrides))),
133
- attach: (name, attachOpts) => r('sandboxes.attach', [name, attachOpts], () => stubSandbox({ name }, overrides)),
266
+ create: (sandboxOpts) => Promise.resolve(asSandbox(r("sandboxes.create", [sandboxOpts], () => ({
267
+ name: sandboxOpts?.name ?? "stub-sandbox",
268
+ })), overrides)),
269
+ attach: (name, attachOpts) => asSandbox(r("sandboxes.attach", [name, attachOpts], () => ({ name })), overrides),
134
270
  },
135
271
  repositories: {
136
- create: (slug) => Promise.resolve(r('repositories.create', [slug], () => stubRepository({ slug, cloneUrl: `https://git.local/${slug}.git` }, overrides))),
137
- get: (slug) => Promise.resolve(r('repositories.get', [slug], () => stubRepository({ slug, cloneUrl: `https://git.local/${slug}.git` }, overrides))),
138
- list: () => Promise.resolve(r('repositories.list', [], () => [])),
139
- delete: (slug) => Promise.resolve(r('repositories.delete', [slug], () => undefined)),
140
- attach: (slug, cloneUrl) => r('repositories.attach', [slug, cloneUrl], () => stubRepository({ slug, cloneUrl }, overrides)),
272
+ create: (slug) => Promise.resolve(asRepository(r("repositories.create", [slug], () => ({ slug })), overrides)),
273
+ get: (slug) => Promise.resolve(asRepository(r("repositories.get", [slug], () => ({ slug })), overrides)),
274
+ list: () => Promise.resolve(asRepositoryList(r("repositories.list", [], () => []), overrides, opts.warnings)),
275
+ delete: (slug) => Promise.resolve(r("repositories.delete", [slug], () => undefined)),
276
+ attach: (slug, cloneUrl) => asRepository(r("repositories.attach", [slug, cloneUrl], () => ({
277
+ slug,
278
+ cloneUrl,
279
+ })), overrides),
141
280
  },
142
281
  agent: {
143
282
  coding: {
144
- run: (spec) => Promise.resolve(r('agent.coding.run', [spec], () => stubCodingResult(overrides))),
283
+ run: (spec) => Promise.resolve(resolveCodingResult(spec, "agent.coding.run")),
145
284
  launch: (spec) => {
146
285
  const correlationId = `stub-run-${++launchSeq}`;
147
- // The resume payload IS the run result, so `agent.coding.run`
148
- // overrides control both `await run()` and `launch()` + pause.
286
+ // `launch()` honors the key matching the call the author wrote
287
+ // (`agent.coding.launch`) first, then the shared `agent.coding.run`
288
+ // that controls both paths.
149
289
  const result = {
150
- ...r('agent.coding.run', [spec], () => stubCodingResult(overrides)),
290
+ ...resolveCodingResult(spec, dispatchedKeys("agent.coding")),
151
291
  runId: correlationId,
152
292
  };
153
- // Generic: any dispatch-able handle registers itself for pause-resume.
154
- return dispatchable(stubRunHandle(overrides, correlationId, result), opts.signals);
293
+ // Register for pause-resume with the wire shape a resumed step receives:
294
+ // `toResumePayload` maps the live result to a `CodingResultPayload` (an
295
+ // `executionEnvironment` reference, not a live sandbox handle).
296
+ return dispatchable(stubRunHandle(overrides, correlationId, result), opts.signals, () => toResumePayload(result));
155
297
  },
156
298
  },
157
299
  },
158
300
  fileStorage: {
159
- upload: (input) => Promise.resolve(r('fileStorage.upload', [input], () => ({
160
- fileId: 'stub-file',
161
- uploadUrl: 'https://storage.local/upload/stub-file',
162
- expiresAt: '2099-01-01T00:00:00Z',
301
+ upload: (input) => Promise.resolve(r("fileStorage.upload", [input], () => ({
302
+ fileId: "stub-file",
303
+ uploadUrl: "https://storage.local/upload/stub-file",
304
+ expiresAt: "2099-01-01T00:00:00Z",
163
305
  requiredHeaders: {},
164
306
  }))),
165
- getDownloadUrl: (fileId) => Promise.resolve(r('fileStorage.getDownloadUrl', [fileId], () => ({
307
+ getDownloadUrl: (fileId) => Promise.resolve(r("fileStorage.getDownloadUrl", [fileId], () => ({
166
308
  downloadUrl: `https://storage.local/download/${fileId}`,
167
- expiresAt: '2099-01-01T00:00:00Z',
309
+ expiresAt: "2099-01-01T00:00:00Z",
310
+ }))),
311
+ list: (listOpts) => Promise.resolve(r("fileStorage.list", [listOpts], () => ({
312
+ files: [],
313
+ limit: 20,
314
+ offset: 0,
315
+ hasMore: false,
168
316
  }))),
169
- list: (listOpts) => Promise.resolve(r('fileStorage.list', [listOpts], () => ({ files: [], limit: 20, offset: 0, hasMore: false }))),
170
- delete: (fileId) => Promise.resolve(r('fileStorage.delete', [fileId], () => undefined)),
171
- setVisibility: (fileId, visibility) => Promise.resolve(r('fileStorage.setVisibility', [fileId, visibility], () => ({
317
+ delete: (fileId) => Promise.resolve(r("fileStorage.delete", [fileId], () => undefined)),
318
+ setVisibility: (fileId, visibility) => Promise.resolve(r("fileStorage.setVisibility", [fileId, visibility], () => ({
172
319
  fileId,
173
- contentType: 'application/octet-stream',
320
+ contentType: "application/octet-stream",
174
321
  visibility,
175
- status: 'uploaded',
176
- createdAt: '2099-01-01T00:00:00Z',
322
+ status: "uploaded",
323
+ createdAt: "2099-01-01T00:00:00Z",
177
324
  downloadRequestCount: 0,
178
325
  }))),
179
326
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stub/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stub/index.ts"],"names":[],"mappings":"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"}