swarmbox 0.13.0 → 0.15.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 (43) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/dist/fleet/browser.d.ts +12 -0
  3. package/dist/fleet/browser.d.ts.map +1 -1
  4. package/dist/fleet/browser.js +3 -0
  5. package/dist/fleet/browser.js.map +1 -1
  6. package/dist/fleet/sight.d.ts +11 -1
  7. package/dist/fleet/sight.d.ts.map +1 -1
  8. package/dist/fleet/sight.js +105 -6
  9. package/dist/fleet/sight.js.map +1 -1
  10. package/dist/harness.d.ts +26 -1
  11. package/dist/harness.d.ts.map +1 -1
  12. package/dist/harness.js +89 -10
  13. package/dist/harness.js.map +1 -1
  14. package/dist/mcp/authenticator.d.ts +17 -0
  15. package/dist/mcp/authenticator.d.ts.map +1 -0
  16. package/dist/mcp/authenticator.js +63 -0
  17. package/dist/mcp/authenticator.js.map +1 -0
  18. package/dist/mcp/inbox.d.ts +16 -0
  19. package/dist/mcp/inbox.d.ts.map +1 -0
  20. package/dist/mcp/inbox.js +55 -0
  21. package/dist/mcp/inbox.js.map +1 -0
  22. package/dist/mcp/server.d.ts +2 -0
  23. package/dist/mcp/server.d.ts.map +1 -1
  24. package/dist/mcp/server.js +141 -31
  25. package/dist/mcp/server.js.map +1 -1
  26. package/dist/product.d.ts +12 -0
  27. package/dist/product.d.ts.map +1 -1
  28. package/dist/runs/report.d.ts.map +1 -1
  29. package/dist/runs/report.js +1 -0
  30. package/dist/runs/report.js.map +1 -1
  31. package/dist/runs/run.d.ts +25 -0
  32. package/dist/runs/run.d.ts.map +1 -1
  33. package/dist/runs/run.js +118 -70
  34. package/dist/runs/run.js.map +1 -1
  35. package/dist/standins/builtin/s3/index.d.ts.map +1 -1
  36. package/dist/standins/builtin/s3/index.js +105 -13
  37. package/dist/standins/builtin/s3/index.js.map +1 -1
  38. package/dist/standins/manifest.d.ts +1 -1
  39. package/dist/time.d.ts +6 -0
  40. package/dist/time.d.ts.map +1 -1
  41. package/dist/time.js +18 -0
  42. package/dist/time.js.map +1 -1
  43. package/package.json +3 -2
package/dist/harness.js CHANGED
@@ -150,6 +150,31 @@ export function linkPath(link, world, only, noun = 'tenant') {
150
150
  throw new HarnessError(`this world has no ${noun} ${tenant}`);
151
151
  return { tenant, path };
152
152
  }
153
+ /**
154
+ * The world's tenants as the product has them now (Product currentTenants), kept as `tenants`: a tenant made during
155
+ * the run, by the product's own sign-up, is then reachable like the rest. True when the list changed.
156
+ */
157
+ export async function refreshTenants(w) {
158
+ if (!w.world.currentTenants)
159
+ return false;
160
+ const now = await w.world.currentTenants();
161
+ const known = new Set(w.world.tenants);
162
+ if (now.length === known.size && now.every((t) => known.has(t)))
163
+ return false;
164
+ w.world.tenants = now;
165
+ return true;
166
+ }
167
+ /** linkPath, asking the product for its tenants again when the link names one the world didn't start with. */
168
+ async function linkPathNow(w, link, noun) {
169
+ try {
170
+ return linkPath(link, w.world, undefined, noun);
171
+ }
172
+ catch (e) {
173
+ if (!(e instanceof HarnessError) || !(await refreshTenants(w)))
174
+ throw e;
175
+ return linkPath(link, w.world, undefined, noun);
176
+ }
177
+ }
153
178
  /** Text from a feed row's field, or nothing. */
154
179
  const str = (v) => (typeof v === 'string' ? v : '');
155
180
  /**
@@ -209,9 +234,33 @@ async function field(page, roles, name, exact) {
209
234
  return (await byRole.count()) > 0 ? byRole : page.getByLabel(name, { exact });
210
235
  }
211
236
  /** Elements by accessible role and name, as screen_read shows them. */
237
+ /** By accessible role and name; role "text" is an element with no role, found by its visible text. */
212
238
  function byRole(page, role, name, exact = false) {
239
+ if (role === 'text')
240
+ return page.getByText(name, { exact });
213
241
  return page.getByRole(role, { name, exact });
214
242
  }
243
+ /**
244
+ * A dropdown with no accessible name (a styled one, showing "Choose groups"), found as a person finds it: by
245
+ * its label, its placeholder, or the text it shows. Null when none of those match one either.
246
+ */
247
+ async function unnamedControl(page, role, name, exact = false) {
248
+ if (!['combobox', 'listbox', 'button'].includes(role))
249
+ return null;
250
+ const shown = exact ? new RegExp(`^\\s*${name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\s*$`) : name;
251
+ const tries = [
252
+ [page.getByLabel(name, { exact }), 'by its label'],
253
+ [page.getByPlaceholder(name, { exact }), 'by its placeholder'],
254
+ [
255
+ page.getByRole(role).filter({ hasText: shown, visible: true }),
256
+ 'by the text it shows',
257
+ ],
258
+ ];
259
+ for (const [el, how] of tries)
260
+ if ((await el.count()) === 1)
261
+ return { el, how };
262
+ return null;
263
+ }
215
264
  /** Whether a world's clock stands anywhere but on this machine's: moved, or paused. */
216
265
  export function clockMoved(state) {
217
266
  return state.clock.offsetMs !== 0 || state.clock.frozenAt !== null;
@@ -237,6 +286,7 @@ export function createHarness(product, options = {}) {
237
286
  let nextScreen = 1;
238
287
  // World creation picks a port and then starts on it; two at once must not pick the same one.
239
288
  let creating = Promise.resolve();
289
+ const starting = new Map();
240
290
  const getWorld = (id) => {
241
291
  const w = worlds.get(id);
242
292
  if (!w)
@@ -648,7 +698,7 @@ export function createHarness(product, options = {}) {
648
698
  product,
649
699
  createWorld(partial = {}) {
650
700
  if (partial.keep && [...worlds.values()].some((w) => w.spec.keep === partial.keep))
651
- return Promise.reject(new HarnessError(`kept world ${partial.keep} is already running here`));
701
+ return Object.assign(Promise.reject(new HarnessError(`kept world ${partial.keep} is already running here`)), { id: '' });
652
702
  const spec = {
653
703
  tenants: partial.tenants ?? [],
654
704
  seed: partial.seed ?? false,
@@ -657,14 +707,21 @@ export function createHarness(product, options = {}) {
657
707
  ...(partial.standins?.length ? { standins: partial.standins } : {}),
658
708
  };
659
709
  const id = `w${nextWorld++}`;
710
+ const start = { id, since: new Date().toISOString() };
711
+ starting.set(id, start);
660
712
  const run = creating.then(async () => {
661
713
  const entry = await startEntry(id, spec);
662
714
  worlds.set(id, entry);
663
715
  return entry;
664
716
  });
717
+ run.then(() => starting.delete(id), (e) => {
718
+ start.error = e.message;
719
+ setTimeout(() => starting.delete(id), 10 * 60_000).unref();
720
+ });
665
721
  creating = run.catch(() => undefined);
666
- return run;
722
+ return Object.assign(run, { id });
667
723
  },
724
+ startingWorlds: () => [...starting.values()],
668
725
  async resetWorld(worldId) {
669
726
  const old = getWorld(worldId);
670
727
  const port = old.world.port;
@@ -681,7 +738,11 @@ export function createHarness(product, options = {}) {
681
738
  },
682
739
  worlds: () => [...worlds.values()],
683
740
  world: getWorld,
684
- people: (worldId) => getWorld(worldId).world.people(),
741
+ async people(worldId) {
742
+ const w = getWorld(worldId);
743
+ await refreshTenants(w);
744
+ return w.world.people();
745
+ },
685
746
  async openScreen(worldId, personId, path, options = {}) {
686
747
  const w = getWorld(worldId);
687
748
  const persona = (await w.world.people()).find((p) => p.id === personId);
@@ -696,7 +757,7 @@ export function createHarness(product, options = {}) {
696
757
  },
697
758
  async openLink(worldId, link, options = {}) {
698
759
  const w = getWorld(worldId);
699
- const { tenant, path } = linkPath(link, w.world, undefined, noun);
760
+ const { tenant, path } = await linkPathNow(w, link, noun);
700
761
  const someone = (await w.world.people()).find((p) => p.tenant === tenant);
701
762
  // A stand-in: the tenant and its time zone are real, the person is whoever has the link.
702
763
  const persona = {
@@ -757,14 +818,29 @@ export function createHarness(product, options = {}) {
757
818
  switch (action.kind) {
758
819
  case 'click': {
759
820
  const what = `role=${action.role} name="${action.name}"`;
760
- const t = await target(s, byRole(page, action.role, action.name, action.exact), what, action.index);
821
+ const named = byRole(page, action.role, action.name, action.exact);
822
+ const other = (await named.count()) === 0
823
+ ? await unnamedControl(page, action.role, action.name, action.exact)
824
+ : null;
825
+ const t = other
826
+ ? { el: other.el, why: `found ${other.how}, as it has no name of its own` }
827
+ : await target(s, named, what, action.index);
761
828
  await reachable(t.el, what);
762
- did = `clicked ${action.role} "${action.name}"${t.why ? `, ${t.why}` : ''}`;
763
- await t.el.click({ timeout: 10_000 }).catch(async (e) => {
829
+ const how = {
830
+ ...(action.button ? { button: action.button } : {}),
831
+ ...(action.clickCount ? { clickCount: action.clickCount } : {}),
832
+ };
833
+ const verb = action.clickCount === 2
834
+ ? 'double-clicked'
835
+ : action.button && action.button !== 'left'
836
+ ? `${action.button}-clicked`
837
+ : 'clicked';
838
+ did = `${verb} ${action.role} "${action.name}"${t.why ? `, ${t.why}` : ''}`;
839
+ await t.el.click({ timeout: 10_000, ...how }).catch(async (e) => {
764
840
  // A styled radio or checkbox: its own label is drawn over it, and clicking that is the same.
765
841
  if (!(await coveredByOwnLabel(t.el)))
766
842
  throw new HarnessError(`could not click ${what}: ${whyNotClicked(e)}`);
767
- await t.el.click({ timeout: 10_000, force: true });
843
+ await t.el.click({ timeout: 10_000, force: true, ...how });
768
844
  did += ' (through its label, which is drawn over it)';
769
845
  });
770
846
  break;
@@ -788,10 +864,13 @@ export function createHarness(product, options = {}) {
788
864
  to = { by: action.by };
789
865
  where = `by ${action.by.x}, ${action.by.y} px`;
790
866
  }
791
- const scrolled = await drag(page, t.el, action.grab ?? [0.5, 0.5], to).catch((e) => {
867
+ const scrolled = await drag(page, t.el, action.grab ?? [0.5, 0.5], to, action.grabOffset).catch((e) => {
792
868
  throw new HarnessError(`could not drag ${what}: ${e.message}`);
793
869
  });
794
- did = `dragged ${action.role} "${action.name}"${action.grab ? ` (held at ${action.grab.join(', ')})` : ''} ${where}${scrolled ? `, scrolling ${scrolled} px on the way` : ''}${t.why ? `, ${t.why}` : ''}`;
870
+ const offset = action.grabOffset
871
+ ? ` ${action.grabOffset.x}, ${action.grabOffset.y} px off it`
872
+ : '';
873
+ did = `dragged ${action.role} "${action.name}"${action.grab || offset ? ` (held at ${(action.grab ?? [0.5, 0.5]).join(', ')}${offset})` : ''} ${where}${scrolled ? `, scrolling ${scrolled} px on the way` : ''}${t.why ? `, ${t.why}` : ''}`;
795
874
  break;
796
875
  }
797
876
  case 'scroll': {
@@ -1 +1 @@
1
- {"version":3,"file":"harness.js","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export type Algorithm = 'SHA1' | 'SHA256' | 'SHA512';
2
+ export interface TotpKey {
3
+ secret: Buffer;
4
+ digits: number;
5
+ period: number;
6
+ algorithm: Algorithm;
7
+ }
8
+ /** RFC 4648 base32, as a setup screen shows it: any case, spaces and dashes between groups, padding optional. */
9
+ export declare function base32Decode(text: string): Buffer;
10
+ /** A key as typed into the app: the base32 secret alone, or the otpauth:// link a QR code holds. */
11
+ export declare function parseKey(input: string): TotpKey;
12
+ /** The code at an instant (ms), and how many seconds it has left. */
13
+ export declare function totp(key: TotpKey, atMs: number): {
14
+ code: string;
15
+ secondsLeft: number;
16
+ };
17
+ //# sourceMappingURL=authenticator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticator.d.ts","sourceRoot":"","sources":["../../src/mcp/authenticator.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAErD,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;CACtB;AAID,iHAAiH;AACjH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkBjD;AAED,oGAAoG;AACpG,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAiB/C;AAED,qEAAqE;AACrE,wBAAgB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAWtF"}
@@ -0,0 +1,63 @@
1
+ // The authenticator app on a person's phone: a TOTP code (RFC 6238) from the key a product's two-step setup
2
+ // shows, at the world's own time, since that's the clock the product checks it against. Without it an agent
3
+ // can't turn two-step sign-in on, or play anything a product puts behind it.
4
+ import { createHmac } from 'node:crypto';
5
+ const BASE32 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
6
+ /** RFC 4648 base32, as a setup screen shows it: any case, spaces and dashes between groups, padding optional. */
7
+ export function base32Decode(text) {
8
+ const clean = text
9
+ .replace(/[\s-]+/g, '')
10
+ .replace(/=+$/, '')
11
+ .toUpperCase();
12
+ if (!clean || /[^A-Z2-7]/.test(clean))
13
+ throw new Error('the key isn’t base32 (letters A–Z and digits 2–7)');
14
+ let bits = 0;
15
+ let value = 0;
16
+ const out = [];
17
+ for (const c of clean) {
18
+ value = (value << 5) | BASE32.indexOf(c);
19
+ bits += 5;
20
+ if (bits >= 8) {
21
+ out.push((value >>> (bits - 8)) & 0xff);
22
+ bits -= 8;
23
+ }
24
+ }
25
+ return Buffer.from(out);
26
+ }
27
+ /** A key as typed into the app: the base32 secret alone, or the otpauth:// link a QR code holds. */
28
+ export function parseKey(input) {
29
+ const given = input.trim();
30
+ if (!given.toLowerCase().startsWith('otpauth://'))
31
+ return { secret: base32Decode(given), digits: 6, period: 30, algorithm: 'SHA1' };
32
+ const url = new URL(given);
33
+ if (url.host.toLowerCase() !== 'totp')
34
+ throw new Error(`an otpauth link for ${url.host}, not totp`);
35
+ const q = url.searchParams;
36
+ const secret = q.get('secret');
37
+ if (!secret)
38
+ throw new Error('the otpauth link has no secret');
39
+ const digits = Number(q.get('digits') ?? 6);
40
+ const period = Number(q.get('period') ?? 30);
41
+ const algorithm = (q.get('algorithm') ?? 'SHA1').toUpperCase();
42
+ if (![6, 7, 8].includes(digits))
43
+ throw new Error(`digits ${digits}: an app shows 6, 7 or 8`);
44
+ if (!Number.isInteger(period) || period < 1)
45
+ throw new Error(`period ${q.get('period')}: whole seconds`);
46
+ if (algorithm !== 'SHA1' && algorithm !== 'SHA256' && algorithm !== 'SHA512')
47
+ throw new Error(`algorithm ${algorithm}: SHA1, SHA256 or SHA512`);
48
+ return { secret: base32Decode(secret), digits, period, algorithm };
49
+ }
50
+ /** The code at an instant (ms), and how many seconds it has left. */
51
+ export function totp(key, atMs) {
52
+ const step = Math.floor(atMs / 1000 / key.period);
53
+ const counter = Buffer.alloc(8);
54
+ counter.writeBigUInt64BE(BigInt(step));
55
+ const mac = createHmac(key.algorithm.toLowerCase(), key.secret).update(counter).digest();
56
+ const at = mac[mac.length - 1] & 0x0f;
57
+ const n = mac.readUInt32BE(at) & 0x7fffffff;
58
+ return {
59
+ code: String(n % 10 ** key.digits).padStart(key.digits, '0'),
60
+ secondsLeft: key.period - (Math.floor(atMs / 1000) % key.period),
61
+ };
62
+ }
63
+ //# sourceMappingURL=authenticator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticator.js","sourceRoot":"","sources":["../../src/mcp/authenticator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { FeedPage, Hooks } from '../hooks.ts';
2
+ /** One cursor for the two mailboxes, as `next`: each one's own, kept apart. */
3
+ export declare function joinCursor(own: string, platform: string): string;
4
+ /** The two cursors a joined one holds. A product's own cursor (from before the merge) is the tenant's. */
5
+ export declare function splitCursor(after: string | undefined): {
6
+ own?: string;
7
+ platform?: string;
8
+ };
9
+ /**
10
+ * The tenant's messages to `to`, and the platform mailbox's when the product has one, in time order. A platform
11
+ * mailbox the product refuses to read leaves the tenant's messages, with a note saying why.
12
+ */
13
+ export declare function readInbox(hooks: Pick<Hooks, 'messages'>, tenant: string, to: string, after: string | undefined, platformMailbox: string | undefined): Promise<FeedPage & {
14
+ note?: string;
15
+ }>;
16
+ //# sourceMappingURL=inbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/mcp/inbox.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAY,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAI7D,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,0GAA0G;AAC1G,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAY1F;AAWD;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EAC9B,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,eAAe,EAAE,MAAM,GAAG,SAAS,GAClC,OAAO,CAAC,QAAQ,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkBvC"}
@@ -0,0 +1,55 @@
1
+ // One person's inbox, as phone_inbox gives it: the tenant's own messages to them, and the ones the product
2
+ // sends as itself (sign-in codes, invites, sign-up confirmations), which a product files under its platform
3
+ // mailbox, not under any tenant. Read apart, a tester looking in the company's mailbox finds no code and
4
+ // says it never came, though it was sent.
5
+ const BOTH = 'both:';
6
+ /** One cursor for the two mailboxes, as `next`: each one's own, kept apart. */
7
+ export function joinCursor(own, platform) {
8
+ return BOTH + Buffer.from(JSON.stringify([own, platform])).toString('base64url');
9
+ }
10
+ /** The two cursors a joined one holds. A product's own cursor (from before the merge) is the tenant's. */
11
+ export function splitCursor(after) {
12
+ if (!after)
13
+ return {};
14
+ if (!after.startsWith(BOTH))
15
+ return { own: after };
16
+ try {
17
+ const [own, platform] = JSON.parse(Buffer.from(after.slice(BOTH.length), 'base64url').toString());
18
+ return { ...(own ? { own } : {}), ...(platform ? { platform } : {}) };
19
+ }
20
+ catch {
21
+ return { own: after };
22
+ }
23
+ }
24
+ /** A platform message, marked so the agent reads who sent it. */
25
+ const asPlatform = ({ cursor, kind, at, ...rest }) => ({
26
+ cursor,
27
+ kind,
28
+ at,
29
+ sentAs: 'the platform',
30
+ ...rest,
31
+ });
32
+ /**
33
+ * The tenant's messages to `to`, and the platform mailbox's when the product has one, in time order. A platform
34
+ * mailbox the product refuses to read leaves the tenant's messages, with a note saying why.
35
+ */
36
+ export async function readInbox(hooks, tenant, to, after, platformMailbox) {
37
+ const at = splitCursor(after);
38
+ const own = await hooks.messages(tenant, to, at.own ? { after: at.own } : {});
39
+ if (!platformMailbox || platformMailbox === tenant)
40
+ return own;
41
+ let platform;
42
+ try {
43
+ platform = await hooks.messages(platformMailbox, to, at.platform ? { after: at.platform } : {});
44
+ }
45
+ catch (e) {
46
+ return { ...own, note: `the platform mailbox (${platformMailbox}) wasn’t read: ${e.message}` };
47
+ }
48
+ const items = [...own.items, ...platform.items.map(asPlatform)].sort((a, b) => Date.parse(a.at) - Date.parse(b.at));
49
+ return {
50
+ items,
51
+ next: joinCursor(own.next, platform.next),
52
+ lagMs: Math.max(own.lagMs, platform.lagMs),
53
+ };
54
+ }
55
+ //# sourceMappingURL=inbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/mcp/inbox.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
3
3
  import { type Harness } from '../harness.ts';
4
4
  import type { ProductWorld } from '../product.ts';
5
5
  import { type Runs } from '../runs/run.ts';
6
+ /** What the promise gives within ms, or undefined if it's still going; its failure within ms is thrown. */
7
+ export declare function within<T>(p: Promise<T>, ms: number): Promise<T | undefined>;
6
8
  /** A refusal or a failure the agent can read and act on, never a thrown protocol error. */
7
9
  export declare function guard(fn: () => Promise<CallToolResult>): Promise<CallToolResult>;
8
10
  export declare function buildServer<W extends ProductWorld>(h: Harness<W>, runs?: Runs): McpServer;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAQzE,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKvD,2FAA2F;AAC3F,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAatF;AAsBD,wBAAgB,WAAW,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,IAAoB,GAAG,SAAS,CAq1BxG;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,0FAA0F;AAC1F,wBAAsB,QAAQ,CAAC,CAAC,SAAS,YAAY,EACnD,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,IAAoB,GACzB,OAAO,CAAC,OAAO,CAAC,CAuDlB"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAWzE,OAAO,EAA6C,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAExF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAA8B,KAAK,IAAI,EAAoB,MAAM,gBAAgB,CAAC;AAKzF,2GAA2G;AAC3G,wBAAsB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAQjF;AAED,2FAA2F;AAC3F,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAatF;AAsBD,wBAAgB,WAAW,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,IAAoB,GAAG,SAAS,CAk8BxG;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,0FAA0F;AAC1F,wBAAsB,QAAQ,CAAC,CAAC,SAAS,YAAY,EACnD,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,IAAoB,GACzB,OAAO,CAAC,OAAO,CAAC,CAuDlB"}