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